Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MR414N-ID
GitHub Repository: MR414N-ID/botku2
Path: blob/master/node_modules/@adiwajshing/baileys/lib/Utils/use-single-file-auth-state.js
1129 views
1
"use strict";
2
Object.defineProperty(exports, "__esModule", { value: true });
3
exports.useSingleFileAuthState = void 0;
4
const WAProto_1 = require("../../WAProto");
5
const auth_utils_1 = require("./auth-utils");
6
const generics_1 = require("./generics");
7
// useless key map only there to maintain backwards compatibility
8
// do not use in your own systems please
9
const KEY_MAP = {
10
'pre-key': 'preKeys',
11
'session': 'sessions',
12
'sender-key': 'senderKeys',
13
'app-state-sync-key': 'appStateSyncKeys',
14
'app-state-sync-version': 'appStateVersions',
15
'sender-key-memory': 'senderKeyMemory'
16
};
17
/**
18
* @deprecated use multi file auth state instead please
19
* stores the full authentication state in a single JSON file
20
*
21
* DO NOT USE IN A PROD ENVIRONMENT, only meant to serve as an example
22
* */
23
const useSingleFileAuthState = (filename, logger) => {
24
// require fs here so that in case "fs" is not available -- the app does not crash
25
const { readFileSync, writeFileSync, existsSync } = require('fs');
26
let creds;
27
let keys = {};
28
// save the authentication state to a file
29
const saveState = () => {
30
logger && logger.trace('saving auth state');
31
writeFileSync(filename,
32
// BufferJSON replacer utility saves buffers nicely
33
JSON.stringify({ creds, keys }, generics_1.BufferJSON.replacer, 2));
34
};
35
if (existsSync(filename)) {
36
const result = JSON.parse(readFileSync(filename, { encoding: 'utf-8' }), generics_1.BufferJSON.reviver);
37
creds = result.creds;
38
keys = result.keys;
39
}
40
else {
41
creds = (0, auth_utils_1.initAuthCreds)();
42
keys = {};
43
}
44
return {
45
state: {
46
creds,
47
keys: {
48
get: (type, ids) => {
49
const key = KEY_MAP[type];
50
return ids.reduce((dict, id) => {
51
var _a;
52
let value = (_a = keys[key]) === null || _a === void 0 ? void 0 : _a[id];
53
if (value) {
54
if (type === 'app-state-sync-key') {
55
value = WAProto_1.proto.Message.AppStateSyncKeyData.fromObject(value);
56
}
57
dict[id] = value;
58
}
59
return dict;
60
}, {});
61
},
62
set: (data) => {
63
for (const _key in data) {
64
const key = KEY_MAP[_key];
65
keys[key] = keys[key] || {};
66
Object.assign(keys[key], data[_key]);
67
}
68
saveState();
69
}
70
}
71
},
72
saveState
73
};
74
};
75
exports.useSingleFileAuthState = useSingleFileAuthState;
76
77