@wirecat/cli-memo 0.41.0 → 0.43.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.
Files changed (90) hide show
  1. package/dist/doctor/command.d.ts +1 -1
  2. package/dist/effects.d.ts.map +1 -1
  3. package/dist/effects.js +7 -0
  4. package/dist/effects.js.map +1 -1
  5. package/dist/examples.d.ts.map +1 -1
  6. package/dist/examples.js +8 -4
  7. package/dist/examples.js.map +1 -1
  8. package/dist/json-fields.d.ts +2 -1
  9. package/dist/json-fields.d.ts.map +1 -1
  10. package/dist/json-fields.js +3 -3
  11. package/dist/json-fields.js.map +1 -1
  12. package/dist/mail/apply.d.ts +7 -0
  13. package/dist/mail/apply.d.ts.map +1 -1
  14. package/dist/mail/apply.js +27 -4
  15. package/dist/mail/apply.js.map +1 -1
  16. package/dist/mail/bulk.d.ts +8 -0
  17. package/dist/mail/bulk.d.ts.map +1 -0
  18. package/dist/mail/bulk.js +4 -0
  19. package/dist/mail/bulk.js.map +1 -0
  20. package/dist/mail/command.d.ts.map +1 -1
  21. package/dist/mail/command.js +123 -44
  22. package/dist/mail/command.js.map +1 -1
  23. package/dist/mail/facts.d.ts +10 -0
  24. package/dist/mail/facts.d.ts.map +1 -0
  25. package/dist/mail/facts.js +23 -0
  26. package/dist/mail/facts.js.map +1 -0
  27. package/dist/mail/filters.d.ts +11 -0
  28. package/dist/mail/filters.d.ts.map +1 -0
  29. package/dist/mail/filters.js +150 -0
  30. package/dist/mail/filters.js.map +1 -0
  31. package/dist/mail/headers.d.ts +3 -1
  32. package/dist/mail/headers.d.ts.map +1 -1
  33. package/dist/mail/headers.js +2 -1
  34. package/dist/mail/headers.js.map +1 -1
  35. package/dist/mail/import.d.ts +5 -0
  36. package/dist/mail/import.d.ts.map +1 -1
  37. package/dist/mail/import.js +25 -4
  38. package/dist/mail/import.js.map +1 -1
  39. package/dist/mail/parse.d.ts +3 -0
  40. package/dist/mail/parse.d.ts.map +1 -1
  41. package/dist/mail/parse.js +7 -2
  42. package/dist/mail/parse.js.map +1 -1
  43. package/dist/mail/presets.d.ts +31 -0
  44. package/dist/mail/presets.d.ts.map +1 -0
  45. package/dist/mail/presets.js +96 -0
  46. package/dist/mail/presets.js.map +1 -0
  47. package/dist/mail/probe.d.ts +13 -0
  48. package/dist/mail/probe.d.ts.map +1 -1
  49. package/dist/mail/probe.js +17 -1
  50. package/dist/mail/probe.js.map +1 -1
  51. package/dist/mail/repair.d.ts +7 -0
  52. package/dist/mail/repair.d.ts.map +1 -0
  53. package/dist/mail/repair.js +45 -0
  54. package/dist/mail/repair.js.map +1 -0
  55. package/dist/mail/rule-query.d.ts +15 -0
  56. package/dist/mail/rule-query.d.ts.map +1 -0
  57. package/dist/mail/rule-query.js +101 -0
  58. package/dist/mail/rule-query.js.map +1 -0
  59. package/dist/mail/rule-store.d.ts +3 -5
  60. package/dist/mail/rule-store.d.ts.map +1 -1
  61. package/dist/mail/rule-store.js +47 -17
  62. package/dist/mail/rule-store.js.map +1 -1
  63. package/dist/mail/rule-tags.d.ts +41 -0
  64. package/dist/mail/rule-tags.d.ts.map +1 -0
  65. package/dist/mail/rule-tags.js +88 -0
  66. package/dist/mail/rule-tags.js.map +1 -0
  67. package/dist/mail/rules.d.ts +51 -6
  68. package/dist/mail/rules.d.ts.map +1 -1
  69. package/dist/mail/rules.js +86 -22
  70. package/dist/mail/rules.js.map +1 -1
  71. package/dist/mail/score.d.ts +2 -0
  72. package/dist/mail/score.d.ts.map +1 -1
  73. package/dist/mail/score.js +11 -1
  74. package/dist/mail/score.js.map +1 -1
  75. package/dist/program.d.ts.map +1 -1
  76. package/dist/program.js +44 -1
  77. package/dist/program.js.map +1 -1
  78. package/dist/reasons.d.ts.map +1 -1
  79. package/dist/reasons.js +6 -0
  80. package/dist/reasons.js.map +1 -1
  81. package/dist/run/import.d.ts.map +1 -1
  82. package/dist/run/import.js +4 -0
  83. package/dist/run/import.js.map +1 -1
  84. package/dist/search/command.d.ts.map +1 -1
  85. package/dist/search/command.js +12 -3
  86. package/dist/search/command.js.map +1 -1
  87. package/dist/version.d.ts +1 -1
  88. package/dist/version.js +1 -1
  89. package/package.json +2 -2
  90. package/skills/cli-memo/SKILL.md +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/mail/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/mail/import.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ export interface ParsedMail {
17
17
  text: string;
18
18
  }
19
19
  export declare const MAX_BODY_CHARS = 1000000;
20
+ export declare const htmlToText: (html: string) => string;
21
+ /** Some senders put their HTML in the text/plain part; its first tag gives it away. */
22
+ export declare const looksLikeHtml: (text: string) => boolean;
20
23
  /** A raw RFC 5322 message, as IMAP's `BODY[]` holds it. */
21
24
  export declare const parseMail: (raw: Uint8Array, maxBodyChars?: number) => Promise<ParsedMail>;
22
25
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/mail/parse.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,EAAE,EAAE,OAAO,EAAE,CAAA;IACb,EAAE,EAAE,OAAO,EAAE,CAAA;IACb,GAAG,EAAE,OAAO,EAAE,CAAA;IACd,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;KAAE,EAAE,CAAA;IAC1F,IAAI,EAAE,MAAM,CAAA;CACb;AAGD,eAAO,MAAM,cAAc,UAAY,CAAA;AAuDvC,2DAA2D;AAC3D,eAAO,MAAM,SAAS,QAAe,UAAU,4BAAkC,OAAO,CAAC,UAAU,CAsBlG,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/mail/parse.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,EAAE,EAAE,OAAO,EAAE,CAAA;IACb,EAAE,EAAE,OAAO,EAAE,CAAA;IACb,GAAG,EAAE,OAAO,EAAE,CAAA;IACd,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;KAAE,EAAE,CAAA;IAC1F,IAAI,EAAE,MAAM,CAAA;CACb;AAGD,eAAO,MAAM,cAAc,UAAY,CAAA;AA0CvC,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAO/B,CAAA;AAEX,uFAAuF;AACvF,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,OACsC,CAAA;AASnF,2DAA2D;AAC3D,eAAO,MAAM,SAAS,QAAe,UAAU,4BAAkC,OAAO,CAAC,UAAU,CAuBlG,CAAA"}
@@ -35,13 +35,17 @@ const stripTags = (html) => {
35
35
  const end = html.lastIndexOf(">") + 1;
36
36
  return html.slice(0, end).replace(/<[^>]+>/g, "") + html.slice(end);
37
37
  };
38
- const htmlToText = (html) => stripTags(dropHidden(html).replace(/<br\s*\/?>|<\/(p|div|li|tr|h\d)>/gi, "\n"))
38
+ // Comments go first: a tag inside one, like a commented-out link, would leave its text and a stray `-->` behind.
39
+ const dropComments = (html) => html.replace(/<!--[\s\S]*?(-->|$)/g, "");
40
+ export const htmlToText = (html) => stripTags(dropHidden(dropComments(html)).replace(/<br\s*\/?>|<\/(p|div|li|tr|h\d)>/gi, "\n"))
39
41
  // One pass, so `&amp;lt;` stays the text `&lt;` instead of being decoded twice into `<`.
40
42
  .replace(/&(nbsp|amp|lt|gt|quot|#39);/g, (_entity, name) => ENTITIES[name])
41
43
  // From the start of a run only: `[ \t]+\n` alone rescans a long run of spaces from each of them.
42
44
  .replace(/(?<![ \t])[ \t]+\n/g, "\n")
43
45
  .replace(/\n{3,}/g, "\n\n")
44
46
  .trim();
47
+ /** Some senders put their HTML in the text/plain part; its first tag gives it away. */
48
+ export const looksLikeHtml = (text) => /^\s*<(!doctype\s+html|html|head|body|table|div|center|meta|style)\b/i.test(text);
45
49
  const bytesOf = (content) => typeof content === "string"
46
50
  ? new TextEncoder().encode(content)
47
51
  : content instanceof Uint8Array
@@ -56,7 +60,8 @@ export const parseMail = async (raw, maxBodyChars = MAX_BODY_CHARS) => {
56
60
  catch (error) {
57
61
  throw new CliError("invalid_response", `unreadable email: ${error instanceof Error ? error.message : error}`);
58
62
  }
59
- const text = email.text?.trim() || htmlToText(email.html ?? "");
63
+ const plain = email.text?.trim() ?? "";
64
+ const text = plain && !looksLikeHtml(plain) ? plain : htmlToText(email.html ?? plain);
60
65
  return {
61
66
  subject: email.subject ?? null,
62
67
  from: addresses(email.from === undefined ? [] : [email.from])[0] ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/mail/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/mail/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { MailFacts } from "./rules.js";
2
+ /**
3
+ * Kinds of mail every mailbox gets, matched by who sends them and how, not by a list of the owner's senders. Mail
4
+ * from someone the owner wrote to never matches a preset, so a real conversation is never caught by one.
5
+ */
6
+ export declare const PRESETS: {
7
+ readonly social: {
8
+ readonly about: "notifications from social networks";
9
+ readonly domains: readonly ["facebookmail.com", "facebook.com", "linkedin.com", "twitter.com", "x.com", "instagram.com", "vk.com", "ok.ru", "quora.com", "redditmail.com", "pinterest.com", "tiktok.com", "meetup.com", "tumblr.com", "youtube.com"];
10
+ };
11
+ readonly newsletters: {
12
+ readonly about: "mailing lists with an unsubscribe link: List-Id and List-Unsubscribe, or a newsletter service";
13
+ readonly domains: readonly ["substack.com", "mcsv.net", "mailchimpapp.net", "sendinblue.com", "beehiiv.com", "convertkit.com"];
14
+ };
15
+ readonly developer: {
16
+ readonly about: "code hosting, CI, package and error-tracker notifications";
17
+ readonly domains: readonly ["github.com", "gitlab.com", "bitbucket.org", "atlassian.net", "circleci.com", "travis-ci.com", "rollbar.com", "sentry.io", "vercel.com", "netlify.com", "npmjs.com", "docker.com", "heroku.com", "codecov.io", "libraries.io"];
18
+ };
19
+ readonly shopping: {
20
+ readonly about: "shops and promotions, and what Gmail files under Promotions";
21
+ readonly domains: readonly ["aliexpress.com", "aliexpress.ru", "ebay.com", "ozon.ru", "wildberries.ru", "steampowered.com", "booking.com", "zalando.com", "etsy.com", "ikea.com"];
22
+ };
23
+ readonly alerts: {
24
+ readonly about: "monitoring and uptime alerts";
25
+ readonly domains: readonly ["uptimerobot.com", "pingdom.com", "statuscake.com", "pagerduty.com", "opsgenie.com", "newrelic.com", "datadoghq.com", "betteruptime.com", "healthchecks.io"];
26
+ };
27
+ };
28
+ export type PresetName = keyof typeof PRESETS;
29
+ export declare const PRESET_NAMES: PresetName[];
30
+ export declare const presetMatches: (name: PresetName, facts: MailFacts) => boolean;
31
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/mail/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAG3C;;;GAGG;AACH,eAAO,MAAM,OAAO;aAClB,MAAM;iBACJ,KAAK,EAAE,oCAAoC;iBAC3C,OAAO,YACL,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,aAAa,EACb,OAAO,EACP,eAAe,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa;;aAGjB,WAAW;iBACT,KAAK,EAAE,+FAA+F;iBACtG,OAAO,YAAG,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB;;aAE7G,SAAS;iBACP,KAAK,EAAE,2DAA2D;iBAClE,OAAO,YACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc;;aAGlB,QAAQ;iBACN,KAAK,EAAE,6DAA6D;iBACpE,OAAO,YACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU;;aAGd,MAAM;iBACJ,KAAK,EAAE,8BAA8B;iBACrC,OAAO,YACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB;;CAGb,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,eAAO,MAAM,YAAY,EAA2B,UAAU,EAAE,CAAA;AAEhE,eAAO,MAAM,aAAa,SAAU,UAAU,SAAS,SAAS,KAAG,OASlE,CAAA"}
@@ -0,0 +1,96 @@
1
+ import { registrableOf } from "./score.js";
2
+ /**
3
+ * Kinds of mail every mailbox gets, matched by who sends them and how, not by a list of the owner's senders. Mail
4
+ * from someone the owner wrote to never matches a preset, so a real conversation is never caught by one.
5
+ */
6
+ export const PRESETS = {
7
+ social: {
8
+ about: "notifications from social networks",
9
+ domains: [
10
+ "facebookmail.com",
11
+ "facebook.com",
12
+ "linkedin.com",
13
+ "twitter.com",
14
+ "x.com",
15
+ "instagram.com",
16
+ "vk.com",
17
+ "ok.ru",
18
+ "quora.com",
19
+ "redditmail.com",
20
+ "pinterest.com",
21
+ "tiktok.com",
22
+ "meetup.com",
23
+ "tumblr.com",
24
+ "youtube.com",
25
+ ],
26
+ },
27
+ newsletters: {
28
+ about: "mailing lists with an unsubscribe link: List-Id and List-Unsubscribe, or a newsletter service",
29
+ domains: ["substack.com", "mcsv.net", "mailchimpapp.net", "sendinblue.com", "beehiiv.com", "convertkit.com"],
30
+ },
31
+ developer: {
32
+ about: "code hosting, CI, package and error-tracker notifications",
33
+ domains: [
34
+ "github.com",
35
+ "gitlab.com",
36
+ "bitbucket.org",
37
+ "atlassian.net",
38
+ "circleci.com",
39
+ "travis-ci.com",
40
+ "rollbar.com",
41
+ "sentry.io",
42
+ "vercel.com",
43
+ "netlify.com",
44
+ "npmjs.com",
45
+ "docker.com",
46
+ "heroku.com",
47
+ "codecov.io",
48
+ "libraries.io",
49
+ ],
50
+ },
51
+ shopping: {
52
+ about: "shops and promotions, and what Gmail files under Promotions",
53
+ domains: [
54
+ "aliexpress.com",
55
+ "aliexpress.ru",
56
+ "ebay.com",
57
+ "ozon.ru",
58
+ "wildberries.ru",
59
+ "steampowered.com",
60
+ "booking.com",
61
+ "zalando.com",
62
+ "etsy.com",
63
+ "ikea.com",
64
+ ],
65
+ },
66
+ alerts: {
67
+ about: "monitoring and uptime alerts",
68
+ domains: [
69
+ "uptimerobot.com",
70
+ "pingdom.com",
71
+ "statuscake.com",
72
+ "pagerduty.com",
73
+ "opsgenie.com",
74
+ "newrelic.com",
75
+ "datadoghq.com",
76
+ "betteruptime.com",
77
+ "healthchecks.io",
78
+ ],
79
+ },
80
+ };
81
+ export const PRESET_NAMES = Object.keys(PRESETS);
82
+ export const presetMatches = (name, facts) => {
83
+ const { headers } = facts;
84
+ const sender = headers?.from;
85
+ if (sender === undefined || facts.replied)
86
+ return false;
87
+ const domain = registrableOf(sender);
88
+ if (PRESETS[name].domains.includes(domain))
89
+ return true;
90
+ if (name === "newsletters")
91
+ return headers?.listId !== undefined && headers.bulk;
92
+ if (name === "shopping")
93
+ return facts.labels?.includes("Promotions") ?? false;
94
+ return false;
95
+ };
96
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/mail/presets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM,EAAE;QACN,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EAAE;YACP,kBAAkB;YAClB,cAAc;YACd,cAAc;YACd,aAAa;YACb,OAAO;YACP,eAAe;YACf,QAAQ;YACR,OAAO;YACP,WAAW;YACX,gBAAgB;YAChB,eAAe;YACf,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,aAAa;SACd;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,+FAA+F;QACtG,OAAO,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,CAAC;KAC7G;IACD,SAAS,EAAE;QACT,KAAK,EAAE,2DAA2D;QAClE,OAAO,EAAE;YACP,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,eAAe;YACf,cAAc;YACd,eAAe;YACf,aAAa;YACb,WAAW;YACX,YAAY;YACZ,aAAa;YACb,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,cAAc;SACf;KACF;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,6DAA6D;QACpE,OAAO,EAAE;YACP,gBAAgB;YAChB,eAAe;YACf,UAAU;YACV,SAAS;YACT,gBAAgB;YAChB,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,UAAU;YACV,UAAU;SACX;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,8BAA8B;QACrC,OAAO,EAAE;YACP,iBAAiB;YACjB,aAAa;YACb,gBAAgB;YAChB,eAAe;YACf,cAAc;YACd,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;SAClB;KACF;CACO,CAAA;AAIV,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAiB,CAAA;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAgB,EAAE,KAAgB,EAAW,EAAE;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACzB,MAAM,MAAM,GAAG,OAAO,EAAE,IAAI,CAAA;IAC5B,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IACvD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAA6B,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9E,IAAI,IAAI,KAAK,aAAa;QAAE,OAAO,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAA;IAChF,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAA;IAC7E,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { type PresetName } from "./presets.js";
1
2
  import { type DomainAge, type Signal } from "./score.js";
2
3
  import type { Listed } from "./source.js";
3
4
  export declare const SUGGEST_RULE: string;
@@ -29,7 +30,19 @@ export interface Probe {
29
30
  withoutHeaders: number;
30
31
  groups: number;
31
32
  items: ProbeGroup[];
33
+ /** How much mail each built-in preset would match: proposals the owner may turn into rules. */
34
+ presets: {
35
+ preset: PresetName;
36
+ emails: number;
37
+ groups: number;
38
+ bytes: number;
39
+ }[];
32
40
  }
41
+ /** A list's mail is one group whoever sends it; other mail is grouped by sender. */
42
+ export declare const groupKey: (headers: {
43
+ from?: string;
44
+ listId?: string;
45
+ }) => string;
33
46
  /** Groups mail by List-Id when it has one, else by sender address; largest groups first. */
34
47
  export declare const probeMail: (items: Listed[], limit: number, ages?: ReadonlyMap<string, DomainAge>) => Probe;
35
48
  /** The sender domains of the groups worth asking a registry about: not a big mailbox provider, never replied to. */
@@ -1 +1 @@
1
- {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/mail/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAiB,KAAK,MAAM,EAAc,MAAM,YAAY,CAAA;AACnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,YAAY,QAEsE,CAAA;AAE/F,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAMD,4FAA4F;AAC5F,eAAO,MAAM,SAAS,UAAW,MAAM,EAAE,SAAS,MAAM,SAAQ,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,KAAe,KA8C5G,CAAA;AAED,oHAAoH;AACpH,eAAO,MAAM,YAAY,WAAY,UAAU,EAAE,QAAQ,WAAW,CAAC,MAAM,CAAC,KAAG,MAAM,EAQpF,CAAA"}
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/mail/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAiB,MAAM,cAAc,CAAA;AAC3E,OAAO,EAAE,KAAK,SAAS,EAAiB,KAAK,MAAM,EAAc,MAAM,YAAY,CAAA;AACnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,YAAY,QAEsE,CAAA;AAE/F,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,+FAA+F;IAC/F,OAAO,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACjF;AAMD,oFAAoF;AACpF,eAAO,MAAM,QAAQ,YAAa;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,MACW,CAAA;AAElF,4FAA4F;AAC5F,eAAO,MAAM,SAAS,UAAW,MAAM,EAAE,SAAS,MAAM,SAAQ,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,KAAe,KA2D5G,CAAA;AAED,oHAAoH;AACpH,eAAO,MAAM,YAAY,WAAY,UAAU,EAAE,QAAQ,WAAW,CAAC,MAAM,CAAC,KAAG,MAAM,EAQpF,CAAA"}
@@ -1,8 +1,11 @@
1
+ import { PRESET_NAMES, presetMatches } from "./presets.js";
1
2
  import { registrableOf, scoreGroup } from "./score.js";
2
3
  export const SUGGEST_RULE = "suggest is skip when a group has at least 20 emails, at least 80% of them list or bulk mail " +
3
4
  "(List-Id, List-Unsubscribe or Precedence: bulk) and the owner never sent mail to its sender";
4
5
  const share = (part, whole) => Math.round((part / whole) * 100) / 100;
5
6
  const isSent = (item) => item.labels?.includes("Sent") || /(^|\/)sent\b/i.test(item.folder ?? "");
7
+ /** A list's mail is one group whoever sends it; other mail is grouped by sender. */
8
+ export const groupKey = (headers) => headers.listId === undefined ? `from:${headers.from}` : `list:${headers.listId}`;
6
9
  /** Groups mail by List-Id when it has one, else by sender address; largest groups first. */
7
10
  export const probeMail = (items, limit, ages = new Map()) => {
8
11
  const sent = items.filter(isSent);
@@ -17,7 +20,7 @@ export const probeMail = (items, limit, ages = new Map()) => {
17
20
  withoutHeaders++;
18
21
  continue;
19
22
  }
20
- const key = headers.listId === undefined ? `from:${headers.from}` : `list:${headers.listId}`;
23
+ const key = groupKey(headers);
21
24
  const group = groups.get(key);
22
25
  if (group)
23
26
  group.push(item);
@@ -44,6 +47,18 @@ export const probeMail = (items, limit, ages = new Map()) => {
44
47
  ...scoreGroup(group, { replied, bulk, ages }),
45
48
  };
46
49
  });
50
+ const presets = PRESET_NAMES.map((preset) => {
51
+ const hit = [...groups.values()].filter((group) => {
52
+ const replied = group.some((item) => item.headers?.from !== undefined && recipients.has(item.headers.from));
53
+ return presetMatches(preset, { ...group[0], replied });
54
+ });
55
+ return {
56
+ preset,
57
+ emails: hit.reduce((sum, group) => sum + group.length, 0),
58
+ groups: hit.length,
59
+ bytes: hit.reduce((sum, group) => sum + group.reduce((total, item) => total + (item.size ?? 0), 0), 0),
60
+ };
61
+ }).filter(({ emails }) => emails > 0);
47
62
  all.sort((a, b) => b.emails - a.emails || b.bytes - a.bytes);
48
63
  return {
49
64
  emails: items.length,
@@ -52,6 +67,7 @@ export const probeMail = (items, limit, ages = new Map()) => {
52
67
  withoutHeaders,
53
68
  groups: all.length,
54
69
  items: all.slice(0, limit),
70
+ presets,
55
71
  };
56
72
  };
57
73
  /** The sender domains of the groups worth asking a registry about: not a big mailbox provider, never replied to. */
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/mail/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAe,UAAU,EAAE,MAAM,YAAY,CAAA;AAGnF,MAAM,CAAC,MAAM,YAAY,GACvB,8FAA8F;IAC9F,6FAA6F,CAAA;AAiC/F,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AAErF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;AAEzG,4FAA4F;AAC5F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAe,EAAE,KAAa,EAAE,IAAI,GAAmC,IAAI,GAAG,EAAE,EAAS,EAAE;IACnH,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC1C,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YAC1F,cAAc,EAAE,CAAA;YAChB,SAAQ;QACV,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAA;QAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;YACtB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9B,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAc,EAAE;QACzD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/G,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;QAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC,CAAA;QAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACnF,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACrE,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;YAC7B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;YACzC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5F,IAAI;YACJ,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACtE,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC9C,CAAA;IACH,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5D,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,cAAc;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;KAC3B,CAAA;AACH,CAAC,CAAA;AAED,oHAAoH;AACpH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAE,IAAyB,EAAY,EAAE,CAAC;IACzF,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,EAAE,CAAA;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC,CAAC,CACH;CACF,CAAA"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/mail/probe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { MessageStore } from "@wirecat/cli-core/store";
2
+ /**
3
+ * Once per account: email text saved before memo read an HTML text/plain part as HTML is converted in place, from
4
+ * what the store holds. Runs inside sync, so it holds the import lock like any other write.
5
+ */
6
+ export declare const repairHtmlText: (store: MessageStore, address: string, now?: number) => Promise<number | undefined>;
7
+ //# sourceMappingURL=repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../src/mail/repair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAOvE;;;GAGG;AACH,eAAO,MAAM,cAAc,UAClB,YAAY,WACV,MAAM,mBAEd,OAAO,CAAC,MAAM,GAAG,SAAS,CA8B5B,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { htmlToText, looksLikeHtml } from "./parse.js";
2
+ import { ENVELOPE } from "./rules.js";
3
+ const REPAIRED = "mail_text_repair";
4
+ const VERSION = "html-text-1";
5
+ /**
6
+ * Once per account: email text saved before memo read an HTML text/plain part as HTML is converted in place, from
7
+ * what the store holds. Runs inside sync, so it holds the import lock like any other write.
8
+ */
9
+ export const repairHtmlText = async (store, address, now = Date.now()) => {
10
+ const key = { provider: "email", account: address.toLowerCase() };
11
+ if ((await store.syncState(key, REPAIRED))?.value === VERSION)
12
+ return undefined;
13
+ const stored = await store.storedAccount(key).catch(() => null);
14
+ if (stored === null)
15
+ return undefined;
16
+ let repaired = 0;
17
+ for (const { externalId, deleted, mailboxes } of await store.mail.emailRefs({ accountId: stored.id })) {
18
+ if (deleted || mailboxes.some(({ kind }) => kind === ENVELOPE))
19
+ continue;
20
+ const email = await store.mail.email(stored.id, externalId);
21
+ if (email === null || !email.bodyText || !looksLikeHtml(email.bodyText))
22
+ continue;
23
+ const [placed] = await store.mail.inThreads(stored.id, [externalId]);
24
+ if (placed === undefined)
25
+ continue;
26
+ await store.mail.saveThread({
27
+ accountId: stored.id,
28
+ externalId: placed.threadExternalId,
29
+ now,
30
+ emails: [
31
+ {
32
+ externalId,
33
+ subject: email.subject,
34
+ from: email.fromAddress === null ? null : { address: email.fromAddress, name: email.fromName },
35
+ sentAt: email.sentAt,
36
+ bodyText: htmlToText(email.bodyText),
37
+ },
38
+ ],
39
+ });
40
+ repaired++;
41
+ }
42
+ await store.setSyncState(key, REPAIRED, VERSION);
43
+ return repaired;
44
+ };
45
+ //# sourceMappingURL=repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair.js","sourceRoot":"","sources":["../../src/mail/repair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,QAAQ,GAAG,kBAAkB,CAAA;AACnC,MAAM,OAAO,GAAG,aAAa,CAAA;AAE7B;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,KAAmB,EACnB,OAAe,EACf,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EACa,EAAE;IAC/B,MAAM,GAAG,GAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;IAC7E,IAAI,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO;QAAE,OAAO,SAAS,CAAA;IAC/E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACrC,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,KAAK,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACtG,IAAI,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,SAAQ;QACxE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACjF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;QACpE,IAAI,MAAM,KAAK,SAAS;YAAE,SAAQ;QAClC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC,EAAE;YACpB,UAAU,EAAE,MAAM,CAAC,gBAAgB;YACnC,GAAG;YACH,MAAM,EAAE;gBACN;oBACE,UAAU;oBACV,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;oBAC9F,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACrC;aACF;SACF,CAAC,CAAA;QACF,QAAQ,EAAE,CAAA;IACZ,CAAC;IACD,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAChD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { MailAction, MailRuleMatch } from "./rules.js";
2
+ export declare const FILTER_HELP: string;
3
+ /** `from:` as Gmail reads it: one address, a whole domain (`shop.example`, `@shop.example`), or a word it contains. */
4
+ export declare const senderMatch: (value: string) => MailRuleMatch;
5
+ export declare const isAddress: (value: string) => boolean;
6
+ /** The conditions of a rule's --filter query. */
7
+ export declare const filterMatch: (query: string) => MailRuleMatch;
8
+ export declare const ACTION_HELP: string;
9
+ /** `envelope,tag:promo` → the store action, protection and tags. */
10
+ export declare const actionsOf: (value: string) => {
11
+ action: MailAction;
12
+ protect: boolean;
13
+ tags: string[];
14
+ };
15
+ //# sourceMappingURL=rule-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-query.d.ts","sourceRoot":"","sources":["../../src/mail/rule-query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE3D,eAAO,MAAM,WAAW,QAEwD,CAAA;AAMhF,uHAAuH;AACvH,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,aAI3C,CAAA;AAED,eAAO,MAAM,SAAS,UAAW,MAAM,YAAwB,CAAA;AAS/D,iDAAiD;AACjD,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,aAmD3C,CAAA;AAED,eAAO,MAAM,WAAW,QAGoF,CAAA;AAI5G,oEAAoE;AACpE,eAAO,MAAM,SAAS,UAAW,MAAM,KAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAY/F,CAAA"}
@@ -0,0 +1,101 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ export const FILTER_HELP = "from:<address, domain or word>, to:<address>, subject:<word> (or a bare word), older:<n>d, larger:<size> (5MB, 300KB), has:attachment, label:<name> " +
3
+ '(label:"Two words"), is:unread, is:bulk, score:<n> (at least); all must hold';
4
+ const bad = (why) => new CliError("validation_error", `--filter: ${why}`);
5
+ const ADDRESS = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
6
+ /** `from:` as Gmail reads it: one address, a whole domain (`shop.example`, `@shop.example`), or a word it contains. */
7
+ export const senderMatch = (value) => {
8
+ if (ADDRESS.test(value))
9
+ return { from: value.toLowerCase() };
10
+ const domain = value.replace(/^@/, "");
11
+ return /^[a-z0-9-]+(\.[a-z0-9-]+)+$/i.test(domain) ? { domain: domain.toLowerCase() } : { from_contains: value };
12
+ };
13
+ export const isAddress = (value) => ADDRESS.test(value);
14
+ const bytesOf = (value) => {
15
+ const match = /^(\d+(?:\.\d+)?)(b|kb|mb|gb)?$/i.exec(value);
16
+ if (match === null)
17
+ throw bad(`larger:${value} is not a size like 5MB, 300KB or 2048`);
18
+ const unit = { b: 1, kb: 1024, mb: 1024 ** 2, gb: 1024 ** 3 }[(match[2] ?? "b").toLowerCase()];
19
+ return Math.round(Number(match[1]) * unit);
20
+ };
21
+ /** The conditions of a rule's --filter query. */
22
+ export const filterMatch = (query) => {
23
+ const words = [];
24
+ const match = {};
25
+ for (const [, field, quoted, plain, word] of query.matchAll(/(\w+):(?:"([^"]*)"|(\S+))|(\S+)/g)) {
26
+ const value = quoted ?? plain ?? "";
27
+ if (word !== undefined) {
28
+ words.push(word);
29
+ continue;
30
+ }
31
+ switch (field?.toLowerCase()) {
32
+ case "from":
33
+ Object.assign(match, senderMatch(value));
34
+ break;
35
+ case "to":
36
+ if (!ADDRESS.test(value))
37
+ throw bad(`to:${value} needs one address, like to:me@example.com`);
38
+ match.to = value.toLowerCase();
39
+ break;
40
+ case "subject":
41
+ words.push(...value.split(/\s+/).filter(Boolean));
42
+ break;
43
+ case "older": {
44
+ const days = /^(\d+)d$/i.exec(value)?.[1];
45
+ if (days === undefined)
46
+ throw bad(`older:${value} needs days, like older:365d`);
47
+ match.older_than_days = Number(days);
48
+ break;
49
+ }
50
+ case "larger":
51
+ match.larger_than_bytes = bytesOf(value);
52
+ break;
53
+ case "has":
54
+ if (!/^attachments?$/i.test(value))
55
+ throw bad(`has:${value}; only has:attachment is known`);
56
+ match.has_attachments = true;
57
+ break;
58
+ case "label":
59
+ match.label = value;
60
+ break;
61
+ case "is":
62
+ if (/^unread$/i.test(value))
63
+ match.unread = true;
64
+ else if (/^bulk$/i.test(value))
65
+ match.bulk = true;
66
+ else
67
+ throw bad(`is:${value}; is:unread and is:bulk are known`);
68
+ break;
69
+ case "score":
70
+ if (!/^-?\d+$/.test(value))
71
+ throw bad(`score:${value} needs a whole number`);
72
+ match.score_at_least = Number(value);
73
+ break;
74
+ default:
75
+ throw bad(`${field}: is not a field; use ${FILTER_HELP}`);
76
+ }
77
+ }
78
+ if (words.length)
79
+ match.subject = words.join(" ");
80
+ return match;
81
+ };
82
+ export const ACTION_HELP = "one of skip (never read or store), envelope (store only sender, date, size and labels: counted, out of search, " +
83
+ "cleanable later), keep (store in full even when a skip or envelope rule matches) or protect (keep, and no " +
84
+ "cleanup may ever cut, archive or trash it); add tag:<name> to also tag the mail, e.g. envelope,tag:promo";
85
+ const ACTIONS = ["skip", "envelope", "keep", "protect"];
86
+ /** `envelope,tag:promo` → the store action, protection and tags. */
87
+ export const actionsOf = (value) => {
88
+ const parts = value
89
+ .split(",")
90
+ .map((part) => part.trim())
91
+ .filter(Boolean);
92
+ const tags = parts.filter((part) => part.startsWith("tag:")).map((part) => part.slice(4).trim());
93
+ const actions = parts.filter((part) => !part.startsWith("tag:"));
94
+ if (tags.some((tag) => tag === ""))
95
+ throw new CliError("validation_error", "--do: tag: needs a name, e.g. tag:promo");
96
+ if (actions.length !== 1 || !ACTIONS.includes(actions[0]))
97
+ throw new CliError("validation_error", `--do: choose ${ACTIONS.join(", ")}, plus any tag:<name>`);
98
+ const action = actions[0];
99
+ return { action: action === "protect" ? "keep" : action, protect: action === "protect", tags };
100
+ };
101
+ //# sourceMappingURL=rule-query.js.map