@wujie-shell/core 4.0.0 → 4.0.1
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/dist/bin/wujie-shell.mjs +1 -1
- package/dist/src/agents/bundled-agent-skills.mjs +1 -1
- package/dist/src/agents/bundled-agents.mjs +1 -1
- package/dist/src/chat/media-archive.mjs +1 -1
- package/dist/src/chat/queue.mjs +1 -1
- package/dist/src/common/diagnostics.mjs +1 -1
- package/dist/src/common/logging.mjs +1 -1
- package/dist/src/common/runtime-logger.mjs +1 -1
- package/dist/src/common/user-events.mjs +1 -1
- package/dist/src/common/utils.mjs +1 -1
- package/dist/src/config/controller.mjs +1 -1
- package/dist/src/connectors/config-utils.mjs +1 -1
- package/dist/src/connectors/constants.mjs +1 -1
- package/dist/src/connectors/controller.mjs +1 -1
- package/dist/src/connectors/kdocs-cli.mjs +1 -1
- package/dist/src/electron/main.mjs +1 -1
- package/dist/src/electron/preload.mjs +1 -1
- package/dist/src/files/generated-files-store.mjs +1 -1
- package/dist/src/files/handlers.mjs +1 -1
- package/dist/src/gateway/chat-delta.mjs +1 -1
- package/dist/src/gateway/controller.mjs +1 -1
- package/dist/src/gateway/ws-client.mjs +1 -1
- package/dist/src/index.mjs +1 -1
- package/dist/src/log-reporting/handlers.mjs +1 -1
- package/dist/src/log-reporting/report-logs.mjs +1 -1
- package/dist/src/models/handlers.mjs +1 -1
- package/dist/src/preferences/store.mjs +1 -1
- package/dist/src/runtime/index.mjs +1 -1
- package/dist/src/runtime/patch-channel-plugin-runtime.mjs +1 -1
- package/dist/src/runtime/patch-chat-history-mixed-tool-content.mjs +1 -1
- package/dist/src/runtime/patch-session-store-sqlite.mjs +1 -1
- package/dist/src/runtime/plugin-sync.mjs +1 -1
- package/dist/src/sessions/agent-sessions-map-store.mjs +1 -1
- package/dist/src/sessions/runtime-bridge.mjs +1 -1
- package/dist/src/sessions/session-sqlite-store.mjs +1 -1
- package/dist/src/skills/import.mjs +1 -1
- package/dist/src/skills/market.mjs +1 -1
- package/dist/src/terminal/manager.mjs +1 -1
- package/dist/src/updates/controller.mjs +1 -1
- package/dist/src/updates/loader.mjs +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x41c275=_0xc92d;function _0x290c(){const _0x59df3a=['descript','object','targetPa','kills.js','接口返回的\x20co','^\x5cs*','接口返回的\x20ve','match','version','197344OLIsdl','mpare','5553325jMDGHZ','trim','keys','replace','ies','killKey','logoUrl','3127598lMwOVW','215652CFyTvF','接口返回的\x20na','manifest','104184KCtJdF','sort','market','SKILL.md','entries','skillKey','utf8','has','imported','2700NSatRL','fromEntr','parse','161oXePAp','1261441oRBmAt','skillDir','code','isArray','source','name','localeCo','market-s','skills','技能商店安装需要','ion','resolveS','map','tateDir','length','filter','5162970jSMatW','ket','logo_url','SKILLS.m','Name','Key','catch'];_0x290c=function(){return _0x59df3a;};return _0x290c();}function _0xc92d(_0x1d0e5a,_0x1be3ca){_0x1d0e5a=_0x1d0e5a-0xcc;const _0x290c62=_0x290c();let _0xc92d5d=_0x290c62[_0x1d0e5a];return _0xc92d5d;}(function(_0x135f25,_0xff829a){const _0x165a5a=_0xc92d,_0x714a9d=_0x135f25();while(!![]){try{const _0x35f766=-parseInt(_0x165a5a(0xdd))/0x1+-parseInt(_0x165a5a(0xcc))/0x2+-parseInt(_0x165a5a(0xed))/0x3+-parseInt(_0x165a5a(0xd0))/0x4+-parseInt(_0x165a5a(0xff))/0x5+parseInt(_0x165a5a(0xcd))/0x6*(-parseInt(_0x165a5a(0xdc))/0x7)+parseInt(_0x165a5a(0xfd))/0x8*(parseInt(_0x165a5a(0xd9))/0x9);if(_0x35f766===_0xff829a)break;else _0x714a9d['push'](_0x714a9d['shift']());}catch(_0x4ec9c1){_0x714a9d['push'](_0x714a9d['shift']());}}}(_0x290c,0xd97a9));import{readFile,readdir,rm}from'node:fs/promises';import{join}from'node:path';import{asRecord,getTrimmedString,writeJson}from'../common/utils.mjs';const SKILL_SOURCE_MARKET='aipc-mar'+_0x41c275(0xee);async function readMarketSkillRegistry(_0x10f7a3){const _0x51fcf3=_0x41c275;try{const _0x277b76=JSON[_0x51fcf3(0xdb)](await readFile(_0x10f7a3,_0x51fcf3(0xd6)));if(!_0x277b76||typeof _0x277b76!==_0x51fcf3(0xf5)||Array[_0x51fcf3(0xe0)](_0x277b76))return{};return _0x277b76;}catch{return{};}}export async function readSkillMarketRegistry(_0x367b1d){const _0x2248c1=_0x41c275;return await readMarketSkillRegistry(join(_0x367b1d,_0x2248c1(0xe4)+'kills.js'+'on'));}async function upsertMarketSkillRegistryEntry(_0x4afdd0,_0x1faa06,_0x54af39,_0x3de95d,_0x4bdbad={}){const _0x14191a=_0x41c275,_0x2518c5=getTrimmedString(_0x1faa06),_0x3ed75f=getTrimmedString(_0x54af39),_0x30ad63=getTrimmedString(_0x3de95d);if(!_0x2518c5||!_0x3ed75f||!_0x30ad63)return;const _0x5dfc09=await readMarketSkillRegistry(_0x4afdd0);_0x5dfc09[_0x2518c5]={'version':_0x30ad63,'code':_0x3ed75f,...getTrimmedString(_0x4bdbad['name'])?{'name':getTrimmedString(_0x4bdbad['name'])}:{},...getTrimmedString(_0x4bdbad[_0x14191a(0x105)])?{'logo_url':getTrimmedString(_0x4bdbad[_0x14191a(0x105)])}:{},...getTrimmedString(_0x4bdbad[_0x14191a(0xf4)+_0x14191a(0xe7)])?{'description':getTrimmedString(_0x4bdbad[_0x14191a(0xf4)+_0x14191a(0xe7)])}:{}};if(_0x5dfc09[_0x3ed75f]&&_0x3ed75f!==_0x2518c5)delete _0x5dfc09[_0x3ed75f];for(const [_0x384316,_0xa1630]of Object[_0x14191a(0xd4)](_0x5dfc09)){if(_0x384316!==_0x2518c5&&asRecord(_0xa1630)[_0x14191a(0xdf)]===_0x3ed75f)delete _0x5dfc09[_0x384316];}const _0x16e509=Object[_0x14191a(0xda)+_0x14191a(0x103)](Object[_0x14191a(0xd4)](_0x5dfc09)[_0x14191a(0xd1)](([_0x1a68de],[_0x12256e])=>_0x1a68de[_0x14191a(0xe3)+_0x14191a(0xfe)](_0x12256e)));await writeJson(_0x4afdd0,_0x16e509);}async function removeMarketSkillRegistryKeys(_0x35c91d,_0x58417a){const _0xf5bea8=_0x41c275,_0x21a462=new Set(_0x58417a[_0xf5bea8(0xe9)](getTrimmedString)[_0xf5bea8(0xec)](Boolean));if(_0x21a462['size']===0x0)return;const _0x549491=await readMarketSkillRegistry(_0x35c91d);let _0x415d4a=![];for(const _0x290985 of Object[_0xf5bea8(0x101)](_0x549491)){const _0x37743a=asRecord(_0x549491[_0x290985]);(_0x21a462[_0xf5bea8(0xd7)](_0x290985)||_0x21a462['has'](getTrimmedString(_0x37743a[_0xf5bea8(0xdf)])))&&(delete _0x549491[_0x290985],_0x415d4a=!![]);}if(_0x415d4a){const _0x5b24c5=Object[_0xf5bea8(0xda)+_0xf5bea8(0x103)](Object[_0xf5bea8(0xd4)](_0x549491)[_0xf5bea8(0xd1)](([_0xf1ddf],[_0x578c85])=>_0xf1ddf[_0xf5bea8(0xe3)+_0xf5bea8(0xfe)](_0x578c85)));await writeJson(_0x35c91d,_0x5b24c5);}}async function readSkillManifestText(_0x2c041d){const _0xdf3da3=_0x41c275,_0x45658b=[join(_0x2c041d,_0xdf3da3(0xd3)),join(_0x2c041d,_0xdf3da3(0xf0)+'d')];for(const _0x17ba82 of _0x45658b){const _0x1380a9=await readFile(_0x17ba82,_0xdf3da3(0xd6))[_0xdf3da3(0xf3)](()=>'');if(_0x1380a9['trim']())return _0x1380a9;}return'';}function resolveFrontmatterValue(_0x2a7a25,_0x27ee6a){const _0x1ae9e0=_0x41c275,_0x1f9c00=_0x2a7a25[_0x1ae9e0(0xfb)](/^---\s*\r?\n([\s\S]*?)\r?\n---/),_0x2d88c1=_0x1f9c00?.[0x1]??'',_0x35b8cf=_0x2d88c1[_0x1ae9e0(0xfb)](new RegExp(_0x1ae9e0(0xf9)+_0x27ee6a+(':\x5cs*(.+)'+'$'),'m'))?.[0x1];return getTrimmedString(_0x35b8cf)[_0x1ae9e0(0x102)](/^["']|["']$/g,'')||null;}async function resolveSkillKeyFromManifest(_0x13e4ae){const _0x2b3b7d=_0x41c275,_0x123b39=await readSkillManifestText(_0x13e4ae);if(!_0x123b39['trim']())return null;const _0xa039f5=_0x123b39[_0x2b3b7d(0xfb)](/"skillKey"\s*:\s*"([^"]+)"/);if(_0xa039f5?.[0x1])return getTrimmedString(_0xa039f5[0x1]);return resolveFrontmatterValue(_0x123b39,_0x2b3b7d(0xd5))||resolveFrontmatterValue(_0x123b39,'name');}async function removeOtherMarketSkillVersions(_0x6375aa,_0x3b4a06,_0x218539){const _0x46628a=_0x41c275,_0x3f620a=getTrimmedString(_0x218539);if(!_0x3f620a)return;for(const _0x2d1f9f of await readdir(_0x6375aa,{'withFileTypes':!![]})[_0x46628a(0xf3)](()=>[])){if(!_0x2d1f9f['isDirect'+'ory']())continue;const _0xdad60c=join(_0x6375aa,_0x2d1f9f[_0x46628a(0xe2)]);if(_0xdad60c===_0x3b4a06)continue;const _0x109649=await resolveSkillKeyFromManifest(_0xdad60c);_0x109649&&_0x109649[_0x46628a(0x100)]()===_0x3f620a&&await rm(_0xdad60c,{'recursive':!![],'force':!![]});}}export async function importMarketSkillZip({payload:payload={},importSkillZip:_0x32e10a,configController:_0xec7497}={}){const _0x174972=_0x41c275,_0x36fad7=asRecord(payload);if(_0x36fad7[_0x174972(0xe1)]!==_0x174972(0xd2))return _0x32e10a({'payload':payload});const _0x14b1e8=getTrimmedString(_0x36fad7[_0x174972(0xdf)]),_0x3a1d2c=getTrimmedString(_0x36fad7[_0x174972(0xfc)]),_0x2f7076=getTrimmedString(_0x36fad7['name']);if(!_0x14b1e8)throw new Error(_0x174972(0xe6)+_0x174972(0xf8)+'de');if(!_0x3a1d2c)throw new Error('技能商店安装需要'+_0x174972(0xfa)+'rsion');if(!_0x2f7076)throw new Error(_0x174972(0xe6)+_0x174972(0xce)+'me');const _0x248727=await _0x32e10a({'payload':{..._0x36fad7,'version':_0x3a1d2c}});if(!_0x248727?.[_0x174972(0xd8)])return _0x248727;const _0x3900ac=getTrimmedString(_0x248727['skillKey'])||getTrimmedString(_0x248727[_0x174972(0xcf)+_0x174972(0xf2)])||getTrimmedString(_0x248727[_0x174972(0xde)+_0x174972(0xf1)]);return await removeOtherMarketSkillVersions(join(_0xec7497[_0x174972(0xe8)+'tateDir'](),_0x174972(0xe5)),_0x248727[_0x174972(0xf6)+'th'],_0x3900ac),await upsertMarketSkillRegistryEntry(join(_0xec7497[_0x174972(0xe8)+_0x174972(0xea)](),_0x174972(0xe4)+_0x174972(0xf7)+'on'),_0x3900ac,_0x14b1e8,_0x3a1d2c,{'name':_0x2f7076,'logoUrl':getTrimmedString(_0x36fad7[_0x174972(0x105)]),'description':getTrimmedString(_0x36fad7['descript'+_0x174972(0xe7)])}),_0x248727;}export async function deleteMarketSkillRegistryEntry({payload:payload={},deleteManagedSkill:_0x462f31,configController:_0x476907}={}){const _0x51644c=_0x41c275,_0xd6d88e=await _0x462f31({'payload':payload}),_0x122903=asRecord(payload),_0x3cea50=getTrimmedString(_0xd6d88e?.[_0x51644c(0xd5)]??_0x122903[_0x51644c(0xd5)]??_0x122903[_0x51644c(0xe2)]),_0x579a86=[_0x3cea50,getTrimmedString(_0x122903['gatewayS'+_0x51644c(0x104)]),getTrimmedString(_0x122903['name'])];return await removeMarketSkillRegistryKeys(join(_0x476907['resolveS'+_0x51644c(0xea)](),_0x51644c(0xe4)+_0x51644c(0xf7)+'on'),_0x579a86),_0xd6d88e;}export function mapMarketRegisteredSkills(_0x58bceb,_0x6a3605){const _0x30652b=_0x41c275,_0x3b653a=Array[_0x30652b(0xe0)](asRecord(_0x58bceb)[_0x30652b(0xe5)])?asRecord(_0x58bceb)[_0x30652b(0xe5)]:[];if(_0x3b653a[_0x30652b(0xeb)]===0x0||Object['keys'](_0x6a3605)[_0x30652b(0xeb)]===0x0)return _0x58bceb;const _0x26dca9=_0x3b653a[_0x30652b(0xe9)](_0x308fbe=>{const _0x6956d7=_0x30652b,_0x29eb10=asRecord(_0x308fbe),_0x41ffcc=getTrimmedString(_0x29eb10['skillKey'])||getTrimmedString(_0x29eb10['name']);let _0x115aaf=_0x41ffcc,_0x443ee9=asRecord(_0x6a3605[_0x41ffcc]);if(!Object[_0x6956d7(0x101)](_0x443ee9)[_0x6956d7(0xeb)])for(const [_0x33ec48,_0x59aa2a]of Object[_0x6956d7(0xd4)](_0x6a3605)){const _0x125f88=asRecord(_0x59aa2a);if(getTrimmedString(_0x125f88[_0x6956d7(0xdf)])===_0x41ffcc){_0x115aaf=_0x33ec48,_0x443ee9=_0x125f88;break;}}if(!Object[_0x6956d7(0x101)](_0x443ee9)[_0x6956d7(0xeb)])return _0x308fbe;const _0x4289e6=getTrimmedString(_0x443ee9[_0x6956d7(0xdf)]),_0x3f465d=getTrimmedString(_0x443ee9['name']),_0x49753f=getTrimmedString(_0x443ee9[_0x6956d7(0xf4)+_0x6956d7(0xe7)]),_0x3e3af7=getTrimmedString(_0x443ee9[_0x6956d7(0xef)]),_0x39f145=getTrimmedString(_0x443ee9[_0x6956d7(0xfc)]);return{..._0x29eb10,'source':SKILL_SOURCE_MARKET,'skillKey':_0x4289e6||_0x41ffcc,'gatewaySkillKey':_0x4289e6?_0x115aaf:null,'marketInstalledVersion':_0x39f145||null,..._0x3f465d?{'name':_0x3f465d}:{},..._0x49753f?{'description':_0x49753f}:{},..._0x3e3af7?{'logoUrl':_0x3e3af7}:{}};});return{...asRecord(_0x58bceb),'skills':_0x26dca9};}export function createMarketSkillRuntime({configController:_0x1587f1}){return{'mapSkillsStatus':async _0x53fb8b=>{const _0x2314f8=_0xc92d,_0x332b80=await readSkillMarketRegistry(_0x1587f1[_0x2314f8(0xe8)+_0x2314f8(0xea)]())[_0x2314f8(0xf3)](()=>({}));return mapMarketRegisteredSkills(_0x53fb8b,_0x332b80);}};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1990b4,_0x478439){const _0x2256ae=_0x3df3,_0x301e4c=_0x1990b4();while(!![]){try{const _0x3f257c=-parseInt(_0x2256ae(0xce))/0x1*(-parseInt(_0x2256ae(0xc0))/0x2)+parseInt(_0x2256ae(0x8e))/0x3+parseInt(_0x2256ae(0xd5))/0x4*(parseInt(_0x2256ae(0xa0))/0x5)+parseInt(_0x2256ae(0xc1))/0x6*(parseInt(_0x2256ae(0x9d))/0x7)+-parseInt(_0x2256ae(0xa2))/0x8+parseInt(_0x2256ae(0xae))/0x9*(parseInt(_0x2256ae(0xb7))/0xa)+-parseInt(_0x2256ae(0x97))/0xb*(parseInt(_0x2256ae(0x98))/0xc);if(_0x3f257c===_0x478439)break;else _0x301e4c['push'](_0x301e4c['shift']());}catch(_0x3b35a9){_0x301e4c['push'](_0x301e4c['shift']());}}}(_0x51d2,0x961f6));import{spawn}from'node:child_process';import{randomUUID}from'node:crypto';import{accessSync,constants,existsSync}from'node:fs';import{mkdir}from'node:fs/promises';import{basename,delimiter,join}from'node:path';const FILE_EXTENSION_REGEX=/\.[a-z0-9]+$/i;function resolvePathEntries(_0x411ec9){const _0x1ac557=_0x3df3,_0x3ab50e=Object[_0x1ac557(0xa3)](_0x411ec9)[_0x1ac557(0xac)](_0x31d230=>_0x31d230['toLowerC'+_0x1ac557(0xb8)]()===_0x1ac557(0xcc))??_0x1ac557(0xbc);return String(_0x411ec9[_0x3ab50e]||'')[_0x1ac557(0xd2)](delimiter)[_0x1ac557(0xb6)](Boolean);}function canExecute(_0x2c1978){const _0x37e1e3=_0x3df3;try{return accessSync(_0x2c1978,process[_0x37e1e3(0x90)]===_0x37e1e3(0xca)?constants[_0x37e1e3(0xb3)]:constants[_0x37e1e3(0xbf)]),!![];}catch{return![];}}function _0x51d2(){const _0x1d7bb7=['.bat','\x20session','ash','pipe','\x20not\x20fou','/usr/loc','ebrew/bi','win32','get','path','includes','251574WAsMjn','data','push','darwin','split','clear','cmd','16CPEaxR','Terminal','.exe','2500155NLDhJH','message','platform','values','error','rted\x20she','truecolo','cwd','n/bash','12683bTTtuB','21324qNZrXO','No\x20suppo','env','6color','write','21BWrsKs','object','ll\x20found','694205JFRsZy','bash','3638936QukGwR','keys','stderr','stdout','close','-NoLogo','set','sessionI','delete','child','find','.cmd','18ZfzxOL','test','/bin/bas','trim','powershe','F_OK','stdin','xterm-25','filter','4837960FdZTzi','ase','/opt/hom','al/bin/b','kill','PATH','al/bin/z','pwsh','X_OK','6JyYWUx','15174eXSMFp','toString'];_0x51d2=function(){return _0x1d7bb7;};return _0x51d2();}function _0x3df3(_0x2d45c8,_0x1dc912){_0x2d45c8=_0x2d45c8-0x8e;const _0x51d2fa=_0x51d2();let _0x3df397=_0x51d2fa[_0x2d45c8];return _0x3df397;}function resolveExecutableOnPath(_0xc65254,_0x31ed76){const _0x525dee=_0x3df3,_0xf99c40=String(_0xc65254||'')['trim']();if(!_0xf99c40)return null;if(_0xf99c40[_0x525dee(0xcd)]('/')||_0xf99c40[_0x525dee(0xcd)]('\x5c'))return existsSync(_0xf99c40)?_0xf99c40:null;const _0x53a2a4=[_0xf99c40];process[_0x525dee(0x90)]===_0x525dee(0xca)&&!FILE_EXTENSION_REGEX[_0x525dee(0xaf)](_0xf99c40)&&_0x53a2a4[_0x525dee(0xd0)](_0xf99c40+_0x525dee(0xd7),_0xf99c40+_0x525dee(0xad),_0xf99c40+_0x525dee(0xc3));for(const _0x3413d0 of resolvePathEntries(_0x31ed76)){for(const _0x265a2f of _0x53a2a4){const _0x4bfa6b=join(_0x3413d0,_0x265a2f);if(canExecute(_0x4bfa6b))return _0x4bfa6b;}}return null;}function resolveShellLaunchConfig(_0x382151){const _0x19b628=_0x3df3;if(process[_0x19b628(0x90)]===_0x19b628(0xca)){const _0x58e26f=resolveExecutableOnPath(_0x19b628(0xbe),_0x382151)??resolveExecutableOnPath(_0x19b628(0xb2)+'ll',_0x382151);if(_0x58e26f)return{'command':_0x58e26f,'args':[_0x19b628(0xa7)]};const _0xe7aeb0=resolveExecutableOnPath(_0x19b628(0xd4),_0x382151);if(_0xe7aeb0)return{'command':_0xe7aeb0,'args':['/Q']};throw new Error(_0x19b628(0x99)+'rted\x20Win'+'dows\x20she'+'ll\x20found');}if(process[_0x19b628(0x90)]===_0x19b628(0xd1)){const _0x447d09=['/bin/zsh',_0x19b628(0xc8)+_0x19b628(0xbd)+'sh','/opt/hom'+'ebrew/bi'+'n/zsh'][_0x19b628(0xac)](canExecute);if(_0x447d09)return{'command':_0x447d09,'args':['-i']};const _0x58feea=[_0x19b628(0xb0)+'h',_0x19b628(0xc8)+_0x19b628(0xba)+_0x19b628(0xc5),_0x19b628(0xb9)+_0x19b628(0xc9)+_0x19b628(0x96)][_0x19b628(0xac)](canExecute);if(_0x58feea)return{'command':_0x58feea,'args':['--login','-i']};}const _0x2b24ee=resolveExecutableOnPath(process.env.SHELL||'',_0x382151)??resolveExecutableOnPath(_0x19b628(0xa1),_0x382151)??resolveExecutableOnPath('sh',_0x382151);if(!_0x2b24ee)throw new Error(_0x19b628(0x99)+_0x19b628(0x93)+_0x19b628(0x9f));return{'command':_0x2b24ee,'args':['-l','-i']};}export function createTerminalManager({cwd:_0x2ec915,emitData:_0x4c4cb2,emitExit:_0xa930c0}){const _0x4dce32=new Map();function _0x481c3d(_0x50e70e){const _0x515519=_0x3df3,_0x1b0c33=_0x4dce32[_0x515519(0xcb)](_0x50e70e);if(!_0x1b0c33)throw new Error(_0x515519(0xd6)+_0x515519(0xc4)+_0x515519(0xc7)+'nd');return _0x1b0c33;}async function _0x2dae0d(_0x5c1201={}){const _0xd9346d=_0x3df3,_0x469f3b={...process.env,'TERM':_0xd9346d(0xb5)+_0xd9346d(0x9b),'COLORTERM':_0xd9346d(0x94)+'r',..._0x5c1201[_0xd9346d(0x9a)]&&typeof _0x5c1201[_0xd9346d(0x9a)]===_0xd9346d(0x9e)?_0x5c1201[_0xd9346d(0x9a)]:{}},_0x45b26d=typeof _0x5c1201[_0xd9346d(0x95)]==='string'&&_0x5c1201['cwd'][_0xd9346d(0xb1)]()?_0x5c1201['cwd']:'',_0x16b305=_0x45b26d||_0x2ec915;await mkdir(_0x16b305,{'recursive':!![]});const {command:_0x3d2b14,args:_0x179bbc}=resolveShellLaunchConfig(_0x469f3b),_0x57e7db=randomUUID(),_0x10a1bb=spawn(_0x3d2b14,_0x179bbc,{'cwd':_0x16b305,'env':_0x469f3b,'stdio':_0xd9346d(0xc6)});return _0x4dce32[_0xd9346d(0xa8)](_0x57e7db,{'sessionId':_0x57e7db,'child':_0x10a1bb}),_0x10a1bb[_0xd9346d(0xa5)]['on'](_0xd9346d(0xcf),_0x1158eb=>_0x4c4cb2({'sessionId':_0x57e7db,'data':_0x1158eb['toString']()})),_0x10a1bb[_0xd9346d(0xa4)]['on'](_0xd9346d(0xcf),_0x560432=>_0x4c4cb2({'sessionId':_0x57e7db,'data':_0x560432[_0xd9346d(0xc2)]()})),_0x10a1bb['on'](_0xd9346d(0xa6),(_0x431c2a,_0x4a7421)=>{_0x4dce32['delete'](_0x57e7db),_0xa930c0({'sessionId':_0x57e7db,'exitCode':_0x431c2a,'signal':_0x4a7421});}),_0x10a1bb['on'](_0xd9346d(0x92),_0x1293ce=>{const _0x599c98=_0xd9346d;_0x4c4cb2({'sessionId':_0x57e7db,'data':_0x1293ce[_0x599c98(0x8f)]+'\x0a'});}),{'sessionId':_0x57e7db,'shell':basename(_0x3d2b14),'cwd':_0x16b305};}function _0x1a9c58(_0x144b66={}){const _0x14635d=_0x3df3,_0x5bbd1e=_0x481c3d(String(_0x144b66['sessionI'+'d']||''));return _0x5bbd1e[_0x14635d(0xab)][_0x14635d(0xb4)][_0x14635d(0x9c)](String(_0x144b66[_0x14635d(0xcf)]||'')),{'ok':!![]};}function _0x323fb1(_0xd43f99={}){const _0x131366=_0x3df3,_0x3bead7=String(_0xd43f99[_0x131366(0xa9)+'d']||'');return _0x481c3d(_0x3bead7),{'ok':!![],'ignored':!![]};}function _0x3832a5(_0x55d22c={}){const _0x2b3e05=_0x3df3,_0x17e7de=String(_0x55d22c['sessionI'+'d']||''),_0x5e53ec=_0x4dce32[_0x2b3e05(0xcb)](_0x17e7de);if(!_0x5e53ec)return{'ok':!![],'closed':![]};return _0x4dce32[_0x2b3e05(0xaa)](_0x17e7de),_0x5e53ec[_0x2b3e05(0xab)][_0x2b3e05(0xbb)](),{'ok':!![],'closed':!![]};}function _0x58a31a(){const _0x46a50a=_0x3df3;for(const _0x1ac3bd of _0x4dce32[_0x46a50a(0x91)]())_0x1ac3bd[_0x46a50a(0xab)][_0x46a50a(0xbb)]();_0x4dce32[_0x46a50a(0xd3)]();}return{'create':_0x2dae0d,'input':_0x1a9c58,'resize':_0x323fb1,'close':_0x3832a5,'dispose':_0x58a31a};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x57579b,_0x2bbaba){const _0x2bf984=_0x52ab,_0x5aec51=_0x57579b();while(!![]){try{const _0x2342d0=parseInt(_0x2bf984(0x17d))/0x1*(-parseInt(_0x2bf984(0x11f))/0x2)+parseInt(_0x2bf984(0x1a1))/0x3+-parseInt(_0x2bf984(0x10d))/0x4+-parseInt(_0x2bf984(0x15b))/0x5*(parseInt(_0x2bf984(0x140))/0x6)+-parseInt(_0x2bf984(0x17b))/0x7*(parseInt(_0x2bf984(0x16c))/0x8)+-parseInt(_0x2bf984(0x108))/0x9*(-parseInt(_0x2bf984(0x17e))/0xa)+parseInt(_0x2bf984(0xe8))/0xb;if(_0x2342d0===_0x2bbaba)break;else _0x5aec51['push'](_0x5aec51['shift']());}catch(_0x450ff9){_0x5aec51['push'](_0x5aec51['shift']());}}}(_0x46ed,0xdd063));import{existsSync,readFileSync,readdirSync,rmSync,statSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{basename,join}from'node:path';import _0x4978ee from'electron-updater';import{app,BrowserWindow}from'electron';import{clean,compare}from'semver';const {autoUpdater}=_0x4978ee,DEFAULT_INSTALL_QUIT_TIMEOUT_MS=0xea60,DEFAULT_BACKGROUND_UPDATE_CHECK_INTERVAL_MS=0x3c*0x3c*0x3e8,DEFAULT_BACKGROUND_UPDATE_CHECK_STALE_MS=0x1e*0x3c*0x3e8;function normalizeAppUpdatePackageFileName(_0xba96b3){const _0x17455a=_0x52ab;if(typeof _0xba96b3!==_0x17455a(0xf7))return null;const _0x1d1d0d=_0xba96b3[_0x17455a(0x177)]();if(!_0x1d1d0d||_0x1d1d0d==='.'||_0x1d1d0d==='..'||_0x1d1d0d[_0x17455a(0x130)]('/')||_0x1d1d0d[_0x17455a(0x130)]('\x5c'))return null;return _0x1d1d0d;}function isMatchingAppUpdatePackageMetadata(_0x40f961,_0xe4a19f){const _0x391b2d=_0x52ab;if(!_0x40f961||!_0xe4a19f||typeof _0xe4a19f!=='object')return![];const _0x34be4f=_0xe4a19f,_0x53d844=normalizeAppUpdatePackageFileName(_0x40f961['fileName']),_0x46dee5=normalizeAppUpdatePackageFileName(_0x34be4f[_0x391b2d(0x12b)]),_0x55bd0b=_0x40f961[_0x391b2d(0x178)][_0x391b2d(0x177)](),_0x48b114=typeof _0x34be4f[_0x391b2d(0x178)]===_0x391b2d(0xf7)?_0x34be4f[_0x391b2d(0x178)][_0x391b2d(0x177)]():'';return Boolean(_0x53d844&&_0x46dee5&&_0x53d844===_0x46dee5&&_0x55bd0b&&_0x48b114&&_0x55bd0b===_0x48b114);}function normalizeAppVersion(_0x580e33){const _0x1a8311=_0x52ab;return clean(String(_0x580e33??'')[_0x1a8311(0x177)]());}function compareAppVersions(_0x19b734,_0x29a2dc){const _0x5cf233=_0x52ab,_0x576dcd=normalizeAppVersion(_0x19b734),_0x3a71e6=normalizeAppVersion(_0x29a2dc);if(!_0x576dcd||!_0x3a71e6)return'unknown';const _0x189592=compare(_0x3a71e6,_0x576dcd);if(_0x189592===0x0)return _0x5cf233(0x1af)+_0x5cf233(0x172);return _0x189592>0x0?'remote-n'+_0x5cf233(0x1ac):'remote-o'+_0x5cf233(0x1ad);}function normalizeAppUpdateChannel(_0x45bcd0){const _0x16a3f2=_0x52ab;return _0x45bcd0===_0x16a3f2(0x19a)?_0x16a3f2(0x19a):'latest';}function _0x52ab(_0x593eb4,_0x4d3a50){_0x593eb4=_0x593eb4-0xe5;const _0x46ed8f=_0x46ed();let _0x52ab29=_0x46ed8f[_0x593eb4];return _0x52ab29;}function normalizeString(_0x3f1be3){const _0x1085aa=_0x52ab;if(typeof _0x3f1be3!==_0x1085aa(0xf7))return null;const _0x298f7b=_0x3f1be3['trim']();return _0x298f7b||null;}function normalizeReleaseNotes(_0x1ed861){const _0x5f1de0=_0x52ab;if(typeof _0x1ed861===_0x5f1de0(0xf7))return normalizeString(_0x1ed861);if(!Array[_0x5f1de0(0x158)](_0x1ed861))return null;const _0x2eba41=_0x1ed861[_0x5f1de0(0x14d)](_0x16fcdc=>{const _0x2b0365=_0x5f1de0;if(typeof _0x16fcdc===_0x2b0365(0xf7)){const _0x490910=normalizeString(_0x16fcdc);return _0x490910?[_0x490910]:[];}if(!_0x16fcdc||typeof _0x16fcdc!=='object')return[];const _0x54e60d=normalizeString(_0x16fcdc[_0x2b0365(0x193)]),_0x5cdb2f=normalizeString(_0x16fcdc['note']);if(_0x54e60d&&_0x5cdb2f)return['v'+_0x54e60d+'\x0a'+_0x5cdb2f];if(_0x5cdb2f)return[_0x5cdb2f];if(_0x54e60d)return['v'+_0x54e60d];return[];});return _0x2eba41[_0x5f1de0(0x154)]>0x0?_0x2eba41[_0x5f1de0(0x16f)]('\x0a\x0a'):null;}function extractUpdateInfoPatch(_0x17a045){const _0x15f034=_0x52ab;if(!_0x17a045||typeof _0x17a045!==_0x15f034(0x16e))return{};return{'remoteVersion':normalizeString(_0x17a045[_0x15f034(0x193)]),'availableVersion':normalizeString(_0x17a045[_0x15f034(0x193)]),'releaseName':normalizeString(_0x17a045['releaseN'+'ame']),'releaseDate':normalizeString(_0x17a045[_0x15f034(0xf8)+_0x15f034(0x13b)]),'releaseNotes':normalizeReleaseNotes(_0x17a045[_0x15f034(0x113)+_0x15f034(0x160)])};}function extractPackageFileName(_0x4c1387){const _0x5dab01=_0x52ab,_0x3042f9=normalizeString(_0x4c1387);if(!_0x3042f9)return null;try{const _0xfe5c9d=new URL(_0x3042f9);return normalizeAppUpdatePackageFileName(decodeURIComponent(basename(_0xfe5c9d[_0x5dab01(0x182)])));}catch{const _0x284463=_0x3042f9[_0x5dab01(0x19e)](/[?#]/u,0x1)[0x0];return normalizeAppUpdatePackageFileName(basename(_0x284463));}}function getPreferredUpdatePackagePattern(){const _0x50f7b7=_0x52ab;if(process['platform']===_0x50f7b7(0x16b))return/\.zip$/iu;if(process[_0x50f7b7(0x134)]===_0x50f7b7(0x14a))return/\.exe$/iu;if(process[_0x50f7b7(0x134)]===_0x50f7b7(0xe7))return/\.AppImage$/u;return/\.(zip|exe|AppImage)$/u;}function extractRemoteUpdatePackageMetadata(_0xfb2a8b,_0x31dc33){const _0x190538=_0x52ab;if(!_0xfb2a8b||typeof _0xfb2a8b!==_0x190538(0x16e))return null;const _0x514ce1=normalizeString(_0xfb2a8b[_0x190538(0x193)]);if(!_0x514ce1)return null;const _0xf0a39c=[],_0x2acfd4=Array[_0x190538(0x158)](_0xfb2a8b[_0x190538(0x188)])?_0xfb2a8b[_0x190538(0x188)]:[];for(const _0x4ca841 of _0x2acfd4){if(!_0x4ca841||typeof _0x4ca841!==_0x190538(0x16e))continue;const _0x17e5ee=extractPackageFileName(_0x4ca841['url'])??extractPackageFileName(_0x4ca841[_0x190538(0x198)])??normalizeAppUpdatePackageFileName(_0x4ca841[_0x190538(0x12b)]),_0x1ba225=normalizeString(_0x4ca841['sha512']);_0x17e5ee&&_0x1ba225&&_0xf0a39c[_0x190538(0x171)]({'fileName':_0x17e5ee,'sha512':_0x1ba225});}const _0x67ace3=extractPackageFileName(_0xfb2a8b[_0x190538(0x1b0)])??extractPackageFileName(_0xfb2a8b[_0x190538(0x198)])??normalizeAppUpdatePackageFileName(_0xfb2a8b[_0x190538(0x12b)]),_0x11ac27=normalizeString(_0xfb2a8b[_0x190538(0x178)]);_0x67ace3&&_0x11ac27&&_0xf0a39c['push']({'fileName':_0x67ace3,'sha512':_0x11ac27});const _0x58f214=_0xf0a39c[_0x190538(0x19b)](_0x1a0b32=>getPreferredUpdatePackagePattern()[_0x190538(0x1aa)](_0x1a0b32[_0x190538(0x12b)]));if(!_0x58f214)return _0x31dc33?.[_0x190538(0x184)]?.(_0x190538(0x167)+_0x190538(0x143)+'te\x20packa'+_0x190538(0x14b)+'urrent\x20p'+'latform',{'platform':process[_0x190538(0x134)],'candidates':_0xf0a39c[_0x190538(0x18e)](_0x40d8f9=>_0x40d8f9[_0x190538(0x12b)])}),null;return{'version':_0x514ce1,..._0x58f214};}function extractProgressPatch(_0x141796){const _0x7c43d5=_0x52ab;return{'downloadPercent':typeof _0x141796[_0x7c43d5(0x174)]===_0x7c43d5(0x19f)?_0x141796[_0x7c43d5(0x174)]:null,'bytesPerSecond':typeof _0x141796[_0x7c43d5(0x194)+_0x7c43d5(0xfb)]===_0x7c43d5(0x19f)?_0x141796[_0x7c43d5(0x194)+'Second']:null,'transferredBytes':typeof _0x141796[_0x7c43d5(0x107)+_0x7c43d5(0xeb)]==='number'?_0x141796[_0x7c43d5(0x107)+'red']:null,'totalBytes':typeof _0x141796['total']===_0x7c43d5(0x19f)?_0x141796['total']:null};}function _0x46ed(){const _0x20ff19=['2191020qMaSDm','te-state','load','quitAndI','send','resource','releaseN','update_a','allOnApp','sPath','ndCheckI','pp-updat','动更新','update-d','Update','toFixed','isFile','ntervalM','2ibEFRY','正在检查更新','ame','Updates','更新包校验完成但','idle','当前构建不支持自','edVersio','ending\x20u','o\x20read\x20p','install\x20','-updater','fileName','installi','g\x20instal','min','finally','includes','-error','update-i','o\x20clear\x20','platform','stringif','autoDown','e.yml','ror','app-upda','imeout','ate','nd\x20updat',',请重新校验并准','currentV','failed\x20t','5160QWLPLu','utMs','包后再试','ing\x20upda','pp\x20quit\x20','backgrou','ytes','g\x20downlo','正在安装更新并重','安装更新失败','win32','ge\x20for\x20c','exec','flatMap','\x20AppImag','max','message','lable','startup','l\x20packag','length','nstall\x20d','安装器未就绪,请','后的安装包中可用','isArray','备安装','utf8','2245tnDOsD','now','error','autoInst','Caches','otes','availabl','nts','download','enabled','kage','check-er','no\x20match','e\x20check\x20','Linux\x20下仅','update-n','darwin','64744TDqOAP','当前使用\x20Alp','object','join','cache\x20hi','push','sion','ndCheckS','percent','ted','taleMs','trim','sha512','-progres','o\x20read\x20a','686owNLmO','ntext.js','706193fqtMGo','20GNjLKg','t\x20instal','aded\x20pac','interval','pathname','新版本','warn','Percent','rigger\x20a','更新包\x20v','files','yed','toISOStr','重试下载更新','assign','启应用','map','not-avai','ot-avail','remote-n','自动更新功能已就','version','bytesPer','failed','发现本地更新包\x20','自动更新仅在打包','path','schedule','alpha','find','pdate-in','channel','split','number','uitTimeo','4345908nNduky','r\x20starte','rsion','AppData','phase','phase-co','webConte','更新包已准备好安','正在重新准备更新','test','able','ewer','lder',',请重新下载更新','same-ver','url','e\x20版本支持应用','ersion','size','install-','supporte','l\x20phase\x20','-for-upd','pending','o\x20inspec','linux','2800017uxHqsT','getAllWi','installQ','red','nstall','updates','errorCod','自动更新已在\x20s','未知的自动更新错','app:upda','phase\x20co','当前已经是最新版','eVersion','发现可用更新','\x20已准备好安装','string','releaseD','ing','当前没有可下载的','Second','当前没有可安装的','isFinite','unknown','packageB','t\x20pendin','fig\x20中禁用','te.yml','正在下载\x20','remoteVe','已下载更新','pending\x20','transfer','7359003FkYQnG','isPackag','.cache','vailable','dataDir'];_0x46ed=function(){return _0x20ff19;};return _0x46ed();}function getErrorMessage(_0x5e7f37){const _0x50d12c=_0x52ab;if(_0x5e7f37 instanceof Error&&_0x5e7f37['message'][_0x50d12c(0x177)]())return _0x5e7f37[_0x50d12c(0x150)][_0x50d12c(0x177)]();if(typeof _0x5e7f37===_0x50d12c(0xf7)&&_0x5e7f37[_0x50d12c(0x177)]())return _0x5e7f37[_0x50d12c(0x177)]();return _0x50d12c(0xf0)+'误';}export function createUpdateController({shellConfig:_0x551720,appName:_0x30112e,appVersion:_0x27b0c9,broadcast:_0x4b4119,logger:_0x4e7754}){const _0x3e1cda=_0x52ab,_0x483851=_0x551720[_0x3e1cda(0xed)]??{},_0x3bef9a=normalizeAppUpdateChannel(_0x483851[_0x3e1cda(0x19d)]),_0x106259={'backgroundCheckIntervalMs':_0x483851[_0x3e1cda(0x145)+'ndCheckI'+'ntervalM'+'s']??DEFAULT_BACKGROUND_UPDATE_CHECK_INTERVAL_MS,'backgroundCheckStaleMs':_0x483851[_0x3e1cda(0x145)+_0x3e1cda(0x173)+_0x3e1cda(0x176)]??DEFAULT_BACKGROUND_UPDATE_CHECK_STALE_MS,'installQuitTimeoutMs':_0x483851[_0x3e1cda(0xea)+_0x3e1cda(0x1a0)+_0x3e1cda(0x141)]??DEFAULT_INSTALL_QUIT_TIMEOUT_MS,'autoDownload':_0x483851[_0x3e1cda(0x136)+_0x3e1cda(0x10f)]===!![]},_0x1da781={'supported':![],'channel':_0x3bef9a,'phase':'unsuppor'+'ted','currentVersion':_0x27b0c9(),'remoteVersion':null,'comparisonResult':'unknown','hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'releaseName':null,'releaseDate':null,'releaseNotes':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,'hasPendingPackage':![],'pendingPackageName':null,'pendingPackageBytes':null,'checkedAt':null,'message':'自动更新已禁用','error':null,'errorCode':null};let _0x1b78b5=![],_0x3fc0df=null,_0x48edef=null,_0x173107=null,_0x2bb0fa=null,_0x3f9089=null,_0x27a2d9=![],_0x6fb8e7=null,_0x1ed36d=0x0;function _0x1f4fc9(){const _0x32ca65=_0x3e1cda;if(process[_0x32ca65(0x134)]===_0x32ca65(0x16b))return join(homedir(),'Library',_0x32ca65(0x15f));if(process['platform']===_0x32ca65(0x14a))return process.env.LOCALAPPDATA??join(homedir(),_0x32ca65(0x1a4),'Local');return process.env.XDG_CACHE_HOME??join(homedir(),_0x32ca65(0x10a));}function _0x85f48d(){const _0x5e2637=_0x3e1cda;if(!app[_0x5e2637(0x109)+'ed']||!process['resource'+'sPath'])return{};const _0x2542d9=join(process[_0x5e2637(0x112)+_0x5e2637(0x116)],_0x5e2637(0x139)+_0x5e2637(0x102));if(!existsSync(_0x2542d9))return{};try{const _0x3117aa=readFileSync(_0x2542d9,_0x5e2637(0x15a)),_0x2015cc=/^\s*channel:\s*["']?([^"'\s#]+)["']?/imu[_0x5e2637(0x14c)](_0x3117aa),_0x25e45a=/^\s*updaterCacheDirName:\s*["']?([^"'\s#]+)["']?/imu[_0x5e2637(0x14c)](_0x3117aa);return{'channel':normalizeAppUpdateChannel(_0x2015cc?.[0x1]),'updaterCacheDirName':normalizeString(_0x25e45a?.[0x1])};}catch(_0x52e36d){return _0x4e7754?.['warn']?.(_0x5e2637(0x13f)+_0x5e2637(0x17a)+_0x5e2637(0x118)+_0x5e2637(0x137),{'error':getErrorMessage(_0x52e36d)}),{};}}const _0x212660=_0x85f48d();_0x212660[_0x3e1cda(0x19d)]&&(_0x1da781[_0x3e1cda(0x19d)]=_0x212660[_0x3e1cda(0x19d)]);function _0x231211(){const _0x18779a=_0x3e1cda,_0x3f6578=_0x212660['updaterC'+'acheDirN'+_0x18779a(0x121)]||_0x30112e()+_0x18779a(0x12a);return join(_0x1f4fc9(),_0x3f6578);}function _0x2cff52(_0x4b4bd3){const _0x306759=_0x3e1cda;return _0x4b4bd3===_0x306759(0x19a)?_0x306759(0x16d)+'ha\x20更新渠道':_0x306759(0x192)+'绪';}function _0x3b2a4f(){const _0x3f3453=_0x3e1cda;if(_0x483851[_0x3f3453(0x164)]===![])return![];if(!app['isPackag'+'ed'])return![];if(process[_0x3f3453(0x134)]!=='linux')return!![];return Boolean(process.env.APPIMAGE);}function _0x16057c(){const _0x574613=_0x3e1cda;if(_0x483851[_0x574613(0x164)]===![])return _0x574613(0xef)+'hell.con'+_0x574613(0x101);if(!app[_0x574613(0x109)+'ed'])return _0x574613(0x197)+_0x574613(0x157);if(process[_0x574613(0x134)]===_0x574613(0xe7))return _0x574613(0x169)+_0x574613(0x14e)+_0x574613(0x1b1)+'内自动更新';return _0x574613(0x125)+_0x574613(0x119);}function _0x19deb5(){const _0x23313e=_0x3e1cda;return join(_0x551720[_0x23313e(0x10c)],_0x23313e(0x1b4)+_0x23313e(0x1a6)+_0x23313e(0x17c)+'on');}function _0x4408c0(){return{'hasPendingPackage':![],'pendingPackageName':null,'pendingPackageBytes':null};}function _0x11397f(){return{..._0x1da781};}function _0x50ecd4(){const _0x7d7b90=_0x3e1cda,_0x407dd8=_0x11397f();for(const _0x550671 of BrowserWindow[_0x7d7b90(0xe9)+'ndows']()){!_0x550671['isDestro'+_0x7d7b90(0x189)]()&&_0x550671[_0x7d7b90(0x1a7)+_0x7d7b90(0x162)][_0x7d7b90(0x111)](_0x7d7b90(0xf1)+'te-state',_0x407dd8);}_0x4b4119?.(_0x7d7b90(0xf1)+_0x7d7b90(0x10e),_0x407dd8);}function _0x53423d(_0x200bda){const _0x49822e=_0x3e1cda,_0x380f71={..._0x200bda};_0x380f71['error']===null&&_0x380f71[_0x49822e(0xee)+'e']===undefined&&(_0x380f71['errorCod'+'e']=null),Object[_0x49822e(0x18c)](_0x1da781,_0x380f71,{'currentVersion':_0x27b0c9()}),_0x50ecd4();}function _0x5331df(){const _0x4a3fc7=_0x3e1cda;if(!_0x1da781[_0x4a3fc7(0x1b5)+'d'])throw new Error(_0x16057c());}function _0x133c35(_0x651338,_0x2fa6d0={}){_0x4e7754?.['info']?.(_0x651338,_0x2fa6d0);}function _0x171fe7(_0x28d325,_0x4b2724={}){_0x4e7754?.['warn']?.(_0x28d325,_0x4b2724);}function _0x3816c5(_0x29b3b1){const _0x780e4b=_0x3e1cda;if(typeof _0x29b3b1!==_0x780e4b(0x19f)||!Number[_0x780e4b(0xfd)](_0x29b3b1))return null;const _0x1617d3=Math[_0x780e4b(0x12e)](0x63,Math[_0x780e4b(0x14f)](0x0,_0x29b3b1));if(_0x1da781[_0x780e4b(0x1a5)]!==_0x780e4b(0x163)+_0x780e4b(0xf9)||typeof _0x1da781['download'+_0x780e4b(0x185)]!==_0x780e4b(0x19f))return _0x1617d3;return Math[_0x780e4b(0x14f)](_0x1da781[_0x780e4b(0x163)+'Percent'],_0x1617d3);}function _0x10eb47(_0x1b5158,_0x47d402){const _0x98d1a2=_0x3e1cda,_0x2c6baa=_0x1b5158?'v'+_0x1b5158:_0x98d1a2(0x183);if(typeof _0x47d402==='number'){if(_0x47d402>=0x63)return'正在验证安装包…';return _0x98d1a2(0x103)+_0x2c6baa+'\x20('+_0x47d402[_0x98d1a2(0x11c)](0x1)+'%)';}return _0x98d1a2(0x103)+_0x2c6baa;}function _0x20fb5c(_0x21aea1){const _0x19e0b5=_0x3e1cda;try{writeFileSync(_0x19deb5(),JSON[_0x19e0b5(0x135)+'y'](_0x21aea1,null,0x2),_0x19e0b5(0x15a));}catch(_0x3b3295){_0x171fe7(_0x19e0b5(0x13f)+'o\x20persis'+_0x19e0b5(0x17f)+_0x19e0b5(0x1b6)+'context',{'error':getErrorMessage(_0x3b3295)});}}function _0x27a21b(){const _0x7b02f4=_0x3e1cda;try{rmSync(_0x19deb5(),{'force':!![]});}catch(_0x45fda0){_0x171fe7(_0x7b02f4(0x13f)+_0x7b02f4(0x133)+_0x7b02f4(0x129)+_0x7b02f4(0xf2)+'ntext',{'error':getErrorMessage(_0x45fda0)});}}function _0x3e510c(){const _0x169f6a=_0x3e1cda,_0x2a3ef2=join(_0x231211(),_0x169f6a(0xe5));if(!existsSync(_0x2a3ef2))return{'packageName':null,'packageBytes':null};try{const _0x3fd4be=readdirSync(_0x2a3ef2)[_0x169f6a(0x19b)](_0x2cd83e=>/\.(zip|exe|dmg|AppImage)$/iu['test'](_0x2cd83e))??null;if(!_0x3fd4be)return{'packageName':null,'packageBytes':null};const _0x41421d=join(_0x2a3ef2,_0x3fd4be);return{'packageName':_0x3fd4be,'packageBytes':statSync(_0x41421d)[_0x169f6a(0x1b3)]};}catch(_0x1f5694){return _0x171fe7(_0x169f6a(0x13f)+'o\x20inspec'+_0x169f6a(0x100)+_0x169f6a(0x12d)+_0x169f6a(0x153)+'e',{'error':getErrorMessage(_0x1f5694)}),{'packageName':null,'packageBytes':null};}}function _0x43eab8(){const _0xc042be=_0x3e1cda;if(!_0x173107)return null;const _0x47065c=join(_0x231211(),_0xc042be(0xe5)),_0x2c77cf=join(_0x47065c,_0xc042be(0x132)+'nfo.json');if(!existsSync(_0x2c77cf))return null;let _0x476330=null;try{_0x476330=JSON['parse'](readFileSync(_0x2c77cf,_0xc042be(0x15a)));}catch(_0x328a6e){return _0x171fe7(_0xc042be(0x13f)+_0xc042be(0x128)+_0xc042be(0x127)+_0xc042be(0x19c)+'fo.json',{'error':getErrorMessage(_0x328a6e)}),null;}if(!isMatchingAppUpdatePackageMetadata(_0x173107,_0x476330))return null;const _0x3b74a8=join(_0x47065c,_0x173107[_0xc042be(0x12b)]);if(!existsSync(_0x3b74a8))return null;try{const _0x170b86=statSync(_0x3b74a8);if(!_0x170b86[_0xc042be(0x11d)]()||_0x170b86[_0xc042be(0x1b3)]===0x0)return null;return{'metadata':_0x173107,'packageName':_0x173107[_0xc042be(0x12b)],'packageBytes':_0x170b86[_0xc042be(0x1b3)]};}catch(_0x34d9e4){return _0x171fe7(_0xc042be(0x13f)+_0xc042be(0xe6)+_0xc042be(0x100)+_0xc042be(0x147)+_0xc042be(0x180)+_0xc042be(0x165),{'error':getErrorMessage(_0x34d9e4)}),null;}}function _0x4b052a(_0x56d7f3){const _0xe28a4e=_0x3e1cda,_0x2d9333=_0x43eab8();if(!_0x2d9333)return![];const {metadata:_0x209a7e,packageName:_0x208919,packageBytes:_0x91a89b}=_0x2d9333;return _0x133c35(_0xe28a4e(0x106)+'package\x20'+_0xe28a4e(0x170)+'t',{'reason':_0x56d7f3,'version':_0x209a7e['version'],'packageName':_0x208919,'packageBytes':_0x91a89b}),_0x53423d({'phase':_0xe28a4e(0x161)+'e','remoteVersion':_0x209a7e[_0xe28a4e(0x193)],'comparisonResult':_0xe28a4e(0x191)+_0xe28a4e(0x1ac),'hasUpdate':!![],'availableVersion':_0x209a7e[_0xe28a4e(0x193)],'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':_0x91a89b,'totalBytes':_0x91a89b,'hasPendingPackage':!![],'pendingPackageName':_0x208919,'pendingPackageBytes':_0x91a89b,'error':null,'message':_0xe28a4e(0x196)+'v'+_0x209a7e[_0xe28a4e(0x193)]+(_0xe28a4e(0x13d)+_0xe28a4e(0x159))}),!![];}function _0x163872(){const _0x5ace14=_0x3e1cda;return _0x1da781[_0x5ace14(0x1b5)+'d']&&!_0x3fc0df&&!_0x48edef&&[_0x5ace14(0x124),'not-avai'+_0x5ace14(0x151),_0x5ace14(0x15d)][_0x5ace14(0x130)](_0x1da781[_0x5ace14(0x1a5)]);}function _0x73beec(){if(!_0x3f9089)return;clearTimeout(_0x3f9089),_0x3f9089=null;}function _0x44715a(_0x423f7e){const _0x4cdb97=_0x3e1cda,_0xf3ce22=_0x1da781[_0x4cdb97(0x163)+'edVersio'+'n'],_0x37018d=_0x1da781[_0x4cdb97(0x161)+_0x4cdb97(0xf4)];_0x2bb0fa=null,_0x27a2d9=![],_0x73beec(),_0x27a21b(),_0x53423d({'phase':'error','checkedAt':new Date()[_0x4cdb97(0x18a)+'ing'](),'hasPendingPackage':![],'pendingPackageName':null,'pendingPackageBytes':null,'hasUpdate':!![],'availableVersion':_0x37018d??_0xf3ce22,'downloadedVersion':_0xf3ce22,'error':getErrorMessage(_0x423f7e),'errorCode':_0x4cdb97(0x1b4)+_0x4cdb97(0x15d),'message':_0x4cdb97(0x149)});}function _0x40efe6(){const _0x31e45d=_0x3e1cda;_0x73beec(),_0x27a2d9=![],_0x3f9089=setTimeout(()=>{const _0x575ad7=_0x52ab;if(_0x27a2d9||_0x1da781[_0x575ad7(0x1a5)]!==_0x575ad7(0x12c)+'ng')return;_0x171fe7(_0x575ad7(0x110)+_0x575ad7(0x155)+'id\x20not\x20t'+_0x575ad7(0x186)+_0x575ad7(0x144)+'within\x20t'+_0x575ad7(0x13a),{'downloadedVersion':_0x1da781[_0x575ad7(0x163)+'edVersio'+'n'],'currentVersion':_0x1da781[_0x575ad7(0x13e)+'ersion']}),_0x44715a(new Error('更新安装未能启动'+_0x575ad7(0x1ae)+_0x575ad7(0x142)));},_0x106259['installQ'+_0x31e45d(0x1a0)+_0x31e45d(0x141)]);}function _0x17df32(){const _0x28f76e=_0x3e1cda;if(_0x1b78b5)return;_0x1b78b5=!![],_0x1da781[_0x28f76e(0x1b5)+'d']=_0x3b2a4f(),_0x1da781[_0x28f76e(0x1a5)]=_0x1da781['supporte'+'d']?_0x28f76e(0x124):'unsuppor'+_0x28f76e(0x175),_0x1da781[_0x28f76e(0x150)]=_0x1da781[_0x28f76e(0x1b5)+'d']?_0x2cff52(_0x1da781[_0x28f76e(0x19d)]):_0x16057c();if(!_0x1da781[_0x28f76e(0x1b5)+'d']){_0x50ecd4();return;}autoUpdater[_0x28f76e(0x136)+'load']=_0x106259[_0x28f76e(0x136)+'load'],autoUpdater[_0x28f76e(0x15e)+_0x28f76e(0x115)+'Quit']=![],autoUpdater[_0x28f76e(0x19d)]=_0x1da781[_0x28f76e(0x19d)],autoUpdater['on']('checking'+_0x28f76e(0x1b7)+_0x28f76e(0x13b),()=>{const _0xc55016=_0x28f76e;_0x173107=null,_0x53423d({'phase':'checking','checkedAt':new Date()[_0xc55016(0x18a)+_0xc55016(0xf9)](),'remoteVersion':null,'comparisonResult':_0xc55016(0xfe),'hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x4408c0(),'error':null,'message':_0xc55016(0x120)});}),autoUpdater['on']('update-a'+_0x28f76e(0x10b),_0x1b5e59=>{const _0x4ab724=_0x28f76e,_0x57998c=extractUpdateInfoPatch(_0x1b5e59),_0x298fe7=compareAppVersions(_0x27b0c9(),_0x57998c[_0x4ab724(0x104)+'rsion']);if(_0x298fe7!==_0x4ab724(0x191)+_0x4ab724(0x1ac)){_0x173107=null,_0x53423d({..._0x57998c,'phase':_0x4ab724(0x18f)+_0x4ab724(0x151),'comparisonResult':_0x298fe7,'hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x4408c0(),'checkedAt':new Date()['toISOStr'+'ing'](),'error':null,'message':_0x4ab724(0xf3)+'本'});return;}_0x173107=extractRemoteUpdatePackageMetadata(_0x1b5e59,_0x4e7754),_0x53423d({..._0x57998c,'phase':_0x4ab724(0x161)+'e','comparisonResult':_0x298fe7,'hasUpdate':!![],'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x4408c0(),'checkedAt':new Date()['toISOStr'+'ing'](),'error':null,'message':_0x57998c[_0x4ab724(0x161)+_0x4ab724(0xf4)]?'发现新版本\x20v'+_0x57998c[_0x4ab724(0x161)+_0x4ab724(0xf4)]:_0x4ab724(0xf5)}),_0x4b052a(_0x4ab724(0x114)+_0x4ab724(0x10b));}),autoUpdater['on'](_0x28f76e(0x16a)+_0x28f76e(0x190)+_0x28f76e(0x1ab),_0x2a816e=>{const _0x328bf4=_0x28f76e;_0x173107=null;const _0x1016f=extractUpdateInfoPatch(_0x2a816e);_0x53423d({..._0x1016f,'phase':_0x328bf4(0x18f)+_0x328bf4(0x151),'comparisonResult':compareAppVersions(_0x27b0c9(),_0x1016f[_0x328bf4(0x104)+_0x328bf4(0x1a3)]),'hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x4408c0(),'checkedAt':new Date()[_0x328bf4(0x18a)+_0x328bf4(0xf9)](),'error':null,'message':_0x328bf4(0xf3)+'本'});}),autoUpdater['on'](_0x28f76e(0x163)+_0x28f76e(0x179)+'s',_0x30934a=>{const _0x54343a=_0x28f76e,_0x392d06=extractProgressPatch(_0x30934a),_0x23de02=_0x3816c5(_0x392d06[_0x54343a(0x163)+'Percent']??null);_0x53423d({..._0x392d06,'downloadPercent':_0x23de02,'phase':_0x54343a(0x163)+_0x54343a(0xf9),..._0x4408c0(),'error':null,'message':_0x10eb47(_0x1da781[_0x54343a(0x161)+_0x54343a(0xf4)],_0x23de02)});}),autoUpdater['on'](_0x28f76e(0x11a)+'ownloade'+'d',_0x2f4d25=>{const _0x252866=_0x28f76e,_0x245f62=extractUpdateInfoPatch(_0x2f4d25),_0xd73e52=extractRemoteUpdatePackageMetadata(_0x2f4d25,_0x4e7754)??_0x173107;_0xd73e52&&(_0x173107=_0xd73e52);const _0x4dc45b=_0x245f62[_0x252866(0x161)+'eVersion']??_0xd73e52?.[_0x252866(0x193)]??_0x1da781[_0x252866(0x161)+_0x252866(0xf4)];_0x53423d({..._0x245f62,'phase':_0x252866(0x163)+'ed','comparisonResult':compareAppVersions(_0x27b0c9(),_0x4dc45b),'hasUpdate':!![],'downloadedVersion':_0x4dc45b,'downloadPercent':0x64,..._0x4408c0(),'error':null,'message':_0x4dc45b?_0x252866(0x187)+_0x4dc45b+_0x252866(0xf6):_0x252866(0x1a8)+'装'});}),autoUpdater['on'](_0x28f76e(0x15d),_0x261e56=>{const _0x12a01a=_0x28f76e;if(_0x1da781[_0x12a01a(0x1a5)]===_0x12a01a(0x12c)+'ng'){_0x44715a(_0x261e56);return;}_0x53423d({'phase':_0x12a01a(0x15d),'checkedAt':new Date()['toISOStr'+_0x12a01a(0xf9)](),..._0x4408c0(),'error':getErrorMessage(_0x261e56),'errorCode':_0x1da781[_0x12a01a(0x1a5)]===_0x12a01a(0x163)+'ing'?_0x12a01a(0x163)+'-error':_0x12a01a(0x166)+_0x12a01a(0x138),'message':'自动更新失败'});}),_0x50ecd4();}async function _0x4537c2(){const _0x38e359=_0x3e1cda;_0x17df32(),_0x5331df();if(_0x3fc0df)return _0x3fc0df;return _0x133c35('check\x20re'+'quested'),_0x3fc0df=autoUpdater['checkFor'+_0x38e359(0x122)]()['then'](()=>_0x11397f())[_0x38e359(0x12f)](()=>{_0x3fc0df=null;}),_0x3fc0df;}async function _0x1baa9f(){const _0x1e03b3=_0x3e1cda;_0x17df32(),_0x5331df();if(_0x1da781[_0x1e03b3(0x1a5)]===_0x1e03b3(0x163)+'ed'||_0x1da781[_0x1e03b3(0x1a5)]===_0x1e03b3(0x12c)+'ng')return _0x11397f();if(!_0x1da781['hasUpdat'+'e'])throw new Error('当前没有可下载的'+'更新');const _0x3f9a46=_0x1da781[_0x1e03b3(0x1a5)]===_0x1e03b3(0x15d)&&_0x1da781[_0x1e03b3(0xee)+'e']===_0x1e03b3(0x1b4)+_0x1e03b3(0x15d)&&Boolean(_0x1da781[_0x1e03b3(0x163)+'edVersio'+'n']);if(_0x1da781[_0x1e03b3(0x1a5)]==='error'){if(_0x3f9a46)_0x53423d({'phase':_0x1e03b3(0x161)+'e','hasUpdate':!![],'availableVersion':_0x1da781[_0x1e03b3(0x161)+'eVersion']??_0x1da781['download'+_0x1e03b3(0x126)+'n'],'downloadedVersion':null,'downloadPercent':null,..._0x4408c0(),'error':null,'message':_0x1e03b3(0x1a9)+'包'});else{await _0x4537c2();if(_0x1da781[_0x1e03b3(0x1a5)]!==_0x1e03b3(0x161)+'e')throw new Error(_0x1e03b3(0xfa)+'更新');}}if(!['availabl'+'e','download'+'ing'][_0x1e03b3(0x130)](_0x1da781[_0x1e03b3(0x1a5)]))throw new Error('当前没有可下载的'+'更新');if(_0x48edef)return _0x48edef;return _0x48edef=autoUpdater[_0x1e03b3(0x163)+_0x1e03b3(0x11b)]()['then'](()=>{const _0x2fe57c=_0x1e03b3;return _0x1da781[_0x2fe57c(0x1a5)]!==_0x2fe57c(0x163)+'ed'&&_0x53423d({'phase':'error','checkedAt':new Date()[_0x2fe57c(0x18a)+_0x2fe57c(0xf9)](),..._0x4408c0(),'error':_0x2fe57c(0x123)+_0x2fe57c(0x156)+_0x2fe57c(0x18b),'errorCode':_0x2fe57c(0x163)+_0x2fe57c(0x131),'message':'更新准备失败'}),_0x11397f();})['finally'](()=>{_0x48edef=null;}),_0x48edef;}function _0x1161e3(){const _0x395987=_0x3e1cda;_0x17df32(),_0x5331df();if(![_0x395987(0x163)+'ed',_0x395987(0x12c)+'ng']['includes'](_0x1da781['phase']))throw new Error(_0x395987(0xfc)+_0x395987(0x105));const _0x24be31=_0x3e510c();_0x2bb0fa=Date[_0x395987(0x15c)](),_0x20fb5c({'startedAt':new Date(_0x2bb0fa)[_0x395987(0x18a)+'ing'](),'currentVersion':_0x1da781['currentV'+_0x395987(0x1b2)],'downloadedVersion':_0x1da781[_0x395987(0x163)+_0x395987(0x126)+'n'],'pendingPackage':_0x24be31['packageN'+_0x395987(0x121)],'pendingPackageBytes':_0x24be31[_0x395987(0xff)+_0x395987(0x146)]}),_0x53423d({'phase':_0x395987(0x12c)+'ng',..._0x4408c0(),'error':null,'message':_0x395987(0x148)+_0x395987(0x18d)});try{_0x40efe6(),autoUpdater[_0x395987(0x110)+_0x395987(0xec)](![],!![]);}catch(_0x4f185b){_0x44715a(_0x4f185b);throw _0x4f185b;}return{'ok':!![]};}async function _0x5f53f3(_0x546581){const _0x48066b=_0x3e1cda;if(!_0x163872())return;_0x1ed36d=Date[_0x48066b(0x15c)](),_0x133c35('backgrou'+_0x48066b(0x13c)+_0x48066b(0x168)+'requeste'+'d',{'reason':_0x546581});try{await _0x4537c2();}catch(_0xa4386b){_0x171fe7(_0x48066b(0x145)+'nd\x20updat'+_0x48066b(0x168)+_0x48066b(0x195),{'reason':_0x546581,'error':getErrorMessage(_0xa4386b)});}}function _0x264a79(_0x43f07a){const _0xabbae9=_0x3e1cda;if(!_0x1da781[_0xabbae9(0x1b5)+'d'])return;const _0xe3f4e7=Date['now']()-_0x1ed36d;if(_0xe3f4e7<_0x106259[_0xabbae9(0x145)+_0xabbae9(0x173)+_0xabbae9(0x176)])return;void _0x5f53f3(_0x43f07a);}function _0x46c925(){const _0x36055f=_0x3e1cda;_0x17df32();if(!_0x1da781[_0x36055f(0x1b5)+'d']||_0x6fb8e7)return;_0x6fb8e7=setInterval(()=>{const _0x2116ac=_0x36055f;void _0x5f53f3(_0x2116ac(0x181));},_0x106259[_0x36055f(0x145)+_0x36055f(0x117)+_0x36055f(0x11e)+'s']),void _0x5f53f3(_0x36055f(0x152)),_0x133c35('backgrou'+'nd\x20updat'+_0x36055f(0x168)+_0x36055f(0x199)+_0x36055f(0x1a2)+'d',_0x106259);}function _0x11b3dd(){const _0x252ecf=_0x3e1cda;if(_0x1da781[_0x252ecf(0x1a5)]!==_0x252ecf(0x12c)+'ng')return;_0x27a2d9=!![],_0x73beec();}return{'initialize':_0x17df32,'getState':_0x11397f,'checkForUpdates':_0x4537c2,'downloadUpdate':_0x1baa9f,'quitAndInstall':_0x1161e3,'requestBackgroundCheck':_0x264a79,'startBackgroundChecks':_0x46c925,'markQuitObserved':_0x11b3dd};}
|
|
1
|
+
(function(_0x2b0026,_0x255c30){const _0x4659e5=_0x47e9,_0x14d08d=_0x2b0026();while(!![]){try{const _0x2d81e1=parseInt(_0x4659e5(0xf7))/0x1+parseInt(_0x4659e5(0x116))/0x2+-parseInt(_0x4659e5(0x190))/0x3+parseInt(_0x4659e5(0x155))/0x4+-parseInt(_0x4659e5(0x174))/0x5*(-parseInt(_0x4659e5(0x1aa))/0x6)+parseInt(_0x4659e5(0x195))/0x7+-parseInt(_0x4659e5(0x152))/0x8*(parseInt(_0x4659e5(0x103))/0x9);if(_0x2d81e1===_0x255c30)break;else _0x14d08d['push'](_0x14d08d['shift']());}catch(_0x36d8dc){_0x14d08d['push'](_0x14d08d['shift']());}}}(_0x2c74,0x4e932));import{existsSync,readFileSync,readdirSync,rmSync,statSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{basename,join}from'node:path';import _0x28f805 from'electron-updater';import{app,BrowserWindow}from'electron';import{clean,compare}from'semver';const {autoUpdater}=_0x28f805,DEFAULT_INSTALL_QUIT_TIMEOUT_MS=0xea60,DEFAULT_BACKGROUND_UPDATE_CHECK_INTERVAL_MS=0x3c*0x3c*0x3e8,DEFAULT_BACKGROUND_UPDATE_CHECK_STALE_MS=0x1e*0x3c*0x3e8;function normalizeAppUpdatePackageFileName(_0x125922){const _0x3767e4=_0x47e9;if(typeof _0x125922!==_0x3767e4(0x169))return null;const _0x5b42c5=_0x125922[_0x3767e4(0xee)]();if(!_0x5b42c5||_0x5b42c5==='.'||_0x5b42c5==='..'||_0x5b42c5[_0x3767e4(0x1ad)]('/')||_0x5b42c5['includes']('\x5c'))return null;return _0x5b42c5;}function _0x47e9(_0x4cb2ac,_0x118b4b){_0x4cb2ac=_0x4cb2ac-0xe6;const _0x2c74a5=_0x2c74();let _0x47e9c8=_0x2c74a5[_0x4cb2ac];return _0x47e9c8;}function isMatchingAppUpdatePackageMetadata(_0x252490,_0x4a3c24){const _0x1638a3=_0x47e9;if(!_0x252490||!_0x4a3c24||typeof _0x4a3c24!==_0x1638a3(0x17a))return![];const _0xc3159b=_0x4a3c24,_0x1f2235=normalizeAppUpdatePackageFileName(_0x252490['fileName']),_0x5729ee=normalizeAppUpdatePackageFileName(_0xc3159b[_0x1638a3(0x1af)]),_0x397274=_0x252490['sha512'][_0x1638a3(0xee)](),_0x11959e=typeof _0xc3159b[_0x1638a3(0x102)]===_0x1638a3(0x169)?_0xc3159b[_0x1638a3(0x102)][_0x1638a3(0xee)]():'';return Boolean(_0x1f2235&&_0x5729ee&&_0x1f2235===_0x5729ee&&_0x397274&&_0x11959e&&_0x397274===_0x11959e);}function normalizeAppVersion(_0x289179){const _0x40d3a2=_0x47e9;return clean(String(_0x289179??'')[_0x40d3a2(0xee)]());}function compareAppVersions(_0x3acb0f,_0x97a3fd){const _0x4293c4=_0x47e9,_0x263756=normalizeAppVersion(_0x3acb0f),_0x42872c=normalizeAppVersion(_0x97a3fd);if(!_0x263756||!_0x42872c)return _0x4293c4(0x13b);const _0x2f2f23=compare(_0x42872c,_0x263756);if(_0x2f2f23===0x0)return _0x4293c4(0x156)+_0x4293c4(0xf8);return _0x2f2f23>0x0?_0x4293c4(0x17d)+'ewer':'remote-o'+_0x4293c4(0x121);}function normalizeAppUpdateChannel(_0x20b407){const _0x5d7f82=_0x47e9;return _0x20b407===_0x5d7f82(0x142)?_0x5d7f82(0x142):'latest';}function _0x2c74(){const _0xb3fbc1=['295836TSJnvT','sion','安装器未就绪,请','max','ytes','phase','nfo.json','installi','interval','包后再试','exec','sha512','2187delGEt','e.yml','check-er','path','pdate-in','ing','no\x20match','isArray','vailable','win32','后的安装包中可用','update-d','ha\x20更新渠道','requeste','then','edVersio','ntervalM','currentV','新版本','779702CuxLlJ','id\x20not\x20t','\x20已准备好安装','eVersion','packageN','errorCod','within\x20t',',请重新校验并准','kage','join','error','lder','taleMs','context','dataDir','当前使用\x20Alp','动更新','t\x20pendin','length','flatMap','-updater','allOnApp','内自动更新','urrent\x20p','rigger\x20a','fo.json','发现本地更新包\x20','正在验证安装包…','failed\x20t','phase\x20co','Local','o\x20clear\x20','-progres','pending','now','自动更新已在\x20s','isFinite','unknown','o\x20inspec','lable','\x20AppImag','Caches','check\x20re','更新安装未能启动','alpha','message','rsion','当前没有可下载的','o\x20read\x20a','otes','update-a','Updates','-error','sPath','app:upda','warn','phase-co','update_a','正在安装更新并重','cache\x20hi','45776oQAKbv','ame','toISOStr','2136800FFmxEu','same-ver','hell.con','packageB','not-avai','updaterC','hasUpdat','red','installQ','utf8','pp\x20quit\x20','transfer','e\x20版本支持应用','备安装','parse','aded\x20pac','enabled','download','ror','isDestro','string','isFile','o\x20persis','install-','安装更新失败','update-i','正在下载\x20','backgrou','finally','supporte','size','675xAyQIo','info','Percent','nd\x20updat','split','autoDown','object','更新包\x20v','Library','remote-n','version','remoteVe','able','AppData','g\x20instal',',请重新下载更新','unsuppor','imeout','nts','stringif','percent','te-state','ndCheckS','正在检查更新','e\x20check\x20','o\x20read\x20p','ing\x20upda','启应用','649107HQpLCS','resource','yed','load','te.yml','3622325qHktrN','自动更新已禁用','.cache','releaseD','checking','utMs','Second','app-upda','当前没有可安装的','releaseN','darwin','availabl','ate','ownloade','Update','ndCheckI','channel','test','ted','bytesPer','当前构建不支持自','8502wRRETg','files','自动更新仅在打包','includes','pp-updat','fileName','number','ending\x20u','Linux\x20下仅','更新准备失败','ewer','idle','getAllWi','ge\x20for\x20c','未知的自动更新错','trim','linux','uitTimeo','quitAndI','failed','发现新版本\x20v','isPackag','platform','startup'];_0x2c74=function(){return _0xb3fbc1;};return _0x2c74();}function normalizeString(_0x49efa4){const _0x370cbb=_0x47e9;if(typeof _0x49efa4!==_0x370cbb(0x169))return null;const _0x5ed680=_0x49efa4['trim']();return _0x5ed680||null;}function normalizeReleaseNotes(_0x2c3e53){const _0x598fa4=_0x47e9;if(typeof _0x2c3e53==='string')return normalizeString(_0x2c3e53);if(!Array[_0x598fa4(0x10a)](_0x2c3e53))return null;const _0x1c461d=_0x2c3e53[_0x598fa4(0x129)](_0x4934d3=>{const _0x15113=_0x598fa4;if(typeof _0x4934d3===_0x15113(0x169)){const _0x2e8415=normalizeString(_0x4934d3);return _0x2e8415?[_0x2e8415]:[];}if(!_0x4934d3||typeof _0x4934d3!=='object')return[];const _0x597833=normalizeString(_0x4934d3[_0x15113(0x17e)]),_0x3e3911=normalizeString(_0x4934d3['note']);if(_0x597833&&_0x3e3911)return['v'+_0x597833+'\x0a'+_0x3e3911];if(_0x3e3911)return[_0x3e3911];if(_0x597833)return['v'+_0x597833];return[];});return _0x1c461d[_0x598fa4(0x128)]>0x0?_0x1c461d[_0x598fa4(0x11f)]('\x0a\x0a'):null;}function extractUpdateInfoPatch(_0x54eb31){const _0x108d2e=_0x47e9;if(!_0x54eb31||typeof _0x54eb31!=='object')return{};return{'remoteVersion':normalizeString(_0x54eb31[_0x108d2e(0x17e)]),'availableVersion':normalizeString(_0x54eb31[_0x108d2e(0x17e)]),'releaseName':normalizeString(_0x54eb31[_0x108d2e(0x19e)+_0x108d2e(0x153)]),'releaseDate':normalizeString(_0x54eb31[_0x108d2e(0x198)+_0x108d2e(0x1a1)]),'releaseNotes':normalizeReleaseNotes(_0x54eb31[_0x108d2e(0x19e)+_0x108d2e(0x147)])};}function extractPackageFileName(_0x525be0){const _0x3c5ef8=_0x47e9,_0x11e0a9=normalizeString(_0x525be0);if(!_0x11e0a9)return null;try{const _0x4b32b8=new URL(_0x11e0a9);return normalizeAppUpdatePackageFileName(decodeURIComponent(basename(_0x4b32b8['pathname'])));}catch{const _0x2efd1d=_0x11e0a9[_0x3c5ef8(0x178)](/[?#]/u,0x1)[0x0];return normalizeAppUpdatePackageFileName(basename(_0x2efd1d));}}function getPreferredUpdatePackagePattern(){const _0x4522fb=_0x47e9;if(process[_0x4522fb(0xf5)]==='darwin')return/\.zip$/iu;if(process[_0x4522fb(0xf5)]===_0x4522fb(0x10c))return/\.exe$/iu;if(process['platform']===_0x4522fb(0xef))return/\.AppImage$/u;return/\.(zip|exe|AppImage)$/u;}function extractRemoteUpdatePackageMetadata(_0x3fb067,_0x54d92d){const _0x95a2fe=_0x47e9;if(!_0x3fb067||typeof _0x3fb067!==_0x95a2fe(0x17a))return null;const _0x53dc40=normalizeString(_0x3fb067['version']);if(!_0x53dc40)return null;const _0x4ad271=[],_0x46c7e9=Array['isArray'](_0x3fb067['files'])?_0x3fb067[_0x95a2fe(0x1ab)]:[];for(const _0x1c3f1f of _0x46c7e9){if(!_0x1c3f1f||typeof _0x1c3f1f!==_0x95a2fe(0x17a))continue;const _0x4921ad=extractPackageFileName(_0x1c3f1f['url'])??extractPackageFileName(_0x1c3f1f[_0x95a2fe(0x106)])??normalizeAppUpdatePackageFileName(_0x1c3f1f[_0x95a2fe(0x1af)]),_0x16e1a8=normalizeString(_0x1c3f1f[_0x95a2fe(0x102)]);_0x4921ad&&_0x16e1a8&&_0x4ad271['push']({'fileName':_0x4921ad,'sha512':_0x16e1a8});}const _0x24bd38=extractPackageFileName(_0x3fb067['url'])??extractPackageFileName(_0x3fb067[_0x95a2fe(0x106)])??normalizeAppUpdatePackageFileName(_0x3fb067[_0x95a2fe(0x1af)]),_0x124a1d=normalizeString(_0x3fb067[_0x95a2fe(0x102)]);_0x24bd38&&_0x124a1d&&_0x4ad271['push']({'fileName':_0x24bd38,'sha512':_0x124a1d});const _0x2fc8d7=_0x4ad271['find'](_0xebd553=>getPreferredUpdatePackagePattern()[_0x95a2fe(0x1a6)](_0xebd553[_0x95a2fe(0x1af)]));if(!_0x2fc8d7)return _0x54d92d?.[_0x95a2fe(0x14d)]?.(_0x95a2fe(0x109)+_0x95a2fe(0x18e)+'te\x20packa'+_0x95a2fe(0xec)+_0x95a2fe(0x12d)+'latform',{'platform':process[_0x95a2fe(0xf5)],'candidates':_0x4ad271['map'](_0x1a2232=>_0x1a2232['fileName'])}),null;return{'version':_0x53dc40,..._0x2fc8d7};}function extractProgressPatch(_0x4ab278){const _0x418a82=_0x47e9;return{'downloadPercent':typeof _0x4ab278['percent']===_0x418a82(0x1b0)?_0x4ab278[_0x418a82(0x188)]:null,'bytesPerSecond':typeof _0x4ab278[_0x418a82(0x1a8)+_0x418a82(0x19b)]===_0x418a82(0x1b0)?_0x4ab278[_0x418a82(0x1a8)+_0x418a82(0x19b)]:null,'transferredBytes':typeof _0x4ab278['transfer'+'red']==='number'?_0x4ab278[_0x418a82(0x160)+_0x418a82(0x15c)]:null,'totalBytes':typeof _0x4ab278['total']===_0x418a82(0x1b0)?_0x4ab278['total']:null};}function getErrorMessage(_0x597d7a){const _0x446bca=_0x47e9;if(_0x597d7a instanceof Error&&_0x597d7a[_0x446bca(0x143)][_0x446bca(0xee)]())return _0x597d7a['message'][_0x446bca(0xee)]();if(typeof _0x597d7a==='string'&&_0x597d7a[_0x446bca(0xee)]())return _0x597d7a[_0x446bca(0xee)]();return _0x446bca(0xed)+'误';}export function createUpdateController({shellConfig:_0x3f3730,appName:_0x1704f5,appVersion:_0x214520,broadcast:_0x205c69,logger:_0x2a2e17}){const _0x3a3167=_0x47e9,_0x4f9b29=_0x3f3730['updates']??{},_0x578f64=normalizeAppUpdateChannel(_0x4f9b29['channel']),_0x1d7c01={'backgroundCheckIntervalMs':_0x4f9b29[_0x3a3167(0x170)+_0x3a3167(0x1a4)+'ntervalM'+'s']??DEFAULT_BACKGROUND_UPDATE_CHECK_INTERVAL_MS,'backgroundCheckStaleMs':_0x4f9b29[_0x3a3167(0x170)+'ndCheckS'+_0x3a3167(0x122)]??DEFAULT_BACKGROUND_UPDATE_CHECK_STALE_MS,'installQuitTimeoutMs':_0x4f9b29[_0x3a3167(0x15d)+_0x3a3167(0xf0)+_0x3a3167(0x19a)]??DEFAULT_INSTALL_QUIT_TIMEOUT_MS,'autoDownload':_0x4f9b29[_0x3a3167(0x179)+'load']===!![]},_0x2846d4={'supported':![],'channel':_0x578f64,'phase':_0x3a3167(0x184)+_0x3a3167(0x1a7),'currentVersion':_0x214520(),'remoteVersion':null,'comparisonResult':_0x3a3167(0x13b),'hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'releaseName':null,'releaseDate':null,'releaseNotes':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,'hasPendingPackage':![],'pendingPackageName':null,'pendingPackageBytes':null,'checkedAt':null,'message':_0x3a3167(0x196),'error':null,'errorCode':null};let _0x2b2f35=![],_0x2753e6=null,_0x5f1d05=null,_0x13931c=null,_0x1bc884=null,_0x1c1911=null,_0x28f613=![],_0x2ac2eb=null,_0x5b9dea=0x0;function _0x205959(){const _0x2202ae=_0x3a3167;if(process['platform']===_0x2202ae(0x19f))return join(homedir(),_0x2202ae(0x17c),_0x2202ae(0x13f));if(process[_0x2202ae(0xf5)]===_0x2202ae(0x10c))return process.env.LOCALAPPDATA??join(homedir(),_0x2202ae(0x181),_0x2202ae(0x134));return process.env.XDG_CACHE_HOME??join(homedir(),_0x2202ae(0x197));}function _0x2bfea3(){const _0x646740=_0x3a3167;if(!app[_0x646740(0xf4)+'ed']||!process[_0x646740(0x191)+_0x646740(0x14b)])return{};const _0x4c7714=join(process[_0x646740(0x191)+_0x646740(0x14b)],_0x646740(0x19c)+_0x646740(0x194));if(!existsSync(_0x4c7714))return{};try{const _0x32bb25=readFileSync(_0x4c7714,_0x646740(0x15e)),_0x311339=/^\s*channel:\s*["']?([^"'\s#]+)["']?/imu[_0x646740(0x101)](_0x32bb25),_0x20bd4e=/^\s*updaterCacheDirName:\s*["']?([^"'\s#]+)["']?/imu[_0x646740(0x101)](_0x32bb25);return{'channel':normalizeAppUpdateChannel(_0x311339?.[0x1]),'updaterCacheDirName':normalizeString(_0x20bd4e?.[0x1])};}catch(_0x2fad2c){return _0x2a2e17?.['warn']?.(_0x646740(0x132)+_0x646740(0x146)+_0x646740(0x1ae)+_0x646740(0x104),{'error':getErrorMessage(_0x2fad2c)}),{};}}const _0x586418=_0x2bfea3();_0x586418['channel']&&(_0x2846d4[_0x3a3167(0x1a5)]=_0x586418['channel']);function _0x237fce(){const _0x2b134c=_0x3a3167,_0x1adf31=_0x586418[_0x2b134c(0x15a)+'acheDirN'+_0x2b134c(0x153)]||_0x1704f5()+_0x2b134c(0x12a);return join(_0x205959(),_0x1adf31);}function _0x56b032(_0x2100cd){const _0xd5f213=_0x3a3167;return _0x2100cd===_0xd5f213(0x142)?_0xd5f213(0x125)+_0xd5f213(0x10f):'自动更新功能已就'+'绪';}function _0x9450d5(){const _0x321da8=_0x3a3167;if(_0x4f9b29[_0x321da8(0x165)]===![])return![];if(!app[_0x321da8(0xf4)+'ed'])return![];if(process[_0x321da8(0xf5)]!==_0x321da8(0xef))return!![];return Boolean(process.env.APPIMAGE);}function _0x1438aa(){const _0x15d79e=_0x3a3167;if(_0x4f9b29[_0x15d79e(0x165)]===![])return _0x15d79e(0x139)+_0x15d79e(0x157)+'fig\x20中禁用';if(!app[_0x15d79e(0xf4)+'ed'])return _0x15d79e(0x1ac)+_0x15d79e(0x10d);if(process['platform']===_0x15d79e(0xef))return _0x15d79e(0xe7)+_0x15d79e(0x13e)+_0x15d79e(0x161)+_0x15d79e(0x12c);return _0x15d79e(0x1a9)+_0x15d79e(0x126);}function _0xd3b1ec(){const _0x7aa61c=_0x3a3167;return join(_0x3f3730[_0x7aa61c(0x124)],_0x7aa61c(0x16c)+_0x7aa61c(0x14e)+'ntext.js'+'on');}function _0x5f2b83(){return{'hasPendingPackage':![],'pendingPackageName':null,'pendingPackageBytes':null};}function _0x5b95f9(){return{..._0x2846d4};}function _0x828664(){const _0x3da082=_0x3a3167,_0xee49e3=_0x5b95f9();for(const _0x3fd8a6 of BrowserWindow[_0x3da082(0xeb)+'ndows']()){!_0x3fd8a6[_0x3da082(0x168)+_0x3da082(0x192)]()&&_0x3fd8a6['webConte'+_0x3da082(0x186)]['send'](_0x3da082(0x14c)+_0x3da082(0x189),_0xee49e3);}_0x205c69?.('app:upda'+'te-state',_0xee49e3);}function _0x3788bd(_0xc77955){const _0x5bf8e5=_0x3a3167,_0x369853={..._0xc77955};_0x369853[_0x5bf8e5(0x120)]===null&&_0x369853['errorCod'+'e']===undefined&&(_0x369853[_0x5bf8e5(0x11b)+'e']=null),Object['assign'](_0x2846d4,_0x369853,{'currentVersion':_0x214520()}),_0x828664();}function _0x4a03e1(){const _0x3fee70=_0x3a3167;if(!_0x2846d4[_0x3fee70(0x172)+'d'])throw new Error(_0x1438aa());}function _0x2dcef0(_0x2e7505,_0x4a13b2={}){const _0x2b1ddd=_0x3a3167;_0x2a2e17?.[_0x2b1ddd(0x175)]?.(_0x2e7505,_0x4a13b2);}function _0x227121(_0xb7f175,_0x258790={}){const _0x4b80f8=_0x3a3167;_0x2a2e17?.[_0x4b80f8(0x14d)]?.(_0xb7f175,_0x258790);}function _0x1210a4(_0x271a7b){const _0x2e1600=_0x3a3167;if(typeof _0x271a7b!==_0x2e1600(0x1b0)||!Number[_0x2e1600(0x13a)](_0x271a7b))return null;const _0x38970c=Math['min'](0x63,Math[_0x2e1600(0xfa)](0x0,_0x271a7b));if(_0x2846d4['phase']!==_0x2e1600(0x166)+_0x2e1600(0x108)||typeof _0x2846d4[_0x2e1600(0x166)+_0x2e1600(0x176)]!==_0x2e1600(0x1b0))return _0x38970c;return Math['max'](_0x2846d4['download'+_0x2e1600(0x176)],_0x38970c);}function _0xf397c6(_0x584be7,_0x4593a4){const _0x5e904b=_0x3a3167,_0x2b4df0=_0x584be7?'v'+_0x584be7:_0x5e904b(0x115);if(typeof _0x4593a4==='number'){if(_0x4593a4>=0x63)return _0x5e904b(0x131);return'正在下载\x20'+_0x2b4df0+'\x20('+_0x4593a4['toFixed'](0x1)+'%)';}return _0x5e904b(0x16f)+_0x2b4df0;}function _0x519f3e(_0x36f396){const _0x1f6d46=_0x3a3167;try{writeFileSync(_0xd3b1ec(),JSON[_0x1f6d46(0x187)+'y'](_0x36f396,null,0x2),_0x1f6d46(0x15e));}catch(_0x3699f1){_0x227121('failed\x20t'+_0x1f6d46(0x16b)+'t\x20instal'+'l\x20phase\x20'+_0x1f6d46(0x123),{'error':getErrorMessage(_0x3699f1)});}}function _0x4cce06(){const _0xbea8be=_0x3a3167;try{rmSync(_0xd3b1ec(),{'force':!![]});}catch(_0x40418b){_0x227121(_0xbea8be(0x132)+_0xbea8be(0x135)+'install\x20'+_0xbea8be(0x133)+'ntext',{'error':getErrorMessage(_0x40418b)});}}function _0x1337f9(){const _0x344dad=_0x3a3167,_0x331efb=join(_0x237fce(),_0x344dad(0x137));if(!existsSync(_0x331efb))return{'packageName':null,'packageBytes':null};try{const _0x360c96=readdirSync(_0x331efb)['find'](_0x1459a1=>/\.(zip|exe|dmg|AppImage)$/iu[_0x344dad(0x1a6)](_0x1459a1))??null;if(!_0x360c96)return{'packageName':null,'packageBytes':null};const _0x37886e=join(_0x331efb,_0x360c96);return{'packageName':_0x360c96,'packageBytes':statSync(_0x37886e)[_0x344dad(0x173)]};}catch(_0x31fa73){return _0x227121('failed\x20t'+_0x344dad(0x13c)+_0x344dad(0x127)+_0x344dad(0x182)+'l\x20packag'+'e',{'error':getErrorMessage(_0x31fa73)}),{'packageName':null,'packageBytes':null};}}function _0xe72086(){const _0x3df5b9=_0x3a3167;if(!_0x13931c)return null;const _0x2370a0=join(_0x237fce(),_0x3df5b9(0x137)),_0x24b3c8=join(_0x2370a0,_0x3df5b9(0x16e)+_0x3df5b9(0xfd));if(!existsSync(_0x24b3c8))return null;let _0x43025d=null;try{_0x43025d=JSON[_0x3df5b9(0x163)](readFileSync(_0x24b3c8,_0x3df5b9(0x15e)));}catch(_0x244ac6){return _0x227121(_0x3df5b9(0x132)+_0x3df5b9(0x18d)+_0x3df5b9(0xe6)+_0x3df5b9(0x107)+_0x3df5b9(0x12f),{'error':getErrorMessage(_0x244ac6)}),null;}if(!isMatchingAppUpdatePackageMetadata(_0x13931c,_0x43025d))return null;const _0x3a709a=join(_0x2370a0,_0x13931c[_0x3df5b9(0x1af)]);if(!existsSync(_0x3a709a))return null;try{const _0x1170c0=statSync(_0x3a709a);if(!_0x1170c0[_0x3df5b9(0x16a)]()||_0x1170c0['size']===0x0)return null;return{'metadata':_0x13931c,'packageName':_0x13931c[_0x3df5b9(0x1af)],'packageBytes':_0x1170c0['size']};}catch(_0x4e92cd){return _0x227121('failed\x20t'+_0x3df5b9(0x13c)+_0x3df5b9(0x127)+'g\x20downlo'+_0x3df5b9(0x164)+_0x3df5b9(0x11e),{'error':getErrorMessage(_0x4e92cd)}),null;}}function _0x3579e9(_0x27298d){const _0x1f549f=_0x3a3167,_0x44d869=_0xe72086();if(!_0x44d869)return![];const {metadata:_0x4b4fea,packageName:_0x58165d,packageBytes:_0x353d11}=_0x44d869;return _0x2dcef0('pending\x20'+'package\x20'+_0x1f549f(0x151)+'t',{'reason':_0x27298d,'version':_0x4b4fea[_0x1f549f(0x17e)],'packageName':_0x58165d,'packageBytes':_0x353d11}),_0x3788bd({'phase':_0x1f549f(0x1a0)+'e','remoteVersion':_0x4b4fea['version'],'comparisonResult':_0x1f549f(0x17d)+_0x1f549f(0xe9),'hasUpdate':!![],'availableVersion':_0x4b4fea[_0x1f549f(0x17e)],'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':_0x353d11,'totalBytes':_0x353d11,'hasPendingPackage':!![],'pendingPackageName':_0x58165d,'pendingPackageBytes':_0x353d11,'error':null,'message':_0x1f549f(0x130)+'v'+_0x4b4fea[_0x1f549f(0x17e)]+(_0x1f549f(0x11d)+_0x1f549f(0x162))}),!![];}function _0x5a766f(){const _0xf0a028=_0x3a3167;return _0x2846d4[_0xf0a028(0x172)+'d']&&!_0x2753e6&&!_0x5f1d05&&[_0xf0a028(0xea),'not-avai'+'lable','error'][_0xf0a028(0x1ad)](_0x2846d4[_0xf0a028(0xfc)]);}function _0x53ae5e(){if(!_0x1c1911)return;clearTimeout(_0x1c1911),_0x1c1911=null;}function _0xcf24a7(_0x3aa5f4){const _0x42217c=_0x3a3167,_0x2f59e9=_0x2846d4[_0x42217c(0x166)+_0x42217c(0x112)+'n'],_0x44bf20=_0x2846d4['availabl'+_0x42217c(0x119)];_0x1bc884=null,_0x28f613=![],_0x53ae5e(),_0x4cce06(),_0x3788bd({'phase':'error','checkedAt':new Date()[_0x42217c(0x154)+_0x42217c(0x108)](),'hasPendingPackage':![],'pendingPackageName':null,'pendingPackageBytes':null,'hasUpdate':!![],'availableVersion':_0x44bf20??_0x2f59e9,'downloadedVersion':_0x2f59e9,'error':getErrorMessage(_0x3aa5f4),'errorCode':'install-'+'error','message':_0x42217c(0x16d)});}function _0x343991(){const _0x2c9e6d=_0x3a3167;_0x53ae5e(),_0x28f613=![],_0x1c1911=setTimeout(()=>{const _0x25d7e5=_0x47e9;if(_0x28f613||_0x2846d4[_0x25d7e5(0xfc)]!==_0x25d7e5(0xfe)+'ng')return;_0x227121(_0x25d7e5(0xf1)+'nstall\x20d'+_0x25d7e5(0x117)+_0x25d7e5(0x12e)+_0x25d7e5(0x15f)+_0x25d7e5(0x11c)+_0x25d7e5(0x185),{'downloadedVersion':_0x2846d4[_0x25d7e5(0x166)+_0x25d7e5(0x112)+'n'],'currentVersion':_0x2846d4[_0x25d7e5(0x114)+'ersion']}),_0xcf24a7(new Error(_0x25d7e5(0x141)+_0x25d7e5(0x183)+_0x25d7e5(0x100)));},_0x1d7c01[_0x2c9e6d(0x15d)+_0x2c9e6d(0xf0)+_0x2c9e6d(0x19a)]);}function _0x439268(){const _0xe02de9=_0x3a3167;if(_0x2b2f35)return;_0x2b2f35=!![],_0x2846d4[_0xe02de9(0x172)+'d']=_0x9450d5(),_0x2846d4[_0xe02de9(0xfc)]=_0x2846d4[_0xe02de9(0x172)+'d']?_0xe02de9(0xea):_0xe02de9(0x184)+_0xe02de9(0x1a7),_0x2846d4[_0xe02de9(0x143)]=_0x2846d4['supporte'+'d']?_0x56b032(_0x2846d4[_0xe02de9(0x1a5)]):_0x1438aa();if(!_0x2846d4['supporte'+'d']){_0x828664();return;}autoUpdater[_0xe02de9(0x179)+'load']=_0x1d7c01[_0xe02de9(0x179)+_0xe02de9(0x193)],autoUpdater['autoInst'+_0xe02de9(0x12b)+'Quit']=![],autoUpdater['channel']=_0x2846d4[_0xe02de9(0x1a5)],autoUpdater['on'](_0xe02de9(0x199)+'-for-upd'+'ate',()=>{const _0x5d75f1=_0xe02de9;_0x13931c=null,_0x3788bd({'phase':'checking','checkedAt':new Date()['toISOStr'+_0x5d75f1(0x108)](),'remoteVersion':null,'comparisonResult':'unknown','hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x5f2b83(),'error':null,'message':_0x5d75f1(0x18b)});}),autoUpdater['on'](_0xe02de9(0x148)+_0xe02de9(0x10b),_0x231ee4=>{const _0x4f638b=_0xe02de9,_0x5cb35a=extractUpdateInfoPatch(_0x231ee4),_0x477ce7=compareAppVersions(_0x214520(),_0x5cb35a[_0x4f638b(0x17f)+_0x4f638b(0x144)]);if(_0x477ce7!==_0x4f638b(0x17d)+_0x4f638b(0xe9)){_0x13931c=null,_0x3788bd({..._0x5cb35a,'phase':_0x4f638b(0x159)+_0x4f638b(0x13d),'comparisonResult':_0x477ce7,'hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x5f2b83(),'checkedAt':new Date()[_0x4f638b(0x154)+'ing'](),'error':null,'message':'当前已经是最新版'+'本'});return;}_0x13931c=extractRemoteUpdatePackageMetadata(_0x231ee4,_0x2a2e17),_0x3788bd({..._0x5cb35a,'phase':_0x4f638b(0x1a0)+'e','comparisonResult':_0x477ce7,'hasUpdate':!![],'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x5f2b83(),'checkedAt':new Date()[_0x4f638b(0x154)+_0x4f638b(0x108)](),'error':null,'message':_0x5cb35a[_0x4f638b(0x1a0)+_0x4f638b(0x119)]?_0x4f638b(0xf3)+_0x5cb35a[_0x4f638b(0x1a0)+_0x4f638b(0x119)]:'发现可用更新'}),_0x3579e9(_0x4f638b(0x14f)+_0x4f638b(0x10b));}),autoUpdater['on']('update-n'+'ot-avail'+_0xe02de9(0x180),_0x230abe=>{const _0x21e2ab=_0xe02de9;_0x13931c=null;const _0x4ed0ca=extractUpdateInfoPatch(_0x230abe);_0x3788bd({..._0x4ed0ca,'phase':_0x21e2ab(0x159)+_0x21e2ab(0x13d),'comparisonResult':compareAppVersions(_0x214520(),_0x4ed0ca['remoteVe'+'rsion']),'hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,..._0x5f2b83(),'checkedAt':new Date()[_0x21e2ab(0x154)+_0x21e2ab(0x108)](),'error':null,'message':'当前已经是最新版'+'本'});}),autoUpdater['on'](_0xe02de9(0x166)+_0xe02de9(0x136)+'s',_0x4f745e=>{const _0x19defa=_0xe02de9,_0x152f02=extractProgressPatch(_0x4f745e),_0x1d4d74=_0x1210a4(_0x152f02[_0x19defa(0x166)+_0x19defa(0x176)]??null);_0x3788bd({..._0x152f02,'downloadPercent':_0x1d4d74,'phase':_0x19defa(0x166)+_0x19defa(0x108),..._0x5f2b83(),'error':null,'message':_0xf397c6(_0x2846d4[_0x19defa(0x1a0)+'eVersion'],_0x1d4d74)});}),autoUpdater['on'](_0xe02de9(0x10e)+_0xe02de9(0x1a2)+'d',_0x5d9af2=>{const _0x225a8a=_0xe02de9,_0x17c6ea=extractUpdateInfoPatch(_0x5d9af2),_0x47bab0=extractRemoteUpdatePackageMetadata(_0x5d9af2,_0x2a2e17)??_0x13931c;_0x47bab0&&(_0x13931c=_0x47bab0);const _0x5825ae=_0x17c6ea[_0x225a8a(0x1a0)+'eVersion']??_0x47bab0?.[_0x225a8a(0x17e)]??_0x2846d4[_0x225a8a(0x1a0)+'eVersion'];_0x3788bd({..._0x17c6ea,'phase':_0x225a8a(0x166)+'ed','comparisonResult':compareAppVersions(_0x214520(),_0x5825ae),'hasUpdate':!![],'downloadedVersion':_0x5825ae,'downloadPercent':0x64,..._0x5f2b83(),'error':null,'message':_0x5825ae?_0x225a8a(0x17b)+_0x5825ae+_0x225a8a(0x118):'更新包已准备好安'+'装'});}),autoUpdater['on'](_0xe02de9(0x120),_0x3000c9=>{const _0x2914bc=_0xe02de9;if(_0x2846d4[_0x2914bc(0xfc)]==='installi'+'ng'){_0xcf24a7(_0x3000c9);return;}_0x3788bd({'phase':'error','checkedAt':new Date()[_0x2914bc(0x154)+_0x2914bc(0x108)](),..._0x5f2b83(),'error':getErrorMessage(_0x3000c9),'errorCode':_0x2846d4[_0x2914bc(0xfc)]==='download'+'ing'?_0x2914bc(0x166)+_0x2914bc(0x14a):_0x2914bc(0x105)+_0x2914bc(0x167),'message':'自动更新失败'});}),_0x828664();}async function _0x1b1ead(){const _0x148622=_0x3a3167;_0x439268(),_0x4a03e1();if(_0x2753e6)return _0x2753e6;return _0x2dcef0(_0x148622(0x140)+'quested'),_0x2753e6=autoUpdater['checkFor'+_0x148622(0x149)]()[_0x148622(0x111)](()=>_0x5b95f9())[_0x148622(0x171)](()=>{_0x2753e6=null;}),_0x2753e6;}async function _0x2537f3(){const _0x4e53eb=_0x3a3167;_0x439268(),_0x4a03e1();if(_0x2846d4[_0x4e53eb(0xfc)]===_0x4e53eb(0x166)+'ed'||_0x2846d4['phase']===_0x4e53eb(0xfe)+'ng')return _0x5b95f9();if(!_0x2846d4[_0x4e53eb(0x15b)+'e'])throw new Error(_0x4e53eb(0x145)+'更新');const _0x10a9c5=_0x2846d4[_0x4e53eb(0xfc)]===_0x4e53eb(0x120)&&_0x2846d4['errorCod'+'e']==='install-'+_0x4e53eb(0x120)&&Boolean(_0x2846d4[_0x4e53eb(0x166)+_0x4e53eb(0x112)+'n']);if(_0x2846d4[_0x4e53eb(0xfc)]===_0x4e53eb(0x120)){if(_0x10a9c5)_0x3788bd({'phase':_0x4e53eb(0x1a0)+'e','hasUpdate':!![],'availableVersion':_0x2846d4['availabl'+_0x4e53eb(0x119)]??_0x2846d4['download'+'edVersio'+'n'],'downloadedVersion':null,'downloadPercent':null,..._0x5f2b83(),'error':null,'message':'正在重新准备更新'+'包'});else{await _0x1b1ead();if(_0x2846d4[_0x4e53eb(0xfc)]!==_0x4e53eb(0x1a0)+'e')throw new Error(_0x4e53eb(0x145)+'更新');}}if(![_0x4e53eb(0x1a0)+'e',_0x4e53eb(0x166)+'ing'][_0x4e53eb(0x1ad)](_0x2846d4[_0x4e53eb(0xfc)]))throw new Error(_0x4e53eb(0x145)+'更新');if(_0x5f1d05)return _0x5f1d05;return _0x5f1d05=autoUpdater[_0x4e53eb(0x166)+_0x4e53eb(0x1a3)]()[_0x4e53eb(0x111)](()=>{const _0x1a5fb4=_0x4e53eb;return _0x2846d4[_0x1a5fb4(0xfc)]!=='download'+'ed'&&_0x3788bd({'phase':'error','checkedAt':new Date()[_0x1a5fb4(0x154)+_0x1a5fb4(0x108)](),..._0x5f2b83(),'error':'更新包校验完成但'+_0x1a5fb4(0xf9)+'重试下载更新','errorCode':_0x1a5fb4(0x166)+_0x1a5fb4(0x14a),'message':_0x1a5fb4(0xe8)}),_0x5b95f9();})[_0x4e53eb(0x171)](()=>{_0x5f1d05=null;}),_0x5f1d05;}function _0x4219f1(){const _0x4f3f9c=_0x3a3167;_0x439268(),_0x4a03e1();if(!['download'+'ed','installi'+'ng'][_0x4f3f9c(0x1ad)](_0x2846d4[_0x4f3f9c(0xfc)]))throw new Error(_0x4f3f9c(0x19d)+'已下载更新');const _0x393f81=_0x1337f9();_0x1bc884=Date[_0x4f3f9c(0x138)](),_0x519f3e({'startedAt':new Date(_0x1bc884)['toISOStr'+_0x4f3f9c(0x108)](),'currentVersion':_0x2846d4[_0x4f3f9c(0x114)+'ersion'],'downloadedVersion':_0x2846d4[_0x4f3f9c(0x166)+_0x4f3f9c(0x112)+'n'],'pendingPackage':_0x393f81[_0x4f3f9c(0x11a)+'ame'],'pendingPackageBytes':_0x393f81[_0x4f3f9c(0x158)+_0x4f3f9c(0xfb)]}),_0x3788bd({'phase':'installi'+'ng',..._0x5f2b83(),'error':null,'message':_0x4f3f9c(0x150)+_0x4f3f9c(0x18f)});try{_0x343991(),autoUpdater[_0x4f3f9c(0xf1)+'nstall'](![],!![]);}catch(_0x2c8204){_0xcf24a7(_0x2c8204);throw _0x2c8204;}return{'ok':!![]};}async function _0x13ed00(_0x5753fc){const _0x491570=_0x3a3167;if(!_0x5a766f())return;_0x5b9dea=Date[_0x491570(0x138)](),_0x2dcef0(_0x491570(0x170)+_0x491570(0x177)+_0x491570(0x18c)+_0x491570(0x110)+'d',{'reason':_0x5753fc});try{await _0x1b1ead();}catch(_0x3c6525){_0x227121('backgrou'+'nd\x20updat'+'e\x20check\x20'+_0x491570(0xf2),{'reason':_0x5753fc,'error':getErrorMessage(_0x3c6525)});}}function _0x3daf0a(_0x25c060){const _0xbd999c=_0x3a3167;if(!_0x2846d4[_0xbd999c(0x172)+'d'])return;const _0x1b80d3=Date['now']()-_0x5b9dea;if(_0x1b80d3<_0x1d7c01[_0xbd999c(0x170)+_0xbd999c(0x18a)+'taleMs'])return;void _0x13ed00(_0x25c060);}function _0x3b82ce(){const _0x3d0f82=_0x3a3167;_0x439268();if(!_0x2846d4['supporte'+'d']||_0x2ac2eb)return;_0x2ac2eb=setInterval(()=>{const _0x445fec=_0x47e9;void _0x13ed00(_0x445fec(0xff));},_0x1d7c01[_0x3d0f82(0x170)+_0x3d0f82(0x1a4)+_0x3d0f82(0x113)+'s']),void _0x13ed00(_0x3d0f82(0xf6)),_0x2dcef0(_0x3d0f82(0x170)+_0x3d0f82(0x177)+'e\x20check\x20'+'schedule'+'r\x20starte'+'d',_0x1d7c01);}function _0x1d56b3(){const _0x41d2cc=_0x3a3167;if(_0x2846d4[_0x41d2cc(0xfc)]!==_0x41d2cc(0xfe)+'ng')return;_0x28f613=!![],_0x53ae5e();}return{'initialize':_0x439268,'getState':_0x5b95f9,'checkForUpdates':_0x1b1ead,'downloadUpdate':_0x2537f3,'quitAndInstall':_0x4219f1,'requestBackgroundCheck':_0x3daf0a,'startBackgroundChecks':_0x3b82ce,'markQuitObserved':_0x1d56b3};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x19ae(){const _0x2e5db1=['alpha','ate\x20disa','ller.mjs','createUp','\x20unavail','OT_FOUND','export\x20c','o\x20load\x20e','2297124hNsOqm','warn','channel','logger','lectron-','includes','n-update','./contro','send','dater\x20is','message','ause\x20ele','dependen','自动更新依赖\x20e','string','\x27electro','24041RLSpRt','trim','639ckElLZ','\x22electro','OUND','242SJKEQJ','yed','MODULE_N','未知的自动更新错','te-state','dateCont','LE_NOT_F','nts','able','bled\x20bec','getAllWi','1270030pxmkPS','6150032pFAJfS','function','auto\x20upd','updater','failed\x20t','ted','reateUpd','22MtqiRl','latest','updater\x20','113512ijKagh','code','er.mjs\x20d','8DwSYzF','ndows','2538145vfwKCD','oes\x20not\x20','unsuppor','缺失,已降级为禁','controll','1785816rSGkkk','webConte','unknown','ateContr','app:upda'];_0x19ae=function(){return _0x2e5db1;};return _0x19ae();}(function(_0x448701,_0x14fcf3){const _0x49b131=_0x3105,_0x2d5fcb=_0x448701();while(!![]){try{const _0x5d16ec=parseInt(_0x49b131(0x1bf))/0x1*(-parseInt(_0x49b131(0x1d7))/0x2)+parseInt(_0x49b131(0x1e4))/0x3+-parseInt(_0x49b131(0x1dd))/0x4*(parseInt(_0x49b131(0x1df))/0x5)+parseInt(_0x49b131(0x1f1))/0x6+-parseInt(_0x49b131(0x1d0))/0x7+-parseInt(_0x49b131(0x1da))/0x8*(parseInt(_0x49b131(0x1c1))/0x9)+-parseInt(_0x49b131(0x1cf))/0xa*(-parseInt(_0x49b131(0x1c4))/0xb);if(_0x5d16ec===_0x14fcf3)break;else _0x2d5fcb['push'](_0x2d5fcb['shift']());}catch(_0x42b863){_0x2d5fcb['push'](_0x2d5fcb['shift']());}}}(_0x19ae,0x94118));import{BrowserWindow}from'electron';function getErrorMessage(_0x10a058){const _0x1280e7=_0x3105;if(_0x10a058 instanceof Error&&_0x10a058[_0x1280e7(0x1b9)][_0x1280e7(0x1c0)]())return _0x10a058['message'][_0x1280e7(0x1c0)]();if(typeof _0x10a058===_0x1280e7(0x1bd)&&_0x10a058[_0x1280e7(0x1c0)]())return _0x10a058['trim']();return _0x1280e7(0x1c7)+'误';}function createUnavailableUpdateController({shellConfig:_0x4ec5b1,appVersion:_0x43dcc0,broadcast:_0x35084c,logger:_0xd3b0e9,reason:_0x283b2f}){const _0x26e35a=_0x3105,_0x6ba72c=_0x4ec5b1['updates']??{},_0x6c57f9={'supported':![],'channel':_0x6ba72c[_0x26e35a(0x1f3)]===_0x26e35a(0x1e9)?_0x26e35a(0x1e9):_0x26e35a(0x1d8),'phase':_0x26e35a(0x1e1)+_0x26e35a(0x1d5),'currentVersion':_0x43dcc0(),'remoteVersion':null,'comparisonResult':_0x26e35a(0x1e6),'hasUpdate':![],'availableVersion':null,'downloadedVersion':null,'releaseName':null,'releaseDate':null,'releaseNotes':null,'downloadPercent':null,'bytesPerSecond':null,'transferredBytes':null,'totalBytes':null,'hasPendingPackage':![],'pendingPackageName':null,'pendingPackageBytes':null,'checkedAt':null,'message':_0x283b2f,'error':null,'errorCode':'missing-'+_0x26e35a(0x1bb)+'cy'};let _0x547ad8=![];function _0x3915c3(){return{..._0x6c57f9,'currentVersion':_0x43dcc0()};}function _0x4c2e35(){const _0x54ad20=_0x26e35a,_0x22f3a6=_0x3915c3();for(const _0x285063 of BrowserWindow[_0x54ad20(0x1ce)+_0x54ad20(0x1de)]()){!_0x285063['isDestro'+_0x54ad20(0x1c5)]()&&_0x285063[_0x54ad20(0x1e5)+_0x54ad20(0x1cb)][_0x54ad20(0x1b7)]('app:upda'+_0x54ad20(0x1c8),_0x22f3a6);}_0x35084c?.(_0x54ad20(0x1e8)+_0x54ad20(0x1c8),_0x22f3a6);}function _0x3f1d71(){const _0x3bdd2e=_0x26e35a;if(_0x547ad8)return;_0x547ad8=!![],_0xd3b0e9?.[_0x3bdd2e(0x1f2)]?.(_0x3bdd2e(0x1d2)+_0x3bdd2e(0x1ea)+_0x3bdd2e(0x1cd)+_0x3bdd2e(0x1ba)+'ctron-up'+_0x3bdd2e(0x1b8)+_0x3bdd2e(0x1ed)+_0x3bdd2e(0x1cc),{'reason':_0x283b2f}),_0x4c2e35();}function _0x50db4e(){throw new Error(_0x283b2f);}async function _0x154dd8(){_0x3f1d71(),_0x50db4e();}async function _0x2123c0(){_0x3f1d71(),_0x50db4e();}async function _0x130441(){_0x3f1d71(),_0x50db4e();}function _0xb480a5(){}function _0x1e8dad(){_0x3f1d71();}function _0x59e02d(){}return{'initialize':_0x3f1d71,'getState':_0x3915c3,'checkForUpdates':_0x154dd8,'downloadUpdate':_0x2123c0,'quitAndInstall':_0x130441,'requestBackgroundCheck':_0xb480a5,'startBackgroundChecks':_0x1e8dad,'markQuitObserved':_0x59e02d};}function isElectronUpdaterMissingError(_0x1442c5){const _0x5e668a=_0x3105;if(!_0x1442c5)return![];if(_0x1442c5&&typeof _0x1442c5==='object'&&_0x5e668a(0x1db)in _0x1442c5&&(_0x1442c5['code']==='ERR_MODU'+_0x5e668a(0x1ca)+_0x5e668a(0x1c3)||_0x1442c5[_0x5e668a(0x1db)]===_0x5e668a(0x1c6)+_0x5e668a(0x1ee))){const _0x1791c3=getErrorMessage(_0x1442c5);return _0x1791c3[_0x5e668a(0x1b4)](_0x5e668a(0x1be)+_0x5e668a(0x1b5)+'r\x27')||_0x1791c3[_0x5e668a(0x1b4)](_0x5e668a(0x1c2)+_0x5e668a(0x1b5)+'r\x22');}return![];}function _0x3105(_0x33c6e9,_0x596261){_0x33c6e9=_0x33c6e9-0x1b2;const _0x19ae20=_0x19ae();let _0x310509=_0x19ae20[_0x33c6e9];return _0x310509;}export async function loadCreateUpdateController({logger:_0x4cab02,importer:importer=_0x53ed19=>import(_0x53ed19)}={}){const _0x34868a=_0x3105;try{const _0x40dc36=await importer(_0x34868a(0x1b6)+_0x34868a(0x1eb));if(typeof _0x40dc36[_0x34868a(0x1ec)+_0x34868a(0x1c9)+'roller']!==_0x34868a(0x1d1))throw new TypeError('updates/'+_0x34868a(0x1e3)+_0x34868a(0x1dc)+_0x34868a(0x1e0)+_0x34868a(0x1ef)+_0x34868a(0x1d6)+_0x34868a(0x1e7)+'oller');return _0x40dc36['createUp'+'dateCont'+'roller'];}catch(_0x2c173a){if(!isElectronUpdaterMissingError(_0x2c173a))throw _0x2c173a;const _0x4be509=_0x34868a(0x1bc)+_0x34868a(0x1b3)+_0x34868a(0x1d9)+_0x34868a(0x1e2)+'用状态';return _0x4cab02?.[_0x34868a(0x1f2)]?.(_0x34868a(0x1d4)+_0x34868a(0x1f0)+'lectron-'+_0x34868a(0x1d3),{'error':getErrorMessage(_0x2c173a),'reason':_0x4be509}),_0x5df154=>createUnavailableUpdateController({..._0x5df154,'logger':_0x5df154?.[_0x34868a(0x1b2)]??_0x4cab02,'reason':_0x4be509});}}export const __test__={'createUnavailableUpdateController':createUnavailableUpdateController,'isElectronUpdaterMissingError':isElectronUpdaterMissingError};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wujie-shell/core",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/src/index.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"get-port": "^7.2.0",
|
|
35
35
|
"semver": "^7.8.3",
|
|
36
36
|
"ws": "^8.20.0",
|
|
37
|
-
"@wujie-shell/config": "4.0.
|
|
38
|
-
"@wujie-shell/logger": "4.0.
|
|
37
|
+
"@wujie-shell/config": "4.0.1",
|
|
38
|
+
"@wujie-shell/logger": "4.0.1"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "node ../../scripts/build-packages.mjs --package @wujie-shell/core"
|