@remit/drizzle-service 0.0.99 → 0.0.101
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/package.json +1 -1
- package/src/batch.sqlite.test.ts +78 -0
- package/src/batch.ts +46 -0
- package/src/databases.ts +70 -0
- package/src/db.ts +10 -9
- package/src/generated-enum.test.ts +8 -0
- package/src/generated-id.test.ts +19 -0
- package/src/id.test.ts +0 -8
- package/src/id.ts +0 -6
- package/src/index.ts +16 -6
- package/src/repair/address-display-name.sqlite.test.ts +3 -5
- package/src/repair/address-display-name.ts +8 -3
- package/src/repair/junk-only-address.sqlite.test.ts +8 -36
- package/src/repair/stranded-sent-outbox.sqlite.test.ts +2 -9
- package/src/repos/account.conformance.sqlite.test.ts +1 -1
- package/src/repos/calendar-default.sqlite.test.ts +6 -6
- package/src/repos/calendar-put.sqlite.test.ts +40 -39
- package/src/repos/calendar-store.ts +273 -0
- package/src/repos/cascade-delete.sqlite.test.ts +7 -9
- package/src/repos/cascade-delete.test.ts +6 -13
- package/src/repos/cascade-delete.ts +127 -97
- package/src/repos/envelope.test.ts +1 -17
- package/src/repos/envelope.ts +83 -67
- package/src/repos/filter.test.ts +22 -2
- package/src/repos/filter.ts +1 -5
- package/src/repos/i4-account-config.test.ts +2 -2
- package/src/repos/i4-account-config.ts +5 -2
- package/src/repos/i4-account.test.ts +6 -2
- package/src/repos/i4-account.ts +12 -56
- package/src/repos/i4-address-junk-move.sqlite.test.ts +1 -1
- package/src/repos/i4-address-merge-flags.sqlite.test.ts +1 -2
- package/src/repos/i4-address.ts +58 -90
- package/src/repos/i4-mailbox-special-use.sqlite.test.ts +6 -2
- package/src/repos/i4-mailbox-special-use.ts +9 -6
- package/src/repos/i4-mailbox.sqlite.test.ts +12 -14
- package/src/repos/i4-mailbox.test.ts +17 -62
- package/src/repos/i4-mailbox.ts +121 -94
- package/src/repos/i4-organize-job-request.ts +0 -4
- package/src/repos/i4-outbox-attachment.ts +62 -33
- package/src/repos/mappers.ts +0 -16
- package/src/repos/message.sqlite.test.ts +32 -106
- package/src/repos/message.test.ts +6 -167
- package/src/repos/message.ts +216 -228
- package/src/repos/sync-warning.ts +76 -0
- package/src/repos/thread-message-body-muted.sqlite.test.ts +5 -10
- package/src/repos/thread-message-field-terms.sqlite.test.ts +5 -1
- package/src/repos/thread-message.sqlite.test.ts +2 -1
- package/src/repos/thread-message.test.ts +17 -4
- package/src/repos/thread-message.ts +502 -285
- package/src/repos/thread-search-predicates.ts +24 -26
- package/src/schema/message-data.ts +4 -8
- package/src/schema/sync-warning.ts +3 -0
- package/src/schema-sets/app.ts +17 -0
- package/src/schema-sets/mail.ts +32 -0
- package/src/schema-sets/search.ts +5 -0
- package/src/schema-version-accounting.sqlite.test.ts +56 -43
- package/src/schema.ts +3 -4
- package/src/search/thread-message-search.sqlite.test.ts +131 -0
- package/src/search/thread-message-search.ts +271 -0
- package/src/sqlite-client.ts +5 -7
- package/src/sqlite-repositories.ts +75 -0
- package/src/test-db-sqlite.ts +5 -13
- package/src/test-shipped-sqlite-schema.ts +46 -45
- package/src/test-sqlite.ts +35 -11
- package/src/vps-migrations-drift.sqlite.test.ts +81 -15
- package/src/account-granted-scopes-migration.sqlite.test.ts +0 -66
- package/src/account-synced-services-migration.sqlite.test.ts +0 -56
- package/src/mailbox-path-dedupe.sqlite.test.ts +0 -462
- package/src/mailbox-sync-status-backfill.sqlite.test.ts +0 -118
- package/src/outbox-created-cleanup.sqlite.test.ts +0 -83
- package/src/repair/duplicate-mailbox-mail.ts +0 -98
- package/src/repair/thread-message-category-contract.ts +0 -505
- package/src/repair/thread-message-category.sqlite.test.ts +0 -100
- package/src/repair/thread-message-category.ts +0 -415
- package/src/repos/calendar-migrations.sqlite.test.ts +0 -345
- package/src/repos/calendar-unit-of-work.ts +0 -31
- package/src/repos/config-import-atomicity.sqlite.test.ts +0 -255
- package/src/repos/filter-anchor-transaction.test.ts +0 -136
- package/src/repos/filter-anchor-transaction.ts +0 -45
- package/src/repos/filter-anchor.test.ts +0 -131
- package/src/repos/filter-anchor.ts +0 -105
- package/src/repos/i4-mailbox-special-use.structure.test.ts +0 -27
- package/src/repos/message-placement-backfill.sqlite.test.ts +0 -190
- package/src/repos/search-index-shape.test.ts +0 -82
- package/src/repos/search-index-shape.ts +0 -56
- package/src/repos/serialized-writes.sqlite.test.ts +0 -199
- package/src/repos/unit-of-work.sqlite.test.ts +0 -138
- package/src/repos/unit-of-work.test.ts +0 -109
- package/src/repos/unit-of-work.ts +0 -31
- package/src/schema/outbox.ts +0 -46
- package/src/schema-full-sqlite.ts +0 -13
- package/src/tx.sqlite.test.ts +0 -83
- package/src/tx.ts +0 -233
|
@@ -8,23 +8,18 @@
|
|
|
8
8
|
* each case, which is exactly what such a pass cannot see (#1135, #1137).
|
|
9
9
|
*/
|
|
10
10
|
import assert from "node:assert/strict";
|
|
11
|
-
import { readFileSync } from "node:fs";
|
|
12
11
|
import { after, before, describe, test } from "node:test";
|
|
13
12
|
import type { CreateThreadMessageInput } from "@remit/data-ports";
|
|
14
13
|
import { addressTable } from "../schema/i4-address.js";
|
|
15
14
|
import { threadMessageTable } from "../schema/thread-message.js";
|
|
15
|
+
import { SearchIndex } from "../search/thread-message-search.js";
|
|
16
16
|
import { createSqliteTestDb } from "../test-db-sqlite.js";
|
|
17
|
+
import { shippedIndexDdl } from "../test-shipped-sqlite-schema.js";
|
|
17
18
|
import { DrizzleThreadMessageRepository } from "./thread-message.js";
|
|
18
19
|
|
|
19
|
-
// The index the
|
|
20
|
+
// The index the mail baseline creates for this predicate, read from the one
|
|
20
21
|
// committed source so the plan assertion below is about the real object.
|
|
21
|
-
const mutedIndexDdl =
|
|
22
|
-
new URL(
|
|
23
|
-
"../../../../npm-scripts/sqlite-address-muted-index.sql",
|
|
24
|
-
import.meta.url,
|
|
25
|
-
),
|
|
26
|
-
"utf8",
|
|
27
|
-
);
|
|
22
|
+
const mutedIndexDdl = shippedIndexDdl("address_by_normalized_email");
|
|
28
23
|
|
|
29
24
|
const ACCOUNT = "acct-seam";
|
|
30
25
|
const MAILBOX = "mbx-seam";
|
|
@@ -66,7 +61,7 @@ describe("thread-message body and muted-sender predicates (sqlite)", () => {
|
|
|
66
61
|
{ searchIndex: true },
|
|
67
62
|
));
|
|
68
63
|
sqlite.exec(mutedIndexDdl);
|
|
69
|
-
repo = new DrizzleThreadMessageRepository(db);
|
|
64
|
+
repo = new DrizzleThreadMessageRepository(db, new SearchIndex(db, db));
|
|
70
65
|
});
|
|
71
66
|
|
|
72
67
|
after(async () => {
|
|
@@ -2,6 +2,7 @@ import assert from "node:assert/strict";
|
|
|
2
2
|
import { after, before, describe, test } from "node:test";
|
|
3
3
|
import type { CreateThreadMessageInput } from "@remit/data-ports";
|
|
4
4
|
import { threadMessageTable } from "../schema/thread-message.js";
|
|
5
|
+
import { SearchIndex } from "../search/thread-message-search.js";
|
|
5
6
|
import { createSqliteTestDb } from "../test-db-sqlite.js";
|
|
6
7
|
import {
|
|
7
8
|
DrizzleThreadMessageRepository,
|
|
@@ -54,7 +55,10 @@ describe("DrizzleThreadMessageRepository.listByFieldTerms (sqlite, #459)", () =>
|
|
|
54
55
|
{ searchIndex: true },
|
|
55
56
|
);
|
|
56
57
|
close = created.close;
|
|
57
|
-
repo = new DrizzleThreadMessageRepository(
|
|
58
|
+
repo = new DrizzleThreadMessageRepository(
|
|
59
|
+
created.db,
|
|
60
|
+
new SearchIndex(created.db, created.db),
|
|
61
|
+
);
|
|
58
62
|
|
|
59
63
|
await repo.create(
|
|
60
64
|
makeInput({
|
|
@@ -2,6 +2,7 @@ import assert from "node:assert/strict";
|
|
|
2
2
|
import { after, before, describe, test } from "node:test";
|
|
3
3
|
import type { CreateThreadMessageInput } from "@remit/data-ports";
|
|
4
4
|
import { threadMessageTable } from "../schema/thread-message.js";
|
|
5
|
+
import { SearchIndex } from "../search/thread-message-search.js";
|
|
5
6
|
import { createSqliteTestDb } from "../test-db-sqlite.js";
|
|
6
7
|
import {
|
|
7
8
|
BASE_DATE,
|
|
@@ -57,7 +58,7 @@ describe("DrizzleThreadMessageRepository (sqlite)", () => {
|
|
|
57
58
|
},
|
|
58
59
|
{ searchIndex: true },
|
|
59
60
|
));
|
|
60
|
-
repo = new DrizzleThreadMessageRepository(db);
|
|
61
|
+
repo = new DrizzleThreadMessageRepository(db, new SearchIndex(db, db));
|
|
61
62
|
});
|
|
62
63
|
|
|
63
64
|
after(async () => {
|
|
@@ -3,6 +3,7 @@ import { after, before, describe, test } from "node:test";
|
|
|
3
3
|
import type { CreateThreadMessageInput } from "@remit/data-ports";
|
|
4
4
|
import shortUuid from "short-uuid";
|
|
5
5
|
import { threadMessageTable } from "../schema/thread-message.js";
|
|
6
|
+
import { SearchIndex } from "../search/thread-message-search.js";
|
|
6
7
|
import { createSqliteTestDb } from "../test-db-sqlite.js";
|
|
7
8
|
import {
|
|
8
9
|
clampThreadSearchLimit,
|
|
@@ -86,7 +87,10 @@ describe("DrizzleThreadMessageRepository.searchByMailboxWindow / countByMailbox"
|
|
|
86
87
|
before(async () => {
|
|
87
88
|
const harness = await setupDb();
|
|
88
89
|
close = harness.close;
|
|
89
|
-
repo = new DrizzleThreadMessageRepository(
|
|
90
|
+
repo = new DrizzleThreadMessageRepository(
|
|
91
|
+
harness.db,
|
|
92
|
+
new SearchIndex(harness.db, harness.db),
|
|
93
|
+
);
|
|
90
94
|
});
|
|
91
95
|
|
|
92
96
|
after(async () => {
|
|
@@ -387,7 +391,10 @@ describe("DrizzleThreadMessageRepository.searchByDate", () => {
|
|
|
387
391
|
before(async () => {
|
|
388
392
|
const harness = await setupDb();
|
|
389
393
|
close = harness.close;
|
|
390
|
-
repo = new DrizzleThreadMessageRepository(
|
|
394
|
+
repo = new DrizzleThreadMessageRepository(
|
|
395
|
+
harness.db,
|
|
396
|
+
new SearchIndex(harness.db, harness.db),
|
|
397
|
+
);
|
|
391
398
|
});
|
|
392
399
|
|
|
393
400
|
after(async () => {
|
|
@@ -914,7 +921,10 @@ describe("DrizzleThreadMessageRepository — native text search", () => {
|
|
|
914
921
|
before(async () => {
|
|
915
922
|
const harness = await setupDb();
|
|
916
923
|
close = harness.close;
|
|
917
|
-
repo = new DrizzleThreadMessageRepository(
|
|
924
|
+
repo = new DrizzleThreadMessageRepository(
|
|
925
|
+
harness.db,
|
|
926
|
+
new SearchIndex(harness.db, harness.db),
|
|
927
|
+
);
|
|
918
928
|
});
|
|
919
929
|
|
|
920
930
|
after(async () => {
|
|
@@ -1086,7 +1096,10 @@ describe("DrizzleThreadMessageRepository — core CRUD", () => {
|
|
|
1086
1096
|
before(async () => {
|
|
1087
1097
|
const harness = await setupDb();
|
|
1088
1098
|
close = harness.close;
|
|
1089
|
-
repo = new DrizzleThreadMessageRepository(
|
|
1099
|
+
repo = new DrizzleThreadMessageRepository(
|
|
1100
|
+
harness.db,
|
|
1101
|
+
new SearchIndex(harness.db, harness.db),
|
|
1102
|
+
);
|
|
1090
1103
|
});
|
|
1091
1104
|
|
|
1092
1105
|
after(async () => {
|