@alenfitz/spec-copilot 3.1.0 → 3.2.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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @alenfitz/spec-copilot v3.1.0
2
+ * @alenfitz/spec-copilot v3.2.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 _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;
11
+ const _0x24948e=_0x33d4,_0x130b14=_0x33d4;(function(_0x206ee6,_0xa37222){const _0x2ff3cb={_0xb6cf10:0xe9,_0x4795dc:0xee,_0x5726d4:0xfa,_0x3f1861:0x158,_0x4f78d6:0xef,_0x26df0a:0xc3,_0x558701:0x178},_0x5ea34d=_0x33d4,_0x479bd1=_0x33d4,_0x4d134a=_0x206ee6();while(!![]){try{const _0x56757b=-parseInt(_0x5ea34d(0x127))/(0xff2*0x2+-0x860+-0x1cf*0xd)*(-parseInt(_0x479bd1(0x16b))/(-0x2*0xdd9+0x1*0x17d7+0x3dd*0x1))+parseInt(_0x479bd1(_0x2ff3cb._0xb6cf10))/(-0x168a+0xe03*0x2+0x1*-0x579)*(parseInt(_0x5ea34d(_0x2ff3cb._0x4795dc))/(0x4d8+0x4*-0x301+0x730))+parseInt(_0x5ea34d(_0x2ff3cb._0x5726d4))/(0x4*-0x4ce+0xb*0x2c7+-0xb50)*(parseInt(_0x5ea34d(_0x2ff3cb._0x3f1861))/(-0x1880+0x116e+-0x38c*-0x2))+-parseInt(_0x479bd1(_0x2ff3cb._0x4f78d6))/(0x6d*0x49+0x49*-0x47+-0xacf)*(parseInt(_0x479bd1(0x9c))/(-0x619+0x14*-0x19d+0x2665*0x1))+-parseInt(_0x479bd1(0x196))/(0xad*-0x25+0x1f*0xa9+0x493*0x1)*(parseInt(_0x479bd1(_0x2ff3cb._0x26df0a))/(0x1e61+-0x1766+-0x1*0x6f1))+parseInt(_0x479bd1(0x192))/(0x72a+-0xf0b+-0x27*-0x34)*(-parseInt(_0x5ea34d(0x11c))/(0xee6+0xf42+-0x1e1c))+parseInt(_0x479bd1(0xdc))/(0x1*-0x2059+0x4c*0x63+0x302)*(parseInt(_0x479bd1(_0x2ff3cb._0x558701))/(-0x1dfa+-0x2ef*0x6+0x2fa2));if(_0x56757b===_0xa37222)break;else _0x4d134a['push'](_0x4d134a['shift']());}catch(_0x3cac6c){_0x4d134a['push'](_0x4d134a['shift']());}}}(_0x20ab,0x7282c*0x1+0x7952*0x8+-0x32f7*0x1b));const _0x5734a9=(function(){let _0x4c1c53=!![];return function(_0x35398f,_0x3507ff){const _0x4892c5=_0x4c1c53?function(){if(_0x3507ff){const _0x24bb55=_0x3507ff['apply'](_0x35398f,arguments);return _0x3507ff=null,_0x24bb55;}}:function(){};return _0x4c1c53=![],_0x4892c5;};}()),_0x48c6fb=_0x5734a9(this,function(){const _0x1c50c={_0x6e369:0x163,_0x1bee48:0x124,_0x4ed7bf:0x10a,_0x31906a:0x163},_0x51b1af=_0x33d4,_0x59b9f9=_0x33d4,_0xa1c98e={};_0xa1c98e['PBoen']='(((.+)+)+)'+'+$';const _0x2954e0=_0xa1c98e;return _0x48c6fb[_0x51b1af(0x10a)]()[_0x59b9f9(_0x1c50c._0x6e369)](_0x2954e0[_0x51b1af(_0x1c50c._0x1bee48)])[_0x51b1af(_0x1c50c._0x4ed7bf)]()['constructo'+'r'](_0x48c6fb)[_0x51b1af(_0x1c50c._0x31906a)](_0x51b1af(0x171)+'+$');});_0x48c6fb();const fs=require('fs'),path=require(_0x24948e(0x1a6)),{execSync}=require(_0x24948e(0xd4)+_0x24948e(0x183));function isGitRepo(_0x3cec5c){const _0x25e212={_0x1e09e4:0x143,_0x3fc57a:0x95},_0x5befe1=_0x130b14,_0x4db45c=_0x130b14,_0x4784fd={'BXmLF':function(_0x5b47c4,_0x31fcc8,_0x269a31){return _0x5b47c4(_0x31fcc8,_0x269a31);}};try{const _0x4d63c3={};return _0x4d63c3[_0x5befe1(0x195)]=_0x3cec5c,_0x4d63c3[_0x5befe1(0xec)]=_0x4db45c(0x15e),_0x4784fd[_0x4db45c(0xe4)](execSync,'git\x20rev-pa'+_0x5befe1(_0x25e212._0x1e09e4)+_0x4db45c(0x130)+_0x4db45c(_0x25e212._0x3fc57a),_0x4d63c3),!![];}catch{return![];}}function gitGrep(_0x235ea9,_0x4e6f5e){const _0x7a786f={_0x565fe3:0x1a1,_0x4a190b:0x121,_0x13451b:0x169,_0x5b65d0:0x12b},_0x55ec5e=_0x24948e,_0x103a7d=_0x24948e,_0x2760bf={'KBvhE':function(_0x506ac9,_0x583750,_0x5dd1a6){return _0x506ac9(_0x583750,_0x5dd1a6);},'exLyx':_0x55ec5e(_0x7a786f._0x565fe3),'lhueM':'pipe'};try{if(_0x55ec5e(_0x7a786f._0x4a190b)!==_0x55ec5e(0xbd)){const _0x5a6477=_0x2760bf[_0x55ec5e(0x185)](execSync,'git\x20grep\x20-'+'l\x20--\x20\x22'+_0x4e6f5e+'\x22',{'cwd':_0x235ea9,'encoding':_0x2760bf['exLyx'],'stdio':[_0x2760bf['lhueM'],_0x2760bf[_0x55ec5e(0x11d)],_0x55ec5e(0x15e)]})['trim']();return _0x5a6477?_0x5a6477[_0x103a7d(_0x7a786f._0x13451b)]('\x0a')[_0x55ec5e(_0x7a786f._0x5b65d0)](Boolean):[];}else{const _0x59cfa6=_0x349942(_0x5426ce),_0x31d3a6={'name':_0x103a7d(0xe5),..._0x59cfa6};_0x5cb4b0['push'](_0x31d3a6);if(!_0x59cfa6[_0x103a7d(0xac)])_0x5cb883=![];}}catch{return[];}}function findFiles(_0x1eb476,_0x3b3adc,_0x31e3d8=0x2da*0x5+0x15c2+-0x23ff){const _0x4b82e3={_0x2599ca:0x182,_0x292786:0x151},_0x5da3d5={_0x4696e9:0x17c,_0x297d34:0xac,_0x5e8335:0xb3,_0x3890ed:0xb1,_0x571bbf:0x128,_0x2dd488:0x115,_0x2cc39f:0xc8,_0x192b0f:0x160,_0x2b12cd:0x137,_0x34f5f4:0x17c},_0x412311=_0x130b14,_0x1b873b=_0x130b14,_0x144d70={'vjqZf':_0x412311(0x10e),'cspFx':function(_0x5bda98,_0x5c0b16){return _0x5bda98!==_0x5c0b16;},'VdtvK':_0x1b873b(_0x4b82e3._0x2599ca),'ZMtwL':function(_0x31be68,_0xbbf1fc){return _0x31be68>_0xbbf1fc;},'RDSro':_0x412311(0xca),'PQrSq':_0x412311(_0x4b82e3._0x292786)+'es','qTXAf':function(_0x2ba70a,_0x5f346d){return _0x2ba70a===_0x5f346d;},'XbWqU':function(_0x41b352,_0x1f86d8,_0x51e752){return _0x41b352(_0x1f86d8,_0x51e752);}},_0x58bae2=[];function _0x44309f(_0x146cc7,_0x2c3429){const _0x5697d0=_0x412311,_0x5b047b=_0x412311;if(_0x144d70[_0x5697d0(0xfc)](_0x5b047b(0x182),_0x144d70['VdtvK'])){const _0x347500=_0x174670(_0x184acb),_0x350849={'name':'硬编码业务身份检测',..._0x347500};_0x42e0ad[_0x5697d0(_0x5da3d5._0x4696e9)](_0x350849);if(!_0x347500[_0x5b047b(_0x5da3d5._0x297d34)])_0x31ac97=![];}else{if(_0x144d70[_0x5697d0(_0x5da3d5._0x5e8335)](_0x2c3429,_0x31e3d8)||!fs[_0x5b047b(0x123)](_0x146cc7))return;try{const _0x362a3a={};_0x362a3a[_0x5697d0(_0x5da3d5._0x3890ed)+_0x5697d0(0x13f)]=!![];const _0x11606a=fs[_0x5697d0(0x18a)+'c'](_0x146cc7,_0x362a3a);for(const _0x5b8044 of _0x11606a){if(_0x144d70[_0x5b047b(0xfc)](_0x5b047b(_0x5da3d5._0x571bbf),_0x144d70[_0x5b047b(0x126)])){if(_0x5b8044[_0x5b047b(_0x5da3d5._0x2dd488)][_0x5b047b(0x17d)]('.')||_0x5b8044[_0x5697d0(0x115)]===_0x144d70['PQrSq']||_0x144d70[_0x5697d0(_0x5da3d5._0x2cc39f)](_0x5b8044['name'],'dist')||_0x5b8044[_0x5697d0(0x115)]===_0x5697d0(0x1a4)||_0x144d70[_0x5b047b(_0x5da3d5._0x2cc39f)](_0x5b8044[_0x5697d0(0x115)],_0x5697d0(0x16d)))continue;const _0x266298=path[_0x5b047b(_0x5da3d5._0x192b0f)](_0x146cc7,_0x5b8044[_0x5697d0(0x115)]);if(_0x5b8044[_0x5697d0(_0x5da3d5._0x2b12cd)+'y']())_0x144d70[_0x5697d0(0xb4)](_0x44309f,_0x266298,_0x2c3429+(0x453*-0x2+0xbf0+0x1*-0x349));else{if(_0x3b3adc[_0x5b047b(0x107)](_0x13e021=>_0x5b8044['name'][_0x5b047b(0x17f)](_0x13e021)))_0x58bae2[_0x5b047b(0x17c)](_0x266298);}}else{const _0x490a43={};_0x490a43[_0x5697d0(0x115)]=_0x144d70['vjqZf'],_0x490a43[_0x5697d0(0xac)]=!![],_0x490a43[_0x5b047b(0xb5)]=_0x2fd80a['message'],_0x38bfa7[_0x5b047b(_0x5da3d5._0x34f5f4)](_0x490a43);}}}catch{}}}return _0x44309f(_0x1eb476,-0xd69+0x211f+-0x1d*0xae),_0x58bae2;}function readSafe(_0x1187ee){const _0x593ac9={_0x2aee7a:0x116,_0x1a86f4:0x115,_0x263b28:0xb5,_0x48efba:0x17c},_0x2aa6cf=_0x130b14,_0x2bd7f3=_0x130b14,_0xf004fd={};_0xf004fd[_0x2aa6cf(0xc4)]='路由完整性',_0xf004fd['QxzLn']=function(_0x2d0f80,_0x479941){return _0x2d0f80!==_0x479941;},_0xf004fd[_0x2aa6cf(0xd7)]=function(_0x5c1e0a,_0x29735f){return _0x5c1e0a===_0x29735f;};const _0x200fc4=_0xf004fd;try{if(_0x200fc4[_0x2bd7f3(_0x593ac9._0x2aee7a)]('yjwhL',_0x2aa6cf(0xdf))){const _0x5773b8={};_0x5773b8[_0x2aa6cf(_0x593ac9._0x1a86f4)]=_0x200fc4[_0x2aa6cf(0xc4)],_0x5773b8[_0x2bd7f3(0xac)]=!![],_0x5773b8[_0x2aa6cf(_0x593ac9._0x263b28)]=_0x524765['message'],_0x1f6606[_0x2aa6cf(_0x593ac9._0x48efba)](_0x5773b8);}else return fs[_0x2aa6cf(0x179)+'nc'](_0x1187ee,'utf-8');}catch{return _0x200fc4[_0x2aa6cf(0xd7)](_0x2aa6cf(0x110),'zdbnv')?'':/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/['test'](_0x188733);}}function uniq(_0x2e9bb0){const _0x25fd32=_0x130b14;return[...new Set(_0x2e9bb0[_0x25fd32(0x12b)](Boolean))];}function _0x33d4(_0x1898e4,_0x20cf2e){_0x1898e4=_0x1898e4-(0x2f*0x1b+-0x3*0xcfe+-0x2299*-0x1);const _0xe676=_0x20ab();let _0x5dcf95=_0xe676[_0x1898e4];if(_0x33d4['jITPVu']===undefined){var _0x4776b9=function(_0x2a1771){const _0x534a70='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5deac4='',_0x1ea8ef='',_0x3521d8=_0x5deac4+_0x4776b9,_0x42b103=(''+function(){return 0x1f0c+-0x1c0e+-0x2fe;})['indexOf']('\x0a')!==-(0x1e5d*-0x1+-0xbf7+0x1*0x2a55);for(let _0x10606b=-0x2*-0xa25+0x1de7+-0x3231,_0x3b8d74,_0x382bcd,_0x5d7291=-0x3dd*-0xa+0x76*-0x2b+-0x12d0;_0x382bcd=_0x2a1771['charAt'](_0x5d7291++);~_0x382bcd&&(_0x3b8d74=_0x10606b%(0xdf9*0x1+0x26a7+-0xd27*0x4)?_0x3b8d74*(-0x2b*-0x1+0x2226+0xb5b*-0x3)+_0x382bcd:_0x382bcd,_0x10606b++%(-0xb7d+0x783*-0x5+0x3110))?_0x5deac4+=_0x42b103||_0x3521d8['charCodeAt'](_0x5d7291+(-0xa64+0x1e1+0x88d))-(0xe7a*-0x2+0xce7+-0x55d*-0x3)!==-0x25e0+0x239*0x1+0x23a7?String['fromCharCode'](0x76a*0x2+0x1147+-0x1f1c&_0x3b8d74>>(-(0x1248+0x1d11+-0x2f57)*_0x10606b&0x495+0x1f*-0x94+0xd5d)):_0x10606b:0xe1+-0x787*-0x2+0x1*-0xfef){_0x382bcd=_0x534a70['indexOf'](_0x382bcd);}for(let _0x41fc40=-0xc*-0x123+-0xcad+0x13*-0xd,_0x580cea=_0x5deac4['length'];_0x41fc40<_0x580cea;_0x41fc40++){_0x1ea8ef+='%'+('00'+_0x5deac4['charCodeAt'](_0x41fc40)['toString'](0x6d*0x27+-0x1d67+0xcdc))['slice'](-(-0x1553+-0x1*-0x25c4+-0x106f));}return decodeURIComponent(_0x1ea8ef);};_0x33d4['IgknzC']=_0x4776b9,_0x33d4['POVaAS']={},_0x33d4['jITPVu']=!![];}const _0x2bd964=_0xe676[-0x85*-0x13+0x10*0x86+0xad*-0x1b],_0x537c24=_0x1898e4+_0x2bd964,_0x2c4a62=_0x33d4['POVaAS'][_0x537c24];if(!_0x2c4a62){const _0x4e244e=function(_0x188733){this['iXQtTC']=_0x188733,this['sGcFNz']=[-0x29e*0x4+-0x20*0x11e+-0x2e39*-0x1,0x2b*-0x6d+0x5*0x2ff+0x354,0x1073+0x38b+-0x3*0x6aa],this['amaXDz']=function(){return'newState';},this['kueBNb']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['QJHsaU']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x4e244e['prototype']['FTtpLE']=function(){const _0x51b92e=new RegExp(this['kueBNb']+this['QJHsaU']),_0x5293d8=_0x51b92e['test'](this['amaXDz']['toString']())?--this['sGcFNz'][-0x1*0x3d1+-0x21b7+0x2589]:--this['sGcFNz'][0x190c+0x1c5a+-0x3566*0x1];return this['dhSVPW'](_0x5293d8);},_0x4e244e['prototype']['dhSVPW']=function(_0xf3af2){if(!Boolean(~_0xf3af2))return _0xf3af2;return this['fbdKjl'](this['iXQtTC']);},_0x4e244e['prototype']['fbdKjl']=function(_0x2b7500){for(let _0xbdfd5a=-0xed*-0x21+-0x1*-0x3c1+-0x1127*0x2,_0x328e17=this['sGcFNz']['length'];_0xbdfd5a<_0x328e17;_0xbdfd5a++){this['sGcFNz']['push'](Math['round'](Math['random']())),_0x328e17=this['sGcFNz']['length'];}return _0x2b7500(this['sGcFNz'][-0x4*-0x616+-0xc6b+-0xbed]);},(''+function(){return-0x169*0x8+0x34a+0x7fe;})['indexOf']('\x0a')===-(0x251*-0xd+-0xb11+0x292f)&&new _0x4e244e(_0x33d4)['FTtpLE'](),_0x5dcf95=_0x33d4['IgknzC'](_0x5dcf95),_0x33d4['POVaAS'][_0x537c24]=_0x5dcf95;}else _0x5dcf95=_0x2c4a62;return _0x5dcf95;}function extractSpecApis(_0x28dfeb){const _0x3163fe={_0x190c56:0x9a,_0x1ad6a:0xd1,_0x53d5a3:0x194,_0xbd7e85:0x184,_0x25ddee:0xd1,_0x4b8e7a:0xa1,_0x108893:0x16e,_0x231932:0x16a,_0x25ce58:0x15c,_0x11870f:0x170,_0x3caf3c:0x17c},_0x308151=_0x130b14,_0x3315ad=_0x130b14,_0x5cc7b1={'KUZui':function(_0x36603e,_0x4c7741){return _0x36603e>_0x4c7741;},'EeskF':function(_0x3a462a,_0x29093b){return _0x3a462a>_0x29093b;},'IWERS':function(_0x33124f,_0x314c43){return _0x33124f(_0x314c43);},'oxsSq':_0x308151(_0x3163fe._0x190c56),'MuMRi':function(_0x1134d8,_0x59c7f9){return _0x1134d8!==_0x59c7f9;},'qUOxT':_0x3315ad(_0x3163fe._0x1ad6a),'dyOut':_0x3315ad(_0x3163fe._0x53d5a3)},_0x56a5ad=[],_0x2bd04f=new Set(),_0x3b2646=/(GET|POST|PUT|DELETE|PATCH)\s+(\/api\/[^\s|,))\]]+)/g;let _0x49460b;while(_0x5cc7b1[_0x308151(_0x3163fe._0xbd7e85)](_0x49460b=_0x3b2646['exec'](_0x28dfeb),null)){if(_0x5cc7b1['qUOxT']!==_0x308151(_0x3163fe._0x25ddee)){const _0x42ed47=_0xa052ec(_0x4dfc30),_0x2b9988={'name':_0x3315ad(0xcb),..._0x42ed47};_0x511cab['push'](_0x2b9988);if(_0x5cc7b1[_0x308151(0x12a)](_0x42ed47[_0x3315ad(0x16f)+'lls'],-0x2*0x239+0x5cc+-0x15a*0x1)){const _0x2b82c7=_0x42ed47[_0x3315ad(0x118)]/_0x42ed47['totalApiCa'+_0x308151(_0x3163fe._0x4b8e7a)];if(_0x5cc7b1[_0x308151(_0x3163fe._0x108893)](_0x2b82c7,0x16c*0xb+-0xdb5+0x63*-0x5+0.5))_0x406761=![];}}else{const _0x354696=_0x49460b[0x2b*0xd5+-0x33f*0x6+0x7*-0x254]+'\x20'+_0x49460b[-0x2*0x17e+0x3*-0x59c+0x13d2*0x1];if(!_0x2bd04f[_0x308151(_0x3163fe._0x231932)](_0x354696)){if(_0x5cc7b1[_0x308151(_0x3163fe._0x25ce58)]===_0x308151(_0x3163fe._0x11870f)){const _0x2ee5e9=_0x5cc7b1[_0x308151(0x18f)](_0x1e9b13,_0x3e42a4),_0x2aa113={'name':_0x5cc7b1['oxsSq'],..._0x2ee5e9};_0x5032af[_0x308151(0x17c)](_0x2aa113);}else{_0x2bd04f[_0x3315ad(0x13b)](_0x354696);const _0xcb34aa={};_0xcb34aa[_0x308151(0xab)]=_0x49460b[-0x19*0xcc+0x1f*-0x11f+0x2*0x1b57],_0xcb34aa[_0x308151(0x1a6)]=_0x49460b[-0x5*0x119+-0x1b1c+0x209b],_0x56a5ad[_0x3315ad(_0x3163fe._0x3caf3c)](_0xcb34aa);}}}}return _0x56a5ad;}function extractSpecRoutes(_0x37f277){const _0x52484d={_0x45064e:0x142,_0x15a18f:0xf6,_0xe721ba:0x177,_0x3e944d:0x169,_0xa5f88e:0x99,_0x25a05b:0x15a,_0x206e2f:0xe0,_0x25f7d7:0x17c,_0x192179:0x16a,_0x47dd99:0x138,_0x2f7bf7:0x181,_0x51d49e:0x13b,_0x1cbd24:0x1a6,_0x545c51:0x13b},_0xdda6ba=_0x130b14,_0x173aa6=_0x130b14,_0x2528c7={};_0x2528c7[_0xdda6ba(_0x52484d._0x45064e)]=function(_0x5f085f,_0x2a98d9){return _0x5f085f===_0x2a98d9;},_0x2528c7[_0x173aa6(0xf6)]='eeduG',_0x2528c7['RjtNS']=function(_0x1d807d,_0x52dd93){return _0x1d807d!==_0x52dd93;};const _0x4abebf=_0x2528c7,_0x4225ff=[],_0x1e12be=new Set(),_0x253bb1=/(?:路由|route|path|页面路径)[::]\s*([\/\w\-:]+)/gi;let _0x2ae72e;while((_0x2ae72e=_0x253bb1['exec'](_0x37f277))!==null){if(_0x4abebf[_0xdda6ba(_0x52484d._0x45064e)](_0x4abebf[_0x173aa6(_0x52484d._0x15a18f)],_0xdda6ba(0xea))){const _0x230c1a=_0xd4e2f6[_0x173aa6(_0x52484d._0xe721ba)](-0x1ea8+-0x16*-0x19f+-0x2*0x281,_0x407810[_0xdda6ba(0x98)])[_0x173aa6(_0x52484d._0x3e944d)]('\x0a')[_0xdda6ba(0x140)];if(!_0x3c5336['some'](_0x235478=>_0x235478['file']===_0x5a2990&&_0x58b386[_0xdda6ba(0x153)](_0x235478[_0x173aa6(0x189)]-_0x230c1a)<-0x4c2*-0x7+-0xbc*-0x1c+-0x1*0x35db)){const _0x2794c9={};_0x2794c9[_0x173aa6(_0x52484d._0xa5f88e)]=_0x2ba157,_0x2794c9[_0x173aa6(0x189)]=_0x230c1a,_0x2794c9[_0x173aa6(0x17e)]=_0xdda6ba(0x103)+_0xdda6ba(_0x52484d._0x25a05b),_0x2794c9[_0xdda6ba(0xe6)]='tableData/'+_0x173aa6(0xd6)+_0x173aa6(_0x52484d._0x206e2f)+'组('+_0x1ee966+_0xdda6ba(0xfb),_0x447746[_0xdda6ba(_0x52484d._0x25f7d7)](_0x2794c9);}}else{if(!_0x1e12be[_0xdda6ba(_0x52484d._0x192179)](_0x2ae72e[0x1855*0x1+0x58f*-0x1+-0x3c1*0x5])){if(_0x4abebf[_0x173aa6(_0x52484d._0x47dd99)](_0xdda6ba(_0x52484d._0x2f7bf7),'afuqm')){const _0x24a3cd=_0x1531cc[-0x1d7b*0x1+-0x14cc+0x3248]+'\x20'+_0x35475e[-0x1*-0x282+0x25d0+-0x2850];if(!_0x19cfed['has'](_0x24a3cd)){_0x30c34b[_0xdda6ba(_0x52484d._0x51d49e)](_0x24a3cd);const _0x127253={};_0x127253[_0xdda6ba(0xab)]=_0x1655a9[-0x4f*-0x4b+0x13*-0x114+-0x2a8],_0x127253[_0xdda6ba(_0x52484d._0x1cbd24)]=_0x429a97[0x1a51*-0x1+0x1104+-0x1*-0x94f],_0x42103e[_0xdda6ba(_0x52484d._0x25f7d7)](_0x127253);}}else _0x1e12be['add'](_0x2ae72e[0x1ae*-0x1+-0xeb1+-0x8*-0x20c]),_0x4225ff['push'](_0x2ae72e[0x1c2e+0x1*0x199f+-0x35cc]);}}}const _0x173cf0=/\|\s*(\/[a-zA-Z][\w\-\/:]*)\s*\|/g;while(_0x4abebf[_0xdda6ba(_0x52484d._0x47dd99)](_0x2ae72e=_0x173cf0[_0x173aa6(0x14e)](_0x37f277),null)){!_0x1e12be[_0x173aa6(_0x52484d._0x192179)](_0x2ae72e[-0x3*0x5cb+0xe3*0xd+0x1*0x5db])&&(_0x1e12be[_0xdda6ba(_0x52484d._0x545c51)](_0x2ae72e[-0x1fb*0x2+0x3*0x9cc+-0x196d]),_0x4225ff[_0x173aa6(0x17c)](_0x2ae72e[0x1843+0x24b6+-0x3cf8]));}return _0x4225ff;}function extractFrontApiCalls(_0x40c5d4){const _0x4cef88={_0x45cdd9:0x147,_0x357dc2:0x13e,_0x28cee6:0x157,_0x371e1a:0x12b,_0x1f06b2:0x10c,_0x4d8e56:0x14e,_0x2d6b8c:0xa2,_0x453286:0x15f,_0x350fb8:0x15f,_0x439521:0x169,_0x2506f9:0x132,_0x5ef796:0x17c,_0x3ad2b4:0xe7},_0x42888d=_0x130b14,_0x5b4484=_0x130b14,_0x1ccd65={'fKXBI':_0x42888d(0x149),'YoqoO':'.ts','eonPO':_0x42888d(_0x4cef88._0x45cdd9),'dJrXu':function(_0x5a1857,_0x55bd18){return _0x5a1857(_0x55bd18);},'ocHPA':function(_0x51116b,_0x49be73){return _0x51116b!==_0x49be73;},'ZhsEv':_0x5b4484(_0x4cef88._0x357dc2),'zobzK':_0x42888d(0x187)},_0x245f20=[_0x42888d(0x191)+'rc',_0x1ccd65[_0x42888d(0x106)],_0x5b4484(_0x4cef88._0x28cee6)]['map'](_0x21714e=>path['join'](_0x40c5d4,_0x21714e))[_0x42888d(_0x4cef88._0x371e1a)](fs['existsSync']),_0x3d9ab6=[];for(const _0x54f211 of _0x245f20){const _0x2845ad=findFiles(_0x54f211,[_0x1ccd65['YoqoO'],_0x1ccd65[_0x5b4484(0x14c)]]);for(const _0x2bd23d of _0x2845ad){const _0x10a5d3=path['relative'](_0x40c5d4,_0x2bd23d);if(!/\/api\//[_0x5b4484(_0x4cef88._0x1f06b2)](_0x10a5d3[_0x5b4484(0x174)](/\\/g,'/')))continue;const _0x53ec43=_0x1ccd65['dJrXu'](readSafe,_0x2bd23d);if(!_0x53ec43)continue;const _0x42c937=/export function\s+([A-Za-z0-9_$]+)\s*\(([^)]*)\)\s*\{([\s\S]*?)\n\}/g;let _0x3a1bc2;while(_0x1ccd65['ocHPA'](_0x3a1bc2=_0x42c937[_0x42888d(_0x4cef88._0x4d8e56)](_0x53ec43),null)){if(_0x1ccd65['ZhsEv']!==_0x1ccd65[_0x5b4484(_0x4cef88._0x2d6b8c)]){const _0x2d3aee=_0x3a1bc2[-0xc48+0x2*-0x335+-0x1*-0x12b3],_0x407740=_0x3a1bc2[-0x1e*0xab+-0x3*0xe3+0x16b5]||'',_0x3c84f8=_0x3a1bc2[0x1b60+-0xfc0+-0x1*0xb9d]||'',_0x20ec3e=_0x3c84f8['match'](/\.(get|post|put|delete|patch)\s*<[^>]*>?\s*\(\s*['"`]([^'"`]+)['"`]/i)||_0x3c84f8[_0x42888d(_0x4cef88._0x453286)](/\.(get|post|put|delete|patch)\s*\(\s*['"`]([^'"`]+)['"`]/i);if(!_0x20ec3e)continue;const _0x3d62e6=_0x407740[_0x5b4484(_0x4cef88._0x350fb8)](/\{([\s\S]*)\}/);let _0x368fd1=[];_0x3d62e6?_0x368fd1=_0x3d62e6[-0xe65+0x25*0x95+-0x1d*0x3f][_0x5b4484(_0x4cef88._0x439521)](',')[_0x42888d(_0x4cef88._0x2506f9)](_0x4457e4=>_0x4457e4[_0x5b4484(0x161)]()[_0x5b4484(0x174)](/\?.*$/,'')[_0x5b4484(0x174)](/:.*/,'')[_0x42888d(0x161)]())[_0x5b4484(0x12b)](Boolean):_0x368fd1=_0x407740[_0x42888d(0x169)](',')[_0x5b4484(0x132)](_0xe1b6bc=>_0xe1b6bc['trim']()[_0x42888d(0x174)](/\?.*$/,'')['replace'](/:.*/,'')[_0x5b4484(0x161)]())['filter'](Boolean),_0x3d9ab6[_0x5b4484(_0x4cef88._0x5ef796)]({'file':_0x10a5d3,'fnName':_0x2d3aee,'method':_0x20ec3e[0x22*0xeb+0xd5d+-0x475*0xa][_0x5b4484(_0x4cef88._0x3ad2b4)+'e'](),'path':_0x20ec3e[0x17b9+-0xdac+-0xa0b*0x1],'requestFields':uniq(_0x368fd1),'body':_0x3c84f8});}else return![];}}}return _0x3d9ab6;}function extractBackendApiContracts(_0x2d9c34){const _0x338fd6={_0x3da477:0x193,_0x14665f:0xb2,_0x3a64fc:0x132,_0x46e86d:0x12b,_0x83a253:0x168,_0x170991:0x14e,_0x37efab:0x172,_0x364787:0x131,_0x268426:0xe7,_0x52a005:0x141,_0x5d8fb9:0x177,_0x59206d:0x98,_0x280719:0x141,_0x5bc241:0x17c},_0xcf3b6e=_0x24948e,_0x1132bb=_0x24948e,_0x3ec71a={'debFo':_0xcf3b6e(0x18e)+'c/main','htRsA':function(_0x4e9c60,_0x10135c){return _0x4e9c60!==_0x10135c;},'KObxj':function(_0x121aee,_0x5a06df){return _0x121aee!==_0x5a06df;},'Liulo':_0xcf3b6e(_0x338fd6._0x3da477),'gUWbx':function(_0x9ce0a8,_0xc28128){return _0x9ce0a8(_0xc28128);}},_0x331106=[_0x3ec71a[_0xcf3b6e(0xad)],_0xcf3b6e(_0x338fd6._0x14665f)][_0x1132bb(_0x338fd6._0x3a64fc)](_0x44f977=>path[_0xcf3b6e(0x160)](_0x2d9c34,_0x44f977))['filter'](fs[_0xcf3b6e(0x123)]),_0x29eab3=[];for(const _0x1c9478 of _0x331106){const _0x285383=findFiles(_0x1c9478,['.java'])[_0xcf3b6e(_0x338fd6._0x46e86d)](_0x19eaad=>/Controller\.java$/[_0x1132bb(0x10c)](_0x19eaad));for(const _0x709ca1 of _0x285383){const _0x1a56ff=path[_0x1132bb(_0x338fd6._0x83a253)](_0x2d9c34,_0x709ca1),_0x41cca5=readSafe(_0x709ca1);if(!_0x41cca5)continue;const _0x25203d=_0x41cca5[_0xcf3b6e(0x15f)](/@RequestMapping\(\s*["']([^"']+)["']\s*\)/),_0x2c39ac=_0x25203d?_0x25203d[-0x2c*0x15+0x1fdf*0x1+-0x1c42]:'',_0x29aa14=/@(GetMapping|PostMapping|PutMapping|DeleteMapping|PatchMapping)\(\s*["']([^"']+)["']\s*\)[\s\S]*?public\s+[^{]+\s+([A-Za-z0-9_$]+)\s*\(\s*([\s\S]*?)\s*\)\s*\{/g;let _0x30453d;while(_0x3ec71a['htRsA'](_0x30453d=_0x29aa14[_0xcf3b6e(_0x338fd6._0x170991)](_0x41cca5),null)){if(_0x3ec71a['KObxj'](_0xcf3b6e(0x1a3),_0x3ec71a[_0xcf3b6e(_0x338fd6._0x37efab)])){const _0x3821fa=_0x30453d[0x1142+-0x17ca+0x689][_0xcf3b6e(0x174)](_0x1132bb(_0x338fd6._0x364787),'')[_0xcf3b6e(_0x338fd6._0x268426)+'e'](),_0x4152be=_0x30453d[0x132c+-0x1b1f+0x7f5],_0x288833=_0x30453d[-0x89f*0x1+-0x61d+0x5*0x2f3],_0x2b2681=_0x30453d[-0x12f8*-0x1+0x3*0xb7b+0x3565*-0x1]||'',_0x26c819=uniq([..._0x2b2681[_0xcf3b6e(_0x338fd6._0x52a005)](/(?:@PathVariable|@RequestParam(?:\(\s*["']([^"']+)["'])?|@RequestBody)\s*(?:@Valid\s*)?(?:Map<String,\s*Object>|[A-Za-z0-9_<>, ?]+)\s+([A-Za-z0-9_$]+)/g)][_0x1132bb(_0x338fd6._0x3a64fc)](_0x4489ae=>_0x4489ae[-0x19cc+-0x266c+0x4039]||_0x4489ae[0x280+-0x9cd*-0x3+0x17*-0x163])),_0x3f1b88=_0x3ec71a[_0xcf3b6e(0x12c)](uniq,[..._0x41cca5[_0xcf3b6e(_0x338fd6._0x5d8fb9)](_0x30453d[_0x1132bb(_0x338fd6._0x59206d)],Math[_0xcf3b6e(0x173)](_0x41cca5['length'],_0x30453d[_0xcf3b6e(0x98)]+(0x9*0x321+0x1*0x19ab+-0x2ff8)))[_0xcf3b6e(_0x338fd6._0x280719)](/require\(body,\s*["']([^"']+)["']\)/g)]['map'](_0x4db4=>_0x4db4[0x14f9+-0x1922+0x52*0xd]));_0x29eab3[_0x1132bb(0x17c)]({'file':_0x1a56ff,'fnName':_0x288833,'method':_0x3821fa,'path':(''+_0x2c39ac+_0x4152be)[_0x1132bb(0x174)](/\/+/g,'/'),'requiredFields':_0x3f1b88[_0x1132bb(0x140)]>0x1*-0x9a4+-0x1763+-0x1*-0x2107?_0x3f1b88:_0x26c819,'rawParams':_0x26c819});}else _0x256d09[_0xcf3b6e(0x13b)](_0x201665[-0x169d+-0x278*-0x1+-0xa13*-0x2]),_0x4e42c3[_0x1132bb(_0x338fd6._0x5bc241)](_0x524ae4[-0x26*-0xda+0xfe4+-0x1015*0x3]);}}}return _0x29eab3;}function isSnakeCase(_0x12d80){const _0x357e40=_0x130b14;return/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/[_0x357e40(0x10c)](_0x12d80);}function normalizeApiPath(_0x3c499a){const _0x4a3250=_0x130b14,_0x3f67b7=_0x130b14;return _0x3c499a[_0x4a3250(0x174)](/\{[^}]+\}/g,'')[_0x3f67b7(0x174)](/:[a-zA-Z_][\w-]*/g,'')[_0x4a3250(0x174)](/\/+$/,'');}function checkApiContract(_0x158fa1,_0x2e876e){const _0x3e194b={_0x2f7ee6:0x109,_0x54dee0:0x149,_0x36d291:0x157,_0x3d11b7:0xb2,_0x1ab0a9:0xa4,_0x273fb8:0x9b,_0x22dc46:0x129,_0x33ffa0:0x15b,_0x47a461:0x140,_0x9d4433:0x165,_0x188d06:0x18e,_0x544a0a:0x9d,_0x36905b:0x17c,_0x2e9bd9:0x1a6,_0xdb57ca:0x160,_0x2a469d:0x10d,_0x138ac6:0x105,_0x2ce524:0x160,_0x586761:0x148,_0x118aa4:0x14d,_0x28559d:0x107,_0x187702:0x17c,_0x3dc7d4:0x104,_0x33c368:0x12b},_0x1bc5ef=_0x24948e,_0x2a775b=_0x24948e,_0x285a31={'PfNJo':'spec\x20中无\x20AP'+_0x1bc5ef(_0x3e194b._0x2f7ee6),'rcgZH':function(_0x530d33,_0x26ba55){return _0x530d33(_0x26ba55);},'wgfkn':_0x1bc5ef(_0x3e194b._0x54dee0),'gzXXM':_0x1bc5ef(_0x3e194b._0x36d291),'EZABm':_0x2a775b(_0x3e194b._0x3d11b7),'DbLlP':function(_0x29f170,_0xa9c84d,_0x1f5035){return _0x29f170(_0xa9c84d,_0x1f5035);},'aBoni':_0x1bc5ef(0xcc),'eyNIV':_0x1bc5ef(_0x3e194b._0x1ab0a9),'rbyuF':_0x1bc5ef(_0x3e194b._0x273fb8),'lrOHd':_0x1bc5ef(0x147),'VsWfM':_0x2a775b(_0x3e194b._0x22dc46),'RCUvf':_0x1bc5ef(0x18b),'vLZGL':function(_0x9760ee,_0x3b0eeb){return _0x9760ee&&_0x3b0eeb;},'vYLvl':_0x2a775b(0x11b),'IFKPI':function(_0x164ff9,_0x4172bb){return _0x164ff9===_0x4172bb;}},_0x6f0137=extractSpecApis(_0x2e876e),_0x31b749={};_0x31b749['pass']=!![],_0x31b749['results']=[],_0x31b749[_0x1bc5ef(_0x3e194b._0x33ffa0)]=_0x285a31['PfNJo'];if(_0x6f0137[_0x1bc5ef(_0x3e194b._0x47a461)]===0x1125+0x23b3+-0x34d8)return _0x31b749;const _0xdc95c=_0x285a31['rcgZH'](isGitRepo,_0x158fa1),_0x31dfbe=[_0x1bc5ef(0x191)+'rc',_0x285a31['wgfkn'],_0x285a31[_0x1bc5ef(_0x3e194b._0x9d4433)]][_0x2a775b(0x12b)](_0x2801ee=>fs['existsSync'](path[_0x1bc5ef(0x160)](_0x158fa1,_0x2801ee))),_0x57d39f=[_0x2a775b(_0x3e194b._0x188d06)+'c',_0x285a31[_0x2a775b(0x113)]][_0x1bc5ef(0x12b)](_0x5bf223=>fs[_0x2a775b(0x123)](path[_0x1bc5ef(0x160)](_0x158fa1,_0x5bf223))),_0xf6e4a3=[];for(const _0x28ac86 of _0x6f0137){if(_0x2a775b(_0x3e194b._0x544a0a)!==_0x2a775b(_0x3e194b._0x544a0a)){const _0x5e2d1b=[],_0x5788ab=new _0x1e7631(),_0x67235a=/(GET|POST|PUT|DELETE|PATCH)\s+(\/api\/[^\s|,))\]]+)/g;let _0x18895e;while((_0x18895e=_0x67235a[_0x1bc5ef(0x14e)](_0x3d8665))!==null){const _0x406abd=_0x18895e[0x334+0xe*0x2a1+0x7*-0x5b7]+'\x20'+_0x18895e[-0x2501+0x20e3+0xb0*0x6];if(!_0x5788ab['has'](_0x406abd)){_0x5788ab[_0x2a775b(0x13b)](_0x406abd);const _0x2fa7ca={};_0x2fa7ca['method']=_0x18895e[0x29*0x7f+-0x2476+0x1020],_0x2fa7ca[_0x2a775b(0x1a6)]=_0x18895e[-0x26fd+-0x1160+-0x385f*-0x1],_0x5e2d1b[_0x2a775b(_0x3e194b._0x36905b)](_0x2fa7ca);}}return _0x5e2d1b;}else{const _0x4f31d7=_0x28ac86[_0x2a775b(_0x3e194b._0x2e9bd9)][_0x2a775b(0x174)](/\{[^}]+\}/g,'')[_0x1bc5ef(0x174)](/\/+$/,''),_0x47b35e=_0x4f31d7[_0x2a775b(0x169)]('/')[_0x1bc5ef(0x177)](-0x2*-0x11f7+-0x23db+-0x13,0x220+0x2*0x278+-0x70c)[_0x2a775b(_0x3e194b._0xdb57ca)]('/');let _0x3ee723=![],_0x4ba973=![];if(_0xdc95c){const _0x791b43=gitGrep(_0x158fa1,_0x47b35e),_0x44386b=_0x791b43[_0x2a775b(0x12b)](_0x9523a9=>!_0x9523a9['startsWith']('spec_copil'+_0x1bc5ef(0x119))&&!_0x9523a9[_0x1bc5ef(0x17f)]('.md'));_0x3ee723=_0x44386b[_0x2a775b(0x107)](_0x3db770=>/\.(vue|tsx|jsx|ts|js)$/[_0x1bc5ef(0x10c)](_0x3db770)&&/(src|app|pages|views|components|api|services|store)\//['test'](_0x3db770)),_0x4ba973=_0x44386b[_0x1bc5ef(0x107)](_0x11f879=>/\.(java|kt|py|go|rb|cs|php)$/['test'](_0x11f879));}else{for(const _0x427581 of _0x31dfbe){const _0x3bed60=_0x285a31[_0x1bc5ef(0xdd)](findFiles,path[_0x2a775b(_0x3e194b._0xdb57ca)](_0x158fa1,_0x427581),[_0x285a31[_0x1bc5ef(0xa6)],_0x2a775b(_0x3e194b._0x2a469d),_0x285a31['eyNIV'],_0x285a31[_0x2a775b(_0x3e194b._0x138ac6)],_0x285a31['lrOHd']]);_0x3ee723=_0x3bed60['some'](_0x3379cc=>readSafe(_0x3379cc)['includes'](_0x47b35e));if(_0x3ee723)break;}for(const _0x492f5 of _0x57d39f){const _0x4b1259=findFiles(path[_0x1bc5ef(_0x3e194b._0x2ce524)](_0x158fa1,_0x492f5),[_0x2a775b(_0x3e194b._0x586761),_0x285a31['VsWfM'],_0x285a31[_0x2a775b(_0x3e194b._0x118aa4)],'.go']);_0x4ba973=_0x4b1259[_0x2a775b(_0x3e194b._0x28559d)](_0x462d43=>readSafe(_0x462d43)[_0x1bc5ef(0x13c)](_0x47b35e));if(_0x4ba973)break;}}_0xf6e4a3[_0x2a775b(_0x3e194b._0x187702)]({'method':_0x28ac86['method'],'path':_0x28ac86[_0x1bc5ef(_0x3e194b._0x2e9bd9)],'feFound':_0x3ee723,'beFound':_0x4ba973,'status':_0x285a31[_0x2a775b(0x12f)](_0x3ee723,_0x4ba973)?'ok':_0x3ee723?_0x2a775b(0x102):_0x4ba973?_0x285a31[_0x1bc5ef(_0x3e194b._0x3dc7d4)]:_0x1bc5ef(0xf7)+'ng'});}}const _0x12d019=_0xf6e4a3[_0x2a775b(_0x3e194b._0x33c368)](_0x49634b=>_0x49634b[_0x2a775b(0x12e)]!=='ok');return{'pass':_0x285a31['IFKPI'](_0x12d019[_0x2a775b(_0x3e194b._0x47a461)],0x11f2+-0x31d*0x1+-0xed5),'results':_0xf6e4a3,'total':_0x6f0137[_0x2a775b(0x140)],'matched':_0xf6e4a3[_0x2a775b(0x12b)](_0x423cbb=>_0x423cbb[_0x2a775b(0x12e)]==='ok')[_0x2a775b(_0x3e194b._0x47a461)],'feMissing':_0xf6e4a3[_0x2a775b(0x12b)](_0x181d50=>_0x181d50[_0x2a775b(0x12e)]===_0x1bc5ef(0x11b)),'beMissing':_0xf6e4a3['filter'](_0x1fbd81=>_0x1fbd81['status']===_0x2a775b(0x102)),'bothMissing':_0xf6e4a3[_0x2a775b(0x12b)](_0x468142=>_0x468142[_0x2a775b(0x12e)]==='both-missi'+'ng')};}function checkContractConsistency(_0x443b19){const _0x406daa={_0x545937:0x188,_0xa03a71:0x16c,_0x2470d6:0xd2,_0x49f4d8:0x19d,_0x1e5084:0x160,_0x26cbd9:0x123,_0xcf1d73:0xff,_0x5b0a89:0x167,_0x36d5c8:0x1a6,_0x304e7a:0x12b,_0x3c0e8e:0x15d,_0x43d38c:0x15d,_0xb14bfd:0xbe,_0xef5b54:0x17c,_0x138878:0x1a6,_0x39317a:0x139,_0x2024fc:0xd5,_0x274757:0xb9,_0x4b2a03:0xa5,_0x3724fc:0x1a7,_0xfe17b5:0x180},_0x4b4616=_0x130b14,_0x32902c=_0x130b14,_0x42a646={'tYbYo':_0x4b4616(0x19d)+_0x32902c(0xe2),'HgOaD':_0x4b4616(_0x406daa._0x545937),'htFEy':function(_0x1cf892,_0x4a26f3){return _0x1cf892+_0x4a26f3;},'DgBXs':function(_0x5bc19b,_0x560c13){return _0x5bc19b(_0x560c13);},'lxDOU':function(_0x5aeec5,_0x2eef8d,_0x2b27f1){return _0x5aeec5(_0x2eef8d,_0x2b27f1);},'wbeWE':_0x32902c(0x11a),'oLfsz':_0x32902c(_0x406daa._0xa03a71),'zGVbH':function(_0xefaf79,_0x279833){return _0xefaf79>_0x279833;},'KDzCG':_0x32902c(_0x406daa._0x2470d6),'dEdYh':_0x32902c(0x101),'rKyzg':function(_0x5ad367,_0x1b334d){return _0x5ad367===_0x1b334d;}},_0x1552d0=extractFrontApiCalls(_0x443b19),_0x52eaff=extractBackendApiContracts(_0x443b19),_0x2ec38b=[];let _0x31029b=0x4f7+0x1aa1+-0x3*0xa88;for(const _0x1d3428 of _0x1552d0){if(_0x4b4616(0x96)===_0x42a646[_0x32902c(0xc0)])for(const _0x205302 of[_0x4b4616(_0x406daa._0x49f4d8)+_0x32902c(0x108),_0x42a646[_0x4b4616(0xd8)],_0x42a646[_0x32902c(0x17a)],'router.js']){const _0x35eee3=_0xf7f38e[_0x32902c(_0x406daa._0x1e5084)](_0x120dca,_0x379b7f,_0x205302);if(_0x31e58c[_0x32902c(_0x406daa._0x26cbd9)](_0x35eee3))_0x52eb02+=_0x42a646[_0x32902c(_0x406daa._0xcf1d73)](_0x42a646[_0x32902c(_0x406daa._0x5b0a89)](_0x42b334,_0x35eee3),'\x0a');}else{const _0x119cce=normalizeApiPath(_0x1d3428[_0x4b4616(_0x406daa._0x36d5c8)]),_0x1def66=_0x52eaff[_0x4b4616(0x19f)](_0x34fb00=>_0x34fb00[_0x32902c(0xab)]===_0x1d3428[_0x4b4616(0xab)]&&normalizeApiPath(_0x34fb00[_0x4b4616(0x1a6)])===_0x119cce);if(!_0x1def66)continue;_0x31029b++;const _0x578280=_0x1d3428[_0x32902c(0xcf)+_0x4b4616(0x122)],_0x2f8c0a=_0x1def66[_0x32902c(0x159)+'elds'],_0x57b909=_0x2f8c0a['filter'](_0x5e3b7f=>_0x5e3b7f&&!_0x578280[_0x4b4616(0x13c)](_0x5e3b7f)),_0x4caab9=_0x578280[_0x4b4616(0x12b)](_0x3e1f07=>_0x3e1f07&&!isSnakeCase(_0x3e1f07)),_0xc14422=_0x2f8c0a[_0x4b4616(_0x406daa._0x304e7a)](_0x35e7cc=>_0x35e7cc&&!isSnakeCase(_0x35e7cc));if(_0x42a646[_0x32902c(_0x406daa._0x3c0e8e)](_0x57b909[_0x4b4616(0x140)],-0xbf5+0x1*-0x433+0x40a*0x4)||_0x4caab9[_0x4b4616(0x140)]>0x13d5+0x7*-0x44f+-0x52a*-0x2||_0x42a646[_0x32902c(_0x406daa._0x43d38c)](_0xc14422['length'],0x1fa8+0x232+-0x7*0x4d6)){if(_0x42a646['KDzCG']===_0x42a646[_0x32902c(_0x406daa._0xb14bfd)]){const _0x1cffc6=_0x42a646['lxDOU'](_0x46a58e,_0x282096,_0x676131),_0x3ac2ed={'name':_0x42a646['wbeWE'],..._0x1cffc6};_0x338b1a[_0x32902c(_0x406daa._0xef5b54)](_0x3ac2ed);if(!_0x1cffc6[_0x4b4616(0xac)])_0x39e2fd=![];}else{const _0x58b74f={};_0x58b74f[_0x4b4616(0xab)]=_0x1d3428['method'],_0x58b74f[_0x4b4616(0x1a6)]=_0x1d3428[_0x32902c(_0x406daa._0x138878)],_0x58b74f['frontFile']=_0x1d3428[_0x4b4616(0x99)],_0x58b74f[_0x4b4616(_0x406daa._0x39317a)]=_0x1d3428['fnName'],_0x58b74f[_0x4b4616(_0x406daa._0x2024fc)]=_0x1def66[_0x4b4616(0x99)],_0x58b74f[_0x4b4616(_0x406daa._0x274757)]=_0x1def66[_0x32902c(_0x406daa._0x4b2a03)],_0x58b74f[_0x32902c(_0x406daa._0x3724fc)+'e']=_0x57b909,_0x58b74f[_0x32902c(0xc1)]=_0x4caab9,_0x58b74f[_0x4b4616(0x186)]=_0xc14422,_0x2ec38b['push'](_0x58b74f);}}}}return{'pass':_0x42a646[_0x4b4616(_0x406daa._0xfe17b5)](_0x2ec38b['length'],0x1*-0x188a+-0x12da+0x2b64),'checked':_0x31029b,'mismatches':_0x2ec38b};}function checkErrorHandling(_0x5e5428){const _0x2d706f={_0x26bcb3:0x9b,_0x2b27eb:0x191,_0x4601d4:0xf3,_0x5b461f:0x168,_0x116e9d:0xf0,_0x5c7a74:0x13c,_0x1fbb2a:0x13c,_0x4c1e9e:0x154,_0x194ed0:0x169,_0x2693a9:0x10c,_0x336d57:0x10c,_0x38abe1:0x189,_0x276e86:0x12d,_0x1546bc:0x135,_0x283916:0xda,_0x4e62ad:0x189,_0x50d21b:0x111,_0x471bb8:0x120,_0x3d12af:0x17c,_0x1b2d8c:0x17e,_0x195b0c:0xc9,_0x436ca7:0x19e,_0x542e3e:0x140},_0x5f4bee=_0x130b14,_0x8df8a9=_0x130b14,_0x47f107={'sQfXZ':_0x5f4bee(0xc9)+'h','pbQEN':_0x5f4bee(0x149),'TeZSS':'src','ayVbz':function(_0x38b0fc,_0x1bbab6,_0x254b0c){return _0x38b0fc(_0x1bbab6,_0x254b0c);},'WZRuk':'.tsx','oBQbX':_0x5f4bee(_0x2d706f._0x26bcb3),'CPUwx':_0x5f4bee(0x147),'zBGGg':function(_0x26e36a,_0x251ffc){return _0x26e36a===_0x251ffc;},'DNeiM':_0x5f4bee(0x11e),'cmObN':function(_0x58a71f,_0x7d0e4c){return _0x58a71f(_0x7d0e4c);},'bnvHY':_0x8df8a9(0x144),'qDUgV':_0x8df8a9(0xe1),'MvLCA':function(_0x1c6b6f,_0x1ac87e){return _0x1c6b6f+_0x1ac87e;},'voBNT':function(_0x521e6c,_0x568dd1){return _0x521e6c!==_0x568dd1;}},_0x120a2c=[_0x5f4bee(_0x2d706f._0x2b27eb)+'rc',_0x47f107[_0x5f4bee(0x18c)],_0x47f107[_0x5f4bee(0xb8)]]['filter'](_0x258b40=>fs[_0x8df8a9(0x123)](path[_0x5f4bee(0x160)](_0x5e5428,_0x258b40))),_0x1521f0=[];let _0x5857eb=0x262c+-0xb3*0xa+0x133*-0x1a;for(const _0x3ade44 of _0x120a2c){const _0x405a21=_0x47f107['ayVbz'](findFiles,path[_0x8df8a9(0x160)](_0x5e5428,_0x3ade44),['.vue',_0x47f107['WZRuk'],'.jsx',_0x47f107['oBQbX'],_0x47f107[_0x5f4bee(0x100)]]);for(const _0x577368 of _0x405a21){if(_0x47f107[_0x5f4bee(0x9f)](_0x47f107[_0x5f4bee(_0x2d706f._0x4601d4)],_0x47f107[_0x5f4bee(0xf3)])){const _0x54acad=_0x47f107[_0x5f4bee(0x19b)](readSafe,_0x577368);if(!_0x54acad)continue;const _0x38e46a=path[_0x8df8a9(_0x2d706f._0x5b461f)](_0x5e5428,_0x577368);if(_0x38e46a['includes'](_0x8df8a9(_0x2d706f._0x116e9d))||_0x38e46a[_0x8df8a9(_0x2d706f._0x5c7a74)](_0x47f107[_0x8df8a9(0x13a)])||_0x38e46a[_0x8df8a9(0x13c)](_0x47f107[_0x5f4bee(0x164)])||_0x38e46a[_0x5f4bee(_0x2d706f._0x1fbb2a)](_0x5f4bee(_0x2d706f._0x4c1e9e)))continue;const _0x51ac9d=_0x54acad[_0x5f4bee(_0x2d706f._0x194ed0)]('\x0a');for(let _0x32d6bc=0x1*0x10d9+0x5*0x13a+0x35*-0x6f;_0x32d6bc<_0x51ac9d[_0x8df8a9(0x140)];_0x32d6bc++){const _0x515797=_0x51ac9d[_0x32d6bc],_0x9942de=/\.(get|post|put|delete|patch)\s*\(\s*['"`]\/api\//[_0x8df8a9(0x10c)](_0x515797)||/fetch\s*\(\s*['"`].*\/api\//[_0x5f4bee(_0x2d706f._0x2693a9)](_0x515797)||/request\s*\(\s*\{[\s\S]*url.*\/api\//['test'](_0x515797)||/\bapi\.\w+\s*\(/[_0x5f4bee(0x10c)](_0x515797);if(!_0x9942de)continue;_0x5857eb++;const _0x5d8ccc=Math['max'](0x2088+0x8d3+-0x1*0x295b,_0x32d6bc-(-0x1f99+0xafd+0x14a1)),_0x284d92=Math[_0x8df8a9(0x173)](_0x51ac9d[_0x8df8a9(0x140)],_0x47f107['MvLCA'](_0x32d6bc,-0x1e1*-0xc+-0xc4e+-0x4*0x28d)),_0xc4ffaa=_0x51ac9d[_0x5f4bee(0x177)](_0x5d8ccc,_0x284d92)[_0x8df8a9(0x160)]('\x0a'),_0x4ba809=/\.catch\s*\(/[_0x5f4bee(_0x2d706f._0x336d57)](_0xc4ffaa)||/catch\s*\(/[_0x8df8a9(_0x2d706f._0x2693a9)](_0xc4ffaa)||/\.then\s*\([^)]*,[^)]*\)/[_0x5f4bee(0x10c)](_0xc4ffaa)||/onError|errorHandler|handleError/i['test'](_0xc4ffaa)||/\.finally\s*\(/[_0x5f4bee(0x10c)](_0xc4ffaa),_0x323ad3=/catch\s*\([^)]*\)\s*\{\s*\}/[_0x8df8a9(_0x2d706f._0x2693a9)](_0xc4ffaa)||/\.catch\s*\(\s*\(\s*\)\s*=>\s*\{\s*\}\s*\)/['test'](_0xc4ffaa);if(!_0x4ba809){const _0x1e8fe1={};_0x1e8fe1[_0x5f4bee(0x99)]=_0x38e46a,_0x1e8fe1[_0x5f4bee(_0x2d706f._0x38abe1)]=_0x32d6bc+(0x5*0x46b+0x1b6c+-0x3182),_0x1e8fe1['type']=_0x5f4bee(_0x2d706f._0x276e86),_0x1e8fe1['detail']=_0x5f4bee(0x18d)+_0x8df8a9(_0x2d706f._0x1546bc)+_0x8df8a9(0xd9),_0x1521f0[_0x5f4bee(0x17c)](_0x1e8fe1);}else{if(_0x323ad3){if(_0x47f107[_0x5f4bee(_0x2d706f._0x283916)](_0x5f4bee(0x9e),'GGvLf')){const _0x3702b3={};_0x3702b3['file']=_0x419b5d,_0x3702b3[_0x8df8a9(_0x2d706f._0x4e62ad)]=_0x3ca936+(-0x16c2+-0xd31+0x23f4),_0x3702b3['type']=_0x47f107[_0x8df8a9(_0x2d706f._0x50d21b)],_0x3702b3['detail']=_0x5f4bee(_0x2d706f._0x471bb8)+_0x8df8a9(0x19e)+_0x5f4bee(0x152),_0x4d2945[_0x5f4bee(_0x2d706f._0x3d12af)](_0x3702b3);}else{const _0x190bd8={};_0x190bd8[_0x5f4bee(0x99)]=_0x38e46a,_0x190bd8['line']=_0x32d6bc+(-0x1482+-0x85*0xb+0x1a3a),_0x190bd8[_0x5f4bee(_0x2d706f._0x1b2d8c)]=_0x8df8a9(_0x2d706f._0x195b0c)+'h',_0x190bd8[_0x8df8a9(0xe6)]=_0x8df8a9(0x120)+_0x5f4bee(_0x2d706f._0x436ca7)+_0x5f4bee(0x152),_0x1521f0['push'](_0x190bd8);}}}}}else _0x401747[_0x5f4bee(0x17c)](_0x33d8ba);}}return{'pass':_0x1521f0[_0x8df8a9(_0x2d706f._0x542e3e)]===-0x403+-0xd0*0x26+0x22e3,'violations':_0x1521f0,'totalApiCalls':_0x5857eb,'noHandling':_0x1521f0['filter'](_0x4fc327=>_0x4fc327['type']===_0x5f4bee(0x12d))[_0x8df8a9(0x140)],'emptyCatch':_0x1521f0['filter'](_0x50d925=>_0x50d925[_0x8df8a9(0x17e)]==='empty-catc'+'h')[_0x5f4bee(0x140)]};}function _0x20ab(){const _0x59617b=['y1LcvMu','vgvAu1m','yMfJA0zU','y2HLy2TZ','y2HLy2TfCNjVCG','zKL4ugS','yKjpseG','zevKwwG','56gS57Yw56cb55sO5OI3ieLe','B0XMC3O','BM9Uu25HA2vgzq','zNjVBNrgAwXL','mJiZmfn3wefHtG','zuLOD3e','CM91DgvYlMPZ','y2HLy2TbCgLdBW','55sX5AoW5PIo','Cvryqwy','zw1WDhKTy2f0yW','BgHNvxq','6zsz6k+V5Ase55cg5A6H6k6H','lNz1zq','s2rnEfC','AgvJA3m','CMvXDwvZDezPzq','suvLwwu','vffpEgm','zu5yB0i','qvbjiowLKEE6PUAGOEMQJa','y2HPBgrFChjVyW','yMfJA0zPBgu','zgf0yvnVDxjJzq','rvDnrM8','DfLIww8','B25fCNjVCU+8Iq','DM9ctLq','CujjAhe','ndu2m0vZz0jLuG','rgjmBfa','Ehf6Axa','EwP3AeW','ioEBToAoPEI1I+waVos4UUEHRoE8LUEGGEAvSa','lNnWzwmU','zxGUANm','BNrYywn0','qLHTtey','5yMn5zco56UV5Awr57QM5lIa6iE05OcN','zgv0ywLS','Dg9vChbLCKnHCW','zxHWB3j0CW','otGXDNLWwfbj','wgTtrgi','q29TCgXLDgvUzq','C3rKAw8','tMTlufm','nJu4nhD4vuTZrq','mtiYmdm4s0fOEMHJ','lMqUDhm','ios4QUwVUEIXOE+8JowqQYbPzc8','sgfUzgXPBMC','re5LAu0','BKTPuuC','shDTBfy','whPZAvu','yM90Ac1TAxnZAq','CMvNzxG','y2HLy2TiyxjKyW','mZa1thfqA3P4','ios4QUwVUEIXOE+8Iq','y3nWrNG','DNjvAKi','ANfvBhe','AhrgrxK','q1bvD3G','DurjCwK','yMuTBwLZC2LUzW','AgfYzgnVzgvKlq','DLLmDMW','CMj5Duy','zKTyqKK','C29Tzq','zxGUDhm','ssdNQ6/NGRNLO7dMMi4','Dg9tDhjPBMC','B2jQzwn0q291BG','DgvZDa','lNrZEa','56gS57Yw56cb5lIA5yQH6lQR5lU95Qoa5Rwl','y2HLy2TdB250CG','EMrIBNy','C1fMwfO','DvfYvui','rvPbqM0','swzJqNm','BMfTzq','uxH6tg4','y2HLy2TsB3v0zq','BM9iyw5KBgLUzW','B3qV','6lEV55sX5A6m5Pw05OcN','zMuTBwLZC2LUzW','ntyXodm4ofLyyLzxyG','BgH1zu0','Aw1Mtuy','A2vsz2y','qvbjioIWG+EuQoACIsbJyq','wgXttxu','BgrZ','zxHPC3rZu3LUyW','uejVzw4','BMfTzsdLRzFMRRuG4Ocuia','uKrtCM8','m3jkzu1rDW','teXys2m','lMT0','s1vADwK','zMLSDgvY','z1vxyNG','BM8Ty2f0y2G','C3rHDhvZ','DKXAr0W','BNnPzguTD29YAW','twfWCgLUzW','BwfW','BMzHA2q','wuf4wK8','55cg77Yi5PEGignHDgnOlW','zw5JEq','AxneAxjLy3rVCG','uMP0tLm','zNjVBNrgBG','yM52sfK','ywrK','Aw5JBhvKzxm','DgfIBgveyxrHlW','sLLADKm','CgvZ','BgvUz3rO','Bwf0y2HbBgW','D09qrLm','CNnLic0TAxmTAq','x190zxn0','BgfZDeLUzgv4','ioAwH+s7TG','lMPZ','lMPHDMe','yxbWl3nYyW','yxjYyxK','uMXPu0u','zw9Uue8','uKnvDMy','zxHLyW','vhHNAfK','CeP3ChG','BM9Kzv9TB2r1Ba','5lQg6zsz6k+V77Yj','ywjZ','lNrLC3qU','Dhr6whK','Eej1CMG','C3jJ','nJqWmdjQD2Ljufi','CMvXDwLYzwrgAq','zgf0yxnVDxjJzq','BwvZC2fNzq','zhLpDxq','EKDwyKG','AwDUB3jL','Bwf0y2G','AM9PBG','DhjPBq','z0fNqNq','C2vHCMnO','Curvz1y','z3Pywe0','ywn0q29UC2LZDa','rgDcwhm','CMvSyxrPDMu','C3bSAxq','AgfZ','mtG5otqYufvZtNj2','quXHzg8','DgfYz2v0','rwvZA0y','Dg90ywXbCgLdyq','ENjLwhC','kcGOlISPkYKRkq','tgL1Bg8','BwLU','CMvWBgfJzq','ChLVA3G','B2rLzerHDge','C2XPy2u','mtC5otbUDMHvCfO','CMvHzezPBgvtEq','sgDpyuq','tLDSsKu','ChvZAa','C3rHCNrZv2L0Aa','DhLWzq','zw5KC1DPDgG','CKT5EMC','ywz1Cw0','svvUDwi','zxnZ','txvnuMK','s0j2Aeu','BM9Uu25HA2vczq','sLbAA0O','CM91DgvYlNrZ','BgLUzq','CMvHzgrPCLn5BG','lNb5','Cgjrru4','qvbjioIWG+EuQoAxOoMuMEIVR+wKHa','yMfJA2vUzc9ZCG','svDfuLm','55Ar5lY856gS57Yw56cb5PwW5O2U77Yi','zNjVBNrLBMqVCW','mtfJuMPjwxe','A3PVuhq','wuv2v08','y3DK','mJi5ndfcr0HRq3y','yu9QDem','vMrjqM4','C3bLyYdKUk3ML6dMMl7LVi/OT68','sKD4AuC','y21pyK4','5BQu5lUoiefqssdOJRFLJ5BVViK','CM91DgvYl2LUza','DgnOios9HUs4UUEPUU+8IowqNUAoIq','zMLUza','tNLdreq','DxrMltG','sNLnq0i','tgDAs3u','yNvPBgq','sxfnv2u','Cgf0Aa','BwLZC2LUz09UrG','yKvuBMG','lxrYzwu','zMvmz0m','C2XRtxe','Aw5KzxG','zMLSzq','56gS57Yw56cb5PwW5O2U5Qoa5Rwl','lNrZ','mJqWsLnXu2no','z1LPse0','r0D2tgy','EKjhr2C','oLTHlxPblvPDkW','BgXZ','EM9IEKS','CNvUuMv2Awv3qW','lMPZEa','zM5oyw1L','yujVBMK','rfn1vu0','sMjfCe8','CMvHC29U','y0DfAKq','Bwv0Ag9K','CgfZCW','zgvIrM8','thzRvNO','Awj6A0u','AfPOzvO','D2L0AezPBgvuEq','C3jJl21HAw4','wK10D0W','wgjxCvu','zxjYB3i','wvbRzey'];_0x20ab=function(){return _0x59617b;};return _0x20ab();}function checkHardcodedData(_0x2c1c20){const _0x3ab577={_0x1e0987:0x149,_0x186589:0x10d,_0x4c7066:0x147,_0x135b4e:0x114,_0x101456:0x160,_0x3e2cde:0x10c,_0x734bf0:0xf0,_0x55f6df:0x14e,_0x37b93a:0x10c,_0x5e9f08:0x177,_0x1c92e3:0x10b,_0x41c6c5:0xe6,_0x1f3208:0xf1,_0x587b6d:0x125,_0x45d2d4:0x19c,_0x427009:0x15f,_0x434d87:0x140,_0x592960:0x169,_0x300f20:0x198,_0x4118da:0x1a6,_0x2c0e19:0xa5,_0x4d29d1:0xb9,_0x4a619b:0x1a7,_0xc84dd4:0x99,_0x4f9f9c:0xd6,_0x3c6e52:0x177,_0x2440bf:0x98,_0x4d1530:0x169,_0x1254ff:0x189,_0x264b00:0x94},_0x5c14c3=_0x24948e,_0x48d12b=_0x24948e,_0x498484={'bETnh':_0x5c14c3(0x103)+_0x48d12b(0x14a),'hZheZ':_0x5c14c3(_0x3ab577._0x1e0987),'kfXSG':'src','iExsO':function(_0x379512,_0x19d4b9){return _0x379512===_0x19d4b9;},'ibzkE':_0x48d12b(0x1a5),'IfcBs':function(_0xff3ca9,_0x4114b6,_0x156390){return _0xff3ca9(_0x4114b6,_0x156390);},'nKiQG':'.vue','YPkdF':_0x5c14c3(_0x3ab577._0x186589),'xmcaV':_0x48d12b(_0x3ab577._0x4c7066),'gAgBt':function(_0x73c2da,_0x5674d5){return _0x73c2da(_0x5674d5);},'vfMzi':_0x5c14c3(0x144),'pyokx':function(_0x42c111,_0x7629e1){return _0x42c111>=_0x7629e1;},'keRgf':function(_0x36743c,_0xf82703){return _0x36743c>=_0xf82703;},'pJwpx':_0x5c14c3(0xed),'RMqkT':function(_0x5ba212,_0x23e41c){return _0x5ba212===_0x23e41c;}},_0x584f37=['frontend/s'+'rc',_0x498484[_0x48d12b(0xb0)],_0x498484['kfXSG']][_0x5c14c3(0x12b)](_0x4ff60d=>fs[_0x5c14c3(0x123)](path[_0x48d12b(0x160)](_0x2c1c20,_0x4ff60d))),_0x2a01bb=[];for(const _0xd51ee1 of _0x584f37){if(_0x498484['iExsO'](_0x498484[_0x48d12b(0xaf)],_0x498484['ibzkE'])){const _0x2a9030=_0x498484[_0x5c14c3(_0x3ab577._0x135b4e)](findFiles,path[_0x48d12b(_0x3ab577._0x101456)](_0x2c1c20,_0xd51ee1),[_0x498484[_0x48d12b(0xf4)],_0x498484[_0x5c14c3(0xb6)],'.jsx',_0x48d12b(0x9b),_0x498484['xmcaV']]);for(const _0x2bde96 of _0x2a9030){const _0x428a2b=_0x498484[_0x48d12b(0x162)](readSafe,_0x2bde96);if(!_0x428a2b)continue;const _0x4d9142=path['relative'](_0x2c1c20,_0x2bde96);if(/\/(constants?|config|utils?|helpers?|types?|enums?|mock)\//i[_0x48d12b(_0x3ab577._0x3e2cde)](_0x4d9142))continue;if(_0x4d9142[_0x48d12b(0x13c)](_0x48d12b(_0x3ab577._0x734bf0))||_0x4d9142[_0x5c14c3(0x13c)](_0x498484['vfMzi']))continue;const _0x1a91f2=/(?:const|let|var|ref\(|reactive\()\s*\w+\s*[=:]\s*\[[\s\S]{100,}?\]/g;let _0x552e3b;while((_0x552e3b=_0x1a91f2[_0x5c14c3(_0x3ab577._0x55f6df)](_0x428a2b))!==null){const _0x55cff4=_0x552e3b[-0x6*0x552+0xa*0x3e3+-0x6f2],_0x54c550=(_0x55cff4['match'](/\{/g)||[])[_0x48d12b(0x140)],_0x16946e=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/[_0x48d12b(_0x3ab577._0x37b93a)](_0x55cff4);if(_0x498484[_0x5c14c3(0x175)](_0x54c550,-0x1e*0xc9+0x17c4+-0x33)&&_0x16946e){const _0xec9796=_0x428a2b[_0x48d12b(_0x3ab577._0x5e9f08)](0x4*0x1a6+0x1*0x102e+-0x35*0x6e,_0x552e3b[_0x5c14c3(0x98)])[_0x48d12b(0x169)]('\x0a')[_0x48d12b(0x140)],_0x3304a1={};_0x3304a1['file']=_0x4d9142,_0x3304a1[_0x5c14c3(0x189)]=_0xec9796,_0x3304a1[_0x48d12b(0x17e)]=_0x48d12b(0x103)+_0x5c14c3(0x14a),_0x3304a1[_0x5c14c3(_0x3ab577._0x1c92e3)+'t']=_0x54c550,_0x3304a1[_0x48d12b(_0x3ab577._0x41c6c5)]=_0x48d12b(0x190)+_0x54c550+(_0x48d12b(_0x3ab577._0x1f3208)+_0x48d12b(_0x3ab577._0x587b6d)+_0x5c14c3(_0x3ab577._0x45d2d4)),_0x2a01bb['push'](_0x3304a1);}}const _0x125aca=/(?:tableData|dataSource|listData|dataList|options|menuList|items)\s*[=:]\s*(?:ref\(|reactive\()?\s*\[[\s\S]{50,}?\]/g;while((_0x552e3b=_0x125aca[_0x5c14c3(0x14e)](_0x428a2b))!==null){const _0x4b4b22=_0x552e3b[-0x397+0x1d5a+-0x19c3*0x1],_0x5badd2=(_0x4b4b22[_0x5c14c3(_0x3ab577._0x427009)](/\{/g)||[])[_0x48d12b(_0x3ab577._0x434d87)];if(_0x498484[_0x48d12b(0x11f)](_0x5badd2,0x16b8+0x1*0xfbe+0x133a*-0x2)){if('LOCWu'===_0x498484[_0x48d12b(0x150)])return[];else{const _0x3168c0=_0x428a2b['slice'](0x35c*-0x1+-0x8fa+0x62b*0x2,_0x552e3b[_0x48d12b(0x98)])[_0x5c14c3(_0x3ab577._0x592960)]('\x0a')[_0x48d12b(_0x3ab577._0x434d87)];if(!_0x2a01bb['some'](_0x4349c7=>_0x4349c7[_0x5c14c3(0x99)]===_0x4d9142&&Math[_0x5c14c3(0x153)](_0x4349c7[_0x48d12b(0x189)]-_0x3168c0)<0x236*-0x1+-0xe9*0x1e+0x1d87)){if(_0x48d12b(0xde)===_0x48d12b(_0x3ab577._0x300f20)){const _0x582220={};_0x582220[_0x48d12b(0xab)]=_0xd9222e['method'],_0x582220[_0x48d12b(0x1a6)]=_0x54a172[_0x48d12b(_0x3ab577._0x4118da)],_0x582220[_0x5c14c3(0xc2)]=_0xb4c59['file'],_0x582220['frontFn']=_0x2daa9c[_0x48d12b(_0x3ab577._0x2c0e19)],_0x582220[_0x48d12b(0xd5)]=_0x8831ef['file'],_0x582220[_0x48d12b(_0x3ab577._0x4d29d1)]=_0x57cf10[_0x48d12b(0xa5)],_0x582220[_0x5c14c3(_0x3ab577._0x4a619b)+'e']=_0x1c2765,_0x582220[_0x48d12b(0xc1)]=_0x14440b,_0x582220['nonSnakeBe']=_0x598182,_0x2a0700[_0x48d12b(0x17c)](_0x582220);}else{const _0x23bbc4={};_0x23bbc4[_0x5c14c3(_0x3ab577._0xc84dd4)]=_0x4d9142,_0x23bbc4[_0x48d12b(0x189)]=_0x3168c0,_0x23bbc4['type']='hardcoded-'+_0x48d12b(0x15a),_0x23bbc4['detail']=_0x48d12b(0x13d)+_0x48d12b(_0x3ab577._0x4f9f9c)+_0x5c14c3(0xe0)+'组('+_0x5badd2+'\x20个对象)',_0x2a01bb[_0x5c14c3(0x17c)](_0x23bbc4);}}}}}}}else{const _0x489ab3=_0x4d8bcb[_0x5c14c3(_0x3ab577._0x3c6e52)](-0x709+-0x25dd+0x2ce6,_0x5c1335[_0x5c14c3(_0x3ab577._0x2440bf)])[_0x5c14c3(_0x3ab577._0x4d1530)]('\x0a')[_0x5c14c3(0x140)],_0x494a90={};_0x494a90[_0x48d12b(0x99)]=_0x4f5bcc,_0x494a90[_0x5c14c3(_0x3ab577._0x1254ff)]=_0x489ab3,_0x494a90[_0x48d12b(0x17e)]=_0x498484[_0x48d12b(_0x3ab577._0x264b00)],_0x494a90[_0x48d12b(0x10b)+'t']=_0x1cbd4a,_0x494a90[_0x5c14c3(_0x3ab577._0x41c6c5)]='疑似硬编码数据('+_0x3948ec+('\x20个对象,含\x20id/'+'name\x20字段\x20—\x20'+'应从\x20API\x20获取)'),_0x3913f6[_0x48d12b(0x17c)](_0x494a90);}}return{'pass':_0x498484['RMqkT'](_0x2a01bb['length'],0x56a+0x1838+-0x1da2),'suspects':_0x2a01bb};}function checkHardcodedIdentities(_0x49109d){const _0x271570={_0x11d71e:0x135,_0x1cbdaf:0x157,_0x4cc546:0xcc,_0x5bdda8:0xf8,_0x5b009a:0xa9,_0x599b27:0xbf,_0x636308:0x9b,_0x4c342e:0x168,_0x4c3a90:0x10c,_0x21b65c:0x174,_0x4343dd:0x169,_0x2d2d27:0xac,_0x40c58d:0x140},_0x4a0023={_0xea6951:0xcd,_0x5432b8:0x17d,_0x52c893:0xdb,_0xaf9e38:0xe7,_0x59d641:0x141,_0x40495b:0x132,_0x1dc00e:0x98,_0x3ccba3:0x140,_0x11783a:0x141,_0xfee5cd:0x17c,_0x15dd83:0x10c,_0x516882:0x17b,_0x41fb45:0x17e,_0x38b741:0xfd,_0x1c09ef:0xa9,_0x21a045:0x177,_0x4dde43:0x145},_0x2b0485=_0x130b14,_0x53198d=_0x130b14,_0x1ae32c={'KdMxW':_0x2b0485(0x18d)+_0x2b0485(_0x271570._0x11d71e)+_0x2b0485(0xd9),'xBurh':function(_0x40f597,_0x450cf4){return _0x40f597!==_0x450cf4;},'qBIhq':_0x53198d(0x1a0),'qJAJe':function(_0x58cffa,_0x3ba1e4){return _0x58cffa+_0x3ba1e4;},'JbEpO':'app/src','xeqVY':_0x53198d(_0x271570._0x1cbdaf),'uQrUB':'硬编码业务身份/人员'+'名称','YAxZO':'当前登录人被前端写死','yZpLG':function(_0x15b6c5,_0x11ec16,_0x29a607){return _0x15b6c5(_0x11ec16,_0x29a607);},'TxghY':_0x53198d(_0x271570._0x4cc546)},_0x5e8339=['frontend/s'+'rc',_0x1ae32c[_0x53198d(0xa8)],_0x1ae32c['xeqVY']][_0x2b0485(0x12b)](_0x2c792d=>fs[_0x53198d(0x123)](path[_0x53198d(0x160)](_0x49109d,_0x2c792d))),_0x2c6e82=[],_0x5530be={};_0x5530be[_0x2b0485(_0x271570._0x5bdda8)]=/\buser-\d{3,}\b/g,_0x5530be[_0x2b0485(_0x271570._0x5b009a)]=_0x2b0485(_0x271570._0x599b27);const _0x2b7bc7={};_0x2b7bc7[_0x2b0485(0xf8)]=/['"`](张三|李四|王五|赵六|管理员|许可人|签发人|接票人)['"`]/g,_0x2b7bc7['reason']=_0x1ae32c[_0x2b0485(0x112)];const _0x33bbb4={};_0x33bbb4['regex']=/\b(currentUser|operatorId|operatorName)\s*[:=]\s*['"`][^'"`]+['"`]/g,_0x33bbb4[_0x53198d(0xa9)]=_0x1ae32c[_0x53198d(0x134)];const _0x23248e=[_0x5530be,_0x2b7bc7,_0x33bbb4];for(const _0x34aaa4 of _0x5e8339){const _0x64ee21=_0x1ae32c['yZpLG'](findFiles,path[_0x53198d(0x160)](_0x49109d,_0x34aaa4),[_0x1ae32c[_0x53198d(0x14f)],'.tsx','.jsx',_0x2b0485(_0x271570._0x636308),_0x2b0485(0x147)]);for(const _0x397596 of _0x64ee21){const _0x416b8b=path[_0x53198d(_0x271570._0x4c342e)](_0x49109d,_0x397596);if(/\/(mock|__tests__|fixtures)\//[_0x2b0485(_0x271570._0x4c3a90)](_0x416b8b[_0x53198d(_0x271570._0x21b65c)](/\\/g,'/')))continue;const _0x197969=readSafe(_0x397596);if(!_0x197969)continue;const _0x1c9362=_0x197969[_0x53198d(_0x271570._0x4343dd)]('\x0a');_0x1c9362['forEach']((_0x286189,_0xa203f9)=>{const _0x23ef7e=_0x53198d,_0x105a96=_0x53198d,_0x31c803={'WSUtJ':_0x23ef7e(0x131),'jqUlq':function(_0x5394e1,_0x50a68d){return _0x5394e1(_0x50a68d);},'vrUjB':_0x1ae32c[_0x105a96(_0x4a0023._0xea6951)]},_0x54bf39=_0x286189[_0x105a96(0x161)]();if(_0x54bf39[_0x105a96(0x17d)]('//')||_0x54bf39[_0x105a96(_0x4a0023._0x5432b8)]('*'))return;for(const _0xe3d261 of _0x23248e){if(_0x1ae32c[_0x105a96(0x156)]('NyCDD',_0x1ae32c[_0x105a96(_0x4a0023._0x52c893)])){const _0x531157=_0xd78413[0xd*0x9d+0x19f*-0x2+-0x4ba]['replace'](yAKXlE['WSUtJ'],'')[_0x105a96(_0x4a0023._0xaf9e38)+'e'](),_0xc875fe=_0x28bf7c[0x901+-0x238e+0x1a8f*0x1],_0x1f0cfe=_0x1898e4[-0x165+-0x196*0x1+0x2fe],_0x27716f=_0x20cf2e[-0x20f+-0x1*0x117e+-0x1391*-0x1]||'',_0x44291f=yAKXlE[_0x23ef7e(0xfe)](_0xe676,[..._0x27716f[_0x105a96(_0x4a0023._0x59d641)](/(?:@PathVariable|@RequestParam(?:\(\s*["']([^"']+)["'])?|@RequestBody)\s*(?:@Valid\s*)?(?:Map<String,\s*Object>|[A-Za-z0-9_<>, ?]+)\s+([A-Za-z0-9_$]+)/g)][_0x23ef7e(_0x4a0023._0x40495b)](_0x13a23e=>_0x13a23e[-0x11*-0x1cf+0x6cd+-0x7*0x55d]||_0x13a23e[0xadf+0x2*0x694+-0x1805])),_0x4520d5=_0x5dcf95([..._0x4776b9['slice'](_0x2bd964[_0x23ef7e(_0x4a0023._0x1dc00e)],_0x537c24[_0x23ef7e(0x173)](_0x2c4a62[_0x23ef7e(_0x4a0023._0x3ccba3)],_0x2a1771[_0x105a96(0x98)]+(-0x2441*-0x1+-0xb83*0x2+0x6f*-0x11)))[_0x105a96(_0x4a0023._0x11783a)](/require\(body,\s*["']([^"']+)["']\)/g)][_0x105a96(_0x4a0023._0x40495b)](_0x52cdfb=>_0x52cdfb[-0x1*-0x21fb+0x3*0x4ee+-0x30c4]));_0x534a70[_0x105a96(_0x4a0023._0xfee5cd)]({'file':_0x5deac4,'fnName':_0x1f0cfe,'method':_0x531157,'path':(''+_0x1ea8ef+_0xc875fe)[_0x105a96(0x174)](/\/+/g,'/'),'requiredFields':_0x4520d5[_0x23ef7e(_0x4a0023._0x3ccba3)]>0x4f*-0x71+0x1*0x1c19+0x6c6?_0x4520d5:_0x44291f,'rawParams':_0x44291f});}else{if(_0xe3d261['regex'][_0x105a96(_0x4a0023._0x15dd83)](_0x286189)){if(_0x1ae32c['xBurh'](_0x105a96(0x17b),_0x23ef7e(_0x4a0023._0x516882))){const _0x52fdaa={};_0x52fdaa[_0x23ef7e(0x99)]=_0x2dd934,_0x52fdaa['line']=_0x5ec1b6+(0x13f5+0xf*0x246+0x25*-0x176),_0x52fdaa[_0x23ef7e(_0x4a0023._0x41fb45)]=_0x105a96(0x12d),_0x52fdaa['detail']=yAKXlE[_0x105a96(_0x4a0023._0x38b741)],_0x532bd2[_0x105a96(_0x4a0023._0xfee5cd)](_0x52fdaa);}else{_0x2c6e82[_0x105a96(_0x4a0023._0xfee5cd)]({'file':_0x416b8b,'line':_0x1ae32c['qJAJe'](_0xa203f9,0x9f*-0x18+-0x1*-0x1d14+0x1*-0xe2b),'detail':_0xe3d261[_0x105a96(_0x4a0023._0x1c09ef)],'snippet':_0x54bf39[_0x23ef7e(_0x4a0023._0x21a045)](-0x1c5f+0x47a*-0x3+0x29cd,0x18a7+-0xae3*0x1+-0xd4c)});break;}}_0xe3d261[_0x23ef7e(0xf8)][_0x23ef7e(_0x4a0023._0x4dde43)]=-0x233b+0x3d*-0x1d+0x2a24;}}});}}const _0x2a46ac={};return _0x2a46ac[_0x2b0485(_0x271570._0x2d2d27)]=_0x2c6e82[_0x53198d(_0x271570._0x40c58d)]===0x539*0x1+-0x2*-0x1072+-0x261d,_0x2a46ac['violations']=_0x2c6e82,_0x2a46ac;}function checkRouteCompleteness(_0x1e9d12,_0x1c023d){const _0xa458bb={_0x8d0274:0x1a2,_0x2815a0:0x149,_0x1cd1b6:0xc5,_0x14e9aa:0x133,_0x33d83c:0xc7,_0xf20a20:0xae,_0x166b64:0x140,_0x3534d3:0x108,_0x695305:0x97,_0x13aa28:0x123,_0x38e151:0x133,_0x1d4bf8:0x13c,_0x3947ce:0x10c},_0xcb8860=_0x130b14,_0x281aa1=_0x130b14,_0x52ea95={};_0x52ea95[_0xcb8860(0xae)]=function(_0x50d5c7,_0x2fe1b5){return _0x50d5c7===_0x2fe1b5;},_0x52ea95[_0xcb8860(_0xa458bb._0x8d0274)]=_0x281aa1(_0xa458bb._0x2815a0),_0x52ea95[_0xcb8860(0x97)]=_0xcb8860(_0xa458bb._0x1cd1b6),_0x52ea95[_0xcb8860(_0xa458bb._0x14e9aa)]=_0x281aa1(0xa0);const _0x390651=_0x52ea95,_0x5bc81e=extractSpecRoutes(_0x1c023d),_0x3ab4df={};_0x3ab4df[_0x281aa1(0xac)]=!![],_0x3ab4df['message']=_0xcb8860(0x199)+_0x281aa1(_0xa458bb._0x33d83c);if(_0x390651[_0xcb8860(_0xa458bb._0xf20a20)](_0x5bc81e[_0xcb8860(_0xa458bb._0x166b64)],-0x20c0+-0x1*-0x1d6e+0x352))return _0x3ab4df;const _0xe172d5=[_0x281aa1(0x191)+'rc',_0x390651['JyMCB'],_0x281aa1(0x157)][_0xcb8860(0x12b)](_0x302f04=>fs[_0x281aa1(0x123)](path[_0xcb8860(0x160)](_0x1e9d12,_0x302f04)));let _0x552e8e='';for(const _0x46ded0 of _0xe172d5){for(const _0x50808c of[_0x281aa1(0x19d)+_0xcb8860(_0xa458bb._0x3534d3),_0xcb8860(0x19d)+'ex.js',_0xcb8860(0x188),_0x390651[_0x281aa1(_0xa458bb._0x695305)]]){const _0x494be6=path['join'](_0x1e9d12,_0x46ded0,_0x50808c);if(fs[_0xcb8860(_0xa458bb._0x13aa28)](_0x494be6))_0x552e8e+=readSafe(_0x494be6)+'\x0a';}}const _0x3838ad={};_0x3838ad['pass']=!![],_0x3838ad['message']='未找到\x20router'+_0x281aa1(0x146);if(!_0x552e8e)return _0x3838ad;const _0x525aa5=[];for(const _0x4f3eeb of _0x5bc81e){const _0x37fa8b=_0x4f3eeb[_0xcb8860(0x174)](/:[a-zA-Z]+/g,_0x390651[_0xcb8860(_0xa458bb._0x38e151)]);!_0x552e8e[_0x281aa1(_0xa458bb._0x1d4bf8)](_0x4f3eeb)&&!new RegExp(_0x37fa8b['replace'](/\//g,'\x5c/'))[_0x281aa1(_0xa458bb._0x3947ce)](_0x552e8e)&&_0x525aa5[_0x281aa1(0x17c)](_0x4f3eeb);}return{'pass':_0x390651[_0xcb8860(_0xa458bb._0xf20a20)](_0x525aa5['length'],0x2343+-0x1d91+0x51*-0x12),'total':_0x5bc81e['length'],'matched':_0x5bc81e[_0xcb8860(0x140)]-_0x525aa5[_0x281aa1(0x140)],'missing':_0x525aa5};}function runReviewChecks(_0x41c32c,_0x5d50e6){const _0xf16f89={_0x26a7ff:0x9a,_0x30afec:0xcb,_0x5609cd:0xaa,_0x364128:0xd3,_0x4fa957:0xac,_0x53ec57:0x115,_0x13a036:0xac,_0x5231a9:0x15b,_0x2608bb:0x17c,_0x5ffd57:0xa7,_0x3d1258:0xe5,_0x546c6c:0xa1,_0x4b7f:0x118,_0x777b04:0x16f,_0x39fdd4:0xa1,_0x1ca129:0x197,_0x55e7a4:0x115,_0x29bc8a:0xbc,_0xe73d99:0xb5,_0x17bf1c:0x17c,_0x33e108:0x17c,_0x2f84b5:0x115,_0x4713ec:0x14b,_0x514915:0xb5,_0x5c6d37:0xd0,_0x9ec049:0xba},_0x573b9e=_0x130b14,_0x49a110=_0x130b14,_0x3ce324={'RliSE':_0x573b9e(_0xf16f89._0x26a7ff),'cGEjD':function(_0xdb36e2,_0x24ebaa,_0x4dd236){return _0xdb36e2(_0x24ebaa,_0x4dd236);},'DSuUM':function(_0x119793,_0x49d81f){return _0x119793(_0x49d81f);},'YreiI':function(_0x1d6d3b,_0x4f96be){return _0x1d6d3b/_0x4f96be;},'aOjtC':function(_0x59ed30,_0x2b344d){return _0x59ed30>_0x2b344d;},'fIxPk':_0x49a110(_0xf16f89._0x30afec),'mKlWa':function(_0x4b47f3,_0x218c35){return _0x4b47f3===_0x218c35;},'HwmlV':'QZdjk','lGuCP':'路由完整性'},_0x536ed4=[];let _0x113ba4=!![];try{const _0x2209d0=_0x3ce324[_0x573b9e(_0xf16f89._0x5609cd)](checkApiContract,_0x41c32c,_0x5d50e6),_0x1e04ab={'name':'API\x20契约校验',..._0x2209d0};_0x536ed4['push'](_0x1e04ab);if(!_0x2209d0[_0x49a110(0xac)])_0x113ba4=![];}catch(_0x4f9388){const _0x5c2493={};_0x5c2493[_0x49a110(0x115)]=_0x49a110(_0xf16f89._0x364128),_0x5c2493[_0x573b9e(_0xf16f89._0x4fa957)]=!![],_0x5c2493['error']=_0x4f9388[_0x49a110(0x15b)],_0x536ed4['push'](_0x5c2493);}try{if(_0x573b9e(0x19a)===_0x49a110(0xb7)){const _0x116231={};_0x116231[_0x49a110(_0xf16f89._0x53ec57)]=_0x49a110(0xe5),_0x116231[_0x49a110(_0xf16f89._0x13a036)]=!![],_0x116231[_0x573b9e(0xb5)]=_0xdabe78[_0x573b9e(_0xf16f89._0x5231a9)],_0x27b732[_0x49a110(_0xf16f89._0x2608bb)](_0x116231);}else{const _0x2c010f=_0x3ce324[_0x573b9e(_0xf16f89._0x5ffd57)](checkContractConsistency,_0x41c32c),_0x26a862={'name':_0x573b9e(0xe5),..._0x2c010f};_0x536ed4['push'](_0x26a862);if(!_0x2c010f[_0x573b9e(0xac)])_0x113ba4=![];}}catch(_0x3cabc5){const _0x534340={};_0x534340[_0x49a110(0x115)]=_0x49a110(_0xf16f89._0x3d1258),_0x534340[_0x573b9e(0xac)]=!![],_0x534340['error']=_0x3cabc5[_0x573b9e(_0xf16f89._0x5231a9)],_0x536ed4[_0x573b9e(0x17c)](_0x534340);}try{const _0xe3482f=_0x3ce324[_0x573b9e(_0xf16f89._0x5ffd57)](checkErrorHandling,_0x41c32c),_0x1f9685={'name':_0x573b9e(0xcb),..._0xe3482f};_0x536ed4['push'](_0x1f9685);if(_0xe3482f['totalApiCa'+_0x49a110(_0xf16f89._0x546c6c)]>0x1*0x215f+0xb*-0x6b+-0x1cc6){const _0x1adb5b=_0x3ce324['YreiI'](_0xe3482f[_0x573b9e(_0xf16f89._0x4b7f)],_0xe3482f[_0x49a110(_0xf16f89._0x777b04)+_0x49a110(_0xf16f89._0x39fdd4)]);if(_0x3ce324[_0x49a110(_0xf16f89._0x1ca129)](_0x1adb5b,-0x5a6*-0x2+0x1dd3+-0x291f+0.5))_0x113ba4=![];}}catch(_0x172d7d){const _0x559c63={};_0x559c63[_0x573b9e(_0xf16f89._0x55e7a4)]=_0x3ce324[_0x49a110(_0xf16f89._0x29bc8a)],_0x559c63[_0x49a110(_0xf16f89._0x4fa957)]=!![],_0x559c63[_0x49a110(_0xf16f89._0xe73d99)]=_0x172d7d['message'],_0x536ed4[_0x49a110(_0xf16f89._0x17bf1c)](_0x559c63);}try{const _0x4bdd5f=checkHardcodedData(_0x41c32c),_0x2a54f5={'name':_0x49a110(_0xf16f89._0x26a7ff),..._0x4bdd5f};_0x536ed4[_0x573b9e(_0xf16f89._0x33e108)](_0x2a54f5);}catch(_0x57fa66){const _0x5f9e29={};_0x5f9e29[_0x573b9e(_0xf16f89._0x2f84b5)]=_0x3ce324[_0x573b9e(_0xf16f89._0x4713ec)],_0x5f9e29['pass']=!![],_0x5f9e29[_0x573b9e(_0xf16f89._0xe73d99)]=_0x57fa66[_0x573b9e(0x15b)],_0x536ed4[_0x49a110(0x17c)](_0x5f9e29);}try{const _0x4ef885=checkHardcodedIdentities(_0x41c32c),_0x257a95={'name':'硬编码业务身份检测',..._0x4ef885};_0x536ed4['push'](_0x257a95);if(!_0x4ef885['pass'])_0x113ba4=![];}catch(_0x366cd3){if(_0x3ce324['mKlWa'](_0x3ce324[_0x573b9e(0xf5)],_0x49a110(0x155)))!_0x3e1b5c['has'](_0x547af6[0x1dd*-0x9+-0x143*-0x1+0xf83*0x1])&&(_0xa99d8e[_0x573b9e(0x13b)](_0x11c064[-0x211d+0x22f2+0xea*-0x2]),_0x3c5f43['push'](_0x204607[-0x5ba+0x22b7+-0x5*0x5cc]));else{const _0x18e01d={};_0x18e01d['name']=_0x49a110(0x10e),_0x18e01d['pass']=!![],_0x18e01d[_0x573b9e(_0xf16f89._0x514915)]=_0x366cd3[_0x49a110(0x15b)],_0x536ed4[_0x573b9e(_0xf16f89._0x2608bb)](_0x18e01d);}}try{const _0x3735e1=checkRouteCompleteness(_0x41c32c,_0x5d50e6),_0x61599d={'name':_0x49a110(0x11a),..._0x3735e1};_0x536ed4[_0x573b9e(_0xf16f89._0x17bf1c)](_0x61599d);if(!_0x3735e1[_0x49a110(_0xf16f89._0x4fa957)])_0x113ba4=![];}catch(_0x5d967c){if(_0x573b9e(_0xf16f89._0x5c6d37)!=='IEeYe'){const _0x3ed876={};_0x3ed876[_0x573b9e(_0xf16f89._0x53ec57)]=_0x3ce324['RliSE'],_0x3ed876['pass']=!![],_0x3ed876['error']=_0x2bbe08[_0x573b9e(0x15b)],_0x2a2b2f['push'](_0x3ed876);}else{const _0x2381df={};_0x2381df['name']=_0x3ce324['lGuCP'],_0x2381df[_0x573b9e(0xac)]=!![],_0x2381df[_0x573b9e(_0xf16f89._0x514915)]=_0x5d967c['message'],_0x536ed4[_0x49a110(0x17c)](_0x2381df);}}const _0x3bb989={};return _0x3bb989[_0x49a110(0xac)]=_0x113ba4,_0x3bb989[_0x49a110(_0xf16f89._0x9ec049)]=_0x536ed4,_0x3bb989;}const _0x519b85={};_0x519b85[_0x24948e(0xa3)+_0x130b14(0xce)]=runReviewChecks,_0x519b85[_0x130b14(0xc6)+_0x24948e(0xe3)]=checkApiContract,_0x519b85[_0x24948e(0x10f)+_0x130b14(0x166)+_0x130b14(0x136)]=checkContractConsistency,_0x519b85[_0x24948e(0xbb)+_0x130b14(0xf2)]=checkErrorHandling,_0x519b85[_0x24948e(0xf9)+_0x130b14(0x176)]=checkHardcodedData,_0x519b85[_0x24948e(0xf9)+'odedIdenti'+'ties']=checkHardcodedIdentities,_0x519b85[_0x130b14(0x117)+_0x130b14(0xeb)+'ss']=checkRouteCompleteness,module[_0x24948e(0xe8)]=_0x519b85;
@@ -4,6 +4,24 @@
4
4
 
5
5
  ---
6
6
 
7
+ ## [3.2.0] - 2026-05-24
8
+
9
+ ### 新增
10
+ - **需求覆盖矩阵模板升级**: `spec.md` 新增功能点覆盖矩阵、业务规则覆盖矩阵、接口覆盖矩阵、页面/路由矩阵、验收场景矩阵,方便把自然语言需求转成可执行验收资产
11
+ - **任务模板升级**: `tasks.md` 新增 Fxx/Vxx/API/PAGE 覆盖声明、闭环证据要求、契约一致性自查、业务规则覆盖率字段
12
+ - **前后端契约一致性检查**: `gate smoke` 与 `gate review` 新增前端请求字段 vs 后端必填字段比对,并对 `snake_case` 做专项检查
13
+ - **硬编码业务身份检查**: `gate smoke` 与 `gate review` 可识别前端写死的当前用户、业务身份与示例人员名称
14
+
15
+ ### 变更
16
+ - **Review 客观评分维度更新**: review 评分新增“契约一致性”和“身份来源”两个维度,降低“接口对不上但仍高分通过”的概率
17
+ - **发布说明同步**: README / README.zh-CN 的仓库链接与 gate 描述与当前能力保持一致
18
+
19
+ ### 目的
20
+ - 将框架从“提示 AI 按规范做”进一步升级为“用 gate 主动拦截低分产物”
21
+ - 重点打击三类常见低分问题:前后端字段不一致、当前用户写死、功能有文件无闭环
22
+
23
+ ---
24
+
7
25
  ## [3.1.0] - 2026-05-24
8
26
 
9
27
  ### 新增
package/framework/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.2.0
@@ -17,9 +17,28 @@
17
17
  ## 3. 功能点
18
18
  - [ ] 功能 1:(输入→处理→输出)
19
19
 
20
+ ### 3.1 功能点覆盖矩阵(必填,review 按此统计)
21
+ | 功能点ID | 功能描述 | 前端入口/页面 | 后端入口/API | 验收场景ID | 完成判定 |
22
+ |---------|---------|--------------|-------------|-----------|---------|
23
+ | F01 | 例:列表查询 | `/work-ticket` 列表页 | `POST /api/work-ticket/list` | AC01 | 前后端均有证据 + 冒烟可跑 |
24
+
25
+ > 规则:
26
+ > 1. 每个功能点必须有唯一 ID(F01/F02...)。
27
+ > 2. Spec 提及前端时,前端入口不得为空。
28
+ > 3. review/gate 以本矩阵为准,不在矩阵中的功能不计入完成率。
29
+
20
30
  ## 4. 业务规则
21
31
  > 精确描述规则,包含边界条件(如:状态枚举值、时间窗口、幂等键格式)
22
32
 
33
+ ### 4.1 业务规则覆盖矩阵(必填,review 按此统计)
34
+ | 规则ID | 规则描述 | 生效层(前端/后端/双端) | 触发点 | 错误文案/结果 | 验证方式 |
35
+ |-------|---------|------------------------|-------|--------------|---------|
36
+ | V01 | 例:签发时间 ≤ 计划开工时间 | 后端 | 提交签发 | `签发时间不得晚于计划开工时间` | API 异常用例 |
37
+
38
+ > 规则:
39
+ > 1. 每条业务规则必须有唯一 ID(V01/V02...)。
40
+ > 2. 所有 Vxx 必须至少有一个验证方式,不能只写“代码里处理”。
41
+
23
42
  ## 5. 数据变更
24
43
  | 操作 | 表名 | 字段/索引 | 说明 |
25
44
 
@@ -29,6 +48,16 @@
29
48
  |------|------|--------|------|
30
49
  | 新增 | /api/xxx | GET | 查询 xxx |
31
50
 
51
+ ### 6.1 接口覆盖矩阵(必填,契约检查按此校验)
52
+ | API ID | Method | Path | 前端调用方 | 后端实现入口 | 请求字段风格 | 响应字段风格 |
53
+ |-------|--------|------|-----------|-------------|-------------|-------------|
54
+ | API01 | GET | /api/xxx | `src/api/xxx.ts#getXxx` | `XxxController#getXxx` | snake_case | snake_case |
55
+
56
+ > 规则:
57
+ > 1. `前端调用方` 必须写到函数级。
58
+ > 2. `后端实现入口` 必须写到类/方法级。
59
+ > 3. 请求/响应字段风格必须明确声明,review 会对 `snake_case` 做专项检查。
60
+
32
61
  ### 接口契约(每个新增接口必须填写)
33
62
 
34
63
  ```
@@ -48,8 +77,23 @@ GET /api/xxx
48
77
 
49
78
  > 说明:前端开发依赖此契约,写代码前必须确认。接口契约与实现不符时 Spec is Truth。
50
79
 
80
+ ### 6.2 契约字段清单(可选但强烈建议)
81
+ | API ID | 请求必填字段 | 请求可选字段 | 响应关键字段 | 错误响应字段 |
82
+ |-------|-------------|-------------|-------------|-------------|
83
+ | API01 | `ticket_id` | `status[]` | `records,total` | `code,message` |
84
+
51
85
  ## 7. 影响范围
52
86
 
87
+ ### 7.1 页面/路由矩阵
88
+ | 页面ID | 路由 | 页面职责 | 依赖 API | 关键交互 |
89
+ |-------|------|---------|---------|---------|
90
+ | PAGE01 | `/work-ticket` | 工作票列表 | API01 | 查询 / 翻页 / 打开详情 |
91
+
92
+ ### 7.2 外部依赖矩阵
93
+ | 依赖ID | 类型 | 调用时机 | 失败策略 | 是否可 mock |
94
+ |-------|------|---------|---------|-------------|
95
+ | EX01 | 第三方 API | 提交后回写 | 降级/重试/阻断 | 是 |
96
+
53
97
  ## 8. 风险与关注点
54
98
  > ⚠️ 涉及外部推送/敏感信息必须标注
55
99
 
@@ -66,6 +110,12 @@ GET /api/xxx
66
110
 
67
111
  ## 10. 技术决策
68
112
 
113
+ ## 10.5 验收场景矩阵(必填,smoke/e2e 按此抽样)
114
+ | 场景ID | 类型(happy/rule/error) | 步骤 | 预期结果 | 涉及功能点/规则 |
115
+ |-------|-------------------------|------|---------|----------------|
116
+ | AC01 | happy | 打开列表 → 查询 → 查看详情 | 列表刷新并可进入详情 | F01 |
117
+ | AC02 | rule | 输入非法时间提交 | 返回 V01 文案 | F04,V01 |
118
+
69
119
  ## 11. 执行日志
70
120
  | Task | 状态 | 实际改动文件 | 备注 |
71
121
 
@@ -76,6 +126,16 @@ GET /api/xxx
76
126
  - Code Quality:(Critical 问题数 / Important 问题数)
77
127
  - 结论:通过 / 需修复
78
128
 
129
+ ### 12.1 功能点闭环评分
130
+ | 功能点ID | 前端证据 | 后端证据 | 测试/冒烟证据 | 结论(done/partial/missing) |
131
+ |---------|---------|---------|--------------|----------------------------|
132
+ | F01 | `src/views/...` | `XxxController#...` | `AC01` | done |
133
+
134
+ ### 12.2 规则覆盖评分
135
+ | 规则ID | 代码证据 | 验证证据 | 结论(done/partial/missing) |
136
+ |-------|---------|---------|----------------------------|
137
+ | V01 | `XxxService#...` | `AC02` | done |
138
+
79
139
  ## 13. 确认记录(HARD-GATE)
80
140
  - **确认时间**:
81
141
  - **确认人**:
@@ -14,6 +14,9 @@
14
14
 
15
15
  ## Task 1: 任务名
16
16
  - **目标**:一句话描述
17
+ - **覆盖功能点**:F01/F02(必填,无则写“无”)
18
+ - **覆盖业务规则**:V01/V02(必填,无则写“无”)
19
+ - **覆盖 API / 页面**:API01 / PAGE01(必填,无则写“无”)
17
20
  - **涉及文件**:
18
21
  - `path/to/File.java` — 新增/修改,做什么
19
22
  - **关键签名**:
@@ -24,6 +27,10 @@
24
27
  - **验收标准**:
25
28
  - 正向:怎样算完成(具体的接口返回值或页面行为)
26
29
  - 异常:非法参数/边界值时的预期行为(如 400 返回、空列表等)
30
+ - **闭环证据要求**:
31
+ - 前端:页面/按钮/表单/反馈具体到元素或组件
32
+ - 后端:Controller/Service/校验逻辑具体到方法
33
+ - 验证:至少 1 条命令输出或 1 条可复现用户路径
27
34
  - **验证命令**(必填,可直接执行的 curl 或测试命令):
28
35
  ```bash
29
36
  curl -s http://localhost:8080/api/xxx | python3 -m json.tool
@@ -52,10 +59,18 @@ Content-Type: application/json
52
59
 
53
60
  #### 已实现 vs 未实现声明(任一字段留空 = fail)
54
61
  - **本 task 已实现的功能点编号**:F0X, F0Y(grep 命中证据)
62
+ - **本 task 已实现的业务规则编号**:V0X, V0Y(grep 命中证据)
55
63
  - **本 task 未实现的功能点编号**(留空则 fail,无未实现也必须写"无"):
64
+ - **本 task 未实现的业务规则编号**(留空则 fail,无未实现也必须写"无"):
56
65
  - **已知缺陷或 TODO**(留空则 fail,无则写"无"):
57
66
  - **简化或降级处理**(留空则 fail,无则写"无"):
58
67
 
68
+ #### 契约一致性自查(涉及 API 时必填)
69
+ - **前端请求字段**:
70
+ - **后端接收字段**:
71
+ - **响应字段风格**:snake_case / camelCase / 其他
72
+ - **一致性结论**:一致 / 不一致(不一致必须说明)
73
+
59
74
  #### 失败场景自我攻击(apply 完成前必填,留空则 fail)
60
75
  > 在标记 ✅ 之前,列出本实现**至少 3 种**可能失败的场景,并说明每种是否已处理
61
76
 
@@ -86,6 +101,7 @@ Content-Type: application/json
86
101
 
87
102
  ### 自评数据(必须填具体数字,gate 会与实测对比,偏差 > 30% 阻断)
88
103
  - **自评功能点覆盖率**:__/__ (__%)
104
+ - **自评业务规则覆盖率**:__/__ (__%)
89
105
  - **自评后端文件数**:__ 个
90
106
  - **自评前端文件数**:__ 个
91
107
  - **自评本次新增缺陷数**:__ 个(不知道写"未统计",禁止写 0 除非真的为 0)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alenfitz/spec-copilot",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "Spec-Driven Development Framework — one package, six AI coding tools (opencode, Claude Code, Cursor, Windsurf, GitHub Copilot, Cline)",
5
5
  "keywords": [
6
6
  "ai-coding",