File size: 1,232 Bytes
a2b2aac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import fs from 'fs'
import path from 'path'
import store from './store.js'

/** @type {import('@adiwajshing/baileys')} */
const {
    BufferJSON
} = (await import('@adiwajshing/baileys')).default

/**
 * 
 * @param {string} fileSingle 
 * @param {string} folderMulti
 * @param {Awaited<ReturnType<import('./store').MultiFileAuthStateStore>>} authState
 */
export default async function single2multi(fileSingle, folderMulti, authState) {
    const authSingleResult = JSON.parse(await fs.promises.readFile(fileSingle, 'utf8'), BufferJSON.reviver)
    const authSingleCreds = authSingleResult.creds || {}
    const authSingleKeys = authSingleResult.keys || {}

    const writeData = (data, file) => {
        return fs.promises.writeFile(path.join(folderMulti, store.fixFileName(file)), JSON.stringify(data, store.JSONreplacer))
    }

    const getKeyByValue = (obj, value) => {
        return Object.keys(obj).find(key => obj[key] === value)
    }

    const keys = Object.fromEntries(Object.entries(authSingleKeys).map(([key, value]) => (value && [getKeyByValue(store.KEY_MAP, key), value])).filter(Boolean))

    await Promise.all([
        writeData(authSingleCreds, 'creds.json'),
        authState.state.keys.set(keys),
    ])
}