@wirecat/cli-memo 0.41.0 → 0.42.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 (83) 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 +1 -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/mail/apply.d.ts +7 -0
  9. package/dist/mail/apply.d.ts.map +1 -1
  10. package/dist/mail/apply.js +27 -4
  11. package/dist/mail/apply.js.map +1 -1
  12. package/dist/mail/bulk.d.ts +8 -0
  13. package/dist/mail/bulk.d.ts.map +1 -0
  14. package/dist/mail/bulk.js +4 -0
  15. package/dist/mail/bulk.js.map +1 -0
  16. package/dist/mail/command.d.ts.map +1 -1
  17. package/dist/mail/command.js +123 -44
  18. package/dist/mail/command.js.map +1 -1
  19. package/dist/mail/facts.d.ts +10 -0
  20. package/dist/mail/facts.d.ts.map +1 -0
  21. package/dist/mail/facts.js +23 -0
  22. package/dist/mail/facts.js.map +1 -0
  23. package/dist/mail/filters.d.ts +11 -0
  24. package/dist/mail/filters.d.ts.map +1 -0
  25. package/dist/mail/filters.js +150 -0
  26. package/dist/mail/filters.js.map +1 -0
  27. package/dist/mail/headers.d.ts +3 -1
  28. package/dist/mail/headers.d.ts.map +1 -1
  29. package/dist/mail/headers.js +2 -1
  30. package/dist/mail/headers.js.map +1 -1
  31. package/dist/mail/import.d.ts +5 -0
  32. package/dist/mail/import.d.ts.map +1 -1
  33. package/dist/mail/import.js +25 -4
  34. package/dist/mail/import.js.map +1 -1
  35. package/dist/mail/parse.d.ts +3 -0
  36. package/dist/mail/parse.d.ts.map +1 -1
  37. package/dist/mail/parse.js +7 -2
  38. package/dist/mail/parse.js.map +1 -1
  39. package/dist/mail/presets.d.ts +31 -0
  40. package/dist/mail/presets.d.ts.map +1 -0
  41. package/dist/mail/presets.js +96 -0
  42. package/dist/mail/presets.js.map +1 -0
  43. package/dist/mail/probe.d.ts +13 -0
  44. package/dist/mail/probe.d.ts.map +1 -1
  45. package/dist/mail/probe.js +17 -1
  46. package/dist/mail/probe.js.map +1 -1
  47. package/dist/mail/repair.d.ts +7 -0
  48. package/dist/mail/repair.d.ts.map +1 -0
  49. package/dist/mail/repair.js +45 -0
  50. package/dist/mail/repair.js.map +1 -0
  51. package/dist/mail/rule-query.d.ts +15 -0
  52. package/dist/mail/rule-query.d.ts.map +1 -0
  53. package/dist/mail/rule-query.js +101 -0
  54. package/dist/mail/rule-query.js.map +1 -0
  55. package/dist/mail/rule-store.d.ts +3 -5
  56. package/dist/mail/rule-store.d.ts.map +1 -1
  57. package/dist/mail/rule-store.js +47 -17
  58. package/dist/mail/rule-store.js.map +1 -1
  59. package/dist/mail/rule-tags.d.ts +41 -0
  60. package/dist/mail/rule-tags.d.ts.map +1 -0
  61. package/dist/mail/rule-tags.js +88 -0
  62. package/dist/mail/rule-tags.js.map +1 -0
  63. package/dist/mail/rules.d.ts +51 -6
  64. package/dist/mail/rules.d.ts.map +1 -1
  65. package/dist/mail/rules.js +86 -22
  66. package/dist/mail/rules.js.map +1 -1
  67. package/dist/mail/score.d.ts +2 -0
  68. package/dist/mail/score.d.ts.map +1 -1
  69. package/dist/mail/score.js +11 -1
  70. package/dist/mail/score.js.map +1 -1
  71. package/dist/reasons.d.ts.map +1 -1
  72. package/dist/reasons.js +6 -0
  73. package/dist/reasons.js.map +1 -1
  74. package/dist/run/import.d.ts.map +1 -1
  75. package/dist/run/import.js +4 -0
  76. package/dist/run/import.js.map +1 -1
  77. package/dist/search/command.d.ts.map +1 -1
  78. package/dist/search/command.js +12 -3
  79. package/dist/search/command.js.map +1 -1
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/package.json +2 -2
  83. package/skills/cli-memo/SKILL.md +8 -2
@@ -0,0 +1,41 @@
1
+ import type { AccountKey, MessageStore } from "@wirecat/cli-core/store";
2
+ import type { MailRule } from "./rules.js";
3
+ type MessageRef = {
4
+ type: "message";
5
+ chatId: string;
6
+ messageId: string;
7
+ };
8
+ export interface TagOutcome {
9
+ /** A rule's tag the store refused as too close to an existing label, put on mail as that label instead. */
10
+ reused: {
11
+ tag: string;
12
+ as: string;
13
+ }[];
14
+ /** A rule's tag the store refused with nothing to reuse: the mail is stored, untagged. */
15
+ skipped: {
16
+ tag: string;
17
+ reason: string;
18
+ emails: number;
19
+ }[];
20
+ }
21
+ /**
22
+ * Tags mail for confirmed rules. A label the store refuses never fails the import: the label it points to is
23
+ * reused, and a tag with nothing to reuse is skipped and counted.
24
+ */
25
+ export declare const ruleTagger: (store: MessageStore, key: AccountKey) => {
26
+ tag: (ref: MessageRef, tags: readonly string[]) => Promise<void>;
27
+ outcome: () => TagOutcome;
28
+ };
29
+ /** Writes what a run learned back into the rules, so the next run tags with the reused label and skips the rest. */
30
+ export declare const settleRuleTags: (store: MessageStore, accountId: number, rules: readonly MailRule[], outcome: TagOutcome) => Promise<void>;
31
+ /** Proposed tags matched to labels that already exist, before any is created: `reuse` exact, `similar` closest. */
32
+ export declare const mapProposedTags: (store: MessageStore, rules: readonly MailRule[]) => Promise<{
33
+ rules: MailRule[];
34
+ mapping: {
35
+ tag: string;
36
+ as: string;
37
+ why: "reuse" | "similar";
38
+ }[];
39
+ }>;
40
+ export {};
41
+ //# sourceMappingURL=rule-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-tags.d.ts","sourceRoot":"","sources":["../../src/mail/rule-tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAExE,MAAM,WAAW,UAAU;IACzB,2GAA2G;IAC3G,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACrC,0FAA0F;IAC1F,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC3D;AAYD;;;GAGG;AACH,eAAO,MAAM,UAAU,UAAW,YAAY,OAAO,UAAU;IA4B3D,GAAG,QAAc,UAAU,QAAQ,SAAS,MAAM,EAAE;IAGpD,OAAO,QAAM,UAAU;CAK1B,CAAA;AAED,oHAAoH;AACpH,eAAO,MAAM,cAAc,UAClB,YAAY,aACR,MAAM,SACV,SAAS,QAAQ,EAAE,WACjB,UAAU,KAClB,OAAO,CAAC,IAAI,CAcd,CAAA;AAED,mHAAmH;AACnH,eAAO,MAAM,eAAe,UACnB,YAAY,SACZ,SAAS,QAAQ,EAAE,KACzB,OAAO,CAAC;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,EAAE,CAAA;CAAE,CAqBjG,CAAA"}
@@ -0,0 +1,88 @@
1
+ import { ruleInput } from "./rule-store.js";
2
+ const reuseOf = (error) => {
3
+ const { details } = error;
4
+ return details?.reason === "tag-review.required" ? details.candidates?.[0]?.name : undefined;
5
+ };
6
+ /**
7
+ * Tags mail for confirmed rules. A label the store refuses never fails the import: the label it points to is
8
+ * reused, and a tag with nothing to reuse is skipped and counted.
9
+ */
10
+ export const ruleTagger = (store, key) => {
11
+ const resolved = new Map();
12
+ const reasons = new Map();
13
+ const skippedEmails = new Map();
14
+ const add = async (ref, tag) => {
15
+ const known = resolved.get(tag);
16
+ if (known === null) {
17
+ skippedEmails.set(tag, (skippedEmails.get(tag) ?? 0) + 1);
18
+ return;
19
+ }
20
+ const name = known ?? tag;
21
+ try {
22
+ await store.addTags(key, ref, [name]);
23
+ if (known === undefined)
24
+ resolved.set(tag, name);
25
+ }
26
+ catch (error) {
27
+ const reuse = known === undefined ? reuseOf(error) : undefined;
28
+ if (reuse !== undefined) {
29
+ resolved.set(tag, reuse);
30
+ return add(ref, tag);
31
+ }
32
+ resolved.set(tag, null);
33
+ reasons.set(tag, error.message ?? String(error));
34
+ skippedEmails.set(tag, (skippedEmails.get(tag) ?? 0) + 1);
35
+ }
36
+ };
37
+ return {
38
+ tag: async (ref, tags) => {
39
+ for (const tag of tags)
40
+ await add(ref, tag);
41
+ },
42
+ outcome: () => ({
43
+ reused: [...resolved].flatMap(([tag, as]) => (as !== null && as !== tag ? [{ tag, as }] : [])),
44
+ skipped: [...reasons].map(([tag, reason]) => ({ tag, reason, emails: skippedEmails.get(tag) ?? 0 })),
45
+ }),
46
+ };
47
+ };
48
+ /** Writes what a run learned back into the rules, so the next run tags with the reused label and skips the rest. */
49
+ export const settleRuleTags = async (store, accountId, rules, outcome) => {
50
+ if (outcome.reused.length === 0 && outcome.skipped.length === 0)
51
+ return;
52
+ const as = new Map(outcome.reused.map(({ tag, as }) => [tag, as]));
53
+ const skipped = new Map(outcome.skipped.map(({ tag, reason }) => [tag, reason]));
54
+ for (const rule of rules) {
55
+ if (rule.id === undefined || !rule.tags?.some((tag) => as.has(tag) || skipped.has(tag)))
56
+ continue;
57
+ const tags = [...new Set(rule.tags.filter((tag) => !skipped.has(tag)).map((tag) => as.get(tag) ?? tag))];
58
+ const tagsSkipped = { ...rule.tags_skipped };
59
+ for (const tag of rule.tags) {
60
+ const why = skipped.get(tag);
61
+ if (why !== undefined)
62
+ tagsSkipped[tag] = why;
63
+ }
64
+ await store.mail.rules.upsert(accountId, ruleInput({ ...rule, tags, tags_skipped: tagsSkipped }), Date.now());
65
+ }
66
+ };
67
+ /** Proposed tags matched to labels that already exist, before any is created: `reuse` exact, `similar` closest. */
68
+ export const mapProposedTags = async (store, rules) => {
69
+ const mapping = [];
70
+ for (const tag of new Set(rules.flatMap(({ tags }) => tags ?? []))) {
71
+ const plan = await store.knowledge.tagPreflight(tag).catch(() => undefined);
72
+ const as = plan?.disposition === "reuse"
73
+ ? plan.existing?.name
74
+ : plan?.disposition === "review"
75
+ ? plan.suggestions[0]?.entry.name
76
+ : undefined;
77
+ if (as !== undefined && as !== tag)
78
+ mapping.push({ tag, as, why: plan?.disposition === "reuse" ? "reuse" : "similar" });
79
+ }
80
+ if (mapping.length === 0)
81
+ return { rules: [...rules], mapping };
82
+ const as = new Map(mapping.map(({ tag, as }) => [tag, as]));
83
+ return {
84
+ rules: rules.map((rule) => rule.tags?.length ? { ...rule, tags: [...new Set(rule.tags.map((tag) => as.get(tag) ?? tag))] } : rule),
85
+ mapping,
86
+ };
87
+ };
88
+ //# sourceMappingURL=rule-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-tags.js","sourceRoot":"","sources":["../../src/mail/rule-tags.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,29 @@
1
1
  import type { MailHeaders } from "./headers.js";
2
+ import { type PresetName } from "./presets.js";
3
+ /** All given conditions must hold; a rule with none matches nothing. */
2
4
  export interface MailRuleMatch {
3
5
  from?: string;
6
+ /** A word the sender's address or display name contains, any case: Gmail's `from:smith`. */
7
+ from_contains?: string;
4
8
  domain?: string;
9
+ /** One recipient address in To or Cc. */
10
+ to?: string;
5
11
  list_id?: string;
12
+ /** Words that must all appear in the subject, any case. */
13
+ subject?: string;
14
+ older_than_days?: number;
15
+ larger_than_bytes?: number;
16
+ /** Sent as `multipart/mixed`, the way mail with attachments is. */
17
+ has_attachments?: boolean;
18
+ /** A Gmail label, by its plain name: `Promotions`, `Inbox`, or one the owner made. */
19
+ label?: string;
20
+ unread?: boolean;
21
+ /** List-Id, List-Unsubscribe or `Precedence: bulk`. */
22
+ bulk?: boolean;
23
+ /** The sender's score (memo mail probe) is at least this. */
24
+ score_at_least?: number;
25
+ /** A built-in kind of mail, see presets.ts. */
26
+ preset?: PresetName;
6
27
  }
7
28
  export type MailAction = "skip" | "envelope" | "keep";
8
29
  export interface MailRule {
@@ -11,18 +32,42 @@ export interface MailRule {
11
32
  match: MailRuleMatch;
12
33
  /** skip: never read or stored · envelope: stored without its text, so it can be counted and cleaned later. */
13
34
  action: MailAction;
35
+ /** memo tags put on every email the rule matches, with any action. */
36
+ tags?: string[];
37
+ /** Tags the store refused with no label to reuse, and why; the mail is stored untagged. */
38
+ tags_skipped?: Record<string, string>;
14
39
  reason?: string;
15
- /** No cleanup may cut, archive or trash what this rule matches. */
40
+ /** Stored in full, and no cleanup may cut, archive or trash it, whatever other rules or presets say. */
16
41
  protected?: boolean;
42
+ /** owner, preset:<name>, probe or gmail-filter. */
43
+ source?: string;
17
44
  decided_at: string;
18
45
  }
19
- /** A domain also matches its subdomains: bulk mail often comes from `mail.` or `news.` of the same domain. */
20
- export declare const matches: (match: MailRuleMatch, headers: MailHeaders) => boolean;
46
+ /** What is known of one email when a rule decides it: its headers at list time, and what the listing says. */
47
+ export interface MailFacts {
48
+ headers?: MailHeaders;
49
+ receivedAt?: string;
50
+ size?: number;
51
+ labels?: string[];
52
+ seen?: boolean;
53
+ /** The sender group's score, when a rule asks for one. */
54
+ score?: number;
55
+ /** The owner wrote to this sender. */
56
+ replied?: boolean;
57
+ }
58
+ /** Unknown facts never match: a rule about size skips an email whose size the listing did not give. */
59
+ export declare const matches: (match: MailRuleMatch, facts: MailFacts, now?: number) => boolean;
21
60
  /**
22
- * The rule that decides an email: keep wins over envelope, envelope over skip, so a keep for one sender overrides
23
- * a skip of its domain, and mail both record and drop rules match is recorded, since a record can be cleaned later.
61
+ * The rule that decides an email. A protected rule wins over everything and keeps the mail whole; then keep wins
62
+ * over envelope, envelope over skip, so a keep for one sender overrides a skip of its domain and mail both record
63
+ * and drop rules match is recorded, since a record can be cleaned later. An explicit rule wins over a preset.
24
64
  */
25
- export declare const decide: (rules: readonly MailRule[], headers: MailHeaders | undefined) => MailRule | undefined;
65
+ export declare const decide: (rules: readonly MailRule[], facts: MailFacts | undefined) => MailRule | undefined;
66
+ /** The tags of every rule that matches, whichever rule decides the action. */
67
+ export declare const tagsOf: (rules: readonly MailRule[], facts: MailFacts) => string[];
68
+ export declare const conditionKeys: (match: MailRuleMatch) => (keyof MailRuleMatch)[];
69
+ /** A short, stable name of a match: `domain shop.example`, or `subject invoice, larger_than_bytes 1000`. */
70
+ export declare const describeMatch: (match: MailRuleMatch) => string;
26
71
  /** Where the store keeps the emails one envelope rule recorded: a mailbox of its own, per rule. */
27
72
  export declare const envelopeBox: (match: MailRuleMatch) => {
28
73
  externalId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/mail/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;AAErD,MAAM,WAAW,QAAQ;IACvB,sDAAsD;IACtD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,aAAa,CAAA;IACpB,8GAA8G;IAC9G,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAID,8GAA8G;AAC9G,eAAO,MAAM,OAAO,UAAW,aAAa,WAAW,WAAW,KAAG,OAWpE,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,MAAM,UAAW,SAAS,QAAQ,EAAE,WAAW,WAAW,GAAG,SAAS,KAAG,QAAQ,GAAG,SAGhG,CAAA;AAED,mGAAmG;AACnG,eAAO,MAAM,WAAW,UAAW,aAAa;;;;CAY/C,CAAA;AAED,eAAO,MAAM,QAAQ,aAAa,CAAA;AAElC,eAAO,MAAM,SAAS,MAAO,aAAa,KAAK,aAAa,KAAG,OAGR,CAAA;AAEvD,eAAO,MAAM,aAAa,eAAgB,MAAM;;;;CAG/C,CAAA"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/mail/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,cAAc,CAAA;AAE7D,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;AAErD,MAAM,WAAW,QAAQ;IACvB,sDAAsD;IACtD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,aAAa,CAAA;IACpB,8GAA8G;IAC9G,MAAM,EAAE,UAAU,CAAA;IAClB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wGAAwG;IACxG,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,8GAA8G;AAC9G,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAgBD,uGAAuG;AACvG,eAAO,MAAM,OAAO,UAAW,aAAa,SAAS,SAAS,mBAAqB,OA0ClF,CAAA;AAOD;;;;GAIG;AACH,eAAO,MAAM,MAAM,UAAW,SAAS,QAAQ,EAAE,SAAS,SAAS,GAAG,SAAS,KAAG,QAAQ,GAAG,SAK5F,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,MAAM,UAAW,SAAS,QAAQ,EAAE,SAAS,SAAS,KAAG,MAAM,EAI3E,CAAA;AAKD,eAAO,MAAM,aAAa,UAAW,aAAa,4BACgD,CAAA;AAElG,4GAA4G;AAC5G,eAAO,MAAM,aAAa,UAAW,aAAa,KAAG,MAGtC,CAAA;AAEf,mGAAmG;AACnG,eAAO,MAAM,WAAW,UAAW,aAAa;;;;CAW/C,CAAA;AAED,eAAO,MAAM,QAAQ,aAAa,CAAA;AAUlC,eAAO,MAAM,SAAS,MAAO,aAAa,KAAK,aAAa,KAAG,OAA0C,CAAA;AAEzG,eAAO,MAAM,aAAa,eAAgB,MAAM;;;;CAG/C,CAAA"}
@@ -1,33 +1,95 @@
1
+ import { presetMatches } from "./presets.js";
2
+ const DAY_MS = 24 * 60 * 60 * 1000;
1
3
  const domainOf = (address) => address.slice(address.lastIndexOf("@") + 1);
2
4
  /** A domain also matches its subdomains: bulk mail often comes from `mail.` or `news.` of the same domain. */
3
- export const matches = (match, headers) => {
4
- const { from, domain, list_id: listId } = match;
5
- if (from === undefined && domain === undefined && listId === undefined)
5
+ const domainMatches = (wanted, sender) => {
6
+ if (sender === undefined)
6
7
  return false;
7
- const sender = headers.from;
8
- const host = sender === undefined ? undefined : domainOf(sender);
9
- const wanted = domain?.toLowerCase();
10
- return ((from === undefined || sender === from.toLowerCase()) &&
11
- (wanted === undefined || (host !== undefined && (host === wanted || host.endsWith(`.${wanted}`)))) &&
12
- (listId === undefined || headers.listId === listId.toLowerCase()));
8
+ const host = domainOf(sender);
9
+ const domain = wanted.toLowerCase();
10
+ return host === domain || host.endsWith(`.${domain}`);
11
+ };
12
+ const words = (text) => text.toLowerCase().split(/\s+/).filter(Boolean);
13
+ /** Unknown facts never match: a rule about size skips an email whose size the listing did not give. */
14
+ export const matches = (match, facts, now = Date.now()) => {
15
+ const conditions = Object.entries(match).filter(([, value]) => value !== undefined);
16
+ if (conditions.length === 0)
17
+ return false;
18
+ const { headers } = facts;
19
+ return conditions.every(([key, value]) => {
20
+ switch (key) {
21
+ case "from":
22
+ return headers?.from === String(value).toLowerCase();
23
+ case "from_contains": {
24
+ const word = String(value).toLowerCase();
25
+ return [headers?.from, headers?.fromName?.toLowerCase()].some((part) => part?.includes(word) ?? false);
26
+ }
27
+ case "domain":
28
+ return domainMatches(String(value), headers?.from);
29
+ case "to":
30
+ return headers?.to.includes(String(value).toLowerCase()) ?? false;
31
+ case "list_id":
32
+ return headers?.listId === String(value).toLowerCase();
33
+ case "subject": {
34
+ const subject = headers?.subject?.toLowerCase();
35
+ return subject !== undefined && words(String(value)).every((word) => subject.includes(word));
36
+ }
37
+ case "older_than_days":
38
+ return facts.receivedAt !== undefined && now - Date.parse(facts.receivedAt) > Number(value) * DAY_MS;
39
+ case "larger_than_bytes":
40
+ return facts.size !== undefined && facts.size > Number(value);
41
+ case "has_attachments":
42
+ return headers !== undefined && (headers.attachments === true) === value;
43
+ case "label":
44
+ return facts.labels?.some((label) => label.toLowerCase() === String(value).toLowerCase()) ?? false;
45
+ case "unread":
46
+ return facts.seen !== undefined && !facts.seen === value;
47
+ case "bulk":
48
+ return headers !== undefined && headers.bulk === value;
49
+ case "score_at_least":
50
+ return facts.score !== undefined && facts.score >= Number(value);
51
+ case "preset":
52
+ return presetMatches(value, facts);
53
+ default:
54
+ return false;
55
+ }
56
+ });
13
57
  };
14
58
  const RANK = { keep: 0, envelope: 1, skip: 2 };
59
+ const strength = (rule) => (rule.protected ? 0 : 10) + RANK[rule.action] + (rule.source?.startsWith("preset:") ? 5 : 0);
15
60
  /**
16
- * The rule that decides an email: keep wins over envelope, envelope over skip, so a keep for one sender overrides
17
- * a skip of its domain, and mail both record and drop rules match is recorded, since a record can be cleaned later.
61
+ * The rule that decides an email. A protected rule wins over everything and keeps the mail whole; then keep wins
62
+ * over envelope, envelope over skip, so a keep for one sender overrides a skip of its domain and mail both record
63
+ * and drop rules match is recorded, since a record can be cleaned later. An explicit rule wins over a preset.
18
64
  */
19
- export const decide = (rules, headers) => {
20
- if (headers === undefined)
65
+ export const decide = (rules, facts) => {
66
+ if (facts?.headers === undefined)
21
67
  return undefined;
22
- return rules.filter((rule) => matches(rule.match, headers)).sort((a, b) => RANK[a.action] - RANK[b.action])[0];
68
+ const now = Date.now();
69
+ const hit = rules.filter((rule) => matches(rule.match, facts, now)).sort((a, b) => strength(a) - strength(b))[0];
70
+ return hit?.protected ? { ...hit, action: "keep" } : hit;
71
+ };
72
+ /** The tags of every rule that matches, whichever rule decides the action. */
73
+ export const tagsOf = (rules, facts) => {
74
+ if (facts.headers === undefined)
75
+ return [];
76
+ const now = Date.now();
77
+ return [...new Set(rules.flatMap((rule) => (rule.tags?.length && matches(rule.match, facts, now) ? rule.tags : [])))];
23
78
  };
79
+ /** The only conditions an envelope mailbox can be named by: one sender, domain or list. */
80
+ const SINGLE = ["from", "domain", "list_id"];
81
+ export const conditionKeys = (match) => Object.keys(match).filter((key) => match[key] !== undefined).sort();
82
+ /** A short, stable name of a match: `domain shop.example`, or `subject invoice, larger_than_bytes 1000`. */
83
+ export const describeMatch = (match) => conditionKeys(match)
84
+ .map((key) => `${key === "list_id" ? "list-id" : key.replace(/_/g, "-")} ${String(match[key])}`)
85
+ .join(", ");
24
86
  /** Where the store keeps the emails one envelope rule recorded: a mailbox of its own, per rule. */
25
87
  export const envelopeBox = (match) => {
26
- const [kind, value] = match.from !== undefined
27
- ? ["from", match.from]
28
- : match.domain !== undefined
29
- ? ["domain", match.domain]
30
- : ["list-id", match.list_id ?? ""];
88
+ const keys = conditionKeys(match);
89
+ const single = keys.length === 1 && SINGLE.includes(keys[0]);
90
+ const [kind, value] = single
91
+ ? [keys[0] === "list_id" ? "list-id" : String(keys[0]), String(match[keys[0]])]
92
+ : ["rule", describeMatch(match)];
31
93
  return {
32
94
  externalId: `memo:envelope:${kind}:${value.toLowerCase()}`,
33
95
  name: `envelope: ${kind} ${value}`,
@@ -35,9 +97,11 @@ export const envelopeBox = (match) => {
35
97
  };
36
98
  };
37
99
  export const ENVELOPE = "envelope";
38
- export const sameMatch = (a, b) => a.from?.toLowerCase() === b.from?.toLowerCase() &&
39
- a.domain?.toLowerCase() === b.domain?.toLowerCase() &&
40
- a.list_id?.toLowerCase() === b.list_id?.toLowerCase();
100
+ const normalized = (match) => JSON.stringify(conditionKeys(match).map((key) => {
101
+ const value = match[key];
102
+ return [key, typeof value === "string" ? value.toLowerCase() : value];
103
+ }));
104
+ export const sameMatch = (a, b) => normalized(a) === normalized(b);
41
105
  export const envelopeBoxOf = (externalId) => {
42
106
  const [, , kind, ...value] = externalId.split(":");
43
107
  return { externalId, name: `envelope: ${kind} ${value.join(":")}`, kind: ENVELOPE };
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/mail/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/mail/rules.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export declare const WEIGHTS: {
9
9
  readonly brand_spoof: 3;
10
10
  readonly young_domain: 3;
11
11
  readonly reply_to_elsewhere: 2;
12
+ readonly never_opened: 2;
13
+ readonly dkim_not_passed: 2;
12
14
  readonly disposable_domain: 2;
13
15
  readonly bulk_never_replied: 1;
14
16
  readonly replied: -5;
@@ -1 +1 @@
1
- {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/mail/score.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,OAAO;aAClB,WAAW,EAAE,CAAC;aACd,UAAU,EAAE,CAAC;aACb,WAAW,EAAE,CAAC;aACd,YAAY,EAAE,CAAC;aACf,kBAAkB,EAAE,CAAC;aACrB,iBAAiB,EAAE,CAAC;aACpB,kBAAkB,EAAE,CAAC;aACrB,OAAO,EAAE,CAAC,CAAC;CACH,CAAA;AAEV,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,OAAO,CAAA;AAEzC,eAAO,MAAM,UAAU,QAG6E,CAAA;AAEpG,iGAAiG;AACjG,eAAO,MAAM,UAAU,MAAM,CAAA;AAE7B,iHAAiH;AACjH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,2FAA2F;AAC3F,eAAO,MAAM,aAAa,YAAa,MAAM,KAAG,MAG/C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,aAwBpB,CAAA;AAuBF,yFAAyF;AACzF,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,SAAS,WAAW,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAM7F,CAAA;AAID,qEAAqE;AACrE,eAAO,MAAM,OAAO,QAAS,SAAS,GAAG,SAAS,MAAM,MAAM,KAAG,OAC6B,CAAA;AAE9F,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAKD;;;GAGG;AACH,eAAO,MAAM,UAAU,UACd,MAAM,EAAE,WACN;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,KAChF,MAsBF,CAAA"}
1
+ {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/mail/score.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,OAAO;aAClB,WAAW,EAAE,CAAC;aACd,UAAU,EAAE,CAAC;aACb,WAAW,EAAE,CAAC;aACd,YAAY,EAAE,CAAC;aACf,kBAAkB,EAAE,CAAC;aACrB,YAAY,EAAE,CAAC;aACf,eAAe,EAAE,CAAC;aAClB,iBAAiB,EAAE,CAAC;aACpB,kBAAkB,EAAE,CAAC;aACrB,OAAO,EAAE,CAAC,CAAC;CACH,CAAA;AAEV,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,OAAO,CAAA;AAEzC,eAAO,MAAM,UAAU,QAI4B,CAAA;AAEnD,iGAAiG;AACjG,eAAO,MAAM,UAAU,MAAM,CAAA;AAE7B,iHAAiH;AACjH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,2FAA2F;AAC3F,eAAO,MAAM,aAAa,YAAa,MAAM,KAAG,MAG/C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,aAwBpB,CAAA;AAuBF,yFAAyF;AACzF,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,SAAS,WAAW,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAM7F,CAAA;AAID,qEAAqE;AACrE,eAAO,MAAM,OAAO,QAAS,SAAS,GAAG,SAAS,MAAM,MAAM,KAAG,OAC6B,CAAA;AAE9F,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAKD;;;GAGG;AACH,eAAO,MAAM,UAAU,UACd,MAAM,EAAE,WACN;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,KAChF,MA2BF,CAAA"}
@@ -10,13 +10,16 @@ export const WEIGHTS = {
10
10
  brand_spoof: 3,
11
11
  young_domain: 3,
12
12
  reply_to_elsewhere: 2,
13
+ never_opened: 2,
14
+ dkim_not_passed: 2,
13
15
  disposable_domain: 2,
14
16
  bulk_never_replied: 1,
15
17
  replied: -5,
16
18
  };
17
19
  export const SCORE_RULE = "score adds: in Gmail's Spam +4, Gmail's DMARC check failed +3, a brand in the display name sent from another " +
18
20
  "domain +3, the domain under 180 days old when the mail came +3 (only with looked-up ages), Reply-To on another " +
19
- "domain +2, a throwaway-mail domain +2, bulk mail never replied to +1, replied to by the owner -5";
21
+ "domain +2, none of its mail ever opened +2, Gmail's DKIM check not passed +2, a throwaway-mail domain +2, bulk mail " +
22
+ "never replied to +1, replied to by the owner -5";
20
23
  /** A domain registered too recently to trust: under this many days old when the mail arrived. */
21
24
  export const YOUNG_DAYS = 180;
22
25
  /** The part of a host a person registers: `mail.news.example.co.uk` is `example.co.uk`. */
@@ -107,6 +110,13 @@ export const scoreGroup = (items, context) => {
107
110
  return from !== undefined && replyTo !== undefined && registrableOf(replyTo) !== registrableOf(from);
108
111
  }))
109
112
  signals.push("reply_to_elsewhere");
113
+ const known = items.filter((item) => item.seen !== undefined);
114
+ if (known.length && known.every((item) => !item.seen))
115
+ signals.push("never_opened");
116
+ // Gmail's stamp without a dkim= verdict means the mail carried no signature: that counts as not passed.
117
+ const stamped = items.filter((item) => item.headers?.auth !== undefined);
118
+ if (stamped.length && most(stamped, (item) => item.headers?.auth?.dkim !== "pass"))
119
+ signals.push("dkim_not_passed");
110
120
  if (domain !== undefined && isDisposableEmailDomain(domain))
111
121
  signals.push("disposable_domain");
112
122
  if (context.bulk >= 0.8 && !context.replied)
@@ -1 +1 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/mail/score.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/mail/score.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE7E,mGAAmG;AACnG,eAAO,MAAM,OAAO,EAAE,WAAW,EAiE/B,CAAA"}
1
+ {"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE7E,mGAAmG;AACnG,eAAO,MAAM,OAAO,EAAE,WAAW,EAuE/B,CAAA"}
package/dist/reasons.js CHANGED
@@ -33,6 +33,12 @@ export const REASONS = defineReasons([
33
33
  message: "the rules file is not one memo mail rules export wrote",
34
34
  details: [],
35
35
  },
36
+ {
37
+ reason: "mail.filters-file-invalid",
38
+ code: "validation_error",
39
+ message: "the file is not a list of Gmail filters",
40
+ details: [],
41
+ },
36
42
  {
37
43
  reason: "mail.source-failed",
38
44
  code: "provider_error",
@@ -1 +1 @@
1
- {"version":3,"file":"reasons.js","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,6BAA6B,CAAA;AAE7E,mGAAmG;AACnG,MAAM,CAAC,MAAM,OAAO,GAAkB,aAAa,CAAC;IAClD;QACE,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,sEAAsE;QAC/E,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB;IACD;QACE,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,gGAAgG;QACzG,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB;IACD,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,uCAAuC,EAAE,OAAO,EAAE,EAAE,EAAE;IAChH;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,kDAAkD;QAC3D,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,CAAC,SAAS,CAAC;KACrB;IACD,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mCAAmC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/G;QACE,MAAM,EAAE,yBAAyB;QACjC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC;KAChD;IACD;QACE,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,6EAA6E;QACtF,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,4CAA4C;QACrD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE,EAAE;KACZ;IACD,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sCAAsC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/G;QACE,MAAM,EAAE,uBAAuB;QAC/B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,iEAAiE;QAC1E,OAAO,EAAE,EAAE;KACZ;IACD,EAAE,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE;CACtG,CAAC,CAAA"}
1
+ {"version":3,"file":"reasons.js","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,6BAA6B,CAAA;AAE7E,mGAAmG;AACnG,MAAM,CAAC,MAAM,OAAO,GAAkB,aAAa,CAAC;IAClD;QACE,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,sEAAsE;QAC/E,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB;IACD;QACE,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,gGAAgG;QACzG,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB;IACD,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,uCAAuC,EAAE,OAAO,EAAE,EAAE,EAAE;IAChH;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,kDAAkD;QAC3D,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,CAAC,SAAS,CAAC;KACrB;IACD,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mCAAmC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/G;QACE,MAAM,EAAE,yBAAyB;QACjC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,2BAA2B;QACnC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,yCAAyC;QAClD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC;KAChD;IACD;QACE,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,6EAA6E;QACtF,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,4CAA4C;QACrD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,gDAAgD;QACzD,OAAO,EAAE,EAAE;KACZ;IACD,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sCAAsC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/G;QACE,MAAM,EAAE,uBAAuB;QAC/B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,iEAAiE;QAC1E,OAAO,EAAE,EAAE;KACZ;IACD,EAAE,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE;CACtG,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/run/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA0B,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGxF,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,WAAW,CAAA;AAKtE,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,mBAAmB,CAAA;AAGjE,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AA4BlE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,iEAAiE;IACjE,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAClC,IAAI,EAAE,YAAY,EAAE,CAAA;IACpB,kDAAkD;IAClD,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAChF,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAwED,eAAO,MAAM,WAAW,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAwKxF,CAAA"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/run/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA0B,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGxF,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,WAAW,CAAA;AAKtE,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,mBAAmB,CAAA;AAIjE,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AA4BlE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,iEAAiE;IACjE,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAClC,IAAI,EAAE,YAAY,EAAE,CAAA;IACpB,kDAAkD;IAClD,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAChF,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAwED,eAAO,MAAM,WAAW,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IA0KxF,CAAA"}
@@ -7,6 +7,7 @@ import { loadConfig } from "../config.js";
7
7
  import { errorObject } from "../failure.js";
8
8
  import { mailAccounts, mailSource } from "../mail/accounts.js";
9
9
  import { importMail } from "../mail/import.js";
10
+ import { repairHtmlText } from "../mail/repair.js";
10
11
  import { rulesOf } from "../mail/rule-store.js";
11
12
  import { boundFolders, unboundReason } from "../notes/bound.js";
12
13
  import { embedNoteChunks } from "../notes/embed.js";
@@ -160,6 +161,9 @@ export const syncCommand = (program, streams, env) => {
160
161
  }
161
162
  for (const account of accounts)
162
163
  await attempt(`mail ${account.name}`, async () => {
164
+ const repaired = await repairHtmlText(store, account.address);
165
+ if (repaired)
166
+ streams.diagnostic(`mail ${account.name}: ${repaired} emails' HTML text read again as text`);
163
167
  run.mail.push(await importMail({
164
168
  store,
165
169
  source: mailSource(account, env),
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/run/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/run/import.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/search/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/search/command.ts"],"names":[],"mappings":"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"}