fluxmail 0.17.0 → 0.17.1
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.
|
@@ -6,9 +6,12 @@ export declare class SqliteImapStateStore implements ImapStateStore {
|
|
|
6
6
|
constructor(db: FluxmailDb, accountId: string);
|
|
7
7
|
findById(id: string): Promise<ImapMessageLocation | undefined>;
|
|
8
8
|
findByLocation(path: string, uidValidity: string, uid: number): Promise<ImapMessageLocation | undefined>;
|
|
9
|
+
findByLocations(path: string, uidValidity: string, uids: number[]): Promise<ImapMessageLocation[]>;
|
|
9
10
|
findByDraftId(draftId: string): Promise<ImapMessageLocation | undefined>;
|
|
10
11
|
listByThreadId(threadId: string): Promise<ImapMessageLocation[]>;
|
|
11
12
|
save(location: ImapMessageLocation): Promise<void>;
|
|
13
|
+
saveMany(locations: ImapMessageLocation[]): Promise<void>;
|
|
14
|
+
private upsert;
|
|
12
15
|
remove(id: string): Promise<void>;
|
|
13
16
|
invalidateMailbox(path: string, uidValidity: string): Promise<void>;
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imapState.d.ts","sourceRoot":"","sources":["../../src/storage/imapState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAmBxD,qBAAa,oBAAqB,YAAW,cAAc;IAEvD,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM;IAG9B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAS9D,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAgBxG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IASxE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAShE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"imapState.d.ts","sourceRoot":"","sources":["../../src/storage/imapState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAmBxD,qBAAa,oBAAqB,YAAW,cAAc;IAEvD,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM;IAG9B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAS9D,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAgBxG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAiBlG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IASxE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAShE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,QAAQ,CAAC,SAAS,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,OAAO,CAAC,MAAM;IAmBR,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAY1E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { and, eq, ne } from 'drizzle-orm';
|
|
1
|
+
import { and, eq, inArray, ne } from 'drizzle-orm';
|
|
2
2
|
import { imapMessages } from './db.js';
|
|
3
3
|
function fromRow(row) {
|
|
4
4
|
return {
|
|
@@ -39,6 +39,16 @@ export class SqliteImapStateStore {
|
|
|
39
39
|
.get();
|
|
40
40
|
return row ? fromRow(row) : undefined;
|
|
41
41
|
}
|
|
42
|
+
async findByLocations(path, uidValidity, uids) {
|
|
43
|
+
if (!uids.length)
|
|
44
|
+
return [];
|
|
45
|
+
return this.db
|
|
46
|
+
.select()
|
|
47
|
+
.from(imapMessages)
|
|
48
|
+
.where(and(eq(imapMessages.accountId, this.accountId), eq(imapMessages.mailboxPath, path), eq(imapMessages.uidValidity, uidValidity), inArray(imapMessages.uid, uids)))
|
|
49
|
+
.all()
|
|
50
|
+
.map(fromRow);
|
|
51
|
+
}
|
|
42
52
|
async findByDraftId(draftId) {
|
|
43
53
|
const row = this.db
|
|
44
54
|
.select()
|
|
@@ -56,6 +66,15 @@ export class SqliteImapStateStore {
|
|
|
56
66
|
.map(fromRow);
|
|
57
67
|
}
|
|
58
68
|
async save(location) {
|
|
69
|
+
this.upsert(this.db, location);
|
|
70
|
+
}
|
|
71
|
+
async saveMany(locations) {
|
|
72
|
+
this.db.transaction((tx) => {
|
|
73
|
+
for (const location of locations)
|
|
74
|
+
this.upsert(tx, location);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
upsert(db, location) {
|
|
59
78
|
const values = {
|
|
60
79
|
id: location.id,
|
|
61
80
|
accountId: this.accountId,
|
|
@@ -71,7 +90,7 @@ export class SqliteImapStateStore {
|
|
|
71
90
|
date: location.date ?? null,
|
|
72
91
|
updatedAt: Date.now(),
|
|
73
92
|
};
|
|
74
|
-
|
|
93
|
+
db.insert(imapMessages).values(values).onConflictDoUpdate({ target: imapMessages.id, set: values }).run();
|
|
75
94
|
}
|
|
76
95
|
async remove(id) {
|
|
77
96
|
this.db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imapState.js","sourceRoot":"","sources":["../../src/storage/imapState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"imapState.js","sourceRoot":"","sources":["../../src/storage/imapState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fluxmail",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.1",
|
|
4
4
|
"mcpName": "io.github.fluxmailai/fluxmail",
|
|
5
5
|
"description": "Self-hosted email API with MCP and REST support for Gmail, Outlook, and IMAP/SMTP",
|
|
6
6
|
"keywords": [
|
|
@@ -81,10 +81,10 @@
|
|
|
81
81
|
"update-notifier": "7.3.1",
|
|
82
82
|
"zod": "^3.25.67",
|
|
83
83
|
"zod-to-json-schema": "3.25.2",
|
|
84
|
-
"@fluxmail/core": "0.17.
|
|
85
|
-
"@fluxmail/provider-
|
|
86
|
-
"@fluxmail/provider-
|
|
87
|
-
"@fluxmail/provider-
|
|
84
|
+
"@fluxmail/core": "0.17.1",
|
|
85
|
+
"@fluxmail/provider-imap": "0.17.1",
|
|
86
|
+
"@fluxmail/provider-outlook": "0.17.1",
|
|
87
|
+
"@fluxmail/provider-gmail": "0.17.1"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
90
|
"@modelcontextprotocol/client": "2.4.0",
|