@alenfitz/spec-copilot 2.1.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/README.zh-CN.md +29 -0
- package/adapters/index.js +2 -2
- package/bin/cli.js +2 -2
- package/bin/e2e-smoke.js +11 -0
- package/bin/frontend-checks.js +11 -0
- package/commands/spec:apply.md +3 -0
- package/commands/spec:smoke.md +44 -9
- package/framework/AGENTS.md.template +15 -3
- package/framework/CHANGELOG.md +82 -0
- package/framework/VERSION +1 -1
- package/package.json +1 -1
package/bin/e2e-smoke.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @alenfitz/spec-copilot v2.3.0
|
|
3
|
+
* Copyright (c) 2026 alenfitz. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This file is proprietary and obfuscated. Reverse engineering, decompilation,
|
|
6
|
+
* disassembly, or unauthorized redistribution of any kind is strictly prohibited.
|
|
7
|
+
* Source code is NOT licensed under MIT/Apache and is NOT available for derivative work.
|
|
8
|
+
*
|
|
9
|
+
* Bugs / feature requests: https://github.com/Alenfitz/spec_copilit/issues
|
|
10
|
+
*/
|
|
11
|
+
const _0x50e75f=_0x2a67,_0x53865a=_0x2a67;(function(_0x661580,_0x2b1e90){const _0x37a7e5={_0x2329d9:0x250,_0x5f5b24:0x1d6,_0x55afc1:0x2c9,_0x36a7b8:0x337,_0x4e71d5:0x24c},_0x141337=_0x2a67,_0x39172e=_0x2a67,_0x2b3a8e=_0x661580();while(!![]){try{const _0x366dda=-parseInt(_0x141337(_0x37a7e5._0x2329d9))/(0x597+-0x19f*0x5+0x285)+-parseInt(_0x141337(0x30f))/(0x1*0x6e9+-0x18d*-0x16+-0x2905*0x1)+-parseInt(_0x39172e(_0x37a7e5._0x5f5b24))/(0x42*0x51+-0x1*-0x70f+-0x145*0x16)+-parseInt(_0x39172e(_0x37a7e5._0x55afc1))/(0x103b+0x1bda+-0x1*0x2c11)*(-parseInt(_0x39172e(0x2e9))/(-0x19a4+-0x23bd+0x3d66))+parseInt(_0x141337(0x30e))/(-0x7*0x12b+0x1c51+0x5*-0x406)*(parseInt(_0x141337(_0x37a7e5._0x36a7b8))/(0xa13+-0x1210*-0x1+-0x707*0x4))+parseInt(_0x141337(_0x37a7e5._0x4e71d5))/(0x1*0x3c4+-0x1*0x13fa+0x2*0x81f)+parseInt(_0x141337(0x255))/(-0x29*-0x8c+-0x14f0+0x35*-0x7);if(_0x366dda===_0x2b1e90)break;else _0x2b3a8e['push'](_0x2b3a8e['shift']());}catch(_0x21966e){_0x2b3a8e['push'](_0x2b3a8e['shift']());}}}(_0x5bd9,0xbf*0xd88+-0xca63+-0x33365));const _0x4f2bdc=(function(){const _0x1eda4d={_0x3896cb:0x1b7},_0x4118af={};_0x4118af['gjSLp']=function(_0x33b7fb,_0x18696e){return _0x33b7fb===_0x18696e;};const _0x4789a8=_0x4118af;let _0x53bdda=!![];return function(_0x57e4af,_0x44b267){const _0x558e37={_0x29769b:0x1c5,_0x5a82c3:0x28b,_0x50ba8c:0x2e7},_0x25442a=_0x2a67,_0x478af8={'rCONC':function(_0x489606,_0x298e40){const _0x56ed4c=_0x2a67;return _0x4789a8[_0x56ed4c(_0x1eda4d._0x3896cb)](_0x489606,_0x298e40);},'kvFRO':_0x25442a(0x295)},_0x3d6607=_0x53bdda?function(){const _0x2c059a=_0x25442a,_0x539809=_0x25442a;if(_0x44b267){if(_0x478af8['rCONC'](_0x478af8['kvFRO'],_0x478af8[_0x2c059a(_0x558e37._0x29769b)])){const _0x14b4d2=_0x44b267[_0x539809(_0x558e37._0x5a82c3)](_0x57e4af,arguments);return _0x44b267=null,_0x14b4d2;}else _0x3f733c[_0x2c059a(0x2d5)][_0x2c059a(0x285)](_0x1a9b3f['length']+(_0x539809(0x26e)+_0x2c059a(0x328))+_0x4b711[_0x2c059a(_0x558e37._0x50ba8c)](0xead+-0x9*0x390+-0x1163*-0x1,-0x1*-0x1dbf+0x11d5+0x3*-0xfdb)[_0x2c059a(0x223)](';\x20'));}}:function(){};return _0x53bdda=![],_0x3d6607;};}()),_0x387f3c=_0x4f2bdc(this,function(){const _0x213cd7={_0x5ee40c:0x263,_0xbe5213:0x1f5},_0xe563a=_0x2a67,_0x3578ee=_0x2a67,_0x42c12e={};_0x42c12e[_0xe563a(_0x213cd7._0x5ee40c)]=_0xe563a(_0x213cd7._0xbe5213)+'+$';const _0x284e2d=_0x42c12e;return _0x387f3c[_0xe563a(0x297)]()['search'](_0x284e2d[_0x3578ee(0x263)])['toString']()[_0x3578ee(0x2b6)+'r'](_0x387f3c)[_0x3578ee(0x335)]('(((.+)+)+)'+'+$');});function _0x2a67(_0x21161c,_0x33adff){_0x21161c=_0x21161c-(0x17b7+0x112+0x1715*-0x1);const _0x4cacc7=_0x5bd9();let _0x49fb5d=_0x4cacc7[_0x21161c];if(_0x2a67['YggIXQ']===undefined){var _0x4140cf=function(_0x358847){const _0x2256c4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39a968='',_0x5dfe18='',_0x474fcf=_0x39a968+_0x4140cf,_0x22ad34=(''+function(){return 0x22a*-0x2+0x1203*-0x1+-0x7*-0x331;})['indexOf']('\x0a')!==-(0x1*0xd99+-0x15e*-0x11+-0x24d6);for(let _0x436b59=-0x2*-0xf53+0x9*0x3c3+-0x151*0x31,_0x345038,_0x5f0566,_0xcb0bed=-0x255c+0x1e94+-0x7c*-0xe;_0x5f0566=_0x358847['charAt'](_0xcb0bed++);~_0x5f0566&&(_0x345038=_0x436b59%(0x142d*0x1+-0x1*0xfa1+-0x488)?_0x345038*(0x927+0x267b*-0x1+0x4ee*0x6)+_0x5f0566:_0x5f0566,_0x436b59++%(0xbcd+-0x1*-0x25c3+-0xe*0x38a))?_0x39a968+=_0x22ad34||_0x474fcf['charCodeAt'](_0xcb0bed+(0x1*-0x1001+-0x1c85+0x2c90))-(-0x355*-0x8+0x8cc+-0x5e7*0x6)!==0x1bd*0x15+0x840*0x2+0x3501*-0x1?String['fromCharCode'](-0x161*-0x9+0x1322+-0x7a3*0x4&_0x345038>>(-(-0x110f*-0x1+0x1c7e+0x83*-0x59)*_0x436b59&-0x18b7+0x21*-0xa7+0x2e44)):_0x436b59:-0x196+-0x6a+0x200){_0x5f0566=_0x2256c4['indexOf'](_0x5f0566);}for(let _0x568274=0x1d91+-0x9e8+-0x13a9*0x1,_0x535205=_0x39a968['length'];_0x568274<_0x535205;_0x568274++){_0x5dfe18+='%'+('00'+_0x39a968['charCodeAt'](_0x568274)['toString'](0x18*-0x19f+0x1*0x1507+0x11f1))['slice'](-(0x2305+0x24fc+-0x47ff));}return decodeURIComponent(_0x5dfe18);};_0x2a67['uyXBkj']=_0x4140cf,_0x2a67['thSRZf']={},_0x2a67['YggIXQ']=!![];}const _0x4702e6=_0x4cacc7[0x26d*-0xf+-0x14b*-0xe+-0x97*-0x1f],_0x6fa378=_0x21161c+_0x4702e6,_0x5d9668=_0x2a67['thSRZf'][_0x6fa378];if(!_0x5d9668){const _0x1a4740=function(_0x44ddc8){this['iUbksP']=_0x44ddc8,this['rdSSZi']=[-0x1*0x16f1+0x1925+-0x233,0x8e1*-0x1+-0x1217*-0x1+0x1*-0x936,-0xd19+0x1*0x273+0xaa6],this['VJyoOF']=function(){return'newState';},this['yRkDPC']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['qhLaeE']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x1a4740['prototype']['uQQErG']=function(){const _0x35387c=new RegExp(this['yRkDPC']+this['qhLaeE']),_0x46d354=_0x35387c['test'](this['VJyoOF']['toString']())?--this['rdSSZi'][0x931+-0x8a3+-0x8d]:--this['rdSSZi'][-0x1818+0x347*0x2+0x118a];return this['MGlJTE'](_0x46d354);},_0x1a4740['prototype']['MGlJTE']=function(_0x5eb625){if(!Boolean(~_0x5eb625))return _0x5eb625;return this['QvGQvu'](this['iUbksP']);},_0x1a4740['prototype']['QvGQvu']=function(_0x4e54da){for(let _0x258568=0x1524+0x1c8e+0x2*-0x18d9,_0x9af4dc=this['rdSSZi']['length'];_0x258568<_0x9af4dc;_0x258568++){this['rdSSZi']['push'](Math['round'](Math['random']())),_0x9af4dc=this['rdSSZi']['length'];}return _0x4e54da(this['rdSSZi'][-0x1e3c*-0x1+0x169d+-0x34d9]);},(''+function(){return 0xde7*0x1+-0xf1d+0x1f*0xa;})['indexOf']('\x0a')===-(0x1*0x250b+-0x7*0x413+0x2d7*-0x3)&&new _0x1a4740(_0x2a67)['uQQErG'](),_0x49fb5d=_0x2a67['uyXBkj'](_0x49fb5d),_0x2a67['thSRZf'][_0x6fa378]=_0x49fb5d;}else _0x49fb5d=_0x5d9668;return _0x49fb5d;}_0x387f3c();const fs=require('fs'),path=require(_0x50e75f(0x29c)),net=require('net'),http=require(_0x50e75f(0x2f3)),{spawn}=require(_0x53865a(0x1e5)+_0x50e75f(0x1bc)),DEFAULT_PAGE_TIMEOUT=0x94dc+0x33d7+0x1*-0x5383,SERVER_START_TIMEOUT_BE=0x556*0x47+0x5*-0x877a+0x494*0x8e,SERVER_START_TIMEOUT_FE=0x148*-0x35+-0x1*-0x11857+-0x355*0xb,PORT_PROBE_TIMEOUT=-0x83+0x1*0x139+0x71a,API_CHECK_TIMEOUT=0x13f0+-0x89*-0x27+-0x1a3*0xd,BENIGN_CONSOLE_PATTERNS=[/favicon\.ico/,/\[HMR\]/,/\[vite\]/i,/hot-update/,/hot update/i,/DevTools/i,/Autofill/i,/Download the Vue Devtools/i,/Download the React DevTools/i,/\/sockjs-node\//,/ws:\/\//,/WebSocket connection/i,/ERR_CONNECTION_REFUSED.*sockjs/,/net::ERR_FAILED.*chrome-extension/,/ResizeObserver loop/,/Third-party cookie/i,/Failed to load resource.*favicon/],_0x1a0ea4={};_0x1a0ea4[_0x53865a(0x24b)]=_0x53865a(0x1dc),_0x1a0ea4[_0x50e75f(0x26b)]='mvn\x20spring'+_0x53865a(0x1bd)+'-q',_0x1a0ea4[_0x53865a(0x338)]=0x1f90,_0x1a0ea4[_0x53865a(0x2df)+'rn']=/Started \w+ in|Tomcat started/i;const _0x5a7fea={};_0x5a7fea[_0x50e75f(0x24b)]=_0x50e75f(0x2ac),_0x5a7fea['cmd']=_0x50e75f(0x2e8)+'v',_0x5a7fea[_0x53865a(0x338)]=0x1435,_0x5a7fea['readyPatte'+'rn']=/Local:.*http|VITE.*ready|localhost:\d+/i;const _0x75cd1={};_0x75cd1[_0x53865a(0x24b)]='.',_0x75cd1[_0x53865a(0x26b)]=_0x50e75f(0x1bb)+'-boot:run\x20'+'-q',_0x75cd1[_0x50e75f(0x338)]=0x1f90,_0x75cd1[_0x53865a(0x2df)+'rn']=/Started \w+ in|Tomcat started/i;const _0x5b88e9={};_0x5b88e9[_0x53865a(0x24b)]='frontend',_0x5b88e9[_0x53865a(0x26b)]=_0x50e75f(0x2e8)+'v',_0x5b88e9[_0x53865a(0x338)]=0x1435,_0x5b88e9['readyPatte'+'rn']=/Local:.*http|VITE.*ready|localhost:\d+/i;const _0x225764={};_0x225764[_0x50e75f(0x24b)]='.',_0x225764[_0x53865a(0x26b)]=_0x53865a(0x1bb)+_0x50e75f(0x1bd)+'-q',_0x225764[_0x53865a(0x338)]=0x1f90,_0x225764[_0x50e75f(0x2df)+'rn']=/Started \w+ in|Tomcat started/i;const _0x409b8e={};_0x409b8e[_0x53865a(0x24b)]='.',_0x409b8e['cmd']=_0x50e75f(0x2e8)+'v',_0x409b8e['port']=0x1435,_0x409b8e[_0x53865a(0x2df)+'rn']=/Local:.*http|VITE.*ready|localhost:\d+/i;const _0x11b90c={};_0x11b90c['dir']='.',_0x11b90c['cmd']=_0x50e75f(0x2e8)+'v',_0x11b90c[_0x50e75f(0x338)]=0x1435,_0x11b90c[_0x53865a(0x2df)+'rn']=/Local:.*http|VITE.*ready|localhost:\d+/i;const STACK_PROFILES=[{'name':_0x50e75f(0x1f1)+_0x53865a(0x2ca)+'分目录)','detect':_0xbe0fdc=>fs[_0x50e75f(0x273)](path[_0x50e75f(0x223)](_0xbe0fdc,_0x50e75f(0x1dc),'pom.xml'))&&fs[_0x50e75f(0x273)](path['join'](_0xbe0fdc,_0x53865a(0x2ac),_0x53865a(0x24e)+'on')),'backend':_0x1a0ea4,'frontend':_0x5a7fea},{'name':_0x50e75f(0x1f1)+_0x53865a(0x2ca)+_0x53865a(0x2d7)+_0x53865a(0x1f9),'detect':_0x4b8388=>fs[_0x53865a(0x273)](path[_0x50e75f(0x223)](_0x4b8388,_0x53865a(0x1ff)))&&fs['existsSync'](path['join'](_0x4b8388,_0x53865a(0x2ac),_0x53865a(0x24e)+'on')),'backend':_0x75cd1,'frontend':_0x5b88e9},{'name':'spring-boo'+_0x50e75f(0x2ca)+_0x50e75f(0x244),'detect':_0x274e90=>fs[_0x53865a(0x273)](path['join'](_0x274e90,_0x50e75f(0x1ff)))&&fs[_0x53865a(0x273)](path['join'](_0x274e90,'package.js'+'on'))&&((()=>{const _0x494be7={_0xf37b21:0x2bf,_0x381431:0x319,_0x8fe142:0x1fb,_0x1af59:0x271,_0xf53b77:0x1f7,_0x30c37e:0x24e,_0x4ddba9:0x26c,_0x2f426f:0x209,_0xb0e997:0x26c,_0xdbaf66:0x2e7,_0x37c07b:0x223,_0x1677d9:0x261,_0x470d72:0x29e,_0xdde861:0x26b},_0x5957fe=_0x50e75f,_0x17f24e=_0x50e75f,_0x113836={};_0x113836[_0x5957fe(_0x494be7._0xf37b21)]=_0x5957fe(0x291),_0x113836[_0x5957fe(_0x494be7._0x381431)]=_0x5957fe(_0x494be7._0x8fe142),_0x113836['UWDol']='EjGCR';const _0x2ef7fa=_0x113836;try{const _0x1fb97f=JSON[_0x5957fe(_0x494be7._0x1af59)](fs[_0x17f24e(_0x494be7._0xf53b77)+'nc'](path[_0x17f24e(0x223)](_0x274e90,_0x5957fe(_0x494be7._0x30c37e)+'on'),_0x2ef7fa[_0x17f24e(0x2bf)]));return _0x1fb97f[_0x5957fe(0x2eb)+'es']&&(_0x1fb97f['dependenci'+'es'][_0x5957fe(_0x494be7._0x4ddba9)]||_0x1fb97f[_0x5957fe(0x209)+_0x17f24e(0x317)]&&_0x1fb97f[_0x17f24e(_0x494be7._0x2f426f)+_0x17f24e(0x317)][_0x17f24e(_0x494be7._0xb0e997)]);}catch{if(_0x2ef7fa[_0x17f24e(0x319)]!==_0x2ef7fa[_0x5957fe(0x200)])return![];else{if(_0x142770)return;_0x2835c6=!![],_0x145234(_0x541ef8);const _0x1fc44d=[..._0x5f1761,..._0x4bcb92][_0x5957fe(_0x494be7._0xdbaf66)](-(-0x1caf*0x1+0x957*-0x4+-0x3e3*-0x11))[_0x5957fe(_0x494be7._0x37c07b)]('\x0a');_0x36a33b(new _0x5e0bfb(_0x17f24e(_0x494be7._0x1677d9)+_0x17f24e(_0x494be7._0x470d72)+_0x2ff465+_0x17f24e(0x1f3)+_0x3ee163[_0x17f24e(_0x494be7._0xdde861)]+'\x0a'+_0x1fc44d));}}})()),'backend':_0x225764,'frontend':_0x409b8e},{'name':'vite-only\x20'+'(纯前端)','detect':_0x24c3d3=>{const _0x250cf0={_0x5958b9:0x2b8,_0x2635a7:0x2e5,_0x539592:0x1f7,_0x51b6cd:0x223,_0x535e0f:0x291,_0x4c5e71:0x317},_0x35e82c=_0x50e75f,_0xcef957=_0x50e75f,_0x355644={};_0x355644[_0x35e82c(_0x250cf0._0x5958b9)]=function(_0xd3c267,_0x3ceb80){return _0xd3c267!==_0x3ceb80;},_0x355644[_0x35e82c(_0x250cf0._0x2635a7)]=_0x35e82c(0x289);const _0x56366d=_0x355644;try{if(_0x56366d['HtOdd'](_0x56366d[_0x35e82c(_0x250cf0._0x2635a7)],_0x35e82c(0x211))){const _0x54a92b=JSON[_0x35e82c(0x271)](fs[_0x35e82c(_0x250cf0._0x539592)+'nc'](path[_0xcef957(_0x250cf0._0x51b6cd)](_0x24c3d3,_0xcef957(0x24e)+'on'),_0xcef957(_0x250cf0._0x535e0f)));return _0x54a92b['devDepende'+'ncies']&&_0x54a92b['devDepende'+_0x35e82c(_0x250cf0._0x4c5e71)][_0xcef957(0x2ff)]||_0x54a92b[_0xcef957(0x2eb)+'es']&&_0x54a92b['dependenci'+'es'][_0xcef957(0x2ff)];}else _0x26ea3a['push'](_0x507f67[_0x35e82c(0x2e7)](-0x11c5*-0x2+0x2*0xfa1+-0x42cc,-0x2587+0x1f3+-0x2cc*-0xd));}catch{return![];}},'backend':null,'frontend':_0x11b90c}];function resolvePlaywright(_0x32fe43){const _0x5b40b1={_0xe3f11a:0x24d,_0xfd8e93:0x252,_0x427fd6:0x223,_0xb1acfe:0x327,_0x576704:0x2af,_0x2131c3:0x1d1,_0x44cbae:0x223,_0x3ef9d0:0x204,_0xce513d:0x327,_0x10d1e8:0x267,_0x18de29:0x226},_0x7e1333=_0x50e75f,_0x204753=_0x50e75f,_0x1e32db={'NOvpW':_0x7e1333(0x2ac),'ReLpU':'app','pjsxP':_0x204753(0x267),'hvaLQ':function(_0x4ab9fb,_0x2ad928){return _0x4ab9fb(_0x2ad928);},'EhOtU':_0x204753(_0x5b40b1._0xe3f11a),'TZUzo':_0x204753(_0x5b40b1._0xfd8e93)},_0x312f78=[_0x32fe43,path[_0x7e1333(_0x5b40b1._0x427fd6)](_0x32fe43,_0x1e32db[_0x7e1333(0x201)]),path['join'](_0x32fe43,_0x1e32db[_0x7e1333(0x24a)])][_0x7e1333(0x20d)](_0x38d33f=>fs[_0x204753(0x273)](_0x38d33f));for(const _0x1feeca of _0x312f78){try{const _0x555c48={};_0x555c48[_0x7e1333(0x204)]=[_0x1feeca];const _0x57c3d3=require[_0x204753(_0x5b40b1._0xb1acfe)](_0x1e32db['pjsxP'],_0x555c48),_0x5c0546=_0x1e32db['hvaLQ'](require,_0x57c3d3);if(_0x5c0546&&_0x5c0546[_0x7e1333(_0x5b40b1._0x576704)])return{'chromium':_0x5c0546[_0x204753(0x2af)],'module':_0x5c0546};}catch{}try{if(_0x1e32db[_0x7e1333(0x283)]===_0x1e32db['TZUzo'])_0x315700[_0x204753(0x2d5)][_0x204753(0x285)](_0x65597c[_0x7e1333(_0x5b40b1._0x2131c3)]+('\x20个\x20API\x20返回\x20'+_0x204753(0x2c1))+_0x46e941[_0x204753(0x2e7)](-0x197a+0x775+0x293*0x7,0x1809+-0x1a02+0x1fc)[_0x7e1333(_0x5b40b1._0x44cbae)](';\x20'));else{const _0x7d4cf6={};_0x7d4cf6[_0x7e1333(_0x5b40b1._0x3ef9d0)]=[_0x1feeca];const _0x13591e=require[_0x7e1333(_0x5b40b1._0xce513d)](_0x204753(_0x5b40b1._0x10d1e8)+_0x204753(_0x5b40b1._0x18de29),_0x7d4cf6),_0x7f5e69=_0x1e32db['hvaLQ'](require,_0x13591e);if(_0x7f5e69&&_0x7f5e69[_0x204753(0x2af)])return{'chromium':_0x7f5e69['chromium'],'module':_0x7f5e69};}}catch{}}return null;}function isPortListening(_0x2dd42e,_0x382493=_0x50e75f(0x1d0),_0x349569=PORT_PROBE_TIMEOUT){const _0x39113d={_0x3fbdcb:0x23f,_0x5cdacb:0x314},_0x423db6={_0x4f83e7:0x2b9,_0x2c5714:0x1f2,_0x40dc6d:0x31c,_0x33a933:0x31d},_0x2b11d0={_0x57524b:0x235},_0x25cf0f=_0x53865a,_0x22c3f8=_0x53865a,_0x40d464={'qsmRY':function(_0xb8ee9e,_0x28bb0a){return _0xb8ee9e(_0x28bb0a);},'TRhmx':function(_0x992829,_0x260cf0){return _0x992829!==_0x260cf0;},'dRhFP':_0x25cf0f(_0x39113d._0x3fbdcb),'EuUiE':_0x25cf0f(_0x39113d._0x5cdacb)};return new Promise(_0x4be16f=>{const _0x54c530={_0x5caf69:0x2ea,_0x4981b8:0x308,_0xa55e62:0x257},_0x2d4919=_0x25cf0f,_0x2628b3=_0x25cf0f,_0x1956aa={'MIJCI':function(_0x5d8faf,_0x1247a6){return _0x5d8faf!==_0x1247a6;},'fGYyp':_0x2d4919(_0x423db6._0x4f83e7),'LDKzt':function(_0x6b5d89,_0x562a60){return _0x6b5d89(_0x562a60);}},_0x3c39ee={};_0x3c39ee['port']=_0x2dd42e,_0x3c39ee[_0x2628b3(0x2c6)]=_0x382493;const _0x6bb0c0=net[_0x2d4919(_0x423db6._0x2c5714)+_0x2628b3(0x339)](_0x3c39ee),_0x3ad371=setTimeout(()=>{const _0x192851=_0x2d4919,_0x5e20ca=_0x2d4919;_0x6bb0c0[_0x192851(_0x2b11d0._0x57524b)](),_0x40d464[_0x192851(0x21f)](_0x4be16f,![]);},_0x349569);_0x6bb0c0['on'](_0x40d464[_0x2628b3(_0x423db6._0x40dc6d)],()=>{const _0x564f4f=_0x2628b3,_0xfe197a=_0x2628b3;_0x40d464[_0x564f4f(0x334)]('SvwWl','SvwWl')?_0x6bbe35[_0x564f4f(0x21a)]!==_0xfe197a(_0x54c530._0x5caf69)&&_0x1956aa[_0x564f4f(_0x54c530._0x4981b8)](_0xbc72b6['route'],_0x1956aa[_0x564f4f(0x254)])&&(_0x9c3938[_0xfe197a(0x2bb)][_0x564f4f(0x285)]('重定向到登录页('+_0x440193+(_0xfe197a(_0x54c530._0xa55e62)+'证')),_0x25a6ae[_0x564f4f(0x282)]=!![]):(clearTimeout(_0x3ad371),_0x6bb0c0[_0xfe197a(0x235)](),_0x4be16f(!![]));}),_0x6bb0c0['on'](_0x40d464[_0x2628b3(_0x423db6._0x33a933)],()=>{const _0x44249d=_0x2628b3;clearTimeout(_0x3ad371),_0x1956aa[_0x44249d(0x2d6)](_0x4be16f,![]);});});}function httpProbe(_0x2dbab7,_0x302a86=API_CHECK_TIMEOUT){const _0x28f492={_0x1b48e9:0x239,_0x39aab1:0x314,_0x2c92f9:0x247},_0x33c79f={_0x31f6fc:0x247,_0x115999:0x274},_0x123c54=_0x50e75f,_0x3c72b5=_0x50e75f,_0x166a0e={};_0x166a0e[_0x123c54(_0x28f492._0x1b48e9)]=_0x3c72b5(_0x28f492._0x39aab1),_0x166a0e['xUUUB']=_0x123c54(_0x28f492._0x2c92f9);const _0x2da0c7=_0x166a0e;return new Promise(_0x135e0c=>{const _0x4d6672={_0x139e81:0x31f,_0x56a271:0x32d},_0x24314d=_0x123c54,_0x5aa63c=_0x123c54,_0x35d918={};_0x35d918[_0x24314d(_0x33c79f._0x31f6fc)]=_0x302a86;const _0x3a235b=http[_0x5aa63c(_0x33c79f._0x115999)](_0x2dbab7,_0x35d918,_0x22ae05=>{const _0x416d8d=_0x5aa63c,_0x24ea19=_0x5aa63c;_0x22ae05[_0x416d8d(_0x4d6672._0x139e81)](),_0x135e0c(_0x22ae05[_0x416d8d(_0x4d6672._0x56a271)]);});_0x3a235b['on'](_0x2da0c7[_0x5aa63c(0x239)],()=>_0x135e0c(0x1*-0x3a6+0x8*0x250+-0xeda)),_0x3a235b['on'](_0x2da0c7[_0x24314d(0x22a)],()=>{const _0x5d9a0c=_0x24314d;_0x3a235b[_0x5d9a0c(0x235)](),_0x135e0c(-0x11c2+0x6*-0x2f6+0x2386);});});}async function detectRunningServers(_0x63b475){const _0xeb5d5a={_0x6122c9:0x27b,_0x2e8a63:0x1dc,_0x59b0f7:0x1dc,_0x373e62:0x1c8,_0x349761:0x1db,_0x2bdb4d:0x28e,_0x4ca08f:0x285,_0x47e714:0x1dc,_0x160b95:0x1dc,_0xab05ca:0x21b,_0x4e963c:0x292,_0x3dad7e:0x338,_0x1b585e:0x2e6},_0x3977cc={_0x317eda:0x274,_0x3f253f:0x2c7},_0x38c71c=_0x50e75f,_0x20cf20=_0x50e75f,_0x4a07ab={'mWWbP':'error','CLuIz':function(_0x405afb,_0x597b0f){return _0x405afb(_0x597b0f);},'SRQmH':'timeout','iCyBi':function(_0x2ef0ee,_0x322ca1){return _0x2ef0ee!==_0x322ca1;},'qVshL':'PLsbV','ptwoc':_0x38c71c(_0xeb5d5a._0x6122c9)},_0x49bbf6={};_0x49bbf6[_0x38c71c(_0xeb5d5a._0x2e8a63)]=null,_0x49bbf6[_0x38c71c(0x2ac)]=null;const _0xf21ea0=_0x49bbf6;if(_0x63b475&&_0x63b475[_0x38c71c(_0xeb5d5a._0x2e8a63)]){if(await isPortListening(_0x63b475[_0x38c71c(_0xeb5d5a._0x59b0f7)]['port'])){if(_0x4a07ab[_0x20cf20(_0xeb5d5a._0x373e62)](_0x20cf20(0x1db),_0x38c71c(_0xeb5d5a._0x349761))){if(_0x48edd0['type']()===_0x4a07ab[_0x38c71c(0x20e)]){const _0x4e867d=_0x5b1acb[_0x20cf20(_0xeb5d5a._0x2bdb4d)]();!_0x4a07ab['CLuIz'](_0x37a10f,_0x4e867d)&&_0x4bb35a[_0x20cf20(_0xeb5d5a._0x4ca08f)](_0x4e867d['slice'](0x1705*0x1+0x17d1+-0x2*0x176b,0x1bc1+0x140e+0x3*-0xfad));}}else{const _0x3dad35={};_0x3dad35[_0x20cf20(0x338)]=_0x63b475[_0x38c71c(_0xeb5d5a._0x47e714)]['port'],_0xf21ea0[_0x38c71c(_0xeb5d5a._0x160b95)]=_0x3dad35;}}}if(_0x63b475&&_0x63b475[_0x38c71c(0x2ac)]){if('PLsbV'===_0x4a07ab[_0x20cf20(_0xeb5d5a._0xab05ca)]){if(await isPortListening(_0x63b475[_0x38c71c(0x2ac)][_0x38c71c(0x338)])){if(_0x4a07ab[_0x38c71c(0x1c8)](_0x38c71c(0x27b),_0x4a07ab[_0x20cf20(_0xeb5d5a._0x4e963c)])){const _0x16cff6={_0x3f4bed:0x31f},_0x5bac4e={'vsFAp':function(_0x2eb528,_0x5641dd){const _0x23b790=_0x20cf20;return FepMAs[_0x23b790(0x278)](_0x2eb528,_0x5641dd);},'lRypi':_0x20cf20(0x314),'tsXcx':FepMAs[_0x20cf20(0x1ec)]};return new _0x507d46(_0x41dec9=>{const _0x597d60=_0x20cf20,_0x146167=_0x20cf20,_0x520b6d={};_0x520b6d[_0x597d60(0x247)]=_0x1a568e;const _0x45715e=_0x45c877[_0x146167(_0x3977cc._0x317eda)](_0x285e44,_0x520b6d,_0x278964=>{const _0x14bb8c=_0x146167,_0x51de1f=_0x146167;_0x278964[_0x14bb8c(_0x16cff6._0x3f4bed)](),_0x41dec9(_0x278964[_0x14bb8c(0x32d)]);});_0x45715e['on'](_0x5bac4e[_0x597d60(0x2ba)],()=>_0x41dec9(0x4c9+-0x159c*-0x1+-0x1a65)),_0x45715e['on'](_0x5bac4e[_0x597d60(_0x3977cc._0x3f253f)],()=>{const _0x228dba=_0x597d60,_0x3a21a1=_0x597d60;_0x45715e[_0x228dba(0x235)](),_0x5bac4e[_0x3a21a1(0x300)](_0x41dec9,-0x4a3+0x1612+-0x116f);});});}else{const _0x5e611a={};_0x5e611a['port']=_0x63b475[_0x38c71c(0x2ac)][_0x38c71c(_0xeb5d5a._0x3dad7e)],_0xf21ea0['frontend']=_0x5e611a;}}}else{_0x4a07ab[_0x38c71c(0x278)](_0x47c0ba,new _0x1d5247(_0x38c71c(_0xeb5d5a._0x1b585e)+_0x5c1f04['dir']));return;}}return _0xf21ea0;}function startServer(_0x1d15c8,_0x39fb30,_0x2626b3){const _0xbea302={_0x4d6963:0x267,_0x5edb76:0x213},_0x2417d0={_0x42a926:0x2be,_0x55e80c:0x22b,_0x167651:0x273,_0x1c9446:0x215,_0x54e7c3:0x32b,_0x10767f:0x1d1,_0x28c610:0x2e6,_0x2d5559:0x24b,_0x1a6d52:0x1cc,_0x533f34:0x30d,_0x3aaf1a:0x1fd,_0x509f82:0x241,_0x1825e1:0x25d,_0x51657b:0x2f2},_0x6af4d3={_0x385e91:0x2e7,_0xf2bfbf:0x223,_0x2287d1:0x1f3},_0x9059d5={_0x215842:0x30a,_0x422f61:0x242,_0x203c06:0x285,_0x3d7547:0x1df,_0x4df785:0x1d1,_0x256546:0x2df,_0x4702f8:0x243,_0x460855:0x2de,_0xf9787:0x1b4,_0x3f9ced:0x338,_0x8946e4:0x2c8},_0x4dca27={_0x564d8e:0x2e7},_0x534ba7=_0x50e75f,_0x24d77d=_0x50e75f,_0x1e1e67={'gctbF':_0x534ba7(_0xbea302._0x4d6963),'dhQUs':function(_0x5708c0,_0xcec6bd){return _0x5708c0(_0xcec6bd);},'qUprc':function(_0x5b98f0,_0x55ce0a){return _0x5b98f0===_0x55ce0a;},'xrIVn':_0x24d77d(0x2b2),'Oowjh':function(_0x59ed6d,_0x1a8bd8){return _0x59ed6d>_0x1a8bd8;},'lvsoo':'dbvum','heOdM':'pAATX','GujJp':function(_0x28170d,_0x37c43e){return _0x28170d===_0x37c43e;},'LpEAQ':function(_0x57ed79,_0x2b910c){return _0x57ed79(_0x2b910c);},'RRGpu':_0x534ba7(0x310),'RSvvE':_0x534ba7(_0xbea302._0x5edb76),'uuKAM':'pipe','lanBO':function(_0x5cca5a,_0x518bf4,_0x1d97dd){return _0x5cca5a(_0x518bf4,_0x1d97dd);},'qtnxz':_0x24d77d(0x2a1)};return new Promise((_0xab04db,_0x27a0eb)=>{const _0x5e0c68={_0x4942b5:0x2de,_0x5d07f4:0x2f9},_0x2ff321={_0x3bf63a:0x285,_0x3fdece:0x338,_0x1ba39d:0x324},_0x2c6e5d={_0xd5c478:0x22b},_0x31ae10=_0x534ba7,_0x459482=_0x534ba7,_0x44cb50={'gFfEi':function(_0x23f536,_0x441bc5){return _0x23f536(_0x441bc5);},'Frvrj':function(_0x3b4546,_0xb75a2a){return _0x3b4546/_0xb75a2a;},'KDOTI':function(_0x1776ad,_0x4a84eb){return _0x1e1e67['qUprc'](_0x1776ad,_0x4a84eb);},'NBbXz':_0x1e1e67['xrIVn'],'hDlUS':function(_0x16c5b7,_0x15d9db){return _0x1e1e67['Oowjh'](_0x16c5b7,_0x15d9db);},'UyMDb':function(_0x11ebed,_0x22d2b0){return _0x11ebed(_0x22d2b0);},'lmKuT':function(_0x173a4d,_0x55a10b){const _0x5b651b=_0x2a67;return _0x1e1e67[_0x5b651b(_0x2c6e5d._0xd5c478)](_0x173a4d,_0x55a10b);},'FJpqW':function(_0x104089,_0x497bd2){const _0x5cac98=_0x2a67;return _0x1e1e67[_0x5cac98(0x22b)](_0x104089,_0x497bd2);},'AjApI':function(_0x1af814,_0x483fd3){const _0x34378a=_0x2a67;return _0x1e1e67[_0x34378a(0x22b)](_0x1af814,_0x483fd3);}};if(_0x1e1e67['qUprc'](_0x1e1e67[_0x31ae10(0x2f0)],_0x1e1e67[_0x459482(_0x2417d0._0x42a926)])){const _0x4593a7={};_0x4593a7['paths']=[_0x137a61];const _0xc8e93=_0x56b322[_0x459482(0x327)](yfbtRC[_0x459482(0x266)],_0x4593a7),_0xfba1e1=yfbtRC[_0x459482(_0x2417d0._0x55e80c)](_0x1970d6,_0xc8e93);if(_0xfba1e1&&_0xfba1e1['chromium'])return{'chromium':_0xfba1e1['chromium'],'module':_0xfba1e1};}else{const _0x501946=path[_0x31ae10(0x327)](_0x1d15c8,_0x39fb30['dir']);if(!fs[_0x31ae10(_0x2417d0._0x167651)](_0x501946)){if(_0x1e1e67['GujJp']('DkJFw','gsJPl')){const _0x1ffbbe=_0x3b5898[_0x459482(_0x2417d0._0x1c9446)+_0x31ae10(0x1e8)](_0x31ae10(0x228))||_0x28cd69[_0x31ae10(0x215)+'tor'](_0x459482(_0x2417d0._0x54e7c3));return _0x1ffbbe?_0x1ffbbe['children'][_0x31ae10(_0x2417d0._0x10767f)]:-0x1*0x206f+-0x23c6+-0x1*-0x4435;}else{_0x1e1e67[_0x31ae10(0x1e0)](_0x27a0eb,new Error(_0x459482(_0x2417d0._0x28c610)+_0x39fb30[_0x459482(_0x2417d0._0x2d5559)]));return;}}if(_0x39fb30['cmd'][_0x459482(_0x2417d0._0x1a6d52)](_0x1e1e67['RRGpu'])&&!fs['existsSync'](path['join'](_0x501946,'node_modul'+'es'))){_0x27a0eb(new Error(_0x39fb30[_0x459482(0x24b)]+(_0x459482(0x2d3)+'les\x20不存在\x20—\x20'+_0x459482(_0x2417d0._0x533f34)+_0x459482(0x1d4))));return;}const [_0x45d245,..._0x4e59ed]=_0x39fb30['cmd'][_0x459482(0x22c)](/\s+/),_0x1e9b3a={...process.env};_0x1e9b3a[_0x31ae10(0x2ae)+'R']='0',_0x1e9b3a['CI']='1';const _0x9fefb7={};_0x9fefb7[_0x459482(0x23a)]=_0x501946,_0x9fefb7['stdio']=[_0x1e1e67[_0x31ae10(_0x2417d0._0x3aaf1a)],_0x1e1e67['uuKAM'],_0x1e1e67[_0x459482(_0x2417d0._0x509f82)]],_0x9fefb7[_0x459482(0x2ed)]=!![],_0x9fefb7['env']=_0x1e9b3a;const _0x384c06=spawn(_0x45d245,_0x4e59ed,_0x9fefb7),_0x4e68a5=[],_0x1f5f98=[];let _0x4ed47b=![];const _0x226fce=_0x1e1e67['lanBO'](setTimeout,()=>{const _0x411c37=_0x459482,_0x340542=_0x459482;if(_0x4ed47b)return;_0x4ed47b=!![];const _0x3af248=[..._0x1f5f98,..._0x4e68a5][_0x411c37(_0x4dca27._0x564d8e)](-(-0x164*-0xf+-0x8b8+-0xc1c))[_0x340542(0x223)]('\x0a');_0x44cb50[_0x411c37(0x324)](_0x27a0eb,new Error(_0x340542(0x2a4)+Math[_0x411c37(0x2d1)](_0x44cb50['Frvrj'](_0x2626b3,0x163a+-0x27*0x67+-0x2a1))+_0x340542(0x270)+_0x39fb30[_0x340542(0x26b)]+'\x0a最后输出:\x0a'+_0x3af248));},_0x2626b3),_0x5b93c5=_0x41d237=>{const _0x2602c5=_0x459482,_0x3f765d=_0x459482;if(_0x44cb50[_0x2602c5(0x290)](_0x44cb50[_0x2602c5(0x286)],_0x3f765d(_0x9059d5._0x215842))){const _0x1d30c1={};_0x1d30c1[_0x3f765d(0x21a)]='/',_0x1d30c1[_0x3f765d(0x27c)]=_0x3f765d(0x2cb),_0x563515[_0x3f765d(_0x9059d5._0x422f61)](_0x1d30c1);}else{const _0x40880e=_0x41d237['toString']();_0x4e68a5[_0x2602c5(_0x9059d5._0x203c06)](_0x40880e);if(_0x44cb50[_0x3f765d(_0x9059d5._0x3d7547)](_0x4e68a5[_0x2602c5(_0x9059d5._0x4df785)],-0x33*-0x16+-0x5a3*0x3+-0xcb9*-0x1))_0x4e68a5[_0x2602c5(0x2db)]();if(!_0x4ed47b&&_0x39fb30[_0x2602c5(_0x9059d5._0x256546)+'rn'][_0x3f765d(_0x9059d5._0x4702f8)](_0x40880e)){_0x4ed47b=!![],_0x44cb50[_0x3f765d(_0x9059d5._0x460855)](clearTimeout,_0x226fce);const _0x526991={};_0x526991[_0x3f765d(_0x9059d5._0xf9787)]=_0x384c06,_0x526991[_0x3f765d(0x338)]=_0x39fb30[_0x3f765d(_0x9059d5._0x3f9ced)],_0x44cb50[_0x3f765d(_0x9059d5._0x8946e4)](_0xab04db,_0x526991);}}};_0x384c06[_0x459482(_0x2417d0._0x1825e1)]['on'](_0x31ae10(_0x2417d0._0x51657b),_0x5b93c5),_0x384c06['stderr']['on'](_0x31ae10(0x2f2),_0x3c61a4=>{const _0x279d70=_0x459482,_0x2cf5c3=_0x459482;if(_0x279d70(0x225)===_0x2cf5c3(0x225)){const _0x15e24f=_0x3c61a4['toString']();_0x1f5f98[_0x279d70(_0x2ff321._0x3bf63a)](_0x15e24f);if(_0x1f5f98[_0x279d70(0x1d1)]>-0x1*-0xae2+-0x205e+-0x22b*-0xa)_0x1f5f98[_0x279d70(0x2db)]();if(!_0x4ed47b&&_0x39fb30[_0x2cf5c3(0x2df)+'rn']['test'](_0x15e24f)){_0x4ed47b=!![],_0x44cb50['FJpqW'](clearTimeout,_0x226fce);const _0x4221f4={};_0x4221f4[_0x279d70(0x1b4)]=_0x384c06,_0x4221f4[_0x2cf5c3(_0x2ff321._0x3fdece)]=_0x39fb30[_0x279d70(_0x2ff321._0x3fdece)],_0x44cb50[_0x279d70(_0x2ff321._0x1ba39d)](_0xab04db,_0x4221f4);}}else{const _0x4c63f2=_0x3bdbbc[_0x2cf5c3(0x28e)]();!_0x406d09(_0x4c63f2)&&_0x18872b['push'](_0x4c63f2['slice'](0x1e57+-0x22f5+0x49e,0x150a+-0x281+-0x11c1));}}),_0x384c06['on']('error',_0x39727a=>{const _0x39be3f=_0x31ae10,_0x2c676f=_0x31ae10;if(_0x4ed47b)return;_0x4ed47b=!![],_0x44cb50[_0x39be3f(_0x5e0c68._0x4942b5)](clearTimeout,_0x226fce),_0x44cb50['AjApI'](_0x27a0eb,new Error(_0x2c676f(_0x5e0c68._0x5d07f4)+_0x39727a['message']));}),_0x384c06['on'](_0x1e1e67[_0x31ae10(0x331)],_0x4b5305=>{const _0x39faaf=_0x31ae10,_0x1fc074=_0x31ae10;if(_0x4ed47b)return;_0x4ed47b=!![],_0x44cb50['AjApI'](clearTimeout,_0x226fce);const _0x37b9f4=[..._0x1f5f98,..._0x4e68a5][_0x39faaf(_0x6af4d3._0x385e91)](-(-0x1867+-0x1479+0x2ce8))[_0x1fc074(_0x6af4d3._0xf2bfbf)]('\x0a');_0x44cb50[_0x1fc074(0x2de)](_0x27a0eb,new Error('服务器进程退出(co'+_0x39faaf(0x29e)+_0x4b5305+_0x1fc074(_0x6af4d3._0x2287d1)+_0x39fb30[_0x39faaf(0x26b)]+'\x0a'+_0x37b9f4));});}});}function killProcess(_0xb73d2d){const _0x21db41={_0x193468:0x318,_0xe77759:0x1be,_0x27cc7a:0x28a,_0x964e1b:0x223,_0x504445:0x315,_0x2fa2bb:0x1f4,_0x2872a5:0x2fe,_0xe79fc5:0x212},_0x3eb34b={_0x33af31:0x214},_0x4a073e=_0x50e75f,_0x43976a=_0x50e75f,_0x498482={'QQNXm':'pnbxX','gVhCJ':_0x4a073e(_0x21db41._0x193468),'uQUmH':function(_0x5e5ebc,_0x100e63,_0x544a14){return _0x5e5ebc(_0x100e63,_0x544a14);}};if(!_0xb73d2d||_0xb73d2d[_0x4a073e(0x1fe)])return;try{if(_0xb73d2d['pid']){if(_0x498482[_0x4a073e(0x302)]!==_0x43976a(_0x21db41._0xe77759))_0x32b922['failures'][_0x4a073e(0x285)](_0x697e92[_0x43976a(0x1d1)]+(_0x43976a(0x22d)+_0x43976a(_0x21db41._0x27cc7a))+_0x5e66cd[_0x4a073e(0x2e7)](-0x226a+0x9*0x335+0x58d*0x1,-0x3*-0x78+0x26b8+0xa3*-0x3f)[_0x4a073e(_0x21db41._0x964e1b)](';\x20'));else try{process[_0x43976a(_0x21db41._0x504445)](-_0xb73d2d[_0x43976a(_0x21db41._0x2fa2bb)],_0x498482[_0x43976a(0x2fe)]);}catch{}}_0xb73d2d['kill'](_0x498482[_0x43976a(_0x21db41._0x2872a5)]),_0x498482[_0x43976a(_0x21db41._0xe79fc5)](setTimeout,()=>{const _0x55f622=_0x4a073e;try{_0xb73d2d['kill'](_0x55f622(_0x3eb34b._0x33af31));}catch{}},-0x15fc+0x2474+-0x1aa*0x4);}catch{}}function extractSpecRoutes(_0x9bc763){const _0x3ae45e={_0x17bb01:0x208,_0x2236f7:0x277,_0x471218:0x2ad,_0x53befb:0x2c0,_0x2e049c:0x2cb,_0x4f5496:0x2a6,_0x595e22:0x22c,_0x206410:0x2d5,_0x578b8c:0x322,_0x4bf491:0x2ee,_0x17f10c:0x2f7,_0x3d0b29:0x27c,_0x483199:0x230,_0x5a18b7:0x2bc,_0x473e83:0x285,_0x3aea1e:0x1f7,_0x59a314:0x1ed,_0x2eaed2:0x1ee,_0x49afbf:0x22e,_0x1b535e:0x2b5,_0x1c3fb2:0x28c,_0x38ce39:0x297,_0x260d93:0x1fa,_0x3cbe03:0x243,_0x58d5ec:0x338,_0x159301:0x22e,_0x3f18d2:0x29b,_0x36bcbe:0x27c,_0x5bf41b:0x279,_0x1fe7f9:0x242,_0x27608e:0x20a,_0x1dba85:0x29f},_0x2fbe53=_0x53865a,_0x481928=_0x53865a,_0x18ec42={'ydpgf':function(_0x18adef,_0x2102fd){return _0x18adef>_0x2102fd;},'BBoGk':function(_0x1954b5,_0x567402){return _0x1954b5(_0x567402);},'yErRv':_0x2fbe53(_0x3ae45e._0x17bb01),'emEcZ':function(_0x2507f9,_0x277267){return _0x2507f9+_0x277267;},'cihBJ':_0x481928(_0x3ae45e._0x2236f7),'BlryE':function(_0x399187,_0x31ead5){return _0x399187!==_0x31ead5;},'GXNTO':_0x2fbe53(0x305),'nOvcX':'wJNFt','vXQBZ':_0x481928(_0x3ae45e._0x471218),'oReNI':function(_0x4de34c,_0x3a96fc){return _0x4de34c===_0x3a96fc;},'JuMxR':_0x2fbe53(_0x3ae45e._0x53befb),'AHBjs':'yYXGN','zzmqK':_0x2fbe53(_0x3ae45e._0x2e049c)},_0x4a1475=[],_0x554308=[],_0x59de1c=new Set(),_0x199b80=/(?:GET|POST|PUT|DELETE|PATCH)\s+(\/api\/[^\s|,))]+)/g;let _0xfae6c5;while((_0xfae6c5=_0x199b80[_0x481928(0x1ed)](_0x9bc763))!==null){const _0x14b720=_0xfae6c5[-0x1055+0xa15+0x641]['replace'](/\{[^}]+\}/g,'1');!_0x59de1c['has'](_0x14b720)&&(_0x2fbe53(0x234)!==_0x18ec42[_0x481928(_0x3ae45e._0x4f5496)]?(_0x59de1c['add'](_0x14b720),_0x554308[_0x2fbe53(0x285)]({'method':_0xfae6c5[-0xf3b+-0x580+0x14bb][_0x2fbe53(_0x3ae45e._0x595e22)](/\s/)[-0x819+-0x4f3+-0x686*-0x2],'path':_0x14b720})):_0x69f01f[_0x481928(_0x3ae45e._0x206410)][_0x481928(0x285)]('检测到框架错误遮罩('+_0x481928(0x1f0)+_0x481928(0x332)+_0x481928(_0x3ae45e._0x578b8c)+'ing\x20Boot\x20W'+_0x2fbe53(_0x3ae45e._0x4bf491)+_0x481928(0x21d)));}const _0x360e03=/(?:路由|route|path|页面路径)[::]\s*([\/\w\-:]+)/gi;while((_0xfae6c5=_0x360e03['exec'](_0x9bc763))!==null){const _0x45e294=_0xfae6c5[-0x832+-0x34e+0x5f*0x1f];if(!_0x59de1c['has'](_0x18ec42[_0x2fbe53(_0x3ae45e._0x17f10c)](_0x481928(0x277),_0x45e294))){_0x59de1c[_0x481928(0x28d)](_0x18ec42['cihBJ']+_0x45e294);const _0x409178={};_0x409178['route']=_0x45e294,_0x409178[_0x481928(_0x3ae45e._0x3d0b29)]=_0x481928(_0x3ae45e._0x483199),_0x4a1475['push'](_0x409178);}}const _0x45086b=/\|\s*(\/[a-zA-Z][\w\-\/:]*)\s*\|/g;while(_0x18ec42[_0x481928(_0x3ae45e._0x5a18b7)](_0xfae6c5=_0x45086b[_0x481928(0x1ed)](_0x9bc763),null)){if(_0x18ec42[_0x481928(0x2d4)]!==_0x18ec42['nOvcX']){const _0x3c4150=_0xfae6c5[0x16df+-0x1a77+0x399][_0x2fbe53(0x32c)](/:[a-zA-Z]+/g,'1');if(!_0x59de1c[_0x2fbe53(0x1ee)]('page:'+_0x3c4150)){_0x59de1c['add'](_0x18ec42['cihBJ']+_0x3c4150);const _0x5e0b7a={};_0x5e0b7a[_0x481928(0x21a)]=_0x3c4150,_0x5e0b7a['specRef']=_0x2fbe53(0x25b),_0x4a1475[_0x2fbe53(_0x3ae45e._0x473e83)](_0x5e0b7a);}}else _0x54bd0d+=_0x4b5fc0[_0x481928(_0x3ae45e._0x3aea1e)+'nc'](_0x46da0f,_0x481928(0x291))+'\x0a';}const _0x2f6db0=/(F\d{2,})[^|]*?\|[^|]*?(列表页?|编辑页?|详情页?|新增页?|表单页?|管理页?|首页|仪表盘|Dashboard)/gi;while((_0xfae6c5=_0x2f6db0[_0x481928(_0x3ae45e._0x59a314)](_0x9bc763))!==null){const _0x4ddffd=_0xfae6c5[0xf83+-0x189+0xdf9*-0x1],_0x1cb084=_0xfae6c5[0x1efd+-0x1fa4+0xa9];if(!_0x59de1c[_0x2fbe53(_0x3ae45e._0x2eaed2)](_0x18ec42[_0x481928(_0x3ae45e._0x49afbf)]+_0x4ddffd)){if(_0x18ec42[_0x2fbe53(0x2a2)](_0x18ec42[_0x481928(_0x3ae45e._0x1b535e)],_0x18ec42[_0x481928(_0x3ae45e._0x1c3fb2)])){const _0x397e54=_0x3f6538[_0x2fbe53(_0x3ae45e._0x38ce39)]();_0x5d727f[_0x2fbe53(_0x3ae45e._0x473e83)](_0x397e54);if(dbllqC[_0x2fbe53(_0x3ae45e._0x260d93)](_0x3b6173[_0x2fbe53(0x1d1)],0x2*-0x943+0xf6b*0x1+0x34d))_0x4c6b13['shift']();if(!_0x584a7f&&_0x49059c[_0x2fbe53(0x2df)+'rn'][_0x2fbe53(_0x3ae45e._0x3cbe03)](_0x397e54)){_0x315a2f=!![],dbllqC['BBoGk'](_0x4ce8f6,_0x44cc4a);const _0x1ed50e={};_0x1ed50e['proc']=_0x45ee9c,_0x1ed50e[_0x481928(_0x3ae45e._0x58d5ec)]=_0x3cbc04['port'],_0x10245b(_0x1ed50e);}}else{_0x59de1c['add'](_0x18ec42[_0x2fbe53(_0x3ae45e._0x159301)]+_0x4ddffd);const _0x3a8dc5={};_0x3a8dc5['route']=null,_0x3a8dc5[_0x2fbe53(0x27c)]=_0x4ddffd+'\x20'+_0x1cb084,_0x3a8dc5[_0x481928(0x320)+_0x2fbe53(_0x3ae45e._0x3f18d2)]=!![],_0x4a1475['push'](_0x3a8dc5);}}}if(!_0x4a1475[_0x2fbe53(0x262)](_0x38b2b1=>_0x38b2b1[_0x2fbe53(0x21a)]==='/')){const _0x25af07={};_0x25af07[_0x481928(0x21a)]='/',_0x25af07[_0x2fbe53(_0x3ae45e._0x36bcbe)]=_0x18ec42[_0x2fbe53(_0x3ae45e._0x5bf41b)],_0x4a1475[_0x481928(_0x3ae45e._0x1fe7f9)](_0x25af07);}const _0x5a0ceb={};return _0x5a0ceb[_0x481928(_0x3ae45e._0x27608e)]=_0x4a1475,_0x5a0ceb[_0x2fbe53(_0x3ae45e._0x1dba85)]=_0x554308,_0x5a0ceb;}function _0x5bd9(){const _0x30afe7=['y2HPBgrdB3vUDa','Dg9Y','A3DlsLy','t0jAqK8','CMXHEq','u1jrBuG','zxHLyW','AgfZ','EuH6z2C','vML0zs9szwfJDa','C3bYAw5NlwjVBW','y3jLyxrLq29UBG','77YjoIa','CgLK','kcGOlISPkYKRkq','wuTHCfi','CMvHzezPBgvtEq','zxGUANm','DgvUzcK','EwrWz2y','qKXNue4','CMvXDwvZDgzHAq','uLn2DKu','A2LSBgvK','Cg9TlNHTBa','vvDeB2W','tK92CfC','D2fPDezVCLrPBq','DhjVB3rDicSGza','Cgf0Ahm','BMfTzq','BwvZC2fNzq','zgv0zwn0','uLP5Avu','zgv2rgvWzw5Kzq','CgfNzxm','uvrNEuy','Aw5JBhvKzxm','zMLSDgvY','BvDxyLa','u0vYCM9YCW','DMz2uMi','sfbsBwy','DvfvBuG','AwDUB3jL','u0Lhs0Lmta','CxvLCNLtzwXLyW','tLn5BKy','q2fUBM90ieDfva','svrvzxy','5Rwp6kEi5zMO5Qoa5P+L5BYc5BI4oIa','CM91Dgu','CvzZAeW','s0rzy00','rxjYB3lVViK','swzxzNG','CxnTuLK','vgLTzw91DevYCG','y2XPzw50lw92zq','zw91Da','AM9PBG','uMfPA1G','sMjwwKq','lwnVCMu','5yMn56UV5zcV5yQO5AsX6lsLoIa','i2fWCa','zgjVEa','Efvvvui','zgHrvxm','C3bSAxq','ios4QIbbueKG6k+35Rgc5AsX','DLHrqLO','yxL3CMLNAhqGAq','6lEV55sX5AoW5PIo','C++8Id4GmtbZ77Yj','zxLxuw4','Aw5UzxjuzxH0','t2zMDve','zgvZDhjVEq','Dw50','EMznugG','C2j4u0K','uwDtq3K','y3DK','lJaUmc4XoG','w2rHDgeTCMvHyW','rKXNEuS','BMqTzgLYpIaMjG','y29UBMvJDa','CI1Yzw5KzxjLCG','Dxvlqu0','Dw5ZAgLMDa','DgvZDa','5Qc555UU5B2v5zci5l2tkq','55M95Bgp77YAi2fWCc8JCG','y29UC29SzuvYCG','DgLTzw91Da','z290BW','6Ag16z2I5yQG6l296icx5PE2ia','uMvmCfu','zgLY','mtuWnZi4AwnuquzP','DxbKzhK','CgfJA2fNzs5QCW','CLDrrxe','mZe4mdCZA0TWCu1v','ios4QUwTKowfG+E0OooaGq','DvPvB0W','BxrSBNi','zKDzExa','nJC1ndG3og9VCMfXtq','yNH3Exm','77Yj4OcuioMHTEMDOUwpR+I+VUs9HUMCGoIUPa','uNbeq1C','5Qoa5Rwl5yIW5Qgg5P626zsz6k+V6ygU572P77Yi','zxyTC2vYDMvYlq','6lEV55sX6kgO','CM91DgvYl2LUza','C3rKB3v0','BNn0ywXSignOCG','iowtJEw6La','zwHnyMO','5PYn5yQH5zMO6l+B56Il6yca5yE677Yiy28','C29Tzq','Ewnss0G','ExDYAwDODa','v2LJyM4','z2n0yKy','CgXHExDYAwDODa','C2TPCfjLyxnVBG','Ahr0CdOVlZeYnW','A0jctgy','y21K','DNvL','DMLLD3bVCNq','ios4QUACQUAnLEIoTYbkuYdLVii','v1f6wgW','C++8ItOG','CgfYC2u','BwjksKC','zxHPC3rZu3LUyW','z2v0','yxbPuMvZDwX0CW','zfLxrgW','CgfNztO','q0X1sxO','ENPTCuS','CMvZB2X2zvjVDq','ChbXBeu','C3bLy1jLzG','AcGUkIK','B2zPBgxVViNJGilKVB/NLkGG','CM91DgvYiowJSoAyJG','zw5LCG','tLbjt1G','yxv0AeDHDgvK','rwHpDfu','6z2I5PEG5PAh5PYS5yAf5A65','ChvZAa','tKjIwhO','sfruuca','lwvYCM9Y','uLHNDMK','6lsLoIa','yxbWBhK','quHcANm','ywrK','Dgv4Da','lZPWyxrOtwf0yW','s0rpveK','DxrMltG','Chr3B2m','zxP0EKi','Bwv0Ag9K','v3fMCKW','t1L0veO','Dg9tDhjPBMC','ywHut2K','AgvHzgXLC3m','rvP6ywK','CKXVB2T1Ca','Cgf0Aa','CMvZCg9UC2u','zguG','yxbPCW','C3rHDhvZ','zxHPDa','B1jLtKK','5A+86iIQ6lAf5PE277Yi','5PYn5yQH5zMO5zcV5yQO6lAf5PE277Yi','r3Dpr0m','EuvYuNy','wNLhBvm','zfvjwvi','revWExG','vhPnENy','uKPywxe','zNjVBNrLBMq','zNa6','rK9sq0vFq09mtW','y2HYB21PDw0','zMnMwM0','CgfNzwvYCM9Y','seXUD2i','ywv0BKO','ioAjI+wkQoAmH+wUMG','sNvnEfi','y29UC3rYDwn0BW','DxjS','shrpzgq','l2f1DgG','Bfj5CgK','D2fYBMLUz3m','qMXYEuu','tMzcAM0','Agvpze0','C2vwyxy','DfriEuS','nxH4oIa','ls1IyxnLlxvYBa','A3Pqwu4','BM9Ar2S','icyMig5WEcbWBa','Ag9ZDa','Dhnyy3G','Bg1lDvq','ne5IvLbLAG','DcaRihz1ztmGka','5Qc56lEV55sX','zMfPBhvYzq','lw92zxjSyxK','yxbWl3nYyW','BhLVwu4','zNjVBNrLBMqVCW','CM91BMq','vhbVDg8','l25VzgvFBw9KDq','r1Hove8','zMfPBhvYzxm','terlENq','5Qc555UU5B2vicSGzNjVBG','BwfW','venlzLm','DhjPBq','C2HPzNq','BMLUzW','yxjNCW','vxLnrgi','CMvHzhLqyxr0zq','yM9KEq','ios4QIbbueKG6l+u5zUEia','DfPUr3a','A3DqwMq','v3nWEwe','wuHMAu8','55UU5B2v5lIn5A2y5zYOoIa','C2XPy2u','BNbTihj1BIbKzq','mZKZmJq5nwzwzfrPrG','l2XVz2LU','zgvWzw5Kzw5JAq','B3jZ','C2HLBgW','AgL0zwXHyMvSia','zKnztve','BhzZB28','z2zSsvi','zgf0yq','Ahr0Ca','vgfItwW','Bg9HzfrPBwvnCW','t1v1CKm','zw1fy1O','CMvZB2X2zvbSyq','5PYn5yQH5zMO5zcV5yQO5AsX6lsLoIa','zxGUDhm','u2rQD2O','Dw5RBM93BG','Cw5eyNO','z1zOq0O','DML0zq','DNngqxa','AMvJDa','uvfowg0','vvfHuey','C0TQzhy','EKPNuu8','BwTHB00','zxzHBhvHDgu','tuLkq0K','y2HPBgrYzw4','C0PKAwG','rKL4Aeu','BgvK','6k+35ywi6l+q6kgmig5WBsbP','mtKZoeDXDhbhqq','mtiZote0mMX3sM9JAa','BNbT','whrPr2W','qw1JDhe','D2LKDgG','zxjYB3i','A2LSBa','yxzHAwXHyMXL','BMnPzxm','u0Lhvevstq','whvPywu','yuX3AvO','y29UC29Szq','zfjOrLa','rxvvAuu','CgfZCW','CMvZDw1L','BMvLzhnsB3v0zq','DgvZrNjVBvbYBW','CMXHEsdMIjyGu3bY','rML3v1m','z0zMrwK','wwTrz3m','lNz1zs1Zzxj2zq','CMvZB2X2zq','5BI4oIa','5PEG5Rov6iEQ5yQO5Qoa5Rwl5OQa5PYV5Qci77Yi','vgHLDMq','i3jVB3q','CMvWBgfJzq','C3rHDhvZq29Kzq','ywXYzwfKEvj1BG','ls1KAxnHyMXLlq','B21PDw0','CxrUEhO','igvYCM9Yig92zq','55UU5Qch6Ag555UU5PYQ5A6j6kofifbS','vfjOBxG','C2vHCMnO','sLDyq0u','mtiWodjOBLDmD1u','Cg9YDa','zwn0Aw9U','Be1sBLC','zxHWB3j0CW','ChjVyW','CNjQEhq','CM91DgvYlNrZ','z2Pttha','CNvUrtjfu21VAW','tfnyvu8','Be1rufy','BxzUihnWCMLUzW','zxnZ','lwjVB3q6CNvUia','Cg5IEfG','v0jNwvm','BMv0D29YA2LKBa','Aw5ZDgfSBeHPBG','iNbVC2L0Aw9UoG','y2XVC2u','BM93','A3zguK8','BMv3ugfNzq','u1L2tMq','Aun5qMK','yxL3CMLNAhq','C3rHCNr1CevYCG','55Ar5lY855M95Bgp77YAyM9KEsa','C3rHCNrZv2L0Aa','sMXywhe','AgvPz2H0','5PEG5Rov56gU5A6A5yMn56UVifvsta','mti3lJaUmc4X','BgvUz3rO','zxzLCNK','C2vYDMvYCW','BNn0ywXS','DgL0Bgu','mJmYnZa2nfHIsvLVsG','l2fWAs8','tMDpsM8','zxjYB3juzxH0','i3DLyNbHy2STza','t3n6D2W','yMfJA2vUza','AwDUB3jLsfruua','rMjeswK','AerSvvm','thbfqve','DML0zs1LCNjVCG','6yEn5A6A5zcr5yIW55M75B2v6Ag177Yi','kc4Qkq','q2Dly0W','y2HPBgrFChjVyW','rMfwuwe'];_0x5bd9=function(){return _0x30afe7;};return _0x5bd9();}function resolveRoutesFromProject(_0x2db59d,_0x1e8930){const _0x19cc34={_0x4ee0ed:0x2f4,_0x3316e4:0x1f8,_0x197e83:0x291,_0x31d978:0x1e3,_0x2a2d55:0x1b9,_0x5c528f:0x27f,_0x5960b8:0x20d,_0x1bf9e2:0x311,_0xa15388:0x2fa,_0x460050:0x223,_0x54898d:0x285,_0x113b4c:0x2c4,_0x5a1d63:0x27d,_0x47ff12:0x298,_0x342915:0x285,_0x21f8a9:0x2d8,_0x29de34:0x32c,_0xc50d6e:0x28d,_0x4dc214:0x323,_0x1d521d:0x20a,_0x4ef6e6:0x285},_0x2eb6b=_0x53865a,_0x249581=_0x53865a,_0x46fd09={};_0x46fd09['vvuDp']='SIGKILL',_0x46fd09['lMQPV']=_0x2eb6b(0x2d0)+'rc',_0x46fd09[_0x249581(_0x19cc34._0x4ee0ed)]='src',_0x46fd09['yHzgg']=_0x2eb6b(0x25c)+_0x249581(_0x19cc34._0x3316e4),_0x46fd09['eztzB']=_0x249581(_0x19cc34._0x197e83),_0x46fd09[_0x2eb6b(0x2c4)]=function(_0x42ceac,_0x30488e){return _0x42ceac!==_0x30488e;},_0x46fd09[_0x2eb6b(0x298)]='/:catchAll'+_0x2eb6b(_0x19cc34._0x31d978),_0x46fd09['YkQgs']=function(_0x318c27,_0x387112){return _0x318c27!==_0x387112;},_0x46fd09[_0x249581(_0x19cc34._0x2a2d55)]='GLEwm',_0x46fd09['FiwWS']=_0x2eb6b(_0x19cc34._0x5c528f);const _0x23ce03=_0x46fd09,_0x33ad11=[_0x23ce03[_0x249581(0x1ba)],_0x2eb6b(0x2ce),_0x23ce03[_0x2eb6b(0x2f4)]][_0x249581(_0x19cc34._0x5960b8)](_0x5b0f53=>fs[_0x2eb6b(0x273)](path[_0x249581(0x223)](_0x2db59d,_0x5b0f53)));let _0x1267c6='';for(const _0x3c9153 of _0x33ad11){if(_0x249581(_0x19cc34._0x1bf9e2)===_0x2eb6b(_0x19cc34._0x1bf9e2))for(const _0x506ecd of[_0x249581(0x25c)+_0x2eb6b(_0x19cc34._0xa15388),_0x23ce03[_0x249581(0x1ef)],_0x2eb6b(0x1b6),'router.js']){const _0x53fafd=path[_0x2eb6b(_0x19cc34._0x460050)](_0x2db59d,_0x3c9153,_0x506ecd);fs['existsSync'](_0x53fafd)&&(_0x1267c6+=fs[_0x249581(0x1f7)+'nc'](_0x53fafd,_0x23ce03[_0x2eb6b(0x293)])+'\x0a');}else _0x44cb9d[_0x2eb6b(_0x19cc34._0x54898d)](_0x3437c5);}if(!_0x1267c6)return _0x1e8930;const _0x5757ff=[],_0x2341c8=/path:\s*['"]([^'"]+)['"]/g;let _0x41d602;while(_0x23ce03[_0x2eb6b(_0x19cc34._0x113b4c)](_0x41d602=_0x2341c8[_0x2eb6b(0x1ed)](_0x1267c6),null)){const _0x3e09ae=_0x41d602[0x7*-0x92+-0x3d1+0x7d0];_0x23ce03[_0x2eb6b(0x2c4)](_0x3e09ae,'*')&&_0x3e09ae!==_0x2eb6b(0x28f)+_0x249581(_0x19cc34._0x5a1d63)&&_0x23ce03['noZGk'](_0x3e09ae,_0x23ce03[_0x2eb6b(_0x19cc34._0x47ff12)])&&_0x5757ff[_0x249581(_0x19cc34._0x342915)](_0x3e09ae);}const _0x5ccea9=new Set(_0x1e8930['pages']['filter'](_0x6b60f2=>_0x6b60f2[_0x2eb6b(0x21a)])[_0x2eb6b(_0x19cc34._0x21f8a9)](_0x2006bd=>_0x2006bd[_0x2eb6b(0x21a)]));for(const _0x2bed37 of _0x5757ff){if(_0x23ce03[_0x2eb6b(0x325)]('GLEwm',_0x23ce03[_0x249581(0x1b9)]))try{_0x40a7f7[_0x249581(0x315)](OtQwsj['vvuDp']);}catch{}else{const _0x25a97b=_0x2bed37[_0x2eb6b(_0x19cc34._0x29de34)](/:[\w]+/g,'1');if(!_0x5ccea9[_0x249581(0x1ee)](_0x25a97b)&&!_0x5ccea9['has'](_0x2bed37)){_0x5ccea9[_0x249581(_0x19cc34._0xc50d6e)](_0x25a97b);const _0x50265a={};_0x50265a[_0x249581(0x21a)]=_0x25a97b,_0x50265a[_0x2eb6b(0x27c)]=_0x23ce03[_0x2eb6b(_0x19cc34._0x4dc214)],_0x1e8930[_0x2eb6b(_0x19cc34._0x1d521d)][_0x249581(_0x19cc34._0x4ef6e6)](_0x50265a);}}}return _0x1e8930['pages']=_0x1e8930[_0x2eb6b(0x20a)]['filter'](_0x2c7d0f=>!_0x2c7d0f[_0x2eb6b(0x320)+_0x249581(0x29b)]),_0x1e8930;}function isBenignConsoleMsg(_0x1e6ef1){const _0x4ff126={_0x9c3ee8:0x262},_0x35123b=_0x50e75f,_0xc46bb0=_0x50e75f;return BENIGN_CONSOLE_PATTERNS[_0x35123b(_0x4ff126._0x9c3ee8)](_0x48c20f=>_0x48c20f[_0x35123b(0x243)](_0x1e6ef1));}async function checkPage(_0x3e3914,_0x5b3337,_0x3fc69a,_0x5dc193){const _0x1f3234={_0x2713e1:0x26f,_0x24e060:0x314,_0x12e7fd:0x1d8,_0x25ff04:0x217,_0xd7ee35:0x2f1,_0x578790:0x1c0,_0x551d77:0x2ea,_0xa30d5e:0x284,_0x2100f8:0x312,_0xae81e7:0x21d,_0xf748e5:0x220,_0x56dbe9:0x2fd,_0x4d4df2:0x31e,_0x590891:0x2f5,_0x2dcf1a:0x30c,_0x1e881b:0x21a,_0x4eec79:0x1c4,_0xf7bf7d:0x247,_0x18411a:0x248,_0x5a256c:0x2f5,_0x212abc:0x202,_0x186fcc:0x20c,_0x2ea2a7:0x281,_0x3b2de4:0x285,_0x2e9bb2:0x25f,_0x367afa:0x236,_0x5b67c7:0x28e,_0x31f44d:0x1d1,_0x5853a7:0x285,_0x395598:0x1cb,_0x19cea3:0x285,_0x5e8245:0x296,_0x3d49ed:0x20a,_0x3e9838:0x246,_0x437ea8:0x2ec,_0x3971ed:0x227,_0x19bb6d:0x206,_0xd5448e:0x20c,_0x4a67ec:0x306,_0x1e2470:0x2b9,_0x401c6a:0x2bb,_0x54c172:0x282,_0x47d41e:0x2d5,_0x54324e:0x26e,_0xb84680:0x328,_0x1eeda0:0x2e7,_0x398e93:0x223,_0x1d9e38:0x1d1,_0x1d4e68:0x22d,_0x5691d0:0x2e7,_0x58068d:0x1d1,_0x5759c9:0x2e1,_0x4271ef:0x1f6,_0xf8c0ef:0x2d5,_0x4a649d:0x285,_0x24c893:0x256,_0x3c0584:0x231,_0x53af4e:0x205,_0x23e0ec:0x1de,_0x31e107:0x2a3,_0x264341:0x1ee,_0x1e0820:0x2cf,_0x44e8f6:0x320,_0xac9494:0x285,_0x1865d6:0x285,_0x2c8a28:0x206,_0x9c12f9:0x30c},_0x39a18f={_0x103833:0x265,_0x4942be:0x260,_0x51d892:0x2b0,_0xa125ec:0x1e8,_0x35db01:0x1da,_0x1f38f4:0x25a,_0x19808a:0x1e8,_0x47edcc:0x23c,_0xcb8bc1:0x203,_0x34e372:0x1c2,_0x7af3ce:0x215,_0x43417c:0x233,_0x543032:0x2a9,_0x1a0a97:0x24f},_0x19eded={_0x13dd05:0x2da,_0x1ae063:0x2e7,_0x422d31:0x228,_0x4c3cb7:0x215},_0x2ca1cf={_0x2ef40b:0x20c,_0x2bcb6b:0x2d9,_0x349f59:0x2a0,_0x4b7e3f:0x1e6,_0x38fd61:0x2a0,_0x171742:0x2b7},_0x3ef674={_0x721309:0x2b7,_0x1e7486:0x20c,_0x16fe0c:0x1d7,_0x114b94:0x237,_0x2d6342:0x1ee,_0x163250:0x22c,_0x2197fb:0x2cc,_0x370e37:0x294,_0x1a3483:0x1d9},_0xa146ea={_0x82ad33:0x216,_0x394583:0x1ee,_0x3afb83:0x21a,_0x21c7eb:0x276,_0x5d613d:0x285,_0x20016a:0x23d,_0x4da323:0x28e,_0xa8c6d7:0x272},_0xa2ea50=_0x50e75f,_0x236be5=_0x50e75f,_0x2d0e2e={'dYWDl':'router\x20声明','ebUQe':_0xa2ea50(_0x1f3234._0x2713e1),'FLgyK':function(_0x3a5d2f,_0x5c0465){return _0x3a5d2f===_0x5c0465;},'RJXYq':_0x236be5(_0x1f3234._0x24e060),'mbJJG':function(_0x5a6b0e,_0x54f3d1){return _0x5a6b0e(_0x54f3d1);},'kzPYN':'unknown','TCKfS':_0x236be5(0x1d7),'RYWPC':function(_0x2593f4,_0xe8d265){return _0x2593f4>=_0xe8d265;},'WBgYS':function(_0x524235,_0x43e25a){return _0x524235===_0x43e25a;},'SYvNd':'#root','ehMbj':function(_0xd6c2b3,_0x481768){return _0xd6c2b3(_0x481768);},'Wicbn':function(_0x581749,_0x4bf161){return _0x581749===_0x4bf161;},'eyWQn':_0x236be5(_0x1f3234._0x12e7fd),'fcfZm':_0x236be5(0x1e1)+_0x236be5(0x2cd),'kwPZd':_0x236be5(0x326)+_0xa2ea50(0x240)+_0xa2ea50(0x288),'DEpyx':'Whitelabel'+'\x20Error\x20Pag'+'e','rWQEq':_0xa2ea50(_0x1f3234._0x25ff04),'vSfyE':function(_0x5b7c89,_0x5112d4){return _0x5b7c89||_0x5112d4;},'lyoYN':function(_0x3e8aa1,_0x48d2ad){return _0x3e8aa1+_0x48d2ad;},'QplYX':function(_0x1e7ae6,_0x11a3ae){return _0x1e7ae6+_0x11a3ae;},'QTgyF':_0x236be5(0x31b),'pDxGh':_0x236be5(_0x1f3234._0xd7ee35),'kBBLf':_0xa2ea50(_0x1f3234._0x578790)+'e','gfRDy':function(_0x1c9a6f,_0xfad4a4){return _0x1c9a6f-_0xfad4a4;},'NPIOX':_0x236be5(_0x1f3234._0x551d77),'qbggN':function(_0x402195,_0x1b0895){return _0x402195===_0x1b0895;},'maPww':function(_0x38e3c5,_0x908bb4){return _0x38e3c5<_0x908bb4;},'Tpoto':_0x236be5(0x245)+'oot\x20无子元素且页'+_0xa2ea50(_0x1f3234._0xa30d5e),'fJVRu':function(_0x212a07,_0x30d26d){return _0x212a07===_0x30d26d;},'OUurC':_0x236be5(_0x1f3234._0x2100f8),'OYtTJ':_0x236be5(0x259)+_0x236be5(0x1f0)+_0xa2ea50(0x332)+'rlay\x20或\x20Spr'+'ing\x20Boot\x20W'+_0x236be5(0x2ee)+_0xa2ea50(_0x1f3234._0xae81e7),'FIxhE':_0x236be5(0x2b9),'mkaoM':function(_0x50fd2,_0x2511b2){return _0x50fd2!==_0x2511b2;},'bxwys':function(_0x13bfa8,_0x3909bd){return _0x13bfa8/_0x3909bd;},'FbDIi':_0x236be5(_0x1f3234._0xf748e5)+'or','Sdjwj':_0x236be5(_0x1f3234._0x56dbe9),'aLwiZ':_0x236be5(0x2b1),'Thevd':'response'},_0x1d5d80={};_0x1d5d80['route']=_0x3fc69a[_0x236be5(0x21a)],_0x1d5d80['specRef']=_0x3fc69a[_0xa2ea50(0x27c)],_0x1d5d80[_0x236be5(_0x1f3234._0x4d4df2)]=!![],_0x1d5d80[_0xa2ea50(0x2d5)]=[],_0x1d5d80['warnings']=[],_0x1d5d80[_0xa2ea50(_0x1f3234._0x590891)]=0x0;const _0x841a6d=_0x1d5d80,_0x3a4408=[],_0x215731=[],_0xb6eb69=[],_0x3e8710=_0x3872d7=>{const _0x169ddb=_0x236be5,_0x5ed68a=_0x236be5;if(_0x2d0e2e['ebUQe']===_0x169ddb(_0xa146ea._0x82ad33)){const _0x30341e=_0x1738cf[_0x5ed68a(0x32c)](/:[\w]+/g,'1');if(!_0x2a2a25[_0x169ddb(_0xa146ea._0x394583)](_0x30341e)&&!_0x36d9e8['has'](_0x412813)){_0x2bc7c6['add'](_0x30341e);const _0x10d361={};_0x10d361[_0x169ddb(_0xa146ea._0x3afb83)]=_0x30341e,_0x10d361[_0x5ed68a(0x27c)]=CNTmRu[_0x169ddb(_0xa146ea._0x21c7eb)],_0x4e1593['pages'][_0x169ddb(_0xa146ea._0x5d613d)](_0x10d361);}}else{if(_0x2d0e2e[_0x5ed68a(_0xa146ea._0x20016a)](_0x3872d7['type'](),_0x2d0e2e[_0x5ed68a(0x2ab)])){const _0x5ba260=_0x3872d7[_0x169ddb(_0xa146ea._0x4da323)]();!_0x2d0e2e[_0x169ddb(_0xa146ea._0xa8c6d7)](isBenignConsoleMsg,_0x5ba260)&&_0x3a4408[_0x169ddb(0x285)](_0x5ba260[_0x169ddb(0x2e7)](0xa4f+-0x273*-0x6+0x1*-0x1901,-0x3a1+-0xdff+0x1268));}}};_0x3e3914['on'](_0x2d0e2e[_0xa2ea50(0x20b)],_0x3e8710);const _0x154caf=_0x5773d0=>{const _0x4b8446=_0xa2ea50,_0x2f4b29=_0xa2ea50;_0xb6eb69[_0x4b8446(0x285)](_0x5773d0[_0x2f4b29(0x206)]['slice'](-0x3*0x5d9+-0x1bbc+0x2d47,-0x2163+0x8f1+0x193a));};_0x3e3914['on']('pageerror',_0x154caf);const _0x51e263=_0x58c73e=>{const _0x4bf2db=_0xa2ea50,_0xcc1e4a=_0xa2ea50,_0x43326b=_0x58c73e[_0x4bf2db(_0x3ef674._0x721309)]();if(_0x43326b[_0x4bf2db(_0x3ef674._0x1e7486)](_0x4bf2db(_0x3ef674._0x16fe0c))&&!isBenignConsoleMsg(_0x43326b)){if(_0x2d0e2e[_0xcc1e4a(0x23d)](_0x4bf2db(0x2aa),_0x4bf2db(_0x3ef674._0x114b94))){const _0x1a08dc=_0x3e8365[0x35*0x82+-0x3dc+-0x170d][_0xcc1e4a(0x32c)](/\{[^}]+\}/g,'1');!_0x2f35c6[_0x4bf2db(_0x3ef674._0x2d6342)](_0x1a08dc)&&(_0x2e389c['add'](_0x1a08dc),_0x538d11[_0x4bf2db(0x285)]({'method':_0x16cd62[0x14*-0x1c6+0x178+-0x20*-0x110][_0xcc1e4a(_0x3ef674._0x163250)](/\s/)[0x75a+0x21d4+-0x292e],'path':_0x1a08dc}));}else{const _0x3128e0=_0x58c73e[_0xcc1e4a(_0x3ef674._0x2197fb)]();_0x215731[_0xcc1e4a(0x285)](_0x58c73e[_0xcc1e4a(_0x3ef674._0x370e37)]()+'\x20'+_0x43326b+':\x20'+(_0x3128e0?_0x3128e0[_0xcc1e4a(_0x3ef674._0x1a3483)]:_0x2d0e2e[_0xcc1e4a(0x2c3)]));}}};_0x3e3914['on']('requestfai'+_0x236be5(_0x1f3234._0x2dcf1a),_0x51e263);const _0x4fa140=[],_0xe27e93=_0x59d8d1=>{const _0x8d9e46=_0xa2ea50,_0x3992a7=_0xa2ea50,_0xf27a45=_0x59d8d1[_0x8d9e46(0x2b7)]();if(_0xf27a45[_0x8d9e46(_0x2ca1cf._0x2ef40b)](_0x2d0e2e[_0x3992a7(_0x2ca1cf._0x2bcb6b)])&&_0x2d0e2e['RYWPC'](_0x59d8d1[_0x8d9e46(_0x2ca1cf._0x349f59)](),0x45*0x73+-0x16de+-0x62d)){if(_0x2d0e2e[_0x3992a7(0x1bf)]('FaVQa',_0x8d9e46(_0x2ca1cf._0x4b7e3f)))_0x4fa140[_0x3992a7(0x285)](_0x59d8d1[_0x3992a7(_0x2ca1cf._0x38fd61)]()+'\x20'+_0x59d8d1[_0x3992a7(_0x2ca1cf._0x171742)]()[_0x3992a7(0x2e7)](0x76*0xd+-0xbb+-0x543*0x1,-0x2397+0x1ea8+0x567));else for(const _0x5e4fc1 of _0x353c39){_0x10c423(_0x5e4fc1);}}};_0x3e3914['on'](_0x236be5(0x29d),_0xe27e93);try{if(_0x236be5(0x2f1)===_0x2d0e2e['pDxGh']){const _0x4fdf1c=''+_0x5b3337+_0x3fc69a[_0x236be5(_0x1f3234._0x1e881b)],_0x2eecbe=Date[_0xa2ea50(_0x1f3234._0x4eec79)](),_0x2ecbcd={};_0x2ecbcd['waitUntil']=_0x2d0e2e[_0x236be5(0x26a)],_0x2ecbcd[_0xa2ea50(_0x1f3234._0xf7bf7d)]=_0x5dc193;const _0x528e4f=await _0x3e3914[_0xa2ea50(_0x1f3234._0x18411a)](_0x4fdf1c,_0x2ecbcd);_0x841a6d[_0x236be5(_0x1f3234._0x5a256c)]=_0x2d0e2e['gfRDy'](Date[_0x236be5(_0x1f3234._0x4eec79)](),_0x2eecbe),await _0x3e3914[_0x236be5(_0x1f3234._0x212abc)+_0xa2ea50(0x222)](-0x1b0a+-0x1224+0x1*0x330a);if(_0x528e4f&&_0x528e4f[_0xa2ea50(0x2a0)]()>=-0x1d35+0x3b*-0x1f+0x2e*0xd3){const _0x4a9b3d=_0x3e3914['url']();!_0x4a9b3d[_0xa2ea50(_0x1f3234._0x186fcc)](_0x2d0e2e[_0x236be5(_0x1f3234._0x2ea2a7)])&&!_0x4a9b3d['includes']('/auth')&&_0x841a6d[_0xa2ea50(0x2d5)][_0x236be5(_0x1f3234._0x3b2de4)](_0x236be5(0x287)+_0x528e4f[_0x236be5(0x2a0)]()+_0x236be5(_0x1f3234._0x2e9bb2));}const _0x5542bd=await _0x3e3914[_0xa2ea50(0x307)](()=>{const _0xaf7e8a={_0x2d9401:0x1e8,_0x4e32e7:0x228},_0x41db1c=_0xa2ea50,_0x39bc43=_0xa2ea50,_0xe18d62={};_0xe18d62[_0x41db1c(0x33a)]=_0x2d0e2e[_0x41db1c(0x1c7)];const _0x5f1418=_0xe18d62,_0x41926d=document[_0x41db1c(0x2e0)];return{'text':(_0x41926d['innerText']||'')[_0x41db1c(_0x19eded._0x13dd05)]()[_0x39bc43(_0x19eded._0x1ae063)](0x26c7+-0x607+-0x20c*0x10,-0x1b3*0x8+0x2d1*0x1+-0xcbb*-0x1),'childCount':_0x41926d['children']['length'],'hasApp':!!document['querySelec'+_0x41db1c(0x1e8)](_0x41db1c(_0x19eded._0x422d31))||!!document[_0x39bc43(_0x19eded._0x4c3cb7)+_0x41db1c(0x1e8)]('#root'),'appChildCount':((()=>{const _0x3f32b7=_0x39bc43,_0x31a507=_0x39bc43,_0x180908=document[_0x3f32b7(0x215)+_0x31a507(_0xaf7e8a._0x2d9401)](_0x31a507(_0xaf7e8a._0x4e32e7))||document[_0x3f32b7(0x215)+_0x3f32b7(_0xaf7e8a._0x2d9401)](_0x5f1418['lMRnW']);return _0x180908?_0x180908[_0x31a507(0x309)][_0x31a507(0x1d1)]:0x13*-0x10d+-0x2b*0x25+0x45d*0x6;})()),'title':document[_0x39bc43(0x1d5)]||''};});if(_0x2d0e2e['qbggN'](_0x5542bd['appChildCo'+_0x236be5(_0x1f3234._0x367afa)],-0xdd*0x15+0xd51*0x1+0x70*0xb)&&_0x2d0e2e['maPww'](_0x5542bd[_0xa2ea50(_0x1f3234._0x5b67c7)][_0xa2ea50(_0x1f3234._0x31f44d)],0x235f+-0x281*-0x1+-0x25d6))_0x841a6d[_0x236be5(0x2d5)][_0x236be5(0x285)](_0x2d0e2e[_0xa2ea50(0x2d2)]);else _0x5542bd['text'][_0xa2ea50(0x1d1)]<0x104*0x22+0xd29+-0x2fac&&_0x5542bd[_0x236be5(0x1e7)]<-0xd37+-0x17ed+0x13d*0x1e&&_0x841a6d['failures'][_0xa2ea50(_0x1f3234._0x5853a7)](_0xa2ea50(_0x1f3234._0x395598)+'仅\x20'+_0x5542bd['childCount']+_0x236be5(0x251)+_0x5542bd['text'][_0xa2ea50(0x1d1)]+'\x20字符文本');const _0x2fe9ad=await _0x3e3914['evaluate'](()=>{const _0x14e4d5=_0xa2ea50,_0x437aff=_0xa2ea50;if(_0x2d0e2e[_0x14e4d5(_0x39a18f._0x103833)](_0x14e4d5(0x238),_0x2d0e2e[_0x437aff(0x232)]))_0x18e770[_0x14e4d5(0x235)](),CNTmRu[_0x14e4d5(_0x39a18f._0x4942be)](_0x224552,-0x8a3*-0x4+-0x2425+0x199);else{const _0x55587d=document[_0x14e4d5(0x215)+_0x437aff(0x1e8)](_0x2d0e2e[_0x437aff(_0x39a18f._0x51d892)]),_0x4e0da0=document['querySelec'+_0x14e4d5(_0x39a18f._0xa125ec)](_0x14e4d5(_0x39a18f._0x35db01)+_0x437aff(_0x39a18f._0x1f38f4)+_0x14e4d5(0x221)+_0x437aff(0x1eb))||document[_0x437aff(0x215)+_0x14e4d5(_0x39a18f._0x19808a)](_0x437aff(_0x39a18f._0x47edcc)+_0x437aff(_0x39a18f._0xcb8bc1)+'iv[style*='+_0x14e4d5(_0x39a18f._0x34e372)+'\x20fixed\x22]'),_0x361d14=document[_0x437aff(_0x39a18f._0x7af3ce)+_0x437aff(0x1e8)](_0x2d0e2e[_0x14e4d5(0x2e3)]),_0x1b2580=document['body'][_0x437aff(_0x39a18f._0x43417c)][_0x437aff(0x20c)](_0x2d0e2e[_0x437aff(_0x39a18f._0x543032)]),_0x43eac9=document['body'][_0x14e4d5(0x233)][_0x14e4d5(0x20c)](_0x2d0e2e[_0x437aff(_0x39a18f._0x1a0a97)]);return!!(_0x2d0e2e['vSfyE'](_0x55587d,_0x4e0da0)||_0x361d14||_0x1b2580||_0x43eac9);}});if(_0x2fe9ad){if(_0x2d0e2e['fJVRu'](_0x2d0e2e[_0xa2ea50(0x2f6)],_0xa2ea50(0x312)))_0x841a6d[_0xa2ea50(0x2d5)][_0xa2ea50(_0x1f3234._0x19cea3)](_0x2d0e2e[_0x236be5(_0x1f3234._0x5e8245)]);else{const _0x247309={};return _0x247309[_0xa2ea50(0x316)]=!![],_0x247309[_0x236be5(0x31e)]=![],_0x247309['skipReason']=null,_0x247309[_0x236be5(_0x1f3234._0x3d49ed)]=[],_0x247309[_0x236be5(0x275)]=[],_0x247309[_0x236be5(_0x1f3234._0x3e9838)+_0x236be5(_0x1f3234._0x437ea8)]=[],_0x247309[_0xa2ea50(0x1d3)]=_0x3b5e99,_0x247309[_0xa2ea50(0x1ca)+'or']=_0x236be5(_0x1f3234._0x3971ed)+_0x4de445[_0xa2ea50(_0x1f3234._0x19bb6d)],_0x247309;}}const _0x1c8ed9=_0x3e3914[_0x236be5(0x2b7)]();(_0x1c8ed9['includes'](_0xa2ea50(0x2ea))||_0x1c8ed9[_0xa2ea50(_0x1f3234._0xd5448e)](_0x2d0e2e[_0xa2ea50(0x30b)]))&&(_0x3fc69a['route']!==_0x2d0e2e[_0x236be5(0x281)]&&_0x2d0e2e[_0x236be5(_0x1f3234._0x4a67ec)](_0x3fc69a[_0xa2ea50(0x21a)],_0xa2ea50(_0x1f3234._0x1e2470))&&(_0x841a6d[_0x236be5(_0x1f3234._0x401c6a)][_0x236be5(_0x1f3234._0x3b2de4)](_0x236be5(0x1e2)+_0x1c8ed9+(')—\x20页面可达但需认'+'证')),_0x841a6d[_0xa2ea50(_0x1f3234._0x54c172)]=!![])),_0xb6eb69[_0xa2ea50(_0x1f3234._0x31f44d)]>0x47*0x3b+-0x90a+-0x753&&_0x841a6d[_0x236be5(_0x1f3234._0x47d41e)][_0x236be5(_0x1f3234._0x3b2de4)](_0xb6eb69['length']+(_0xa2ea50(_0x1f3234._0x54324e)+_0x236be5(_0x1f3234._0xb84680))+_0xb6eb69[_0xa2ea50(_0x1f3234._0x1eeda0)](-0xcaa*0x1+0x78d*0x1+0x51d,-0xe2d+-0x1378+0x21a8)[_0xa2ea50(_0x1f3234._0x398e93)](';\x20')),_0x215731[_0x236be5(_0x1f3234._0x1d9e38)]>-0x23a+-0x1efa+0x2134&&_0x841a6d[_0xa2ea50(0x2d5)]['push'](_0x215731[_0x236be5(0x1d1)]+(_0x236be5(_0x1f3234._0x1d4e68)+_0xa2ea50(0x28a))+_0x215731[_0xa2ea50(_0x1f3234._0x5691d0)](-0x1ab0+-0x1*-0x17ec+0x2c4*0x1,-0x253c+-0x6*-0x53c+0x5d7)[_0x236be5(0x223)](';\x20')),_0x4fa140[_0x236be5(_0x1f3234._0x31f44d)]>-0x1d5+0x13*-0x118+0x169d&&_0x841a6d[_0x236be5(0x2d5)]['push'](_0x4fa140[_0x236be5(_0x1f3234._0x58068d)]+(_0xa2ea50(_0x1f3234._0x5759c9)+'5xx:\x20')+_0x4fa140['slice'](0x2b7+-0x6ee*0x4+0x1901,0x5*-0x16d+-0x1ad1*-0x1+-0x68f*0x3)[_0x236be5(0x223)](';\x20')),_0x3a4408[_0xa2ea50(_0x1f3234._0x31f44d)]>-0x19f3+-0xc75+0x2668&&(_0x236be5(_0x1f3234._0x4271ef)===_0xa2ea50(0x1f6)?_0x841a6d['warnings'][_0x236be5(_0x1f3234._0x3b2de4)](_0x3a4408[_0x236be5(0x1d1)]+'\x20个控制台错误:\x20'+_0x3a4408[_0xa2ea50(0x2e7)](0x1469+-0xcc4+0x7a5*-0x1,-0x242c+0x2*-0x4d1+0x2dd1)['join'](';\x20')):_0x1f94c3[_0xa2ea50(_0x1f3234._0xf8c0ef)][_0x236be5(_0x1f3234._0x19cea3)]('HTTP\x20'+_0xd6226e[_0xa2ea50(0x2a0)]()+_0x236be5(0x25f))),_0x841a6d[_0xa2ea50(0x2f5)]>0x4c7*0x1+-0x367e+0x1*0x58c7&&_0x841a6d[_0x236be5(_0x1f3234._0x401c6a)][_0xa2ea50(_0x1f3234._0x4a649d)](_0x236be5(0x249)+Math['round'](_0x2d0e2e[_0xa2ea50(_0x1f3234._0x24c893)](_0x841a6d['loadTimeMs'],0xb*0x95+-0xd48+0x1*0xac9))+_0xa2ea50(_0x1f3234._0x3c0584));}else _0x3c9734['resume'](),_0x4e4644(_0x1e115c[_0x236be5(0x32d)]);}catch(_0x59f57e){if(_0x59f57e[_0x236be5(_0x1f3234._0x53af4e)]===_0x2d0e2e[_0x236be5(_0x1f3234._0x23e0ec)])_0x841a6d[_0xa2ea50(0x2d5)][_0xa2ea50(_0x1f3234._0x5853a7)](_0xa2ea50(_0x1f3234._0x31e107)+Math['round'](_0x5dc193/(-0x2f*0x4f+-0x14b*-0x1+0xe*0x139))+'s)');else{if(_0xa2ea50(0x2ef)===_0x2d0e2e[_0xa2ea50(0x2fb)]){const _0x252b8b=_0x3a8224[-0x8f9*-0x3+0x1*0x1a65+-0x354f],_0x49269f=_0x1a6d46[0x21fe+0x3c*-0x6a+-0x924];if(!_0xbdb11a[_0xa2ea50(_0x1f3234._0x264341)](CNTmRu[_0x236be5(_0x1f3234._0x1e0820)](_0x236be5(0x2ad),_0x252b8b))){_0x4c28b0[_0x236be5(0x28d)](CNTmRu['QplYX']('fp:',_0x252b8b));const _0x19cd22={};_0x19cd22['route']=null,_0x19cd22['specRef']=_0x252b8b+'\x20'+_0x49269f,_0x19cd22[_0xa2ea50(_0x1f3234._0x44e8f6)+_0xa2ea50(0x29b)]=!![],_0x386a03[_0x236be5(_0x1f3234._0xac9494)](_0x19cd22);}}else _0x841a6d[_0xa2ea50(_0x1f3234._0xf8c0ef)][_0x236be5(_0x1f3234._0x1865d6)](_0xa2ea50(0x219)+_0x59f57e[_0xa2ea50(_0x1f3234._0x2c8a28)]['slice'](0x80*0x47+0x633+0x1ab*-0x19,0x61e*0x4+-0x12e4+-0x12*0x47));}}finally{_0x3e3914['removeList'+_0x236be5(0x280)](_0x2d0e2e['QTgyF'],_0x3e8710),_0x3e3914['removeList'+_0xa2ea50(0x280)](_0x2d0e2e[_0xa2ea50(0x31a)],_0x154caf),_0x3e3914['removeList'+'ener'](_0x236be5(0x1fc)+_0xa2ea50(_0x1f3234._0x9c12f9),_0x51e263),_0x3e3914['removeList'+'ener'](_0x2d0e2e[_0x236be5(0x32a)],_0xe27e93);}return _0x841a6d['pass']=_0x841a6d['failures']['length']===-0x1f81*-0x1+0xaf4+-0x2a75,_0x841a6d;}async function checkApiEndpoints(_0x43f0d1,_0xe0a778){const _0x381198={_0x5185d3:0x1b5,_0x160cf8:0x1ea,_0x4ff817:0x29c,_0x544897:0x2a0,_0x540904:0x285},_0x36cb55=_0x50e75f,_0x327736=_0x50e75f,_0x2312fa={};_0x2312fa['BRpuy']=function(_0x2b52fd,_0x283c97){return _0x2b52fd>_0x283c97;},_0x2312fa[_0x36cb55(0x1b5)]='connection'+'\x20refused';const _0x2ebcc8=_0x2312fa,_0x478200=[];for(const _0x1fe30b of _0xe0a778){const _0x548fd0=''+_0x43f0d1+_0x1fe30b[_0x327736(0x29c)];try{const _0x113bab=await httpProbe(_0x548fd0);_0x478200[_0x327736(0x285)]({'method':_0x1fe30b[_0x327736(0x294)],'path':_0x1fe30b['path'],'status':_0x113bab,'pass':_0x2ebcc8['BRpuy'](_0x113bab,0x1bf4+0xa11*-0x1+-0x1*0x11e3)&&_0x113bab<-0xb22+0x1812+-0xafc,'error':_0x113bab===-0x13a3+-0x5*0x586+-0x1*-0x2f41?_0x2ebcc8[_0x327736(_0x381198._0x5185d3)]:null});}catch(_0x2a8827){if(_0x327736(_0x381198._0x160cf8)==='bgeMR')return _0x45c097['some'](_0x452d08=>_0x452d08['test'](_0x287729));else{const _0x5ac324={};_0x5ac324['method']=_0x1fe30b[_0x327736(0x294)],_0x5ac324[_0x327736(_0x381198._0x4ff817)]=_0x1fe30b['path'],_0x5ac324[_0x36cb55(_0x381198._0x544897)]=0x0,_0x5ac324['pass']=![],_0x5ac324[_0x36cb55(0x314)]=_0x2a8827[_0x36cb55(0x206)],_0x478200[_0x36cb55(_0x381198._0x540904)](_0x5ac324);}}}return _0x478200;}async function runE2ESmoke(_0x331008,_0x263096,_0x2f7ccd={}){const _0x1682a0={_0x33c8ed:0x303,_0x5af4df:0x1cf,_0x375b7a:0x32f,_0x20aabf:0x333,_0x53fa03:0x23e,_0x592a49:0x2c5,_0x344dce:0x22f,_0x4bce4e:0x25e,_0x61e51f:0x330,_0x245b91:0x20a,_0x2f400a:0x275,_0x557659:0x207,_0x2690f5:0x2b3,_0x25d9b7:0x285,_0x2b7651:0x1d1,_0x373671:0x2dc,_0x201129:0x329,_0x586aeb:0x1e9,_0x314113:0x23b,_0x4900ba:0x1dc,_0x119ca9:0x338,_0x17ac53:0x1dc,_0x507adf:0x32e,_0x44d27a:0x2dc,_0x39670e:0x285,_0x156717:0x269,_0x3eb2f1:0x26b,_0x5704c7:0x1f4,_0x498e57:0x316,_0x21b114:0x268,_0x1809eb:0x275,_0x36c1da:0x2ec,_0x4a4c44:0x206,_0x750fe9:0x21e,_0x123e3c:0x336,_0x3183e3:0x23b,_0x53a9c7:0x2ac,_0x1735a6:0x28d,_0x51d07c:0x2ac,_0x54eb4e:0x26b,_0x30e3cb:0x31e,_0x6b81b9:0x268,_0x3fd2a6:0x268,_0x37e101:0x1e4,_0x459ad6:0x2ec,_0x492521:0x1d3,_0x1a5876:0x275,_0x37c8bc:0x2e2,_0x19d3a1:0x253,_0x35e231:0x2b7,_0x260be2:0x20c,_0xb22b3d:0x1d9,_0x67abbb:0x29a,_0xc4026e:0x29f,_0x209faa:0x1ce,_0x109236:0x1dd,_0x224416:0x20f,_0xa9eaea:0x1c6,_0x4ac9f2:0x218,_0x50a70c:0x1d1,_0x49f084:0x20d,_0x11b3df:0x1d1,_0x4f3a89:0x1d1,_0xf1d4eb:0x1d1,_0x2a0a4b:0x1d1,_0x488111:0x1d1,_0x58f21a:0x2a5,_0x3f9423:0x1dc,_0xbeac8f:0x1c3},_0x5778da=_0x50e75f,_0x4737b6=_0x50e75f,_0x469226={'CgKcL':'无法自动检测技术栈('+'不匹配任何已知\x20pr'+_0x5778da(0x27e)+_0x5778da(0x2c2)+_0x4737b6(0x2b4),'RaikX':'/api/','kwKJV':function(_0x360c15,_0x16216e){return _0x360c15(_0x16216e);},'pbkdk':'eXPFO','RpDCW':function(_0x473928,_0x24234d){return _0x473928||_0x24234d;},'eZzdT':function(_0x4238ce,_0x4a25c9){return _0x4238ce||_0x4a25c9;},'IfWfx':_0x5778da(0x2bd),'JWXCE':'MlQCc','Qrxqa':_0x5778da(0x21c),'JlXXq':_0x4737b6(_0x1682a0._0x33c8ed),'dUIYR':_0x4737b6(_0x1682a0._0x5af4df),'Wspya':function(_0x3a68f2,_0x382956){return _0x3a68f2===_0x382956;},'tZnGp':'ZIknl','vfvRb':'EZzai','ZyGmS':function(_0x55ca81,_0x5e4fb7){return _0x55ca81&&_0x5e4fb7;},'tlwep':_0x4737b6(_0x1682a0._0x375b7a)+'setuid-san'+_0x4737b6(0x229),'ITUev':function(_0x46dc8f,_0x2aad14){return _0x46dc8f===_0x2aad14;},'sKjdv':function(_0x4fc777,_0x35e116){return _0x4fc777-_0x35e116;}},{timeout:timeout=DEFAULT_PAGE_TIMEOUT,headed:headed=![],baseUrl:_0x3701de,backendUrl:_0x41bcc3,skipApis:skipApis=![]}=_0x2f7ccd,_0x32494a=resolvePlaywright(_0x331008);if(!_0x32494a){const _0x3f96b6={};return _0x3f96b6[_0x4737b6(0x316)]=![],_0x3f96b6['pass']=undefined,_0x3f96b6[_0x5778da(0x268)]=_0x5778da(_0x1682a0._0x20aabf)+_0x5778da(0x1c9),_0x3f96b6[_0x5778da(0x1c1)+'t']='cd\x20<fronte'+_0x5778da(_0x1682a0._0x53fa03)+'\x20npm\x20i\x20-D\x20'+'playwright'+_0x4737b6(_0x1682a0._0x592a49)+_0x4737b6(_0x1682a0._0x344dce)+_0x5778da(_0x1682a0._0x4bce4e)+_0x5778da(_0x1682a0._0x61e51f),_0x3f96b6[_0x4737b6(_0x1682a0._0x245b91)]=[],_0x3f96b6[_0x5778da(_0x1682a0._0x2f400a)]=[],_0x3f96b6[_0x4737b6(0x246)+'ors']=[],_0x3f96b6[_0x5778da(0x1d3)]={},_0x3f96b6;}let _0x197e3a=null;for(const _0x54149f of STACK_PROFILES){if(_0x54149f[_0x4737b6(_0x1682a0._0x557659)](_0x331008)){if(_0x469226['pbkdk']===_0x5778da(_0x1682a0._0x2690f5))_0x4e30b2['failures'][_0x4737b6(_0x1682a0._0x25d9b7)](_0x4737b6(0x1cb)+'仅\x20'+_0x217b40[_0x5778da(0x1e7)]+'\x20个子元素、'+_0x2187bd['text'][_0x5778da(_0x1682a0._0x2b7651)]+'\x20字符文本');else{_0x197e3a=_0x54149f;break;}}}const _0x301a5b=[];let _0x4ebb3d=_0x469226[_0x4737b6(0x258)](_0x3701de,null),_0x53e892=_0x469226['RpDCW'](_0x41bcc3,null);const _0x8c7008={};_0x8c7008['backend']=null,_0x8c7008[_0x5778da(0x2ac)]=null,_0x8c7008[_0x4737b6(0x32e)+_0x4737b6(_0x1682a0._0x373671)]=![];let _0x1c78c5=_0x8c7008;try{if(_0x469226['eZzdT'](!_0x4ebb3d,!_0x53e892)){if(!_0x197e3a){const _0x500b4c={};return _0x500b4c[_0x4737b6(0x316)]=!![],_0x500b4c[_0x4737b6(0x31e)]=undefined,_0x500b4c[_0x4737b6(0x268)]=_0x5778da(_0x1682a0._0x201129)+'不匹配任何已知\x20pr'+_0x4737b6(0x27e)+_0x5778da(0x2c2)+_0x5778da(0x2b4),_0x500b4c[_0x5778da(0x20a)]=[],_0x500b4c[_0x5778da(_0x1682a0._0x2f400a)]=[],_0x500b4c['consoleErr'+'ors']=[],_0x500b4c['servers']={},_0x500b4c;}const _0xeaa9be=await _0x469226[_0x5778da(_0x1682a0._0x586aeb)](detectRunningServers,_0x197e3a);if(_0x197e3a[_0x4737b6(0x1dc)]){if(_0xeaa9be[_0x5778da(0x1dc)]){_0x53e892=_0x53e892||'http://127'+_0x4737b6(_0x1682a0._0x314113)+_0x197e3a[_0x4737b6(_0x1682a0._0x4900ba)][_0x4737b6(0x338)];const _0x2ffc8e={};_0x2ffc8e[_0x5778da(_0x1682a0._0x119ca9)]=_0x197e3a[_0x4737b6(_0x1682a0._0x17ac53)]['port'],_0x2ffc8e[_0x5778da(_0x1682a0._0x507adf)+_0x4737b6(0x2dc)]=!![],_0x1c78c5[_0x5778da(_0x1682a0._0x17ac53)]=_0x2ffc8e,_0x1c78c5[_0x5778da(_0x1682a0._0x507adf)+_0x5778da(_0x1682a0._0x44d27a)]=!![];}else{if(!_0x53e892)try{const _0x57332c=await startServer(_0x331008,_0x197e3a[_0x4737b6(0x1dc)],SERVER_START_TIMEOUT_BE);_0x301a5b[_0x5778da(_0x1682a0._0x39670e)](_0x57332c['proc']),_0x53e892=_0x4737b6(_0x1682a0._0x156717)+_0x5778da(0x23b)+_0x57332c[_0x4737b6(0x338)];const _0x1fd48c={};_0x1fd48c[_0x4737b6(0x338)]=_0x57332c[_0x4737b6(_0x1682a0._0x119ca9)],_0x1fd48c['cmd']=_0x197e3a[_0x5778da(_0x1682a0._0x4900ba)][_0x4737b6(_0x1682a0._0x3eb2f1)],_0x1fd48c[_0x5778da(_0x1682a0._0x5704c7)]=_0x57332c['proc'][_0x4737b6(0x1f4)],_0x1c78c5['backend']=_0x1fd48c;}catch(_0x3fb7e5){const _0x39345d={};return _0x39345d[_0x4737b6(_0x1682a0._0x498e57)]=!![],_0x39345d[_0x4737b6(0x31e)]=![],_0x39345d[_0x5778da(_0x1682a0._0x21b114)]=null,_0x39345d[_0x4737b6(0x20a)]=[],_0x39345d[_0x5778da(_0x1682a0._0x1809eb)]=[],_0x39345d[_0x4737b6(0x246)+_0x4737b6(_0x1682a0._0x36c1da)]=[],_0x39345d[_0x4737b6(0x1d3)]=_0x1c78c5,_0x39345d['startupErr'+'or']='后端启动失败:\x20'+_0x3fb7e5[_0x4737b6(_0x1682a0._0x4a4c44)],_0x39345d;}}}if(_0x197e3a[_0x4737b6(0x2ac)]){if(_0xeaa9be['frontend']){if(_0x469226[_0x4737b6(_0x1682a0._0x750fe9)]!==_0x469226[_0x5778da(_0x1682a0._0x123e3c)]){_0x4ebb3d=_0x4ebb3d||_0x4737b6(0x269)+_0x5778da(_0x1682a0._0x3183e3)+_0x197e3a['frontend']['port'];const _0xd585b5={};_0xd585b5[_0x5778da(_0x1682a0._0x119ca9)]=_0x197e3a[_0x4737b6(_0x1682a0._0x53a9c7)]['port'],_0xd585b5[_0x5778da(0x32e)+'ning']=!![],_0x1c78c5[_0x5778da(0x2ac)]=_0xd585b5,_0x1c78c5[_0x4737b6(_0x1682a0._0x507adf)+_0x4737b6(0x2dc)]=!![];}else _0x38548d[_0x5778da(_0x1682a0._0x1735a6)](_0x4d6a57),_0xecb480[_0x5778da(0x285)]({'method':_0x13a71c[-0xd*-0x2dd+0x1d9f+-0x4*0x10b6][_0x4737b6(0x22c)](/\s/)[0x22f3+-0x1d5*0x14+-0x1b1*-0x1],'path':_0x15a2a7});}else{if(!_0x4ebb3d)try{const _0x22b255=await startServer(_0x331008,_0x197e3a[_0x4737b6(_0x1682a0._0x51d07c)],SERVER_START_TIMEOUT_FE);_0x301a5b[_0x5778da(_0x1682a0._0x39670e)](_0x22b255['proc']),_0x4ebb3d=_0x5778da(_0x1682a0._0x156717)+_0x4737b6(0x23b)+_0x22b255[_0x4737b6(0x338)];const _0x249ef3={};_0x249ef3[_0x5778da(0x338)]=_0x22b255[_0x4737b6(0x338)],_0x249ef3[_0x4737b6(_0x1682a0._0x3eb2f1)]=_0x197e3a['frontend'][_0x5778da(_0x1682a0._0x54eb4e)],_0x249ef3[_0x4737b6(_0x1682a0._0x5704c7)]=_0x22b255[_0x4737b6(0x1b4)]['pid'],_0x1c78c5[_0x4737b6(0x2ac)]=_0x249ef3;}catch(_0x22d772){if(_0x469226['Qrxqa']!==_0x469226[_0x4737b6(0x1cd)]){const _0x5ba97e={};return _0x5ba97e[_0x4737b6(_0x1682a0._0x498e57)]=!![],_0x5ba97e[_0x4737b6(_0x1682a0._0x30e3cb)]=![],_0x5ba97e[_0x4737b6(_0x1682a0._0x6b81b9)]=null,_0x5ba97e['pages']=[],_0x5ba97e['apiResults']=[],_0x5ba97e[_0x4737b6(0x246)+'ors']=[],_0x5ba97e[_0x5778da(0x1d3)]=_0x1c78c5,_0x5ba97e['startupErr'+'or']=_0x5778da(0x227)+_0x22d772[_0x5778da(0x206)],_0x5ba97e;}else{const _0x1a7ec6={};return _0x1a7ec6['available']=!![],_0x1a7ec6['pass']=_0x4321dc,_0x1a7ec6[_0x5778da(_0x1682a0._0x3fd2a6)]=_0x469226[_0x4737b6(_0x1682a0._0x37e101)],_0x1a7ec6[_0x5778da(0x20a)]=[],_0x1a7ec6[_0x4737b6(0x275)]=[],_0x1a7ec6[_0x4737b6(0x246)+_0x5778da(_0x1682a0._0x459ad6)]=[],_0x1a7ec6[_0x5778da(_0x1682a0._0x492521)]={},_0x1a7ec6;}}}}!_0x4ebb3d&&(_0x4ebb3d=_0x53e892);if(!_0x4ebb3d){const _0x3686f4={};return _0x3686f4[_0x4737b6(0x316)]=!![],_0x3686f4[_0x5778da(0x31e)]=undefined,_0x3686f4[_0x4737b6(0x268)]=_0x469226[_0x4737b6(0x2a8)],_0x3686f4['pages']=[],_0x3686f4[_0x5778da(_0x1682a0._0x1a5876)]=[],_0x3686f4[_0x5778da(0x246)+'ors']=[],_0x3686f4['servers']=_0x1c78c5,_0x3686f4;}}let _0x4cbdba=extractSpecRoutes(_0x263096);_0x4cbdba=resolveRoutesFromProject(_0x331008,_0x4cbdba);const _0x35ee7f=_0x4cbdba[_0x4737b6(0x20a)]['filter'](_0x4a4f23=>_0x4a4f23[_0x4737b6(0x21a)]);let _0x4a72bb=[];if(!skipApis&&_0x4cbdba['apis'][_0x5778da(_0x1682a0._0x2b7651)]>-0x1*-0x4c7+0x1a*0x10f+0x1*-0x204d){if(_0x469226[_0x4737b6(0x2e4)](_0x469226[_0x5778da(_0x1682a0._0x37c8bc)],_0x5778da(_0x1682a0._0x19d3a1))){const _0x4fe912=_0x4f23d1[_0x5778da(_0x1682a0._0x35e231)]();if(_0x4fe912[_0x5778da(_0x1682a0._0x260be2)](ZHXqmo[_0x4737b6(0x224)])&&!_0xc5b0a8(_0x4fe912)){const _0x4a23dd=_0x213002[_0x4737b6(0x2cc)]();_0x3107f4[_0x5778da(0x285)](_0x4672f0['method']()+'\x20'+_0x4fe912+':\x20'+(_0x4a23dd?_0x4a23dd[_0x4737b6(_0x1682a0._0xb22b3d)]:_0x5778da(0x2fc)));}}else{const _0x3e8b2a=_0x469226[_0x4737b6(0x258)](_0x4ebb3d,_0x53e892);if(_0x3e8b2a){if(_0x5778da(_0x1682a0._0x67abbb)!==_0x469226[_0x5778da(0x210)]){if(_0x895299)return;_0x13846e=!![],_0x5997b6(_0x29ab03),ZHXqmo['kwKJV'](_0x3ef69d,new _0x5e6254('服务器启动失败:\x20'+_0x9646c2[_0x4737b6(0x206)]));}else{_0x4a72bb=await checkApiEndpoints(_0x3e8b2a,_0x4cbdba[_0x5778da(_0x1682a0._0xc4026e)]);const _0x2c30b7=_0x4a72bb[_0x5778da(0x1d2)](_0x363b14=>!_0x363b14['pass']);_0x469226[_0x5778da(0x2a7)](_0x2c30b7,_0x53e892)&&_0x3e8b2a!==_0x53e892&&(_0x4a72bb=await checkApiEndpoints(_0x53e892,_0x4cbdba[_0x5778da(0x29f)]));}}}}let _0x4fcda1;try{const _0x1eb649={};_0x1eb649[_0x5778da(0x299)]=!headed,_0x1eb649[_0x5778da(0x2dd)]=['--no-sandb'+'ox',_0x469226['tlwep']],_0x4fcda1=await _0x32494a[_0x5778da(0x2af)]['launch'](_0x1eb649);const _0x2da105={};_0x2da105[_0x4737b6(0x313)]=0x500,_0x2da105[_0x4737b6(_0x1682a0._0x209faa)]=0x320;const _0x24ea87={};_0x24ea87[_0x5778da(0x26d)]=_0x2da105,_0x24ea87[_0x5778da(_0x1682a0._0x109236)+_0x5778da(_0x1682a0._0x224416)]=!![];const _0x4325f7=await _0x4fcda1['newContext'](_0x24ea87),_0x354acd=await _0x4325f7[_0x4737b6(_0x1682a0._0xa9eaea)](),_0x450eb8=[],_0x2218df=[];for(const _0x31e4f6 of _0x35ee7f){const _0x15cb66=await checkPage(_0x354acd,_0x4ebb3d,_0x31e4f6,timeout);_0x450eb8[_0x5778da(0x285)](_0x15cb66),_0x15cb66[_0x4737b6(0x2bb)]&&_0x2218df[_0x5778da(_0x1682a0._0x39670e)](..._0x15cb66['warnings']['filter'](_0x42ab2d=>_0x42ab2d[_0x5778da(0x20c)]('控制台错误')));}await _0x4325f7['close']();const _0x1f3fd0=_0x450eb8['filter'](_0x480c7b=>!_0x480c7b[_0x4737b6(0x31e)]),_0x19eb1c=_0x4a72bb[_0x4737b6(0x20d)](_0x1e6bdd=>!_0x1e6bdd[_0x5778da(0x31e)]);return{'available':!![],'pass':_0x469226[_0x4737b6(_0x1682a0._0x4ac9f2)](_0x1f3fd0[_0x5778da(_0x1682a0._0x50a70c)],-0xb35+-0x29b+-0x6e8*-0x2)&&_0x19eb1c[_0x5778da(_0x1682a0._0x49f084)](_0x529e35=>_0x529e35[_0x5778da(0x2a0)]===0x1f42+0x8*-0x135+-0x159a||_0x529e35['status']>=0x2015+0x72a+-0x254b)[_0x4737b6(0x1d1)]===0x249d+0x206a+0x1*-0x4507,'skipReason':null,'pages':_0x450eb8,'apiResults':_0x4a72bb,'consoleErrors':_0x2218df,'servers':_0x1c78c5,'summary':{'totalPages':_0x35ee7f[_0x4737b6(_0x1682a0._0x11b3df)],'passedPages':_0x35ee7f[_0x5778da(_0x1682a0._0x4f3a89)]-_0x1f3fd0['length'],'failedPages':_0x1f3fd0[_0x5778da(_0x1682a0._0xf1d4eb)],'totalApis':_0x4a72bb[_0x4737b6(0x1d1)],'passedApis':_0x469226[_0x4737b6(0x304)](_0x4a72bb[_0x5778da(_0x1682a0._0x2a0a4b)],_0x19eb1c[_0x5778da(0x1d1)]),'failedApis':_0x19eb1c[_0x5778da(_0x1682a0._0x488111)]}};}finally{if('NbYON'===_0x4737b6(_0x1682a0._0x58f21a)){const _0x3d456e={};_0x3d456e['port']=_0x4b496c[_0x5778da(_0x1682a0._0x17ac53)][_0x5778da(_0x1682a0._0x119ca9)],_0x549727[_0x4737b6(_0x1682a0._0x3f9423)]=_0x3d456e;}else{if(_0x4fcda1)try{await _0x4fcda1[_0x5778da(_0x1682a0._0xbeac8f)]();}catch{}}}}finally{for(const _0x5ba521 of _0x301a5b){_0x469226[_0x5778da(0x1e9)](killProcess,_0x5ba521);}}}const _0xedaf51={};_0xedaf51[_0x50e75f(0x1b8)+'e']=runE2ESmoke,_0xedaf51[_0x50e75f(0x2f8)+_0x50e75f(0x264)]=resolvePlaywright,_0xedaf51['extractSpe'+'cRoutes']=extractSpecRoutes,_0xedaf51[_0x50e75f(0x27a)+_0x50e75f(0x321)+_0x53865a(0x301)]=resolveRoutesFromProject,module[_0x50e75f(0x33b)]=_0xedaf51;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @alenfitz/spec-copilot v2.3.0
|
|
3
|
+
* Copyright (c) 2026 alenfitz. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This file is proprietary and obfuscated. Reverse engineering, decompilation,
|
|
6
|
+
* disassembly, or unauthorized redistribution of any kind is strictly prohibited.
|
|
7
|
+
* Source code is NOT licensed under MIT/Apache and is NOT available for derivative work.
|
|
8
|
+
*
|
|
9
|
+
* Bugs / feature requests: https://github.com/Alenfitz/spec_copilit/issues
|
|
10
|
+
*/
|
|
11
|
+
const _0x18647e=_0x1ee9,_0x2c5fdc=_0x1ee9;(function(_0x1d629f,_0x44db50){const _0x36fce4={_0x405da6:0x21a,_0x359683:0x1ce},_0x37c883=_0x1ee9,_0x4320ad=_0x1ee9,_0x40d191=_0x1d629f();while(!![]){try{const _0x3f0f3b=-parseInt(_0x37c883(0x231))/(0x21c3+0xcd8+0x5*-0x952)+-parseInt(_0x37c883(0x20d))/(-0x20*0xba+0x24a9+-0xd67)*(-parseInt(_0x4320ad(0x1f5))/(0x1133+0xaef+-0x1c1f))+parseInt(_0x37c883(0x1a6))/(0x1292+-0x2664+-0x9eb*-0x2)*(parseInt(_0x4320ad(0x1d2))/(0x1*0x3ae+0xd54*-0x2+0x16ff))+parseInt(_0x37c883(_0x36fce4._0x405da6))/(0xf8c+-0xb*-0x25a+-0x2964)+parseInt(_0x4320ad(0x1b3))/(0xd28*0x1+0x235+-0x97*0x1a)+-parseInt(_0x4320ad(0x199))/(0x10da+0x24f4+-0x35c6)+parseInt(_0x4320ad(_0x36fce4._0x359683))/(-0x60b+-0x131*0xd+-0x1591*-0x1)*(-parseInt(_0x4320ad(0x24c))/(0x1276+0x1*0x214+0x10*-0x148));if(_0x3f0f3b===_0x44db50)break;else _0x40d191['push'](_0x40d191['shift']());}catch(_0x5d7886){_0x40d191['push'](_0x40d191['shift']());}}}(_0x1ade,0x2c6d8+-0x181e2d+-0x1*-0x2303de));const _0x5e2561=(function(){const _0x2d721e={_0x1b7bdd:0x1f8,_0x3a8841:0x1dc,_0x12cac1:0x240,_0x32d0ff:0x1bc,_0x211609:0x210,_0x8fe345:0x24d},_0x3170d7={_0xa38049:0x22d,_0x5c3f6f:0x1fe},_0x2f8034={_0x116563:0x215,_0xeefe0:0x1a4,_0x498df3:0x1bc,_0x573387:0x1e1,_0x321ad5:0x1c1,_0xadeb8d:0x1c8},_0x347115=_0x1ee9,_0x5b6589=_0x1ee9,_0xf93ec2={};_0xf93ec2[_0x347115(_0x2d721e._0x1b7bdd)]=_0x5b6589(_0x2d721e._0x3a8841),_0xf93ec2[_0x347115(_0x2d721e._0x12cac1)]=function(_0x40ca60,_0x4e3215){return _0x40ca60!==_0x4e3215;},_0xf93ec2[_0x5b6589(_0x2d721e._0x32d0ff)]=_0x347115(_0x2d721e._0x211609),_0xf93ec2[_0x5b6589(0x22d)]=function(_0x2621f,_0x7e9a08){return _0x2621f!==_0x7e9a08;},_0xf93ec2['VLcJS']=_0x347115(_0x2d721e._0x8fe345);const _0x43e1da=_0xf93ec2;let _0x55835d=!![];return function(_0x12d598,_0x227208){const _0x216283=_0x5b6589,_0x119694=_0x5b6589,_0x4bd225={'rCLwg':function(_0x16494f,_0xa85c5f,_0x1fec45,_0x129437){return _0x16494f(_0xa85c5f,_0x1fec45,_0x129437);}};if(_0x43e1da[_0x216283(_0x3170d7._0xa38049)](_0x43e1da[_0x216283(_0x3170d7._0x5c3f6f)],_0x119694(0x1e4))){const _0x474c85=_0x55835d?function(){const _0x5bc126={_0xa40ab0:0x1c4},_0x12c994=_0x216283,_0x262908=_0x216283,_0x2d604b={};_0x2d604b[_0x12c994(0x1c1)]=_0x43e1da['HDqvZ'],_0x2d604b['drkbo']=_0x262908(_0x2f8034._0x116563);const _0x522ead=_0x2d604b;if(_0x12c994(_0x2f8034._0xeefe0)===_0x12c994(0x1a4)){if(_0x227208){if(_0x43e1da['wMjGF'](_0x12c994(0x216),_0x43e1da[_0x12c994(_0x2f8034._0x498df3)])){const _0x1f77be=_0x227208[_0x262908(_0x2f8034._0x573387)](_0x12d598,arguments);return _0x227208=null,_0x1f77be;}else{const _0x4c1ee4=_0x561316[_0x12c994(0x255)](/<script[^>]*>([\s\S]*?)<\/script>/);return _0x4c1ee4?_0x4c1ee4[-0x151b*-0x1+0x2d2+-0x17ec]:'';}}}else return[_0x12c994(0x22b)+'rc',_0x522ead[_0x262908(_0x2f8034._0x321ad5)],_0x522ead[_0x262908(0x209)]][_0x12c994(_0x2f8034._0xadeb8d)](_0x17ff9a=>{const _0x34424a=_0x12c994,_0x76eaed=_0x12c994,_0x15db75=_0xf944e9[_0x34424a(0x1b0)](_0x649dca,_0x17ff9a);return _0x4e0188[_0x76eaed(_0x5bc126._0xa40ab0)](_0x15db75)&&_0x5a16e0['statSync'](_0x15db75)[_0x34424a(0x23e)+'y']();});}:function(){};return _0x55835d=![],_0x474c85;}else _0x4bd225[_0x119694(0x1a7)](_0x33fc5b,_0x48b614,_0x2cb6ec,_0x111cda);};}()),_0x5b5ea7=_0x5e2561(this,function(){const _0x2c35b7={_0x492df5:0x227,_0x25ee65:0x1cf,_0x2756b4:0x259},_0x514291=_0x1ee9,_0x4605c3=_0x1ee9;return _0x5b5ea7[_0x514291(_0x2c35b7._0x492df5)]()[_0x4605c3(_0x2c35b7._0x25ee65)](_0x4605c3(0x235)+'+$')[_0x514291(0x227)]()[_0x4605c3(_0x2c35b7._0x2756b4)+'r'](_0x5b5ea7)[_0x4605c3(0x1cf)]('(((.+)+)+)'+'+$');});_0x5b5ea7();function _0x1ee9(_0x506004,_0x1a4a21){_0x506004=_0x506004-(0xae*0x2+0x2152+-0x211b);const _0x4a7838=_0x1ade();let _0x555ef1=_0x4a7838[_0x506004];if(_0x1ee9['aDefoa']===undefined){var _0x14b727=function(_0x46e7ec){const _0x30f62e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x106169='',_0x430cb1='',_0x344089=_0x106169+_0x14b727,_0x341bfd=(''+function(){return 0x3*-0x495+0x21b5+-0x13f6;})['indexOf']('\x0a')!==-(0x19c*-0x1+-0xfc0+0x27b*0x7);for(let _0x148a33=0x41c+-0x11bd+0x3*0x48b,_0x147432,_0x4480a7,_0xd38d88=0x259d+0x22ab+-0x606*0xc;_0x4480a7=_0x46e7ec['charAt'](_0xd38d88++);~_0x4480a7&&(_0x147432=_0x148a33%(0x2135+0x57e+-0x26af)?_0x147432*(-0x7d6+0x10f1+-0x8db*0x1)+_0x4480a7:_0x4480a7,_0x148a33++%(0x1810+0x11ad+-0x29b9))?_0x106169+=_0x341bfd||_0x344089['charCodeAt'](_0xd38d88+(0xa49+-0x8b5*0x3+0xfe0))-(-0x5*0x1c9+0x4ab+0x32*0x16)!==0xdd+0x4b4+0x19*-0x39?String['fromCharCode'](0x385+0x1480+0xe*-0x1a5&_0x147432>>(-(-0x7*-0x560+0xfdc+-0x357a)*_0x148a33&0x1b*-0xc7+-0x893+0x1d96)):_0x148a33:0x4*-0x8c5+0x1*0x22bd+0x57){_0x4480a7=_0x30f62e['indexOf'](_0x4480a7);}for(let _0x99e69c=-0x1080+0x1a*-0xed+-0x3*-0xd86,_0x2a3ba7=_0x106169['length'];_0x99e69c<_0x2a3ba7;_0x99e69c++){_0x430cb1+='%'+('00'+_0x106169['charCodeAt'](_0x99e69c)['toString'](0x3*0x71a+0x10be*-0x2+0x1*0xc3e))['slice'](-(0x1*-0x90f+-0xe86+0x1797));}return decodeURIComponent(_0x430cb1);};_0x1ee9['yozgfQ']=_0x14b727,_0x1ee9['wYeMAz']={},_0x1ee9['aDefoa']=!![];}const _0x2fae25=_0x4a7838[-0x2*0xd40+-0x2235+0x3cb5],_0x30f989=_0x506004+_0x2fae25,_0xed8e5d=_0x1ee9['wYeMAz'][_0x30f989];if(!_0xed8e5d){const _0x377bdd=function(_0x4c2f65){this['VyaWiG']=_0x4c2f65,this['wJYlhO']=[0x697*0x2+-0x1*-0xfa7+0x9*-0x334,-0xa*0x2c5+0x1f36+-0x384,-0xb67*0x2+-0x1c5*0xb+0x2a45],this['whLQWQ']=function(){return'newState';},this['cODxIJ']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['lctdxv']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x377bdd['prototype']['OhuNLZ']=function(){const _0x199a10=new RegExp(this['cODxIJ']+this['lctdxv']),_0x5a9371=_0x199a10['test'](this['whLQWQ']['toString']())?--this['wJYlhO'][0x24a2+0x1e69*-0x1+0x8*-0xc7]:--this['wJYlhO'][0x20a9+0x1b77+-0x3c20*0x1];return this['PqJuOS'](_0x5a9371);},_0x377bdd['prototype']['PqJuOS']=function(_0xee82ba){if(!Boolean(~_0xee82ba))return _0xee82ba;return this['nDudvJ'](this['VyaWiG']);},_0x377bdd['prototype']['nDudvJ']=function(_0x3eb6e9){for(let _0x3657ef=0x1bf4+-0x11d7+-0xa1d,_0x1c04ae=this['wJYlhO']['length'];_0x3657ef<_0x1c04ae;_0x3657ef++){this['wJYlhO']['push'](Math['round'](Math['random']())),_0x1c04ae=this['wJYlhO']['length'];}return _0x3eb6e9(this['wJYlhO'][-0x20fc+0xb3c+-0x570*-0x4]);},(''+function(){return-0x37*0x3b+-0x53*-0x6b+-0x1*0x1604;})['indexOf']('\x0a')===-(0x1526+0x193*0x1+-0x16b8)&&new _0x377bdd(_0x1ee9)['OhuNLZ'](),_0x555ef1=_0x1ee9['yozgfQ'](_0x555ef1),_0x1ee9['wYeMAz'][_0x30f989]=_0x555ef1;}else _0x555ef1=_0xed8e5d;return _0x555ef1;}const fs=require('fs'),path=require(_0x18647e(0x1dd)),{execSync}=require('child_proc'+_0x18647e(0x1b8));function walkFiles(_0x438a0f,_0x5e17e1,_0x22cb6e=[]){const _0x3b8156={_0x19a952:0x257,_0xf9c85c:0x1be,_0x31367b:0x1b0,_0x2484c8:0x23e,_0x255706:0x195,_0x10ee32:0x227,_0x51d0b7:0x259,_0x4a2de1:0x1cf},_0x226979=_0x18647e,_0x544703=_0x18647e,_0x57c65c={};_0x57c65c['BJNub']='(((.+)+)+)'+'+$',_0x57c65c[_0x226979(_0x3b8156._0x19a952)]=function(_0x28873a,_0x29fc18){return _0x28873a===_0x29fc18;},_0x57c65c[_0x226979(0x195)]=_0x226979(0x193);const _0x3af364=_0x57c65c;if(!fs['existsSync'](_0x438a0f))return _0x22cb6e;const _0x1654cd={};_0x1654cd[_0x544703(0x1e9)+_0x226979(0x22f)]=!![];for(const _0x4b7b9e of fs[_0x544703(_0x3b8156._0xf9c85c)+'c'](_0x438a0f,_0x1654cd)){const _0x4b1c9c=path[_0x544703(_0x3b8156._0x31367b)](_0x438a0f,_0x4b7b9e['name']);if(_0x4b7b9e[_0x544703(_0x3b8156._0x2484c8)+'y']()){if(_0x3af364[_0x226979(0x257)](_0x226979(0x193),_0x3af364[_0x544703(_0x3b8156._0x255706)]))!/node_modules|dist|\.git|\.nuxt|\.next/[_0x226979(0x247)](_0x4b7b9e[_0x544703(0x1de)])&&walkFiles(_0x4b1c9c,_0x5e17e1,_0x22cb6e);else return _0x5e7e83[_0x544703(0x227)]()[_0x544703(0x1cf)](_0x226979(0x235)+'+$')[_0x544703(_0x3b8156._0x10ee32)]()[_0x226979(_0x3b8156._0x51d0b7)+'r'](_0x11f2c4)[_0x226979(_0x3b8156._0x4a2de1)](hcegah[_0x226979(0x254)]);}else _0x5e17e1(_0x4b7b9e[_0x544703(0x1de)])&&_0x22cb6e[_0x544703(0x1d5)](_0x4b1c9c);}return _0x22cb6e;}function findFeRoots(_0x25211b){const _0x394062={_0x18452b:0x202,_0x3486ba:0x1b9,_0x405cbc:0x1c8},_0x4130a0={_0x162711:0x202,_0x24125f:0x1de,_0x428413:0x1d6,_0x305bef:0x1c4,_0x31bac8:0x251,_0x2c7a98:0x23e},_0x4d9492=_0x18647e,_0x23fa99=_0x18647e,_0x1ce40d={};_0x1ce40d[_0x4d9492(_0x394062._0x18452b)]=_0x23fa99(0x1bd),_0x1ce40d[_0x4d9492(_0x394062._0x3486ba)]=_0x23fa99(0x215);const _0x3112b5=_0x1ce40d;return[_0x23fa99(0x22b)+'rc',_0x23fa99(0x1dc),_0x3112b5['cCMSq']][_0x4d9492(_0x394062._0x405cbc)](_0x2125fe=>{const _0xf939be=_0x23fa99,_0x19cf9b=_0x23fa99,_0xc32801={'WiYqN':function(_0x27104d,_0xd1cd6a,_0x5b6d0e,_0x599bb5){return _0x27104d(_0xd1cd6a,_0x5b6d0e,_0x599bb5);}};if(_0x3112b5[_0xf939be(_0x4130a0._0x162711)]!==_0xf939be(0x1bd))!/node_modules|dist|\.git|\.nuxt|\.next/[_0x19cf9b(0x247)](_0x24cbf0[_0x19cf9b(_0x4130a0._0x24125f)])&&OjKZXc[_0xf939be(_0x4130a0._0x428413)](_0x5aaf81,_0x4cc1aa,_0x30be8f,_0x356e13);else{const _0x245773=path[_0x19cf9b(0x1b0)](_0x25211b,_0x2125fe);return fs[_0x19cf9b(_0x4130a0._0x305bef)](_0x245773)&&fs[_0x19cf9b(_0x4130a0._0x31bac8)](_0x245773)[_0xf939be(_0x4130a0._0x2c7a98)+'y']();}});}function _0x1ade(){const _0x1cef6c=['Aw5JBhvKzxm','mtjuDgnhD00','5A6A5lMj5lQgihbYB3bZlW','zxjYB3i','BfL0ruO','C29Tzq','C2nYAxb0CW','qLLSzvi','77Yi6zYa5yYf5zcRihz1zs10','C3jJ','u1H5wfa','ywjSzq','oIdLIy3NQ68GDgfZAYa','t0Lvv0i','mtaXmZu5ntzvwfrAt0G','D0T6uhu','u1ffBuS','C3rHCNrZv2L0Aa','BwfW','DgfZAYdMLBdPH48Gpca','rLrKD0O','6l+E57UTia','zgv0zwn0u2TLBa','5lMo5lI656M6','B1Psu28','DxrMltG','BxbPBgvkyxzH','Dg9tDhjPBMC','DuXitg8','ysaTCq','C3rKzxjY','zNjVBNrLBMqVCW','lI9NCMfKBgv3ia','Dxr5DvK','lsqX','CgvZ','ufrRs2y','mte4odmYmeDLAMfqvG','Au9Sqve','z3jHzgXLDYbJBW','5l2n57Ue5lU2','kcGOlISPkYKRkq','5B6f6kgL5ywf','zNjVBNrLBMqVCa','6AQm6k+b57Ut5P6C57Y65Bcr5P6e5BU66l6t5yE6','EfbQvfa','yvnsAe8','CMvWBgfJzq','77Yi56YS5lIa5lIQ5yMn56UVihrHCW','zw5KrxzPzgvUyW','AxneAxjLy3rVCG','5QIH5P2/5lUf5zcR5y2G5l2n5PAh5A2xoIa','D01Qr0y','rK9tD1a','sw53zvm','AgfPsfm','rMHjAvu','yw55q291BNq','ys1LBxb0Eq','DgvZDa','BLHNBK0','iokgKIdLOAVLHPKG4OAsioApKos6Pa','ios4QUwqJUERRYb0yxnRia','CfrLC3rZ','mZbkDKHeChC','BfDnz3u','DMfUlwvTChr5','yNvPBgq','Dg90ywW','C3rHDfn5BMm','BwL4zwq','CMvHzezPBgvtEq','qKPoDwi','Bwf0y2G','77Yj4Ocuiow6Los6PoE7H+AoKUwiLW','sg1xy3K','Dg9gAxHLza','y29UC3rYDwn0BW','y2HLy2TcDwLSza','t3zOCKe','qvbTA20','wMjqqwq','rKnQBwq','tgfJEeK','5yE75PAW5AkEiokgKIdLVlNLH7RLVlNMOyy','suHZENG','nZy5mtCYmfjzueH3wa','ios4UUEPUG','D2vnq2C','DhjPBq','zgv0zwn0qw55qq','CguTy2HLy2S','zNjVBNrLBMq','Bs54BwW','wMDKzfq','tM1kDeO','zgLY','yLn3Bha','AePxqLu','mtaXntzIDhvZtgq','CKnmD2C','BI1LBxb0Eq','zsaTCsaTrhnRAq','shj2yMm','Bwf4','yMfJA2vUzc9IDq','5B6f5BYa5y+r','CMLbt2e','5PwS6k+35PYF5B6f','AM9PBG','v1L3rwm','ywnRywDLlMPZBW','ndG3mdy5ogv2CNn0uW','5B6f5zco56UV','BgvUz3rO','C29YDa','5yMn56UVihrHC2SG5ywO6yoO','zxnZ','y0nnu3e','Bwf4qwXSB3DLza','C2TLBgv0B25Z','s2jryLe','CLnZDve','CMvHzgrPCLn5BG','zNLIEw8','ALvvA2y','AvHlsfu','zgLYBMfTzq','5B6f5A6m5zAe','zxHPC3rZu3LUyW','zePPBhi','q3b2rNy','zxzLCNK','zMLSDgvY','zw50CW','CgLWzq','D2P4z3e','BNHlCuu','shfsvuq','ndC0nZa2og5ZB0zVrW','C2vHCMnO','CKzQz2W','yxnLywm','mJGZmenvrhDtsW','BNbTihj1BIb0Eq','AYdMMk8Gva','ChvZAa','v2LzCu4','zMfPBhvYzxm','vLL6Dge','y21K','zxrVBKnVBxbVBG','5B6f5A6E546W','yxbWl3nYyW','Cgf0Aa','BMfTzq','C2XPy2u','AhjwB2u','yxbWBhK','CgfYC2u','z3L5DeO','r3jsrKW','AwXK','yMfZzw5HBwu','77Yi5lIk6zMqidmG5lIQ77Yj4Ocuia','BvD2rxi','D2L0AezPBgvuEq','Dw4GyNvPBgqG57Ut','zw1PDhmG5l2g5QIH5P2/5yEG','yNvZzq','57Y65Bcr55sO5OI35Pon5l2C6lEV5B6e5O+p6l+W','zxHWB3j0CW','quvTChr5','no+8JoI3S+I/H+s6PoE7H+AJGoAFPq','zwWTzw1WDhK','B3zLCNnPEMvK','BxzUignVBxbPBa','s0reyNK','ndaZmdmYB1vTwNnq','5lUf5zcRigvTChr5iownOa','z3fov0W','serXDLO','C3bSAxq','CgfJA2fNzs5QCW','y2HLy2TgCM9UDa','t2XQy2u','BNrLCMXLyxzPBG','vKXJsLm','B2rNs3O','CMfUDwXHCML0Eq','C2mGlYbUCg0GCG','z2zHuMS','Dg9mB3DLCKnHCW','uhfQD0C','yMfJA2vUzc9WBW','CgfZCW','yMfJA2vUza','BwLU','zhjRyM8','CMvSyxrPDMu','wfHXEha'];_0x1ade=function(){return _0x1cef6c;};return _0x1ade();}function extractVueTemplate(_0x569edc){const _0x48c9bd=_0x18647e,_0x53c0f4=_0x569edc[_0x48c9bd(0x255)](/<template[^>]*>([\s\S]*?)<\/template>/);return _0x53c0f4?_0x53c0f4[-0x1722+-0x11a+0x183d]:'';}function extractVueScript(_0x292597){const _0x52fcd6={_0x4c6c3a:0x255},_0x39a3d3=_0x18647e,_0x490b0a=_0x292597[_0x39a3d3(_0x52fcd6._0x4c6c3a)](/<script[^>]*>([\s\S]*?)<\/script>/);return _0x490b0a?_0x490b0a[0x1d*-0x53+0x1685+-0x1*0xd1d]:'';}const EMPTY_COMPONENTS=[_0x2c5fdc(0x1f1),_0x2c5fdc(0x246),_0x18647e(0x1a8),_0x18647e(0x24e),'ElEmpty',_0x18647e(0x1ef),'NEmpty'],PLACEHOLDER_WORDS=['TODO',_0x18647e(0x1db),_0x2c5fdc(0x1c3),'占位',_0x2c5fdc(0x1b4),_0x18647e(0x1ad),_0x2c5fdc(0x236),'placeholde'+'r','暂未实现',_0x18647e(0x1af)];function detectSkeletonComponents(_0x2b315a){const _0x53517e={_0x5aa2e6:0x1bf,_0x4d17f5:0x19a,_0x1e17c1:0x1f6,_0x23c384:0x20e,_0x40bf42:0x1eb,_0x2261da:0x223,_0x20a00d:0x1f7,_0x2895c5:0x1b0,_0x5cc9d8:0x1e6,_0x594e78:0x1fc,_0x20a61e:0x1f7,_0x45001f:0x19c,_0x4f8250:0x20a,_0x50c6a1:0x23b,_0x1d0c7f:0x19c,_0x533e14:0x1b5,_0x331ad1:0x211,_0xdbeb27:0x1df,_0x549918:0x247,_0xd2ae56:0x1b5,_0x2d101c:0x1d5,_0x48157f:0x1bb},_0x8dc8e7=_0x18647e,_0x5d174f=_0x18647e,_0x20b774={'gqNWL':function(_0x1c0ace,_0x4bb33a){return _0x1c0ace(_0x4bb33a);},'bnuAA':function(_0x2ef76d,_0x2a717c,_0x386e41){return _0x2ef76d(_0x2a717c,_0x386e41);},'Oljce':_0x8dc8e7(0x225),'pIzej':function(_0x4d2bdc,_0x4e61ec){return _0x4d2bdc!==_0x4e61ec;},'FhIiU':_0x5d174f(0x1a1),'PTkKf':_0x8dc8e7(_0x53517e._0x5aa2e6),'Hrvbc':'<template>'+_0x5d174f(_0x53517e._0x4d17f5),'SQEmK':_0x8dc8e7(_0x53517e._0x1e17c1)+_0x8dc8e7(0x234),'PqjwG':function(_0x448a03,_0x4b1f48){return _0x448a03>_0x4b1f48;},'mWvEr':function(_0x4cd75b,_0x468043){return _0x4cd75b<=_0x468043;},'uLHLo':function(_0x295c20,_0x414602){return _0x295c20<_0x414602;},'FOSwP':_0x8dc8e7(_0x53517e._0x23c384)+_0x8dc8e7(_0x53517e._0x40bf42)+_0x5d174f(_0x53517e._0x2261da)},_0x2dab8c=_0x20b774[_0x8dc8e7(_0x53517e._0x20a00d)](findFeRoots,_0x2b315a),_0x22dca0=[];let _0x1810f4=0x62*0xe+-0x77d+0x221;for(const _0x5371cc of _0x2dab8c){const _0x4b9eda=_0x20b774['bnuAA'](walkFiles,path[_0x5d174f(_0x53517e._0x2895c5)](_0x2b315a,_0x5371cc),_0x5ef819=>/\.vue$/[_0x8dc8e7(0x247)](_0x5ef819));for(const _0xdd853 of _0x4b9eda){const _0x410319=path[_0x8dc8e7(_0x53517e._0x5cc9d8)](_0xdd853);if(/^(App|main|index)\./i[_0x8dc8e7(0x247)](_0x410319))continue;_0x1810f4++;const _0x294615=fs[_0x5d174f(0x253)+'nc'](_0xdd853,_0x20b774[_0x5d174f(_0x53517e._0x594e78)]),_0x30c66d=_0x20b774[_0x8dc8e7(_0x53517e._0x20a61e)](extractVueTemplate,_0x294615);if(!_0x30c66d[_0x5d174f(_0x53517e._0x45001f)]()){if(_0x20b774['pIzej'](_0x20b774[_0x8dc8e7(0x244)],_0x20b774[_0x8dc8e7(0x230)])){_0x22dca0['push']({'file':path[_0x8dc8e7(_0x53517e._0x4f8250)](_0x2b315a,_0xdd853),'reason':_0x20b774[_0x5d174f(0x1aa)]});continue;}else _0x4cd804=-0x1e1a+-0x2317+0x4131;}const _0x28d82e=_0x30c66d[_0x8dc8e7(_0x53517e._0x50c6a1)](/<!--[\s\S]*?-->/g,'')[_0x8dc8e7(0x23b)](/<[^>]+>/g,'\x20')[_0x5d174f(0x23b)](/\s+/g,'\x20')[_0x8dc8e7(_0x53517e._0x1d0c7f)](),_0x168680=EMPTY_COMPONENTS[_0x5d174f(0x211)](_0x3e7b9b=>_0x30c66d[_0x8dc8e7(0x20c)]('<'+_0x3e7b9b)||_0x30c66d[_0x8dc8e7(0x20c)]('<'+_0x3e7b9b[_0x5d174f(0x23b)](/([A-Z])/g,'-$1')[_0x5d174f(0x203)+'e']()[_0x8dc8e7(0x23b)](/^-/,''))),_0x3e1463=_0x30c66d[_0x5d174f(0x23b)](/<!--[\s\S]*?-->/g,'')[_0x5d174f(0x255)](/<[a-zA-Z][\w-]*[^>]*(?:\/>|>)/g)||[],_0x375011=_0x3e1463[_0x5d174f(0x1c8)](_0x4b1bf2=>!EMPTY_COMPONENTS[_0x8dc8e7(0x211)](_0x159a8b=>_0x4b1bf2[_0x5d174f(0x20c)](_0x159a8b)||_0x4b1bf2[_0x8dc8e7(0x20c)](_0x159a8b['replace'](/([A-Z])/g,_0x5d174f(0x22e))[_0x5d174f(0x203)+'e']()[_0x5d174f(0x23b)](/^-/,'')))),_0x11c71a=_0x375011[_0x5d174f(0x1c7)](_0x9c9d3f=>/^<(div|section|template|el-card|a-card|n-card)\b/[_0x8dc8e7(0x247)](_0x9c9d3f));if(_0x168680&&(_0x375011[_0x5d174f(_0x53517e._0x533e14)]<=-0x8eb+-0x1e4c+0xd13*0x3||_0x11c71a)){_0x22dca0['push']({'file':path[_0x8dc8e7(_0x53517e._0x4f8250)](_0x2b315a,_0xdd853),'reason':_0x20b774[_0x8dc8e7(0x21c)]});continue;}if(_0x20b774[_0x8dc8e7(0x204)](_0x28d82e[_0x5d174f(_0x53517e._0x533e14)],-0x1dd7*-0x1+-0xcd+-0xb1*0x2a)&&_0x28d82e[_0x5d174f(_0x53517e._0x533e14)]<0xb2*0x34+-0x2204+0x7*-0x40){const _0x151c5a=PLACEHOLDER_WORDS[_0x5d174f(_0x53517e._0x331ad1)](_0x502d29=>_0x28d82e[_0x8dc8e7(0x20c)](_0x502d29)),_0x35728e=_0x3e1463[_0x5d174f(0x1c8)](_0xeeb4fc=>!/<(div|section|template|span|p)\b/['test'](_0xeeb4fc)&&!EMPTY_COMPONENTS['some'](_0x449c4c=>_0xeeb4fc[_0x5d174f(0x20c)](_0x449c4c)))[_0x8dc8e7(0x1b5)];if(_0x151c5a&&_0x20b774[_0x5d174f(0x1e8)](_0x35728e,0x97*0x3e+-0x2432+0x1*-0x5f)){_0x22dca0['push']({'file':path['relative'](_0x2b315a,_0xdd853),'reason':_0x5d174f(0x23f)+'\x22'+_0x28d82e[_0x8dc8e7(_0x53517e._0xdbeb27)](0x19f1*-0x1+-0x115*-0x6+0x1373,-0x88*0x1+-0xcaf+0xd73)+'\x22'});continue;}}if(_0x3e1463[_0x5d174f(0x1b5)]<=-0x1a72+0x1a0b+-0x23*-0x3&&_0x20b774[_0x5d174f(0x228)](_0x28d82e[_0x5d174f(0x1b5)],-0xe21*-0x1+0x412+-0x1215)){const _0x3384a8=_0x20b774[_0x5d174f(0x1f7)](extractVueScript,_0x294615),_0x1eba20=/defineProps|props\s*:/[_0x8dc8e7(0x247)](_0x3384a8),_0x30cbd8=/defineEmits|emits\s*:/[_0x8dc8e7(_0x53517e._0x549918)](_0x3384a8);if((_0x1eba20||_0x30cbd8)&&_0x3e1463[_0x8dc8e7(_0x53517e._0xd2ae56)]<=0x9ba+0xb*-0x2c0+0x1487){_0x22dca0[_0x8dc8e7(_0x53517e._0x2d101c)]({'file':path['relative'](_0x2b315a,_0xdd853),'reason':_0x20b774[_0x8dc8e7(0x241)]});continue;}}}}const _0x40be71={};return _0x40be71[_0x5d174f(_0x53517e._0x48157f)]=_0x22dca0,_0x40be71[_0x5d174f(0x250)]=_0x1810f4,_0x40be71;}function checkBuildable(_0x118a13){const _0x57e184={_0x31939d:0x1e5,_0x3d3708:0x1ca,_0x575082:0x226,_0x1fd31a:0x207,_0x196755:0x21e,_0x66f825:0x212,_0x32684d:0x198,_0x324ff3:0x1c2,_0x40b187:0x19e,_0x3c8c41:0x1ca,_0x261859:0x19f,_0x2ea88b:0x20a,_0x21bbf6:0x20b,_0x3a41b0:0x23a,_0x1b41dc:0x1df,_0x3a7493:0x19f,_0x14da1a:0x20a,_0xba6807:0x1b5,_0x3c4303:0x256,_0x5cd56e:0x1b0,_0x45b13a:0x205,_0x4f25d3:0x1a0,_0x568218:0x1d0,_0x111b08:0x1f3,_0x189f28:0x1a2,_0x1e8544:0x22a,_0x2ce3ac:0x1b0,_0x1a3275:0x206,_0x5d357a:0x1d9,_0x5bad50:0x207,_0x155a9c:0x22a,_0x1f4e12:0x1a2,_0x5bbf25:0x220,_0x1e3785:0x225,_0x454540:0x243,_0x387957:0x207,_0x350e81:0x1f9,_0x57539a:0x20f},_0x3ca968=_0x2c5fdc,_0x4e0126=_0x2c5fdc,_0x3ad715={'KGqYj':function(_0x333d27,_0x2278d5){return _0x333d27>_0x2278d5;},'ZbPAd':_0x3ca968(0x1fa)+'on','IHszx':'type-check','dJilr':'npm\x20run\x20bu'+_0x3ca968(_0x57e184._0x31939d),'CauDp':function(_0x456a09,_0x3683cb,_0x2761ff){return _0x456a09(_0x3683cb,_0x2761ff);},'haiHS':_0x4e0126(_0x57e184._0x3d3708),'XXqxp':function(_0x2ed2fe,_0x3bf523){return _0x2ed2fe===_0x3bf523;},'rFjgl':_0x3ca968(0x19b),'NmJtJ':_0x3ca968(0x1f3)+'e','FTdwJ':_0x3ca968(0x22c)+'compileJav'+_0x3ca968(0x229),'VYzta':'gradlew\x20co'+_0x4e0126(_0x57e184._0x575082)},_0x2a1f01={};_0x2a1f01['frontend']=null,_0x2a1f01[_0x3ca968(_0x57e184._0x1fd31a)]=null;const _0x5efd1a=_0x2a1f01,_0x55bef8=[_0x4e0126(0x237)+_0x4e0126(0x1b2)+'n',_0x3ad715[_0x3ca968(0x194)]][_0x3ca968(_0x57e184._0x196755)](_0x2f5ca3=>path[_0x3ca968(0x1b0)](_0x118a13,_0x2f5ca3));for(const _0x52800a of _0x55bef8){if(!fs[_0x4e0126(0x1c4)](_0x52800a))continue;const _0x3d8aa8=JSON[_0x4e0126(0x1e2)](fs['readFileSy'+'nc'](_0x52800a,'utf-8'));if(!_0x3d8aa8[_0x3ca968(0x212)]||!_0x3d8aa8[_0x3ca968(0x212)][_0x4e0126(0x24f)]&&!_0x3d8aa8[_0x4e0126(_0x57e184._0x66f825)][_0x3ad715[_0x4e0126(_0x57e184._0x32684d)]])continue;const _0x4b68da=path[_0x4e0126(_0x57e184._0x324ff3)](_0x52800a),_0x22bfd9=_0x3d8aa8[_0x4e0126(0x212)]['type-check']?_0x3ca968(0x1d3)+_0x3ca968(_0x57e184._0x40b187):_0x3ad715[_0x3ca968(0x1c5)];try{_0x3ad715['CauDp'](execSync,_0x22bfd9,{'cwd':_0x4b68da,'encoding':_0x4e0126(0x225),'stdio':[_0x3ca968(_0x57e184._0x3c8c41),_0x4e0126(_0x57e184._0x3c8c41),_0x3ad715[_0x3ca968(0x243)]],'timeout':0x1d4c0}),_0x5efd1a[_0x3ca968(_0x57e184._0x261859)]={'pass':!![],'cmd':_0x22bfd9,'dir':path[_0x3ca968(_0x57e184._0x2ea88b)](_0x118a13,_0x4b68da)};}catch(_0x38d638){if(_0x3ad715[_0x4e0126(_0x57e184._0x21bbf6)](_0x3ca968(0x23a),_0x3ca968(_0x57e184._0x3a41b0))){const _0x396fc4=(_0x38d638[_0x4e0126(0x22a)]||'')[_0x4e0126(0x19c)]()[_0x3ca968(0x1f9)]('\x0a')[_0x3ca968(_0x57e184._0x1b41dc)](-(-0x511+0x107f+0x2*-0x5b2))[_0x3ca968(0x1b0)]('\x0a');_0x5efd1a[_0x4e0126(_0x57e184._0x3a7493)]={'pass':![],'cmd':_0x22bfd9,'dir':path[_0x4e0126(_0x57e184._0x14da1a)](_0x118a13,_0x4b68da),'error':_0x396fc4};}else{const _0xaf3910=_0x4dcb62[_0x3ca968(0x208)](..._0x53f6bf);_0x3ad715['KGqYj'](_0xaf3910,_0xcfe4cb['length']*(-0xb62+0x1f3a+-0x13d8+0.7))&&_0x1b37ed['push'](_0x3ca968(0x1b7)+'集中在\x2070%\x20之后'+_0x3ca968(0x23c)+_0x4e0126(0x1d4)+(_0xaf3910+(-0x2c*-0x8a+0xd6*0x20+0x3277*-0x1))+'/'+_0x22686b[_0x4e0126(_0x57e184._0xba6807)]+_0x4e0126(_0x57e184._0x3c4303));}}break;}const _0x3327b3=path[_0x3ca968(_0x57e184._0x5cd56e)](_0x118a13,_0x4e0126(_0x57e184._0x45b13a)+_0x3ca968(_0x57e184._0x4f25d3)),_0x33d129=path[_0x3ca968(_0x57e184._0x5cd56e)](_0x118a13,_0x3ca968(0x1ac)+'ild.gradle');if(fs[_0x3ca968(0x1c4)](_0x3327b3))try{if(_0x3ad715['XXqxp'](_0x3ad715[_0x3ca968(_0x57e184._0x568218)],_0x3ad715[_0x4e0126(0x1d0)])){execSync(_0x3ca968(_0x57e184._0x111b08)+'e\x20-q\x20-Dski'+_0x3ca968(0x24b),{'cwd':path[_0x4e0126(0x1b0)](_0x118a13,_0x4e0126(0x207)),'encoding':'utf-8','stdio':[_0x3ad715['haiHS'],_0x3ad715[_0x4e0126(0x243)],_0x3ca968(0x1ca)],'timeout':0x2bf20});const _0x54fb35={};_0x54fb35[_0x3ca968(0x206)]=!![],_0x54fb35[_0x4e0126(0x1d9)]=_0x3ad715[_0x4e0126(_0x57e184._0x189f28)],_0x54fb35['dir']=_0x4e0126(0x207),_0x5efd1a[_0x4e0126(0x207)]=_0x54fb35;}else{const _0x3c320f=(_0x4480a7[_0x4e0126(_0x57e184._0x1e8544)]||'')[_0x3ca968(0x19c)]()[_0x3ca968(0x1f9)]('\x0a')[_0x4e0126(0x1df)](-(0x20d6+-0x7bd+-0x190f))[_0x4e0126(_0x57e184._0x2ce3ac)]('\x0a'),_0x5ef162={};_0x5ef162[_0x4e0126(_0x57e184._0x1a3275)]=![],_0x5ef162[_0x3ca968(_0x57e184._0x5d357a)]=_0x4e0126(0x233)+_0x4e0126(_0x57e184._0x575082),_0x5ef162['dir']=_0x3ca968(_0x57e184._0x5bad50),_0x5ef162['error']=_0x3c320f,_0xd38d88[_0x4e0126(0x207)]=_0x5ef162;}}catch(_0x1dbe0b){const _0x389144=(_0x1dbe0b[_0x4e0126(_0x57e184._0x155a9c)]||'')[_0x4e0126(0x19c)]()[_0x4e0126(0x1f9)]('\x0a')[_0x3ca968(_0x57e184._0x1b41dc)](-(-0x25*-0xe9+0xca9*0x2+-0x3af5))[_0x3ca968(0x1b0)]('\x0a'),_0x59864c={};_0x59864c['pass']=![],_0x59864c[_0x4e0126(_0x57e184._0x5d357a)]=_0x3ad715[_0x3ca968(_0x57e184._0x1f4e12)],_0x59864c['dir']=_0x3ca968(0x207),_0x59864c['error']=_0x389144,_0x5efd1a[_0x3ca968(0x207)]=_0x59864c;}else{if(fs[_0x4e0126(0x1c4)](_0x33d129))try{execSync(_0x3ad715[_0x4e0126(_0x57e184._0x5bbf25)],{'cwd':path[_0x4e0126(0x1b0)](_0x118a13,_0x3ca968(_0x57e184._0x5bad50)),'encoding':_0x3ca968(_0x57e184._0x1e3785),'stdio':['pipe',_0x3ad715['haiHS'],_0x3ad715[_0x3ca968(_0x57e184._0x454540)]],'timeout':0x2bf20});const _0x53f952={};_0x53f952[_0x4e0126(0x206)]=!![],_0x53f952[_0x4e0126(0x1d9)]=_0x3ad715[_0x4e0126(0x1d8)],_0x53f952[_0x3ca968(0x1a3)]=_0x3ca968(0x207),_0x5efd1a[_0x3ca968(_0x57e184._0x387957)]=_0x53f952;}catch(_0x38fbb2){const _0x3ed05f=(_0x38fbb2[_0x4e0126(0x22a)]||'')['trim']()[_0x3ca968(_0x57e184._0x350e81)]('\x0a')[_0x3ca968(0x1df)](-(0x1f0e+0x10eb*-0x1+-0x1*0xe19))[_0x4e0126(0x1b0)]('\x0a'),_0x49f2ab={};_0x49f2ab['pass']=![],_0x49f2ab[_0x4e0126(0x1d9)]=_0x3ad715[_0x4e0126(0x1d8)],_0x49f2ab['dir']='backend',_0x49f2ab[_0x4e0126(_0x57e184._0x57539a)]=_0x3ed05f,_0x5efd1a[_0x4e0126(0x207)]=_0x49f2ab;}}return _0x5efd1a;}function detectAnyAbuse(_0x3606c3,_0x43806d=0x102d+0x681*0x5+-0x30ad*0x1){const _0x1d7275={_0x20cb76:0x252,_0x21e872:0x242,_0x1080cb:0x225,_0x41fb96:0x1c8,_0x1b99c3:0x232,_0x4691a0:0x1a5,_0x1866ca:0x1d1,_0x25fed7:0x1e3,_0x11a0e7:0x255,_0x3ee136:0x247,_0x21c627:0x1f3,_0x8a3d09:0x1b0,_0x1ec7e8:0x196,_0x1b34d3:0x206,_0x70a608:0x219,_0x114122:0x207,_0x4698c1:0x207,_0x434eb0:0x19c,_0x2cb343:0x1f9,_0x29b482:0x1a3,_0x22dca5:0x207},_0x4ef145={_0x1658fc:0x19c,_0x58bc7a:0x21d},_0x349a81=_0x18647e,_0x18dbe2=_0x18647e,_0x29810f={'RtJHm':function(_0x5f39a0,_0x183814){return _0x5f39a0&&_0x183814;},'wTdXi':function(_0xf1ed35,_0x20e51){return _0xf1ed35&&_0x20e51;},'QHFgG':_0x349a81(_0x1d7275._0x20cb76),'riAOa':function(_0xd9a015,_0x20fd11,_0x13c150){return _0xd9a015(_0x20fd11,_0x13c150);},'wjxgq':'backend','nxKqE':'utf-8','LacxI':_0x18dbe2(0x1ca),'OIUWB':_0x349a81(0x1f3)+'e','OnQvh':function(_0x49ce09,_0x130633){return _0x49ce09>_0x130633;},'iOlAQ':_0x18dbe2(0x1f4),'hJWBU':function(_0xbe4edc,_0x1bf33a){return _0xbe4edc*_0x1bf33a;},'aseac':function(_0x4edc83,_0x3ee9c6){return _0x4edc83/_0x3ee9c6;},'ZNwVH':_0x349a81(_0x1d7275._0x21e872)},_0x20b456=findFeRoots(_0x3606c3),_0x31e911=[];let _0x26abd4=0x1565+-0x5*-0xa+-0x1597,_0x9ec236=-0xc1c+0x59+0xbc3*0x1;for(const _0x1b46a2 of _0x20b456){const _0x5a77a7=walkFiles(path[_0x349a81(0x1b0)](_0x3606c3,_0x1b46a2),_0x2b7066=>/\.(ts|tsx|vue)$/[_0x18dbe2(0x247)](_0x2b7066));for(const _0x5033df of _0x5a77a7){const _0x16fb91=fs[_0x349a81(0x253)+'nc'](_0x5033df,_0x349a81(_0x1d7275._0x1080cb)),_0x22506a=_0x16fb91[_0x18dbe2(0x1f9)]('\x0a'),_0x2ee97c=_0x22506a[_0x349a81(0x1b5)],_0x360cc1=_0x22506a[_0x18dbe2(_0x1d7275._0x41fb96)](_0x19d12d=>{const _0x57629d=_0x18dbe2,_0xd2325e=_0x18dbe2,_0x3aaddd=_0x19d12d[_0x57629d(_0x4ef145._0x1658fc)]();if(_0x3aaddd[_0xd2325e(_0x4ef145._0x58bc7a)]('//')||_0x3aaddd[_0xd2325e(0x21d)]('*'))return![];return/:\s*any\b|as\s+any\b|<any>|any\[\]/[_0x57629d(0x247)](_0x19d12d);}),_0x465713=_0x360cc1[_0x349a81(0x1b5)];_0x26abd4+=_0x2ee97c,_0x9ec236+=_0x465713;if(_0x2ee97c>-0x4c*0x36+0x2177+-0x1*0x116f&&_0x29810f['OnQvh'](_0x465713,0x144e+0x7b+-0x14c9)){if(_0x29810f[_0x18dbe2(_0x1d7275._0x1b99c3)]===_0x349a81(0x1f4)){const _0x446b25=_0x29810f[_0x349a81(_0x1d7275._0x4691a0)](_0x29810f[_0x349a81(_0x1d7275._0x1866ca)](_0x465713,_0x2ee97c),0x25e*-0x5+0xb*-0x36d+0x31e9);if(_0x446b25>_0x43806d){if(_0x29810f['ZNwVH']===_0x349a81(_0x1d7275._0x25fed7)){const _0x17a040=(_0x3c37bc[_0x18dbe2(_0x1d7275._0x11a0e7)](/^## Task \d+[::]\s*(.*)$/m)||[])[-0x12d1*-0x1+-0x2371+0x10a1]||'',_0x2812a5=/前端|页面|组件|vue|react|UI|界面|列表页|编辑页|弹框|弹窗|面板/[_0x18dbe2(_0x1d7275._0x3ee136)](_0x17a040),_0x5424e1=/后端|接口|API|service|controller|mapper|数据库|表结构/[_0x349a81(_0x1d7275._0x3ee136)](_0x17a040);if(_0x29810f['RtJHm'](_0x2812a5,!_0x5424e1))return'fe';if(_0x29810f['wTdXi'](_0x5424e1,!_0x2812a5))return'be';return _0x29810f['QHFgG'];}else _0x31e911['push']({'file':path['relative'](_0x3606c3,_0x5033df),'anyCount':_0x465713,'lineCount':_0x2ee97c,'ratio':_0x446b25['toFixed'](0x2229+-0x742*-0x1+-0x296a)});}}else try{NgIeql[_0x349a81(0x1ae)](_0x516790,_0x349a81(_0x1d7275._0x21c627)+_0x18dbe2(0x1a9)+'pTests',{'cwd':_0x42ad7d[_0x18dbe2(_0x1d7275._0x8a3d09)](_0x578d9b,NgIeql[_0x349a81(0x1cb)]),'encoding':NgIeql[_0x349a81(0x1cc)],'stdio':[_0x349a81(0x1ca),NgIeql[_0x18dbe2(_0x1d7275._0x1ec7e8)],NgIeql[_0x18dbe2(0x196)]],'timeout':0x2bf20});const _0x1ae85c={};_0x1ae85c[_0x18dbe2(_0x1d7275._0x1b34d3)]=!![],_0x1ae85c[_0x349a81(0x1d9)]=NgIeql[_0x18dbe2(_0x1d7275._0x70a608)],_0x1ae85c[_0x349a81(0x1a3)]=_0x18dbe2(_0x1d7275._0x114122),_0x513541[_0x349a81(_0x1d7275._0x4698c1)]=_0x1ae85c;}catch(_0x14ea4b){const _0x1787ad=(_0x14ea4b[_0x18dbe2(0x22a)]||'')[_0x18dbe2(_0x1d7275._0x434eb0)]()[_0x349a81(_0x1d7275._0x2cb343)]('\x0a')['slice'](-(-0x2634+-0x23a3+0x1*0x49e1))[_0x349a81(0x1b0)]('\x0a'),_0x1d2b49={};_0x1d2b49['pass']=![],_0x1d2b49[_0x18dbe2(0x1d9)]=NgIeql[_0x18dbe2(0x219)],_0x1d2b49[_0x18dbe2(_0x1d7275._0x29b482)]=_0x18dbe2(_0x1d7275._0x4698c1),_0x1d2b49[_0x349a81(0x20f)]=_0x1787ad,_0x1029fb[_0x18dbe2(_0x1d7275._0x22dca5)]=_0x1d2b49;}}}}return{'totalAnys':_0x9ec236,'totalLines':_0x26abd4,'globalRatio':_0x26abd4>-0x16*0x3+-0x5*0x631+-0x83*-0x3d?(_0x9ec236/_0x26abd4*(-0x1aa*0x3+-0x2*-0xa35+0x4*-0x3c2))[_0x18dbe2(0x258)](0x1429+0x1433*-0x1+0xc):'0','abusers':_0x31e911[_0x349a81(0x1b6)]((_0x29362f,_0x140c41)=>_0x140c41[_0x18dbe2(0x245)]-_0x29362f[_0x18dbe2(0x245)])};}function checkTaskInterleaving(_0x208b47){const _0x39b7a6={_0x51fa65:0x239,_0x8920bf:0x1f0,_0xf6e843:0x1e0,_0x4cc710:0x1b1,_0x531570:0x1cd,_0x3a0dd2:0x21d,_0x2d2371:0x1c8,_0x9f4b9c:0x1b5,_0x508f5d:0x1e7,_0x1998d6:0x208,_0x253ebc:0x1d4,_0x213b73:0x1b5,_0x207c7c:0x256},_0x1e3c2a=_0x2c5fdc,_0x5145fc=_0x2c5fdc,_0x358eec={};_0x358eec[_0x1e3c2a(0x1c0)]='mixed',_0x358eec[_0x5145fc(_0x39b7a6._0x51fa65)]=_0x5145fc(0x21f)+_0x5145fc(_0x39b7a6._0x8920bf),_0x358eec[_0x5145fc(0x1b1)]=function(_0xcb7dbf,_0x134784){return _0xcb7dbf===_0x134784;},_0x358eec[_0x1e3c2a(0x25b)]=function(_0x24ecaf,_0x26eb25){return _0x24ecaf!==_0x26eb25;},_0x358eec[_0x5145fc(0x1ff)]='EcJVz',_0x358eec[_0x1e3c2a(0x1cd)]='fYFMt',_0x358eec[_0x5145fc(0x1c6)]=function(_0x80f2f,_0x4375a4){return _0x80f2f>_0x4375a4;},_0x358eec[_0x5145fc(_0x39b7a6._0xf6e843)]=function(_0x2043c7,_0x36dccf){return _0x2043c7===_0x36dccf;};const _0x15ec9d=_0x358eec,_0x1f9305=_0x208b47[_0x5145fc(0x1f9)](/(?=^## Task \d+)/m)[_0x5145fc(0x1c8)](_0x26bf06=>/^## Task \d+/['test'](_0x26bf06)),_0x4375eb={};_0x4375eb[_0x1e3c2a(0x206)]=!![],_0x4375eb['message']=_0x15ec9d['xPjTP'];if(_0x1f9305[_0x1e3c2a(0x1b5)]<-0x3*0x4e5+-0x18d3+-0x1*-0x2786)return _0x4375eb;const _0x62c67e=_0x1f9305['map'](_0x491e73=>{const _0x10cb4e=_0x1e3c2a,_0x57ec72=_0x1e3c2a,_0x10617c=(_0x491e73['match'](/^## Task \d+[::]\s*(.*)$/m)||[])[0x2621+0x14e+0x67*-0x62]||'',_0x1a1452=/前端|页面|组件|vue|react|UI|界面|列表页|编辑页|弹框|弹窗|面板/[_0x10cb4e(0x247)](_0x10617c),_0x69fd67=/后端|接口|API|service|controller|mapper|数据库|表结构/[_0x57ec72(0x247)](_0x10617c);if(_0x1a1452&&!_0x69fd67)return'fe';if(_0x69fd67&&!_0x1a1452)return'be';return _0x15ec9d['jUUkf'];});let _0x4820ea=-0x16f2+-0x1*0x9b2+0x20a4,_0x384281=0x925+0x9f2+-0x65d*0x3;for(const _0xcc2749 of _0x62c67e){if('LQMlN'!=='LQMlN'){const _0x4df6cf=_0x35fb10[_0x1e3c2a(0x255)](/<template[^>]*>([\s\S]*?)<\/template>/);return _0x4df6cf?_0x4df6cf[0x14a9*-0x1+0x23b7+-0xf0d*0x1]:'';}else{if(_0x15ec9d[_0x1e3c2a(_0x39b7a6._0x4cc710)](_0xcc2749,'be')){if(_0x15ec9d['OvhrA'](_0x15ec9d['odgKz'],_0x15ec9d[_0x1e3c2a(_0x39b7a6._0x531570)]))_0x384281++,_0x4820ea=Math[_0x5145fc(0x1ab)](_0x4820ea,_0x384281);else{const _0x47f8a8=_0x2658aa[_0x5145fc(0x19c)]();if(_0x47f8a8[_0x1e3c2a(_0x39b7a6._0x3a0dd2)]('//')||_0x47f8a8['startsWith']('*'))return![];return/:\s*any\b|as\s+any\b|<any>|any\[\]/[_0x1e3c2a(0x247)](_0x2049fa);}}else _0x384281=0x224b+0xacf*0x2+-0x37e9;}}const _0x4d9256=_0x62c67e[_0x5145fc(_0x39b7a6._0x2d2371)](_0x2d246d=>_0x2d246d==='fe')['length'],_0x1da2d9=_0x62c67e['filter'](_0x49d7e8=>_0x49d7e8==='be')[_0x1e3c2a(_0x39b7a6._0x9f4b9c)],_0x3c61e7=[];_0x15ec9d['CpvFv'](_0x4820ea,0x6*0x185+-0x2493+0x1b78)&&_0x3c61e7[_0x5145fc(0x1d5)](_0x5145fc(0x221)+_0x4820ea+(_0x1e3c2a(0x24a)+'未穿插前端\x20task'+_0x1e3c2a(_0x39b7a6._0x508f5d)+'前端会被挤到最后导致'+'骨架'));const _0x2bd9d5=_0x62c67e[_0x5145fc(0x21e)]((_0x95678e,_0xc26200)=>_0x95678e==='fe'?_0xc26200:-(-0x23f2+0x1*0xbe3+0x1810))[_0x5145fc(0x1c8)](_0x56a0ec=>_0x56a0ec>=0x25e4+0x1bc0+-0x20d2*0x2);if(_0x2bd9d5[_0x5145fc(0x1b5)]>-0xc25*-0x3+0x26d3+0x1a*-0x2e5&&_0x15ec9d['CpvFv'](_0x1da2d9,-0x11*0x115+0x29*-0x6a+0x1*0x235f)){const _0x3be5c8=Math[_0x5145fc(_0x39b7a6._0x1998d6)](..._0x2bd9d5);_0x3be5c8>_0x62c67e[_0x5145fc(0x1b5)]*(0xf*0x22c+0xbf*0x33+-0x46a1*0x1+0.7)&&_0x3c61e7['push'](_0x1e3c2a(0x1b7)+'集中在\x2070%\x20之后'+_0x5145fc(0x23c)+_0x5145fc(_0x39b7a6._0x253ebc)+(_0x3be5c8+(0x1edd+0x133*-0x1+-0x1da9))+'/'+_0x62c67e[_0x1e3c2a(_0x39b7a6._0x213b73)]+_0x5145fc(_0x39b7a6._0x207c7c));}return{'pass':_0x15ec9d[_0x5145fc(0x1e0)](_0x3c61e7[_0x1e3c2a(0x1b5)],0x643+-0x30b+-0x19c*0x2),'feCount':_0x4d9256,'beCount':_0x1da2d9,'maxConsecutiveBe':_0x4820ea,'taskTypes':_0x62c67e,'failures':_0x3c61e7};}function checkTaskGranularity(_0x113881,_0x2263a3=0x2c1*0x6+0x656+-0x16d8){const _0x56233e={_0xdc7037:0x224,_0x41feab:0x247,_0x2631cc:0x1b5,_0x5add8a:0x1d5,_0x24f12e:0x1b5,_0x5d7f1c:0x1ba},_0x4788a3=_0x18647e,_0x304d9d=_0x18647e,_0x1fe25c={};_0x1fe25c[_0x4788a3(0x224)]=function(_0x5cc6dc,_0x214cf8){return _0x5cc6dc!==_0x214cf8;},_0x1fe25c[_0x4788a3(0x248)]=_0x4788a3(0x213),_0x1fe25c['VIXJW']=_0x4788a3(0x21b);const _0x5570e8=_0x1fe25c,_0x410a52=_0x113881['split'](/(?=^## Task \d+)/m)['filter'](_0x2b7fe0=>/^## Task \d+/[_0x4788a3(0x247)](_0x2b7fe0)),_0x228198=[];for(const _0x47788d of _0x410a52){if(_0x5570e8[_0x304d9d(_0x56233e._0xdc7037)](_0x5570e8[_0x4788a3(0x248)],_0x5570e8['VIXJW'])){const _0x2d3243=_0x47788d['match'](/^## (Task \d+)[::]\s*(.*)$/m),_0x41e0d4=_0x2d3243?_0x2d3243[0xf0c+0x6*0x28d+0x11*-0x1c9]:'?',_0x29d502=_0x2d3243?_0x2d3243[-0x1bd2+-0xd*0x247+0x3*0x1325]:'',_0x535d40=/前端|页面|组件|vue|react|UI|界面|列表页|编辑页/[_0x4788a3(_0x56233e._0x41feab)](_0x29d502);if(!_0x535d40)continue;const _0x868179=_0x47788d['match'](/[\w-]+\.vue/g)||[],_0x519feb=[...new Set(_0x868179)];_0x519feb[_0x4788a3(_0x56233e._0x2631cc)]>_0x2263a3&&_0x228198[_0x304d9d(_0x56233e._0x5add8a)]({'task':_0x41e0d4,'title':_0x29d502['slice'](-0xd*-0x19b+0x2*-0x13f+0x1*-0x1261,0x2462+-0xc6f+-0x17cb*0x1),'vueCount':_0x519feb[_0x4788a3(_0x56233e._0x24f12e)],'files':_0x519feb[_0x4788a3(0x1df)](-0x52c+0x1d9+-0x1*-0x353,0x233f*-0x1+-0x12ef*0x1+-0x1b*-0x202)});}else _0x4a68e5[_0x4788a3(0x1d5)](_0x27b1b0+(_0x4788a3(0x218)+_0x304d9d(0x238)+_0x304d9d(0x214)+_0x304d9d(0x201)+_0x4788a3(0x1ea)+'果)'));}const _0x1084fa={};return _0x1084fa[_0x304d9d(0x1f2)]=_0x228198,_0x1084fa[_0x4788a3(_0x56233e._0x5d7f1c)]=_0x2263a3,_0x1084fa;}function checkFrontendEvidence(_0x3d3d38){const _0x30ab1b={_0x5246bc:0x1f9,_0x276345:0x1c8,_0x845187:0x255,_0x207abd:0x247,_0x3de3b2:0x255,_0x569e88:0x1b5,_0x55ff9d:0x1d5,_0x275ba3:0x238,_0x1b6b69:0x214,_0x3ab24e:0x201,_0x1346c8:0x218,_0x4e077d:0x197,_0x5ebb64:0x1d7},_0x44ae44=_0x2c5fdc,_0x467599=_0x2c5fdc,_0x1a95ef=_0x3d3d38[_0x44ae44(_0x30ab1b._0x5246bc)](/(?=^## Task \d+)/m)[_0x44ae44(_0x30ab1b._0x276345)](_0x5356c7=>/^## Task \d+/[_0x44ae44(0x247)](_0x5356c7)),_0x47cb69=[];for(const _0x192ac7 of _0x1a95ef){const _0x173633=_0x192ac7[_0x467599(_0x30ab1b._0x845187)](/^## (Task \d+)[::]\s*(.*)$/m),_0x230096=_0x173633?_0x173633[0x2687+-0x1959*0x1+-0xd2d]:'?',_0x202c2b=_0x173633?_0x173633[0xe17*-0x1+-0x1d8d+-0x2*-0x15d3]:'',_0x31d31e=/前端|页面|组件|vue|react|UI|界面|列表页|编辑页|弹框/[_0x467599(0x247)](_0x202c2b);if(!_0x31d31e)continue;const _0x5c1a2c=/状态[::]\s*(✅|已完成|完成|已交付|done)/i[_0x44ae44(0x247)](_0x192ac7)||/实际验证结果/[_0x44ae44(0x247)](_0x192ac7);if(!_0x5c1a2c)continue;const _0x137832=/vue-tsc|tsc\s|npm run build|vite build|webpack|构建成功|build.*success|零错误|0 error/i[_0x44ae44(_0x30ab1b._0x207abd)](_0x192ac7),_0x53f5ac=/用户操作路径|操作路径|用户路径|交互路径/['test'](_0x192ac7),_0x59d530=/→|->|点击|进入|打开|跳转|弹出|显示|输入|选择|提交/['test'](_0x192ac7),_0x3fd02b=(_0x192ac7[_0x44ae44(_0x30ab1b._0x3de3b2)](/→|->/)||[])[_0x44ae44(_0x30ab1b._0x569e88)];!_0x137832&&_0x47cb69[_0x467599(_0x30ab1b._0x55ff9d)](_0x230096+(_0x467599(0x218)+_0x44ae44(_0x30ab1b._0x275ba3)+_0x44ae44(_0x30ab1b._0x1b6b69)+_0x467599(_0x30ab1b._0x3ab24e)+_0x44ae44(0x1ea)+'果)')),!_0x53f5ac&&_0x3fd02b<0x2*0x11d+-0x1dd2*0x1+0x1b9a&&_0x47cb69[_0x467599(0x1d5)](_0x230096+(_0x44ae44(_0x30ab1b._0x1346c8)+_0x467599(0x1ed)+'(如\x22列表页\x20→\x20点'+_0x44ae44(_0x30ab1b._0x4e077d)+_0x44ae44(0x249)+'\x22)'));}const _0xf94fe4={};return _0xf94fe4[_0x44ae44(_0x30ab1b._0x5ebb64)]=_0x47cb69,_0xf94fe4;}const _0x37c7f5={};_0x37c7f5[_0x18647e(0x222)+_0x18647e(0x1da)+_0x18647e(0x1c9)]=detectSkeletonComponents,_0x37c7f5[_0x2c5fdc(0x25a)+_0x2c5fdc(0x217)]=checkBuildable,_0x37c7f5[_0x18647e(0x19d)+_0x18647e(0x1ec)]=detectAnyAbuse,_0x37c7f5['checkTaskI'+_0x2c5fdc(0x1fd)+'g']=checkTaskInterleaving,_0x37c7f5['checkTaskG'+_0x2c5fdc(0x200)]=checkTaskGranularity,_0x37c7f5[_0x2c5fdc(0x1fb)+_0x2c5fdc(0x23d)+'e']=checkFrontendEvidence,module[_0x18647e(0x1ee)]=_0x37c7f5;
|
package/commands/spec:apply.md
CHANGED
|
@@ -9,6 +9,9 @@ description: 执行编码(逐 task 推进,每个 task 停顿等确认)
|
|
|
9
9
|
## 前置检查(缺一不过)
|
|
10
10
|
|
|
11
11
|
1. 运行 `npx @alenfitz/spec-copilot gate <变更名> apply`(跨平台门禁检查)
|
|
12
|
+
- v2.2.0 新增:gate 会检查 tasks.md 的前后端 task 交织度和前端 task 粒度
|
|
13
|
+
- 连续 > 3 个后端 task 未穿插前端 → gate fail(必须调整 task 顺序)
|
|
14
|
+
- 单个前端 task 涉及 > 4 个 .vue 文件 → gate fail(必须拆分 task)
|
|
12
15
|
2. Gate 通过后:`git checkout -b feature/<变更名>`(如已在分支则跳过)
|
|
13
16
|
3. 告知用户当前分支名
|
|
14
17
|
|
package/commands/spec:smoke.md
CHANGED
|
@@ -1,27 +1,62 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: 冒烟验证(构建 + 骨架检测 + E2E 浏览器验证 + 接口测试)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
请按 AGENTS.md 中定义的 /smoke 流程执行:
|
|
6
6
|
|
|
7
7
|
**变更名**:$ARGUMENTS
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
2.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
## 步骤
|
|
10
|
+
|
|
11
|
+
### Step 0:程序化 gate 检查(v2.2.0+ 自动化)
|
|
12
|
+
|
|
13
|
+
运行 CLI 门禁,获取客观构建结果、骨架检测结果和 E2E 浏览器验证结果:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx @alenfitz/spec-copilot gate $ARGUMENTS smoke
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
此命令自动执行:
|
|
20
|
+
- 前后端构建验证(npm run build / mvn compile)
|
|
21
|
+
- 骨架组件检测(el-empty / TODO-only / 空壳组件)
|
|
22
|
+
- TypeScript any 泛滥检测(warning 级别)
|
|
23
|
+
- **E2E 浏览器冒烟**(v2.3.0 新增,需目标项目安装 Playwright):
|
|
24
|
+
- 自动启动/检测前后端开发服务器
|
|
25
|
+
- 从 spec.md 提取页面路由,用 headless Chromium 逐页面检查
|
|
26
|
+
- 检查项:白屏、JS 异常、API 连接失败、5xx 响应、框架错误遮罩
|
|
27
|
+
- 完成后自动关闭启动的服务器
|
|
28
|
+
|
|
29
|
+
可选 flags:
|
|
30
|
+
- `--headed`:显示浏览器窗口(调试用)
|
|
31
|
+
- `--base-url http://localhost:5173`:手动指定前端 URL(跳过自动检测)
|
|
32
|
+
- `--backend-url http://localhost:8080`:手动指定后端 URL
|
|
33
|
+
- `--no-e2e`:跳过 E2E 浏览器检查
|
|
34
|
+
|
|
35
|
+
**gate 未通过 → 直接进入 /spec:fix,不执行后续步骤。**
|
|
36
|
+
|
|
37
|
+
> 💡 E2E 需要 Playwright:`cd <frontend-dir> && npm i -D playwright && npx playwright install chromium`
|
|
38
|
+
> 未安装时 E2E 自动跳过(不阻断),但强烈建议安装以获得真实浏览器验证。
|
|
39
|
+
|
|
40
|
+
### Step 1:接口冒烟
|
|
41
|
+
|
|
42
|
+
1. 读取 spec.md §3 功能点列表和 §6 API 契约
|
|
43
|
+
2. 对 spec 中**每个 API 接口**执行 curl 验证(不仅限"核心接口"),记录状态码和响应摘要
|
|
44
|
+
3. 统计接口冒烟覆盖率:`通过接口数/总接口数`
|
|
16
45
|
|
|
17
46
|
> ⚠️ 仅验证"核心接口"是不够的。Spec 定义的每个 API 都必须 curl 验证可达。不可达的接口记录为失败项。
|
|
18
47
|
|
|
48
|
+
### Step 2:前端页面验证
|
|
49
|
+
|
|
50
|
+
如 Step 0 的 E2E 已通过,此步骤可简化为确认性检查。
|
|
51
|
+
|
|
52
|
+
如未安装 Playwright(E2E 跳过),需手动逐页面确认可渲染、核心交互可操作。
|
|
53
|
+
|
|
19
54
|
## 结束后
|
|
20
55
|
|
|
21
56
|
1. **记录到 log.md**:在 `## 时间线` 表格尾部追加一行 `| 当前时间 | smoke | 冒烟测试通过 ✓ |`(失败则写 `| 当前时间 | smoke | 冒烟失败 ✗ <原因> |`)
|
|
22
57
|
2. 读取 spec.md §2 复杂度等级后输出:
|
|
23
58
|
|
|
24
|
-
|
|
59
|
+
**通过(gate ✓ + 接口返回正常):**
|
|
25
60
|
|
|
26
61
|
🟡 中等需求:
|
|
27
62
|
```
|
|
@@ -158,13 +158,25 @@ npx @alenfitz/spec-copilot gate <变更名> <phase>
|
|
|
158
158
|
|
|
159
159
|
| 门禁 | 检查项 | 失败时阻止进入 |
|
|
160
160
|
|------|--------|-------------|
|
|
161
|
-
| `apply` | spec.md 存在 + §9
|
|
162
|
-
| `
|
|
161
|
+
| `apply` | spec.md 存在 + §9 清空 +(🔴)tasks.md 存在 + **前后端 task 交织度** + **前端 task 粒度上限** | /spec:apply |
|
|
162
|
+
| `smoke` | **前后端构建验证** + **骨架组件检测** + TypeScript any 检测 + **E2E 浏览器冒烟**(需 Playwright) | /spec:smoke |
|
|
163
|
+
| `review` | smoke 哨兵 + 冒烟记录 + 所有 task 已提交 + **骨架组件检测** + **前端 task 功能性自证** | /spec:review |
|
|
163
164
|
| `test` | 🔴 复杂需求强制进入 | /spec:test |
|
|
164
|
-
| `archive` | spec.md §12 审查结论为通过 | /spec:archive |
|
|
165
|
+
| `archive` | spec.md §12 审查结论为通过 + review 哨兵 | /spec:archive |
|
|
165
166
|
|
|
166
167
|
门禁不通过 → 阻断当前阶段,提示缺失的前置条件。不允许跳过。
|
|
167
168
|
|
|
169
|
+
**v2.2.0 前端硬检测**(加粗项为新增):
|
|
170
|
+
- `apply` gate 阻止前端 task 被挤到最后(连续 > 3 个后端 task = fail)和粒度过大(单 task > 4 个 .vue = fail)
|
|
171
|
+
- `smoke` gate 执行客观构建验证和骨架组件扫描,不依赖 AI 自述
|
|
172
|
+
- `review` gate 双重兜底:骨架检测 + 前端 task 必须有构建输出和用户操作路径
|
|
173
|
+
|
|
174
|
+
**v2.3.0 E2E 浏览器冒烟**(解决"静态检查通过但浏览器不能用"):
|
|
175
|
+
- `smoke` gate 新增 Playwright 端到端浏览器验证:自动启动开发服务器 → 逐页面检查白屏/JS异常/API失败/错误遮罩
|
|
176
|
+
- Spec-driven 路由提取:从 spec.md + router 文件自动生成测试页面列表
|
|
177
|
+
- Playwright 为目标项目的可选依赖,未安装时自动跳过(warning 级别)
|
|
178
|
+
- 安装:`cd <frontend-dir> && npm i -D playwright && npx playwright install chromium`
|
|
179
|
+
|
|
168
180
|
## Git 规范
|
|
169
181
|
1. 禁止 master/main 分支直接变更,/spec:apply 开始前必须建 feature 分支
|
|
170
182
|
2. 每个 task 验证通过后**立即** commit(不等"继续"),commit 必须可编译
|
package/framework/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,88 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [2.3.0] - 2026-05-23
|
|
8
|
+
|
|
9
|
+
### 新增
|
|
10
|
+
|
|
11
|
+
**Playwright E2E 浏览器冒烟(解决"静态检查通过但浏览器不能用"的核心问题):**
|
|
12
|
+
|
|
13
|
+
- **新增 `bin/e2e-smoke.js` 模块**:Spec-driven 端到端浏览器自动化验证
|
|
14
|
+
- **自动技术栈检测**:支持 Spring Boot + Vue3(分目录/合体)、Vite 纯前端等常见栈
|
|
15
|
+
- **开发服务器自动管理**:检测已运行的服务器或自动启动,测试完成后自动清理
|
|
16
|
+
- **Spec-driven 路由提取**:从 spec.md §3/§6 提取页面路由 + 从项目 router 文件补全
|
|
17
|
+
- **6 项浏览器硬检查**:
|
|
18
|
+
- 白屏检测(#app/#root 无子元素)
|
|
19
|
+
- 未捕获 JS 异常(pageerror 事件)
|
|
20
|
+
- API 网络连接失败(ECONNREFUSED)
|
|
21
|
+
- API 5xx 响应
|
|
22
|
+
- 框架错误遮罩(Vite/React error overlay、Spring Boot Whitelabel)
|
|
23
|
+
- HTTP 错误页面(404、Cannot GET)
|
|
24
|
+
- **API 健康检查**:用 Node.js http 模块逐个探测 spec 中声明的 API 端点
|
|
25
|
+
- **登录重定向识别**:重定向到 /login 标记为"需认证"(warning 级别,不阻断)
|
|
26
|
+
- **控制台噪音过滤**:内置 15+ 条开发环境常见无害模式(HMR、DevTools、favicon 等)
|
|
27
|
+
|
|
28
|
+
### CLI 变更
|
|
29
|
+
|
|
30
|
+
- `gate <name> smoke` 新增 E2E 浏览器检查(Playwright 未安装时自动跳过,不阻断)
|
|
31
|
+
- 新增 CLI flags:`--headed`(显示浏览器)、`--base-url`(手动指定前端 URL)、`--backend-url`(手动指定后端 URL)、`--no-e2e`(跳过 E2E)
|
|
32
|
+
- `cmdGate` 升级为 async 函数以支持异步 Playwright 操作
|
|
33
|
+
|
|
34
|
+
### 设计理念
|
|
35
|
+
|
|
36
|
+
> v2.2.0 解决了"代码结构层面"的骨架问题(静态检测),但用户实际浏览器体验仍然只有 50% 可用。
|
|
37
|
+
> 根因:curl 200 ≠ 前后端对齐。camelCase/snake_case 不匹配、响应结构错位、子表不持久化 —— 这些"接缝"问题在组件级测试中完全不可见。
|
|
38
|
+
> v2.3.0 核心突破:**用真实浏览器跑真实页面,让 smoke gate 验证"用户能不能用"而不仅仅是"代码能不能编译"**。
|
|
39
|
+
|
|
40
|
+
### Playwright 安装
|
|
41
|
+
|
|
42
|
+
Playwright 是目标项目的可选依赖,spec-copilot 本身不包含 Playwright:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
cd <frontend-dir> && npm i -D playwright && npx playwright install chromium
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
未安装时 E2E 检查自动跳过(warning 级别),不影响其他 smoke 检查。
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## [2.2.0] - 2026-05-23
|
|
53
|
+
|
|
54
|
+
### 新增
|
|
55
|
+
|
|
56
|
+
**前端硬检测体系(解决"骨架组件反复出现"的根因问题):**
|
|
57
|
+
|
|
58
|
+
治本层(apply gate — 防止骨架产生):
|
|
59
|
+
- **前后端 task 交织检查**:tasks.md 中连续 > 3 个后端 task 未穿插前端 → gate fail。防止前端 task 被挤到最后导致 context 耗尽
|
|
60
|
+
- **前端 task 粒度上限**:单个前端 task 涉及 > 4 个 .vue 文件 → gate fail。防止单 task 塞过多组件导致后半段降级为骨架
|
|
61
|
+
- **前端 task 集中度检测**:前端 task 全部集中在 70% 之后 → gate fail
|
|
62
|
+
|
|
63
|
+
治标层(smoke gate — 客观验证,不依赖 AI 自述):
|
|
64
|
+
- **新增 `gate <name> smoke` phase**:smoke 从纯 prompt 阶段升级为 CLI 可验证阶段
|
|
65
|
+
- **构建验证**:自动检测并执行 `npm run build` / `mvn compile`,构建失败 = gate fail
|
|
66
|
+
- **骨架组件检测**:扫描 .vue 文件 `<template>` 区块,检测 el-empty / TODO-only / 空壳组件
|
|
67
|
+
- **TypeScript any 泛滥检测**:统计 `: any` / `as any` 出现密度,超标 = warning
|
|
68
|
+
- **smoke 哨兵文件**:通过后写入 `.gate-smoke-passed`,review 阶段可校验
|
|
69
|
+
|
|
70
|
+
兜底层(review gate — 最后防线):
|
|
71
|
+
- **反"太嗨"机制 8:骨架组件检测**:拦截"文件存在、被引用、但内容是空壳"的组件 — 现有 stub/死代码检测的盲区
|
|
72
|
+
- **前端 task 功能性自证检测**:前端 task 的验证结果必须包含构建输出 + 用户操作路径描述
|
|
73
|
+
|
|
74
|
+
### 变更
|
|
75
|
+
|
|
76
|
+
- `gate` 命令支持 5 个 phase:apply / **smoke** / review / test / archive(新增 smoke)
|
|
77
|
+
- `spec:smoke.md` 增加 Step 0:运行 `gate <name> smoke` 获取客观检测结果
|
|
78
|
+
- `spec:apply.md` 前置检查说明新增 task 交织度和粒度检查
|
|
79
|
+
- 新增独立模块 `bin/frontend-checks.js`,导出 6 个检查函数供 cli.js 调用
|
|
80
|
+
|
|
81
|
+
### 设计理念
|
|
82
|
+
|
|
83
|
+
> 之前三版迭代反复加 prompt 级约束("前端骨架=未完成"铁律、4条完成判定、前后端1:3比例)但问题反复出现。
|
|
84
|
+
> 根因:prompt 解决"知道该做什么",解决不了"验证做没做到"。
|
|
85
|
+
> v2.2.0 核心转变:**治本(改变 task 结构防止骨架产生)+ 治标(CLI 自动化验证代替 AI 自述)**。
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
7
89
|
## [1.6.0] - 2026-05-21
|
|
8
90
|
|
|
9
91
|
### 新增
|
package/framework/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.3.0
|
package/package.json
CHANGED