@alenfitz/spec-copilot 2.9.0 → 3.1.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/adapters/index.js +2 -2
- package/bin/adversarial-test.js +11 -0
- package/bin/ci-gen.js +11 -0
- package/bin/cli.js +2 -2
- package/bin/e2e-smoke.js +2 -2
- package/bin/frontend-checks.js +2 -2
- package/bin/guard.js +2 -2
- package/bin/review-checks.js +2 -2
- package/commands/spec:smoke.md +8 -5
- package/framework/CHANGELOG.md +49 -0
- package/framework/VERSION +1 -1
- package/package.json +1 -1
package/bin/review-checks.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @alenfitz/spec-copilot
|
|
2
|
+
* @alenfitz/spec-copilot v3.1.0
|
|
3
3
|
* Copyright (c) 2026 alenfitz. All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This file is proprietary and obfuscated. Reverse engineering, decompilation,
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Bugs / feature requests: https://github.com/Alenfitz/spec_copilot/issues
|
|
10
10
|
*/
|
|
11
|
-
const _0x3b558b=_0x3a74,_0x1e7463=_0x3a74;(function(_0x11af6b,_0x2fd947){const _0x5cb60b={_0x2cb473:0x14e,_0x2b9c87:0x124,_0x1d4443:0x1c3,_0x46dc0e:0x1bc,_0x3867d8:0x137,_0x57db56:0x12e},_0x11c2b7=_0x3a74,_0x4d0897=_0x3a74,_0x3e5028=_0x11af6b();while(!![]){try{const _0x5ad70d=parseInt(_0x11c2b7(_0x5cb60b._0x2cb473))/(0x1f*0x5+-0xf9*0xc+0xb12)+parseInt(_0x4d0897(_0x5cb60b._0x2b9c87))/(0x6*-0x5d+-0x5*-0x779+-0x232d)*(-parseInt(_0x4d0897(0x12a))/(-0x137a+-0xbe7*0x3+0x3732))+-parseInt(_0x4d0897(_0x5cb60b._0x1d4443))/(-0xb*0x5d+0x1dd*0xb+0xa*-0x1a6)*(parseInt(_0x4d0897(0x163))/(-0x2003+-0x5c1*-0x5+0x343*0x1))+parseInt(_0x4d0897(0x17f))/(-0x54*0x71+-0x1*0x2399+0x1f7*0x25)+parseInt(_0x11c2b7(_0x5cb60b._0x46dc0e))/(-0x1e99+0x1d88+-0x8c*-0x2)+parseInt(_0x4d0897(0x186))/(0xc20+0x6a*0x3+-0xd56)*(-parseInt(_0x4d0897(_0x5cb60b._0x3867d8))/(0x67*-0x21+-0x1053+0x1da3))+-parseInt(_0x11c2b7(_0x5cb60b._0x57db56))/(0x386+0x201a+-0x71e*0x5);if(_0x5ad70d===_0x2fd947)break;else _0x3e5028['push'](_0x3e5028['shift']());}catch(_0x71bd23){_0x3e5028['push'](_0x3e5028['shift']());}}}(_0x3f59,0x1*0x73989+-0x10e2f7+0x3d6*0x4fc));const _0x5166f4=(function(){let _0x502731=!![];return function(_0x546f3f,_0x545196){const _0x324b3b=_0x502731?function(){if(_0x545196){const _0x1a8b98=_0x545196['apply'](_0x546f3f,arguments);return _0x545196=null,_0x1a8b98;}}:function(){};return _0x502731=![],_0x324b3b;};}()),_0x45b14e=_0x5166f4(this,function(){const _0x1c54f9={_0x348730:0x144,_0xddcfa7:0x1a0,_0xe9f77c:0x1a0},_0x3a7448=_0x3a74,_0x40384a=_0x3a74,_0x27bad3={};_0x27bad3[_0x3a7448(_0x1c54f9._0x348730)]=_0x3a7448(0x1c7)+'+$';const _0x301e80=_0x27bad3;return _0x45b14e['toString']()[_0x3a7448(_0x1c54f9._0xddcfa7)](_0x301e80['UApVv'])['toString']()['constructo'+'r'](_0x45b14e)[_0x3a7448(_0x1c54f9._0xe9f77c)]('(((.+)+)+)'+'+$');});function _0x3a74(_0x3357d6,_0x500747){_0x3357d6=_0x3357d6-(0x2043+0xd4f*-0x2+0x1*-0x482);const _0x3149e1=_0x3f59();let _0x274590=_0x3149e1[_0x3357d6];if(_0x3a74['DtVYte']===undefined){var _0x20abb6=function(_0x288af5){const _0x4cb932='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d9013='',_0x60c4c5='',_0x11f2ce=_0x5d9013+_0x20abb6,_0x5247e4=(''+function(){return 0x2d*0x1f+-0x25*-0x3b+0x1*-0xdfa;})['indexOf']('\x0a')!==-(-0x5e*-0x2c+-0x1211+0x1ea);for(let _0xb486fe=0x248+-0xc53*-0x2+0x9*-0x2fe,_0x2d66df,_0xf4adb,_0x5a46ed=0x1406+0xfd7+-0x23dd;_0xf4adb=_0x288af5['charAt'](_0x5a46ed++);~_0xf4adb&&(_0x2d66df=_0xb486fe%(-0x4*0x962+0x1dae+0x7de)?_0x2d66df*(-0x1d2+-0x1fae+0x21c0)+_0xf4adb:_0xf4adb,_0xb486fe++%(-0x15a8+-0x45d+0x1a09))?_0x5d9013+=_0x5247e4||_0x11f2ce['charCodeAt'](_0x5a46ed+(-0x21c6+0x70+0x2160))-(0x2023+-0x1b6c+-0x4ad)!==-0xc6*0x17+-0x43*0x9+-0x6b7*-0x3?String['fromCharCode'](-0x190c+-0xde5+0x27f0&_0x2d66df>>(-(-0x1f23+0x84a*-0x1+0xd25*0x3)*_0xb486fe&-0x1b4*0x6+0x48d+-0x1f*-0x2f)):_0xb486fe:-0x13a5+0x1688+0x1*-0x2e3){_0xf4adb=_0x4cb932['indexOf'](_0xf4adb);}for(let _0x11098f=0x135*-0xf+0x1bb9+-0x99e,_0x48f58e=_0x5d9013['length'];_0x11098f<_0x48f58e;_0x11098f++){_0x60c4c5+='%'+('00'+_0x5d9013['charCodeAt'](_0x11098f)['toString'](-0x2*-0xb1b+0x1*-0x2f3+-0x1333))['slice'](-(-0x1a34+0x930+0x1106*0x1));}return decodeURIComponent(_0x60c4c5);};_0x3a74['yOoujA']=_0x20abb6,_0x3a74['ZJotej']={},_0x3a74['DtVYte']=!![];}const _0x5459ae=_0x3149e1[0x9aa*0x1+-0x1dba+-0x1410*-0x1],_0xb7353b=_0x3357d6+_0x5459ae,_0x3aac95=_0x3a74['ZJotej'][_0xb7353b];if(!_0x3aac95){const _0x21bfd1=function(_0x5346c8){this['VKUElq']=_0x5346c8,this['TaGSvx']=[0x165e+-0x1117+-0x1e*0x2d,0x6b5+0xcc5+-0x137a,-0x2c*0xb+0x6f2*0x4+-0x19e4],this['xqNzJQ']=function(){return'newState';},this['VuUtQA']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['AUGBHo']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x21bfd1['prototype']['zgXaGV']=function(){const _0x50e222=new RegExp(this['VuUtQA']+this['AUGBHo']),_0x3a23ad=_0x50e222['test'](this['xqNzJQ']['toString']())?--this['TaGSvx'][0x1*-0x16a5+-0x381*0xa+-0x736*-0x8]:--this['TaGSvx'][-0x23d5*0x1+-0x1*0x1e2e+0x4203];return this['cStxcN'](_0x3a23ad);},_0x21bfd1['prototype']['cStxcN']=function(_0x2e428e){if(!Boolean(~_0x2e428e))return _0x2e428e;return this['PZHykT'](this['VKUElq']);},_0x21bfd1['prototype']['PZHykT']=function(_0x1c07c7){for(let _0x3d1fe5=-0xf66+-0x2636+0x359c,_0x595bd1=this['TaGSvx']['length'];_0x3d1fe5<_0x595bd1;_0x3d1fe5++){this['TaGSvx']['push'](Math['round'](Math['random']())),_0x595bd1=this['TaGSvx']['length'];}return _0x1c07c7(this['TaGSvx'][0x1f41+0x2124+-0x4065]);},(''+function(){return 0x24a4+-0x12d6+0x11ce*-0x1;})['indexOf']('\x0a')===-(0x8a*0x44+0x5f1+-0x154c*0x2)&&new _0x21bfd1(_0x3a74)['zgXaGV'](),_0x274590=_0x3a74['yOoujA'](_0x274590),_0x3a74['ZJotej'][_0xb7353b]=_0x274590;}else _0x274590=_0x3aac95;return _0x274590;}_0x45b14e();const fs=require('fs'),path=require(_0x3b558b(0x1b1)),{execSync}=require('child_proc'+'ess');function isGitRepo(_0x50e073){const _0x4319f0={_0x5cd069:0x15f,_0x3af8fe:0x191,_0x55be93:0x146,_0x375758:0x143},_0x564aba=_0x3b558b,_0x7e4d77=_0x3b558b,_0x265a2d={'NYcIk':'EGxqT','OJKJV':'iPhPs','AzDrf':function(_0xce4714,_0x5b137e,_0x31443f){return _0xce4714(_0x5b137e,_0x31443f);},'QKUAv':_0x564aba(_0x4319f0._0x5cd069)+'rse\x20--is-i'+_0x7e4d77(0x14d)+_0x7e4d77(_0x4319f0._0x3af8fe),'SHaVu':_0x7e4d77(0x1da)};try{if(_0x265a2d[_0x7e4d77(_0x4319f0._0x55be93)]===_0x265a2d['OJKJV']){const _0x32788c={};_0x32788c[_0x564aba(0x1d6)]=_0x564aba(0x158),_0x32788c[_0x564aba(0x190)]=!![],_0x32788c['error']=_0x3d3ac5[_0x7e4d77(0x17c)],_0x2d7fe2[_0x7e4d77(0x18e)](_0x32788c);}else return _0x265a2d[_0x7e4d77(_0x4319f0._0x375758)](execSync,_0x265a2d[_0x7e4d77(0x134)],{'cwd':_0x50e073,'stdio':_0x265a2d[_0x564aba(0x1d9)]}),!![];}catch{return![];}}function gitGrep(_0x1a406e,_0x581652){const _0x390733={_0x612f44:0x1df,_0x23fa95:0x1db,_0x2afc94:0x12b},_0x5d45ff=_0x3b558b,_0x1825d1=_0x3b558b,_0x3c6e05={};_0x3c6e05[_0x5d45ff(0x1d0)]=_0x1825d1(0x194),_0x3c6e05[_0x1825d1(0x1c2)]=_0x1825d1(0x1da);const _0x42bccc=_0x3c6e05;try{const _0x5371b8={};_0x5371b8['cwd']=_0x1a406e,_0x5371b8[_0x1825d1(0x172)]=_0x42bccc[_0x5d45ff(0x1d0)],_0x5371b8[_0x1825d1(_0x390733._0x612f44)]=[_0x5d45ff(_0x390733._0x23fa95),_0x1825d1(_0x390733._0x23fa95),_0x42bccc['VksCx']];const _0xe1bb5d=execSync(_0x5d45ff(0x12c)+_0x1825d1(0x1ca)+_0x581652+'\x22',_0x5371b8)[_0x5d45ff(_0x390733._0x2afc94)]();return _0xe1bb5d?_0xe1bb5d['split']('\x0a')['filter'](Boolean):[];}catch{return[];}}function findFiles(_0x2ca1d0,_0x4a3078,_0x5760e7=0xc2f+-0xb14+-0x116){const _0x232590={_0x193005:0x123,_0x522b6f:0x197},_0x4a176c={_0x43e726:0x1c9,_0x12dfd3:0x133,_0x172b53:0x13e,_0x34ab70:0x1d6,_0x2cfb2f:0x1cc,_0x4c73b9:0x1d6,_0x347472:0x1e0,_0x45a84c:0x15c,_0x45f2bc:0x18e},_0x15bbcb=_0x3b558b,_0x4e0bea=_0x3b558b,_0x2e50b3={'IZHES':_0x15bbcb(0x1d7),'Rkdaz':_0x15bbcb(_0x232590._0x193005),'dyEMD':function(_0x49f3e9,_0x27f6ca){return _0x49f3e9===_0x27f6ca;},'IKAEF':_0x15bbcb(_0x232590._0x522b6f)+'es','ILUoq':function(_0x5642f5,_0x3f143f,_0x5d7c39){return _0x5642f5(_0x3f143f,_0x5d7c39);}},_0x542575=[];function _0x328434(_0x40a514,_0x1cf6de){const _0x88790c=_0x15bbcb,_0x325671=_0x15bbcb;if(_0x1cf6de>_0x5760e7||!fs['existsSync'](_0x40a514))return;try{if(_0x2e50b3[_0x88790c(0x1c0)]===_0x2e50b3[_0x325671(0x1a2)])_0x27cf68[_0x88790c(0x18e)](_0x17eadf);else{const _0x333b0e={};_0x333b0e['withFileTy'+_0x88790c(_0x4a176c._0x43e726)]=!![];const _0x3c356f=fs[_0x88790c(0x155)+'c'](_0x40a514,_0x333b0e);for(const _0x256bae of _0x3c356f){if(_0x256bae[_0x88790c(0x1d6)][_0x325671(0x177)]('.')||_0x2e50b3['dyEMD'](_0x256bae['name'],_0x2e50b3[_0x88790c(_0x4a176c._0x12dfd3)])||_0x256bae['name']===_0x325671(_0x4a176c._0x172b53)||_0x256bae[_0x88790c(_0x4a176c._0x34ab70)]===_0x325671(0x13f)||_0x2e50b3[_0x88790c(_0x4a176c._0x2cfb2f)](_0x256bae[_0x88790c(_0x4a176c._0x4c73b9)],_0x88790c(_0x4a176c._0x347472)))continue;const _0x564bfd=path['join'](_0x40a514,_0x256bae[_0x88790c(_0x4a176c._0x34ab70)]);if(_0x256bae['isDirector'+'y']())_0x2e50b3[_0x88790c(_0x4a176c._0x45a84c)](_0x328434,_0x564bfd,_0x1cf6de+(-0x2d*-0x1f+-0x7f6*0x3+0x1270));else{if(_0x4a3078[_0x325671(0x174)](_0x4dfefc=>_0x256bae[_0x88790c(0x1d6)]['endsWith'](_0x4dfefc)))_0x542575[_0x88790c(_0x4a176c._0x45f2bc)](_0x564bfd);}}}}catch{}}return _0x2e50b3['ILUoq'](_0x328434,_0x2ca1d0,-0x687+-0x1*0x1a7b+0x2102),_0x542575;}function readSafe(_0x107d1c){const _0x57f380=_0x3b558b,_0x4d9a84=_0x3b558b,_0x1fd90d={};_0x1fd90d[_0x57f380(0x17a)]=_0x4d9a84(0x194);const _0x2b3f21=_0x1fd90d;try{return fs[_0x4d9a84(0x1b7)+'nc'](_0x107d1c,_0x2b3f21[_0x57f380(0x17a)]);}catch{return'';}}function extractSpecApis(_0x3d23b2){const _0x319d16=_0x3b558b,_0xd3445f=_0x3b558b,_0x1e0b32={};_0x1e0b32[_0x319d16(0x1b3)]=function(_0x4df96,_0x68f428){return _0x4df96!==_0x68f428;};const _0x5e97ef=_0x1e0b32,_0x3bc79f=[],_0x563069=new Set(),_0x15f7c4=/(GET|POST|PUT|DELETE|PATCH)\s+(\/api\/[^\s|,))\]]+)/g;let _0x2c8c9b;while(_0x5e97ef['sHGDT'](_0x2c8c9b=_0x15f7c4[_0xd3445f(0x129)](_0x3d23b2),null)){const _0x5722bf=_0x2c8c9b[-0x67f*0x5+-0x2d4+-0x50*-0x71]+'\x20'+_0x2c8c9b[0x1129*0x2+0x2051+0x25*-0x1cd];if(!_0x563069[_0x319d16(0x152)](_0x5722bf)){_0x563069[_0x319d16(0x1d2)](_0x5722bf);const _0x10d7de={};_0x10d7de['method']=_0x2c8c9b[0x1*0x1bb5+0x18bd+-0x3471],_0x10d7de[_0xd3445f(0x1b1)]=_0x2c8c9b[-0x259c*-0x1+0xc03+-0x319d],_0x3bc79f['push'](_0x10d7de);}}return _0x3bc79f;}function extractSpecRoutes(_0x5c40eb){const _0x4c4895={_0x54fd1f:0x1e2,_0x3d8ed5:0x170,_0xf15c5c:0x126,_0x5ac967:0x129,_0x6eef8:0x1e3},_0x2ed534=_0x3b558b,_0x39a97f=_0x3b558b,_0x13ed1c={};_0x13ed1c[_0x2ed534(0x189)]=function(_0xe9bf64,_0x3b40f5){return _0xe9bf64!==_0x3b40f5;},_0x13ed1c[_0x39a97f(_0x4c4895._0x54fd1f)]=function(_0x4b6157,_0x1cd27c){return _0x4b6157!==_0x1cd27c;},_0x13ed1c['XsUot']=_0x39a97f(0x19b),_0x13ed1c[_0x39a97f(_0x4c4895._0x3d8ed5)]=_0x39a97f(_0x4c4895._0xf15c5c);const _0x375374=_0x13ed1c,_0x33c194=[],_0x42646f=new Set(),_0x29e83b=/(?:路由|route|path|页面路径)[::]\s*([\/\w\-:]+)/gi;let _0x448247;while(_0x375374['nlFXv'](_0x448247=_0x29e83b[_0x2ed534(_0x4c4895._0x5ac967)](_0x5c40eb),null)){!_0x42646f[_0x2ed534(0x152)](_0x448247[0x1a9*-0x2+-0x1a8d+0x2*0xef0])&&(_0x42646f[_0x2ed534(0x1d2)](_0x448247[-0x10a1+0x21f3+-0x1151]),_0x33c194[_0x39a97f(0x18e)](_0x448247[-0x2b*-0x62+-0x5f7+0x4f*-0x22]));}const _0x272fac=/\|\s*(\/[a-zA-Z][\w\-\/:]*)\s*\|/g;while(_0x375374[_0x39a97f(0x1e2)](_0x448247=_0x272fac[_0x2ed534(0x129)](_0x5c40eb),null)){if(_0x375374[_0x39a97f(_0x4c4895._0x6eef8)]===_0x375374['CFoZw'])return'';else!_0x42646f[_0x2ed534(0x152)](_0x448247[-0xb62+-0x9e8+0x154b])&&(_0x42646f['add'](_0x448247[0xe60+-0x17ec+0x1*0x98d]),_0x33c194[_0x2ed534(0x18e)](_0x448247[0x427*-0x8+0x5*0x3be+0xe83]));}return _0x33c194;}function checkApiContract(_0xb1c494,_0x24310e){const _0x30afa9={_0x1f1236:0x1a9,_0x4d78ea:0x18c,_0xa95ae1:0x1a6,_0x64aeb:0x190,_0x442bc2:0x17c,_0x131088:0x140,_0x489bce:0x17e,_0x4997ad:0x1cf,_0x105191:0x15b,_0xcb87dd:0x1b5,_0x45b7d7:0x162,_0x23b5f0:0x174,_0x19d638:0x132,_0x4699bf:0x1c8,_0x253553:0x12d,_0xca7f6b:0x171,_0x3e55ca:0x139,_0x3f24f5:0x19c,_0x19069a:0x15e,_0x397bb0:0x157,_0x372d21:0x192,_0x15f9b9:0x1b1,_0x3ae816:0x1d4,_0x4e04e4:0x125,_0x3e8f7b:0x18e,_0x4d4e76:0x15b},_0x55efa6=_0x3b558b,_0x1922e2=_0x3b558b,_0x2449a8={'OZRpX':'app/src','WIaOb':'src','ZaaHP':_0x55efa6(0x1dc),'zTETS':function(_0x300587,_0x167835,_0x15f702){return _0x300587(_0x167835,_0x15f702);},'jRRah':_0x55efa6(_0x30afa9._0x1f1236),'ngBTc':function(_0x3302d8,_0x55a70c,_0x38bec5){return _0x3302d8(_0x55a70c,_0x38bec5);},'XbMMF':'.tsx','qfwIR':'.jsx','gtKAd':_0x1922e2(_0x30afa9._0x4d78ea),'xDqHH':_0x1922e2(_0x30afa9._0xa95ae1),'qLAMa':function(_0x497c1d,_0x2fe1b1){return _0x497c1d===_0x2fe1b1;}},_0x5897d6=extractSpecApis(_0x24310e),_0x44402a={};_0x44402a[_0x55efa6(_0x30afa9._0x64aeb)]=!![],_0x44402a['results']=[],_0x44402a[_0x55efa6(_0x30afa9._0x442bc2)]=_0x55efa6(_0x30afa9._0x131088)+'I\x20端点声明';if(_0x5897d6[_0x1922e2(0x12f)]===-0x1*0x21b2+0xa4+0x210e)return _0x44402a;const _0x4879a4=isGitRepo(_0xb1c494),_0x3384ea=[_0x55efa6(_0x30afa9._0x489bce)+'rc',_0x2449a8['OZRpX'],_0x2449a8['WIaOb']][_0x1922e2(0x15b)](_0x5c04fd=>fs[_0x1922e2(0x1b2)](path[_0x55efa6(0x162)](_0xb1c494,_0x5c04fd))),_0x243bfd=[_0x1922e2(_0x30afa9._0x4997ad)+'c',_0x2449a8[_0x1922e2(0x1d3)]][_0x1922e2(_0x30afa9._0x105191)](_0x2ccad0=>fs[_0x1922e2(0x1b2)](path[_0x1922e2(0x162)](_0xb1c494,_0x2ccad0))),_0x190679=[];for(const _0x497ce9 of _0x5897d6){const _0x151293=_0x497ce9[_0x55efa6(0x1b1)][_0x1922e2(_0x30afa9._0xcb87dd)](/\{[^}]+\}/g,'')['replace'](/\/+$/,''),_0x3bb8fc=_0x151293['split']('/')[_0x55efa6(0x1af)](0x815*0x1+-0x61*-0x41+-0x35*0x9e,0x14f6*0x1+0x231c+0xb36*-0x5)[_0x55efa6(_0x30afa9._0x45b7d7)]('/');let _0x1ab1c2=![],_0x21ee0f=![];if(_0x4879a4){const _0x570656=_0x2449a8['zTETS'](gitGrep,_0xb1c494,_0x3bb8fc),_0x22c7db=_0x570656[_0x1922e2(_0x30afa9._0x105191)](_0x149242=>!_0x149242[_0x55efa6(0x177)](_0x1922e2(0x1ad)+'ot/')&&!_0x149242[_0x55efa6(0x18b)]('.md'));_0x1ab1c2=_0x22c7db[_0x1922e2(0x174)](_0x37ccd9=>/\.(vue|tsx|jsx|ts|js)$/[_0x55efa6(0x156)](_0x37ccd9)&&/(src|app|pages|views|components|api|services|store)\//[_0x55efa6(0x156)](_0x37ccd9)),_0x21ee0f=_0x22c7db[_0x1922e2(_0x30afa9._0x23b5f0)](_0xb5b33e=>/\.(java|kt|py|go|rb|cs|php)$/[_0x55efa6(0x156)](_0xb5b33e));}else{if(_0x1922e2(_0x30afa9._0x19d638)!==_0x2449a8['jRRah']){for(const _0x3c7ba8 of _0x3384ea){const _0x3a24d3=_0x2449a8[_0x1922e2(0x141)](findFiles,path['join'](_0xb1c494,_0x3c7ba8),['.vue',_0x2449a8[_0x55efa6(_0x30afa9._0x4699bf)],_0x2449a8[_0x55efa6(_0x30afa9._0x253553)],_0x55efa6(_0x30afa9._0xca7f6b),_0x2449a8['gtKAd']]);_0x1ab1c2=_0x3a24d3['some'](_0x493f2a=>readSafe(_0x493f2a)[_0x1922e2(0x1e4)](_0x3bb8fc));if(_0x1ab1c2)break;}for(const _0x18abe0 of _0x243bfd){const _0x296010=_0x2449a8[_0x1922e2(0x182)](findFiles,path[_0x1922e2(_0x30afa9._0x45b7d7)](_0xb1c494,_0x18abe0),[_0x55efa6(_0x30afa9._0x3e55ca),'.kt',_0x55efa6(_0x30afa9._0x3f24f5),_0x55efa6(0x1a5)]);_0x21ee0f=_0x296010['some'](_0x269a03=>readSafe(_0x269a03)[_0x55efa6(0x1e4)](_0x3bb8fc));if(_0x21ee0f)break;}}else{const _0x4a0cff=_0x2a8bd[_0x1922e2(_0x30afa9._0x19069a)]/_0x438248[_0x55efa6(_0x30afa9._0x397bb0)+_0x1922e2(_0x30afa9._0x372d21)];if(_0x4a0cff>0x21fb+0x1ee3+-0x17*0x2d2+0.5)_0x5674a4=![];}}const _0xe09d55={};_0xe09d55[_0x55efa6(0x154)]=_0x497ce9['method'],_0xe09d55[_0x1922e2(0x1b1)]=_0x497ce9[_0x1922e2(_0x30afa9._0x15f9b9)],_0xe09d55[_0x1922e2(_0x30afa9._0x3ae816)]=_0x1ab1c2,_0xe09d55[_0x55efa6(_0x30afa9._0x4e04e4)]=_0x21ee0f,_0xe09d55[_0x55efa6(0x161)]=_0x1ab1c2&&_0x21ee0f?'ok':_0x1ab1c2?_0x2449a8['xDqHH']:_0x21ee0f?_0x1922e2(0x1c4):_0x1922e2(0x13c)+'ng',_0x190679[_0x1922e2(_0x30afa9._0x3e8f7b)](_0xe09d55);}const _0x4d77fd=_0x190679[_0x1922e2(0x15b)](_0x4f5a8e=>_0x4f5a8e[_0x1922e2(0x161)]!=='ok');return{'pass':_0x2449a8['qLAMa'](_0x4d77fd['length'],-0x9ef*-0x1+0x1*-0x999+-0x56),'results':_0x190679,'total':_0x5897d6[_0x55efa6(0x12f)],'matched':_0x190679[_0x1922e2(0x15b)](_0x317d20=>_0x317d20[_0x55efa6(0x161)]==='ok')[_0x55efa6(0x12f)],'feMissing':_0x190679[_0x1922e2(0x15b)](_0xb895c5=>_0xb895c5['status']===_0x1922e2(0x1c4)),'beMissing':_0x190679[_0x55efa6(0x15b)](_0x3313ea=>_0x3313ea[_0x1922e2(0x161)]===_0x55efa6(0x1a6)),'bothMissing':_0x190679[_0x55efa6(_0x30afa9._0x4d4e76)](_0x222989=>_0x222989['status']===_0x55efa6(0x13c)+'ng')};}function checkErrorHandling(_0x533fb0){const _0x33c721={_0x22e638:0x153,_0x2393ab:0x148,_0x231cc5:0x171,_0x177838:0x1ac,_0x3e9a68:0x14b,_0x30b04d:0x181,_0x5ec235:0x14a,_0x3751f1:0x183,_0x4e2567:0x160,_0x411161:0x15b,_0x4d5964:0x196,_0x128479:0x18c,_0x56ff8a:0x15d,_0x526a5d:0x15a,_0x1e8b3a:0x16a,_0x3e3909:0x12f,_0xe09a8e:0x156,_0x348c45:0x156,_0xf8b494:0x156,_0x29a08a:0x162,_0x48fa1b:0x1b8,_0x5b6814:0x175,_0x444764:0x18e,_0x34c641:0x131,_0xd857e7:0x175,_0x3d0523:0x193},_0x307de7=_0x3b558b,_0x498ac0=_0x3b558b,_0x948f04={};_0x948f04[_0x307de7(_0x33c721._0x22e638)]=_0x498ac0(0x16e),_0x948f04[_0x498ac0(_0x33c721._0x2393ab)]='.jsx',_0x948f04['yHiUs']=_0x307de7(_0x33c721._0x231cc5),_0x948f04[_0x498ac0(_0x33c721._0x177838)]=_0x498ac0(_0x33c721._0x3e9a68),_0x948f04[_0x498ac0(0x164)]=_0x307de7(0x127),_0x948f04[_0x498ac0(0x15a)]=_0x307de7(_0x33c721._0x30b04d),_0x948f04[_0x307de7(_0x33c721._0x5ec235)]=function(_0x313492,_0x1603cb){return _0x313492-_0x1603cb;},_0x948f04[_0x307de7(_0x33c721._0x3751f1)]=_0x498ac0(0x198)+_0x307de7(_0x33c721._0x4e2567)+'onError)';const _0x480b12=_0x948f04,_0x486acf=['frontend/s'+'rc',_0x307de7(0x138),_0x480b12[_0x498ac0(0x153)]][_0x498ac0(_0x33c721._0x411161)](_0x5712b9=>fs[_0x307de7(0x1b2)](path[_0x307de7(0x162)](_0x533fb0,_0x5712b9))),_0x1258eb=[];let _0x363ea1=-0xae*-0x34+0xdbc+-0x188a*0x2;for(const _0x5af5ef of _0x486acf){const _0x43da3f=findFiles(path['join'](_0x533fb0,_0x5af5ef),['.vue',_0x307de7(_0x33c721._0x4d5964),_0x480b12['BBvKs'],_0x480b12[_0x307de7(0x1bd)],_0x498ac0(_0x33c721._0x128479)]);for(const _0x1db03f of _0x43da3f){const _0x55c476=readSafe(_0x1db03f);if(!_0x55c476)continue;const _0x1c6cac=path[_0x307de7(0x1cb)](_0x533fb0,_0x1db03f);if(_0x1c6cac[_0x498ac0(0x1e4)](_0x498ac0(_0x33c721._0x56ff8a))||_0x1c6cac[_0x307de7(0x1e4)](_0x480b12[_0x498ac0(_0x33c721._0x177838)])||_0x1c6cac[_0x307de7(0x1e4)](_0x480b12['RSlao'])||_0x1c6cac[_0x307de7(0x1e4)](_0x480b12[_0x307de7(_0x33c721._0x526a5d)]))continue;const _0x4173e9=_0x55c476[_0x498ac0(_0x33c721._0x1e8b3a)]('\x0a');for(let _0x4b7315=-0x24e8+-0xa14+0x2efc;_0x4b7315<_0x4173e9[_0x498ac0(_0x33c721._0x3e3909)];_0x4b7315++){const _0x58427e=_0x4173e9[_0x4b7315],_0x5efba2=/\.(get|post|put|delete|patch)\s*\(\s*['"`]\/api\//[_0x307de7(_0x33c721._0xe09a8e)](_0x58427e)||/fetch\s*\(\s*['"`].*\/api\//[_0x307de7(_0x33c721._0x348c45)](_0x58427e)||/request\s*\(\s*\{[\s\S]*url.*\/api\//[_0x307de7(_0x33c721._0xf8b494)](_0x58427e)||/\bapi\.\w+\s*\(/[_0x307de7(0x156)](_0x58427e);if(!_0x5efba2)continue;_0x363ea1++;const _0x28e1c9=Math[_0x307de7(0x14c)](0x1*-0x153+0x6*-0x304+0x1*0x136b,_0x480b12['uJNHJ'](_0x4b7315,-0x1f85+-0x74b+0x26d5*0x1)),_0x58ee8d=Math[_0x498ac0(0x184)](_0x4173e9['length'],_0x4b7315+(-0x1a07+-0x1862*0x1+-0x7*-0x735)),_0x4ed0b0=_0x4173e9['slice'](_0x28e1c9,_0x58ee8d)[_0x307de7(_0x33c721._0x29a08a)]('\x0a'),_0x151d91=/\.catch\s*\(/[_0x498ac0(0x156)](_0x4ed0b0)||/catch\s*\(/[_0x498ac0(0x156)](_0x4ed0b0)||/\.then\s*\([^)]*,[^)]*\)/['test'](_0x4ed0b0)||/onError|errorHandler|handleError/i[_0x498ac0(_0x33c721._0xf8b494)](_0x4ed0b0)||/\.finally\s*\(/[_0x307de7(0x156)](_0x4ed0b0),_0x51d0ce=/catch\s*\([^)]*\)\s*\{\s*\}/[_0x498ac0(0x156)](_0x4ed0b0)||/\.catch\s*\(\s*\(\s*\)\s*=>\s*\{\s*\}\s*\)/[_0x307de7(_0x33c721._0xe09a8e)](_0x4ed0b0);if(!_0x151d91){const _0x33f9b3={};_0x33f9b3[_0x498ac0(0x19d)]=_0x1c6cac,_0x33f9b3[_0x307de7(0x13d)]=_0x4b7315+(-0x1*0x2684+0x5ca+-0x4ad*-0x7),_0x33f9b3[_0x307de7(_0x33c721._0x48fa1b)]='no-catch',_0x33f9b3[_0x498ac0(_0x33c721._0x5b6814)]=_0x480b12['eOgwE'],_0x1258eb[_0x307de7(_0x33c721._0x444764)](_0x33f9b3);}else{if(_0x51d0ce){const _0x2e14da={};_0x2e14da['file']=_0x1c6cac,_0x2e14da[_0x307de7(0x13d)]=_0x4b7315+(-0x1*-0x22b7+0x24*-0x63+0x2*-0xa65),_0x2e14da['type']=_0x498ac0(_0x33c721._0x34c641)+'h',_0x2e14da[_0x498ac0(_0x33c721._0xd857e7)]=_0x307de7(_0x33c721._0x3d0523)+'tch\x20但为空(吞掉'+'了错误)',_0x1258eb[_0x307de7(0x18e)](_0x2e14da);}}}}}return{'pass':_0x1258eb['length']===0x575+-0x3ed+0x38*-0x7,'violations':_0x1258eb,'totalApiCalls':_0x363ea1,'noHandling':_0x1258eb[_0x307de7(_0x33c721._0x411161)](_0x5cee6c=>_0x5cee6c[_0x307de7(0x1b8)]===_0x498ac0(0x1bf))[_0x307de7(0x12f)],'emptyCatch':_0x1258eb[_0x307de7(_0x33c721._0x411161)](_0x226030=>_0x226030[_0x498ac0(0x1b8)]===_0x498ac0(0x131)+'h')[_0x498ac0(0x12f)]};}function checkHardcodedData(_0x1ce1a3){const _0x10d75f={_0x26b9bf:0x1b0,_0x5d2e0c:0x1a8,_0x5c3ffd:0x171,_0x1a60c7:0x19e,_0xe09494:0x13b,_0x5a4b1b:0x13a,_0x254ab5:0x1ae,_0x3cabad:0x199,_0x57c3d9:0x162,_0x1ea9a2:0x16f,_0x327e89:0x18c,_0x1244bd:0x1cb,_0x404efc:0x156,_0xa91878:0x1e4,_0x1eb5e7:0x19e,_0x1994f7:0x1af,_0x4b54ea:0x167,_0x38ba59:0x12f,_0x3d5cb5:0x13d,_0x153a30:0x1b8,_0x2d1c0f:0x166,_0x2c14b4:0x16d,_0x276ac9:0x145,_0x2cf6d7:0x14f,_0x3231ae:0x18e,_0x2022a7:0x136,_0x24bef6:0x129,_0x47f685:0x12f,_0x2ac52f:0x167,_0x2b37b4:0x174,_0x106a7f:0x1b8,_0x109794:0x130,_0x1d64b4:0x17c,_0x5862c1:0x1bb},_0x3284f4=_0x3b558b,_0x224051=_0x3b558b,_0x1b8b46={};_0x1b8b46['DPVeF']=_0x3284f4(0x1a1),_0x1b8b46['KWpNG']=_0x224051(0x17e)+'rc',_0x1b8b46[_0x224051(_0x10d75f._0x26b9bf)]='app/src',_0x1b8b46[_0x224051(0x16f)]='.vue',_0x1b8b46[_0x3284f4(_0x10d75f._0x5d2e0c)]=_0x224051(0x196),_0x1b8b46['Eppgj']=_0x224051(_0x10d75f._0x5c3ffd),_0x1b8b46['dSogd']=_0x3284f4(0x15d),_0x1b8b46[_0x3284f4(_0x10d75f._0x1a60c7)]=_0x224051(0x14b),_0x1b8b46[_0x3284f4(_0x10d75f._0xe09494)]=function(_0xb02366,_0x19794e){return _0xb02366>=_0x19794e;},_0x1b8b46[_0x224051(0x136)]=function(_0x43fb62,_0x5a651b){return _0x43fb62!==_0x5a651b;},_0x1b8b46[_0x3284f4(_0x10d75f._0x5a4b1b)]=function(_0x1a5fd1,_0x5770a1){return _0x1a5fd1===_0x5770a1;},_0x1b8b46[_0x3284f4(_0x10d75f._0x254ab5)]=_0x3284f4(0x1d1),_0x1b8b46['JAhPb']=function(_0x583e54,_0x141bf4){return _0x583e54===_0x141bf4;};const _0x3b68a2=_0x1b8b46,_0xf630b8=[_0x3b68a2[_0x224051(_0x10d75f._0x3cabad)],_0x3b68a2[_0x224051(0x1b0)],_0x3284f4(0x16e)]['filter'](_0x13d42b=>fs[_0x3284f4(0x1b2)](path[_0x3284f4(0x162)](_0x1ce1a3,_0x13d42b))),_0x1acb3c=[];for(const _0x3e2db2 of _0xf630b8){const _0x55a3c3=findFiles(path[_0x3284f4(_0x10d75f._0x57c3d9)](_0x1ce1a3,_0x3e2db2),[_0x3b68a2[_0x3284f4(_0x10d75f._0x1ea9a2)],_0x3b68a2[_0x224051(0x1a8)],'.jsx',_0x3b68a2['Eppgj'],_0x224051(_0x10d75f._0x327e89)]);for(const _0x1f4896 of _0x55a3c3){const _0xb689da=readSafe(_0x1f4896);if(!_0xb689da)continue;const _0x41d0af=path[_0x224051(_0x10d75f._0x1244bd)](_0x1ce1a3,_0x1f4896);if(/\/(constants?|config|utils?|helpers?|types?|enums?|mock)\//i[_0x224051(_0x10d75f._0x404efc)](_0x41d0af))continue;if(_0x41d0af[_0x3284f4(_0x10d75f._0xa91878)](_0x3b68a2[_0x3284f4(0x1c1)])||_0x41d0af[_0x3284f4(0x1e4)](_0x3b68a2[_0x224051(_0x10d75f._0x1eb5e7)]))continue;const _0x1a8fe0=/(?:const|let|var|ref\(|reactive\()\s*\w+\s*[=:]\s*\[[\s\S]{100,}?\]/g;let _0xbcc709;while((_0xbcc709=_0x1a8fe0['exec'](_0xb689da))!==null){const _0x26a305=_0xbcc709[-0x59f+0x1*0x709+-0x16a],_0x16873a=(_0x26a305[_0x224051(0x1ab)](/\{/g)||[])['length'],_0x2549d8=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/['test'](_0x26a305);if(_0x3b68a2['ZxFio'](_0x16873a,0x81*-0x11+0x2*0x12e2+-0x2*0xe98)&&_0x2549d8){const _0x1efb46=_0xb689da[_0x3284f4(_0x10d75f._0x1994f7)](-0x4*-0x2af+0xc2*-0x30+-0x4*-0x669,_0xbcc709[_0x3284f4(_0x10d75f._0x4b54ea)])[_0x224051(0x16a)]('\x0a')[_0x224051(_0x10d75f._0x38ba59)],_0x414f43={};_0x414f43['file']=_0x41d0af,_0x414f43[_0x224051(_0x10d75f._0x3d5cb5)]=_0x1efb46,_0x414f43[_0x3284f4(_0x10d75f._0x153a30)]=_0x224051(_0x10d75f._0x2d1c0f)+_0x224051(_0x10d75f._0x2c14b4),_0x414f43['objectCoun'+'t']=_0x16873a,_0x414f43[_0x224051(0x175)]=_0x224051(0x17b)+_0x16873a+(_0x3284f4(_0x10d75f._0x276ac9)+_0x224051(_0x10d75f._0x2cf6d7)+_0x3284f4(0x168)),_0x1acb3c[_0x224051(_0x10d75f._0x3231ae)](_0x414f43);}}const _0x2a3198=/(?:tableData|dataSource|listData|dataList|options|menuList|items)\s*[=:]\s*(?:ref\(|reactive\()?\s*\[[\s\S]{50,}?\]/g;while(_0x3b68a2[_0x3284f4(_0x10d75f._0x2022a7)](_0xbcc709=_0x2a3198[_0x224051(_0x10d75f._0x24bef6)](_0xb689da),null)){const _0x2578a4=_0xbcc709[-0xaa3+0x267a+0x1*-0x1bd7],_0x283a5c=(_0x2578a4[_0x224051(0x1ab)](/\{/g)||[])[_0x3284f4(_0x10d75f._0x47f685)];if(_0x283a5c>=0x585+-0x1*-0x1061+0x1*-0x15e4){if(_0x3b68a2[_0x224051(0x13a)]('ajrXp',_0x3b68a2[_0x224051(0x1ae)])){const _0x1d95bb=_0xb689da['slice'](-0x1cdf+0x1*-0x1807+-0x6f*-0x7a,_0xbcc709[_0x224051(_0x10d75f._0x2ac52f)])[_0x224051(0x16a)]('\x0a')[_0x3284f4(_0x10d75f._0x47f685)];if(!_0x1acb3c[_0x224051(_0x10d75f._0x2b37b4)](_0x440465=>_0x440465[_0x224051(0x19d)]===_0x41d0af&&Math[_0x224051(0x17d)](_0x440465[_0x224051(0x13d)]-_0x1d95bb)<-0x3ae*0x2+0x10c4+-0x1e1*0x5)){const _0x571b86={};_0x571b86[_0x224051(0x19d)]=_0x41d0af,_0x571b86[_0x3284f4(_0x10d75f._0x3d5cb5)]=_0x1d95bb,_0x571b86[_0x3284f4(_0x10d75f._0x106a7f)]=_0x3284f4(0x166)+_0x3284f4(_0x10d75f._0x109794),_0x571b86[_0x3284f4(0x175)]=_0x224051(0x147)+'dataSource'+_0x224051(0x1be)+'组('+_0x283a5c+_0x224051(0x1aa),_0x1acb3c[_0x224051(_0x10d75f._0x3231ae)](_0x571b86);}}else{const _0x2149a3={};_0x2149a3[_0x3284f4(0x1d6)]=_0x3b68a2[_0x224051(0x1b6)],_0x2149a3[_0x224051(0x190)]=!![],_0x2149a3[_0x224051(0x1c5)]=_0x2836bb[_0x224051(_0x10d75f._0x1d64b4)],_0x19cb52[_0x224051(0x18e)](_0x2149a3);}}}}}return{'pass':_0x3b68a2[_0x3284f4(_0x10d75f._0x5862c1)](_0x1acb3c[_0x224051(0x12f)],0x3c5*0x7+-0x1c9e+0x23b),'suspects':_0x1acb3c};}function checkRouteCompleteness(_0x251ba7,_0x9affa6){const _0x2e34ed={_0x290110:0x1a3,_0x371853:0x187,_0x32ecfe:0x1b9,_0x10a8da:0x17e,_0x15d8e3:0x149,_0x184ac6:0x18a,_0x34cc9d:0x173,_0x194730:0x1de,_0x373d9f:0x142,_0x5d33c2:0x150,_0x1aa690:0x1cd,_0x1828f1:0x12f},_0x1f5def=_0x3b558b,_0x5be62d=_0x3b558b,_0x5d87a0={'BmaHb':function(_0x30d104,_0xcde3c0,_0x58b062){return _0x30d104(_0xcde3c0,_0x58b062);},'dFDzQ':'路由完整性','YWCgm':function(_0x164fcc,_0xb12330){return _0x164fcc===_0xb12330;},'bVZRS':_0x1f5def(0x159)+_0x5be62d(0x18d),'YxxWm':_0x5be62d(0x138),'IlDVr':_0x1f5def(_0x2e34ed._0x290110)+_0x1f5def(0x1e1),'PsbOo':_0x1f5def(0x1a3)+_0x5be62d(0x195),'RKqOj':_0x1f5def(0x19a),'vgXkT':'VQxzF','CzUVy':function(_0x30e764,_0xbe9afb){return _0x30e764+_0xbe9afb;},'hxbOH':_0x5be62d(_0x2e34ed._0x371853)+_0x1f5def(0x169),'PHZEX':':[a-zA-Z]+'},_0x244cde=extractSpecRoutes(_0x9affa6);if(_0x5d87a0['YWCgm'](_0x244cde[_0x5be62d(0x12f)],-0x27*0x55+-0x2*-0x22e+0x897))return{'pass':!![],'message':_0x5d87a0[_0x5be62d(_0x2e34ed._0x32ecfe)]};const _0x3119cc=[_0x1f5def(_0x2e34ed._0x10a8da)+'rc',_0x5d87a0['YxxWm'],'src']['filter'](_0x5a9c26=>fs[_0x5be62d(0x1b2)](path[_0x1f5def(0x162)](_0x251ba7,_0x5a9c26)));let _0x2e9b79='';for(const _0x3301c5 of _0x3119cc){for(const _0x2ac6a0 of[_0x5d87a0['IlDVr'],_0x5d87a0[_0x5be62d(_0x2e34ed._0x15d8e3)],'router.ts',_0x5d87a0[_0x1f5def(_0x2e34ed._0x184ac6)]]){if(_0x5be62d(0x135)!==_0x5d87a0[_0x1f5def(_0x2e34ed._0x34cc9d)]){const _0x13c38b=_0x5d87a0[_0x1f5def(_0x2e34ed._0x194730)](_0x5e35f8,_0x166fec,_0x279366),_0x477485={'name':_0x5d87a0[_0x1f5def(0x179)],..._0x13c38b};_0x17b3b0[_0x5be62d(0x18e)](_0x477485);if(!_0x13c38b[_0x5be62d(0x190)])_0x57a366=![];}else{const _0x3b1bf7=path['join'](_0x251ba7,_0x3301c5,_0x2ac6a0);if(fs['existsSync'](_0x3b1bf7))_0x2e9b79+=_0x5d87a0[_0x5be62d(_0x2e34ed._0x373d9f)](readSafe(_0x3b1bf7),'\x0a');}}}const _0x14ccee={};_0x14ccee[_0x1f5def(0x190)]=!![],_0x14ccee['message']=_0x5d87a0[_0x1f5def(_0x2e34ed._0x5d33c2)];if(!_0x2e9b79)return _0x14ccee;const _0x1d5d81=[];for(const _0x1c2d3f of _0x244cde){const _0x27bc7a=_0x1c2d3f['replace'](/:[a-zA-Z]+/g,_0x5d87a0[_0x5be62d(0x1c6)]);!_0x2e9b79['includes'](_0x1c2d3f)&&!new RegExp(_0x27bc7a[_0x1f5def(0x1b5)](/\//g,'\x5c/'))[_0x5be62d(0x156)](_0x2e9b79)&&_0x1d5d81[_0x1f5def(0x18e)](_0x1c2d3f);}return{'pass':_0x5d87a0[_0x1f5def(_0x2e34ed._0x1aa690)](_0x1d5d81[_0x5be62d(0x12f)],0x620+0x813+-0xe33),'total':_0x244cde['length'],'matched':_0x244cde[_0x5be62d(_0x2e34ed._0x1828f1)]-_0x1d5d81['length'],'missing':_0x1d5d81};}function runReviewChecks(_0x19cc9e,_0x48f315){const _0x2238bb={_0x22dbf7:0x16b,_0x13c79b:0x158,_0x5876b2:0x1d6,_0x16ef8e:0x178,_0x467834:0x1c5,_0x3c05ea:0x17c,_0x5c421c:0x18e,_0x43d428:0x192,_0x4385a9:0x15e,_0x5b6c51:0x16c,_0x4d3885:0x18e,_0xa3d33e:0x190,_0x34e60a:0x1d2,_0xb3d616:0x1a4,_0x453d5e:0x190,_0x22a82d:0x1ce},_0x25943b=_0x3b558b,_0x740f71=_0x3b558b,_0x1509c6={'QkaqU':function(_0x4d1d1d,_0x106c8b,_0x367268){return _0x4d1d1d(_0x106c8b,_0x367268);},'mqLqW':_0x25943b(_0x2238bb._0x22dbf7),'jCezd':function(_0x1ad967,_0x3e4824){return _0x1ad967(_0x3e4824);},'UlDuX':_0x740f71(_0x2238bb._0x13c79b),'EyqUc':function(_0x34126f,_0x119ff2){return _0x34126f>_0x119ff2;},'ezRju':_0x25943b(0x1dd),'hTOQM':function(_0x289472,_0x40a83c){return _0x289472(_0x40a83c);},'eszeK':_0x740f71(0x1a1),'beyqY':_0x740f71(0x151)},_0x46ca61=[];let _0x17ebcc=!![];try{const _0x1f8777=_0x1509c6['QkaqU'](checkApiContract,_0x19cc9e,_0x48f315),_0x52618a={'name':'API\x20契约校验',..._0x1f8777};_0x46ca61['push'](_0x52618a);if(!_0x1f8777['pass'])_0x17ebcc=![];}catch(_0x2917ff){const _0x1fb774={};_0x1fb774[_0x740f71(_0x2238bb._0x5876b2)]=_0x1509c6[_0x25943b(_0x2238bb._0x16ef8e)],_0x1fb774[_0x25943b(0x190)]=!![],_0x1fb774[_0x25943b(_0x2238bb._0x467834)]=_0x2917ff[_0x25943b(_0x2238bb._0x3c05ea)],_0x46ca61[_0x740f71(0x18e)](_0x1fb774);}try{const _0x2f0c22=_0x1509c6[_0x740f71(0x19f)](checkErrorHandling,_0x19cc9e),_0x42ca82={'name':_0x1509c6[_0x25943b(0x1b4)],..._0x2f0c22};_0x46ca61[_0x740f71(_0x2238bb._0x5c421c)](_0x42ca82);if(_0x2f0c22[_0x740f71(0x157)+_0x25943b(_0x2238bb._0x43d428)]>-0x231*0x3+0x1b6c+0x9*-0x251){const _0x294a89=_0x2f0c22[_0x25943b(_0x2238bb._0x4385a9)]/_0x2f0c22['totalApiCa'+'lls'];if(_0x1509c6['EyqUc'](_0x294a89,-0x115*-0x1d+-0x2*0x1222+0x4e3+0.5))_0x17ebcc=![];}}catch(_0x517d1a){if(_0x740f71(_0x2238bb._0x5b6c51)!==_0x1509c6[_0x740f71(0x176)]){const _0x2ab3b6={};_0x2ab3b6['name']=_0x1509c6[_0x25943b(0x1b4)],_0x2ab3b6[_0x25943b(0x190)]=!![],_0x2ab3b6[_0x740f71(0x1c5)]=_0x517d1a['message'],_0x46ca61[_0x25943b(_0x2238bb._0x5c421c)](_0x2ab3b6);}else _0xc98ad['add'](_0x4afd18[0x1*0xd2b+-0x1*0x5dd+-0x74d]),_0x1ad493[_0x25943b(_0x2238bb._0x5c421c)](_0x117343[-0x1ad9+-0x1a2f+0x3509]);}try{const _0x548927=_0x1509c6[_0x740f71(0x188)](checkHardcodedData,_0x19cc9e),_0x558e12={'name':_0x1509c6['eszeK'],..._0x548927};_0x46ca61[_0x740f71(_0x2238bb._0x4d3885)](_0x558e12);}catch(_0x313be1){const _0xdd2e66={};_0xdd2e66[_0x25943b(_0x2238bb._0x5876b2)]=_0x740f71(0x1a1),_0xdd2e66[_0x740f71(_0x2238bb._0xa3d33e)]=!![],_0xdd2e66[_0x25943b(_0x2238bb._0x467834)]=_0x313be1['message'],_0x46ca61[_0x25943b(0x18e)](_0xdd2e66);}try{const _0x4c26e8=checkRouteCompleteness(_0x19cc9e,_0x48f315),_0x3fd00d={'name':_0x740f71(0x151),..._0x4c26e8};_0x46ca61[_0x25943b(0x18e)](_0x3fd00d);if(!_0x4c26e8[_0x740f71(0x190)])_0x17ebcc=![];}catch(_0x8cd99b){if('aCutC'!=='aCutC')!_0x31a7f7[_0x25943b(0x152)](_0x184ee4[-0x1f51+-0x39c+0x1177*0x2])&&(_0x34bc8c[_0x25943b(_0x2238bb._0x34e60a)](_0x5eeb43[0xb0*0x2+0x1*-0x17a5+0x1646]),_0x3b7c2b[_0x740f71(0x18e)](_0xb67fd3[0x1*-0x1735+0x759+0xfdd]));else{const _0x1276f6={};_0x1276f6[_0x740f71(0x1d6)]=_0x1509c6[_0x25943b(_0x2238bb._0xb3d616)],_0x1276f6[_0x740f71(_0x2238bb._0x453d5e)]=!![],_0x1276f6[_0x25943b(0x1c5)]=_0x8cd99b[_0x25943b(0x17c)],_0x46ca61[_0x740f71(0x18e)](_0x1276f6);}}const _0x3f4f06={};return _0x3f4f06[_0x740f71(0x190)]=_0x17ebcc,_0x3f4f06[_0x740f71(_0x2238bb._0x22a82d)]=_0x46ca61,_0x3f4f06;}const _0x28e6f5={};function _0x3f59(){const _0x301a93=['CMvWBgfJzq','rfbwzuy','CMvHzezPBgvtEq','DhLWzq','yLzAuLm','zxHWB3j0CW','sKfOugi','nJy3ntu4nxrfA1nltq','EuHPvxm','ioEBToAoPEI1I+waVos4UUEHRoE8LUEGGEAvSa','BM8Ty2f0y2G','svPirvm','zfnVz2q','vMTZq3G','otjUDKDkDgy','zMuTBwLZC2LUzW','zxjYB3i','ueHArvG','kcGOlISPkYKRkq','wgjntuy','CgvZ','BcaTlsaI','CMvSyxrPDMu','zhLftuq','wvDdz20','y2HLy2TZ','yMfJA2vUzc9ZCG','CKvIExi','ywPYwha','ywrK','wMfHsfa','zMvgB3vUza','y2HLy2TbCgLdBW','BMfTzq','uLzVENC','CNvUuMv2Awv3qW','u0HHvNu','AwDUB3jL','CgLWzq','C3jJl21HAw4','BwjgCxm','qM1Hsgi','C3rKAw8','DgfYz2v0','zxGUDhm','uxzryuG','whnvB3q','Aw5JBhvKzxm','wKD2AeO','odaWvKfIEu9s','yMvgB3vUza','svjIEKm','lNnWzwmU','BNrYywn0','zxHLyW','mZy4n3nfqxHeCq','DhjPBq','z2L0igDYzxaGlq','Cwz3svi','otiWmZyYmhrvC0rcwq','BgvUz3rO','zgf0yxnVDxjJzq','zw1WDhKTy2f0yW','sgPys2W','suTbruy','uuTvqxy','vLf4EKy','yK9ysgG','odfXv1LTse4','yxbWl3nYyW','lMPHDMe','tKLlD2q','wNHgAw8','yM90Ac1TAxnZAq','BgLUzq','zgLZDa','yNvPBgq','C3bLyYdKUk3ML6aGqva','BMDcvgm','q3PvvNK','qxPeCMy','vufWvNy','ios4QUwVUEIXOE+8JowqQYbPzc8','tLLJswS','DgfIBgveyxrHlW','qKj2s3m','uhnIt28','DuPoseO','x190zxn0','Bwf4','BNnPzguTD29YAW','otqXmdK0v1L0txrb','BMfTzsdLRzFMRRuG4Ocuia','AhHIt0G','6lEV55sX5A6m5Pw05OcN','AgfZ','ufj1ru4','Bwv0Ag9K','CMvHzgrPCLn5BG','DgvZDa','Dg90ywXbCgLdyq','6zsz6k+V5Ase55cg5A6H6k6H','C3bLyYdKUk3ML6dMMl7LVi/OT68','u2HnDgS','zMLSDgvY','suXvB3e','lMqUDhm','BM9iyw5KBgLUzW','z2L0ihjLDI1Wyq','55cg77Yi5PEGignHDgnOlW','C3rHDhvZ','AM9PBG','mZG2otvuzK5szLi','uLnSyw8','y2HLy2TsB3v0zq','AgfYzgnVzgvKlq','Aw5KzxG','5BQu5lUoiefqssdOJRFLJ5BVViK','ioAwH+s7TG','C3bSAxq','qvbjiowLKEE6PUAGOEMQJa','tNv1wKi','yxjYyxK','C3jJ','EwzABhi','q0zVwNC','lNrZ','zw5JB2rPBMC','DMDyA1q','C29Tzq','zgv0ywLS','zxPsANu','C3rHCNrZv2L0Aa','BxfmCvC','zezeELe','Dez0y0O','55Ar5lY856gS57Yw56cb5PwW5O2U77Yi','BwvZC2fNzq','ywjZ','zNjVBNrLBMqVCW','mtKZotGZnK5ht3LXCq','sgfUzgXPBMC','lNrLC3qU','ELrfvfm','zu9ND0u','BwLU','AgvJA3m','nZm0nffVtMnTqW','5PYQ5OM+5yIWihjVDxrLCG','Afrpuu0','BMXgwhy','uKTXt2O','zw5KC1DPDgG','lMPZ','55sX5AoW5PIo','ChvZAa','q29TCgXLDgvUzq','CgfZCW','lxrYzwu','BgXZ','qvbjioIWG+EuQoACIsbJyq','DxrMltG','zxGUANm','lNrZEa','BM9Kzv9TB2r1Ba','qvbjioIWG+EuQoAxOoMuMEIVR+wKHa','s1DWtKC','CM91DgvYlMPZ','AKrTtwC','lNb5','zMLSzq','uMLZuxG','AKnLEMq','C2vHCMnO','56gS57Yw56cb5PwW5O2U5Qoa5Rwl','uMTKyxO','CM91DgvYl2LUza','yMv5CvK','lMDV','yMuTBwLZC2LUzW','B2rLzerHDge','tNL1v1C','zKTHs28','ios4QUwVUEIXOE+8Iq','Bwf0y2G','sxfiv3C','C3bLy19JB3bPBa','wNrHEMC','C2XPy2u','vefXtuS','Cgf0Aa','zxHPC3rZu3LUyW','C0Hhrfq','vwXeDvG'];_0x3f59=function(){return _0x301a93;};return _0x3f59();}_0x28e6f5[_0x1e7463(0x1d8)+_0x3b558b(0x185)]=runReviewChecks,_0x28e6f5[_0x3b558b(0x1d5)+_0x1e7463(0x128)]=checkApiContract,_0x28e6f5['checkError'+_0x1e7463(0x180)]=checkErrorHandling,_0x28e6f5['checkHardc'+_0x3b558b(0x1a7)]=checkHardcodedData,_0x28e6f5[_0x3b558b(0x165)+_0x3b558b(0x18f)+'ss']=checkRouteCompleteness,module[_0x3b558b(0x1ba)]=_0x28e6f5;
|
|
11
|
+
const _0x30ed3a=_0x47e0,_0xd9dc66=_0x47e0;(function(_0x46e44f,_0x225346){const _0x5d3eb6={_0x378bea:0x16d,_0x416dd5:0x180,_0x4c1a8b:0x121,_0x2f0be1:0x1b7},_0x597277=_0x47e0,_0x44573c=_0x47e0,_0x2350e1=_0x46e44f();while(!![]){try{const _0x8c9a8b=-parseInt(_0x597277(_0x5d3eb6._0x378bea))/(0x1509+0x10c4+-0x4*0x973)*(-parseInt(_0x597277(0x15c))/(-0x65b+-0x22*0x16+0x949*0x1))+-parseInt(_0x44573c(0xfa))/(0x13*-0x1d5+0x21f*0x1+0xb*0x2f9)+parseInt(_0x597277(_0x5d3eb6._0x416dd5))/(-0x5*0x51f+-0x33b*-0x3+0xfee*0x1)+parseInt(_0x44573c(0x134))/(0x10e*0xc+0x133f+-0x7*0x48e)*(-parseInt(_0x597277(_0x5d3eb6._0x4c1a8b))/(-0xef*-0x13+0x83*0x34+-0x2c53))+parseInt(_0x597277(0x144))/(-0x1756+0x330*0x1+0x142d)*(parseInt(_0x597277(0xee))/(-0x1407+0x4fd*0x3+0x518))+parseInt(_0x597277(_0x5d3eb6._0x2f0be1))/(-0x830+0x367*-0x6+0x1ca3)+-parseInt(_0x44573c(0xf7))/(-0x1f9c+-0x12e2*-0x1+0xcc4);if(_0x8c9a8b===_0x225346)break;else _0x2350e1['push'](_0x2350e1['shift']());}catch(_0x318988){_0x2350e1['push'](_0x2350e1['shift']());}}}(_0xc46b,0x38e65+0x2*-0xf3aa+0xb545a*0x1));const _0x20b99a=(function(){const _0x4ab7c7={_0x37f135:0x18d},_0x3f5e52={};_0x3f5e52['LSZdr']='rWECx';const _0x1128aa=_0x3f5e52;let _0xefd455=!![];return function(_0x92a374,_0x288fe3){const _0x40a682={_0x43bca3:0x1c0},_0x38f416=_0x47e0,_0x5a03d1={};_0x5a03d1[_0x38f416(_0x4ab7c7._0x37f135)]=_0x1128aa['LSZdr'];const _0x3d9e02=_0x5a03d1,_0x53f474=_0xefd455?function(){const _0x13e3cf=_0x38f416,_0x591df7=_0x38f416;if(_0x288fe3){if(_0x3d9e02[_0x13e3cf(0x18d)]==='rWECx'){const _0x1c37e3=_0x288fe3[_0x591df7(_0x40a682._0x43bca3)](_0x92a374,arguments);return _0x288fe3=null,_0x1c37e3;}else return![];}}:function(){};return _0xefd455=![],_0x53f474;};}()),_0xfa9a01=_0x20b99a(this,function(){const _0x57a19b={_0x26f260:0x1bd,_0x3f9861:0x187},_0x2f7ac5=_0x47e0,_0x4d0359=_0x47e0,_0xccfe46={};_0xccfe46[_0x2f7ac5(_0x57a19b._0x26f260)]=_0x4d0359(0x1bc)+'+$';const _0x1f1e6f=_0xccfe46;return _0xfa9a01[_0x2f7ac5(0x187)]()['search'](_0x1f1e6f[_0x4d0359(0x1bd)])[_0x4d0359(_0x57a19b._0x3f9861)]()['constructo'+'r'](_0xfa9a01)['search'](_0x1f1e6f[_0x2f7ac5(0x1bd)]);});_0xfa9a01();const fs=require('fs'),path=require(_0x30ed3a(0xf9)),{execSync}=require(_0x30ed3a(0xfb)+_0xd9dc66(0x1b1));function isGitRepo(_0xca2547){const _0xe4af1e={_0x31f18b:0x13d,_0x3d9008:0x195,_0x389b96:0x158,_0x4b2153:0x12a},_0x5a6c36=_0xd9dc66,_0x20a267=_0xd9dc66,_0x7cfd56={};_0x7cfd56[_0x5a6c36(0x13d)]=_0x20a267(0x11d);const _0x177116=_0x7cfd56;try{const _0x32ce7d={};return _0x32ce7d[_0x20a267(0x159)]=_0xca2547,_0x32ce7d[_0x20a267(0x111)]=_0x177116[_0x20a267(_0xe4af1e._0x31f18b)],execSync(_0x5a6c36(_0xe4af1e._0x3d9008)+_0x20a267(_0xe4af1e._0x389b96)+_0x5a6c36(_0xe4af1e._0x4b2153)+_0x20a267(0xdd),_0x32ce7d),!![];}catch{return![];}}function gitGrep(_0x211b99,_0x24eb87){const _0x5a2b70={_0x2ebe5c:0x13c,_0x3d4f0a:0x1a2,_0x443b2e:0x136},_0x2f400f=_0xd9dc66,_0x20b4a0=_0xd9dc66,_0x29ce7d={};_0x29ce7d[_0x2f400f(_0x5a2b70._0x2ebe5c)]=_0x2f400f(0x1ab),_0x29ce7d[_0x2f400f(_0x5a2b70._0x3d4f0a)]=_0x20b4a0(0xe3);const _0xe0ab66=_0x29ce7d;try{const _0x1b8e77={};_0x1b8e77[_0x20b4a0(0x159)]=_0x211b99,_0x1b8e77[_0x2f400f(0x11e)]=_0xe0ab66[_0x2f400f(0x13c)],_0x1b8e77['stdio']=['pipe',_0xe0ab66[_0x2f400f(0x1a2)],_0x20b4a0(0x11d)];const _0x379881=execSync(_0x2f400f(0x151)+'l\x20--\x20\x22'+_0x24eb87+'\x22',_0x1b8e77)[_0x2f400f(_0x5a2b70._0x443b2e)]();return _0x379881?_0x379881['split']('\x0a')[_0x2f400f(0xf5)](Boolean):[];}catch{return[];}}function findFiles(_0xd3fbf6,_0x9e39b3,_0x503834=-0x1556+-0x1*-0x1345+0x2*0x10b){const _0x430a7f={_0xd25d36:0x109,_0x3c9662:0x181,_0x2b206f:0x173,_0x4bd2fe:0x186},_0x3e19fe={_0xa44291:0x167,_0x47b517:0xdf,_0x3b517e:0x19d,_0x42e6c6:0x135,_0xe3e6a7:0x123,_0x232296:0x197,_0x15f5e5:0x128,_0x5bc0fe:0x126,_0x326cfc:0x131},_0x53046a=_0xd9dc66,_0x5ec336=_0xd9dc66,_0x1f87a0={'JPqzi':_0x53046a(0xea),'OyDxr':_0x53046a(_0x430a7f._0xd25d36),'pBNHD':function(_0x52607d,_0x372df1){return _0x52607d===_0x372df1;},'kEgyB':_0x53046a(_0x430a7f._0x3c9662),'zTBCc':'node_modul'+'es','RGWlH':function(_0x14d143,_0x3c7936){return _0x14d143===_0x3c7936;},'PDJRC':_0x53046a(_0x430a7f._0x2b206f),'QbeOK':_0x5ec336(_0x430a7f._0x4bd2fe),'EYWnu':function(_0x28af2e,_0x5960b3,_0x313581){return _0x28af2e(_0x5960b3,_0x313581);}},_0x3b0dda=[];function _0x3ba9fc(_0x3d1e38,_0x485db1){const _0x34cc97=_0x53046a,_0x539d20=_0x53046a,_0x1a9b0b={};_0x1a9b0b[_0x34cc97(0x19d)]=_0x1f87a0[_0x34cc97(_0x3e19fe._0xa44291)],_0x1a9b0b['LYGNv']=function(_0x382b9e,_0x1df0e9){return _0x382b9e>_0x1df0e9;};const _0x642073=_0x1a9b0b;if(_0x1f87a0[_0x34cc97(0xdf)]!==_0x1f87a0[_0x34cc97(_0x3e19fe._0x47b517)]){const _0x4c1e6d=_0x21d534(_0x20bd5c),_0x3b9199={'name':_0x642073[_0x539d20(_0x3e19fe._0x3b517e)],..._0x4c1e6d};_0x50321e['push'](_0x3b9199);if(_0x4c1e6d['totalApiCa'+'lls']>0x17e6+-0x2*-0x118d+-0x3b00){const _0x197401=_0x4c1e6d['noHandling']/_0x4c1e6d[_0x34cc97(0x142)+_0x539d20(0x183)];if(_0x642073[_0x539d20(0x172)](_0x197401,-0xc8*0x14+0x1*-0xff7+-0x1*-0x1f97+0.5))_0x3740e0=![];}}else{if(_0x485db1>_0x503834||!fs[_0x34cc97(0x13b)](_0x3d1e38))return;try{const _0x30dcb7={};_0x30dcb7['withFileTy'+_0x539d20(0x10a)]=!![];const _0x58f0b4=fs[_0x539d20(0x168)+'c'](_0x3d1e38,_0x30dcb7);for(const _0x586858 of _0x58f0b4){if(_0x1f87a0[_0x539d20(0xe2)](_0x1f87a0['kEgyB'],_0x1f87a0[_0x539d20(0x103)])){if(_0x586858[_0x539d20(_0x3e19fe._0x42e6c6)][_0x34cc97(0x122)]('.')||_0x586858['name']===_0x1f87a0[_0x539d20(_0x3e19fe._0xe3e6a7)]||_0x586858[_0x539d20(0x135)]===_0x539d20(0x108)||_0x1f87a0['RGWlH'](_0x586858[_0x539d20(0x135)],_0x1f87a0[_0x34cc97(_0x3e19fe._0x232296)])||_0x586858[_0x34cc97(0x135)]===_0x1f87a0[_0x539d20(_0x3e19fe._0x15f5e5)])continue;const _0x1487c4=path['join'](_0x3d1e38,_0x586858[_0x539d20(0x135)]);if(_0x586858[_0x539d20(_0x3e19fe._0x5bc0fe)+'y']())_0x3ba9fc(_0x1487c4,_0x485db1+(-0x2637+-0xc42+-0x327a*-0x1));else{if(_0x9e39b3['some'](_0x19f55f=>_0x586858[_0x539d20(0x135)]['endsWith'](_0x19f55f)))_0x3b0dda[_0x539d20(0x131)](_0x1487c4);}}else{const _0x438cf5=_0x241d07(_0x29395f),_0x25c41b={'name':'硬编码数据检测',..._0x438cf5};_0x1eb392[_0x34cc97(_0x3e19fe._0x326cfc)](_0x25c41b);}}}catch{}}}return _0x1f87a0[_0x53046a(0x19a)](_0x3ba9fc,_0xd3fbf6,0x1814+-0x2*0x2a0+-0x12d4*0x1),_0x3b0dda;}function readSafe(_0x38c434){const _0x1e1a0e={_0x310523:0xec,_0x1c3753:0x163,_0x125315:0x192,_0x5a2e47:0x1ab,_0x2a4632:0x129,_0x5c12b3:0x190,_0x509037:0x192,_0x7bce71:0x129,_0x371839:0x198,_0x75f134:0xec,_0x4f1353:0xe9,_0x28f321:0x17f},_0x220c51=_0xd9dc66,_0x58e100=_0xd9dc66,_0x12095c={};_0x12095c[_0x220c51(_0x1e1a0e._0x310523)]=_0x58e100(_0x1e1a0e._0x1c3753)+'h',_0x12095c[_0x58e100(_0x1e1a0e._0x125315)]=_0x58e100(_0x1e1a0e._0x5a2e47),_0x12095c[_0x58e100(_0x1e1a0e._0x2a4632)]=_0x220c51(0x140),_0x12095c['ZMbvM']=_0x220c51(0xe5);const _0x4eefd2=_0x12095c;try{return fs[_0x220c51(_0x1e1a0e._0x5c12b3)+'nc'](_0x38c434,_0x4eefd2[_0x58e100(_0x1e1a0e._0x509037)]);}catch{if(_0x4eefd2[_0x58e100(_0x1e1a0e._0x7bce71)]===_0x4eefd2[_0x220c51(0xfc)]){const _0x7cd628={};_0x7cd628[_0x58e100(_0x1e1a0e._0x371839)]=_0xdbab2,_0x7cd628['line']=_0x1ea1a5+(-0x4d3*-0x2+-0x769*0x1+-0x23c*0x1),_0x7cd628[_0x220c51(0x14e)]=_0x4eefd2[_0x220c51(_0x1e1a0e._0x75f134)],_0x7cd628[_0x220c51(0xd6)]=_0x220c51(_0x1e1a0e._0x4f1353)+'tch\x20但为空(吞掉'+_0x58e100(_0x1e1a0e._0x28f321),_0x4f220b[_0x58e100(0x131)](_0x7cd628);}else return'';}}function extractSpecApis(_0x3a09d8){const _0x232289={_0x552fc7:0x154,_0x288663:0xf9,_0x249e5a:0x1a7,_0x4accfe:0x145,_0x29cd53:0xf5},_0x22aed8=_0x30ed3a,_0xa5204b=_0x30ed3a,_0x6b4207={'jyHjH':function(_0x50517e,_0x245f4e,_0x505442){return _0x50517e(_0x245f4e,_0x505442);},'xTCtt':_0x22aed8(0x1ab),'Otppt':function(_0x95436b,_0x45d6af){return _0x95436b!==_0x45d6af;},'FCtEY':function(_0x128e5e,_0x3922ad){return _0x128e5e===_0x3922ad;}},_0x332c62=[],_0x820c92=new Set(),_0x46cad2=/(GET|POST|PUT|DELETE|PATCH)\s+(\/api\/[^\s|,))\]]+)/g;let _0x1c3043;while(_0x6b4207[_0xa5204b(0x1aa)](_0x1c3043=_0x46cad2[_0x22aed8(0x177)](_0x3a09d8),null)){if('PxQEo'===_0x22aed8(0x13e)){const _0x103406=_0x1c3043[0x60d*0x4+-0x2cc*-0x3+0x67*-0x51]+'\x20'+_0x1c3043[-0x6a7*0x1+0x1e2+0x4c7];if(!_0x820c92[_0x22aed8(_0x232289._0x552fc7)](_0x103406)){if(_0x6b4207['FCtEY'](_0x22aed8(0x1bb),_0xa5204b(0x110)))_0x445872['add'](_0x24954c[-0x166*0x14+-0x24e5*-0x1+-0x476*0x2]),_0x1c2575[_0xa5204b(0x131)](_0x133f8f[-0x2588+0x49*-0x49+-0x16*-0x2a7]);else{_0x820c92[_0xa5204b(0xd8)](_0x103406);const _0x36aeff={};_0x36aeff[_0x22aed8(0x155)]=_0x1c3043[0x1e2*-0x11+-0x86*0x30+0x1*0x3923],_0x36aeff[_0xa5204b(_0x232289._0x288663)]=_0x1c3043[-0xdd5*-0x1+0x716*-0x5+-0x159b*-0x1],_0x332c62['push'](_0x36aeff);}}}else try{const _0x488b3d=ZTHdMN[_0xa5204b(_0x232289._0x249e5a)](_0x131396,'git\x20grep\x20-'+_0xa5204b(0x1a6)+_0x1e734f+'\x22',{'cwd':_0x516c7a,'encoding':ZTHdMN[_0x22aed8(_0x232289._0x4accfe)],'stdio':[_0xa5204b(0xe3),_0xa5204b(0xe3),_0xa5204b(0x11d)]})['trim']();return _0x488b3d?_0x488b3d[_0x22aed8(0x188)]('\x0a')[_0xa5204b(_0x232289._0x29cd53)](_0x4c5bf7):[];}catch{return[];}}return _0x332c62;}function extractSpecRoutes(_0x171340){const _0x15bfcb={_0x453bf2:0x131},_0x2e2410=_0xd9dc66,_0x1ce20b=_0xd9dc66,_0x230c5f={};_0x230c5f[_0x2e2410(0x14a)]=function(_0x3a1f68,_0x4cc08d){return _0x3a1f68!==_0x4cc08d;};const _0x1ee8c5=_0x230c5f,_0x4fadff=[],_0xf58615=new Set(),_0x5ab109=/(?:路由|route|path|页面路径)[::]\s*([\/\w\-:]+)/gi;let _0x3d1efb;while((_0x3d1efb=_0x5ab109['exec'](_0x171340))!==null){!_0xf58615[_0x2e2410(0x154)](_0x3d1efb[0x2406+0x1f4e+-0x4353])&&(_0xf58615[_0x1ce20b(0xd8)](_0x3d1efb[0x9*-0x373+0xbd+0x1e4f]),_0x4fadff[_0x2e2410(0x131)](_0x3d1efb[0x187*0xd+-0x1ea6+-0x1*-0xacc]));}const _0x4758a3=/\|\s*(\/[a-zA-Z][\w\-\/:]*)\s*\|/g;while(_0x1ee8c5['QKXjX'](_0x3d1efb=_0x4758a3['exec'](_0x171340),null)){!_0xf58615[_0x1ce20b(0x154)](_0x3d1efb[-0x1416+0x1844*-0x1+0x2c5b])&&(_0xf58615['add'](_0x3d1efb[0xe2b+-0x13*0xb3+0x9*-0x19]),_0x4fadff[_0x2e2410(_0x15bfcb._0x453bf2)](_0x3d1efb[-0xb*-0x25+-0x1d53+0x1bbd]));}return _0x4fadff;}function checkApiContract(_0xd937e0,_0x17f2e2){const _0x51611b={_0x1a3d62:0x17b,_0xf2a013:0xe4,_0x4fabd4:0x193,_0x8b5691:0x1af,_0x2081f0:0xe1,_0x2abfe3:0x114,_0x2980ac:0x1a8,_0x45ca6a:0x132,_0x186cdb:0xf5,_0x1bdb93:0xf5,_0x368ed8:0x182,_0x5d894d:0x188,_0x40d97f:0x16b,_0x4f10e9:0x10f,_0x5db1de:0x160,_0x20fc65:0x13f,_0xa26fe0:0x12b,_0x427d62:0xe0,_0x4537c5:0x19f,_0x4c44fc:0x14e,_0x199fc4:0x1a5,_0x5b4d04:0x16e,_0x1a8a34:0x160,_0x1961e4:0x127,_0x1efb71:0x102,_0x5b152c:0xf9,_0x3b211f:0x171,_0x40321e:0xde,_0xd394f4:0x1a8},_0x336c4b=_0x30ed3a,_0x52c54c=_0x30ed3a,_0x1e0e8c={'tOhFZ':_0x336c4b(0x178)+'rc','UTTJC':'app/src','NFFvs':_0x336c4b(0x18f)+'c','heDPu':_0x336c4b(_0x51611b._0x1a3d62),'kMmjc':function(_0x4ceef8,_0x4331f5,_0x1fa5fd){return _0x4ceef8(_0x4331f5,_0x1fa5fd);},'GCHWk':function(_0x2f0f4f,_0x474f85){return _0x2f0f4f!==_0x474f85;},'KOBog':_0x336c4b(_0x51611b._0xf2a013),'IcbqE':_0x52c54c(0x125),'vZoYT':_0x52c54c(_0x51611b._0x4fabd4),'RISHr':function(_0x434649,_0x339575,_0x10f3ad){return _0x434649(_0x339575,_0x10f3ad);},'UNgju':_0x336c4b(_0x51611b._0x8b5691),'VBtsM':_0x52c54c(_0x51611b._0x2081f0)},_0x2d1639=extractSpecApis(_0x17f2e2),_0x4d3f62={};_0x4d3f62[_0x52c54c(0x107)]=!![],_0x4d3f62[_0x52c54c(0x1b4)]=[],_0x4d3f62[_0x336c4b(0x115)]=_0x52c54c(_0x51611b._0x2abfe3)+'I\x20端点声明';if(_0x2d1639[_0x52c54c(_0x51611b._0x2980ac)]===0x144*0xd+0xa5d+-0x1ad1)return _0x4d3f62;const _0x123663=isGitRepo(_0xd937e0),_0x2bafa6=[_0x1e0e8c[_0x52c54c(_0x51611b._0x45ca6a)],_0x1e0e8c['UTTJC'],'src'][_0x336c4b(_0x51611b._0x186cdb)](_0x52884b=>fs['existsSync'](path[_0x52c54c(0x160)](_0xd937e0,_0x52884b))),_0x1c4e7e=[_0x1e0e8c[_0x52c54c(0x1b3)],_0x1e0e8c[_0x336c4b(0x139)]][_0x52c54c(_0x51611b._0x1bdb93)](_0xe48e8c=>fs[_0x52c54c(0x13b)](path[_0x336c4b(0x160)](_0xd937e0,_0xe48e8c))),_0x598f8c=[];for(const _0x56bb23 of _0x2d1639){const _0x1c7cf9=_0x56bb23[_0x336c4b(0xf9)][_0x52c54c(0x182)](/\{[^}]+\}/g,'')[_0x336c4b(_0x51611b._0x368ed8)](/\/+$/,''),_0x54f116=_0x1c7cf9[_0x52c54c(_0x51611b._0x5d894d)]('/')[_0x336c4b(_0x51611b._0x40d97f)](0xce*0x23+-0x47*-0x1+-0x97b*0x3,0x18*-0x17+0x2*-0xe55+0x2*0xf6b)['join']('/');let _0x5cd42d=![],_0x4809be=![];if(_0x123663){const _0x3f547a=_0x1e0e8c[_0x336c4b(_0x51611b._0x4f10e9)](gitGrep,_0xd937e0,_0x54f116),_0x58e148=_0x3f547a[_0x336c4b(0xf5)](_0x525b23=>!_0x525b23[_0x52c54c(0x122)](_0x52c54c(0x12d)+'ot/')&&!_0x525b23[_0x52c54c(0xf0)](_0x336c4b(0x146)));_0x5cd42d=_0x58e148[_0x52c54c(0xe0)](_0x36fe82=>/\.(vue|tsx|jsx|ts|js)$/[_0x52c54c(0x12c)](_0x36fe82)&&/(src|app|pages|views|components|api|services|store)\//['test'](_0x36fe82)),_0x4809be=_0x58e148[_0x336c4b(0xe0)](_0x338af9=>/\.(java|kt|py|go|rb|cs|php)$/[_0x52c54c(0x12c)](_0x338af9));}else{for(const _0x4c0ef6 of _0x2bafa6){if(_0x1e0e8c[_0x336c4b(0x152)](_0x1e0e8c[_0x52c54c(0x1a0)],_0x336c4b(0xe6))){const _0x2dfffc=_0x1e0e8c[_0x336c4b(_0x51611b._0x4f10e9)](findFiles,path[_0x52c54c(_0x51611b._0x5db1de)](_0xd937e0,_0x4c0ef6),[_0x52c54c(_0x51611b._0x20fc65),_0x52c54c(0xed),_0x1e0e8c[_0x336c4b(_0x51611b._0xa26fe0)],_0x336c4b(0x113),_0x1e0e8c[_0x52c54c(0x153)]]);_0x5cd42d=_0x2dfffc[_0x52c54c(_0x51611b._0x427d62)](_0x21d38d=>readSafe(_0x21d38d)[_0x336c4b(0x15a)](_0x54f116));if(_0x5cd42d)break;}else{const _0x26f768={};_0x26f768[_0x336c4b(0x198)]=_0x5e3479,_0x26f768[_0x52c54c(_0x51611b._0x4537c5)]=_0x2cab06,_0x26f768[_0x52c54c(_0x51611b._0x4c44fc)]='hardcoded-'+'datasource',_0x26f768[_0x336c4b(0xd6)]='tableData/'+'dataSource'+_0x336c4b(0x170)+'组('+_0x2b4a15+_0x52c54c(_0x51611b._0x199fc4),_0x12687c[_0x52c54c(0x131)](_0x26f768);}}for(const _0x47387a of _0x1c4e7e){const _0x52a14d=_0x1e0e8c[_0x336c4b(_0x51611b._0x5b4d04)](findFiles,path[_0x52c54c(_0x51611b._0x1a8a34)](_0xd937e0,_0x47387a),[_0x52c54c(0xdc),'.kt',_0x336c4b(_0x51611b._0x1961e4),_0x1e0e8c[_0x52c54c(_0x51611b._0x1efb71)]]);_0x4809be=_0x52a14d[_0x336c4b(_0x51611b._0x427d62)](_0x592cdd=>readSafe(_0x592cdd)[_0x52c54c(0x15a)](_0x54f116));if(_0x4809be)break;}}const _0x1aa6ab={};_0x1aa6ab['method']=_0x56bb23['method'],_0x1aa6ab[_0x336c4b(0xf9)]=_0x56bb23[_0x336c4b(_0x51611b._0x5b152c)],_0x1aa6ab[_0x52c54c(0xf3)]=_0x5cd42d,_0x1aa6ab['beFound']=_0x4809be,_0x1aa6ab[_0x52c54c(_0x51611b._0x3b211f)]=_0x5cd42d&&_0x4809be?'ok':_0x5cd42d?_0x336c4b(_0x51611b._0x40321e):_0x4809be?_0x1e0e8c[_0x52c54c(0x1bf)]:_0x52c54c(0x15d)+'ng',_0x598f8c['push'](_0x1aa6ab);}const _0x7f4381=_0x598f8c[_0x336c4b(0xf5)](_0x7517e8=>_0x7517e8['status']!=='ok');return{'pass':_0x7f4381['length']===0x5*0x199+-0x1788+0xf8b*0x1,'results':_0x598f8c,'total':_0x2d1639[_0x52c54c(_0x51611b._0xd394f4)],'matched':_0x598f8c[_0x336c4b(0xf5)](_0x3c3e21=>_0x3c3e21[_0x336c4b(0x171)]==='ok')[_0x52c54c(_0x51611b._0x2980ac)],'feMissing':_0x598f8c['filter'](_0x4681d3=>_0x4681d3['status']==='fe-missing'),'beMissing':_0x598f8c[_0x336c4b(0xf5)](_0x37a015=>_0x37a015[_0x52c54c(0x171)]===_0x336c4b(0xde)),'bothMissing':_0x598f8c[_0x336c4b(0xf5)](_0x1c2c13=>_0x1c2c13[_0x52c54c(0x171)]==='both-missi'+'ng')};}function checkErrorHandling(_0x1bf7af){const _0x3739be={_0x2cf765:0x13f,_0x675fa0:0x125,_0x3c1965:0x1a4,_0x14caf0:0x193,_0x2188d1:0x15a,_0x54b8ac:0x15e,_0x3bd7d6:0x15a,_0x4e75a6:0x130,_0x5c831e:0x15a,_0x6fab7c:0x19b,_0x1e501d:0x188,_0x5a269a:0x12c,_0x2b1f5b:0x12c,_0x593df6:0xe7,_0x4329d0:0x160,_0x7ad13a:0x12c,_0x4422dc:0x131,_0x38828e:0x19e,_0x22755e:0x157,_0x4230fa:0x19f,_0x430013:0xe9,_0x4d69c3:0x11c,_0x127e1b:0x131,_0x2c5fa4:0x100,_0x1783c2:0xf5,_0x54f0ef:0xf5,_0x5196ba:0x1a8},_0x31da32=_0xd9dc66,_0x25bcc6=_0xd9dc66,_0x636591={'SErmL':_0x31da32(0x12e),'qXZZh':'src','uwboi':function(_0x5b7ef6,_0x4784f0,_0x4f0f15){return _0x5b7ef6(_0x4784f0,_0x4f0f15);},'frBxs':_0x25bcc6(_0x3739be._0x2cf765),'rrdbm':_0x25bcc6(_0x3739be._0x675fa0),'OkNCe':'.d.ts','QznrG':_0x25bcc6(_0x3739be._0x3c1965),'lEysn':'.test.','mIQau':function(_0x39df3b,_0xaf325b){return _0x39df3b<_0xaf325b;},'KHkcs':function(_0x4aa426,_0x408e05){return _0x4aa426+_0x408e05;},'VUETk':'no-catch','ZwJlj':function(_0x1b87f6,_0x1816f2){return _0x1b87f6===_0x1816f2;}},_0x29efac=['frontend/s'+'rc',_0x636591['SErmL'],_0x636591[_0x31da32(0x191)]][_0x31da32(0xf5)](_0x546885=>fs[_0x25bcc6(0x13b)](path[_0x25bcc6(0x160)](_0x1bf7af,_0x546885))),_0x1c6427=[];let _0x2a82de=-0xe8f*0x1+-0xe+-0x57*-0x2b;for(const _0x4c4a45 of _0x29efac){const _0x23ef24=_0x636591['uwboi'](findFiles,path[_0x31da32(0x160)](_0x1bf7af,_0x4c4a45),[_0x636591[_0x25bcc6(0xf6)],'.tsx',_0x636591[_0x25bcc6(0x17c)],'.ts',_0x31da32(_0x3739be._0x14caf0)]);for(const _0x4eeb78 of _0x23ef24){const _0x203885=readSafe(_0x4eeb78);if(!_0x203885)continue;const _0x16f43b=path[_0x25bcc6(0x19c)](_0x1bf7af,_0x4eeb78);if(_0x16f43b[_0x25bcc6(_0x3739be._0x2188d1)](_0x636591[_0x31da32(_0x3739be._0x54b8ac)])||_0x16f43b[_0x25bcc6(_0x3739be._0x3bd7d6)](_0x25bcc6(_0x3739be._0x4e75a6))||_0x16f43b[_0x31da32(_0x3739be._0x5c831e)](_0x636591[_0x31da32(0x1b5)])||_0x16f43b[_0x31da32(0x15a)](_0x636591[_0x31da32(_0x3739be._0x6fab7c)]))continue;const _0x641034=_0x203885[_0x25bcc6(_0x3739be._0x1e501d)]('\x0a');for(let _0x43a4fc=-0x266*0x7+0xc4d+0x1*0x47d;_0x636591['mIQau'](_0x43a4fc,_0x641034['length']);_0x43a4fc++){const _0x4ea2a3=_0x641034[_0x43a4fc],_0x3a51b4=/\.(get|post|put|delete|patch)\s*\(\s*['"`]\/api\//[_0x31da32(_0x3739be._0x5a269a)](_0x4ea2a3)||/fetch\s*\(\s*['"`].*\/api\//[_0x25bcc6(_0x3739be._0x2b1f5b)](_0x4ea2a3)||/request\s*\(\s*\{[\s\S]*url.*\/api\//[_0x25bcc6(0x12c)](_0x4ea2a3)||/\bapi\.\w+\s*\(/['test'](_0x4ea2a3);if(!_0x3a51b4)continue;_0x2a82de++;const _0x2b651b=Math[_0x25bcc6(_0x3739be._0x593df6)](-0x71+-0x2035+0x18e*0x15,_0x43a4fc-(0x2c8+-0x299*-0xf+-0x31*0xda)),_0x5633d4=Math[_0x25bcc6(0x1b0)](_0x641034[_0x31da32(0x1a8)],_0x43a4fc+(-0x1e2d*-0x1+-0x1a3c+-0x6f*0x9)),_0x387b8e=_0x641034['slice'](_0x2b651b,_0x5633d4)[_0x31da32(_0x3739be._0x4329d0)]('\x0a'),_0x3ec38d=/\.catch\s*\(/[_0x31da32(_0x3739be._0x5a269a)](_0x387b8e)||/catch\s*\(/[_0x25bcc6(0x12c)](_0x387b8e)||/\.then\s*\([^)]*,[^)]*\)/[_0x31da32(0x12c)](_0x387b8e)||/onError|errorHandler|handleError/i[_0x31da32(0x12c)](_0x387b8e)||/\.finally\s*\(/['test'](_0x387b8e),_0x19a618=/catch\s*\([^)]*\)\s*\{\s*\}/[_0x25bcc6(_0x3739be._0x7ad13a)](_0x387b8e)||/\.catch\s*\(\s*\(\s*\)\s*=>\s*\{\s*\}\s*\)/[_0x31da32(0x12c)](_0x387b8e);if(!_0x3ec38d)_0x1c6427[_0x31da32(_0x3739be._0x4422dc)]({'file':_0x16f43b,'line':_0x636591[_0x31da32(0xef)](_0x43a4fc,0x11b*-0x1f+0x18fc+0x3a*0x29),'type':_0x636591[_0x25bcc6(_0x3739be._0x38828e)],'detail':_0x31da32(_0x3739be._0x22755e)+_0x31da32(0x17d)+'onError)'});else{if(_0x19a618){const _0x355fba={};_0x355fba[_0x25bcc6(0x198)]=_0x16f43b,_0x355fba[_0x31da32(_0x3739be._0x4230fa)]=_0x43a4fc+(0x2f9*-0xa+0x973+0x1448),_0x355fba['type']=_0x25bcc6(0x163)+'h',_0x355fba[_0x31da32(0xd6)]=_0x25bcc6(_0x3739be._0x430013)+_0x25bcc6(_0x3739be._0x4d69c3)+_0x25bcc6(0x17f),_0x1c6427[_0x31da32(_0x3739be._0x127e1b)](_0x355fba);}}}}}return{'pass':_0x636591[_0x31da32(_0x3739be._0x2c5fa4)](_0x1c6427[_0x25bcc6(0x1a8)],-0x78b+-0x14*0x5f+0xef7),'violations':_0x1c6427,'totalApiCalls':_0x2a82de,'noHandling':_0x1c6427[_0x31da32(_0x3739be._0x1783c2)](_0x4c38df=>_0x4c38df[_0x25bcc6(0x14e)]===_0x25bcc6(0x1a1))[_0x25bcc6(0x1a8)],'emptyCatch':_0x1c6427[_0x31da32(_0x3739be._0x54f0ef)](_0x123356=>_0x123356[_0x25bcc6(0x14e)]===_0x31da32(0x163)+'h')[_0x31da32(_0x3739be._0x5196ba)]};}function checkHardcodedData(_0x55e9d0){const _0x4b4bf5={_0x41b585:0x133,_0x3b4bc1:0x125,_0x26ba57:0x113,_0x1d618d:0x14b,_0x3950b2:0x11b,_0x418e88:0x1b8,_0x32baa7:0x120,_0x53b8ac:0x178,_0x5f5793:0xfe,_0x1d4742:0xe8,_0x36f920:0x160,_0x2d7f69:0x193,_0x46a8e1:0x162,_0x53bd34:0x177,_0x1ba63f:0xd6,_0x1b752c:0xf4,_0x285916:0x14b,_0x3ca83b:0x131,_0x5cb606:0x174,_0xe56220:0x16b,_0x293942:0x188,_0x4b13da:0x1a8,_0x16c6a7:0x164,_0x34d040:0x1b9,_0x2d767b:0x188,_0x3a3851:0x14e,_0x5981c6:0xf4,_0x2628c9:0xff,_0x13212b:0x1a5,_0x4afc66:0x131,_0x1b4310:0x107},_0x283d32=_0xd9dc66,_0x1de3b8=_0xd9dc66,_0x1f1ac3={'sUkIH':_0x283d32(0x1b8)+'array','oZkxc':_0x283d32(_0x4b4bf5._0x41b585),'nbePT':function(_0x5d2228,_0x5ef577){return _0x5d2228===_0x5ef577;},'ufDeK':_0x1de3b8(0xd9),'vYDip':function(_0x1db25b,_0x136762,_0x38432d){return _0x1db25b(_0x136762,_0x38432d);},'XxjzJ':_0x283d32(0x13f),'HaJeG':_0x1de3b8(_0x4b4bf5._0x3b4bc1),'cYpcz':_0x283d32(_0x4b4bf5._0x26ba57),'wIDyp':_0x283d32(0x130),'dkdEb':function(_0x37c98c,_0x589a83){return _0x37c98c!==_0x589a83;},'rsRJM':_0x283d32(_0x4b4bf5._0x1d618d),'TCTwg':function(_0x5a6bf4,_0x3f7482){return _0x5a6bf4>=_0x3f7482;},'eayVQ':_0x1de3b8(_0x4b4bf5._0x3950b2),'gvfJJ':_0x1de3b8(_0x4b4bf5._0x418e88)+_0x1de3b8(_0x4b4bf5._0x32baa7)},_0x5a879f=[_0x1de3b8(_0x4b4bf5._0x53b8ac)+'rc','app/src',_0x1f1ac3[_0x1de3b8(_0x4b4bf5._0x5f5793)]][_0x283d32(0xf5)](_0x23296e=>fs[_0x1de3b8(0x13b)](path[_0x1de3b8(0x160)](_0x55e9d0,_0x23296e))),_0xdaeefa=[];for(const _0xe6bbc8 of _0x5a879f){if(_0x1f1ac3[_0x1de3b8(0x105)](_0x1f1ac3['ufDeK'],_0x1de3b8(_0x4b4bf5._0x1d4742)))_0x48aee0['push'](_0x4a43b0);else{const _0x10270d=_0x1f1ac3[_0x283d32(0x10b)](findFiles,path[_0x283d32(_0x4b4bf5._0x36f920)](_0x55e9d0,_0xe6bbc8),[_0x1f1ac3[_0x1de3b8(0x116)],_0x1de3b8(0xed),_0x1f1ac3[_0x283d32(0x143)],_0x1f1ac3['cYpcz'],_0x1de3b8(_0x4b4bf5._0x2d7f69)]);for(const _0x20d6bb of _0x10270d){const _0x3e1d2b=readSafe(_0x20d6bb);if(!_0x3e1d2b)continue;const _0x4c4238=path[_0x283d32(0x19c)](_0x55e9d0,_0x20d6bb);if(/\/(constants?|config|utils?|helpers?|types?|enums?|mock)\//i['test'](_0x4c4238))continue;if(_0x4c4238['includes']('.d.ts')||_0x4c4238[_0x1de3b8(0x15a)](_0x1f1ac3[_0x1de3b8(0x1ba)]))continue;const _0x2f9dd3=/(?:const|let|var|ref\(|reactive\()\s*\w+\s*[=:]\s*\[[\s\S]{100,}?\]/g;let _0x5b0d4c;while(_0x1f1ac3[_0x1de3b8(_0x4b4bf5._0x46a8e1)](_0x5b0d4c=_0x2f9dd3[_0x283d32(_0x4b4bf5._0x53bd34)](_0x3e1d2b),null)){const _0x359ca2=_0x5b0d4c[-0x8fd+0x1*0x1069+-0x76c],_0x42f723=(_0x359ca2[_0x1de3b8(0x15f)](/\{/g)||[])['length'],_0xc43d64=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/[_0x1de3b8(0x12c)](_0x359ca2);if(_0x42f723>=-0x1a7e+0x1049*-0x2+-0xd5*-0x47&&_0xc43d64){const _0x489694=_0x3e1d2b[_0x283d32(0x16b)](0x617*-0x2+0x3*-0xa8b+0x5*0x8c3,_0x5b0d4c['index'])['split']('\x0a')[_0x283d32(0x1a8)],_0x5d3eda={};_0x5d3eda[_0x1de3b8(0x198)]=_0x4c4238,_0x5d3eda[_0x283d32(0x19f)]=_0x489694,_0x5d3eda['type']=_0x1f1ac3['sUkIH'],_0x5d3eda[_0x1de3b8(0x117)+'t']=_0x42f723,_0x5d3eda[_0x283d32(_0x4b4bf5._0x1ba63f)]='疑似硬编码数据('+_0x42f723+(_0x283d32(0x14d)+'name\x20字段\x20—\x20'+_0x283d32(_0x4b4bf5._0x1b752c)),_0xdaeefa['push'](_0x5d3eda);}}const _0x406d32=/(?:tableData|dataSource|listData|dataList|options|menuList|items)\s*[=:]\s*(?:ref\(|reactive\()?\s*\[[\s\S]{50,}?\]/g;while(_0x1f1ac3[_0x283d32(0x162)](_0x5b0d4c=_0x406d32[_0x283d32(0x177)](_0x3e1d2b),null)){if(_0x1f1ac3['rsRJM']!==_0x283d32(_0x4b4bf5._0x285916))!_0x4d0f69['has'](_0x575038[-0x6a+-0xb4b+0x2*0x5db])&&(_0x2bb938[_0x283d32(0xd8)](_0x5a3ea4[0x2417*-0x1+0x5d2+0x1e46]),_0x5b5691[_0x283d32(_0x4b4bf5._0x3ca83b)](_0x59c47f[0x1e71*-0x1+-0x1fb1+-0x3e23*-0x1]));else{const _0x2e4ac0=_0x5b0d4c[-0x4b9+0x2a1*-0xc+0x2445],_0x2e0122=(_0x2e4ac0[_0x283d32(0x15f)](/\{/g)||[])[_0x1de3b8(0x1a8)];if(_0x1f1ac3[_0x1de3b8(_0x4b4bf5._0x5cb606)](_0x2e0122,-0x1bb0*0x1+-0x80a+0x23bc)){const _0xdd043=_0x3e1d2b[_0x1de3b8(_0x4b4bf5._0xe56220)](0x21c1*-0x1+0x20*-0x6c+0x2f41*0x1,_0x5b0d4c[_0x1de3b8(0x1b9)])[_0x1de3b8(_0x4b4bf5._0x293942)]('\x0a')[_0x1de3b8(_0x4b4bf5._0x4b13da)];if(!_0xdaeefa[_0x283d32(0xe0)](_0x4708ed=>_0x4708ed['file']===_0x4c4238&&Math['abs'](_0x4708ed[_0x1de3b8(0x19f)]-_0xdd043)<0x2*-0x5fe+-0x10c2+-0x11*-0x1b1)){if(_0x1f1ac3['eayVQ']===_0x283d32(_0x4b4bf5._0x16c6a7)){const _0x4bceb1=_0x4a9a2d[_0x283d32(0x16b)](0x61*-0x61+-0xc5*-0xa+0x1d0f,_0x589d7a[_0x1de3b8(_0x4b4bf5._0x34d040)])[_0x283d32(_0x4b4bf5._0x2d767b)]('\x0a')[_0x283d32(0x1a8)],_0x38fdad={};_0x38fdad[_0x1de3b8(0x198)]=_0x2410d,_0x38fdad[_0x283d32(0x19f)]=_0x4bceb1,_0x38fdad[_0x283d32(_0x4b4bf5._0x3a3851)]=_0x1f1ac3['sUkIH'],_0x38fdad['objectCoun'+'t']=_0x3ec6bf,_0x38fdad['detail']=_0x1de3b8(0x118)+_0x3d2f2b+(_0x283d32(0x14d)+_0x1de3b8(0x1ac)+_0x283d32(_0x4b4bf5._0x5981c6)),_0x32869e['push'](_0x38fdad);}else{const _0x149c3a={};_0x149c3a[_0x283d32(0x198)]=_0x4c4238,_0x149c3a['line']=_0xdd043,_0x149c3a[_0x1de3b8(_0x4b4bf5._0x3a3851)]=_0x1f1ac3[_0x1de3b8(0xeb)],_0x149c3a['detail']=_0x283d32(0x119)+_0x1de3b8(_0x4b4bf5._0x2628c9)+'\x20直接赋值为硬编码数'+'组('+_0x2e0122+_0x283d32(_0x4b4bf5._0x13212b),_0xdaeefa[_0x1de3b8(_0x4b4bf5._0x4afc66)](_0x149c3a);}}}}}}}}const _0x2c9030={};return _0x2c9030[_0x1de3b8(_0x4b4bf5._0x1b4310)]=_0xdaeefa[_0x283d32(0x1a8)]===0xb*-0x291+0x1d84+-0x149*0x1,_0x2c9030[_0x283d32(0x169)]=_0xdaeefa,_0x2c9030;}function checkRouteCompleteness(_0x52b7aa,_0x5152d3){const _0xa22630={_0x531873:0xdd,_0x877147:0x13a,_0x33e744:0x12f,_0x78c918:0xf2,_0x36c276:0x115,_0x3db9e9:0x1ad,_0x4c202b:0x1a8,_0x375b62:0x12e,_0x52dbb8:0xf5,_0x44a716:0x14f,_0xd9a440:0x1b9,_0x842701:0x188,_0x1f7a1a:0x19f,_0x1585ee:0xdb,_0x22a24e:0x1a5,_0x8a678b:0x1be,_0xa2bf94:0xf8,_0x5390d8:0x13b,_0x30d159:0x1b2,_0x4c298f:0x111,_0x7cb6a4:0x1ae,_0x525b78:0x182,_0x184292:0x101,_0x56c4a0:0x1a8,_0x233654:0x184,_0x4e4d0a:0x1a8},_0x12b58b=_0x30ed3a,_0x1a46d2=_0x30ed3a,_0x5bd244={'rdjkR':_0x12b58b(0x1b8)+_0x12b58b(0x120),'HrQxx':function(_0x563b5b,_0x433ef0,_0x4bc093){return _0x563b5b(_0x433ef0,_0x4bc093);},'IpQxP':'git\x20rev-pa'+'rse\x20--is-i'+_0x1a46d2(0x12a)+_0x1a46d2(_0xa22630._0x531873),'GovOJ':function(_0xfa69d8,_0x503216){return _0xfa69d8===_0x503216;},'bZjSf':'NQXIm','xrsJL':_0x12b58b(_0xa22630._0x877147)+_0x12b58b(_0xa22630._0x33e744),'Oadei':_0x1a46d2(0x13a)+_0x1a46d2(0x18b),'wYRRv':_0x12b58b(0x106),'kIWii':function(_0x5bc5fa,_0x346db3){return _0x5bc5fa===_0x346db3;},'FKrgp':_0x1a46d2(0x156),'tNgbJ':function(_0x51487f,_0x2b993a){return _0x51487f+_0x2b993a;},'OdKqZ':_0x1a46d2(0x16a)+_0x1a46d2(_0xa22630._0x78c918),'VQKgo':function(_0x2357bb,_0x47058e){return _0x2357bb===_0x47058e;},'CZfUR':function(_0x569146,_0x3c3a3b){return _0x569146-_0x3c3a3b;}},_0x592fef=extractSpecRoutes(_0x5152d3),_0x5bbbcf={};_0x5bbbcf['pass']=!![],_0x5bbbcf[_0x1a46d2(_0xa22630._0x36c276)]=_0x1a46d2(_0xa22630._0x3db9e9)+_0x1a46d2(0xda);if(_0x5bd244[_0x12b58b(0x10e)](_0x592fef[_0x12b58b(_0xa22630._0x4c202b)],0x251e+0x25d+0x9*-0x463))return _0x5bbbcf;const _0xaddf30=['frontend/s'+'rc',_0x1a46d2(_0xa22630._0x375b62),_0x1a46d2(0x133)][_0x1a46d2(_0xa22630._0x52dbb8)](_0x4990d7=>fs[_0x12b58b(0x13b)](path[_0x12b58b(0x160)](_0x52b7aa,_0x4990d7)));let _0x2b6a10='';for(const _0xdaef6b of _0xaddf30){if(_0x5bd244[_0x12b58b(_0xa22630._0x44a716)]!==_0x1a46d2(0xf1)){const _0x6743b2=_0x4a6460[-0xf8b*-0x1+0x23f7+-0x3382],_0x115ecc=(_0x6743b2[_0x12b58b(0x15f)](/\{/g)||[])[_0x1a46d2(_0xa22630._0x4c202b)];if(_0x115ecc>=0x120c+-0x16bd+0x4b3){const _0x14d698=_0x321f5e['slice'](0x199d*-0x1+0x10aa+0x1*0x8f3,_0x5786e9[_0x12b58b(_0xa22630._0xd9a440)])[_0x12b58b(_0xa22630._0x842701)]('\x0a')[_0x1a46d2(_0xa22630._0x4c202b)];if(!_0x2875cc[_0x12b58b(0xe0)](_0x5d4011=>_0x5d4011[_0x12b58b(0x198)]===_0x1eb1ae&&_0x934c7[_0x12b58b(0x165)](_0x5d4011['line']-_0x14d698)<0x1b41*-0x1+-0x770+0x22b4)){const _0xc6938f={};_0xc6938f['file']=_0x59db37,_0xc6938f[_0x1a46d2(_0xa22630._0x1f7a1a)]=_0x14d698,_0xc6938f[_0x1a46d2(0x14e)]=QafowV[_0x1a46d2(_0xa22630._0x1585ee)],_0xc6938f[_0x1a46d2(0xd6)]='tableData/'+'dataSource'+_0x1a46d2(0x170)+'组('+_0x115ecc+_0x1a46d2(_0xa22630._0x22a24e),_0x33e28a['push'](_0xc6938f);}}}else for(const _0x1ac415 of[_0x5bd244['xrsJL'],_0x5bd244['Oadei'],_0x1a46d2(0x147),_0x5bd244[_0x1a46d2(_0xa22630._0x8a678b)]]){if(_0x5bd244['kIWii'](_0x5bd244[_0x1a46d2(_0xa22630._0xa2bf94)],_0x12b58b(0x156))){const _0x59b849=path['join'](_0x52b7aa,_0xdaef6b,_0x1ac415);if(fs[_0x12b58b(_0xa22630._0x5390d8)](_0x59b849))_0x2b6a10+=_0x5bd244[_0x12b58b(_0xa22630._0x30d159)](readSafe(_0x59b849),'\x0a');}else{const _0x4c321c={};return _0x4c321c[_0x12b58b(0x159)]=_0x24e28d,_0x4c321c[_0x1a46d2(_0xa22630._0x4c298f)]=_0x12b58b(0x11d),QafowV['HrQxx'](_0x2d63e9,QafowV['IpQxP'],_0x4c321c),!![];}}}const _0x11cf80={};_0x11cf80[_0x1a46d2(0x107)]=!![],_0x11cf80[_0x1a46d2(0x115)]=_0x5bd244[_0x1a46d2(_0xa22630._0x7cb6a4)];if(!_0x2b6a10)return _0x11cf80;const _0x26f9cc=[];for(const _0x15f684 of _0x592fef){const _0x5814ee=_0x15f684[_0x12b58b(0x182)](/:[a-zA-Z]+/g,_0x12b58b(0x138));!_0x2b6a10['includes'](_0x15f684)&&!new RegExp(_0x5814ee[_0x1a46d2(_0xa22630._0x525b78)](/\//g,'\x5c/'))[_0x12b58b(0x12c)](_0x2b6a10)&&_0x26f9cc[_0x1a46d2(0x131)](_0x15f684);}return{'pass':_0x5bd244[_0x12b58b(_0xa22630._0x184292)](_0x26f9cc['length'],-0x522+-0x11f0+0x1712),'total':_0x592fef[_0x12b58b(_0xa22630._0x56c4a0)],'matched':_0x5bd244[_0x1a46d2(_0xa22630._0x233654)](_0x592fef[_0x12b58b(_0xa22630._0x4e4d0a)],_0x26f9cc['length']),'missing':_0x26f9cc};}function runReviewChecks(_0x5f5ad6,_0x4e54a8){const _0x19c4fa={_0x2844b2:0x158,_0x125f4f:0x12a,_0x36a2b8:0xdd,_0x3753ae:0x147,_0x47f0eb:0x14c,_0x50d239:0xea,_0x22f3b9:0x104,_0x273b3c:0x16f,_0xe1bbca:0x1a3,_0x3d5a2f:0x107,_0x49a03a:0x115,_0x4a5f19:0x14c,_0x552a1e:0x124,_0x5e72e7:0x137,_0x5d8b7d:0x131,_0x31e942:0x183,_0x456658:0x142,_0x4e0748:0x141,_0x5582b3:0x15f,_0x4020f8:0x12c,_0x429bf9:0x1a8,_0x370272:0x19f,_0x275329:0x11d,_0x328eef:0xfd,_0x4028b7:0x160,_0x3b57be:0x13b,_0x103124:0x135,_0xe7bf30:0x161,_0x45ab9b:0x149},_0x33ebe1=_0x30ed3a,_0x3f1d6a=_0x30ed3a,_0x54afbc={'RRhNF':function(_0x32a3fc,_0x3c07fc){return _0x32a3fc>=_0x3c07fc;},'VEzGL':_0x33ebe1(0x1b8)+_0x3f1d6a(0x11a),'ccaIR':function(_0xc05ebe,_0x44f77b,_0x27e190){return _0xc05ebe(_0x44f77b,_0x27e190);},'Qipgs':'git\x20rev-pa'+_0x33ebe1(_0x19c4fa._0x2844b2)+_0x3f1d6a(_0x19c4fa._0x125f4f)+_0x33ebe1(_0x19c4fa._0x36a2b8),'QPrcu':'router/ind'+'ex.ts','ScaiC':_0x3f1d6a(0x13a)+_0x3f1d6a(0x18b),'rRJVs':_0x33ebe1(_0x19c4fa._0x3753ae),'CqTaM':_0x33ebe1(0x106),'ixptI':function(_0x1c06ca,_0x4f5623){return _0x1c06ca+_0x4f5623;},'aPMEv':function(_0x32a65d,_0x375a6){return _0x32a65d(_0x375a6);},'UvZuS':_0x3f1d6a(0x166),'GNlDo':_0x3f1d6a(_0x19c4fa._0x47f0eb),'IsXbi':_0x3f1d6a(_0x19c4fa._0x50d239),'meOZg':function(_0x1e4904,_0x495d2e){return _0x1e4904>_0x495d2e;},'eItnY':function(_0x1ddbae,_0x531681){return _0x1ddbae===_0x531681;},'OxxLm':'RGbGS','PUIpE':'QslSQ','pulVu':function(_0x18fcb5,_0x9e6130){return _0x18fcb5(_0x9e6130);},'LnkVs':_0x33ebe1(_0x19c4fa._0x22f3b9),'ggjlP':_0x33ebe1(_0x19c4fa._0x273b3c)},_0x205197=[];let _0x28face=!![];try{const _0x1b2e36=_0x54afbc[_0x33ebe1(_0x19c4fa._0xe1bbca)](checkApiContract,_0x5f5ad6,_0x4e54a8),_0x269def={'name':_0x54afbc[_0x3f1d6a(0x1a9)],..._0x1b2e36};_0x205197['push'](_0x269def);if(!_0x1b2e36[_0x3f1d6a(_0x19c4fa._0x3d5a2f)])_0x28face=![];}catch(_0x8a0bf1){const _0x5830a4={};_0x5830a4['name']=_0x54afbc[_0x3f1d6a(0x1a9)],_0x5830a4[_0x3f1d6a(0x107)]=!![],_0x5830a4[_0x33ebe1(0x161)]=_0x8a0bf1[_0x3f1d6a(_0x19c4fa._0x49a03a)],_0x205197[_0x33ebe1(0x131)](_0x5830a4);}try{if(_0x33ebe1(_0x19c4fa._0x4a5f19)===_0x54afbc[_0x33ebe1(_0x19c4fa._0x552a1e)]){const _0x100dee=_0x54afbc[_0x33ebe1(_0x19c4fa._0x5e72e7)](checkErrorHandling,_0x5f5ad6),_0xa6c66={'name':_0x54afbc['IsXbi'],..._0x100dee};_0x205197[_0x33ebe1(_0x19c4fa._0x5d8b7d)](_0xa6c66);if(_0x100dee['totalApiCa'+_0x33ebe1(_0x19c4fa._0x31e942)]>-0x5b3*-0x3+-0x2*0xebd+0xc61){const _0x14110f=_0x100dee[_0x33ebe1(0x185)]/_0x100dee[_0x3f1d6a(_0x19c4fa._0x456658)+'lls'];if(_0x54afbc[_0x3f1d6a(_0x19c4fa._0x4e0748)](_0x14110f,0x241b+-0x2652+0x51*0x7+0.5))_0x28face=![];}}else{const _0x3965ce=_0x24fc70[0x1*-0x18c9+-0x190c+0x31d5],_0x63ab31=(_0x3965ce[_0x33ebe1(_0x19c4fa._0x5582b3)](/\{/g)||[])[_0x33ebe1(0x1a8)],_0x27c7b4=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/[_0x3f1d6a(_0x19c4fa._0x4020f8)](_0x3965ce);if(jisGwh[_0x33ebe1(0x10d)](_0x63ab31,-0x9df+-0x28*0xf1+0xa*0x4c1)&&_0x27c7b4){const _0x5370d7=_0x24b4e9[_0x33ebe1(0x16b)](-0x6fb+0x51*-0x77+0x2ca2,_0x4a93a8['index'])['split']('\x0a')[_0x3f1d6a(_0x19c4fa._0x429bf9)],_0xe477c1={};_0xe477c1[_0x3f1d6a(0x198)]=_0x530698,_0xe477c1[_0x3f1d6a(_0x19c4fa._0x370272)]=_0x5370d7,_0xe477c1[_0x33ebe1(0x14e)]=jisGwh[_0x3f1d6a(0x175)],_0xe477c1[_0x33ebe1(0x117)+'t']=_0x63ab31,_0xe477c1['detail']='疑似硬编码数据('+_0x63ab31+(_0x3f1d6a(0x14d)+'name\x20字段\x20—\x20'+_0x33ebe1(0xf4)),_0x42d73d[_0x3f1d6a(0x131)](_0xe477c1);}}}catch(_0x352cad){if(_0x54afbc[_0x3f1d6a(0x16c)](_0x54afbc[_0x33ebe1(0x10c)],_0x54afbc['PUIpE']))try{const _0x1052be={};return _0x1052be[_0x3f1d6a(0x159)]=_0x261c45,_0x1052be['stdio']=_0x33ebe1(_0x19c4fa._0x275329),jisGwh[_0x3f1d6a(0x1a3)](_0x205f1a,jisGwh[_0x3f1d6a(0x189)],_0x1052be),!![];}catch{return![];}else{const _0x220845={};_0x220845['name']=_0x3f1d6a(_0x19c4fa._0x50d239),_0x220845[_0x3f1d6a(_0x19c4fa._0x3d5a2f)]=!![],_0x220845['error']=_0x352cad[_0x3f1d6a(0x115)],_0x205197[_0x3f1d6a(0x131)](_0x220845);}}try{const _0x281609=_0x54afbc[_0x3f1d6a(0x199)](checkHardcodedData,_0x5f5ad6),_0x35815d={'name':_0x33ebe1(0x104),..._0x281609};_0x205197['push'](_0x35815d);}catch(_0x2c36e0){const _0x37ce55={};_0x37ce55[_0x33ebe1(0x135)]=_0x54afbc[_0x3f1d6a(0xd7)],_0x37ce55['pass']=!![],_0x37ce55[_0x3f1d6a(0x161)]=_0x2c36e0[_0x33ebe1(_0x19c4fa._0x49a03a)],_0x205197[_0x3f1d6a(_0x19c4fa._0x5d8b7d)](_0x37ce55);}try{if(_0x54afbc[_0x3f1d6a(0x15b)]===_0x3f1d6a(0x16f)){const _0x2cbf71=checkRouteCompleteness(_0x5f5ad6,_0x4e54a8),_0xb6520e={'name':'路由完整性',..._0x2cbf71};_0x205197['push'](_0xb6520e);if(!_0x2cbf71[_0x3f1d6a(_0x19c4fa._0x3d5a2f)])_0x28face=![];}else for(const _0x334f51 of[jisGwh[_0x33ebe1(_0x19c4fa._0x328eef)],jisGwh[_0x3f1d6a(0x17a)],jisGwh[_0x3f1d6a(0x176)],jisGwh[_0x3f1d6a(0x17e)]]){const _0x3e5af8=_0x2acb5f[_0x33ebe1(_0x19c4fa._0x4028b7)](_0x3439d1,_0x5dcdf1,_0x334f51);if(_0x5b5c40[_0x3f1d6a(_0x19c4fa._0x3b57be)](_0x3e5af8))_0x1c6c41+=jisGwh[_0x33ebe1(0x11f)](jisGwh[_0x33ebe1(0x137)](_0x480724,_0x3e5af8),'\x0a');}}catch(_0x5d59ce){const _0x1683ba={};_0x1683ba[_0x3f1d6a(_0x19c4fa._0x103124)]=_0x33ebe1(0x18c),_0x1683ba['pass']=!![],_0x1683ba[_0x33ebe1(_0x19c4fa._0xe7bf30)]=_0x5d59ce[_0x33ebe1(0x115)],_0x205197['push'](_0x1683ba);}const _0x2a2cd0={};return _0x2a2cd0[_0x3f1d6a(0x107)]=_0x28face,_0x2a2cd0[_0x33ebe1(_0x19c4fa._0x45ab9b)]=_0x205197,_0x2a2cd0;}const _0x311147={};function _0x47e0(_0xd672bd,_0x4f9a34){_0xd672bd=_0xd672bd-(-0x172d+0x98f+0xe74);const _0x716a90=_0xc46b();let _0x24fc70=_0x716a90[_0xd672bd];if(_0x47e0['NSgJHn']===undefined){var _0x2db7ab=function(_0x24b4e9){const _0x4a93a8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x42d73d='',_0x530698='',_0x3bcad6=_0x42d73d+_0x2db7ab,_0x397779=(''+function(){return-0xc*0x26b+0x13d2+0x932;})['indexOf']('\x0a')!==-(0x123b+-0x17db*0x1+0x5a1);for(let _0x45f768=0x9c*0x32+-0x15d6+-0x8a2,_0x556315,_0x5e33da,_0x11c28d=0xd1+0x1813+-0x18e4;_0x5e33da=_0x24b4e9['charAt'](_0x11c28d++);~_0x5e33da&&(_0x556315=_0x45f768%(0xb6d+-0x28e+-0x8db)?_0x556315*(-0x11c1+0x516+0xceb*0x1)+_0x5e33da:_0x5e33da,_0x45f768++%(0x101e+0x3fb+-0x1415*0x1))?_0x42d73d+=_0x397779||_0x3bcad6['charCodeAt'](_0x11c28d+(-0x31*-0x34+0x1a6*-0x11+0x121c))-(0x318*0x7+0x3db+0x1*-0x1979)!==0x122+0x1bd9*0x1+-0x1cfb?String['fromCharCode'](0x7*0xf1+0xc9a*0x1+-0x1232&_0x556315>>(-(-0x2d6+-0x3fd+0x6d5)*_0x45f768&-0xa*0x7+0x312+-0x1*0x2c6)):_0x45f768:-0xbf6+0x1*0x26b+0x15d*0x7){_0x5e33da=_0x4a93a8['indexOf'](_0x5e33da);}for(let _0x404f17=-0x24a8+0x269e+-0x1f6,_0x5a8d99=_0x42d73d['length'];_0x404f17<_0x5a8d99;_0x404f17++){_0x530698+='%'+('00'+_0x42d73d['charCodeAt'](_0x404f17)['toString'](0x3d*-0x1e+-0x2*0xcd7+0x20e4))['slice'](-(-0xb0*-0x21+-0x1*0x1a2f+-0x3*-0x12b));}return decodeURIComponent(_0x530698);};_0x47e0['aVZejQ']=_0x2db7ab,_0x47e0['RwBnmZ']={},_0x47e0['NSgJHn']=!![];}const _0x21315c=_0x716a90[0x26c4+-0xb*0x13c+-0x64c*0x4],_0x358951=_0xd672bd+_0x21315c,_0x5d38d2=_0x47e0['RwBnmZ'][_0x358951];if(!_0x5d38d2){const _0x55734e=function(_0xad8987){this['anCOln']=_0xad8987,this['qrpuUc']=[0xc*0x2a6+-0x1*0xbae+-0x1419,0x18a7*0x1+-0x1*-0x1717+-0x2fbe,0x1f11*-0x1+0x68*-0x8+0x4e7*0x7],this['FktPWf']=function(){return'newState';},this['oMROsj']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['hoposS']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x55734e['prototype']['kNaJQM']=function(){const _0x4a9a2d=new RegExp(this['oMROsj']+this['hoposS']),_0x589d7a=_0x4a9a2d['test'](this['FktPWf']['toString']())?--this['qrpuUc'][-0x77b+0x10ed+-0x971]:--this['qrpuUc'][-0x397*0x4+0x1e3d+-0xfe1];return this['dGwOgD'](_0x589d7a);},_0x55734e['prototype']['dGwOgD']=function(_0x32869e){if(!Boolean(~_0x32869e))return _0x32869e;return this['xWXfBo'](this['anCOln']);},_0x55734e['prototype']['xWXfBo']=function(_0x2410d){for(let _0x3ec6bf=0x1*-0x7f+0x1848+-0x17c9,_0x3d2f2b=this['qrpuUc']['length'];_0x3ec6bf<_0x3d2f2b;_0x3ec6bf++){this['qrpuUc']['push'](Math['round'](Math['random']())),_0x3d2f2b=this['qrpuUc']['length'];}return _0x2410d(this['qrpuUc'][0x185+-0x1c*0x13+0x8f]);},(''+function(){return-0x6d9*0x3+-0x25e0+0x3a6b;})['indexOf']('\x0a')===-(0x19c3+-0x265f+0xc9d)&&new _0x55734e(_0x47e0)['kNaJQM'](),_0x24fc70=_0x47e0['aVZejQ'](_0x24fc70),_0x47e0['RwBnmZ'][_0x358951]=_0x24fc70;}else _0x24fc70=_0x5d38d2;return _0x24fc70;}function _0xc46b(){const _0x16ec00=['r0niv2S','DLPVwvq','AgfZ','Bwv0Ag9K','CgPbyM8','qvbjioIWG+EuQoAxOoMuMEIVR+wKHa','CNnLic0TAxmTAq','y3DK','Aw5JBhvKzxm','z2DQBfa','mZmYv0fPB1zc','yM90Ac1TAxnZAq','t2Toq2u','Bwf0y2G','AM9PBG','zxjYB3i','zgTKrwi','zw1WDhKTy2f0yW','Dg9MC0e','ywjZ','qvbjiowLKEE6PUAGOEMQJa','sLbXEMK','CMvHzgrPCLn5BG','C3vZCgvJDhm','5PYQ5OM+5yIWihjVDxrLCG','C2XPy2u','zuL0BLK','ndm0mLvwwuzeBW','uKLtshi','qK5bt2C','ioEBToAoPEI1I+waVos4UUEHRoE8LUEGGEAvSa','C3rHDhvZ','tfLhtNy','yNvPBgq','venuD2C','vKv6r0W','CLjkvNm','zxHLyW','zNjVBNrLBMqVCW','zxHWB3j0CW','u2nHAum','C3jJl21HAw4','CNjKyM0','55cg77Yi5PEGignHDgnOlW','q3fuyu0','5lQg6zsz6k+V77Yj','mtKWnda4me1bENrnAq','DgjszMK','CMvWBgfJzq','BgXZ','q1PMvvi','BM9iyw5KBgLUzW','DgfYz2v0','Dg9tDhjPBMC','C3bSAxq','uwLWz3m','B2rLzerHDge','zxGUANm','6lEV55sX5A6m5Pw05OcN','CKXWzLK','y2HLy2TiyxjKyW','yMfJA2vUzc9ZCG','CMvHzezPBgvtEq','CvHAwMG','teDXrLi','lMPZ','q29TCgXLDgvUzq','z2L0ihjLDI1Wyq','BNrYywn0','uerkuKm','zMLSzq','ChvSvNu','rvLxBNu','Bev5C24','CMvSyxrPDMu','Ce96swO','vLvfvgS','BgLUzq','s09cB2C','BM8Ty2f0y2G','rLHyANu','y2nHsvi','lNnWzwmU','ios4QUwVUEIXOE+8Iq','BcaTlsaI','ANLiAKG','BgvUz3rO','vxzADvm','t3rWChq','DxrMltG','BMfTzsdLRzFMRRuG4Ocuia','C3bLyYdKUk3ML6dMMl7LVi/OT68','t2rlCvO','lMDV','BwLU','zxnZ','De5NyKO','tKzgDNm','CMvZDwX0CW','uxPUCKC','CNvUuMv2Awv3qW','mtaWodCWmJbMwxHivw0','AgfYzgnVzgvKlq','Aw5KzxG','D0LeExa','AvnWB0K','kcGOlISPkYKRkq','sMzsBK0','D1LsuNy','vKj0C00','yxbWBhK','zgv0ywLS','tg5RvNm','ywrK','BNL4C0G','55sX5AoW5PIo','CMrQA1i','lMPHDMe','lxrYzwu','yMuTBwLZC2LUzW','t3LeEhi','C29Tzq','zMuTBwLZC2LUzW','Cejoseq','CgLWzq','Egrdr0e','r2zyyKG','D0ngqKO','Bwf4','vM1Tvw4','qvbjioIWG+EuQoACIsbJyq','6zsz6k+V5Ase55cg5A6H6k6H','z3zMsKO','BwP1t3a','lNrZEa','mtuYAxPpBwf0','s0HRy3m','zw5KC1DPDgG','tLfysw0','ioAwH+s7TG','zMvgB3vUza','5BQu5lUoiefqssdOJRFLJ5BVViK','zMLSDgvY','zNjcEhm','nZyZmtGZmezWrK5OtG','rKTYz3a','Cgf0Aa','mZGZmZG5nxfSwfPpsq','y2HPBgrFChjVyW','wK1IDK0','uvbYy3u','B1PREgm','zgf0yvnVDxjJzq','wNDkBgO','vLflz28','vu5NANu','A0vNEui','56gS57Yw56cb5PwW5O2U5Qoa5Rwl','BMjLufq','CM91DgvYlMPZ','CgfZCW','zgLZDa','t3PSu0K','CgvZ','DLLeAxa','t3H4tg0','uLjOtKy','r292t0O','A01TAMm','AgDju3a','C3rKAw8','y2HLy2TsB3v0zq','lNrZ','C3bLyYdKUk3ML6aGqva','BwvZC2fNzq','whHQEKO','B2jQzwn0q291BG','55Ar5lY856gS57Yw56cb5PwW5O2U77Yi','DgfIBgveyxrHlW','yxjYyxK','re1oyKe','DgnOios9HUs4UUEPUU+8IowqNUAoIq','AwDUB3jL','zw5JB2rPBMC','AxHWDeK','zgf0yxnVDxjJzq','mtC4mtm1og9gr0zStG','C3rHCNrZv2L0Aa','ELrcq2m','r05Srg8','lMPZEa','AxneAxjLy3rVCG','lNb5','uwjLt0S','D3vivLO','BNnPzguTD29YAW','swnICuu','DgvZDa','C3bLy19JB3bPBa','yxbWl3nYyW','zxGUDhm','x190zxn0','ChvZAa','De9OrLO','C3jJ','nxnbuu1Lva','BMfTzq','DhjPBq','yvbnrxy','oLTHlxPblvPDkW','Agveuhu','CM91DgvYl2LUza','zxHPC3rZu3LUyW','wMDusfG','rKLUz3u','uhHrrw8','lNz1zq','q1jXsM4','BwvpwMC','Dg90ywXbCgLdyq','sgfkzuC','mZiWotKYBe5TCMzQ','EfrdDhq','lM1K','CM91DgvYlNrZ','y2HLy2TfCNjVCG','y2HLy2TZ','uuTyALG','rxHvtfC','ChDlzNK','ios4QUwVUEIXOE+8JowqQYbPzc8','DhLWzq','yLPQu2y','AgvJA3m','z2L0igDYzxaGlq'];_0xc46b=function(){return _0x16ec00;};return _0xc46b();}_0x311147[_0xd9dc66(0x1b6)+_0x30ed3a(0x150)]=runReviewChecks,_0x311147['checkApiCo'+_0xd9dc66(0x196)]=checkApiContract,_0x311147[_0xd9dc66(0x148)+'Handling']=checkErrorHandling,_0x311147[_0xd9dc66(0x18e)+_0xd9dc66(0x18a)]=checkHardcodedData,_0x311147[_0xd9dc66(0x112)+_0x30ed3a(0x194)+'ss']=checkRouteCompleteness,module[_0xd9dc66(0x179)]=_0x311147;
|
package/commands/spec:smoke.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 冒烟验证(构建 + 骨架检测 + E2E
|
|
2
|
+
description: 冒烟验证(构建 + 骨架检测 + E2E 联调校验 + 交互测试 + 客观评分)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
请按 AGENTS.md 中定义的 /smoke 流程执行:
|
|
@@ -8,9 +8,9 @@ description: 冒烟验证(构建 + 骨架检测 + E2E 浏览器验证 + 接口
|
|
|
8
8
|
|
|
9
9
|
## 步骤
|
|
10
10
|
|
|
11
|
-
### Step 0:程序化 gate 检查(
|
|
11
|
+
### Step 0:程序化 gate 检查(v3.0.0 自动化)
|
|
12
12
|
|
|
13
|
-
运行 CLI
|
|
13
|
+
运行 CLI 门禁,获取客观构建结果、联调校验结果和交互测试结果:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
npx @alenfitz/spec-copilot gate $ARGUMENTS smoke
|
|
@@ -20,11 +20,14 @@ npx @alenfitz/spec-copilot gate $ARGUMENTS smoke
|
|
|
20
20
|
- 前后端构建验证(npm run build / mvn compile)
|
|
21
21
|
- 骨架组件检测(el-empty / TODO-only / 空壳组件)
|
|
22
22
|
- TypeScript any 泛滥检测(warning 级别)
|
|
23
|
-
- **E2E
|
|
23
|
+
- **E2E 联调校验**(v2.7.0+,使用系统 Chrome,无需额外安装):
|
|
24
24
|
- 自动启动/检测前后端开发服务器
|
|
25
25
|
- 从 spec.md 提取页面路由,用 headless Chrome 逐页面检查
|
|
26
|
-
-
|
|
26
|
+
- **L1 基础检查**:白屏、JS 异常、框架错误遮罩
|
|
27
|
+
- **L2 联调检查**:API 4xx/5xx、API 返回非 JSON、空数据渲染、控制台 API 错误
|
|
28
|
+
- **L3 交互测试**:搜索框输入验证、分页点击验证、表单提交验证
|
|
27
29
|
- 完成后自动关闭启动的服务器
|
|
30
|
+
- **客观评分**(v2.9.0+):按维度打分(满分 100),与 AI 自评对比
|
|
28
31
|
|
|
29
32
|
可选 flags:
|
|
30
33
|
- `--headed`:显示浏览器窗口(调试用)
|
package/framework/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,55 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [3.1.0] - 2026-05-24
|
|
8
|
+
|
|
9
|
+
### 新增
|
|
10
|
+
- **适配器增强 — 多工具同时安装**: `--tool all` 或 `--tool cursor,copilot` 一次安装多个工具的适配文件
|
|
11
|
+
- **Legacy 格式兼容**: 安装时同时生成 `.cursorrules` / `.windsurfrules` 根目录文件,兼容旧版工具
|
|
12
|
+
- **项目技术栈自动检测**: 安装/同步时自动识别前端框架(Vue/React/Angular/Svelte)、后端(Spring Boot/Express/Django/Go)、构建工具、UI 库等,注入到提示词中
|
|
13
|
+
- **`sync` 命令**: `spec-copilot sync [--force]` 同步所有已安装工具的适配器文件,规范变化后一键更新
|
|
14
|
+
- **多工具状态记录**: 工具状态文件支持逗号分隔多工具名,Doctor 命令可检测全部已安装适配
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## [3.0.0] - 2026-05-24
|
|
19
|
+
|
|
20
|
+
### 新增
|
|
21
|
+
|
|
22
|
+
**六大特性升级 — 从框架到平台**
|
|
23
|
+
|
|
24
|
+
**P0-1: CI 自动化(ci-gen.js)**
|
|
25
|
+
- `spec-copilot ci setup` 一键生成 GitHub Actions workflow
|
|
26
|
+
- PR 提交时自动运行 `gate smoke` + `gate review`
|
|
27
|
+
- `--e2e` 模式:生成含前后端启动 + 浏览器测试的完整 workflow
|
|
28
|
+
- 评分结果自动上传为 artifacts
|
|
29
|
+
|
|
30
|
+
**P0-2: 对抗性测试代码化(adversarial-test.js)**
|
|
31
|
+
- 从纯提示词升级为代码自动执行
|
|
32
|
+
- 从 spec.md 提取写操作 API → 自动构造边界/异常输入 → 直接调用检查
|
|
33
|
+
- 内置攻击向量:空输入、超长字符串、SQL 注入、XSS、路径穿越、类型错误
|
|
34
|
+
- 500 响应 = 后端未做输入校验,报告为漏洞
|
|
35
|
+
- review gate 中有运行中后端时自动触发
|
|
36
|
+
|
|
37
|
+
**P1-1: API Schema 校验**
|
|
38
|
+
- 从 spec.md §6 接口契约提取响应字段结构
|
|
39
|
+
- smoke 时拦截 API 实际响应,比对字段名是否匹配
|
|
40
|
+
- 支持 camelCase/snake_case 互转 + 分页格式自动解包
|
|
41
|
+
- 字段缺失报告为 warning
|
|
42
|
+
|
|
43
|
+
**P1-2: 截图对比**
|
|
44
|
+
- smoke 时自动截图保存到 `.spec-copilot/screenshots/`
|
|
45
|
+
- 下次 smoke 与上次截图对比,文件大小变化 >30% 报警
|
|
46
|
+
- UI 回归问题自动检测
|
|
47
|
+
|
|
48
|
+
**P2-1: spec:smoke 命令更新**
|
|
49
|
+
- 命令文件反映 v2.7-3.0 所有新增检查(L1/L2/L3)
|
|
50
|
+
|
|
51
|
+
**P2-2: 文档更新**
|
|
52
|
+
- help 文本增加 `ci` 命令
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
7
56
|
## [2.9.0] - 2026-05-24
|
|
8
57
|
|
|
9
58
|
### 新增
|
package/framework/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.1.0
|
package/package.json
CHANGED