@ -4,10 +4,12 @@ import path from 'path';
import * as BetterSqlite3 from '@signalapp/better-sqlite3' ;
import * as BetterSqlite3 from '@signalapp/better-sqlite3' ;
import rimraf from 'rimraf' ;
import rimraf from 'rimraf' ;
import { base64_variants , from_base64 , to_hex } from 'libsodium-wrappers-sumo' ;
import {
import {
chunk ,
chunk ,
compact ,
compact ,
difference ,
difference ,
differenceBy ,
forEach ,
forEach ,
fromPairs ,
fromPairs ,
isArray ,
isArray ,
@ -20,7 +22,6 @@ import {
omit ,
omit ,
uniq ,
uniq ,
} from 'lodash' ;
} from 'lodash' ;
import { base64_variants , from_base64 , to_hex } from 'libsodium-wrappers-sumo' ;
import { ConversationAttributes } from '../models/conversationAttributes' ;
import { ConversationAttributes } from '../models/conversationAttributes' ;
import { PubKey } from '../session/types/PubKey' ; // checked - only node
import { PubKey } from '../session/types/PubKey' ; // checked - only node
@ -60,11 +61,13 @@ import {
} from '../types/sqlSharedTypes' ;
} from '../types/sqlSharedTypes' ;
import { KNOWN_BLINDED_KEYS_ITEM , SettingsKey } from '../data/settings-key' ;
import { KNOWN_BLINDED_KEYS_ITEM , SettingsKey } from '../data/settings-key' ;
import { Quote } from '../receiver/types' ;
import {
import {
getSQLCipherIntegrityCheck ,
getSQLCipherIntegrityCheck ,
openAndMigrateDatabase ,
openAndMigrateDatabase ,
updateSchema ,
updateSchema ,
} from './migration/signalMigrations' ;
} from './migration/signalMigrations' ;
import { configDumpData } from './sql_calls/config_dump' ;
import {
import {
assertGlobalInstance ,
assertGlobalInstance ,
assertGlobalInstanceOrInstance ,
assertGlobalInstanceOrInstance ,
@ -72,8 +75,6 @@ import {
initDbInstanceWith ,
initDbInstanceWith ,
isInstanceInitialized ,
isInstanceInitialized ,
} from './sqlInstance' ;
} from './sqlInstance' ;
import { configDumpData } from './sql_calls/config_dump' ;
import { Quote } from '../receiver/types' ;
// eslint:disable: function-name non-literal-fs-path
// eslint:disable: function-name non-literal-fs-path
@ -620,11 +621,28 @@ function getAllConversations() {
. prepare ( ` SELECT * FROM ${ CONVERSATIONS_TABLE } ORDER BY id ASC; ` )
. prepare ( ` SELECT * FROM ${ CONVERSATIONS_TABLE } ORDER BY id ASC; ` )
. all ( ) ;
. all ( ) ;
return ( rows || [ ] ) . map ( m = > {
const formatted = compact (
( rows || [ ] ) . map ( m = > {
const unreadCount = getUnreadCountByConversation ( m . id ) || 0 ;
const unreadCount = getUnreadCountByConversation ( m . id ) || 0 ;
const mentionedUsStillUnread = ! ! getFirstUnreadMessageWithMention ( m . id ) ;
const mentionedUsStillUnread = ! ! getFirstUnreadMessageWithMention ( m . id ) ;
return formatRowOfConversation ( m , 'getAllConversations' , unreadCount , mentionedUsStillUnread ) ;
return formatRowOfConversation ( m , 'getAllConversations' , unreadCount , mentionedUsStillUnread ) ;
} )
) ;
const invalidOnLoad = formatted . filter ( m = > {
return isString ( m . id ) && m . id . startsWith ( '05' ) && m . id . includes ( ' ' ) ;
} ) ;
} ) ;
if ( ! isEmpty ( invalidOnLoad ) ) {
const idsInvalid = invalidOnLoad . map ( m = > m . id ) ;
console . info (
'getAllConversations removing those conversations with invalid ids before load' ,
idsInvalid
) ;
removeConversation ( idsInvalid ) ;
}
return differenceBy ( formatted , invalidOnLoad , c = > c . id ) ;
}
}
function getPubkeysInPublicConversation ( conversationId : string ) {
function getPubkeysInPublicConversation ( conversationId : string ) {