yo-moss-ai 0.0.21 → 0.0.23
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/bin/bootstrap-deps.mjs +7 -6
- package/bin/runtime-manifest.json +1 -1
- package/dist/assets/esp-flasher-CLKzE7JE.js +27 -2
- package/dist/assets/index-BTL1clBe.js +692 -0
- package/dist/assets/{index-CzQKR67c.css → index-Bcf5kQZF.css} +1 -1
- package/dist/index.html +2 -2
- package/dist/models/mediapipe/blaze_face_full_range.tflite +0 -0
- package/dist/models/mediapipe/blaze_face_short_range.tflite +0 -0
- package/dist/models/mediapipe/wasm/vision_wasm_internal.js +8841 -0
- package/dist/models/mediapipe/wasm/vision_wasm_internal.wasm +0 -0
- package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.js +8832 -0
- package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.wasm +0 -0
- package/dist/stl/moss.stl +0 -0
- package/dist/stl/planetary_engine.stl +0 -0
- package/dist/textures/earth-lights.png +0 -0
- package/dist/textures/earth-night.jpg +0 -0
- package/dist/textures/earth_clouds.jpg +0 -0
- package/dist/textures/moon-base.jpg +0 -0
- package/dist/textures/moon-bump.jpg +0 -0
- package/dist/textures/wandering.png +0 -0
- package/dist-server/board-presets.mjs +1 -1
- package/dist-server/camera.mjs +1 -1
- package/dist-server/dev-ui.mjs +1 -1
- package/dist-server/device-chat-sync.mjs +1 -1
- package/dist-server/device-config-view.mjs +1 -1
- package/dist-server/device-focus.mjs +1 -1
- package/dist-server/device-http.mjs +1 -1
- package/dist-server/device-identity.mjs +1 -1
- package/dist-server/device-presence.mjs +1 -1
- package/dist-server/device-probe.mjs +1 -1
- package/dist-server/device-registry.mjs +1 -1
- package/dist-server/device-routes.mjs +1 -1
- package/dist-server/device-runtime.mjs +1 -1
- package/dist-server/device-session.mjs +1 -1
- package/dist-server/ffmpeg.mjs +1 -1
- package/dist-server/gimbal-control.mjs +1 -1
- package/dist-server/home-path.mjs +1 -1
- package/dist-server/index.mjs +1 -1
- package/dist-server/ir-import-validate.mjs +1 -1
- package/dist-server/known-scan-device.mjs +1 -1
- package/dist-server/lan-discover.mjs +1 -1
- package/dist-server/listen-port.mjs +1 -1
- package/dist-server/mcp/backoff.mjs +1 -1
- package/dist-server/mcp/bridge-manager.mjs +1 -1
- package/dist-server/mcp/builtin-tools.mjs +1 -1
- package/dist-server/mcp/dedupe-servers.mjs +1 -1
- package/dist-server/mcp/doctor.mjs +1 -1
- package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
- package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
- package/dist-server/mcp/hotkey-driver.mjs +1 -1
- package/dist-server/mcp/hotkey-handlers.mjs +1 -1
- package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
- package/dist-server/mcp/hotkey-store.mjs +1 -1
- package/dist-server/mcp/http-client.mjs +1 -1
- package/dist-server/mcp/http-pipe.mjs +1 -1
- package/dist-server/mcp/local-probe.mjs +1 -1
- package/dist-server/mcp/marketplace.mjs +1 -1
- package/dist-server/mcp/onvif-handlers.mjs +1 -1
- package/dist-server/mcp/parse-server-json.mjs +1 -1
- package/dist-server/mcp/paths.mjs +1 -1
- package/dist-server/mcp/routes.mjs +1 -1
- package/dist-server/mcp/schema.mjs +1 -1
- package/dist-server/mcp/settings.mjs +1 -1
- package/dist-server/mcp/shell-approval.mjs +1 -1
- package/dist-server/mcp/shell-policy.mjs +1 -1
- package/dist-server/mcp/shell-trash.mjs +1 -1
- package/dist-server/mcp/stdio-pipe.mjs +1 -1
- package/dist-server/mcp/store.mjs +1 -1
- package/dist-server/mcp/task-notify.mjs +1 -1
- package/dist-server/mcp/ws-connect.mjs +1 -1
- package/dist-server/mcp/yunxiangji.mjs +1 -1
- package/dist-server/media-cache.mjs +1 -1
- package/dist-server/mihome/cloud.mjs +1 -1
- package/dist-server/mihome/devices.mjs +1 -1
- package/dist-server/mihome/local.mjs +1 -1
- package/dist-server/mihome/mcp-desc.mjs +1 -1
- package/dist-server/mihome/queue.mjs +1 -1
- package/dist-server/mihome/rc4.mjs +1 -1
- package/dist-server/mihome/routes.mjs +1 -1
- package/dist-server/mihome/service.mjs +1 -1
- package/dist-server/mihome/sign.mjs +1 -1
- package/dist-server/mihome/spec.mjs +1 -1
- package/dist-server/mihome/store.mjs +1 -1
- package/dist-server/onboard-preview.mjs +1 -1
- package/dist-server/tab-focus.mjs +1 -1
- package/dist-server/voice-wake.mjs +1 -1
- package/package.json +2 -4
- package/dist/assets/index-C1bPuFAs.js +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x553f(_0x573ce0,_0x27e34d){_0x573ce0=_0x573ce0-0x157;var _0x5981d2=_0x5981();var _0x553f0c=_0x5981d2[_0x573ce0];if(_0x553f['XoRrBb']===undefined){var _0x51c01e=function(_0x270886){var _0x12613a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x59141d='',_0x395786='';for(var _0x2fd74e=0x0,_0xbddb10,_0x17bbc5,_0x16f3fe=0x0;_0x17bbc5=_0x270886['charAt'](_0x16f3fe++);~_0x17bbc5&&(_0xbddb10=_0x2fd74e%0x4?_0xbddb10*0x40+_0x17bbc5:_0x17bbc5,_0x2fd74e++%0x4)?_0x59141d+=String['fromCharCode'](0xff&_0xbddb10>>(-0x2*_0x2fd74e&0x6)):0x0){_0x17bbc5=_0x12613a['indexOf'](_0x17bbc5);}for(var _0x5e81ae=0x0,_0x22f08c=_0x59141d['length'];_0x5e81ae<_0x22f08c;_0x5e81ae++){_0x395786+='%'+('00'+_0x59141d['charCodeAt'](_0x5e81ae)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x395786);};_0x553f['ygpMJX']=_0x51c01e,_0x553f['JMYFpa']={},_0x553f['XoRrBb']=!![];}var _0x1c1b17=_0x5981d2[0x0],_0x523b33=_0x573ce0+_0x1c1b17,_0x1f0ae4=_0x553f['JMYFpa'][_0x523b33];return!_0x1f0ae4?(_0x553f0c=_0x553f['ygpMJX'](_0x553f0c),_0x553f['JMYFpa'][_0x523b33]=_0x553f0c):_0x553f0c=_0x1f0ae4,_0x553f0c;}(function(_0x2bb74,_0x1a4a62){var _0x537d28=_0x553f,_0x52ae41=_0x2bb74();while(!![]){try{var _0xd472fb=parseInt(_0x537d28(0x15c))/0x1+-parseInt(_0x537d28(0x158))/0x2+-parseInt(_0x537d28(0x15e))/0x3+-parseInt(_0x537d28(0x159))/0x4+-parseInt(_0x537d28(0x15b))/0x5+parseInt(_0x537d28(0x15a))/0x6+parseInt(_0x537d28(0x15d))/0x7*(parseInt(_0x537d28(0x157))/0x8);if(_0xd472fb===_0x1a4a62)break;else _0x52ae41['push'](_0x52ae41['shift']());}catch(_0x49eee8){_0x52ae41['push'](_0x52ae41['shift']());}}}(_0x5981,0x25387));function _0x5981(){var _0x57d1ac=['ndK0mta2ne92u0rdsq','ntCXnZaWB1PmqMXz','nJeYnZC2EvzSDNjP','mtC5nJqZmerMBfvnvW','nZKWoti1v0Ddq3fQ','nJe3mZrOtvLQweW','n0TOuM1bDa','nJG3mJy0BMHQyMnY'];_0x5981=function(){return _0x57d1ac;};return _0x5981();}export{resolveHomePath,mossGuardRedirect}from'../src/navigation/home-path.mjs';
|
package/dist-server/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x48ebcd=_0x53b0;(function(_0x5e5b2e,_0x3aa207){const _0x2c25a2=_0x53b0,_0x1a5031=_0x5e5b2e();while(!![]){try{const _0x4637a1=parseInt(_0x2c25a2(0x202))/0x1+parseInt(_0x2c25a2(0x24f))/0x2*(-parseInt(_0x2c25a2(0x12c))/0x3)+parseInt(_0x2c25a2(0x1d0))/0x4*(parseInt(_0x2c25a2(0x1a6))/0x5)+-parseInt(_0x2c25a2(0x1f0))/0x6*(parseInt(_0x2c25a2(0x1f6))/0x7)+-parseInt(_0x2c25a2(0x213))/0x8*(parseInt(_0x2c25a2(0x149))/0x9)+-parseInt(_0x2c25a2(0x155))/0xa+parseInt(_0x2c25a2(0x1ab))/0xb;if(_0x4637a1===_0x3aa207)break;else _0x1a5031['push'](_0x1a5031['shift']());}catch(_0x541931){_0x1a5031['push'](_0x1a5031['shift']());}}}(_0x4ec2,0x98f20));import _0x24e640 from'node:fs';import _0x8ea7c3 from'node:os';import _0x30377c from'node:path';import _0x5907f2 from'node:http';import{execFile}from'node:child_process';import{fileURLToPath}from'node:url';import _0x5c053c from'express';import _0x4d0b15 from'cors';import{disconnectCamera,registerCameraRoutes,setCameraHooks,stripOnboardCameraConfig}from'./camera.mjs';import{findDevice,isBoardLabel,normalizeMac,resolveUpsertId}from'./device-identity.mjs';import{migrateLegacyConfig,requireActiveDevice,setCamera,upsertDevice}from'./device-registry.mjs';import{applyHealth,isOnline}from'./device-presence.mjs';import{probeDevice}from'./device-probe.mjs';import{applyChatDelta,chatSyncIntervalMs,shouldFetchChatSync}from'./device-chat-sync.mjs';import{createDeviceHttpQueue}from'./device-http.mjs';import{shouldApplyRemoteVoice,voiceFromWakeAck}from'./voice-wake.mjs';import{registerDeviceRoutes}from'./device-routes.mjs';import{buildSessionView,withActiveDevice}from'./device-session.mjs';import{attachRequestDevice,getRequestDevice,voicesFromRuntime}from'./device-focus.mjs';import{createDeviceRuntime}from'./device-runtime.mjs';import{discoverMossDevices}from'./lan-discover.mjs';import{registerMcpRoutes}from'./mcp/routes.mjs';import{initBridgeWebSocket,bridgeManager}from'./mcp/bridge-manager.mjs';import{setTaskNotifyHooks}from'./mcp/task-notify.mjs';import{loadMcpSettings}from'./mcp/settings.mjs';import{exportYunxiangjiInbox,ingestDeviceYunxiangjiCreates,maybeAckYunxiangjiFromChat,maybeApplyYunxiangjiFromChat}from'./mcp/yunxiangji.mjs';import{prefetchFfmpeg}from'./ffmpeg.mjs';import{registerMediaRoutes}from'./media-cache.mjs';import{validateIrImportPayload}from'./ir-import-validate.mjs';import{applyDeviceHealthTo,normalizeCaps}from'./board-presets.mjs';import{registerMihomeRoutes}from'./mihome/routes.mjs';import{clearRuntime,nextListenPort,reclaimListenPort,sleep}from'./listen-port.mjs';import{attachViteDev,shouldAttachDevUi}from'./dev-ui.mjs';const PORT=Number(process[_0x48ebcd(0x139)][_0x48ebcd(0x223)]||0xec4),ROOT_DIR=_0x30377c[_0x48ebcd(0x1b2)](_0x30377c[_0x48ebcd(0x217)+'e'](fileURLToPath(import.meta.url)),'..'),DIST_DIR=_0x30377c[_0x48ebcd(0x1b2)](ROOT_DIR,_0x48ebcd(0x231)),CONFIG_DIR=_0x30377c[_0x48ebcd(0x1b2)](_0x8ea7c3[_0x48ebcd(0x1d5)+'r'](),_0x48ebcd(0x22b)+_0x48ebcd(0x1c6)+'p'),CONFIG_PATH=_0x30377c[_0x48ebcd(0x1b2)](CONFIG_DIR,_0x48ebcd(0x1c4)+'.json'),RUNTIME_PATH=_0x30377c[_0x48ebcd(0x1b2)](CONFIG_DIR,_0x48ebcd(0x183)+_0x48ebcd(0x19b));function loadConfig(){const _0x4044d7=_0x48ebcd;try{return migrateLegacyConfig(JSON[_0x4044d7(0x1d1)](_0x24e640['readFi'+_0x4044d7(0x1be)](CONFIG_PATH,_0x4044d7(0x15b))));}catch{return migrateLegacyConfig({'deviceBaseUrl':'','mqtt':null,'bound':![]});}}function saveConfig(_0x551684){const _0x177aec=_0x48ebcd;_0x24e640['mkdirS'+'ync'](CONFIG_DIR,{'recursive':!![]}),_0x24e640['writeF'+_0x177aec(0x255)+'c'](CONFIG_PATH,JSON[_0x177aec(0x13a)+_0x177aec(0x147)](_0x551684,null,0x2));}function applyDeviceHealth(_0x262ba0,_0xfefc1c={}){const _0x110645=_0x48ebcd;applyDeviceHealthTo(config,_0x262ba0);if(!_0x262ba0||typeof _0x262ba0!==_0x110645(0x180))return null;const _0x3a09cd=String(_0xfefc1c[_0x110645(0x1b7)+'Id']||_0x262ba0[_0x110645(0x1b7)+_0x110645(0x153)]||'')[_0x110645(0x1b1)](),_0x392a61=normalizeMac(_0x262ba0[_0x110645(0x1a8)]),_0x2ededd=_0xfefc1c['id']||config[_0x110645(0x1e3)+_0x110645(0x247)+'Id'],_0x3940c2=findDevice(config,{'mac':_0x392a61,'clientId':_0x3a09cd,'id':_0x2ededd}),_0x54ac26=resolveUpsertId(config,{'mac':_0x392a61,'clientId':_0x3a09cd,'id':_0x3940c2?.['id']||_0x2ededd});if(!_0x54ac26)return null;const _0x462c6d=_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)]&&!isBoardLabel(_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)])?_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)]:undefined;upsertDevice(config,{'id':_0x54ac26,'mac':_0x392a61||undefined,'clientId':_0x3a09cd||_0x3940c2?.['client'+'Id'],'board':_0x262ba0[_0x110645(0x1b0)]||_0x262ba0[_0x110645(0x167)],'product':_0x262ba0['produc'+'t'],'hostname':_0x262ba0[_0x110645(0x1a2)+'me'],'displayName':_0x462c6d,'ip':_0x262ba0['ip']});const _0x40be73=applyHealth(config[_0x110645(0x16b)+'s'][_0x54ac26],_0x262ba0);return config[_0x110645(0x16b)+'s'][_0x54ac26]=_0x40be73,_0x40be73;}function activeRecord(){const _0x11a7b5=_0x48ebcd;return config[_0x11a7b5(0x16b)+'s']?.[config[_0x11a7b5(0x1e3)+_0x11a7b5(0x247)+'Id']]||null;}function currentCaps(){const _0x4a19c4=_0x48ebcd,_0x227d4c=focusedRecord();return normalizeCaps({'board':_0x227d4c?.[_0x4a19c4(0x1b0)]||config[_0x4a19c4(0x1b0)],'name':_0x227d4c?.[_0x4a19c4(0x1b0)]||config[_0x4a19c4(0x1b0)],'product':_0x227d4c?.['produc'+'t']||config[_0x4a19c4(0x22a)+'t']});}function currentMossOnline(){const _0x4e9ce7=_0x48ebcd,_0x5cdef0=focusedRecord();if(_0x5cdef0&&isOnline(_0x5cdef0['lastSe'+'en'],Date[_0x4e9ce7(0x1e6)]()))return!![];return![];}function writeRuntime(_0x5d741a){const _0x5a1b6b=_0x48ebcd;try{_0x24e640[_0x5a1b6b(0x14a)+_0x5a1b6b(0x1fd)](CONFIG_DIR,{'recursive':!![]}),_0x24e640[_0x5a1b6b(0x172)+_0x5a1b6b(0x255)+'c'](RUNTIME_PATH,JSON['string'+_0x5a1b6b(0x147)]({'port':_0x5d741a,'pid':process[_0x5a1b6b(0x14e)],'at':Date[_0x5a1b6b(0x1e6)]()}));}catch(_0x750b1c){console[_0x5a1b6b(0x275)](_0x5a1b6b(0x24e)+_0x5a1b6b(0x150)+':',_0x750b1c[_0x5a1b6b(0x170)+'e']);}}function clearListenRuntime(){clearRuntime(RUNTIME_PATH);}let config=loadConfig();for(const id of Object[_0x48ebcd(0x19e)](config[_0x48ebcd(0x16b)+'s']||{})){const wrap={'camera':config[_0x48ebcd(0x16b)+'s'][id]['camera']};stripOnboardCameraConfig(wrap)&&(config[_0x48ebcd(0x16b)+'s'][id][_0x48ebcd(0x1e9)]=wrap[_0x48ebcd(0x1e9)],saveConfig(config));}let mqttStatus=_0x48ebcd(0x157);const runtime=createDeviceRuntime(),chatSyncTimers=new Map();let presenceTimer=null;const boardQueues=new Map();function focusedRecord(){const _0x283fdb=_0x48ebcd,_0x4af88a=getRequestDevice();if(_0x4af88a?.['id']&&config[_0x283fdb(0x16b)+'s']?.[_0x4af88a['id']])return config[_0x283fdb(0x16b)+'s'][_0x4af88a['id']];return activeRecord();}function runtimeOf(_0x5d7877){const _0x1546e8=_0x48ebcd;return runtime['of'](_0x5d7877||focusedRecord()?.['id']||config[_0x1546e8(0x1e3)+_0x1546e8(0x247)+'Id']);}function deviceQueue(_0x7dc161){const _0x222974=_0x48ebcd,_0x46213d=_0x7dc161||config[_0x222974(0x1e3)+_0x222974(0x247)+'Id']||'_';if(!boardQueues[_0x222974(0x132)](_0x46213d))boardQueues[_0x222974(0x17a)](_0x46213d,createDeviceHttpQueue());return boardQueues[_0x222974(0x19f)](_0x46213d);}function initTaskNotify(){const _0x21cfd2=_0x48ebcd;setTaskNotifyHooks({'emit':emit,'publishWakeAndText':_0x2b8039=>{if(!currentMossOnline())return![];try{return publishWakeAndText(_0x2b8039),!![];}catch{return![];}},'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()[_0x21cfd2(0x1d4)+'TaskCo'+_0x21cfd2(0x12d)]===!![]});}initTaskNotify();const sseClients=new Set();function emit(_0x4f164c,_0x18bdf4){const _0x56857d=_0x48ebcd,_0x39aec1=_0x56857d(0x1de)+'\x20'+_0x4f164c+(_0x56857d(0x15a)+'\x20')+JSON[_0x56857d(0x13a)+'ify'](_0x18bdf4)+'\x0a\x0a';for(const _0x438afd of sseClients){_0x438afd[_0x56857d(0x246)](_0x39aec1);}}function statusPayload(_0x222be6={}){const _0x4902cc=_0x48ebcd;return{...buildSessionView(config,{'mqttStatus':_0x4902cc(0x157),'failCount':0x0,'lastError':'','voices':voicesFromRuntime(config,runtime)}),'status':_0x4902cc(0x157),'bound':!![],'failCount':0x0,'lastError':'',..._0x222be6};}function inferFetchKind(_0x3d2672,_0x4bf37d={}){const _0x2d37d2=_0x48ebcd;if(_0x4bf37d[_0x2d37d2(0x18d)])return _0x4bf37d[_0x2d37d2(0x18d)];if(_0x3d2672['starts'+_0x2d37d2(0x1f7)](_0x2d37d2(0x263)))return _0x2d37d2(0x1ee);if(_0x3d2672===_0x2d37d2(0x1ae)+'h')return'health';if(_0x3d2672[_0x2d37d2(0x1d8)+_0x2d37d2(0x1f7)]('/gimba'+'l'))try{const _0x1f3215=JSON[_0x2d37d2(0x1d1)](_0x4bf37d[_0x2d37d2(0x197)]||'{}');return _0x1f3215[_0x2d37d2(0x21e)]==='stop'?'stop':_0x2d37d2(0x14b);}catch{return _0x2d37d2(0x14b);}return'ir';}function enqueueBoard(_0x3de7a1,_0x2b74a0,_0x28d4c9){return new Promise((_0x191d80,_0xab9614)=>{deviceQueue(_0x28d4c9)['enqueu'+'e'](_0x3de7a1,async()=>{try{_0x191d80(await _0x2b74a0());}catch(_0x4b6638){_0xab9614(_0x4b6638);}});});}async function rawDeviceFetch(_0x58ae73,_0x55e26a={}){const _0x244159=_0x48ebcd,{baseUrl:_0x24af59,useLan:_0x2857b2,kind:_0x389827,timeoutMs:_0xeffbc9,deviceId:_0x160e86,..._0x19835d}=_0x55e26a,_0xf4619c=getRequestDevice(),_0x246018=_0x160e86||_0xf4619c?.['id']||config[_0x244159(0x1e3)+_0x244159(0x247)+'Id'];let _0x24613b=_0x24af59||'';!_0x24613b&&_0x2857b2&&(_0x24613b=config[_0x244159(0x16b)+_0x244159(0x233)+'l']);!_0x24613b&&_0xf4619c?.[_0x244159(0x146)+'l']&&(_0x24613b=_0xf4619c[_0x244159(0x146)+'l']);!_0x24613b&&_0x246018&&(_0x24613b=config['device'+'s']?.[_0x246018]?.[_0x244159(0x146)+'l']||'');if(!_0x24613b)try{_0x24613b=requireActiveDevice(config)[_0x244159(0x146)+'l'];}catch{_0x24613b=config[_0x244159(0x16b)+_0x244159(0x233)+'l'];}if(!_0x24613b){const _0xd58754=new Error(_0x244159(0x1fb));_0xd58754[_0x244159(0x25e)]=0x199;throw _0xd58754;}const _0x444f22=''+_0x24613b+_0x58ae73,_0x5a909b=await fetch(_0x444f22,{..._0x19835d,'signal':_0x55e26a[_0x244159(0x20a)]||AbortSignal[_0x244159(0x1e8)+'t'](_0xeffbc9||0x1f40),'headers':{'Content-Type':_0x244159(0x22e)+_0x244159(0x21a)+_0x244159(0x25d),..._0x55e26a['header'+'s']||{}}}),_0x4eec12=await _0x5a909b[_0x244159(0x135)]();let _0x452050={};try{_0x452050=_0x4eec12?JSON[_0x244159(0x1d1)](_0x4eec12):{};}catch{_0x452050={'raw':_0x4eec12};}if(!_0x5a909b['ok']){const _0x29f10c=new Error(_0x452050[_0x244159(0x170)+'e']||_0x244159(0x144)+'回\x20'+_0x5a909b['status']);_0x29f10c[_0x244159(0x1c3)]=_0x452050;throw _0x29f10c;}return _0x452050;}function deviceFetch(_0x247783,_0xaa3eda={}){const _0x51750f=_0x48ebcd,_0x874d55=getRequestDevice(),_0x1e92ef=_0xaa3eda['device'+'Id']||_0x874d55?.['id']||config[_0x51750f(0x1e3)+_0x51750f(0x247)+'Id'];return enqueueBoard(inferFetchKind(_0x247783,_0xaa3eda),()=>rawDeviceFetch(_0x247783,{..._0xaa3eda,'deviceId':_0x1e92ef}),_0x1e92ef);}function applyVoice(_0x55ee0f,_0x2baabe){const _0x3eb09c=_0x48ebcd,_0x25567d=_0x55ee0f||focusedRecord()?.['id']||config['active'+_0x3eb09c(0x247)+'Id'],_0x1be622=String(_0x2baabe||'')[_0x3eb09c(0x1b1)]();if(!_0x25567d||!_0x1be622)return;const _0x5b655c=runtime['of'](_0x25567d);if(config[_0x3eb09c(0x16b)+'s']?.[_0x25567d])config[_0x3eb09c(0x16b)+'s'][_0x25567d]['voice']=_0x1be622;_0x1be622!==_0x5b655c[_0x3eb09c(0x131)]&&(_0x5b655c[_0x3eb09c(0x131)]=_0x1be622,emit(_0x3eb09c(0x25e),statusPayload()));}function emitChatLines(_0x2db09e,_0x847db5){const _0x34fed8=_0x48ebcd;for(const _0x1b3594 of _0x2db09e){emit(_0x34fed8(0x174),{'type':_0x34fed8(0x23b)+_0x34fed8(0x1cb),'payload':{'role':_0x1b3594['role'],'text':_0x1b3594[_0x34fed8(0x135)],'state':_0x1b3594[_0x34fed8(0x199)],'deviceId':_0x847db5}}),_0x1b3594[_0x34fed8(0x126)]===_0x34fed8(0x168)+'ant'&&maybeAckYunxiangjiFromChat(_0x1b3594[_0x34fed8(0x135)]),(_0x1b3594[_0x34fed8(0x126)]===_0x34fed8(0x1bb)||_0x1b3594[_0x34fed8(0x126)]==='assist'+_0x34fed8(0x18b))&&maybeApplyYunxiangjiFromChat(_0x1b3594['text']);}}async function syncChatNow(_0x3ebcf5){const _0x215d1a=_0x48ebcd,_0x1dad2e=_0x3ebcf5||focusedRecord()?.['id']||config['active'+_0x215d1a(0x247)+'Id'],_0x4b9079=config[_0x215d1a(0x16b)+'s']?.[_0x1dad2e];if(!_0x4b9079?.[_0x215d1a(0x146)+'l'])return;const _0x2e5feb=runtime['of'](_0x1dad2e),_0x3020d6=_0x39e483=>deviceFetch(_0x215d1a(0x12b)+'sync?s'+_0x215d1a(0x148)+_0x39e483,{'timeoutMs':0x7d0,'kind':_0x215d1a(0x1ee),'deviceId':_0x1dad2e,'baseUrl':_0x4b9079[_0x215d1a(0x146)+'l']});let _0x43d101=await _0x3020d6(_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)]),_0x2ef7c4=applyChatDelta({'seq':_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)],'lines':[]},_0x43d101);_0x2ef7c4[_0x215d1a(0x1c0)+'d']&&(_0x43d101=await _0x3020d6(_0x2ef7c4[_0x215d1a(0x13f)]),_0x2ef7c4=applyChatDelta({'seq':_0x2ef7c4[_0x215d1a(0x13f)],'lines':[]},_0x43d101)),_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)]=_0x2ef7c4[_0x215d1a(0x13f)],ingestYunxiangjiFromDevicePayload(_0x43d101,_0x1dad2e),_0x43d101[_0x215d1a(0x131)]&&shouldApplyRemoteVoice({'remoteVoice':_0x43d101[_0x215d1a(0x131)],'localVoice':_0x2e5feb[_0x215d1a(0x131)],'wokeAt':_0x2e5feb[_0x215d1a(0x1b5)]})&&applyVoice(_0x1dad2e,_0x43d101[_0x215d1a(0x131)]),emitChatLines(_0x2ef7c4[_0x215d1a(0x16f)],_0x1dad2e);}function scheduleChatSync(_0x211293){const _0x1ca2a5=_0x48ebcd,_0x5837ff=_0x211293||focusedRecord()?.['id']||config[_0x1ca2a5(0x1e3)+_0x1ca2a5(0x247)+'Id'];if(!_0x5837ff)return;const _0x353d56=chatSyncTimers['get'](_0x5837ff);_0x353d56&&(clearTimeout(_0x353d56),chatSyncTimers['delete'](_0x5837ff));const _0x1f3b6e=chatSyncIntervalMs({'voice':runtime['of'](_0x5837ff)[_0x1ca2a5(0x131)]});if(!_0x1f3b6e)return;chatSyncTimers[_0x1ca2a5(0x17a)](_0x5837ff,setTimeout(()=>{const _0x4a0667=_0x1ca2a5;syncChatNow(_0x5837ff)[_0x4a0667(0x268)](()=>{})[_0x4a0667(0x1a7)+'y'](()=>scheduleChatSync(_0x5837ff));},_0x1f3b6e));}function _0x4ec2(){const _0x5b5c4=['DMvUDc1Z','BMfTzq','yxnZAxn0','5PEG5Rov5BU656Ul6k+T6z+Z','5PYQ5OM+5yIW5yMn56UV6Ag1','zgv2AwnL','y29TBwfU','q29UDgvU','57Y65Bcr6kAb6k+v5y+r55Qe','ywrKzwq','BwvZC2fN','ihn0yxr1','D3jPDgvg','y29UBMvJ','Bxf0Da','zxjYB3i','zgvY','AxnbCNjH','DxnL','5OMR5O+p5Bga5z+F572r5AsX','C2v0','Bc9JB250','5lQr5y+W5O6N5yI25AsX6lsL','yw5NAMKV','CMvZDgfY','Aw5Kl2XH','B2jQzwn0','rMXPz2H0','B2zM','CNvUDgLT','l2fWAs9J','yxjU','y2HHDf9Z','BgLZDgvU','l2DPBwjH','C2vSzwn0','Bwv0Ag9K','yw50','zw91Da','A2LUza','l3L1BNHP','B25SAw5L','6k+35AgR5yAzie1p','Ahr0CdOV','C2f5','5lIa5lU95Qgm6z2I5PYn5yQH','DMvUDhm','6l295BYa5y+r55wm6z2I77YA','DhLWzq','yM9KEq','lJaUmtO','C3rHDgu','BwfW','zs5QC29U','DhjPBMC','6Akr57Mb77Ym6k+356In5ycz','A2v5CW','z2v0','w21JCf0G','DhjLyw0','Ag9ZDg5H','y2uVzgvS','l2fWAq','DfnLCNzL','mteZmZG1DKjAqwzJ','zMLUywXS','BwfJ','AxnJB3zL','q2fJAguT','mJm4ntuYnJbSq21VBLm','vgfZA0nV','C3rHCNq','l2HLywX0','Agf0l3DH','yM9HCMq','DhjPBq','AM9PBG','6k6+5Ash5zYO5zcm5lIaia','A2LSBgvK','D29Rzuf0','Eu5HBwu','y2XPzw50','l2nVBMzP','tu9tuYdML6a','tu9tu19b','C3LZDgvT','Bw1HBMq','DMLJzs9K','BgvtEw5J','yw5K','CMv3B3vU','mw1I','tu9tuYdLV5K','zgv0ywLS','y29UzMLN','w3L1BNHP','zgvZA3rV','l2fJAW','w3nLCNzL','zhK9','uevox0js','zxnZywDL','ie1pu1pJGii','5OIw5zcn56EW5lIn5zci5Rov','l2LYl2nV','zxHPC3rZ','otjKwfHiAKe','CgfYC2u','CgXHDgzV','BMvK','D2fRzu9U','Ag9TzwrP','ufvu','rvjtsu9o','C3rHCNrZ','igfUBM91','DMLJzq','D2fRzuLU','y21K','zgvSzxrL','zxzLBNq6','tLvtrq','ruferfjj','yxnZAwDU','C3rVCa','ywn0AxzL','CMvHDgvZ','5y2G55sO56UV5y+J55Qe5lIk','BM93','5Rs75lIT77Yj77Ym5PQc5PE2','DgLTzw91','y2fTzxjH','ywn0AxzH','u2vYDMvY','57Y65Bcr5Asw6k6+5OIw5yQO','5zYO6l+E5O6L6k+T6z+Z5PYn','y2HHDa','ios7JEIIQ+wfTUs7LUEOIW','mtjgs3P2yvO','A2vLCefS','CI9KzxzP','Chv0','5RkH6io955M76k6W6l+z5y+W','y2HHDen1','mJu5nta2mwXLrhfvDW','v2L0Aa','AhrTBa','Cg9YDa','y3vZDg9T','6k+35ywi6ycj5OUP6k6+5Ash','6z2I77Ym6k+35ywi5OMN6kgm','Ew5J','56UV5y+Jia','zxzPy2uV','6k+356gU6k6K55s16isr5zkm','ue9tva','otKWmJu2sxvLsKzN','6k+35ywi6l+E5O6L6k6+5Ash','u3LUyW','BgfZDeHV','Ew8TBw9Z','Bw1HBMqV','C1rPBwvV','q29UBMvJ','C2LNBMfS','yNvZEq','5zsK6yAs5Pon5l2C6l+h5lQo','CMvZzxrd','l2fWAs9P','CI9PBxbV','yw5UB3vU','B3bLBG','C2v0sgvH','ntK0nen5u2TfAW','CI9SzwfY','w21PAg9T','u1mG5zYW5z2a','zgLYBMfT','CMvXDwvZ','Aw5N','yxrPB24V','Cgf0Aa','l2fWAs9L','B25Jzq','ywn0Aw9U','BMnLigzH','ExvUEgLH','Ev9Uyw1L','iowpIUwqJUE7REERR+wpOW','ue9sva','BM8Ty2fJ','Cg9ZDa','CY1HAq','Cgf5Bg9H','zeLK','zMLSDgvY','ChjVzhvJ','lM1VC3mT','D2fRzq','EgrNlw9W','yxbWBgLJ','tu9tuYdMRAm','DgvZDa','zgLZDa','CI90zxn0','qMfZzvvY','tK9erv9f','B3v0yM94','DMLJzxm','l2fWAs9O','ywrK','l2LYl3rL','5lIk5lIa5QYH5zsK6yAs6l+y','y2HHDc5T','zgLZCgXH','t1Dtrvi','y29Kzq','CMvWBgfJ','BgfZDfnL','l2LYl3jL','5O6L5y+J5zcm5lIa56UV5y+J','AgvHBhrO','lZeYnY4W','AhCUC3rH','D3jPDgu','rgv2AwnL','Dw5Yzwy','CL0G5PYQ6io95OYc','zwXLDgu','zxrL','sevbra','BMDQAv9V','5PEG5Rov5yAz5ywLihi','mJaXndzeChbLu2W','DgLUzW','CM9S','u0Lhsu5u','57Y65Bcr6kAb5yIG6zMK55Qe','C3bLzwq','AwXLu3LU','BMDQAv9J','zMX1C2Hi','CL0G5BEY57Ut5P2F','55s16isr5zkmie1p','ChjVBxb0','ueLFue9s','CI9JB21T','ANnVBG','C3rHDhvZ','CL0G','AwHVBwu','l2fWAs9I','zY9KzxzP','l2nOyxq','D2LUmZi','5PEG5Rov6iEQ5yQO5OMt5BYa','DgLVBG','y2vZ','y2f0y2G','l2LYl2v4','AxjFzgf0','DgjVEa','tu9tu19w','C3rUyw1L','77Ym5Ps55yMn56UV5lUJ56cb','77Ym57UN57UT5l2/55sOia','Aw5KzxGU','Dgv4Dc9L','AgvHzgvY','AxzLvgLT','5lYA54oT5PU05PAW44cc','D2fYBG','BgLNAhq','57QI5Asw56cb5Qc85BYp5lIn','CM9Szq','l2LYl2rL','AwrSzq','tu9tu19p','ywnRzwq','l2nOyxqV','mZaZDMjWtvzd','BxbSzxrL','AwqG5lIn5zci5Rov','DY9ZDgf0','Dc1uExbL','DM9Py2u','AgfZ','BgvUz3rO','5Asn77Ym6k+356In5ycz','Dgv4Da','tu9tuYdNPRS','l2H3','ifDPluzP','zw52','C3rYAw5N','C3rDigjV','zf9Pza','DxrIB3G','C2vUzezP','C2vX','5lIn5lIk44cc6k+356gU6k6K','Agf0','r0vu','y2XVC2u','tu9tuYdOV5q','55s15zMO57g75z6l5lIn5zci','yMfZzvvY','Awz5','Aw5Jzt0','mJaWn0TduLriDa','BwTKAxjt','zM9SBg93','5BQp5y2G55sO77Ym5B2t5yMn','Bg9N','CgLK','zxHPDa','Dw50Aw1L','5Rwp6kEi5zMO77YA','56km77Yi5y2h57QNl+A/Ga','x2LK','CL0G6Ag16z2I5lIo','mteYotuXntbVrfrUy3y','l2fWAs9K','CMvHzhK','5yQH77Ym6k+356In5zco5yAn','CNnVCG','cMrHDge6','DxrMoa','55s15zMO5OIw5OYj6zsUia','v2KTrMNJGii','zwfKzxjZ','5zYO562j5B6f6k6+5Ash5zUE','l2LYl2LT','y3jLyxrL','DgHLBG','DgfYDcbT','CWPKyxrH','zv0GCMvZ'];_0x4ec2=function(){return _0x5b5c4;};return _0x4ec2();}async function probeOne(_0x5a3e87,_0x40fd2c=Date[_0x48ebcd(0x1e6)]()){const _0x18e250=_0x48ebcd,_0x5e6ebd=config[_0x18e250(0x16b)+'s']?.[_0x5a3e87];if(!_0x5e6ebd)return;const _0x4eb8b4=await enqueueBoard(_0x18e250(0x243),()=>probeDevice(_0x5e6ebd,{'now':_0x40fd2c,'timeoutMs':0x7d0}),_0x5a3e87),_0x1a4fc4=_0x5e6ebd[_0x18e250(0x240)+'en'];Object[_0x18e250(0x1e1)](_0x5e6ebd,_0x4eb8b4[_0x18e250(0x16b)]);_0x5a3e87===config[_0x18e250(0x1e3)+_0x18e250(0x247)+'Id']&&(_0x4eb8b4[_0x18e250(0x18f)]&&_0x4eb8b4['device']['baseUr'+'l']&&(config[_0x18e250(0x16b)+_0x18e250(0x233)+'l']=_0x4eb8b4[_0x18e250(0x16b)][_0x18e250(0x146)+'l']));const _0x2c6cca=runtime['of'](_0x5a3e87);_0x4eb8b4['health']?.[_0x18e250(0x131)]&&shouldApplyRemoteVoice({'remoteVoice':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)],'localVoice':_0x2c6cca[_0x18e250(0x131)],'wokeAt':_0x2c6cca[_0x18e250(0x1b5)]})&&applyVoice(_0x5a3e87,_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)]),_0x4eb8b4[_0x18e250(0x243)]&&shouldFetchChatSync({'voice':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)]||_0x2c6cca[_0x18e250(0x131)],'remoteSeq':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x186)+'eq'],'localSeq':_0x2c6cca[_0x18e250(0x1f5)+_0x18e250(0x159)]})&&(syncChatNow(_0x5a3e87)[_0x18e250(0x268)](()=>{}),scheduleChatSync(_0x5a3e87)),Number(_0x4eb8b4[_0x18e250(0x243)]?.[_0x18e250(0x220)+_0x18e250(0x24d)+_0x18e250(0x13d)]||_0x4eb8b4[_0x18e250(0x16b)]?.[_0x18e250(0x220)+'ngjiOu'+_0x18e250(0x26b)]||0x0)>0x0&&pullYunxiangjiOutbox(_0x5a3e87)[_0x18e250(0x268)](()=>{}),_0x4eb8b4[_0x18e250(0x16b)]['lastSe'+'en']!==_0x1a4fc4&&(emit(_0x18e250(0x25e),statusPayload()),_0x4eb8b4[_0x18e250(0x18f)]&&scheduleYunxiangjiInboxPush(_0x5a3e87));}function startPresenceWatch(){if(presenceTimer)return;const _0x3b64f4=()=>{const _0x46766e=_0x53b0,_0x2942ba=Object[_0x46766e(0x19e)](config['device'+'s']||{});for(const _0x3588fc of _0x2942ba['slice'](0x0,0x4)){probeOne(_0x3588fc)[_0x46766e(0x268)](()=>{});}};_0x3b64f4(),presenceTimer=setInterval(_0x3b64f4,0x7d0);}function ingestYunxiangjiFromDevicePayload(_0x101ca3,_0x2d76a0){const _0x26a14e=_0x48ebcd,_0x2cc2fc=_0x101ca3?.[_0x26a14e(0x220)+_0x26a14e(0x256)+_0x26a14e(0x1e4)]||_0x101ca3?.['items'];if(!Array[_0x26a14e(0x177)+'y'](_0x2cc2fc)||!_0x2cc2fc[_0x26a14e(0x133)])return;const _0x413cbb=ingestDeviceYunxiangjiCreates(_0x2cc2fc),_0x5225a5=_0x413cbb[_0x26a14e(0x12a)]||_0x2cc2fc[_0x26a14e(0x19a)](_0x1dd0ef=>_0x1dd0ef?.['id'])[_0x26a14e(0x229)](Boolean);if(!_0x5225a5[_0x26a14e(0x133)])return;deviceFetch('/yunxi'+_0x26a14e(0x17d)+_0x26a14e(0x235)+_0x26a14e(0x1c7),{'method':_0x26a14e(0x201),'body':JSON[_0x26a14e(0x13a)+_0x26a14e(0x147)]({'ids':_0x5225a5}),'kind':_0x26a14e(0x1ee),'timeoutMs':0x7d0,'deviceId':_0x2d76a0})['catch'](()=>{}),scheduleYunxiangjiInboxPush(_0x2d76a0);}async function pullYunxiangjiOutbox(_0x7e2267){const _0x3168e8=_0x48ebcd,_0xe7dfe7=_0x7e2267||focusedRecord()?.['id']||config['active'+_0x3168e8(0x247)+'Id'],_0x263d61=await deviceFetch('/yunxi'+'angji/'+_0x3168e8(0x235),{'timeoutMs':0x7d0,'kind':_0x3168e8(0x1ee),'deviceId':_0xe7dfe7});ingestYunxiangjiFromDevicePayload(_0x263d61,_0xe7dfe7);}const inboxPushTimers=new Map();function scheduleYunxiangjiInboxPush(_0x3d681e){const _0x31b35d=_0x48ebcd,_0x138cd8=_0x3d681e||focusedRecord()?.['id']||config[_0x31b35d(0x1e3)+_0x31b35d(0x247)+'Id'];if(!_0x138cd8)return;const _0x261434=inboxPushTimers[_0x31b35d(0x19f)](_0x138cd8);if(_0x261434)clearTimeout(_0x261434);inboxPushTimers['set'](_0x138cd8,setTimeout(()=>{inboxPushTimers['delete'](_0x138cd8),pushYunxiangjiInbox(_0x138cd8)['catch'](()=>{});},0x12c));}async function pushYunxiangjiInbox(_0x39bce6){const _0x2b4c91=_0x48ebcd,_0x4a3804=_0x39bce6||focusedRecord()?.['id']||config[_0x2b4c91(0x1e3)+_0x2b4c91(0x247)+'Id'];if(!_0x4a3804)return;await deviceFetch(_0x2b4c91(0x18e)+_0x2b4c91(0x17d)+'inbox',{'method':_0x2b4c91(0x201),'body':JSON['string'+'ify'](exportYunxiangjiInbox()),'kind':_0x2b4c91(0x1ee),'timeoutMs':0x7d0,'deviceId':_0x4a3804});}function requireDeviceOnline(){const _0x547980=_0x48ebcd;if(!currentMossOnline())throw new Error(_0x547980(0x136)+'线');}async function publishWakeAndText(_0x5a84fb,_0x2ebf23){const _0x268d88=_0x48ebcd;requireDeviceOnline();const _0xa0bc59=focusedRecord()?.['id']||config[_0x268d88(0x1e3)+_0x268d88(0x247)+'Id'],_0x173851={'text':String(_0x5a84fb||'')};if(_0x2ebf23)_0x173851[_0x268d88(0x210)+'ce']=String(_0x2ebf23);await deviceFetch(_0x268d88(0x12b)+_0x268d88(0x192),{'method':'POST','body':JSON[_0x268d88(0x13a)+'ify'](_0x173851),'kind':_0x268d88(0x1ee),'timeoutMs':0xfa0,'deviceId':_0xa0bc59}),syncChatNow(_0xa0bc59)[_0x268d88(0x268)](()=>{}),scheduleChatSync(_0xa0bc59);}const app=_0x5c053c();app['use'](_0x4d0b15()),app[_0x48ebcd(0x178)](_0x5c053c[_0x48ebcd(0x25d)]({'limit':_0x48ebcd(0x1c1)})),app[_0x48ebcd(0x178)](attachRequestDevice(()=>config)),registerMihomeRoutes(app,{'configDir':CONFIG_DIR,'onMcpAccessChanged':()=>{const _0x3cc9fc=_0x48ebcd;try{bridgeManager[_0x3cc9fc(0x17e)+_0x3cc9fc(0x1a5)+'r']('moss-m'+_0x3cc9fc(0x260));}catch(_0x2f16dc){console[_0x3cc9fc(0x275)](_0x3cc9fc(0x215)+_0x3cc9fc(0x165)+_0x3cc9fc(0x163)+'cp',_0x2f16dc[_0x3cc9fc(0x170)+'e']);}}}),registerDeviceRoutes(app,{'getConfig':()=>config,'saveConfig':()=>saveConfig(config),'getExtras':()=>{const _0x359b4f=_0x48ebcd,_0x1aa431=focusedRecord(),_0xb2c54a=_0x1aa431?.['id']||config['active'+_0x359b4f(0x247)+'Id'];return{'mqttStatus':_0x359b4f(0x157),'mossOnline':currentMossOnline(),'capabilities':currentCaps(),'failCount':0x0,'lastError':'','mossChatState':_0xb2c54a?runtime['of'](_0xb2c54a)[_0x359b4f(0x131)]:_0x359b4f(0x128),'focusedDeviceId':_0xb2c54a||'','voices':voicesFromRuntime(config,runtime)};},'onActivate':_0x475469=>{const _0x3fa782=_0x48ebcd;runtime[_0x3fa782(0x20d)+_0x3fa782(0x141)](_0x475469['device']['id']),config[_0x3fa782(0x16b)+_0x3fa782(0x233)+'l']=_0x475469[_0x3fa782(0x16b)][_0x3fa782(0x146)+'l']||config['device'+'BaseUr'+'l']||'',applyDeviceHealthTo(config,_0x475469[_0x3fa782(0x16b)]),emit(_0x3fa782(0x25e),statusPayload()),probeOne(_0x475469[_0x3fa782(0x16b)]['id'])[_0x3fa782(0x268)](()=>{});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x21c)+_0x48ebcd(0x194),(_0x22652e,_0x416cac)=>{const _0x225c29=_0x48ebcd;_0x416cac[_0x225c29(0x212)+'der'](_0x225c29(0x16d)+_0x225c29(0x130),_0x225c29(0x271)+_0x225c29(0x166)+_0x225c29(0x1a1)),_0x416cac[_0x225c29(0x212)+'der'](_0x225c29(0x1aa)+'Contro'+'l',_0x225c29(0x224)+'he'),_0x416cac[_0x225c29(0x212)+_0x225c29(0x176)](_0x225c29(0x209)+_0x225c29(0x266),'keep-a'+'live'),_0x416cac[_0x225c29(0x257)+_0x225c29(0x15e)](),sseClients[_0x225c29(0x238)](_0x416cac),_0x416cac[_0x225c29(0x246)](_0x225c29(0x1de)+_0x225c29(0x171)+_0x225c29(0x164)+':\x20'+JSON[_0x225c29(0x13a)+_0x225c29(0x147)](statusPayload())+'\x0a\x0a'),_0x22652e['on'](_0x225c29(0x143),()=>sseClients[_0x225c29(0x1dd)](_0x416cac));}),app[_0x48ebcd(0x225)](_0x48ebcd(0x156)+_0x48ebcd(0x1a9)+'r',async(_0x6ab15,_0x3550be)=>{const _0x568a62=_0x48ebcd;try{const _0x1191cd=await discoverMossDevices({'lastHostname':config['lastHo'+_0x568a62(0x26d)],'lastBaseUrl':config['device'+_0x568a62(0x233)+'l']});_0x3550be['json']({'devices':_0x1191cd});}catch(_0x4b1304){_0x3550be[_0x568a62(0x25e)](0x1f4)[_0x568a62(0x25d)]({'message':_0x4b1304[_0x568a62(0x170)+'e']||_0x568a62(0x179)+'败'});}}),app['post'](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+_0x48ebcd(0x189),async(_0x1018fd,_0x50a71d)=>{const _0x410629=_0x48ebcd,_0x5ac28f=String(_0x1018fd[_0x410629(0x197)]?.['baseUr'+'l']||'')[_0x410629(0x23f)+'e'](/\/$/,'');if(!_0x5ac28f)return _0x50a71d[_0x410629(0x25e)](0x190)['json']({'message':_0x410629(0x190)+_0x410629(0x216)});const _0x3507c8=config[_0x410629(0x16b)+_0x410629(0x233)+'l'];config[_0x410629(0x16b)+'BaseUr'+'l']=_0x5ac28f;try{const _0x2f747d=await deviceFetch(_0x410629(0x1ae)+'h',{'baseUrl':_0x5ac28f});_0x2f747d['hostna'+'me']&&(config[_0x410629(0x205)+_0x410629(0x26d)]=_0x2f747d[_0x410629(0x1a2)+'me']),applyDeviceHealthTo(config,_0x2f747d),saveConfig(config),_0x50a71d[_0x410629(0x25d)]({'ok':!![],'health':_0x2f747d});}catch(_0x226844){config[_0x410629(0x16b)+_0x410629(0x233)+'l']=_0x3507c8,_0x50a71d[_0x410629(0x25e)](0x190)['json']({'message':'找到地址但连'+_0x410629(0x140)+_0x410629(0x259)+'SS\x20在同一'+_0x410629(0x138)+',并检查\x20I'+'P。','detail':_0x226844[_0x410629(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+_0x48ebcd(0x243),async(_0x4a3f4b,_0x4de797)=>{const _0x48ed8c=_0x48ebcd;try{const _0xac52f8=await deviceFetch(_0x48ed8c(0x1ae)+'h');applyDeviceHealth(_0xac52f8,{'id':focusedRecord()?.['id']||config[_0x48ed8c(0x1e3)+_0x48ed8c(0x247)+'Id'],'clientId':focusedRecord()?.['client'+'Id']}),saveConfig(config),_0x4de797[_0x48ed8c(0x25d)](_0xac52f8);}catch(_0x3d6406){_0x4de797[_0x48ed8c(0x25e)](0x190)['json']({'message':_0x3d6406[_0x48ed8c(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x261)+_0x48ebcd(0x17f)+'n',async(_0x34c116,_0x4b68f2)=>{const _0x1e2da7=_0x48ebcd,_0x3051f3=String(_0x34c116[_0x1e2da7(0x197)]?.[_0x1e2da7(0x146)+'l']||config['device'+_0x1e2da7(0x233)+'l']||'')[_0x1e2da7(0x23f)+'e'](/\/$/,''),_0x1fe744=String(_0x34c116[_0x1e2da7(0x197)]?.['displa'+_0x1e2da7(0x1b6)]||_0x34c116[_0x1e2da7(0x197)]?.['displa'+_0x1e2da7(0x221)]||'')[_0x1e2da7(0x1b1)]();if(!_0x3051f3)return _0x4b68f2[_0x1e2da7(0x25e)](0x190)[_0x1e2da7(0x25d)]({'message':_0x1e2da7(0x203)});try{const _0x912f23=await deviceFetch(_0x1e2da7(0x1ae)+'h',{'baseUrl':_0x3051f3,'timeoutMs':0xbb8,'kind':_0x1e2da7(0x243)}),_0x3d433c=resolveUpsertId(config,{'mac':_0x912f23[_0x1e2da7(0x1a8)],'clientId':_0x912f23[_0x1e2da7(0x1b7)+_0x1e2da7(0x153)],'id':config[_0x1e2da7(0x1e3)+'Device'+'Id']}),_0x1e86a0=upsertDevice(config,{'id':_0x3d433c,'mac':normalizeMac(_0x912f23[_0x1e2da7(0x1a8)])||undefined,'clientId':_0x912f23['client'+_0x1e2da7(0x153)],'displayName':_0x1fe744||(_0x912f23[_0x1e2da7(0x23c)+_0x1e2da7(0x221)]&&!isBoardLabel(_0x912f23[_0x1e2da7(0x23c)+'y_name'])?_0x912f23[_0x1e2da7(0x23c)+_0x1e2da7(0x221)]:undefined),'board':_0x912f23['board']||_0x912f23[_0x1e2da7(0x167)],'product':_0x912f23[_0x1e2da7(0x22a)+'t'],'hostname':_0x912f23[_0x1e2da7(0x1a2)+'me'],'baseUrl':_0x3051f3,'ip':_0x912f23['ip'],'lastSeen':Date[_0x1e2da7(0x1e6)]()});config[_0x1e2da7(0x16b)+_0x1e2da7(0x233)+'l']=_0x3051f3;if(_0x912f23[_0x1e2da7(0x1a2)+'me'])config[_0x1e2da7(0x205)+_0x1e2da7(0x26d)]=_0x912f23[_0x1e2da7(0x1a2)+'me'];config['bound']=!![],config[_0x1e2da7(0x1e3)+_0x1e2da7(0x247)+'Id']=_0x1e86a0['id'],saveConfig(config),emit('status',statusPayload()),_0x4b68f2['json']({'ok':!![],'mossOnline':!![],'device':_0x1e86a0});}catch(_0xa0dd88){_0x4b68f2[_0x1e2da7(0x25e)](0x190)[_0x1e2da7(0x25d)]({'message':_0x1e2da7(0x1f4)+_0x1e2da7(0x1cc)+_0x1e2da7(0x200)+_0x1e2da7(0x1b3)+_0x1e2da7(0x15d),'detail':_0xa0dd88[_0x1e2da7(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x184)+_0x48ebcd(0x1af)+'ke',async(_0x181e93,_0x4077f7)=>{const _0x2c2e64=_0x48ebcd,_0x4ddfb1=focusedRecord()?.['id']||config['active'+_0x2c2e64(0x247)+'Id'],_0x22c968=runtime['of'](_0x4ddfb1);try{requireDeviceOnline();if(_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x173)+_0x2c2e64(0x250)||_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x1ea)+_0x2c2e64(0x250))throw new Error(_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x1ea)+_0x2c2e64(0x250)?'MOSS\x20忙'+_0x2c2e64(0x152)+_0x2c2e64(0x1e7)+_0x2c2e64(0x169)+'链路':_0x2c2e64(0x22f)+_0x2c2e64(0x1ed)+_0x2c2e64(0x158)+'试');if(_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)])throw new Error(_0x2c2e64(0x23a)+_0x2c2e64(0x15f)+_0x2c2e64(0x134));if(Date[_0x2c2e64(0x1e6)]()-_0x22c968[_0x2c2e64(0x1b5)]<0x9c4)throw new Error(_0x2c2e64(0x20c)+_0x2c2e64(0x19d)+'再试');_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)]=!![],_0x22c968[_0x2c2e64(0x1b5)]=Date[_0x2c2e64(0x1e6)]();const _0x5cd609=await deviceFetch('/chat/'+_0x2c2e64(0x22c),{'method':_0x2c2e64(0x201),'body':'{}','kind':_0x2c2e64(0x1ee),'timeoutMs':0xfa0}),_0xee0ca3=voiceFromWakeAck(_0x5cd609);if(_0xee0ca3[_0x2c2e64(0x175)]){if(_0xee0ca3['error']===_0x2c2e64(0x173)+_0x2c2e64(0x250))throw new Error(_0x2c2e64(0x22f)+_0x2c2e64(0x1ed)+_0x2c2e64(0x158)+'试');if(_0xee0ca3['error']===_0x2c2e64(0x20b))throw new Error(_0x2c2e64(0x1c2)+_0x2c2e64(0x152)+'活中),暂时'+'无法建立语音'+'链路');throw new Error(_0xee0ca3[_0x2c2e64(0x175)]||_0x2c2e64(0x1b9)+'法唤醒');}applyVoice(_0x4ddfb1,_0xee0ca3[_0x2c2e64(0x131)]),syncChatNow(_0x4ddfb1)['catch'](()=>{}),scheduleChatSync(_0x4ddfb1),_0x4077f7[_0x2c2e64(0x25d)]({'ok':!![],'payload':_0x5cd609});}catch(_0x48d859){_0x4077f7['status'](0x190)['json']({'message':_0x48d859[_0x2c2e64(0x170)+'e']});}finally{_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)]=![];}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x237)+'w',async(_0x37576d,_0x1429b3)=>{const _0x1fc169=_0x48ebcd;try{requireDeviceOnline();const _0x5c9835=String(_0x37576d['body']?.[_0x1fc169(0x16b)]||'')[_0x1fc169(0x1b1)](),_0x20d33a=String(_0x37576d['body']?.[_0x1fc169(0x21e)]||'')[_0x1fc169(0x1b1)]();if(!_0x5c9835||!_0x20d33a)throw new Error(_0x1fc169(0x1ec)+'作');const _0xeba976={'device':_0x5c9835,'action':_0x20d33a};if(_0x37576d[_0x1fc169(0x197)]?.[_0x1fc169(0x254)]!=null)_0xeba976[_0x1fc169(0x254)]=Number(_0x37576d[_0x1fc169(0x197)][_0x1fc169(0x254)]);const _0x4c7cb7=await deviceFetch(_0x1fc169(0x137),{'method':'POST','body':JSON[_0x1fc169(0x13a)+_0x1fc169(0x147)](_0xeba976),'timeoutMs':0xfa0});emit(_0x1fc169(0x174),{'type':_0x1fc169(0x245)+'te','payload':_0x4c7cb7,'deviceId':focusedRecord()?.['id']||config[_0x1fc169(0x1e3)+_0x1fc169(0x247)+'Id']}),_0x1429b3[_0x1fc169(0x25d)]({'ok':!![],..._0x4c7cb7});}catch(_0x5ddeee){_0x1429b3[_0x1fc169(0x25e)](0x190)[_0x1fc169(0x25d)]({'message':_0x5ddeee[_0x1fc169(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x237)+_0x48ebcd(0x12f)+'us',async(_0x52fce1,_0x372118)=>{const _0x2eb412=_0x48ebcd;try{requireDeviceOnline();const _0x4a9e52=await deviceFetch(_0x2eb412(0x137),{'timeoutMs':0xfa0});emit(_0x2eb412(0x174),{'type':_0x2eb412(0x245)+'te','payload':_0x4a9e52,'deviceId':focusedRecord()?.['id']||config[_0x2eb412(0x1e3)+_0x2eb412(0x247)+'Id']}),_0x372118[_0x2eb412(0x25d)]({'ok':!![],..._0x4a9e52});}catch(_0x2ecc87){_0x372118[_0x2eb412(0x25e)](0x190)[_0x2eb412(0x25d)]({'message':_0x2ecc87[_0x2eb412(0x170)+'e']});}});async function fetchDeviceConfig(){const _0x3d011a=_0x48ebcd,_0x2ee1d1=await deviceFetch(_0x3d011a(0x1b8)+'g/devi'+'ce');return{'ok':!![],..._0x2ee1d1};}function _0x53b0(_0x9bd63e,_0x1945d2){_0x9bd63e=_0x9bd63e-0x125;const _0x4ec2b1=_0x4ec2();let _0x53b041=_0x4ec2b1[_0x9bd63e];if(_0x53b0['MOeGCo']===undefined){var _0x12b9c5=function(_0x3a2eb3){const _0x4c5a3e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24e640='',_0x8ea7c3='';for(let _0x30377c=0x0,_0x5907f2,_0x5c053c,_0x4d0b15=0x0;_0x5c053c=_0x3a2eb3['charAt'](_0x4d0b15++);~_0x5c053c&&(_0x5907f2=_0x30377c%0x4?_0x5907f2*0x40+_0x5c053c:_0x5c053c,_0x30377c++%0x4)?_0x24e640+=String['fromCharCode'](0xff&_0x5907f2>>(-0x2*_0x30377c&0x6)):0x0){_0x5c053c=_0x4c5a3e['indexOf'](_0x5c053c);}for(let _0x551684=0x0,_0x262ba0=_0x24e640['length'];_0x551684<_0x262ba0;_0x551684++){_0x8ea7c3+='%'+('00'+_0x24e640['charCodeAt'](_0x551684)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8ea7c3);};_0x53b0['VMNJrZ']=_0x12b9c5,_0x53b0['nNMuIL']={},_0x53b0['MOeGCo']=!![];}const _0x40ac23=_0x4ec2b1[0x0],_0x2aafb7=_0x9bd63e+_0x40ac23,_0x4e721a=_0x53b0['nNMuIL'][_0x2aafb7];return!_0x4e721a?(_0x53b041=_0x53b0['VMNJrZ'](_0x53b041),_0x53b0['nNMuIL'][_0x2aafb7]=_0x53b041):_0x53b041=_0x4e721a,_0x53b041;}async function saveDeviceConfig(_0x2bad02){const _0x46c31b=_0x48ebcd;return deviceFetch(_0x46c31b(0x1b8)+_0x46c31b(0x262)+'ce',{'method':_0x46c31b(0x1d6),'body':JSON[_0x46c31b(0x13a)+'ify'](_0x2bad02)});}app['get']('/api/d'+_0x48ebcd(0x1ff)+_0x48ebcd(0x1c4),withActiveDevice(()=>config),async(_0x3b09ea,_0x1b025a)=>{const _0xe4d087=_0x48ebcd;try{_0x1b025a[_0xe4d087(0x25d)](await fetchDeviceConfig());}catch(_0x1469aa){_0x1b025a[_0xe4d087(0x25e)](0x190)[_0xe4d087(0x25d)]({'message':_0x1469aa[_0xe4d087(0x170)+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+'config',withActiveDevice(()=>config),async(_0x4dec8b,_0xf9f87e)=>{const _0x19060=_0x48ebcd;try{_0xf9f87e[_0x19060(0x25d)](await saveDeviceConfig(_0x4dec8b['body']||{}));}catch(_0x3e10c4){_0xf9f87e[_0x19060(0x25e)](0x190)['json']({'message':_0x3e10c4[_0x19060(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+_0x48ebcd(0x267),async(_0x5e5a5d,_0xb90229)=>{const _0x3096fa=_0x48ebcd;try{_0xb90229['json'](await deviceFetch(_0x3096fa(0x127)+_0x3096fa(0x236)));}catch(_0x1e1157){_0xb90229['status'](0x190)[_0x3096fa(0x25d)]({'message':_0x1e1157[_0x3096fa(0x170)+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+'ce',async(_0xc9c8a6,_0x52a8a9)=>{const _0x4cdbfa=_0x48ebcd;try{const _0x2b988d=requireDevicePut(_0xc9c8a6[_0x4cdbfa(0x197)]);_0x52a8a9['json'](await deviceFetch('/ir/de'+_0x4cdbfa(0x1da),{'method':_0x4cdbfa(0x1d6),'body':JSON['string'+_0x4cdbfa(0x147)](_0x2b988d)}));}catch(_0xa5408d){_0x52a8a9[_0x4cdbfa(0x25e)](0x190)['json']({'message':_0xa5408d['messag'+'e']});}}),app['post'](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+_0x48ebcd(0x1a3)+_0x48ebcd(0x24b),async(_0x4cf88f,_0x4efe98)=>{const _0x17f1ff=_0x48ebcd;try{const _0x3d0c4a=asObject(_0x4cf88f[_0x17f1ff(0x197)]);if(!validId(String(_0x3d0c4a['id']||'')))throw new Error(_0x17f1ff(0x253)+'电器');_0x4efe98[_0x17f1ff(0x25d)](await deviceFetch(_0x17f1ff(0x127)+_0x17f1ff(0x1bd)+_0x17f1ff(0x24a),{'method':_0x17f1ff(0x201),'body':JSON[_0x17f1ff(0x13a)+_0x17f1ff(0x147)]({'id':_0x3d0c4a['id']})}));}catch(_0x311e2b){_0x4efe98[_0x17f1ff(0x25e)](0x190)[_0x17f1ff(0x25d)]({'message':_0x311e2b['messag'+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x20e)+_0x48ebcd(0x25c)+_0x48ebcd(0x1bf),async(_0xcc5911,_0x1a78f0)=>{const _0x253538=_0x48ebcd;try{const _0x3d14b3=requireCommandPut(_0xcc5911[_0x253538(0x197)]);_0x1a78f0['json'](await deviceFetch(_0x253538(0x1ce)+_0x253538(0x1bc),{'method':_0x253538(0x1d6),'body':JSON[_0x253538(0x13a)+_0x253538(0x147)](_0x3d14b3)}));}catch(_0x4bc288){_0x1a78f0[_0x253538(0x25e)](0x190)[_0x253538(0x25d)]({'message':_0x4bc288[_0x253538(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x20e)+_0x48ebcd(0x25c)+'and/de'+'lete',async(_0x9db827,_0x5b8a3d)=>{const _0x4b5963=_0x48ebcd;try{const _0x3264ff=requireCommandDelete(_0x9db827[_0x4b5963(0x197)]);_0x5b8a3d[_0x4b5963(0x25d)](await deviceFetch(_0x4b5963(0x1ce)+_0x4b5963(0x207)+_0x4b5963(0x1dd),{'method':_0x4b5963(0x201),'body':JSON['string'+_0x4b5963(0x147)](_0x3264ff)}));}catch(_0x4745db){_0x5b8a3d[_0x4b5963(0x25e)](0x190)[_0x4b5963(0x25d)]({'message':_0x4745db[_0x4b5963(0x170)+'e']});}}),app['post']('/api/i'+_0x48ebcd(0x214)+'n',async(_0x5e7f5b,_0x5295d3)=>{const _0x3aeada=_0x48ebcd;try{_0x5295d3['json'](await deviceFetch('/ir/le'+_0x3aeada(0x185),{'method':_0x3aeada(0x201),'body':'{}'}));}catch(_0x4d5f1a){_0x5295d3[_0x3aeada(0x25e)](0x190)[_0x3aeada(0x25d)]({'message':_0x4d5f1a[_0x3aeada(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+_0x48ebcd(0x214)+_0x48ebcd(0x1d3),async(_0x42b2cd,_0x1400a2)=>{const _0x5c66d1=_0x48ebcd;try{const _0xf4ae30=Date['now']();while(Date['now']()-_0xf4ae30<0x3a98){const _0x4ad18e=await deviceFetch(_0x5c66d1(0x241)+'ad');if(_0x4ad18e[_0x5c66d1(0x26a)+'a'])return _0x1400a2[_0x5c66d1(0x25d)](_0x4ad18e);await new Promise(_0x4609be=>setTimeout(_0x4609be,0x320));}_0x1400a2[_0x5c66d1(0x25d)]({'ir_data':'','count':0x0});}catch(_0x51eaae){_0x1400a2[_0x5c66d1(0x25e)](0x190)[_0x5c66d1(0x25d)]({'message':_0x51eaae[_0x5c66d1(0x170)+'e']});}});function asObject(_0x528048){const _0x5729d5=_0x48ebcd;if(!_0x528048)return{};if(typeof _0x528048===_0x5729d5(0x13a))try{return JSON[_0x5729d5(0x1d1)](_0x528048);}catch{return{};}return typeof _0x528048===_0x5729d5(0x180)?_0x528048:{};}function irTestPayload(_0x9a235e){const _0x26b459=_0x48ebcd,_0x1d6201=asObject(_0x9a235e),_0x7bb04c=typeof _0x1d6201[_0x26b459(0x23e)]===_0x26b459(0x13a)?_0x1d6201[_0x26b459(0x23e)][_0x26b459(0x1b1)]():'',_0x3179c8=String(_0x1d6201[_0x26b459(0x16b)+_0x26b459(0x153)]||_0x1d6201[_0x26b459(0x16b)+'Id']||'')[_0x26b459(0x1b1)](),_0x2fd9db=String(_0x1d6201['id']||_0x1d6201[_0x26b459(0x16c)+_0x26b459(0x13c)]||_0x1d6201['comman'+_0x26b459(0x228)]||'')[_0x26b459(0x1b1)](),_0x119a49={};if(_0x7bb04c)_0x119a49[_0x26b459(0x23e)]=_0x7bb04c;if(_0x3179c8)_0x119a49[_0x26b459(0x16b)+_0x26b459(0x153)]=_0x3179c8;if(_0x2fd9db)_0x119a49['id']=_0x2fd9db;return _0x119a49;}function validId(_0x202dcc){const _0x2abe70=_0x48ebcd;return typeof _0x202dcc==='string'&&_0x202dcc[_0x2abe70(0x133)]>0x0&&_0x202dcc[_0x2abe70(0x133)]<=0x20&&/^[A-Za-z0-9_-]+$/[_0x2abe70(0x230)](_0x202dcc);}function validName(_0x2162f0){const _0x37371e=_0x48ebcd;return typeof _0x2162f0===_0x37371e(0x13a)&&_0x2162f0[_0x37371e(0x1b1)]()[_0x37371e(0x133)]>0x0&&_0x2162f0[_0x37371e(0x133)]<=0x40;}function validType(_0x1557de){const _0x3d02cc=_0x48ebcd;return[_0x3d02cc(0x276),'ac','tv','custom']['includ'+'es'](_0x1557de);}function validCode(_0x485b51){const _0x28f356=_0x48ebcd;if(!_0x485b51)return!![];if(typeof _0x485b51!==_0x28f356(0x13a)||_0x485b51[_0x28f356(0x133)]>0x1000)return![];const _0x4d4cb7=_0x485b51[_0x28f356(0x23f)+'e'](/^zf=/i,'')['replac'+'e'](/[\r\n]/g,'')[_0x28f356(0x1b1)]();if(_0x4d4cb7[_0x28f356(0x1d8)+'With']('xx'))return _0x4d4cb7[_0x28f356(0x133)]<=0x8;return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x28f356(0x230)](_0x4d4cb7);}function requireDevicePut(_0x108f47){const _0x2a3688=_0x48ebcd,_0x5991f4=asObject(_0x108f47),_0x11909a=String(_0x5991f4['id']||'')[_0x2a3688(0x1b1)](),_0x27f00e=String(_0x5991f4['name']||'')[_0x2a3688(0x1b1)](),_0x445cab=String(_0x5991f4[_0x2a3688(0x196)]||_0x2a3688(0x1fa))[_0x2a3688(0x1b1)]()||_0x2a3688(0x1fa);if(!validId(_0x11909a)||!validName(_0x27f00e))throw new Error('电器\x20id\x20'+_0x2a3688(0x1cd));if(!validType(_0x445cab))throw new Error(_0x2a3688(0x145)+'法');return{'id':_0x11909a,'name':_0x27f00e,'type':_0x445cab};}function requireCommandPut(_0x2474b3){const _0x338757=_0x48ebcd,_0x1e45ad=asObject(_0x2474b3),_0x12002e=String(_0x1e45ad[_0x338757(0x16b)+_0x338757(0x153)]||'')[_0x338757(0x1b1)](),_0x27bd7e=String(_0x1e45ad['id']||'')['trim'](),_0x37c74b=_0x1e45ad[_0x338757(0x167)]==null?'':String(_0x1e45ad['name'])[_0x338757(0x1b1)](),_0x3a2854=_0x1e45ad[_0x338757(0x23e)]==null?'':String(_0x1e45ad[_0x338757(0x23e)]);if(!validId(_0x12002e)||!validId(_0x27bd7e))throw new Error(_0x338757(0x15c)+_0x338757(0x12e));if(_0x37c74b&&!validName(_0x37c74b))throw new Error('按键名称不合'+'法');if(!validCode(_0x3a2854))throw new Error(_0x338757(0x125)+'合法');return{'device_id':_0x12002e,'id':_0x27bd7e,'name':_0x37c74b,'code':_0x3a2854};}function requireCommandDelete(_0x206b9a){const _0x209c29=_0x48ebcd,_0xce4fb=asObject(_0x206b9a),_0x924cb1=String(_0xce4fb[_0x209c29(0x16b)+_0x209c29(0x153)]||'')['trim'](),_0x1f2653=String(_0xce4fb['id']||'')[_0x209c29(0x1b1)]();if(!validId(_0x924cb1)||!validId(_0x1f2653))throw new Error(_0x209c29(0x253)+'电器或按键');return{'device_id':_0x924cb1,'id':_0x1f2653};}app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+'r/expo'+'rt',async(_0x456ffd,_0x2f9639)=>{const _0x20e946=_0x48ebcd;try{const _0x5ae3cd=await deviceFetch(_0x20e946(0x269)+'port');_0x2f9639[_0x20e946(0x25d)]({'version':0x1,'exportedAt':new Date()['toISOS'+_0x20e946(0x19c)](),'devices':_0x5ae3cd[_0x20e946(0x16b)+'s']||[]});}catch(_0x1eedea){_0x2f9639[_0x20e946(0x25e)](0x190)['json']({'message':_0x1eedea[_0x20e946(0x170)+'e']});}}),app[_0x48ebcd(0x225)]('/api/i'+_0x48ebcd(0x20f)+'rt',async(_0x492046,_0x5a1311)=>{const _0x259b0a=_0x48ebcd;try{const _0x340b3c=validateIrImportPayload(_0x492046[_0x259b0a(0x197)]);_0x5a1311['json'](await deviceFetch(_0x259b0a(0x160)+_0x259b0a(0x1f9),{'method':'POST','body':JSON['string'+_0x259b0a(0x147)](_0x340b3c)}));}catch(_0x346d75){_0x5a1311[_0x259b0a(0x25e)](0x190)['json']({'message':_0x346d75[_0x259b0a(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x20e)+_0x48ebcd(0x232),async(_0x2d49dd,_0x3a6e4a)=>{const _0x3777e1=_0x48ebcd;try{const _0x4445eb=irTestPayload(_0x2d49dd[_0x3777e1(0x197)]);console[_0x3777e1(0x14d)]('[ir.te'+_0x3777e1(0x13b)+_0x3777e1(0x1c9),_0x2d49dd[_0x3777e1(0x197)],_0x3777e1(0x227)+'d=',_0x4445eb);if(!_0x4445eb['code']&&(!_0x4445eb[_0x3777e1(0x16b)+_0x3777e1(0x153)]||!_0x4445eb['id']))throw new Error(_0x3777e1(0x16e)+'按键');_0x3a6e4a[_0x3777e1(0x25d)](await deviceFetch(_0x3777e1(0x239)+'st',{'method':'POST','body':JSON[_0x3777e1(0x13a)+_0x3777e1(0x147)](_0x4445eb)}));}catch(_0x5fb309){_0x3a6e4a[_0x3777e1(0x25e)](0x190)[_0x3777e1(0x25d)]({'message':_0x5fb309[_0x3777e1(0x170)+'e']});}}),registerCameraRoutes(app,{'getConfig':()=>{return new Proxy(config,{'get'(_0x347e03,_0x327723){const _0x2efe94=_0x53b0,_0x501e9c=getRequestDevice()?.['id']||_0x347e03[_0x2efe94(0x1e3)+_0x2efe94(0x247)+'Id'];if(_0x327723==='camera')return _0x501e9c?_0x347e03['device'+'s']?.[_0x501e9c]?.[_0x2efe94(0x1e9)]:_0x347e03['camera'];return _0x347e03[_0x327723];},'set'(_0x23498a,_0x565640,_0x2617ab){const _0x3b89bf=_0x53b0,_0x2fe3f2=getRequestDevice()?.['id']||_0x23498a[_0x3b89bf(0x1e3)+_0x3b89bf(0x247)+'Id'];if(_0x565640===_0x3b89bf(0x1e9)&&_0x2fe3f2)return setCamera(_0x23498a,_0x2fe3f2,_0x2617ab),!![];return _0x23498a[_0x565640]=_0x2617ab,!![];}});},'saveConfig':()=>saveConfig(config)}),setCameraHooks({'getDeviceBaseUrl':()=>getRequestDevice()?.[_0x48ebcd(0x146)+'l']||focusedRecord()?.[_0x48ebcd(0x146)+'l']||config[_0x48ebcd(0x16b)+_0x48ebcd(0x233)+'l'],'getDeviceCaps':()=>currentCaps(),'publishGimbal':async _0xd42fab=>{const _0x46fdd8=_0x48ebcd;requireDeviceOnline();const _0x4507cd=_0xd42fab?.[_0x46fdd8(0x21e)]===_0x46fdd8(0x1e2)?'stop':_0x46fdd8(0x14b),_0x3eb3e0=await deviceFetch(_0x46fdd8(0x188)+_0x46fdd8(0x17b)+_0x46fdd8(0x251),{'method':_0x46fdd8(0x201),'body':JSON[_0x46fdd8(0x13a)+_0x46fdd8(0x147)](_0xd42fab||{}),'kind':_0x4507cd,'timeoutMs':0x1f4});if(_0x3eb3e0['ok']===![])throw new Error(_0x3eb3e0['messag'+'e']||_0x46fdd8(0x17c));return _0x3eb3e0;}});async function publishAnnounce(_0x58ca75){const _0x306c0c=_0x48ebcd;if(!currentMossOnline())return![];const _0x1d88c4=typeof _0x58ca75===_0x306c0c(0x13a)?_0x58ca75:_0x58ca75?.[_0x306c0c(0x25a)],_0x56ffc0=typeof _0x58ca75===_0x306c0c(0x13a)?'':_0x58ca75?.[_0x306c0c(0x210)+'ce'];try{return await publishWakeAndText(_0x1d88c4,_0x56ffc0),applyVoice(focusedRecord()?.['id']||config[_0x306c0c(0x1e3)+_0x306c0c(0x247)+'Id'],_0x306c0c(0x173)+_0x306c0c(0x250)),!![];}catch(_0x57448b){return console[_0x306c0c(0x275)](_0x306c0c(0x1c5)+'angji]'+_0x306c0c(0x1d9)+_0x306c0c(0x21f)+'il',_0x57448b[_0x306c0c(0x170)+'e']),![];}}registerMcpRoutes(app,{'getConfig':()=>config,'emit':emit,'publishWakeAndText':_0x3551f2=>{const _0x1fc3af=_0x48ebcd;if(!currentMossOnline())return![];return publishWakeAndText(_0x3551f2)[_0x1fc3af(0x268)](_0x29622d=>console[_0x1fc3af(0x275)](_0x1fc3af(0x1a0)+_0x1fc3af(0x22c),_0x29622d[_0x1fc3af(0x170)+'e'])),!![];},'publishAnnounce':publishAnnounce,'isAnnounceReady':()=>currentMossOnline(),'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()['wakeOn'+_0x48ebcd(0x1ac)+'mplete']===!![],'syncYunxiangjiInbox':()=>scheduleYunxiangjiInboxPush()});function shouldServeUi(){const _0x56b719=_0x48ebcd;return process[_0x56b719(0x139)][_0x56b719(0x234)+'NV']===_0x56b719(0x22a)+_0x56b719(0x266)||process[_0x56b719(0x139)][_0x56b719(0x129)+_0x56b719(0x1ca)+_0x56b719(0x23d)]==='1';}function openBrowser(_0x5208f7){const _0x1b0de=_0x48ebcd;try{if(process[_0x1b0de(0x1d2)+'rm']==='darwin')execFile(_0x1b0de(0x211),[_0x5208f7]);else{if(process[_0x1b0de(0x1d2)+'rm']===_0x1b0de(0x264))execFile(_0x1b0de(0x1dc),['/c',_0x1b0de(0x1ad),'',_0x5208f7]);else execFile(_0x1b0de(0x22d)+'en',[_0x5208f7]);}}catch(_0x352ce4){console['warn'](_0x1b0de(0x265)+_0x1b0de(0x151),_0x352ce4[_0x1b0de(0x170)+'e']);}}function serveProductionUi(){const _0xde5814=_0x48ebcd,_0x1234a7=_0x30377c[_0xde5814(0x1b2)](DIST_DIR,_0xde5814(0x270)+_0xde5814(0x1f8));if(_0x24e640[_0xde5814(0x1cf)+_0xde5814(0x204)](_0x1234a7))return registerMediaRoutes(app,DIST_DIR),app[_0xde5814(0x178)](_0x5c053c['static'](DIST_DIR)),app[_0xde5814(0x178)]((_0x38134b,_0xd9c57d,_0x5c8e12)=>{const _0x286bb6=_0xde5814;if(_0x38134b[_0x286bb6(0x18a)]!==_0x286bb6(0x142)&&_0x38134b[_0x286bb6(0x18a)]!==_0x286bb6(0x24c))return _0x5c8e12();if(_0x38134b[_0x286bb6(0x21b)][_0x286bb6(0x1d8)+_0x286bb6(0x1f7)](_0x286bb6(0x1a4)))return _0x5c8e12();_0xd9c57d[_0x286bb6(0x13e)+'le'](_0x1234a7);}),!![];return console[_0xde5814(0x275)](_0xde5814(0x16a)+_0xde5814(0x1fc)+'构建'),![];}shouldServeUi()&&!shouldAttachDevUi()&&serveProductionUi();let httpServer=null,viteDev=null,shuttingDown=![];function shutdown(){const _0x21ca1e=_0x48ebcd;if(shuttingDown)return;shuttingDown=!![];try{disconnectCamera();}catch{}clearListenRuntime();const _0x28795b=()=>{const _0x3f6dfc=_0x53b0;if(!httpServer){process[_0x3f6dfc(0x14f)](0x0);return;}httpServer[_0x3f6dfc(0x143)](()=>process[_0x3f6dfc(0x14f)](0x0)),setTimeout(()=>process[_0x3f6dfc(0x14f)](0x0),0x320)[_0x3f6dfc(0x248)]();};if(!viteDev){_0x28795b();return;}viteDev[_0x21ca1e(0x143)]()[_0x21ca1e(0x162)](_0x28795b,_0x28795b);}function createHttpServer(){const _0x5eed9d=_0x48ebcd,_0x44bd1d=_0x5907f2[_0x5eed9d(0x161)+_0x5eed9d(0x1eb)](app);return _0x44bd1d[_0x5eed9d(0x1e8)+'t']=0x0,_0x44bd1d[_0x5eed9d(0x1f1)+_0x5eed9d(0x273)+_0x5eed9d(0x18c)]=0x0,_0x44bd1d[_0x5eed9d(0x272)+_0x5eed9d(0x208)+'ut']=0x0,_0x44bd1d[_0x5eed9d(0x218)+'tTimeo'+'ut']=0x0,_0x44bd1d;}function attachServer(_0x285825,_0x29ccdc){const _0x3cde83=_0x48ebcd;httpServer=_0x285825,writeRuntime(_0x29ccdc),process[_0x3cde83(0x139)][_0x3cde83(0x223)]=String(_0x29ccdc),process[_0x3cde83(0x139)][_0x3cde83(0x1ba)+_0x3cde83(0x25b)+'T']=String(_0x29ccdc);const _0x58d979=_0x3cde83(0x191)+_0x3cde83(0x244)+_0x3cde83(0x198)+_0x29ccdc,_0x5a30eb=process['env'][_0x3cde83(0x26c)+_0x3cde83(0x1d7)]?'\x20v'+process[_0x3cde83(0x139)][_0x3cde83(0x26c)+_0x3cde83(0x1d7)]:'';console[_0x3cde83(0x14d)](_0x3cde83(0x206)+_0x3cde83(0x226)+_0x5a30eb+'\x20\x20'+_0x58d979),viteDev&&console[_0x3cde83(0x14d)]('[serve'+_0x3cde83(0x154)+_0x3cde83(0x242)+_0x3cde83(0x26e)+_0x3cde83(0x274)),_0x29ccdc!==PORT&&console[_0x3cde83(0x14d)](_0x3cde83(0x1c8)+_0x3cde83(0x25f)+PORT+(_0x3cde83(0x1ef)+_0x3cde83(0x14c)+_0x3cde83(0x1fe))+_0x29ccdc+'。'),process['env']['MOSS_O'+_0x3cde83(0x1ca)+_0x3cde83(0x23d)]==='1'&&openBrowser(_0x58d979),prefetchFfmpeg(),initBridgeWebSocket(),startPresenceWatch();}function listenOn(_0x477e8f,_0x1ef609){return new Promise((_0x362c94,_0x379c8a)=>{const _0x398be3=_0x53b0,_0x2be98f=_0x566c2b=>{const _0x1e3740=_0x53b0;_0x477e8f[_0x1e3740(0x182)](_0x1e3740(0x187)+_0x1e3740(0x219),_0x369999),_0x379c8a(_0x566c2b);},_0x369999=()=>{const _0xaedc49=_0x53b0;_0x477e8f[_0xaedc49(0x182)]('error',_0x2be98f),_0x362c94(_0x477e8f);};_0x477e8f[_0x398be3(0x21d)]('error',_0x2be98f),_0x477e8f[_0x398be3(0x21d)](_0x398be3(0x187)+'ing',_0x369999),_0x477e8f[_0x398be3(0x187)](_0x1ef609);});}async function listenPreferred(_0x115535){const _0x5d0a38=_0x48ebcd,_0x4a2fd3=await reclaimListenPort({'preferredPort':_0x115535,'runtimePath':RUNTIME_PATH});_0x4a2fd3[_0x5d0a38(0x1b4)]&&console[_0x5d0a38(0x14d)]('[serve'+_0x5d0a38(0x258)+_0x5d0a38(0x1e5)+_0x5d0a38(0x193)+_0x5d0a38(0x26f)+_0x115535+'。');const _0x42d71b=createHttpServer();if(shouldAttachDevUi())try{viteDev=await attachViteDev(app,_0x42d71b,{'root':ROOT_DIR});}catch(_0x46b181){console[_0x5d0a38(0x275)](_0x5d0a38(0x1c8)+_0x5d0a38(0x249)+_0x5d0a38(0x195),_0x46b181[_0x5d0a38(0x170)+'e']);}const _0x3558c0=0x18;for(let _0x29937f=0x0;_0x29937f<_0x3558c0;_0x29937f+=0x1){const _0x276a32=nextListenPort(_0x115535,_0x29937f);try{await listenOn(_0x42d71b,_0x276a32),attachServer(_0x42d71b,_0x276a32);return;}catch(_0x48e758){_0x48e758[_0x5d0a38(0x23e)]!==_0x5d0a38(0x1e0)+_0x5d0a38(0x1df)&&(console[_0x5d0a38(0x175)](_0x48e758),process[_0x5d0a38(0x14f)](0x1)),_0x29937f<0x7&&(await reclaimListenPort({'preferredPort':_0x115535,'runtimePath':RUNTIME_PATH}),await sleep(0x78));}}console[_0x5d0a38(0x175)](_0x5d0a38(0x1c8)+'r]\x20'+_0x115535+(_0x5d0a38(0x222)+'均被占用')),process[_0x5d0a38(0x14f)](0x1);}process['on']('SIGTER'+'M',shutdown),process['on'](_0x48ebcd(0x252),shutdown),listenPreferred(PORT)['catch'](_0x121423=>{const _0x1ce3b7=_0x48ebcd;console[_0x1ce3b7(0x175)](_0x121423),process[_0x1ce3b7(0x14f)](0x1);});
|
|
1
|
+
const _0x178fe3=_0x520c;(function(_0x1943db,_0x4bf841){const _0x22e5fa=_0x520c,_0x1c7ce3=_0x1943db();while(!![]){try{const _0x1baed0=parseInt(_0x22e5fa(0xb5))/0x1*(parseInt(_0x22e5fa(0x1ac))/0x2)+-parseInt(_0x22e5fa(0x115))/0x3*(parseInt(_0x22e5fa(0x12f))/0x4)+parseInt(_0x22e5fa(0x119))/0x5*(-parseInt(_0x22e5fa(0x140))/0x6)+parseInt(_0x22e5fa(0xfd))/0x7*(-parseInt(_0x22e5fa(0xe3))/0x8)+-parseInt(_0x22e5fa(0xcd))/0x9+-parseInt(_0x22e5fa(0x113))/0xa+parseInt(_0x22e5fa(0xa5))/0xb;if(_0x1baed0===_0x4bf841)break;else _0x1c7ce3['push'](_0x1c7ce3['shift']());}catch(_0x206d42){_0x1c7ce3['push'](_0x1c7ce3['shift']());}}}(_0x5956,0xf34cd));import _0x520f33 from'node:fs';import _0x428ecb from'node:os';import _0x12af38 from'node:path';import _0x2e25f7 from'node:http';import{execFile}from'node:child_process';import{fileURLToPath}from'node:url';import _0x533dd0 from'express';import _0x59073d from'cors';import{disconnectCamera,registerCameraRoutes,setCameraHooks,stripOnboardCameraConfig}from'./camera.mjs';import{findDevice,isBoardLabel,normalizeMac,resolveUpsertId}from'./device-identity.mjs';import{migrateLegacyConfig,requireActiveDevice,setCamera,upsertDevice}from'./device-registry.mjs';import{applyHealth,isOnline}from'./device-presence.mjs';import{probeDevice}from'./device-probe.mjs';import{applyChatDelta,chatSyncIntervalMs,shouldFetchChatSync}from'./device-chat-sync.mjs';import{createDeviceHttpQueue}from'./device-http.mjs';import{shouldApplyRemoteVoice,voiceFromWakeAck}from'./voice-wake.mjs';import{registerDeviceRoutes}from'./device-routes.mjs';import{buildSessionView,withActiveDevice}from'./device-session.mjs';import{attachRequestDevice,getRequestDevice,voicesFromRuntime}from'./device-focus.mjs';import{createDeviceRuntime}from'./device-runtime.mjs';import{discoverMossDevices}from'./lan-discover.mjs';import{registerMcpRoutes}from'./mcp/routes.mjs';import{initBridgeWebSocket,bridgeManager}from'./mcp/bridge-manager.mjs';import{setTaskNotifyHooks}from'./mcp/task-notify.mjs';import{loadMcpSettings}from'./mcp/settings.mjs';import{exportYunxiangjiInbox,ingestDeviceYunxiangjiCreates,maybeAckYunxiangjiFromChat,maybeApplyYunxiangjiFromChat}from'./mcp/yunxiangji.mjs';import{prefetchFfmpeg}from'./ffmpeg.mjs';import{registerMediaRoutes}from'./media-cache.mjs';import{validateIrImportPayload}from'./ir-import-validate.mjs';import{applyDeviceHealthTo,normalizeCaps}from'./board-presets.mjs';import{registerMihomeRoutes}from'./mihome/routes.mjs';import{clearRuntime,nextListenPort,reclaimListenPort,sleep}from'./listen-port.mjs';import{attachViteDev,shouldAttachDevUi}from'./dev-ui.mjs';const PORT=Number(process[_0x178fe3(0x1c9)][_0x178fe3(0x11a)]||0xec4),ROOT_DIR=_0x12af38['join'](_0x12af38['dirnam'+'e'](fileURLToPath(import.meta.url)),'..'),DIST_DIR=_0x12af38[_0x178fe3(0xda)](ROOT_DIR,_0x178fe3(0xa8)),CONFIG_DIR=_0x12af38[_0x178fe3(0xda)](_0x428ecb[_0x178fe3(0xed)+'r'](),_0x178fe3(0x18e)+_0x178fe3(0xa6)+'p'),CONFIG_PATH=_0x12af38['join'](CONFIG_DIR,_0x178fe3(0x100)+_0x178fe3(0xa4)),RUNTIME_PATH=_0x12af38['join'](CONFIG_DIR,_0x178fe3(0x166)+_0x178fe3(0x15c));function loadConfig(){const _0x29f38b=_0x178fe3;try{return migrateLegacyConfig(JSON[_0x29f38b(0x19a)](_0x520f33[_0x29f38b(0x10d)+_0x29f38b(0x103)](CONFIG_PATH,_0x29f38b(0xee))));}catch{return migrateLegacyConfig({'deviceBaseUrl':'','mqtt':null,'bound':![]});}}function saveConfig(_0x5007d7){const _0xb798a3=_0x178fe3;_0x520f33[_0xb798a3(0x125)+_0xb798a3(0x134)](CONFIG_DIR,{'recursive':!![]}),_0x520f33[_0xb798a3(0x199)+_0xb798a3(0x171)+'c'](CONFIG_PATH,JSON[_0xb798a3(0x12e)+_0xb798a3(0xd9)](_0x5007d7,null,0x2));}function applyDeviceHealth(_0x45c154,_0x24fb3f={}){const _0x3aa6c2=_0x178fe3;applyDeviceHealthTo(config,_0x45c154);if(!_0x45c154||typeof _0x45c154!==_0x3aa6c2(0x1a8))return null;const _0x5f471b=String(_0x24fb3f[_0x3aa6c2(0x194)+'Id']||_0x45c154['client'+'_id']||'')[_0x3aa6c2(0x1ca)](),_0x1253c2=normalizeMac(_0x45c154[_0x3aa6c2(0x1c7)]),_0x4c96ba=_0x24fb3f['id']||config[_0x3aa6c2(0x1a5)+_0x3aa6c2(0x142)+'Id'],_0xe1a36a=findDevice(config,{'mac':_0x1253c2,'clientId':_0x5f471b,'id':_0x4c96ba}),_0x205a10=resolveUpsertId(config,{'mac':_0x1253c2,'clientId':_0x5f471b,'id':_0xe1a36a?.['id']||_0x4c96ba});if(!_0x205a10)return null;const _0x5cc6e9=_0x45c154['displa'+'y_name']&&!isBoardLabel(_0x45c154['displa'+_0x3aa6c2(0xb2)])?_0x45c154[_0x3aa6c2(0xa1)+'y_name']:undefined;upsertDevice(config,{'id':_0x205a10,'mac':_0x1253c2||undefined,'clientId':_0x5f471b||_0xe1a36a?.[_0x3aa6c2(0x194)+'Id'],'board':_0x45c154['board']||_0x45c154[_0x3aa6c2(0x17a)],'product':_0x45c154['produc'+'t'],'hostname':_0x45c154[_0x3aa6c2(0xbe)+'me'],'displayName':_0x5cc6e9,'ip':_0x45c154['ip']});const _0x4c0826=applyHealth(config['device'+'s'][_0x205a10],_0x45c154);return config[_0x3aa6c2(0xbd)+'s'][_0x205a10]=_0x4c0826,_0x4c0826;}function activeRecord(){const _0x58493b=_0x178fe3;return config[_0x58493b(0xbd)+'s']?.[config[_0x58493b(0x1a5)+_0x58493b(0x142)+'Id']]||null;}function currentCaps(){const _0x1cafc5=_0x178fe3,_0x18deb6=focusedRecord();return normalizeCaps({'board':_0x18deb6?.['board']||config[_0x1cafc5(0x110)],'name':_0x18deb6?.['board']||config[_0x1cafc5(0x110)],'product':_0x18deb6?.[_0x1cafc5(0x1c3)+'t']||config[_0x1cafc5(0x1c3)+'t']});}function currentMossOnline(){const _0x5230a6=_0x178fe3,_0x381b65=focusedRecord();if(_0x381b65&&isOnline(_0x381b65[_0x5230a6(0x116)+'en'],Date[_0x5230a6(0x195)]()))return!![];return![];}function writeRuntime(_0x5cdd0f){const _0x1891f6=_0x178fe3;try{_0x520f33[_0x1891f6(0x125)+_0x1891f6(0x134)](CONFIG_DIR,{'recursive':!![]}),_0x520f33['writeF'+_0x1891f6(0x171)+'c'](RUNTIME_PATH,JSON[_0x1891f6(0x12e)+_0x1891f6(0xd9)]({'port':_0x5cdd0f,'pid':process[_0x1891f6(0xb9)],'at':Date[_0x1891f6(0x195)]()}));}catch(_0x555430){console[_0x1891f6(0xb7)](_0x1891f6(0x1bb)+_0x1891f6(0xec)+':',_0x555430['messag'+'e']);}}function clearListenRuntime(){clearRuntime(RUNTIME_PATH);}let config=loadConfig();for(const id of Object[_0x178fe3(0x1c1)](config[_0x178fe3(0xbd)+'s']||{})){const wrap={'camera':config[_0x178fe3(0xbd)+'s'][id][_0x178fe3(0x168)]};stripOnboardCameraConfig(wrap)&&(config[_0x178fe3(0xbd)+'s'][id][_0x178fe3(0x168)]=wrap['camera'],saveConfig(config));}let mqttStatus=_0x178fe3(0xcf);const runtime=createDeviceRuntime(),chatSyncTimers=new Map();let presenceTimer=null;const boardQueues=new Map();function focusedRecord(){const _0x2d4e83=_0x178fe3,_0x1b1ccf=getRequestDevice();if(_0x1b1ccf?.['id']&&config[_0x2d4e83(0xbd)+'s']?.[_0x1b1ccf['id']])return config[_0x2d4e83(0xbd)+'s'][_0x1b1ccf['id']];return activeRecord();}function runtimeOf(_0x116883){const _0x24a648=_0x178fe3;return runtime['of'](_0x116883||focusedRecord()?.['id']||config[_0x24a648(0x1a5)+_0x24a648(0x142)+'Id']);}function deviceQueue(_0x125254){const _0x566a77=_0x178fe3,_0x3d939a=_0x125254||config['active'+_0x566a77(0x142)+'Id']||'_';if(!boardQueues[_0x566a77(0x158)](_0x3d939a))boardQueues['set'](_0x3d939a,createDeviceHttpQueue());return boardQueues[_0x566a77(0xc6)](_0x3d939a);}function initTaskNotify(){const _0x517405=_0x178fe3;setTaskNotifyHooks({'emit':emit,'publishWakeAndText':_0x5c911d=>{if(!currentMossOnline())return![];try{return publishWakeAndText(_0x5c911d),!![];}catch{return![];}},'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()['wakeOn'+'TaskCo'+_0x517405(0xd1)]===!![]});}initTaskNotify();const sseClients=new Set();function emit(_0xdd33cb,_0x330b72){const _0x3fe108=_0x178fe3,_0x2fc32e=_0x3fe108(0x121)+'\x20'+_0xdd33cb+(_0x3fe108(0xdf)+'\x20')+JSON[_0x3fe108(0x12e)+_0x3fe108(0xd9)](_0x330b72)+'\x0a\x0a';for(const _0x823e83 of sseClients){_0x823e83[_0x3fe108(0x1ae)](_0x2fc32e);}}function statusPayload(_0x267e40={}){const _0x271c73=_0x178fe3;return{...buildSessionView(config,{'mqttStatus':_0x271c73(0xcf),'failCount':0x0,'lastError':'','voices':voicesFromRuntime(config,runtime)}),'status':_0x271c73(0xcf),'bound':!![],'failCount':0x0,'lastError':'',..._0x267e40};}function inferFetchKind(_0x4b46a4,_0x24906b={}){const _0x59e7f8=_0x178fe3;if(_0x24906b[_0x59e7f8(0x1b9)])return _0x24906b[_0x59e7f8(0x1b9)];if(_0x4b46a4[_0x59e7f8(0x188)+_0x59e7f8(0xc5)]('/chat'))return _0x59e7f8(0xe1);if(_0x4b46a4===_0x59e7f8(0x97)+'h')return _0x59e7f8(0x1aa);if(_0x4b46a4['starts'+_0x59e7f8(0xc5)](_0x59e7f8(0x114)+'l'))try{const _0x52ee3a=JSON[_0x59e7f8(0x19a)](_0x24906b[_0x59e7f8(0xfe)]||'{}');return _0x52ee3a['action']===_0x59e7f8(0x141)?_0x59e7f8(0x141):'follow';}catch{return _0x59e7f8(0x120);}return'ir';}function enqueueBoard(_0x2d83b3,_0x215a2a,_0x2b0705){return new Promise((_0x1c3e11,_0x52231e)=>{const _0x56fce0=_0x520c;deviceQueue(_0x2b0705)[_0x56fce0(0x13b)+'e'](_0x2d83b3,async()=>{try{_0x1c3e11(await _0x215a2a());}catch(_0x2500c3){_0x52231e(_0x2500c3);}});});}async function rawDeviceFetch(_0x2d70b1,_0x2174aa={}){const _0x1153dc=_0x178fe3,{baseUrl:_0x3be575,useLan:_0x178cce,kind:_0x18a220,timeoutMs:_0x4f8935,deviceId:_0x3453b4,..._0x206794}=_0x2174aa,_0x555cdd=getRequestDevice(),_0x20f826=_0x3453b4||_0x555cdd?.['id']||config[_0x1153dc(0x1a5)+_0x1153dc(0x142)+'Id'];let _0x30fbf3=_0x3be575||'';!_0x30fbf3&&_0x178cce&&(_0x30fbf3=config[_0x1153dc(0xbd)+_0x1153dc(0xf2)+'l']);!_0x30fbf3&&_0x555cdd?.['baseUr'+'l']&&(_0x30fbf3=_0x555cdd[_0x1153dc(0x91)+'l']);!_0x30fbf3&&_0x20f826&&(_0x30fbf3=config['device'+'s']?.[_0x20f826]?.[_0x1153dc(0x91)+'l']||'');if(!_0x30fbf3)try{_0x30fbf3=requireActiveDevice(config)[_0x1153dc(0x91)+'l'];}catch{_0x30fbf3=config['device'+_0x1153dc(0xf2)+'l'];}if(!_0x30fbf3){const _0x44a262=new Error(_0x1153dc(0xad));_0x44a262[_0x1153dc(0xf0)]=0x199;throw _0x44a262;}const _0x5b54fb=''+_0x30fbf3+_0x2d70b1,_0x362308=await fetch(_0x5b54fb,{..._0x206794,'signal':_0x2174aa[_0x1153dc(0x178)]||AbortSignal[_0x1153dc(0x13d)+'t'](_0x4f8935||0x1f40),'headers':{'Content-Type':_0x1153dc(0xc1)+_0x1153dc(0x8f)+_0x1153dc(0xb0),..._0x2174aa[_0x1153dc(0xc0)+'s']||{}}}),_0x3c5fcc=await _0x362308[_0x1153dc(0xb6)]();let _0x3936a={};try{_0x3936a=_0x3c5fcc?JSON[_0x1153dc(0x19a)](_0x3c5fcc):{};}catch{_0x3936a={'raw':_0x3c5fcc};}if(!_0x362308['ok']){const _0x1113b9=new Error(_0x3936a[_0x1153dc(0x15a)+'e']||_0x1153dc(0x1b8)+'回\x20'+_0x362308[_0x1153dc(0xf0)]);_0x1113b9['detail']=_0x3936a;throw _0x1113b9;}return _0x3936a;}function deviceFetch(_0x33c960,_0x1158e4={}){const _0x36b866=_0x178fe3,_0x20d1a5=getRequestDevice(),_0x21efa4=_0x1158e4[_0x36b866(0xbd)+'Id']||_0x20d1a5?.['id']||config[_0x36b866(0x1a5)+'Device'+'Id'];return enqueueBoard(inferFetchKind(_0x33c960,_0x1158e4),()=>rawDeviceFetch(_0x33c960,{..._0x1158e4,'deviceId':_0x21efa4}),_0x21efa4);}function applyVoice(_0x45b9ed,_0x423766){const _0x3ed8f5=_0x178fe3,_0x3a3962=_0x45b9ed||focusedRecord()?.['id']||config[_0x3ed8f5(0x1a5)+_0x3ed8f5(0x142)+'Id'],_0x178c18=String(_0x423766||'')[_0x3ed8f5(0x1ca)]();if(!_0x3a3962||!_0x178c18)return;const _0x31a32b=runtime['of'](_0x3a3962);if(config[_0x3ed8f5(0xbd)+'s']?.[_0x3a3962])config[_0x3ed8f5(0xbd)+'s'][_0x3a3962]['voice']=_0x178c18;_0x178c18!==_0x31a32b[_0x3ed8f5(0x177)]&&(_0x31a32b[_0x3ed8f5(0x177)]=_0x178c18,emit(_0x3ed8f5(0xf0),statusPayload()));}function emitChatLines(_0x39a20c,_0x287549){const _0x8bbe03=_0x178fe3;for(const _0x580f59 of _0x39a20c){emit(_0x8bbe03(0x17e),{'type':_0x8bbe03(0xae)+'essage','payload':{'role':_0x580f59[_0x8bbe03(0x15b)],'text':_0x580f59[_0x8bbe03(0xb6)],'state':_0x580f59['state'],'deviceId':_0x287549}}),_0x580f59[_0x8bbe03(0x15b)]==='assist'+_0x8bbe03(0x9c)&&maybeAckYunxiangjiFromChat(_0x580f59[_0x8bbe03(0xb6)]),(_0x580f59[_0x8bbe03(0x15b)]===_0x8bbe03(0xab)||_0x580f59[_0x8bbe03(0x15b)]==='assist'+'ant')&&maybeApplyYunxiangjiFromChat(_0x580f59[_0x8bbe03(0xb6)]);}}async function syncChatNow(_0x6d1395){const _0x3ae832=_0x178fe3,_0x45abc3=_0x6d1395||focusedRecord()?.['id']||config['active'+'Device'+'Id'],_0x127cdf=config['device'+'s']?.[_0x45abc3];if(!_0x127cdf?.[_0x3ae832(0x91)+'l'])return;const _0x1b5d17=runtime['of'](_0x45abc3),_0x48a30e=_0x299c84=>deviceFetch(_0x3ae832(0xfb)+_0x3ae832(0xeb)+_0x3ae832(0x1bd)+_0x299c84,{'timeoutMs':0x7d0,'kind':_0x3ae832(0xe1),'deviceId':_0x45abc3,'baseUrl':_0x127cdf['baseUr'+'l']});let _0xd14ae9=await _0x48a30e(_0x1b5d17[_0x3ae832(0x157)+_0x3ae832(0x18f)]),_0x1497dc=applyChatDelta({'seq':_0x1b5d17[_0x3ae832(0x157)+_0x3ae832(0x18f)],'lines':[]},_0xd14ae9);_0x1497dc['rewoun'+'d']&&(_0xd14ae9=await _0x48a30e(_0x1497dc['seq']),_0x1497dc=applyChatDelta({'seq':_0x1497dc[_0x3ae832(0xc8)],'lines':[]},_0xd14ae9)),_0x1b5d17[_0x3ae832(0x157)+_0x3ae832(0x18f)]=_0x1497dc[_0x3ae832(0xc8)],ingestYunxiangjiFromDevicePayload(_0xd14ae9,_0x45abc3),_0xd14ae9[_0x3ae832(0x177)]&&shouldApplyRemoteVoice({'remoteVoice':_0xd14ae9[_0x3ae832(0x177)],'localVoice':_0x1b5d17['voice'],'wokeAt':_0x1b5d17[_0x3ae832(0xf6)]})&&applyVoice(_0x45abc3,_0xd14ae9[_0x3ae832(0x177)]),emitChatLines(_0x1497dc[_0x3ae832(0x1ad)],_0x45abc3);}function scheduleChatSync(_0x1342ca){const _0x1d3d66=_0x178fe3,_0x5cced7=_0x1342ca||focusedRecord()?.['id']||config['active'+'Device'+'Id'];if(!_0x5cced7)return;const _0x42bff5=chatSyncTimers['get'](_0x5cced7);_0x42bff5&&(clearTimeout(_0x42bff5),chatSyncTimers[_0x1d3d66(0x130)](_0x5cced7));const _0xa16d69=chatSyncIntervalMs({'voice':runtime['of'](_0x5cced7)[_0x1d3d66(0x177)]});if(!_0xa16d69)return;chatSyncTimers['set'](_0x5cced7,setTimeout(()=>{const _0x16f4a9=_0x1d3d66;syncChatNow(_0x5cced7)['catch'](()=>{})[_0x16f4a9(0x147)+'y'](()=>scheduleChatSync(_0x5cced7));},_0xa16d69));}async function probeOne(_0xbaf4cf,_0x5be8a8=Date[_0x178fe3(0x195)]()){const _0xecf4e1=_0x178fe3,_0xdb14eb=config[_0xecf4e1(0xbd)+'s']?.[_0xbaf4cf];if(!_0xdb14eb)return;const _0x4d176e=await enqueueBoard('health',()=>probeDevice(_0xdb14eb,{'now':_0x5be8a8,'timeoutMs':0x7d0}),_0xbaf4cf),_0x39e952=_0xdb14eb[_0xecf4e1(0x116)+'en'];Object[_0xecf4e1(0x105)](_0xdb14eb,_0x4d176e[_0xecf4e1(0xbd)]);_0xbaf4cf===config[_0xecf4e1(0x1a5)+_0xecf4e1(0x142)+'Id']&&(_0x4d176e[_0xecf4e1(0x1b4)]&&_0x4d176e[_0xecf4e1(0xbd)]['baseUr'+'l']&&(config['device'+_0xecf4e1(0xf2)+'l']=_0x4d176e[_0xecf4e1(0xbd)][_0xecf4e1(0x91)+'l']));const _0x139921=runtime['of'](_0xbaf4cf);_0x4d176e[_0xecf4e1(0x1aa)]?.['voice']&&shouldApplyRemoteVoice({'remoteVoice':_0x4d176e[_0xecf4e1(0x1aa)]['voice'],'localVoice':_0x139921[_0xecf4e1(0x177)],'wokeAt':_0x139921[_0xecf4e1(0xf6)]})&&applyVoice(_0xbaf4cf,_0x4d176e[_0xecf4e1(0x1aa)][_0xecf4e1(0x177)]),_0x4d176e[_0xecf4e1(0x1aa)]&&shouldFetchChatSync({'voice':_0x4d176e[_0xecf4e1(0x1aa)][_0xecf4e1(0x177)]||_0x139921[_0xecf4e1(0x177)],'remoteSeq':_0x4d176e['health'][_0xecf4e1(0x181)+'eq'],'localSeq':_0x139921[_0xecf4e1(0x157)+_0xecf4e1(0x18f)]})&&(syncChatNow(_0xbaf4cf)[_0xecf4e1(0x163)](()=>{}),scheduleChatSync(_0xbaf4cf)),Number(_0x4d176e['health']?.[_0xecf4e1(0x102)+'ngji_o'+_0xecf4e1(0xa3)]||_0x4d176e[_0xecf4e1(0xbd)]?.[_0xecf4e1(0x102)+_0xecf4e1(0x11e)+'tbox']||0x0)>0x0&&pullYunxiangjiOutbox(_0xbaf4cf)[_0xecf4e1(0x163)](()=>{}),_0x4d176e[_0xecf4e1(0xbd)]['lastSe'+'en']!==_0x39e952&&(emit('status',statusPayload()),_0x4d176e[_0xecf4e1(0x1b4)]&&scheduleYunxiangjiInboxPush(_0xbaf4cf));}function startPresenceWatch(){if(presenceTimer)return;const _0x4aec29=()=>{const _0x1f8b36=_0x520c,_0xbb5e7b=Object[_0x1f8b36(0x1c1)](config[_0x1f8b36(0xbd)+'s']||{});for(const _0x27abb2 of _0xbb5e7b[_0x1f8b36(0x1a0)](0x0,0x4)){probeOne(_0x27abb2)[_0x1f8b36(0x163)](()=>{});}};_0x4aec29(),presenceTimer=setInterval(_0x4aec29,0x7d0);}function ingestYunxiangjiFromDevicePayload(_0x4c3c13,_0x2ab5c0){const _0x408834=_0x178fe3,_0x52d108=_0x4c3c13?.['yunxia'+_0x408834(0xe5)+_0x408834(0xc9)]||_0x4c3c13?.[_0x408834(0x154)];if(!Array[_0x408834(0xd6)+'y'](_0x52d108)||!_0x52d108[_0x408834(0x95)])return;const _0x204d57=ingestDeviceYunxiangjiCreates(_0x52d108),_0x4e4aeb=_0x204d57[_0x408834(0x1b1)]||_0x52d108[_0x408834(0x1b2)](_0x13833e=>_0x13833e?.['id'])['filter'](Boolean);if(!_0x4e4aeb['length'])return;deviceFetch(_0x408834(0x153)+_0x408834(0xe6)+_0x408834(0x1c8)+_0x408834(0xd5),{'method':'POST','body':JSON[_0x408834(0x12e)+_0x408834(0xd9)]({'ids':_0x4e4aeb}),'kind':_0x408834(0xe1),'timeoutMs':0x7d0,'deviceId':_0x2ab5c0})[_0x408834(0x163)](()=>{}),scheduleYunxiangjiInboxPush(_0x2ab5c0);}async function pullYunxiangjiOutbox(_0x21e390){const _0x3f0be0=_0x178fe3,_0x4e895b=_0x21e390||focusedRecord()?.['id']||config['active'+_0x3f0be0(0x142)+'Id'],_0x2be374=await deviceFetch(_0x3f0be0(0x153)+_0x3f0be0(0xe6)+'outbox',{'timeoutMs':0x7d0,'kind':_0x3f0be0(0xe1),'deviceId':_0x4e895b});ingestYunxiangjiFromDevicePayload(_0x2be374,_0x4e895b);}const inboxPushTimers=new Map();function scheduleYunxiangjiInboxPush(_0x2018b9){const _0x5f2fe8=_0x178fe3,_0x51ae84=_0x2018b9||focusedRecord()?.['id']||config[_0x5f2fe8(0x1a5)+_0x5f2fe8(0x142)+'Id'];if(!_0x51ae84)return;const _0x3a11fa=inboxPushTimers[_0x5f2fe8(0xc6)](_0x51ae84);if(_0x3a11fa)clearTimeout(_0x3a11fa);inboxPushTimers[_0x5f2fe8(0x197)](_0x51ae84,setTimeout(()=>{const _0xf92b8c=_0x5f2fe8;inboxPushTimers[_0xf92b8c(0x130)](_0x51ae84),pushYunxiangjiInbox(_0x51ae84)['catch'](()=>{});},0x12c));}async function pushYunxiangjiInbox(_0x1e900c){const _0x19c468=_0x178fe3,_0x4a4b2f=_0x1e900c||focusedRecord()?.['id']||config[_0x19c468(0x1a5)+_0x19c468(0x142)+'Id'];if(!_0x4a4b2f)return;await deviceFetch(_0x19c468(0x153)+_0x19c468(0xe6)+_0x19c468(0xd3),{'method':'POST','body':JSON[_0x19c468(0x12e)+_0x19c468(0xd9)](exportYunxiangjiInbox()),'kind':_0x19c468(0xe1),'timeoutMs':0x7d0,'deviceId':_0x4a4b2f});}function requireDeviceOnline(){const _0x1cb364=_0x178fe3;if(!currentMossOnline())throw new Error(_0x1cb364(0x1ba)+'线');}async function publishWakeAndText(_0x2a1126,_0x258c72){const _0x4ba817=_0x178fe3;requireDeviceOnline();const _0x1679a5=focusedRecord()?.['id']||config[_0x4ba817(0x1a5)+'Device'+'Id'],_0x1e464f={'text':String(_0x2a1126||'')};if(_0x258c72)_0x1e464f[_0x4ba817(0x17c)+'ce']=String(_0x258c72);await deviceFetch(_0x4ba817(0xfb)+_0x4ba817(0x16a),{'method':_0x4ba817(0xd4),'body':JSON[_0x4ba817(0x12e)+_0x4ba817(0xd9)](_0x1e464f),'kind':_0x4ba817(0xe1),'timeoutMs':0xfa0,'deviceId':_0x1679a5}),syncChatNow(_0x1679a5)[_0x4ba817(0x163)](()=>{}),scheduleChatSync(_0x1679a5);}const app=_0x533dd0();app[_0x178fe3(0x14c)](_0x59073d()),app[_0x178fe3(0x14c)](_0x533dd0[_0x178fe3(0xb0)]({'limit':'1mb'})),app[_0x178fe3(0x14c)](attachRequestDevice(()=>config)),registerMihomeRoutes(app,{'configDir':CONFIG_DIR,'onMcpAccessChanged':()=>{const _0x306be4=_0x178fe3;try{bridgeManager[_0x306be4(0x15e)+_0x306be4(0x19c)+'r'](_0x306be4(0xc7)+'ihome');}catch(_0x148bc2){console['warn'](_0x306be4(0x98)+_0x306be4(0x12d)+'tart\x20m'+'cp',_0x148bc2[_0x306be4(0x15a)+'e']);}}}),registerDeviceRoutes(app,{'getConfig':()=>config,'saveConfig':()=>saveConfig(config),'getExtras':()=>{const _0x7d6f20=_0x178fe3,_0x4039f0=focusedRecord(),_0xc61597=_0x4039f0?.['id']||config[_0x7d6f20(0x1a5)+_0x7d6f20(0x142)+'Id'];return{'mqttStatus':_0x7d6f20(0xcf),'mossOnline':currentMossOnline(),'capabilities':currentCaps(),'failCount':0x0,'lastError':'','mossChatState':_0xc61597?runtime['of'](_0xc61597)[_0x7d6f20(0x177)]:_0x7d6f20(0x1a6),'focusedDeviceId':_0xc61597||'','voices':voicesFromRuntime(config,runtime)};},'onActivate':_0x8194f1=>{const _0x5b2beb=_0x178fe3;runtime[_0x5b2beb(0x146)+_0x5b2beb(0x8e)](_0x8194f1[_0x5b2beb(0xbd)]['id']),config[_0x5b2beb(0xbd)+_0x5b2beb(0xf2)+'l']=_0x8194f1[_0x5b2beb(0xbd)][_0x5b2beb(0x91)+'l']||config['device'+_0x5b2beb(0xf2)+'l']||'',applyDeviceHealthTo(config,_0x8194f1[_0x5b2beb(0xbd)]),emit(_0x5b2beb(0xf0),statusPayload()),probeOne(_0x8194f1['device']['id'])[_0x5b2beb(0x163)](()=>{});}}),app['get'](_0x178fe3(0xf7)+_0x178fe3(0xdc),(_0x60da05,_0x44b21b)=>{const _0x2109a7=_0x178fe3;_0x44b21b[_0x2109a7(0x151)+_0x2109a7(0x117)](_0x2109a7(0x14f)+_0x2109a7(0xba),_0x2109a7(0x167)+_0x2109a7(0xb8)+_0x2109a7(0x186)),_0x44b21b[_0x2109a7(0x151)+_0x2109a7(0x117)]('Cache-'+_0x2109a7(0x14d)+'l',_0x2109a7(0x164)+'he'),_0x44b21b[_0x2109a7(0x151)+_0x2109a7(0x117)](_0x2109a7(0xd8)+_0x2109a7(0x12b),_0x2109a7(0x191)+_0x2109a7(0x108)),_0x44b21b['flushH'+_0x2109a7(0x124)](),sseClients[_0x2109a7(0x184)](_0x44b21b),_0x44b21b[_0x2109a7(0x1ae)](_0x2109a7(0x121)+_0x2109a7(0x8c)+_0x2109a7(0x149)+':\x20'+JSON[_0x2109a7(0x12e)+_0x2109a7(0xd9)](statusPayload())+'\x0a\x0a'),_0x60da05['on'](_0x2109a7(0xf4),()=>sseClients['delete'](_0x44b21b));}),app[_0x178fe3(0x187)](_0x178fe3(0x198)+_0x178fe3(0xb3)+'r',async(_0x19ebfd,_0x1beb6d)=>{const _0x41b660=_0x178fe3;try{const _0x6bde61=await discoverMossDevices({'lastHostname':config[_0x41b660(0x1b0)+_0x41b660(0xce)],'lastBaseUrl':config[_0x41b660(0xbd)+_0x41b660(0xf2)+'l']});_0x1beb6d['json']({'devices':_0x6bde61});}catch(_0x5a1509){_0x1beb6d[_0x41b660(0xf0)](0x1f4)[_0x41b660(0xb0)]({'message':_0x5a1509[_0x41b660(0x15a)+'e']||'扫描局域网失'+'败'});}}),app[_0x178fe3(0x187)]('/api/d'+'evice/'+_0x178fe3(0x9e),async(_0x5a2757,_0x368e73)=>{const _0x1e121b=_0x178fe3,_0x31556f=String(_0x5a2757[_0x1e121b(0xfe)]?.[_0x1e121b(0x91)+'l']||'')['replac'+'e'](/\/$/,'');if(!_0x31556f)return _0x368e73[_0x1e121b(0xf0)](0x190)[_0x1e121b(0xb0)]({'message':_0x1e121b(0x17b)+_0x1e121b(0x135)});const _0x710a75=config[_0x1e121b(0xbd)+_0x1e121b(0xf2)+'l'];config[_0x1e121b(0xbd)+'BaseUr'+'l']=_0x31556f;try{const _0x4615c5=await deviceFetch(_0x1e121b(0x97)+'h',{'baseUrl':_0x31556f});_0x4615c5[_0x1e121b(0xbe)+'me']&&(config[_0x1e121b(0x1b0)+_0x1e121b(0xce)]=_0x4615c5[_0x1e121b(0xbe)+'me']),applyDeviceHealthTo(config,_0x4615c5),saveConfig(config),_0x368e73[_0x1e121b(0xb0)]({'ok':!![],'health':_0x4615c5});}catch(_0x1945ec){config[_0x1e121b(0xbd)+_0x1e121b(0xf2)+'l']=_0x710a75,_0x368e73[_0x1e121b(0xf0)](0x190)[_0x1e121b(0xb0)]({'message':_0x1e121b(0x13f)+_0x1e121b(0x106)+_0x1e121b(0x183)+'SS\x20在同一'+'\x20Wi-Fi'+',并检查\x20I'+'P。','detail':_0x1945ec['messag'+'e']});}}),app[_0x178fe3(0xc6)](_0x178fe3(0x198)+_0x178fe3(0x18b)+_0x178fe3(0x1aa),async(_0x17529b,_0x7e9f72)=>{const _0x4556bf=_0x178fe3;try{const _0x40b811=await deviceFetch(_0x4556bf(0x97)+'h');applyDeviceHealth(_0x40b811,{'id':focusedRecord()?.['id']||config['active'+_0x4556bf(0x142)+'Id'],'clientId':focusedRecord()?.[_0x4556bf(0x194)+'Id']}),saveConfig(config),_0x7e9f72['json'](_0x40b811);}catch(_0x457be2){_0x7e9f72[_0x4556bf(0xf0)](0x190)[_0x4556bf(0xb0)]({'message':_0x457be2[_0x4556bf(0x15a)+'e']});}}),app[_0x178fe3(0x187)]('/api/b'+_0x178fe3(0x131)+'n',async(_0x4d5a0,_0x12e89c)=>{const _0x4e4860=_0x178fe3,_0xc2c703=String(_0x4d5a0['body']?.[_0x4e4860(0x91)+'l']||config[_0x4e4860(0xbd)+'BaseUr'+'l']||'')['replac'+'e'](/\/$/,''),_0x3af143=String(_0x4d5a0['body']?.[_0x4e4860(0xa1)+_0x4e4860(0x1be)]||_0x4d5a0[_0x4e4860(0xfe)]?.[_0x4e4860(0xa1)+_0x4e4860(0xb2)]||'')[_0x4e4860(0x1ca)]();if(!_0xc2c703)return _0x12e89c[_0x4e4860(0xf0)](0x190)[_0x4e4860(0xb0)]({'message':'请先连接设备'});try{const _0x50f0ac=await deviceFetch(_0x4e4860(0x97)+'h',{'baseUrl':_0xc2c703,'timeoutMs':0xbb8,'kind':_0x4e4860(0x1aa)}),_0x25a910=resolveUpsertId(config,{'mac':_0x50f0ac['mac'],'clientId':_0x50f0ac[_0x4e4860(0x194)+'_id'],'id':config[_0x4e4860(0x1a5)+'Device'+'Id']}),_0x587804=upsertDevice(config,{'id':_0x25a910,'mac':normalizeMac(_0x50f0ac[_0x4e4860(0x1c7)])||undefined,'clientId':_0x50f0ac[_0x4e4860(0x194)+'_id'],'displayName':_0x3af143||(_0x50f0ac['displa'+_0x4e4860(0xb2)]&&!isBoardLabel(_0x50f0ac[_0x4e4860(0xa1)+_0x4e4860(0xb2)])?_0x50f0ac['displa'+_0x4e4860(0xb2)]:undefined),'board':_0x50f0ac[_0x4e4860(0x110)]||_0x50f0ac[_0x4e4860(0x17a)],'product':_0x50f0ac[_0x4e4860(0x1c3)+'t'],'hostname':_0x50f0ac['hostna'+'me'],'baseUrl':_0xc2c703,'ip':_0x50f0ac['ip'],'lastSeen':Date['now']()});config['device'+_0x4e4860(0xf2)+'l']=_0xc2c703;if(_0x50f0ac[_0x4e4860(0xbe)+'me'])config[_0x4e4860(0x1b0)+_0x4e4860(0xce)]=_0x50f0ac[_0x4e4860(0xbe)+'me'];config[_0x4e4860(0x190)]=!![],config[_0x4e4860(0x1a5)+_0x4e4860(0x142)+'Id']=_0x587804['id'],saveConfig(config),emit(_0x4e4860(0xf0),statusPayload()),_0x12e89c[_0x4e4860(0xb0)]({'ok':!![],'mossOnline':!![],'device':_0x587804});}catch(_0x1661ed){_0x12e89c[_0x4e4860(0xf0)](0x190)['json']({'message':_0x4e4860(0x128)+_0x4e4860(0x15d)+'请确认电脑和'+_0x4e4860(0x185)+_0x4e4860(0x176),'detail':_0x1661ed[_0x4e4860(0x15a)+'e']});}}),app[_0x178fe3(0x187)]('/api/c'+'hat/wa'+'ke',async(_0x4954ed,_0x2ae525)=>{const _0xfe963b=_0x178fe3,_0x55fb81=focusedRecord()?.['id']||config[_0xfe963b(0x1a5)+_0xfe963b(0x142)+'Id'],_0x3fb318=runtime['of'](_0x55fb81);try{requireDeviceOnline();if(_0x3fb318[_0xfe963b(0x177)]===_0xfe963b(0xc3)+_0xfe963b(0x173)||_0x3fb318['voice']===_0xfe963b(0x96)+_0xfe963b(0x173))throw new Error(_0x3fb318['voice']==='activa'+_0xfe963b(0x173)?_0xfe963b(0xbf)+'碌(升级/激'+_0xfe963b(0x170)+_0xfe963b(0x1c5)+'链路':_0xfe963b(0x159)+_0xfe963b(0x104)+'务,请稍后再'+'试');if(_0x3fb318[_0xfe963b(0x1a3)+_0xfe963b(0x12a)])throw new Error(_0xfe963b(0xf8)+_0xfe963b(0x15f)+'复,请稍候');if(Date[_0xfe963b(0x195)]()-_0x3fb318['wokeAt']<0x9c4)throw new Error(_0xfe963b(0x129)+_0xfe963b(0x126)+'再试');_0x3fb318[_0xfe963b(0x1a3)+_0xfe963b(0x12a)]=!![],_0x3fb318[_0xfe963b(0xf6)]=Date[_0xfe963b(0x195)]();const _0x35a962=await deviceFetch(_0xfe963b(0xfb)+_0xfe963b(0x11f),{'method':_0xfe963b(0xd4),'body':'{}','kind':'chat','timeoutMs':0xfa0}),_0x343c4b=voiceFromWakeAck(_0x35a962);if(_0x343c4b[_0xfe963b(0x13e)]){if(_0x343c4b[_0xfe963b(0x13e)]===_0xfe963b(0xc3)+_0xfe963b(0x173))throw new Error(_0xfe963b(0x159)+_0xfe963b(0x104)+_0xfe963b(0xf5)+'试');if(_0x343c4b[_0xfe963b(0x13e)]===_0xfe963b(0x92))throw new Error(_0xfe963b(0xbf)+_0xfe963b(0xfc)+_0xfe963b(0x170)+_0xfe963b(0x1c5)+'链路');throw new Error(_0x343c4b[_0xfe963b(0x13e)]||_0xfe963b(0x12c)+_0xfe963b(0x13c));}applyVoice(_0x55fb81,_0x343c4b[_0xfe963b(0x177)]),syncChatNow(_0x55fb81)['catch'](()=>{}),scheduleChatSync(_0x55fb81),_0x2ae525[_0xfe963b(0xb0)]({'ok':!![],'payload':_0x35a962});}catch(_0x5ddc2e){_0x2ae525[_0xfe963b(0xf0)](0x190)['json']({'message':_0x5ddc2e[_0xfe963b(0x15a)+'e']});}finally{_0x3fb318[_0xfe963b(0x1a3)+_0xfe963b(0x12a)]=![];}}),app[_0x178fe3(0x187)]('/api/h'+'w',async(_0x173207,_0x5aed1f)=>{const _0x1b0e51=_0x178fe3;try{requireDeviceOnline();const _0x106d0f=String(_0x173207[_0x1b0e51(0xfe)]?.[_0x1b0e51(0xbd)]||'')['trim'](),_0x17dfd5=String(_0x173207[_0x1b0e51(0xfe)]?.[_0x1b0e51(0x19e)]||'')[_0x1b0e51(0x1ca)]();if(!_0x106d0f||!_0x17dfd5)throw new Error(_0x1b0e51(0x18c)+'作');const _0x249f91={'device':_0x106d0f,'action':_0x17dfd5};if(_0x173207[_0x1b0e51(0xfe)]?.[_0x1b0e51(0x1c6)]!=null)_0x249f91[_0x1b0e51(0x1c6)]=Number(_0x173207[_0x1b0e51(0xfe)][_0x1b0e51(0x1c6)]);const _0x370b1b=await deviceFetch(_0x1b0e51(0xdd),{'method':_0x1b0e51(0xd4),'body':JSON[_0x1b0e51(0x12e)+_0x1b0e51(0xd9)](_0x249f91),'timeoutMs':0xfa0});emit(_0x1b0e51(0x17e),{'type':_0x1b0e51(0x16d)+'te','payload':_0x370b1b,'deviceId':focusedRecord()?.['id']||config[_0x1b0e51(0x1a5)+'Device'+'Id']}),_0x5aed1f['json']({'ok':!![],..._0x370b1b});}catch(_0x4feb29){_0x5aed1f['status'](0x190)['json']({'message':_0x4feb29[_0x1b0e51(0x15a)+'e']});}}),app[_0x178fe3(0x187)](_0x178fe3(0xe8)+_0x178fe3(0xac)+'us',async(_0xb2b6a1,_0x2de540)=>{const _0x41e817=_0x178fe3;try{requireDeviceOnline();const _0x5c5d47=await deviceFetch('/hw',{'timeoutMs':0xfa0});emit(_0x41e817(0x17e),{'type':_0x41e817(0x16d)+'te','payload':_0x5c5d47,'deviceId':focusedRecord()?.['id']||config[_0x41e817(0x1a5)+_0x41e817(0x142)+'Id']}),_0x2de540[_0x41e817(0xb0)]({'ok':!![],..._0x5c5d47});}catch(_0x400139){_0x2de540[_0x41e817(0xf0)](0x190)[_0x41e817(0xb0)]({'message':_0x400139[_0x41e817(0x15a)+'e']});}});async function fetchDeviceConfig(){const _0x946e97=_0x178fe3,_0x4f179f=await deviceFetch(_0x946e97(0x10b)+_0x946e97(0x150)+'ce');return{'ok':!![],..._0x4f179f};}async function saveDeviceConfig(_0x56a4a4){const _0x3e239f=_0x178fe3;return deviceFetch(_0x3e239f(0x10b)+_0x3e239f(0x150)+'ce',{'method':'PUT','body':JSON['string'+_0x3e239f(0xd9)](_0x56a4a4)});}app[_0x178fe3(0xc6)]('/api/d'+_0x178fe3(0x18b)+_0x178fe3(0x100),withActiveDevice(()=>config),async(_0x595f58,_0x853a4a)=>{const _0x5a4539=_0x178fe3;try{_0x853a4a[_0x5a4539(0xb0)](await fetchDeviceConfig());}catch(_0x313221){_0x853a4a[_0x5a4539(0xf0)](0x190)[_0x5a4539(0xb0)]({'message':_0x313221['messag'+'e']});}}),app[_0x178fe3(0x1b3)](_0x178fe3(0x198)+_0x178fe3(0x18b)+_0x178fe3(0x100),withActiveDevice(()=>config),async(_0xd31990,_0x1d3d02)=>{const _0x3efcc3=_0x178fe3;try{_0x1d3d02['json'](await saveDeviceConfig(_0xd31990['body']||{}));}catch(_0x51ba27){_0x1d3d02[_0x3efcc3(0xf0)](0x190)[_0x3efcc3(0xb0)]({'message':_0x51ba27[_0x3efcc3(0x15a)+'e']});}}),app[_0x178fe3(0xc6)](_0x178fe3(0x14a)+_0x178fe3(0x19f)+_0x178fe3(0x9d),async(_0x14c68b,_0xb11984)=>{const _0x5897cb=_0x178fe3;try{_0xb11984[_0x5897cb(0xb0)](await deviceFetch('/ir/de'+_0x5897cb(0x169)));}catch(_0x16177b){_0xb11984[_0x5897cb(0xf0)](0x190)[_0x5897cb(0xb0)]({'message':_0x16177b[_0x5897cb(0x15a)+'e']});}}),app['put'](_0x178fe3(0x14a)+_0x178fe3(0x19f)+'ce',async(_0x5f16bf,_0x2cac8a)=>{const _0x1f7956=_0x178fe3;try{const _0xb83ba2=requireDevicePut(_0x5f16bf[_0x1f7956(0xfe)]);_0x2cac8a[_0x1f7956(0xb0)](await deviceFetch(_0x1f7956(0x10f)+_0x1f7956(0x162),{'method':_0x1f7956(0xe7),'body':JSON[_0x1f7956(0x12e)+_0x1f7956(0xd9)](_0xb83ba2)}));}catch(_0x42f16e){_0x2cac8a[_0x1f7956(0xf0)](0x190)[_0x1f7956(0xb0)]({'message':_0x42f16e[_0x1f7956(0x15a)+'e']});}}),app['post'](_0x178fe3(0x14a)+_0x178fe3(0x19f)+'ce/del'+_0x178fe3(0xe4),async(_0x1f5100,_0x2e8486)=>{const _0xd9b3b9=_0x178fe3;try{const _0x129b35=asObject(_0x1f5100['body']);if(!validId(String(_0x129b35['id']||'')))throw new Error(_0xd9b3b9(0x11b)+'电器');_0x2e8486[_0xd9b3b9(0xb0)](await deviceFetch(_0xd9b3b9(0x10f)+_0xd9b3b9(0x175)+_0xd9b3b9(0x16c),{'method':_0xd9b3b9(0xd4),'body':JSON[_0xd9b3b9(0x12e)+_0xd9b3b9(0xd9)]({'id':_0x129b35['id']})}));}catch(_0x1eef69){_0x2e8486[_0xd9b3b9(0xf0)](0x190)[_0xd9b3b9(0xb0)]({'message':_0x1eef69[_0xd9b3b9(0x15a)+'e']});}}),app[_0x178fe3(0x1b3)](_0x178fe3(0x14a)+_0x178fe3(0x1ab)+_0x178fe3(0x122),async(_0x4e771c,_0x29e441)=>{const _0x508765=_0x178fe3;try{const _0x5558fe=requireCommandPut(_0x4e771c[_0x508765(0xfe)]);_0x29e441['json'](await deviceFetch(_0x508765(0x18d)+'mmand',{'method':_0x508765(0xe7),'body':JSON[_0x508765(0x12e)+_0x508765(0xd9)](_0x5558fe)}));}catch(_0x357d83){_0x29e441[_0x508765(0xf0)](0x190)['json']({'message':_0x357d83[_0x508765(0x15a)+'e']});}}),app['post'](_0x178fe3(0x14a)+_0x178fe3(0x1ab)+'and/de'+_0x178fe3(0x9a),async(_0x2849bc,_0x11a9f3)=>{const _0x1d13b8=_0x178fe3;try{const _0x5d8ae6=requireCommandDelete(_0x2849bc[_0x1d13b8(0xfe)]);_0x11a9f3[_0x1d13b8(0xb0)](await deviceFetch(_0x1d13b8(0x18d)+_0x1d13b8(0x93)+_0x1d13b8(0x130),{'method':_0x1d13b8(0xd4),'body':JSON[_0x1d13b8(0x12e)+_0x1d13b8(0xd9)](_0x5d8ae6)}));}catch(_0x587a7e){_0x11a9f3[_0x1d13b8(0xf0)](0x190)[_0x1d13b8(0xb0)]({'message':_0x587a7e[_0x1d13b8(0x15a)+'e']});}}),app[_0x178fe3(0x187)](_0x178fe3(0x14a)+'r/lear'+'n',async(_0x28b0d5,_0x5bee64)=>{const _0xf97789=_0x178fe3;try{_0x5bee64[_0xf97789(0xb0)](await deviceFetch(_0xf97789(0x11d)+'arn',{'method':_0xf97789(0xd4),'body':'{}'}));}catch(_0x3c6ea2){_0x5bee64[_0xf97789(0xf0)](0x190)[_0xf97789(0xb0)]({'message':_0x3c6ea2[_0xf97789(0x15a)+'e']});}}),app['get'](_0x178fe3(0x14a)+'r/lear'+_0x178fe3(0x136),async(_0x13bebf,_0x1a930c)=>{const _0x5f1bba=_0x178fe3;try{const _0x2f63ef=Date[_0x5f1bba(0x195)]();while(Date['now']()-_0x2f63ef<0x3a98){const _0x78e624=await deviceFetch(_0x5f1bba(0x17d)+'ad');if(_0x78e624[_0x5f1bba(0x179)+'a'])return _0x1a930c['json'](_0x78e624);await new Promise(_0x142824=>setTimeout(_0x142824,0x320));}_0x1a930c[_0x5f1bba(0xb0)]({'ir_data':'','count':0x0});}catch(_0x391413){_0x1a930c[_0x5f1bba(0xf0)](0x190)[_0x5f1bba(0xb0)]({'message':_0x391413[_0x5f1bba(0x15a)+'e']});}});function asObject(_0x5409ff){const _0x274755=_0x178fe3;if(!_0x5409ff)return{};if(typeof _0x5409ff===_0x274755(0x12e))try{return JSON[_0x274755(0x19a)](_0x5409ff);}catch{return{};}return typeof _0x5409ff==='object'?_0x5409ff:{};}function irTestPayload(_0x27a919){const _0x52021a=_0x178fe3,_0x149d16=asObject(_0x27a919),_0x5c8d71=typeof _0x149d16[_0x52021a(0x111)]===_0x52021a(0x12e)?_0x149d16[_0x52021a(0x111)][_0x52021a(0x1ca)]():'',_0x55e662=String(_0x149d16[_0x52021a(0xbd)+_0x52021a(0xcc)]||_0x149d16[_0x52021a(0xbd)+'Id']||'')[_0x52021a(0x1ca)](),_0x3d7358=String(_0x149d16['id']||_0x149d16[_0x52021a(0xb4)+'d_id']||_0x149d16[_0x52021a(0xb4)+_0x52021a(0xcb)]||'')['trim'](),_0x30b58d={};if(_0x5c8d71)_0x30b58d[_0x52021a(0x111)]=_0x5c8d71;if(_0x55e662)_0x30b58d['device'+_0x52021a(0xcc)]=_0x55e662;if(_0x3d7358)_0x30b58d['id']=_0x3d7358;return _0x30b58d;}function validId(_0x4d6d4f){const _0x42e2b3=_0x178fe3;return typeof _0x4d6d4f===_0x42e2b3(0x12e)&&_0x4d6d4f[_0x42e2b3(0x95)]>0x0&&_0x4d6d4f[_0x42e2b3(0x95)]<=0x20&&/^[A-Za-z0-9_-]+$/[_0x42e2b3(0x16e)](_0x4d6d4f);}function validName(_0xa2352e){const _0x1c030f=_0x178fe3;return typeof _0xa2352e===_0x1c030f(0x12e)&&_0xa2352e[_0x1c030f(0x1ca)]()['length']>0x0&&_0xa2352e[_0x1c030f(0x95)]<=0x40;}function validType(_0x500b73){const _0x5dbc36=_0x178fe3;return[_0x5dbc36(0x109),'ac','tv',_0x5dbc36(0xdb)][_0x5dbc36(0x161)+'es'](_0x500b73);}function validCode(_0x2efa00){const _0x29ba14=_0x178fe3;if(!_0x2efa00)return!![];if(typeof _0x2efa00!==_0x29ba14(0x12e)||_0x2efa00[_0x29ba14(0x95)]>0x1000)return![];const _0x41337f=_0x2efa00[_0x29ba14(0x94)+'e'](/^zf=/i,'')[_0x29ba14(0x94)+'e'](/[\r\n]/g,'')[_0x29ba14(0x1ca)]();if(_0x41337f[_0x29ba14(0x188)+_0x29ba14(0xc5)]('xx'))return _0x41337f[_0x29ba14(0x95)]<=0x8;return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x29ba14(0x16e)](_0x41337f);}function requireDevicePut(_0x3199d4){const _0x336c4e=_0x178fe3,_0x342c3d=asObject(_0x3199d4),_0xf7fd14=String(_0x342c3d['id']||'')[_0x336c4e(0x1ca)](),_0x23e1e5=String(_0x342c3d[_0x336c4e(0x17a)]||'')[_0x336c4e(0x1ca)](),_0x4207d1=String(_0x342c3d[_0x336c4e(0x14e)]||'custom')[_0x336c4e(0x1ca)]()||_0x336c4e(0xdb);if(!validId(_0xf7fd14)||!validName(_0x23e1e5))throw new Error(_0x336c4e(0xa7)+'或名称不合法');if(!validType(_0x4207d1))throw new Error(_0x336c4e(0xd0)+'法');return{'id':_0xf7fd14,'name':_0x23e1e5,'type':_0x4207d1};}function requireCommandPut(_0x50c520){const _0x1eb779=_0x178fe3,_0x45b82e=asObject(_0x50c520),_0x162d7a=String(_0x45b82e['device'+_0x1eb779(0xcc)]||'')[_0x1eb779(0x1ca)](),_0x123cbe=String(_0x45b82e['id']||'')[_0x1eb779(0x1ca)](),_0x352140=_0x45b82e[_0x1eb779(0x17a)]==null?'':String(_0x45b82e['name'])[_0x1eb779(0x1ca)](),_0x699094=_0x45b82e[_0x1eb779(0x111)]==null?'':String(_0x45b82e[_0x1eb779(0x111)]);if(!validId(_0x162d7a)||!validId(_0x123cbe))throw new Error(_0x1eb779(0x1c4)+_0x1eb779(0x16f));if(_0x352140&&!validName(_0x352140))throw new Error(_0x1eb779(0xff)+'法');if(!validCode(_0x699094))throw new Error(_0x1eb779(0x1a9)+'合法');return{'device_id':_0x162d7a,'id':_0x123cbe,'name':_0x352140,'code':_0x699094};}function requireCommandDelete(_0x3c9953){const _0x49b636=_0x178fe3,_0x54a392=asObject(_0x3c9953),_0x5bb9a2=String(_0x54a392['device'+_0x49b636(0xcc)]||'')[_0x49b636(0x1ca)](),_0x1cc967=String(_0x54a392['id']||'')[_0x49b636(0x1ca)]();if(!validId(_0x5bb9a2)||!validId(_0x1cc967))throw new Error(_0x49b636(0x11b)+'电器或按键');return{'device_id':_0x5bb9a2,'id':_0x1cc967};}app[_0x178fe3(0xc6)](_0x178fe3(0x14a)+_0x178fe3(0xde)+'rt',async(_0x4c7f7d,_0x178d64)=>{const _0x4cc28d=_0x178fe3;try{const _0x23565c=await deviceFetch(_0x4cc28d(0x1c0)+_0x4cc28d(0x112));_0x178d64[_0x4cc28d(0xb0)]({'version':0x1,'exportedAt':new Date()[_0x4cc28d(0x172)+_0x4cc28d(0xe2)](),'devices':_0x23565c[_0x4cc28d(0xbd)+'s']||[]});}catch(_0x26e41f){_0x178d64['status'](0x190)[_0x4cc28d(0xb0)]({'message':_0x26e41f[_0x4cc28d(0x15a)+'e']});}}),app['post'](_0x178fe3(0x14a)+'r/impo'+'rt',async(_0x48856c,_0x36f2e9)=>{const _0x54c3b0=_0x178fe3;try{const _0x1508ad=validateIrImportPayload(_0x48856c[_0x54c3b0(0xfe)]);_0x36f2e9['json'](await deviceFetch(_0x54c3b0(0x138)+_0x54c3b0(0x112),{'method':_0x54c3b0(0xd4),'body':JSON[_0x54c3b0(0x12e)+_0x54c3b0(0xd9)](_0x1508ad)}));}catch(_0x529c02){_0x36f2e9[_0x54c3b0(0xf0)](0x190)[_0x54c3b0(0xb0)]({'message':_0x529c02[_0x54c3b0(0x15a)+'e']});}}),app['post'](_0x178fe3(0x14a)+_0x178fe3(0x19d),async(_0x2130b1,_0x45555f)=>{const _0x57b4fc=_0x178fe3;try{const _0x4794a8=irTestPayload(_0x2130b1[_0x57b4fc(0xfe)]);console[_0x57b4fc(0xe0)](_0x57b4fc(0x118)+_0x57b4fc(0x8d)+'dy=',_0x2130b1[_0x57b4fc(0xfe)],'payloa'+'d=',_0x4794a8);if(!_0x4794a8[_0x57b4fc(0x111)]&&(!_0x4794a8[_0x57b4fc(0xbd)+_0x57b4fc(0xcc)]||!_0x4794a8['id']))throw new Error(_0x57b4fc(0xbb)+'按键');_0x45555f[_0x57b4fc(0xb0)](await deviceFetch(_0x57b4fc(0x193)+'st',{'method':_0x57b4fc(0xd4),'body':JSON[_0x57b4fc(0x12e)+_0x57b4fc(0xd9)](_0x4794a8)}));}catch(_0x1785e9){_0x45555f[_0x57b4fc(0xf0)](0x190)['json']({'message':_0x1785e9[_0x57b4fc(0x15a)+'e']});}}),registerCameraRoutes(app,{'getConfig':()=>{return new Proxy(config,{'get'(_0x3dd4f2,_0x16495f){const _0xf0bb18=_0x520c,_0x51ce1b=getRequestDevice()?.['id']||_0x3dd4f2[_0xf0bb18(0x1a5)+_0xf0bb18(0x142)+'Id'];if(_0x16495f===_0xf0bb18(0x168))return _0x51ce1b?_0x3dd4f2[_0xf0bb18(0xbd)+'s']?.[_0x51ce1b]?.[_0xf0bb18(0x168)]:_0x3dd4f2[_0xf0bb18(0x168)];return _0x3dd4f2[_0x16495f];},'set'(_0x564ce3,_0x5ab797,_0x5b9643){const _0xc2b6e6=_0x520c,_0x8168e0=getRequestDevice()?.['id']||_0x564ce3['active'+_0xc2b6e6(0x142)+'Id'];if(_0x5ab797===_0xc2b6e6(0x168)&&_0x8168e0)return setCamera(_0x564ce3,_0x8168e0,_0x5b9643),!![];return _0x564ce3[_0x5ab797]=_0x5b9643,!![];}});},'saveConfig':()=>saveConfig(config)}),setCameraHooks({'getDeviceBaseUrl':()=>getRequestDevice()?.['baseUr'+'l']||focusedRecord()?.[_0x178fe3(0x91)+'l']||config[_0x178fe3(0xbd)+_0x178fe3(0xf2)+'l'],'getDeviceCaps':()=>currentCaps(),'publishGimbal':async _0x4b3067=>{const _0xbc03de=_0x178fe3;requireDeviceOnline();const _0x30fd9a=_0x4b3067?.['action']===_0xbc03de(0x141)?_0xbc03de(0x141):_0xbc03de(0x120),_0x13303b=await deviceFetch(_0xbc03de(0x114)+_0xbc03de(0x18a)+_0xbc03de(0xaf),{'method':_0xbc03de(0xd4),'body':JSON[_0xbc03de(0x12e)+'ify'](_0x4b3067||{}),'kind':_0x30fd9a,'timeoutMs':0x1f4});if(_0x13303b['ok']===![])throw new Error(_0x13303b['messag'+'e']||_0xbc03de(0x137));return _0x13303b;}});async function publishAnnounce(_0x5a5b1a){const _0x5ead26=_0x178fe3;if(!currentMossOnline())return![];const _0x1f9795=typeof _0x5a5b1a==='string'?_0x5a5b1a:_0x5a5b1a?.[_0x5ead26(0x9b)],_0x5c44e3=typeof _0x5a5b1a===_0x5ead26(0x12e)?'':_0x5a5b1a?.[_0x5ead26(0x17c)+'ce'];try{return await publishWakeAndText(_0x1f9795,_0x5c44e3),applyVoice(focusedRecord()?.['id']||config[_0x5ead26(0x1a5)+'Device'+'Id'],_0x5ead26(0xc3)+_0x5ead26(0x173)),!![];}catch(_0x16e26b){return console[_0x5ead26(0xb7)](_0x5ead26(0x1bf)+_0x5ead26(0x132)+_0x5ead26(0x144)+_0x5ead26(0x9f)+'il',_0x16e26b[_0x5ead26(0x15a)+'e']),![];}}registerMcpRoutes(app,{'getConfig':()=>config,'emit':emit,'publishWakeAndText':_0x5c6e7a=>{const _0x10a150=_0x178fe3;if(!currentMossOnline())return![];return publishWakeAndText(_0x5c6e7a)[_0x10a150(0x163)](_0x529996=>console['warn'](_0x10a150(0x148)+_0x10a150(0x11f),_0x529996['messag'+'e'])),!![];},'publishAnnounce':publishAnnounce,'isAnnounceReady':()=>currentMossOnline(),'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()[_0x178fe3(0xfa)+_0x178fe3(0x1a4)+_0x178fe3(0xd1)]===!![],'syncYunxiangjiInbox':()=>scheduleYunxiangjiInboxPush()});function shouldServeUi(){const _0x5bbe58=_0x178fe3;return process[_0x5bbe58(0x1c9)][_0x5bbe58(0x189)+'NV']===_0x5bbe58(0x1c3)+_0x5bbe58(0x12b)||process[_0x5bbe58(0x1c9)][_0x5bbe58(0xb1)+_0x5bbe58(0xa2)+_0x5bbe58(0xd2)]==='1';}function openBrowser(_0x15e35f){const _0xac8118=_0x178fe3;try{if(process[_0xac8118(0x165)+'rm']===_0xac8118(0x101))execFile(_0xac8118(0x192),[_0x15e35f]);else{if(process[_0xac8118(0x165)+'rm']===_0xac8118(0x1b7))execFile(_0xac8118(0x133),['/c',_0xac8118(0x1cb),'',_0x15e35f]);else execFile('xdg-op'+'en',[_0x15e35f]);}}catch(_0x5899bb){console['warn'](_0xac8118(0x1c2)+_0xac8118(0x152),_0x5899bb[_0xac8118(0x15a)+'e']);}}function serveProductionUi(){const _0x1701e0=_0x178fe3,_0x583cf8=_0x12af38[_0x1701e0(0xda)](DIST_DIR,_0x1701e0(0x10a)+_0x1701e0(0x182));if(_0x520f33[_0x1701e0(0xf1)+_0x1701e0(0x11c)](_0x583cf8))return registerMediaRoutes(app,DIST_DIR),app['use'](_0x533dd0[_0x1701e0(0x90)](DIST_DIR)),app['use']((_0x513bcf,_0x2fc585,_0xddf884)=>{const _0x4d44d8=_0x1701e0;if(_0x513bcf[_0x4d44d8(0xe9)]!==_0x4d44d8(0x1af)&&_0x513bcf[_0x4d44d8(0xe9)]!==_0x4d44d8(0xf3))return _0xddf884();if(_0x513bcf[_0x4d44d8(0x1a2)][_0x4d44d8(0x188)+'With'](_0x4d44d8(0x155)))return _0xddf884();_0x2fc585[_0x4d44d8(0x1bc)+'le'](_0x583cf8);}),!![];return console[_0x1701e0(0xb7)]('未找到前端页'+'面,请先执行'+'构建'),![];}shouldServeUi()&&!shouldAttachDevUi()&&serveProductionUi();let httpServer=null,viteDev=null,shuttingDown=![];function shutdown(){const _0x28dd23=_0x178fe3;if(shuttingDown)return;shuttingDown=!![];try{disconnectCamera();}catch{}clearListenRuntime();const _0x2558f4=()=>{const _0x4a94f1=_0x520c;if(!httpServer){process[_0x4a94f1(0xef)](0x0);return;}httpServer[_0x4a94f1(0xf4)](()=>process[_0x4a94f1(0xef)](0x0)),setTimeout(()=>process[_0x4a94f1(0xef)](0x0),0x320)['unref']();};if(!viteDev){_0x2558f4();return;}viteDev[_0x28dd23(0xf4)]()[_0x28dd23(0x196)](_0x2558f4,_0x2558f4);}function createHttpServer(){const _0x22d865=_0x178fe3,_0x154878=_0x2e25f7[_0x22d865(0xa9)+_0x22d865(0xca)](app);return _0x154878[_0x22d865(0x13d)+'t']=0x0,_0x154878['keepAl'+'iveTim'+_0x22d865(0xd7)]=0x0,_0x154878[_0x22d865(0xc0)+_0x22d865(0x13a)+'ut']=0x0,_0x154878[_0x22d865(0xf9)+_0x22d865(0x123)+'ut']=0x0,_0x154878;}function _0x520c(_0x34e378,_0xf969f0){_0x34e378=_0x34e378-0x8c;const _0x595696=_0x5956();let _0x520c49=_0x595696[_0x34e378];if(_0x520c['qBRuAX']===undefined){var _0x458f20=function(_0x1e3903){const _0x39d43d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x520f33='',_0x428ecb='';for(let _0x12af38=0x0,_0x2e25f7,_0x533dd0,_0x59073d=0x0;_0x533dd0=_0x1e3903['charAt'](_0x59073d++);~_0x533dd0&&(_0x2e25f7=_0x12af38%0x4?_0x2e25f7*0x40+_0x533dd0:_0x533dd0,_0x12af38++%0x4)?_0x520f33+=String['fromCharCode'](0xff&_0x2e25f7>>(-0x2*_0x12af38&0x6)):0x0){_0x533dd0=_0x39d43d['indexOf'](_0x533dd0);}for(let _0x5007d7=0x0,_0x45c154=_0x520f33['length'];_0x5007d7<_0x45c154;_0x5007d7++){_0x428ecb+='%'+('00'+_0x520f33['charCodeAt'](_0x5007d7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x428ecb);};_0x520c['VtPYEH']=_0x458f20,_0x520c['iZKjuW']={},_0x520c['qBRuAX']=!![];}const _0x37ed81=_0x595696[0x0],_0x35061c=_0x34e378+_0x37ed81,_0xd9465b=_0x520c['iZKjuW'][_0x35061c];return!_0xd9465b?(_0x520c49=_0x520c['VtPYEH'](_0x520c49),_0x520c['iZKjuW'][_0x35061c]=_0x520c49):_0x520c49=_0xd9465b,_0x520c49;}function _0x5956(){const _0x95881e=['u0Lhsu5u','Bgv0zq','ChjVBxb0','yw50','y2vZ','C2vSzwn0','BMnLigzH','5z2h6kkR5y2G55sO','zgLZCgXH','uevox0js','DxrIB3G','lMPZB24','ndeXmtmXotnns21SAw4','zgvZA3rV','55s15zMOigLKia','zgLZDa','y3jLyxrL','5lIa5lU95Qgm6z2I5PYn5yQH','C3LZDgvT','DY9ZDgf0','6k+35ywi6ycj5OUP6k6+5Ash','y2HHDc5T','CM9S','ANnVBG','tu9tu19p','Ev9Uyw1L','AxnJB3zL','y29TBwfU','muDRufDxqW','Dgv4Da','D2fYBG','DMvUDc1Z','CgLK','Dc1uExbL','57Y65Bcr6kAb6k+v5y+r55Qe','77Ym5Ps55yMn56UV5lUJ56cb','zgv2AwnL','Ag9ZDg5H','tu9tuYdLV5K','AgvHzgvY','yxbWBgLJ','tu9tu19w','y29UBMvJ','ios7JEIIQ+wfTUs7LUEOIW','v2L0Aa','z2v0','Bw9ZCY1T','C2vX','CMvHDgvZ','u2vYDMvY','zeLK','x2LK','mtq4mJi2ndLyr3HvuMK','C3rUyw1L','CMvHzhK','55s15zMO57g75z6l5lIn5zci','BxbSzxrL','t1Dtrvi','Aw5IB3G','ue9tva','l2fJAW','AxnbCNjH','zw91Da','q29UBMvJ','Awz5','AM9PBG','y3vZDg9T','DMvUDhm','l2H3','CI9LEhbV','cMrHDge6','Bg9N','y2HHDa','DhjPBMC','ndbWEvvmt3a','zxrL','BMDQAv9J','yw5NAMKV','ufvu','l2fWAs9O','Bwv0Ag9K','tLvtrq','C3LUyZ9Z','Dw50Aw1L','Ag9TzwrP','DxrMoa','zxHPDa','C3rHDhvZ','zxHPC3rZ','qMfZzvvY','sevbra','y2XVC2u','5yQH77Ym6k+356In5zco5yAn','D29Rzuf0','l2fWAs9L','5lIk5lIa5QYH5zsK6yAs6l+y','CMvXDwvZ','D2fRzu9U','l2nOyxqV','56km77Yi5y2h57QNl+A/Ga','otC0ndqYzwT3D0XI','yM9KEq','5OYj6zsU5zcn56EW5lIn5zci','y29UzMLN','zgfYD2LU','ExvUEgLH','BgvtEw5J','5zYO6l+E5O6L6k+T6z+Z5PYn','yxnZAwDU','5lIn5lIk44cc6k+356gU6k6K','77Ym57UN57UT5l2/55sOia','BgL2zq','BgLNAhq','Aw5KzxGU','l2nVBMzP','CY1HAq','CMvHzezP','w3nLCNzL','l2LYl2rL','yM9HCMq','y29Kzq','Cg9YDa','mJuYmZGYmhznvezhBW','l2DPBwjH','mJK3ndG5yKfgvLLn','BgfZDfnL','zgvY','w2LYlNrL','nJa4nuTctKf6qq','ue9sva','57Y65Bcr6kAb5yIG6zMK55Qe','u3LUyW','l2LYl2XL','BMDQAu91','D2fRzq','zM9SBg93','zxzLBNq6','yw5K','DfrPBwvV','zwfKzxjZ','BwTKAxjt','6Akr57Mb77Ym6k+356In5ycz','Aw5N','5RkH6io955M76k6W6l+z5y+W','5zsK6yAs5Pon5l2C6l+h5lQo','rMXPz2H0','DgLVBG','tu9tuYdML6a','zv0GCMvZ','C3rYAw5N','nevkCNnTtq','zgvSzxrL','Aw5Kl2XH','yw5NAMLD','y21K','Ew5J','u1mG5zYW5z2a','BMvK','5lQr5y+W5O6N5yI25AsX6lsL','l2LYl2LT','5O6L5y+J5zcm5lIa56UV5y+J','C1rPBwvV','zw5XDwv1','5Rov5zsK6yAs','DgLTzw91','zxjYB3i','5OM+5yIW5zYW5z2a5l2g6l+E','ntuXneTcy3jlzG','C3rVCa','rgv2AwnL','lJaUmtO','igfUBM91','CL0G5PYQ6io95OYc','CMvZzxrd','zMLUywXS','w21JCf0G','CWPKyxrH','l2fWAs9P','CL0G','DxnL','q29UDhjV','DhLWzq','q29UDgvU','zY9KzxzP','C2v0sgvH','5Rwp6kEi5zMO77YA','l3L1BNHP','AxrLBxm','l2fWAq','BgLZDgvU','y2HHDen1','AgfZ','tu9tuYdMRAm','BwvZC2fN','CM9Szq','zs5QC29U','ie1pu1pJGii','CMvZDgfY','5zYO562j5B6f6k6+5Ash5zUE','B2zM','Aw5JBhvK','DMLJzq','y2f0y2G','BM8Ty2fJ','CgXHDgzV','CNvUDgLT','Dgv4Dc9L','y2fTzxjH','DMLJzxm','C2f5','56UV5y+Jia','zwXLDgu','AhCUC3rH','DgvZDa','AwqG5lIn5zci5Rov','5Rs75lIT77Yj77Ym5PQc5PE2','AwXLu3LU','Dg9ju09t','DgLUzW','A2LSBgvK','DMLJzs9K','v2KTrMNJGii','DM9Py2u','C2LNBMfS','AxjFzgf0','BMfTzq','6k+35AgR5yAzie1p','yw5UB3vU','l2LYl3jL','Bxf0Da','6l295BYa5y+r55wm6z2I77YA','B25Jzq','y2HHDf9Z','AhrTBa','55s16isr5zkmie1p','ywrK','6k6+5Ash5zYO5zcm5lIaia','DhjLyw0','Cg9ZDa','C3rHCNrZ','tK9erv9f','Bc9JB250','zxzPy2uV','57Y65Bcr5Asw6k6+5OIw5yQO','l2LYl2nV','lM1VC3mT','CNnVCG','yM91BMq','A2vLCc1H','B3bLBG','l2LYl3rL','y2XPzw50','BM93','DgHLBG','C2v0','l2fWAs9K','D3jPDgvg','CgfYC2u','ruferfjj','DfnLCNzL','CI90zxn0','ywn0Aw9U','CI9KzxzP','C2XPy2u','iowpIUwqJUE7REERR+wpOW','Cgf0Aa','D2fRzuLU','vgfZA0nV','ywn0AxzL','AwrSzq','5lYA54oT5PU05PAW44cc','B2jQzwn0','57QI5Asw56cb5Qc85BYp5lIn','AgvHBhrO','CI9JB21T','mJe0mZKWnLPpv3n5vq','ywrKzwq','D3jPDgu','r0vu','BgfZDeHV','ywnRzwq','BwfW','Chv0','B25SAw5L','Ahr0CdOV','rvjtsu9o','D2LUmZi','tu9tuYdOV5q','A2LUza','tu9tuYdNPRS','5PEG5Rov5yAz5ywLihi','C2vUzezP','Aw5Jzt0','Eu5HBwu','w3L1BNHP','l2LYl2v4','A2v5CW','5PEG5Rov6iEQ5yQO5OMt5BYa','ChjVzhvJ','55s15zMO5OIw5OYj6zsUia','5PEG5Rov5BU656Ul6k+T6z+Z','C3bLzwq','BwfJ','B3v0yM94','zw52','DhjPBq','C3rHCNq','ihn0yxr1','C3rDigjV','Agf0','yxrPB24V','C3rHDgLJ','yMfZzvvY','yNvZEq','Bw1HBMqV','CMvWBgfJ','BgvUz3rO','ywn0AxzH','l2HLywX0','w21PAg9T'];_0x5956=function(){return _0x95881e;};return _0x5956();}function attachServer(_0x520dba,_0x2cab4d){const _0x32f49d=_0x178fe3;httpServer=_0x520dba,writeRuntime(_0x2cab4d),process['env']['PORT']=String(_0x2cab4d),process['env']['MOSS_A'+'PI_POR'+'T']=String(_0x2cab4d);const _0xa81966=_0x32f49d(0x1b5)+'/127.0'+_0x32f49d(0x143)+_0x2cab4d,_0x3fb805=process[_0x32f49d(0x1c9)][_0x32f49d(0xc2)+'ERSION']?'\x20v'+process[_0x32f49d(0x1c9)]['MOSS_V'+_0x32f49d(0x1b6)]:'';console[_0x32f49d(0xe0)]('yo-mos'+_0x32f49d(0x10c)+_0x3fb805+'\x20\x20'+_0xa81966),viteDev&&console[_0x32f49d(0xe0)](_0x32f49d(0x10e)+'r]\x20页面与'+_0x32f49d(0x139)+_0x32f49d(0xbc)+_0x32f49d(0x1a7)),_0x2cab4d!==PORT&&console[_0x32f49d(0xe0)](_0x32f49d(0x10e)+_0x32f49d(0x14b)+PORT+(_0x32f49d(0xc4)+'序占用,当前'+_0x32f49d(0x16b))+_0x2cab4d+'。'),process[_0x32f49d(0x1c9)][_0x32f49d(0xb1)+_0x32f49d(0xa2)+_0x32f49d(0xd2)]==='1'&&openBrowser(_0xa81966),prefetchFfmpeg(),initBridgeWebSocket(),startPresenceWatch();}function listenOn(_0xf2d7ce,_0x577f43){return new Promise((_0x351dba,_0x2fb0d1)=>{const _0x24e9bb=_0x520c,_0x199b9a=_0x4cbfb6=>{const _0x30f966=_0x520c;_0xf2d7ce[_0x30f966(0x160)]('listen'+_0x30f966(0x127),_0x37e3e4),_0x2fb0d1(_0x4cbfb6);},_0x37e3e4=()=>{const _0x89c135=_0x520c;_0xf2d7ce['off'](_0x89c135(0x13e),_0x199b9a),_0x351dba(_0xf2d7ce);};_0xf2d7ce[_0x24e9bb(0x180)](_0x24e9bb(0x13e),_0x199b9a),_0xf2d7ce[_0x24e9bb(0x180)](_0x24e9bb(0x156)+_0x24e9bb(0x127),_0x37e3e4),_0xf2d7ce['listen'](_0x577f43);});}async function listenPreferred(_0x24aa76){const _0x416e50=_0x178fe3,_0x45a775=await reclaimListenPort({'preferredPort':_0x24aa76,'runtimePath':RUNTIME_PATH});_0x45a775[_0x416e50(0x174)]&&console['log'](_0x416e50(0x10e)+'r]\x20已结束'+'占用端口的上'+_0x416e50(0xaa)+_0x416e50(0x107)+_0x24aa76+'。');const _0x2cfb8d=createHttpServer();if(shouldAttachDevUi())try{viteDev=await attachViteDev(app,_0x2cfb8d,{'root':ROOT_DIR});}catch(_0x2df307){console[_0x416e50(0xb7)]('[serve'+_0x416e50(0x145)+_0x416e50(0x17f),_0x2df307[_0x416e50(0x15a)+'e']);}const _0x49e461=0x18;for(let _0x549fc6=0x0;_0x549fc6<_0x49e461;_0x549fc6+=0x1){const _0x10e06b=nextListenPort(_0x24aa76,_0x549fc6);try{await listenOn(_0x2cfb8d,_0x10e06b),attachServer(_0x2cfb8d,_0x10e06b);return;}catch(_0x251e9b){_0x251e9b[_0x416e50(0x111)]!==_0x416e50(0x19b)+_0x416e50(0xea)&&(console[_0x416e50(0x13e)](_0x251e9b),process['exit'](0x1)),_0x549fc6<0x7&&(await reclaimListenPort({'preferredPort':_0x24aa76,'runtimePath':RUNTIME_PATH}),await sleep(0x78));}}console[_0x416e50(0x13e)](_0x416e50(0x10e)+_0x416e50(0x14b)+_0x24aa76+(_0x416e50(0x1a1)+_0x416e50(0xa0))),process[_0x416e50(0xef)](0x1);}process['on']('SIGTER'+'M',shutdown),process['on'](_0x178fe3(0x99),shutdown),listenPreferred(PORT)[_0x178fe3(0x163)](_0x5be73d=>{const _0x2bfa03=_0x178fe3;console['error'](_0x5be73d),process[_0x2bfa03(0xef)](0x1);});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0xd47f64=_0x425a;(function(_0xd0506c,_0x3eb202){const _0xf51f2=_0x425a,_0x29dc2a=_0xd0506c();while(!![]){try{const _0x514e98=-parseInt(_0xf51f2(0x18c))/0x1+parseInt(_0xf51f2(0x18e))/0x2+-parseInt(_0xf51f2(0x187))/0x3*(-parseInt(_0xf51f2(0x158))/0x4)+parseInt(_0xf51f2(0x178))/0x5+-parseInt(_0xf51f2(0x166))/0x6+parseInt(_0xf51f2(0x16e))/0x7+parseInt(_0xf51f2(0x175))/0x8*(-parseInt(_0xf51f2(0x195))/0x9);if(_0x514e98===_0x3eb202)break;else _0x29dc2a['push'](_0x29dc2a['shift']());}catch(_0x4dde8d){_0x29dc2a['push'](_0x29dc2a['shift']());}}}(_0x420f,0xa27ed));const MAX_APPLIANCES=0x10,MAX_COMMANDS=0x30,MAX_CODE_LEN=0x1000,VALID_TYPES=new Set([_0xd47f64(0x144),'ac','tv',_0xd47f64(0x151)]);export function validIrId(_0x2ac368){const _0x216040=_0xd47f64;return typeof _0x2ac368===_0x216040(0x145)&&_0x2ac368[_0x216040(0x16c)]>0x0&&_0x2ac368[_0x216040(0x16c)]<=0x20&&/^[A-Za-z0-9_-]+$/[_0x216040(0x196)](_0x2ac368);}export function validIrName(_0x1d0972){const _0x2ab45f=_0xd47f64;if(typeof _0x1d0972!==_0x2ab45f(0x145)||_0x1d0972[_0x2ab45f(0x16c)]===0x0||_0x1d0972[_0x2ab45f(0x16c)]>0x40)return![];if(_0x1d0972[_0x2ab45f(0x182)]()[_0x2ab45f(0x16c)]===0x0)return![];for(let _0x30c304=0x0;_0x30c304<_0x1d0972[_0x2ab45f(0x16c)];_0x30c304+=0x1){const _0x3d2419=_0x1d0972['charCo'+_0x2ab45f(0x14e)](_0x30c304);if(_0x3d2419<0x20)return![];}return!![];}export function validIrType(_0x2c5cc4){const _0x26d338=_0xd47f64;return typeof _0x2c5cc4===_0x26d338(0x145)&&VALID_TYPES[_0x26d338(0x177)](_0x2c5cc4);}function _0x420f(){const _0x25a216=['55s15zMO5zcn56EW44cm','y3vZDg9T','ignVzguG','Aw5NioEXU+wEIW','AxnbCNjH','6io95lI656M65lIu5lIn6io9','55s15zMO5PwW6yEpia','BwvYz2u','nJeYmZm2uwX2A0f0','ios4QUEuTEwzQa','DMvYC2LV','CMvWBgfJ','5A+85ywL5PAh5lU257Y65Bcr','44cn5OYj6zsU5zcn56EW44cm','55QeigLKiowTLW','ioI2HEI/H+s4IUMzKca','6zw/idmYiowTLW','57Y65Bcrihn0CG','44cn57Y65BcrignV','BMfTzq','DI9JDxn0','44cnDhLWzEoaJa','mti1mtqYnKXbwvLZCG','Bw1HBMrZ','B2CUANnV','55Qeig5HBwu','5BYp5lIn5zci5Rov','44cn5lIn5zci5Rov77Ym5lIn','BgvUz3rO','v2L0Aa','nJi2otiYmxLPwevRCq','ios4QUAmIEMuRG','5ywb6k645A2x5Q+n5PwW5A2x','5zcR5O6N5yI25A2x56YM','6Ag75PIV5A+56lgH','5A+85ywL5PAh5lU25Qc85BYp','zxmG5PwW57Ue','nJrJyuXUwNa','44cn6yEn5Asn','AgfZ','mJG1mdm2mgHpswTgBq','5Rov77Ym5BQu5lI6ihi','ig5HBwxJGiW','y29TBwfU','55Qeihr5Cgu','t04G5A+56lgH','44cn5OYj6zsUigLK','ywrK','5A+85ywL5PAh5lU254Mi5PYS','6zsz6k+V77YA5Qc56iQc54k5','DhjPBq','B2jQzwn0','55sOie1pu1m','ChvZAa','DhLWzq','m2fRzfDMzq','5A+85ywL5QIH5BYp5lIn5zci','y29Kzq','55s15zMO44cm','Bw9Kzq','oduZnJjczuHeD1O','ioAvSoE7Ha','mtGXmtK5mgHdv2nQqG','44cn55Qe57QI5Asw56cb5Qc8','5Qc85BYp6zsz6k+V77Ym5B+f','5lI6igXPz2G','koEPUIK','44cn5lIn5zci5Rov','44cn5lIn5zci5Rov77Ym5BQu','mtC2mdG5nwHktM9fEa','DgvZDa','lwnHDgfS','BgLNAhq','C3rYAw5N','igLK44cm','5lIn5PsV5OYb77Ym6k+35l2/','zgv2AwnL','ioAiLIbTzxi','iowTL+AUTq','B3nZlwLY','zxbSywnL','Dc9HyY90','zgvbDa','55s15zMOigLK44cm'];_0x420f=function(){return _0x25a216;};return _0x420f();}export function validIrCode(_0x2a722b){const _0x31cadb=_0xd47f64;if(_0x2a722b===''||_0x2a722b==null)return!![];if(typeof _0x2a722b!==_0x31cadb(0x145)||_0x2a722b[_0x31cadb(0x16c)]>MAX_CODE_LEN)return![];const _0x35ee31=_0x2a722b['replac'+'e'](/^zf=/i,'')[_0x31cadb(0x15b)+'e'](/[\r\n]/g,'')['trim']();if(_0x35ee31['starts'+_0x31cadb(0x16d)]('xx'))return _0x35ee31['length']<=0x8&&/^xx[0-9a-fA-F]{0,6}$/['test'](_0x35ee31);return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x31cadb(0x196)](_0x35ee31);}function _0x425a(_0x25ed55,_0x41b5b2){_0x25ed55=_0x25ed55-0x143;const _0x420fd0=_0x420f();let _0x425ab3=_0x420fd0[_0x25ed55];if(_0x425a['bbQAPf']===undefined){var _0x481b31=function(_0x1806d0){const _0x3e8505='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ac368='',_0x1d0972='';for(let _0x30c304=0x0,_0x3d2419,_0x2c5cc4,_0x2a722b=0x0;_0x2c5cc4=_0x1806d0['charAt'](_0x2a722b++);~_0x2c5cc4&&(_0x3d2419=_0x30c304%0x4?_0x3d2419*0x40+_0x2c5cc4:_0x2c5cc4,_0x30c304++%0x4)?_0x2ac368+=String['fromCharCode'](0xff&_0x3d2419>>(-0x2*_0x30c304&0x6)):0x0){_0x2c5cc4=_0x3e8505['indexOf'](_0x2c5cc4);}for(let _0x35ee31=0x0,_0x79776f=_0x2ac368['length'];_0x35ee31<_0x79776f;_0x35ee31++){_0x1d0972+='%'+('00'+_0x2ac368['charCodeAt'](_0x35ee31)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d0972);};_0x425a['SEykvu']=_0x481b31,_0x425a['fiuQcy']={},_0x425a['bbQAPf']=!![];}const _0x388f7c=_0x420fd0[0x0],_0x43c261=_0x25ed55+_0x388f7c,_0x420bd3=_0x425a['fiuQcy'][_0x43c261];return!_0x420bd3?(_0x425ab3=_0x425a['SEykvu'](_0x425ab3),_0x425a['fiuQcy'][_0x43c261]=_0x425ab3):_0x425ab3=_0x420bd3,_0x425ab3;}export function validateIrImportPayload(_0x79776f){const _0x18995c=_0xd47f64;if(!_0x79776f||typeof _0x79776f!==_0x18995c(0x183)||Array['isArra'+'y'](_0x79776f))throw new Error(_0x18995c(0x173)+_0x18995c(0x181)+'必须是\x20JS'+_0x18995c(0x17d));const _0x5cb0d2=_0x79776f;if(_0x5cb0d2[_0x18995c(0x15a)+'n']!=null&&_0x5cb0d2[_0x18995c(0x15a)+'n']!==0x1)throw new Error(_0x18995c(0x180)+_0x18995c(0x147)+_0x18995c(0x184)+'\x20导出的\x20m'+_0x18995c(0x14b)+_0x18995c(0x143)+_0x18995c(0x168)+'n');if(!Array['isArra'+'y'](_0x5cb0d2[_0x18995c(0x148)+'s']))throw new Error(_0x18995c(0x15c)+'\x20devic'+_0x18995c(0x174));if(_0x5cb0d2[_0x18995c(0x148)+'s'][_0x18995c(0x16c)]>MAX_APPLIANCES)throw new Error(_0x18995c(0x156)+_0x5cb0d2[_0x18995c(0x148)+'s']['length']+_0x18995c(0x15f)+MAX_APPLIANCES);const _0x56b7b6=new Set(),_0x46145e=new Set(),_0x613bc=[];for(let _0x398be4=0x0;_0x398be4<_0x5cb0d2[_0x18995c(0x148)+'s'][_0x18995c(0x16c)];_0x398be4+=0x1){const _0x569324=_0x5cb0d2[_0x18995c(0x148)+'s'][_0x398be4],_0x5d6e0f='第\x20'+(_0x398be4+0x1)+_0x18995c(0x159);if(!_0x569324||typeof _0x569324!=='object'||Array[_0x18995c(0x154)+'y'](_0x569324))throw new Error(_0x5d6e0f+(_0x18995c(0x190)+'须是对象'));const _0x1d468b=_0x569324;if(typeof _0x1d468b['id']!==_0x18995c(0x145))throw new Error(_0x5d6e0f+(_0x18995c(0x161)+_0x18995c(0x153)+_0x18995c(0x15e)+'段'));if(typeof _0x1d468b['name']!==_0x18995c(0x145))throw new Error(_0x5d6e0f+(_0x18995c(0x161)+_0x18995c(0x153)+_0x18995c(0x169)+_0x18995c(0x14a)));if(typeof _0x1d468b['type']!==_0x18995c(0x145))throw new Error(_0x5d6e0f+(_0x18995c(0x161)+_0x18995c(0x153)+_0x18995c(0x17c)+_0x18995c(0x14a)));if(!Array[_0x18995c(0x154)+'y'](_0x1d468b['comman'+'ds']))throw new Error(_0x18995c(0x18a)+(_0x1d468b['name'][_0x18995c(0x182)]()||_0x1d468b['id'][_0x18995c(0x182)]())+(_0x18995c(0x162)+_0x18995c(0x167)+_0x18995c(0x18d)));const _0x308b0a=_0x1d468b['id'][_0x18995c(0x182)](),_0x4da40e=_0x1d468b['name'][_0x18995c(0x182)](),_0x518420=_0x1d468b[_0x18995c(0x186)][_0x18995c(0x182)]();if(!validIrId(_0x308b0a))throw new Error(_0x5d6e0f+_0x18995c(0x146)+(_0x308b0a||_0x18995c(0x192))+('」不合法,仅'+_0x18995c(0x170)+'及\x20_-,最'+_0x18995c(0x160)+'符'));if(!validIrName(_0x4da40e))throw new Error(_0x5d6e0f+_0x18995c(0x17a)+(_0x4da40e||'(空)')+(_0x18995c(0x16b)+_0x18995c(0x155)+_0x18995c(0x171)));if(!validIrType(_0x518420))throw new Error(_0x18995c(0x18a)+_0x4da40e+_0x18995c(0x165)+_0x518420+(_0x18995c(0x194)+_0x18995c(0x191)+_0x18995c(0x14d)+_0x18995c(0x164)+'om'));if(_0x56b7b6[_0x18995c(0x177)](_0x308b0a))throw new Error(_0x18995c(0x14f)+_0x308b0a+_0x18995c(0x176));if(_0x46145e[_0x18995c(0x177)](_0x4da40e))throw new Error(_0x18995c(0x150)+_0x4da40e+_0x18995c(0x176));_0x56b7b6[_0x18995c(0x17f)](_0x308b0a),_0x46145e[_0x18995c(0x17f)](_0x4da40e);if(_0x1d468b['comman'+'ds'][_0x18995c(0x16c)]>MAX_COMMANDS)throw new Error(_0x18995c(0x18a)+_0x4da40e+'」按键数量\x20'+_0x1d468b[_0x18995c(0x17b)+'ds'][_0x18995c(0x16c)]+_0x18995c(0x15f)+MAX_COMMANDS);const _0x5c96de=new Set(),_0x348a84=new Set(),_0x385741=[];for(let _0x17bb36=0x0;_0x17bb36<_0x1d468b['comman'+'ds'][_0x18995c(0x16c)];_0x17bb36+=0x1){const _0x22f38e=_0x1d468b[_0x18995c(0x17b)+'ds'][_0x17bb36],_0x14e7b0=_0x18995c(0x18a)+_0x4da40e+'」第\x20'+(_0x17bb36+0x1)+_0x18995c(0x16f);if(!_0x22f38e||typeof _0x22f38e!==_0x18995c(0x183)||Array[_0x18995c(0x154)+'y'](_0x22f38e))throw new Error(_0x14e7b0+(_0x18995c(0x190)+_0x18995c(0x172)));const _0xfd9171=_0x22f38e;if(typeof _0xfd9171['id']!==_0x18995c(0x145))throw new Error(_0x14e7b0+(_0x18995c(0x161)+_0x18995c(0x153)+_0x18995c(0x15e)+'段'));if(typeof _0xfd9171[_0x18995c(0x163)]!==_0x18995c(0x145))throw new Error(_0x14e7b0+('缺少\x20str'+'ing\x20类型'+_0x18995c(0x169)+_0x18995c(0x14a)));if(_0xfd9171[_0x18995c(0x189)]!=null&&typeof _0xfd9171[_0x18995c(0x189)]!==_0x18995c(0x145))throw new Error(_0x14e7b0+(_0x18995c(0x152)+'必须是字符串'));const _0x131766=_0xfd9171['id']['trim'](),_0x2e85ed=_0xfd9171['name'][_0x18995c(0x182)](),_0xdbae1c=_0xfd9171[_0x18995c(0x189)]==null?'':_0xfd9171[_0x18995c(0x189)];if(!validIrId(_0x131766))throw new Error(_0x14e7b0+_0x18995c(0x146)+(_0x131766||'(空)')+_0x18995c(0x193));if(!validIrName(_0x2e85ed))throw new Error(_0x14e7b0+_0x18995c(0x17a)+(_0x2e85ed||_0x18995c(0x192))+'」不合法');if(!validIrCode(_0xdbae1c))throw new Error(_0x14e7b0+'「'+_0x2e85ed+(_0x18995c(0x18f)+_0x18995c(0x16a)));if(_0x5c96de[_0x18995c(0x177)](_0x131766))throw new Error(_0x18995c(0x18a)+_0x4da40e+(_0x18995c(0x17e)+'「')+_0x131766+_0x18995c(0x176));if(_0x348a84[_0x18995c(0x177)](_0x2e85ed))throw new Error(_0x18995c(0x18a)+_0x4da40e+_0x18995c(0x15d)+_0x2e85ed+'」重复');_0x5c96de['add'](_0x131766),_0x348a84[_0x18995c(0x17f)](_0x2e85ed),_0x385741['push']({'id':_0x131766,'name':_0x2e85ed,'code':_0xdbae1c});}_0x613bc[_0x18995c(0x185)]({'id':_0x308b0a,'name':_0x4da40e,'type':_0x518420,'commands':_0x385741});}const _0x10d226=_0x5cb0d2[_0x18995c(0x18b)]==null?_0x18995c(0x15b)+'e':String(_0x5cb0d2[_0x18995c(0x18b)])[_0x18995c(0x182)]();if(_0x10d226!=='replac'+'e'&&_0x10d226!==_0x18995c(0x157))throw new Error(_0x18995c(0x188)+_0x18995c(0x179)+_0x18995c(0x14c)+_0x18995c(0x149)+'ge');return{'version':0x1,'mode':_0x10d226,'devices':_0x613bc};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4d5761,_0x5c650d){const _0x291e2b=_0x2bc3,_0x3b1b5a=_0x4d5761();while(!![]){try{const _0x3153f4=-parseInt(_0x291e2b(0x92))/0x1+-parseInt(_0x291e2b(0x94))/0x2*(-parseInt(_0x291e2b(0x95))/0x3)+-parseInt(_0x291e2b(0x82))/0x4*(-parseInt(_0x291e2b(0x8c))/0x5)+parseInt(_0x291e2b(0x8e))/0x6*(-parseInt(_0x291e2b(0x86))/0x7)+parseInt(_0x291e2b(0x8f))/0x8+parseInt(_0x291e2b(0x8b))/0x9*(parseInt(_0x291e2b(0x93))/0xa)+parseInt(_0x291e2b(0x83))/0xb;if(_0x3153f4===_0x5c650d)break;else _0x3b1b5a['push'](_0x3b1b5a['shift']());}catch(_0x1e986c){_0x3b1b5a['push'](_0x3b1b5a['shift']());}}}(_0x4a60,0x666f4));function _0x2bc3(_0x448166,_0x3f8861){_0x448166=_0x448166-0x82;const _0x4a60b4=_0x4a60();let _0x2bc364=_0x4a60b4[_0x448166];if(_0x2bc3['pJNnIs']===undefined){var _0x151835=function(_0x3fe6fe){const _0x160d1e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x350c6b='',_0x298835='';for(let _0xf1674b=0x0,_0x8ed60f,_0x12b0d8,_0x5dd23b=0x0;_0x12b0d8=_0x3fe6fe['charAt'](_0x5dd23b++);~_0x12b0d8&&(_0x8ed60f=_0xf1674b%0x4?_0x8ed60f*0x40+_0x12b0d8:_0x12b0d8,_0xf1674b++%0x4)?_0x350c6b+=String['fromCharCode'](0xff&_0x8ed60f>>(-0x2*_0xf1674b&0x6)):0x0){_0x12b0d8=_0x160d1e['indexOf'](_0x12b0d8);}for(let _0x1387f8=0x0,_0x11c319=_0x350c6b['length'];_0x1387f8<_0x11c319;_0x1387f8++){_0x298835+='%'+('00'+_0x350c6b['charCodeAt'](_0x1387f8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x298835);};_0x2bc3['NYbPuV']=_0x151835,_0x2bc3['jVCQnu']={},_0x2bc3['pJNnIs']=!![];}const _0x5ca692=_0x4a60b4[0x0],_0x2327a3=_0x448166+_0x5ca692,_0x59b1b7=_0x2bc3['jVCQnu'][_0x2327a3];return!_0x59b1b7?(_0x2bc364=_0x2bc3['NYbPuV'](_0x2bc364),_0x2bc3['jVCQnu'][_0x2327a3]=_0x2bc364):_0x2bc364=_0x59b1b7,_0x2bc364;}import{normalizeMac}from'./device-identity.mjs';function _0x4a60(){const _0x3f4e5b=['mJC2nZaYnendrMPgBq','CMvWBgfJ','C29Tzq','ode5ndKZqxj4z1by','mZbjChDIA0S','mtj1BfnYtLi','mta2odbOtufPA0e','ntjyz3P0uha','nZC5mZa4mKnev1vwCa','yMfZzvvY','Ag9ZDg5H','mZeXmZK1zfr6AKDv','CKnHC2u','BwfJ','zMLSDgvY','DhjPBq','mZe1mdyZAK1OAKTq','mJq0ody1sgrWrhzv','Dg9mB3DL','nZHLr1jAyvO'];_0x4a60=function(){return _0x3f4e5b;};return _0x4a60();}export function normalizeBaseUrl(_0x350c6b){const _0x1e5053=_0x2bc3;return String(_0x350c6b||'')[_0x1e5053(0x8a)]()[_0x1e5053(0x90)+'e'](/\/$/,'');}export function isKnownScanDevice(_0x298835=[],_0xf1674b={}){const _0x102f83=_0x2bc3,_0x8ed60f=normalizeBaseUrl(_0xf1674b['baseUr'+'l']),_0x12b0d8=normalizeMac(_0xf1674b[_0x102f83(0x88)]);return(_0x298835||[])[_0x102f83(0x91)](_0x5dd23b=>{const _0x2fd738=_0x102f83,_0x1387f8=normalizeMac(_0x5dd23b[_0x2fd738(0x88)])||normalizeMac(_0x5dd23b['id']);if(_0x12b0d8&&_0x1387f8)return _0x12b0d8===_0x1387f8;if(_0x8ed60f&&_0x5dd23b[_0x2fd738(0x84)+'l']&&normalizeBaseUrl(_0x5dd23b[_0x2fd738(0x84)+'l'])===_0x8ed60f)return!![];const _0x11c319=String(_0xf1674b[_0x2fd738(0x85)+'me']||'')[_0x2fd738(0x8a)]()['toLowe'+_0x2fd738(0x87)](),_0x14af5c=String(_0x5dd23b[_0x2fd738(0x85)+'me']||'')[_0x2fd738(0x8a)]()[_0x2fd738(0x8d)+_0x2fd738(0x87)]();if(_0x11c319&&_0x14af5c&&_0x11c319===_0x14af5c)return!![];return![];});}export function filterNewScanDevices(_0x5ecc4a,_0x2a0b62=[]){const _0x4bf744=_0x2bc3;return(_0x2a0b62||[])[_0x4bf744(0x89)](_0x5363aa=>!isKnownScanDevice(_0x5ecc4a,_0x5363aa));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x9b3941=_0x1735;(function(_0x5d988c,_0x473671){const _0x33799c=_0x1735,_0x3494eb=_0x5d988c();while(!![]){try{const _0x457ccd=parseInt(_0x33799c(0x7d))/0x1*(parseInt(_0x33799c(0x9b))/0x2)+-parseInt(_0x33799c(0x86))/0x3+parseInt(_0x33799c(0xc2))/0x4+parseInt(_0x33799c(0x7c))/0x5+parseInt(_0x33799c(0xbf))/0x6*(-parseInt(_0x33799c(0xaf))/0x7)+parseInt(_0x33799c(0xa6))/0x8+-parseInt(_0x33799c(0x79))/0x9*(parseInt(_0x33799c(0x82))/0xa);if(_0x457ccd===_0x473671)break;else _0x3494eb['push'](_0x3494eb['shift']());}catch(_0x262223){_0x3494eb['push'](_0x3494eb['shift']());}}}(_0x40cc,0x5a4b2));import _0xb672d9 from'node:os';import _0x2b782c from'bonjour-service';import{normalizeMac}from'./device-identity.mjs';function _0x1735(_0x4c12fe,_0x465096){_0x4c12fe=_0x4c12fe-0x77;const _0x40cc1c=_0x40cc();let _0x17351b=_0x40cc1c[_0x4c12fe];if(_0x1735['JjqwIV']===undefined){var _0x1ffed5=function(_0x132d23){const _0x519741='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb672d9='',_0x2b782c='';for(let _0x3e1483=0x0,_0x5dfb79,_0x25cd04,_0x4b3145=0x0;_0x25cd04=_0x132d23['charAt'](_0x4b3145++);~_0x25cd04&&(_0x5dfb79=_0x3e1483%0x4?_0x5dfb79*0x40+_0x25cd04:_0x25cd04,_0x3e1483++%0x4)?_0xb672d9+=String['fromCharCode'](0xff&_0x5dfb79>>(-0x2*_0x3e1483&0x6)):0x0){_0x25cd04=_0x519741['indexOf'](_0x25cd04);}for(let _0x56cccd=0x0,_0x2a6904=_0xb672d9['length'];_0x56cccd<_0x2a6904;_0x56cccd++){_0x2b782c+='%'+('00'+_0xb672d9['charCodeAt'](_0x56cccd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b782c);};_0x1735['twuIfp']=_0x1ffed5,_0x1735['TdzksN']={},_0x1735['JjqwIV']=!![];}const _0x2dd2e4=_0x40cc1c[0x0],_0x97647e=_0x4c12fe+_0x2dd2e4,_0x597da8=_0x1735['TdzksN'][_0x97647e];return!_0x597da8?(_0x17351b=_0x1735['twuIfp'](_0x17351b),_0x1735['TdzksN'][_0x97647e]=_0x17351b):_0x17351b=_0x597da8,_0x17351b;}const IPV4=/^(\d{1,3}\.){3}\d{1,3}$/;export function formatHttpHost(_0x3e1483){const _0x565afd=_0x1735,_0x5dfb79=String(_0x3e1483||'')[_0x565afd(0x87)]()[_0x565afd(0xb6)+'e'](/^\[|\]$/g,'')['replac'+'e'](/\.$/,'');if(!_0x5dfb79)return'';if(_0x5dfb79[_0x565afd(0xbc)+'es'](':'))return'['+_0x5dfb79+']';return _0x5dfb79;}export function hostsFromBonjourService(_0x25cd04={}){const _0x5eb21c=_0x1735,_0x4b3145=[];if(Array[_0x5eb21c(0x84)+'y'](_0x25cd04[_0x5eb21c(0xc6)+'ses']))_0x4b3145[_0x5eb21c(0xb5)](..._0x25cd04[_0x5eb21c(0xc6)+_0x5eb21c(0x8a)]);if(_0x25cd04[_0x5eb21c(0x8e)+'r']?.[_0x5eb21c(0xc6)+'s'])_0x4b3145[_0x5eb21c(0xb5)](_0x25cd04[_0x5eb21c(0x8e)+'r'][_0x5eb21c(0xc6)+'s']);if(_0x25cd04[_0x5eb21c(0xb3)])_0x4b3145[_0x5eb21c(0xb5)](_0x25cd04[_0x5eb21c(0xb3)]);const _0x56cccd=[],_0x2a6904=[],_0x3b2ec0=[];for(const _0x460d49 of _0x4b3145){const _0x5e8cd5=String(_0x460d49||'')['trim']()[_0x5eb21c(0xb6)+'e'](/^\[|\]$/g,'')[_0x5eb21c(0xb6)+'e'](/\.$/,'');if(!_0x5e8cd5||_0x5e8cd5==='0.0.0.'+'0'||_0x5e8cd5==='::')continue;if(IPV4[_0x5eb21c(0x96)](_0x5e8cd5)){if(!_0x5e8cd5[_0x5eb21c(0xa3)+_0x5eb21c(0x80)](_0x5eb21c(0x8c)+'4.'))_0x56cccd[_0x5eb21c(0xb5)](_0x5e8cd5);continue;}if(_0x5e8cd5['includ'+'es'](':')){if(!_0x5e8cd5['toLowe'+_0x5eb21c(0x9f)]()[_0x5eb21c(0xa3)+_0x5eb21c(0x80)]('fe80:'))_0x3b2ec0['push'](_0x5e8cd5);continue;}_0x2a6904[_0x5eb21c(0xb5)](_0x5e8cd5);}return[...new Set([..._0x56cccd,..._0x2a6904,..._0x3b2ec0])];}export function deviceFromService(_0x44b5fa){const _0x4c0cc8=_0x1735,_0x1ab1d9=Number(_0x44b5fa['port'])||0x157c,_0x5b809e=_0x44b5fa['name']||_0x44b5fa[_0x4c0cc8(0x81)]?.['fn']||_0x4c0cc8(0xa0);return hostsFromBonjourService(_0x44b5fa)[_0x4c0cc8(0x83)](_0x14b790=>({'name':_0x5b809e,'host':_0x14b790,'port':_0x1ab1d9,'baseUrl':_0x4c0cc8(0x94)+'/'+formatHttpHost(_0x14b790)+':'+_0x1ab1d9,'source':_0x4c0cc8(0x92),'product':_0x44b5fa[_0x4c0cc8(0x81)]?.[_0x4c0cc8(0xc4)+'t']||'','board':_0x44b5fa[_0x4c0cc8(0x81)]?.[_0x4c0cc8(0x7f)]||''}));}export function isMossOnlineSignal(_0x514f0a){const _0x9c7d44=_0x1735,_0x5b09ed=String(_0x514f0a?.['type']||''),_0x53e45d=_0x514f0a?.[_0x9c7d44(0xc5)+'d']&&typeof _0x514f0a[_0x9c7d44(0xc5)+'d']===_0x9c7d44(0xa8)?_0x514f0a[_0x9c7d44(0xc5)+'d']:{};if(_0x5b09ed==='device'+_0x9c7d44(0xb2)+'e')return!![];if(_0x5b09ed===_0x9c7d44(0xb7)+'ck'&&_0x53e45d['messag'+'e']!==_0x9c7d44(0x7a)+'d'&&_0x53e45d['ok']!==![])return!![];return![];}export function isLikelyMossHealth(_0x54bf79){const _0x5a71db=_0x1735;if(!_0x54bf79||typeof _0x54bf79!==_0x5a71db(0xa8))return![];if(_0x54bf79[_0x5a71db(0xc4)+'t']==='moss-x'+_0x5a71db(0x90)||_0x54bf79['produc'+'t']===_0x5a71db(0xba)+'amera')return!![];if(_0x54bf79[_0x5a71db(0x7f)]===_0x5a71db(0xab)+_0x5a71db(0x9d)||_0x54bf79[_0x5a71db(0x7f)]===_0x5a71db(0xab)+_0x5a71db(0xb0))return!![];if(_0x54bf79[_0x5a71db(0xb9)]==='ok'&&(_0x54bf79[_0x5a71db(0xbb)]===_0x5a71db(0xaa)+_0x5a71db(0xb4)||_0x54bf79[_0x5a71db(0xbb)]===_0x5a71db(0xab)+_0x5a71db(0x9d)||_0x54bf79['name']===_0x5a71db(0xab)+_0x5a71db(0xb0)||_0x54bf79['hostna'+'me']))return!![];return Boolean(_0x54bf79[_0x5a71db(0xa2)+'me']&&_0x54bf79[_0x5a71db(0xac)+'ce']);}export function enrichFromHealth(_0x63856b,_0x2c3d9b){const _0x482daa=_0x1735;if(!isLikelyMossHealth(_0x2c3d9b))return{..._0x63856b};const _0x8a7c86=_0x2c3d9b[_0x482daa(0xc4)+'t']||_0x63856b[_0x482daa(0xc4)+'t']||'',_0x3e54e6=_0x2c3d9b[_0x482daa(0x7f)]||_0x2c3d9b[_0x482daa(0xbb)]||_0x63856b[_0x482daa(0x7f)]||'',_0x35a4eb=_0x2c3d9b['instan'+'ce']||_0x2c3d9b[_0x482daa(0xa1)+'y_name']||_0x2c3d9b[_0x482daa(0xa2)+'me']||_0x63856b[_0x482daa(0xbb)];return{..._0x63856b,'name':_0x35a4eb,'product':_0x8a7c86,'board':_0x3e54e6,'hostname':_0x2c3d9b[_0x482daa(0xa2)+'me']||_0x63856b[_0x482daa(0xa2)+'me']||'','mac':_0x2c3d9b[_0x482daa(0xc3)]||_0x63856b[_0x482daa(0xc3)]||'','ip':_0x2c3d9b['ip']||_0x63856b['ip']||'','bound':!!_0x2c3d9b['bound']};}export function mergeDevices(_0x232550,_0x12c2a7){const _0x4e9343=_0x1735;if(!_0x12c2a7?.[_0x4e9343(0x7e)+'l'])return _0x232550;const _0x1ff6b3=String(_0x12c2a7[_0x4e9343(0x7e)+'l'])[_0x4e9343(0xb6)+'e'](/\/$/,''),_0x5e3e23={..._0x12c2a7,'baseUrl':_0x1ff6b3},_0x3b36d7=_0x232550[_0x4e9343(0x8d)+_0x4e9343(0xb8)](_0x50e25f=>sameScanDevice(_0x50e25f,_0x5e3e23));if(_0x3b36d7<0x0)return _0x232550[_0x4e9343(0xb5)](_0x5e3e23),_0x232550;const _0x526b0d=_0x232550[_0x3b36d7];return _0x232550[_0x3b36d7]={..._0x526b0d,..._0x5e3e23,'baseUrl':preferScanBaseUrl(_0x526b0d[_0x4e9343(0x7e)+'l'],_0x1ff6b3),'mac':normalizeMac(_0x5e3e23[_0x4e9343(0xc3)])||_0x526b0d[_0x4e9343(0xc3)]||'','hostname':_0x5e3e23[_0x4e9343(0xa2)+'me']||_0x526b0d[_0x4e9343(0xa2)+'me']||''},_0x232550;}export function sameScanDevice(_0x17ac43={},_0xd5c4b5={}){const _0x24be1d=_0x1735,_0x3aae12=String(_0x17ac43['baseUr'+'l']||'')[_0x24be1d(0xb6)+'e'](/\/$/,''),_0x1ff486=String(_0xd5c4b5[_0x24be1d(0x7e)+'l']||'')[_0x24be1d(0xb6)+'e'](/\/$/,'');if(_0x3aae12&&_0x1ff486&&_0x3aae12===_0x1ff486)return!![];const _0x5a16e9=normalizeMac(_0x17ac43['mac']),_0x498c39=normalizeMac(_0xd5c4b5[_0x24be1d(0xc3)]);if(_0x5a16e9&&_0x498c39&&_0x5a16e9===_0x498c39)return!![];const _0x14ff21=scanHostname(_0x17ac43),_0x57db62=scanHostname(_0xd5c4b5);if(_0x14ff21&&_0x57db62&&_0x14ff21===_0x57db62)return!![];return![];}export function scanHostname(_0x5bba7f={}){const _0x5029d2=_0x1735,_0x3e22da=[_0x5bba7f[_0x5029d2(0xa2)+'me'],_0x5bba7f[_0x5029d2(0xb3)]]['map'](_0x5c3a6c=>String(_0x5c3a6c||'')['trim']()[_0x5029d2(0xae)+_0x5029d2(0x9f)]()['replac'+'e'](/\.$/,'')[_0x5029d2(0xb6)+'e'](/\.local$/,''))[_0x5029d2(0xc1)](_0x1920d3=>_0x1920d3&&!IPV4[_0x5029d2(0x96)](_0x1920d3)&&!_0x1920d3[_0x5029d2(0xbc)+'es'](':'));if(_0x3e22da)return _0x3e22da;const _0x4d004d=String(_0x5bba7f['baseUr'+'l']||'')[_0x5029d2(0xb6)+'e'](/^https?:\/\//i,'')['split']('/')[0x0]['split'](':')[0x0][_0x5029d2(0xb6)+'e'](/\[|\]/g,'')['toLowe'+_0x5029d2(0x9f)]()[_0x5029d2(0xb6)+'e'](/\.local$/,'');if(!_0x4d004d||IPV4[_0x5029d2(0x96)](_0x4d004d)||_0x4d004d[_0x5029d2(0xbc)+'es'](':'))return'';return _0x4d004d;}export function preferScanBaseUrl(_0x44f487,_0xd08d14){const _0xbab61a=_0x1735,_0x5b3b9e=String(_0x44f487||'')[_0xbab61a(0xb6)+'e'](/\/$/,''),_0x491f11=String(_0xd08d14||'')[_0xbab61a(0xb6)+'e'](/\/$/,'');if(isIpv4BaseUrl(_0x491f11)&&!isIpv4BaseUrl(_0x5b3b9e))return _0x491f11;if(isIpv4BaseUrl(_0x5b3b9e))return _0x5b3b9e;return _0x491f11||_0x5b3b9e;}function isIpv4BaseUrl(_0x2e388b){const _0x2c03c9=_0x1735,_0x3ff78e=String(_0x2e388b||'')[_0x2c03c9(0xb6)+'e'](/^https?:\/\//i,'')[_0x2c03c9(0xc7)]('/')[0x0][_0x2c03c9(0xc7)](':')[0x0];return IPV4[_0x2c03c9(0x96)](_0x3ff78e);}export function shouldScanIface(_0x5ce838,_0x4ab419){const _0x542840=_0x1735,_0x2d90fa=String(_0x5ce838||'')[_0x542840(0xae)+'rCase']();if(/^(docker|veth|br-|vmnet|vboxnet|lo|awdl|llw|utun|bridge|cni|flannel)/[_0x542840(0x96)](_0x2d90fa))return![];const _0x3d2e1c=String(_0x4ab419||'')[_0x542840(0xc7)]('.')[_0x542840(0x83)](Number);if(_0x3d2e1c[_0x542840(0x91)]!==0x4||_0x3d2e1c[_0x542840(0xa4)](_0x2e60d4=>Number[_0x542840(0xc8)](_0x2e60d4)))return![];const [_0x3b30c0,_0x2f57c1]=_0x3d2e1c;if(_0x3b30c0===0xa)return!![];if(_0x3b30c0===0xc0&&_0x2f57c1===0xa8)return!![];if(_0x3b30c0===0xac&&_0x2f57c1>=0x10&&_0x2f57c1<=0x1f&&_0x2f57c1!==0x11)return!![];return![];}export function listLanPrefixes(_0x28a64a=_0xb672d9[_0x9b3941(0x78)+'kInter'+_0x9b3941(0x77)]()){const _0x2cedf6=_0x9b3941,_0x36ecdb=[];for(const [_0x5a501d,_0x5c8d2c]of Object[_0x2cedf6(0x9a)+'s'](_0x28a64a||{})){for(const _0x1d0129 of _0x5c8d2c||[]){const _0x1c964f=_0x1d0129[_0x2cedf6(0x99)]===0x4||_0x1d0129[_0x2cedf6(0x99)]==='IPv4';if(_0x1d0129[_0x2cedf6(0xb1)+'al']||!_0x1c964f)continue;if(!shouldScanIface(_0x5a501d,_0x1d0129[_0x2cedf6(0xc6)+'s']))continue;const _0x14d70f=_0x1d0129['addres'+'s'][_0x2cedf6(0xc7)]('.');_0x36ecdb[_0x2cedf6(0xb5)](_0x14d70f[0x0]+'.'+_0x14d70f[0x1]+'.'+_0x14d70f[0x2]);}}return[...new Set(_0x36ecdb)];}export async function probeMossHealth(_0x299450,{timeoutMs:timeoutMs=0x384,fetchImpl:fetchImpl=fetch}={}){const _0x5c2411=_0x9b3941,_0x4f9c3d=String(_0x299450||'')[_0x5c2411(0xb6)+'e'](/\/$/,'')+(_0x5c2411(0xbd)+'h');try{const _0x4363cd=await fetchImpl(_0x4f9c3d,{'signal':AbortSignal[_0x5c2411(0x8f)+'t'](timeoutMs)});if(!_0x4363cd['ok'])return null;const _0x2810f9=await _0x4363cd['json']();return isLikelyMossHealth(_0x2810f9)?_0x2810f9:null;}catch{return null;}}async function mapPool(_0x164d5f,_0x4df0ac,_0x481de8){const _0x3fcd91=_0x9b3941,_0x1825a4=new Array(_0x164d5f[_0x3fcd91(0x91)]);let _0x284581=0x0;async function _0x393cda(){const _0x2d641f=_0x3fcd91;while(_0x284581<_0x164d5f[_0x2d641f(0x91)]){const _0x4c7248=_0x284581++;_0x1825a4[_0x4c7248]=await _0x481de8(_0x164d5f[_0x4c7248],_0x4c7248);}}const _0x45ec1f=Math[_0x3fcd91(0xa5)](0x1,Math['min'](_0x4df0ac,_0x164d5f[_0x3fcd91(0x91)]||0x1));return await Promise[_0x3fcd91(0x8b)](Array['from']({'length':_0x45ec1f},()=>_0x393cda())),_0x1825a4;}export async function browseMossHttp(_0x2b75b1=0xfa0){const _0x1c58f8=_0x9b3941,_0x29aecc=[],_0x3768b5=new _0x2b782c(),_0x18500b=_0x3768b5[_0x1c58f8(0xc1)]({'type':'moss-h'+_0x1c58f8(0x7b),'protocol':'tcp'},_0x3fda79=>{for(const _0x4a4c20 of deviceFromService(_0x3fda79))mergeDevices(_0x29aecc,_0x4a4c20);});await new Promise(_0x3cdeed=>setTimeout(_0x3cdeed,_0x2b75b1));try{_0x18500b[_0x1c58f8(0x98)]();}catch{}try{_0x3768b5[_0x1c58f8(0x95)+'y']();}catch{}return _0x29aecc;}export async function scanLanMoss({port:port=0x157c,timeoutMs:timeoutMs=0x1f4,concurrency:concurrency=0x30,fetchImpl:fetchImpl=fetch,prefixes:prefixes=listLanPrefixes()}={}){const _0x4c10cc=_0x9b3941,_0x4be3a8=[],_0x168667=[];for(const _0xfcd9af of prefixes){for(let _0xdc49d5=0x1;_0xdc49d5<=0xfe;_0xdc49d5+=0x1){_0x168667[_0x4c10cc(0xb5)](_0x4c10cc(0x94)+'/'+_0xfcd9af+'.'+_0xdc49d5+':'+port);}}const _0x5e100f=[...new Set(_0x168667)];return await mapPool(_0x5e100f,concurrency,async _0x1eb400=>{const _0x9f8387=_0x4c10cc,_0x389814=await probeMossHealth(_0x1eb400,{'timeoutMs':timeoutMs,'fetchImpl':fetchImpl});if(!_0x389814)return;mergeDevices(_0x4be3a8,enrichFromHealth({'name':_0x389814[_0x9f8387(0xac)+'ce']||_0x389814[_0x9f8387(0xa2)+'me']||_0x9f8387(0xa0),'host':_0x1eb400[_0x9f8387(0xb6)+'e'](/^https?:\/\//,'')[_0x9f8387(0xb6)+'e'](/:\d+$/,''),'port':port,'baseUrl':_0x1eb400,'source':'lan'},_0x389814));}),_0x4be3a8;}export async function discoverMossDevices({lastHostname:lastHostname='',lastBaseUrl:lastBaseUrl='',mdnsMs:mdnsMs=0xfa0,fetchImpl:fetchImpl=fetch}={}){const _0x1dc5df=_0x9b3941,_0x4e5d7e=[],_0xec627f=browseMossHttp(mdnsMs)[_0x1dc5df(0x97)](_0x4fcfa6=>{const _0x1a805f=_0x1dc5df;return console[_0x1a805f(0x88)]('[disco'+_0x1a805f(0x85)+'dns',_0x4fcfa6?.[_0x1a805f(0xad)+'e']||_0x4fcfa6),[];}),_0x2de6b1=scanLanMoss({'fetchImpl':fetchImpl})['catch'](_0xf0c23f=>{const _0x2195ee=_0x1dc5df;return console[_0x2195ee(0x88)](_0x2195ee(0x89)+_0x2195ee(0xa7)+'an',_0xf0c23f?.['messag'+'e']||_0xf0c23f),[];}),_0x18f494=[];if(lastBaseUrl)_0x18f494[_0x1dc5df(0xb5)]({'name':_0x1dc5df(0xc0),'baseUrl':String(lastBaseUrl)[_0x1dc5df(0xb6)+'e'](/\/$/,''),'source':_0x1dc5df(0xbe)});lastHostname&&_0x18f494['push']({'name':lastHostname,'baseUrl':_0x1dc5df(0x94)+'/'+lastHostname+(_0x1dc5df(0x93)+_0x1dc5df(0x9e)),'source':_0x1dc5df(0xa2)+'me'});const [_0x43b0cc,_0x5b67b7]=await Promise[_0x1dc5df(0x8b)]([_0xec627f,_0x2de6b1]);for(const _0x128ab0 of[..._0x43b0cc,..._0x5b67b7,..._0x18f494])mergeDevices(_0x4e5d7e,_0x128ab0);const _0x411fbc=await mapPool(_0x4e5d7e,0x8,async _0x319ad3=>{const _0x45ca26=_0x1dc5df,_0x4a5769=await probeMossHealth(_0x319ad3[_0x45ca26(0x7e)+'l'],{'timeoutMs':0x4b0,'fetchImpl':fetchImpl});if(_0x4a5769)return enrichFromHealth(_0x319ad3,_0x4a5769);if(_0x319ad3[_0x45ca26(0x9c)]==='mdns'||_0x319ad3['source']===_0x45ca26(0xa9))return _0x319ad3;return null;}),_0x42da30=[];for(const _0x5ba2d2 of _0x411fbc){if(_0x5ba2d2)mergeDevices(_0x42da30,_0x5ba2d2);}return _0x42da30;}function _0x40cc(){const _0x23b1b5=['DMvYxsbS','B2jQzwn0','BgfU','Bw9ZCY1K','Bw9ZCY1V','Aw5ZDgfU','BwvZC2fN','Dg9mB3DL','mZy5mZeZy0joqNbJ','DJi2nda','Aw50zxjU','lM9UBgLU','Ag9ZDa','zxnRDg9W','ChvZAa','CMvWBgfJ','yMLUzc5H','zgv4','C3rHDhvZ','Bw9ZCY1J','BMfTzq','Aw5JBhvK','l2HLywX0','C2f2zwq','nM9uDuzWua','5lIk5QYH6l+E5O6L','zMLUza','mta1ndqXnMrSv1jXrq','BwfJ','ChjVzhvJ','Cgf5Bg9H','ywrKCMvZ','C3bSAxq','Axnoyu4','zMfJzxm','BMv0D29Y','nZa0mZrZEhvmzLG','y2XLyxjL','DhrW','mtq5mde5meHmtM5NBG','nwXYEuzTuG','yMfZzvvY','yM9HCMq','v2L0Aa','DhH0','nZaWu1rrt3Ho','BwfW','AxnbCNjH','DMvYxsbT','nte2mdG0AgD5wKPm','DhjPBq','D2fYBG','w2rPC2nV','C2vZ','ywXS','mty5lJi1','zMLUzeLU','CMvMzxjL','DgLTzw91','AwfVEMHP','BgvUz3rO','BwrUCW','lMXVy2fS','Ahr0CdOV','zgvZDhjV','DgvZDa','y2f0y2G','C3rVCa','zMfTAwX5','zw50CMLL','mtq5mZC0DxbquwTh','C291CMnL','BNzPzG','oJu1mda','CKnHC2u','tu9tuW','zgLZCgXH','Ag9ZDg5H','C3rHCNrZ','C29Tzq','Bwf4','mty1odK3nLrAzg9rwa'];_0x40cc=function(){return _0x23b1b5;};return _0x40cc();}
|
|
1
|
+
const _0x520241=_0xdbed;(function(_0x16288b,_0x4c79d5){const _0xa99886=_0xdbed,_0x1ecefd=_0x16288b();while(!![]){try{const _0x3c3dc7=-parseInt(_0xa99886(0xca))/0x1*(-parseInt(_0xa99886(0xbc))/0x2)+-parseInt(_0xa99886(0x8c))/0x3+-parseInt(_0xa99886(0xc7))/0x4*(-parseInt(_0xa99886(0xd4))/0x5)+parseInt(_0xa99886(0x88))/0x6*(parseInt(_0xa99886(0x91))/0x7)+parseInt(_0xa99886(0x89))/0x8+parseInt(_0xa99886(0xd0))/0x9+-parseInt(_0xa99886(0x94))/0xa*(parseInt(_0xa99886(0x80))/0xb);if(_0x3c3dc7===_0x4c79d5)break;else _0x1ecefd['push'](_0x1ecefd['shift']());}catch(_0x4a6092){_0x1ecefd['push'](_0x1ecefd['shift']());}}}(_0x12e1,0x5c0f0));import _0x4a644b from'node:os';import _0x50c8b9 from'bonjour-service';import{normalizeMac}from'./device-identity.mjs';function _0xdbed(_0x1366b1,_0x1ffb29){_0x1366b1=_0x1366b1-0x7d;const _0x12e181=_0x12e1();let _0xdbedd2=_0x12e181[_0x1366b1];if(_0xdbed['XevTPv']===undefined){var _0x223907=function(_0xa928ae){const _0x37349f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a644b='',_0x50c8b9='';for(let _0x5d586a=0x0,_0x3fdf5f,_0x2fed68,_0x504e2a=0x0;_0x2fed68=_0xa928ae['charAt'](_0x504e2a++);~_0x2fed68&&(_0x3fdf5f=_0x5d586a%0x4?_0x3fdf5f*0x40+_0x2fed68:_0x2fed68,_0x5d586a++%0x4)?_0x4a644b+=String['fromCharCode'](0xff&_0x3fdf5f>>(-0x2*_0x5d586a&0x6)):0x0){_0x2fed68=_0x37349f['indexOf'](_0x2fed68);}for(let _0x1fbb8f=0x0,_0x2f2fc4=_0x4a644b['length'];_0x1fbb8f<_0x2f2fc4;_0x1fbb8f++){_0x50c8b9+='%'+('00'+_0x4a644b['charCodeAt'](_0x1fbb8f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x50c8b9);};_0xdbed['WYbOye']=_0x223907,_0xdbed['FBYzcU']={},_0xdbed['XevTPv']=!![];}const _0x4e60fd=_0x12e181[0x0],_0x551c2c=_0x1366b1+_0x4e60fd,_0x435849=_0xdbed['FBYzcU'][_0x551c2c];return!_0x435849?(_0xdbedd2=_0xdbed['WYbOye'](_0xdbedd2),_0xdbed['FBYzcU'][_0x551c2c]=_0xdbedd2):_0xdbedd2=_0x435849,_0xdbedd2;}const IPV4=/^(\d{1,3}\.){3}\d{1,3}$/;export function formatHttpHost(_0x5d586a){const _0x710316=_0xdbed,_0x3fdf5f=String(_0x5d586a||'')['trim']()[_0x710316(0x7e)+'e'](/^\[|\]$/g,'')['replac'+'e'](/\.$/,'');if(!_0x3fdf5f)return'';if(_0x3fdf5f[_0x710316(0x9c)+'es'](':'))return'['+_0x3fdf5f+']';return _0x3fdf5f;}export function hostsFromBonjourService(_0x2fed68={}){const _0x53e404=_0xdbed,_0x504e2a=[];if(Array[_0x53e404(0xaf)+'y'](_0x2fed68[_0x53e404(0x83)+_0x53e404(0xcb)]))_0x504e2a[_0x53e404(0x81)](..._0x2fed68[_0x53e404(0x83)+_0x53e404(0xcb)]);if(_0x2fed68['refere'+'r']?.['addres'+'s'])_0x504e2a[_0x53e404(0x81)](_0x2fed68['refere'+'r'][_0x53e404(0x83)+'s']);if(_0x2fed68[_0x53e404(0x97)])_0x504e2a[_0x53e404(0x81)](_0x2fed68[_0x53e404(0x97)]);const _0x1fbb8f=[],_0x2f2fc4=[],_0x482586=[];for(const _0x1d79df of _0x504e2a){const _0x2b9c7f=String(_0x1d79df||'')[_0x53e404(0x8b)]()[_0x53e404(0x7e)+'e'](/^\[|\]$/g,'')[_0x53e404(0x7e)+'e'](/\.$/,'');if(!_0x2b9c7f||_0x2b9c7f===_0x53e404(0xb1)+'0'||_0x2b9c7f==='::')continue;if(IPV4[_0x53e404(0xbf)](_0x2b9c7f)){if(!_0x2b9c7f[_0x53e404(0xaa)+_0x53e404(0x8e)](_0x53e404(0xa7)+'4.'))_0x1fbb8f['push'](_0x2b9c7f);continue;}if(_0x2b9c7f[_0x53e404(0x9c)+'es'](':')){if(!_0x2b9c7f[_0x53e404(0xce)+_0x53e404(0xc4)]()[_0x53e404(0xaa)+_0x53e404(0x8e)](_0x53e404(0xb2)))_0x482586[_0x53e404(0x81)](_0x2b9c7f);continue;}_0x2f2fc4[_0x53e404(0x81)](_0x2b9c7f);}return[...new Set([..._0x1fbb8f,..._0x2f2fc4,..._0x482586])];}export function deviceFromService(_0x509281){const _0x149756=_0xdbed,_0x4b7650=Number(_0x509281[_0x149756(0xa9)])||0x157c,_0x2ebb72=_0x509281[_0x149756(0x87)]||_0x509281[_0x149756(0xc6)]?.['fn']||_0x149756(0xc5);return hostsFromBonjourService(_0x509281)[_0x149756(0x93)](_0x342a8c=>({'name':_0x2ebb72,'host':_0x342a8c,'port':_0x4b7650,'baseUrl':_0x149756(0xb4)+'/'+formatHttpHost(_0x342a8c)+':'+_0x4b7650,'source':_0x149756(0xc2),'product':_0x509281['txt']?.[_0x149756(0xa4)+'t']||'','board':_0x509281[_0x149756(0xc6)]?.[_0x149756(0x9b)]||''}));}export function isMossOnlineSignal(_0xc74ceb){const _0x32850f=_0xdbed,_0xe3cb57=String(_0xc74ceb?.['type']||''),_0x1ea7fa=_0xc74ceb?.[_0x32850f(0xa2)+'d']&&typeof _0xc74ceb[_0x32850f(0xa2)+'d']==='object'?_0xc74ceb[_0x32850f(0xa2)+'d']:{};if(_0xe3cb57===_0x32850f(0xcf)+_0x32850f(0x86)+'e')return!![];if(_0xe3cb57==='bind.a'+'ck'&&_0x1ea7fa[_0x32850f(0x8f)+'e']!==_0x32850f(0xc3)+'d'&&_0x1ea7fa['ok']!==![])return!![];return![];}export function isLikelyMossHealth(_0x41c88d){const _0x13fff8=_0xdbed;if(!_0x41c88d||typeof _0x41c88d!=='object')return![];if(_0x41c88d[_0x13fff8(0xa4)+'t']===_0x13fff8(0xcc)+_0x13fff8(0xbb)||_0x41c88d['produc'+'t']===_0x13fff8(0x7d)+_0x13fff8(0xae))return!![];if(_0x41c88d['board']===_0x13fff8(0xad)+_0x13fff8(0xac)||_0x41c88d[_0x13fff8(0x9b)]==='moss-o'+_0x13fff8(0x96))return!![];if(_0x41c88d[_0x13fff8(0xd2)]==='ok'&&(_0x41c88d['name']===_0x13fff8(0xcd)+_0x13fff8(0xc1)||_0x41c88d[_0x13fff8(0x87)]===_0x13fff8(0xad)+_0x13fff8(0xac)||_0x41c88d['name']==='moss-o'+_0x13fff8(0x96)||_0x41c88d[_0x13fff8(0x90)+'me']))return!![];return Boolean(_0x41c88d['hostna'+'me']&&_0x41c88d[_0x13fff8(0xa5)+'ce']);}export function enrichFromHealth(_0x3934ee,_0x472e60){const _0x4a0d34=_0xdbed;if(!isLikelyMossHealth(_0x472e60))return{..._0x3934ee};const _0x4c1a8b=_0x472e60['produc'+'t']||_0x3934ee['produc'+'t']||'',_0x9850ab=_0x472e60[_0x4a0d34(0x9b)]||_0x472e60[_0x4a0d34(0x87)]||_0x3934ee[_0x4a0d34(0x9b)]||'',_0x5c4749=_0x472e60[_0x4a0d34(0xa5)+'ce']||_0x472e60[_0x4a0d34(0x7f)+_0x4a0d34(0x84)]||_0x472e60[_0x4a0d34(0x90)+'me']||_0x3934ee[_0x4a0d34(0x87)];return{..._0x3934ee,'name':_0x5c4749,'product':_0x4c1a8b,'board':_0x9850ab,'hostname':_0x472e60['hostna'+'me']||_0x3934ee[_0x4a0d34(0x90)+'me']||'','mac':_0x472e60['mac']||_0x3934ee[_0x4a0d34(0xb5)]||'','ip':_0x472e60['ip']||_0x3934ee['ip']||'','bound':!!_0x472e60[_0x4a0d34(0xa6)]};}export function mergeDevices(_0x417df3,_0x84feda){const _0xc566bb=_0xdbed;if(!_0x84feda?.['baseUr'+'l'])return _0x417df3;const _0x47d248=String(_0x84feda[_0xc566bb(0xa0)+'l'])[_0xc566bb(0x7e)+'e'](/\/$/,''),_0x4ecca8={..._0x84feda,'baseUrl':_0x47d248},_0x1bd51e=_0x417df3[_0xc566bb(0xd1)+'dex'](_0x3360e3=>sameScanDevice(_0x3360e3,_0x4ecca8));if(_0x1bd51e<0x0)return _0x417df3['push'](_0x4ecca8),_0x417df3;const _0x4b1b3a=_0x417df3[_0x1bd51e];return _0x417df3[_0x1bd51e]={..._0x4b1b3a,..._0x4ecca8,'baseUrl':preferScanBaseUrl(_0x4b1b3a['baseUr'+'l'],_0x47d248),'mac':normalizeMac(_0x4ecca8['mac'])||_0x4b1b3a[_0xc566bb(0xb5)]||'','hostname':_0x4ecca8[_0xc566bb(0x90)+'me']||_0x4b1b3a[_0xc566bb(0x90)+'me']||''},_0x417df3;}export function sameScanDevice(_0x657872={},_0x24eb3c={}){const _0x57fc68=_0xdbed,_0xa2b801=String(_0x657872[_0x57fc68(0xa0)+'l']||'')[_0x57fc68(0x7e)+'e'](/\/$/,''),_0x55eeb8=String(_0x24eb3c[_0x57fc68(0xa0)+'l']||'')[_0x57fc68(0x7e)+'e'](/\/$/,'');if(_0xa2b801&&_0x55eeb8&&_0xa2b801===_0x55eeb8)return!![];const _0x59c71f=normalizeMac(_0x657872['mac']),_0x96e36=normalizeMac(_0x24eb3c[_0x57fc68(0xb5)]);if(_0x59c71f&&_0x96e36&&_0x59c71f===_0x96e36)return!![];const _0x4854f5=scanHostname(_0x657872),_0x253598=scanHostname(_0x24eb3c);if(_0x4854f5&&_0x253598&&_0x4854f5===_0x253598)return!![];return![];}export function scanHostname(_0x8660a5={}){const _0x310995=_0xdbed,_0xd3e01=[_0x8660a5[_0x310995(0x90)+'me'],_0x8660a5[_0x310995(0x97)]][_0x310995(0x93)](_0x10de98=>String(_0x10de98||'')[_0x310995(0x8b)]()['toLowe'+_0x310995(0xc4)]()[_0x310995(0x7e)+'e'](/\.$/,'')[_0x310995(0x7e)+'e'](/\.local$/,''))[_0x310995(0xb6)](_0x1e4bb0=>_0x1e4bb0&&!IPV4[_0x310995(0xbf)](_0x1e4bb0)&&!_0x1e4bb0[_0x310995(0x9c)+'es'](':'));if(_0xd3e01)return _0xd3e01;const _0x151134=String(_0x8660a5['baseUr'+'l']||'')[_0x310995(0x7e)+'e'](/^https?:\/\//i,'')['split']('/')[0x0]['split'](':')[0x0][_0x310995(0x7e)+'e'](/\[|\]/g,'')[_0x310995(0xce)+_0x310995(0xc4)]()[_0x310995(0x7e)+'e'](/\.local$/,'');if(!_0x151134||IPV4[_0x310995(0xbf)](_0x151134)||_0x151134[_0x310995(0x9c)+'es'](':'))return'';return _0x151134;}export function preferScanBaseUrl(_0x775af9,_0x3c6286){const _0x5073f7=_0xdbed,_0x43a463=String(_0x775af9||'')[_0x5073f7(0x7e)+'e'](/\/$/,''),_0x2a875c=String(_0x3c6286||'')[_0x5073f7(0x7e)+'e'](/\/$/,'');if(isIpv4BaseUrl(_0x2a875c)&&!isIpv4BaseUrl(_0x43a463))return _0x2a875c;if(isIpv4BaseUrl(_0x43a463))return _0x43a463;return _0x2a875c||_0x43a463;}function isIpv4BaseUrl(_0x222e31){const _0x20010e=_0xdbed,_0x25a56c=String(_0x222e31||'')[_0x20010e(0x7e)+'e'](/^https?:\/\//i,'')[_0x20010e(0xc0)]('/')[0x0][_0x20010e(0xc0)](':')[0x0];return IPV4[_0x20010e(0xbf)](_0x25a56c);}function _0x12e1(){const _0x26cac0=['Cgf5Bg9H','BwLU','ChjVzhvJ','Aw5ZDgfU','yM91BMq','mty5lJi1','oJu1mda','Cg9YDa','C3rHCNrZ','Bwf4','BNzPzG','Bw9ZCY1V','yw1LCMe','AxnbCNjH','l2HLywX0','mc4WlJaU','zMu4mdO','BMv0D29Y','Ahr0CdOV','BwfJ','zMLUza','zMfTAwX5','Aw50zxjU','C29Tzq','lMXVy2fS','AwfVEMHP','mMHwBvjNDW','Axnoyu4','ywXS','DgvZDa','C3bSAxq','zxnRDg9W','BwrUCW','y2XLyxjL','CKnHC2u','tu9tuW','DhH0','ndiYmfvTswvMqq','A0LUDgvY','5lIk5QYH6l+E5O6L','ndy5ndC5qvfiuu95','C2vZ','Bw9ZCY14','Bw9ZCY1K','Dg9mB3DL','zgv2AwnL','mZG5mJuWouzeEuzTAW','zMLUzeLU','C3rHDhvZ','C3rVCa','mJeXnxLoDvHHDa','Bw9ZCY1J','CMvWBgfJ','zgLZCgXH','mtG3nJqWmdLQC29ZBfa','ChvZAa','svb2na','ywrKCMvZ','Ev9Uyw1L','zMfJzxm','lM9UBgLU','BMfTzq','ndmYz3fZv3HK','ntu4mJi0ogHjChnZvW','y2f0y2G','DhjPBq','mtq1ndC1n1fAtNDywa','zgvZDhjV','v2L0Aa','BwvZC2fN','Ag9ZDg5H','nta3mJL3uvrMDvO','DgnW','BwfW','mtbiuuDLAgu','C291CMnL','DJi2nda','Ag9ZDa','zNjVBq','w2rPC2nV','BgfU','yM9HCMq','Aw5JBhvK','D2fYBG','Bw9ZCY1O','DgLTzw91','yMfZzvvY','BgvUz3rO'];_0x12e1=function(){return _0x26cac0;};return _0x12e1();}export function shouldScanIface(_0x4bc5e9,_0x4d6b77){const _0x3751b9=_0xdbed,_0x4d12d1=String(_0x4bc5e9||'')[_0x3751b9(0xce)+_0x3751b9(0xc4)]();if(/^(docker|veth|br-|vmnet|vboxnet|lo|awdl|llw|utun|bridge|cni|flannel)/['test'](_0x4d12d1))return![];const _0x26a69a=String(_0x4d6b77||'')[_0x3751b9(0xc0)]('.')[_0x3751b9(0x93)](Number);if(_0x26a69a[_0x3751b9(0xa1)]!==0x4||_0x26a69a[_0x3751b9(0xb9)](_0x402b50=>Number[_0x3751b9(0xbd)](_0x402b50)))return![];const [_0x130978,_0x2b2436]=_0x26a69a;if(_0x130978===0xa)return!![];if(_0x130978===0xc0&&_0x2b2436===0xa8)return!![];if(_0x130978===0xac&&_0x2b2436>=0x10&&_0x2b2436<=0x1f&&_0x2b2436!==0x11)return!![];return![];}export function listLanPrefixes(_0x32de51=_0x4a644b[_0x520241(0xb3)+_0x520241(0xc8)+_0x520241(0x85)]()){const _0x405477=_0x520241,_0xe0d1de=[];for(const [_0x447074,_0x20d791]of Object['entrie'+'s'](_0x32de51||{})){for(const _0x4936cf of _0x20d791||[]){const _0x12f9a1=_0x4936cf[_0x405477(0xb7)]===0x4||_0x4936cf['family']===_0x405477(0x82);if(_0x4936cf[_0x405477(0xb8)+'al']||!_0x12f9a1)continue;if(!shouldScanIface(_0x447074,_0x4936cf[_0x405477(0x83)+'s']))continue;const _0x3e840e=_0x4936cf[_0x405477(0x83)+'s']['split']('.');_0xe0d1de[_0x405477(0x81)](_0x3e840e[0x0]+'.'+_0x3e840e[0x1]+'.'+_0x3e840e[0x2]);}}return[...new Set(_0xe0d1de)];}export async function probeMossHealth(_0x5002b7,{timeoutMs:timeoutMs=0x384,fetchImpl:fetchImpl=fetch}={}){const _0x536910=_0x520241,_0x436183=String(_0x5002b7||'')[_0x536910(0x7e)+'e'](/\/$/,'')+(_0x536910(0xb0)+'h');try{const _0x559fb0=await fetchImpl(_0x436183,{'signal':AbortSignal[_0x536910(0x9f)+'t'](timeoutMs)});if(!_0x559fb0['ok'])return null;const _0x3180d9=await _0x559fb0['json']();return isLikelyMossHealth(_0x3180d9)?_0x3180d9:null;}catch{return null;}}async function mapPool(_0x2fdddf,_0x4a08d4,_0x1a8880){const _0x3623ce=_0x520241,_0xe851c7=new Array(_0x2fdddf[_0x3623ce(0xa1)]);let _0x31baf7=0x0;async function _0x2fcc88(){while(_0x31baf7<_0x2fdddf['length']){const _0xc68a1d=_0x31baf7++;_0xe851c7[_0xc68a1d]=await _0x1a8880(_0x2fdddf[_0xc68a1d],_0xc68a1d);}}const _0x39676d=Math[_0x3623ce(0xab)](0x1,Math[_0x3623ce(0xa3)](_0x4a08d4,_0x2fdddf[_0x3623ce(0xa1)]||0x1));return await Promise[_0x3623ce(0xbe)](Array[_0x3623ce(0x98)]({'length':_0x39676d},()=>_0x2fcc88())),_0xe851c7;}export async function browseMossHttp(_0x2deb04=0xfa0){const _0x555b96=_0x520241,_0x5ea52e=[],_0x5efa6d=new _0x50c8b9(),_0x823a4=_0x5efa6d[_0x555b96(0xb6)]({'type':_0x555b96(0x9e)+'ttp','protocol':_0x555b96(0x92)},_0x1599ca=>{for(const _0x1c8448 of deviceFromService(_0x1599ca))mergeDevices(_0x5ea52e,_0x1c8448);});await new Promise(_0x26c4b6=>setTimeout(_0x26c4b6,_0x2deb04));try{_0x823a4[_0x555b96(0xd3)]();}catch{}try{_0x5efa6d[_0x555b96(0x8d)+'y']();}catch{}return _0x5ea52e;}export async function scanLanMoss({port:port=0x157c,timeoutMs:timeoutMs=0x1f4,concurrency:concurrency=0x30,fetchImpl:fetchImpl=fetch,prefixes:prefixes=listLanPrefixes()}={}){const _0x30284a=_0x520241,_0x474330=[],_0xb02a3=[];for(const _0x228528 of prefixes){for(let _0x4d7ffd=0x1;_0x4d7ffd<=0xfe;_0x4d7ffd+=0x1){_0xb02a3[_0x30284a(0x81)](_0x30284a(0xb4)+'/'+_0x228528+'.'+_0x4d7ffd+':'+port);}}const _0x381907=[...new Set(_0xb02a3)];return await mapPool(_0x381907,concurrency,async _0x3ee024=>{const _0x1dabfd=_0x30284a,_0xedf1db=await probeMossHealth(_0x3ee024,{'timeoutMs':timeoutMs,'fetchImpl':fetchImpl});if(!_0xedf1db)return;mergeDevices(_0x474330,enrichFromHealth({'name':_0xedf1db[_0x1dabfd(0xa5)+'ce']||_0xedf1db[_0x1dabfd(0x90)+'me']||_0x1dabfd(0xc5),'host':_0x3ee024['replac'+'e'](/^https?:\/\//,'')['replac'+'e'](/:\d+$/,''),'port':port,'baseUrl':_0x3ee024,'source':_0x1dabfd(0x9a)},_0xedf1db));}),_0x474330;}export async function discoverMossDevices({lastHostname:lastHostname='',lastBaseUrl:lastBaseUrl='',mdnsMs:mdnsMs=0xfa0,fetchImpl:fetchImpl=fetch}={}){const _0xa46f50=_0x520241,_0x2bf7fd=[],_0x80ad3d=browseMossHttp(mdnsMs)[_0xa46f50(0x8a)](_0x1cfc30=>{const _0x4285c6=_0xa46f50;return console[_0x4285c6(0x9d)](_0x4285c6(0x99)+'ver]\x20m'+'dns',_0x1cfc30?.[_0x4285c6(0x8f)+'e']||_0x1cfc30),[];}),_0x5e7c94=scanLanMoss({'fetchImpl':fetchImpl})['catch'](_0x55a89e=>{const _0x358006=_0xa46f50;return console[_0x358006(0x9d)](_0x358006(0x99)+'ver]\x20l'+'an',_0x55a89e?.[_0x358006(0x8f)+'e']||_0x55a89e),[];}),_0x2f722e=[];if(lastBaseUrl)_0x2f722e[_0xa46f50(0x81)]({'name':_0xa46f50(0xc9),'baseUrl':String(lastBaseUrl)['replac'+'e'](/\/$/,''),'source':'saved'});lastHostname&&_0x2f722e[_0xa46f50(0x81)]({'name':lastHostname,'baseUrl':'http:/'+'/'+lastHostname+(_0xa46f50(0xba)+_0xa46f50(0xa8)),'source':'hostna'+'me'});const [_0x434e04,_0x29d7f2]=await Promise[_0xa46f50(0xbe)]([_0x80ad3d,_0x5e7c94]);for(const _0x1a2ac9 of[..._0x434e04,..._0x29d7f2,..._0x2f722e])mergeDevices(_0x2bf7fd,_0x1a2ac9);const _0x4bc7fe=await mapPool(_0x2bf7fd,0x8,async _0x56985e=>{const _0x392661=_0xa46f50,_0x5be7f8=await probeMossHealth(_0x56985e[_0x392661(0xa0)+'l'],{'timeoutMs':0x4b0,'fetchImpl':fetchImpl});if(_0x5be7f8)return enrichFromHealth(_0x56985e,_0x5be7f8);if(_0x56985e[_0x392661(0x95)]===_0x392661(0xc2)||_0x56985e[_0x392661(0x95)]===_0x392661(0x9a))return _0x56985e;return null;}),_0x23107f=[];for(const _0x358a79 of _0x4bc7fe){if(_0x358a79)mergeDevices(_0x23107f,_0x358a79);}return _0x23107f;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
(function(_0x19d208,_0x4914f8){const _0x46673a=_0x3b80,_0x124265=_0x19d208();while(!![]){try{const _0x4861be=-parseInt(_0x46673a(0x1ec))/0x1*(-parseInt(_0x46673a(0x1e4))/0x2)+-parseInt(_0x46673a(0x208))/0x3+-parseInt(_0x46673a(0x201))/0x4+parseInt(_0x46673a(0x1f9))/0x5*(parseInt(_0x46673a(0x1e1))/0x6)+parseInt(_0x46673a(0x1de))/0x7*(parseInt(_0x46673a(0x1eb))/0x8)+-parseInt(_0x46673a(0x1f1))/0x9+-parseInt(_0x46673a(0x1ef))/0xa*(-parseInt(_0x46673a(0x1e3))/0xb);if(_0x4861be===_0x4914f8)break;else _0x124265['push'](_0x124265['shift']());}catch(_0x16e429){_0x124265['push'](_0x124265['shift']());}}}(_0x2b21,0x1d829));import{execFileSync}from'node:child_process';import _0x5a8760 from'node:fs';export function sleep(_0xc4d595){return new Promise(_0x2808cf=>setTimeout(_0x2808cf,_0xc4d595));}function _0x3b80(_0x4009e6,_0x363f1b){_0x4009e6=_0x4009e6-0x1dd;const _0x2b214a=_0x2b21();let _0x3b80a4=_0x2b214a[_0x4009e6];if(_0x3b80['hBSsQB']===undefined){var _0x1d0f64=function(_0x411081){const _0x22e14e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a8760='',_0xc4d595='';for(let _0x2808cf=0x0,_0x562fc8,_0x26e45a,_0x19119f=0x0;_0x26e45a=_0x411081['charAt'](_0x19119f++);~_0x26e45a&&(_0x562fc8=_0x2808cf%0x4?_0x562fc8*0x40+_0x26e45a:_0x26e45a,_0x2808cf++%0x4)?_0x5a8760+=String['fromCharCode'](0xff&_0x562fc8>>(-0x2*_0x2808cf&0x6)):0x0){_0x26e45a=_0x22e14e['indexOf'](_0x26e45a);}for(let _0x1102e5=0x0,_0x39d349=_0x5a8760['length'];_0x1102e5<_0x39d349;_0x1102e5++){_0xc4d595+='%'+('00'+_0x5a8760['charCodeAt'](_0x1102e5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc4d595);};_0x3b80['fDjGSO']=_0x1d0f64,_0x3b80['LHpjty']={},_0x3b80['hBSsQB']=!![];}const _0x21782b=_0x2b214a[0x0],_0x249beb=_0x4009e6+_0x21782b,_0x2d12f1=_0x3b80['LHpjty'][_0x249beb];return!_0x2d12f1?(_0x3b80a4=_0x3b80['fDjGSO'](_0x3b80a4),_0x3b80['LHpjty'][_0x249beb]=_0x3b80a4):_0x3b80a4=_0x2d12f1,_0x3b80a4;}export function parsePidList(_0x562fc8){const _0x48e8f3=_0x3b80;return[...new Set(String(_0x562fc8||'')['split'](/[\s,]+/)['map'](_0x26e45a=>Number(_0x26e45a))[_0x48e8f3(0x1ff)](_0x19119f=>Number[_0x48e8f3(0x1fd)+'ger'](_0x19119f)&&_0x19119f>0x1))];}export function isMossDesktopCommand(_0x1102e5){const _0x3ea53c=_0x3b80,_0x39d349=String(_0x1102e5||'');return/(?:^|[\\/\s])(?:server\/index\.mjs|dist-server\/index\.mjs)\b/[_0x3ea53c(0x1f0)](_0x39d349)||/\byo-moss-ai\b/[_0x3ea53c(0x1f0)](_0x39d349);}export function processCommand(_0x4e6b68){const _0xabda39=_0x3b80,_0x3b8136=Number(_0x4e6b68);if(!Number[_0xabda39(0x1fd)+_0xabda39(0x1df)](_0x3b8136)||_0x3b8136<=0x1)return'';try{return execFileSync('ps',['-p',String(_0x3b8136),'-o',_0xabda39(0x202)],{'encoding':_0xabda39(0x1f5),'timeout':0x3e8})[_0xabda39(0x1e8)]();}catch{return'';}}export function pidsListeningOn(_0x38f9ca){const _0x3b3dc6=_0x3b80,_0x4a2b10=Number(_0x38f9ca);if(!Number[_0x3b3dc6(0x1fd)+_0x3b3dc6(0x1df)](_0x4a2b10)||_0x4a2b10<=0x0)return[];try{if(process[_0x3b3dc6(0x204)+'rm']===_0x3b3dc6(0x1f4)){const _0x5db8b6=execFileSync(_0x3b3dc6(0x207)+'t',[_0x3b3dc6(0x206),'-p',_0x3b3dc6(0x1f7)],{'encoding':_0x3b3dc6(0x1f5),'timeout':0xbb8,'windowsHide':!![]}),_0x548386=[],_0x12c8b9=new RegExp(_0x3b3dc6(0x20a)+_0x4a2b10+('(?:\x5c]|'+_0x3b3dc6(0x1f8)+_0x3b3dc6(0x20b)+_0x3b3dc6(0x1fc)+_0x3b3dc6(0x1e2)),'gi');let _0x2547cb;while(_0x2547cb=_0x12c8b9[_0x3b3dc6(0x203)](_0x5db8b6))_0x548386[_0x3b3dc6(0x1f3)](_0x2547cb[0x1]);return parsePidList(_0x548386[_0x3b3dc6(0x1dd)]('\x20'));}const _0x17b2ed=execFileSync('lsof',[_0x3b3dc6(0x205),_0x3b3dc6(0x1e6)+_0x4a2b10,'-sTCP:'+_0x3b3dc6(0x1fa),'-t'],{'encoding':'utf8','timeout':0xbb8});return parsePidList(_0x17b2ed);}catch{return[];}}function _0x2b21(){const _0x35a521=['lwfUBW','BMv0C3rH','mJu5mdeXAwjKCujg','u3LUyW','wZPCw10','svnuru5j','AM9PBG','mta5odC1nwzpA2Lwva','z2vY','lZeYnY4W','nKrTq0XJza','xgqRkq','nda2oty3v3Lpzfzq','nMfXuxvjra','CMvHzezP','lwLuq1a6','Cg9YDa','DhjPBq','u0Lhvevs','A2LSBa','ogntEKjSEG','nJm0mJj2EKLmseG','lJaUmtO','BgvtEw5J','mJbms2jUtxK','DgvZDa','mtKYmJq3mMPlDKDmtW','CgLK','ChvZAa','D2LUmZi','DxrMoa','CgfYC2u','venq','xhmPlIPm','otG0mdvbrMPvrNu','teLtvevo','Ahr0CdOV','tKDCCYSO','AxnjBNrL','Dw5SAw5R','zMLSDgvY','u0Lhs0Lm','odaZntjJwLHhDwm','yxjNCZ0','zxHLyW','CgXHDgzV','lw5q'];_0x2b21=function(){return _0x35a521;};return _0x2b21();}export function isPidAlive(_0x2e8dbb){const _0x168f4a=_0x3b80,_0xed7ef9=Number(_0x2e8dbb);if(!Number[_0x168f4a(0x1fd)+_0x168f4a(0x1df)](_0xed7ef9)||_0xed7ef9<=0x1)return![];try{return process[_0x168f4a(0x1ea)](_0xed7ef9,0x0),!![];}catch{return![];}}export function readRuntime(_0x1a8fa2){const _0x2334da=_0x3b80;try{const _0x12eb23=JSON[_0x2334da(0x1f6)](_0x5a8760[_0x2334da(0x1e5)+_0x2334da(0x1ee)](_0x1a8fa2,_0x2334da(0x1f5))),_0x4a8e5a=Number(_0x12eb23[_0x2334da(0x1e7)]),_0x59bf2b=Number(_0x12eb23[_0x2334da(0x1f2)]);if(!Number[_0x2334da(0x1fd)+_0x2334da(0x1df)](_0x4a8e5a)||_0x4a8e5a<=0x0)return null;return{'port':_0x4a8e5a,'pid':Number[_0x2334da(0x1fd)+_0x2334da(0x1df)](_0x59bf2b)&&_0x59bf2b>0x1?_0x59bf2b:0x0,'at':Number(_0x12eb23['at'])||0x0};}catch{return null;}}export function resolveApiTarget({runtimePath:_0x39aeeb,preferredPort:preferredPort=0xec4}={}){const _0x4a2073=_0x3b80,_0x29d455=readRuntime(_0x39aeeb);if(_0x29d455?.[_0x4a2073(0x1e7)]&&(!_0x29d455[_0x4a2073(0x1f2)]||isPidAlive(_0x29d455[_0x4a2073(0x1f2)])))return _0x4a2073(0x1fb)+_0x4a2073(0x1e0)+_0x4a2073(0x1ed)+_0x29d455[_0x4a2073(0x1e7)];return _0x4a2073(0x1fb)+_0x4a2073(0x1e0)+_0x4a2073(0x1ed)+preferredPort;}export async function stopPid(_0x1cc714,{waitMs:waitMs=0x320}={}){const _0xe88ed2=_0x3b80,_0x52990c=Number(_0x1cc714);if(!Number[_0xe88ed2(0x1fd)+'ger'](_0x52990c)||_0x52990c<=0x1||_0x52990c===process['pid'])return![];if(!isPidAlive(_0x52990c))return!![];try{process[_0xe88ed2(0x1ea)](_0x52990c,_0xe88ed2(0x1e9)+'M');}catch{return!isPidAlive(_0x52990c);}const _0x52817c=Date['now']();while(Date['now']()-_0x52817c<waitMs){if(!isPidAlive(_0x52990c))return!![];await sleep(0x28);}if(isPidAlive(_0x52990c))try{process[_0xe88ed2(0x1ea)](_0x52990c,_0xe88ed2(0x200)+'L');}catch{}return!isPidAlive(_0x52990c);}export function clearRuntime(_0x1e4385){const _0x2f2f45=_0x3b80;try{_0x5a8760[_0x2f2f45(0x1fe)+_0x2f2f45(0x209)](_0x1e4385);}catch{}}async function waitUntilGone(_0x2562a9,{sleepMs:_0x4099b9,tries:_0x566ef5}){for(let _0x36157e=0x0;_0x36157e<_0x566ef5;_0x36157e+=0x1){if(!isPidAlive(_0x2562a9))return!![];await sleep(_0x4099b9);}return!isPidAlive(_0x2562a9);}export async function reclaimListenPort({preferredPort:_0x282d8f,runtimePath:_0x3c67ba,sleepMs:sleepMs=0x50,tries:tries=0x8,hopRange:hopRange=0x14,listPids:listPids=pidsListeningOn,readCommand:readCommand=processCommand}={}){const _0x36a420=_0x3b80,_0x36d76e=Number(_0x282d8f)||0xec4,_0x47fbaf=readRuntime(_0x3c67ba);let _0x339760=![],_0x2ed6e4=![];const _0x57f7a3=_0x47fbaf?.['pid']&&_0x47fbaf[_0x36a420(0x1f2)]!==process[_0x36a420(0x1f2)]&&Number[_0x36a420(0x1fd)+_0x36a420(0x1df)](_0x47fbaf[_0x36a420(0x1e7)])&&_0x47fbaf[_0x36a420(0x1e7)]>=_0x36d76e&&_0x47fbaf[_0x36a420(0x1e7)]<=_0x36d76e+hopRange;if(_0x57f7a3){_0x339760=!![];if(!isPidAlive(_0x47fbaf[_0x36a420(0x1f2)]))clearRuntime(_0x3c67ba);else{_0x2ed6e4=await stopPid(_0x47fbaf[_0x36a420(0x1f2)]),await waitUntilGone(_0x47fbaf[_0x36a420(0x1f2)],{'sleepMs':sleepMs,'tries':tries});if(!isPidAlive(_0x47fbaf[_0x36a420(0x1f2)]))clearRuntime(_0x3c67ba);}}else _0x47fbaf&&!_0x47fbaf[_0x36a420(0x1f2)]&&(clearRuntime(_0x3c67ba),_0x339760=!![]);const _0xe2e0e0=listPids(_0x36d76e)[_0x36a420(0x1ff)](_0x2ea944=>_0x2ea944!==process[_0x36a420(0x1f2)]&&_0x2ea944!==_0x47fbaf?.[_0x36a420(0x1f2)]&&isMossDesktopCommand(readCommand(_0x2ea944)));for(const _0x3614e0 of _0xe2e0e0){const _0x10a8c9=await stopPid(_0x3614e0);if(_0x10a8c9)_0x2ed6e4=!![];_0x339760=!![],await waitUntilGone(_0x3614e0,{'sleepMs':sleepMs,'tries':tries});}return{'reclaimed':_0x339760,'killed':_0x2ed6e4};}export function nextListenPort(_0x276aa9,_0x31b324,_0x182da3=0x8){const _0x4b8b72=Number(_0x276aa9)||0xec4;if(_0x31b324<_0x182da3)return _0x4b8b72;return _0x4b8b72+(_0x31b324-_0x182da3+0x1);}
|