Use @signalapp/sqlcipher

This commit is contained in:
Fedor Indutny
2025-03-12 14:45:54 -07:00
committed by GitHub
parent df7997b313
commit 5a9253bd44
118 changed files with 2497 additions and 1485 deletions

View File

@@ -21,7 +21,6 @@ import {
defunctCallLinkFromRecord,
} from '../../util/callLinksRingrtc';
import type { ReadableDB, WritableDB } from '../Interface';
import { prepare } from '../Server';
import { sql } from '../util';
import { strictAssert } from '../../util/assert';
import { CallStatusValue, DirectCallStatus } from '../../types/CallDisposition';
@@ -33,7 +32,13 @@ export function callLinkExists(db: ReadableDB, roomId: string): boolean {
FROM callLinks
WHERE roomId = ${roomId};
`;
return db.prepare(query).pluck(true).get(params) === 1;
return (
db
.prepare(query, {
pluck: true,
})
.get(params) === 1
);
}
export function getCallLinkByRoomId(
@@ -53,11 +58,9 @@ export function getCallLinkRecordByRoomId(
db: ReadableDB,
roomId: string
): CallLinkRecord | undefined {
const row = prepare(db, 'SELECT * FROM callLinks WHERE roomId = $roomId').get(
{
roomId,
}
);
const row = db.prepare('SELECT * FROM callLinks WHERE roomId = $roomId').get({
roomId,
});
if (!row) {
return undefined;
@@ -83,8 +86,7 @@ function _insertCallLink(db: WritableDB, callLink: CallLinkType): void {
assertRoomIdMatchesRootKey(roomId, rootKey);
const data = callLinkToRecord(callLink);
prepare(
db,
db.prepare(
`
INSERT INTO callLinks (
roomId,
@@ -174,8 +176,7 @@ export function updateCallLinkAdminKeyByRoomId(
adminKey: string
): void {
const adminKeyBytes = toAdminKeyBytes(adminKey);
prepare(
db,
db.prepare(
`
UPDATE callLinks
SET adminKey = $adminKeyBytes
@@ -360,7 +361,11 @@ export function getAllMarkedDeletedCallLinkRoomIds(
const [query] = sql`
SELECT roomId FROM callLinks WHERE deleted = 1;
`;
return db.prepare(query).pluck().all();
return db
.prepare(query, {
pluck: true,
})
.all();
}
// TODO: Run this after uploading storage records, maybe periodically on startup
@@ -387,7 +392,13 @@ export function defunctCallLinkExists(db: ReadableDB, roomId: string): boolean {
FROM defunctCallLinks
WHERE roomId = ${roomId};
`;
return db.prepare(query).pluck(true).get(params) === 1;
return (
db
.prepare(query, {
pluck: true,
})
.get(params) === 1
);
}
export function getAllDefunctCallLinksWithAdminKey(
@@ -414,8 +425,7 @@ export function insertDefunctCallLink(
assertRoomIdMatchesRootKey(roomId, rootKey);
const data = defunctCallLinkToRecord(defunctCallLink);
prepare(
db,
db.prepare(
`
INSERT INTO defunctCallLinks (
roomId,

View File

@@ -11,7 +11,6 @@ import {
groupSendMemberEndorsementSchema,
groupSendEndorsementsDataSchema,
} from '../../types/GroupSendEndorsements';
import { prepare } from '../Server';
import type { ReadableDB, WritableDB } from '../Interface';
import { sql } from '../util';
import type { AciString } from '../../types/ServiceId';
@@ -43,8 +42,8 @@ function _deleteAllEndorsementsForGroup(db: WritableDB, groupId: string): void {
DELETE FROM groupSendMemberEndorsement
WHERE groupId IS ${groupId};
`;
prepare<Array<unknown>>(db, deleteCombined).run(deleteCombinedParams);
prepare<Array<unknown>>(db, deleteMembers).run(deleteMembersParams);
db.prepare(deleteCombined).run(deleteCombinedParams);
db.prepare(deleteMembers).run(deleteMembersParams);
}
function _replaceCombinedEndorsement(
@@ -57,9 +56,7 @@ function _replaceCombinedEndorsement(
(groupId, expiration, endorsement)
VALUES (${groupId}, ${expiration}, ${endorsement});
`;
const result = prepare<Array<unknown>>(db, insertCombined).run(
insertCombinedParams
);
const result = db.prepare(insertCombined).run(insertCombinedParams);
strictAssert(
result.changes === 1,
'Must update groupSendCombinedEndorsement'
@@ -77,9 +74,7 @@ function _replaceMemberEndorsements(
(groupId, memberAci, expiration, endorsement)
VALUES (${groupId}, ${memberAci}, ${expiration}, ${endorsement});
`;
const result = prepare<Array<unknown>>(db, replaceMember).run(
replaceMemberParams
);
const result = db.prepare(replaceMember).run(replaceMemberParams);
strictAssert(
result.changes === 1,
'Must update groupSendMemberEndorsement'
@@ -104,8 +99,10 @@ export function getGroupSendCombinedEndorsementExpiration(
SELECT expiration FROM groupSendCombinedEndorsement
WHERE groupId IS ${groupId};
`;
const value = prepare<Array<unknown>>(db, selectGroup)
.pluck()
const value = db
.prepare(selectGroup, {
pluck: true,
})
.get(selectGroupParams);
if (value == null) {
return null;
@@ -128,19 +125,17 @@ export function getGroupSendEndorsementsData(
WHERE groupId IS ${groupId}
`;
const combinedEndorsement: unknown = prepare<Array<unknown>>(
db,
selectCombinedEndorsement
).get(selectCombinedEndorsementParams);
const combinedEndorsement: unknown = db
.prepare(selectCombinedEndorsement)
.get(selectCombinedEndorsementParams);
if (combinedEndorsement == null) {
return null;
}
const memberEndorsements: Array<unknown> = prepare<Array<unknown>>(
db,
selectMemberEndorsements
).all(selectMemberEndorsementsParams);
const memberEndorsements: Array<unknown> = db
.prepare(selectMemberEndorsements)
.all(selectMemberEndorsementsParams);
return parseLoose(groupSendEndorsementsDataSchema, {
combinedEndorsement,
@@ -159,9 +154,9 @@ export function getGroupSendMemberEndorsement(
WHERE groupId IS ${groupId}
AND memberAci IS ${memberAci}
`;
const row = prepare<Array<unknown>>(db, selectMemberEndorsements).get(
selectMemberEndorsementsParams
);
const row = db
.prepare(selectMemberEndorsements)
.get(selectMemberEndorsementsParams);
if (row == null) {
return null;
}