@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":"command.js","sourceRoot":"","sources":["../../src/mail/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/mail/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { MailFacts, MailRule } from "./rules.js";
2
+ import type { DomainAge } from "./score.js";
3
+ import type { Listed } from "./source.js";
4
+ /**
5
+ * What a rule can know of each listed email. A score and "the owner wrote to this sender" come from the sender's
6
+ * whole group in this listing, so they are worked out only when a rule needs them; a run that lists only new mail
7
+ * judges them from that mail.
8
+ */
9
+ export declare const factsOf: (listed: Listed[], rules: readonly MailRule[], ages?: ReadonlyMap<string, DomainAge>) => ((item: Listed) => MailFacts);
10
+ //# sourceMappingURL=facts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../../src/mail/facts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;GAIG;AACH,eAAO,MAAM,OAAO,WACV,MAAM,EAAE,SACT,SAAS,QAAQ,EAAE,SACpB,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,KACnC,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAgB9B,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { groupKey, probeMail } from "./probe.js";
2
+ /**
3
+ * What a rule can know of each listed email. A score and "the owner wrote to this sender" come from the sender's
4
+ * whole group in this listing, so they are worked out only when a rule needs them; a run that lists only new mail
5
+ * judges them from that mail.
6
+ */
7
+ export const factsOf = (listed, rules, ages = new Map()) => {
8
+ const grouped = rules.some(({ match }) => match.score_at_least !== undefined || match.preset !== undefined);
9
+ if (!grouped)
10
+ return (item) => item;
11
+ const groups = new Map(probeMail(listed, Number.POSITIVE_INFINITY, ages).items.map((group) => [
12
+ groupKey({
13
+ ...(group.from === null ? {} : { from: group.from }),
14
+ ...(group.listId === null ? {} : { listId: group.listId }),
15
+ }),
16
+ group,
17
+ ]));
18
+ return (item) => {
19
+ const group = item.headers === undefined ? undefined : groups.get(groupKey(item.headers));
20
+ return group === undefined ? item : { ...item, score: group.score, replied: group.replied };
21
+ };
22
+ };
23
+ //# sourceMappingURL=facts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facts.js","sourceRoot":"","sources":["../../src/mail/facts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAKhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAgB,EAChB,KAA0B,EAC1B,IAAI,GAAmC,IAAI,GAAG,EAAE,EACjB,EAAE;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IAC3G,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACrE,QAAQ,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SAC3D,CAAC;QACF,KAAK;KACN,CAAC,CACH,CAAA;IACD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACzF,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;IAC7F,CAAC,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { MailRule } from "./rules.js";
2
+ export interface FiltersProposal {
3
+ rules: MailRule[];
4
+ skipped: {
5
+ filter: string;
6
+ why: string;
7
+ }[];
8
+ }
9
+ /** The rules a Takeout Filters.json suggests; nothing is saved here. */
10
+ export declare const importFilters: (json: string, path: string, now?: Date) => FiltersProposal;
11
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/mail/filters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAA;AAEzD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC3C;AA2ID,wEAAwE;AACxE,eAAO,MAAM,aAAa,SAAU,MAAM,QAAQ,MAAM,iBAAqB,eAkB5E,CAAA"}
@@ -0,0 +1,150 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { isAddress, senderMatch } from "./rule-query.js";
3
+ const text = (value) => typeof value === "string" && value.trim() !== "" ? value.trim() : undefined;
4
+ const list = (value) => Array.isArray(value) ? value.flatMap((item) => (typeof item === "string" ? [item] : [])) : [];
5
+ const yes = (value) => value === true || value === "true";
6
+ const SYSTEM = new Set(["INBOX", "UNREAD", "SPAM", "TRASH", "IMPORTANT", "STARRED", "CATEGORY_PROMOTIONS"]);
7
+ /** `a OR b`, `(a OR b)`, `{a b}`: Gmail's ways of writing either of several values. */
8
+ const alternatives = (value) => value
9
+ .replace(/^[({]|[)}]$/g, "")
10
+ .split(/\s+OR\s+|\s+|,/)
11
+ .map((part) => part.trim())
12
+ .filter((part) => part !== "" && part !== "OR");
13
+ /**
14
+ * A filter's search query, as the Takeout export writes it (`from:a from:b to:me@x.example word`). A sender cannot
15
+ * be two addresses at once, so repeated from: or to: terms are read as either one: one rule per term.
16
+ */
17
+ const queryOf = (query) => {
18
+ const parsed = { from: [], to: [], words: [], attachment: false, unknown: [] };
19
+ for (const [, field, grouped, quoted, plain, word] of query.matchAll(/(\w+):(?:([({][^)}]*[)}])|"([^"]*)"|(\S+))|(\S+)/g)) {
20
+ if (word !== undefined) {
21
+ if (word !== "OR")
22
+ parsed.words.push(word.replace(/^"|"$/g, ""));
23
+ continue;
24
+ }
25
+ const value = grouped ?? quoted ?? plain ?? "";
26
+ switch (field?.toLowerCase()) {
27
+ case "from":
28
+ for (const sender of alternatives(value))
29
+ parsed.from.push(sender);
30
+ break;
31
+ case "to":
32
+ case "cc":
33
+ for (const recipient of alternatives(value))
34
+ parsed.to.push(recipient);
35
+ break;
36
+ case "subject":
37
+ for (const part of value.replace(/^[({]|[)}]$/g, "").split(/\s+/))
38
+ if (part)
39
+ parsed.words.push(part);
40
+ break;
41
+ case "has":
42
+ if (/^attachments?$/i.test(value))
43
+ parsed.attachment = true;
44
+ else
45
+ parsed.unknown.push(`has:${value}`);
46
+ break;
47
+ default:
48
+ parsed.unknown.push(`${field}:`);
49
+ }
50
+ }
51
+ return parsed;
52
+ };
53
+ /** The matches one filter's conditions make: one per sender or recipient it names, each with the shared rest. */
54
+ const matchesOf = (criteria) => {
55
+ const query = queryOf([
56
+ text(criteria.query),
57
+ text(criteria.hasTheWord),
58
+ text(criteria.from) && `from:(${text(criteria.from)})`,
59
+ text(criteria.to) && `to:(${text(criteria.to)})`,
60
+ ]
61
+ .filter(Boolean)
62
+ .join(" "));
63
+ if (text(criteria.negatedQuery) ?? text(criteria.doesNotHaveTheWord))
64
+ return "it excludes words, which memo rules cannot do";
65
+ if (criteria.size !== undefined)
66
+ return "it matches size, which this import does not map";
67
+ if (query.unknown.length)
68
+ return `it uses ${query.unknown.join(", ")}, which this import does not map`;
69
+ const badTo = query.to.find((value) => !isAddress(value));
70
+ if (badTo !== undefined)
71
+ return "it names a recipient that is not one address";
72
+ const subject = [...query.words, ...(text(criteria.subject) ? [text(criteria.subject)] : [])].join(" ");
73
+ const shared = {
74
+ ...(subject === "" ? {} : { subject }),
75
+ ...(query.attachment || yes(criteria.hasAttachment) ? { has_attachments: true } : {}),
76
+ };
77
+ const senders = query.from.length ? query.from.map(senderMatch) : [{}];
78
+ const recipients = query.to.length ? query.to.map((to) => ({ to: to.toLowerCase() })) : [{}];
79
+ const matches = senders.flatMap((sender) => recipients.map((recipient) => ({ ...sender, ...recipient, ...shared })));
80
+ return Object.keys(matches[0] ?? {}).length === 0 ? "it has no condition memo can match" : matches;
81
+ };
82
+ /**
83
+ * One filter, in any shape Google writes them: the Gmail API's `{criteria, action}` (developers.google.com,
84
+ * users.settings.filters), the settings export's flat properties (`from`, `hasTheWord`, `shouldArchive`, `label`),
85
+ * or Takeout's `{query, labelsToAdd, labelsToRemove}`. Words are matched in the subject only; Gmail searched the
86
+ * whole email, so such a rule says so in its reason.
87
+ */
88
+ const rulesOf = (raw, decidedAt) => {
89
+ const criteria = raw.criteria ?? raw;
90
+ const action = raw.action ?? raw;
91
+ const matches = matchesOf(criteria);
92
+ if (typeof matches === "string")
93
+ return matches;
94
+ // The API writes system labels as INBOX, Takeout as Inbox.
95
+ const removed = [...list(action.removeLabelIds), ...list(action.labelsToRemove)].map((id) => id.toUpperCase());
96
+ const addedAsWritten = [...list(action.addLabelIds), ...list(action.labelsToAdd)];
97
+ const added = addedAsWritten.map((id) => id.toUpperCase());
98
+ const hides = removed.includes("INBOX") ||
99
+ removed.includes("UNREAD") ||
100
+ added.includes("TRASH") ||
101
+ yes(action.shouldArchive) ||
102
+ yes(action.shouldMarkAsRead) ||
103
+ yes(action.shouldTrash);
104
+ const tags = [
105
+ ...addedAsWritten.filter((id) => !SYSTEM.has(id.toUpperCase())),
106
+ ...(text(action.label) === undefined ? [] : [text(action.label)]),
107
+ ];
108
+ if (!hides && tags.length === 0)
109
+ return "it does nothing memo can mirror";
110
+ return matches.map((match) => ({
111
+ match,
112
+ action: hides ? "envelope" : "keep",
113
+ ...(tags.length ? { tags } : {}),
114
+ source: "gmail-filter",
115
+ reason: match.subject
116
+ ? "from a Gmail filter; Gmail searched these words anywhere, memo matches the subject"
117
+ : "from a Gmail filter",
118
+ decided_at: decidedAt,
119
+ }));
120
+ };
121
+ const nameOf = (raw, index) => {
122
+ const criteria = raw.criteria ?? raw;
123
+ return text(criteria.query) ?? text(criteria.from) ?? text(criteria.subject) ?? text(raw.id) ?? `filter ${index + 1}`;
124
+ };
125
+ /** The rules a Takeout Filters.json suggests; nothing is saved here. */
126
+ export const importFilters = (json, path, now = new Date()) => {
127
+ let parsed;
128
+ try {
129
+ parsed = JSON.parse(json);
130
+ }
131
+ catch {
132
+ throw new CliError("validation_error", `${path}: not JSON`, { reason: "mail.filters-file-invalid" });
133
+ }
134
+ const filters = Array.isArray(parsed) ? parsed : (parsed?.filters ?? parsed?.filter);
135
+ if (!Array.isArray(filters))
136
+ throw new CliError("validation_error", `${path}: no list of filters`, { reason: "mail.filters-file-invalid" });
137
+ const proposal = { rules: [], skipped: [] };
138
+ for (const [index, raw] of filters.entries()) {
139
+ if (raw === null || typeof raw !== "object")
140
+ continue;
141
+ const outcome = rulesOf(raw, now.toISOString());
142
+ if (typeof outcome === "string")
143
+ proposal.skipped.push({ filter: nameOf(raw, index), why: outcome });
144
+ else
145
+ for (const rule of outcome)
146
+ proposal.rules.push(rule);
147
+ }
148
+ return proposal;
149
+ };
150
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/mail/filters.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * The header fields memo reads at list time: enough to group mail by sender, apply the owner's rules and keep
3
3
  * an envelope of the mail a rule records without its text.
4
4
  */
5
- export declare const HEADER_FIELDS = "FROM TO CC SUBJECT LIST-ID LIST-UNSUBSCRIBE PRECEDENCE REPLY-TO AUTHENTICATION-RESULTS";
5
+ export declare const HEADER_FIELDS = "FROM TO CC SUBJECT LIST-ID LIST-UNSUBSCRIBE PRECEDENCE REPLY-TO AUTHENTICATION-RESULTS CONTENT-TYPE";
6
6
  /** SPF, DKIM and DMARC as Gmail judged them when the email arrived; each absent when Gmail did not say. */
7
7
  export interface AuthVerdicts {
8
8
  spf?: string;
@@ -23,6 +23,8 @@ export interface MailHeaders {
23
23
  /** The first Reply-To address, lower case. */
24
24
  replyTo?: string;
25
25
  auth?: AuthVerdicts;
26
+ /** `Content-Type: multipart/mixed`: how mail with attachments is sent. A guess, not a parse of the body. */
27
+ attachments?: boolean;
26
28
  }
27
29
  export declare const unfold: (text: string) => string;
28
30
  export declare const field: (unfolded: string, name: string) => string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/mail/headers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,aAAa,2FAA2F,CAAA;AAErH,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uCAAuC;IACvC,EAAE,EAAE,MAAM,EAAE,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wGAAwG;IACxG,IAAI,EAAE,OAAO,CAAA;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,eAAO,MAAM,MAAM,SAAU,MAAM,KAAG,MAA2C,CAAA;AAEjF,eAAO,MAAM,KAAK,aAAc,MAAM,QAAQ,MAAM,KAAG,MAAM,GAAG,SACI,CAAA;AAKpE;;;GAGG;AACH,eAAO,MAAM,MAAM,aAAc,MAAM,KAAG,YAAY,GAAG,SAcxD,CAAA;AAED,eAAO,MAAM,WAAW,UAAW,MAAM,GAAG,SAAS,KAAG,MAAM,EAK7D,CAAA;AAWD,4DAA4D;AAC5D,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,WAuBxC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAS,UAAU,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAe9E,CAAA"}
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/mail/headers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,aAAa,wGAC6E,CAAA;AAEvG,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uCAAuC;IACvC,EAAE,EAAE,MAAM,EAAE,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wGAAwG;IACxG,IAAI,EAAE,OAAO,CAAA;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,4GAA4G;IAC5G,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,MAAM,SAAU,MAAM,KAAG,MAA2C,CAAA;AAEjF,eAAO,MAAM,KAAK,aAAc,MAAM,QAAQ,MAAM,KAAG,MAAM,GAAG,SACI,CAAA;AAKpE;;;GAGG;AACH,eAAO,MAAM,MAAM,aAAc,MAAM,KAAG,YAAY,GAAG,SAcxD,CAAA;AAED,eAAO,MAAM,WAAW,UAAW,MAAM,GAAG,SAAS,KAAG,MAAM,EAK7D,CAAA;AAWD,4DAA4D;AAC5D,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,WAwBxC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAS,UAAU,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAe9E,CAAA"}
@@ -3,7 +3,7 @@ import { decodeWords } from "postal-mime";
3
3
  * The header fields memo reads at list time: enough to group mail by sender, apply the owner's rules and keep
4
4
  * an envelope of the mail a rule records without its text.
5
5
  */
6
- export const HEADER_FIELDS = "FROM TO CC SUBJECT LIST-ID LIST-UNSUBSCRIBE PRECEDENCE REPLY-TO AUTHENTICATION-RESULTS";
6
+ export const HEADER_FIELDS = "FROM TO CC SUBJECT LIST-ID LIST-UNSUBSCRIBE PRECEDENCE REPLY-TO AUTHENTICATION-RESULTS CONTENT-TYPE";
7
7
  export const unfold = (text) => text.replace(/\r?\n[ \t]+/g, " ");
8
8
  export const field = (unfolded, name) => new RegExp(`^${name}:[ \\t]*(.*?)\\r?$`, "im").exec(unfolded)?.[1];
9
9
  const fieldsOf = (unfolded, name) => [...unfolded.matchAll(new RegExp(`^${name}:[ \\t]*(.*?)\\r?$`, "gim"))].map(([, value]) => value);
@@ -63,6 +63,7 @@ export const headersOf = (text) => {
63
63
  bulk,
64
64
  ...(replyTo === undefined ? {} : { replyTo }),
65
65
  ...(auth === undefined ? {} : { auth }),
66
+ ...(/^\s*multipart\/mixed\b/i.test(field(unfolded, "Content-Type") ?? "") ? { attachments: true } : {}),
66
67
  };
67
68
  };
68
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/mail/headers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/mail/headers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type LoadEngine } from "@wirecat/cli-core/documents";
2
2
  import type { MessageStore } from "@wirecat/cli-core/store";
3
3
  import { embedChanged, embedMailChunks, type NotesEmbedded } from "../notes/embed.js";
4
+ import { type TagOutcome } from "./rule-tags.js";
4
5
  import { type MailRule } from "./rules.js";
5
6
  import type { MailSource } from "./source.js";
6
7
  export interface MailAccount {
@@ -48,6 +49,10 @@ export interface ImportResult {
48
49
  part: number;
49
50
  status: string;
50
51
  }[];
52
+ /** Rule tags put on mail as an existing label the store pointed to. */
53
+ tagsReused?: TagOutcome["reused"];
54
+ /** Rule tags the store refused with nothing to reuse; that mail is stored untagged. */
55
+ tagsSkipped?: TagOutcome["skipped"];
51
56
  }
52
57
  export declare const MAX_ATTACHMENT_CHARS = 200000;
53
58
  export declare const importMail: ({ store, source, account, since, max, maxBodyChars, maxAttachmentChars, now, env, embed, loadEngine, retryAttachments, rescan, resumeFrom, indexThreads, embedMail, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/mail/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxF,OAAO,KAAK,EAA6C,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtG,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAkBrF,OAAO,EAAgD,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,KAAK,EAAU,UAAU,EAAY,MAAM,aAAa,CAAA;AAE/D,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAA;IACf,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,kGAAkG;IAClG,QAAQ,EAAE,OAAO,CAAA;IACjB,8EAA8E;IAC9E,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7G,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAClE;AAKD,eAAO,MAAM,oBAAoB,SAAU,CAAA;AAU3C,eAAO,MAAM,UAAU,0KAiBpB;IACD,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,IAAI,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gHAAgH;IAChH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,oHAAoH;IACpH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,YAAY,CAAA;IAClC,SAAS,CAAC,EAAE,OAAO,eAAe,CAAA;CACnC,KAAG,OAAO,CAAC,YAAY,CAgbvB,CAAA"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/mail/import.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,14 @@ import { extractText, importEngine } from "@wirecat/cli-core/documents";
2
2
  import { embedChanged, embedMailChunks } from "../notes/embed.js";
3
3
  import { dropMissing, tooManyGone } from "../store/gone.js";
4
4
  import { mailFolders } from "./accounts.js";
5
+ import { BULK, bulkBox } from "./bulk.js";
6
+ import { knownAges } from "./domain-age.js";
7
+ import { factsOf } from "./facts.js";
5
8
  import { mailHeadersOf } from "./headers.js";
6
9
  import { MAX_BODY_CHARS, parseMail } from "./parse.js";
7
10
  import { FULL_PASS_MS, MBOX_RESUME, mergeRanges, parsePoint, rangesOf, resumeKey, rulesKey, within, } from "./resume.js";
8
- import { decide, ENVELOPE, envelopeBox, envelopeBoxOf } from "./rules.js";
11
+ import { ruleTagger, settleRuleTags } from "./rule-tags.js";
12
+ import { decide, ENVELOPE, envelopeBox, envelopeBoxOf, tagsOf } from "./rules.js";
9
13
  const DAY = 86_400_000;
10
14
  /** IMAP's SINCE counts whole days in the server's zone, so the window's first days are not trusted. */
11
15
  const EDGE = 2 * DAY;
@@ -76,6 +80,14 @@ export const importMail = async ({ store, source, account, since, max = 200, max
76
80
  }
77
81
  const listed = [...new Map(collected.map((item) => [item.messageId, item])).values()].sort((a, b) => b.receivedAt.localeCompare(a.receivedAt));
78
82
  const present = new Set(listed.map(({ messageId }) => messageId));
83
+ const factsFor = factsOf(listed, rules, env === undefined ? undefined : knownAges(env));
84
+ // A rule's tag goes on mail this run stores or records; mail stored earlier gets it from memo mail rules apply.
85
+ const tagger = ruleTagger(store, key);
86
+ const tagStored = async (item) => {
87
+ const tags = tagsOf(rules, factsFor(item));
88
+ if (tags.length)
89
+ await tagger.tag({ type: "message", chatId: item.threadId, messageId: item.messageId }, tags);
90
+ };
79
91
  const foundFolders = new Map();
80
92
  for (const item of collected) {
81
93
  const current = foundFolders.get(item.messageId) ?? new Set();
@@ -102,7 +114,7 @@ export const importMail = async ({ store, source, account, since, max = 200, max
102
114
  else {
103
115
  // A label is not where mail lives, so only folders prove that a missing mail was deleted.
104
116
  const candidates = (await store.mail.emailRefs({ accountId, since: windowStart.getTime() })).filter(({ mailboxes }) => {
105
- const inFolders = mailboxes.filter(({ kind }) => kind !== "label" && kind !== ENVELOPE);
117
+ const inFolders = mailboxes.filter(({ kind }) => kind !== "label" && kind !== ENVELOPE && kind !== BULK);
106
118
  return inFolders.length ? inFolders.every(({ externalId }) => folders.includes(externalId)) : allMailOnly;
107
119
  });
108
120
  const gone = candidates.filter(({ externalId }) => !present.has(externalId)).map(({ externalId }) => externalId);
@@ -153,7 +165,7 @@ export const importMail = async ({ store, source, account, since, max = 200, max
153
165
  const settled = new Set();
154
166
  let full = false;
155
167
  for (const item of listed) {
156
- const rule = decide(rules, item.headers);
168
+ const rule = decide(rules, factsFor(item));
157
169
  const boxes = enveloped.get(item.messageId);
158
170
  // An envelope whose rule is gone or now keeps the mail is read in full; one a skip now matches stays as it is.
159
171
  if (boxes !== undefined && rule?.action !== ENVELOPE && rule?.action !== "skip") {
@@ -289,6 +301,7 @@ export const importMail = async ({ store, source, account, since, max = 200, max
289
301
  });
290
302
  envelopes++;
291
303
  settled.add(item.messageId);
304
+ await tagStored(item);
292
305
  await saveNow();
293
306
  }
294
307
  for (let start = 0; start < pending.length; start += FETCH_CHUNK) {
@@ -360,13 +373,14 @@ export const importMail = async ({ store, source, account, since, max = 200, max
360
373
  mailboxes: inMailboxes(item),
361
374
  ...flagsOf(item),
362
375
  ...(upgraded.has(item.messageId) ? { metadata: {} } : {}),
363
- mailRuleId: decide(rules, item.headers)?.id ?? null,
376
+ mailRuleId: decide(rules, factsFor(item))?.id ?? null,
364
377
  attachments: files,
365
378
  },
366
379
  ],
367
380
  });
368
381
  saved++;
369
382
  settled.add(item.messageId);
383
+ await tagStored(item);
370
384
  const boxes = upgraded.get(item.messageId);
371
385
  if (boxes !== undefined)
372
386
  await store.mail.setMailboxes(accountId, boxes.map(envelopeBoxOf), new Map([[item.messageId, []]]), startedAt);
@@ -388,6 +402,9 @@ export const importMail = async ({ store, source, account, since, max = 200, max
388
402
  ? []
389
403
  : [[id, { ...(seen === undefined ? {} : { read: seen }), ...(flagged === undefined ? {} : { flagged }) }]])), startedAt);
390
404
  const complete = !full && unreadable.length === 0;
405
+ const bulk = new Map(listed.filter((item) => item.headers?.bulk).map((item) => [item.messageId, [bulkBox.externalId]]));
406
+ if (bulk.size)
407
+ await store.mail.setMailboxes(accountId, [bulkBox], bulk, startedAt);
391
408
  if (!snapshot)
392
409
  await store.setSyncState(key, "mail_folder_scope", scope);
393
410
  const embedding = { embed: embed && account.embed !== false, ...(env === undefined ? {} : { env }) };
@@ -409,6 +426,8 @@ export const importMail = async ({ store, source, account, since, max = 200, max
409
426
  };
410
427
  if (!snapshot)
411
428
  await store.setSyncState(key, "mail_coverage", JSON.stringify(coverage));
429
+ const tagging = tagger.outcome();
430
+ await settleRuleTags(store, accountId, rules, tagging);
412
431
  return {
413
432
  account: key.account,
414
433
  since: since.toISOString(),
@@ -425,6 +444,8 @@ export const importMail = async ({ store, source, account, since, max = 200, max
425
444
  ...(unreadable.length ? { unreadable } : {}),
426
445
  ...(skipped === undefined ? {} : { deletionsSkipped: skipped }),
427
446
  ...(searches.size > 0 ? { pass: resumed.size > 0 ? "resumed" : "full" } : {}),
447
+ ...(tagging.reused.length ? { tagsReused: tagging.reused } : {}),
448
+ ...(tagging.skipped.length ? { tagsSkipped: tagging.skipped } : {}),
428
449
  };
429
450
  };
430
451
  //# sourceMappingURL=import.js.map