alvin-bot 5.6.2 → 5.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.md +1 -1
- package/dist/claude.js +1 -102
- package/dist/config.js +1 -96
- package/dist/engine.js +1 -90
- package/dist/find-claude-binary.js +1 -98
- package/dist/handlers/async-agent-chunk-handler.js +1 -50
- package/dist/handlers/background-bypass.js +1 -75
- package/dist/handlers/commands.js +1 -2336
- package/dist/handlers/cron-progress.js +1 -52
- package/dist/handlers/document.js +1 -194
- package/dist/handlers/message.js +1 -959
- package/dist/handlers/photo.js +1 -154
- package/dist/handlers/platform-message.js +1 -360
- package/dist/handlers/stuck-timer.js +1 -54
- package/dist/handlers/video.js +1 -237
- package/dist/handlers/voice.js +1 -148
- package/dist/i18n.js +1 -805
- package/dist/index.js +1 -697
- package/dist/init-data-dir.js +1 -98
- package/dist/middleware/auth.js +1 -233
- package/dist/migrate.js +1 -162
- package/dist/paths.js +1 -146
- package/dist/platforms/discord.js +1 -175
- package/dist/platforms/index.js +1 -130
- package/dist/platforms/signal.js +1 -205
- package/dist/platforms/slack-slash-parser.js +1 -32
- package/dist/platforms/slack.js +1 -501
- package/dist/platforms/telegram.js +1 -111
- package/dist/platforms/types.js +1 -8
- package/dist/platforms/whatsapp-auth-helpers.js +1 -53
- package/dist/platforms/whatsapp.js +1 -707
- package/dist/providers/claude-sdk-provider.js +1 -565
- package/dist/providers/codex-cli-provider.js +1 -134
- package/dist/providers/index.js +1 -7
- package/dist/providers/ollama-provider.js +1 -32
- package/dist/providers/openai-compatible.js +1 -406
- package/dist/providers/registry.js +1 -352
- package/dist/providers/runtime-header.js +1 -45
- package/dist/providers/tool-executor.js +1 -475
- package/dist/providers/types.js +1 -227
- package/dist/services/access.js +1 -144
- package/dist/services/allowed-users-gate.js +1 -56
- package/dist/services/alvin-dispatch.js +1 -130
- package/dist/services/alvin-mcp-tools.js +1 -104
- package/dist/services/asset-index.js +1 -224
- package/dist/services/async-agent-parser.js +1 -418
- package/dist/services/async-agent-watcher.js +1 -443
- package/dist/services/auto-diagnostic.js +1 -228
- package/dist/services/broadcast.js +1 -52
- package/dist/services/browser-manager.js +1 -562
- package/dist/services/browser-webfetch.js +1 -127
- package/dist/services/browser.js +1 -121
- package/dist/services/cdp-bootstrap.js +1 -357
- package/dist/services/compaction.js +1 -144
- package/dist/services/critical-notify.js +1 -203
- package/dist/services/cron-resolver.js +1 -58
- package/dist/services/cron-scheduling.js +1 -310
- package/dist/services/cron.js +1 -861
- package/dist/services/custom-tools.js +1 -317
- package/dist/services/delivery-queue.js +1 -173
- package/dist/services/delivery-registry.js +1 -21
- package/dist/services/disk-cleanup.js +1 -203
- package/dist/services/elevenlabs.js +1 -58
- package/dist/services/embeddings/auto-detect.js +1 -74
- package/dist/services/embeddings/fts5.js +1 -108
- package/dist/services/embeddings/gemini.js +1 -65
- package/dist/services/embeddings/index.js +1 -496
- package/dist/services/embeddings/ollama.js +1 -78
- package/dist/services/embeddings/openai.js +1 -49
- package/dist/services/embeddings/provider.js +1 -22
- package/dist/services/embeddings/vector-base.js +1 -113
- package/dist/services/embeddings-migration.js +1 -193
- package/dist/services/embeddings.js +1 -9
- package/dist/services/env-file.js +1 -50
- package/dist/services/exec-guard.js +1 -71
- package/dist/services/fallback-order.js +1 -154
- package/dist/services/file-permissions.js +1 -93
- package/dist/services/heartbeat-file.js +1 -65
- package/dist/services/heartbeat.js +1 -313
- package/dist/services/hooks.js +1 -44
- package/dist/services/imagegen.js +1 -72
- package/dist/services/language-detect.js +1 -154
- package/dist/services/markdown.js +1 -63
- package/dist/services/mcp.js +1 -263
- package/dist/services/memory-extractor.js +1 -178
- package/dist/services/memory-inject-mode.js +1 -43
- package/dist/services/memory-layers.js +1 -156
- package/dist/services/memory.js +1 -146
- package/dist/services/ollama-manager.js +1 -339
- package/dist/services/permissions-wizard.js +1 -291
- package/dist/services/personality.js +1 -376
- package/dist/services/plugins.js +1 -171
- package/dist/services/preflight.js +1 -292
- package/dist/services/process-manager.js +1 -291
- package/dist/services/release-highlights.js +1 -79
- package/dist/services/reminders.js +1 -97
- package/dist/services/restart.js +1 -48
- package/dist/services/security-audit.js +1 -74
- package/dist/services/self-diagnosis.js +1 -272
- package/dist/services/self-search.js +1 -129
- package/dist/services/session-persistence.js +1 -237
- package/dist/services/session.js +1 -282
- package/dist/services/skills.js +1 -290
- package/dist/services/ssrf-guard.js +1 -162
- package/dist/services/standing-orders.js +1 -29
- package/dist/services/steer-channel.js +1 -46
- package/dist/services/stop-controller.js +1 -52
- package/dist/services/subagent-dedup.js +1 -0
- package/dist/services/subagent-delivery.js +1 -452
- package/dist/services/subagent-stats.js +1 -123
- package/dist/services/subagents.js +1 -814
- package/dist/services/sudo.js +1 -329
- package/dist/services/telegram.js +1 -158
- package/dist/services/timing-safe-bearer.js +1 -51
- package/dist/services/tool-discovery.js +1 -214
- package/dist/services/trends.js +1 -580
- package/dist/services/updater.js +1 -291
- package/dist/services/usage-tracker.js +1 -144
- package/dist/services/users.js +1 -271
- package/dist/services/voice.js +1 -104
- package/dist/services/watchdog-brake.js +1 -154
- package/dist/services/watchdog.js +1 -311
- package/dist/services/workspaces.js +1 -276
- package/dist/tui/index.js +1 -667
- package/dist/util/console-formatter.js +1 -109
- package/dist/util/debounce.js +1 -24
- package/dist/util/telegram-error-filter.js +1 -62
- package/dist/version.js +1 -24
- package/dist/web/bind-strategy.js +1 -42
- package/dist/web/canvas.js +1 -30
- package/dist/web/doctor-api.js +1 -604
- package/dist/web/openai-compat.js +1 -252
- package/dist/web/server.js +1 -1831
- package/dist/web/setup-api.js +1 -1101
- package/package.json +5 -2
- package/dist/.metadata_never_index +0 -0
|
@@ -1,111 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Telegram Platform Adapter
|
|
3
|
-
*
|
|
4
|
-
* Wraps grammy Bot into the PlatformAdapter interface.
|
|
5
|
-
* This is the reference implementation — all other adapters follow this pattern.
|
|
6
|
-
*/
|
|
7
|
-
import { Bot, InputFile } from "grammy";
|
|
8
|
-
import { config } from "../config.js";
|
|
9
|
-
import { authMiddleware } from "../middleware/auth.js";
|
|
10
|
-
let _telegramState = {
|
|
11
|
-
status: "disconnected",
|
|
12
|
-
botName: null,
|
|
13
|
-
botUsername: null,
|
|
14
|
-
connectedAt: null,
|
|
15
|
-
error: null,
|
|
16
|
-
};
|
|
17
|
-
export function getTelegramState() {
|
|
18
|
-
return { ..._telegramState };
|
|
19
|
-
}
|
|
20
|
-
/** Called from index.ts when grammy bot connects (since we don't use TelegramAdapter yet) */
|
|
21
|
-
export function setTelegramConnected(botName, botUsername) {
|
|
22
|
-
_telegramState.status = "connected";
|
|
23
|
-
_telegramState.botName = botName;
|
|
24
|
-
_telegramState.botUsername = botUsername;
|
|
25
|
-
_telegramState.connectedAt = Date.now();
|
|
26
|
-
}
|
|
27
|
-
export class TelegramAdapter {
|
|
28
|
-
platform = "telegram";
|
|
29
|
-
bot;
|
|
30
|
-
handler = null;
|
|
31
|
-
constructor() {
|
|
32
|
-
this.bot = new Bot(config.botToken);
|
|
33
|
-
}
|
|
34
|
-
/** Get the underlying grammy Bot instance (for command registration). */
|
|
35
|
-
getBot() {
|
|
36
|
-
return this.bot;
|
|
37
|
-
}
|
|
38
|
-
async start() {
|
|
39
|
-
// Auth middleware
|
|
40
|
-
this.bot.use(authMiddleware);
|
|
41
|
-
// Route raw messages to the platform handler
|
|
42
|
-
this.bot.on("message:text", async (ctx) => {
|
|
43
|
-
if (!this.handler)
|
|
44
|
-
return;
|
|
45
|
-
if (ctx.message?.text?.startsWith("/"))
|
|
46
|
-
return; // Commands handled separately
|
|
47
|
-
const msg = {
|
|
48
|
-
platform: "telegram",
|
|
49
|
-
messageId: String(ctx.message?.message_id),
|
|
50
|
-
chatId: String(ctx.chat?.id),
|
|
51
|
-
userId: String(ctx.from?.id),
|
|
52
|
-
userName: ctx.from?.first_name || "Unknown",
|
|
53
|
-
userHandle: ctx.from?.username,
|
|
54
|
-
text: ctx.message?.text || "",
|
|
55
|
-
isGroup: ctx.chat?.type !== "private",
|
|
56
|
-
isMention: false, // Handled by group middleware
|
|
57
|
-
isReplyToBot: false,
|
|
58
|
-
replyToText: ctx.message?.reply_to_message?.text,
|
|
59
|
-
};
|
|
60
|
-
await this.handler(msg);
|
|
61
|
-
});
|
|
62
|
-
_telegramState.status = "connecting";
|
|
63
|
-
await this.bot.start({
|
|
64
|
-
onStart: () => {
|
|
65
|
-
const me = this.bot.botInfo;
|
|
66
|
-
_telegramState.status = "connected";
|
|
67
|
-
_telegramState.botName = me.first_name || null;
|
|
68
|
-
_telegramState.botUsername = me.username || null;
|
|
69
|
-
_telegramState.connectedAt = Date.now();
|
|
70
|
-
console.log(`📱 Telegram adapter started (@${me.username})`);
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
async stop() {
|
|
75
|
-
this.bot.stop();
|
|
76
|
-
}
|
|
77
|
-
async sendText(chatId, text, options) {
|
|
78
|
-
const parseMode = options?.parseMode === "html" ? "HTML"
|
|
79
|
-
: options?.parseMode === "markdown" ? "Markdown"
|
|
80
|
-
: undefined;
|
|
81
|
-
await this.bot.api.sendMessage(Number(chatId), text, {
|
|
82
|
-
parse_mode: parseMode,
|
|
83
|
-
reply_parameters: options?.replyTo ? { message_id: Number(options.replyTo) } : undefined,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
async sendPhoto(chatId, photo, caption) {
|
|
87
|
-
const input = typeof photo === "string" ? new InputFile(photo) : new InputFile(photo, "photo.jpg");
|
|
88
|
-
await this.bot.api.sendPhoto(Number(chatId), input, { caption });
|
|
89
|
-
}
|
|
90
|
-
async sendDocument(chatId, doc, fileName, caption) {
|
|
91
|
-
const input = typeof doc === "string" ? new InputFile(doc) : new InputFile(doc, fileName);
|
|
92
|
-
await this.bot.api.sendDocument(Number(chatId), input, { caption });
|
|
93
|
-
}
|
|
94
|
-
async sendVoice(chatId, audio) {
|
|
95
|
-
const input = typeof audio === "string" ? new InputFile(audio) : new InputFile(audio, "voice.ogg");
|
|
96
|
-
await this.bot.api.sendVoice(Number(chatId), input);
|
|
97
|
-
}
|
|
98
|
-
async react(chatId, messageId, emoji) {
|
|
99
|
-
try {
|
|
100
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
-
await this.bot.api.setMessageReaction(Number(chatId), Number(messageId), [{ type: "emoji", emoji: emoji }]);
|
|
102
|
-
}
|
|
103
|
-
catch { /* Reactions not supported */ }
|
|
104
|
-
}
|
|
105
|
-
async setTyping(chatId) {
|
|
106
|
-
await this.bot.api.sendChatAction(Number(chatId), "typing");
|
|
107
|
-
}
|
|
108
|
-
onMessage(handler) {
|
|
109
|
-
this.handler = handler;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
1
|
+
const _0x2fbba2=_0x1014,_0x1b6ca9=_0x1014;(function(_0x4e7519,_0x320e9f){const _0x30b395=_0x1014,_0x4f4238=_0x1014,_0x5736dc=_0x4e7519();while(!![]){try{const _0x3a225d=-parseInt(_0x30b395(0x124))/(-0x16cf+-0x149f+0x2b6f)*(parseInt(_0x30b395(0x123))/(-0x2*-0x788+-0x22c*-0x5+-0x19ea))+-parseInt(_0x30b395(0x104))/(0x1*0x85+-0x1bce*0x1+0x1b4c)+-parseInt(_0x4f4238(0x11a))/(-0x4ef*0x7+0x7*0x455+0x43a)*(-parseInt(_0x4f4238(0xf6))/(-0x42f+-0x1*-0x17+-0xd*-0x51))+parseInt(_0x30b395(0x12e))/(0x4a*0x5+-0x148d+0x1321)*(parseInt(_0x4f4238(0xfc))/(0x3*-0xc6d+0xc16+0x1938))+-parseInt(_0x4f4238(0xf7))/(-0x169f+-0x2194+0xb3f*0x5)+parseInt(_0x30b395(0x112))/(0x109d+-0xb47+-0x54d)*(-parseInt(_0x30b395(0xfa))/(0x2d3+0xdd5+-0x109e))+parseInt(_0x4f4238(0x11e))/(-0x25c8+0x13ea+0x83*0x23);if(_0x3a225d===_0x320e9f)break;else _0x5736dc['push'](_0x5736dc['shift']());}catch(_0x475f2f){_0x5736dc['push'](_0x5736dc['shift']());}}}(_0x5ddb,-0x1d133*-0x7+0xa479*-0x2+-0xf122));const _0x2ec07d=(function(){let _0x5589b1=!![];return function(_0x680144,_0xceb57c){const _0x2af03c=_0x5589b1?function(){const _0x10500a=_0x1014;if(_0xceb57c){const _0x1d5f8a=_0xceb57c[_0x10500a(0x105)](_0x680144,arguments);return _0xceb57c=null,_0x1d5f8a;}}:function(){};return _0x5589b1=![],_0x2af03c;};}()),_0x2b93ce=_0x2ec07d(this,function(){const _0x207fc9=_0x1014,_0xe8051c=_0x1014;return _0x2b93ce['toString']()['search'](_0x207fc9(0xfe)+'+$')[_0x207fc9(0x114)]()[_0x207fc9(0x108)+'r'](_0x2b93ce)[_0xe8051c(0x132)]('(((.+)+)+)'+'+$');});_0x2b93ce();function _0x5ddb(){const _0x221d37=['C3rVCa','BwvZC2fNztP0zq','BwvZC2fNzq','mZe0mMLtrxzjua','ntyZwunusffn','CgXHDgzVCM0','yxbP','AhrTBa','C3rHDhvZ','DxnL','zxnZywDL','BM93','C2vUzenOyxrbyW','yM90','nZu1ntHoq3PJA3a','DgLVBG','yM90vxnLCM5HBq','Dgv4Da','C2vHCMnO','C3rHCNrZv2L0Aa','zMLYC3rFBMfTzq','mZvsCMrswvi','ndu5mJyXnNruv2rXBq','y29UBMvJDgvK','y29UBMvJDgvKqq','mtq4mdqWqwvuzhnW','yM90sw5MBW','mZe1tKDlrhrx','AgfUzgXLCG','kcGOlISPkYKRkq','C3rYAw5N','CMvHy3q','yM90vg9Rzw4','zNjVBq','DhLWAw5N','mZe2ntG2n2LWthLQqq','yxbWBhK','DgfYDgvKicHa','z2v0qM90','y29UC3rYDwn0BW','uMvHy3rPB24','y2HHDa','C2vUzfrLEhq','C2vUzerVy3vTzq','DgvSzwDYyw0','C3rHCNq','DxnLCM5HBwu','ChjPDMf0zq','B25nzxnZywDL','mtG5zLPot2Ls','CgfYC2vnB2rL','Dg9tDhjPBMC','C2vUzfzVAwnL','vw5RBM93BG','y29UBMvJDgLUzW','yM90tMfTzq','C2vUzfbOB3rV','nZyYnZzJsMzYD1i','CMvWBhLuBW','BwfYA2rVD24','C2vUze1LC3nHzW','mZa5mZq3nZjosKfZC0i','BwvZC2fNzv9Pza'];_0x5ddb=function(){return _0x221d37;};return _0x5ddb();}import{Bot,InputFile}from'grammy';function _0x1014(_0x115286,_0x2a9543){_0x115286=_0x115286-(-0x4d8+-0x21fa+0x27c6);const _0x2fcc9f=_0x5ddb();let _0x5a59f3=_0x2fcc9f[_0x115286];if(_0x1014['PfVOXM']===undefined){var _0x552fda=function(_0x31743c){const _0x169b50='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x505786='',_0x506a55='',_0x1ca879=_0x505786+_0x552fda;for(let _0x12c575=0x2*0x12ea+-0x19e6+0x3*-0x3fa,_0x2311ff,_0x3e70dc,_0x4b881c=-0x245+0x1f03+-0x1cbe;_0x3e70dc=_0x31743c['charAt'](_0x4b881c++);~_0x3e70dc&&(_0x2311ff=_0x12c575%(-0xf02*0x1+-0xf42+0x1e48)?_0x2311ff*(0x208b+-0x1e*0x10a+-0x11f)+_0x3e70dc:_0x3e70dc,_0x12c575++%(0x247a+-0x7bd+0xab*-0x2b))?_0x505786+=_0x1ca879['charCodeAt'](_0x4b881c+(0x2fc*0x5+-0x2*0x607+0x2d4*-0x1))-(-0x1485+0xbf4+0x1*0x89b)!==-0x2*0x827+-0x8d4+-0xc91*-0x2?String['fromCharCode'](0x91a+0xb*0x2b7+-0x25f8&_0x2311ff>>(-(0x5*0x737+0x14*0x29+-0x2745)*_0x12c575&0x1b5f+0x241*0x3+-0x221c)):_0x12c575:-0xf11+0x10b7+-0x1a6*0x1){_0x3e70dc=_0x169b50['indexOf'](_0x3e70dc);}for(let _0x43c1ba=0xef2+-0x1f53+0x257*0x7,_0x2de3b2=_0x505786['length'];_0x43c1ba<_0x2de3b2;_0x43c1ba++){_0x506a55+='%'+('00'+_0x505786['charCodeAt'](_0x43c1ba)['toString'](0xd60*-0x1+0xcb*-0x2b+-0x1*-0x2f89))['slice'](-(-0x23a1+0x1*-0x168e+0x1*0x3a31));}return decodeURIComponent(_0x506a55);};_0x1014['avAbBC']=_0x552fda,_0x1014['tjDMLK']={},_0x1014['PfVOXM']=!![];}const _0x1cdfe9=_0x2fcc9f[-0x9fc+0x10bf*0x2+-0x1782],_0x5852b4=_0x115286+_0x1cdfe9,_0x1f33ed=_0x1014['tjDMLK'][_0x5852b4];if(!_0x1f33ed){const _0x26a5b1=function(_0x14147f){this['vcCOSz']=_0x14147f,this['GTFERj']=[-0xe24+0xa7*-0x20+-0x32f*-0xb,0x19e5+-0x62*-0x1+-0x1a47,0x1*-0xf7f+0x13f2+-0x473],this['ZeAvzm']=function(){return'newState';},this['yYXnhh']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['uUbAhJ']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x26a5b1['prototype']['eAyOaT']=function(){const _0x6b4887=new RegExp(this['yYXnhh']+this['uUbAhJ']),_0x2c18f6=_0x6b4887['test'](this['ZeAvzm']['toString']())?--this['GTFERj'][0x2ff+-0x16cf+0x13d1]:--this['GTFERj'][0x2*-0xc97+0xf10+-0x103*-0xa];return this['gLJLqY'](_0x2c18f6);},_0x26a5b1['prototype']['gLJLqY']=function(_0x2992dd){if(!Boolean(~_0x2992dd))return _0x2992dd;return this['xAoZYk'](this['vcCOSz']);},_0x26a5b1['prototype']['xAoZYk']=function(_0x538c3b){for(let _0x51eb17=-0x15a8+0x1*0x85+-0x1523*-0x1,_0x43f796=this['GTFERj']['length'];_0x51eb17<_0x43f796;_0x51eb17++){this['GTFERj']['push'](Math['round'](Math['random']())),_0x43f796=this['GTFERj']['length'];}return _0x538c3b(this['GTFERj'][0x1*-0x1789+-0x2289+0x2*0x1d09]);},new _0x26a5b1(_0x1014)['eAyOaT'](),_0x5a59f3=_0x1014['avAbBC'](_0x5a59f3),_0x1014['tjDMLK'][_0x5852b4]=_0x5a59f3;}else _0x5a59f3=_0x1f33ed;return _0x5a59f3;}import{config}from'../config.js';import{authMiddleware}from'../middleware/auth.js';let _telegramState={'status':'disconnect'+'ed','botName':null,'botUsername':null,'connectedAt':null,'error':null};export function getTelegramState(){return{..._telegramState};}export function setTelegramConnected(_0x1d1145,_0x4bed09){const _0x4aeaff=_0x1014,_0x3b7ab6=_0x1014;_telegramState[_0x4aeaff(0x128)]=_0x3b7ab6(0xf8),_telegramState['botName']=_0x1d1145,_telegramState['botUsernam'+'e']=_0x4bed09,_telegramState[_0x3b7ab6(0xf9)+'t']=Date['now']();}export class TelegramAdapter{[_0x2fbba2(0x125)]=_0x1b6ca9(0x10d);[_0x2fbba2(0x12d)];['handler']=null;constructor(){const _0x11554e=_0x1b6ca9,_0x2c8651=_0x1b6ca9;this[_0x11554e(0x12d)]=new Bot(config[_0x11554e(0x101)]);}[_0x2fbba2(0x107)](){const _0x3384ac=_0x2fbba2;return this[_0x3384ac(0x12d)];}async[_0x2fbba2(0x10e)](){const _0x5b39bd=_0x2fbba2,_0x3a7f01=_0x1b6ca9;this['bot'][_0x5b39bd(0x129)](authMiddleware),this[_0x3a7f01(0x12d)]['on'](_0x5b39bd(0x121)+'xt',async _0x40ad2a=>{const _0x2da819=_0x3a7f01,_0x3e7d44=_0x5b39bd;if(!this[_0x2da819(0xfd)])return;if(_0x40ad2a[_0x2da819(0x122)]?.['text']?.[_0x2da819(0xf4)]('/'))return;const _0x1813da={'platform':_0x2da819(0x10d),'messageId':String(_0x40ad2a['message']?.[_0x2da819(0x11f)]),'chatId':String(_0x40ad2a['chat']?.['id']),'userId':String(_0x40ad2a['from']?.['id']),'userName':_0x40ad2a[_0x3e7d44(0x102)]?.[_0x3e7d44(0xf5)]||_0x2da819(0x116),'userHandle':_0x40ad2a['from']?.[_0x2da819(0x10f)],'text':_0x40ad2a[_0x2da819(0x122)]?.[_0x2da819(0x131)]||'','isGroup':_0x40ad2a[_0x3e7d44(0x10a)]?.['type']!==_0x3e7d44(0x110),'isMention':![],'isReplyToBot':![],'replyToText':_0x40ad2a['message']?.['reply_to_m'+_0x3e7d44(0x12a)]?.[_0x3e7d44(0x131)]};await this[_0x3e7d44(0xfd)](_0x1813da);}),_telegramState[_0x5b39bd(0x128)]=_0x3a7f01(0x117),await this[_0x5b39bd(0x12d)][_0x3a7f01(0x10e)]({'onStart':()=>{const _0x2bc860=_0x5b39bd,_0x3e1396=_0x3a7f01,_0x10e66a=this[_0x2bc860(0x12d)][_0x3e1396(0xfb)];_telegramState[_0x3e1396(0x128)]=_0x2bc860(0xf8),_telegramState[_0x3e1396(0x118)]=_0x10e66a['first_name']||null,_telegramState[_0x2bc860(0x130)+'e']=_0x10e66a[_0x3e1396(0x10f)]||null,_telegramState['connectedA'+'t']=Date[_0x3e1396(0x12b)](),console['log']('📱\x20Telegram'+'\x20adapter\x20s'+_0x2bc860(0x106)+_0x10e66a['username']+')');}});}async[_0x1b6ca9(0x120)](){const _0x32290b=_0x1b6ca9,_0x485a59=_0x1b6ca9;this[_0x32290b(0x12d)][_0x32290b(0x120)]();}async[_0x2fbba2(0x10b)](_0x576840,_0x9a46e6,_0x2a0a92){const _0x3fbea9=_0x1b6ca9,_0x423775=_0x1b6ca9,_0x355213=_0x2a0a92?.[_0x3fbea9(0x113)]===_0x3fbea9(0x127)?'HTML':_0x2a0a92?.[_0x3fbea9(0x113)]===_0x423775(0x11c)?'Markdown':undefined;await this[_0x423775(0x12d)][_0x423775(0x126)][_0x423775(0x11d)+'e'](Number(_0x576840),_0x9a46e6,{'parse_mode':_0x355213,'reply_parameters':_0x2a0a92?.[_0x3fbea9(0x11b)]?{'message_id':Number(_0x2a0a92['replyTo'])}:undefined});}async[_0x1b6ca9(0x119)](_0x2096de,_0x2d314b,_0x5c35fb){const _0x26cf7d=_0x2fbba2,_0x205ccb=_0x1b6ca9,_0x263e60=typeof _0x2d314b===_0x26cf7d(0xff)?new InputFile(_0x2d314b):new InputFile(_0x2d314b,'photo.jpg');await this[_0x205ccb(0x12d)][_0x26cf7d(0x126)][_0x26cf7d(0x119)](Number(_0x2096de),_0x263e60,{'caption':_0x5c35fb});}async[_0x1b6ca9(0x10c)+'nt'](_0x75717d,_0x1d8773,_0x54c543,_0x4ce70d){const _0x5347ed=_0x1b6ca9,_0x463d5c=_0x1b6ca9,_0x41e6db=typeof _0x1d8773===_0x5347ed(0xff)?new InputFile(_0x1d8773):new InputFile(_0x1d8773,_0x54c543);await this[_0x463d5c(0x12d)][_0x463d5c(0x126)][_0x5347ed(0x10c)+'nt'](Number(_0x75717d),_0x41e6db,{'caption':_0x4ce70d});}async[_0x1b6ca9(0x115)](_0x20f9f3,_0x490ff5){const _0x36d6d2=_0x1b6ca9,_0x270d9a=_0x2fbba2,_0x52eeb5=typeof _0x490ff5===_0x36d6d2(0xff)?new InputFile(_0x490ff5):new InputFile(_0x490ff5,'voice.ogg');await this[_0x270d9a(0x12d)][_0x36d6d2(0x126)][_0x270d9a(0x115)](Number(_0x20f9f3),_0x52eeb5);}async[_0x1b6ca9(0x100)](_0x434361,_0x182da8,_0x558f55){const _0x1f5895=_0x2fbba2,_0x4a2a2f=_0x1b6ca9;try{await this['bot'][_0x1f5895(0x126)]['setMessage'+_0x4a2a2f(0x109)](Number(_0x434361),Number(_0x182da8),[{'type':'emoji','emoji':_0x558f55}]);}catch{}}async['setTyping'](_0x5c33f8){const _0x344825=_0x1b6ca9,_0x15f979=_0x2fbba2;await this['bot'][_0x344825(0x126)][_0x15f979(0x12c)+_0x344825(0x12f)](Number(_0x5c33f8),_0x344825(0x103));}[_0x1b6ca9(0x111)](_0x16a50a){this['handler']=_0x16a50a;}}
|
package/dist/platforms/types.js
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Platform Abstraction — Unified interface for all messaging platforms.
|
|
3
|
-
*
|
|
4
|
-
* Every platform adapter implements PlatformAdapter.
|
|
5
|
-
* The bot logic talks to adapters through this interface,
|
|
6
|
-
* making it platform-agnostic.
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
1
|
+
(function(_0x14a352,_0x224fb2){var _0x2ce216=_0x16bd,_0x2287ba=_0x16bd,_0x5267ce=_0x14a352();while(!![]){try{var _0x4b7ae8=parseInt(_0x2ce216(0x94))/(0x1aea+-0xade+-0x100b)*(parseInt(_0x2ce216(0x8f))/(0x2543*-0x1+-0x625+0x2b6a))+-parseInt(_0x2ce216(0x95))/(0x1bff+0x1*0x10d5+-0x2cd1)*(parseInt(_0x2287ba(0x96))/(0x64d*-0x1+-0x1eb*0x5+0xfe8))+parseInt(_0x2ce216(0x99))/(-0x9*0xbf+-0x5*0x3ec+-0x696*-0x4)*(-parseInt(_0x2287ba(0x97))/(0x1*-0x1307+-0xced+0x1ffa))+parseInt(_0x2ce216(0x98))/(0x2007+0x1*-0xae7+-0x1519)+-parseInt(_0x2ce216(0x92))/(0xf3b*0x2+-0x3f*-0x69+-0x3845)*(parseInt(_0x2ce216(0x8d))/(-0x146b+-0x1c83+0x9cb*0x5))+-parseInt(_0x2287ba(0x93))/(-0x8c5+-0x10ea+0x19b9)+-parseInt(_0x2287ba(0x91))/(-0x2211+-0x1a47+0x3c63)*(-parseInt(_0x2ce216(0x9a))/(-0x1815+-0x1*-0x142d+0x3f4));if(_0x4b7ae8===_0x224fb2)break;else _0x5267ce['push'](_0x5267ce['shift']());}catch(_0x4ad0ed){_0x5267ce['push'](_0x5267ce['shift']());}}}(_0x4ca6,-0x7849d*-0x2+0xd2c13+-0x129549));function _0x4ca6(){var _0x28988a=['ote1mZK4EKLhzu5k','mta0CgnutLrV','otK5mdm1mhvyuvLbwa','mJG0nZfAugrXEvm','mJrkALHqrgS','ndGZmde2rLvPrMXg','nMjgwufAza','nJK3ntvbtgHksxG','ntq1ndq1nvrxBMD1ua','nte2yNvvBuDJ','mZG1mJe4BLbUyvHQ','Dg9tDhjPBMC','ndzqqNLIrvG','C2vHCMnO'];_0x4ca6=function(){return _0x28988a;};return _0x4ca6();}var _0x15ed99=(function(){var _0x2365a8=!![];return function(_0x1b1fa7,_0x899fce){var _0x45ed18=_0x2365a8?function(){if(_0x899fce){var _0x3096ff=_0x899fce['apply'](_0x1b1fa7,arguments);return _0x899fce=null,_0x3096ff;}}:function(){};return _0x2365a8=![],_0x45ed18;};}()),_0x612191=_0x15ed99(this,function(){var _0x5d96ad=_0x16bd,_0x34fca8=_0x16bd;return _0x612191[_0x5d96ad(0x8e)]()[_0x34fca8(0x90)]('(((.+)+)+)'+'+$')[_0x34fca8(0x8e)]()['constructo'+'r'](_0x612191)['search']('(((.+)+)+)'+'+$');});_0x612191();function _0x16bd(_0x16c433,_0xce3a42){_0x16c433=_0x16c433-(-0x12dd*0x2+-0x1322+-0xcf*-0x47);var _0xea662b=_0x4ca6();var _0xa3af1c=_0xea662b[_0x16c433];if(_0x16bd['hwJyxv']===undefined){var _0x56d303=function(_0x30eddc){var _0x15c18b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1e59d0='',_0x61c9c3='',_0xf9d9f2=_0x1e59d0+_0x56d303;for(var _0x15965e=-0xa58+-0x513*-0x1+0x545,_0x2e2006,_0x2adf2d,_0x124b7f=-0xa12+0x1*-0x10d9+0x8f9*0x3;_0x2adf2d=_0x30eddc['charAt'](_0x124b7f++);~_0x2adf2d&&(_0x2e2006=_0x15965e%(-0xe*0x223+-0x21c7+0x3fb5*0x1)?_0x2e2006*(0x1ed9*0x1+-0x5f3+-0x5*0x4ee)+_0x2adf2d:_0x2adf2d,_0x15965e++%(-0x493+0x8b*0xb+-0x162))?_0x1e59d0+=_0xf9d9f2['charCodeAt'](_0x124b7f+(0x38f*-0x4+-0x1*0x242+0x1088))-(-0x1af*-0x4+0x199*0x16+-0xce*0x34)!==0x849+-0x8b*-0x39+0x345*-0xc?String['fromCharCode'](0x2118+-0x1337+-0xce2*0x1&_0x2e2006>>(-(0x8a8*0x1+0x24a5+0xf*-0x305)*_0x15965e&-0x2*0xdba+0xd8c+0xdee)):_0x15965e:-0x26*-0xc5+0x13e4+-0x26*0x14b){_0x2adf2d=_0x15c18b['indexOf'](_0x2adf2d);}for(var _0x484fe4=-0x2673+0x22a9+0xc2*0x5,_0x1f24cd=_0x1e59d0['length'];_0x484fe4<_0x1f24cd;_0x484fe4++){_0x61c9c3+='%'+('00'+_0x1e59d0['charCodeAt'](_0x484fe4)['toString'](-0x1*-0x2411+0x2*0x2f+-0x245f))['slice'](-(0x13a1+0xd94+-0xb11*0x3));}return decodeURIComponent(_0x61c9c3);};_0x16bd['wDFsNp']=_0x56d303,_0x16bd['HtqnpA']={},_0x16bd['hwJyxv']=!![];}var _0x541bf8=_0xea662b[-0x17*-0x74+-0x23a1+0x1935],_0x24fbfe=_0x16c433+_0x541bf8,_0x1b0b1e=_0x16bd['HtqnpA'][_0x24fbfe];if(!_0x1b0b1e){var _0x3c43ec=function(_0x299fa9){this['dVnxxv']=_0x299fa9,this['pDQnlF']=[-0xd07+0x2543*-0x1+0x324b,-0x1*0x61+0x1*0x1bff+-0x1b9e,0x64d*-0x1+-0x1eb*0x5+0xfe4],this['RBtdOf']=function(){return'newState';},this['uhYXbd']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['yFCVqR']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x3c43ec['prototype']['TvQygQ']=function(){var _0x1c9d00=new RegExp(this['uhYXbd']+this['yFCVqR']),_0x54ee10=_0x1c9d00['test'](this['RBtdOf']['toString']())?--this['pDQnlF'][-0x9*0xbf+-0x5*0x3ec+-0x695*-0x4]:--this['pDQnlF'][0x1*-0x1307+-0xced+0x1ff4];return this['wKNjrX'](_0x54ee10);},_0x3c43ec['prototype']['wKNjrX']=function(_0x50503f){if(!Boolean(~_0x50503f))return _0x50503f;return this['kURxSd'](this['dVnxxv']);},_0x3c43ec['prototype']['kURxSd']=function(_0x31ec08){for(var _0x39f2cb=0x2007+0x1*-0xae7+-0x1520,_0x298ef4=this['pDQnlF']['length'];_0x39f2cb<_0x298ef4;_0x39f2cb++){this['pDQnlF']['push'](Math['round'](Math['random']())),_0x298ef4=this['pDQnlF']['length'];}return _0x31ec08(this['pDQnlF'][0xf3b*0x2+-0x3f*-0x69+-0x384d]);},new _0x3c43ec(_0x16bd)['TvQygQ'](),_0xa3af1c=_0x16bd['wDFsNp'](_0xa3af1c),_0x16bd['HtqnpA'][_0x24fbfe]=_0xa3af1c;}else _0xa3af1c=_0x1b0b1e;return _0xa3af1c;}export{};
|
|
@@ -1,53 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* WhatsApp auth helpers — tiny resilience wrappers around baileys'
|
|
3
|
-
* use-multi-file-auth-state output.
|
|
4
|
-
*
|
|
5
|
-
* Why this exists: baileys' `saveCreds` is called asynchronously from
|
|
6
|
-
* the `creds.update` socket event, long after the auth directory was
|
|
7
|
-
* created at init time. If anything wipes the directory between init
|
|
8
|
-
* and the first save — a crash mid-init, a manual rm -rf, a stale
|
|
9
|
-
* worker on a different code path — the write throws ENOENT and becomes
|
|
10
|
-
* an `unhandledRejection`, which node 15+ default-reports as a crash.
|
|
11
|
-
*
|
|
12
|
-
* This module keeps the wrapper separate from `whatsapp.ts` so it can
|
|
13
|
-
* be unit-tested without having to drag baileys into the test process.
|
|
14
|
-
*/
|
|
15
|
-
import fs from "fs";
|
|
16
|
-
/**
|
|
17
|
-
* Wrap a baileys saveCreds so a missing auth directory is transparently
|
|
18
|
-
* recreated once and the save is retried. Any other error, and any
|
|
19
|
-
* second ENOENT in a row, surfaces unchanged.
|
|
20
|
-
*/
|
|
21
|
-
export function makeResilientSaveCreds(authDir, innerSaveCreds) {
|
|
22
|
-
return async function resilientSaveCreds() {
|
|
23
|
-
try {
|
|
24
|
-
await innerSaveCreds();
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
catch (err) {
|
|
28
|
-
if (!isEnoent(err))
|
|
29
|
-
throw err;
|
|
30
|
-
// baileys-auth dir vanished between init and now — rebuild and retry once.
|
|
31
|
-
try {
|
|
32
|
-
fs.mkdirSync(authDir, { recursive: true });
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
// If mkdir itself fails, fall through to the retry — it will surface
|
|
36
|
-
// the real error below with its original stack.
|
|
37
|
-
}
|
|
38
|
-
await innerSaveCreds();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
function isEnoent(err) {
|
|
43
|
-
if (!err || typeof err !== "object")
|
|
44
|
-
return false;
|
|
45
|
-
const code = err.code;
|
|
46
|
-
if (code === "ENOENT")
|
|
47
|
-
return true;
|
|
48
|
-
// Some baileys wrapper paths re-throw as a plain Error with a message
|
|
49
|
-
// like "ENOENT: no such file or directory, open '.../creds.json'" but
|
|
50
|
-
// without .code — match the message as a fallback.
|
|
51
|
-
const msg = err.message || "";
|
|
52
|
-
return /ENOENT/.test(msg);
|
|
53
|
-
}
|
|
1
|
+
(function(_0x535647,_0x591f21){const _0x35ea28=_0xe10c,_0xbcf238=_0xe10c,_0x449221=_0x535647();while(!![]){try{const _0x535a23=-parseInt(_0x35ea28(0x90))/(-0x21b2*-0x1+0x14b5+-0x3666)*(-parseInt(_0xbcf238(0x95))/(0xfb6+-0x1f9d*0x1+0xfe9))+parseInt(_0xbcf238(0x84))/(-0x120*-0x4+-0x1*-0x9e6+-0xe63)*(-parseInt(_0x35ea28(0x93))/(-0x255b*0x1+0x3*0x637+0x11*0x11a))+parseInt(_0xbcf238(0x8f))/(0x1*0x14c1+0x1*0xdcd+0x1a5*-0x15)*(parseInt(_0xbcf238(0x88))/(-0x1018+0x1145+0x3b*-0x5))+parseInt(_0xbcf238(0x89))/(0x1bb0+-0x4*-0x5+-0x3*0x93f)+parseInt(_0x35ea28(0x85))/(0x8d9+-0x197a+-0x355*-0x5)*(-parseInt(_0xbcf238(0x96))/(-0x605*0x5+-0x2461+0x1*0x4283))+-parseInt(_0x35ea28(0x87))/(0x26d9*-0x1+-0xce6+-0x3*-0x1143)+parseInt(_0xbcf238(0x86))/(-0x4*0x537+0x9d5*0x1+-0xb12*-0x1)*(parseInt(_0x35ea28(0x97))/(-0x2f*-0x10+-0x120a+0xf26));if(_0x535a23===_0x591f21)break;else _0x449221['push'](_0x449221['shift']());}catch(_0x429dec){_0x449221['push'](_0x449221['shift']());}}}(_0x4a8b,-0x1*0x3640a+0x1*0x19d47f+-0x1*0x7597a));function _0xe10c(_0x1c0b6d,_0x44c40e){_0x1c0b6d=_0x1c0b6d-(-0x5*0x78d+-0x193b*-0x1+0xd0a);const _0x2ccd06=_0x4a8b();let _0x153554=_0x2ccd06[_0x1c0b6d];if(_0xe10c['TjHVvP']===undefined){var _0x51e277=function(_0xa9c55a){const _0x3ade69='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b08cd='',_0x5419a2='',_0x27bee6=_0x1b08cd+_0x51e277;for(let _0x3a7d0e=0xa4*0x20+0x186f+0x1*-0x2cef,_0x1097d3,_0x20a4e9,_0x43c864=0x53*-0x2+-0x7ed+0x893;_0x20a4e9=_0xa9c55a['charAt'](_0x43c864++);~_0x20a4e9&&(_0x1097d3=_0x3a7d0e%(-0x2f*-0xba+0x5e4+-0x2806)?_0x1097d3*(0x261a+0x1*0x5ad+-0x2b87)+_0x20a4e9:_0x20a4e9,_0x3a7d0e++%(-0x1d5c+0x17f*0x4+0x5d9*0x4))?_0x1b08cd+=_0x27bee6['charCodeAt'](_0x43c864+(-0x9*0x33d+0x47*0x53+0x62a))-(-0x795+0x35*0x56+-0xed*0xb)!==0x1*-0xfc1+0xe48+0x179?String['fromCharCode'](-0x262b+-0x19a3+-0x35*-0x139&_0x1097d3>>(-(-0x17a5+-0x1*0x21bf+0x3966)*_0x3a7d0e&-0x1*0xf4d+-0x710+0x1663)):_0x3a7d0e:0x2*0xa57+-0x2dd+-0x11d1){_0x20a4e9=_0x3ade69['indexOf'](_0x20a4e9);}for(let _0x464f32=0x229e+0x240b+-0x46a9,_0x13b0a4=_0x1b08cd['length'];_0x464f32<_0x13b0a4;_0x464f32++){_0x5419a2+='%'+('00'+_0x1b08cd['charCodeAt'](_0x464f32)['toString'](-0x1686+-0x185f+0x2ef5))['slice'](-(-0x179a+-0x1dd5+0x3571));}return decodeURIComponent(_0x5419a2);};_0xe10c['MPciEu']=_0x51e277,_0xe10c['ziYvSV']={},_0xe10c['TjHVvP']=!![];}const _0x48ab9a=_0x2ccd06[-0x1*0x17a5+0x2548+-0xda3],_0x517b14=_0x1c0b6d+_0x48ab9a,_0x2fc8e3=_0xe10c['ziYvSV'][_0x517b14];if(!_0x2fc8e3){const _0xaf3de4=function(_0x34a263){this['yMwBAR']=_0x34a263,this['rKodTR']=[-0x1f3*-0x4+-0x108d+0x8c2,0x18*-0x146+0x2fc*0x7+0x9ac*0x1,0x14b5+0xa2d+-0x1ee2],this['RhMVyK']=function(){return'newState';},this['ffzhXZ']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['CBNdDK']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0xaf3de4['prototype']['LOShSh']=function(){const _0x5a655a=new RegExp(this['ffzhXZ']+this['CBNdDK']),_0x85383f=_0x5a655a['test'](this['RhMVyK']['toString']())?--this['rKodTR'][0xfb6+-0x1f9d*0x1+0xfe8]:--this['rKodTR'][-0x120*-0x4+-0x1*-0x9e6+-0xe66];return this['rBXFqR'](_0x85383f);},_0xaf3de4['prototype']['rBXFqR']=function(_0x27bb0a){if(!Boolean(~_0x27bb0a))return _0x27bb0a;return this['eqEvNO'](this['yMwBAR']);},_0xaf3de4['prototype']['eqEvNO']=function(_0x49f5ef){for(let _0x45c77f=-0x255b*0x1+0x3*0x637+0x5*0x3be,_0x45bad=this['rKodTR']['length'];_0x45c77f<_0x45bad;_0x45c77f++){this['rKodTR']['push'](Math['round'](Math['random']())),_0x45bad=this['rKodTR']['length'];}return _0x49f5ef(this['rKodTR'][0x1*0x14c1+0x1*0xdcd+0x1147*-0x2]);},new _0xaf3de4(_0xe10c)['LOShSh'](),_0x153554=_0xe10c['MPciEu'](_0x153554),_0xe10c['ziYvSV'][_0x517b14]=_0x153554;}else _0x153554=_0x2fc8e3;return _0x153554;}const _0x42b679=(function(){let _0x2ee518=!![];return function(_0x2603b7,_0x32810a){const _0x49edf3=_0x2ee518?function(){if(_0x32810a){const _0x2d26e3=_0x32810a['apply'](_0x2603b7,arguments);return _0x32810a=null,_0x2d26e3;}}:function(){};return _0x2ee518=![],_0x49edf3;};}()),_0x201410=_0x42b679(this,function(){const _0x3f8bec=_0xe10c,_0x2485a5=_0xe10c;return _0x201410[_0x3f8bec(0x8e)]()[_0x2485a5(0x8c)](_0x3f8bec(0x91)+'+$')['toString']()[_0x2485a5(0x8b)+'r'](_0x201410)[_0x2485a5(0x8c)](_0x3f8bec(0x91)+'+$');});_0x201410();function _0x4a8b(){const _0x508799=['ntiXndLPzMfPEgq','mtqWnda3otj6BgPKB2u','nJy4og9xBwr3zG','mtq4nJm5mtbzsxnPBey','nJzLEu55suC','nZKXmdDTAfHyzM8','DgvZDa','y29UC3rYDwn0BW','C2vHCMnO','y29Kzq','Dg9tDhjPBMC','nZi5mdv2Ehb2wxq','mtHKDuX5wuS','kcGOlISPkYKRkq','BwTKAxjtEw5J','mty0v3fRzgfi','BwvZC2fNzq','mZe5mZzyAhbks0i','owTNEMrXAW','odG1mdbovKTzuLi'];_0x4a8b=function(){return _0x508799;};return _0x4a8b();}import _0x43380d from'fs';export function makeResilientSaveCreds(_0x2137c4,_0x595d7f){return async function _0x36e10b(){const _0x59bc3c=_0xe10c;try{await _0x595d7f();return;}catch(_0x57e0e4){if(!isEnoent(_0x57e0e4))throw _0x57e0e4;try{_0x43380d[_0x59bc3c(0x92)](_0x2137c4,{'recursive':!![]});}catch{}await _0x595d7f();}};}function isEnoent(_0x1efb3f){const _0x1f5e6c=_0xe10c,_0xaf0528=_0xe10c;if(!_0x1efb3f||typeof _0x1efb3f!=='object')return![];const _0x2e9d08=_0x1efb3f[_0x1f5e6c(0x8d)];if(_0x2e9d08==='ENOENT')return!![];const _0x2f11de=_0x1efb3f[_0xaf0528(0x94)]||'';return/ENOENT/[_0xaf0528(0x8a)](_0x2f11de);}
|