Page MenuHomePhorge

D14449.1768476287.diff
No OneTemporary

Size
26 KB
Referenced Files
None
Subscribers
None

D14449.1768476287.diff

diff --git a/lib/ops/dm-operations-store-ops.js b/lib/ops/dm-operations-store-ops.js
new file mode 100644
--- /dev/null
+++ b/lib/ops/dm-operations-store-ops.js
@@ -0,0 +1,46 @@
+// @flow
+
+import type { DMOperation } from '../types/dm-ops.js';
+
+type Operation = {
+ +id: string,
+ +type: string,
+ +operation: DMOperation,
+};
+
+export type ReplaceDMOperationOperation = {
+ +type: 'replace_dm_operation',
+ +payload: Operation,
+};
+
+export type RemoveDMOperationsOperation = {
+ +type: 'remove_dm_operations',
+ +payload: {
+ +ids: $ReadOnlyArray<string>,
+ },
+};
+
+export type RemoveAllDMOperationsOperation = {
+ +type: 'remove_all_dm_operations',
+};
+
+export type DMOperationStoreOperation =
+ | ReplaceDMOperationOperation
+ | RemoveDMOperationsOperation
+ | RemoveAllDMOperationsOperation;
+
+export type ClientDBDMOperation = {
+ +id: string,
+ +type: string,
+ +operation: string,
+};
+
+export type ClientDBReplaceDMOperationOperation = {
+ +type: 'replace_dm_operation',
+ +payload: ClientDBDMOperation,
+};
+
+export type ClientDBDMOperationStoreOperation =
+ | ClientDBReplaceDMOperationOperation
+ | RemoveDMOperationsOperation
+ | RemoveAllDMOperationsOperation;
diff --git a/lib/types/store-ops-types.js b/lib/types/store-ops-types.js
--- a/lib/types/store-ops-types.js
+++ b/lib/types/store-ops-types.js
@@ -36,6 +36,11 @@
ClientDBCommunityStoreOperation,
CommunityStoreOperation,
} from '../ops/community-store-ops.js';
+import type {
+ ClientDBDMOperation,
+ ClientDBDMOperationStoreOperation,
+ DMOperationStoreOperation,
+} from '../ops/dm-operations-store-ops.js';
import type {
ClientDBEntryInfo,
EntryStoreOperation,
@@ -94,6 +99,7 @@
+outboundP2PMessages?: $ReadOnlyArray<OutboundP2PMessage>,
+entryStoreOperations?: $ReadOnlyArray<EntryStoreOperation>,
+messageSearchStoreOperations?: $ReadOnlyArray<MessageSearchStoreOperation>,
+ +dmOperationStoreOperations?: $ReadOnlyArray<DMOperationStoreOperation>,
};
export type ClientDBStoreOperations = {
@@ -111,6 +117,7 @@
+outboundP2PMessages?: $ReadOnlyArray<OutboundP2PMessage>,
+entryStoreOperations?: $ReadOnlyArray<ClientDBEntryStoreOperation>,
+messageSearchStoreOperations?: $ReadOnlyArray<ClientDBMessageSearchStoreOperation>,
+ +dmOperationStoreOperations?: $ReadOnlyArray<ClientDBDMOperationStoreOperation>,
};
export type ClientDBStore = {
@@ -128,6 +135,7 @@
+threadActivityEntries: $ReadOnlyArray<ClientDBThreadActivityEntry>,
+entries: $ReadOnlyArray<ClientDBEntryInfo>,
+messageStoreLocalMessageInfos: $ReadOnlyArray<ClientDBLocalMessageInfo>,
+ +dmOperations: $ReadOnlyArray<ClientDBDMOperation>,
};
export type ClientStore = {
diff --git a/native/cpp/CommonCpp/NativeModules/CommCoreModule.h b/native/cpp/CommonCpp/NativeModules/CommCoreModule.h
--- a/native/cpp/CommonCpp/NativeModules/CommCoreModule.h
+++ b/native/cpp/CommonCpp/NativeModules/CommCoreModule.h
@@ -8,6 +8,7 @@
#include "../_generated/commJSI.h"
#include "PersistentStorageUtilities/DataStores/AuxUserStore.h"
#include "PersistentStorageUtilities/DataStores/CommunityStore.h"
+#include "PersistentStorageUtilities/DataStores/DMOperationStore.h"
#include "PersistentStorageUtilities/DataStores/DraftStore.h"
#include "PersistentStorageUtilities/DataStores/EntryStore.h"
#include "PersistentStorageUtilities/DataStores/IntegrityStore.h"
@@ -48,6 +49,7 @@
ThreadActivityStore threadActivityStore;
EntryStore entryStore;
MessageSearchStore messageSearchStore;
+ DMOperationStore dmOperationStore;
void persistCryptoModules(
bool persistContentModule,
@@ -290,6 +292,8 @@
jsi::Array notifOneTimeKeys,
jsi::String deviceList,
jsi::String backupSecret) override;
+ virtual jsi::Value
+ getDMOperationsByType(jsi::Runtime &rt, jsi::String type) override;
public:
CommCoreModule(std::shared_ptr<facebook::react::CallInvoker> jsInvoker);
diff --git a/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp b/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp
--- a/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp
+++ b/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp
@@ -126,6 +126,7 @@
std::vector<ThreadActivityEntry> threadActivityStoreVector;
std::vector<EntryInfo> entryStoreVector;
std::vector<LocalMessageInfo> messageStoreLocalMessageInfosVector;
+ std::vector<DMOperation> dmOperationsVector;
try {
draftsVector = DatabaseManager::getQueryExecutor().getAllDrafts();
messagesVector =
@@ -153,6 +154,8 @@
messageStoreLocalMessageInfosVector =
DatabaseManager::getQueryExecutor()
.getAllMessageStoreLocalMessageInfos();
+ dmOperationsVector =
+ DatabaseManager::getQueryExecutor().getDMOperations();
} catch (std::system_error &e) {
error = e.what();
}
@@ -192,102 +195,111 @@
auto messageStoreLocalMessageInfosVectorPtr =
std::make_shared<std::vector<LocalMessageInfo>>(
std::move(messageStoreLocalMessageInfosVector));
- this->jsInvoker_->invokeAsync([&innerRt,
- draftsVectorPtr,
- messagesVectorPtr,
- threadsVectorPtr,
- messageStoreThreadsVectorPtr,
- reportStoreVectorPtr,
- userStoreVectorPtr,
- keyserveStoreVectorPtr,
- communityStoreVectorPtr,
- integrityStoreVectorPtr,
- syncedMetadataStoreVectorPtr,
- auxUserStoreVectorPtr,
- threadActivityStoreVectorPtr,
- entryStoreVectorPtr,
- messageStoreLocalMessageInfosVectorPtr,
- error,
- promise,
- draftStore = this->draftStore,
- threadStore = this->threadStore,
- messageStore = this->messageStore,
- reportStore = this->reportStore,
- userStore = this->userStore,
- keyserverStore = this->keyserverStore,
- communityStore = this->communityStore,
- integrityStore = this->integrityStore,
- syncedMetadataStore =
- this->syncedMetadataStore,
- auxUserStore = this->auxUserStore,
- threadActivityStore =
- this->threadActivityStore,
- entryStore = this->entryStore]() {
- if (error.size()) {
- promise->reject(error);
- return;
- }
- jsi::Array jsiDrafts =
- draftStore.parseDBDataStore(innerRt, draftsVectorPtr);
- jsi::Array jsiMessages =
- messageStore.parseDBDataStore(innerRt, messagesVectorPtr);
- jsi::Array jsiThreads =
- threadStore.parseDBDataStore(innerRt, threadsVectorPtr);
- jsi::Array jsiMessageStoreThreads =
- messageStore.parseDBMessageStoreThreads(
- innerRt, messageStoreThreadsVectorPtr);
- jsi::Array jsiReportStore =
- reportStore.parseDBDataStore(innerRt, reportStoreVectorPtr);
- jsi::Array jsiUserStore =
- userStore.parseDBDataStore(innerRt, userStoreVectorPtr);
- jsi::Array jsiKeyserverStore = keyserverStore.parseDBDataStore(
- innerRt, keyserveStoreVectorPtr);
- jsi::Array jsiCommunityStore = communityStore.parseDBDataStore(
- innerRt, communityStoreVectorPtr);
- jsi::Array jsiIntegrityStore = integrityStore.parseDBDataStore(
- innerRt, integrityStoreVectorPtr);
- jsi::Array jsiSyncedMetadataStore =
- syncedMetadataStore.parseDBDataStore(
- innerRt, syncedMetadataStoreVectorPtr);
- jsi::Array jsiAuxUserStore =
- auxUserStore.parseDBDataStore(innerRt, auxUserStoreVectorPtr);
- jsi::Array jsiThreadActivityStore =
- threadActivityStore.parseDBDataStore(
- innerRt, threadActivityStoreVectorPtr);
- jsi::Array jsiEntryStore =
- entryStore.parseDBDataStore(innerRt, entryStoreVectorPtr);
- jsi::Array jsiMessageStoreLocalMessageInfos =
- messageStore.parseDBMessageStoreLocalMessageInfos(
- innerRt, messageStoreLocalMessageInfosVectorPtr);
-
- auto jsiClientDBStore = jsi::Object(innerRt);
- jsiClientDBStore.setProperty(innerRt, "messages", jsiMessages);
- jsiClientDBStore.setProperty(innerRt, "threads", jsiThreads);
- jsiClientDBStore.setProperty(innerRt, "drafts", jsiDrafts);
- jsiClientDBStore.setProperty(
- innerRt, "messageStoreThreads", jsiMessageStoreThreads);
- jsiClientDBStore.setProperty(innerRt, "reports", jsiReportStore);
- jsiClientDBStore.setProperty(innerRt, "users", jsiUserStore);
- jsiClientDBStore.setProperty(
- innerRt, "keyservers", jsiKeyserverStore);
- jsiClientDBStore.setProperty(
- innerRt, "communities", jsiCommunityStore);
- jsiClientDBStore.setProperty(
- innerRt, "integrityThreadHashes", jsiIntegrityStore);
- jsiClientDBStore.setProperty(
- innerRt, "syncedMetadata", jsiSyncedMetadataStore);
- jsiClientDBStore.setProperty(
- innerRt, "auxUserInfos", jsiAuxUserStore);
- jsiClientDBStore.setProperty(
- innerRt, "threadActivityEntries", jsiThreadActivityStore);
- jsiClientDBStore.setProperty(innerRt, "entries", jsiEntryStore);
- jsiClientDBStore.setProperty(
- innerRt,
- "messageStoreLocalMessageInfos",
- jsiMessageStoreLocalMessageInfos);
-
- promise->resolve(std::move(jsiClientDBStore));
- });
+ auto dmOperationsVectorPtr =
+ std::make_shared<std::vector<DMOperation>>(
+ std::move(dmOperationsVector));
+ this->jsInvoker_->invokeAsync(
+ [&innerRt,
+ draftsVectorPtr,
+ messagesVectorPtr,
+ threadsVectorPtr,
+ messageStoreThreadsVectorPtr,
+ reportStoreVectorPtr,
+ userStoreVectorPtr,
+ keyserveStoreVectorPtr,
+ communityStoreVectorPtr,
+ integrityStoreVectorPtr,
+ syncedMetadataStoreVectorPtr,
+ auxUserStoreVectorPtr,
+ threadActivityStoreVectorPtr,
+ entryStoreVectorPtr,
+ messageStoreLocalMessageInfosVectorPtr,
+ dmOperationsVectorPtr,
+ error,
+ promise,
+ draftStore = this->draftStore,
+ threadStore = this->threadStore,
+ messageStore = this->messageStore,
+ reportStore = this->reportStore,
+ userStore = this->userStore,
+ keyserverStore = this->keyserverStore,
+ communityStore = this->communityStore,
+ integrityStore = this->integrityStore,
+ syncedMetadataStore = this->syncedMetadataStore,
+ auxUserStore = this->auxUserStore,
+ threadActivityStore = this->threadActivityStore,
+ entryStore = this->entryStore,
+ dmOperationStore = this->dmOperationStore]() {
+ if (error.size()) {
+ promise->reject(error);
+ return;
+ }
+ jsi::Array jsiDrafts =
+ draftStore.parseDBDataStore(innerRt, draftsVectorPtr);
+ jsi::Array jsiMessages =
+ messageStore.parseDBDataStore(innerRt, messagesVectorPtr);
+ jsi::Array jsiThreads =
+ threadStore.parseDBDataStore(innerRt, threadsVectorPtr);
+ jsi::Array jsiMessageStoreThreads =
+ messageStore.parseDBMessageStoreThreads(
+ innerRt, messageStoreThreadsVectorPtr);
+ jsi::Array jsiReportStore =
+ reportStore.parseDBDataStore(innerRt, reportStoreVectorPtr);
+ jsi::Array jsiUserStore =
+ userStore.parseDBDataStore(innerRt, userStoreVectorPtr);
+ jsi::Array jsiKeyserverStore = keyserverStore.parseDBDataStore(
+ innerRt, keyserveStoreVectorPtr);
+ jsi::Array jsiCommunityStore = communityStore.parseDBDataStore(
+ innerRt, communityStoreVectorPtr);
+ jsi::Array jsiIntegrityStore = integrityStore.parseDBDataStore(
+ innerRt, integrityStoreVectorPtr);
+ jsi::Array jsiSyncedMetadataStore =
+ syncedMetadataStore.parseDBDataStore(
+ innerRt, syncedMetadataStoreVectorPtr);
+ jsi::Array jsiAuxUserStore = auxUserStore.parseDBDataStore(
+ innerRt, auxUserStoreVectorPtr);
+ jsi::Array jsiThreadActivityStore =
+ threadActivityStore.parseDBDataStore(
+ innerRt, threadActivityStoreVectorPtr);
+ jsi::Array jsiEntryStore =
+ entryStore.parseDBDataStore(innerRt, entryStoreVectorPtr);
+ jsi::Array jsiMessageStoreLocalMessageInfos =
+ messageStore.parseDBMessageStoreLocalMessageInfos(
+ innerRt, messageStoreLocalMessageInfosVectorPtr);
+ jsi::Array jsiDMOperations = dmOperationStore.parseDBDataStore(
+ innerRt, dmOperationsVectorPtr);
+
+ auto jsiClientDBStore = jsi::Object(innerRt);
+ jsiClientDBStore.setProperty(innerRt, "messages", jsiMessages);
+ jsiClientDBStore.setProperty(innerRt, "threads", jsiThreads);
+ jsiClientDBStore.setProperty(innerRt, "drafts", jsiDrafts);
+ jsiClientDBStore.setProperty(
+ innerRt, "messageStoreThreads", jsiMessageStoreThreads);
+ jsiClientDBStore.setProperty(
+ innerRt, "reports", jsiReportStore);
+ jsiClientDBStore.setProperty(innerRt, "users", jsiUserStore);
+ jsiClientDBStore.setProperty(
+ innerRt, "keyservers", jsiKeyserverStore);
+ jsiClientDBStore.setProperty(
+ innerRt, "communities", jsiCommunityStore);
+ jsiClientDBStore.setProperty(
+ innerRt, "integrityThreadHashes", jsiIntegrityStore);
+ jsiClientDBStore.setProperty(
+ innerRt, "syncedMetadata", jsiSyncedMetadataStore);
+ jsiClientDBStore.setProperty(
+ innerRt, "auxUserInfos", jsiAuxUserStore);
+ jsiClientDBStore.setProperty(
+ innerRt, "threadActivityEntries", jsiThreadActivityStore);
+ jsiClientDBStore.setProperty(innerRt, "entries", jsiEntryStore);
+ jsiClientDBStore.setProperty(
+ innerRt,
+ "messageStoreLocalMessageInfos",
+ jsiMessageStoreLocalMessageInfos);
+ jsiClientDBStore.setProperty(
+ innerRt, "dmOperations", jsiDMOperations);
+
+ promise->resolve(std::move(jsiClientDBStore));
+ });
};
GlobalDBSingleton::instance.scheduleOrRunCancellable(
job, promise, this->jsInvoker_);
@@ -455,6 +467,12 @@
"messageSearchStoreOperations",
this->messageSearchStore,
storeOpsPtr);
+ this->appendDBStoreOps(
+ rt,
+ operations,
+ "dmOperationStoreOperations",
+ this->dmOperationStore,
+ storeOpsPtr);
} catch (std::runtime_error &e) {
createOperationsError = e.what();
}
@@ -2157,7 +2175,8 @@
auxUserStore(jsInvoker),
threadActivityStore(jsInvoker),
entryStore(jsInvoker),
- messageSearchStore(jsInvoker) {
+ messageSearchStore(jsInvoker),
+ dmOperationStore(jsInvoker) {
GlobalDBSingleton::instance.enableMultithreading();
}
@@ -3489,4 +3508,42 @@
});
}
+jsi::Value
+CommCoreModule::getDMOperationsByType(jsi::Runtime &rt, jsi::String type) {
+ std::string typeCpp = type.utf8(rt);
+
+ return createPromiseAsJSIValue(
+ rt, [=](jsi::Runtime &innerRt, std::shared_ptr<Promise> promise) {
+ taskType job = [=, &innerRt]() {
+ std::string error;
+ std::shared_ptr<std::vector<DMOperation>> operations;
+ try {
+ operations = std::make_shared<std::vector<DMOperation>>(
+ DatabaseManager::getQueryExecutor().getDMOperationsByType(
+ typeCpp));
+ } catch (std::system_error &e) {
+ error = e.what();
+ }
+
+ this->jsInvoker_->invokeAsync(
+ [&innerRt,
+ error,
+ promise,
+ operations,
+ dmOperationStore = this->dmOperationStore]() {
+ if (error.size()) {
+ promise->reject(error);
+ return;
+ }
+
+ jsi::Array jsiOperations =
+ dmOperationStore.parseDBDataStore(innerRt, operations);
+ promise->resolve(std::move(jsiOperations));
+ });
+ };
+ GlobalDBSingleton::instance.scheduleOrRunCancellable(
+ job, promise, this->jsInvoker_);
+ });
+}
+
} // namespace comm
diff --git a/native/cpp/CommonCpp/_generated/commJSI-generated.cpp b/native/cpp/CommonCpp/_generated/commJSI-generated.cpp
--- a/native/cpp/CommonCpp/_generated/commJSI-generated.cpp
+++ b/native/cpp/CommonCpp/_generated/commJSI-generated.cpp
@@ -250,6 +250,9 @@
static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_restoreUser(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->restoreUser(rt, args[0].asString(rt), args[1].isNull() || args[1].isUndefined() ? std::nullopt : std::make_optional(args[1].asString(rt)), args[2].isNull() || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asString(rt)), args[3].asString(rt), args[4].asString(rt), args[5].asString(rt), args[6].asString(rt), args[7].asString(rt), args[8].asString(rt), args[9].asObject(rt).asArray(rt), args[10].asObject(rt).asArray(rt), args[11].asString(rt), args[12].asString(rt));
}
+static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getDMOperationsByType(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
+ return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->getDMOperationsByType(rt, args[0].asString(rt));
+}
CommCoreModuleSchemaCxxSpecJSI::CommCoreModuleSchemaCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
: TurboModule("CommTurboModule", jsInvoker) {
@@ -330,6 +333,7 @@
methodMap_["searchMessages"] = MethodMetadata {4, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_searchMessages};
methodMap_["fetchMessages"] = MethodMetadata {3, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_fetchMessages};
methodMap_["restoreUser"] = MethodMetadata {13, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_restoreUser};
+ methodMap_["getDMOperationsByType"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getDMOperationsByType};
}
diff --git a/native/cpp/CommonCpp/_generated/commJSI.h b/native/cpp/CommonCpp/_generated/commJSI.h
--- a/native/cpp/CommonCpp/_generated/commJSI.h
+++ b/native/cpp/CommonCpp/_generated/commJSI.h
@@ -97,6 +97,7 @@
virtual jsi::Value searchMessages(jsi::Runtime &rt, jsi::String query, jsi::String threadID, std::optional<jsi::String> timestampCursor, std::optional<jsi::String> messageIDCursor) = 0;
virtual jsi::Value fetchMessages(jsi::Runtime &rt, jsi::String threadID, double limit, double offset) = 0;
virtual jsi::Value restoreUser(jsi::Runtime &rt, jsi::String userID, std::optional<jsi::String> siweSocialProofMessage, std::optional<jsi::String> siweSocialProofSignature, jsi::String keyPayload, jsi::String keyPayloadSignature, jsi::String contentPrekey, jsi::String contentPrekeySignature, jsi::String notifPrekey, jsi::String notifPrekeySignature, jsi::Array contentOneTimeKeys, jsi::Array notifOneTimeKeys, jsi::String deviceList, jsi::String backupSecret) = 0;
+ virtual jsi::Value getDMOperationsByType(jsi::Runtime &rt, jsi::String type) = 0;
};
@@ -734,6 +735,14 @@
return bridging::callFromJs<jsi::Value>(
rt, &T::restoreUser, jsInvoker_, instance_, std::move(userID), std::move(siweSocialProofMessage), std::move(siweSocialProofSignature), std::move(keyPayload), std::move(keyPayloadSignature), std::move(contentPrekey), std::move(contentPrekeySignature), std::move(notifPrekey), std::move(notifPrekeySignature), std::move(contentOneTimeKeys), std::move(notifOneTimeKeys), std::move(deviceList), std::move(backupSecret));
}
+ jsi::Value getDMOperationsByType(jsi::Runtime &rt, jsi::String type) override {
+ static_assert(
+ bridging::getParameterCount(&T::getDMOperationsByType) == 2,
+ "Expected getDMOperationsByType(...) to have 2 parameters");
+
+ return bridging::callFromJs<jsi::Value>(
+ rt, &T::getDMOperationsByType, jsInvoker_, instance_, std::move(type));
+ }
private:
T *instance_;
diff --git a/native/schema/CommCoreModuleSchema.js b/native/schema/CommCoreModuleSchema.js
--- a/native/schema/CommCoreModuleSchema.js
+++ b/native/schema/CommCoreModuleSchema.js
@@ -5,6 +5,7 @@
import { TurboModuleRegistry } from 'react-native';
import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport.js';
+import type { ClientDBDMOperation } from 'lib/ops/dm-operations-store-ops.js';
import type { ClientDBMessageStoreOperation } from 'lib/ops/message-store-ops.js';
import type { ClientDBReportStoreOperation } from 'lib/ops/report-store-ops.js';
import type { ClientDBThreadStoreOperation } from 'lib/ops/thread-store-ops.js';
@@ -233,6 +234,7 @@
deviceList: string,
backupSecret: string,
) => Promise<string>;
+ +getDMOperationsByType: (type: string) => Promise<Array<ClientDBDMOperation>>;
}
export interface CoreModuleSpec extends Spec {
diff --git a/web/cpp/SQLiteQueryExecutorBindings.cpp b/web/cpp/SQLiteQueryExecutorBindings.cpp
--- a/web/cpp/SQLiteQueryExecutorBindings.cpp
+++ b/web/cpp/SQLiteQueryExecutorBindings.cpp
@@ -75,6 +75,10 @@
value_object<LocalMessageInfo>("LocalMessageInfo")
.field("id", &LocalMessageInfo::id)
.field("localMessageInfo", &LocalMessageInfo::local_message_info);
+ value_object<DMOperation>("DMOperation")
+ .field("id", &DMOperation::id)
+ .field("type", &DMOperation::type)
+ .field("operation", &DMOperation::operation);
value_object<WebThread>("WebThread")
.field("id", &WebThread::id)
@@ -265,6 +269,11 @@
.function(
"getAllMessageStoreLocalMessageInfos",
&SQLiteQueryExecutor::getAllMessageStoreLocalMessageInfos)
+ .function("replaceDMOperation", &SQLiteQueryExecutor::replaceDMOperation)
+ .function("removeAllDMOperations", &SQLiteQueryExecutor::removeAllDMOperations)
+ .function("removeDMOperations", &SQLiteQueryExecutor::removeDMOperations)
+ .function("getAllDMOperations", &SQLiteQueryExecutor::getDMOperations)
+ .function("getDMOperationsByType", &SQLiteQueryExecutor::getDMOperationsByType)
.function("beginTransaction", &SQLiteQueryExecutor::beginTransaction)
.function("commitTransaction", &SQLiteQueryExecutor::commitTransaction)
.function(
diff --git a/web/shared-worker/_generated/comm_query_executor.wasm b/web/shared-worker/_generated/comm_query_executor.wasm
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/web/shared-worker/types/sqlite-query-executor.js b/web/shared-worker/types/sqlite-query-executor.js
--- a/web/shared-worker/types/sqlite-query-executor.js
+++ b/web/shared-worker/types/sqlite-query-executor.js
@@ -2,6 +2,7 @@
import type { ClientDBAuxUserInfo } from 'lib/ops/aux-user-store-ops.js';
import type { ClientDBCommunityInfo } from 'lib/ops/community-store-ops.js';
+import type { ClientDBDMOperation } from 'lib/ops/dm-operations-store-ops.js';
import type { ClientDBEntryInfo } from 'lib/ops/entries-store-ops.js';
import type { ClientDBIntegrityThreadHash } from 'lib/ops/integrity-store-ops.js';
import type { ClientDBKeyserverInfo } from 'lib/ops/keyserver-store-ops.js';
@@ -160,6 +161,12 @@
removeAllMessageStoreLocalMessageInfos(): void;
getAllMessageStoreLocalMessageInfos(): ClientDBLocalMessageInfo[];
+ replaceDMOperation(operation: ClientDBDMOperation): void;
+ removeAllDMOperations(): void;
+ removeDMOperations(ids: $ReadOnlyArray<string>): void;
+ getAllDMOperations(): $ReadOnlyArray<ClientDBDMOperation>;
+ getDMOperationsByType(type: string): $ReadOnlyArray<ClientDBDMOperation>;
+
beginTransaction(): void;
commitTransaction(): void;
rollbackTransaction(): void;
diff --git a/web/shared-worker/worker/process-operations.js b/web/shared-worker/worker/process-operations.js
--- a/web/shared-worker/worker/process-operations.js
+++ b/web/shared-worker/worker/process-operations.js
@@ -645,6 +645,7 @@
entries: sqliteQueryExecutor.getAllEntries(),
messageStoreLocalMessageInfos:
sqliteQueryExecutor.getAllMessageStoreLocalMessageInfos(),
+ dmOperations: sqliteQueryExecutor.getAllDMOperations(),
};
}

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 15, 11:24 AM (9 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5937146
Default Alt Text
D14449.1768476287.diff (26 KB)

Event Timeline