@lovrabet/dataset-mcp-server 1.3.2-beta.1 → 1.3.2-beta.5

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 +1 @@
1
- (function(_0x340f94,_0x3bf48e){const _0x791cfe=a16_0x210f,_0x2987d4=_0x340f94();while(!![]){try{const _0x5b41a7=parseInt(_0x791cfe(0x101))/0x1*(-parseInt(_0x791cfe(0x136))/0x2)+parseInt(_0x791cfe(0x138))/0x3*(parseInt(_0x791cfe(0x143))/0x4)+parseInt(_0x791cfe(0x120))/0x5+-parseInt(_0x791cfe(0x111))/0x6*(-parseInt(_0x791cfe(0x11d))/0x7)+-parseInt(_0x791cfe(0x122))/0x8+-parseInt(_0x791cfe(0x10f))/0x9+parseInt(_0x791cfe(0x103))/0xa*(parseInt(_0x791cfe(0x121))/0xb);if(_0x5b41a7===_0x3bf48e)break;else _0x2987d4['push'](_0x2987d4['shift']());}catch(_0xd21c7e){_0x2987d4['push'](_0x2987d4['shift']());}}}(a16_0x164e,0x2d864));import{DevApiClient}from'../api/dev-api-client.js';function a16_0x164e(){const _0x77b506=['reduce','value','getCustomSqlList','sqlName','toLowerCase','from','category','description','1436283mDKYxh','IMPORTANT:\x20All\x20SQL\x20queries\x20use\x20the\x20same\x20execution\x20pattern\x20-\x20client.api.executeSql(sqlCode,\x20params)','12Msunxa','This\x20SQL\x20requires\x20parameters:\x20','IMPORTANT:\x20Use\x20try-catch\x20to\x20handle\x20HTTP\x20errors\x20(network\x20issues,\x20auth\x20failures)','tableData','filter','length','IMPORTANT:\x20The\x20SDK\x20returns\x20{\x20execSuccess:\x20boolean,\x20execResult?:\x20any[],\x20execError?:\x20string\x20}','SDK\x20returns\x20{\x20execSuccess:\x20boolean,\x20execResult?:\x20any[]\x20}\x20-\x20Always\x20check\x20execSuccess\x20before\x20using\x20execResult','.\x20Each\x20SQL\x20includes\x20a\x20complete\x20code\x20example\x20showing\x20how\x20to\x20execute\x20it\x20using\x20the\x20SDK.','online','Failed\x20to\x20list\x20SQL\x20queries:\x20','example','1259405PMkqzw','sqlContent','string','794600lsKdKO','59048zWANbg','1018664TaEUAH','Execute\x20SQL\x20query:\x20','updatedTime','updateTime','LOVRABET_APP_CODE','env','\x0a//\x20Example:\x20Using\x20SQL\x20\x22','SQL-','\x0aconst\x20data\x20=\x20await\x20client.api.executeSql(\x27','sqlId','type','SQL\x20Query','createTime','map','IMPORTANT:\x20Business\x20logic\x20errors\x20(SQL\x20failures)\x20are\x20returned\x20in\x20data.execError,\x20not\x20thrown','other','import\x20{\x20LovrabetClient\x20}\x20from\x20\x27@lovrabet/sdk\x27;\x0a\x0a//\x20Initialize\x20the\x20SDK\x20client\x0aconst\x20client\x20=\x20new\x20LovrabetClient({\x0a\x20\x20appCode:\x20\x27','slice','sqlDesc','sqlCode','4lPXvTi','For\x20more\x20customization,\x20use\x20generate_sql_code\x20tool\x20to\x20get\x20code\x20with\x20type\x20inference','244410EUnsFV','time','The\x20executeSql\x20method\x20accepts\x20two\x20parameters:\x20sqlCode\x20(string)\x20and\x20optional\x20params\x20(object)','join','sql','data','total','count',');\x0a\x0a//\x20IMPORTANT:\x20Check\x20execution\x20status\x20before\x20using\x20results\x0aif\x20(!data.execSuccess)\x20{\x0a\x20\x20throw\x20new\x20Error(`SQL\x20execution\x20failed:\x20${data.execError\x20||\x20\x27Unknown\x20error\x27}`);\x0a}\x0a\x0a//\x20Process\x20the\x20results\x0aconst\x20results\x20=\x20data.execResult\x20||\x20[];\x0aconsole.log(`Retrieved\x20${results.length}\x20rows`);\x0a\x0a//\x20Use\x20the\x20data\x0aresults.forEach(row\x20=>\x20{\x0a\x20\x20console.log(row);\x0a});','2024-01-01','The\x20execResult\x20contains\x20an\x20array\x20of\x20row\x20objects\x20matching\x20your\x20SQL\x20query\x20structure','4zxswei','createdTime','On\x20HTTP\x20error,\x20SDK\x20throws\x20LovrabetError\x20exception\x20-\x20use\x20try-catch\x20for\x20error\x20handling','\x20SQL\x20queries\x20for\x20application\x20','This\x20SQL\x20does\x20not\x20require\x20any\x20parameters','Parameter:\x20','match','includes','184196SCWjJt','stringify','450rlnxPF','sqlType','all','name'];a16_0x164e=function(){return _0x77b506;};return a16_0x164e();}function a16_0x210f(_0x4ca57e,_0x31e3b5){_0x4ca57e=_0x4ca57e-0xfe;const _0x164e28=a16_0x164e();let _0x210f30=_0x164e28[_0x4ca57e];return _0x210f30;}export async function listSqlQueries(_0x13f625={}){const _0x3727e0=a16_0x210f,{appCode:appCode=process[_0x3727e0(0x127)][_0x3727e0(0x126)],cookie:_0x29566a,env:env=process[_0x3727e0(0x127)]['LOVRABET_ENV']||'online',keyword:_0x14c31d,category:_0xff8e2,sqlCode:_0x168dff,sqlName:_0x1d7241,pageSize:pageSize=0x3e7,currentPage:currentPage=0x1}=_0x13f625;if(!appCode)throw new Error('appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.');const _0x365d1c=new DevApiClient({'appCode':appCode,'cookie':_0x29566a,'env':env});try{const _0x5f2111=await _0x365d1c[_0x3727e0(0x109)]({'pageSize':pageSize,'currentPage':currentPage,'sqlCode':_0x168dff,'sqlName':_0x1d7241}),_0xf7cf3=_0x5f2111[_0x3727e0(0x13d)]||_0x5f2111,_0x47ee93=_0xf7cf3[_0x3727e0(0x114)]||[],_0x3a1e40=_0xf7cf3[_0x3727e0(0x13e)]||_0x47ee93['length'];let _0x559828=_0x47ee93[_0x3727e0(0x12f)](_0x479a8e=>{const _0x2c201a=_0x3727e0,_0x330ef5=_0x479a8e[_0x2c201a(0x135)]||appCode+'-'+(_0x479a8e[_0x2c201a(0x12b)]||_0x479a8e['id']),_0x57614c=_0x479a8e[_0x2c201a(0x12b)]||_0x479a8e['id'];let _0x469420;if(_0x479a8e[_0x2c201a(0x11e)]||_0x479a8e[_0x2c201a(0x13c)]){const _0x4b06ca=_0x479a8e[_0x2c201a(0x11e)]||_0x479a8e[_0x2c201a(0x13c)],_0x1356a2=_0x4b06ca[_0x2c201a(0xff)](/[:$]\{?(\w+)\}?/g);if(_0x1356a2){const _0x23b02e=Array[_0x2c201a(0x10c)](new Set(_0x1356a2[_0x2c201a(0x12f)](_0x334ea2=>_0x334ea2['replace'](/[:${}]/g,''))));_0x469420=_0x23b02e['map'](_0x361784=>{const _0x17c6d4=_0x2c201a;let _0x4f20eb=_0x17c6d4(0x108);if(_0x361784[_0x17c6d4(0x10b)]()[_0x17c6d4(0x100)]('date')||_0x361784['toLowerCase']()['includes'](_0x17c6d4(0x139)))_0x4f20eb=_0x17c6d4(0x141);else{if(_0x361784[_0x17c6d4(0x10b)]()[_0x17c6d4(0x100)]('id'))_0x4f20eb=0x7b;else(_0x361784['toLowerCase']()[_0x17c6d4(0x100)]('limit')||_0x361784['toLowerCase']()['includes'](_0x17c6d4(0x13f)))&&(_0x4f20eb=0xa);}return{'name':_0x361784,'type':_0x17c6d4(0x11f),'required':!![],'description':_0x17c6d4(0xfe)+_0x361784,'example':_0x4f20eb};});}}const _0x12e6fc=_0x469420&&_0x469420[_0x2c201a(0x116)]>0x0,_0x15241e=_0x12e6fc?_0x469420[_0x2c201a(0x107)]((_0x4489a5,_0x2cacbd)=>({..._0x4489a5,[_0x2cacbd[_0x2c201a(0x106)]]:_0x2cacbd[_0x2c201a(0x11c)]}),{}):undefined,_0xbeee9d={'typescript':_0x2c201a(0x132)+appCode+'\x27,\x0a\x20\x20env:\x20\x27'+(env||_0x2c201a(0x11a))+'\x27,\x0a});\x0a\x0a//\x20Execute\x20the\x20SQL\x20query:\x20'+(_0x479a8e['sqlName']||_0x479a8e[_0x2c201a(0x106)]||_0x2c201a(0x12d))+_0x2c201a(0x12a)+_0x330ef5+'\x27'+(_0x12e6fc?',\x20'+JSON[_0x2c201a(0x102)](_0x15241e,null,0x2):'')+_0x2c201a(0x140),'description':_0x2c201a(0x123)+(_0x479a8e[_0x2c201a(0x10a)]||_0x479a8e[_0x2c201a(0x106)]||'Custom\x20SQL'),'important':[_0x2c201a(0x118),_0x2c201a(0x13a),_0x12e6fc?_0x2c201a(0x112)+_0x469420[_0x2c201a(0x12f)](_0x575ca6=>_0x575ca6[_0x2c201a(0x106)]+'\x20('+_0x575ca6[_0x2c201a(0x12c)]+')')[_0x2c201a(0x13b)](',\x20'):_0x2c201a(0x147),_0x2c201a(0x145),_0x2c201a(0x142)]},_0x14327e={'sqlCode':_0x330ef5,'sqlId':_0x57614c,'name':_0x479a8e[_0x2c201a(0x10a)]||_0x479a8e[_0x2c201a(0x106)]||_0x2c201a(0x129)+_0x57614c,'description':_0x479a8e[_0x2c201a(0x134)]||_0x479a8e[_0x2c201a(0x10e)],'category':_0x479a8e['category']||_0x479a8e[_0x2c201a(0x104)]||_0x2c201a(0x131),'sqlContent':_0x479a8e['sqlContent']||_0x479a8e[_0x2c201a(0x13c)],'parameters':_0x469420,'createdTime':_0x479a8e[_0x2c201a(0x144)]||_0x479a8e[_0x2c201a(0x12e)],'updatedTime':_0x479a8e[_0x2c201a(0x124)]||_0x479a8e[_0x2c201a(0x125)],'codeExample':_0xbeee9d};return _0x14327e;});if(_0x14c31d){const _0x8fe5ec=_0x14c31d[_0x3727e0(0x10b)]();_0x559828=_0x559828[_0x3727e0(0x115)](_0x43cff9=>_0x43cff9[_0x3727e0(0x106)][_0x3727e0(0x10b)]()['includes'](_0x8fe5ec)||_0x43cff9[_0x3727e0(0x10e)]&&_0x43cff9[_0x3727e0(0x10e)][_0x3727e0(0x10b)]()['includes'](_0x8fe5ec)||_0x43cff9[_0x3727e0(0x135)][_0x3727e0(0x10b)]()[_0x3727e0(0x100)](_0x8fe5ec)||_0x43cff9[_0x3727e0(0x11e)]&&_0x43cff9[_0x3727e0(0x11e)]['toLowerCase']()[_0x3727e0(0x100)](_0x8fe5ec));}_0xff8e2&&_0xff8e2!==_0x3727e0(0x105)&&(_0x559828=_0x559828[_0x3727e0(0x115)](_0x51ae95=>_0x51ae95[_0x3727e0(0x10d)]&&_0x51ae95[_0x3727e0(0x10d)]['toLowerCase']()===_0xff8e2['toLowerCase']()));const _0x4ab3b0=Math['ceil'](_0x559828['length']/pageSize),_0x124360=_0x559828[_0x3727e0(0x133)]((currentPage-0x1)*pageSize,currentPage*pageSize),_0x2715b5=_0x124360[_0x3727e0(0x116)]>0x0?_0x124360[0x0]:null,_0x3825f9=_0x2715b5?_0x3727e0(0x128)+_0x2715b5[_0x3727e0(0x106)]+'\x22\x0aconst\x20data\x20=\x20await\x20client.api.executeSql(\x27'+_0x2715b5[_0x3727e0(0x135)]+'\x27);\x0aif\x20(!data.execSuccess)\x20{\x0a\x20\x20throw\x20new\x20Error(\x27SQL\x20execution\x20failed\x27);\x0a}\x0aconst\x20results\x20=\x20data.execResult\x20||\x20[];':'';return{'type':'sql_list','total':_0x559828[_0x3727e0(0x116)],'sqls':_0x124360,'pagination':{'currentPage':currentPage,'pageSize':pageSize,'totalPages':_0x4ab3b0},'usage':{'description':'Found\x20'+_0x559828[_0x3727e0(0x116)]+_0x3727e0(0x146)+appCode+_0x3727e0(0x119),'important':[_0x3727e0(0x110),'IMPORTANT:\x20Always\x20check\x20data.execSuccess\x20before\x20using\x20data.execResult',_0x3727e0(0x117),_0x3727e0(0x113),_0x3727e0(0x130),'Each\x20SQL\x20query\x20above\x20includes\x20a\x20codeExample\x20field\x20with\x20complete\x20TypeScript\x20code\x20ready\x20to\x20use',_0x3727e0(0x137)],'example':_0x3825f9||'No\x20SQL\x20queries\x20found.\x20Check\x20your\x20appCode\x20and\x20authentication.'}};}catch(_0x26395c){throw new Error(_0x3727e0(0x11b)+_0x26395c['message']);}}
1
+ (function(_0x3d7a23,_0x39b279){const _0x1996c5=a17_0x556c,_0x5100e7=_0x3d7a23();while(!![]){try{const _0x1aba98=parseInt(_0x1996c5(0x159))/0x1+-parseInt(_0x1996c5(0x13f))/0x2*(-parseInt(_0x1996c5(0x156))/0x3)+-parseInt(_0x1996c5(0x15f))/0x4+parseInt(_0x1996c5(0x14a))/0x5+parseInt(_0x1996c5(0x15d))/0x6*(-parseInt(_0x1996c5(0x12d))/0x7)+parseInt(_0x1996c5(0x131))/0x8*(-parseInt(_0x1996c5(0x149))/0x9)+-parseInt(_0x1996c5(0x13c))/0xa;if(_0x1aba98===_0x39b279)break;else _0x5100e7['push'](_0x5100e7['shift']());}catch(_0x44be5c){_0x5100e7['push'](_0x5100e7['shift']());}}}(a17_0x960c,0x740d9));import{DevApiClient}from'../api/dev-api-client.js';function a17_0x556c(_0x2a518f,_0x44dd63){_0x2a518f=_0x2a518f-0x122;const _0x960c0a=a17_0x960c();let _0x556c7f=_0x960c0a[_0x2a518f];return _0x556c7f;}import{getEnvAppCode,getEnvironment}from'../config/env.js';export async function listSqlQueries(_0x5bdf98={}){const _0x2c64ab=a17_0x556c,{appCode:appCode=getEnvAppCode(),cookie:_0x2b3dd1,keyword:_0x242a5c,category:_0x4fd986,sqlCode:_0x4f1daa,sqlName:_0x58879a,pageSize:pageSize=0x3e7,currentPage:currentPage=0x1}=_0x5bdf98;if(!appCode)throw new Error('appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.');const _0x1b48cf=new DevApiClient({'appCode':appCode,'cookie':_0x2b3dd1}),_0x5f5307=getEnvironment();try{const _0x161322=await _0x1b48cf['getCustomSqlList']({'pageSize':pageSize,'currentPage':currentPage,'sqlCode':_0x4f1daa,'sqlName':_0x58879a}),_0x3f21ac=_0x161322[_0x2c64ab(0x13a)]||_0x161322,_0x4d0edc=_0x3f21ac[_0x2c64ab(0x14d)]||[],_0x12e6c6=_0x3f21ac[_0x2c64ab(0x147)]||_0x4d0edc[_0x2c64ab(0x15c)];let _0x13f3cb=_0x4d0edc[_0x2c64ab(0x144)](_0x5b44a8=>{const _0x57ab85=_0x2c64ab,_0x524b46=_0x5b44a8[_0x57ab85(0x146)]||appCode+'-'+(_0x5b44a8['sqlId']||_0x5b44a8['id']),_0xd1d746=_0x5b44a8[_0x57ab85(0x12a)]||_0x5b44a8['id'];let _0x239276;if(_0x5b44a8['sqlContent']||_0x5b44a8[_0x57ab85(0x137)]){const _0x44f162=_0x5b44a8[_0x57ab85(0x151)]||_0x5b44a8['sql'],_0x3d07dd=_0x44f162[_0x57ab85(0x161)](/[:$]\{?(\w+)\}?/g);if(_0x3d07dd){const _0x45514d=Array['from'](new Set(_0x3d07dd[_0x57ab85(0x144)](_0x31481f=>_0x31481f[_0x57ab85(0x145)](/[:${}]/g,''))));_0x239276=_0x45514d['map'](_0x49b4e0=>{const _0x5485f9=_0x57ab85;let _0x5aa1f7=_0x5485f9(0x129);if(_0x49b4e0[_0x5485f9(0x12f)]()[_0x5485f9(0x12b)]('date')||_0x49b4e0['toLowerCase']()[_0x5485f9(0x12b)]('time'))_0x5aa1f7=_0x5485f9(0x13b);else{if(_0x49b4e0[_0x5485f9(0x12f)]()[_0x5485f9(0x12b)]('id'))_0x5aa1f7=0x7b;else(_0x49b4e0['toLowerCase']()['includes']('limit')||_0x49b4e0[_0x5485f9(0x12f)]()[_0x5485f9(0x12b)](_0x5485f9(0x160)))&&(_0x5aa1f7=0xa);}return{'name':_0x49b4e0,'type':_0x5485f9(0x125),'required':!![],'description':'Parameter:\x20'+_0x49b4e0,'example':_0x5aa1f7};});}}const _0x4e673b=_0x239276&&_0x239276[_0x57ab85(0x15c)]>0x0,_0x1d6765=_0x4e673b?_0x239276[_0x57ab85(0x132)]((_0x48121f,_0x2e6d7b)=>({..._0x48121f,[_0x2e6d7b[_0x57ab85(0x152)]]:_0x2e6d7b[_0x57ab85(0x140)]}),{}):undefined,_0x2e84fc={'typescript':_0x57ab85(0x136)+appCode+_0x57ab85(0x14f)+(_0x5f5307||'online')+'\x27,\x0a});\x0a\x0a//\x20Execute\x20the\x20SQL\x20query:\x20'+(_0x5b44a8[_0x57ab85(0x14b)]||_0x5b44a8[_0x57ab85(0x152)]||'SQL\x20Query')+_0x57ab85(0x133)+_0x524b46+'\x27'+(_0x4e673b?',\x20'+JSON[_0x57ab85(0x124)](_0x1d6765,null,0x2):'')+_0x57ab85(0x15e),'description':_0x57ab85(0x127)+(_0x5b44a8['sqlName']||_0x5b44a8[_0x57ab85(0x152)]||_0x57ab85(0x134)),'important':['SDK\x20returns\x20{\x20execSuccess:\x20boolean,\x20execResult?:\x20any[]\x20}\x20-\x20Always\x20check\x20execSuccess\x20before\x20using\x20execResult','The\x20executeSql\x20method\x20accepts\x20two\x20parameters:\x20sqlCode\x20(string)\x20and\x20optional\x20params\x20(object)',_0x4e673b?'This\x20SQL\x20requires\x20parameters:\x20'+_0x239276[_0x57ab85(0x144)](_0x1c0679=>_0x1c0679[_0x57ab85(0x152)]+'\x20('+_0x1c0679[_0x57ab85(0x142)]+')')['join'](',\x20'):_0x57ab85(0x126),_0x57ab85(0x157),'The\x20execResult\x20contains\x20an\x20array\x20of\x20row\x20objects\x20matching\x20your\x20SQL\x20query\x20structure']},_0x49a5ce={'sqlCode':_0x524b46,'sqlId':_0xd1d746,'name':_0x5b44a8['sqlName']||_0x5b44a8[_0x57ab85(0x152)]||_0x57ab85(0x12e)+_0xd1d746,'description':_0x5b44a8['sqlDesc']||_0x5b44a8[_0x57ab85(0x15a)],'category':_0x5b44a8['category']||_0x5b44a8[_0x57ab85(0x13e)]||_0x57ab85(0x141),'sqlContent':_0x5b44a8[_0x57ab85(0x151)]||_0x5b44a8[_0x57ab85(0x137)],'parameters':_0x239276,'createdTime':_0x5b44a8[_0x57ab85(0x158)]||_0x5b44a8[_0x57ab85(0x14e)],'updatedTime':_0x5b44a8[_0x57ab85(0x150)]||_0x5b44a8[_0x57ab85(0x153)],'codeExample':_0x2e84fc};return _0x49a5ce;});if(_0x242a5c){const _0x21a1de=_0x242a5c[_0x2c64ab(0x12f)]();_0x13f3cb=_0x13f3cb[_0x2c64ab(0x154)](_0x4ed81c=>_0x4ed81c[_0x2c64ab(0x152)][_0x2c64ab(0x12f)]()[_0x2c64ab(0x12b)](_0x21a1de)||_0x4ed81c['description']&&_0x4ed81c[_0x2c64ab(0x15a)]['toLowerCase']()[_0x2c64ab(0x12b)](_0x21a1de)||_0x4ed81c['sqlCode'][_0x2c64ab(0x12f)]()[_0x2c64ab(0x12b)](_0x21a1de)||_0x4ed81c[_0x2c64ab(0x151)]&&_0x4ed81c[_0x2c64ab(0x151)][_0x2c64ab(0x12f)]()['includes'](_0x21a1de));}_0x4fd986&&_0x4fd986!==_0x2c64ab(0x14c)&&(_0x13f3cb=_0x13f3cb[_0x2c64ab(0x154)](_0x3ca4ef=>_0x3ca4ef[_0x2c64ab(0x148)]&&_0x3ca4ef[_0x2c64ab(0x148)][_0x2c64ab(0x12f)]()===_0x4fd986[_0x2c64ab(0x12f)]()));const _0x3aaa75=Math['ceil'](_0x13f3cb[_0x2c64ab(0x15c)]/pageSize),_0x51a598=_0x13f3cb['slice']((currentPage-0x1)*pageSize,currentPage*pageSize),_0x42cd14=_0x51a598[_0x2c64ab(0x15c)]>0x0?_0x51a598[0x0]:null,_0x2b3d43=_0x42cd14?_0x2c64ab(0x12c)+_0x42cd14[_0x2c64ab(0x152)]+_0x2c64ab(0x143)+_0x42cd14[_0x2c64ab(0x146)]+'\x27);\x0aif\x20(!data.execSuccess)\x20{\x0a\x20\x20throw\x20new\x20Error(\x27SQL\x20execution\x20failed\x27);\x0a}\x0aconst\x20results\x20=\x20data.execResult\x20||\x20[];':'';return{'type':_0x2c64ab(0x138),'total':_0x13f3cb['length'],'sqls':_0x51a598,'pagination':{'currentPage':currentPage,'pageSize':pageSize,'totalPages':_0x3aaa75},'usage':{'description':_0x2c64ab(0x155)+_0x13f3cb[_0x2c64ab(0x15c)]+_0x2c64ab(0x122)+appCode+_0x2c64ab(0x135),'important':['IMPORTANT:\x20All\x20SQL\x20queries\x20use\x20the\x20same\x20execution\x20pattern\x20-\x20client.api.executeSql(sqlCode,\x20params)',_0x2c64ab(0x123),_0x2c64ab(0x139),'IMPORTANT:\x20Use\x20try-catch\x20to\x20handle\x20HTTP\x20errors\x20(network\x20issues,\x20auth\x20failures)',_0x2c64ab(0x15b),'Each\x20SQL\x20query\x20above\x20includes\x20a\x20codeExample\x20field\x20with\x20complete\x20TypeScript\x20code\x20ready\x20to\x20use',_0x2c64ab(0x130)],'example':_0x2b3d43||_0x2c64ab(0x13d)}};}catch(_0x496967){throw new Error(_0x2c64ab(0x128)+_0x496967['message']);}}function a17_0x960c(){const _0x4df48e=['createTime','\x27,\x0a\x20\x20env:\x20\x27','updatedTime','sqlContent','name','updateTime','filter','Found\x20','3mnECrP','On\x20HTTP\x20error,\x20SDK\x20throws\x20LovrabetError\x20exception\x20-\x20use\x20try-catch\x20for\x20error\x20handling','createdTime','911783nChLMk','description','IMPORTANT:\x20Business\x20logic\x20errors\x20(SQL\x20failures)\x20are\x20returned\x20in\x20data.execError,\x20not\x20thrown','length','32196IbWVbB',');\x0a\x0a//\x20IMPORTANT:\x20Check\x20execution\x20status\x20before\x20using\x20results\x0aif\x20(!data.execSuccess)\x20{\x0a\x20\x20throw\x20new\x20Error(`SQL\x20execution\x20failed:\x20${data.execError\x20||\x20\x27Unknown\x20error\x27}`);\x0a}\x0a\x0a//\x20Process\x20the\x20results\x0aconst\x20results\x20=\x20data.execResult\x20||\x20[];\x0aconsole.log(`Retrieved\x20${results.length}\x20rows`);\x0a\x0a//\x20Use\x20the\x20data\x0aresults.forEach(row\x20=>\x20{\x0a\x20\x20console.log(row);\x0a});','37740vOErRL','count','match','\x20SQL\x20queries\x20for\x20application\x20','IMPORTANT:\x20Always\x20check\x20data.execSuccess\x20before\x20using\x20data.execResult','stringify','string','This\x20SQL\x20does\x20not\x20require\x20any\x20parameters','Execute\x20SQL\x20query:\x20','Failed\x20to\x20list\x20SQL\x20queries:\x20','value','sqlId','includes','\x0a//\x20Example:\x20Using\x20SQL\x20\x22','273YwdzJr','SQL-','toLowerCase','For\x20more\x20customization,\x20use\x20generate_sql_code\x20tool\x20to\x20get\x20code\x20with\x20type\x20inference','143416LUanwK','reduce','\x0aconst\x20data\x20=\x20await\x20client.api.executeSql(\x27','Custom\x20SQL','.\x20Each\x20SQL\x20includes\x20a\x20complete\x20code\x20example\x20showing\x20how\x20to\x20execute\x20it\x20using\x20the\x20SDK.','import\x20{\x20LovrabetClient\x20}\x20from\x20\x27@lovrabet/sdk\x27;\x0a\x0a//\x20Initialize\x20the\x20SDK\x20client\x0aconst\x20client\x20=\x20new\x20LovrabetClient({\x0a\x20\x20appCode:\x20\x27','sql','sql_list','IMPORTANT:\x20The\x20SDK\x20returns\x20{\x20execSuccess:\x20boolean,\x20execResult?:\x20any[],\x20execError?:\x20string\x20}','data','2024-01-01','8983930NbjPMk','No\x20SQL\x20queries\x20found.\x20Check\x20your\x20appCode\x20and\x20authentication.','sqlType','1286380hmTZmB','example','other','type','\x22\x0aconst\x20data\x20=\x20await\x20client.api.executeSql(\x27','map','replace','sqlCode','total','category','117vWPgHt','1352665QullNX','sqlName','all','tableData'];a17_0x960c=function(){return _0x4df48e;};return a17_0x960c();}
@@ -1 +1 @@
1
- (function(_0x1c1231,_0x5a55c2){const _0x37323b=a17_0x459c,_0x35b96e=_0x1c1231();while(!![]){try{const _0x596d4e=-parseInt(_0x37323b(0x14d))/0x1*(-parseInt(_0x37323b(0x153))/0x2)+-parseInt(_0x37323b(0x168))/0x3*(parseInt(_0x37323b(0x159))/0x4)+-parseInt(_0x37323b(0x155))/0x5+-parseInt(_0x37323b(0x164))/0x6*(parseInt(_0x37323b(0x16b))/0x7)+parseInt(_0x37323b(0x14e))/0x8*(parseInt(_0x37323b(0x163))/0x9)+parseInt(_0x37323b(0x156))/0xa*(-parseInt(_0x37323b(0x148))/0xb)+-parseInt(_0x37323b(0x151))/0xc*(-parseInt(_0x37323b(0x14f))/0xd);if(_0x596d4e===_0x5a55c2)break;else _0x35b96e['push'](_0x35b96e['shift']());}catch(_0x36e247){_0x35b96e['push'](_0x35b96e['shift']());}}}(a17_0x4c7b,0x22405));import*as a17_0x3d6027 from'node:https';function a17_0x459c(_0x248b2c,_0x4f9ed0){_0x248b2c=_0x248b2c-0x146;const _0x4c7be7=a17_0x4c7b();let _0x459c89=_0x4c7be7[_0x248b2c];return _0x459c89;}import{saveCookie}from'../auth/cookie-manager.js';function a17_0x4c7b(){const _0x207f69=['17223cpdiAR','online','end','14xarfxw','127.0.0.1','user','1182786SuJXUd','error','/api/auth/get-session','port','/sign-in?redirect=','212233gmSQCv','8NvhhEJ','2686034eljOwl','Failed\x20to\x20fetch\x20SSL\x20certificates\x20for\x20login\x20server','12HxvXOm','Already\x20logged\x20in\x20to\x20','2QAnhxH','createServer','468020LoVzDc','20cqgmfm','text/html;\x20charset=utf-8','https://dev.lovrabet.com:','68jikJQB','json','object','listen','Please\x20open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20login:\x20','close','writeHead','session','</p>\x0a\x20\x20\x20\x20<p>Please\x20check\x20file\x20permissions\x20for\x20~/.lovrabet/cookie</p>\x0a\x20\x20</div>\x0a</body>\x0a</html>','Login\x20server\x20error','1983123OjRIbN','277956pBgRCr','Login\x20successful\x20but\x20failed\x20to\x20save\x20cookie:\x20','\x20environment','message'];a17_0x4c7b=function(){return _0x207f69;};return a17_0x4c7b();}import{isSessionValid}from'../auth/session-validator.js';import{getUserDomain}from'../auth/constants.js';export async function login(_0x26460a={}){const _0x11a919=a17_0x459c,_0x18fa7d=_0x26460a['env']||_0x11a919(0x169);if(await isSessionValid(_0x18fa7d))return{'success':!![],'message':_0x11a919(0x152)+_0x18fa7d+_0x11a919(0x166),'env':_0x18fa7d};let _0x3fab13;try{const _0x5d76f8=await fetch('https://g.yuntooai.com/cert/lovrabet-dev.json');_0x3fab13=await _0x5d76f8[_0x11a919(0x15a)]();}catch(_0x569f87){return{'success':![],'message':_0x11a919(0x150),'env':_0x18fa7d};}return new Promise(_0x516b02=>{const _0x2b26eb=_0x11a919;let _0x5ab168=0x0;const _0x2bb731=a17_0x3d6027[_0x2b26eb(0x154)](_0x3fab13,async(_0x10d987,_0x3c0937)=>{const _0x266064=_0x2b26eb,_0x4c3ef6=getUserDomain(_0x18fa7d),_0x4167e7=_0x10d987['headers']['cookie']||'';try{const _0x1b742c=await fetch(_0x4c3ef6+_0x266064(0x14a),{'headers':{'cookie':_0x4167e7}}),_0x25cf49=await _0x1b742c['json'](),_0x16e3fc=_0x25cf49&&_0x25cf49[_0x266064(0x160)]&&_0x25cf49[_0x266064(0x147)];if(_0x16e3fc){try{saveCookie(_0x4167e7);}catch(_0x21944b){const _0x35c6e7='<!doctype\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>Login\x20Failed</title></head>\x0a<body>\x0a\x20\x20<div\x20style=\x22color:\x20red;\x22>\x0a\x20\x20\x20\x20<h2>Login\x20Successful,\x20but\x20Failed\x20to\x20Save\x20Cookie</h2>\x0a\x20\x20\x20\x20<p>Error:\x20'+_0x21944b['message']+_0x266064(0x161);_0x3c0937[_0x266064(0x15f)](0x1f4,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x3c0937[_0x266064(0x16a)](_0x35c6e7),_0x2bb731[_0x266064(0x15e)](),_0x516b02({'success':![],'message':_0x266064(0x165)+_0x21944b[_0x266064(0x167)],'env':_0x18fa7d});return;}const _0x5977b1='<!doctype\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>Login\x20Successful</title></head>\x0a<body>\x0a\x20\x20<div>Login\x20successful!\x20You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20your\x20vibe\x20editor.</div>\x0a\x20\x20<script>\x0a\x20\x20\x20\x20setTimeout(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20try\x20{\x20window.close();\x20}\x20catch(e)\x20{}\x0a\x20\x20\x20\x20},\x202000);\x0a\x20\x20</script>\x0a</body>\x0a</html>';_0x3c0937[_0x266064(0x15f)](0xc8,{'Content-Type':_0x266064(0x157)}),_0x3c0937[_0x266064(0x16a)](_0x5977b1),_0x2bb731[_0x266064(0x15e)](),_0x516b02({'success':!![],'message':'Successfully\x20logged\x20in\x20to\x20'+_0x18fa7d+_0x266064(0x166),'env':_0x18fa7d});}else{const _0x227aa1=encodeURIComponent(_0x266064(0x158)+_0x5ab168);_0x3c0937['writeHead'](0x12e,{'location':_0x4c3ef6+_0x266064(0x14c)+_0x227aa1}),_0x3c0937[_0x266064(0x16a)]();}}catch(_0x31468d){_0x3c0937[_0x266064(0x15f)](0x1f4,{'Content-Type':'text/plain'}),_0x3c0937['end']('Internal\x20server\x20error'),_0x2bb731[_0x266064(0x15e)](),_0x516b02({'success':![],'message':_0x266064(0x162),'env':_0x18fa7d});}});_0x2bb731[_0x2b26eb(0x15c)](0x0,_0x2b26eb(0x146),()=>{const _0x27d27b=_0x2b26eb,_0x52fdac=_0x2bb731['address']();_0x5ab168=typeof _0x52fdac===_0x27d27b(0x15b)&&_0x52fdac?_0x52fdac[_0x27d27b(0x14b)]:0x0;const _0x2c92a1=_0x27d27b(0x158)+_0x5ab168;_0x516b02({'success':![],'message':_0x27d27b(0x15d)+_0x2c92a1,'loginUrl':_0x2c92a1,'env':_0x18fa7d});}),_0x2bb731['on'](_0x2b26eb(0x149),_0x20c9e6=>{const _0x450517=_0x2b26eb;_0x516b02({'success':![],'message':'Login\x20server\x20error:\x20'+_0x20c9e6[_0x450517(0x167)],'env':_0x18fa7d});}),setTimeout(()=>{_0x2bb731['close'](),_0x516b02({'success':![],'message':'Login\x20timeout\x20-\x20no\x20response\x20received\x20within\x205\x20minutes','env':_0x18fa7d});},0x5*0x3c*0x3e8);});}
1
+ (function(_0x1fcdf6,_0x4204f3){const _0x22ff6c=a18_0x475a,_0x236057=_0x1fcdf6();while(!![]){try{const _0x118eac=parseInt(_0x22ff6c(0x156))/0x1+parseInt(_0x22ff6c(0x164))/0x2+-parseInt(_0x22ff6c(0x16e))/0x3*(-parseInt(_0x22ff6c(0x16c))/0x4)+-parseInt(_0x22ff6c(0x15b))/0x5*(parseInt(_0x22ff6c(0x171))/0x6)+parseInt(_0x22ff6c(0x158))/0x7+parseInt(_0x22ff6c(0x174))/0x8+parseInt(_0x22ff6c(0x163))/0x9;if(_0x118eac===_0x4204f3)break;else _0x236057['push'](_0x236057['shift']());}catch(_0x12b630){_0x236057['push'](_0x236057['shift']());}}}(a18_0x16e7,0x2bc4d));import*as a18_0x42b958 from'node:https';import{saveCookie}from'../auth/cookie-manager.js';import{isSessionValid}from'../auth/session-validator.js';import{getUserDomain,getEnvironment}from'../config/env.js';export async function login(_0x3be5e6={}){const _0x375336=a18_0x475a,_0x569eda=getEnvironment();if(await isSessionValid())return{'success':!![],'message':'Already\x20logged\x20in\x20to\x20'+_0x569eda+_0x375336(0x157),'env':_0x569eda};let _0x4a2d8a;try{const _0x2fa46f=await fetch(_0x375336(0x159));_0x4a2d8a=await _0x2fa46f[_0x375336(0x176)]();}catch(_0x55be02){return{'success':![],'message':'Failed\x20to\x20fetch\x20SSL\x20certificates\x20for\x20login\x20server','env':_0x569eda};}return new Promise(_0x327935=>{const _0x95ba3a=_0x375336;let _0x52bd3c=0x0;const _0x4ee1df=a18_0x42b958[_0x95ba3a(0x161)](_0x4a2d8a,async(_0x46ecb7,_0x567564)=>{const _0x340631=_0x95ba3a,_0x10eefc=getUserDomain(),_0x130ac8=_0x46ecb7[_0x340631(0x15a)][_0x340631(0x162)]||'';try{const _0x1438cc=await fetch(_0x10eefc+_0x340631(0x16b),{'headers':{'cookie':_0x130ac8}}),_0xcafc2f=await _0x1438cc[_0x340631(0x176)](),_0x4160c1=_0xcafc2f&&_0xcafc2f[_0x340631(0x179)]&&_0xcafc2f[_0x340631(0x166)];if(_0x4160c1){try{saveCookie(_0x130ac8);}catch(_0x57a18d){const _0xe8c05b=_0x340631(0x15d)+_0x57a18d[_0x340631(0x16d)]+_0x340631(0x170);_0x567564[_0x340631(0x15e)](0x1f4,{'Content-Type':_0x340631(0x165)}),_0x567564[_0x340631(0x168)](_0xe8c05b),_0x4ee1df['close'](),_0x327935({'success':![],'message':_0x340631(0x17a)+_0x57a18d[_0x340631(0x16d)],'env':_0x569eda});return;}const _0x592404=_0x340631(0x16a);_0x567564[_0x340631(0x15e)](0xc8,{'Content-Type':'text/html;\x20charset=utf-8'}),_0x567564[_0x340631(0x168)](_0x592404),_0x4ee1df[_0x340631(0x15f)](),_0x327935({'success':!![],'message':_0x340631(0x173)+_0x569eda+'\x20environment','env':_0x569eda});}else{const _0x289c1d=encodeURIComponent(_0x340631(0x175)+_0x52bd3c);_0x567564['writeHead'](0x12e,{'location':_0x10eefc+_0x340631(0x15c)+_0x289c1d}),_0x567564[_0x340631(0x168)]();}}catch(_0x3f3092){_0x567564[_0x340631(0x15e)](0x1f4,{'Content-Type':_0x340631(0x178)}),_0x567564[_0x340631(0x168)](_0x340631(0x169)),_0x4ee1df['close'](),_0x327935({'success':![],'message':_0x340631(0x16f),'env':_0x569eda});}});_0x4ee1df[_0x95ba3a(0x17c)](0x0,'127.0.0.1',()=>{const _0x56c3f8=_0x95ba3a,_0x3856a1=_0x4ee1df[_0x56c3f8(0x160)]();_0x52bd3c=typeof _0x3856a1===_0x56c3f8(0x17b)&&_0x3856a1?_0x3856a1[_0x56c3f8(0x172)]:0x0;const _0x1d914d='https://dev.lovrabet.com:'+_0x52bd3c;_0x327935({'success':![],'message':_0x56c3f8(0x177)+_0x1d914d,'loginUrl':_0x1d914d,'env':_0x569eda});}),_0x4ee1df['on'](_0x95ba3a(0x167),_0x234764=>{const _0x125259=_0x95ba3a;_0x327935({'success':![],'message':'Login\x20server\x20error:\x20'+_0x234764[_0x125259(0x16d)],'env':_0x569eda});}),setTimeout(()=>{const _0x42057e=_0x95ba3a;_0x4ee1df[_0x42057e(0x15f)](),_0x327935({'success':![],'message':'Login\x20timeout\x20-\x20no\x20response\x20received\x20within\x205\x20minutes','env':_0x569eda});},0x5*0x3c*0x3e8);});}function a18_0x475a(_0x21c69f,_0x1b6d30){_0x21c69f=_0x21c69f-0x156;const _0x16e756=a18_0x16e7();let _0x475a80=_0x16e756[_0x21c69f];return _0x475a80;}function a18_0x16e7(){const _0x13c212=['writeHead','close','address','createServer','cookie','491373jfWwbB','115260TwHefd','text/html;\x20charset=utf-8','user','error','end','Internal\x20server\x20error','<!doctype\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>Login\x20Successful</title></head>\x0a<body>\x0a\x20\x20<div>Login\x20successful!\x20You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20your\x20vibe\x20editor.</div>\x0a\x20\x20<script>\x0a\x20\x20\x20\x20setTimeout(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20try\x20{\x20window.close();\x20}\x20catch(e)\x20{}\x0a\x20\x20\x20\x20},\x202000);\x0a\x20\x20</script>\x0a</body>\x0a</html>','/api/auth/get-session','8392feDgeN','message','45akrcza','Login\x20server\x20error','</p>\x0a\x20\x20\x20\x20<p>Please\x20check\x20file\x20permissions\x20for\x20~/.lovrabet/cookie</p>\x0a\x20\x20</div>\x0a</body>\x0a</html>','90798wSwTNl','port','Successfully\x20logged\x20in\x20to\x20','48456vLYhRS','https://dev.lovrabet.com:','json','Please\x20open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20login:\x20','text/plain','session','Login\x20successful\x20but\x20failed\x20to\x20save\x20cookie:\x20','object','listen','200321LAUkRO','\x20environment','1240827vGHyhF','https://g.yuntooai.com/cert/lovrabet-dev.json','headers','115zWJAYJ','/sign-in?redirect=','<!doctype\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>Login\x20Failed</title></head>\x0a<body>\x0a\x20\x20<div\x20style=\x22color:\x20red;\x22>\x0a\x20\x20\x20\x20<h2>Login\x20Successful,\x20but\x20Failed\x20to\x20Save\x20Cookie</h2>\x0a\x20\x20\x20\x20<p>Error:\x20'];a18_0x16e7=function(){return _0x13c212;};return a18_0x16e7();}
@@ -1 +1 @@
1
- (function(_0x26cf00,_0x1ae956){const _0x1d5d7b=a19_0x3811,_0x3898a9=_0x26cf00();while(!![]){try{const _0x38cb29=-parseInt(_0x1d5d7b(0xd7))/0x1+-parseInt(_0x1d5d7b(0x101))/0x2+-parseInt(_0x1d5d7b(0xf6))/0x3*(-parseInt(_0x1d5d7b(0xfb))/0x4)+parseInt(_0x1d5d7b(0x10d))/0x5*(-parseInt(_0x1d5d7b(0xe4))/0x6)+parseInt(_0x1d5d7b(0xde))/0x7*(-parseInt(_0x1d5d7b(0x10c))/0x8)+-parseInt(_0x1d5d7b(0xd3))/0x9+-parseInt(_0x1d5d7b(0xf0))/0xa*(-parseInt(_0x1d5d7b(0x10e))/0xb);if(_0x38cb29===_0x1ae956)break;else _0x3898a9['push'](_0x3898a9['shift']());}catch(_0x306e65){_0x3898a9['push'](_0x3898a9['shift']());}}}(a19_0x3865,0x210ef));function a19_0x3811(_0x34ac20,_0x1a5157){_0x34ac20=_0x34ac20-0xcc;const _0x386507=a19_0x3865();let _0x3811ba=_0x386507[_0x34ac20];return _0x3811ba;}import{DevApiClient}from'../api/dev-api-client.js';import{validateIsSelectOnly,parseSqlStructure,generateSqlSummary}from'../utils/sql-parser.js';function a19_0x3865(){const _0x3fa0b8=['params','384860fcdanc','save','sqlInfo','online','sqlName\x20is\x20required\x20and\x20cannot\x20be\x20empty.','created','71666JQwggS','Generate\x20SDK\x20code\x20for\x20this\x20SQL','columns','sql','data','Custom\x20SQL\x20\x22','tables','sqlContent\x20is\x20required\x20and\x20cannot\x20be\x20empty.','Ensure\x20you\x20are\x20logged\x20in\x20with\x20proper\x20permissions','sqlId','LOVRABET_APP_CODE','24KeyYXP','30WZiPTc','1129711pWyqjl','sqlName','sqlContent','get_dataset_detail','env','name','Execute\x20the\x20SQL\x20to\x20check\x20for\x20runtime\x20errors','updated','Get\x20ready-to-use\x20TypeScript\x20code\x20for\x20your\x20application','1688985pJFNjp','success','id\x20is\x20required\x20for\x20updating\x20existing\x20SQL.','valid','113217XnyHqB','find','execute_custom_sql','verified','updateTime','warn','errorMsg','25018vuNmYP','Confirm\x20the\x20dbId\x20matches\x20the\x20database\x20you\x20want\x20to\x20use','tableData','high','dbId\x20is\x20required.\x20Get\x20it\x20from\x20get_dataset_detail\x20->\x20basic.database.dbId','medium','126876JMFwYA','SQL\x20validation\x20failed:\x20','Verify\x20database\x20ID\x20is\x20correct','\x20custom\x20SQL','sqlCode\x20is\x20required\x20for\x20updating\x20existing\x20SQL.','sqlCode','Failed\x20to\x20','<dataset-code>','Test\x20the\x20SQL\x20to\x20verify\x20it\x20works\x20correctly','trim','now','LOVRABET_ENV','50LuAxMi','test','message','login','getCustomSqlList','Check\x20database\x20connection\x20and\x20permissions','3bpQfkE','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','length','NODE_ENV'];a19_0x3865=function(){return _0x3fa0b8;};return a19_0x3865();}export async function saveOrUpdateCustomSql(_0x532adc){const _0x4914ee=a19_0x3811,_0x56ed7d=Date[_0x4914ee(0xee)](),{appCode:appCode=process[_0x4914ee(0xce)][_0x4914ee(0x10b)],cookie:_0x233417,env:env=process[_0x4914ee(0xce)][_0x4914ee(0xef)]||_0x4914ee(0xfe),sqlName:_0x16ef85,dbId:_0xf954a2,sqlContent:_0x3a9b04,id:_0x208d60,sqlCode:_0x5beada,verifyAfterSave:verifyAfterSave=!![],validateSchema:validateSchema=![]}=_0x532adc;if(!appCode)throw new Error(_0x4914ee(0xf7));if(!_0x16ef85||_0x16ef85[_0x4914ee(0xed)]()==='')throw new Error(_0x4914ee(0xff));if(!_0xf954a2)throw new Error(_0x4914ee(0xe2));if(!_0x3a9b04||_0x3a9b04[_0x4914ee(0xed)]()==='')throw new Error(_0x4914ee(0x108));const _0x8484ba=_0x208d60!==undefined&&_0x208d60>0x0||_0x5beada!==undefined&&_0x5beada[_0x4914ee(0xed)]()!=='';if(_0x8484ba){if(!_0x208d60)throw new Error(_0x4914ee(0xd5));if(!_0x5beada)throw new Error(_0x4914ee(0xe8));}const _0x34a6e6=validateIsSelectOnly(_0x3a9b04);if(!_0x34a6e6[_0x4914ee(0xd6)])throw new Error(_0x4914ee(0xe5)+_0x34a6e6['reason']);const _0x494e24=parseSqlStructure(_0x3a9b04),_0x3ba29f=generateSqlSummary(_0x3a9b04),_0xaf69e0=new DevApiClient({'appCode':appCode,'cookie':_0x233417,'env':env}),_0x2d307c=_0x16ef85[_0x4914ee(0xed)]();let _0x4a4d36;_0x8484ba?_0x4a4d36=await _0xaf69e0['updateUserCustomSql']({'id':_0x208d60,'sqlCode':_0x5beada[_0x4914ee(0xed)](),'sqlName':_0x2d307c,'dbId':_0xf954a2,'sqlContent':_0x3a9b04[_0x4914ee(0xed)]()}):_0x4a4d36=await _0xaf69e0['saveUserCustomSql']({'sqlName':_0x2d307c,'dbId':_0xf954a2,'sqlContent':_0x3a9b04[_0x4914ee(0xed)]()});const _0x46fd2e=Date[_0x4914ee(0xee)]()-_0x56ed7d;if(!_0x4a4d36[_0x4914ee(0xd4)])return{'success':![],'action':_0x8484ba?_0x4914ee(0xd1):_0x4914ee(0x100),'message':_0x4a4d36[_0x4914ee(0xf2)]||_0x4a4d36[_0x4914ee(0xdd)]||_0x4914ee(0xea)+(_0x8484ba?'update':_0x4914ee(0xfc))+_0x4914ee(0xe7),'nextSteps':[{'action':_0x4914ee(0xf5),'tool':_0x4914ee(0xf3),'reason':_0x4914ee(0x109)},{'action':_0x4914ee(0xe6),'tool':_0x4914ee(0xcd),'params':{'datasetCode':_0x4914ee(0xeb)},'reason':_0x4914ee(0xdf)}]};const _0x3d6daf=_0x4a4d36[_0x4914ee(0x105)]?.['sqlCode']||_0x4a4d36[_0x4914ee(0x105)]?.['code'],_0x4d7e8c=_0x4a4d36[_0x4914ee(0x105)]?.['sqlId']||_0x4a4d36[_0x4914ee(0x105)]?.['id'],_0x5d28be=[{'action':_0x4914ee(0xec),'tool':_0x4914ee(0xd9),'params':{'sqlCode':_0x3d6daf||''},'reason':_0x4914ee(0xd0),'priority':_0x4914ee(0xe1)},{'action':_0x4914ee(0x102),'tool':'generate_sql_code','params':{'sqlCode':_0x3d6daf||''},'reason':_0x4914ee(0xd2),'priority':_0x4914ee(0xe3)}],_0x5cacf6={'success':!![],'action':_0x8484ba?_0x4914ee(0xd1):_0x4914ee(0x100),'message':_0x8484ba?_0x4914ee(0x106)+_0x2d307c+'\x22\x20updated\x20successfully\x20('+_0x3ba29f+')':_0x4914ee(0x106)+_0x2d307c+'\x22\x20saved\x20successfully\x20('+_0x3ba29f+')','nextSteps':_0x5d28be,'parsedStructure':{'tables':_0x494e24[_0x4914ee(0x107)],'columns':_0x494e24[_0x4914ee(0x103)][_0x4914ee(0xf8)],'parameters':_0x494e24['parameters'],'summary':_0x3ba29f},'data':_0x4a4d36['data']};if(verifyAfterSave)try{const _0x453059=await _0xaf69e0[_0x4914ee(0xf4)]({'pageSize':0xa,'currentPage':0x1,'sqlName':_0x2d307c}),_0x11bb27=_0x453059[_0x4914ee(0x105)]?.[_0x4914ee(0xe0)]||[],_0x4ceb01=_0x11bb27[_0x4914ee(0xd8)](_0x313d30=>_0x313d30[_0x4914ee(0x10f)]===_0x2d307c||_0x313d30[_0x4914ee(0xcf)]===_0x2d307c);_0x4ceb01?(_0x5cacf6['verified']={'found':!![],'sqlInfo':{'sqlCode':_0x4ceb01[_0x4914ee(0xe9)]||appCode+'-'+(_0x4ceb01[_0x4914ee(0x10a)]||_0x4ceb01['id']),'sqlId':_0x4ceb01[_0x4914ee(0x10a)]||_0x4ceb01['id'],'id':_0x4ceb01['id'],'name':_0x4ceb01[_0x4914ee(0x10f)]||_0x4ceb01[_0x4914ee(0xcf)],'sqlContent':_0x4ceb01[_0x4914ee(0xcc)]||_0x4ceb01[_0x4914ee(0x104)],'createdTime':_0x4ceb01['createdTime']||_0x4ceb01['createTime'],'updatedTime':_0x4ceb01['updatedTime']||_0x4ceb01[_0x4914ee(0xdb)]}},_0x5cacf6[_0x4914ee(0xda)][_0x4914ee(0xfd)]?.['sqlCode']&&(_0x5d28be[0x0][_0x4914ee(0xfa)]={'sqlCode':_0x5cacf6[_0x4914ee(0xda)][_0x4914ee(0xfd)][_0x4914ee(0xe9)]},_0x5d28be[0x1][_0x4914ee(0xfa)]={'sqlCode':_0x5cacf6[_0x4914ee(0xda)][_0x4914ee(0xfd)][_0x4914ee(0xe9)]})):_0x5cacf6[_0x4914ee(0xda)]={'found':![]};}catch(_0x4bf35c){process[_0x4914ee(0xce)][_0x4914ee(0xf9)]!==_0x4914ee(0xf1)&&console[_0x4914ee(0xdc)]('[saveOrUpdateCustomSql]\x20Verification\x20query\x20failed:',_0x4bf35c),_0x5cacf6[_0x4914ee(0xda)]={'found':![]};}return _0x5cacf6;}
1
+ (function(_0x7e0eaa,_0x293814){const _0x76630f=a19_0xd4d9,_0x142b92=_0x7e0eaa();while(!![]){try{const _0x161426=-parseInt(_0x76630f(0x135))/0x1*(parseInt(_0x76630f(0x13d))/0x2)+-parseInt(_0x76630f(0x107))/0x3+-parseInt(_0x76630f(0x11f))/0x4+parseInt(_0x76630f(0x12c))/0x5+parseInt(_0x76630f(0x12a))/0x6+-parseInt(_0x76630f(0x114))/0x7+-parseInt(_0x76630f(0x113))/0x8*(-parseInt(_0x76630f(0x12d))/0x9);if(_0x161426===_0x293814)break;else _0x142b92['push'](_0x142b92['shift']());}catch(_0x2dd5e2){_0x142b92['push'](_0x142b92['shift']());}}}(a19_0x3d2c,0x7c50d));import{DevApiClient}from'../api/dev-api-client.js';function a19_0xd4d9(_0x11b233,_0x14d259){_0x11b233=_0x11b233-0x103;const _0x3d2cf2=a19_0x3d2c();let _0xd4d99=_0x3d2cf2[_0x11b233];return _0xd4d99;}import{detectSqlType,parseSqlStructure,generateSqlSummary}from'../utils/sql-parser.js';import{getEnvAppCode,getEnvironment,shouldLog}from'../config/env.js';import{rateLimiters}from'../utils/rate-limiter.js';function a19_0x3d2c(){const _0x1cc50f=['sqlId','⚠️\x20检测到\x20','parameters','execute_custom_sql','Verify\x20database\x20ID\x20is\x20correct','saveUserCustomSql','created','Ensure\x20you\x20are\x20logged\x20in\x20with\x20proper\x20permissions','\x20语句(会修改数据/结构),为安全起见不会自动保存到\x20Lovrabet\x20平台','Failed\x20to\x20','\x20custom\x20SQL','将此\x20SQL\x20保存到本地文件(手动导入到\x20Lovrabet\x20平台)','670263ebrEYh','isDangerous','sqlInfo','\x20语句,不会自动保存到\x20Lovrabet\x20平台','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','isSelectOnly','updated','save','id\x20is\x20required\x20for\x20updating\x20existing\x20SQL.','message','sqlCode','[saveOrUpdateCustomSql]\x20Verification\x20query\x20failed:','8UIkgLA','529704qrnWFm','Confirm\x20the\x20dbId\x20matches\x20the\x20database\x20you\x20want\x20to\x20use','SQL\x20\x22','medium','verified','\x22\x20保存被阻止:\x20','Check\x20database\x20connection\x20and\x20permissions','如果只需要查询数据,请使用\x20SELECT\x20语句','getCustomSqlList','columns','params','2199328vWYUrY','sqlContent','find','sqlContent\x20is\x20required\x20and\x20cannot\x20be\x20empty.','now','generate_sql_code','updatedTime','dbId\x20is\x20required.\x20Get\x20it\x20from\x20get_dataset_detail\x20->\x20basic.database.dbId','修改\x20SQL\x20为\x20SELECT\x20查询','tables','data','2630466VIqbiw','get_dataset_detail','4505415lKfbsW','7689357BVifNx','success','Custom\x20SQL\x20\x22','trim','<dataset-code>','sqlSave','sqlName\x20is\x20required\x20and\x20cannot\x20be\x20empty.','name','167149JwpbnB','warn','high','createdTime','sqlName','Generate\x20SDK\x20code\x20for\x20this\x20SQL','Test\x20the\x20SQL\x20to\x20verify\x20it\x20works\x20correctly','errorMsg','10SksMlw','updateUserCustomSql','updateTime','type'];a19_0x3d2c=function(){return _0x1cc50f;};return a19_0x3d2c();}export async function saveOrUpdateCustomSql(_0x2ea178){const _0x1d0960=a19_0xd4d9,_0x154854=Date[_0x1d0960(0x123)](),{appCode:appCode=getEnvAppCode(),cookie:_0x250d1f,sqlName:_0x1939bd,dbId:_0x35c3e6,sqlContent:_0x5dd43e,id:_0x47e979,verifyAfterSave:verifyAfterSave=!![],validateSchema:validateSchema=![]}=_0x2ea178;if(!appCode)throw new Error(_0x1d0960(0x10b));if(!_0x1939bd||_0x1939bd[_0x1d0960(0x130)]()==='')throw new Error(_0x1d0960(0x133));if(!_0x35c3e6)throw new Error(_0x1d0960(0x126));if(!_0x5dd43e||_0x5dd43e[_0x1d0960(0x130)]()==='')throw new Error(_0x1d0960(0x122));const _0x5390bf=_0x47e979!==undefined&&_0x47e979>0x0;if(_0x5390bf&&!_0x47e979)throw new Error(_0x1d0960(0x10f));const _0x15adc5=detectSqlType(_0x5dd43e),_0x116eb6=parseSqlStructure(_0x5dd43e),_0x21668c=generateSqlSummary(_0x5dd43e),_0xf91a87=_0x1939bd['trim']();if(!_0x15adc5[_0x1d0960(0x10c)]){const _0x1cad86=_0x15adc5[_0x1d0960(0x108)]?_0x1d0960(0x142)+_0x15adc5[_0x1d0960(0x140)]+_0x1d0960(0x103):'检测到\x20'+_0x15adc5[_0x1d0960(0x140)]+_0x1d0960(0x10a);return{'success':![],'action':'blocked','message':_0x1d0960(0x116)+_0xf91a87+_0x1d0960(0x119)+_0x1cad86,'nextSteps':[{'action':_0x1d0960(0x106),'reason':'使用文件写入工具将\x20SQL\x20保存到本地,然后登录\x20Lovrabet\x20平台手动导入','priority':_0x1d0960(0x137)},{'action':_0x1d0960(0x127),'reason':_0x1d0960(0x11b),'priority':_0x1d0960(0x117)}],'parsedStructure':{'tables':_0x116eb6['tables'],'columns':_0x116eb6[_0x1d0960(0x11d)]['length'],'parameters':_0x116eb6[_0x1d0960(0x143)],'summary':_0x21668c},'sqlType':{'type':_0x15adc5['type'],'isSelectOnly':![],'isDangerous':_0x15adc5[_0x1d0960(0x108)],'warning':_0x1cad86}};}const _0x5cdd99=new DevApiClient({'appCode':appCode,'cookie':_0x250d1f}),_0x1482bf=getEnvironment();let _0x347ba0;_0x5390bf?_0x347ba0=await rateLimiters[_0x1d0960(0x132)]['throttle'](()=>_0x5cdd99[_0x1d0960(0x13e)]({'id':_0x47e979,'sqlName':_0xf91a87,'dbId':_0x35c3e6,'sqlContent':_0x5dd43e['trim']()})):_0x347ba0=await rateLimiters['sqlSave']['throttle'](()=>_0x5cdd99[_0x1d0960(0x146)]({'sqlName':_0xf91a87,'dbId':_0x35c3e6,'sqlContent':_0x5dd43e[_0x1d0960(0x130)]()}));const _0x2b5b62=Date[_0x1d0960(0x123)]()-_0x154854;if(!_0x347ba0[_0x1d0960(0x12e)])return{'success':![],'action':_0x5390bf?_0x1d0960(0x10d):_0x1d0960(0x147),'message':_0x347ba0[_0x1d0960(0x110)]||_0x347ba0[_0x1d0960(0x13c)]||_0x1d0960(0x104)+(_0x5390bf?'update':_0x1d0960(0x10e))+_0x1d0960(0x105),'nextSteps':[{'action':_0x1d0960(0x11a),'tool':'login','reason':_0x1d0960(0x148)},{'action':_0x1d0960(0x145),'tool':_0x1d0960(0x12b),'params':{'datasetCode':_0x1d0960(0x131)},'reason':_0x1d0960(0x115)}],'sqlType':{'type':_0x15adc5[_0x1d0960(0x140)],'isSelectOnly':!![],'isDangerous':![]}};const _0x1097b0=_0x347ba0['data']?.[_0x1d0960(0x111)]||_0x347ba0[_0x1d0960(0x129)]?.['code'],_0x4ac1dd=_0x347ba0[_0x1d0960(0x129)]?.[_0x1d0960(0x141)]||_0x347ba0[_0x1d0960(0x129)]?.['id'],_0x2641f8=[{'action':_0x1d0960(0x13b),'tool':_0x1d0960(0x144),'params':{'sqlCode':_0x1097b0||''},'reason':'Execute\x20the\x20SQL\x20to\x20check\x20for\x20runtime\x20errors','priority':'high'},{'action':_0x1d0960(0x13a),'tool':_0x1d0960(0x124),'params':{'sqlCode':_0x1097b0||''},'reason':'Get\x20ready-to-use\x20TypeScript\x20code\x20for\x20your\x20application','priority':_0x1d0960(0x117)}],_0x50528b={'success':!![],'action':_0x5390bf?_0x1d0960(0x10d):_0x1d0960(0x147),'message':_0x5390bf?_0x1d0960(0x12f)+_0xf91a87+'\x22\x20updated\x20successfully\x20('+_0x21668c+')':_0x1d0960(0x12f)+_0xf91a87+'\x22\x20saved\x20successfully\x20('+_0x21668c+')','nextSteps':_0x2641f8,'parsedStructure':{'tables':_0x116eb6[_0x1d0960(0x128)],'columns':_0x116eb6[_0x1d0960(0x11d)]['length'],'parameters':_0x116eb6[_0x1d0960(0x143)],'summary':_0x21668c},'sqlType':{'type':_0x15adc5['type'],'isSelectOnly':!![],'isDangerous':![]},'data':_0x347ba0['data']};if(verifyAfterSave)try{const _0x4d8b60=await _0x5cdd99[_0x1d0960(0x11c)]({'pageSize':0xa,'currentPage':0x1,'sqlName':_0xf91a87}),_0x4cc04a=_0x4d8b60[_0x1d0960(0x129)]?.['tableData']||[],_0x3af9cc=_0x4cc04a[_0x1d0960(0x121)](_0x86f265=>_0x86f265['sqlName']===_0xf91a87||_0x86f265[_0x1d0960(0x134)]===_0xf91a87);_0x3af9cc?(_0x50528b[_0x1d0960(0x118)]={'found':!![],'sqlInfo':{'sqlCode':_0x3af9cc[_0x1d0960(0x111)]||appCode+'-'+(_0x3af9cc[_0x1d0960(0x141)]||_0x3af9cc['id']),'sqlId':_0x3af9cc[_0x1d0960(0x141)]||_0x3af9cc['id'],'id':_0x3af9cc['id'],'name':_0x3af9cc[_0x1d0960(0x139)]||_0x3af9cc[_0x1d0960(0x134)],'sqlContent':_0x3af9cc[_0x1d0960(0x120)]||_0x3af9cc['sql'],'createdTime':_0x3af9cc[_0x1d0960(0x138)]||_0x3af9cc['createTime'],'updatedTime':_0x3af9cc[_0x1d0960(0x125)]||_0x3af9cc[_0x1d0960(0x13f)]}},_0x50528b[_0x1d0960(0x118)][_0x1d0960(0x109)]?.['sqlCode']&&(_0x2641f8[0x0][_0x1d0960(0x11e)]={'sqlCode':_0x50528b[_0x1d0960(0x118)][_0x1d0960(0x109)][_0x1d0960(0x111)]},_0x2641f8[0x1][_0x1d0960(0x11e)]={'sqlCode':_0x50528b[_0x1d0960(0x118)][_0x1d0960(0x109)][_0x1d0960(0x111)]})):_0x50528b['verified']={'found':![]};}catch(_0x4a5a07){shouldLog()&&console[_0x1d0960(0x136)](_0x1d0960(0x112),_0x4a5a07),_0x50528b[_0x1d0960(0x118)]={'found':![]};}return _0x50528b;}
@@ -1 +1 @@
1
- (function(_0x16a0be,_0x36d769){const _0x468d03=a20_0x29e7,_0x243d8c=_0x16a0be();while(!![]){try{const _0x5bb624=parseInt(_0x468d03(0xec))/0x1*(-parseInt(_0x468d03(0xe0))/0x2)+-parseInt(_0x468d03(0xdf))/0x3*(parseInt(_0x468d03(0xef))/0x4)+parseInt(_0x468d03(0xe5))/0x5+-parseInt(_0x468d03(0xf0))/0x6+-parseInt(_0x468d03(0xdc))/0x7+parseInt(_0x468d03(0xe3))/0x8*(parseInt(_0x468d03(0xe9))/0x9)+parseInt(_0x468d03(0xea))/0xa;if(_0x5bb624===_0x36d769)break;else _0x243d8c['push'](_0x243d8c['shift']());}catch(_0x21c387){_0x243d8c['push'](_0x243d8c['shift']());}}}(a20_0x97da,0xe15d5));import{DevApiClient}from'../api/dev-api-client.js';function a20_0x97da(){const _0x27f10c=['3PaFBvb','72BcxPNK','name','code','2804080aYaoiZ','online','6054135fgchHB','total','tableName','description','9HKIDAr','17317230NsNoZM','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','6921NdhayD','analyzeDatasetList','LOVRABET_APP_CODE','7104596PVFqyl','546114hAIcrC','1775501xfTtzx','searchDatasets','map'];a20_0x97da=function(){return _0x27f10c;};return a20_0x97da();}function a20_0x29e7(_0x18273f,_0xdb5d74){_0x18273f=_0x18273f-0xdc;const _0x97da85=a20_0x97da();let _0x29e79f=_0x97da85[_0x18273f];return _0x29e79f;}import{DatasetAnalyzer}from'../analyzer/dataset-analyzer.js';export async function searchDatasets(_0x297137){const _0x2dab2a=a20_0x29e7,{appCode:appCode=process['env'][_0x2dab2a(0xee)],cookie:_0x177faf,env:env=process['env']['LOVRABET_ENV']||_0x2dab2a(0xe4),keyword:_0x10618d}=_0x297137;if(!appCode)throw new Error(_0x2dab2a(0xeb));if(!_0x10618d)throw new Error('keyword\x20is\x20required');const _0x914075=new DevApiClient({'appCode':appCode,'cookie':_0x177faf,'env':env}),_0x3584f2=await _0x914075[_0x2dab2a(0xdd)](_0x10618d),_0x252c33=new DatasetAnalyzer(),_0xf3ee5f=_0x252c33[_0x2dab2a(0xed)](_0x3584f2);return{'appCode':appCode,'env':env,'keyword':_0x10618d,'total':_0xf3ee5f[_0x2dab2a(0xe6)],'datasets':_0xf3ee5f['datasets'][_0x2dab2a(0xde)](_0x427026=>({'id':_0x427026['id'],'name':_0x427026[_0x2dab2a(0xe1)],'code':_0x427026[_0x2dab2a(0xe2)],'tableName':_0x427026[_0x2dab2a(0xe7)],'description':_0x427026[_0x2dab2a(0xe8)]}))};}
1
+ (function(_0xd61c21,_0x46988d){const _0x4250d1=a20_0x4ede,_0x39eca0=_0xd61c21();while(!![]){try{const _0x52fc2b=-parseInt(_0x4250d1(0x17f))/0x1+-parseInt(_0x4250d1(0x185))/0x2*(-parseInt(_0x4250d1(0x17a))/0x3)+-parseInt(_0x4250d1(0x186))/0x4+-parseInt(_0x4250d1(0x17d))/0x5+-parseInt(_0x4250d1(0x17c))/0x6*(parseInt(_0x4250d1(0x189))/0x7)+-parseInt(_0x4250d1(0x187))/0x8+parseInt(_0x4250d1(0x17e))/0x9;if(_0x52fc2b===_0x46988d)break;else _0x39eca0['push'](_0x39eca0['shift']());}catch(_0x404e6c){_0x39eca0['push'](_0x39eca0['shift']());}}}(a20_0x161d,0xb7772));import{DevApiClient}from'../api/dev-api-client.js';function a20_0x4ede(_0x390d65,_0x4b6dc3){_0x390d65=_0x390d65-0x178;const _0x161ddc=a20_0x161d();let _0x4ede57=_0x161ddc[_0x390d65];return _0x4ede57;}import{DatasetAnalyzer}from'../analyzer/dataset-analyzer.js';import{getEnvAppCode,getEnvironment}from'../config/env.js';export async function searchDatasets(_0x3b6744){const _0x2fcc32=a20_0x4ede,{appCode:appCode=getEnvAppCode(),cookie:_0x16e190,keyword:_0x33481c}=_0x3b6744;if(!appCode)throw new Error(_0x2fcc32(0x181));if(!_0x33481c)throw new Error(_0x2fcc32(0x183));const _0x1a9605=new DevApiClient({'appCode':appCode,'cookie':_0x16e190}),_0x409f78=getEnvironment(),_0xdadce=await _0x1a9605[_0x2fcc32(0x180)](_0x33481c),_0xfa07b3=new DatasetAnalyzer(),_0x15e1fa=_0xfa07b3[_0x2fcc32(0x182)](_0xdadce);return{'appCode':appCode,'env':_0x409f78,'keyword':_0x33481c,'total':_0x15e1fa[_0x2fcc32(0x18a)],'datasets':_0x15e1fa[_0x2fcc32(0x184)][_0x2fcc32(0x178)](_0x3f8e71=>({'id':_0x3f8e71['id'],'name':_0x3f8e71['name'],'code':_0x3f8e71[_0x2fcc32(0x188)],'tableName':_0x3f8e71[_0x2fcc32(0x17b)],'description':_0x3f8e71[_0x2fcc32(0x179)]}))};}function a20_0x161d(){const _0x1709d7=['total','map','description','42WMuTxB','tableName','42HHSXyd','1244895ieSAUJ','50302863ZfJnNq','1244890phmyad','searchDatasets','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','analyzeDatasetList','keyword\x20is\x20required','datasets','18862YksZte','4309080qaEmDc','8550312HcxYht','code','1329839etNwHo'];a20_0x161d=function(){return _0x1709d7;};return a20_0x161d();}
@@ -1 +1 @@
1
- (function(_0xb4e0c2,_0x27ed43){const _0x4130a9=a21_0x3988,_0xb6ab4a=_0xb4e0c2();while(!![]){try{const _0xcdb263=-parseInt(_0x4130a9(0x1b7))/0x1+-parseInt(_0x4130a9(0x1dc))/0x2*(-parseInt(_0x4130a9(0x1ae))/0x3)+-parseInt(_0x4130a9(0x1d0))/0x4+parseInt(_0x4130a9(0x1d5))/0x5+parseInt(_0x4130a9(0x1bb))/0x6*(-parseInt(_0x4130a9(0x1df))/0x7)+-parseInt(_0x4130a9(0x1d7))/0x8*(-parseInt(_0x4130a9(0x1ba))/0x9)+parseInt(_0x4130a9(0x1af))/0xa;if(_0xcdb263===_0x27ed43)break;else _0xb6ab4a['push'](_0xb6ab4a['shift']());}catch(_0x504ca7){_0xb6ab4a['push'](_0xb6ab4a['shift']());}}}(a21_0x447a,0x69ba3));import{DevApiClient}from'../api/dev-api-client.js';function a21_0x3988(_0x5c4dc5,_0x3c60f3){_0x5c4dc5=_0x5c4dc5-0x1a9;const _0x447a30=a21_0x447a();let _0x39884d=_0x447a30[_0x5c4dc5];return _0x39884d;}import{validateIsSelectOnly,parseSqlStructure,validateSqlContent as a21_0x1a8e5f,generateSqlSummary}from'../utils/sql-parser.js';import{createStructuredSqlError}from'../types/mcp-types.js';async function fetchSchemaInfo(_0x2d0246,_0x501318){const _0xdbd999=a21_0x3988,_0xb6755b=[];for(const _0x478bba of _0x2d0246){try{const _0x20bf5d=/^\d+$/[_0xdbd999(0x1d3)](_0x478bba);let _0x4fe46d=_0x478bba;if(!_0x20bf5d){const _0x51a6ba=await _0x501318[_0xdbd999(0x1e2)]({'pageSize':0x3e7}),_0x4a596a=_0x51a6ba[_0xdbd999(0x1aa)]?.[_0xdbd999(0x1ab)]||[],_0x189a7f=_0x4a596a['find'](_0x4e07fb=>_0x4e07fb[_0xdbd999(0x1b6)]===_0x478bba);if(!_0x189a7f)continue;_0x4fe46d=String(_0x189a7f['id']);}const _0x2c8d95=await _0x501318[_0xdbd999(0x1de)](_0x4fe46d),_0x5722af=_0x2c8d95[_0xdbd999(0x1aa)]?.[_0xdbd999(0x1d1)]||'',_0xf4a607=_0x2c8d95[_0xdbd999(0x1aa)]?.[_0xdbd999(0x1cb)]||[],_0xb922b7=_0xf4a607[_0xdbd999(0x1a9)](_0x3b860e=>_0x3b860e[_0xdbd999(0x1b6)]||_0x3b860e[_0xdbd999(0x1c2)]);_0x5722af&&_0xb922b7[_0xdbd999(0x1da)]>0x0&&_0xb6755b['push']({'tableName':_0x5722af,'columns':_0xb922b7});}catch(_0x3e3481){process['env']['NODE_ENV']!==_0xdbd999(0x1d3)&&console['warn'](_0xdbd999(0x1b4)+_0x478bba+':',_0x3e3481);}}return _0xb6755b;}export async function validateSqlContentTool(_0x52e4fb){const _0x359b27=a21_0x3988,{appCode:appCode=process[_0x359b27(0x1b5)]['LOVRABET_APP_CODE'],cookie:_0x119692,env:env=process[_0x359b27(0x1b5)]['LOVRABET_ENV']||'online',sqlContent:_0x5b8f45,dbId:_0x10912c,validateSchemas:validateSchemas=[]}=_0x52e4fb;if(!_0x5b8f45||_0x5b8f45[_0x359b27(0x1c5)]()==='')return{'success':![],'message':_0x359b27(0x1cf),'validation':{'valid':![],'isSelectOnly':![]},'nextSteps':[{'action':'Provide\x20SQL\x20content\x20to\x20validate','tool':_0x359b27(0x1be),'reason':'SQL\x20content\x20cannot\x20be\x20empty'}]};const _0x3027bd=validateIsSelectOnly(_0x5b8f45);if(!_0x3027bd[_0x359b27(0x1b2)])return{'success':![],'message':_0x359b27(0x1e1)+_0x3027bd[_0x359b27(0x1ac)],'validation':{'valid':![],'isSelectOnly':![],'errors':[createStructuredSqlError({'type':_0x359b27(0x1c9),'location':_0x359b27(0x1bf),'message':_0x3027bd['reason']||_0x359b27(0x1cc),'severity':_0x359b27(0x1b3),'fixSteps':[{'description':'SQL\x20must\x20be\x20a\x20SELECT\x20statement','example':'SELECT\x20id,\x20name\x20FROM\x20customer\x20WHERE\x20status\x20=\x201'}]})]},'nextSteps':[{'action':_0x359b27(0x1c7),'tool':_0x359b27(0x1ca),'reason':'Only\x20SELECT\x20queries\x20are\x20allowed\x20for\x20custom\x20SQL'}]};const _0x145d91=parseSqlStructure(_0x5b8f45),_0x449a5f=generateSqlSummary(_0x5b8f45);let _0x12de63;if(validateSchemas[_0x359b27(0x1da)]>0x0&&appCode){const _0xace46e=new DevApiClient({'appCode':appCode,'cookie':_0x119692,'env':env});_0x12de63=await fetchSchemaInfo(validateSchemas,_0xace46e);}const _0x4af7a1=a21_0x1a8e5f(_0x5b8f45,_0x12de63?{'tables':_0x12de63}:undefined),_0x12f90f={'success':_0x4af7a1[_0x359b27(0x1b2)]||!![],'message':_0x4af7a1[_0x359b27(0x1b2)]?_0x359b27(0x1c1)+_0x449a5f+')':_0x359b27(0x1db)+(_0x4af7a1['errors']?.[_0x359b27(0x1da)]||0x0)+_0x359b27(0x1d8),'validation':{..._0x4af7a1,'parsedStructure':_0x145d91}},_0xae82fb=[];if(_0x4af7a1[_0x359b27(0x1b2)])_0x10912c?_0xae82fb[_0x359b27(0x1b8)]({'action':_0x359b27(0x1ad),'tool':_0x359b27(0x1ca),'params':{'sqlName':'<sql-name>','dbId':_0x10912c,'sqlContent':_0x5b8f45},'reason':'SQL\x20is\x20valid\x20and\x20ready\x20to\x20be\x20saved','priority':'high'}):_0xae82fb[_0x359b27(0x1b8)]({'action':_0x359b27(0x1d4),'tool':_0x359b27(0x1b9),'params':{'datasetCode':'<dataset-code>'},'reason':_0x359b27(0x1ce),'priority':_0x359b27(0x1d9)});else{_0xae82fb[_0x359b27(0x1b8)]({'action':_0x359b27(0x1dd),'tool':_0x359b27(0x1be),'reason':_0x359b27(0x1c4),'priority':_0x359b27(0x1d9)});for(const _0x5b308c of _0x4af7a1[_0x359b27(0x1c3)]||[]){if(_0x5b308c['type']===_0x359b27(0x1d6)||_0x5b308c['type']==='TABLE_NOT_FOUND'){const _0x148a34=_0x5b308c[_0x359b27(0x1b0)][0x0]?.[_0x359b27(0x1cd)]||_0x5b308c['typeLabel'];_0xae82fb[_0x359b27(0x1b8)]({'action':_0x359b27(0x1c0),'tool':'get_dataset_detail','params':{'datasetCode':_0x359b27(0x1d2)},'reason':_0x148a34,'priority':'medium'});break;}}}return!_0x4af7a1['valid']&&_0x4af7a1['errors']?.[_0x359b27(0x1b1)](_0x3df3d7=>_0x3df3d7[_0x359b27(0x1c6)]===_0x359b27(0x1bd))&&_0xae82fb[_0x359b27(0x1b8)]({'action':_0x359b27(0x1e0),'tool':_0x359b27(0x1bc),'reason':'Find\x20the\x20correct\x20table\x20names\x20for\x20your\x20SQL','priority':_0x359b27(0x1c8)}),_0x12f90f['nextSteps']=_0xae82fb,_0x12f90f;}function a21_0x447a(){const _0xffb1c0=['type','Modify\x20SQL\x20to\x20be\x20a\x20SELECT\x20statement\x20only','medium','SYNTAX_ERROR','save_or_update_custom_sql','properties','Invalid\x20SQL','description','Need\x20dbId\x20from\x20dataset\x20detail\x20to\x20save\x20SQL','SQL\x20content\x20is\x20required','3011728iUlTEQ','tableName','<dataset-code>','test','Get\x20database\x20ID\x20to\x20save\x20this\x20SQL','276025xOwQKl','COLUMN_NOT_FOUND','16AXCtda','\x20error(s))','high','length','SQL\x20validation\x20failed\x20(','282554YrHayC','Review\x20SQL\x20errors\x20and\x20fix','getDatasetDetail','3563315zyBEve','List\x20all\x20available\x20datasets','SQL\x20validation\x20failed:\x20','getDatasetList','map','data','tableData','reason','Save\x20this\x20validated\x20SQL','6seFLhe','11734340VMYBuG','fixSteps','some','valid','error','[validateSqlContent]\x20Failed\x20to\x20fetch\x20schema\x20for\x20','env','code','656411tDHfRW','push','get_dataset_detail','3781143WKOzjp','6lbBozm','list_datasets','TABLE_NOT_FOUND','validate_sql_content','SQL_START','Get\x20dataset\x20details\x20to\x20find\x20correct\x20table/column\x20names','SQL\x20validation\x20passed\x20(','fieldCode','errors','Fix\x20the\x20identified\x20errors\x20before\x20saving','trim'];a21_0x447a=function(){return _0xffb1c0;};return a21_0x447a();}export{validateSqlContentTool as validateSqlContent};
1
+ (function(_0x47f1a8,_0x47e248){const _0x171036=a21_0x3f45,_0x476a6e=_0x47f1a8();while(!![]){try{const _0x2f3df1=-parseInt(_0x171036(0xd8))/0x1+parseInt(_0x171036(0xc6))/0x2+parseInt(_0x171036(0xc2))/0x3*(parseInt(_0x171036(0xd9))/0x4)+-parseInt(_0x171036(0xb9))/0x5+-parseInt(_0x171036(0xba))/0x6+parseInt(_0x171036(0xbd))/0x7*(-parseInt(_0x171036(0xbc))/0x8)+parseInt(_0x171036(0xe9))/0x9;if(_0x2f3df1===_0x47e248)break;else _0x476a6e['push'](_0x476a6e['shift']());}catch(_0x3b5e2e){_0x476a6e['push'](_0x476a6e['shift']());}}}(a21_0xd5e9,0x4c27e));function a21_0x3f45(_0x53697f,_0x15b0d4){_0x53697f=_0x53697f-0xaf;const _0xd5e942=a21_0xd5e9();let _0x3f4574=_0xd5e942[_0x53697f];return _0x3f4574;}import{DevApiClient}from'../api/dev-api-client.js';import{detectSqlType,parseSqlStructure,validateSqlContent as a21_0x2b9f8c,generateSqlSummary}from'../utils/sql-parser.js';import{getEnvAppCode,shouldLog}from'../config/env.js';async function fetchSchemaInfo(_0x20abbf,_0x4a490f){const _0x47e273=a21_0x3f45,_0x3ba140=[];for(const _0x31eec4 of _0x20abbf){try{const _0x440925=/^\d+$/['test'](_0x31eec4);let _0x17ce56=_0x31eec4;if(!_0x440925){const _0x4fa305=await _0x4a490f[_0x47e273(0xc7)](),_0x48335c=_0x4fa305[_0x47e273(0xb6)]?.[_0x47e273(0xcd)]||[],_0x34abfe=_0x48335c['find'](_0x5d6d34=>_0x5d6d34[_0x47e273(0xbf)]===_0x31eec4);if(!_0x34abfe)continue;_0x17ce56=String(_0x34abfe['id']);}const _0x1d06fd=await _0x4a490f[_0x47e273(0xd3)](_0x17ce56),_0x1ec65c=_0x1d06fd['data']?.[_0x47e273(0xd4)]||'',_0x3dbfff=_0x1d06fd[_0x47e273(0xb6)]?.[_0x47e273(0xb0)]||[],_0x43a390=_0x3dbfff[_0x47e273(0xc9)](_0x2cef92=>_0x2cef92[_0x47e273(0xbf)]||_0x2cef92[_0x47e273(0xb1)]);_0x1ec65c&&_0x43a390['length']>0x0&&_0x3ba140[_0x47e273(0xd5)]({'tableName':_0x1ec65c,'columns':_0x43a390});}catch(_0x321499){shouldLog()&&console[_0x47e273(0xdc)](_0x47e273(0xd6)+_0x31eec4+':',_0x321499);}}return _0x3ba140;}export async function validateSqlContentTool(_0x46cd21){const _0x2c2443=a21_0x3f45,{appCode:appCode=getEnvAppCode(),cookie:_0x4ce358,sqlContent:_0x5d35fd,dbId:_0x45f221,validateSchemas:validateSchemas=[]}=_0x46cd21;if(!_0x5d35fd||_0x5d35fd[_0x2c2443(0xb3)]()==='')return{'success':![],'message':_0x2c2443(0xcc),'sqlContent':'','parsedStructure':{'tables':[],'columns':[],'parameters':[]},'schemaValidation':{'valid':![]},'sqlType':{'type':_0x2c2443(0xc1),'isSelectOnly':![],'isDangerous':![]},'nextSteps':[{'action':'Provide\x20SQL\x20content\x20to\x20validate','tool':_0x2c2443(0xdf),'reason':_0x2c2443(0xea)}]};const _0x3d5519=detectSqlType(_0x5d35fd),_0x3ab145=parseSqlStructure(_0x5d35fd),_0x4f22a4=generateSqlSummary(_0x5d35fd);let _0x481ac8;if(validateSchemas[_0x2c2443(0xe4)]>0x0&&appCode){const _0x289b93=new DevApiClient({'appCode':appCode,'cookie':_0x4ce358});_0x481ac8=await fetchSchemaInfo(validateSchemas,_0x289b93);}const _0x4c7a08=a21_0x2b9f8c(_0x5d35fd,_0x481ac8?{'tables':_0x481ac8}:undefined),_0x2d31e7=[];if(_0x4c7a08[_0x2c2443(0xb5)]){if(_0x3d5519['isSelectOnly'])_0x45f221?_0x2d31e7[_0x2c2443(0xd5)]({'action':_0x2c2443(0xd0),'tool':_0x2c2443(0xc5),'params':{'sqlName':_0x2c2443(0xc0),'dbId':_0x45f221,'sqlContent':_0x5d35fd},'reason':_0x2c2443(0xe0),'priority':_0x2c2443(0xc8)}):_0x2d31e7[_0x2c2443(0xd5)]({'action':'获取数据库\x20ID\x20以保存\x20SQL','tool':_0x2c2443(0xc4),'params':{'datasetCode':_0x2c2443(0xbb)},'reason':_0x2c2443(0xe7),'priority':_0x2c2443(0xc8)});else{const _0x53edd2=_0x3d5519[_0x2c2443(0xbe)]?_0x2c2443(0xe1)+_0x3d5519[_0x2c2443(0xaf)]+'\x20语句(会修改数据/结构)':_0x2c2443(0xcb)+_0x3d5519[_0x2c2443(0xaf)]+_0x2c2443(0xe6);_0x2d31e7['push']({'action':_0x2c2443(0xc3),'reason':_0x53edd2+_0x2c2443(0xdb),'priority':_0x2c2443(0xc8)});}}else _0x2d31e7['push']({'action':_0x2c2443(0xde),'tool':_0x2c2443(0xdf),'reason':_0x2c2443(0xda),'priority':_0x2c2443(0xc8)});if(!_0x4c7a08[_0x2c2443(0xb5)]&&_0x4c7a08[_0x2c2443(0xd7)]&&_0x4c7a08[_0x2c2443(0xd7)][_0x2c2443(0xe4)]>0x0)for(const _0x2769a9 of _0x4c7a08[_0x2c2443(0xd7)]){if(_0x2769a9[_0x2c2443(0xaf)]===_0x2c2443(0xb2)||_0x2769a9[_0x2c2443(0xaf)]===_0x2c2443(0xe8)){_0x2d31e7[_0x2c2443(0xd5)]({'action':_0x2c2443(0xe3),'tool':_0x2c2443(0xc4),'params':{'datasetCode':'<dataset-code>'},'reason':_0x2769a9[_0x2c2443(0xca)][0x0]?.[_0x2c2443(0xd2)]||_0x2769a9[_0x2c2443(0xb8)],'priority':_0x2c2443(0xdd)});break;}}!_0x4c7a08['valid']&&_0x4c7a08[_0x2c2443(0xd7)]&&_0x4c7a08[_0x2c2443(0xd7)][_0x2c2443(0xd1)](_0x4e0222=>_0x4e0222[_0x2c2443(0xaf)]===_0x2c2443(0xe8))&&_0x2d31e7[_0x2c2443(0xd5)]({'action':_0x2c2443(0xe5),'tool':_0x2c2443(0xce),'reason':'查找正确的表名','priority':_0x2c2443(0xdd)});let _0xa2261='';if(_0x3d5519[_0x2c2443(0xb7)])_0xa2261=_0x4c7a08[_0x2c2443(0xb5)]?'✓\x20SELECT\x20查询':_0x2c2443(0xb4);else _0x3d5519[_0x2c2443(0xbe)]?_0xa2261=_0x2c2443(0xcf)+_0x3d5519[_0x2c2443(0xaf)]+'\x20语句(会修改数据/结构)':_0xa2261=_0x3d5519['type']+_0x2c2443(0xe6);const _0x209442=_0x4c7a08['valid']?'':_0x2c2443(0xe2),_0x41d5a6=_0x4f22a4?'\x20('+_0x4f22a4+')':'',_0x56c7f8=!_0x4c7a08['valid']&&_0x4c7a08[_0x2c2443(0xd7)]?','+_0x4c7a08[_0x2c2443(0xd7)][_0x2c2443(0xe4)]+'\x20个错误':'';return{'success':_0x4c7a08[_0x2c2443(0xb5)]||!![],'message':''+_0xa2261+_0x209442+_0x41d5a6+_0x56c7f8,'sqlContent':_0x5d35fd,'parsedStructure':_0x3ab145,'schemaValidation':{'valid':_0x4c7a08[_0x2c2443(0xb5)],'errors':_0x4c7a08['errors']},'sqlType':_0x3d5519,'nextSteps':_0x2d31e7};}function a21_0xd5e9(){const _0x18d1a3=['map','fixSteps','检测到\x20','SQL\x20content\x20is\x20required','tableData','list_datasets','⚠️\x20','保存此\x20SELECT\x20查询到\x20Lovrabet\x20平台','some','description','getDatasetDetail','tableName','push','[validateSqlContent]\x20Failed\x20to\x20fetch\x20schema\x20for\x20','errors','69412gimARb','4HmSIcZ','请先修复识别出的表/字段错误',',为安全起见建议手动保存。请使用文件写入工具保存,然后手动导入','warn','medium','修复\x20SQL\x20错误后再保存','validate_sql_content','SQL\x20验证通过且为\x20SELECT\x20查询,可以保存到平台','⚠️\x20检测到\x20',',存在错误','获取数据集详情以找到正确的表/字段名','length','列出所有可用的数据集','\x20语句','需要从数据集详情中获取\x20dbId\x20来保存\x20SQL','TABLE_NOT_FOUND','3807342xqClkI','SQL\x20content\x20cannot\x20be\x20empty','type','properties','fieldCode','COLUMN_NOT_FOUND','trim','⚠️\x20SELECT\x20查询存在问题','valid','data','isSelectOnly','typeLabel','219570pZHMYj','1187058htPzGO','<dataset-code>','141264KfozZy','112cBHdEC','isDangerous','code','<sql-name>','UNKNOWN','218883ZdXHrP','将此\x20SQL\x20保存到本地文件(手动导入到\x20Lovrabet\x20平台)','get_dataset_detail','save_or_update_custom_sql','819264jntJXB','getDatasetList','high'];a21_0xd5e9=function(){return _0x18d1a3;};return a21_0xd5e9();}export{validateSqlContentTool as validateSqlContent};
@@ -1 +1 @@
1
- function a22_0x478f(_0x5da4be,_0x265949){_0x5da4be=_0x5da4be-0x1cd;var _0xc2cf37=a22_0xc2cf();var _0x478fc3=_0xc2cf37[_0x5da4be];return _0x478fc3;}(function(_0x25f81d,_0x2a7151){var _0x40a95b=a22_0x478f,_0x14579f=_0x25f81d();while(!![]){try{var _0x10db52=-parseInt(_0x40a95b(0x1d8))/0x1*(parseInt(_0x40a95b(0x1d5))/0x2)+parseInt(_0x40a95b(0x1d4))/0x3*(parseInt(_0x40a95b(0x1d9))/0x4)+parseInt(_0x40a95b(0x1d2))/0x5*(-parseInt(_0x40a95b(0x1d1))/0x6)+parseInt(_0x40a95b(0x1cf))/0x7*(parseInt(_0x40a95b(0x1d6))/0x8)+parseInt(_0x40a95b(0x1d7))/0x9*(parseInt(_0x40a95b(0x1d3))/0xa)+parseInt(_0x40a95b(0x1d0))/0xb+parseInt(_0x40a95b(0x1cd))/0xc*(-parseInt(_0x40a95b(0x1ce))/0xd);if(_0x10db52===_0x2a7151)break;else _0x14579f['push'](_0x14579f['shift']());}catch(_0x4daa01){_0x14579f['push'](_0x14579f['shift']());}}}(a22_0xc2cf,0xe9523));function a22_0xc2cf(){var _0x252951=['13gzHpgi','98OSMDff','19645439eQRrxK','1134402lQfsim','25maUfmk','4363250JdDZmg','3eOVMQK','1603698KNtixW','904072xRCtqu','9ppfkJj','2izFaiC','5893836MkfLxB','21277716ANkSbM'];a22_0xc2cf=function(){return _0x252951;};return a22_0xc2cf();}export{createError,createAuthError,createMissingParamError,createDatasetNotFoundError,createSqlNotFoundError,createSqlValidationError,createStructuredSqlError,fromLovrabetError,SQL_ERROR_TYPE_LABELS}from'./mcp-types.js';
1
+ function a22_0x2ef0(){var _0x4a6143=['22cpJHgY','419732QjedMd','6128843eIXJmz','39kiSKlQ','2550046tWljme','2936988PMAraL','2285ZIidfJ','32ezJfTQ','568396QjaocT','3342xopxru','1618730strWXd'];a22_0x2ef0=function(){return _0x4a6143;};return a22_0x2ef0();}(function(_0x1ef7c5,_0xa0aa2b){var _0x47ac3a=a22_0x4198,_0x4d355a=_0x1ef7c5();while(!![]){try{var _0x5e7b88=-parseInt(_0x47ac3a(0x1f9))/0x1+parseInt(_0x47ac3a(0x1f5))/0x2+parseInt(_0x47ac3a(0x1f4))/0x3*(-parseInt(_0x47ac3a(0x1fd))/0x4)+-parseInt(_0x47ac3a(0x1f7))/0x5*(parseInt(_0x47ac3a(0x1fa))/0x6)+parseInt(_0x47ac3a(0x1fe))/0x7+-parseInt(_0x47ac3a(0x1f8))/0x8*(-parseInt(_0x47ac3a(0x1f6))/0x9)+parseInt(_0x47ac3a(0x1fb))/0xa*(-parseInt(_0x47ac3a(0x1fc))/0xb);if(_0x5e7b88===_0xa0aa2b)break;else _0x4d355a['push'](_0x4d355a['shift']());}catch(_0x23207d){_0x4d355a['push'](_0x4d355a['shift']());}}}(a22_0x2ef0,0xe6bb8));function a22_0x4198(_0x1abf90,_0x9aa8ac){_0x1abf90=_0x1abf90-0x1f4;var _0x2ef000=a22_0x2ef0();var _0x4198c1=_0x2ef000[_0x1abf90];return _0x4198c1;}export{createError,createAuthError,createMissingParamError,createDatasetNotFoundError,createSqlNotFoundError,createSqlValidationError,createStructuredSqlError,fromLovrabetError,SQL_ERROR_TYPE_LABELS}from'./mcp-types.js';
@@ -1 +1 @@
1
- const a23_0x2c68f9=a23_0x25d4;function a23_0x59a5(){const _0x5cf3ad=['44WgQNTW','NETWORK_ERROR','get_dataset_detail','push','SQL_EXECUTION_FAILED','9224UnXrzz','API_ERROR','语法错误','fixedSql','error','检查\x20SQL\x20语法,确保关键字拼写正确、括号匹配','SQL_NOT_FOUND','SQL_VALIDATION_FAILED','3271910IPZSLr','length','SQL\x20不存在:\x20','使用\x20get_dataset_detail\x20工具查看数据集的所有字段','list_datasets','确保\x20SELECT\x20语句格式正确,如:\x20SELECT\x20id,\x20name\x20FROM\x20table\x20WHERE\x20status\x20=\x201','432162Ttyztj','135276cymzZb','canAutoFix','7bqyojY','4PXSJWo','response','数据集不存在:\x20','login({\x20env:\x20\x22online\x22\x20})','get_dataset_detail({\x20datasetCode:\x20\x22customer\x22\x20})','查看所有可用的数据集','suggestions','5499456oMcDhs','类型不匹配','需要登录才能访问\x20Lovrabet\x20数据。请先使用\x20login\x20工具进行登录。','status','登录到\x20Lovrabet\x20平台','PARAMETER_MISSING','查看所有可用的\x20SQL\x20查询','<dataset-code>','缺少\x20WHERE\x20条件','TABLE_NOT_FOUND','PARAMETER_INVALID','recoverable','fixSteps','1062000SqLEte','AUTH_REQUIRED','description','type','list_sql_queries','code','字段不存在','location','缺少必需参数:\x20','使用\x20list_datasets\x20工具查看所有可用的数据集表名','DATASET_NOT_FOUND','list_sql_queries({\x20pageSize:\x20999\x20})','typeLabel','1570UNgLcx','UNKNOWN_ERROR','suggestedAction','表不存在','tool','toISOString','message','example','7443hqfNVf','124rGRpRr','不安全的查询','list_datasets({\x20pageSize:\x20999\x20})','severity'];a23_0x59a5=function(){return _0x5cf3ad;};return a23_0x59a5();}(function(_0x3ddfa7,_0xa021a2){const _0x18c2b0=a23_0x25d4,_0x5334dc=_0x3ddfa7();while(!![]){try{const _0x5dfcf2=parseInt(_0x18c2b0(0x14b))/0x1*(parseInt(_0x18c2b0(0x142))/0x2)+parseInt(_0x18c2b0(0x159))/0x3+-parseInt(_0x18c2b0(0x15d))/0x4*(parseInt(_0x18c2b0(0x153))/0x5)+parseInt(_0x18c2b0(0x171))/0x6*(-parseInt(_0x18c2b0(0x15c))/0x7)+parseInt(_0x18c2b0(0x164))/0x8+-parseInt(_0x18c2b0(0x186))/0x9*(parseInt(_0x18c2b0(0x17e))/0xa)+-parseInt(_0x18c2b0(0x146))/0xb*(parseInt(_0x18c2b0(0x15a))/0xc);if(_0x5dfcf2===_0xa021a2)break;else _0x5334dc['push'](_0x5334dc['shift']());}catch(_0x587225){_0x5334dc['push'](_0x5334dc['shift']());}}}(a23_0x59a5,0x60f05));function a23_0x25d4(_0x2b4af8,_0x4aa69b){_0x2b4af8=_0x2b4af8-0x142;const _0x59a582=a23_0x59a5();let _0x25d472=_0x59a582[_0x2b4af8];return _0x25d472;}export const SQL_ERROR_TYPE_LABELS={'TABLE_NOT_FOUND':a23_0x2c68f9(0x181),'COLUMN_NOT_FOUND':a23_0x2c68f9(0x177),'AMBIGUOUS_COLUMN':'字段名歧义','SYNTAX_ERROR':a23_0x2c68f9(0x14d),'TYPE_MISMATCH':a23_0x2c68f9(0x165),'MISSING_WHERE_CLAUSE':a23_0x2c68f9(0x16c),'UNSAFE_QUERY':a23_0x2c68f9(0x143)};export function createError(_0x3c358a){const _0x13cf44=a23_0x2c68f9;return{'error':!![],'code':_0x3c358a['code'],'message':_0x3c358a[_0x13cf44(0x184)],'status':_0x3c358a[_0x13cf44(0x167)],'description':_0x3c358a['description'],'response':_0x3c358a['response'],'suggestedAction':_0x3c358a[_0x13cf44(0x180)],'recoverable':_0x3c358a[_0x13cf44(0x16f)]??!![],'timestamp':new Date()[_0x13cf44(0x183)]()};}export function createAuthError(){const _0x4a3e8a=a23_0x2c68f9;return createError({'code':'AUTH_REQUIRED','message':_0x4a3e8a(0x166),'suggestedAction':{'tool':'login','description':_0x4a3e8a(0x168),'example':_0x4a3e8a(0x160)},'recoverable':!![]});}export function createMissingParamError(_0x5e2b0f,_0x9cc8d9){const _0x3c5278=a23_0x2c68f9;return createError({'code':_0x3c5278(0x169),'message':_0x3c5278(0x179)+_0x5e2b0f+(_0x9cc8d9?'\x20('+_0x9cc8d9+')':''),'recoverable':!![]});}export function createDatasetNotFoundError(_0x568919){const _0x45cdda=a23_0x2c68f9;return createError({'code':_0x45cdda(0x17b),'message':_0x45cdda(0x15f)+_0x568919,'suggestedAction':{'tool':_0x45cdda(0x157),'description':_0x45cdda(0x162),'example':'list_datasets({\x20pageSize:\x20999\x20})'},'recoverable':!![]});}export function createSqlNotFoundError(_0x163294){const _0x329207=a23_0x2c68f9;return createError({'code':_0x329207(0x151),'message':_0x329207(0x155)+_0x163294,'suggestedAction':{'tool':_0x329207(0x175),'description':_0x329207(0x16a),'example':_0x329207(0x17c)},'recoverable':!![]});}export function createSqlValidationError(_0x553481){const _0x922754=a23_0x2c68f9,_0x77de25=_0x553481[_0x922754(0x170)][_0x922754(0x154)]>0x0,_0xe9785f=_0x77de25?_0x553481[_0x922754(0x170)][0x0]:undefined,_0x56681a={'type':_0x553481[_0x922754(0x174)],'typeLabel':_0x553481[_0x922754(0x17d)],'location':_0x553481[_0x922754(0x178)],'severity':_0x553481[_0x922754(0x145)],'fixSteps':_0x553481[_0x922754(0x170)],'suggestions':_0x553481[_0x922754(0x163)],'canAutoFix':_0x553481[_0x922754(0x15b)],'fixedSql':_0x553481[_0x922754(0x14e)]};return createError({'code':_0x922754(0x152),'message':_0x553481[_0x922754(0x17d)]+':\x20'+_0x553481[_0x922754(0x184)],'status':_0x553481[_0x922754(0x167)],'description':_0x56681a,'response':_0x553481[_0x922754(0x15e)],'suggestedAction':_0xe9785f?{'tool':_0xe9785f[_0x922754(0x182)],'description':_0xe9785f[_0x922754(0x173)],'params':_0xe9785f['toolParams'],'example':_0xe9785f[_0x922754(0x185)]}:{'tool':_0x922754(0x148),'description':'获取数据集详情以确认表名和字段名','params':{'datasetCode':_0x922754(0x16b)}},'recoverable':_0x553481[_0x922754(0x145)]!==_0x922754(0x14f)});}export function createStructuredSqlError(_0x431bcc){const _0x45dcfb=a23_0x2c68f9,_0x2b9cde=SQL_ERROR_TYPE_LABELS[_0x431bcc['type']],_0x5f4b87=_0x431bcc['severity']??_0x45dcfb(0x14f),_0x51aa15=[];if(_0x431bcc['type']===_0x45dcfb(0x16d))_0x51aa15[_0x45dcfb(0x149)]({'description':_0x45dcfb(0x17a),'tool':_0x45dcfb(0x157),'toolParams':{'pageSize':0x3e7},'example':_0x45dcfb(0x144)});else{if(_0x431bcc[_0x45dcfb(0x174)]==='COLUMN_NOT_FOUND')_0x51aa15['push']({'description':_0x45dcfb(0x156),'tool':_0x45dcfb(0x148),'toolParams':{'datasetCode':'<dataset-code>'},'example':_0x45dcfb(0x161)});else _0x431bcc[_0x45dcfb(0x174)]==='SYNTAX_ERROR'&&_0x51aa15[_0x45dcfb(0x149)]({'description':_0x45dcfb(0x150),'example':_0x45dcfb(0x158)});}return{'type':_0x431bcc['type'],'typeLabel':_0x2b9cde,'location':_0x431bcc[_0x45dcfb(0x178)],'message':_0x431bcc[_0x45dcfb(0x184)],'severity':_0x5f4b87,'fixSteps':_0x431bcc[_0x45dcfb(0x170)]??_0x51aa15,'suggestions':_0x431bcc[_0x45dcfb(0x163)],'canAutoFix':_0x431bcc[_0x45dcfb(0x15b)],'fixedSql':_0x431bcc[_0x45dcfb(0x14e)],'status':_0x431bcc[_0x45dcfb(0x167)],'response':_0x431bcc[_0x45dcfb(0x15e)]};}export function fromLovrabetError(_0x46ea5f,_0x344c6d){const _0x2bc913=a23_0x2c68f9;return createError({'code':mapSdkCodeToMcpCode(_0x46ea5f[_0x2bc913(0x176)]),'message':_0x46ea5f['message'],'status':_0x46ea5f['status'],'description':_0x46ea5f['description'],'response':_0x46ea5f['response'],'suggestedAction':_0x344c6d,'recoverable':_0x46ea5f[_0x2bc913(0x167)]?_0x46ea5f['status']<0x1f4:!![]});}function mapSdkCodeToMcpCode(_0x1a76d0){const _0x487115=a23_0x2c68f9;if(!_0x1a76d0)return'UNKNOWN_ERROR';const _0x40cbed={'AUTH_REQUIRED':_0x487115(0x172),'AUTH_FAILED':_0x487115(0x172),'UNAUTHORIZED':_0x487115(0x172),'DATASET_NOT_FOUND':_0x487115(0x17b),'NOT_FOUND':_0x487115(0x17b),'INVALID_PARAMETER':_0x487115(0x16e),'MISSING_PARAMETER':'PARAMETER_MISSING','SQL_ERROR':_0x487115(0x14a),'NETWORK_ERROR':_0x487115(0x147),'API_ERROR':_0x487115(0x14c)};return _0x40cbed[_0x1a76d0]||_0x487115(0x17f);}
1
+ function a23_0x116b(){const _0x48e5e6=['toISOString','severity','UNKNOWN_ERROR','SQL_NOT_FOUND','error','获取数据集详情以确认表名和字段名','code','类型不匹配','DATASET_NOT_FOUND','toolParams','确保\x20SELECT\x20语句格式正确,如:\x20SELECT\x20id,\x20name\x20FROM\x20table\x20WHERE\x20status\x20=\x201','AUTH_REQUIRED','7346siuHXy','784gyzWMB','语法错误','2248218HJqtpU','canAutoFix','5590mnYxCH','检查\x20SQL\x20语法,确保关键字拼写正确、括号匹配','70440NXefen','SQL_VALIDATION_FAILED','list_datasets','description','6372ewrSMd','使用\x20get_dataset_detail\x20工具查看数据集的所有字段','缺少\x20WHERE\x20条件','数据集不存在:\x20','查看所有可用的数据集','suggestions','list_sql_queries','SQL\x20不存在:\x20','location','10PVQzQn','NETWORK_ERROR','SQL_EXECUTION_FAILED','字段名歧义','fixedSql','message','530562ZNVjOz','list_datasets({\x20pageSize:\x20999\x20})','fixSteps','PARAMETER_MISSING','222znlTAZ','API_ERROR','查看所有可用的\x20SQL\x20查询','不安全的查询','<dataset-code>','PARAMETER_INVALID','需要登录才能访问\x20Lovrabet\x20数据。请先使用\x20login\x20工具进行登录。','SYNTAX_ERROR','response','status','push','get_dataset_detail','type','731130CjKdoe'];a23_0x116b=function(){return _0x48e5e6;};return a23_0x116b();}const a23_0x3ee16e=a23_0x294f;(function(_0x9caaa9,_0x39f9b2){const _0x17c8f9=a23_0x294f,_0x15c228=_0x9caaa9();while(!![]){try{const _0x3bdd42=parseInt(_0x17c8f9(0xf7))/0x1+-parseInt(_0x17c8f9(0xd9))/0x2+parseInt(_0x17c8f9(0xdd))/0x3*(-parseInt(_0x17c8f9(0xf8))/0x4)+-parseInt(_0x17c8f9(0xd3))/0x5*(parseInt(_0x17c8f9(0xea))/0x6)+parseInt(_0x17c8f9(0xfa))/0x7+parseInt(_0x17c8f9(0xfe))/0x8+-parseInt(_0x17c8f9(0xca))/0x9*(-parseInt(_0x17c8f9(0xfc))/0xa);if(_0x3bdd42===_0x39f9b2)break;else _0x15c228['push'](_0x15c228['shift']());}catch(_0x3c9c3e){_0x15c228['push'](_0x15c228['shift']());}}}(a23_0x116b,0x332c2));function a23_0x294f(_0x1e76ec,_0x2ae715){_0x1e76ec=_0x1e76ec-0xc7;const _0x116bcb=a23_0x116b();let _0x294fa4=_0x116bcb[_0x1e76ec];return _0x294fa4;}export const SQL_ERROR_TYPE_LABELS={'TABLE_NOT_FOUND':'表不存在','COLUMN_NOT_FOUND':'字段不存在','AMBIGUOUS_COLUMN':a23_0x3ee16e(0xd6),'SYNTAX_ERROR':a23_0x3ee16e(0xf9),'TYPE_MISMATCH':a23_0x3ee16e(0xf2),'MISSING_WHERE_CLAUSE':a23_0x3ee16e(0xcc),'UNSAFE_QUERY':a23_0x3ee16e(0xe0)};export function createError(_0xdc92f2){const _0x242834=a23_0x3ee16e;return{'error':!![],'code':_0xdc92f2[_0x242834(0xf1)],'message':_0xdc92f2[_0x242834(0xd8)],'status':_0xdc92f2[_0x242834(0xe6)],'description':_0xdc92f2[_0x242834(0xc9)],'response':_0xdc92f2[_0x242834(0xe5)],'suggestedAction':_0xdc92f2['suggestedAction'],'recoverable':_0xdc92f2['recoverable']??!![],'timestamp':new Date()[_0x242834(0xeb)]()};}export function createAuthError(){const _0x29c09b=a23_0x3ee16e;return createError({'code':_0x29c09b(0xf6),'message':_0x29c09b(0xe3),'suggestedAction':{'tool':'login','description':'登录到\x20Lovrabet\x20平台','example':'login({\x20env:\x20\x22online\x22\x20})'},'recoverable':!![]});}export function createMissingParamError(_0x5a3a95,_0xd53ed9){const _0x259639=a23_0x3ee16e;return createError({'code':_0x259639(0xdc),'message':'缺少必需参数:\x20'+_0x5a3a95+(_0xd53ed9?'\x20('+_0xd53ed9+')':''),'recoverable':!![]});}export function createDatasetNotFoundError(_0x5ec455){const _0x25b775=a23_0x3ee16e;return createError({'code':_0x25b775(0xf3),'message':_0x25b775(0xcd)+_0x5ec455,'suggestedAction':{'tool':'list_datasets','description':_0x25b775(0xce),'example':_0x25b775(0xda)},'recoverable':!![]});}export function createSqlNotFoundError(_0x217c73){const _0x525350=a23_0x3ee16e;return createError({'code':_0x525350(0xee),'message':_0x525350(0xd1)+_0x217c73,'suggestedAction':{'tool':_0x525350(0xd0),'description':_0x525350(0xdf),'example':'list_sql_queries({\x20pageSize:\x20999\x20})'},'recoverable':!![]});}export function createSqlValidationError(_0x4d2d27){const _0x4269d7=a23_0x3ee16e,_0x3f55b5=_0x4d2d27['fixSteps']['length']>0x0,_0x55df4a=_0x3f55b5?_0x4d2d27['fixSteps'][0x0]:undefined,_0x1b1922={'type':_0x4d2d27['type'],'typeLabel':_0x4d2d27['typeLabel'],'location':_0x4d2d27[_0x4269d7(0xd2)],'severity':_0x4d2d27[_0x4269d7(0xec)],'fixSteps':_0x4d2d27[_0x4269d7(0xdb)],'suggestions':_0x4d2d27[_0x4269d7(0xcf)],'canAutoFix':_0x4d2d27[_0x4269d7(0xfb)],'fixedSql':_0x4d2d27[_0x4269d7(0xd7)]};return createError({'code':_0x4269d7(0xc7),'message':_0x4d2d27['typeLabel']+':\x20'+_0x4d2d27['message'],'status':_0x4d2d27[_0x4269d7(0xe6)],'description':_0x1b1922,'response':_0x4d2d27[_0x4269d7(0xe5)],'suggestedAction':_0x55df4a?{'tool':_0x55df4a['tool'],'description':_0x55df4a[_0x4269d7(0xc9)],'params':_0x55df4a[_0x4269d7(0xf4)],'example':_0x55df4a['example']}:{'tool':_0x4269d7(0xe8),'description':_0x4269d7(0xf0),'params':{'datasetCode':_0x4269d7(0xe1)}},'recoverable':_0x4d2d27[_0x4269d7(0xec)]!==_0x4269d7(0xef)});}export function createStructuredSqlError(_0x3ffecb){const _0x28131b=a23_0x3ee16e,_0x3be79d=SQL_ERROR_TYPE_LABELS[_0x3ffecb['type']],_0x449686=_0x3ffecb[_0x28131b(0xec)]??_0x28131b(0xef),_0x2dc05e=[];if(_0x3ffecb[_0x28131b(0xe9)]==='TABLE_NOT_FOUND')_0x2dc05e[_0x28131b(0xe7)]({'description':'使用\x20list_datasets\x20工具查看所有可用的数据集表名','tool':_0x28131b(0xc8),'toolParams':{'pageSize':0x3e7},'example':'list_datasets({\x20pageSize:\x20999\x20})'});else{if(_0x3ffecb[_0x28131b(0xe9)]==='COLUMN_NOT_FOUND')_0x2dc05e[_0x28131b(0xe7)]({'description':_0x28131b(0xcb),'tool':'get_dataset_detail','toolParams':{'datasetCode':_0x28131b(0xe1)},'example':'get_dataset_detail({\x20datasetCode:\x20\x22customer\x22\x20})'});else _0x3ffecb[_0x28131b(0xe9)]===_0x28131b(0xe4)&&_0x2dc05e['push']({'description':_0x28131b(0xfd),'example':_0x28131b(0xf5)});}return{'type':_0x3ffecb['type'],'typeLabel':_0x3be79d,'location':_0x3ffecb[_0x28131b(0xd2)],'message':_0x3ffecb[_0x28131b(0xd8)],'severity':_0x449686,'fixSteps':_0x3ffecb['fixSteps']??_0x2dc05e,'suggestions':_0x3ffecb[_0x28131b(0xcf)],'canAutoFix':_0x3ffecb[_0x28131b(0xfb)],'fixedSql':_0x3ffecb[_0x28131b(0xd7)],'status':_0x3ffecb[_0x28131b(0xe6)],'response':_0x3ffecb[_0x28131b(0xe5)]};}export function fromLovrabetError(_0x1d6579,_0x4f8e3f){const _0x4ff437=a23_0x3ee16e;return createError({'code':mapSdkCodeToMcpCode(_0x1d6579[_0x4ff437(0xf1)]),'message':_0x1d6579[_0x4ff437(0xd8)],'status':_0x1d6579[_0x4ff437(0xe6)],'description':_0x1d6579[_0x4ff437(0xc9)],'response':_0x1d6579[_0x4ff437(0xe5)],'suggestedAction':_0x4f8e3f,'recoverable':_0x1d6579['status']?_0x1d6579[_0x4ff437(0xe6)]<0x1f4:!![]});}function mapSdkCodeToMcpCode(_0x3108ab){const _0xb06fbb=a23_0x3ee16e;if(!_0x3108ab)return _0xb06fbb(0xed);const _0x5bfbda={'AUTH_REQUIRED':'AUTH_REQUIRED','AUTH_FAILED':_0xb06fbb(0xf6),'UNAUTHORIZED':_0xb06fbb(0xf6),'DATASET_NOT_FOUND':'DATASET_NOT_FOUND','NOT_FOUND':_0xb06fbb(0xf3),'INVALID_PARAMETER':_0xb06fbb(0xe2),'MISSING_PARAMETER':_0xb06fbb(0xdc),'SQL_ERROR':_0xb06fbb(0xd5),'NETWORK_ERROR':_0xb06fbb(0xd4),'API_ERROR':_0xb06fbb(0xde)};return _0x5bfbda[_0x3108ab]||'UNKNOWN_ERROR';}
@@ -0,0 +1 @@
1
+ function a24_0x493a(_0x26bf66,_0x51de13){_0x26bf66=_0x26bf66-0x10f;const _0x28fbd2=a24_0x28fb();let _0x493a5f=_0x28fbd2[_0x26bf66];return _0x493a5f;}const a24_0x12cc34=a24_0x493a;(function(_0x54a4a2,_0x48066d){const _0x4885f0=a24_0x493a,_0x344a1d=_0x54a4a2();while(!![]){try{const _0x59ec6e=-parseInt(_0x4885f0(0x11a))/0x1*(-parseInt(_0x4885f0(0x118))/0x2)+-parseInt(_0x4885f0(0x111))/0x3*(parseInt(_0x4885f0(0x128))/0x4)+-parseInt(_0x4885f0(0x124))/0x5*(-parseInt(_0x4885f0(0x113))/0x6)+-parseInt(_0x4885f0(0x11c))/0x7+-parseInt(_0x4885f0(0x116))/0x8+parseInt(_0x4885f0(0x120))/0x9*(parseInt(_0x4885f0(0x10f))/0xa)+parseInt(_0x4885f0(0x119))/0xb*(parseInt(_0x4885f0(0x110))/0xc);if(_0x59ec6e===_0x48066d)break;else _0x344a1d['push'](_0x344a1d['shift']());}catch(_0x2219a7){_0x344a1d['push'](_0x344a1d['shift']());}}}(a24_0x28fb,0x89676));export class RateLimiter{[a24_0x12cc34(0x127)]=0x0;[a24_0x12cc34(0x12c)]=[];[a24_0x12cc34(0x126)]=![];['options'];constructor(_0x3ca740={}){const _0x37c1c3=a24_0x12cc34;this[_0x37c1c3(0x129)]={'maxOperations':_0x3ca740['maxOperations']??Infinity,'windowMs':_0x3ca740['windowMs']??0x3e8,'delayMs':_0x3ca740['delayMs']??0x7d0};}async[a24_0x12cc34(0x117)](_0x453ed9){return new Promise((_0x431084,_0x165189)=>{const _0x50e053=a24_0x493a;this['queue'][_0x50e053(0x12a)]({'fn':_0x453ed9,'resolve':_0x431084,'reject':_0x165189}),this[_0x50e053(0x11e)]();});}async[a24_0x12cc34(0x11e)](){const _0x1fdd3d=a24_0x12cc34;if(this[_0x1fdd3d(0x126)]||this['queue'][_0x1fdd3d(0x123)]===0x0)return;this[_0x1fdd3d(0x126)]=!![];while(this[_0x1fdd3d(0x12c)][_0x1fdd3d(0x123)]>0x0){const _0x56547d=Date[_0x1fdd3d(0x11f)](),_0x5710ac=_0x56547d-this[_0x1fdd3d(0x127)];if(this[_0x1fdd3d(0x127)]>0x0&&_0x5710ac<this[_0x1fdd3d(0x129)][_0x1fdd3d(0x12d)]){const _0x3872df=this[_0x1fdd3d(0x129)][_0x1fdd3d(0x12d)]-_0x5710ac;await this[_0x1fdd3d(0x11b)](_0x3872df);}const _0x1c9968=this[_0x1fdd3d(0x12c)][_0x1fdd3d(0x121)]();if(!_0x1c9968)break;try{const _0x38a6b7=await _0x1c9968['fn']();_0x1c9968[_0x1fdd3d(0x11d)](_0x38a6b7);}catch(_0x367543){_0x1c9968[_0x1fdd3d(0x114)](_0x367543);}this['lastExecutionTime']=Date['now']();}this[_0x1fdd3d(0x126)]=![];}[a24_0x12cc34(0x11b)](_0x295ed4){return new Promise(_0x37c9bf=>setTimeout(_0x37c9bf,_0x295ed4));}[a24_0x12cc34(0x122)](){const _0x1830b1=a24_0x12cc34;this[_0x1830b1(0x127)]=0x0,this['queue']=[],this[_0x1830b1(0x126)]=![];}[a24_0x12cc34(0x112)](){return this['queue']['length'];}}const globalLimiters=new Map();export function getRateLimiter(_0x5f18ed,_0x32a23d){const _0x25459d=a24_0x12cc34;return!globalLimiters[_0x25459d(0x125)](_0x5f18ed)&&globalLimiters[_0x25459d(0x12b)](_0x5f18ed,new RateLimiter(_0x32a23d)),globalLimiters[_0x25459d(0x115)](_0x5f18ed);}export const rateLimiters={'sqlSave':new RateLimiter({'delayMs':0x3e8}),'api':new RateLimiter({'delayMs':0x1f4}),'fast':new RateLimiter({'delayMs':0xc8})};function a24_0x28fb(){const _0x2fd8ea=['now','1278846enntgy','shift','reset','length','100zeQdEK','has','processing','lastExecutionTime','4EIXgsP','options','push','set','queue','delayMs','20XOoZKd','22452uPEKSV','520791iBHdBB','getQueueLength','37212HxZveb','reject','get','5516800OUTIik','throttle','15054PVzxMT','5093uGQaWT','98XKzCRK','sleep','4103008aVnIwp','resolve','processQueue'];a24_0x28fb=function(){return _0x2fd8ea;};return a24_0x28fb();}
@@ -1 +1 @@
1
- (function(_0xef3225,_0x11e057){const _0x3bba3e=a24_0x4b77,_0x112d64=_0xef3225();while(!![]){try{const _0x402a0a=parseInt(_0x3bba3e(0x1b8))/0x1+parseInt(_0x3bba3e(0x19c))/0x2*(parseInt(_0x3bba3e(0x1cd))/0x3)+-parseInt(_0x3bba3e(0x1a1))/0x4*(parseInt(_0x3bba3e(0x1a5))/0x5)+parseInt(_0x3bba3e(0x1a9))/0x6*(parseInt(_0x3bba3e(0x1d7))/0x7)+parseInt(_0x3bba3e(0x19d))/0x8+-parseInt(_0x3bba3e(0x1df))/0x9*(parseInt(_0x3bba3e(0x1de))/0xa)+parseInt(_0x3bba3e(0x1d3))/0xb*(-parseInt(_0x3bba3e(0x1bc))/0xc);if(_0x402a0a===_0x11e057)break;else _0x112d64['push'](_0x112d64['shift']());}catch(_0x3c91be){_0x112d64['push'](_0x112d64['shift']());}}}(a24_0x5a38,0x5e397));import{createStructuredSqlError}from'../types/mcp-types.js';export function parseSqlStructure(_0x4f5836){const _0x33e21a=a24_0x4b77,_0x9fa466={'tables':[],'columns':[],'parameters':[],'joins':[]};if(!_0x4f5836||typeof _0x4f5836!=='string')return _0x9fa466;const _0xee26e3=_0x4f5836[_0x33e21a(0x1c3)](/#\{[^}]*\}/g,'?')[_0x33e21a(0x1c3)](/\$\{[^}]*\}/g,'?')[_0x33e21a(0x1c3)](/'[^']*'/g,'\x27\x27')['replace'](/--.*$/gm,'')[_0x33e21a(0x1c3)](/\/\*[\s\S]*?\*\//g,''),_0x29a079=_0xee26e3[_0x33e21a(0x1db)](/FROM\s+([^\s,)(]+)/i);if(_0x29a079){const _0x431e76=_0x29a079[0x1][_0x33e21a(0x1c3)](/[`"]/g,'');_0x9fa466[_0x33e21a(0x1b5)][_0x33e21a(0x1a3)](_0x431e76);}const _0x13e9ca=_0xee26e3[_0x33e21a(0x1d4)](/(?:INNER|LEFT|RIGHT|FULL|CROSS)?\s*JOIN\s+([^\s,)(]+)/gi);for(const _0x15b1d7 of _0x13e9ca){const _0x3accdc=_0x15b1d7[0x1]['replace'](/[`"]/g,'');_0x3accdc&&!_0x9fa466[_0x33e21a(0x1b5)]['includes'](_0x3accdc)&&_0x9fa466['tables']['push'](_0x3accdc);}const _0x2edb4e=_0xee26e3[_0x33e21a(0x1db)](/SELECT\s+([\s\S]+?)\s+FROM/i);if(_0x2edb4e){const _0x421ab5=_0x2edb4e[0x1]['trim']();if(_0x421ab5!=='*'){const _0x3cd1be=splitSqlColumns(_0x421ab5);for(const _0x5970ff of _0x3cd1be){const _0x5a59d9=_0x5970ff['trim']();if(_0x5a59d9&&!_0x5a59d9['match'](/^\d+$/)){const _0x4fb743=_0x5a59d9[_0x33e21a(0x1a2)](/\s+AS\s+/i),_0x546705=_0x4fb743[0x0][_0x33e21a(0x1aa)](),_0xd483ee=_0x4fb743[0x1]?.[_0x33e21a(0x1aa)]();if(_0x546705[_0x33e21a(0x1c7)]('.')){const [_0x524954,_0x335218]=_0x546705['split']('.');_0x9fa466[_0x33e21a(0x1d9)]['push']({'table':_0x524954[_0x33e21a(0x1aa)](),'column':_0x335218[_0x33e21a(0x1c3)](/[`"]/g,'')[_0x33e21a(0x1aa)](),'alias':_0xd483ee});}else!_0x546705['includes']('(')&&_0x9fa466[_0x33e21a(0x1d9)]['push']({'table':'','column':_0x546705[_0x33e21a(0x1c3)](/[`"]/g,''),'alias':_0xd483ee});}}}}const _0x59047d=_0xee26e3[_0x33e21a(0x1d4)](/JOIN\s+(\w+)\s+(?:AS\s+)?(\w+)?\s+ON\s+([\w.]+)\s*=\s*([\w.]+)/gi);for(const _0x1024e3 of _0x59047d){const [,,,_0x3e076f,_0x16427c]=_0x1024e3;if(_0x3e076f&&_0x16427c){const [_0x47027e,_0x8d9c30]=_0x3e076f[_0x33e21a(0x1c7)]('.')?_0x3e076f[_0x33e21a(0x1a2)]('.'):['',_0x3e076f],[_0x4d8ec0,_0x19d3fb]=_0x16427c[_0x33e21a(0x1c7)]('.')?_0x16427c[_0x33e21a(0x1a2)]('.'):['',_0x16427c];_0x9fa466[_0x33e21a(0x1c9)]?.[_0x33e21a(0x1a3)]({'leftTable':_0x47027e,'leftColumn':_0x8d9c30,'rightTable':_0x4d8ec0,'rightColumn':_0x19d3fb});}}const _0x2c2363=_0x4f5836[_0x33e21a(0x1d4)](/[#\$]\{(\w+)\}/g),_0x52e44d=new Set();for(const _0xa9f955 of _0x2c2363){const _0x35d1b8=_0xa9f955[0x1];!_0x52e44d[_0x33e21a(0x1c5)](_0x35d1b8)&&(_0x52e44d[_0x33e21a(0x1b7)](_0x35d1b8),_0x9fa466[_0x33e21a(0x1ca)][_0x33e21a(0x1a3)]({'name':_0x35d1b8,'type':inferParamType(_0x35d1b8),'example':getExampleValue(_0x35d1b8)}));}return _0x9fa466;}function splitSqlColumns(_0x33f6ac){const _0x4eb49a=a24_0x4b77,_0x4bfe83=[];let _0x4dce7a='',_0x423703=0x0;for(let _0x4e45b0=0x0;_0x4e45b0<_0x33f6ac['length'];_0x4e45b0++){const _0x337116=_0x33f6ac[_0x4e45b0];if(_0x337116==='(')_0x423703++,_0x4dce7a+=_0x337116;else{if(_0x337116===')')_0x423703--,_0x4dce7a+=_0x337116;else _0x337116===','&&_0x423703===0x0?(_0x4bfe83[_0x4eb49a(0x1a3)](_0x4dce7a),_0x4dce7a=''):_0x4dce7a+=_0x337116;}}return _0x4dce7a&&_0x4bfe83['push'](_0x4dce7a),_0x4bfe83;}function a24_0x4b77(_0x15a056,_0x46c3df){_0x15a056=_0x15a056-0x19a;const _0x5a3870=a24_0x5a38();let _0x4b773e=_0x5a3870[_0x15a056];return _0x4b773e;}function inferParamType(_0xdaabf1){const _0x8892f4=a24_0x4b77,_0x18ab43=_0xdaabf1[_0x8892f4(0x1e8)]();if(_0x18ab43[_0x8892f4(0x1c7)]('id')||_0x18ab43['includes'](_0x8892f4(0x1d8))||_0x18ab43[_0x8892f4(0x1c7)](_0x8892f4(0x1c6))||_0x18ab43['includes'](_0x8892f4(0x1b6))||_0x18ab43[_0x8892f4(0x1c7)](_0x8892f4(0x1e4))||_0x18ab43[_0x8892f4(0x1c7)](_0x8892f4(0x1ce))||_0x18ab43[_0x8892f4(0x1c7)](_0x8892f4(0x1e1))||_0x18ab43['includes'](_0x8892f4(0x19f)))return _0x8892f4(0x1ad);return _0x8892f4(0x1e3);}function getExampleValue(_0x4204b8){const _0x98df27=a24_0x4b77,_0x10eabf=_0x4204b8[_0x98df27(0x1e8)](),_0x5ae7a2=inferParamType(_0x10eabf);if(_0x5ae7a2===_0x98df27(0x1ad)){if(_0x10eabf[_0x98df27(0x1c7)](_0x98df27(0x1c6))||_0x10eabf[_0x98df27(0x1c7)](_0x98df27(0x1d8))||_0x10eabf['includes'](_0x98df27(0x1b6)))return 0xa;if(_0x10eabf[_0x98df27(0x1c7)](_0x98df27(0x1e4)))return 0x1;return 0x7b;}if(_0x10eabf['includes'](_0x98df27(0x1d2))||_0x10eabf[_0x98df27(0x1c7)](_0x98df27(0x1ab)))return _0x98df27(0x1c0);if(_0x10eabf[_0x98df27(0x1c7)](_0x98df27(0x1b2)))return'1';if(_0x10eabf[_0x98df27(0x1c7)](_0x98df27(0x1d6))||_0x10eabf[_0x98df27(0x1c7)](_0x98df27(0x1bb))||_0x10eabf['includes'](_0x98df27(0x1c4)))return'example';return _0x98df27(0x1da);}export function validateIsSelectOnly(_0xe4592b){const _0x26e713=a24_0x4b77;if(!_0xe4592b||typeof _0xe4592b!==_0x26e713(0x1e3))return{'valid':![],'reason':'SQL\x20content\x20cannot\x20be\x20empty'};const _0x3b98f1=_0xe4592b[_0x26e713(0x1c3)](/#\{[^}]*\}/g,'?')[_0x26e713(0x1c3)](/\$\{[^}]*\}/g,'?')[_0x26e713(0x1c3)](/@[^(\s]+(\([^)]*\))?/g,''),_0x348b69=_0x3b98f1[_0x26e713(0x1aa)](),_0x18166c=_0x348b69[_0x26e713(0x1a2)]('\x0a');let _0x595eee='';for(const _0x1e7bf4 of _0x18166c){const _0x27f920=_0x1e7bf4[_0x26e713(0x1aa)]();if(!_0x27f920||_0x27f920[_0x26e713(0x1a4)]('--')||_0x27f920[_0x26e713(0x1a4)]('/*'))continue;_0x595eee=_0x27f920;break;}if(!_0x595eee[_0x26e713(0x1c1)]()[_0x26e713(0x1a4)]('SELECT'))return{'valid':![],'reason':_0x26e713(0x1ac)};const _0x405755=['INSERT\x5cs+INTO',_0x26e713(0x1d1),'DELETE\x5cs+FROM','DROP\x5cs+(TABLE|INDEX|DATABASE)','ALTER\x5cs+(TABLE|DATABASE)',_0x26e713(0x1d0),'TRUNCATE',_0x26e713(0x1a8),_0x26e713(0x1e2),_0x26e713(0x1e9),_0x26e713(0x1cc)],_0x1b21ce=_0x348b69['toUpperCase']();for(const _0x25f2ab of _0x405755){const _0x172954=new RegExp(_0x25f2ab,'i');if(_0x172954[_0x26e713(0x1bf)](_0x1b21ce))return{'valid':![],'reason':_0x26e713(0x1be)+_0x25f2ab[_0x26e713(0x1c3)](_0x26e713(0x1dd),'\x20')+_0x26e713(0x1bd)};}return{'valid':!![]};}function a24_0x5a38(){const _0x3f36db=['2024-01-01','toUpperCase','valid','replace','name','has','limit','includes','字段\x20\x22','joins','parameters','确保\x20SQL\x20语句以\x20SELECT\x20关键字开头','EXECUTE','75trNdmj','num','表\x20\x22','CREATE\x5cs+(TABLE|INDEX|DATABASE|VIEW)','UPDATE\x5cs+\x5cw+\x5cs+SET','date','1075547FCRfEg','matchAll','column','keyword','57547oAFggM','count','columns','value','match','TABLE_NOT_FOUND','\x5c\x5cs+','223180VuEPOF','117XvyxVn','SELECT\x20id,\x20name\x20FROM\x20customer\x20WHERE\x20status\x20=\x201','amount','REVOKE','string','page','Tables:\x20','length','SQL_START','toLowerCase','EXEC','Joins:\x20','Params:\x20','slice','40232KeahCY','2154560UnJRTw','SQL\x20必须以\x20SELECT\x20开头','price','\x22\x20在表\x20\x22','24bPNHmZ','split','push','startsWith','502965uABCnf','\x22\x20中不存在','get','GRANT','414EtisgT','trim','time','Only\x20SELECT\x20queries\x20are\x20allowed.\x20The\x20SQL\x20must\x20start\x20with\x20SELECT\x20(after\x20any\x20comments).','number','filter','tableName','map','join','status','COLUMN_NOT_FOUND','from','tables','size','add','233497llQdZE','table','error','search','36zQssLh','.\x20Only\x20SELECT\x20queries\x20are\x20allowed.','Forbidden\x20keyword\x20detected:\x20','test'];a24_0x5a38=function(){return _0x3f36db;};return a24_0x5a38();}export function extractTableNames(_0x3e9033){const _0x5e1f4f=a24_0x4b77,_0x5bb698=parseSqlStructure(_0x3e9033);return _0x5bb698[_0x5e1f4f(0x1b5)];}export function extractColumnNames(_0x54e8e4){const _0x328005=a24_0x4b77,_0x381600=parseSqlStructure(_0x54e8e4);return _0x381600[_0x328005(0x1d9)][_0x328005(0x1b0)](_0x52a18c=>({'table':_0x52a18c[_0x328005(0x1b9)],'column':_0x52a18c[_0x328005(0x1d5)]}));}export function extractParameters(_0x2adf86){const _0x1087ac=a24_0x4b77,_0x10a7c8=parseSqlStructure(_0x2adf86);return _0x10a7c8[_0x1087ac(0x1ca)];}export function validateSqlContent(_0x42dcba,_0x31a66f){const _0x4162c9=a24_0x4b77,_0x4fbe54=validateIsSelectOnly(_0x42dcba);if(!_0x4fbe54[_0x4162c9(0x1c2)])return{'valid':![],'isSelectOnly':![],'errors':[createStructuredSqlError({'type':'SYNTAX_ERROR','location':_0x4162c9(0x1e7),'message':_0x4fbe54['reason']||_0x4162c9(0x19e),'severity':_0x4162c9(0x1ba),'fixSteps':[{'description':_0x4162c9(0x1cb),'example':_0x4162c9(0x1e0)}]})]};const _0x3209c1=parseSqlStructure(_0x42dcba),_0x3642ff=[];if(_0x31a66f){const _0x30edac=new Map(_0x31a66f['tables']['map'](_0x29926d=>[_0x29926d[_0x4162c9(0x1af)][_0x4162c9(0x1e8)](),_0x29926d[_0x4162c9(0x1d9)]['map'](_0x5b442a=>_0x5b442a[_0x4162c9(0x1e8)]())]));for(const _0x538cb5 of _0x3209c1['tables']){const _0x82d1b8=_0x538cb5['toLowerCase']();if(!_0x30edac['has'](_0x82d1b8)){const _0xa19687=Array['from'](_0x30edac['keys']())[_0x4162c9(0x1ae)](_0xbf6819=>_0xbf6819[_0x4162c9(0x1c7)](_0x82d1b8)||_0x82d1b8['includes'](_0xbf6819));_0x3642ff[_0x4162c9(0x1a3)](createStructuredSqlError({'type':_0x4162c9(0x1dc),'location':_0x538cb5,'message':_0x4162c9(0x1cf)+_0x538cb5+'\x22\x20在数据库\x20schema\x20中不存在','severity':_0x4162c9(0x1ba),'suggestions':_0xa19687[_0x4162c9(0x1e6)]>0x0?_0xa19687:Array[_0x4162c9(0x1b4)](_0x30edac['keys']())}));}}for(const _0x44003b of _0x3209c1[_0x4162c9(0x1d9)]){if(_0x44003b[_0x4162c9(0x1b9)]){const _0x558d21=_0x44003b[_0x4162c9(0x1b9)][_0x4162c9(0x1e8)](),_0x5d1edc=_0x30edac[_0x4162c9(0x1a7)](_0x558d21);if(_0x5d1edc){const _0x30f6f2=_0x44003b[_0x4162c9(0x1d5)][_0x4162c9(0x1e8)]();if(!_0x5d1edc[_0x4162c9(0x1c7)](_0x30f6f2)&&!_0x44003b[_0x4162c9(0x1d5)][_0x4162c9(0x1c7)]('*')){const _0x1ff442=_0x5d1edc[_0x4162c9(0x1ae)](_0x20302b=>_0x20302b[_0x4162c9(0x1c7)](_0x30f6f2)||_0x30f6f2['includes'](_0x20302b));_0x3642ff['push'](createStructuredSqlError({'type':_0x4162c9(0x1b3),'location':_0x44003b[_0x4162c9(0x1b9)]+'.'+_0x44003b[_0x4162c9(0x1d5)],'message':_0x4162c9(0x1c8)+_0x44003b[_0x4162c9(0x1d5)]+_0x4162c9(0x1a0)+_0x44003b[_0x4162c9(0x1b9)]+_0x4162c9(0x1a6),'severity':_0x4162c9(0x1ba),'suggestions':_0x1ff442[_0x4162c9(0x1e6)]>0x0?_0x1ff442:_0x5d1edc[_0x4162c9(0x19b)](0x0,0xa)}));}}}}}return{'valid':_0x3642ff[_0x4162c9(0x1e6)]===0x0,'isSelectOnly':!![],'parsedStructure':_0x3209c1,'errors':_0x3642ff[_0x4162c9(0x1e6)]>0x0?_0x3642ff:undefined};}export function generateSqlSummary(_0x224c28){const _0x3f4ac0=a24_0x4b77,_0x11a443=parseSqlStructure(_0x224c28),_0x272973=[];return _0x11a443[_0x3f4ac0(0x1b5)][_0x3f4ac0(0x1e6)]>0x0&&_0x272973[_0x3f4ac0(0x1a3)](_0x3f4ac0(0x1e5)+_0x11a443['tables'][_0x3f4ac0(0x1b1)](',\x20')),_0x11a443[_0x3f4ac0(0x1ca)][_0x3f4ac0(0x1e6)]>0x0&&_0x272973[_0x3f4ac0(0x1a3)](_0x3f4ac0(0x19a)+_0x11a443[_0x3f4ac0(0x1ca)][_0x3f4ac0(0x1b0)](_0xcee58e=>_0xcee58e[_0x3f4ac0(0x1c4)])[_0x3f4ac0(0x1b1)](',\x20')),_0x11a443[_0x3f4ac0(0x1c9)]&&_0x11a443[_0x3f4ac0(0x1c9)][_0x3f4ac0(0x1e6)]>0x0&&_0x272973[_0x3f4ac0(0x1a3)](_0x3f4ac0(0x1ea)+_0x11a443[_0x3f4ac0(0x1c9)][_0x3f4ac0(0x1e6)]),_0x272973[_0x3f4ac0(0x1e6)]>0x0?_0x272973['join']('\x20|\x20'):'SELECT\x20query';}
1
+ function a25_0x2ae9(){const _0xe8f0a4=['test','price','DDL','\x22\x20在数据库\x20schema\x20中不存在','error','字段\x20\x22','join','name','amount','limit','reason','value','REVOKE','size','Contains\x20data\x20modification\x20keywords','SELECT\x20query','97401ZhPcUt','search','slice','INSERT','matchAll','includes','38583LUdDdH','replace','push','SELECT','DROP','3341046SRjIAL','count','trim','num','TRUNCATE','4796925faaUxK','TABLE_NOT_FOUND','SQL\x20content\x20is\x20empty','1992YrdHyQ','Joins:\x20','parameters','time','table','CREATE','toUpperCase','has','INSERT\x20statement\x20modifies\x20data','\x20|\x20','DELETE\x20statement\x20modifies\x20data','add','GRANT','filter','match','column','startsWith','keyword','date','string','UNKNOWN','split','76cfPGCt','Params:\x20','toLowerCase','1702356gstkxi','tables','length','isSelectOnly','from','joins','get','columns','number','2024-01-01','map','keys','example','\x22\x20在表\x20\x22','2154584SdHTTE','ALTER','5052020OmEAsf'];a25_0x2ae9=function(){return _0xe8f0a4;};return a25_0x2ae9();}(function(_0x43aa85,_0x57ad36){const _0x3d097b=a25_0x2ad3,_0x53b4d6=_0x43aa85();while(!![]){try{const _0x5a093b=-parseInt(_0x3d097b(0xd1))/0x1+parseInt(_0x3d097b(0xce))/0x2*(-parseInt(_0x3d097b(0xa5))/0x3)+parseInt(_0x3d097b(0x92))/0x4+parseInt(_0x3d097b(0x94))/0x5+parseInt(_0x3d097b(0xb0))/0x6+parseInt(_0x3d097b(0xb5))/0x7+-parseInt(_0x3d097b(0xb8))/0x8*(-parseInt(_0x3d097b(0xab))/0x9);if(_0x5a093b===_0x57ad36)break;else _0x53b4d6['push'](_0x53b4d6['shift']());}catch(_0x2b0406){_0x53b4d6['push'](_0x53b4d6['shift']());}}}(a25_0x2ae9,0xe139f));import{createStructuredSqlError}from'../types/mcp-types.js';export function parseSqlStructure(_0x292901){const _0x16a3a1=a25_0x2ad3,_0x4d88c1={'tables':[],'columns':[],'parameters':[],'joins':[]};if(!_0x292901||typeof _0x292901!==_0x16a3a1(0xcb))return _0x4d88c1;const _0xedc756=_0x292901['replace'](/#\{[^}]*\}/g,'?')[_0x16a3a1(0xac)](/\$\{[^}]*\}/g,'?')[_0x16a3a1(0xac)](/'[^']*'/g,'\x27\x27')[_0x16a3a1(0xac)](/--.*$/gm,'')[_0x16a3a1(0xac)](/\/\*[\s\S]*?\*\//g,''),_0x583972=_0xedc756[_0x16a3a1(0xc6)](/FROM\s+([^\s,)(]+)/i);if(_0x583972){const _0x4a58ea=_0x583972[0x1][_0x16a3a1(0xac)](/[`"]/g,'');_0x4d88c1[_0x16a3a1(0xd2)][_0x16a3a1(0xad)](_0x4a58ea);}const _0x52bc05=_0xedc756[_0x16a3a1(0xa9)](/(?:INNER|LEFT|RIGHT|FULL|CROSS)?\s*JOIN\s+([^\s,)(]+)/gi);for(const _0xbbb9ed of _0x52bc05){const _0x13ea74=_0xbbb9ed[0x1][_0x16a3a1(0xac)](/[`"]/g,'');_0x13ea74&&!_0x4d88c1[_0x16a3a1(0xd2)]['includes'](_0x13ea74)&&_0x4d88c1['tables'][_0x16a3a1(0xad)](_0x13ea74);}const _0x174349=_0xedc756[_0x16a3a1(0xc6)](/SELECT\s+([\s\S]+?)\s+FROM/i);if(_0x174349){const _0x12e497=_0x174349[0x1]['trim']();if(_0x12e497!=='*'){const _0xb695e5=splitSqlColumns(_0x12e497);for(const _0x5561f0 of _0xb695e5){const _0x11abe4=_0x5561f0[_0x16a3a1(0xb2)]();if(_0x11abe4&&!_0x11abe4[_0x16a3a1(0xc6)](/^\d+$/)){const _0x547429=_0x11abe4['split'](/\s+AS\s+/i),_0x41fff6=_0x547429[0x0][_0x16a3a1(0xb2)](),_0x59feb1=_0x547429[0x1]?.[_0x16a3a1(0xb2)]();if(_0x41fff6[_0x16a3a1(0xaa)]('.')){const [_0x30380f,_0xec81a1]=_0x41fff6[_0x16a3a1(0xcd)]('.');_0x4d88c1['columns']['push']({'table':_0x30380f[_0x16a3a1(0xb2)](),'column':_0xec81a1[_0x16a3a1(0xac)](/[`"]/g,'')[_0x16a3a1(0xb2)](),'alias':_0x59feb1});}else!_0x41fff6[_0x16a3a1(0xaa)]('(')&&_0x4d88c1['columns'][_0x16a3a1(0xad)]({'table':'','column':_0x41fff6[_0x16a3a1(0xac)](/[`"]/g,''),'alias':_0x59feb1});}}}}const _0x40ee4c=_0xedc756[_0x16a3a1(0xa9)](/JOIN\s+(\w+)\s+(?:AS\s+)?(\w+)?\s+ON\s+([\w.]+)\s*=\s*([\w.]+)/gi);for(const _0x2cb2f8 of _0x40ee4c){const [,,,_0x43175c,_0x22ac21]=_0x2cb2f8;if(_0x43175c&&_0x22ac21){const [_0x5e47dd,_0x1cfed7]=_0x43175c[_0x16a3a1(0xaa)]('.')?_0x43175c[_0x16a3a1(0xcd)]('.'):['',_0x43175c],[_0x267921,_0x46cb39]=_0x22ac21['includes']('.')?_0x22ac21[_0x16a3a1(0xcd)]('.'):['',_0x22ac21];_0x4d88c1['joins']?.['push']({'leftTable':_0x5e47dd,'leftColumn':_0x1cfed7,'rightTable':_0x267921,'rightColumn':_0x46cb39});}}const _0x1ca87a=_0x292901[_0x16a3a1(0xa9)](/[#\$]\{(\w+)\}/g),_0x552d45=new Set();for(const _0xc4f93 of _0x1ca87a){const _0x2ea778=_0xc4f93[0x1];!_0x552d45[_0x16a3a1(0xbf)](_0x2ea778)&&(_0x552d45[_0x16a3a1(0xc3)](_0x2ea778),_0x4d88c1[_0x16a3a1(0xba)][_0x16a3a1(0xad)]({'name':_0x2ea778,'type':inferParamType(_0x2ea778),'example':getExampleValue(_0x2ea778)}));}return _0x4d88c1;}function splitSqlColumns(_0x3612c6){const _0xb235ee=a25_0x2ad3,_0x54a07b=[];let _0x600fd9='',_0x5d8d21=0x0;for(let _0x4d0143=0x0;_0x4d0143<_0x3612c6[_0xb235ee(0xd3)];_0x4d0143++){const _0x41703c=_0x3612c6[_0x4d0143];if(_0x41703c==='(')_0x5d8d21++,_0x600fd9+=_0x41703c;else{if(_0x41703c===')')_0x5d8d21--,_0x600fd9+=_0x41703c;else _0x41703c===','&&_0x5d8d21===0x0?(_0x54a07b['push'](_0x600fd9),_0x600fd9=''):_0x600fd9+=_0x41703c;}}return _0x600fd9&&_0x54a07b[_0xb235ee(0xad)](_0x600fd9),_0x54a07b;}function inferParamType(_0x424827){const _0x24f66c=a25_0x2ad3,_0x377621=_0x424827[_0x24f66c(0xd0)]();if(_0x377621[_0x24f66c(0xaa)]('id')||_0x377621[_0x24f66c(0xaa)](_0x24f66c(0xb1))||_0x377621[_0x24f66c(0xaa)](_0x24f66c(0x9e))||_0x377621[_0x24f66c(0xaa)]('size')||_0x377621['includes']('page')||_0x377621[_0x24f66c(0xaa)](_0x24f66c(0xb3))||_0x377621['includes'](_0x24f66c(0x9d))||_0x377621[_0x24f66c(0xaa)](_0x24f66c(0x96)))return _0x24f66c(0xd9);return'string';}function getExampleValue(_0x9551be){const _0x27050e=a25_0x2ad3,_0x6c429=_0x9551be[_0x27050e(0xd0)](),_0x28dcf6=inferParamType(_0x6c429);if(_0x28dcf6===_0x27050e(0xd9)){if(_0x6c429[_0x27050e(0xaa)](_0x27050e(0x9e))||_0x6c429[_0x27050e(0xaa)](_0x27050e(0xb1))||_0x6c429[_0x27050e(0xaa)](_0x27050e(0xa2)))return 0xa;if(_0x6c429[_0x27050e(0xaa)]('page'))return 0x1;return 0x7b;}if(_0x6c429[_0x27050e(0xaa)](_0x27050e(0xca))||_0x6c429['includes'](_0x27050e(0xbb)))return _0x27050e(0xda);if(_0x6c429[_0x27050e(0xaa)]('status'))return'1';if(_0x6c429[_0x27050e(0xaa)](_0x27050e(0xc9))||_0x6c429['includes'](_0x27050e(0xa6))||_0x6c429[_0x27050e(0xaa)](_0x27050e(0x9c)))return _0x27050e(0x90);return _0x27050e(0xa0);}export function detectSqlType(_0x13f1af){const _0x4ff95f=a25_0x2ad3;if(!_0x13f1af||typeof _0x13f1af!==_0x4ff95f(0xcb))return{'type':_0x4ff95f(0xcc),'isSelectOnly':![],'isDangerous':![],'reason':_0x4ff95f(0xb7)};const _0x2d5246=_0x13f1af['replace'](/#\{[^}]*\}/g,'?')[_0x4ff95f(0xac)](/\$\{[^}]*\}/g,'?')[_0x4ff95f(0xac)](/@[^(\s]+(\([^)]*\))?/g,''),_0x11b8c6=_0x2d5246['trim'](),_0x1b76cc=_0x11b8c6[_0x4ff95f(0xcd)]('\x0a');let _0x1ce94d='';for(const _0x5d5eee of _0x1b76cc){const _0xbaabe4=_0x5d5eee['trim']();if(!_0xbaabe4||_0xbaabe4[_0x4ff95f(0xc8)]('--')||_0xbaabe4['startsWith']('/*'))continue;_0x1ce94d=_0xbaabe4;break;}const _0x7501b4=_0x1ce94d[_0x4ff95f(0xbe)](),_0x51c042=_0x11b8c6[_0x4ff95f(0xbe)]();if(/^WITH\b/[_0x4ff95f(0x95)](_0x7501b4)&&/\bSELECT\b/i[_0x4ff95f(0x95)](_0x51c042)){const _0x43abd2=[/INSERT\s+INTO/i,/UPDATE\s+\w+\s+SET/i,/DELETE\s+FROM/i];for(const _0x2a7762 of _0x43abd2){if(_0x2a7762['test'](_0x51c042))return{'type':_0x4ff95f(0xae),'isSelectOnly':![],'isDangerous':!![],'reason':'CTE\x20contains\x20data\x20modification\x20keywords'};}return{'type':'SELECT','isSelectOnly':!![],'isDangerous':![]};}if(/^SELECT\b/[_0x4ff95f(0x95)](_0x7501b4)){const _0x427904=[/INSERT\s+INTO/i,/UPDATE\s+\w+\s+SET/i,/DELETE\s+FROM/i];for(const _0xa3d6a0 of _0x427904){if(_0xa3d6a0[_0x4ff95f(0x95)](_0x51c042))return{'type':_0x4ff95f(0xae),'isSelectOnly':![],'isDangerous':!![],'reason':_0x4ff95f(0xa3)};}return{'type':'SELECT','isSelectOnly':!![],'isDangerous':![]};}if(/^INSERT\s+INTO\b/[_0x4ff95f(0x95)](_0x7501b4))return{'type':_0x4ff95f(0xa8),'isSelectOnly':![],'isDangerous':!![],'reason':_0x4ff95f(0xc0)};if(/^UPDATE\b/[_0x4ff95f(0x95)](_0x7501b4))return{'type':'UPDATE','isSelectOnly':![],'isDangerous':!![],'reason':'UPDATE\x20statement\x20modifies\x20data'};if(/^DELETE\s+FROM\b/[_0x4ff95f(0x95)](_0x7501b4))return{'type':'DELETE','isSelectOnly':![],'isDangerous':!![],'reason':_0x4ff95f(0xc2)};const _0x360209=[_0x4ff95f(0xaf),_0x4ff95f(0x93),_0x4ff95f(0xbd),_0x4ff95f(0xb4),_0x4ff95f(0xc4),_0x4ff95f(0xa1)];for(const _0x5d4aff of _0x360209){if(_0x7501b4[_0x4ff95f(0xc8)](_0x5d4aff))return{'type':_0x4ff95f(0x97),'isSelectOnly':![],'isDangerous':!![],'reason':_0x5d4aff+'\x20statement\x20modifies\x20schema'};}return{'type':'UNKNOWN','isSelectOnly':![],'isDangerous':![],'reason':'Unknown\x20SQL\x20type'};}export function validateIsSelectOnly(_0x28f228){const _0xfcc1f8=a25_0x2ad3,_0x1f871e=detectSqlType(_0x28f228);return{'valid':_0x1f871e['isSelectOnly'],'reason':_0x1f871e[_0xfcc1f8(0xd4)]?undefined:_0x1f871e[_0xfcc1f8(0x9f)]};}export function extractTableNames(_0x288cd6){const _0x338c12=a25_0x2ad3,_0x499892=parseSqlStructure(_0x288cd6);return _0x499892[_0x338c12(0xd2)];}export function extractColumnNames(_0x531d28){const _0x95dd6d=a25_0x2ad3,_0x3c10dd=parseSqlStructure(_0x531d28);return _0x3c10dd['columns']['map'](_0x29e5ed=>({'table':_0x29e5ed[_0x95dd6d(0xbc)],'column':_0x29e5ed['column']}));}export function extractParameters(_0x17a128){const _0x57f818=a25_0x2ad3,_0x32c142=parseSqlStructure(_0x17a128);return _0x32c142[_0x57f818(0xba)];}function a25_0x2ad3(_0x1c4c2a,_0x2f4830){_0x1c4c2a=_0x1c4c2a-0x8f;const _0x2ae91a=a25_0x2ae9();let _0x2ad3e0=_0x2ae91a[_0x1c4c2a];return _0x2ad3e0;}export function validateSqlContent(_0x99ac8f,_0x3a033c){const _0x51b743=a25_0x2ad3,_0x1a38bd=detectSqlType(_0x99ac8f),_0x436b9c=parseSqlStructure(_0x99ac8f),_0x259b3a=[];if(_0x3a033c){const _0x3f3179=new Map(_0x3a033c[_0x51b743(0xd2)][_0x51b743(0xdb)](_0x25d9bd=>[_0x25d9bd['tableName'][_0x51b743(0xd0)](),_0x25d9bd[_0x51b743(0xd8)][_0x51b743(0xdb)](_0x51eca6=>_0x51eca6[_0x51b743(0xd0)]())]));for(const _0x4a9349 of _0x436b9c[_0x51b743(0xd2)]){const _0x458c55=_0x4a9349[_0x51b743(0xd0)]();if(!_0x3f3179[_0x51b743(0xbf)](_0x458c55)){const _0x282860=Array[_0x51b743(0xd5)](_0x3f3179['keys']())['filter'](_0x5007fe=>_0x5007fe[_0x51b743(0xaa)](_0x458c55)||_0x458c55[_0x51b743(0xaa)](_0x5007fe));_0x259b3a[_0x51b743(0xad)](createStructuredSqlError({'type':_0x51b743(0xb6),'location':_0x4a9349,'message':'表\x20\x22'+_0x4a9349+_0x51b743(0x98),'severity':_0x51b743(0x99),'suggestions':_0x282860['length']>0x0?_0x282860:Array[_0x51b743(0xd5)](_0x3f3179[_0x51b743(0x8f)]())}));}}for(const _0x1bec14 of _0x436b9c[_0x51b743(0xd8)]){if(_0x1bec14[_0x51b743(0xbc)]){const _0x4a8324=_0x1bec14[_0x51b743(0xbc)]['toLowerCase'](),_0x1f4d24=_0x3f3179[_0x51b743(0xd7)](_0x4a8324);if(_0x1f4d24){const _0x1369ac=_0x1bec14[_0x51b743(0xc7)]['toLowerCase']();if(!_0x1f4d24[_0x51b743(0xaa)](_0x1369ac)&&!_0x1bec14[_0x51b743(0xc7)]['includes']('*')){const _0x3b6eb3=_0x1f4d24[_0x51b743(0xc5)](_0x4f46f4=>_0x4f46f4['includes'](_0x1369ac)||_0x1369ac[_0x51b743(0xaa)](_0x4f46f4));_0x259b3a['push'](createStructuredSqlError({'type':'COLUMN_NOT_FOUND','location':_0x1bec14[_0x51b743(0xbc)]+'.'+_0x1bec14[_0x51b743(0xc7)],'message':_0x51b743(0x9a)+_0x1bec14[_0x51b743(0xc7)]+_0x51b743(0x91)+_0x1bec14['table']+'\x22\x20中不存在','severity':_0x51b743(0x99),'suggestions':_0x3b6eb3[_0x51b743(0xd3)]>0x0?_0x3b6eb3:_0x1f4d24[_0x51b743(0xa7)](0x0,0xa)}));}}}}}return{'valid':_0x259b3a[_0x51b743(0xd3)]===0x0,'isSelectOnly':_0x1a38bd['isSelectOnly'],'parsedStructure':_0x436b9c,'errors':_0x259b3a[_0x51b743(0xd3)]>0x0?_0x259b3a:undefined};}export function generateSqlSummary(_0x49ec4d){const _0x198490=a25_0x2ad3,_0x25b4e8=parseSqlStructure(_0x49ec4d),_0x1ffa6d=[];return _0x25b4e8[_0x198490(0xd2)]['length']>0x0&&_0x1ffa6d[_0x198490(0xad)]('Tables:\x20'+_0x25b4e8[_0x198490(0xd2)][_0x198490(0x9b)](',\x20')),_0x25b4e8[_0x198490(0xba)][_0x198490(0xd3)]>0x0&&_0x1ffa6d[_0x198490(0xad)](_0x198490(0xcf)+_0x25b4e8[_0x198490(0xba)]['map'](_0x179d8d=>_0x179d8d[_0x198490(0x9c)])[_0x198490(0x9b)](',\x20')),_0x25b4e8['joins']&&_0x25b4e8[_0x198490(0xd6)][_0x198490(0xd3)]>0x0&&_0x1ffa6d[_0x198490(0xad)](_0x198490(0xb9)+_0x25b4e8['joins'][_0x198490(0xd3)]),_0x1ffa6d['length']>0x0?_0x1ffa6d[_0x198490(0x9b)](_0x198490(0xc1)):_0x198490(0xa4);}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/dataset-mcp-server",
3
- "version": "1.3.2-beta.1",
3
+ "version": "1.3.2-beta.5",
4
4
  "description": "MCP server for Lovrabet Dataset access",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,7 +30,7 @@
30
30
  "examples": "npm run example:basic && npm run example:sdk && npm run example:compare"
31
31
  },
32
32
  "dependencies": {
33
- "@lovrabet/dsparser": "^1.2.4",
33
+ "@lovrabet/dsparser": "latest",
34
34
  "@modelcontextprotocol/sdk": "^1.25.1",
35
35
  "axios": "^1.6.2",
36
36
  "dotenv": "^16.3.1",
@@ -1 +0,0 @@
1
- function a18_0x57d9(_0x665d35,_0x3439dc){_0x665d35=_0x665d35-0x151;const _0x49fdf0=a18_0x49fd();let _0x57d93a=_0x49fdf0[_0x665d35];return _0x57d93a;}function a18_0x49fd(){const _0x54f7a6=['5475138VCXYgT','getCustomSqlList','sqlId','LOVRABET_ENV','392864BnYnVM','LOVRABET_APP_CODE','DELETE\x5cs+FROM','replace','success','2926932ItlZof','trim','2391537wuDbab','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','sqlContent\x20is\x20required\x20and\x20cannot\x20be\x20empty.','test','SELECT','SQL\x20validation\x20failed:\x20','message','\x5c\x5cs+','sqlName','Forbidden\x20keyword\x20detected:\x20','2079526YQkSKd','dbId\x20is\x20required.\x20Get\x20it\x20from\x20get_dataset_detail\x20->\x20basic.database.dbId','data','NODE_ENV','valid','createdTime','CREATE\x5cs+(TABLE|INDEX|DATABASE|VIEW)','verified','6099280HbwPAx','sqlCode','toUpperCase','233300JHdqux','online','warn','tableData','Custom\x20SQL\x20saved\x20successfully','.\x20Only\x20SELECT\x20queries\x20are\x20allowed.','reason','56Kihaxg','Only\x20SELECT\x20queries\x20are\x20allowed.\x20The\x20SQL\x20must\x20start\x20with\x20SELECT\x20(after\x20any\x20comments).','SQL\x20content\x20cannot\x20be\x20empty','TRUNCATE','INSERT\x5cs+INTO','Failed\x20to\x20save\x20custom\x20SQL','UPDATE\x5cs+\x5cw+\x5cs+SET','name','DROP\x5cs+(TABLE|INDEX|DATABASE)','GRANT','env','saveUserCustomSql'];a18_0x49fd=function(){return _0x54f7a6;};return a18_0x49fd();}(function(_0x4b6212,_0x10c030){const _0x43e6e0=a18_0x57d9,_0x2c970a=_0x4b6212();while(!![]){try{const _0x9fdf22=parseInt(_0x43e6e0(0x170))/0x1+-parseInt(_0x43e6e0(0x165))/0x2+parseInt(_0x43e6e0(0x15b))/0x3+parseInt(_0x43e6e0(0x159))/0x4+-parseInt(_0x43e6e0(0x16d))/0x5+parseInt(_0x43e6e0(0x183))/0x6+-parseInt(_0x43e6e0(0x177))/0x7*(-parseInt(_0x43e6e0(0x154))/0x8);if(_0x9fdf22===_0x10c030)break;else _0x2c970a['push'](_0x2c970a['shift']());}catch(_0x4986ae){_0x2c970a['push'](_0x2c970a['shift']());}}}(a18_0x49fd,0xc542c));import{DevApiClient}from'../api/dev-api-client.js';function validateSelectSql(_0x753599){const _0x18ab11=a18_0x57d9;if(!_0x753599||typeof _0x753599!=='string')return{'valid':![],'reason':_0x18ab11(0x179)};const _0x26b0e5=_0x753599['replace'](/#\{[^}]*\}/g,'?')[_0x18ab11(0x157)](/\$\{[^}]*\}/g,'?')[_0x18ab11(0x157)](/@[^(\s]+(\([^)]*\))?/g,''),_0x54b7ab=_0x26b0e5[_0x18ab11(0x15a)](),_0x15ef9b=_0x54b7ab['split']('\x0a');let _0x2fa824='';for(const _0x4f44a1 of _0x15ef9b){const _0x3d012f=_0x4f44a1[_0x18ab11(0x15a)]();if(!_0x3d012f||_0x3d012f['startsWith']('--')||_0x3d012f['startsWith']('/*'))continue;_0x2fa824=_0x3d012f;break;}if(!_0x2fa824[_0x18ab11(0x16f)]()['startsWith'](_0x18ab11(0x15f)))return{'valid':![],'reason':_0x18ab11(0x178)};const _0x224000=[_0x18ab11(0x17b),_0x18ab11(0x17d),_0x18ab11(0x156),_0x18ab11(0x17f),'ALTER\x5cs+(TABLE|DATABASE)',_0x18ab11(0x16b),_0x18ab11(0x17a),_0x18ab11(0x180),'REVOKE','EXEC','EXECUTE'],_0x26c059=_0x54b7ab[_0x18ab11(0x16f)]();for(const _0x4518b3 of _0x224000){const _0x954053=new RegExp(_0x4518b3,'i');if(_0x954053['test'](_0x26c059))return{'valid':![],'reason':_0x18ab11(0x164)+_0x4518b3[_0x18ab11(0x157)](_0x18ab11(0x162),'\x20')+_0x18ab11(0x175)};}return{'valid':!![]};}export async function saveCustomSql(_0xf9eb16){const _0x3599e1=a18_0x57d9,{appCode:appCode=process[_0x3599e1(0x181)][_0x3599e1(0x155)],cookie:_0x334a8b,env:env=process[_0x3599e1(0x181)][_0x3599e1(0x153)]||_0x3599e1(0x171),sqlName:_0x2b5a51,dbId:_0x53ccc3,sqlContent:_0x161be5,verifyAfterSave:verifyAfterSave=!![]}=_0xf9eb16;if(!appCode)throw new Error(_0x3599e1(0x15c));if(!_0x2b5a51||_0x2b5a51[_0x3599e1(0x15a)]()==='')throw new Error('sqlName\x20is\x20required\x20and\x20cannot\x20be\x20empty.');if(!_0x53ccc3)throw new Error(_0x3599e1(0x166));if(!_0x161be5||_0x161be5[_0x3599e1(0x15a)]()==='')throw new Error(_0x3599e1(0x15d));const _0x518a38=validateSelectSql(_0x161be5);if(!_0x518a38[_0x3599e1(0x169)])throw new Error(_0x3599e1(0x160)+_0x518a38[_0x3599e1(0x176)]);const _0x5d0689=new DevApiClient({'appCode':appCode,'cookie':_0x334a8b,'env':env}),_0xe6a29f=_0x2b5a51[_0x3599e1(0x15a)](),_0x4242df=await _0x5d0689[_0x3599e1(0x182)]({'sqlName':_0xe6a29f,'dbId':_0x53ccc3,'sqlContent':_0x161be5['trim']()});if(!_0x4242df[_0x3599e1(0x158)])return{'success':![],'message':_0x4242df[_0x3599e1(0x161)]||_0x4242df['errorMsg']||_0x3599e1(0x17c)};const _0x54067c={'success':!![],'message':_0x3599e1(0x174),'data':_0x4242df[_0x3599e1(0x167)]};if(verifyAfterSave)try{const _0x15f2ba=await _0x5d0689[_0x3599e1(0x151)]({'pageSize':0xa,'currentPage':0x1,'sqlName':_0xe6a29f}),_0x43eae2=_0x15f2ba[_0x3599e1(0x167)]?.[_0x3599e1(0x173)]||[],_0x63802e=_0x43eae2['find'](_0x29feef=>_0x29feef[_0x3599e1(0x163)]===_0xe6a29f||_0x29feef[_0x3599e1(0x17e)]===_0xe6a29f);_0x63802e?_0x54067c[_0x3599e1(0x16c)]={'found':!![],'sqlInfo':{'sqlCode':_0x63802e[_0x3599e1(0x16e)]||appCode+'-'+(_0x63802e['sqlId']||_0x63802e['id']),'sqlId':_0x63802e[_0x3599e1(0x152)]||_0x63802e['id'],'name':_0x63802e['sqlName']||_0x63802e[_0x3599e1(0x17e)],'sqlContent':_0x63802e['sqlContent']||_0x63802e['sql'],'createdTime':_0x63802e[_0x3599e1(0x16a)]||_0x63802e['createTime']}}:_0x54067c[_0x3599e1(0x16c)]={'found':![]};}catch(_0x3e7c67){process['env'][_0x3599e1(0x168)]!==_0x3599e1(0x15e)&&console[_0x3599e1(0x172)]('[saveCustomSql]\x20Verification\x20query\x20failed:',_0x3e7c67),_0x54067c[_0x3599e1(0x16c)]={'found':![]};}return _0x54067c;}