diff --git a/src/Utils/index.ts b/src/Utils/index.ts index 3aa06bb..e671ddd 100644 --- a/src/Utils/index.ts +++ b/src/Utils/index.ts @@ -11,7 +11,6 @@ export * from './chat-utils' export * from './lt-hash' export * from './auth-utils' export * from './baileys-event-stream' -export * from './use-single-file-auth-state' export * from './use-multi-file-auth-state' export * from './link-preview' export * from './event-buffer' \ No newline at end of file diff --git a/src/Utils/use-single-file-auth-state.ts b/src/Utils/use-single-file-auth-state.ts deleted file mode 100644 index 6ec2b48..0000000 --- a/src/Utils/use-single-file-auth-state.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { Logger } from 'pino' -import { proto } from '../../WAProto' -import type { AuthenticationCreds, AuthenticationState, SignalDataTypeMap } from '../Types' -import { initAuthCreds } from './auth-utils' -import { BufferJSON } from './generics' - -// useless key map only there to maintain backwards compatibility -// do not use in your own systems please -const KEY_MAP: { [T in keyof SignalDataTypeMap]: string } = { - 'pre-key': 'preKeys', - 'session': 'sessions', - 'sender-key': 'senderKeys', - 'app-state-sync-key': 'appStateSyncKeys', - 'app-state-sync-version': 'appStateVersions', - 'sender-key-memory': 'senderKeyMemory' -} -/** - * @deprecated use multi file auth state instead please - * stores the full authentication state in a single JSON file - * - * DO NOT USE IN A PROD ENVIRONMENT, only meant to serve as an example - * */ -export const useSingleFileAuthState = (filename: string, logger?: Logger): { state: AuthenticationState, saveState: () => void } => { - // require fs here so that in case "fs" is not available -- the app does not crash - const { readFileSync, writeFileSync, existsSync } = require('fs') - let creds: AuthenticationCreds - let keys: any = { } - - // save the authentication state to a file - const saveState = () => { - logger && logger.trace('saving auth state') - writeFileSync( - filename, - // BufferJSON replacer utility saves buffers nicely - JSON.stringify({ creds, keys }, BufferJSON.replacer, 2) - ) - } - - if(existsSync(filename)) { - const result = JSON.parse( - readFileSync(filename, { encoding: 'utf-8' }), - BufferJSON.reviver - ) - creds = result.creds - keys = result.keys - } else { - creds = initAuthCreds() - keys = { } - } - - return { - state: { - creds, - keys: { - get: (type, ids) => { - const key = KEY_MAP[type] - return ids.reduce( - (dict, id) => { - let value = keys[key]?.[id] - if(value) { - if(type === 'app-state-sync-key') { - value = proto.Message.AppStateSyncKeyData.fromObject(value) - } - - dict[id] = value - } - - return dict - }, { } - ) - }, - set: (data) => { - for(const _key in data) { - const key = KEY_MAP[_key as keyof SignalDataTypeMap] - keys[key] = keys[key] || { } - Object.assign(keys[key], data[_key]) - } - - saveState() - } - } - }, - saveState - } -} \ No newline at end of file