@alenfitz/spec-copilot 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/index.js +2 -2
- 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 +11 -0
- package/framework/CHANGELOG.md +44 -0
- package/framework/VERSION +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @alenfitz/spec-copilot v2.8.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_copilot/issues
|
|
10
|
+
*/
|
|
11
|
+
const _0x358d20=_0x3ea8,_0x8339c9=_0x3ea8;function _0x3ea8(_0x312751,_0x3a978f){_0x312751=_0x312751-(0x166b*-0x1+-0x937+0x2164);const _0x12549d=_0x1e6d();let _0x460e5a=_0x12549d[_0x312751];if(_0x3ea8['psfjHJ']===undefined){var _0x56e5a0=function(_0x4fc4cd){const _0x5ca29d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e8f12='',_0x35f219='',_0x27443b=_0x1e8f12+_0x56e5a0,_0x1a8dc9=(''+function(){return 0xc44+0x21e3+0x11*-0x2b7;})['indexOf']('\x0a')!==-(0x1*-0x74f+-0x14*-0x7c+-0x260);for(let _0xf0f1ec=-0x3*-0x5d9+-0x1dd9+0xc4e,_0x5652b7,_0x3e4431,_0x489a99=0x1ca1+-0x1*-0x2385+-0x4026;_0x3e4431=_0x4fc4cd['charAt'](_0x489a99++);~_0x3e4431&&(_0x5652b7=_0xf0f1ec%(-0x937+-0x1d*0xce+0x2091)?_0x5652b7*(-0x256f+-0xaf3+0x30a2)+_0x3e4431:_0x3e4431,_0xf0f1ec++%(0xc5*-0x2f+0x1ced*-0x1+0x411c))?_0x1e8f12+=_0x1a8dc9||_0x27443b['charCodeAt'](_0x489a99+(0x163f+0x4*-0x4bb+-0x349))-(0xaf1*0x3+0x20d5+-0x1*0x419e)!==-0x1396+-0x1918+-0x2cae*-0x1?String['fromCharCode'](-0x1*-0xee1+-0x3*-0x305+-0x16f1&_0x5652b7>>(-(0x1f29+0xdbf+-0x2ce6)*_0xf0f1ec&0x1845+-0x25ff*-0x1+-0x3e3e)):_0xf0f1ec:-0x4f*-0x56+-0x15bb+-0x4cf){_0x3e4431=_0x5ca29d['indexOf'](_0x3e4431);}for(let _0x17d38c=-0x147f+-0x14c6+0x5*0x841,_0x49707f=_0x1e8f12['length'];_0x17d38c<_0x49707f;_0x17d38c++){_0x35f219+='%'+('00'+_0x1e8f12['charCodeAt'](_0x17d38c)['toString'](-0x3*0x85f+-0x1797+0x30c4))['slice'](-(-0xae7*0x3+-0x899+0x2950));}return decodeURIComponent(_0x35f219);};_0x3ea8['NwBKcm']=_0x56e5a0,_0x3ea8['UuCLAr']={},_0x3ea8['psfjHJ']=!![];}const _0x5e9c93=_0x12549d[-0x2322+-0x75*0x10+0x2a72],_0xef7aa6=_0x312751+_0x5e9c93,_0x49f6ec=_0x3ea8['UuCLAr'][_0xef7aa6];if(!_0x49f6ec){const _0x479eca=function(_0x3a1c11){this['kOiBUx']=_0x3a1c11,this['HXrmFR']=[-0x11*0xdf+0x262e+-0x175e,0xbb3+0x2601+-0x31b4,-0xb0b*-0x3+-0x464*-0x5+-0x3715*0x1],this['jGrxsB']=function(){return'newState';},this['ndCaqi']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['tAtNAW']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x479eca['prototype']['qodhNs']=function(){const _0x1ad7f9=new RegExp(this['ndCaqi']+this['tAtNAW']),_0x2379ac=_0x1ad7f9['test'](this['jGrxsB']['toString']())?--this['HXrmFR'][0x24d3+0x1b0f+-0x3fe1]:--this['HXrmFR'][0x519*-0x2+-0x46f*-0x3+-0x31b];return this['YKukER'](_0x2379ac);},_0x479eca['prototype']['YKukER']=function(_0x299782){if(!Boolean(~_0x299782))return _0x299782;return this['nVyCgU'](this['kOiBUx']);},_0x479eca['prototype']['nVyCgU']=function(_0x412a85){for(let _0x5c09e6=-0x126e+-0x15*0x175+0x475*0xb,_0x34d117=this['HXrmFR']['length'];_0x5c09e6<_0x34d117;_0x5c09e6++){this['HXrmFR']['push'](Math['round'](Math['random']())),_0x34d117=this['HXrmFR']['length'];}return _0x412a85(this['HXrmFR'][0x5*-0x67f+0x2a5+-0x1dd6*-0x1]);},(''+function(){return 0x1*-0x24a+-0x1232*-0x1+-0xfe8;})['indexOf']('\x0a')===-(0x1769+0x19*0x89+-0x24c9)&&new _0x479eca(_0x3ea8)['qodhNs'](),_0x460e5a=_0x3ea8['NwBKcm'](_0x460e5a),_0x3ea8['UuCLAr'][_0xef7aa6]=_0x460e5a;}else _0x460e5a=_0x49f6ec;return _0x460e5a;}(function(_0x116653,_0x4d327a){const _0x2485aa={_0x67b2bb:0x207,_0x2c366b:0x222,_0x442440:0x29f,_0x27a6d8:0x275,_0x480b3b:0x247,_0x310058:0x21b},_0x1f7c37=_0x3ea8,_0x2a8a3e=_0x3ea8,_0x18b1cb=_0x116653();while(!![]){try{const _0x153de1=-parseInt(_0x1f7c37(_0x2485aa._0x67b2bb))/(0x845+0x21d9+-0x1*0x2a1d)+parseInt(_0x2a8a3e(_0x2485aa._0x2c366b))/(0x858+0x4cd*-0x7+0x1945)+-parseInt(_0x2a8a3e(0x1ef))/(-0x367*0x7+-0x2*-0x102b+0x79*-0x12)*(-parseInt(_0x2a8a3e(0x24d))/(-0x1336+-0x553*0x1+0x5*0x4e9))+parseInt(_0x1f7c37(_0x2485aa._0x442440))/(-0x12fa+0x19f*0x17+-0x2*0x925)*(parseInt(_0x1f7c37(_0x2485aa._0x27a6d8))/(0x1*0x9ce+-0x1c79+0x1b3*0xb))+-parseInt(_0x1f7c37(_0x2485aa._0x480b3b))/(0xc3a+0x1*-0x16fb+0xac8)+-parseInt(_0x2a8a3e(0x1cd))/(-0xa76*-0x1+0x12fc+0xfb*-0x1e)+parseInt(_0x1f7c37(_0x2485aa._0x310058))/(-0x1*0x1837+0x5*0x207+0xe1d)*(parseInt(_0x1f7c37(0x24c))/(0x1d06*-0x1+0x1969+-0x1*-0x3a7));if(_0x153de1===_0x4d327a)break;else _0x18b1cb['push'](_0x18b1cb['shift']());}catch(_0xed845a){_0x18b1cb['push'](_0x18b1cb['shift']());}}}(_0x1e6d,-0x6*-0x20242+0x62*0x3686+-0x14d705));const _0x1ef867=(function(){const _0x5c7303={_0x7a83fa:0x1f0,_0x4e28f7:0x273,_0x1eed0b:0x1d7,_0x298b8:0x274,_0x3ad399:0x292},_0x130bbc={_0x31a937:0x1c6,_0x430c28:0x293,_0x3373a8:0x1fa,_0x2d697e:0x25d,_0x227260:0x233},_0x2deaa5={_0x5c5a6d:0x1fc},_0x3bfb42=_0x3ea8,_0x127f50=_0x3ea8,_0x827778={'ZtXMX':function(_0x21b86b,_0x2cf2c5){return _0x21b86b(_0x2cf2c5);},'cwVhm':_0x3bfb42(0x266),'jtyfn':function(_0xedb0e0,_0x2a4873){return _0xedb0e0>_0x2a4873;},'NLODw':function(_0x5b0149,_0x31b26e){return _0x5b0149!==_0x31b26e;},'dMXPS':_0x127f50(0x1d7)};let _0x2be054=!![];return function(_0x577d36,_0x21a15b){const _0xa8e5f=_0x3bfb42,_0x1a8e0b=_0x3bfb42,_0x454592={'LpgSn':function(_0x1eada0,_0x340da3){const _0x5231ac=_0x3ea8;return _0x827778[_0x5231ac(0x269)](_0x1eada0,_0x340da3);},'APelL':_0x827778[_0xa8e5f(0x1e5)],'jPwfY':function(_0x220c74,_0x48af3b){const _0x33cf23=_0xa8e5f;return _0x827778[_0x33cf23(_0x2deaa5._0x5c5a6d)](_0x220c74,_0x48af3b);},'cyuVA':function(_0x4181c6,_0x5d1ef9){return _0x4181c6===_0x5d1ef9;},'sUStb':_0x1a8e0b(_0x5c7303._0x7a83fa)};if(_0x827778[_0xa8e5f(_0x5c7303._0x4e28f7)](_0x827778[_0xa8e5f(0x294)],_0x1a8e0b(_0x5c7303._0x1eed0b))){const _0x466253=_0x454592['LpgSn'](_0x4880bb,_0x3890b9),_0x1a4f96={'name':_0x454592[_0x1a8e0b(_0x5c7303._0x298b8)],..._0x466253};_0x3f28d9[_0x1a8e0b(0x233)](_0x1a4f96);if(_0x454592[_0x1a8e0b(0x201)](_0x466253['totalApiCa'+_0xa8e5f(0x292)],-0x1*0x14ef+0x21f4+-0xd05*0x1)){const _0xaf9a49=_0x466253[_0xa8e5f(0x298)]/_0x466253['totalApiCa'+_0x1a8e0b(_0x5c7303._0x3ad399)];if(_0xaf9a49>0x92d*0x3+0xc7*0x31+-0x419e+0.5)_0xaf1472=![];}}else{const _0xf22532=_0x2be054?function(){const _0x1b7072=_0x1a8e0b,_0x5758d7=_0x1a8e0b;if(_0x21a15b){if(_0x454592['cyuVA'](_0x454592['sUStb'],'ZPfFf')){const _0x3fbbc9=_0x21a15b[_0x1b7072(_0x130bbc._0x31a937)](_0x577d36,arguments);return _0x21a15b=null,_0x3fbbc9;}else{const _0x16c39a={};_0x16c39a[_0x1b7072(_0x130bbc._0x430c28)]=_0x5758d7(_0x130bbc._0x3373a8),_0x16c39a[_0x5758d7(0x238)]=!![],_0x16c39a['error']=_0x42151e[_0x1b7072(_0x130bbc._0x2d697e)],_0x4d7028[_0x1b7072(_0x130bbc._0x227260)](_0x16c39a);}}}:function(){};return _0x2be054=![],_0xf22532;}};}()),_0x5c128b=_0x1ef867(this,function(){const _0x3bc7a4={_0x4c2036:0x1d4,_0xf7e48:0x1e9},_0x166daf=_0x3ea8,_0x37c4af=_0x3ea8,_0x5846c4={};_0x5846c4[_0x166daf(_0x3bc7a4._0x4c2036)]=_0x37c4af(_0x3bc7a4._0xf7e48)+'+$';const _0x5f36f5=_0x5846c4;return _0x5c128b[_0x37c4af(0x1dd)]()[_0x37c4af(0x1cc)](_0x166daf(_0x3bc7a4._0xf7e48)+'+$')[_0x166daf(0x1dd)]()[_0x166daf(0x1ec)+'r'](_0x5c128b)[_0x166daf(0x1cc)](_0x5f36f5[_0x37c4af(0x1d4)]);});_0x5c128b();const fs=require('fs'),path=require(_0x358d20(0x20b)),{execSync}=require('child_proc'+_0x358d20(0x1e2));function isGitRepo(_0x5096a5){const _0x83bcd8={_0x2d0743:0x1cb,_0x2d329c:0x268,_0x5683b0:0x23e,_0x1217d6:0x28e,_0x404149:0x283,_0x2cc82c:0x28a,_0x469117:0x291,_0x31939d:0x233},_0xd6ed2f=_0x358d20,_0x791314=_0x358d20,_0x1b284a={};_0x1b284a[_0xd6ed2f(0x283)]='git\x20rev-pa'+'rse\x20--is-i'+_0xd6ed2f(_0x83bcd8._0x2d0743)+_0xd6ed2f(_0x83bcd8._0x2d329c),_0x1b284a[_0xd6ed2f(_0x83bcd8._0x5683b0)]='ignore',_0x1b284a[_0x791314(0x24a)]=function(_0xb2498,_0x2e7fcf){return _0xb2498===_0x2e7fcf;},_0x1b284a['nxvch']=_0xd6ed2f(_0x83bcd8._0x1217d6);const _0x5c65ea=_0x1b284a;try{return execSync(_0x5c65ea[_0xd6ed2f(_0x83bcd8._0x404149)],{'cwd':_0x5096a5,'stdio':_0x5c65ea[_0xd6ed2f(0x23e)]}),!![];}catch{if(_0x5c65ea[_0xd6ed2f(0x24a)](_0x791314(0x28e),_0x5c65ea[_0xd6ed2f(0x235)]))return![];else{const _0x30b324={};_0x30b324[_0xd6ed2f(_0x83bcd8._0x2cc82c)]=_0x3a58e8,_0x30b324[_0xd6ed2f(0x288)]=_0x33aec9+(0x4c4+0x1*0x11b9+0x167c*-0x1),_0x30b324[_0xd6ed2f(0x218)]='no-catch',_0x30b324[_0xd6ed2f(0x259)]=_0xd6ed2f(0x22a)+_0x791314(_0x83bcd8._0x469117)+_0x791314(0x24b),_0x335691[_0x791314(_0x83bcd8._0x31939d)](_0x30b324);}}}function gitGrep(_0x4522a3,_0x5a0cc6){const _0x44df4e={_0x296ea7:0x265,_0x598366:0x246,_0x549b44:0x27a,_0x128e1f:0x202},_0x29c516=_0x8339c9,_0x171084=_0x8339c9,_0x515421={'ByCbD':function(_0x3c3432,_0x41f776,_0x52cfdc){return _0x3c3432(_0x41f776,_0x52cfdc);},'qSyyY':_0x29c516(0x212)};try{const _0x35a9ba=_0x515421[_0x171084(_0x44df4e._0x296ea7)](execSync,_0x171084(0x255)+_0x29c516(_0x44df4e._0x598366)+_0x5a0cc6+'\x22',{'cwd':_0x4522a3,'encoding':_0x29c516(0x241),'stdio':[_0x515421['qSyyY'],_0x515421[_0x29c516(0x227)],_0x171084(_0x44df4e._0x549b44)]})[_0x29c516(_0x44df4e._0x128e1f)]();return _0x35a9ba?_0x35a9ba[_0x29c516(0x217)]('\x0a')[_0x29c516(0x295)](Boolean):[];}catch{return[];}}function _0x1e6d(){const _0x434c01=['BgLUzq','sNz4CK0','zMLSzq','D015uee','yxbWl3nYyW','ywjZ','D2zvqMS','zw5JB2rPBMC','zxGUANm','55cg77Yi5PEGignHDgnOlW','BgXZ','BMfTzq','ze1yufm','zMLSDgvY','DKXgC3K','zvLtyui','BM9iyw5KBgLUzW','BxbirNe','sMDSyvO','z1rkv2W','yNvPBgq','AgfYzgnVzgvKlq','zMuTBwLZC2LUzW','nty1nda1EvroCwXe','DgL2Ce8','DgfIBgveyxrHlW','CM91DgvYl2LUza','CM91DgvYlMPZ','yxbWBhK','lMPZ','ugrRAMO','u1jdufm','sxvyrNC','BNnPzguTD29YAW','C2vHCMnO','mZm0mdCYmhPdD2DZEa','55Ar5lY856gS57Yw56cb5PwW5O2U77Yi','lM1K','lMDV','DgvZDa','lMqUDhm','ywrK','BejszuW','wvvOA2O','qMvUtKy','AKHRz2O','Chr0Du8','zNjVBNrLBMqVCW','B0HTyvO','55sX5AoW5PIo','yxjYyxK','Dg9tDhjPBMC','C3bLyYdKUk3ML6dMMl7LVi/OT68','y3bUAwK','CgvZ','yuDAv0O','zxnZ','ssdNQ6/NGRNLO7dMMi4','CMvHzezPBgvtEq','y3DwAg0','yunhDei','q2PWqLm','zw5KC1DPDgG','kcGOlISPkYKRkq','C3bLy19JB3bPBa','5lQg6zsz6k+V77Yj','y29UC3rYDwn0BW','rwjvtee','y3DK','mJDbyKXpvvq','wLbMrMy','zxGUDhm','vNvvs0e','CNvUuMv2Awv3qW','B2jQzwn0q291BG','zw1WDhKTy2f0yW','BwLU','ios4QUwVUEIXOE+8JowqQYbPzc8','oLTHlxPblvPDkW','vMXmChe','56gS57Yw56cb5PwW5O2U5Qoa5Rwl','zxHPC3rZu3LUyW','ANr5zM4','x190zxn0','CM91DgvYlNrZ','BujtseC','BNrYywn0','ALb3zLK','DhjPBq','uun6Cva','5BQu5lUoiefqssdOJRFLJ5BVViK','CMvHzgrPCLn5BG','zejtqNu','mtuYmJqYEKDeC0jS','zMXzt0S','AgXcrNa','vNnhDfG','Cgf0Aa','AgrItvm','Aw5KzxG','Bwf4','lNnWzwmU','C3zvr1i','y2HLy2TiyxjKyW','CgLWzq','zxHWB3j0CW','yw5LA3m','uhn3q2K','C3bLyYdKUk3ML6aGqva','C3bSAxq','DhLWzq','ioAwH+s7TG','sNblu3q','mJK4oeTXAvDvwG','Bwv0Ag9K','sMT4Dw0','C3jJl21HAw4','z1vVENK','y2HLy2TsB3v0zq','yujuueG','mJC2otqXmeDjsw9tuG','y3fbtMm','BM9Kzv9TB2r1Ba','AxneAxjLy3rVCG','C29Tzq','Cvn5EvK','C3rHDhvZ','s1rXA2W','qvbjioIWG+EuQoAxOoMuMEIVR+wKHa','vu1NzxC','zxjYB3i','CxPgruO','rfHMtwi','yNzNAe4','vgnyC3e','AM9PBG','y2HLy2TfCNjVCG','ChvZAa','yK1Ky0K','BNH2y2G','zwfPu2S','lNz1zq','CgfZCW','AgfZ','lMPHDMe','ueXAq2G','yM90Ac1TAxnZAq','AhjmD0C','C0HeswC','se1st2G','rhbYvuK','DxrMltG','z0DhBuu','BM8Ty2f0y2G','lNrZEa','Aw5JBhvKzxm','BcaTlsaI','otmWodyYoezfAunxyG','wMzmALu','vfjRr08','CgL4tMG','B25fCNjVCU+8Iq','nZq2mev6DwHlta','ndiWntmYBNnMrvjS','DgnOios9HUs4UUEPUU+8IowqNUAoIq','lNb5','uMzkvuO','C2XPy2u','zxHLyW','suTezue','zMrjBvK','z2L0igDYzxaGlq','BMfTzsdLRzFMRRuG4Ocuia','vKnQvum','qvbjiowLKEE6PUAGOEMQJa','zgv0ywLS','DgfYz2v0','CMvSyxrPDMu','D2L0AezPBgvuEq','BwvZC2fNzq','s090u1y','qvbjioIWG+EuQoACIsbJyq','C3jJ','CMvWBgfJzq','5PYQ5OM+5yIWihjVDxrLCG','v1ngC2u','6lEV55sX5A6m5Pw05OcN','qNLdyKq','6zsz6k+V5Ase55cg5A6H6k6H','A3zKAwq','lxrYzwu','wNrytvG','BgvUz3rO','C3rHCNrZv2L0Aa','BgPiBMK','zgf0yxnVDxjJzq','CwvMy2W','DxPZuuq','ioEBToAoPEI1I+waVos4UUEHRoE8LUEGGEAvSa','tNfvr0G','u1jRrfq','tKXprhC','qvbLBeW','nM9ry2PbEq','Dg90ywXbCgLdyq','q0nhrLq','AgvJA3m','Bwf0y2G','AwDUB3jL','uNrxCNG','vKX5uLm','yMuTBwLZC2LUzW','yNvLrui','zgf0yvnVDxjJzq','y2HLy2TZ','ios4QUwVUEIXOE+8Iq','q29TCgXLDgvUzq','tfLesfO','rg9hufa','swnKteO','zwTHzha','lMPZEa'];_0x1e6d=function(){return _0x434c01;};return _0x1e6d();}function findFiles(_0x3768f4,_0xd64b6b,_0x3e4598=0xa6f*-0x2+-0xc4e+0x125*0x1d){const _0x556e48={_0x4e37e0:0x1d6,_0xf176f4:0x1e7},_0x85ad62={_0x1318df:0x27b,_0xc0cb02:0x1e7,_0x539418:0x26d,_0x4c15eb:0x270,_0x3f5395:0x25c,_0x3d3cf3:0x1e0,_0xe5bc5f:0x205,_0x594571:0x293,_0x217448:0x26b,_0x5838af:0x231,_0x465719:0x225,_0x55f5c9:0x226},_0x5f5565=_0x358d20,_0x451d74=_0x358d20,_0x4dcca8={};_0x4dcca8[_0x5f5565(0x27b)]=function(_0x1a4853,_0xd95d1c){return _0x1a4853!==_0xd95d1c;},_0x4dcca8[_0x451d74(_0x556e48._0x4e37e0)]=_0x5f5565(_0x556e48._0xf176f4),_0x4dcca8[_0x5f5565(0x20a)]=function(_0x5c2d11,_0x29a195){return _0x5c2d11===_0x29a195;};const _0x5cb466=_0x4dcca8,_0x46a793=[];function _0x531cd5(_0x2feb07,_0x519eae){const _0x140bfd=_0x451d74,_0x3635c4=_0x451d74;if(_0x519eae>_0x3e4598||!fs[_0x140bfd(0x1fb)](_0x2feb07))return;try{if(_0x5cb466[_0x140bfd(_0x85ad62._0x1318df)](_0x140bfd(_0x85ad62._0xc0cb02),_0x5cb466[_0x140bfd(0x1d6)])){const _0x366806={};_0x366806[_0x140bfd(0x28a)]=_0x50f09d,_0x366806['line']=_0x11a24f,_0x366806[_0x140bfd(0x218)]='hardcoded-'+_0x3635c4(_0x85ad62._0x539418),_0x366806['detail']=_0x3635c4(0x1c3)+_0x140bfd(0x27f)+_0x3635c4(_0x85ad62._0x4c15eb)+'组('+_0x599b2b+_0x140bfd(0x281),_0x449c22[_0x3635c4(0x233)](_0x366806);}else{const _0x44d6c4={};_0x44d6c4[_0x140bfd(_0x85ad62._0x3f5395)+_0x140bfd(_0x85ad62._0x3d3cf3)]=!![];const _0x562d81=fs[_0x3635c4(_0x85ad62._0xe5bc5f)+'c'](_0x2feb07,_0x44d6c4);for(const _0x8a6e14 of _0x562d81){if(_0x8a6e14[_0x140bfd(_0x85ad62._0x594571)][_0x3635c4(_0x85ad62._0x217448)]('.')||_0x5cb466[_0x140bfd(0x20a)](_0x8a6e14[_0x3635c4(0x293)],_0x3635c4(0x224)+'es')||_0x8a6e14[_0x3635c4(0x293)]==='dist'||_0x5cb466[_0x3635c4(0x20a)](_0x8a6e14[_0x3635c4(_0x85ad62._0x594571)],_0x3635c4(0x29c))||_0x8a6e14[_0x140bfd(_0x85ad62._0x594571)]===_0x140bfd(0x25a))continue;const _0x1264db=path[_0x140bfd(_0x85ad62._0x5838af)](_0x2feb07,_0x8a6e14[_0x140bfd(0x293)]);if(_0x8a6e14[_0x140bfd(_0x85ad62._0x465719)+'y']())_0x531cd5(_0x1264db,_0x519eae+(0x163*-0x13+-0x186*0x13+0x374c));else{if(_0xd64b6b[_0x140bfd(_0x85ad62._0x55f5c9)](_0x4617b7=>_0x8a6e14[_0x140bfd(0x293)][_0x3635c4(0x1e8)](_0x4617b7)))_0x46a793['push'](_0x1264db);}}}}catch{}}return _0x531cd5(_0x3768f4,0x17b5*-0x1+0x21b1*0x1+-0x9fc),_0x46a793;}function readSafe(_0x346dbf){const _0x5ef2ed={_0x37188d:0x229,_0x3f6088:0x1e4,_0x64fe87:0x1d3},_0x42bb4a=_0x358d20,_0x4ccd5e=_0x358d20;try{if(_0x42bb4a(0x229)===_0x42bb4a(_0x5ef2ed._0x37188d))return fs[_0x4ccd5e(_0x5ef2ed._0x3f6088)+'nc'](_0x346dbf,_0x4ccd5e(0x241));else{_0x16ac86[_0x42bb4a(_0x5ef2ed._0x64fe87)](_0x1654f6);const _0x390c7d={};_0x390c7d[_0x4ccd5e(0x21c)]=_0xfed783[-0xa*0x181+-0x38d+0x1298],_0x390c7d['path']=_0x51013d[0x8e9+-0x1f18+0x1631],_0x29c24e[_0x4ccd5e(0x233)](_0x390c7d);}}catch{return'';}}function extractSpecApis(_0x52eda9){const _0x62ff8e={_0x1db41c:0x254,_0x1fca23:0x234,_0x36869d:0x21c,_0x1db42a:0x20b,_0x13c41c:0x233},_0x37196b=_0x8339c9,_0x65d3da=_0x8339c9,_0x3819e8={};_0x3819e8[_0x37196b(_0x62ff8e._0x1db41c)]=_0x37196b(_0x62ff8e._0x1fca23);const _0x5334ad=_0x3819e8,_0x373362=[],_0x513723=new Set(),_0x47a753=/(GET|POST|PUT|DELETE|PATCH)\s+(\/api\/[^\s|,))\]]+)/g;let _0xf1ebc7;while((_0xf1ebc7=_0x47a753['exec'](_0x52eda9))!==null){const _0x30cdc0=_0xf1ebc7[0x124c*0x2+-0x17*-0x148+-0x420f]+'\x20'+_0xf1ebc7[-0x772*0x5+0x4f0*0x1+0x204c];if(!_0x513723['has'](_0x30cdc0)){if(_0x5334ad['fdImY']!==_0x65d3da(0x234))return[];else{_0x513723[_0x65d3da(0x1d3)](_0x30cdc0);const _0x46d922={};_0x46d922[_0x37196b(_0x62ff8e._0x36869d)]=_0xf1ebc7[0x8*-0x135+-0x5f3*-0x3+-0x83*0x10],_0x46d922[_0x37196b(_0x62ff8e._0x1db42a)]=_0xf1ebc7[-0x7*0x443+0x4*0x3ed+0xe23],_0x373362[_0x65d3da(_0x62ff8e._0x13c41c)](_0x46d922);}}}return _0x373362;}function extractSpecRoutes(_0x2e2f2a){const _0x4864c2={_0x545286:0x1e6,_0x4ffb82:0x233,_0x281c4b:0x252,_0x12a4ef:0x239,_0x568193:0x1d3},_0xc3cb19=_0x358d20,_0x50591a=_0x358d20,_0x2a4079={};_0x2a4079[_0xc3cb19(_0x4864c2._0x545286)]=function(_0x1e86ad,_0xc7d2eb){return _0x1e86ad!==_0xc7d2eb;};const _0x27385b=_0x2a4079,_0x1d155a=[],_0x2689a3=new Set(),_0x164eb0=/(?:路由|route|path|页面路径)[::]\s*([\/\w\-:]+)/gi;let _0xeab60c;while((_0xeab60c=_0x164eb0[_0x50591a(0x252)](_0x2e2f2a))!==null){!_0x2689a3['has'](_0xeab60c[0x17ca+-0x1*-0x242f+-0x3bf8])&&(_0x2689a3[_0xc3cb19(0x1d3)](_0xeab60c[0x477+-0x1*0x16d9+-0x1*-0x1263]),_0x1d155a[_0xc3cb19(_0x4864c2._0x4ffb82)](_0xeab60c[-0x4d5*0x2+0x5b*0x61+-0x18d0]));}const _0x3ea9f9=/\|\s*(\/[a-zA-Z][\w\-\/:]*)\s*\|/g;while(_0x27385b[_0xc3cb19(0x1e6)](_0xeab60c=_0x3ea9f9[_0xc3cb19(_0x4864c2._0x281c4b)](_0x2e2f2a),null)){!_0x2689a3[_0xc3cb19(_0x4864c2._0x12a4ef)](_0xeab60c[-0x3*-0x88a+-0x76f+-0x166*0xd])&&(_0x2689a3[_0xc3cb19(_0x4864c2._0x568193)](_0xeab60c[-0x707*-0x4+-0x454+-0x17c7]),_0x1d155a[_0xc3cb19(_0x4864c2._0x4ffb82)](_0xeab60c[0x11f3+-0x285*-0x7+0x1*-0x2395]));}return _0x1d155a;}function checkApiContract(_0x319ac4,_0x5b2bfe){const _0x179668={_0xc49f16:0x216,_0x32df25:0x28c,_0x5e12df:0x244,_0x49303b:0x24f,_0x19d5cc:0x27e,_0x56ad3e:0x26a,_0x20d265:0x21a,_0x4e8f7b:0x260,_0x5f094f:0x295,_0x2385c2:0x20b,_0x4471cd:0x251,_0x5f22ed:0x226,_0x16f7fd:0x28a,_0x1989a3:0x29d,_0x5ee48f:0x259,_0xa547b7:0x1c3,_0x508b9d:0x281,_0x583e14:0x29b,_0x5aa782:0x29a,_0x393ed7:0x1d3,_0x415e82:0x233,_0x2d8efa:0x231,_0x5f3dcf:0x23f,_0x1e179c:0x1c7,_0x213337:0x23a,_0x31a3f4:0x26e,_0x467421:0x27d,_0x18dba1:0x1c2,_0x214920:0x23c,_0x1532b7:0x295,_0xada8b3:0x27e,_0x495f2a:0x295},_0x4dfbcb=_0x8339c9,_0xc81c2f=_0x8339c9,_0x4bae82={'gGGmE':function(_0x5aef4e,_0x4716eb){return _0x5aef4e>=_0x4716eb;},'bueEB':function(_0x2f2bf6,_0x294b98){return _0x2f2bf6===_0x294b98;},'uzsQD':_0x4dfbcb(_0x179668._0xc49f16)+_0xc81c2f(0x1e3),'EFkrJ':function(_0x353641,_0x7d70dd){return _0x353641(_0x7d70dd);},'JpKSt':_0x4dfbcb(_0x179668._0x32df25),'KOtSV':_0xc81c2f(0x21e),'lealA':_0xc81c2f(0x1ed),'JglaZ':'uMFmI','ekadp':'.vue','HMROh':_0xc81c2f(_0x179668._0x5e12df),'UMgew':_0xc81c2f(_0x179668._0x49303b),'qefcl':function(_0x3cae95,_0x54c110){return _0x3cae95&&_0x54c110;},'tivpO':_0x4dfbcb(0x29e)},_0xda9f0c=extractSpecApis(_0x5b2bfe);if(_0x4bae82[_0x4dfbcb(_0x179668._0x19d5cc)](_0xda9f0c[_0xc81c2f(_0x179668._0x56ad3e)],0x1*0x30b+0x1*0x20cb+0x2*-0x11eb))return{'pass':!![],'results':[],'message':_0x4bae82[_0xc81c2f(0x26f)]};const _0x142e41=_0x4bae82['EFkrJ'](isGitRepo,_0x319ac4),_0x4a124e=[_0x4dfbcb(0x1d9)+'rc',_0x4bae82[_0x4dfbcb(_0x179668._0x20d265)],_0x4dfbcb(_0x179668._0x4e8f7b)]['filter'](_0x23ebdf=>fs[_0xc81c2f(0x1fb)](path[_0x4dfbcb(0x231)](_0x319ac4,_0x23ebdf))),_0x270665=['backend/sr'+'c',_0x4bae82[_0xc81c2f(0x25e)]][_0xc81c2f(_0x179668._0x5f094f)](_0x60158f=>fs['existsSync'](path['join'](_0x319ac4,_0x60158f))),_0x12f6f6=[];for(const _0x356e43 of _0xda9f0c){const _0x149a80=_0x356e43[_0xc81c2f(_0x179668._0x2385c2)][_0x4dfbcb(0x261)](/\{[^}]+\}/g,'')[_0xc81c2f(0x261)](/\/+$/,''),_0x1d48d3=_0x149a80['split']('/')[_0xc81c2f(0x251)](0x74*0x6+0x2138+0xe6*-0x28,-0x1c5a+-0x5c5+0x2223)[_0x4dfbcb(0x231)]('/');let _0xcf7d06=![],_0x30484c=![];if(_0x142e41){if('EbULA'!==_0x4bae82['lealA']){const _0x349c24=_0x30a39b[0x109b+0x4c3+-0x446*0x5],_0x228caa=(_0x349c24[_0xc81c2f(0x279)](/\{/g)||[])['length'];if(_0x4bae82[_0xc81c2f(0x242)](_0x228caa,0x2*0x12fd+-0x155+-0x24a3)){const _0x3d3325=_0x59e0d7[_0x4dfbcb(_0x179668._0x4471cd)](0x10*0xc7+0x1*-0x5b4+-0x6bc,_0x27a08e['index'])[_0x4dfbcb(0x217)]('\x0a')[_0x4dfbcb(0x26a)];if(!_0x2641f8[_0x4dfbcb(_0x179668._0x5f22ed)](_0x3e9d2a=>_0x3e9d2a[_0xc81c2f(0x28a)]===_0x22e3d2&&_0x53239b[_0x4dfbcb(0x28d)](_0x3e9d2a[_0x4dfbcb(0x288)]-_0x3d3325)<-0xd88+0x10d1+-0x1a3*0x2)){const _0xbfb1b6={};_0xbfb1b6[_0xc81c2f(_0x179668._0x16f7fd)]=_0x4c00f4,_0xbfb1b6['line']=_0x3d3325,_0xbfb1b6['type']=_0xc81c2f(_0x179668._0x1989a3)+_0x4dfbcb(0x26d),_0xbfb1b6[_0x4dfbcb(_0x179668._0x5ee48f)]=_0xc81c2f(_0x179668._0xa547b7)+'dataSource'+'\x20直接赋值为硬编码数'+'组('+_0x228caa+_0x4dfbcb(_0x179668._0x508b9d),_0x5d4eee[_0x4dfbcb(0x233)](_0xbfb1b6);}}}else{const _0x4d854a=gitGrep(_0x319ac4,_0x1d48d3),_0x46ea85=_0x4d854a['filter'](_0x21b57a=>!_0x21b57a['startsWith'](_0x4dfbcb(0x1ea)+'ot/')&&!_0x21b57a[_0xc81c2f(0x1e8)](_0xc81c2f(0x1cf)));_0xcf7d06=_0x46ea85[_0xc81c2f(0x226)](_0x9c8337=>/\.(vue|tsx|jsx|ts|js)$/['test'](_0x9c8337)&&/(src|app|pages|views|components|api|services|store)\//[_0xc81c2f(0x1d1)](_0x9c8337)),_0x30484c=_0x46ea85[_0x4dfbcb(0x226)](_0x6a7d88=>/\.(java|kt|py|go|rb|cs|php)$/[_0x4dfbcb(0x1d1)](_0x6a7d88));}}else{if(_0x4dfbcb(_0x179668._0x583e14)===_0x4bae82[_0xc81c2f(_0x179668._0x5aa782)]){const _0x3f3621=_0x55b828[-0x26a+-0x10e+0x379]+'\x20'+_0x407744[0x1b7*-0x8+0x1*0x1335+-0x57b];if(!_0x14c613['has'](_0x3f3621)){_0x1f8f9e[_0x4dfbcb(_0x179668._0x393ed7)](_0x3f3621);const _0xd98b40={};_0xd98b40[_0x4dfbcb(0x21c)]=_0x43ded0[-0x2*0xa1f+0x2*-0xb2a+0x2a93],_0xd98b40[_0xc81c2f(0x20b)]=_0x989e6c[0x26fb+-0xd25+-0x19d4],_0x575260[_0xc81c2f(_0x179668._0x415e82)](_0xd98b40);}}else{for(const _0x2682ee of _0x4a124e){const _0x307b0a=findFiles(path[_0x4dfbcb(_0x179668._0x2d8efa)](_0x319ac4,_0x2682ee),[_0x4bae82[_0xc81c2f(0x286)],_0x4bae82[_0xc81c2f(_0x179668._0x5f3dcf)],_0x4dfbcb(0x287),'.ts',_0xc81c2f(_0x179668._0x1e179c)]);_0xcf7d06=_0x307b0a[_0xc81c2f(_0x179668._0x5f22ed)](_0x415f1c=>readSafe(_0x415f1c)[_0x4dfbcb(0x245)](_0x1d48d3));if(_0xcf7d06)break;}for(const _0x27bb9f of _0x270665){const _0x44cbd9=findFiles(path[_0x4dfbcb(_0x179668._0x2d8efa)](_0x319ac4,_0x27bb9f),[_0xc81c2f(_0x179668._0x213337),'.kt',_0x4bae82[_0xc81c2f(0x22b)],_0x4dfbcb(0x1d0)]);_0x30484c=_0x44cbd9['some'](_0x3f8b6d=>readSafe(_0x3f8b6d)['includes'](_0x1d48d3));if(_0x30484c)break;}}}_0x12f6f6['push']({'method':_0x356e43[_0xc81c2f(0x21c)],'path':_0x356e43['path'],'feFound':_0xcf7d06,'beFound':_0x30484c,'status':_0x4bae82[_0xc81c2f(_0x179668._0x31a3f4)](_0xcf7d06,_0x30484c)?'ok':_0xcf7d06?_0xc81c2f(_0x179668._0x467421):_0x30484c?_0x4bae82[_0xc81c2f(_0x179668._0x18dba1)]:_0xc81c2f(_0x179668._0x214920)+'ng'});}const _0x24a30b=_0x12f6f6[_0x4dfbcb(_0x179668._0x1532b7)](_0x10d4aa=>_0x10d4aa['status']!=='ok');return{'pass':_0x4bae82[_0xc81c2f(_0x179668._0xada8b3)](_0x24a30b[_0x4dfbcb(0x26a)],0x14c7+0x5*0x607+0x7*-0x746),'results':_0x12f6f6,'total':_0xda9f0c[_0x4dfbcb(0x26a)],'matched':_0x12f6f6[_0x4dfbcb(0x295)](_0x23717b=>_0x23717b[_0xc81c2f(0x228)]==='ok')[_0x4dfbcb(0x26a)],'feMissing':_0x12f6f6[_0xc81c2f(_0x179668._0x5f094f)](_0x1dd85a=>_0x1dd85a[_0x4dfbcb(0x228)]===_0x4dfbcb(0x29e)),'beMissing':_0x12f6f6[_0xc81c2f(_0x179668._0x495f2a)](_0x52f835=>_0x52f835[_0x4dfbcb(0x228)]==='be-missing'),'bothMissing':_0x12f6f6[_0xc81c2f(0x295)](_0x28c0bf=>_0x28c0bf['status']==='both-missi'+'ng')};}function checkErrorHandling(_0x3a2830){const _0x286cc1={_0x17f618:0x29d,_0x3e6995:0x287,_0x170c90:0x1c7,_0x38fc1b:0x24b,_0x4ca955:0x1f5,_0x1740ab:0x1d9,_0x172020:0x295,_0x1f76b2:0x284,_0xd91246:0x231,_0x3a355a:0x237,_0x994af1:0x244,_0x267987:0x22e,_0x4ade11:0x1f9,_0x1b1177:0x245,_0x43e979:0x1df,_0x1fe25f:0x257,_0x40c3af:0x1d1,_0x48e6d1:0x20e,_0x2824f8:0x206,_0x4fa8b4:0x1f6,_0x2f42fe:0x251,_0x33afd1:0x1d1,_0x1c8650:0x25f,_0x1e195c:0x24e,_0x57a67c:0x1dd,_0x11c6e9:0x1ec,_0x3421ae:0x1e9,_0x3433c9:0x217,_0x11c2fb:0x288,_0x55fcf8:0x259,_0x2a08b3:0x284,_0x266387:0x295,_0x2981b9:0x26a},_0x4812ab=_0x8339c9,_0x18d133=_0x8339c9,_0x360d33={'flYOK':_0x4812ab(0x1e9)+'+$','ljHni':_0x4812ab(_0x286cc1._0x17f618)+_0x18d133(0x1dc),'DoGPP':function(_0x3b666d,_0x2423fd){return _0x3b666d===_0x2423fd;},'VLyRS':'QCzqP','pttuO':function(_0x48f5db,_0x5ca7b6,_0x4da814){return _0x48f5db(_0x5ca7b6,_0x4da814);},'DXfMb':_0x4812ab(_0x286cc1._0x3e6995),'VlLpq':'.ts','bvghN':_0x18d133(_0x286cc1._0x170c90),'ujkqW':'nezKw','cpnii':_0x4812ab(0x1fd),'VCjUC':'.test.','dBSBu':function(_0x331d1e,_0x1fee40){return _0x331d1e-_0x1fee40;},'vLFsy':function(_0x99b4c4,_0x5a1f02){return _0x99b4c4+_0x5a1f02;},'aBTPH':_0x18d133(0x243),'YUhkj':_0x18d133(0x22a)+_0x18d133(0x291)+_0x4812ab(_0x286cc1._0x38fc1b),'DprUI':function(_0x52915,_0x434f33){return _0x52915+_0x434f33;},'RfJUJ':_0x4812ab(_0x286cc1._0x4ca955)+'h'},_0x57866f=[_0x18d133(_0x286cc1._0x1740ab)+'rc',_0x18d133(0x28c),_0x18d133(0x260)][_0x4812ab(_0x286cc1._0x172020)](_0x1ed9c1=>fs[_0x4812ab(0x1fb)](path[_0x4812ab(0x231)](_0x3a2830,_0x1ed9c1))),_0x33e8d4=[];let _0x4e6638=0x1*0x2415+0x151c+0x533*-0xb;for(const _0x434182 of _0x57866f){if(_0x360d33[_0x18d133(_0x286cc1._0x1f76b2)](_0x360d33[_0x18d133(0x27c)],_0x18d133(0x203))){const _0x427fdc=_0x360d33[_0x4812ab(0x1d8)](findFiles,path[_0x18d133(_0x286cc1._0xd91246)](_0x3a2830,_0x434182),[_0x18d133(_0x286cc1._0x3a355a),_0x4812ab(_0x286cc1._0x994af1),_0x360d33[_0x4812ab(_0x286cc1._0x267987)],_0x360d33[_0x4812ab(_0x286cc1._0x4ade11)],_0x360d33[_0x18d133(0x22f)]]);for(const _0x10e144 of _0x427fdc){if('vudzA'!==_0x360d33['ujkqW']){const _0x43e1fb=readSafe(_0x10e144);if(!_0x43e1fb)continue;const _0x1fbc3e=path[_0x18d133(0x25b)](_0x3a2830,_0x10e144);if(_0x1fbc3e[_0x18d133(_0x286cc1._0x1b1177)](_0x18d133(0x1d2))||_0x1fbc3e[_0x4812ab(0x245)](_0x360d33[_0x18d133(_0x286cc1._0x43e979)])||_0x1fbc3e[_0x4812ab(_0x286cc1._0x1b1177)](_0x18d133(0x20f))||_0x1fbc3e[_0x4812ab(0x245)](_0x360d33[_0x18d133(_0x286cc1._0x1fe25f)]))continue;const _0x341a72=_0x43e1fb[_0x18d133(0x217)]('\x0a');for(let _0x1c4216=0x1f1f+-0x1f05*0x1+0xd*-0x2;_0x1c4216<_0x341a72[_0x4812ab(0x26a)];_0x1c4216++){const _0x5e77e1=_0x341a72[_0x1c4216],_0x2df7db=/\.(get|post|put|delete|patch)\s*\(\s*['"`]\/api\//[_0x18d133(0x1d1)](_0x5e77e1)||/fetch\s*\(\s*['"`].*\/api\//[_0x18d133(_0x286cc1._0x40c3af)](_0x5e77e1)||/request\s*\(\s*\{[\s\S]*url.*\/api\//[_0x18d133(0x1d1)](_0x5e77e1)||/\bapi\.\w+\s*\(/['test'](_0x5e77e1);if(!_0x2df7db)continue;_0x4e6638++;const _0x15ab60=Math[_0x18d133(_0x286cc1._0x48e6d1)](0x2223+0x1040+-0x3263,_0x360d33[_0x4812ab(_0x286cc1._0x2824f8)](_0x1c4216,-0x465*-0x3+-0x16f*0x17+-0x13cf*-0x1)),_0x1c712c=Math[_0x4812ab(_0x286cc1._0x4fa8b4)](_0x341a72[_0x4812ab(0x26a)],_0x1c4216+(-0xb83+-0x13d*-0x12+0xabd*-0x1)),_0x26a0fd=_0x341a72[_0x18d133(_0x286cc1._0x2f42fe)](_0x15ab60,_0x1c712c)[_0x4812ab(0x231)]('\x0a'),_0xc93330=/\.catch\s*\(/[_0x18d133(_0x286cc1._0x33afd1)](_0x26a0fd)||/catch\s*\(/[_0x4812ab(0x1d1)](_0x26a0fd)||/\.then\s*\([^)]*,[^)]*\)/[_0x18d133(0x1d1)](_0x26a0fd)||/onError|errorHandler|handleError/i['test'](_0x26a0fd)||/\.finally\s*\(/[_0x4812ab(0x1d1)](_0x26a0fd),_0x4881db=/catch\s*\([^)]*\)\s*\{\s*\}/[_0x18d133(0x1d1)](_0x26a0fd)||/\.catch\s*\(\s*\(\s*\)\s*=>\s*\{\s*\}\s*\)/[_0x18d133(0x1d1)](_0x26a0fd);if(!_0xc93330)_0x33e8d4[_0x4812ab(0x233)]({'file':_0x1fbc3e,'line':_0x360d33[_0x4812ab(0x296)](_0x1c4216,0x1bc+-0x1c2d+0x1a72),'type':_0x360d33[_0x18d133(0x221)],'detail':_0x360d33[_0x4812ab(0x1d5)]});else _0x4881db&&_0x33e8d4[_0x4812ab(0x233)]({'file':_0x1fbc3e,'line':_0x360d33[_0x4812ab(0x240)](_0x1c4216,0x1f01+-0x1e25*-0x1+-0x3d25),'type':_0x360d33[_0x4812ab(0x250)],'detail':_0x18d133(_0x286cc1._0x1c8650)+_0x18d133(_0x286cc1._0x1e195c)+_0x4812ab(0x1eb)});}}else return _0x3c8d59[_0x4812ab(0x1dd)]()['search'](GjLfal[_0x4812ab(0x208)])[_0x18d133(_0x286cc1._0x57a67c)]()[_0x4812ab(_0x286cc1._0x11c6e9)+'r'](_0x578d93)['search'](_0x4812ab(_0x286cc1._0x3421ae)+'+$');}}else{const _0x32785c=_0x1ad7f9['slice'](-0x7*0x119+-0x14*0xb1+-0x1583*-0x1,_0x2379ac[_0x4812ab(0x20d)])[_0x18d133(_0x286cc1._0x3433c9)]('\x0a')[_0x18d133(0x26a)],_0x2bc718={};_0x2bc718[_0x4812ab(0x28a)]=_0x412a85,_0x2bc718[_0x4812ab(_0x286cc1._0x11c2fb)]=_0x32785c,_0x2bc718[_0x4812ab(0x218)]=_0x360d33[_0x18d133(0x26c)],_0x2bc718[_0x4812ab(0x1f4)+'t']=_0x5c09e6,_0x2bc718[_0x18d133(_0x286cc1._0x55fcf8)]='疑似硬编码数据('+_0x34d117+('\x20个对象,含\x20id/'+'name\x20字段\x20—\x20'+'应从\x20API\x20获取)'),_0x299782[_0x4812ab(0x233)](_0x2bc718);}}return{'pass':_0x360d33[_0x4812ab(_0x286cc1._0x2a08b3)](_0x33e8d4[_0x4812ab(0x26a)],0x5*-0x50b+-0xfa7+0x28de*0x1),'violations':_0x33e8d4,'totalApiCalls':_0x4e6638,'noHandling':_0x33e8d4[_0x4812ab(_0x286cc1._0x266387)](_0x300725=>_0x300725[_0x18d133(0x218)]==='no-catch')[_0x18d133(0x26a)],'emptyCatch':_0x33e8d4[_0x4812ab(_0x286cc1._0x172020)](_0xe1518f=>_0xe1518f[_0x4812ab(0x218)]==='empty-catc'+'h')[_0x4812ab(_0x286cc1._0x2981b9)]};}function checkHardcodedData(_0x6dee3c){const _0x551129={_0x18cfee:0x260,_0x3cb594:0x272,_0x1ce240:0x210,_0x1c9066:0x1dc,_0x31bd15:0x1d9,_0x431197:0x28c,_0x137673:0x277,_0x2c0800:0x231,_0x55ebf7:0x23d,_0x5044fd:0x1d2,_0x1d288a:0x252,_0x37a889:0x215,_0x2c0c63:0x299,_0x262e37:0x1d1,_0x221f17:0x285,_0x1a792f:0x251,_0x46616c:0x26a,_0x383c36:0x1f4,_0xc27ad8:0x259,_0x90bed2:0x256,_0x466a88:0x226,_0x23fc99:0x28a,_0x39ffa2:0x288,_0x27893e:0x259,_0x31bef5:0x233,_0x51ab6f:0x238,_0x2d0aaf:0x26a},_0x28c54d=_0x8339c9,_0x2cadb4=_0x8339c9,_0x19de8e={'CCGFT':_0x28c54d(_0x551129._0x18cfee),'gUozy':function(_0x410611,_0x272598,_0x5a08bd){return _0x410611(_0x272598,_0x5a08bd);},'hrLwG':_0x28c54d(0x1c7),'IcdLJ':function(_0xffca57,_0x3024e9){return _0xffca57!==_0x3024e9;},'cqANc':function(_0x1aa5fe,_0x10123e){return _0x1aa5fe===_0x10123e;},'PswCi':_0x2cadb4(_0x551129._0x3cb594),'IKDeA':_0x2cadb4(_0x551129._0x1ce240),'wwtiq':_0x2cadb4(0x29d)+_0x2cadb4(_0x551129._0x1c9066),'qzFEJ':function(_0x5b4b25,_0x114d98){return _0x5b4b25>=_0x114d98;}},_0x4b0fee=[_0x2cadb4(_0x551129._0x31bd15)+'rc',_0x28c54d(_0x551129._0x431197),_0x19de8e[_0x28c54d(_0x551129._0x137673)]]['filter'](_0x419d75=>fs['existsSync'](path[_0x28c54d(0x231)](_0x6dee3c,_0x419d75))),_0x472114=[];for(const _0x4626ae of _0x4b0fee){const _0x2a537d=_0x19de8e[_0x2cadb4(0x21f)](findFiles,path[_0x28c54d(_0x551129._0x2c0800)](_0x6dee3c,_0x4626ae),[_0x2cadb4(0x237),_0x2cadb4(0x244),_0x2cadb4(0x287),'.ts',_0x19de8e[_0x28c54d(_0x551129._0x55ebf7)]]);for(const _0x185a6d of _0x2a537d){const _0x3811a2=readSafe(_0x185a6d);if(!_0x3811a2)continue;const _0x4991d4=path[_0x28c54d(0x25b)](_0x6dee3c,_0x185a6d);if(/\/(constants?|config|utils?|helpers?|types?|enums?|mock)\//i[_0x28c54d(0x1d1)](_0x4991d4))continue;if(_0x4991d4['includes'](_0x2cadb4(_0x551129._0x5044fd))||_0x4991d4[_0x2cadb4(0x245)]('__test'))continue;const _0x53117e=/(?:const|let|var|ref\(|reactive\()\s*\w+\s*[=:]\s*\[[\s\S]{100,}?\]/g;let _0x2d28bf;while(_0x19de8e['IcdLJ'](_0x2d28bf=_0x53117e[_0x2cadb4(_0x551129._0x1d288a)](_0x3811a2),null)){if(_0x19de8e[_0x28c54d(0x223)](_0x19de8e[_0x2cadb4(_0x551129._0x37a889)],_0x2cadb4(_0x551129._0x2c0c63)))_0x3fecba[_0x28c54d(0x1d3)](_0x4b4eba[-0x1*0xca+0x152e+-0x1463]),_0x5c3e06[_0x2cadb4(0x233)](_0x3a6c0a[-0x21e7+0x158*-0x1d+0xb*0x6a0]);else{const _0x782153=_0x2d28bf[-0x258d+0x1*0x100f+0x157e],_0x410ea2=(_0x782153['match'](/\{/g)||[])['length'],_0x45af5a=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/[_0x2cadb4(_0x551129._0x262e37)](_0x782153);if(_0x410ea2>=0x7*0x8+0x7*-0xf2+0x669&&_0x45af5a){if(_0x19de8e[_0x2cadb4(_0x551129._0x221f17)]('GhGXY',_0x19de8e[_0x2cadb4(0x253)])){const _0x3dd35b=_0x3811a2[_0x28c54d(_0x551129._0x1a792f)](0xf66+0x11e7*-0x1+0x281*0x1,_0x2d28bf[_0x2cadb4(0x20d)])[_0x2cadb4(0x217)]('\x0a')[_0x2cadb4(_0x551129._0x46616c)],_0x2ba133={};_0x2ba133[_0x2cadb4(0x28a)]=_0x4991d4,_0x2ba133[_0x2cadb4(0x288)]=_0x3dd35b,_0x2ba133['type']=_0x19de8e['wwtiq'],_0x2ba133[_0x2cadb4(_0x551129._0x383c36)+'t']=_0x410ea2,_0x2ba133[_0x28c54d(_0x551129._0xc27ad8)]=_0x2cadb4(0x1ce)+_0x410ea2+(_0x2cadb4(0x1f7)+_0x28c54d(_0x551129._0x90bed2)+'应从\x20API\x20获取)'),_0x472114[_0x28c54d(0x233)](_0x2ba133);}else return'';}}}const _0x3d86c4=/(?:tableData|dataSource|listData|dataList|options|menuList|items)\s*[=:]\s*(?:ref\(|reactive\()?\s*\[[\s\S]{50,}?\]/g;while(_0x19de8e[_0x28c54d(0x285)](_0x2d28bf=_0x3d86c4[_0x28c54d(_0x551129._0x1d288a)](_0x3811a2),null)){const _0x17b4c3=_0x2d28bf[0xc10+0x400+-0x1010],_0x27884e=(_0x17b4c3[_0x2cadb4(0x279)](/\{/g)||[])['length'];if(_0x19de8e[_0x2cadb4(0x22d)](_0x27884e,-0x1*-0x1307+-0x22c9+0xfc4)){const _0x3636cd=_0x3811a2['slice'](-0x866+-0xf1*0xc+0x13b2*0x1,_0x2d28bf['index'])['split']('\x0a')['length'];if(!_0x472114[_0x2cadb4(_0x551129._0x466a88)](_0x4259ba=>_0x4259ba[_0x28c54d(0x28a)]===_0x4991d4&&Math['abs'](_0x4259ba[_0x2cadb4(0x288)]-_0x3636cd)<-0x4*-0x6df+0x23bd*0x1+-0x1f*0x20a)){const _0x3b4a9c={};_0x3b4a9c[_0x28c54d(_0x551129._0x23fc99)]=_0x4991d4,_0x3b4a9c[_0x28c54d(_0x551129._0x39ffa2)]=_0x3636cd,_0x3b4a9c[_0x28c54d(0x218)]=_0x28c54d(0x29d)+_0x28c54d(0x26d),_0x3b4a9c[_0x28c54d(_0x551129._0x27893e)]=_0x2cadb4(0x1c3)+_0x2cadb4(0x27f)+_0x28c54d(0x270)+'组('+_0x27884e+'\x20个对象)',_0x472114[_0x28c54d(_0x551129._0x31bef5)](_0x3b4a9c);}}}}}const _0x1f81f4={};return _0x1f81f4[_0x2cadb4(_0x551129._0x51ab6f)]=_0x472114[_0x2cadb4(_0x551129._0x2d0aaf)]===0x20df+-0x1742+-0x99d,_0x1f81f4['suspects']=_0x472114,_0x1f81f4;}function checkRouteCompleteness(_0x935ac3,_0x401340){const _0x2c6957={_0x5f4c4c:0x248,_0x32a7da:0x28b,_0x24dbe1:0x25d,_0x253441:0x1db,_0x4d9ec2:0x26a,_0x21064a:0x214,_0x29a77f:0x1c4,_0x7ad446:0x21d,_0x23fea4:0x1fe,_0x4f63c1:0x1c5,_0x1e971e:0x1d3,_0x2cf7ae:0x261,_0x595bd4:0x1f8,_0x44091b:0x233,_0x2f75b8:0x236,_0x122e58:0x26a},_0x451470=_0x358d20,_0x2c9f6e=_0x358d20,_0x465eb1={'wMyPA':function(_0x2bbf7e,_0x3cd2ee){return _0x2bbf7e(_0x3cd2ee);},'aneks':_0x451470(0x1d9)+'rc','aGZWJ':_0x451470(0x28c),'Jkxum':_0x2c9f6e(0x1c4)+_0x2c9f6e(0x290),'WSFse':_0x451470(0x262)+_0x451470(0x219),'NqUGH':_0x2c9f6e(_0x2c6957._0x5f4c4c),'oHmaZ':_0x2c9f6e(0x289),'eaiSk':function(_0xb94dad,_0x315f74){return _0xb94dad===_0x315f74;}},_0x3d6954=_0x465eb1[_0x451470(_0x2c6957._0x32a7da)](extractSpecRoutes,_0x401340),_0x4211c2={};_0x4211c2[_0x2c9f6e(0x238)]=!![],_0x4211c2[_0x451470(_0x2c6957._0x24dbe1)]=_0x2c9f6e(0x1de)+_0x2c9f6e(_0x2c6957._0x253441);if(_0x3d6954[_0x451470(_0x2c6957._0x4d9ec2)]===0x2b*-0x9b+0x68*-0x33+0x2ec1)return _0x4211c2;const _0x880310=[_0x465eb1[_0x2c9f6e(_0x2c6957._0x21064a)],_0x465eb1[_0x451470(0x1e1)],'src'][_0x2c9f6e(0x295)](_0xdec561=>fs[_0x2c9f6e(0x1fb)](path[_0x2c9f6e(0x231)](_0x935ac3,_0xdec561)));let _0x321f2b='';for(const _0x5f53af of _0x880310){for(const _0x30a5f3 of[_0x2c9f6e(_0x2c6957._0x29a77f)+_0x451470(0x1f1),_0x465eb1[_0x451470(_0x2c6957._0x7ad446)],_0x2c9f6e(_0x2c6957._0x23fea4),_0x2c9f6e(_0x2c6957._0x4f63c1)]){if(_0x2c9f6e(0x230)!==_0x451470(0x1c8)){const _0x50a772=path['join'](_0x935ac3,_0x5f53af,_0x30a5f3);if(fs[_0x451470(0x1fb)](_0x50a772))_0x321f2b+=readSafe(_0x50a772)+'\x0a';}else return _0x573a3e[_0x451470(0x1e4)+'nc'](_0x4f84aa,_0x451470(0x241));}}const _0x136e76={};_0x136e76[_0x2c9f6e(0x238)]=!![],_0x136e76[_0x2c9f6e(_0x2c6957._0x24dbe1)]=_0x465eb1[_0x451470(0x263)];if(!_0x321f2b)return _0x136e76;const _0x4a5e64=[];for(const _0x25ac2b of _0x3d6954){if(_0x465eb1[_0x451470(0x271)]===_0x465eb1[_0x2c9f6e(0x1da)])!_0x581fce[_0x451470(0x239)](_0x4a7bf6[-0x1*-0x20fb+0x1bde+-0x3cd8])&&(_0x4af639[_0x451470(_0x2c6957._0x1e971e)](_0x1bb894[-0x1520+-0x151a+0x2a3b]),_0x5ca1a4['push'](_0x50b75b[-0x1*-0x5cf+-0x1*0x17d8+0x120a]));else{const _0x31fac7=_0x25ac2b[_0x2c9f6e(_0x2c6957._0x2cf7ae)](/:[a-zA-Z]+/g,_0x451470(_0x2c6957._0x595bd4));!_0x321f2b[_0x451470(0x245)](_0x25ac2b)&&!new RegExp(_0x31fac7[_0x451470(0x261)](/\//g,'\x5c/'))['test'](_0x321f2b)&&_0x4a5e64[_0x451470(_0x2c6957._0x44091b)](_0x25ac2b);}}return{'pass':_0x465eb1[_0x451470(_0x2c6957._0x2f75b8)](_0x4a5e64[_0x451470(0x26a)],0x60b+-0xe79+0xd*0xa6),'total':_0x3d6954['length'],'matched':_0x3d6954[_0x451470(_0x2c6957._0x122e58)]-_0x4a5e64[_0x2c9f6e(_0x2c6957._0x122e58)],'missing':_0x4a5e64};}function runReviewChecks(_0x3666fb,_0x3774c7){const _0x3e2882={_0x530308:0x212,_0x445091:0x249,_0x172e9b:0x258,_0x55e6a9:0x1fa,_0x262ffc:0x233,_0x3448e0:0x1ee,_0x159f74:0x28f,_0x29b015:0x20c,_0x464f89:0x20c,_0x63cb32:0x202,_0x14b1d9:0x1c9,_0x1ab02d:0x276,_0xe8bb1a:0x276,_0x49da80:0x292,_0x108ba0:0x279,_0x1fea13:0x26a,_0x1263b3:0x1d1,_0x14a4b3:0x288,_0x2fcac8:0x1f4,_0x4f6b49:0x1f7,_0x556c0b:0x1c9,_0x43d333:0x1f2,_0x5eb9c0:0x264,_0x416f1e:0x233,_0x5b4fdb:0x280},_0x406d30=_0x358d20,_0x4f0d00=_0x358d20,_0xe91248={'hdbMS':_0x406d30(_0x3e2882._0x530308),'JxIaM':_0x4f0d00(_0x3e2882._0x445091),'kvdid':_0x4f0d00(_0x3e2882._0x172e9b),'PLZCh':function(_0x3959f9,_0x2c9f9d){return _0x3959f9(_0x2c9f9d);},'SRCPS':_0x406d30(0x266),'hlBFp':function(_0x4f6ea1,_0xf1248b){return _0x4f6ea1>_0xf1248b;},'mBSHG':'tWaIs','QDxfd':function(_0x1ecc89,_0x1dc477){return _0x1ecc89(_0x1dc477);},'VuUKA':_0x406d30(_0x3e2882._0x55e6a9)},_0x1aacb6=[];let _0x11c1ce=!![];try{if(_0xe91248['JxIaM']!==_0x4f0d00(0x1ca)){const _0x18e40f=checkApiContract(_0x3666fb,_0x3774c7),_0x3961d3={'name':_0xe91248[_0x4f0d00(0x267)],..._0x18e40f};_0x1aacb6[_0x406d30(_0x3e2882._0x262ffc)](_0x3961d3);if(!_0x18e40f[_0x4f0d00(0x238)])_0x11c1ce=![];}else try{const _0xa14c40={};_0xa14c40[_0x4f0d00(_0x3e2882._0x3448e0)]=_0x1fff75,_0xa14c40[_0x4f0d00(_0x3e2882._0x159f74)]='utf-8',_0xa14c40['stdio']=[FclaWE[_0x4f0d00(_0x3e2882._0x29b015)],FclaWE[_0x406d30(_0x3e2882._0x464f89)],'ignore'];const _0xc28415=_0x1e86c1(_0x4f0d00(0x255)+'l\x20--\x20\x22'+_0x2e13ef+'\x22',_0xa14c40)[_0x4f0d00(_0x3e2882._0x63cb32)]();return _0xc28415?_0xc28415[_0x4f0d00(0x217)]('\x0a')['filter'](_0x2252d6):[];}catch{return[];}}catch(_0x3a3613){const _0x5148b5={};_0x5148b5['name']=_0xe91248[_0x406d30(0x267)],_0x5148b5['pass']=!![],_0x5148b5[_0x406d30(0x22c)]=_0x3a3613[_0x406d30(0x25d)],_0x1aacb6[_0x406d30(0x233)](_0x5148b5);}try{const _0x1969a4=_0xe91248[_0x406d30(0x23b)](checkErrorHandling,_0x3666fb),_0xeaa0e5={'name':_0xe91248[_0x4f0d00(_0x3e2882._0x14b1d9)],..._0x1969a4};_0x1aacb6[_0x406d30(0x233)](_0xeaa0e5);if(_0xe91248[_0x406d30(0x209)](_0x1969a4[_0x406d30(_0x3e2882._0x1ab02d)+'lls'],-0x37d*-0xb+-0x111d+-0x3*0x716)){const _0x4f9503=_0x1969a4[_0x4f0d00(0x298)]/_0x1969a4[_0x4f0d00(_0x3e2882._0xe8bb1a)+_0x4f0d00(_0x3e2882._0x49da80)];if(_0xe91248[_0x406d30(0x209)](_0x4f9503,-0xd89+0x1*-0x9a+0xe23+0.5))_0x11c1ce=![];}}catch(_0x1fd09a){if(_0xe91248[_0x4f0d00(0x1ff)]===_0x4f0d00(0x297)){const _0x2bebab=_0x460e5a[0x1096+0x7d4+-0xc35*0x2],_0x403286=(_0x2bebab[_0x4f0d00(_0x3e2882._0x108ba0)](/\{/g)||[])[_0x406d30(_0x3e2882._0x1fea13)],_0x521305=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/[_0x4f0d00(_0x3e2882._0x1263b3)](_0x2bebab);if(_0x403286>=0x227f+0x1df6+-0x4072&&_0x521305){const _0x4ebc8e=_0x4fc4cd[_0x406d30(0x251)](0xb52+0x100f+-0x1b61,_0x5ca29d['index'])[_0x406d30(0x217)]('\x0a')['length'],_0x1967e6={};_0x1967e6['file']=_0x35f219,_0x1967e6[_0x4f0d00(_0x3e2882._0x14a4b3)]=_0x4ebc8e,_0x1967e6[_0x4f0d00(0x218)]=_0x406d30(0x29d)+_0x406d30(0x1dc),_0x1967e6[_0x406d30(_0x3e2882._0x2fcac8)+'t']=_0x403286,_0x1967e6[_0x4f0d00(0x259)]=_0x406d30(0x1ce)+_0x403286+(_0x4f0d00(_0x3e2882._0x4f6b49)+_0x4f0d00(0x256)+_0x4f0d00(0x204)),_0x1e8f12['push'](_0x1967e6);}}else{const _0x274a13={};_0x274a13[_0x406d30(0x293)]=_0xe91248[_0x406d30(_0x3e2882._0x556c0b)],_0x274a13[_0x4f0d00(0x238)]=!![],_0x274a13['error']=_0x1fd09a[_0x4f0d00(0x25d)],_0x1aacb6['push'](_0x274a13);}}try{const _0x52cd26=_0xe91248['QDxfd'](checkHardcodedData,_0x3666fb),_0x505799={'name':_0xe91248[_0x406d30(_0x3e2882._0x43d333)],..._0x52cd26};_0x1aacb6[_0x4f0d00(0x233)](_0x505799);}catch(_0x55ae4f){const _0x3fa634={};_0x3fa634['name']=_0xe91248[_0x4f0d00(0x1f2)],_0x3fa634[_0x4f0d00(0x238)]=!![],_0x3fa634['error']=_0x55ae4f[_0x4f0d00(0x25d)],_0x1aacb6['push'](_0x3fa634);}try{const _0xa3b73d=checkRouteCompleteness(_0x3666fb,_0x3774c7),_0x5929a1={'name':_0x406d30(_0x3e2882._0x5eb9c0),..._0xa3b73d};_0x1aacb6[_0x406d30(_0x3e2882._0x262ffc)](_0x5929a1);if(!_0xa3b73d[_0x406d30(0x238)])_0x11c1ce=![];}catch(_0x2b9d36){const _0x71c01={};_0x71c01[_0x406d30(0x293)]=_0x406d30(0x264),_0x71c01[_0x406d30(0x238)]=!![],_0x71c01[_0x4f0d00(0x22c)]=_0x2b9d36['message'],_0x1aacb6[_0x406d30(_0x3e2882._0x416f1e)](_0x71c01);}const _0x459a9f={};return _0x459a9f[_0x4f0d00(0x238)]=_0x11c1ce,_0x459a9f[_0x4f0d00(_0x3e2882._0x5b4fdb)]=_0x1aacb6,_0x459a9f;}const _0xbadc93={};_0xbadc93[_0x8339c9(0x1f3)+_0x358d20(0x278)]=runReviewChecks,_0xbadc93['checkApiCo'+_0x8339c9(0x200)]=checkApiContract,_0xbadc93[_0x358d20(0x232)+'Handling']=checkErrorHandling,_0xbadc93[_0x8339c9(0x211)+'odedData']=checkHardcodedData,_0xbadc93[_0x358d20(0x220)+_0x8339c9(0x282)+'ss']=checkRouteCompleteness,module[_0x8339c9(0x213)]=_0xbadc93;
|
package/framework/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,50 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [2.8.0] - 2026-05-23
|
|
8
|
+
|
|
9
|
+
### 新增
|
|
10
|
+
|
|
11
|
+
**独立 Reviewer + 主动交互测试**
|
|
12
|
+
|
|
13
|
+
两个核心特性,进一步消除"AI 自评虚高"问题:
|
|
14
|
+
|
|
15
|
+
**独立 Reviewer(review-checks.js)— 代码级 spec-to-code 验证**
|
|
16
|
+
在 `gate review` 时自动执行,替代"AI 审 AI"的自评模式:
|
|
17
|
+
- **API 契约校验**:spec 中定义的 API 端点 → 检查前端是否调用 + 后端是否实现 → 不匹配即 fail
|
|
18
|
+
- **错误处理审计**:扫描前端所有 API 调用点 → 无 catch/空 catch → 超 50% 即 fail
|
|
19
|
+
- **硬编码数据检测**:检测前端组件中疑似 mock 数据(应从 API 获取的硬编码数组)
|
|
20
|
+
- **路由完整性**:spec 声明的路由 → router 文件中是否注册
|
|
21
|
+
|
|
22
|
+
**主动交互测试 — 从"被动观测"到"主动操作"**
|
|
23
|
+
E2E 浏览器冒烟中新增主动交互:
|
|
24
|
+
- **搜索测试**:自动定位搜索框 → 输入文字 + Enter → 检查是否触发 API 请求
|
|
25
|
+
- **分页测试**:自动定位分页组件 → 点击第 2 页 → 检查 API 请求是否带 page 参数
|
|
26
|
+
- **新增按钮检测**:检测"新增/创建"按钮是否存在、是否被禁用
|
|
27
|
+
- **表格操作检测**:检测表格行中"编辑/删除/查看"按钮是否存在
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## [2.7.0] - 2026-05-23
|
|
32
|
+
|
|
33
|
+
### 新增
|
|
34
|
+
|
|
35
|
+
**Smoke 增强:前后端联调质量校验(从"页面能打开"到"联调跑通")**
|
|
36
|
+
|
|
37
|
+
解决核心痛点:AI 自测评分 70+,实际联调 50 都不到。
|
|
38
|
+
原因是旧版 smoke 只检查"页面能打开",完全不校验 API 交互质量。
|
|
39
|
+
|
|
40
|
+
v2.7.0 在 E2E 浏览器冒烟中新增 6 项联调检查:
|
|
41
|
+
|
|
42
|
+
- **API 4xx 检测**:前端调了后端不存在的接口(404)、参数格式错误(422)→ gate 失败
|
|
43
|
+
- **API 返回非 JSON 检测**:后端返回 HTML 错误页而不是 JSON 数据 → gate 失败
|
|
44
|
+
- **空数据渲染检测**:API 有响应但页面显示空表格/空状态组件 → 字段映射问题
|
|
45
|
+
- **控制台 API 错误升级**:`Failed to fetch`、`Network Error`、`Cannot read property of undefined` 等从 warning 升级为 failure
|
|
46
|
+
- **API 交互摘要**:gate 输出中显示完整的 API 请求统计(正常/4xx/5xx/非JSON/连接失败)
|
|
47
|
+
- **未对接接口检测**:页面无 API 请求且显示空状态 → 可能用了 mock 数据
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
7
51
|
## [2.6.0] - 2026-05-23
|
|
8
52
|
|
|
9
53
|
### 变更
|
package/framework/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.8.0
|
package/package.json
CHANGED