@alenfitz/spec-copilot 3.1.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @alenfitz/spec-copilot v3.1.0
2
+ * @alenfitz/spec-copilot v3.2.1
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 _0x14756c=_0x58b8,_0x15b77e=_0x58b8;(function(_0x3169ca,_0x1a9026){const _0x4bae4f={_0x301db6:0x1a8,_0x22e91d:0x25c,_0x37edd9:0x162},_0x1b62a9=_0x58b8,_0x17ad7c=_0x58b8,_0x32fe0d=_0x3169ca();while(!![]){try{const _0x1fbab0=parseInt(_0x1b62a9(0x186))/(-0x5ff*0x2+-0x187f*0x1+0x247e)+-parseInt(_0x17ad7c(_0x4bae4f._0x301db6))/(0x1c4*-0xe+0x1ac5+-0x20b)*(-parseInt(_0x1b62a9(_0x4bae4f._0x22e91d))/(-0xa9f*0x1+-0x42a*-0x4+-0x606))+-parseInt(_0x17ad7c(0x257))/(0x1cf7+-0x51a+0x6f*-0x37)+-parseInt(_0x1b62a9(0x244))/(0xeb6*-0x1+-0x6*0x3be+0x252f)*(parseInt(_0x17ad7c(0x181))/(0x1d9f+-0x20d2+0x339))+parseInt(_0x17ad7c(0x179))/(-0x2001+0x156f+-0x1*-0xa99)+parseInt(_0x1b62a9(_0x4bae4f._0x37edd9))/(0x23e5+-0x2*-0xc6d+-0x3cb7)+parseInt(_0x1b62a9(0x1ca))/(0x3*0x557+0xb4e*0x3+-0x1*0x31e6)*(parseInt(_0x17ad7c(0x1eb))/(0x1d*0x3a+-0x14d2+0xe4a));if(_0x1fbab0===_0x1a9026)break;else _0x32fe0d['push'](_0x32fe0d['shift']());}catch(_0x282557){_0x32fe0d['push'](_0x32fe0d['shift']());}}}(_0x4cd6,0x55b44+-0x1*-0xa5d49+-0x69f78));function _0x4cd6(){const _0x226793=['r3fQt1y','yM90Ac1TAxnZAq','z2L0igDYzxaGlq','vKjOB3O','lM1K','Be9zzNK','Du9TDLu','B2rLzeLKzw50Aq','q3ztsve','C3jJ','C0rmBfK','zgLZDa','lxrYzwu','AMP4EvO','DfPdrLG','yKLYv2O','CLnHs0K','Aw5KzxG','zw5KC1DPDgG','txjTrgW','mJa2mJyYovjAtMH5sW','Ee5juKG','CMvHzezPBgvtEq','wLHAq1u','BM9Uu25HA2vgzq','CMvHzgrPCLn5BG','BMfTzq','vNnAq3y','Dg90ywXbCgLdyq','DxrMltG','CMvXDwvZDezPzq','BvfmDhe','Dg9vChbLCKnHCW','zNjVBNrgBG','DhLWzq','ruPsq0q','zMLSDgvY','C3jJl21HAw4','B3qV','CM91DgvYl2LUza','ufvVrLi','BgvUz3rO','tvjNEuW','5B2t5yMn55M75B2v5lQ66kkR5yMn56UV5yAz5Q27','BM8Ty2f0y2G','zKHvzMu','rMLIC2e','CgfZCW','qKTrqMO','qvbjioIWG+EuQoACIsbJyq','sgfUzgXPBMC','C3bSAxq','CMvNzxG','mtbhCu9pzuC','qLnQrgu','qxbNzxC','zxGUDhm','lNrZEa','yMfJA0zPBgu','C3bLy19JB3bPBa','BNnPzguTD29YAW','twfWCgLUzW','CeX3CLu','zw5JB2rPBMC','AM9PBG','wu1ZDMe','D0PRB3q','uNnrsgW','rwjcreC','55Ar5lY856gS57Yw56cb5PwW5O2U77Yi','kcGOlISPkYKRkq','r1Dsz2S','BwfW','C3HXBwC','rK1eB1y','56gS57Yw56cb5lIA5yQH6lQR5lU95Qoa5Rwl','Cgf0Aa','DwLUEui','y2HLy2TsB3v0zq','lMqUDhm','BwLZBwf0y2HLCW','zMuTBwLZC2LUzW','uxjTBKO','Cxr5quS','BwLU','5lQg6zsz6k+V77Yj','BcaTlsaI','ioEBToAoPEI1I+waVos4UUEHRoE8LUEGGEAvSa','CgLWzq','lMT0','DhjPBq','zw5JEq','Bwf0y2HbBgW','u01Kt1e','DgfYz2v0','D0DmCwK','rLPzCMS','Axzlu0u','zMHytK8','Aw5JBhvKzxm','zxHPC3rZu3LUyW','u0jNvgS','s1LLwLi','DvrTugW','CwD2qwm','zwPNDfm','ELDLtLO','zfrmrMi','yMfJA0zU','C2nTC0m','swDsAve','s3viDeG','zMLSzq','zMLUza','ios4QUwVUEIXOE+8Iq','56gS57Yw56cb55sO5OI3ieLe','lNrZ','ENbizvq','AwDUB3jL','Bwf0y2G','Eu5Lqwm','y2HLy2TZ','AgfZ','Dg9tDhjPBMC','CfzoEhG','y3DK','vLzKEva','C3vZCgvJDhm','yKnTsMS','BgXOvfK','zwXKCW','lMPHDMe','ios4QUwVUEIXOE+8JowqQYbPzc8','zuTcrvu','56gS57Yw56cb5PwW5O2U5Qoa5Rwl','D3v0yLK','C29Tzq','zM5oyw1L','C3rHDhvZ','s1fLENK','Du94r00','B0fJzM8','nJbowKXsrfy','Ehb2tgO','zNjVBNrLBMqVCW','vLjYDKq','ssdNQ6/NGRNLO7dMMi4','CMvSyxrPDMu','ywjZ','wKfewMC','AMPIEgG','zxHLyW','yvLrC1K','AxneAxjLy3rVCG','z2L0ihjLDI1Wyq','Bwv0Ag9K','zgf0yvnVDxjJzq','yvfUzwW','BgXZ','CMvWBgfJzq','rvb2tLG','nduZmdm4ogrxwuTsyq','s0jbBLu','uKrLsge','reHRu28','DgnOios9HUs4UUEPUU+8IowqNUAoIq','m0vxBLDVEa','y2HLy2TLza','sNPtAwS','C2XPy2u','sNP4C1C','tKfhruC','qvbjioIWG+EuQoAxOoMuMEIVR+wKHa','whvZDwi','CNnLic0TAxmTAq','uvzduwu','C3rKAw8','ywrK','BLHVuLi','BM9iyw5KBgLUzW','5yMn5zco56UV5Awr57QM5lIa6iE05OcN','uhjeq2e','wgLJtNy','r2Dowue','B0rmu04','Bwf4','6zsz6k+V5Ase55cg5A6H6k6H','zgf0yxnVDxjJzq','BMfTzsdLRzFMRRuG4Ocuia','B2jQzwn0q291BG','6lEV55sX5A6m5Pw05OcN','BgfZDeLUzgv4','otq4nJy3mLflzLrnwq','ChvZAa','y0LuBwi','r2Pxshy','twHpqwq','vKHUrxO','yY9TywLU','zu1Wq0i','zgv0ywLS','yxbWl3nYyW','u3PIrgu','BwvZC2fNzq','y2HLy2TbCgLdBW','yMfJA2vUzc9ZCG','BgLUzq','CMvXDwLYzwrgAq','DgfIBgveyxrHlW','55cg77Yi5PEGignHDgnOlW','A3jTshC','zw1WDhKTy2f0yW','vhzRvLa','AgfYzgnVzgvKlq','lMDV','nZCZodi3nNfSugTJAa','s1vJu1C','wejjyLy','y2HPBgrFChjVyW','EMXeCK8','s2TVuxC','zgHjDgC','C3rHCNrZv2L0Aa','nte2mJeWCenZy25K','wwP3zvK','wwXUv3q','qvbjiowLKEE6PUAGOEMQJa','D25PtK0','nJmXnZjMALf2vuC','reD3vhK','zxjYB3i','q29TCgXLDgvUzq','we16vwy','te9UCKi','vKXXs1K','CgTmAfa','BNrYywn0','5PYQ5OM+5yIWihjVDxrLCG','lMPZ','CM91DgvYlMPZ','BxfsvwG','BwLZC2LUz09UrG','BM9Kzv9TB2r1Ba','5BQu5lUoiefqssdOJRFLJ5BVViK','CfLWB2e','EgTPCKi','C2vHCMnO','55sX5AoW5PIo','uxzPruu','rLryEuK','swTVy00','DgvZDa','vMLsvum','wKD5CMq','t1bpuNK','BM9Uu25HA2vczq','lNrLC3qU','CMvHC29U','EhLKvgG','teT3twW','tfPTEhm','lNz1zq','mZu1mJe0uwXUwxb6','tNbHDMu','zw1duwy','svDpvvy','BhDnCM8','qNv0DLm','A0XmBxq','D2L0AezPBgvuEq','CM91DgvYlNrZ','zxGUANm','uKPJq1u','x190zxn0','zNjVBNrgAwXL','lMPZEa'];_0x4cd6=function(){return _0x226793;};return _0x4cd6();}function _0x58b8(_0x837ce4,_0x31fe55){_0x837ce4=_0x837ce4-(0x1f47+-0x1*-0x92f+-0xd0c*0x3);const _0x3283f0=_0x4cd6();let _0x18494b=_0x3283f0[_0x837ce4];if(_0x58b8['ilZORL']===undefined){var _0x3029a4=function(_0x4d9ef7){const _0x22f5e8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58d390='',_0x3d9a54='',_0x5ddd1e=_0x58d390+_0x3029a4,_0x5b4be8=(''+function(){return 0x2419+-0x91d*0x1+-0x13a*0x16;})['indexOf']('\x0a')!==-(-0x100c+-0x1309*-0x2+0x757*-0x3);for(let _0x44a8d5=0xf1c+0xe8c+-0x1da8,_0xade066,_0x18ee83,_0x23b360=0x1bdc*-0x1+0x1d5b+-0x17f*0x1;_0x18ee83=_0x4d9ef7['charAt'](_0x23b360++);~_0x18ee83&&(_0xade066=_0x44a8d5%(-0x1a44+0x6e*-0x59+0x4086)?_0xade066*(-0x16cb+0x12b*-0x5+-0x1*-0x1ce2)+_0x18ee83:_0x18ee83,_0x44a8d5++%(0x725+0x3*-0x7d4+0x4f*0x35))?_0x58d390+=_0x5b4be8||_0x5ddd1e['charCodeAt'](_0x23b360+(-0x23*-0x49+0x96c+-0x135d))-(0xde1+-0x1*0x13be+0x5e7)!==-0x245d+-0xb*-0x31c+0x7*0x4f?String['fromCharCode'](0x1b73+0x143b+-0x2eaf&_0xade066>>(-(-0x7*-0x45a+0x53c+-0x23b0)*_0x44a8d5&-0x2*-0x497+-0xd*0x2b7+0x1a23)):_0x44a8d5:0x208*-0x1+0x1e83+-0x1c7b){_0x18ee83=_0x22f5e8['indexOf'](_0x18ee83);}for(let _0x12668b=-0x7ca+0x176a+-0xfa0,_0x4a29ec=_0x58d390['length'];_0x12668b<_0x4a29ec;_0x12668b++){_0x3d9a54+='%'+('00'+_0x58d390['charCodeAt'](_0x12668b)['toString'](-0x1ccd+0x1206+-0x22b*-0x5))['slice'](-(-0xaaf+0xdbd*-0x2+0x262b));}return decodeURIComponent(_0x3d9a54);};_0x58b8['CnEedJ']=_0x3029a4,_0x58b8['SAJxbU']={},_0x58b8['ilZORL']=!![];}const _0x4932d0=_0x3283f0[-0x17f1+0x1f5c+-0x76b],_0x165344=_0x837ce4+_0x4932d0,_0x357bd8=_0x58b8['SAJxbU'][_0x165344];if(!_0x357bd8){const _0x55a097=function(_0x746c1f){this['vrulvY']=_0x746c1f,this['AEBLhE']=[0x1a7+-0xc73*-0x1+-0xe19,0x170f+0x2e0*-0x5+-0x8af,-0x515*0x2+0x2655+-0x1c2b],this['zNElOa']=function(){return'newState';},this['MNufSg']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['ZSBJug']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x55a097['prototype']['oCaXml']=function(){const _0x3822b3=new RegExp(this['MNufSg']+this['ZSBJug']),_0x3d67dc=_0x3822b3['test'](this['zNElOa']['toString']())?--this['AEBLhE'][0x5*0x271+-0x390*0x8+-0x413*-0x4]:--this['AEBLhE'][-0xc16+0xa85*0x1+0x191*0x1];return this['MAkLuq'](_0x3d67dc);},_0x55a097['prototype']['MAkLuq']=function(_0x376172){if(!Boolean(~_0x376172))return _0x376172;return this['tDpLNR'](this['vrulvY']);},_0x55a097['prototype']['tDpLNR']=function(_0x2bf51a){for(let _0x122268=-0x22f9+-0x421+-0x1*-0x271a,_0x2b415a=this['AEBLhE']['length'];_0x122268<_0x2b415a;_0x122268++){this['AEBLhE']['push'](Math['round'](Math['random']())),_0x2b415a=this['AEBLhE']['length'];}return _0x2bf51a(this['AEBLhE'][0x560*0x6+-0x5c2+0x1*-0x1a7e]);},(''+function(){return 0x1b53+-0x8*-0x14e+-0x1*0x25c3;})['indexOf']('\x0a')===-(-0x64*-0x27+0x6b9+-0x464*0x5)&&new _0x55a097(_0x58b8)['oCaXml'](),_0x18494b=_0x58b8['CnEedJ'](_0x18494b),_0x58b8['SAJxbU'][_0x165344]=_0x18494b;}else _0x18494b=_0x357bd8;return _0x18494b;}const _0x1e3fe3=(function(){let _0x3021e5=!![];return function(_0x54ba67,_0x5af9ce){const _0x1457b4=_0x3021e5?function(){if(_0x5af9ce){const _0x550bda=_0x5af9ce['apply'](_0x54ba67,arguments);return _0x5af9ce=null,_0x550bda;}}:function(){};return _0x3021e5=![],_0x1457b4;};}()),_0x4b7c3b=_0x1e3fe3(this,function(){const _0x530a4d={_0x4d00b6:0x198,_0x1a0a91:0x1fc},_0xdc30e6=_0x58b8,_0x4f215b=_0x58b8;return _0x4b7c3b[_0xdc30e6(0x231)]()[_0xdc30e6(_0x530a4d._0x4d00b6)](_0xdc30e6(_0x530a4d._0x1a0a91)+'+$')[_0xdc30e6(0x231)]()['constructo'+'r'](_0x4b7c3b)['search'](_0xdc30e6(0x1fc)+'+$');});_0x4b7c3b();const fs=require('fs'),path=require(_0x14756c(0x202)),{execSync}=require(_0x15b77e(0x17c)+'ess');function isGitRepo(_0x39f839){const _0x3098a3={_0x4aef2c:0x152,_0x2e3ff7:0x22c,_0x5eb251:0x1f2},_0x11a023=_0x15b77e,_0x26686d=_0x15b77e;try{const _0x41b27e={};return _0x41b27e[_0x11a023(0x233)]=_0x39f839,_0x41b27e[_0x11a023(_0x3098a3._0x4aef2c)]=_0x26686d(_0x3098a3._0x2e3ff7),execSync('git\x20rev-pa'+_0x26686d(0x264)+_0x26686d(_0x3098a3._0x5eb251)+_0x26686d(0x1c2),_0x41b27e),!![];}catch{return![];}}function gitGrep(_0x338e74,_0x3d82ab){const _0xdb5ea1={_0x5a7670:0x261,_0x566e8a:0x20e,_0x5e1aa7:0x22c,_0x513a8f:0x1f5,_0x5244c8:0x1b8,_0x2c0e5b:0x210,_0x11ffb3:0x1e9},_0x20a292=_0x15b77e,_0x17da80=_0x15b77e,_0x5390eb={};_0x5390eb[_0x20a292(_0xdb5ea1._0x5a7670)]=_0x17da80(_0xdb5ea1._0x566e8a),_0x5390eb[_0x20a292(0x263)]=_0x20a292(_0xdb5ea1._0x5e1aa7);const _0x7bfa58=_0x5390eb;try{const _0x58b950={};_0x58b950[_0x20a292(0x233)]=_0x338e74,_0x58b950[_0x20a292(_0xdb5ea1._0x513a8f)]=_0x20a292(0x1d3),_0x58b950[_0x20a292(0x152)]=[_0x17da80(0x20e),_0x7bfa58[_0x20a292(0x261)],_0x7bfa58[_0x20a292(0x263)]];const _0x5b2022=execSync(_0x20a292(_0xdb5ea1._0x5244c8)+_0x20a292(0x20c)+_0x3d82ab+'\x22',_0x58b950)[_0x17da80(_0xdb5ea1._0x2c0e5b)]();return _0x5b2022?_0x5b2022[_0x20a292(_0xdb5ea1._0x11ffb3)]('\x0a')['filter'](Boolean):[];}catch{return[];}}function findFiles(_0xd82040,_0x3dfb1f,_0xd737e1=-0xb18+-0x32*-0x94+-0x11cb){const _0x1e97fb={_0xa3adf6:0x1b6,_0x4d830b:0x200},_0xb8ff7d={_0x4d80fe:0x21a,_0x3d4fdb:0x1af,_0x5bfb7c:0x1cf,_0x4dbb6f:0x1b6,_0x4d830f:0x200,_0x107575:0x247,_0xcd0900:0x185,_0x688db7:0x1d0,_0x24a348:0x1f4,_0xe9ec41:0x1d0,_0x48f353:0x24f,_0xb04028:0x23e,_0x47ec60:0x153,_0x370816:0x251,_0x2895f4:0x202},_0x435115=_0x15b77e,_0x328a65=_0x15b77e,_0x19446e={};_0x19446e[_0x435115(0x245)]=function(_0x5c1287,_0x454186){return _0x5c1287>_0x454186;},_0x19446e[_0x435115(_0x1e97fb._0xa3adf6)]=_0x328a65(0x203),_0x19446e[_0x328a65(_0x1e97fb._0x4d830b)]='BRaZa',_0x19446e[_0x435115(0x17d)]=function(_0x3f92c6,_0x2fa8ee){return _0x3f92c6===_0x2fa8ee;},_0x19446e['VRrvD']=_0x328a65(0x1c1),_0x19446e[_0x328a65(0x185)]=function(_0x272aad,_0x4f9ac8){return _0x272aad===_0x4f9ac8;},_0x19446e[_0x328a65(0x1f4)]=_0x328a65(0x214);const _0x56e89b=_0x19446e,_0x103bec=[];function _0xfa7e20(_0x367fdf,_0xd146b4){const _0x3b99a6=_0x435115,_0x1affc1=_0x435115;if(_0x56e89b[_0x3b99a6(0x245)](_0xd146b4,_0xd737e1)||!fs[_0x3b99a6(_0xb8ff7d._0x4d80fe)](_0x367fdf))return;try{const _0x141a0c={};_0x141a0c[_0x1affc1(_0xb8ff7d._0x3d4fdb)+'pes']=!![];const _0x7277f5=fs[_0x3b99a6(_0xb8ff7d._0x5bfb7c)+'c'](_0x367fdf,_0x141a0c);for(const _0x199897 of _0x7277f5){if(_0x56e89b[_0x1affc1(_0xb8ff7d._0x4dbb6f)]!==_0x56e89b[_0x1affc1(_0xb8ff7d._0x4d830f)]){if(_0x199897[_0x1affc1(0x1d0)][_0x3b99a6(0x180)]('.')||_0x199897['name']===_0x1affc1(0x194)+'es'||_0x56e89b[_0x3b99a6(0x17d)](_0x199897[_0x1affc1(0x1d0)],_0x56e89b[_0x1affc1(_0xb8ff7d._0x107575)])||_0x56e89b[_0x3b99a6(_0xb8ff7d._0xcd0900)](_0x199897[_0x3b99a6(_0xb8ff7d._0x688db7)],'build')||_0x199897[_0x1affc1(0x1d0)]===_0x56e89b[_0x3b99a6(_0xb8ff7d._0x24a348)])continue;const _0x19b42c=path['join'](_0x367fdf,_0x199897[_0x1affc1(_0xb8ff7d._0xe9ec41)]);if(_0x199897[_0x3b99a6(_0xb8ff7d._0x48f353)+'y']())_0xfa7e20(_0x19b42c,_0xd146b4+(0x163f+-0x2620+0xfe2));else{if(_0x3dfb1f[_0x1affc1(_0xb8ff7d._0xb04028)](_0x58d2fa=>_0x199897[_0x1affc1(0x1d0)]['endsWith'](_0x58d2fa)))_0x103bec[_0x3b99a6(0x163)](_0x19b42c);}}else{_0x19e6b3[_0x1affc1(_0xb8ff7d._0x47ec60)](_0x100dda);const _0x12f7c3={};_0x12f7c3[_0x3b99a6(_0xb8ff7d._0x370816)]=_0xc899d2[-0x503*0x1+-0x21df+0xb*0x389],_0x12f7c3[_0x1affc1(_0xb8ff7d._0x2895f4)]=_0x45afde[0x7*-0x17+-0x36c*-0x1+-0x2c9],_0x19a525[_0x3b99a6(0x163)](_0x12f7c3);}}}catch{}}return _0xfa7e20(_0xd82040,0x1a7f+0x1e10+-0x388f),_0x103bec;}function readSafe(_0x3b94f4){const _0x8d3df3={_0x4242c0:0x1d3,_0x329fea:0x1cc},_0x4fab3e=_0x14756c,_0x1ce845=_0x14756c,_0x283e6f={};_0x283e6f[_0x4fab3e(0x159)]=_0x4fab3e(_0x8d3df3._0x4242c0);const _0x34aae3=_0x283e6f;try{return fs[_0x4fab3e(_0x8d3df3._0x329fea)+'nc'](_0x3b94f4,_0x34aae3[_0x4fab3e(0x159)]);}catch{return'';}}function uniq(_0x2364a2){const _0x350875={_0x478344:0x1da},_0x205c79=_0x15b77e;return[...new Set(_0x2364a2[_0x205c79(_0x350875._0x478344)](Boolean))];}function extractSpecApis(_0xde673e){const _0x105f61={_0x310508:0x215,_0xbec0a8:0x24d,_0x454d62:0x215,_0x11d69:0x184,_0x540201:0x1e5,_0x5f0934:0x188,_0x398abc:0x16d,_0x421344:0x251},_0x1f2ebf=_0x15b77e,_0x46b7e8=_0x15b77e,_0x60cc61={};_0x60cc61[_0x1f2ebf(_0x105f61._0x310508)]=_0x1f2ebf(0x18b);const _0x36d261=_0x60cc61,_0x3dfd5d=[],_0x24fa91=new Set(),_0x22e218=/(GET|POST|PUT|DELETE|PATCH)\s+(\/api\/[^\s|,))\]]+)/g;let _0x22bb52;while((_0x22bb52=_0x22e218[_0x46b7e8(_0x105f61._0xbec0a8)](_0xde673e))!==null){const _0x5b7c3c=_0x22bb52[0x68b+-0x1*-0x15cd+0x5*-0x5ab]+'\x20'+_0x22bb52[-0x1*0x169d+-0x1b05+0x31a4];if(!_0x24fa91[_0x1f2ebf(0x230)](_0x5b7c3c)){if(_0x36d261[_0x46b7e8(_0x105f61._0x454d62)]!==_0x36d261[_0x46b7e8(0x215)]){const _0x573645={};_0x573645[_0x1f2ebf(0x1d0)]=_0x46b7e8(_0x105f61._0x11d69),_0x573645[_0x46b7e8(_0x105f61._0x540201)]=!![],_0x573645[_0x46b7e8(_0x105f61._0x5f0934)]=_0x2ab81e[_0x46b7e8(_0x105f61._0x398abc)],_0x1fd733[_0x46b7e8(0x163)](_0x573645);}else{_0x24fa91[_0x46b7e8(0x153)](_0x5b7c3c);const _0x2f5823={};_0x2f5823[_0x1f2ebf(_0x105f61._0x421344)]=_0x22bb52[0x1df5+-0xb*0x25e+-0x3ea],_0x2f5823['path']=_0x22bb52[0x1*0x242e+0x26a9+-0x4ad5],_0x3dfd5d['push'](_0x2f5823);}}}return _0x3dfd5d;}function extractSpecRoutes(_0x4e46c2){const _0x4a1e12={_0x51d2f9:0x264,_0x6c217b:0x253,_0x221996:0x24d,_0x4c5a72:0x259,_0x479759:0x22c,_0xbe3769:0x1fd,_0x33837d:0x1e9,_0x3025c2:0x1fe},_0x4c833f=_0x14756c,_0x3178e9=_0x14756c,_0x472c8d={};_0x472c8d[_0x4c833f(0x1fd)]=_0x4c833f(0x250)+_0x3178e9(_0x4a1e12._0x51d2f9)+_0x3178e9(0x1f2)+_0x4c833f(0x1c2),_0x472c8d[_0x3178e9(0x1aa)]=function(_0x382e02,_0x3224c6){return _0x382e02!==_0x3224c6;},_0x472c8d[_0x4c833f(0x259)]='jQbsQ',_0x472c8d[_0x3178e9(_0x4a1e12._0x6c217b)]='SUZCr',_0x472c8d['BSjDe']=function(_0x11aabb,_0x372429){return _0x11aabb!==_0x372429;};const _0x238ec9=_0x472c8d,_0x5dbce5=[],_0x2b80df=new Set(),_0x517779=/(?:路由|route|path|页面路径)[::]\s*([\/\w\-:]+)/gi;let _0x3cc462;while(_0x238ec9['emCQf'](_0x3cc462=_0x517779[_0x3178e9(_0x4a1e12._0x221996)](_0x4e46c2),null)){if(_0x238ec9[_0x4c833f(_0x4a1e12._0x4c5a72)]===_0x238ec9[_0x3178e9(_0x4a1e12._0x6c217b)])try{const _0x355307={};return _0x355307[_0x3178e9(0x233)]=_0x417209,_0x355307[_0x4c833f(0x152)]=_0x3178e9(_0x4a1e12._0x479759),_0x422102(mkSmgY[_0x4c833f(_0x4a1e12._0xbe3769)],_0x355307),!![];}catch{return![];}else!_0x2b80df['has'](_0x3cc462[0x1*0x23ed+-0x1d30+-0x6bc])&&(_0x2b80df[_0x4c833f(0x153)](_0x3cc462[-0xd99*-0x2+0x1d6+-0x1d07]),_0x5dbce5['push'](_0x3cc462[0xebf+0x15*0x167+-0x2c31]));}const _0x4cde01=/\|\s*(\/[a-zA-Z][\w\-\/:]*)\s*\|/g;while(_0x238ec9[_0x4c833f(0x1ec)](_0x3cc462=_0x4cde01[_0x4c833f(_0x4a1e12._0x221996)](_0x4e46c2),null)){_0x3178e9(0x1c5)!==_0x4c833f(0x216)?!_0x2b80df['has'](_0x3cc462[-0x96f+0x2427+-0x1ab7])&&(_0x2b80df[_0x4c833f(0x153)](_0x3cc462[-0x1*-0x1691+-0x52c*0x1+-0x1164]),_0x5dbce5['push'](_0x3cc462[-0x60b+-0x25ee+-0x1*-0x2bfa])):_0x13c909=_0x4d0ab5[-0x13*0x17+0x17f8+-0x1642][_0x3178e9(_0x4a1e12._0x33837d)](',')[_0x3178e9(_0x4a1e12._0x3025c2)](_0x446e41=>_0x446e41[_0x3178e9(0x210)]()['replace'](/\?.*$/,'')[_0x4c833f(0x255)](/:.*/,'')[_0x4c833f(0x210)]())[_0x3178e9(0x1da)](_0x2f80d2);}return _0x5dbce5;}function extractFrontApiCalls(_0x35e01){const _0x305443={_0x389719:0x164,_0x14189a:0x236,_0x4abcf3:0x1e0,_0x179f5d:0x18c,_0xc6f1a8:0x16b,_0x26daff:0x1da,_0x533341:0x21a,_0x57f7f9:0x22a,_0x5a7b44:0x19d,_0xce6c45:0x24d,_0x4c7dc1:0x22d,_0x43b395:0x22d,_0x45c7b0:0x187,_0x1b1dd5:0x1fe,_0x3d237e:0x1cc,_0x239399:0x25f,_0x1e5c31:0x1e9,_0x16ce54:0x1df,_0x2dca6f:0x1fb,_0x2cf956:0x163,_0x46ade2:0x1da,_0x531a77:0x163,_0x440551:0x1d6},_0x3a155a=_0x14756c,_0x13bdd1=_0x14756c,_0x13f0a7={};_0x13f0a7[_0x3a155a(0x192)]='hardcoded-'+'array',_0x13f0a7[_0x3a155a(0x242)]='src',_0x13f0a7[_0x13bdd1(_0x305443._0x389719)]=_0x3a155a(0x190),_0x13f0a7[_0x13bdd1(_0x305443._0x14189a)]=function(_0x59675e,_0x90f80){return _0x59675e!==_0x90f80;},_0x13f0a7[_0x13bdd1(_0x305443._0x4abcf3)]=function(_0x219ecf,_0x44e462){return _0x219ecf===_0x44e462;},_0x13f0a7[_0x3a155a(0x225)]=_0x13bdd1(0x187),_0x13f0a7[_0x13bdd1(0x196)]=function(_0x4c9531,_0xf23418){return _0x4c9531!==_0xf23418;},_0x13f0a7[_0x13bdd1(_0x305443._0x179f5d)]=_0x3a155a(0x218);const _0x229461=_0x13f0a7,_0x214528=[_0x3a155a(0x246)+'rc',_0x13bdd1(_0x305443._0xc6f1a8),_0x229461['uOxGM']][_0x3a155a(0x1fe)](_0x3d8557=>path[_0x13bdd1(0x1f6)](_0x35e01,_0x3d8557))[_0x3a155a(_0x305443._0x26daff)](fs[_0x3a155a(_0x305443._0x533341)]),_0x25c3e2=[];for(const _0x5329db of _0x214528){const _0x399c2e=findFiles(_0x5329db,[_0x13bdd1(_0x305443._0x57f7f9),_0x229461[_0x3a155a(0x164)]]);for(const _0x5d396e of _0x399c2e){const _0x1e47f4=path['relative'](_0x35e01,_0x5d396e);if(!/\/api\//[_0x3a155a(_0x305443._0x5a7b44)](_0x1e47f4['replace'](/\\/g,'/')))continue;const _0x2fa9d7=readSafe(_0x5d396e);if(!_0x2fa9d7)continue;const _0x346835=/export function\s+([A-Za-z0-9_$]+)\s*\(([^)]*)\)\s*\{([\s\S]*?)\n\}/g;let _0x5b84b7;while(_0x229461[_0x13bdd1(0x236)](_0x5b84b7=_0x346835[_0x13bdd1(_0x305443._0xce6c45)](_0x2fa9d7),null)){const _0x48aa50=_0x5b84b7[0x5e2+-0xb16+0x535],_0x19c656=_0x5b84b7[-0x21d7+0x1c14+-0x5c5*-0x1]||'',_0x45db85=_0x5b84b7[-0x22*0x1f+-0x1*0x18e8+0x1d09]||'',_0x2213d4=_0x45db85[_0x3a155a(_0x305443._0x4c7dc1)](/\.(get|post|put|delete|patch)\s*<[^>]*>?\s*\(\s*['"`]([^'"`]+)['"`]/i)||_0x45db85[_0x13bdd1(_0x305443._0x43b395)](/\.(get|post|put|delete|patch)\s*\(\s*['"`]([^'"`]+)['"`]/i);if(!_0x2213d4)continue;const _0x18bbd3=_0x19c656[_0x13bdd1(_0x305443._0x4c7dc1)](/\{([\s\S]*)\}/);let _0x2e514b=[];if(_0x18bbd3){if(_0x229461['MRgyL'](_0x13bdd1(_0x305443._0x45c7b0),_0x229461[_0x3a155a(0x225)]))_0x2e514b=_0x18bbd3[0x16b*-0x6+-0x1637+-0xa3e*-0x3][_0x3a155a(0x1e9)](',')[_0x3a155a(_0x305443._0x1b1dd5)](_0x517b56=>_0x517b56['trim']()[_0x13bdd1(0x255)](/\?.*$/,'')[_0x13bdd1(0x255)](/:.*/,'')['trim']())[_0x13bdd1(0x1da)](Boolean);else return _0x19b785[_0x3a155a(_0x305443._0x3d237e)+'nc'](_0x2a14cb,'utf-8');}else{if(_0x229461[_0x3a155a(0x196)]('fhXNO',_0x229461[_0x13bdd1(0x18c)])){const _0x40b915=_0x3c01fb[_0x3a155a(_0x305443._0x239399)](-0x26c6*-0x1+-0x14f7+-0x11cf,_0x8ed8af[_0x13bdd1(0x1c7)])[_0x3a155a(_0x305443._0x1e5c31)]('\x0a')[_0x13bdd1(_0x305443._0x16ce54)],_0x87a4aa={};_0x87a4aa['file']=_0x11cb0f,_0x87a4aa['line']=_0x40b915,_0x87a4aa['type']=_0x229461[_0x3a155a(0x192)],_0x87a4aa[_0x3a155a(0x15f)+'t']=_0x218d82,_0x87a4aa['detail']=_0x13bdd1(_0x305443._0x2dca6f)+_0x52c3f4+(_0x13bdd1(0x23a)+_0x3a155a(0x15e)+_0x13bdd1(0x195)),_0x230433[_0x3a155a(_0x305443._0x2cf956)](_0x87a4aa);}else _0x2e514b=_0x19c656[_0x3a155a(0x1e9)](',')['map'](_0xa5d92f=>_0xa5d92f[_0x3a155a(0x210)]()[_0x3a155a(0x255)](/\?.*$/,'')['replace'](/:.*/,'')[_0x3a155a(0x210)]())[_0x3a155a(_0x305443._0x46ade2)](Boolean);}_0x25c3e2[_0x3a155a(_0x305443._0x531a77)]({'file':_0x1e47f4,'fnName':_0x48aa50,'method':_0x2213d4[0x1ee4*0x1+-0x35*0x70+-0x7b3][_0x13bdd1(_0x305443._0x440551)+'e'](),'path':_0x2213d4[0x1*0xb8+-0x4*-0x44e+-0x11ee],'requestFields':uniq(_0x2e514b),'body':_0x45db85});}}}return _0x25c3e2;}function extractBackendApiContracts(_0x14c13e){const _0x188a9e={_0x5bfbcb:0x16f,_0xa37b63:0x22b,_0x5958a3:0x21a,_0x543364:0x166,_0x308148:0x1d6,_0x446b7a:0x1fe,_0x49d89b:0x1c7,_0x6f7b70:0x212,_0x552c0e:0x1df},_0x8d2284=_0x14756c,_0x6d5d9a=_0x14756c,_0x4936b1={'zpHeT':_0x8d2284(_0x188a9e._0x5bfbcb)+_0x8d2284(0x168),'QVCQe':function(_0x206c82,_0x57f0b2,_0x30d26e){return _0x206c82(_0x57f0b2,_0x30d26e);},'MhOAd':function(_0x47f7ca,_0x31abbe){return _0x47f7ca(_0x31abbe);},'scmsC':function(_0x31594b,_0x3f47a6){return _0x31594b>_0x3f47a6;}},_0x2d301a=[_0x4936b1[_0x6d5d9a(_0x188a9e._0xa37b63)],'src/main'][_0x8d2284(0x1fe)](_0x3f89ef=>path['join'](_0x14c13e,_0x3f89ef))['filter'](fs[_0x8d2284(_0x188a9e._0x5958a3)]),_0x5df205=[];for(const _0x29bd33 of _0x2d301a){const _0x106074=_0x4936b1[_0x6d5d9a(0x265)](findFiles,_0x29bd33,[_0x6d5d9a(0x239)])[_0x8d2284(0x1da)](_0x33da24=>/Controller\.java$/[_0x6d5d9a(0x19d)](_0x33da24));for(const _0x58198f of _0x106074){const _0x4e73d7=path[_0x6d5d9a(0x249)](_0x14c13e,_0x58198f),_0x53cbb2=_0x4936b1[_0x8d2284(_0x188a9e._0x543364)](readSafe,_0x58198f);if(!_0x53cbb2)continue;const _0x4b2adf=_0x53cbb2['match'](/@RequestMapping\(\s*["']([^"']+)["']\s*\)/),_0x3bb66c=_0x4b2adf?_0x4b2adf[-0x5fc+0xd3*0x1+0x2*0x295]:'',_0x343dd4=/@(GetMapping|PostMapping|PutMapping|DeleteMapping|PatchMapping)\(\s*["']([^"']+)["']\s*\)[\s\S]*?public\s+[^{]+\s+([A-Za-z0-9_$]+)\s*\(\s*([\s\S]*?)\s*\)\s*\{/g;let _0xbd806c;while((_0xbd806c=_0x343dd4[_0x6d5d9a(0x24d)](_0x53cbb2))!==null){const _0x1cdd3d=_0xbd806c[0xddd+0x11fb*0x1+0x1fd7*-0x1]['replace']('Mapping','')[_0x6d5d9a(_0x188a9e._0x308148)+'e'](),_0x4117f0=_0xbd806c[0x2d3+0x4*-0x3c1+0x9*0x15b],_0x139c44=_0xbd806c[0x2000+0x14cc+0x1*-0x34c9],_0x55caa5=_0xbd806c[0x2*-0xddb+-0x2*0xa35+0x13c*0x27]||'',_0x1d8dfc=uniq([..._0x55caa5['matchAll'](/(?:@PathVariable|@RequestParam(?:\(\s*["']([^"']+)["'])?|@RequestBody)\s*(?:@Valid\s*)?(?:Map<String,\s*Object>|[A-Za-z0-9_<>, ?]+)\s+([A-Za-z0-9_$]+)/g)][_0x8d2284(_0x188a9e._0x446b7a)](_0x5c3e63=>_0x5c3e63[-0x2343+0x6ed*0x3+0x1*0xe7d]||_0x5c3e63[0x95*0x24+0x1535+-0x3d5*0xb])),_0x3a79da=uniq([..._0x53cbb2['slice'](_0xbd806c[_0x8d2284(_0x188a9e._0x49d89b)],Math[_0x8d2284(0x20a)](_0x53cbb2['length'],_0xbd806c[_0x8d2284(0x1c7)]+(0x24bb+0x21b*-0xd+-0x380)))[_0x8d2284(_0x188a9e._0x6f7b70)](/require\(body,\s*["']([^"']+)["']\)/g)][_0x6d5d9a(_0x188a9e._0x446b7a)](_0x58eafb=>_0x58eafb[-0x3*-0x74b+-0x801+0x35*-0x43]));_0x5df205[_0x8d2284(0x163)]({'file':_0x4e73d7,'fnName':_0x139c44,'method':_0x1cdd3d,'path':(''+_0x3bb66c+_0x4117f0)[_0x8d2284(0x255)](/\/+/g,'/'),'requiredFields':_0x4936b1[_0x6d5d9a(0x223)](_0x3a79da[_0x6d5d9a(_0x188a9e._0x552c0e)],0x1ee*0xa+0x6a*0x11+-0x1a56)?_0x3a79da:_0x1d8dfc,'rawParams':_0x1d8dfc});}}}return _0x5df205;}function isSnakeCase(_0x1876d6){const _0x42c26c=_0x14756c;return/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/[_0x42c26c(0x19d)](_0x1876d6);}function normalizeApiPath(_0x273e04){const _0x991f6d={_0x2b03ae:0x255},_0x200955=_0x14756c,_0x17233b=_0x14756c;return _0x273e04[_0x200955(_0x991f6d._0x2b03ae)](/\{[^}]+\}/g,'')[_0x17233b(_0x991f6d._0x2b03ae)](/:[a-zA-Z_][\w-]*/g,'')['replace'](/\/+$/,'');}function checkApiContract(_0x203168,_0x329636){const _0x581a04={_0x524a27:0x22c,_0x97e118:0x248,_0x1191b6:0x246,_0x41e051:0x16b,_0x3ebde4:0x1db,_0x1fbc9a:0x1ef,_0x5cda96:0x1b5,_0x1357ac:0x239,_0x579d6d:0x1b7,_0x404534:0x1b2,_0x5bd864:0x1df,_0x3fad85:0x1b9,_0x5864df:0x1da,_0x281569:0x19c,_0x1f3736:0x21f,_0x1a8e15:0x202,_0x17d855:0x255,_0x1d2997:0x25f,_0x3055a6:0x176,_0x4bc9f6:0x23e,_0x2f10e1:0x1f6,_0x23b5f8:0x1fe,_0x50fd0c:0x1f6,_0x258593:0x1fa,_0x253be3:0x17f,_0x5c1c08:0x152,_0x35190c:0x20e,_0x23a181:0x210,_0x21699e:0x1e9},_0x5ccd83=_0x14756c,_0x348c70=_0x14756c,_0xe4f422={'pVNxx':function(_0x3f9009,_0x44fe12){return _0x3f9009+_0x44fe12;},'RJcCU':function(_0x4a7181,_0x4e1e83){return _0x4a7181(_0x4e1e83);},'dhItg':'utf-8','bFrcM':_0x5ccd83(_0x581a04._0x524a27),'IkocM':function(_0xb36cee,_0x1225c4){return _0xb36cee===_0x1225c4;},'qgvAc':'spec\x20中无\x20AP'+_0x348c70(_0x581a04._0x97e118),'VBhoz':_0x5ccd83(_0x581a04._0x1191b6)+'rc','lOYfy':_0x348c70(_0x581a04._0x41e051),'PUoFR':'src','OgQmF':_0x348c70(_0x581a04._0x3ebde4),'oDLSN':'ejgtS','TvkVP':_0x5ccd83(0x18d),'fHUfe':function(_0x31d6fe,_0x529dd6){return _0x31d6fe!==_0x529dd6;},'NNbVu':'sDLlY','MrmDl':function(_0x2c4e3e,_0x4f9a4b,_0x12e303){return _0x2c4e3e(_0x4f9a4b,_0x12e303);},'DjCnL':_0x348c70(_0x581a04._0x1fbc9a),'wHfEF':_0x5ccd83(_0x581a04._0x5cda96),'xydTh':_0x5ccd83(0x22a),'KkoQw':_0x348c70(_0x581a04._0x1357ac),'EbBDG':_0x348c70(0x20f),'eKBEU':'.py','VsZCv':function(_0x5609e5,_0x452300){return _0x5609e5&&_0x452300;},'LZmxs':_0x348c70(_0x581a04._0x579d6d)+'ng'},_0x2f396f=_0xe4f422[_0x348c70(_0x581a04._0x404534)](extractSpecApis,_0x329636);if(_0xe4f422[_0x348c70(0x19c)](_0x2f396f[_0x5ccd83(_0x581a04._0x5bd864)],-0x1*0x149d+0x18c3*0x1+-0x426))return{'pass':!![],'results':[],'message':_0xe4f422[_0x5ccd83(0x21e)]};const _0xf3c90c=_0xe4f422[_0x5ccd83(0x1b2)](isGitRepo,_0x203168),_0x1fcc8a=[_0xe4f422[_0x5ccd83(_0x581a04._0x3fad85)],_0xe4f422[_0x5ccd83(0x1bb)],_0xe4f422[_0x348c70(0x1de)]][_0x348c70(_0x581a04._0x5864df)](_0x1ad266=>fs[_0x5ccd83(0x21a)](path[_0x5ccd83(0x1f6)](_0x203168,_0x1ad266))),_0x141f2c=[_0x5ccd83(0x16f)+'c',_0xe4f422['OgQmF']][_0x5ccd83(_0x581a04._0x5864df)](_0x32517=>fs[_0x5ccd83(0x21a)](path[_0x348c70(0x1f6)](_0x203168,_0x32517))),_0x3908a5=[];for(const _0x259a1e of _0x2f396f){if(_0xe4f422[_0x5ccd83(_0x581a04._0x281569)](_0x348c70(_0x581a04._0x1f3736),_0xe4f422[_0x348c70(0x15a)])){const _0x350559=_0x259a1e[_0x348c70(_0x581a04._0x1a8e15)][_0x5ccd83(_0x581a04._0x17d855)](/\{[^}]+\}/g,'')['replace'](/\/+$/,''),_0x1982d4=_0x350559['split']('/')[_0x5ccd83(_0x581a04._0x1d2997)](-0x2217+0x4*-0x1d0+0x2957,0x1872*0x1+0x277*0xd+-0x3879)[_0x348c70(0x1f6)]('/');let _0x4062ab=![],_0xb8ab4f=![];if(_0xf3c90c){if(_0xe4f422['IkocM'](_0xe4f422[_0x348c70(_0x581a04._0x3055a6)],_0xe4f422['TvkVP'])){const _0x4bb088=gitGrep(_0x203168,_0x1982d4),_0x52ded1=_0x4bb088[_0x5ccd83(0x1da)](_0xfee275=>!_0xfee275['startsWith'](_0x348c70(0x1f1)+_0x5ccd83(0x1dc))&&!_0xfee275[_0x5ccd83(0x1c8)](_0x5ccd83(0x1ba)));_0x4062ab=_0x52ded1[_0x348c70(0x23e)](_0x12a64e=>/\.(vue|tsx|jsx|ts|js)$/['test'](_0x12a64e)&&/(src|app|pages|views|components|api|services|store)\//[_0x5ccd83(0x19d)](_0x12a64e)),_0xb8ab4f=_0x52ded1[_0x5ccd83(_0x581a04._0x4bc9f6)](_0x351df0=>/\.(java|kt|py|go|rb|cs|php)$/[_0x348c70(0x19d)](_0x351df0));}else{const _0x51c2b4=_0x1cb98d[_0x5ccd83(_0x581a04._0x2f10e1)](_0x42fb67,_0x183383,_0x232431);if(_0x4a1c39[_0x5ccd83(0x21a)](_0x51c2b4))_0x2ce388+=_0xe4f422[_0x348c70(0x232)](_0xe4f422[_0x5ccd83(_0x581a04._0x404534)](_0x11bd16,_0x51c2b4),'\x0a');}}else{for(const _0x4b1f8e of _0x1fcc8a){if(_0xe4f422[_0x5ccd83(0x1e3)](_0x348c70(0x1c0),_0xe4f422['NNbVu']))_0x14ae7a=_0x32fcd2[_0x348c70(0x1e9)](',')[_0x5ccd83(_0x581a04._0x23b5f8)](_0x589927=>_0x589927[_0x348c70(0x210)]()['replace'](/\?.*$/,'')[_0x5ccd83(0x255)](/:.*/,'')['trim']())[_0x5ccd83(0x1da)](_0x32d969);else{const _0x5bb3d2=_0xe4f422[_0x348c70(0x1c9)](findFiles,path['join'](_0x203168,_0x4b1f8e),['.vue',_0xe4f422['DjCnL'],_0xe4f422['wHfEF'],_0xe4f422[_0x5ccd83(0x1a4)],'.js']);_0x4062ab=_0x5bb3d2[_0x348c70(_0x581a04._0x4bc9f6)](_0x1dfc6a=>readSafe(_0x1dfc6a)['includes'](_0x1982d4));if(_0x4062ab)break;}}for(const _0x8576fe of _0x141f2c){const _0x5f0b25=findFiles(path[_0x348c70(_0x581a04._0x50fd0c)](_0x203168,_0x8576fe),[_0xe4f422[_0x5ccd83(0x17e)],_0xe4f422[_0x348c70(_0x581a04._0x258593)],_0xe4f422[_0x348c70(0x23b)],_0x5ccd83(0x178)]);_0xb8ab4f=_0x5f0b25[_0x5ccd83(0x23e)](_0x160eb6=>readSafe(_0x160eb6)['includes'](_0x1982d4));if(_0xb8ab4f)break;}}_0x3908a5[_0x5ccd83(0x163)]({'method':_0x259a1e['method'],'path':_0x259a1e[_0x348c70(0x202)],'feFound':_0x4062ab,'beFound':_0xb8ab4f,'status':_0xe4f422[_0x5ccd83(0x1d1)](_0x4062ab,_0xb8ab4f)?'ok':_0x4062ab?'be-missing':_0xb8ab4f?_0x348c70(0x207):_0xe4f422[_0x5ccd83(0x1a6)]});}else try{const _0x400090={};_0x400090['cwd']=_0x4943f8,_0x400090[_0x348c70(0x1f5)]=VYUvKX[_0x348c70(_0x581a04._0x253be3)],_0x400090[_0x5ccd83(_0x581a04._0x5c1c08)]=[_0x348c70(0x20e),_0x5ccd83(_0x581a04._0x35190c),VYUvKX['bFrcM']];const _0x1e1444=_0x8c1f9('git\x20grep\x20-'+'l\x20--\x20\x22'+_0x36ff83+'\x22',_0x400090)[_0x5ccd83(_0x581a04._0x23a181)]();return _0x1e1444?_0x1e1444[_0x348c70(_0x581a04._0x21699e)]('\x0a')[_0x5ccd83(0x1da)](_0xc682da):[];}catch{return[];}}const _0x31ca55=_0x3908a5[_0x348c70(0x1da)](_0x3f7266=>_0x3f7266['status']!=='ok');return{'pass':_0xe4f422[_0x5ccd83(_0x581a04._0x281569)](_0x31ca55[_0x5ccd83(0x1df)],0x1392+0x1*0x799+-0x1b2b),'results':_0x3908a5,'total':_0x2f396f['length'],'matched':_0x3908a5[_0x348c70(0x1da)](_0x458ab9=>_0x458ab9[_0x5ccd83(0x240)]==='ok')[_0x348c70(0x1df)],'feMissing':_0x3908a5[_0x348c70(_0x581a04._0x5864df)](_0x1de1ab=>_0x1de1ab[_0x348c70(0x240)]===_0x5ccd83(0x207)),'beMissing':_0x3908a5[_0x5ccd83(0x1da)](_0x47b8d6=>_0x47b8d6[_0x5ccd83(0x240)]==='be-missing'),'bothMissing':_0x3908a5[_0x348c70(0x1da)](_0x261ae5=>_0x261ae5[_0x348c70(0x240)]==='both-missi'+'ng')};}function checkContractConsistency(_0x4f005a){const _0x5ebfca={_0x27b1b9:0x1ad,_0x2e9ee7:0x1ad,_0x51a0f9:0x227,_0x3e1153:0x1d4,_0x4feb2e:0x1da,_0x4ce27c:0x1df,_0x4bc6fd:0x1df,_0x220b6c:0x1b4,_0xc1e4ac:0x1f0,_0x36c297:0x226,_0x13feee:0x193,_0x1086f0:0x1ce,_0x2e9d42:0x1a1,_0x544356:0x163,_0x8524b7:0x1df,_0xe15d8c:0x25d,_0xcbaed8:0x206},_0x18e8c4=_0x14756c,_0x469e95=_0x14756c,_0x417421={'ButvS':function(_0x2f1f65,_0x17e527){return _0x2f1f65(_0x17e527);}},_0x283d1c=_0x417421[_0x18e8c4(0x1ad)](extractFrontApiCalls,_0x4f005a),_0x3ae7f1=_0x417421[_0x469e95(_0x5ebfca._0x27b1b9)](extractBackendApiContracts,_0x4f005a),_0x34e538=[];let _0x3ec6cd=-0x1*0xf51+0x399+0x1f4*0x6;for(const _0xa80450 of _0x283d1c){const _0x513a60=_0x417421[_0x18e8c4(_0x5ebfca._0x2e9ee7)](normalizeApiPath,_0xa80450[_0x469e95(0x202)]),_0x1b06ee=_0x3ae7f1[_0x469e95(_0x5ebfca._0x51a0f9)](_0x4a3458=>_0x4a3458[_0x469e95(0x251)]===_0xa80450[_0x18e8c4(0x251)]&&normalizeApiPath(_0x4a3458[_0x469e95(0x202)])===_0x513a60);if(!_0x1b06ee)continue;_0x3ec6cd++;const _0x2bc6a3=_0xa80450[_0x469e95(_0x5ebfca._0x3e1153)+'lds'],_0x486382=_0x1b06ee[_0x469e95(0x171)+_0x469e95(0x238)],_0x435a84=_0x486382[_0x469e95(_0x5ebfca._0x4feb2e)](_0x479152=>_0x479152&&!_0x2bc6a3['includes'](_0x479152)),_0x1cd7d6=_0x2bc6a3[_0x18e8c4(_0x5ebfca._0x4feb2e)](_0x18742b=>_0x18742b&&!isSnakeCase(_0x18742b)),_0xc5cc28=_0x486382[_0x18e8c4(_0x5ebfca._0x4feb2e)](_0x486648=>_0x486648&&!isSnakeCase(_0x486648));if(_0x435a84[_0x469e95(_0x5ebfca._0x4ce27c)]>-0x13*-0x61+-0xc99+-0x2*-0x2b3||_0x1cd7d6[_0x18e8c4(0x1df)]>-0xdff+-0x1826+0x2625||_0xc5cc28[_0x18e8c4(_0x5ebfca._0x4bc6fd)]>0x242*-0x11+0x19*-0x81+0x1*0x32fb){const _0x59ed62={};_0x59ed62[_0x469e95(0x251)]=_0xa80450[_0x18e8c4(0x251)],_0x59ed62[_0x18e8c4(0x202)]=_0xa80450['path'],_0x59ed62[_0x18e8c4(_0x5ebfca._0x220b6c)]=_0xa80450['file'],_0x59ed62[_0x18e8c4(0x1d7)]=_0xa80450['fnName'],_0x59ed62[_0x469e95(_0x5ebfca._0xc1e4ac)]=_0x1b06ee[_0x18e8c4(_0x5ebfca._0x36c297)],_0x59ed62['backFn']=_0x1b06ee[_0x18e8c4(0x23f)],_0x59ed62[_0x469e95(_0x5ebfca._0x13feee)+'e']=_0x435a84,_0x59ed62[_0x18e8c4(_0x5ebfca._0x1086f0)]=_0x1cd7d6,_0x59ed62[_0x18e8c4(_0x5ebfca._0x2e9d42)]=_0xc5cc28,_0x34e538[_0x18e8c4(_0x5ebfca._0x544356)](_0x59ed62);}}const _0x5ea238={};return _0x5ea238['pass']=_0x34e538[_0x18e8c4(_0x5ebfca._0x8524b7)]===-0x902*0x2+0x7*-0x3e5+0x2d47,_0x5ea238[_0x469e95(_0x5ebfca._0xe15d8c)]=_0x3ec6cd,_0x5ea238[_0x469e95(_0x5ebfca._0xcbaed8)]=_0x34e538,_0x5ea238;}function checkErrorHandling(_0x5c1dbe){const _0x18dc04={_0x1eb1eb:0x250,_0x24c798:0x1f2,_0x3ff798:0x191,_0x545798:0x16b,_0x1c24e0:0x1ef,_0x3256e5:0x1e6,_0xd9fb1b:0x1e7,_0x4fac11:0x20b,_0x10a9bc:0x1ab,_0x19a309:0x1bf,_0x28159f:0x21b,_0x87899b:0x152,_0x5171f8:0x22c,_0x2c5949:0x16c,_0x1cf16c:0x1b5,_0x5b2265:0x1bc,_0x350e89:0x249,_0x8ae474:0x1a2,_0x1fb4de:0x1df,_0x543a5a:0x15b,_0x791c50:0x169,_0xb12b90:0x20a,_0x3ce0d0:0x19d,_0x435747:0x19d,_0x3d958b:0x1e2,_0x27b002:0x16a,_0x22d388:0x262,_0x4a9baf:0x1ed,_0x534016:0x154,_0x150e30:0x1ee,_0xc7bf81:0x1ff,_0x4594f7:0x1b0,_0x4514bf:0x1f6,_0x2ffc61:0x163,_0x4746d2:0x1df,_0xe982e3:0x1df},_0x2f6d1a=_0x15b77e,_0x4c9fb9=_0x15b77e,_0x1a98e0={'CvSIQ':function(_0xdc356e,_0x35ad59,_0x16a852){return _0xdc356e(_0x35ad59,_0x16a852);},'VVdyP':_0x2f6d1a(_0x18dc04._0x1eb1eb)+'rse\x20--is-i'+_0x4c9fb9(_0x18dc04._0x24c798)+'-tree','sxqmg':'router/ind'+'ex.js','llhTY':_0x4c9fb9(_0x18dc04._0x3ff798),'XBIbV':function(_0x32963f,_0x34bdab){return _0x32963f+_0x34bdab;},'uOmvU':function(_0x53cbb6,_0x115244){return _0x53cbb6(_0x115244);},'IgRiQ':_0x4c9fb9(0x246)+'rc','IWOUV':_0x4c9fb9(_0x18dc04._0x545798),'SBgTk':_0x4c9fb9(0x1d5),'yNeAc':_0x2f6d1a(0x1a7),'SzbDe':_0x2f6d1a(_0x18dc04._0x1c24e0),'CFBwa':'.js','Npave':'__test','vBTyn':'.spec.','KYeZR':function(_0x2a70f9,_0x3ac985){return _0x2a70f9<_0x3ac985;},'eMpCB':function(_0x5ee7e0,_0x55337b){return _0x5ee7e0-_0x55337b;},'Fibsa':function(_0x582aaa,_0x259752){return _0x582aaa+_0x259752;},'Apgew':_0x2f6d1a(_0x18dc04._0x3256e5),'nXoRR':_0x4c9fb9(0x21d),'XesPV':function(_0x2055ef,_0x5004bf){return _0x2055ef+_0x5004bf;},'ymdrC':_0x2f6d1a(_0x18dc04._0xd9fb1b)+_0x4c9fb9(0x25b)+_0x2f6d1a(_0x18dc04._0x4fac11),'gJIph':function(_0x4d6cd3,_0x59b616){return _0x4d6cd3===_0x59b616;}},_0x431aef=[_0x1a98e0[_0x2f6d1a(0x224)],_0x1a98e0[_0x2f6d1a(_0x18dc04._0x10a9bc)],_0x4c9fb9(_0x18dc04._0x19a309)][_0x2f6d1a(0x1da)](_0x55e93a=>fs['existsSync'](path[_0x4c9fb9(0x1f6)](_0x5c1dbe,_0x55e93a))),_0x427e04=[];let _0x1d1bd9=-0x2661+0xbbf*-0x2+0x2f*0x151;for(const _0x2689c5 of _0x431aef){if(_0x1a98e0[_0x4c9fb9(_0x18dc04._0x28159f)]!==_0x1a98e0[_0x2f6d1a(0x21b)]){const _0x327b45={};return _0x327b45[_0x2f6d1a(0x233)]=_0xdaf47e,_0x327b45[_0x4c9fb9(_0x18dc04._0x87899b)]=_0x4c9fb9(_0x18dc04._0x5171f8),RsDnVf[_0x2f6d1a(0x1be)](_0x1bb8bc,RsDnVf[_0x4c9fb9(0x234)],_0x327b45),!![];}else{const _0x4f5ba1=findFiles(path[_0x4c9fb9(0x1f6)](_0x5c1dbe,_0x2689c5),[_0x1a98e0[_0x4c9fb9(0x22e)],_0x1a98e0[_0x4c9fb9(_0x18dc04._0x2c5949)],_0x2f6d1a(_0x18dc04._0x1cf16c),_0x2f6d1a(0x22a),_0x1a98e0['CFBwa']]);for(const _0x2d5726 of _0x4f5ba1){const _0x1fcb8e=_0x1a98e0[_0x4c9fb9(_0x18dc04._0x5b2265)](readSafe,_0x2d5726);if(!_0x1fcb8e)continue;const _0x3bd067=path[_0x2f6d1a(_0x18dc04._0x350e89)](_0x5c1dbe,_0x2d5726);if(_0x3bd067[_0x2f6d1a(0x219)](_0x2f6d1a(0x205))||_0x3bd067['includes'](_0x1a98e0[_0x2f6d1a(0x1a9)])||_0x3bd067['includes'](_0x1a98e0['vBTyn'])||_0x3bd067['includes'](_0x2f6d1a(_0x18dc04._0x8ae474)))continue;const _0x616361=_0x1fcb8e['split']('\x0a');for(let _0x31478a=0x286*-0xe+0x1aac+0x2*0x454;_0x1a98e0[_0x2f6d1a(0x21c)](_0x31478a,_0x616361[_0x4c9fb9(_0x18dc04._0x1fb4de)]);_0x31478a++){const _0x61ce71=_0x616361[_0x31478a],_0xff30b0=/\.(get|post|put|delete|patch)\s*\(\s*['"`]\/api\//['test'](_0x61ce71)||/fetch\s*\(\s*['"`].*\/api\//[_0x4c9fb9(0x19d)](_0x61ce71)||/request\s*\(\s*\{[\s\S]*url.*\/api\//['test'](_0x61ce71)||/\bapi\.\w+\s*\(/[_0x2f6d1a(0x19d)](_0x61ce71);if(!_0xff30b0)continue;_0x1d1bd9++;const _0x14bf7c=Math[_0x2f6d1a(_0x18dc04._0x543a5a)](-0xdc3*-0x1+-0x1b00+0xd3d,_0x1a98e0[_0x2f6d1a(_0x18dc04._0x791c50)](_0x31478a,-0x8c8+-0x12eb+0x4*0x6ee)),_0x22aca3=Math[_0x4c9fb9(_0x18dc04._0xb12b90)](_0x616361[_0x4c9fb9(0x1df)],_0x1a98e0[_0x2f6d1a(0x1e4)](_0x31478a,-0x10d3*-0x1+-0x2*-0xd4+0x1271*-0x1)),_0x2c0d55=_0x616361[_0x2f6d1a(0x25f)](_0x14bf7c,_0x22aca3)[_0x2f6d1a(0x1f6)]('\x0a'),_0x322088=/\.catch\s*\(/['test'](_0x2c0d55)||/catch\s*\(/['test'](_0x2c0d55)||/\.then\s*\([^)]*,[^)]*\)/['test'](_0x2c0d55)||/onError|errorHandler|handleError/i[_0x2f6d1a(_0x18dc04._0x3ce0d0)](_0x2c0d55)||/\.finally\s*\(/[_0x4c9fb9(_0x18dc04._0x435747)](_0x2c0d55),_0x30fba6=/catch\s*\([^)]*\)\s*\{\s*\}/['test'](_0x2c0d55)||/\.catch\s*\(\s*\(\s*\)\s*=>\s*\{\s*\}\s*\)/['test'](_0x2c0d55);if(!_0x322088){const _0x8dba8e={};_0x8dba8e['file']=_0x3bd067,_0x8dba8e[_0x4c9fb9(0x170)]=_0x31478a+(-0x1*0x1de1+0x1387*-0x2+-0x2278*-0x2),_0x8dba8e[_0x4c9fb9(0x1d8)]=_0x2f6d1a(_0x18dc04._0x3d958b),_0x8dba8e[_0x4c9fb9(_0x18dc04._0x27b002)]=_0x4c9fb9(_0x18dc04._0x22d388)+_0x4c9fb9(0x173)+'onError)',_0x427e04['push'](_0x8dba8e);}else{if(_0x30fba6){if(_0x1a98e0[_0x4c9fb9(_0x18dc04._0x4a9baf)]===_0x1a98e0[_0x4c9fb9(_0x18dc04._0x534016)])for(const _0x59bdf0 of['router/ind'+_0x4c9fb9(_0x18dc04._0x150e30),_0x1a98e0[_0x4c9fb9(_0x18dc04._0xc7bf81)],_0x4c9fb9(_0x18dc04._0x4594f7),_0x1a98e0[_0x4c9fb9(0x237)]]){const _0x1d1d6b=_0x25c7f0[_0x4c9fb9(_0x18dc04._0x4514bf)](_0xf3e875,_0x16397f,_0x59bdf0);if(_0x4c9e30[_0x2f6d1a(0x21a)](_0x1d1d6b))_0x335e2e+=_0x1a98e0[_0x2f6d1a(0x17b)](_0x1a98e0[_0x4c9fb9(_0x18dc04._0x5b2265)](_0x809807,_0x1d1d6b),'\x0a');}else _0x427e04[_0x4c9fb9(_0x18dc04._0x2ffc61)]({'file':_0x3bd067,'line':_0x1a98e0['XesPV'](_0x31478a,0x1c9*0x10+-0xd4*-0x21+-0x37e3),'type':_0x2f6d1a(0x175)+'h','detail':_0x1a98e0['ymdrC']});}}}}}}return{'pass':_0x1a98e0['gJIph'](_0x427e04[_0x2f6d1a(_0x18dc04._0x4746d2)],0x169a*-0x1+-0x45d*0x5+0x1*0x2c6b),'violations':_0x427e04,'totalApiCalls':_0x1d1bd9,'noHandling':_0x427e04[_0x4c9fb9(0x1da)](_0x5ba35=>_0x5ba35[_0x4c9fb9(0x1d8)]===_0x2f6d1a(0x1e2))[_0x4c9fb9(0x1df)],'emptyCatch':_0x427e04[_0x2f6d1a(0x1da)](_0x44adc8=>_0x44adc8[_0x2f6d1a(0x1d8)]===_0x2f6d1a(0x175)+'h')[_0x2f6d1a(_0x18dc04._0xe982e3)]};}function checkHardcodedData(_0xda768d){const _0x47d92f={_0x1e98d4:0x1c4,_0x4230d6:0x182,_0x1953ff:0x255,_0x428320:0x19d,_0x22543b:0x219,_0x136429:0x1f8,_0x28c7a8:0x1b3,_0x5ae733:0x22d,_0x1e0926:0x1df,_0xe66350:0x25f,_0x24a6d9:0x1c7,_0x1b42da:0x170,_0x436705:0x1d8,_0x2650ee:0x15f,_0x1c6e98:0x16a,_0x5c4250:0x1fb,_0x2bd19e:0x23a,_0x371ac8:0x15e,_0x47ec09:0x19d,_0x189c5d:0x170,_0x363421:0x177,_0x4744e6:0x23a,_0x367a5c:0x195,_0x42993a:0x163,_0x3fd2ad:0x24d,_0x1982fb:0x22d,_0x49093d:0x23e,_0x408e6b:0x252},_0x33940a=_0x15b77e,_0x433439=_0x15b77e,_0x8abc42={'YjweY':_0x33940a(0x24c),'FTXyI':function(_0x4c0d66,_0x44f7a5,_0x14ff3e){return _0x4c0d66(_0x44f7a5,_0x14ff3e);},'QviEE':'.vue','KUcSW':function(_0x27cfe5,_0x399145){return _0x27cfe5(_0x399145);},'wJkot':_0x433439(0x205),'ZXZCU':function(_0x4bbcbc,_0x167e51){return _0x4bbcbc!==_0x167e51;},'TCQIi':_0x433439(_0x47d92f._0x1e98d4),'ivKSE':function(_0x4ab255,_0x40d733){return _0x4ab255!==_0x40d733;},'LKwMl':_0x33940a(0x177)+_0x33940a(0x15d)},_0x4a7bbd=[_0x33940a(0x246)+'rc','app/src',_0x33940a(0x1bf)][_0x33940a(0x1da)](_0x2a72b4=>fs[_0x33940a(0x21a)](path['join'](_0xda768d,_0x2a72b4))),_0xf0315b=[];for(const _0x458364 of _0x4a7bbd){if(_0x8abc42[_0x433439(_0x47d92f._0x4230d6)]!=='jjbxh'){const _0x28f192=_0x4723c3[_0x33940a(0x255)](/:[a-zA-Z]+/g,':[a-zA-Z]+');!_0x375708[_0x433439(0x219)](_0x5adc77)&&!new _0x57b3fe(_0x28f192[_0x33940a(_0x47d92f._0x1953ff)](/\//g,'\x5c/'))[_0x433439(_0x47d92f._0x428320)](_0x351dfe)&&_0x89906d['push'](_0x177fae);}else{const _0x19e4ee=_0x8abc42[_0x33940a(0x19b)](findFiles,path[_0x33940a(0x1f6)](_0xda768d,_0x458364),[_0x8abc42[_0x33940a(0x19a)],_0x33940a(0x1ef),'.jsx',_0x33940a(0x22a),_0x433439(0x190)]);for(const _0x366522 of _0x19e4ee){const _0x5e20a2=_0x8abc42[_0x33940a(0x17a)](readSafe,_0x366522);if(!_0x5e20a2)continue;const _0x4121d7=path['relative'](_0xda768d,_0x366522);if(/\/(constants?|config|utils?|helpers?|types?|enums?|mock)\//i['test'](_0x4121d7))continue;if(_0x4121d7[_0x433439(_0x47d92f._0x22543b)](_0x8abc42[_0x433439(_0x47d92f._0x136429)])||_0x4121d7[_0x33940a(0x219)](_0x433439(_0x47d92f._0x28c7a8)))continue;const _0x337c08=/(?:const|let|var|ref\(|reactive\()\s*\w+\s*[=:]\s*\[[\s\S]{100,}?\]/g;let _0x88a831;while(_0x8abc42[_0x433439(0x1cd)](_0x88a831=_0x337c08['exec'](_0x5e20a2),null)){if(_0x8abc42['TCQIi']!==_0x433439(_0x47d92f._0x1e98d4)){const _0x1724fe=_0x2a1634[-0xe71+0x200b*0x1+0x6*-0x2ef],_0x38a157=(_0x1724fe[_0x33940a(_0x47d92f._0x5ae733)](/\{/g)||[])[_0x433439(_0x47d92f._0x1e0926)],_0x4c165f=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/[_0x433439(0x19d)](_0x1724fe);if(_0x38a157>=-0xb1*0x2f+0x2420+-0x1*0x39e&&_0x4c165f){const _0x446b06=_0xb912de[_0x433439(_0x47d92f._0xe66350)](-0x46d*0x8+0x9fd*-0x1+0x2d65,_0xbf6338[_0x33940a(_0x47d92f._0x24a6d9)])['split']('\x0a')[_0x433439(_0x47d92f._0x1e0926)],_0x11662b={};_0x11662b[_0x433439(0x226)]=_0x5f5a4b,_0x11662b[_0x433439(_0x47d92f._0x1b42da)]=_0x446b06,_0x11662b[_0x433439(_0x47d92f._0x436705)]=_0x433439(0x177)+'array',_0x11662b[_0x433439(_0x47d92f._0x2650ee)+'t']=_0x38a157,_0x11662b[_0x33940a(_0x47d92f._0x1c6e98)]=_0x433439(_0x47d92f._0x5c4250)+_0x38a157+(_0x433439(_0x47d92f._0x2bd19e)+_0x433439(_0x47d92f._0x371ac8)+'应从\x20API\x20获取)'),_0x4c8f1a['push'](_0x11662b);}}else{const _0x150a58=_0x88a831[0x39*-0x1b+-0x1e6a+0x246d],_0x4c59ba=(_0x150a58['match'](/\{/g)||[])[_0x433439(_0x47d92f._0x1e0926)],_0x1d7e2d=/\bid\s*[:=]|name\s*[:=]\s*['"`]|title\s*[:=]\s*['"`]|label\s*[:=]\s*['"`]/[_0x433439(_0x47d92f._0x47ec09)](_0x150a58);if(_0x4c59ba>=0x9de+0x2*-0x15+-0x33b*0x3&&_0x1d7e2d){const _0x3160f9=_0x5e20a2[_0x33940a(0x25f)](0x1797+0x287*0xd+0x3872*-0x1,_0x88a831[_0x33940a(_0x47d92f._0x24a6d9)])[_0x433439(0x1e9)]('\x0a')[_0x433439(0x1df)],_0x387013={};_0x387013[_0x33940a(0x226)]=_0x4121d7,_0x387013[_0x433439(_0x47d92f._0x189c5d)]=_0x3160f9,_0x387013[_0x33940a(0x1d8)]=_0x33940a(_0x47d92f._0x363421)+'array',_0x387013[_0x433439(_0x47d92f._0x2650ee)+'t']=_0x4c59ba,_0x387013['detail']='疑似硬编码数据('+_0x4c59ba+(_0x433439(_0x47d92f._0x4744e6)+'name\x20字段\x20—\x20'+_0x33940a(_0x47d92f._0x367a5c)),_0xf0315b[_0x33940a(_0x47d92f._0x42993a)](_0x387013);}}}const _0xf84d28=/(?:tableData|dataSource|listData|dataList|options|menuList|items)\s*[=:]\s*(?:ref\(|reactive\()?\s*\[[\s\S]{50,}?\]/g;while(_0x8abc42[_0x433439(0x217)](_0x88a831=_0xf84d28[_0x33940a(_0x47d92f._0x3fd2ad)](_0x5e20a2),null)){if(_0x33940a(0x1a0)===_0x33940a(0x1a0)){const _0x55597e=_0x88a831[-0xc3+0x238b+-0x22c8],_0x346baf=(_0x55597e[_0x433439(_0x47d92f._0x1982fb)](/\{/g)||[])[_0x33940a(0x1df)];if(_0x346baf>=-0x269a+-0xf*0xa3+-0x1*-0x3029){const _0x1cf60e=_0x5e20a2[_0x433439(0x25f)](-0xb67+0x3b5+-0x7b2*-0x1,_0x88a831['index'])[_0x33940a(0x1e9)]('\x0a')[_0x433439(0x1df)];if(!_0xf0315b[_0x33940a(_0x47d92f._0x49093d)](_0x4b3bea=>_0x4b3bea[_0x33940a(0x226)]===_0x4121d7&&Math[_0x33940a(0x24a)](_0x4b3bea[_0x433439(0x170)]-_0x1cf60e)<-0x1c4a+0x2*-0x4b7+0x25bb)){const _0x186339={};_0x186339[_0x33940a(0x226)]=_0x4121d7,_0x186339['line']=_0x1cf60e,_0x186339['type']=_0x8abc42[_0x433439(0x1a5)],_0x186339['detail']='tableData/'+_0x433439(_0x47d92f._0x408e6b)+_0x33940a(0x20d)+'组('+_0x346baf+_0x33940a(0x228),_0xf0315b[_0x33940a(_0x47d92f._0x42993a)](_0x186339);}}}else return/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/[_0x33940a(_0x47d92f._0x428320)](_0x376172);}}}}const _0x21a28f={};return _0x21a28f[_0x433439(0x1e5)]=_0xf0315b['length']===0x1edf+0x1226+-0x3105,_0x21a28f[_0x433439(0x235)]=_0xf0315b,_0x21a28f;}function checkHardcodedIdentities(_0x31bd0f){const _0x239104={_0xb9c17e:0x1f3,_0x2814e3:0x1a7,_0x3c177c:0x246,_0x516bfe:0x1da,_0x3cc6b8:0x229,_0x4029f6:0x25a,_0x1d6b54:0x220,_0x373a58:0x1ef,_0x5cb1ac:0x197,_0x4d305c:0x1c3,_0x55c246:0x256,_0x28d3e4:0x249,_0x3c7038:0x19d,_0x1cffaa:0x183,_0x4bdb68:0x19e,_0x317b60:0x25f,_0xda0d1:0x1c7,_0x2c4ac5:0x20a,_0x4815e6:0x23d,_0x4c26a3:0x1c7,_0x2e697c:0x212,_0x2d2170:0x1d8,_0x259935:0x15d},_0x5a8669={_0x562015:0x258,_0x375047:0x210,_0x50670d:0x180,_0x5abc3e:0x1ea,_0x424493:0x19d,_0x3f9e80:0x1ac,_0x3c1fef:0x163,_0x4b44fc:0x163,_0x397989:0x1a3},_0x412d49=_0x14756c,_0x52415b=_0x14756c,_0x57cfe4={'KBAnU':_0x412d49(0x156),'lwMro':_0x412d49(0x209),'wutbY':function(_0x36932e,_0x4a37c4){return _0x36932e+_0x4a37c4;},'PrDCa':_0x412d49(_0x239104._0xb9c17e),'rSaKI':function(_0x3905c3,_0x5bb43a){return _0x3905c3(_0x5bb43a);},'ViRUC':function(_0x5a2a0a,_0x360f9d){return _0x5a2a0a(_0x360f9d);},'gSCjY':function(_0x5631f7,_0x44a3fc){return _0x5631f7>_0x44a3fc;},'DHkSo':'硬编码业务身份/人员'+'名称','KQezy':function(_0x451b19,_0x20136d){return _0x451b19!==_0x20136d;},'zWeNZ':_0x52415b(0x1f7),'ZADZg':function(_0x2865fa,_0x7ba4a5,_0x51bbb8){return _0x2865fa(_0x7ba4a5,_0x51bbb8);},'xNIRH':_0x412d49(_0x239104._0x2814e3),'xkirB':_0x412d49(0x22a),'jjxyZ':_0x412d49(0x190),'YlnWt':function(_0x5ecc54,_0x582ca1){return _0x5ecc54(_0x582ca1);}},_0x135930=[_0x52415b(_0x239104._0x3c177c)+'rc','app/src',_0x52415b(0x1bf)][_0x52415b(_0x239104._0x516bfe)](_0x5455e7=>fs[_0x52415b(0x21a)](path[_0x52415b(0x1f6)](_0x31bd0f,_0x5455e7))),_0xad566c=[],_0x177042={};_0x177042[_0x52415b(0x1ea)]=/\buser-\d{3,}\b/g,_0x177042[_0x412d49(0x1a3)]=_0x412d49(_0x239104._0x3cc6b8);const _0x3770b0={};_0x3770b0['regex']=/['"`](张三|李四|王五|赵六|管理员|许可人|签发人|接票人)['"`]/g,_0x3770b0[_0x52415b(0x1a3)]=_0x57cfe4[_0x412d49(_0x239104._0x4029f6)];const _0x424c14={};_0x424c14[_0x52415b(0x1ea)]=/\b(currentUser|operatorId|operatorName)\s*[:=]\s*['"`][^'"`]+['"`]/g,_0x424c14[_0x52415b(0x1a3)]=_0x412d49(0x1e1);const _0x286771=[_0x177042,_0x3770b0,_0x424c14];for(const _0x502b62 of _0x135930){if(_0x57cfe4['KQezy'](_0x57cfe4[_0x52415b(_0x239104._0x1d6b54)],'ZSJzi')){const _0x39a4b6=_0x57cfe4[_0x412d49(0x24b)](findFiles,path['join'](_0x31bd0f,_0x502b62),[_0x57cfe4[_0x412d49(0x1cb)],_0x412d49(_0x239104._0x373a58),'.jsx',_0x57cfe4[_0x412d49(_0x239104._0x5cb1ac)],_0x57cfe4[_0x412d49(_0x239104._0x4d305c)]]);for(const _0x452fb7 of _0x39a4b6){if(_0x57cfe4[_0x52415b(0x241)]('PUGmG',_0x52415b(_0x239104._0x55c246))){const _0x563ccc=path[_0x52415b(_0x239104._0x28d3e4)](_0x31bd0f,_0x452fb7);if(/\/(mock|__tests__|fixtures)\//[_0x52415b(_0x239104._0x3c7038)](_0x563ccc[_0x52415b(0x255)](/\\/g,'/')))continue;const _0x56f35a=_0x57cfe4[_0x412d49(_0x239104._0x1cffaa)](readSafe,_0x452fb7);if(!_0x56f35a)continue;const _0x16bbb1=_0x56f35a['split']('\x0a');_0x16bbb1['forEach']((_0x5a6713,_0x48229c)=>{const _0x5a4946=_0x412d49,_0x309343=_0x412d49,_0x4b53dc={'RsQHl':function(_0x5461ef,_0x21dd96){return _0x5461ef(_0x21dd96);},'kLLmt':_0x57cfe4[_0x5a4946(_0x5a8669._0x562015)]},_0x3b4204=_0x5a6713[_0x5a4946(_0x5a8669._0x375047)]();if(_0x3b4204[_0x309343(_0x5a8669._0x50670d)]('//')||_0x3b4204[_0x5a4946(_0x5a8669._0x50670d)]('*'))return;for(const _0x6f2542 of _0x286771){if(_0x6f2542[_0x5a4946(_0x5a8669._0x5abc3e)][_0x309343(_0x5a8669._0x424493)](_0x5a6713)){if(_0x57cfe4[_0x5a4946(_0x5a8669._0x3f9e80)]!=='qtyAK'){const _0x29d660=_0x4b53dc[_0x309343(0x1f9)](_0x585af3,_0x4e0088),_0xc0af39={'name':_0x4b53dc[_0x309343(0x1ae)],..._0x29d660};_0xb1e9c5[_0x5a4946(_0x5a8669._0x3c1fef)](_0xc0af39);if(!_0x29d660[_0x309343(0x1e5)])_0x37faf3=![];}else{_0xad566c[_0x5a4946(_0x5a8669._0x4b44fc)]({'file':_0x563ccc,'line':_0x57cfe4[_0x5a4946(0x23d)](_0x48229c,0x257b+-0x251*-0xf+-0x4839),'detail':_0x6f2542[_0x309343(_0x5a8669._0x397989)],'snippet':_0x3b4204[_0x309343(0x25f)](-0x106e+-0x6d0+-0x2*-0xb9f,0x1504+0x137*0x8+0x95*-0x34)});break;}}_0x6f2542[_0x5a4946(_0x5a8669._0x5abc3e)][_0x309343(0x161)]=-0xb3d*0x3+0x2*-0xe4b+-0x185*-0x29;}});}else{const _0x34c227=_0x31fe55[0xdee+-0x67+-0xd86]['replace'](Izcbtj[_0x412d49(0x157)],'')[_0x412d49(0x1d6)+'e'](),_0x5cccd0=_0x3283f0[-0x20f4+-0x2b*0x96+-0x2*-0x1d14],_0xb24e37=_0x18494b[-0x43*-0x85+0x1242+-0x1*0x350e],_0x1a22b8=_0x3029a4[0x76a+0xd00+-0x1466]||'',_0x2dbb0e=Izcbtj[_0x52415b(0x1c6)](_0x4932d0,[..._0x1a22b8[_0x412d49(0x212)](/(?:@PathVariable|@RequestParam(?:\(\s*["']([^"']+)["'])?|@RequestBody)\s*(?:@Valid\s*)?(?:Map<String,\s*Object>|[A-Za-z0-9_<>, ?]+)\s+([A-Za-z0-9_$]+)/g)][_0x52415b(0x1fe)](_0x53802c=>_0x53802c[-0x29+-0x66f+0x699]||_0x53802c[-0x2*0x1273+0x17e9+0x455*0x3])),_0x142b78=Izcbtj[_0x412d49(_0x239104._0x4bdb68)](_0x165344,[..._0x357bd8[_0x412d49(_0x239104._0x317b60)](_0x4d9ef7[_0x52415b(_0x239104._0xda0d1)],_0x22f5e8[_0x412d49(_0x239104._0x2c4ac5)](_0x58d390[_0x52415b(0x1df)],Izcbtj[_0x52415b(_0x239104._0x4815e6)](_0x3d9a54[_0x52415b(_0x239104._0x4c26a3)],-0xd4f*-0x2+-0x187*0x16+0x4*0x336)))[_0x412d49(_0x239104._0x2e697c)](/require\(body,\s*["']([^"']+)["']\)/g)]['map'](_0x50d48d=>_0x50d48d[-0xec8+-0xc6b+-0x4*-0x6cd]));_0x5ddd1e[_0x52415b(0x163)]({'file':_0x5b4be8,'fnName':_0xb24e37,'method':_0x34c227,'path':(''+_0x44a8d5+_0x5cccd0)[_0x412d49(0x255)](/\/+/g,'/'),'requiredFields':Izcbtj['gSCjY'](_0x142b78['length'],0x2f*-0x43+0x3*0xbaa+-0x16b1)?_0x142b78:_0x2dbb0e,'rawParams':_0x2dbb0e});}}}else{const _0x57f2fc={};_0x57f2fc['file']=_0x2477c4,_0x57f2fc['line']=_0x4a549c,_0x57f2fc[_0x412d49(_0x239104._0x2d2170)]='hardcoded-'+_0x412d49(_0x239104._0x259935),_0x57f2fc[_0x52415b(0x16a)]=_0x52415b(0x172)+'dataSource'+_0x52415b(0x20d)+'组('+_0x461f3d+_0x52415b(0x228),_0x4ec4b8['push'](_0x57f2fc);}}const _0x1dde9b={};return _0x1dde9b[_0x52415b(0x1e5)]=_0xad566c[_0x52415b(0x1df)]===0x21*-0x127+-0x1283*0x1+0x2*0x1c45,_0x1dde9b['violations']=_0xad566c,_0x1dde9b;}function checkRouteCompleteness(_0x5d7940,_0xc7221f){const _0x1a7b95={_0x23e6c3:0x246,_0x3de4e8:0x16b,_0x3d8d5b:0x1dd,_0x120478:0x1ee,_0x5138c8:0x18f,_0x31ec4c:0x16d,_0x367b88:0x199,_0x3bb243:0x158,_0x3ace99:0x1b1,_0x3667e9:0x1b0,_0x1217f8:0x191,_0x413338:0x16d,_0x1fa55c:0x165,_0x2e1337:0x1d9,_0x56f720:0x16d,_0x1df93b:0x1df},_0x507e2d=_0x15b77e,_0x55b024=_0x15b77e,_0x3fff10={'oAcfo':function(_0x324c51,_0x2d0a61){return _0x324c51(_0x2d0a61);},'XicNv':function(_0x36660c,_0x47bcea){return _0x36660c===_0x47bcea;},'kPAMx':_0x507e2d(_0x1a7b95._0x23e6c3)+'rc','TbUaU':_0x507e2d(_0x1a7b95._0x3de4e8),'fyjqY':_0x507e2d(_0x1a7b95._0x3d8d5b)+_0x55b024(_0x1a7b95._0x120478),'GjWHv':_0x507e2d(_0x1a7b95._0x5138c8)+'\x20文件','EJRCD':_0x55b024(0x19f),'ROYUJ':function(_0x48d753,_0x201f58){return _0x48d753-_0x201f58;}},_0x291dd1=_0x3fff10[_0x55b024(0x243)](extractSpecRoutes,_0xc7221f),_0x424224={};_0x424224[_0x55b024(0x1e5)]=!![],_0x424224[_0x55b024(_0x1a7b95._0x31ec4c)]='spec\x20中无显式路'+_0x55b024(_0x1a7b95._0x367b88);if(_0x3fff10[_0x55b024(_0x1a7b95._0x3bb243)](_0x291dd1[_0x55b024(0x1df)],0x1a71+0x5*0x5ce+-0x127d*0x3))return _0x424224;const _0x1c682e=[_0x3fff10['kPAMx'],_0x3fff10['TbUaU'],_0x55b024(0x1bf)]['filter'](_0x4e204b=>fs[_0x507e2d(0x21a)](path[_0x507e2d(0x1f6)](_0x5d7940,_0x4e204b)));let _0x5700b5='';for(const _0x4ab509 of _0x1c682e){for(const _0x25d139 of[_0x3fff10['fyjqY'],_0x507e2d(0x1dd)+_0x507e2d(_0x1a7b95._0x3ace99),_0x55b024(_0x1a7b95._0x3667e9),_0x507e2d(_0x1a7b95._0x1217f8)]){const _0x5fe8b9=path['join'](_0x5d7940,_0x4ab509,_0x25d139);if(fs[_0x55b024(0x21a)](_0x5fe8b9))_0x5700b5+=_0x3fff10['oAcfo'](readSafe,_0x5fe8b9)+'\x0a';}}const _0x594c41={};_0x594c41[_0x507e2d(0x1e5)]=!![],_0x594c41[_0x507e2d(_0x1a7b95._0x413338)]=_0x3fff10[_0x507e2d(_0x1a7b95._0x1fa55c)];if(!_0x5700b5)return _0x594c41;const _0x2d79dd=[];for(const _0xc9d818 of _0x291dd1){if(_0x3fff10[_0x55b024(_0x1a7b95._0x2e1337)]!==_0x3fff10['EJRCD']){const _0x57a27f={};_0x57a27f[_0x507e2d(0x1d0)]=_0x55b024(0x201),_0x57a27f['pass']=!![],_0x57a27f['error']=_0x13978e[_0x55b024(_0x1a7b95._0x56f720)],_0x121c35[_0x507e2d(0x163)](_0x57a27f);}else{const _0x42a43f=_0xc9d818[_0x55b024(0x255)](/:[a-zA-Z]+/g,':[a-zA-Z]+');!_0x5700b5[_0x55b024(0x219)](_0xc9d818)&&!new RegExp(_0x42a43f[_0x55b024(0x255)](/\//g,'\x5c/'))['test'](_0x5700b5)&&_0x2d79dd[_0x507e2d(0x163)](_0xc9d818);}}return{'pass':_0x2d79dd[_0x507e2d(_0x1a7b95._0x1df93b)]===-0x203c+-0x2349+0x5*0xd81,'total':_0x291dd1[_0x55b024(0x1df)],'matched':_0x3fff10['ROYUJ'](_0x291dd1[_0x507e2d(0x1df)],_0x2d79dd['length']),'missing':_0x2d79dd};}function runReviewChecks(_0x45d425,_0x55b243){const _0x42db69={_0x21e2d2:0x15c,_0x17173f:0x23c,_0xb1ab5c:0x160,_0x14748c:0x1e5,_0x54454e:0x184,_0x27aa8b:0x1e5,_0x28f652:0x16d,_0x57582a:0x1e5,_0x32dee5:0x251,_0x220447:0x251,_0x260aaa:0x202,_0x1967fb:0x1b4,_0x409a37:0x1f0,_0x3f6ec0:0x226,_0x310450:0x222,_0x1b80ff:0x23f,_0x5a8354:0x1ce,_0x9686f1:0x1d0,_0x251515:0x163,_0x385137:0x25e,_0x58d427:0x1d2,_0x1e625d:0x254,_0x2b6000:0x24e,_0x182ac5:0x163,_0x44140a:0x174,_0x1640ad:0x1d0,_0x44683e:0x1e5,_0x5242d1:0x163,_0x473fa1:0x1d0,_0x4cd23b:0x160,_0x3e64ac:0x163},_0xe0f650=_0x15b77e,_0x33cbee=_0x15b77e,_0x1c2464={'rLFXr':_0xe0f650(0x208),'dTLFb':'前后端契约一致性','JzxsW':_0x33cbee(_0x42db69._0x21e2d2),'aYQsY':function(_0x57e620,_0x43070c){return _0x57e620>_0x43070c;},'krmHw':function(_0x2811eb,_0x2e3eaf){return _0x2811eb(_0x2e3eaf);},'XMzUf':_0x33cbee(_0x42db69._0x17173f),'aHvuo':_0xe0f650(0x201),'SMdOQ':function(_0x17fa17,_0x468171,_0x10a611){return _0x17fa17(_0x468171,_0x10a611);},'VHnEz':_0xe0f650(_0x42db69._0xb1ab5c)},_0x15ca85=[];let _0x18f164=!![];try{const _0x45fd6a=checkApiContract(_0x45d425,_0x55b243),_0xae08af={'name':'API\x20契约校验',..._0x45fd6a};_0x15ca85[_0xe0f650(0x163)](_0xae08af);if(!_0x45fd6a[_0x33cbee(_0x42db69._0x14748c)])_0x18f164=![];}catch(_0x34fff8){const _0x70972a={};_0x70972a[_0xe0f650(0x1d0)]=_0x33cbee(_0x42db69._0x54454e),_0x70972a[_0x33cbee(_0x42db69._0x27aa8b)]=!![],_0x70972a[_0xe0f650(0x188)]=_0x34fff8[_0xe0f650(_0x42db69._0x28f652)],_0x15ca85[_0xe0f650(0x163)](_0x70972a);}try{if(_0x1c2464['rLFXr']==='QrmnJ'){const _0x429023=checkContractConsistency(_0x45d425),_0x381253={'name':'前后端契约一致性',..._0x429023};_0x15ca85['push'](_0x381253);if(!_0x429023[_0x33cbee(_0x42db69._0x57582a)])_0x18f164=![];}else{const _0x288dc1={};_0x288dc1[_0xe0f650(_0x42db69._0x32dee5)]=_0xe28ac7[_0x33cbee(_0x42db69._0x220447)],_0x288dc1[_0x33cbee(_0x42db69._0x260aaa)]=_0x28b67c['path'],_0x288dc1[_0x33cbee(_0x42db69._0x1967fb)]=_0x20aa4d[_0xe0f650(0x226)],_0x288dc1['frontFn']=_0x29b401[_0x33cbee(0x23f)],_0x288dc1[_0xe0f650(_0x42db69._0x409a37)]=_0x4c3e7c[_0x33cbee(_0x42db69._0x3f6ec0)],_0x288dc1[_0x33cbee(_0x42db69._0x310450)]=_0x1e4be6[_0x33cbee(_0x42db69._0x1b80ff)],_0x288dc1[_0xe0f650(0x193)+'e']=_0x125219,_0x288dc1[_0x33cbee(_0x42db69._0x5a8354)]=_0x2494ea,_0x288dc1[_0x33cbee(0x1a1)]=_0x36f0d7,_0xe682e9[_0xe0f650(0x163)](_0x288dc1);}}catch(_0x3b8f9e){const _0x15c26f={};_0x15c26f[_0x33cbee(_0x42db69._0x9686f1)]=_0x1c2464[_0xe0f650(0x221)],_0x15c26f['pass']=!![],_0x15c26f['error']=_0x3b8f9e[_0x33cbee(0x16d)],_0x15ca85[_0x33cbee(_0x42db69._0x251515)](_0x15c26f);}try{if(_0xe0f650(_0x42db69._0x385137)===_0x33cbee(0x25e)){const _0x4de03f=checkErrorHandling(_0x45d425),_0x4691be={'name':_0x1c2464[_0x33cbee(0x260)],..._0x4de03f};_0x15ca85[_0xe0f650(0x163)](_0x4691be);if(_0x4de03f[_0x33cbee(0x1d2)+_0xe0f650(0x254)]>0x216a+-0x2dc+-0x1e8e){const _0x770c=_0x4de03f[_0x33cbee(0x155)]/_0x4de03f[_0x33cbee(_0x42db69._0x58d427)+_0x33cbee(_0x42db69._0x1e625d)];if(_0x1c2464[_0x33cbee(_0x42db69._0x2b6000)](_0x770c,-0x1c9*0x3+-0x121e*-0x1+-0x21*0x63+0.5))_0x18f164=![];}}else return'';}catch(_0x16fc8e){const _0x1f718e={};_0x1f718e[_0x33cbee(0x1d0)]=_0x1c2464[_0x33cbee(0x260)],_0x1f718e[_0xe0f650(0x1e5)]=!![],_0x1f718e[_0x33cbee(0x188)]=_0x16fc8e['message'],_0x15ca85[_0x33cbee(_0x42db69._0x182ac5)](_0x1f718e);}try{const _0x1af7fe=_0x1c2464[_0x33cbee(_0x42db69._0x44140a)](checkHardcodedData,_0x45d425),_0x160ae4={'name':_0x1c2464[_0x33cbee(0x18a)],..._0x1af7fe};_0x15ca85[_0xe0f650(0x163)](_0x160ae4);}catch(_0x4244e1){const _0x1524fd={};_0x1524fd[_0xe0f650(_0x42db69._0x1640ad)]='硬编码数据检测',_0x1524fd[_0xe0f650(_0x42db69._0x57582a)]=!![],_0x1524fd[_0x33cbee(0x188)]=_0x4244e1['message'],_0x15ca85[_0xe0f650(_0x42db69._0x182ac5)](_0x1524fd);}try{const _0x400834=checkHardcodedIdentities(_0x45d425),_0x50f2bf={'name':_0x1c2464['aHvuo'],..._0x400834};_0x15ca85[_0xe0f650(0x163)](_0x50f2bf);if(!_0x400834[_0xe0f650(_0x42db69._0x44683e)])_0x18f164=![];}catch(_0xbc0a23){const _0xec4c8b={};_0xec4c8b['name']='硬编码业务身份检测',_0xec4c8b[_0xe0f650(_0x42db69._0x44683e)]=!![],_0xec4c8b[_0xe0f650(0x188)]=_0xbc0a23[_0xe0f650(0x16d)],_0x15ca85['push'](_0xec4c8b);}try{const _0x3ec10a=_0x1c2464[_0x33cbee(0x213)](checkRouteCompleteness,_0x45d425,_0x55b243),_0x170bab={'name':_0x1c2464[_0x33cbee(0x167)],..._0x3ec10a};_0x15ca85[_0xe0f650(_0x42db69._0x5242d1)](_0x170bab);if(!_0x3ec10a[_0x33cbee(_0x42db69._0x27aa8b)])_0x18f164=![];}catch(_0x3eaf54){const _0x322d11={};_0x322d11[_0x33cbee(_0x42db69._0x473fa1)]=_0xe0f650(_0x42db69._0x4cd23b),_0x322d11[_0xe0f650(0x1e5)]=!![],_0x322d11[_0x33cbee(0x188)]=_0x3eaf54[_0xe0f650(0x16d)],_0x15ca85[_0x33cbee(_0x42db69._0x3e64ac)](_0x322d11);}const _0x10e75f={};return _0x10e75f['pass']=_0x18f164,_0x10e75f[_0xe0f650(0x22f)]=_0x15ca85,_0x10e75f;}const _0x5a792e={};_0x5a792e['runReviewC'+'hecks']=runReviewChecks,_0x5a792e[_0x14756c(0x16e)+_0x15b77e(0x18e)]=checkApiContract,_0x5a792e['checkContr'+'actConsist'+_0x14756c(0x211)]=checkContractConsistency,_0x5a792e['checkError'+_0x15b77e(0x1e8)]=checkErrorHandling,_0x5a792e['checkHardc'+'odedData']=checkHardcodedData,_0x5a792e['checkHardc'+_0x15b77e(0x1bd)+'ties']=checkHardcodedIdentities,_0x5a792e[_0x14756c(0x204)+_0x14756c(0x189)+'ss']=checkRouteCompleteness,module['exports']=_0x5a792e;
@@ -4,6 +4,34 @@
4
4
 
5
5
  ---
6
6
 
7
+ ## [3.2.1] - 2026-05-24
8
+
9
+ ### 修复
10
+ - **Doctor 仓库自检误报修复**: 在 spec-copilot 框架源码仓库内运行 `doctor` 时,改为执行源码仓库自检,不再误报“未安装 spec_copilot/”
11
+ - **npm 发布元数据修复**: `package.json.repository.url` 改为 npm 推荐的 `git+https://...git` 格式,消除发布规范化警告
12
+ - **README 命令清单对齐**: README / README.zh-CN 的 CLI 命令示例补齐 `sync`、`agents`、`scorecard`、`guard`、`ci`
13
+
14
+ ### 变更
15
+ - **版本描述收敛**: 移除 README 中易过时的功能首发版本标注,改为与当前 `3.2.x` 能力描述保持一致
16
+
17
+ ## [3.2.0] - 2026-05-24
18
+
19
+ ### 新增
20
+ - **需求覆盖矩阵模板升级**: `spec.md` 新增功能点覆盖矩阵、业务规则覆盖矩阵、接口覆盖矩阵、页面/路由矩阵、验收场景矩阵,方便把自然语言需求转成可执行验收资产
21
+ - **任务模板升级**: `tasks.md` 新增 Fxx/Vxx/API/PAGE 覆盖声明、闭环证据要求、契约一致性自查、业务规则覆盖率字段
22
+ - **前后端契约一致性检查**: `gate smoke` 与 `gate review` 新增前端请求字段 vs 后端必填字段比对,并对 `snake_case` 做专项检查
23
+ - **硬编码业务身份检查**: `gate smoke` 与 `gate review` 可识别前端写死的当前用户、业务身份与示例人员名称
24
+
25
+ ### 变更
26
+ - **Review 客观评分维度更新**: review 评分新增“契约一致性”和“身份来源”两个维度,降低“接口对不上但仍高分通过”的概率
27
+ - **发布说明同步**: README / README.zh-CN 的仓库链接与 gate 描述与当前能力保持一致
28
+
29
+ ### 目的
30
+ - 将框架从“提示 AI 按规范做”进一步升级为“用 gate 主动拦截低分产物”
31
+ - 重点打击三类常见低分问题:前后端字段不一致、当前用户写死、功能有文件无闭环
32
+
33
+ ---
34
+
7
35
  ## [3.1.0] - 2026-05-24
8
36
 
9
37
  ### 新增
package/framework/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.2.1
@@ -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.1",
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",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "repository": {
34
34
  "type": "git",
35
- "url": "https://github.com/Alenfitz/spec_copilot"
35
+ "url": "git+https://github.com/Alenfitz/spec_copilot.git"
36
36
  },
37
37
  "dependencies": {
38
38
  "playwright-core": "^1.60.0"