@wirecat/cli-core 0.276.0 → 0.278.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/json-fields.d.ts +5 -3
- package/dist/cli/json-fields.d.ts.map +1 -1
- package/dist/cli/json-fields.js +8 -5
- package/dist/cli/json-fields.js.map +1 -1
- package/dist/meetings/index.d.ts +2 -0
- package/dist/meetings/index.d.ts.map +1 -1
- package/dist/meetings/index.js +2 -0
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/preparation-context.d.ts +55 -0
- package/dist/meetings/preparation-context.d.ts.map +1 -0
- package/dist/meetings/preparation-context.js +25 -0
- package/dist/meetings/preparation-context.js.map +1 -0
- package/dist/meetings/series-history.d.ts +33 -0
- package/dist/meetings/series-history.d.ts.map +1 -0
- package/dist/meetings/series-history.js +24 -0
- package/dist/meetings/series-history.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/meeting-preparation-types.d.ts +53 -0
- package/dist/services/meeting-preparation-types.d.ts.map +1 -0
- package/dist/services/meeting-preparation-types.js +2 -0
- package/dist/services/meeting-preparation-types.js.map +1 -0
- package/dist/services/meeting-preparation-validation.d.ts +23 -0
- package/dist/services/meeting-preparation-validation.d.ts.map +1 -0
- package/dist/services/meeting-preparation-validation.js +56 -0
- package/dist/services/meeting-preparation-validation.js.map +1 -0
- package/dist/services/meeting-preparation.d.ts +7 -0
- package/dist/services/meeting-preparation.d.ts.map +1 -0
- package/dist/services/meeting-preparation.js +125 -0
- package/dist/services/meeting-preparation.js.map +1 -0
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite/email-index.d.ts +23 -0
- package/dist/store/sqlite/email-index.d.ts.map +1 -0
- package/dist/store/sqlite/email-index.js +160 -0
- package/dist/store/sqlite/email-index.js.map +1 -0
- package/dist/store/sqlite/emails.d.ts +10 -1
- package/dist/store/sqlite/emails.d.ts.map +1 -1
- package/dist/store/sqlite/emails.js +5 -157
- package/dist/store/sqlite/emails.js.map +1 -1
- package/dist/store/sqlite/mail-rules.d.ts +53 -0
- package/dist/store/sqlite/mail-rules.d.ts.map +1 -0
- package/dist/store/sqlite/mail-rules.js +80 -0
- package/dist/store/sqlite/mail-rules.js.map +1 -0
- package/dist/store/sqlite/manifest.d.ts.map +1 -1
- package/dist/store/sqlite/manifest.js +1 -0
- package/dist/store/sqlite/manifest.js.map +1 -1
- package/dist/store/sqlite/meeting-preparation-context.d.ts +4 -0
- package/dist/store/sqlite/meeting-preparation-context.d.ts.map +1 -0
- package/dist/store/sqlite/meeting-preparation-context.js +50 -0
- package/dist/store/sqlite/meeting-preparation-context.js.map +1 -0
- package/dist/store/sqlite/meeting-series-history.d.ts +4 -0
- package/dist/store/sqlite/meeting-series-history.d.ts.map +1 -0
- package/dist/store/sqlite/meeting-series-history.js +67 -0
- package/dist/store/sqlite/meeting-series-history.js.map +1 -0
- package/dist/store/sqlite/meetings.d.ts +3 -2
- package/dist/store/sqlite/meetings.d.ts.map +1 -1
- package/dist/store/sqlite/meetings.js +4 -0
- package/dist/store/sqlite/meetings.js.map +1 -1
- package/dist/store/sqlite/mentions.d.ts.map +1 -1
- package/dist/store/sqlite/mentions.js +4 -2
- package/dist/store/sqlite/mentions.js.map +1 -1
- package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
- package/dist/store/sqlite/migrations.generated.js +8 -0
- package/dist/store/sqlite/migrations.generated.js.map +1 -1
- package/dist/store/sqlite/preparation-context-queries.d.ts +51 -0
- package/dist/store/sqlite/preparation-context-queries.d.ts.map +1 -0
- package/dist/store/sqlite/preparation-context-queries.js +51 -0
- package/dist/store/sqlite/preparation-context-queries.js.map +1 -0
- package/dist/store/sqlite/schema.d.ts +183 -0
- package/dist/store/sqlite/schema.d.ts.map +1 -1
- package/dist/store/sqlite/schema.js +17 -0
- package/dist/store/sqlite/schema.js.map +1 -1
- package/dist/store/store.d.ts +2 -3
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +2 -1
- package/dist/store/store.js.map +1 -1
- package/package.json +1 -1
- package/parity.json +8 -24
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { CHUNK_CHARS, chunkHash, cutChunks, splitText } from "../../conversations/chunks.js";
|
|
2
|
-
import { mailCore } from "../../conversations/mail-text.js";
|
|
3
1
|
import { formatLocator } from "../../domain/locator.js";
|
|
4
2
|
import { formatReference } from "../../domain/references.js";
|
|
5
3
|
import { normalize } from "../normalize.js";
|
|
4
|
+
import { chunkAttachments, drainEmailIndex, dropAttachmentChunks, MAIL_PIECES, purgeUnused, queueThreads, threadPieces, titleOf, } from "./email-index.js";
|
|
6
5
|
import { bool, flag, fromJson, int, page, str, toJson } from "./events.js";
|
|
7
6
|
import { ensurePerson } from "./identities.js";
|
|
7
|
+
import { mailRulesOver } from "./mail-rules.js";
|
|
8
8
|
import { attachmentOf, saveAttachment, wordsQuery } from "./meetings.js";
|
|
9
|
-
import { CORPORA, drainCorpus } from "./note-index.js";
|
|
10
9
|
import { inBatch } from "./search-index.js";
|
|
11
10
|
import { stemmerCache } from "./stems.js";
|
|
12
11
|
import { dot } from "./vectors.js";
|
|
@@ -85,6 +84,7 @@ const emailOf = (database, row) => ({
|
|
|
85
84
|
size: int(row.size),
|
|
86
85
|
headers: fromJson(row.headers),
|
|
87
86
|
metadata: fromJson(row.metadata),
|
|
87
|
+
mailRuleId: int(row.mail_rule_id),
|
|
88
88
|
recipients: database
|
|
89
89
|
.prepare("SELECT * FROM email_recipients WHERE email_id = ? ORDER BY position")
|
|
90
90
|
.all(Number(row.id))
|
|
@@ -125,7 +125,6 @@ const threadDetails = (database, id) => {
|
|
|
125
125
|
.map((e) => emailOf(database, e)),
|
|
126
126
|
};
|
|
127
127
|
};
|
|
128
|
-
const titleOf = (subject) => subject?.replace(/^\s*((re|fwd?|aw|wg)\s*:\s*)+/i, "").trim() || null;
|
|
129
128
|
/** An address is an identity of provider `email`; a display name fills only a nameless one. */
|
|
130
129
|
const addressIdentity = (database, orm, accountId, { address, name }, now) => {
|
|
131
130
|
const id = identityOf(database, { address, name }, now);
|
|
@@ -175,101 +174,6 @@ const mailboxPk = (database, accountId, box, now) => {
|
|
|
175
174
|
const join = (database, emailId, mailboxId, now) => database
|
|
176
175
|
.prepare("INSERT OR IGNORE INTO email_mailboxes (email_id, mailbox_id, created_at) VALUES (?, ?, ?)")
|
|
177
176
|
.run(emailId, mailboxId, now);
|
|
178
|
-
/**
|
|
179
|
-
* Every piece of mail: a stretch of a thread, or of one email's attachment. A thread piece holds no email of its
|
|
180
|
-
* own; `threadPieces` cuts the thread again to find which emails it spans.
|
|
181
|
-
*/
|
|
182
|
-
const MAIL_PIECES = `(SELECT k.id, k.content_hash, k.chunkable_type AS type, k.chunkable_id AS owner, k.position,
|
|
183
|
-
k.start_offset, k.end_offset, k.account_id, k.occurred_at, a.attachable_id AS email_id,
|
|
184
|
-
CASE k.chunkable_type WHEN 'email_thread' THEN k.chunkable_id
|
|
185
|
-
ELSE (SELECT email_thread_id FROM emails WHERE id = a.attachable_id) END AS thread_id
|
|
186
|
-
FROM chunks k LEFT JOIN attachments a ON k.chunkable_type = 'attachment' AND a.id = k.chunkable_id
|
|
187
|
-
AND a.attachable_type = 'email'
|
|
188
|
-
WHERE k.chunkable_type = 'email_thread' OR a.id IS NOT NULL) p`;
|
|
189
|
-
/** A thread's live emails, oldest first, each as what it adds: its subject, then its own text. */
|
|
190
|
-
const threadText = (database, threadId) => {
|
|
191
|
-
const rows = database
|
|
192
|
-
.prepare(`SELECT id, subject, coalesce(body_text, '') AS body, coalesce(from_name, from_address) AS sender,
|
|
193
|
-
coalesce(received_at, sent_at) AS at
|
|
194
|
-
FROM emails WHERE email_thread_id = ? AND deleted_at IS NULL ORDER BY coalesce(sent_at, received_at), id`)
|
|
195
|
-
.all(threadId);
|
|
196
|
-
const earlier = [];
|
|
197
|
-
const at = new Map();
|
|
198
|
-
const lines = rows.map((row) => {
|
|
199
|
-
const body = String(row.body);
|
|
200
|
-
const core = mailCore(body, earlier);
|
|
201
|
-
earlier.push(body);
|
|
202
|
-
const subject = titleOf(str(row.subject));
|
|
203
|
-
const text = subject ? `${subject}\n\n${core}` : core;
|
|
204
|
-
at.set(String(row.id), int(row.at) ?? null);
|
|
205
|
-
return { id: String(row.id), sender: str(row.sender), text };
|
|
206
|
-
});
|
|
207
|
-
return { lines, at };
|
|
208
|
-
};
|
|
209
|
-
/**
|
|
210
|
-
* A thread's pieces, email by email: a piece never spans two emails, so a hit names the email that holds it
|
|
211
|
-
* (bench/mail-quality). A new reply adds its own pieces; every earlier one keeps its hash and so its vector.
|
|
212
|
-
*/
|
|
213
|
-
const threadPieces = (database, threadId) => cutThread(threadText(database, threadId).lines);
|
|
214
|
-
/** The one cut of a thread: what is stored, what is embedded and what a hit is read back from must agree. */
|
|
215
|
-
const cutThread = (lines) => lines.flatMap((line) => cutChunks([line], CHUNK_CHARS));
|
|
216
|
-
const chunkThread = (database, threadId, now) => {
|
|
217
|
-
const before = database
|
|
218
|
-
.prepare("SELECT content_hash AS hash FROM chunks WHERE chunkable_type = 'email_thread' AND chunkable_id = ?")
|
|
219
|
-
.all(threadId)
|
|
220
|
-
.map(({ hash }) => String(hash));
|
|
221
|
-
database.prepare("DELETE FROM chunks WHERE chunkable_type = 'email_thread' AND chunkable_id = ?").run(threadId);
|
|
222
|
-
const thread = database
|
|
223
|
-
.prepare("SELECT t.account_id, a.scope FROM email_threads t JOIN accounts a ON a.id = t.account_id WHERE t.id = ?")
|
|
224
|
-
.get(threadId);
|
|
225
|
-
if (thread) {
|
|
226
|
-
const { lines, at } = threadText(database, threadId);
|
|
227
|
-
const insert = database.prepare(`INSERT INTO chunks (chunkable_type, chunkable_id, position, start_offset, end_offset, content_hash, scope, account_id,
|
|
228
|
-
occurred_at, created_at, updated_at) VALUES ('email_thread', ?, ?, 0, ?, ?, ?, ?, ?, ?, ?)`);
|
|
229
|
-
for (const [position, piece] of cutThread(lines).entries())
|
|
230
|
-
insert.run(threadId, position, piece.text.length, piece.hash, str(thread.scope), Number(thread.account_id), at.get(piece.lastId) ?? null, now, now);
|
|
231
|
-
}
|
|
232
|
-
purgeUnused(database, before);
|
|
233
|
-
};
|
|
234
|
-
const queueThreads = (database, ids) => {
|
|
235
|
-
const queue = database.prepare("INSERT OR IGNORE INTO email_index_pending (indexable_type, id) VALUES ('email_thread', ?)");
|
|
236
|
-
for (const id of ids)
|
|
237
|
-
queue.run(id);
|
|
238
|
-
};
|
|
239
|
-
const ATTACHMENTS_OF_EMAIL = "SELECT id FROM attachments WHERE attachable_type = 'email' AND attachable_id = ?";
|
|
240
|
-
/** Drops the pieces of an email's attachment texts; answers their hashes, for `purgeUnused` once new ones are in. */
|
|
241
|
-
const dropAttachmentChunks = (database, emailId) => {
|
|
242
|
-
const hashes = database
|
|
243
|
-
.prepare(`SELECT content_hash AS hash FROM chunks WHERE chunkable_type = 'attachment' AND chunkable_id IN (${ATTACHMENTS_OF_EMAIL})`)
|
|
244
|
-
.all(emailId)
|
|
245
|
-
.map(({ hash }) => String(hash));
|
|
246
|
-
database
|
|
247
|
-
.prepare(`DELETE FROM chunks WHERE chunkable_type = 'attachment' AND chunkable_id IN (${ATTACHMENTS_OF_EMAIL})`)
|
|
248
|
-
.run(emailId);
|
|
249
|
-
return hashes;
|
|
250
|
-
};
|
|
251
|
-
/** Vectors are keyed by text alone, so one goes only when no piece of anything holds that text any more. */
|
|
252
|
-
const purgeUnused = (database, hashes) => {
|
|
253
|
-
const purge = database.prepare("DELETE FROM embeddings WHERE content_hash = ? AND NOT EXISTS (SELECT 1 FROM chunks WHERE content_hash = ?)");
|
|
254
|
-
for (const hash of new Set(hashes))
|
|
255
|
-
purge.run(hash, hash);
|
|
256
|
-
};
|
|
257
|
-
/** Each attachment's extracted text, in pieces for search by meaning, as an email's own text is. */
|
|
258
|
-
const chunkAttachments = (database, accountId, emailId, now) => {
|
|
259
|
-
const email = database
|
|
260
|
-
.prepare("SELECT a.scope, coalesce(e.received_at, e.sent_at) AS at FROM emails e JOIN accounts a ON a.id = e.account_id WHERE e.id = ?")
|
|
261
|
-
.get(emailId);
|
|
262
|
-
const insert = database.prepare(`INSERT INTO chunks (chunkable_type, chunkable_id, position, start_offset, end_offset, content_hash, scope, account_id,
|
|
263
|
-
occurred_at, created_at, updated_at) VALUES ('attachment', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
264
|
-
const files = database
|
|
265
|
-
.prepare("SELECT id, text FROM attachments WHERE attachable_type = 'email' AND attachable_id = ? AND text <> ''")
|
|
266
|
-
.all(emailId);
|
|
267
|
-
for (const file of files) {
|
|
268
|
-
const text = String(file.text);
|
|
269
|
-
for (const [position, { start, end }] of splitText(text, CHUNK_CHARS).entries())
|
|
270
|
-
insert.run(Number(file.id), position, start, end, chunkHash(text.slice(start, end)), str(email?.scope), accountId, int(email?.at), now, now);
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
177
|
const saveEmail = (database, orm, accountId, threadId, mail, now) => {
|
|
274
178
|
if (!mail.externalId)
|
|
275
179
|
throw new Error("Invalid email key");
|
|
@@ -296,6 +200,7 @@ const saveEmail = (database, orm, accountId, threadId, mail, now) => {
|
|
|
296
200
|
["size", "size", (v) => v],
|
|
297
201
|
["headers", "headers", toJson],
|
|
298
202
|
["metadata", "metadata", toJson],
|
|
203
|
+
["mailRuleId", "mail_rule_id", (v) => v],
|
|
299
204
|
];
|
|
300
205
|
for (const [field, column, encode] of optional)
|
|
301
206
|
if (mail[field] !== undefined)
|
|
@@ -489,65 +394,8 @@ export const emailHitsByPk = (database, pks) => {
|
|
|
489
394
|
* Indexes the queued emails as the notes are indexed, words and stems of the subject, then the body; then cuts
|
|
490
395
|
* the threads they belong to into pieces for search by meaning.
|
|
491
396
|
*/
|
|
492
|
-
const MAIL_CUT = "mail_pieces_cut";
|
|
493
|
-
const CUT = "email";
|
|
494
|
-
export const drainEmailIndex = (database, stemmerFor) => {
|
|
495
|
-
// Mail was once cut without cleaning, then across the emails of a thread; a store cut either way is cut again.
|
|
496
|
-
if (database.prepare("SELECT value FROM store_settings WHERE key = ?").get(MAIL_CUT)?.value !== CUT)
|
|
497
|
-
inBatch(database, () => {
|
|
498
|
-
const single = database
|
|
499
|
-
.prepare("SELECT DISTINCT content_hash AS hash FROM chunks WHERE chunkable_type = 'email'")
|
|
500
|
-
.all()
|
|
501
|
-
.map(({ hash }) => String(hash));
|
|
502
|
-
database.prepare("DELETE FROM chunks WHERE chunkable_type = 'email'").run();
|
|
503
|
-
queueThreads(database, database
|
|
504
|
-
.prepare("SELECT id FROM email_threads")
|
|
505
|
-
.all()
|
|
506
|
-
.map(({ id }) => Number(id)));
|
|
507
|
-
purgeUnused(database, single);
|
|
508
|
-
database
|
|
509
|
-
.prepare("INSERT OR REPLACE INTO store_settings (key, value, at) VALUES (?, ?, ?)")
|
|
510
|
-
.run(MAIL_CUT, CUT, Date.now());
|
|
511
|
-
});
|
|
512
|
-
database
|
|
513
|
-
.prepare(`INSERT OR IGNORE INTO email_index_pending (indexable_type, id)
|
|
514
|
-
SELECT DISTINCT 'email_thread', e.email_thread_id FROM email_index_pending q JOIN emails e ON e.id = q.id
|
|
515
|
-
WHERE q.indexable_type = 'email' AND e.email_thread_id IS NOT NULL`)
|
|
516
|
-
.run();
|
|
517
|
-
// Attachments saved before their text was cut into pieces get them here, once.
|
|
518
|
-
const unchunked = database
|
|
519
|
-
.prepare(`SELECT DISTINCT e.id, e.account_id FROM attachments a JOIN emails e ON a.attachable_type = 'email' AND e.id = a.attachable_id
|
|
520
|
-
WHERE a.text <> '' AND e.deleted_at IS NULL
|
|
521
|
-
AND NOT EXISTS (SELECT 1 FROM chunks k WHERE k.chunkable_type = 'attachment' AND k.chunkable_id = a.id)`)
|
|
522
|
-
.all();
|
|
523
|
-
if (unchunked.length)
|
|
524
|
-
inBatch(database, () => {
|
|
525
|
-
for (const row of unchunked) {
|
|
526
|
-
const before = dropAttachmentChunks(database, Number(row.id));
|
|
527
|
-
chunkAttachments(database, Number(row.account_id), Number(row.id), Date.now());
|
|
528
|
-
purgeUnused(database, before);
|
|
529
|
-
}
|
|
530
|
-
});
|
|
531
|
-
const emails = drainCorpus(database, CORPORA.email, stemmerFor);
|
|
532
|
-
const next = database.prepare("SELECT id FROM email_index_pending WHERE indexable_type = 'email_thread' ORDER BY id LIMIT 50");
|
|
533
|
-
const done = database.prepare("DELETE FROM email_index_pending WHERE indexable_type = 'email_thread' AND id = ?");
|
|
534
|
-
let threads = 0;
|
|
535
|
-
for (;;) {
|
|
536
|
-
const count = inBatch(database, () => {
|
|
537
|
-
const ids = next.all().map(({ id }) => Number(id));
|
|
538
|
-
for (const id of ids) {
|
|
539
|
-
chunkThread(database, id, Date.now());
|
|
540
|
-
done.run(id);
|
|
541
|
-
}
|
|
542
|
-
return ids.length;
|
|
543
|
-
});
|
|
544
|
-
if (count === 0)
|
|
545
|
-
break;
|
|
546
|
-
threads += count;
|
|
547
|
-
}
|
|
548
|
-
return emails + threads;
|
|
549
|
-
};
|
|
550
397
|
export const mailStoreOver = ({ database, orm }, stemmerFor = stemmerCache()) => ({
|
|
398
|
+
rules: mailRulesOver(database),
|
|
551
399
|
async saveThread(input) {
|
|
552
400
|
const id = inBatch(database, () => saveThread(database, orm, input));
|
|
553
401
|
return threadDetails(database, id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../../src/store/sqlite/emails.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../../src/store/sqlite/emails.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { JsonValue } from "../../meetings/index.js";
|
|
2
|
+
import type { CacheDatabase } from "../driver.js";
|
|
3
|
+
type JsonObject = {
|
|
4
|
+
[key: string]: JsonValue;
|
|
5
|
+
};
|
|
6
|
+
/** A rule to save. The store keeps `conditions` and `actions` as they are given; the caller decides their shape. */
|
|
7
|
+
export interface MailRuleInput {
|
|
8
|
+
/** All must match. Two rules with the same conditions, in any key order, are the same rule. */
|
|
9
|
+
conditions: JsonObject;
|
|
10
|
+
/** What to do with a match: `store` (`full`, `envelope`, `skip`), `tags`. */
|
|
11
|
+
actions: JsonObject;
|
|
12
|
+
/** No cleanup may cut, archive or trash what a protected rule matches. */
|
|
13
|
+
protected?: boolean;
|
|
14
|
+
/** `owner`, `preset:<name>`, `probe`, `gmail-filter`. */
|
|
15
|
+
source: string;
|
|
16
|
+
reason?: string | null;
|
|
17
|
+
decidedAt: number;
|
|
18
|
+
}
|
|
19
|
+
export interface MailRule {
|
|
20
|
+
id: number;
|
|
21
|
+
accountId: number;
|
|
22
|
+
conditions: JsonObject;
|
|
23
|
+
actions: JsonObject;
|
|
24
|
+
protected: boolean;
|
|
25
|
+
source: string;
|
|
26
|
+
reason: string | null;
|
|
27
|
+
decidedAt: number;
|
|
28
|
+
createdAt: number;
|
|
29
|
+
updatedAt: number;
|
|
30
|
+
}
|
|
31
|
+
/** The live emails one rule decided, and their size at the source. */
|
|
32
|
+
export interface MailRuleCount {
|
|
33
|
+
ruleId: number;
|
|
34
|
+
emails: number;
|
|
35
|
+
bytes: number;
|
|
36
|
+
}
|
|
37
|
+
export interface MailRulesStore {
|
|
38
|
+
/** Oldest first. */
|
|
39
|
+
list(accountId: number): Promise<MailRule[]>;
|
|
40
|
+
/** A rule with the same conditions is replaced, and keeps its id and the emails it decided. */
|
|
41
|
+
upsert(accountId: number, rule: MailRuleInput, now: number): Promise<MailRule>;
|
|
42
|
+
/** Clears the rule from the emails it decided. Answers false when no rule has these conditions. */
|
|
43
|
+
remove(accountId: number, conditions: JsonObject): Promise<boolean>;
|
|
44
|
+
/** Every rule's live emails and bytes in one query; a rule that decided none is left out. */
|
|
45
|
+
counts(accountId: number): Promise<MailRuleCount[]>;
|
|
46
|
+
/** Records which rule decided these emails, by Message-ID; `null` clears it. Answers how many changed. */
|
|
47
|
+
assign(accountId: number, ruleId: number | null, externalIds: string[], now: number): Promise<number>;
|
|
48
|
+
}
|
|
49
|
+
/** The conditions as stored: keys sorted, so the unique key does not depend on the order they were written in. */
|
|
50
|
+
export declare const conditionsKey: (conditions: JsonObject) => string;
|
|
51
|
+
export declare const mailRulesOver: (database: CacheDatabase) => MailRulesStore;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=mail-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-rules.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/mail-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAA;AAI3D,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAE9C,oHAAoH;AACpH,MAAM,WAAW,aAAa;IAC5B,+FAA+F;IAC/F,UAAU,EAAE,UAAU,CAAA;IACtB,6EAA6E;IAC7E,OAAO,EAAE,UAAU,CAAA;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,UAAU,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC5C,+FAA+F;IAC/F,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9E,mGAAmG;IACnG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,6FAA6F;IAC7F,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACnD,0GAA0G;IAC1G,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACtG;AAaD,kHAAkH;AAClH,eAAO,MAAM,aAAa,eAAgB,UAAU,KAAG,MAA4C,CAAA;AAkBnG,eAAO,MAAM,aAAa,aAAc,aAAa,KAAG,cAuEtD,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { atomic } from "./atomic.js";
|
|
2
|
+
const sorted = (value) => Array.isArray(value)
|
|
3
|
+
? value.map(sorted)
|
|
4
|
+
: value !== null && typeof value === "object"
|
|
5
|
+
? Object.fromEntries(Object.keys(value)
|
|
6
|
+
.sort()
|
|
7
|
+
.map((key) => [key, sorted(value[key])]))
|
|
8
|
+
: value;
|
|
9
|
+
/** The conditions as stored: keys sorted, so the unique key does not depend on the order they were written in. */
|
|
10
|
+
export const conditionsKey = (conditions) => JSON.stringify(sorted(conditions));
|
|
11
|
+
const ruleOf = (row) => ({
|
|
12
|
+
id: Number(row.id),
|
|
13
|
+
accountId: Number(row.account_id),
|
|
14
|
+
conditions: JSON.parse(String(row.conditions)),
|
|
15
|
+
actions: JSON.parse(String(row.actions)),
|
|
16
|
+
protected: Number(row.protected) === 1,
|
|
17
|
+
source: String(row.source),
|
|
18
|
+
reason: row.reason === null ? null : String(row.reason),
|
|
19
|
+
decidedAt: Number(row.decided_at),
|
|
20
|
+
createdAt: Number(row.created_at),
|
|
21
|
+
updatedAt: Number(row.updated_at),
|
|
22
|
+
});
|
|
23
|
+
// SQLite allows 32766 parameters; two are taken by the account and the rule.
|
|
24
|
+
const CHUNK = 30_000;
|
|
25
|
+
export const mailRulesOver = (database) => ({
|
|
26
|
+
async list(accountId) {
|
|
27
|
+
return database.prepare("SELECT * FROM mail_rules WHERE account_id = ? ORDER BY id").all(accountId).map(ruleOf);
|
|
28
|
+
},
|
|
29
|
+
async upsert(accountId, rule, now) {
|
|
30
|
+
const row = database
|
|
31
|
+
.prepare(`INSERT INTO mail_rules
|
|
32
|
+
(account_id, conditions, actions, protected, source, reason, decided_at, created_at, updated_at)
|
|
33
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
34
|
+
ON CONFLICT (account_id, conditions) DO UPDATE SET actions = excluded.actions,
|
|
35
|
+
protected = excluded.protected, source = excluded.source, reason = excluded.reason,
|
|
36
|
+
decided_at = excluded.decided_at, updated_at = excluded.updated_at
|
|
37
|
+
RETURNING *`)
|
|
38
|
+
.get(accountId, conditionsKey(rule.conditions), JSON.stringify(sorted(rule.actions)), rule.protected ? 1 : 0, rule.source, rule.reason ?? null, rule.decidedAt, now, now);
|
|
39
|
+
return ruleOf(row);
|
|
40
|
+
},
|
|
41
|
+
async remove(accountId, conditions) {
|
|
42
|
+
return atomic(database, () => {
|
|
43
|
+
const found = database
|
|
44
|
+
.prepare("SELECT id FROM mail_rules WHERE account_id = ? AND conditions = ?")
|
|
45
|
+
.get(accountId, conditionsKey(conditions));
|
|
46
|
+
if (!found)
|
|
47
|
+
return false;
|
|
48
|
+
database.prepare("UPDATE emails SET mail_rule_id = NULL WHERE mail_rule_id = ?").run(Number(found.id));
|
|
49
|
+
database.prepare("DELETE FROM mail_rules WHERE id = ?").run(Number(found.id));
|
|
50
|
+
return true;
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
async counts(accountId) {
|
|
54
|
+
return database
|
|
55
|
+
.prepare(`SELECT e.mail_rule_id AS rule, count(*) AS emails, coalesce(sum(e.size), 0) AS bytes
|
|
56
|
+
FROM emails e JOIN mail_rules r ON r.id = e.mail_rule_id
|
|
57
|
+
WHERE r.account_id = ? AND e.mail_rule_id IS NOT NULL AND e.deleted_at IS NULL
|
|
58
|
+
GROUP BY e.mail_rule_id ORDER BY e.mail_rule_id`)
|
|
59
|
+
.all(accountId)
|
|
60
|
+
.map((row) => ({ ruleId: Number(row.rule), emails: Number(row.emails), bytes: Number(row.bytes) }));
|
|
61
|
+
},
|
|
62
|
+
async assign(accountId, ruleId, externalIds, now) {
|
|
63
|
+
return atomic(database, () => {
|
|
64
|
+
if (ruleId !== null &&
|
|
65
|
+
!database.prepare("SELECT 1 FROM mail_rules WHERE id = ? AND account_id = ?").get(ruleId, accountId))
|
|
66
|
+
throw new Error(`Mail rule ${ruleId} is not a rule of account ${accountId}`);
|
|
67
|
+
let changed = 0;
|
|
68
|
+
for (let start = 0; start < externalIds.length; start += CHUNK) {
|
|
69
|
+
const ids = externalIds.slice(start, start + CHUNK);
|
|
70
|
+
const params = [ruleId, now, accountId, ...ids];
|
|
71
|
+
changed += database
|
|
72
|
+
.prepare(`UPDATE emails SET mail_rule_id = ?, updated_at = ?
|
|
73
|
+
WHERE account_id = ? AND external_id IN (${ids.map(() => "?").join(", ")})`)
|
|
74
|
+
.run(...params).changes;
|
|
75
|
+
}
|
|
76
|
+
return changed;
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=mail-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-rules.js","sourceRoot":"","sources":["../../../src/store/sqlite/mail-rules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAoDpC,MAAM,MAAM,GAAG,CAAC,KAAgB,EAAa,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;IACnB,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3C,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACf,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC,CAAC,CAAC,CACxD;QACH,CAAC,CAAC,KAAK,CAAA;AAEb,kHAAkH;AAClH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAsB,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;AAEnG,MAAM,MAAM,GAAG,CAAC,GAAQ,EAAY,EAAE,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;CAClC,CAAC,CAAA;AAEF,6EAA6E;AAC7E,MAAM,KAAK,GAAG,MAAM,CAAA;AAEpB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAuB,EAAkB,EAAE,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,SAAS;QAClB,OAAO,QAAQ,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjH,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG;QAC/B,MAAM,GAAG,GAAG,QAAQ;aACjB,OAAO,CACN;;;;;;uBAMe,CAChB;aACA,GAAG,CACF,SAAS,EACT,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,SAAS,EACd,GAAG,EACH,GAAG,CACJ,CAAA;QACH,OAAO,MAAM,CAAC,GAAU,CAAC,CAAA;IAC3B,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU;QAChC,OAAO,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC3B,MAAM,KAAK,GAAG,QAAQ;iBACnB,OAAO,CAAC,mEAAmE,CAAC;iBAC5E,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;YAC5C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAA;YACxB,QAAQ,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;YACtG,QAAQ,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7E,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,SAAS;QACpB,OAAO,QAAQ;aACZ,OAAO,CACN;;;2DAGmD,CACpD;aACA,GAAG,CAAC,SAAS,CAAC;aACd,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACvG,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;QAC9C,OAAO,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC3B,IACE,MAAM,KAAK,IAAI;gBACf,CAAC,QAAQ,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;gBAEpG,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,6BAA6B,SAAS,EAAE,CAAC,CAAA;YAC9E,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAA;gBACnD,MAAM,MAAM,GAAe,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,CAAA;gBAC3D,OAAO,IAAI,QAAQ;qBAChB,OAAO,CACN;0DAC8C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC/E;qBACA,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAA;YAC3B,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,aAAa,EAenC,CAAA;AAED,eAAO,MAAM,mBAAmB,cACpB,aAAa,EAAE,cACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,KAClD,SAAS,EAeX,CAAA"}
|
|
@@ -14,6 +14,7 @@ export const MANIFEST = [
|
|
|
14
14
|
{ name: "20261014105203_version-9-folded-fill", version: 9, minCompatible: 1 },
|
|
15
15
|
{ name: "20261014123446_version-10-mentions-in-attachments", version: 10, minCompatible: 1 },
|
|
16
16
|
{ name: "20261014125554_version-11-organization-identities", version: 11, minCompatible: 1 },
|
|
17
|
+
{ name: "20261014195259_version-12-mail-rules", version: 12, minCompatible: 1 },
|
|
17
18
|
];
|
|
18
19
|
export const generatedMigrations = (manifest = MANIFEST, generated = GENERATED) => {
|
|
19
20
|
const migrations = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAgBrD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAChE,EAAE,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IACxE,EAAE,IAAI,EAAE,8CAA8C,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IACtF,EAAE,IAAI,EAAE,qCAAqC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,0CAA0C,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,0CAA0C,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,0CAA0C,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC3E,EAAE,IAAI,EAAE,4CAA4C,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IACpF,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC9E,EAAE,IAAI,EAAE,mDAAmD,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC5F,EAAE,IAAI,EAAE,mDAAmD,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type MeetingPreparationContextStore } from "../../meetings/index.js";
|
|
2
|
+
import type { StoreContext } from "./open.js";
|
|
3
|
+
export declare const meetingPreparationContextOver: ({ database, }: Pick<StoreContext, "database">) => MeetingPreparationContextStore;
|
|
4
|
+
//# sourceMappingURL=meeting-preparation-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-preparation-context.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/meeting-preparation-context.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,8BAA8B,EAEpC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,eAAO,MAAM,6BAA6B,kBAEvC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,KAAG,8BAgDlC,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import { formatMeetingReference, validateMeetingPreparationContext, } from "../../meetings/index.js";
|
|
3
|
+
import { meetingReadSnapshot } from "./meeting-reads.js";
|
|
4
|
+
import { preparationQueries } from "./preparation-context-queries.js";
|
|
5
|
+
export const meetingPreparationContextOver = ({ database, }) => ({
|
|
6
|
+
async preparationContext(original) {
|
|
7
|
+
const input = validateMeetingPreparationContext(original);
|
|
8
|
+
const { accountId, meetingId, seriesId, updatedAt, limit, maxReadBytes, signal } = input;
|
|
9
|
+
return meetingReadSnapshot(database, () => {
|
|
10
|
+
const live = database
|
|
11
|
+
.prepare("SELECT 1 FROM meetings m JOIN meeting_series s ON s.id=m.meeting_series_id WHERE m.id=? AND m.account_id=? AND s.account_id=? AND s.id=? AND m.updated_at=? AND m.deleted_at IS NULL AND s.deleted_at IS NULL")
|
|
12
|
+
.get(meetingId, accountId, accountId, seriesId, updatedAt);
|
|
13
|
+
if (!live)
|
|
14
|
+
throw new CliError("not_found", "The selected meeting history changed or is unavailable");
|
|
15
|
+
const keys = ["participants", "projects", "facts", "tasks"];
|
|
16
|
+
const params = (key) => key === "tasks"
|
|
17
|
+
? [formatMeetingReference({ type: "meeting", accountId, meetingId }), accountId, limit + 1]
|
|
18
|
+
: [meetingId, limit + 1];
|
|
19
|
+
let total = 0;
|
|
20
|
+
for (const key of keys) {
|
|
21
|
+
const query = preparationQueries[key];
|
|
22
|
+
const bytes = query.text.map((field) => `coalesce(length(CAST(${field} AS BLOB)),0)`).join("+");
|
|
23
|
+
const probe = database
|
|
24
|
+
.prepare(`SELECT coalesce(sum(read_bytes),0) AS read_bytes FROM (SELECT ${bytes} AS read_bytes ${query.from})`)
|
|
25
|
+
.get(...params(key));
|
|
26
|
+
total += Number(probe?.read_bytes);
|
|
27
|
+
if (!Number.isSafeInteger(total) || total < 0 || total > maxReadBytes)
|
|
28
|
+
throw new CliError("validation_error", "Preparation context exceeds the stored text byte budget");
|
|
29
|
+
}
|
|
30
|
+
signal?.throwIfAborted();
|
|
31
|
+
const read = (key) => {
|
|
32
|
+
const query = preparationQueries[key];
|
|
33
|
+
const rows = database.prepare(`SELECT ${query.fields} ${query.from}`).all(...params(key));
|
|
34
|
+
return {
|
|
35
|
+
items: rows.slice(0, limit).map((row) => query.map(row)),
|
|
36
|
+
hasMore: rows.length > limit,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const result = {
|
|
40
|
+
participants: read("participants"),
|
|
41
|
+
projects: read("projects"),
|
|
42
|
+
facts: read("facts"),
|
|
43
|
+
tasks: read("tasks"),
|
|
44
|
+
};
|
|
45
|
+
signal?.throwIfAborted();
|
|
46
|
+
return result;
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=meeting-preparation-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-preparation-context.js","sourceRoot":"","sources":["../../../src/store/sqlite/meeting-preparation-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type MeetingSeriesHistoryStore } from "../../meetings/index.js";
|
|
2
|
+
import type { StoreContext } from "./open.js";
|
|
3
|
+
export declare const meetingSeriesHistoryOver: ({ database }: Pick<StoreContext, "database">) => MeetingSeriesHistoryStore;
|
|
4
|
+
//# sourceMappingURL=meeting-series-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-series-history.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/meeting-series-history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,yBAAyB,EAAgC,MAAM,yBAAyB,CAAA;AAGtG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAQ7C,eAAO,MAAM,wBAAwB,iBAAkB,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,KAAG,yBA6DtF,CAAA"}
|