@lovrabet/dataset-mcp-server 1.4.3 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api/cache.js CHANGED
@@ -1 +1 @@
1
- const a0_0x299672=a0_0x3e9e;function a0_0x4bac(){const _0x4f2b66=['21WyYdKr','cache','get','20549475xUSDdJ','size','4557635JbLhOy','data','set','2553032FLxcJO','defaultTTL','getStats','clear','110jHwYof','delete','floor','10813PLGtAX','1175679ZoftyH','4203174BmkGEu','keys','from','1715196IGTywk'];a0_0x4bac=function(){return _0x4f2b66;};return a0_0x4bac();}(function(_0x572acf,_0x387642){const _0x1c0ecb=a0_0x3e9e,_0x371b17=_0x572acf();while(!![]){try{const _0x56d973=-parseInt(_0x1c0ecb(0x1d7))/0x1*(parseInt(_0x1c0ecb(0x1e9))/0x2)+parseInt(_0x1c0ecb(0x1d8))/0x3+-parseInt(_0x1c0ecb(0x1dc))/0x4+-parseInt(_0x1c0ecb(0x1e2))/0x5+parseInt(_0x1c0ecb(0x1d9))/0x6+-parseInt(_0x1c0ecb(0x1dd))/0x7*(parseInt(_0x1c0ecb(0x1e5))/0x8)+parseInt(_0x1c0ecb(0x1e0))/0x9;if(_0x56d973===_0x387642)break;else _0x371b17['push'](_0x371b17['shift']());}catch(_0x3883d5){_0x371b17['push'](_0x371b17['shift']());}}}(a0_0x4bac,0x75fc5));function a0_0x3e9e(_0x26917e,_0x241010){_0x26917e=_0x26917e-0x1d5;const _0x4bac22=a0_0x4bac();let _0x3e9e6e=_0x4bac22[_0x26917e];return _0x3e9e6e;}export class SimpleCache{['cache']=new Map();[a0_0x299672(0x1e6)];constructor(_0x195868=0x5){this['defaultTTL']=_0x195868*0x3c*0x3e8;}[a0_0x299672(0x1df)](_0x3e6d6a){const _0x8cdd3a=a0_0x299672,_0x582b53=this[_0x8cdd3a(0x1de)][_0x8cdd3a(0x1df)](_0x3e6d6a);if(!_0x582b53)return null;const _0x88f700=Date['now'](),_0x58107d=_0x88f700-_0x582b53['timestamp'];if(_0x58107d>this[_0x8cdd3a(0x1e6)])return this['cache'][_0x8cdd3a(0x1d5)](_0x3e6d6a),null;const _0xb1b687=Math[_0x8cdd3a(0x1d6)](_0x58107d/0x3e8);return _0x582b53[_0x8cdd3a(0x1e3)];}[a0_0x299672(0x1e4)](_0x413d56,_0x5005b3){this['cache']['set'](_0x413d56,{'data':_0x5005b3,'timestamp':Date['now']()});}[a0_0x299672(0x1e8)](_0x407188){const _0x898d8f=a0_0x299672;_0x407188?this[_0x898d8f(0x1de)]['delete'](_0x407188):this[_0x898d8f(0x1de)][_0x898d8f(0x1e8)]();}[a0_0x299672(0x1e7)](){const _0x3d6dc5=a0_0x299672;return{'size':this[_0x3d6dc5(0x1de)][_0x3d6dc5(0x1e1)],'ttlMinutes':this[_0x3d6dc5(0x1e6)]/0xea60,'entries':Array[_0x3d6dc5(0x1db)](this['cache'][_0x3d6dc5(0x1da)]())};}}export const apiCache=new SimpleCache(0x5);
1
+ const a0_0x3d5bdb=a0_0x5745;function a0_0x4605(){const _0x4b818f=['6706myMuyW','getStats','now','size','keys','clear','9nTYxSZ','14837352UzzcpG','6FqSjUP','2uVzXFo','1878936WiIymA','242322qtznTO','120810jhUadN','from','10689096IcRKlX','2464aPqbgd','3896142lvoJCT','5uXRxxA','set','floor','get','defaultTTL','cache'];a0_0x4605=function(){return _0x4b818f;};return a0_0x4605();}function a0_0x5745(_0x2c87c7,_0x48e9a3){_0x2c87c7=_0x2c87c7-0x19e;const _0x4605ba=a0_0x4605();let _0x574521=_0x4605ba[_0x2c87c7];return _0x574521;}(function(_0x2a2b8e,_0x5cfa30){const _0x50d914=a0_0x5745,_0x526233=_0x2a2b8e();while(!![]){try{const _0x140287=parseInt(_0x50d914(0x1a7))/0x1*(-parseInt(_0x50d914(0x1a9))/0x2)+parseInt(_0x50d914(0x1a6))/0x3*(-parseInt(_0x50d914(0x1a8))/0x4)+parseInt(_0x50d914(0x1af))/0x5*(-parseInt(_0x50d914(0x1ae))/0x6)+-parseInt(_0x50d914(0x19e))/0x7*(-parseInt(_0x50d914(0x1ad))/0x8)+-parseInt(_0x50d914(0x1a4))/0x9*(parseInt(_0x50d914(0x1aa))/0xa)+parseInt(_0x50d914(0x1ac))/0xb+parseInt(_0x50d914(0x1a5))/0xc;if(_0x140287===_0x5cfa30)break;else _0x526233['push'](_0x526233['shift']());}catch(_0x2f577d){_0x526233['push'](_0x526233['shift']());}}}(a0_0x4605,0xa1232));export class SimpleCache{[a0_0x3d5bdb(0x1b4)]=new Map();['defaultTTL'];constructor(_0x488aac=0x5){const _0x4694d6=a0_0x3d5bdb;this[_0x4694d6(0x1b3)]=_0x488aac*0x3c*0x3e8;}[a0_0x3d5bdb(0x1b2)](_0x1c69bc){const _0x16ecdb=a0_0x3d5bdb,_0x1267a4=this['cache'][_0x16ecdb(0x1b2)](_0x1c69bc);if(!_0x1267a4)return null;const _0x3c1f49=Date[_0x16ecdb(0x1a0)](),_0x18b982=_0x3c1f49-_0x1267a4['timestamp'];if(_0x18b982>this[_0x16ecdb(0x1b3)])return this[_0x16ecdb(0x1b4)]['delete'](_0x1c69bc),null;const _0x50969e=Math[_0x16ecdb(0x1b1)](_0x18b982/0x3e8);return _0x1267a4['data'];}[a0_0x3d5bdb(0x1b0)](_0xe7fafb,_0x44858d){const _0x5230b5=a0_0x3d5bdb;this[_0x5230b5(0x1b4)]['set'](_0xe7fafb,{'data':_0x44858d,'timestamp':Date[_0x5230b5(0x1a0)]()});}[a0_0x3d5bdb(0x1a3)](_0x58621b){const _0x478844=a0_0x3d5bdb;_0x58621b?this[_0x478844(0x1b4)]['delete'](_0x58621b):this[_0x478844(0x1b4)][_0x478844(0x1a3)]();}[a0_0x3d5bdb(0x19f)](){const _0x55ec66=a0_0x3d5bdb;return{'size':this[_0x55ec66(0x1b4)][_0x55ec66(0x1a1)],'ttlMinutes':this[_0x55ec66(0x1b3)]/0xea60,'entries':Array[_0x55ec66(0x1ab)](this['cache'][_0x55ec66(0x1a2)]())};}}export const apiCache=new SimpleCache(0x5);
@@ -1 +1 @@
1
- const a1_0x394d39=a1_0x58f3;function a1_0x58f3(_0x17f4b8,_0x15d355){_0x17f4b8=_0x17f4b8-0xe2;const _0xaa0e25=a1_0xaa0e();let _0x58f325=_0xaa0e25[_0x17f4b8];return _0x58f325;}function a1_0xaa0e(){const _0x2bfc5f=['Failed\x20to\x20get\x20ER\x20config\x20for\x20dbId\x20','add','save-bff','warn','getDatasetDetail','clearBffScriptCache','API\x20request\x20failed:\x20HTTP\x20','save-sql','joinType','DEFAULT_TIMEOUT','Network\x20error:\x20Unable\x20to\x20connect\x20to\x20the\x20server.\x20Please\x20check\x20your\x20network\x20connection\x20or\x20the\x20server\x20may\x20be\x20down.\x0aURL:\x20','process','68755gfnFxu','with-relations','errorMsg','get','scriptContent','saveCustomSqlViaToolbox','2631555eNncqh','sqlName','toDatasetName','modelCode','forceRefresh','fromField','/smartapi/custom/saveUserCustomSql','tableData','test','abort','cookie','/api/node-toolbox/bff/save','getAllErConfigs','resolveToolboxUrl','er-config:','&type=ENDPOINT','code','No\x20authentication\x20cookie\x20found.\x20Please\x20login\x20first.','sqlCode','saveBffScriptViaToolbox','dbtableConfig','runtimeDomain','toDataset','getErConfig','tableName','/smartapi/dataset/get-dataset-list','doVersion','sqlContent','toolboxBaseUrlOverride','includes','26517aZnUQx','description','493500nacPLu','saveUserCustomSql','set','message','99876BWYYzi','/api/management/library/scripts/list?appCode=','pageSize','getDatasetRelations','find','API\x20request\x20timeout\x20after\x20','datasetCode','/smartapi/custom/queryUserCustomSqlList','API\x20error:\x20','/api/management/library/scripts/info?id=','status','relations','datasets','data','env','/api/node-toolbox/sql/save','569336swJWuT','saveBffScript','appCode','\x0aURL:\x20','POST','870384enktxW','getBffScriptList','name','stringify','datasetName','isArray','params','text','apiBaseUrl','[getDatasetDetail]\x20Failed\x20to\x20fetch\x20relations\x20for\x20','postRequest','no-relations','push','_request','getDatasetList','108TOuvqk','/api/custom/executeSql','Authentication\x20failed.\x20Please\x20login\x20again.','/smartapi/custom/updateUserCustomSql','Content-Type','object','toField','getBffScriptInfo','er-configs-all:','scriptType','dbId','dataset-list:','toolboxBaseUrl','length','/smartapi/dataset/get-driven-data?','2jsuOZH','application/json','toLowerCase','success','LOVRABET_ENV','apiDomain','request'];a1_0xaa0e=function(){return _0x2bfc5f;};return a1_0xaa0e();}(function(_0x122b66,_0x5d4ac7){const _0x106ac7=a1_0x58f3,_0x49768b=_0x122b66();while(!![]){try{const _0x49d862=parseInt(_0x106ac7(0x106))/0x1*(-parseInt(_0x106ac7(0x13f))/0x2)+parseInt(_0x106ac7(0x121))/0x3+-parseInt(_0x106ac7(0x130))/0x4*(-parseInt(_0x106ac7(0xe2))/0x5)+parseInt(_0x106ac7(0x10c))/0x6+-parseInt(_0x106ac7(0x108))/0x7+-parseInt(_0x106ac7(0x11c))/0x8+-parseInt(_0x106ac7(0xe8))/0x9;if(_0x49d862===_0x5d4ac7)break;else _0x49768b['push'](_0x49768b['shift']());}catch(_0xd94200){_0x49768b['push'](_0x49768b['shift']());}}}(a1_0xaa0e,0x35180));import{getCookie}from'../auth/cookie-manager.js';import{getEffectiveApiDomain,getEffectiveRuntimeDomain,resolveApiBaseUrl}from'../auth/constants.js';import{apiCache}from'./cache.js';export class DevApiClient{['appCode'];[a1_0x394d39(0x11a)];[a1_0x394d39(0xf2)];[a1_0x394d39(0x144)];[a1_0x394d39(0xfd)];[a1_0x394d39(0x104)];constructor(_0x5414f7){const _0x52e0fa=a1_0x394d39;this['appCode']=_0x5414f7['appCode'],this[_0x52e0fa(0x11a)]=globalThis[_0x52e0fa(0x151)]?.[_0x52e0fa(0x11a)]?.[_0x52e0fa(0x143)]||'online',this[_0x52e0fa(0xf2)]=_0x5414f7['cookie']||getCookie(),this[_0x52e0fa(0x144)]=_0x5414f7[_0x52e0fa(0x129)]||getEffectiveApiDomain(),this[_0x52e0fa(0xfd)]=_0x5414f7['runtimeBaseUrl']||getEffectiveRuntimeDomain(),this['toolboxBaseUrlOverride']=_0x5414f7[_0x52e0fa(0x13c)];if(!this['cookie'])throw new Error(_0x52e0fa(0xf9));}['resolveToolboxUrl'](_0x686c77,_0x4e1e4c){const _0x19e583=a1_0x394d39,_0x9c559e=resolveApiBaseUrl(_0x686c77),_0x353e39=this[_0x19e583(0x104)]&&_0x9c559e===getEffectiveApiDomain()?this[_0x19e583(0x104)]:_0x9c559e;try{const _0x39c669=new URL(_0x353e39);if(_0x39c669['pathname']!=='/')return _0x353e39;}catch{}return''+_0x353e39+_0x4e1e4c;}static [a1_0x394d39(0x14f)]=0x7530;async[a1_0x394d39(0x12e)](_0xa49a51,_0x1c463c={},_0x22e800=DevApiClient[a1_0x394d39(0x14f)]){const _0x197afb=a1_0x394d39,{method:method='GET',body:_0x361722,extraHeaders:_0x25d7af}=_0x1c463c,_0x23f671=new AbortController(),_0x53441e=setTimeout(()=>_0x23f671[_0x197afb(0xf1)](),_0x22e800),_0x337129={'Cookie':this[_0x197afb(0xf2)],'X-Invoke-Source':'mcp:vibe',..._0x25d7af};method==='POST'&&(_0x337129[_0x197afb(0x134)]=_0x197afb(0x140));try{const _0x2ac562=await fetch(_0xa49a51,{'method':method,'headers':_0x337129,..._0x361722!==undefined&&{'body':JSON[_0x197afb(0x124)](_0x361722)},'signal':_0x23f671['signal']});clearTimeout(_0x53441e);if(!_0x2ac562['ok']){if(_0x2ac562[_0x197afb(0x116)]===0x191)throw new Error(_0x197afb(0x132));let _0x946ea2='';try{_0x946ea2=await _0x2ac562[_0x197afb(0x128)]();}catch{}throw new Error(_0x197afb(0x14c)+_0x2ac562[_0x197afb(0x116)]+_0x197afb(0x11f)+_0xa49a51+(_0x946ea2?'\x0a'+_0x946ea2:''));}const _0x5bb900=await _0x2ac562['json']();if(_0x5bb900&&typeof _0x5bb900===_0x197afb(0x135)&&_0x197afb(0x142)in _0x5bb900&&!_0x5bb900['success']){const _0x13f706=_0x5bb900;throw new Error(_0x197afb(0x114)+(_0x13f706[_0x197afb(0x10b)]||_0x13f706[_0x197afb(0xe4)]||'Unknown\x20error'));}return _0x5bb900;}catch(_0x2fe2f2){if(_0x2fe2f2 instanceof Error&&_0x2fe2f2[_0x197afb(0x123)]==='AbortError')throw new Error(_0x197afb(0x111)+_0x22e800+'ms.\x20The\x20server\x20may\x20be\x20down\x20or\x20unreachable.\x0aURL:\x20'+_0xa49a51);if(_0x2fe2f2 instanceof TypeError)throw new Error(_0x197afb(0x150)+_0xa49a51);throw _0x2fe2f2;}}async[a1_0x394d39(0x145)](_0x3d01f2,_0xff59b1){const _0x3ab2b7=a1_0x394d39;return this[_0x3ab2b7(0x12e)](_0x3d01f2,{'method':'GET'},_0xff59b1);}async['postRequest'](_0x890527,_0x1db7f0,_0x1c9a9b,_0x910c29){const _0x372390=a1_0x394d39;return this['_request'](_0x890527,{'method':_0x372390(0x120),'body':_0x1db7f0,'extraHeaders':_0x910c29},_0x1c9a9b);}async[a1_0x394d39(0x12f)](_0x2f5fb9){const _0x1572fb=a1_0x394d39,_0x13bd25=_0x2f5fb9?.[_0x1572fb(0xec)]||![],_0x3c6185=_0x1572fb(0x13b)+this['appCode']+':'+this['env'];if(!_0x13bd25){const _0x16bb03=apiCache[_0x1572fb(0xe5)](_0x3c6185);if(_0x16bb03)return _0x16bb03;}const _0x217c43=this[_0x1572fb(0x144)]+_0x1572fb(0x101),_0x20301f=await this[_0x1572fb(0x12b)](_0x217c43,{'appCode':this[_0x1572fb(0x11e)]});return apiCache[_0x1572fb(0x10a)](_0x3c6185,_0x20301f),_0x20301f;}async[a1_0x394d39(0x14a)](_0x125572,_0x9dcd14=![],_0x453282=![]){const _0x574b55=a1_0x394d39,_0x3b3c11='dataset-detail:'+this[_0x574b55(0x11e)]+':'+this['env']+':'+_0x125572+':'+(_0x453282?_0x574b55(0xe3):_0x574b55(0x12c));if(!_0x9dcd14){const _0x1aebe8=apiCache[_0x574b55(0xe5)](_0x3b3c11);if(_0x1aebe8)return _0x1aebe8;}const _0x392907=/^\d+$/[_0x574b55(0xf0)](_0x125572),_0x146e94=_0x392907?'id':_0x574b55(0xf8),_0x3c0c59=this[_0x574b55(0x144)]+_0x574b55(0x13e)+_0x146e94+'='+_0x125572,_0x29286b=await this[_0x574b55(0x145)](_0x3c0c59);if(_0x453282&&_0x29286b['data']?.[_0x574b55(0xeb)]){const _0x1c0244=_0x29286b[_0x574b55(0x119)][_0x574b55(0x102)]==='v2',_0x4871ad=Array['isArray'](_0x29286b[_0x574b55(0x119)]['relations']);if(!_0x1c0244||!_0x4871ad)try{const _0x4c520c=await this[_0x574b55(0x10f)](_0x29286b[_0x574b55(0x119)][_0x574b55(0xeb)],_0x9dcd14);_0x29286b['data']['relations']=_0x4c520c;}catch(_0x5bf21b){process[_0x574b55(0x11a)]['NODE_ENV']!=='test'&&console[_0x574b55(0x149)](_0x574b55(0x12a)+_0x125572+':',_0x5bf21b);}}return apiCache[_0x574b55(0x10a)](_0x3b3c11,_0x29286b),_0x29286b;}async['searchDatasets'](_0x2a7b9a){const _0xeea08e=a1_0x394d39,_0x269784=await this[_0xeea08e(0x12f)](),_0x1e095a=Array[_0xeea08e(0x126)](_0x269784[_0xeea08e(0x119)])?_0x269784[_0xeea08e(0x119)]:_0x269784['data']?.[_0xeea08e(0xef)]||[];if(!_0x269784[_0xeea08e(0x142)])return{'success':!![],'data':{'tableData':[]}};const _0x145a61=_0x1e095a['filter'](_0xb9685f=>{const _0x1d606f=_0xeea08e,_0x453d2c=_0x2a7b9a[_0x1d606f(0x141)]();return _0xb9685f[_0x1d606f(0x123)]?.['toLowerCase']()['includes'](_0x453d2c)||_0xb9685f[_0x1d606f(0xf8)]?.[_0x1d606f(0x141)]()[_0x1d606f(0x105)](_0x453d2c)||_0xb9685f[_0x1d606f(0xfc)]?.[_0x1d606f(0x100)]?.[_0x1d606f(0x141)]()[_0x1d606f(0x105)](_0x453d2c)||_0xb9685f[_0x1d606f(0x107)]?.['toLowerCase']()[_0x1d606f(0x105)](_0x453d2c);});return{'success':!![],'data':{'tableData':_0x145a61,'paging':{'totalCount':_0x145a61[_0xeea08e(0x13d)],'currentPage':0x1,'pageSize':_0x145a61[_0xeea08e(0x13d)]}}};}async['getCustomSqlList'](_0x8b606e){const _0xbb0039=a1_0x394d39,_0x497e14=_0x8b606e?.['currentPage']||0x1,_0x405b9f=_0x8b606e?.[_0xbb0039(0x10e)]||0x3e7,_0x4ef189=this[_0xbb0039(0x144)]+_0xbb0039(0x113),_0x5e5f62={'appCode':this[_0xbb0039(0x11e)],'currentPage':_0x497e14,'pageSize':_0x405b9f,..._0x8b606e?.[_0xbb0039(0xfa)]&&{'sqlCode':_0x8b606e['sqlCode']},..._0x8b606e?.['sqlName']&&{'sqlName':_0x8b606e['sqlName']}},_0x539596=await this['postRequest'](_0x4ef189,_0x5e5f62);return _0x539596;}async['executeSql'](_0x6d1131){const _0x48ad7b=a1_0x394d39,_0x18c776=this[_0x48ad7b(0xfd)]+_0x48ad7b(0x131),_0x46eed4={'appCode':this['appCode'],'sqlCode':_0x6d1131[_0x48ad7b(0xfa)],..._0x6d1131['params']&&{'params':_0x6d1131[_0x48ad7b(0x127)]}};return await this[_0x48ad7b(0x12b)](_0x18c776,_0x46eed4);}async[a1_0x394d39(0x109)](_0x3aa179){const _0x427e60=a1_0x394d39,_0x46567e=this[_0x427e60(0x144)]+_0x427e60(0xee),_0x39e7fc={'sqlName':_0x3aa179['sqlName'],'dbId':_0x3aa179[_0x427e60(0x13a)],'sqlContent':_0x3aa179[_0x427e60(0x103)],'appCode':this[_0x427e60(0x11e)]};return await this[_0x427e60(0x12b)](_0x46567e,_0x39e7fc);}async['updateUserCustomSql'](_0x14514d){const _0x421e7a=a1_0x394d39,_0x9ff3e=this[_0x421e7a(0x144)]+_0x421e7a(0x133),_0x362116={'id':_0x14514d['id'],'dbId':_0x14514d[_0x421e7a(0x13a)],'sqlName':_0x14514d[_0x421e7a(0xe9)],'appCode':this[_0x421e7a(0x11e)],'sqlContent':_0x14514d[_0x421e7a(0x103)]};return await this['postRequest'](_0x9ff3e,_0x362116);}async[a1_0x394d39(0xff)](_0x55a618,_0x3b33d2=![]){const _0x23dfe6=a1_0x394d39,_0x21e0b2=_0x23dfe6(0xf6)+this[_0x23dfe6(0x11e)]+':'+this[_0x23dfe6(0x11a)]+':'+_0x55a618;if(!_0x3b33d2){const _0x5b0137=apiCache[_0x23dfe6(0xe5)](_0x21e0b2);if(_0x5b0137)return _0x5b0137;}const _0x51bd7e=this[_0x23dfe6(0x144)]+'/smartapi/question/er-config',_0x195f27=await this[_0x23dfe6(0x12b)](_0x51bd7e,{'dblinkId':_0x55a618,'appCode':this[_0x23dfe6(0x11e)]});if(!_0x195f27[_0x23dfe6(0x142)]||!_0x195f27[_0x23dfe6(0x119)])throw new Error('Failed\x20to\x20get\x20ER\x20config\x20for\x20dblinkId:\x20'+_0x55a618);const _0x31c46a={'meta':_0x195f27[_0x23dfe6(0x119)]['meta'],'datasets':_0x195f27['data'][_0x23dfe6(0x118)]};return apiCache[_0x23dfe6(0x10a)](_0x21e0b2,_0x31c46a),_0x31c46a;}async['getUniqueDbIds'](_0x3d7984=![]){const _0x322585=a1_0x394d39,_0xbf972a=await this[_0x322585(0x12f)]({'forceRefresh':_0x3d7984}),_0xadbc89=Array[_0x322585(0x126)](_0xbf972a[_0x322585(0x119)])?_0xbf972a['data']:_0xbf972a['data']?.[_0x322585(0xef)]||[],_0x19c7b2=new Set();for(const _0x32f040 of _0xadbc89){_0x32f040[_0x322585(0xfc)]?.[_0x322585(0x13a)]&&_0x19c7b2[_0x322585(0x147)](_0x32f040[_0x322585(0xfc)][_0x322585(0x13a)]);}return Array['from'](_0x19c7b2)['sort']((_0x212981,_0x5c62f8)=>_0x212981-_0x5c62f8);}async['getAllErConfigs'](_0x26ad7e=![]){const _0x24fc60=a1_0x394d39,_0xaadce3=_0x24fc60(0x138)+this[_0x24fc60(0x11e)]+':'+this[_0x24fc60(0x11a)];if(!_0x26ad7e){const _0x2bb942=apiCache[_0x24fc60(0xe5)](_0xaadce3);if(_0x2bb942)return _0x2bb942;}const _0x11c33c=await this['getUniqueDbIds'](_0x26ad7e),_0x29dc43=new Map();for(const _0x4e8489 of _0x11c33c){try{const _0x9a5060=await this[_0x24fc60(0xff)](_0x4e8489,_0x26ad7e);_0x29dc43[_0x24fc60(0x10a)](_0x4e8489,_0x9a5060);}catch(_0x220b77){console[_0x24fc60(0x149)](_0x24fc60(0x146)+_0x4e8489+':',_0x220b77);}}return apiCache[_0x24fc60(0x10a)](_0xaadce3,_0x29dc43),_0x29dc43;}async[a1_0x394d39(0x10f)](_0x5ae463,_0x10924e=![]){const _0x550084=a1_0x394d39,_0x4ee975=await this[_0x550084(0xf4)](_0x10924e),_0x25d3d0=[],_0x47ecf1=[];for(const [,_0xfbfb41]of _0x4ee975){const _0x553388=_0xfbfb41[_0x550084(0x118)][_0x550084(0x110)](_0x32a5d1=>_0x32a5d1[_0x550084(0x112)]===_0x5ae463);if(_0x553388)for(const _0x1e6a1c of _0x553388['relations']||[]){_0x25d3d0['push']({'toDataset':_0x1e6a1c[_0x550084(0xfe)],'toDatasetName':_0x1e6a1c[_0x550084(0xea)],'toField':_0x1e6a1c['toField'],'fromField':_0x1e6a1c[_0x550084(0xed)],'joinType':_0x1e6a1c[_0x550084(0x14e)]});}for(const _0x884e3c of _0xfbfb41['datasets']){if(_0x884e3c[_0x550084(0x112)]===_0x5ae463)continue;for(const _0x3270fd of _0x884e3c[_0x550084(0x117)]||[]){_0x3270fd[_0x550084(0xfe)]===_0x5ae463&&_0x47ecf1[_0x550084(0x12d)]({'fromDataset':_0x884e3c['datasetCode'],'fromDatasetName':_0x884e3c[_0x550084(0x125)],'fromField':_0x3270fd['fromField'],'toField':_0x3270fd[_0x550084(0x136)],'joinType':_0x3270fd[_0x550084(0x14e)]});}}}return{'outgoing':_0x25d3d0,'incoming':_0x47ecf1};}async[a1_0x394d39(0x122)](){const _0x57308a=a1_0x394d39,_0xb3febb=this[_0x57308a(0x144)]+_0x57308a(0x10d)+encodeURIComponent(this[_0x57308a(0x11e)])+_0x57308a(0xf7);return await this['request'](_0xb3febb);}async[a1_0x394d39(0x137)](_0xceaa9a){const _0x9fcb84=a1_0x394d39,_0x4f9c01=this[_0x9fcb84(0x144)]+_0x9fcb84(0x115)+_0xceaa9a;return await this[_0x9fcb84(0x145)](_0x4f9c01);}async[a1_0x394d39(0x11d)](_0x414a4d){const _0x2f9f4a=a1_0x394d39,_0x2c1bc2=this['apiDomain']+'/api/management/library/scripts/save',_0x34ad71={'id':_0x414a4d['id']??null,'appCode':_0x414a4d[_0x2f9f4a(0x11e)],'description':_0x414a4d[_0x2f9f4a(0x107)],'scriptContent':_0x414a4d[_0x2f9f4a(0xe6)],'scriptType':_0x414a4d[_0x2f9f4a(0x139)]};return await this[_0x2f9f4a(0x12b)](_0x2c1bc2,_0x34ad71);}async[a1_0x394d39(0x14b)](){const _0x3dd1d8=a1_0x394d39,_0x253082=this['runtimeDomain']+'/api/management/script/cache/clear';return await this[_0x3dd1d8(0x12b)](_0x253082,{});}async[a1_0x394d39(0xe7)](_0x1e4b5c){const _0x30758e=a1_0x394d39,_0x1afb96=this[_0x30758e(0xf5)](_0x30758e(0x14d),_0x30758e(0x11b)),_0x48dc28=await this['postRequest'](_0x1afb96,_0x1e4b5c);return _0x48dc28['data'];}async[a1_0x394d39(0xfb)](_0x2ceef7){const _0x3f10b5=a1_0x394d39,_0x171991=this[_0x3f10b5(0xf5)](_0x3f10b5(0x148),_0x3f10b5(0xf3)),_0xd06f6b=await this[_0x3f10b5(0x12b)](_0x171991,_0x2ceef7);return _0xd06f6b['data'];}}
1
+ function a1_0x5a0c(){const _0x25b32a=['toolboxBaseUrlOverride','saveBffScriptViaToolbox','toolboxBaseUrl','toDataset','stringify','Unknown\x20error','API\x20request\x20failed:\x20HTTP\x20','fromField','relations','ENDPOINT','ms.\x20The\x20server\x20may\x20be\x20down\x20or\x20unreachable.\x0aURL:\x20','saveCustomSqlViaToolbox','toLowerCase','getDatasetDetail','472671KixRtY','push','runtimeDomain','json','params','getDatasetList','includes','/smartapi/question/er-config','doVersion','resolveToolboxUrl','filter','add','joinType','datasetName','description','datasets','success','1130164qHuyDT','set','request','env','POST','2703189yAOAtc','getCustomSqlList','scriptContent','/smartapi/custom/queryUserCustomSqlList','/api/management/script/cache/clear','datasetCode','No\x20authentication\x20cookie\x20found.\x20Please\x20login\x20first.','find','dbtableConfig','mcp:vibe','getBffScriptInfo','488646qryLYU','Content-Type','Failed\x20to\x20get\x20ER\x20config\x20for\x20dblinkId:\x20','tableData','scriptName','with-relations','length','name','pageSize','forceRefresh','/api/management/library/scripts/info?id=','sqlName','\x0aURL:\x20','dataset-list:','status','get','text','er-configs-all:','apiBaseUrl','/smartapi/custom/updateUserCustomSql','DEFAULT_TIMEOUT','object','API\x20request\x20timeout\x20after\x20','searchDatasets','cookie','Network\x20error:\x20Unable\x20to\x20connect\x20to\x20the\x20server.\x20Please\x20check\x20your\x20network\x20connection\x20or\x20the\x20server\x20may\x20be\x20down.\x0aURL:\x20','getDatasetRelations','/api/custom/executeSql','application/json','postRequest','modelCode','_request','runtimeBaseUrl','15536jeSKur','message','process','/smartapi/dataset/get-dataset-list','sqlCode','/smartapi/custom/saveUserCustomSql','code','meta','toField','getUniqueDbIds','save-bff','/api/management/library/scripts/save','/smartapi/dataset/get-driven-data?','dataset-detail:','updateUserCustomSql','signal','getBffScriptList','apiDomain','test','LOVRABET_ENV','sort','GET','save-sql','online','/api/node-toolbox/sql/save','4487lQdwOq','functionName','warn','7846200YFnKxK','233195IdpqIJ','data','toDatasetName','saveUserCustomSql','tableName','sqlContent','no-relations','scriptType','er-config:','AbortError','84jdawdj','errorMsg','from','dbId','appCode','executeSql','&type=','clearBffScriptCache'];a1_0x5a0c=function(){return _0x25b32a;};return a1_0x5a0c();}const a1_0x197679=a1_0x1bfb;function a1_0x1bfb(_0x4c5a76,_0x256e46){_0x4c5a76=_0x4c5a76-0x82;const _0x5a0cf5=a1_0x5a0c();let _0x1bfbc5=_0x5a0cf5[_0x4c5a76];return _0x1bfbc5;}(function(_0x2f29ce,_0x3ce59d){const _0x6f425a=a1_0x1bfb,_0x5684c4=_0x2f29ce();while(!![]){try{const _0x331def=parseInt(_0x6f425a(0xdb))/0x1+-parseInt(_0x6f425a(0xfc))/0x2+-parseInt(_0x6f425a(0xf1))/0x3+parseInt(_0x6f425a(0xec))/0x4+parseInt(_0x6f425a(0xbb))/0x5*(parseInt(_0x6f425a(0xc5))/0x6)+parseInt(_0x6f425a(0xb7))/0x7*(parseInt(_0x6f425a(0x9e))/0x8)+-parseInt(_0x6f425a(0xba))/0x9;if(_0x331def===_0x3ce59d)break;else _0x5684c4['push'](_0x5684c4['shift']());}catch(_0x577d08){_0x5684c4['push'](_0x5684c4['shift']());}}}(a1_0x5a0c,0x9b392));import{getCookie}from'../auth/cookie-manager.js';import{getEffectiveApiDomain,getEffectiveRuntimeDomain,resolveApiBaseUrl}from'../auth/constants.js';import{apiCache}from'./cache.js';export class DevApiClient{[a1_0x197679(0xc9)];['env'];[a1_0x197679(0x95)];['apiDomain'];[a1_0x197679(0xdd)];['toolboxBaseUrlOverride'];constructor(_0xb1a2d8){const _0x749cdf=a1_0x197679;this[_0x749cdf(0xc9)]=_0xb1a2d8[_0x749cdf(0xc9)],this[_0x749cdf(0xef)]=globalThis[_0x749cdf(0xa0)]?.['env']?.[_0x749cdf(0xb1)]||_0x749cdf(0xb5),this[_0x749cdf(0x95)]=_0xb1a2d8[_0x749cdf(0x95)]||getCookie(),this['apiDomain']=_0xb1a2d8[_0x749cdf(0x8f)]||getEffectiveApiDomain(),this[_0x749cdf(0xdd)]=_0xb1a2d8[_0x749cdf(0x9d)]||getEffectiveRuntimeDomain(),this[_0x749cdf(0xcd)]=_0xb1a2d8[_0x749cdf(0xcf)];if(!this[_0x749cdf(0x95)])throw new Error(_0x749cdf(0xf7));}['resolveToolboxUrl'](_0x2b7903,_0x22bbc5){const _0x2a3de1=a1_0x197679,_0x424666=resolveApiBaseUrl(_0x2b7903),_0x326f85=this['toolboxBaseUrlOverride']&&_0x424666===getEffectiveApiDomain()?this[_0x2a3de1(0xcd)]:_0x424666;try{const _0x3c2707=new URL(_0x326f85);if(_0x3c2707['pathname']!=='/')return _0x326f85;}catch{}return''+_0x326f85+_0x22bbc5;}static ['DEFAULT_TIMEOUT']=0x7530;async['_request'](_0x5e989d,_0x18fc00={},_0x2674c8=DevApiClient[a1_0x197679(0x91)]){const _0x19fb80=a1_0x197679,{method:method=_0x19fb80(0xb3),body:_0x562958,extraHeaders:_0x34641a}=_0x18fc00,_0xe0c085=new AbortController(),_0x61523d=setTimeout(()=>_0xe0c085['abort'](),_0x2674c8),_0xc40650={'Cookie':this['cookie'],'X-Invoke-Source':_0x19fb80(0xfa),..._0x34641a};method===_0x19fb80(0xf0)&&(_0xc40650[_0x19fb80(0xfd)]=_0x19fb80(0x99));try{const _0x475212=await fetch(_0x5e989d,{'method':method,'headers':_0xc40650,..._0x562958!==undefined&&{'body':JSON[_0x19fb80(0xd1)](_0x562958)},'signal':_0xe0c085[_0x19fb80(0xad)]});clearTimeout(_0x61523d);if(!_0x475212['ok']){if(_0x475212[_0x19fb80(0x8b)]===0x191)throw new Error('Authentication\x20failed.\x20Please\x20login\x20again.');let _0x4c773d='';try{_0x4c773d=await _0x475212[_0x19fb80(0x8d)]();}catch{}throw new Error(_0x19fb80(0xd3)+_0x475212[_0x19fb80(0x8b)]+_0x19fb80(0x89)+_0x5e989d+(_0x4c773d?'\x0a'+_0x4c773d:''));}const _0x24d35c=await _0x475212[_0x19fb80(0xde)]();if(_0x24d35c&&typeof _0x24d35c===_0x19fb80(0x92)&&_0x19fb80(0xeb)in _0x24d35c&&!_0x24d35c[_0x19fb80(0xeb)]){const _0x7745c7=_0x24d35c;throw new Error('API\x20error:\x20'+(_0x7745c7[_0x19fb80(0x9f)]||_0x7745c7[_0x19fb80(0xc6)]||_0x19fb80(0xd2)));}return _0x24d35c;}catch(_0x351968){if(_0x351968 instanceof Error&&_0x351968[_0x19fb80(0x84)]===_0x19fb80(0xc4))throw new Error(_0x19fb80(0x93)+_0x2674c8+_0x19fb80(0xd7)+_0x5e989d);if(_0x351968 instanceof TypeError)throw new Error(_0x19fb80(0x96)+_0x5e989d);throw _0x351968;}}async['request'](_0x436783,_0x2926f5){return this['_request'](_0x436783,{'method':'GET'},_0x2926f5);}async[a1_0x197679(0x9a)](_0x3004d3,_0x531558,_0xf99e79,_0x4178de){const _0xe1f291=a1_0x197679;return this[_0xe1f291(0x9c)](_0x3004d3,{'method':_0xe1f291(0xf0),'body':_0x531558,'extraHeaders':_0x4178de},_0xf99e79);}async['getDatasetList'](_0x5b5688){const _0x59749e=a1_0x197679,_0x663804=_0x5b5688?.[_0x59749e(0x86)]||![],_0x2a3536=_0x59749e(0x8a)+this['appCode']+':'+this[_0x59749e(0xef)];if(!_0x663804){const _0x36a354=apiCache[_0x59749e(0x8c)](_0x2a3536);if(_0x36a354)return _0x36a354;}const _0xe978fe=this[_0x59749e(0xaf)]+_0x59749e(0xa1),_0x5074c5=await this[_0x59749e(0x9a)](_0xe978fe,{'appCode':this[_0x59749e(0xc9)]});return apiCache[_0x59749e(0xed)](_0x2a3536,_0x5074c5),_0x5074c5;}async[a1_0x197679(0xda)](_0x3cc108,_0x3b8935=![],_0x57eb9f=![]){const _0x51ac21=a1_0x197679,_0x343d26=_0x51ac21(0xab)+this[_0x51ac21(0xc9)]+':'+this[_0x51ac21(0xef)]+':'+_0x3cc108+':'+(_0x57eb9f?_0x51ac21(0x82):_0x51ac21(0xc1));if(!_0x3b8935){const _0x4e477f=apiCache[_0x51ac21(0x8c)](_0x343d26);if(_0x4e477f)return _0x4e477f;}const _0x1247b2=/^\d+$/[_0x51ac21(0xb0)](_0x3cc108),_0xa6a261=_0x1247b2?'id':_0x51ac21(0xa4),_0xcb738e=this[_0x51ac21(0xaf)]+_0x51ac21(0xaa)+_0xa6a261+'='+_0x3cc108,_0x50bb99=await this['request'](_0xcb738e);if(_0x57eb9f&&_0x50bb99[_0x51ac21(0xbc)]?.[_0x51ac21(0x9b)]){const _0x498a41=_0x50bb99[_0x51ac21(0xbc)][_0x51ac21(0xe3)]==='v2',_0x3eaf44=Array['isArray'](_0x50bb99[_0x51ac21(0xbc)][_0x51ac21(0xd5)]);if(!_0x498a41||!_0x3eaf44)try{const _0x45748e=await this[_0x51ac21(0x97)](_0x50bb99['data'][_0x51ac21(0x9b)],_0x3b8935);_0x50bb99['data'][_0x51ac21(0xd5)]=_0x45748e;}catch(_0x25c613){process['env']['NODE_ENV']!=='test'&&console[_0x51ac21(0xb9)]('[getDatasetDetail]\x20Failed\x20to\x20fetch\x20relations\x20for\x20'+_0x3cc108+':',_0x25c613);}}return apiCache[_0x51ac21(0xed)](_0x343d26,_0x50bb99),_0x50bb99;}async[a1_0x197679(0x94)](_0x3d3f4f){const _0x439df4=a1_0x197679,_0x5ee43c=await this[_0x439df4(0xe0)](),_0x349aca=Array['isArray'](_0x5ee43c[_0x439df4(0xbc)])?_0x5ee43c[_0x439df4(0xbc)]:_0x5ee43c[_0x439df4(0xbc)]?.[_0x439df4(0xff)]||[];if(!_0x5ee43c[_0x439df4(0xeb)])return{'success':!![],'data':{'tableData':[]}};const _0x115b64=_0x349aca[_0x439df4(0xe5)](_0x3f5ae9=>{const _0x19eae9=_0x439df4,_0xcbd57a=_0x3d3f4f[_0x19eae9(0xd9)]();return _0x3f5ae9['name']?.[_0x19eae9(0xd9)]()[_0x19eae9(0xe1)](_0xcbd57a)||_0x3f5ae9[_0x19eae9(0xa4)]?.[_0x19eae9(0xd9)]()[_0x19eae9(0xe1)](_0xcbd57a)||_0x3f5ae9[_0x19eae9(0xf9)]?.[_0x19eae9(0xbf)]?.['toLowerCase']()['includes'](_0xcbd57a)||_0x3f5ae9[_0x19eae9(0xe9)]?.[_0x19eae9(0xd9)]()[_0x19eae9(0xe1)](_0xcbd57a);});return{'success':!![],'data':{'tableData':_0x115b64,'paging':{'totalCount':_0x115b64[_0x439df4(0x83)],'currentPage':0x1,'pageSize':_0x115b64[_0x439df4(0x83)]}}};}async[a1_0x197679(0xf2)](_0x4380cb){const _0x475466=a1_0x197679,_0x229009=_0x4380cb?.['currentPage']||0x1,_0x402c07=_0x4380cb?.[_0x475466(0x85)]||0x3e7,_0x3e59c=this[_0x475466(0xaf)]+_0x475466(0xf4),_0x1022cc={'appCode':this['appCode'],'currentPage':_0x229009,'pageSize':_0x402c07,..._0x4380cb?.[_0x475466(0xa2)]&&{'sqlCode':_0x4380cb[_0x475466(0xa2)]},..._0x4380cb?.[_0x475466(0x88)]&&{'sqlName':_0x4380cb[_0x475466(0x88)]}},_0x5d776b=await this[_0x475466(0x9a)](_0x3e59c,_0x1022cc);return _0x5d776b;}async[a1_0x197679(0xca)](_0x3779c5){const _0x499469=a1_0x197679,_0x1e5cb5=this[_0x499469(0xdd)]+_0x499469(0x98),_0x3e234c={'appCode':this[_0x499469(0xc9)],'sqlCode':_0x3779c5['sqlCode'],..._0x3779c5[_0x499469(0xdf)]&&{'params':_0x3779c5[_0x499469(0xdf)]}};return await this[_0x499469(0x9a)](_0x1e5cb5,_0x3e234c);}async[a1_0x197679(0xbe)](_0x3bf14d){const _0x1e832f=a1_0x197679,_0x513d34=this[_0x1e832f(0xaf)]+_0x1e832f(0xa3),_0x239ca7={'sqlName':_0x3bf14d[_0x1e832f(0x88)],'dbId':_0x3bf14d['dbId'],'sqlContent':_0x3bf14d[_0x1e832f(0xc0)],'appCode':this[_0x1e832f(0xc9)]};return await this['postRequest'](_0x513d34,_0x239ca7);}async[a1_0x197679(0xac)](_0x414c8d){const _0x24f09e=a1_0x197679,_0x4bbde8=this[_0x24f09e(0xaf)]+_0x24f09e(0x90),_0x36ebf5={'id':_0x414c8d['id'],'dbId':_0x414c8d[_0x24f09e(0xc8)],'sqlName':_0x414c8d[_0x24f09e(0x88)],'appCode':this['appCode'],'sqlContent':_0x414c8d[_0x24f09e(0xc0)]};return await this['postRequest'](_0x4bbde8,_0x36ebf5);}async['getErConfig'](_0x7cd587,_0x4903bf=![]){const _0x27fe9c=a1_0x197679,_0x552833=_0x27fe9c(0xc3)+this[_0x27fe9c(0xc9)]+':'+this[_0x27fe9c(0xef)]+':'+_0x7cd587;if(!_0x4903bf){const _0x499dbe=apiCache[_0x27fe9c(0x8c)](_0x552833);if(_0x499dbe)return _0x499dbe;}const _0x530768=this[_0x27fe9c(0xaf)]+_0x27fe9c(0xe2),_0x1769c2=await this[_0x27fe9c(0x9a)](_0x530768,{'dblinkId':_0x7cd587,'appCode':this[_0x27fe9c(0xc9)]});if(!_0x1769c2['success']||!_0x1769c2['data'])throw new Error(_0x27fe9c(0xfe)+_0x7cd587);const _0x5db890={'meta':_0x1769c2['data'][_0x27fe9c(0xa5)],'datasets':_0x1769c2[_0x27fe9c(0xbc)][_0x27fe9c(0xea)]};return apiCache[_0x27fe9c(0xed)](_0x552833,_0x5db890),_0x5db890;}async[a1_0x197679(0xa7)](_0x40014e=![]){const _0x17c9ef=a1_0x197679,_0x5481fe=await this['getDatasetList']({'forceRefresh':_0x40014e}),_0x54dedc=Array['isArray'](_0x5481fe['data'])?_0x5481fe[_0x17c9ef(0xbc)]:_0x5481fe['data']?.[_0x17c9ef(0xff)]||[],_0xaf2fb=new Set();for(const _0x3f7b82 of _0x54dedc){_0x3f7b82[_0x17c9ef(0xf9)]?.[_0x17c9ef(0xc8)]&&_0xaf2fb[_0x17c9ef(0xe6)](_0x3f7b82[_0x17c9ef(0xf9)]['dbId']);}return Array[_0x17c9ef(0xc7)](_0xaf2fb)[_0x17c9ef(0xb2)]((_0x7992f,_0x44f9b8)=>_0x7992f-_0x44f9b8);}async['getAllErConfigs'](_0x44b5f2=![]){const _0x5c994b=a1_0x197679,_0x52e2ac=_0x5c994b(0x8e)+this['appCode']+':'+this[_0x5c994b(0xef)];if(!_0x44b5f2){const _0x5b6618=apiCache[_0x5c994b(0x8c)](_0x52e2ac);if(_0x5b6618)return _0x5b6618;}const _0x1cb1bf=await this[_0x5c994b(0xa7)](_0x44b5f2),_0x3dc83b=new Map();for(const _0x1cefea of _0x1cb1bf){try{const _0x395745=await this['getErConfig'](_0x1cefea,_0x44b5f2);_0x3dc83b[_0x5c994b(0xed)](_0x1cefea,_0x395745);}catch(_0x46d6b3){console[_0x5c994b(0xb9)]('Failed\x20to\x20get\x20ER\x20config\x20for\x20dbId\x20'+_0x1cefea+':',_0x46d6b3);}}return apiCache['set'](_0x52e2ac,_0x3dc83b),_0x3dc83b;}async[a1_0x197679(0x97)](_0xba7d1e,_0x48eddd=![]){const _0x53f91a=a1_0x197679,_0x558c44=await this['getAllErConfigs'](_0x48eddd),_0x288d60=[],_0x2070c8=[];for(const [,_0x2022cf]of _0x558c44){const _0x2f2880=_0x2022cf[_0x53f91a(0xea)][_0x53f91a(0xf8)](_0x141c12=>_0x141c12['datasetCode']===_0xba7d1e);if(_0x2f2880)for(const _0x4a00e3 of _0x2f2880[_0x53f91a(0xd5)]||[]){_0x288d60[_0x53f91a(0xdc)]({'toDataset':_0x4a00e3['toDataset'],'toDatasetName':_0x4a00e3[_0x53f91a(0xbd)],'toField':_0x4a00e3[_0x53f91a(0xa6)],'fromField':_0x4a00e3['fromField'],'joinType':_0x4a00e3[_0x53f91a(0xe7)]});}for(const _0x5266f9 of _0x2022cf[_0x53f91a(0xea)]){if(_0x5266f9['datasetCode']===_0xba7d1e)continue;for(const _0x18d701 of _0x5266f9[_0x53f91a(0xd5)]||[]){_0x18d701[_0x53f91a(0xd0)]===_0xba7d1e&&_0x2070c8[_0x53f91a(0xdc)]({'fromDataset':_0x5266f9[_0x53f91a(0xf6)],'fromDatasetName':_0x5266f9[_0x53f91a(0xe8)],'fromField':_0x18d701[_0x53f91a(0xd4)],'toField':_0x18d701[_0x53f91a(0xa6)],'joinType':_0x18d701['joinType']});}}}return{'outgoing':_0x288d60,'incoming':_0x2070c8};}async[a1_0x197679(0xae)](_0x5d8fff=a1_0x197679(0xd6)){const _0xe81934=a1_0x197679,_0x261fe7=this[_0xe81934(0xaf)]+'/api/management/library/scripts/list?appCode='+encodeURIComponent(this[_0xe81934(0xc9)])+_0xe81934(0xcb)+_0x5d8fff;return await this[_0xe81934(0xee)](_0x261fe7);}async[a1_0x197679(0xfb)](_0x2c3285){const _0x107f71=a1_0x197679,_0x4cbd95=this[_0x107f71(0xaf)]+_0x107f71(0x87)+_0x2c3285;return await this[_0x107f71(0xee)](_0x4cbd95);}async['saveBffScript'](_0x553ae8){const _0x563c6e=a1_0x197679,_0x19b48a=this[_0x563c6e(0xaf)]+_0x563c6e(0xa9),_0x3c954c={'id':_0x553ae8['id']??null,'appCode':_0x553ae8[_0x563c6e(0xc9)],'description':_0x553ae8[_0x563c6e(0xe9)],'scriptContent':_0x553ae8['scriptContent'],'scriptType':_0x553ae8[_0x563c6e(0xc2)]};return await this['postRequest'](_0x19b48a,_0x3c954c);}async[a1_0x197679(0xcc)](){const _0x22de9a=a1_0x197679,_0x6bd537=this[_0x22de9a(0xdd)]+_0x22de9a(0xf5);return await this['postRequest'](_0x6bd537,{});}async[a1_0x197679(0xd8)](_0x3a64cc){const _0x3bf2bf=a1_0x197679,_0xec9a01=this[_0x3bf2bf(0xe4)](_0x3bf2bf(0xb4),_0x3bf2bf(0xb6)),_0x59946f=await this[_0x3bf2bf(0x9a)](_0xec9a01,_0x3a64cc);return _0x59946f[_0x3bf2bf(0xbc)];}async[a1_0x197679(0xce)](_0x45377a){const _0x2719fe=a1_0x197679,_0x2639d4=this[_0x2719fe(0xe4)](_0x2719fe(0xa8),'/api/node-toolbox/bff/save'),_0x4783bd={'appCode':_0x45377a[_0x2719fe(0xc9)],'description':_0x45377a[_0x2719fe(0xe9)],'scriptContent':_0x45377a[_0x2719fe(0xf3)],'id':_0x45377a['id'],'scriptType':_0x45377a['scriptType']};_0x45377a[_0x2719fe(0x100)]!=null&&_0x45377a['scriptName']!==''&&(_0x4783bd[_0x2719fe(0x100)]=_0x45377a[_0x2719fe(0x100)],_0x4783bd[_0x2719fe(0xb8)]=_0x45377a['scriptName']);const _0x2ca14e=await this[_0x2719fe(0x9a)](_0x2639d4,_0x4783bd);return _0x2ca14e['data'];}}
@@ -1 +1 @@
1
- function a2_0x5d39(_0x3e82a0,_0x22e518){_0x3e82a0=_0x3e82a0-0x15c;var _0x102eec=a2_0x102e();var _0x5d39a1=_0x102eec[_0x3e82a0];return _0x5d39a1;}(function(_0x396413,_0x52cd98){var _0x1da575=a2_0x5d39,_0x1c4341=_0x396413();while(!![]){try{var _0x18e54c=parseInt(_0x1da575(0x15e))/0x1+parseInt(_0x1da575(0x160))/0x2*(parseInt(_0x1da575(0x165))/0x3)+parseInt(_0x1da575(0x15c))/0x4+parseInt(_0x1da575(0x15d))/0x5+parseInt(_0x1da575(0x161))/0x6*(-parseInt(_0x1da575(0x15f))/0x7)+-parseInt(_0x1da575(0x164))/0x8*(parseInt(_0x1da575(0x162))/0x9)+-parseInt(_0x1da575(0x163))/0xa;if(_0x18e54c===_0x52cd98)break;else _0x1c4341['push'](_0x1c4341['shift']());}catch(_0x195b8f){_0x1c4341['push'](_0x1c4341['shift']());}}}(a2_0x102e,0x39d0d));function a2_0x102e(){var _0x202302=['2169qkmhRs','3361200euNYOC','6904nXpRfS','383772CQPlNA','939708SoHMeJ','1841005qprEVJ','307971iIkXIw','7GLeCFR','2sRNCRC','1548642QnOOjK'];a2_0x102e=function(){return _0x202302;};return a2_0x102e();}export{getEnvAppCode,getEnvironment,getEnvApiBaseUrl,getEnvRuntimeBaseUrl,getEnvUserBaseUrl,getEnvAuthCookie,configDir,cookieFile,defaultConfig,getEnvAppCodeWithFallback,getApiDomain,getUserDomain,getRuntimeDomain,getEffectiveApiDomain,getEffectiveRuntimeDomain,getEffectiveUserDomain,getEnvToolboxBaseUrl,getEffectiveToolboxDomain}from'../config/env.js';export{resolveApiBaseUrl}from'../config/api-url-resolver.js';
1
+ (function(_0x34c06c,_0x21f708){var _0x374f82=a2_0x233b,_0x527228=_0x34c06c();while(!![]){try{var _0x2de167=-parseInt(_0x374f82(0xc1))/0x1*(-parseInt(_0x374f82(0xc8))/0x2)+parseInt(_0x374f82(0xbe))/0x3+-parseInt(_0x374f82(0xc0))/0x4*(parseInt(_0x374f82(0xc6))/0x5)+-parseInt(_0x374f82(0xc3))/0x6+-parseInt(_0x374f82(0xbf))/0x7*(-parseInt(_0x374f82(0xc4))/0x8)+parseInt(_0x374f82(0xc7))/0x9*(-parseInt(_0x374f82(0xc2))/0xa)+parseInt(_0x374f82(0xc5))/0xb;if(_0x2de167===_0x21f708)break;else _0x527228['push'](_0x527228['shift']());}catch(_0x15734a){_0x527228['push'](_0x527228['shift']());}}}(a2_0x4106,0x3454c));function a2_0x4106(){var _0x4324df=['113607kyOeDG','3034PcyHZT','1040766UBUBKB','22547jtcXwL','8nqBUrD','39XLmqWK','230eHCoHh','1469706zufvHR','40oceZBM','7860226WPOzoC','967820vjYnWV'];a2_0x4106=function(){return _0x4324df;};return a2_0x4106();}export{getEnvAppCode,getEnvironment,getEnvApiBaseUrl,getEnvRuntimeBaseUrl,getEnvUserBaseUrl,getEnvAuthCookie,configDir,cookieFile,defaultConfig,getEnvAppCodeWithFallback,getApiDomain,getUserDomain,getRuntimeDomain,getEffectiveApiDomain,getEffectiveRuntimeDomain,getEffectiveUserDomain,getEnvToolboxBaseUrl,getEffectiveToolboxDomain}from'../config/env.js';function a2_0x233b(_0x36ac22,_0x25b701){_0x36ac22=_0x36ac22-0xbe;var _0x4106f1=a2_0x4106();var _0x233b28=_0x4106f1[_0x36ac22];return _0x233b28;}export{resolveApiBaseUrl}from'../config/api-url-resolver.js';
@@ -1 +1 @@
1
- function a3_0x827e(_0x55ed4e,_0x320864){_0x55ed4e=_0x55ed4e-0x7b;const _0x2ac404=a3_0x2ac4();let _0x827e2=_0x2ac404[_0x55ed4e];return _0x827e2;}(function(_0x49b699,_0x3cd283){const _0x132006=a3_0x827e,_0x26139d=_0x49b699();while(!![]){try{const _0x19eb15=-parseInt(_0x132006(0x83))/0x1*(parseInt(_0x132006(0x7b))/0x2)+parseInt(_0x132006(0x88))/0x3+parseInt(_0x132006(0x7d))/0x4+parseInt(_0x132006(0x89))/0x5*(parseInt(_0x132006(0x87))/0x6)+parseInt(_0x132006(0x7e))/0x7*(-parseInt(_0x132006(0x80))/0x8)+parseInt(_0x132006(0x85))/0x9+-parseInt(_0x132006(0x7c))/0xa;if(_0x19eb15===_0x3cd283)break;else _0x26139d['push'](_0x26139d['shift']());}catch(_0x41760e){_0x26139d['push'](_0x26139d['shift']());}}}(a3_0x2ac4,0xe067c));import{readFileSync,writeFileSync}from'node:fs';import{getEnvAuthCookie,cookieFile}from'../config/env.js';export function getCookie(){const _0x1dd473=a3_0x827e,_0x5a8baf=getEnvAuthCookie();if(_0x5a8baf)return _0x5a8baf;try{return readFileSync(cookieFile,_0x1dd473(0x84))[_0x1dd473(0x86)]();}catch{return'';}}function a3_0x2ac4(){const _0x2b2d1b=['message','44039nPAAiv','utf-8','247212hpVuTc','trim','48612qfiNQS','4601997EpgZOX','625ZSmnHK','58bdGxdo','11946920HnGMty','6748016tvIHzR','903HeoKRL','Failed\x20to\x20save\x20cookie\x20to\x20','53968rMCxQj','length'];a3_0x2ac4=function(){return _0x2b2d1b;};return a3_0x2ac4();}export function saveCookie(_0x207f42){const _0x1c1428=a3_0x827e;try{writeFileSync(cookieFile,_0x207f42,_0x1c1428(0x84));}catch(_0x21da37){throw new Error(_0x1c1428(0x7f)+cookieFile+':\x20'+_0x21da37[_0x1c1428(0x82)]);}}export function hasCookie(){const _0x4eb8eb=a3_0x827e,_0x3d3ca1=getCookie();return _0x3d3ca1[_0x4eb8eb(0x81)]>0x0;}export function clearCookie(){const _0x1f446a=a3_0x827e;try{writeFileSync(cookieFile,'',_0x1f446a(0x84));}catch{}}
1
+ (function(_0x38524b,_0x550428){const _0x2b5e7b=a3_0x50db,_0x29043b=_0x38524b();while(!![]){try{const _0x473e3b=parseInt(_0x2b5e7b(0x67))/0x1+-parseInt(_0x2b5e7b(0x65))/0x2+parseInt(_0x2b5e7b(0x6b))/0x3+parseInt(_0x2b5e7b(0x64))/0x4+-parseInt(_0x2b5e7b(0x69))/0x5*(-parseInt(_0x2b5e7b(0x68))/0x6)+-parseInt(_0x2b5e7b(0x6c))/0x7+-parseInt(_0x2b5e7b(0x66))/0x8;if(_0x473e3b===_0x550428)break;else _0x29043b['push'](_0x29043b['shift']());}catch(_0x3ec5de){_0x29043b['push'](_0x29043b['shift']());}}}(a3_0x2313,0x9f36b));import{readFileSync,writeFileSync}from'node:fs';import{getEnvAuthCookie,cookieFile}from'../config/env.js';export function getCookie(){const _0x2504b4=getEnvAuthCookie();if(_0x2504b4)return _0x2504b4;try{return readFileSync(cookieFile,'utf-8')['trim']();}catch{return'';}}export function saveCookie(_0x2ee11a){try{writeFileSync(cookieFile,_0x2ee11a,'utf-8');}catch(_0xc597d4){throw new Error('Failed\x20to\x20save\x20cookie\x20to\x20'+cookieFile+':\x20'+_0xc597d4['message']);}}export function hasCookie(){const _0x38b93a=a3_0x50db,_0x18728e=getCookie();return _0x18728e[_0x38b93a(0x6d)]>0x0;}export function clearCookie(){const _0x1ee124=a3_0x50db;try{writeFileSync(cookieFile,'',_0x1ee124(0x6a));}catch{}}function a3_0x50db(_0x445c66,_0x53c888){_0x445c66=_0x445c66-0x64;const _0x2313a8=a3_0x2313();let _0x50db22=_0x2313a8[_0x445c66];return _0x50db22;}function a3_0x2313(){const _0x12e6d9=['1289506sIagDx','6912498oqNaDd','5fCMMhL','utf-8','2730699yTxzsJ','480599lcgCRI','length','3545312CPtgjh','1135872nLekKe','23595344ckcyVR'];a3_0x2313=function(){return _0x12e6d9;};return a3_0x2313();}
@@ -1 +1 @@
1
- (function(_0x4ca4be,_0x451aaf){const _0xc4d3e1=a4_0x3caf,_0x2aa29e=_0x4ca4be();while(!![]){try{const _0x50478b=parseInt(_0xc4d3e1(0xe4))/0x1*(parseInt(_0xc4d3e1(0xea))/0x2)+parseInt(_0xc4d3e1(0xe1))/0x3*(-parseInt(_0xc4d3e1(0xe0))/0x4)+parseInt(_0xc4d3e1(0xe2))/0x5+-parseInt(_0xc4d3e1(0xe9))/0x6*(parseInt(_0xc4d3e1(0xdd))/0x7)+-parseInt(_0xc4d3e1(0xdc))/0x8+parseInt(_0xc4d3e1(0xe3))/0x9+-parseInt(_0xc4d3e1(0xe8))/0xa*(parseInt(_0xc4d3e1(0xe7))/0xb);if(_0x50478b===_0x451aaf)break;else _0x2aa29e['push'](_0x2aa29e['shift']());}catch(_0x44518b){_0x2aa29e['push'](_0x2aa29e['shift']());}}}(a4_0x54d0,0x4692a));function a4_0x3caf(_0x46fbec,_0x147133){_0x46fbec=_0x46fbec-0xdc;const _0x54d0f7=a4_0x54d0();let _0x3caf05=_0x54d0f7[_0x46fbec];return _0x3caf05;}import{getCookie}from'./cookie-manager.js';function a4_0x54d0(){const _0x3452f0=['json','user','64262UlKEor','880ICRxEJ','12EkXHyn','6TLaXtM','82528cKoRiJ','312466HlWSSY','session','/api/auth/get-session','1180776rItVcV','3eqJcjC','2778295OGFxSe','1449828yXddMZ','160399sHLSjV'];a4_0x54d0=function(){return _0x3452f0;};return a4_0x54d0();}import{getUserDomain}from'../config/env.js';export async function isSessionValid(){const _0x3e89c1=a4_0x3caf,_0x32d12f=getCookie();if(!_0x32d12f)return![];try{const _0x5f080f=await fetch(getUserDomain()+_0x3e89c1(0xdf),{'headers':{'cookie':_0x32d12f}});if(!_0x5f080f['ok'])return![];const _0x5d8d20=await _0x5f080f[_0x3e89c1(0xe5)]();return!!(_0x5d8d20?.[_0x3e89c1(0xde)]&&_0x5d8d20?.[_0x3e89c1(0xe6)]);}catch{return![];}}
1
+ function a4_0x157b(){const _0x77f2c2=['json','user','41536365FWPIde','67692FRMEAC','276MTcAND','165212beEWBA','490831QGNHlg','1pEcxHl','846tSKvre','2702RwkAth','/api/auth/get-session','85PNnjVR','22280HUnawH','509758YDuALF','20080IEBbzi','21BOnqws'];a4_0x157b=function(){return _0x77f2c2;};return a4_0x157b();}function a4_0x24d6(_0x1e3733,_0x16fc3e){_0x1e3733=_0x1e3733-0x19c;const _0x157b78=a4_0x157b();let _0x24d6ea=_0x157b78[_0x1e3733];return _0x24d6ea;}(function(_0x69000,_0x471c31){const _0x276196=a4_0x24d6,_0x7a2883=_0x69000();while(!![]){try{const _0x83f9e7=parseInt(_0x276196(0x1a6))/0x1*(parseInt(_0x276196(0x19c))/0x2)+parseInt(_0x276196(0x19e))/0x3*(-parseInt(_0x276196(0x1a4))/0x4)+-parseInt(_0x276196(0x1aa))/0x5*(parseInt(_0x276196(0x1a2))/0x6)+-parseInt(_0x276196(0x1a8))/0x7*(parseInt(_0x276196(0x19d))/0x8)+-parseInt(_0x276196(0x1a7))/0x9*(parseInt(_0x276196(0x1ab))/0xa)+-parseInt(_0x276196(0x1a5))/0xb*(parseInt(_0x276196(0x1a3))/0xc)+parseInt(_0x276196(0x1a1))/0xd;if(_0x83f9e7===_0x471c31)break;else _0x7a2883['push'](_0x7a2883['shift']());}catch(_0x3dbd2e){_0x7a2883['push'](_0x7a2883['shift']());}}}(a4_0x157b,0xbaa4e));import{getCookie}from'./cookie-manager.js';import{getUserDomain}from'../config/env.js';export async function isSessionValid(){const _0x443d04=a4_0x24d6,_0x22b97d=getCookie();if(!_0x22b97d)return![];try{const _0x32799c=await fetch(getUserDomain()+_0x443d04(0x1a9),{'headers':{'cookie':_0x22b97d}});if(!_0x32799c['ok'])return![];const _0x537410=await _0x32799c[_0x443d04(0x19f)]();return!!(_0x537410?.['session']&&_0x537410?.[_0x443d04(0x1a0)]);}catch{return![];}}
@@ -1 +1 @@
1
- (function(_0x1ba86c,_0x1d8e2b){const _0x22b16a=a5_0x40c9,_0x2e7ee3=_0x1ba86c();while(!![]){try{const _0x498956=parseInt(_0x22b16a(0x128))/0x1*(parseInt(_0x22b16a(0x126))/0x2)+parseInt(_0x22b16a(0x127))/0x3+-parseInt(_0x22b16a(0x11b))/0x4*(-parseInt(_0x22b16a(0x11e))/0x5)+-parseInt(_0x22b16a(0x120))/0x6+parseInt(_0x22b16a(0x11d))/0x7*(parseInt(_0x22b16a(0x123))/0x8)+parseInt(_0x22b16a(0x125))/0x9+-parseInt(_0x22b16a(0x124))/0xa;if(_0x498956===_0x1d8e2b)break;else _0x2e7ee3['push'](_0x2e7ee3['shift']());}catch(_0x17def0){_0x2e7ee3['push'](_0x2e7ee3['shift']());}}}(a5_0xfd88,0xd7ce0));import{getEnvToolboxBaseUrl,getEffectiveApiDomain}from'./env.js';import{getConfigApiUrlOverrides}from'./lovrabet-config.js';let _envOverridesCache=null;function getEnvApiUrlOverrides(){const _0x5c03db=a5_0x40c9;if(_envOverridesCache!==null)return _envOverridesCache;const _0x222159=process[_0x5c03db(0x122)][_0x5c03db(0x121)];if(!_0x222159)return _envOverridesCache={},_envOverridesCache;try{_envOverridesCache=JSON['parse'](_0x222159);}catch{process[_0x5c03db(0x122)]['MCP_DEBUG']&&console[_0x5c03db(0x11c)](_0x5c03db(0x11f)),_envOverridesCache={};}return _envOverridesCache;}export function resolveApiBaseUrl(_0x909cfe){const _0x585c74=getEnvApiUrlOverrides();if(_0x585c74[_0x909cfe])return _0x585c74[_0x909cfe];const _0x101abc=getConfigApiUrlOverrides();if(_0x101abc[_0x909cfe])return _0x101abc[_0x909cfe];return getEnvToolboxBaseUrl()??getEffectiveApiDomain();}export function clearApiUrlOverridesCache(){_envOverridesCache=null;}function a5_0x40c9(_0x4b33a6,_0x45137f){_0x4b33a6=_0x4b33a6-0x11b;const _0xfd8853=a5_0xfd88();let _0x40c957=_0xfd8853[_0x4b33a6];return _0x40c957;}function a5_0xfd88(){const _0x15e6a7=['21hidDOD','136555XlwIzm','[MCP]\x20LOVRABET_API_URL_OVERRIDES\x20is\x20not\x20valid\x20JSON,\x20ignoring','6834636OtqAPQ','LOVRABET_API_URL_OVERRIDES','env','2593176qltGXP','34410850JYFQwO','4774167NVKudP','2KmyeCv','3807519wgEsYU','971457TSHoSW','252IDqFWY','warn'];a5_0xfd88=function(){return _0x15e6a7;};return a5_0xfd88();}
1
+ function a5_0x1358(){const _0x1b2863=['1728920kjBLXt','18EgXXar','399223tQcrqc','parse','warn','2508832FZvRBU','1850430GWlERZ','6150040CzyGeR','[MCP]\x20LOVRABET_API_URL_OVERRIDES\x20is\x20not\x20valid\x20JSON,\x20ignoring','28SYlEhn','104366TJSFhk','3eCahPq','env','7qphpqQ','LOVRABET_API_URL_OVERRIDES','871875PofTvZ','90MvZHMF','MCP_DEBUG','348klqGFJ'];a5_0x1358=function(){return _0x1b2863;};return a5_0x1358();}(function(_0x5c2529,_0x52c8f1){const _0x2673f9=a5_0x30bc,_0x5b2c92=_0x5c2529();while(!![]){try{const _0x1801e5=-parseInt(_0x2673f9(0x8c))/0x1*(parseInt(_0x2673f9(0x89))/0x2)+-parseInt(_0x2673f9(0x8a))/0x3*(parseInt(_0x2673f9(0x84))/0x4)+parseInt(_0x2673f9(0x85))/0x5*(parseInt(_0x2673f9(0x80))/0x6)+-parseInt(_0x2673f9(0x88))/0x7*(-parseInt(_0x2673f9(0x7f))/0x8)+-parseInt(_0x2673f9(0x7b))/0x9*(parseInt(_0x2673f9(0x7c))/0xa)+-parseInt(_0x2673f9(0x81))/0xb*(-parseInt(_0x2673f9(0x7e))/0xc)+-parseInt(_0x2673f9(0x86))/0xd;if(_0x1801e5===_0x52c8f1)break;else _0x5b2c92['push'](_0x5b2c92['shift']());}catch(_0x5615cd){_0x5b2c92['push'](_0x5b2c92['shift']());}}}(a5_0x1358,0xa866b));import{getEnvToolboxBaseUrl,getEffectiveApiDomain}from'./env.js';import{getConfigApiUrlOverrides}from'./lovrabet-config.js';function a5_0x30bc(_0x5344cd,_0x41d675){_0x5344cd=_0x5344cd-0x7a;const _0x1358a4=a5_0x1358();let _0x30bc14=_0x1358a4[_0x5344cd];return _0x30bc14;}let _envOverridesCache=null;function getEnvApiUrlOverrides(){const _0x1f9d1e=a5_0x30bc;if(_envOverridesCache!==null)return _envOverridesCache;const _0x5da2dc=process['env'][_0x1f9d1e(0x7a)];if(!_0x5da2dc)return _envOverridesCache={},_envOverridesCache;try{_envOverridesCache=JSON[_0x1f9d1e(0x82)](_0x5da2dc);}catch{process[_0x1f9d1e(0x8b)][_0x1f9d1e(0x7d)]&&console[_0x1f9d1e(0x83)](_0x1f9d1e(0x87)),_envOverridesCache={};}return _envOverridesCache;}export function resolveApiBaseUrl(_0x4068a6){const _0x833a9d=getEnvApiUrlOverrides();if(_0x833a9d[_0x4068a6])return _0x833a9d[_0x4068a6];const _0x4e006d=getConfigApiUrlOverrides();if(_0x4e006d[_0x4068a6])return _0x4e006d[_0x4068a6];return getEnvToolboxBaseUrl()??getEffectiveApiDomain();}export function clearApiUrlOverridesCache(){_envOverridesCache=null;}
@@ -1 +1 @@
1
- const a6_0x555bf6=a6_0x15a7;(function(_0x136f62,_0x1e2eee){const _0x59ba70=a6_0x15a7,_0x1c101a=_0x136f62();while(!![]){try{const _0x36489d=parseInt(_0x59ba70(0x15c))/0x1+parseInt(_0x59ba70(0x14e))/0x2*(-parseInt(_0x59ba70(0x162))/0x3)+parseInt(_0x59ba70(0x158))/0x4*(parseInt(_0x59ba70(0x155))/0x5)+-parseInt(_0x59ba70(0x14b))/0x6+parseInt(_0x59ba70(0x14f))/0x7+-parseInt(_0x59ba70(0x151))/0x8+parseInt(_0x59ba70(0x15d))/0x9;if(_0x36489d===_0x1e2eee)break;else _0x1c101a['push'](_0x1c101a['shift']());}catch(_0x4b5679){_0x1c101a['push'](_0x1c101a['shift']());}}}(a6_0x454c,0xd5679));import{mkdirSync}from'node:fs';import{homedir}from'node:os';const ENVIRONMENT_MAPPING={'online':'production','production':a6_0x555bf6(0x160),'daily':a6_0x555bf6(0x15b),'dev':a6_0x555bf6(0x164),'development':'development'};function a6_0x454c(){const _0x11103d=['2647674ICqySA','https://daily-runtime.lovrabet.com','LOVRABET_APP_CODE','46aZcBri','9004457LALWOt','/.lovrabet','2421032Tlzupi','https://api.lovrabet.com','LOVRABET_ENV','https://dev.lovrabet.com','25hvQslC','LOVRABET_RUNTIME_BASEURL','test','8092hiduJw','trim','LOVRABET_TOOLBOX_BASEURL','daily','1536774OQrYpo','4014981XZJvgt','https://user.lovrabet.com','[ENV]\x20Unknown\x20environment:\x20','production','NODE_ENV','216696yudUgV','\x20→\x20','development','LOVRABET_USER_BASEURL','https://daily-api.lovrabet.com',',\x20using\x20default\x20production','LOVRABET_AUTH_COOKIE','log','LOVRABET_API_BASEURL','https://runtime.lovrabet.com','[ENV]\x20Environment\x20mapping:\x20','env'];a6_0x454c=function(){return _0x11103d;};return a6_0x454c();}function normalizeEnvironment(_0x37c5f4){const _0x1a3177=a6_0x555bf6;if(!_0x37c5f4)return _0x1a3177(0x160);const _0x67a572=_0x37c5f4['toLowerCase'](),_0x160225=ENVIRONMENT_MAPPING[_0x67a572];if(!_0x160225)return console['warn'](_0x1a3177(0x15f)+_0x37c5f4+_0x1a3177(0x144)),_0x1a3177(0x160);return _0x160225!==_0x67a572&&_0x160225!==_0x37c5f4&&console[_0x1a3177(0x146)](_0x1a3177(0x149)+_0x37c5f4+_0x1a3177(0x163)+_0x160225),_0x160225;}export function getEnvAppCode(){const _0x4b858f=a6_0x555bf6;return process[_0x4b858f(0x14a)][_0x4b858f(0x14d)];}export function getEnvironment(){const _0x3d7e4d=a6_0x555bf6,_0x5700fa=process['env'][_0x3d7e4d(0x153)];return normalizeEnvironment(_0x5700fa);}export function getEnvApiBaseUrl(){const _0x316698=a6_0x555bf6;return process[_0x316698(0x14a)][_0x316698(0x147)];}function a6_0x15a7(_0x474d1f,_0x20591a){_0x474d1f=_0x474d1f-0x143;const _0x454cb7=a6_0x454c();let _0x15a7c4=_0x454cb7[_0x474d1f];return _0x15a7c4;}export function getEnvRuntimeBaseUrl(){const _0x56ec71=a6_0x555bf6;return process[_0x56ec71(0x14a)][_0x56ec71(0x156)];}export function getEnvUserBaseUrl(){const _0x2866a8=a6_0x555bf6;return process['env'][_0x2866a8(0x165)];}export function getEnvAuthCookie(){const _0x2e1a4e=a6_0x555bf6;return process['env'][_0x2e1a4e(0x145)]?.[_0x2e1a4e(0x159)]();}export function isTestEnv(){const _0x45a8cf=a6_0x555bf6;return process[_0x45a8cf(0x14a)]['NODE_ENV']===_0x45a8cf(0x157);}export function isProductionEnv(){const _0x1dd2a2=a6_0x555bf6;return process['env'][_0x1dd2a2(0x161)]==='production';}export function isDevelopmentEnv(){const _0x3f0fde=a6_0x555bf6;return process[_0x3f0fde(0x14a)][_0x3f0fde(0x161)]==='development';}export function shouldLog(){const _0x47abfa=a6_0x555bf6,_0xc35568=process['env']['NODE_ENV'];return _0xc35568==='development'||_0xc35568===_0x47abfa(0x15b);}export const configDir=homedir()+a6_0x555bf6(0x150);export const cookieFile=configDir+'/cookie';mkdirSync(configDir,{'recursive':!![]});export const defaultConfig={'appCode':getEnvAppCode(),'env':getEnvironment()};export function getEnvAppCodeWithFallback(_0x1f800f){return getEnvAppCode()||_0x1f800f;}export function getApiDomain(){const _0x3f4c29=a6_0x555bf6,_0x333c93=getEnvironment(),_0x18a52c={'production':_0x3f4c29(0x152),'online':_0x3f4c29(0x152),'daily':_0x3f4c29(0x143),'development':_0x3f4c29(0x154)};return _0x18a52c[_0x333c93];}export function getUserDomain(){const _0x22de8a=a6_0x555bf6,_0x10c271=getEnvironment(),_0x36a229={'production':_0x22de8a(0x15e),'online':'https://user.lovrabet.com','daily':'https://user-daily.lovrabet.com','development':_0x22de8a(0x154)};return _0x36a229[_0x10c271];}export function getRuntimeDomain(){const _0x150f3b=a6_0x555bf6,_0x17ffb0=getEnvironment(),_0x15a610={'production':'https://runtime.lovrabet.com','online':_0x150f3b(0x148),'daily':_0x150f3b(0x14c),'development':_0x150f3b(0x154)};return _0x15a610[_0x17ffb0];}export function getEffectiveApiDomain(){return getEnvApiBaseUrl()||getApiDomain();}export function getEffectiveRuntimeDomain(){return getEnvRuntimeBaseUrl()||getRuntimeDomain();}export function getEffectiveUserDomain(){return getEnvUserBaseUrl()||getUserDomain();}export function getEnvToolboxBaseUrl(){const _0x59f25e=a6_0x555bf6;return process['env'][_0x59f25e(0x15a)];}export function getEffectiveToolboxDomain(){return getEnvToolboxBaseUrl()||getEffectiveApiDomain();}
1
+ const a6_0x2c0c70=a6_0x1c4d;(function(_0x7809e3,_0x4e9a09){const _0x44079e=a6_0x1c4d,_0x18b1db=_0x7809e3();while(!![]){try{const _0x4d7dc6=-parseInt(_0x44079e(0x10a))/0x1+-parseInt(_0x44079e(0x107))/0x2+parseInt(_0x44079e(0x120))/0x3+parseInt(_0x44079e(0x104))/0x4+parseInt(_0x44079e(0x110))/0x5*(parseInt(_0x44079e(0x10b))/0x6)+-parseInt(_0x44079e(0x102))/0x7+-parseInt(_0x44079e(0x11e))/0x8*(-parseInt(_0x44079e(0x113))/0x9);if(_0x4d7dc6===_0x4e9a09)break;else _0x18b1db['push'](_0x18b1db['shift']());}catch(_0x506404){_0x18b1db['push'](_0x18b1db['shift']());}}}(a6_0x165f,0x7eb49));import{mkdirSync}from'node:fs';function a6_0x1c4d(_0x5ad200,_0x198b34){_0x5ad200=_0x5ad200-0x101;const _0x165fc2=a6_0x165f();let _0x1c4d4a=_0x165fc2[_0x5ad200];return _0x1c4d4a;}import{homedir}from'node:os';const ENVIRONMENT_MAPPING={'online':'production','production':a6_0x2c0c70(0x11c),'daily':a6_0x2c0c70(0x11a),'dev':'development','development':a6_0x2c0c70(0x121)};function normalizeEnvironment(_0x50c913){const _0x83d8df=a6_0x2c0c70;if(!_0x50c913)return _0x83d8df(0x11c);const _0x47ece3=_0x50c913[_0x83d8df(0x114)](),_0x23e8cf=ENVIRONMENT_MAPPING[_0x47ece3];if(!_0x23e8cf)return console[_0x83d8df(0x10d)](_0x83d8df(0x115)+_0x50c913+_0x83d8df(0x109)),_0x83d8df(0x11c);return _0x23e8cf!==_0x47ece3&&_0x23e8cf!==_0x50c913&&console['log'](_0x83d8df(0x11f)+_0x50c913+'\x20→\x20'+_0x23e8cf),_0x23e8cf;}export function getEnvAppCode(){const _0x2dad4d=a6_0x2c0c70;return process[_0x2dad4d(0x10f)][_0x2dad4d(0x101)];}export function getEnvironment(){const _0x5c7dd7=a6_0x2c0c70,_0x161926=process[_0x5c7dd7(0x10f)][_0x5c7dd7(0x112)];return normalizeEnvironment(_0x161926);}export function getEnvApiBaseUrl(){const _0x14ed4e=a6_0x2c0c70;return process[_0x14ed4e(0x10f)][_0x14ed4e(0x105)];}export function getEnvRuntimeBaseUrl(){const _0x3401ef=a6_0x2c0c70;return process[_0x3401ef(0x10f)][_0x3401ef(0x11d)];}export function getEnvUserBaseUrl(){const _0x27057c=a6_0x2c0c70;return process[_0x27057c(0x10f)][_0x27057c(0x111)];}export function getEnvAuthCookie(){const _0x3067d6=a6_0x2c0c70;return process['env']['LOVRABET_AUTH_COOKIE']?.[_0x3067d6(0x119)]();}export function isTestEnv(){const _0x17d918=a6_0x2c0c70;return process['env'][_0x17d918(0x116)]==='test';}export function isProductionEnv(){const _0x27d120=a6_0x2c0c70;return process[_0x27d120(0x10f)]['NODE_ENV']===_0x27d120(0x11c);}export function isDevelopmentEnv(){const _0x505433=a6_0x2c0c70;return process[_0x505433(0x10f)][_0x505433(0x116)]===_0x505433(0x121);}export function shouldLog(){const _0x2cd5e8=a6_0x2c0c70,_0x298d0e=process[_0x2cd5e8(0x10f)]['NODE_ENV'];return _0x298d0e==='development'||_0x298d0e===_0x2cd5e8(0x11a);}export const configDir=homedir()+a6_0x2c0c70(0x117);export const cookieFile=configDir+a6_0x2c0c70(0x103);mkdirSync(configDir,{'recursive':!![]});export const defaultConfig={'appCode':getEnvAppCode(),'env':getEnvironment()};export function getEnvAppCodeWithFallback(_0x4e598f){return getEnvAppCode()||_0x4e598f;}export function getApiDomain(){const _0x1c5998=a6_0x2c0c70,_0x3a0250=getEnvironment(),_0x22aca7={'production':'https://api.lovrabet.com','online':_0x1c5998(0x106),'daily':_0x1c5998(0x118),'development':_0x1c5998(0x10e)};return _0x22aca7[_0x3a0250];}export function getUserDomain(){const _0x4ffee3=a6_0x2c0c70,_0x92bfdf=getEnvironment(),_0x2600f6={'production':_0x4ffee3(0x108),'online':_0x4ffee3(0x108),'daily':_0x4ffee3(0x10c),'development':'https://dev.lovrabet.com'};return _0x2600f6[_0x92bfdf];}export function getRuntimeDomain(){const _0x3fc0bf=a6_0x2c0c70,_0x45aa89=getEnvironment(),_0x5c0a7f={'production':'https://runtime.lovrabet.com','online':_0x3fc0bf(0x11b),'daily':'https://daily-runtime.lovrabet.com','development':_0x3fc0bf(0x10e)};return _0x5c0a7f[_0x45aa89];}export function getEffectiveApiDomain(){return getEnvApiBaseUrl()||getApiDomain();}export function getEffectiveRuntimeDomain(){return getEnvRuntimeBaseUrl()||getRuntimeDomain();}export function getEffectiveUserDomain(){return getEnvUserBaseUrl()||getUserDomain();}export function getEnvToolboxBaseUrl(){const _0xf8d477=a6_0x2c0c70;return process[_0xf8d477(0x10f)]['LOVRABET_TOOLBOX_BASEURL'];}export function getEffectiveToolboxDomain(){return getEnvToolboxBaseUrl()||getEffectiveApiDomain();}function a6_0x165f(){const _0x206099=['warn','https://dev.lovrabet.com','env','9155sJSMqT','LOVRABET_USER_BASEURL','LOVRABET_ENV','553572PBvxbm','toLowerCase','[ENV]\x20Unknown\x20environment:\x20','NODE_ENV','/.lovrabet','https://daily-api.lovrabet.com','trim','daily','https://runtime.lovrabet.com','production','LOVRABET_RUNTIME_BASEURL','152jozfif','[ENV]\x20Environment\x20mapping:\x20','2709306EkWGjs','development','LOVRABET_APP_CODE','4617592vOFSja','/cookie','1136036HoRpoT','LOVRABET_API_BASEURL','https://api.lovrabet.com','886240Zpisjt','https://user.lovrabet.com',',\x20using\x20default\x20production','933581HVeaHH','654IPaZpY','https://user-daily.lovrabet.com'];a6_0x165f=function(){return _0x206099;};return a6_0x165f();}
@@ -1 +1 @@
1
- (function(_0x2f7f26,_0x4e6cec){const _0x2591e5=a7_0x4541,_0x35a396=_0x2f7f26();while(!![]){try{const _0x35601c=parseInt(_0x2591e5(0x1cd))/0x1*(-parseInt(_0x2591e5(0x1c7))/0x2)+parseInt(_0x2591e5(0x1d1))/0x3+parseInt(_0x2591e5(0x1ce))/0x4*(-parseInt(_0x2591e5(0x1ca))/0x5)+-parseInt(_0x2591e5(0x1cf))/0x6*(parseInt(_0x2591e5(0x1c3))/0x7)+parseInt(_0x2591e5(0x1cb))/0x8*(-parseInt(_0x2591e5(0x1d2))/0x9)+-parseInt(_0x2591e5(0x1d0))/0xa+parseInt(_0x2591e5(0x1c8))/0xb*(parseInt(_0x2591e5(0x1c9))/0xc);if(_0x35601c===_0x4e6cec)break;else _0x35a396['push'](_0x35a396['shift']());}catch(_0x1befc8){_0x35a396['push'](_0x35a396['shift']());}}}(a7_0x3f39,0x65627));import{existsSync,readFileSync}from'node:fs';import{configDir}from'./env.js';let _cache=null;function readConfigFile(){const _0x27ff53=a7_0x4541;if(_cache!==null)return _cache;const _0x3ce634=configDir+_0x27ff53(0x1d3);if(!existsSync(_0x3ce634))return _cache={},_cache;try{_cache=JSON['parse'](readFileSync(_0x3ce634,_0x27ff53(0x1cc)));}catch{process['env'][_0x27ff53(0x1c4)]&&console['warn'](_0x27ff53(0x1c6)+_0x3ce634+_0x27ff53(0x1d4)),_cache={};}return _cache;}function a7_0x3f39(){const _0x190a48=[',\x20using\x20empty\x20config','328510bHNtnZ','MCP_DEBUG','apiUrlOverrides','[MCP]\x20Failed\x20to\x20parse\x20','16DMTYve','33yEvsWr','8452956eoLusT','353135hknrxQ','5377648SouBwl','utf-8','94957GThalY','4vXRZdV','6IUHwlg','7947740EJpxfY','1938675CMXDMA','9yVtlSB','/config.json'];a7_0x3f39=function(){return _0x190a48;};return a7_0x3f39();}export function getConfigApiUrlOverrides(){const _0x1ae0c7=a7_0x4541;return readConfigFile()[_0x1ae0c7(0x1c5)]??{};}function a7_0x4541(_0x18db62,_0x1bb8f5){_0x18db62=_0x18db62-0x1c3;const _0x3f39ae=a7_0x3f39();let _0x4541e3=_0x3f39ae[_0x18db62];return _0x4541e3;}export function clearConfigCache(){_cache=null;}
1
+ (function(_0x4927f4,_0x2d13f9){const _0x147c20=a7_0x3818,_0x31bbd6=_0x4927f4();while(!![]){try{const _0x48f2c5=parseInt(_0x147c20(0x178))/0x1+-parseInt(_0x147c20(0x17d))/0x2+-parseInt(_0x147c20(0x186))/0x3+parseInt(_0x147c20(0x184))/0x4+-parseInt(_0x147c20(0x17e))/0x5*(parseInt(_0x147c20(0x179))/0x6)+parseInt(_0x147c20(0x17c))/0x7*(-parseInt(_0x147c20(0x180))/0x8)+parseInt(_0x147c20(0x183))/0x9;if(_0x48f2c5===_0x2d13f9)break;else _0x31bbd6['push'](_0x31bbd6['shift']());}catch(_0x2810ca){_0x31bbd6['push'](_0x31bbd6['shift']());}}}(a7_0x5113,0x95f31));import{existsSync,readFileSync}from'node:fs';import{configDir}from'./env.js';let _cache=null;function readConfigFile(){const _0x56356c=a7_0x3818;if(_cache!==null)return _cache;const _0x537ad4=configDir+_0x56356c(0x181);if(!existsSync(_0x537ad4))return _cache={},_cache;try{_cache=JSON[_0x56356c(0x182)](readFileSync(_0x537ad4,_0x56356c(0x185)));}catch{process[_0x56356c(0x187)][_0x56356c(0x17a)]&&console[_0x56356c(0x17b)]('[MCP]\x20Failed\x20to\x20parse\x20'+_0x537ad4+',\x20using\x20empty\x20config'),_cache={};}return _cache;}export function getConfigApiUrlOverrides(){const _0x2a9aa5=a7_0x3818;return readConfigFile()[_0x2a9aa5(0x17f)]??{};}function a7_0x3818(_0x40cdfd,_0x13d88b){_0x40cdfd=_0x40cdfd-0x178;const _0x51131f=a7_0x5113();let _0x3818e7=_0x51131f[_0x40cdfd];return _0x3818e7;}export function clearConfigCache(){_cache=null;}function a7_0x5113(){const _0x71b25=['4504896TpVPjb','utf-8','582411luBFdK','env','884633bwhKRC','6jbXhxB','MCP_DEBUG','warn','82677MCaPSr','1049156BOpxHY','1435345MWkAAq','apiUrlOverrides','672vbQEkO','/config.json','parse','5411196JYCgQy'];a7_0x5113=function(){return _0x71b25;};return a7_0x5113();}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- (function(_0xb7e5ea,_0x46d52e){const _0x311073=a8_0x3b9d,_0x26d4a8=_0xb7e5ea();while(!![]){try{const _0x272c4d=parseInt(_0x311073(0xc4))/0x1+parseInt(_0x311073(0xbe))/0x2*(-parseInt(_0x311073(0xcc))/0x3)+parseInt(_0x311073(0xd6))/0x4+parseInt(_0x311073(0xce))/0x5*(-parseInt(_0x311073(0xbc))/0x6)+parseInt(_0x311073(0xc1))/0x7+-parseInt(_0x311073(0xc9))/0x8+-parseInt(_0x311073(0xd3))/0x9*(-parseInt(_0x311073(0xcb))/0xa);if(_0x272c4d===_0x46d52e)break;else _0x26d4a8['push'](_0x26d4a8['shift']());}catch(_0x289e56){_0x26d4a8['push'](_0x26d4a8['shift']());}}}(a8_0x31c9,0x9eb31));function a8_0x3b9d(_0x576199,_0x16d230){_0x576199=_0x576199-0xbc;const _0x31c90f=a8_0x31c9();let _0x3b9d3a=_0x31c90f[_0x576199];return _0x3b9d3a;}import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{createServer}from'./server.js';function parseArgs(){const _0x3387f6=a8_0x3b9d,_0x3a239f=process[_0x3387f6(0xc8)][_0x3387f6(0xbd)](0x2),_0x3301c9=_0x3a239f[_0x3387f6(0xc7)](_0x3387f6(0xd5))||_0x3a239f[_0x3387f6(0xc7)]('--dangerously-bff-save');return process[_0x3387f6(0xd1)][_0x3387f6(0xcd)]&&_0x3a239f[_0x3387f6(0xc7)](_0x3387f6(0xc5))&&!_0x3a239f[_0x3387f6(0xc7)]('--enable-bff-save')&&console[_0x3387f6(0xc6)](_0x3387f6(0xc0)),{'bffSaveEnabled':_0x3301c9};}async function main(){const _0x144c99=a8_0x3b9d;try{const {bffSaveEnabled:_0x37ec7c}=parseArgs(),_0x19eada=createServer({'bffSaveEnabled':_0x37ec7c}),_0x2abdd0=new StdioServerTransport();_0x19eada[_0x144c99(0xd0)](),await _0x19eada[_0x144c99(0xd7)](_0x2abdd0),process['on'](_0x144c99(0xc3),async()=>{const _0x348332=_0x144c99;process[_0x348332(0xd1)][_0x348332(0xcd)]&&console[_0x348332(0xd2)]('Shutting\x20down\x20Lovrabet\x20Dataset\x20MCP\x20Server...'),process[_0x348332(0xcf)](0x0);}),process['on'](_0x144c99(0xca),async()=>{const _0x1b071c=_0x144c99;process[_0x1b071c(0xd1)]['MCP_DEBUG']&&console[_0x1b071c(0xd2)]('Shutting\x20down\x20Lovrabet\x20Dataset\x20MCP\x20Server...'),process[_0x1b071c(0xcf)](0x0);});}catch(_0x5d19bc){console[_0x144c99(0xd4)](_0x144c99(0xc2),_0x5d19bc),process[_0x144c99(0xcf)](0x1);}}function a8_0x31c9(){const _0x27795c=['--enable-bff-save','1289228JOeYNp','connect','915738gfWvWJ','slice','8462sogoyK','Unhandled\x20error:','[MCP]\x20--dangerously-bff-save\x20is\x20deprecated;\x20use\x20--enable-bff-save\x20(same\x20behavior)','6932842NMZwqR','Failed\x20to\x20start\x20Lovrabet\x20Dataset\x20MCP\x20Server:','SIGINT','1155256RSfCMe','--dangerously-bff-save','warn','includes','argv','8413440PNYLjS','SIGTERM','39470mlnKjO','33gzxrTT','MCP_DEBUG','40csfwFS','exit','logInfo','env','log','1143DsZIFw','error'];a8_0x31c9=function(){return _0x27795c;};return a8_0x31c9();}main()['catch'](_0x203a38=>{const _0x3bd2b5=a8_0x3b9d;console[_0x3bd2b5(0xd4)](_0x3bd2b5(0xbf),_0x203a38),process['exit'](0x1);});
2
+ const a8_0x20e815=a8_0x4dc5;(function(_0x56dccc,_0x343723){const _0x418727=a8_0x4dc5,_0x25b02a=_0x56dccc();while(!![]){try{const _0xfb03fa=-parseInt(_0x418727(0xfd))/0x1*(-parseInt(_0x418727(0xfa))/0x2)+parseInt(_0x418727(0xe5))/0x3*(parseInt(_0x418727(0xf8))/0x4)+parseInt(_0x418727(0xed))/0x5*(-parseInt(_0x418727(0xee))/0x6)+-parseInt(_0x418727(0xea))/0x7+parseInt(_0x418727(0xe2))/0x8*(-parseInt(_0x418727(0xf7))/0x9)+parseInt(_0x418727(0xeb))/0xa*(parseInt(_0x418727(0xf3))/0xb)+-parseInt(_0x418727(0xe1))/0xc*(-parseInt(_0x418727(0xf6))/0xd);if(_0xfb03fa===_0x343723)break;else _0x25b02a['push'](_0x25b02a['shift']());}catch(_0x134f30){_0x25b02a['push'](_0x25b02a['shift']());}}}(a8_0x39a5,0x7c8c5));function a8_0x4dc5(_0xaf5fa9,_0x526dc9){_0xaf5fa9=_0xaf5fa9-0xe1;const _0x39a5ed=a8_0x39a5();let _0x4dc58e=_0x39a5ed[_0xaf5fa9];return _0x4dc58e;}import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{createServer}from'./server.js';function parseArgs(){const _0x30aaa4=a8_0x4dc5,_0x546961=process[_0x30aaa4(0xe3)][_0x30aaa4(0xe8)](0x2),_0x120686=_0x546961['includes']('--enable-bff-save')||_0x546961[_0x30aaa4(0xe6)]('--dangerously-bff-save');return process[_0x30aaa4(0xf4)][_0x30aaa4(0xf1)]&&_0x546961[_0x30aaa4(0xe6)]('--dangerously-bff-save')&&!_0x546961[_0x30aaa4(0xe6)](_0x30aaa4(0xfe))&&console[_0x30aaa4(0xf9)](_0x30aaa4(0xe7)),{'bffSaveEnabled':_0x120686};}function a8_0x39a5(){const _0x2cc8bd=['SIGINT','40TDZyDI','622914GwRgXS','error','Failed\x20to\x20start\x20Lovrabet\x20Dataset\x20MCP\x20Server:','MCP_DEBUG','catch','9163bRbfkH','env','exit','91afdbSa','22365elZRFd','457076UGcgBM','warn','206azEjTi','logInfo','Shutting\x20down\x20Lovrabet\x20Dataset\x20MCP\x20Server...','5779sAyacb','--enable-bff-save','log','707364nRZMBx','1144yxGMEC','argv','connect','15kFQUPt','includes','[MCP]\x20--dangerously-bff-save\x20is\x20deprecated;\x20use\x20--enable-bff-save\x20(same\x20behavior)','slice','SIGTERM','1841021DWrxEO','4560TMakcJ'];a8_0x39a5=function(){return _0x2cc8bd;};return a8_0x39a5();}async function main(){const _0x3f1a3b=a8_0x4dc5;try{const {bffSaveEnabled:_0x2cfebb}=parseArgs(),_0x332d0=createServer({'bffSaveEnabled':_0x2cfebb}),_0x36834d=new StdioServerTransport();_0x332d0[_0x3f1a3b(0xfb)](),await _0x332d0[_0x3f1a3b(0xe4)](_0x36834d),process['on'](_0x3f1a3b(0xec),async()=>{const _0x18a1d2=_0x3f1a3b;process[_0x18a1d2(0xf4)][_0x18a1d2(0xf1)]&&console[_0x18a1d2(0xff)]('Shutting\x20down\x20Lovrabet\x20Dataset\x20MCP\x20Server...'),process['exit'](0x0);}),process['on'](_0x3f1a3b(0xe9),async()=>{const _0x5a7d7c=_0x3f1a3b;process[_0x5a7d7c(0xf4)]['MCP_DEBUG']&&console[_0x5a7d7c(0xff)](_0x5a7d7c(0xfc)),process[_0x5a7d7c(0xf5)](0x0);});}catch(_0x3ee34f){console[_0x3f1a3b(0xef)](_0x3f1a3b(0xf0),_0x3ee34f),process[_0x3f1a3b(0xf5)](0x1);}}main()[a8_0x20e815(0xf2)](_0x1222f2=>{const _0x13af92=a8_0x20e815;console[_0x13af92(0xef)]('Unhandled\x20error:',_0x1222f2),process['exit'](0x1);});
package/dist/server.js CHANGED
@@ -1 +1 @@
1
- function a9_0x5074(){const _0x36546b=['../package.json','Search\x20keyword','Environment\x20(optional,\x20uses\x20LOVRABET_ENV\x20or\x20defaults\x20to\x20online)','List\x20SQL\x20Queries','Server-side\x20fuzzy\x20match\x20by\x20sqlCode','union','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode.\x20Get\x20sqlCode\x20from\x20list_sql_queries\x20first.','24755bUlvmE','List\x20all\x20Backend\x20Function\x20(ENDPOINT\x20type)\x20scripts.','Generate\x20TypeScript\x20SDK\x20code\x20for\x20a\x20dataset\x20operation,\x20including\x20field\x20metadata.\x20Check\x20user\x27s\x20@lovrabet/sdk\x20version\x20in\x20package.json\x20first.','close','Authentication\x20cookie\x20(optional,\x20uses\x20stored\x20cookie\x20from\x20login\x20if\x20not\x20provided)','Include\x20table\x20relations\x20(default:\x20true)','get_bff_script_info','bffSaveEnabled','Known\x20sqlCode\x20—\x20use\x20to\x20directly\x20target\x20the\x20record\x20for\x20update,\x20skipping\x20name\x20lookup','save_or_update_bff_script','Version:\x20','save_or_update_custom_sql','sdk','Generate\x20SQL\x20Code','Unknown\x20error\x20occurred','10kTCvHG','daily','Generate\x20code\x20for\x20a\x20custom\x20SQL\x20query.\x20Validates\x20sqlCode\x20exists\x20first.\x20Use\x20target\x20to\x20switch\x20between\x20Frontend\x20SDK\x20and\x20Backend\x20Function\x20code\x20patterns.','Conflict\x20detection\x20is\x20handled\x20server-side\x20by\x20toolbox','version','enum','48576693UsDRAj','Server-side\x20fuzzy\x20match\x20by\x20sqlName','Login','message','Full\x20JavaScript/TypeScript\x20source\x20code.\x20Pass\x20the\x20complete\x20file\x20content\x20directly\x20as\x20a\x20string\x20—\x20any\x20length\x20is\x20supported.','Get\x20list\x20of\x20all\x20API\x20operations\x20for\x20a\x20dataset.\x20Prefer\x20\x22filter\x22\x20for\x20queries,\x20\x22getOne\x22\x20for\x20single\x20record\x20by\x20ID.','connect','Dataset\x20code/ID','get_operation_detail','Database\x20ID\x20(optional)','list_bff_scripts','lovrabet-dataset-mcp','\x0a-\x20Use\x20list_bff_scripts\x20/\x20get_bff_script_info\x20to\x20browse\x20and\x20read\x20Backend\x20Function\x20scripts\x0a-\x20save_or_update_bff_script\x20saves\x20script\x20via\x20toolbox\x20(server-side\x20submitter\x20check\x20+\x20automatic\x20cache\x20clearing)\x0a-\x20If\x20save\x20returns\x20blocked:\x20true,\x20tell\x20the\x20user\x20to\x20operate\x20manually\x20on\x20the\x20platform,\x20do\x20NOT\x20retry','record','Search\x20datasets\x20by\x20keyword\x20(searches\x20in\x20name,\x20table\x20name,\x20code,\x20and\x20description).','SQL\x20content\x20to\x20validate','Save\x20or\x20update\x20a\x20Backend\x20Function\x20script\x20via\x20toolbox\x20(server-side\x20submitter\x20check\x20+\x20automatic\x20cache\x20clearing).\x20If\x20blocked=true\x20is\x20returned,\x20the\x20last\x20submitter\x20was\x20someone\x20else\x20—\x20tell\x20the\x20user\x20to\x20operate\x20manually,\x20do\x20NOT\x20retry.\x20IMPORTANT:\x20Pass\x20scriptContent\x20as\x20a\x20plain\x20string\x20parameter\x20with\x20the\x20full\x20file\x20content.\x20Do\x20NOT\x20write\x20temp\x20files,\x20do\x20NOT\x20JSON-escape\x20manually,\x20do\x20NOT\x20use\x20shell\x20commands\x20to\x20invoke\x20this\x20tool.','SQL\x20code\x20from\x20list_sql_queries\x20(must\x20exist)','Lovrabet\x20Dataset\x20MCP\x20Server','server','List\x20Datasets','min','registerTool','List\x20all\x20available\x20custom\x20SQL\x20queries\x20with\x20metadata\x20and\x20parameters.','text','Server\x20started\x20successfully','Function\x20description','Get\x20detailed\x20Backend\x20Function\x20script\x20including\x20full\x20source\x20code.','Save\x20or\x20Update\x20Backend\x20Function','log','Backend\x20Function\x20ID\x20(for\x20updating)','Get\x20Operations','string','You\x20are\x20an\x20AI\x20assistant\x20helping\x20developers\x20work\x20with\x20the\x20Lovrabet\x20data\x20platform.\x0a\x0a##\x20Two\x20Runtime\x20Contexts:\x20Frontend\x20SDK\x20vs\x20Backend\x20Function\x20(BFF)\x0a\x0aLovrabet\x20has\x20two\x20code\x20execution\x20contexts\x20with\x20**identical\x20calling\x20methods\x20but\x20different\x20return\x20structures**:\x0a\x0a###\x20Frontend\x20TypeScript\x20SDK\x20(`@lovrabet/sdk`)\x0a-\x20Runs\x20in\x20browser/Node.js,\x20imported\x20via\x20`import\x20{\x20LovrabetClient\x20}\x20from\x20\x27@lovrabet/sdk\x27`\x0a-\x20Model\x20operations\x20return\x20unwrapped\x20data\x20on\x20success,\x20throw\x20LovrabetError\x20on\x20error\x0a-\x20SQL\x20execution\x20returns\x20wrapper:\x20`{\x20execSuccess,\x20execResult\x20}`\x0a\x0a###\x20Backend\x20Function\x20(BFF)\x0a-\x20Runs\x20on\x20Lovrabet\x20server,\x20function\x20signature:\x20`export\x20default\x20async\x20function(params,\x20context)\x20{\x20...\x20}`\x0a-\x20Use\x20`context.client`\x20to\x20access\x20the\x20same\x20SDK\x20methods\x0a-\x20Model\x20operations\x20behave\x20the\x20same\x20as\x20SDK\x0a-\x20**SQL\x20execution\x20returns\x20direct\x20array**\x20`T[]`,\x20errors\x20throw\x20exceptions\x20(no\x20wrapper)\x0a\x0a>\x20**CRITICAL**:\x20Always\x20ask\x20or\x20determine\x20which\x20context\x20the\x20user\x20is\x20working\x20in\x20before\x20generating\x20code.\x0a\x0a##\x20SDK\x20Usage\x20Patterns\x0a\x0a###\x20Model\x20Access\x20(SDK\x20>=\x201.2.0)\x0a-\x20Default:\x20`client.models.dataset_[code].filter()`\x0a-\x20Alias:\x20`client.models.[alias].filter()`\x20(check\x20user\x27s\x20createClient/registerModels\x20config\x20for\x20actual\x20alias)\x0a-\x20For\x20SDK\x20<\x201.2.0:\x20only\x20`client.models.[key]`\x20where\x20key\x20is\x20defined\x20in\x20createClient/registerModels\x0a\x0a###\x20SDK\x20Return\x20Value\x20Behavior\x0a-\x20**On\x20Success**:\x20Returns\x20ONLY\x20the\x20\x27data\x27\x20field\x20content\x20(e.g.,\x20`{\x20id:\x20123,\x20name:\x20\x22...\x22\x20}`)\x0a-\x20**On\x20Error**:\x20Throws\x20LovrabetError\x20with\x20`{\x20message,\x20status,\x20code,\x20data\x20}`\x0a-\x20**Always\x20use\x20try-catch**\x20when\x20calling\x20SDK\x20methods\x0a\x0a###\x20Data\x20Query\x20Best\x20Practices\x0a-\x20**filter**:\x20Most\x20flexible,\x20supports\x20complex\x20WHERE\x20conditions,\x20pagination,\x20sorting\x20—\x20use\x20this\x20for\x20queries\x0a-\x20**getOne**:\x20Single\x20record\x20by\x20primary\x20key\x20ID\x20only\x0a-\x20**getList**:\x20Simple\x20unfiltered\x20listing\x20(rarely\x20needed)\x0a\x0a##\x20Custom\x20SQL\x20Execution\x0a\x0a###\x20Frontend\x20SDK\x0a```typescript\x0aconst\x20data\x20=\x20await\x20client.sql.execute({\x20sqlCode:\x20\x27xxx\x27,\x20params:\x20{\x20key:\x20\x27value\x27\x20}\x20});\x0aif\x20(!data.execSuccess)\x20throw\x20new\x20Error(\x27SQL\x20execution\x20failed\x27);\x0aconst\x20results\x20=\x20data.execResult\x20||\x20[];\x0a```\x0a\x0a###\x20Backend\x20Function\x20(BFF)\x0a```javascript\x0a//\x20context.client.sql.execute\x20returns\x20rows\x20directly\x20—\x20NO\x20wrapper\x20object\x0aconst\x20rows\x20=\x20await\x20context.client.sql.execute({\x20sqlCode:\x20\x27xxx\x27,\x20params:\x20{\x20key:\x20\x27value\x27\x20}\x20});\x0a//\x20rows\x20is\x20T[]\x20directly,\x20errors\x20throw\x20exceptions\x0a```\x0a\x0a>\x20Note:\x20`client.api.executeSql()`\x20is\x20deprecated.\x20Use\x20`client.sql.execute()`.\x0a\x0a##\x20MyBatis\x20Dynamic\x20SQL\x0aSQL\x20content\x20supports\x20MyBatis\x20syntax:\x20`#{param}`,\x20`<if\x20test=\x22\x22>`,\x20`<where>`,\x20`<foreach>`.\x0aUse\x20`&lt;\x20&gt;\x20&amp;`\x20for\x20<\x20>\x20&\x20in\x20SQL\x20content\x20(not\x20in\x20`<if\x20test=\x22\x22>`\x20attributes).\x0a\x0a##\x20Workflow\x20Tips\x0a-\x20Use\x20list_datasets\x20to\x20discover\x20available\x20datasets\x0a-\x20Use\x20get_dataset_detail\x20to\x20see\x20fields,\x20operations,\x20and\x20database\x20info\x20(dbId)\x0a-\x20Use\x20generate_sdk_code\x20to\x20get\x20ready-to-use\x20TypeScript\x20code\x0a-\x20Use\x20list_sql_queries\x20to\x20find\x20existing\x20custom\x20SQLs\x20before\x20creating\x20new\x20ones\x0a-\x20validate_sql_content\x20before\x20save_or_update_custom_sql\x0a-\x20save_or_update_custom_sql\x20routes\x20through\x20toolbox;\x20DELETE/DDL\x20are\x20blocked;\x20if\x20blocked=true\x20(last\x20submitter\x20conflict)\x20tell\x20the\x20user\x20to\x20operate\x20manually\x20—\x20do\x20NOT\x20retry\x0a-\x20generate_sql_code\x20supports\x20target=\x27sdk\x27\x20(default)\x20or\x20target=\x27bff\x27\x20for\x20context-appropriate\x20code','Get\x20Dataset\x20Detail','options','9229656PCMpXi','get_dataset_operations','Client-side\x20filter\x20by\x20name/description/content','boolean','SQL\x20code\x20from\x20list_sql_queries\x20->\x20sqlCode','online','1128uiEvtN','Include\x20import\x20statements\x20(default:\x20true)','Get\x20Backend\x20Function\x20Info','optional','describe','SQL\x20content\x20(SELECT/INSERT/UPDATE/WITH\x20auto-saved;\x20DELETE/DDL\x20blocked).\x20Supports\x20MyBatis\x20syntax.','Validate\x20SQL\x20content\x20without\x20saving.\x20Detects\x20SQL\x20type\x20(SELECT/INSERT/UPDATE/DELETE/DDL)\x20and\x20validates\x20table/column\x20existence.\x20Supports\x20MyBatis\x20syntax.','validate_sql_content','list_datasets','MCP_DEBUG','array','617mUMZcJ','stringify','bff','execute_custom_sql','1402sDoRZq','Get\x20list\x20of\x20all\x20datasets\x20with\x20metadata\x20and\x20table\x20relations\x20(ER\x20Config).\x20Use\x20includeRelations:\x20false\x20for\x20faster\x20response.','mcpServer','Login\x20to\x20Lovrabet\x20to\x20authenticate\x20for\x20dataset\x20queries.','1678596xvuCNQ','generate_sql_code','registerAllTools','search_datasets','4349241HaIdiW','Get\x20detailed\x20dataset\x20information\x20including\x20fields,\x20operations,\x20and\x20bidirectional\x20relations\x20(outgoing\x20+\x20incoming).\x20Returns\x20_relations\x20(structured\x20graph\x20edges),\x20_relationsSummary\x20(natural\x20language\x20overview),\x20and\x20_usageHints\x20(actionable\x20advice\x20based\x20on\x20the\x20dataset\x27s\x20position\x20in\x20the\x20relation\x20graph).','generate_sdk_code','Database\x20ID\x20from\x20get_dataset_detail\x20—\x20required\x20when\x20creating\x20new\x20SQL,\x20optional\x20when\x20updating','Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)','Execute\x20Custom\x20SQL','98770hWOGGX','186aZensD','number','Get\x20detailed\x20operation\x20information\x20including\x20request/response\x20examples.','Bypass\x20cache\x20(default:\x20false)','Target\x20context:\x20\x22sdk\x22\x20(Frontend\x20SDK,\x20default)\x20or\x20\x22bff\x22\x20(Backend\x20Function).\x20SDK\x20returns\x20{execSuccess,\x20execResult}\x20wrapper;\x20BFF\x20returns\x20rows\x20directly.','Example\x20parameter\x20values','login'];a9_0x5074=function(){return _0x36546b;};return a9_0x5074();}const a9_0x5dcf25=a9_0x49ac;(function(_0x430421,_0x3b30d1){const _0x1919d9=a9_0x49ac,_0x23e977=_0x430421();while(!![]){try{const _0x223658=-parseInt(_0x1919d9(0xc8))/0x1*(-parseInt(_0x1919d9(0xcc))/0x2)+-parseInt(_0x1919d9(0xd0))/0x3+parseInt(_0x1919d9(0xbd))/0x4*(-parseInt(_0x1919d9(0x7e))/0x5)+parseInt(_0x1919d9(0xdb))/0x6*(-parseInt(_0x1919d9(0xda))/0x7)+-parseInt(_0x1919d9(0xb7))/0x8+-parseInt(_0x1919d9(0xd4))/0x9*(parseInt(_0x1919d9(0x8d))/0xa)+parseInt(_0x1919d9(0x93))/0xb;if(_0x223658===_0x3b30d1)break;else _0x23e977['push'](_0x23e977['shift']());}catch(_0x3d7c5a){_0x23e977['push'](_0x23e977['shift']());}}}(a9_0x5074,0xc7d44));import{McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import{z}from'zod';import{createRequire}from'module';function a9_0x49ac(_0xbeef55,_0x348e5d){_0xbeef55=_0xbeef55-0x7d;const _0x5074e8=a9_0x5074();let _0x49ac49=_0x5074e8[_0xbeef55];return _0x49ac49;}import{login,listDatasets,getDatasetDetail,getDatasetOperations,getOperationDetail,generateSDKCode,searchDatasets,listSqlQueries,saveOrUpdateCustomSql,executeCustomSql,generateSqlCode,validateSqlContent,listBffScripts,getBffScriptInfo,saveOrUpdateBffScript}from'./tools/index.js';const require=createRequire(import.meta.url),packageJson=require(a9_0x5dcf25(0xe2)),authSchema={'appCode':z[a9_0x5dcf25(0xb3)]()[a9_0x5dcf25(0xc0)]()[a9_0x5dcf25(0xc1)]('Application\x20code\x20(optional\x20if\x20LOVRABET_APP_CODE\x20env\x20var\x20is\x20set)'),'cookie':z[a9_0x5dcf25(0xb3)]()['optional']()[a9_0x5dcf25(0xc1)](a9_0x5dcf25(0x82))};function registerToolWithOptions(_0x1915e6,_0x273da0,_0x40b4a4,_0x3d1a8d){const _0x38eb95=a9_0x5dcf25;_0x1915e6[_0x38eb95(0xa9)](_0x273da0,_0x40b4a4,_0x3d1a8d);}function wrapHandler(_0x564661){return async _0x1d0781=>{const _0x1ac81b=a9_0x49ac;try{const _0x37a9bf=await _0x564661(_0x1d0781);return{'content':[{'type':_0x1ac81b(0xab),'text':JSON[_0x1ac81b(0xc9)](_0x37a9bf,null,0x2)}]};}catch(_0x4afe94){return{'content':[{'type':_0x1ac81b(0xab),'text':JSON[_0x1ac81b(0xc9)]({'error':!![],'message':_0x4afe94[_0x1ac81b(0x96)]||_0x1ac81b(0x8c)},null,0x2)}],'isError':!![]};}};}export class LovrabetDatasetMCPServer{['mcpServer'];[a9_0x5dcf25(0xb6)];constructor(_0xdbb69d={}){const _0x290662=a9_0x5dcf25;this[_0x290662(0xb6)]=_0xdbb69d,this[_0x290662(0xce)]=new McpServer({'name':_0x290662(0x9e),'version':packageJson[_0x290662(0x91)]},{'capabilities':{'tools':{}},'instructions':buildInstructions(_0xdbb69d)}),this[_0x290662(0xd2)]();}[a9_0x5dcf25(0xd2)](){const _0x3a4ba0=a9_0x5dcf25;registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xe1),{'title':_0x3a4ba0(0x95),'description':_0x3a4ba0(0xcf),'inputSchema':{'env':z[_0x3a4ba0(0x92)]([_0x3a4ba0(0xbc),_0x3a4ba0(0x8e)])['optional']()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xe4))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(login)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xc5),{'title':_0x3a4ba0(0xa7),'description':_0x3a4ba0(0xcd),'inputSchema':{...authSchema,'forceRefresh':z[_0x3a4ba0(0xba)]()['optional']()['describe'](_0x3a4ba0(0xde)),'includeRelations':z[_0x3a4ba0(0xba)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0x83))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listDatasets)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xd3),{'title':'Search\x20Datasets','description':_0x3a4ba0(0xa1),'inputSchema':{...authSchema,'keyword':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xe3))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(searchDatasets)),registerToolWithOptions(this[_0x3a4ba0(0xce)],'get_dataset_detail',{'title':_0x3a4ba0(0xb5),'description':_0x3a4ba0(0xd5),'inputSchema':{...authSchema,'datasetCode':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc1)]('Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)'),'forceRefresh':z['boolean']()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xde)),'includeRelations':z['boolean']()['optional']()[_0x3a4ba0(0xc1)]('Include\x20bidirectional\x20relations,\x20summary,\x20and\x20usage\x20hints\x20(default:\x20true)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetDetail)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xb8),{'title':_0x3a4ba0(0xb2),'description':_0x3a4ba0(0x98),'inputSchema':{...authSchema,'datasetCode':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc1)]('Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetOperations)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0x9b),{'title':'Get\x20Operation\x20Detail','description':_0x3a4ba0(0xdd),'inputSchema':{...authSchema,'datasetCode':z['string']()[_0x3a4ba0(0xc1)](_0x3a4ba0(0x9a)),'operationName':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xd8))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getOperationDetail)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xd6),{'title':'Generate\x20SDK\x20Code','description':_0x3a4ba0(0x80),'inputSchema':{...authSchema,'datasetCode':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0x9a)),'operationName':z['string']()[_0x3a4ba0(0xc1)]('Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)'),'includeImports':z[_0x3a4ba0(0xba)]()['optional']()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xbe)),'useAlias':z['boolean']()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)]('Use\x20camelCase\x20alias\x20instead\x20of\x20dataset_[code]\x20pattern\x20(default:\x20false)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSDKCode)),registerToolWithOptions(this['mcpServer'],'list_sql_queries',{'title':_0x3a4ba0(0xe5),'description':_0x3a4ba0(0xaa),'inputSchema':{...authSchema,'keyword':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xb9)),'category':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)]('Client-side\x20filter\x20by\x20category'),'sqlCode':z[_0x3a4ba0(0xb3)]()['optional']()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xe6)),'sqlName':z[_0x3a4ba0(0xb3)]()['optional']()['describe'](_0x3a4ba0(0x94)),'pageSize':z[_0x3a4ba0(0xdc)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)]('Items\x20per\x20page\x20(default:\x20999)'),'currentPage':z[_0x3a4ba0(0xdc)]()['optional']()['describe']('Page\x20number\x20(default:\x201)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listSqlQueries)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xcb),{'title':_0x3a4ba0(0xd9),'description':_0x3a4ba0(0x7d),'inputSchema':{...authSchema,'sqlCode':z['string']()[_0x3a4ba0(0xa8)](0x1)['describe'](_0x3a4ba0(0xbb)),'params':z[_0x3a4ba0(0xa0)](z['union']([z['string'](),z[_0x3a4ba0(0xdc)]()]))[_0x3a4ba0(0xc0)]()['describe']('SQL\x20parameters')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(executeCustomSql)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xd1),{'title':_0x3a4ba0(0x8b),'description':_0x3a4ba0(0x8f),'inputSchema':{...authSchema,'sqlCode':z[_0x3a4ba0(0xb3)]()['min'](0x1)[_0x3a4ba0(0xc1)](_0x3a4ba0(0xa4)),'params':z[_0x3a4ba0(0xa0)](z[_0x3a4ba0(0xe7)]([z['string'](),z[_0x3a4ba0(0xdc)]()]))[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xe0)),'includeImports':z['boolean']()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)]('Include\x20import\x20statements\x20(default:\x20true)'),'target':z[_0x3a4ba0(0x92)]([_0x3a4ba0(0x8a),_0x3a4ba0(0xca)])['optional']()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xdf))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSqlCode)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0xc4),{'title':'Validate\x20SQL\x20Content','description':_0x3a4ba0(0xc3),'inputSchema':{...authSchema,'sqlContent':z['string']()[_0x3a4ba0(0xa8)](0x1)[_0x3a4ba0(0xc1)](_0x3a4ba0(0xa2)),'dbId':z[_0x3a4ba0(0xdc)]()['optional']()[_0x3a4ba0(0xc1)](_0x3a4ba0(0x9c)),'validateSchemas':z[_0x3a4ba0(0xc7)](z[_0x3a4ba0(0xb3)]())[_0x3a4ba0(0xc0)]()['describe']('Dataset\x20codes\x20to\x20validate\x20against')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(validateSqlContent)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0x89),{'title':'Save\x20or\x20Update\x20Custom\x20SQL','description':'Save\x20or\x20update\x20a\x20custom\x20SQL\x20query\x20via\x20toolbox.\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20WITH\x20are\x20auto-saved;\x20DELETE\x20and\x20DDL\x20are\x20blocked\x20for\x20safety.\x20If\x20the\x20last\x20submitter\x20was\x20someone\x20else,\x20returns\x20blocked=true\x20—\x20tell\x20the\x20user\x20to\x20operate\x20manually,\x20do\x20NOT\x20retry.\x20Supports\x20MyBatis\x20syntax.\x20Get\x20dbId\x20from\x20get_dataset_detail.','inputSchema':{...authSchema,'sqlName':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)]('SQL\x20name/label\x20(optional;\x20MCP\x20auto-extracts\x20from\x20@lovrabet.sqlName\x20comment,\x20or\x20toolbox\x20generates\x20fallback)'),'sqlCode':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0x86)),'dbId':z[_0x3a4ba0(0xdc)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xd7)),'sqlContent':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xa8)](0x1)['describe'](_0x3a4ba0(0xc2)),'id':z[_0x3a4ba0(0xdc)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)]('SQL\x20ID\x20(kept\x20for\x20backward\x20compatibility,\x20not\x20used\x20by\x20toolbox)')},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':![]}},wrapHandler(saveOrUpdateCustomSql)),this[_0x3a4ba0(0xb6)]['bffSaveEnabled']&&(registerToolWithOptions(this['mcpServer'],_0x3a4ba0(0x9d),{'title':'List\x20Backend\x20Functions','description':_0x3a4ba0(0x7f),'inputSchema':{...authSchema},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listBffScripts)),registerToolWithOptions(this[_0x3a4ba0(0xce)],_0x3a4ba0(0x84),{'title':_0x3a4ba0(0xbf),'description':_0x3a4ba0(0xae),'inputSchema':{...authSchema,'id':z[_0x3a4ba0(0xdc)]()[_0x3a4ba0(0xc1)]('Backend\x20Function\x20ID\x20(from\x20list_bff_scripts)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getBffScriptInfo)),registerToolWithOptions(this['mcpServer'],_0x3a4ba0(0x87),{'title':_0x3a4ba0(0xaf),'description':_0x3a4ba0(0xa3),'inputSchema':{...authSchema,'id':z[_0x3a4ba0(0xdc)]()[_0x3a4ba0(0xc0)]()[_0x3a4ba0(0xc1)](_0x3a4ba0(0xb1)),'description':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xa8)](0x1)['describe'](_0x3a4ba0(0xad)),'scriptContent':z[_0x3a4ba0(0xb3)]()[_0x3a4ba0(0xa8)](0x1)['describe'](_0x3a4ba0(0x97))},'annotations':{'readOnlyHint':![],'destructiveHint':!![],'idempotentHint':![]}},wrapHandler(saveOrUpdateBffScript)));}get[a9_0x5dcf25(0xa6)](){const _0x5f2686=a9_0x5dcf25;return this[_0x5f2686(0xce)];}async[a9_0x5dcf25(0x99)](_0x1a2dd3){const _0x357fcb=a9_0x5dcf25;await this[_0x357fcb(0xce)][_0x357fcb(0x99)](_0x1a2dd3);}async['close'](){const _0x3438b4=a9_0x5dcf25;await this['mcpServer'][_0x3438b4(0x81)]();}['logInfo'](){const _0xb9a1cb=a9_0x5dcf25;if(!process['env'][_0xb9a1cb(0xc6)])return;console[_0xb9a1cb(0xb0)](_0xb9a1cb(0xa5)),console[_0xb9a1cb(0xb0)](_0xb9a1cb(0x88)+packageJson[_0xb9a1cb(0x91)]),console[_0xb9a1cb(0xb0)](_0xb9a1cb(0xac)),this[_0xb9a1cb(0xb6)][_0xb9a1cb(0x85)]&&(console[_0xb9a1cb(0xb0)]('Backend\x20Function\x20write\x20tools\x20enabled\x20(--enable-bff-save)'),console[_0xb9a1cb(0xb0)](_0xb9a1cb(0x90)));}}function buildInstructions(_0x1e16c6){const _0x1cee2f=a9_0x5dcf25,_0x503e8e=_0x1e16c6[_0x1cee2f(0x85)]===!![],_0xe42fce=_0x503e8e?_0x1cee2f(0x9f):'';return _0x1cee2f(0xb4)+_0xe42fce+'\x0a';}export function createServer(_0x3cbab6){return new LovrabetDatasetMCPServer(_0x3cbab6);}
1
+ const a9_0xcec854=a9_0x5e5f;(function(_0x288fcc,_0x3ee6b3){const _0x53cd9d=a9_0x5e5f,_0xd435ea=_0x288fcc();while(!![]){try{const _0x139b4c=-parseInt(_0x53cd9d(0xbd))/0x1+parseInt(_0x53cd9d(0xf1))/0x2*(parseInt(_0x53cd9d(0xf3))/0x3)+-parseInt(_0x53cd9d(0xf6))/0x4*(parseInt(_0x53cd9d(0xfe))/0x5)+-parseInt(_0x53cd9d(0x9f))/0x6+parseInt(_0x53cd9d(0xbf))/0x7+-parseInt(_0x53cd9d(0xea))/0x8+parseInt(_0x53cd9d(0x92))/0x9*(parseInt(_0x53cd9d(0xcd))/0xa);if(_0x139b4c===_0x3ee6b3)break;else _0xd435ea['push'](_0xd435ea['shift']());}catch(_0x4450a3){_0xd435ea['push'](_0xd435ea['shift']());}}}(a9_0x3878,0x7f3f6));import{McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import{z}from'zod';import{createRequire}from'module';import{login,listDatasets,getDatasetDetail,getDatasetOperations,getOperationDetail,generateSDKCode,searchDatasets,listSqlQueries,saveOrUpdateCustomSql,executeCustomSql,generateSqlCode,validateSqlContent,listBffScripts,getBffScriptInfo,saveOrUpdateBffScript}from'./tools/index.js';function a9_0x5e5f(_0x1fd335,_0x1e7542){_0x1fd335=_0x1fd335-0x8e;const _0x387806=a9_0x3878();let _0x5e5f3a=_0x387806[_0x1fd335];return _0x5e5f3a;}const require=createRequire(import.meta.url),packageJson=require(a9_0xcec854(0x96)),authSchema={'appCode':z['string']()['optional']()['describe'](a9_0xcec854(0xc6)),'cookie':z['string']()['optional']()['describe'](a9_0xcec854(0xc3))};function registerToolWithOptions(_0x2df1a4,_0x406dd0,_0x252a47,_0x26e7ea){const _0x153b3c=a9_0xcec854;_0x2df1a4[_0x153b3c(0xf8)](_0x406dd0,_0x252a47,_0x26e7ea);}function a9_0x3878(){const _0x37f65e=['text','Include\x20bidirectional\x20relations,\x20summary,\x20and\x20usage\x20hints\x20(default:\x20true)','ENDPOINT','Target\x20context:\x20\x22sdk\x22\x20(Frontend\x20SDK,\x20default)\x20or\x20\x22bff\x22\x20(Backend\x20Function).\x20SDK\x20returns\x20{execSuccess,\x20execResult}\x20wrapper;\x20BFF\x20returns\x20rows\x20directly.','close','list_sql_queries','generate_sdk_code','Execute\x20Custom\x20SQL','Server-side\x20fuzzy\x20match\x20by\x20sqlName','\x0a-\x20Use\x20list_bff_scripts\x20to\x20browse\x20scripts:\x20type=ENDPOINT\x20(default)\x20for\x20business\x20endpoints,\x20type=COMMON\x20for\x20shared\x20utility\x20functions\x0a-\x20Use\x20get_bff_script_info\x20to\x20read\x20full\x20source\x20code\x20of\x20a\x20specific\x20script\x0a-\x20save_or_update_bff_script\x20saves\x20script\x20via\x20toolbox\x20(server-side\x20submitter\x20check\x20+\x20automatic\x20cache\x20clearing)\x0a-\x20After\x20a\x20successful\x20save,\x20also\x20write\x20a\x20local\x20copy:\x20ENDPOINT\x20→\x20src/backend-function/endpoint/endpoint_<name>.js,\x20HOOK\x20→\x20src/backend-function/<tableName>/<tableName>_<hookName>.js\x0a-\x20If\x20save\x20returns\x20blocked:\x20true,\x20tell\x20the\x20user\x20to\x20operate\x20manually\x20on\x20the\x20platform,\x20do\x20NOT\x20retry','options','number','Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)','Backend\x20Function\x20write\x20tools\x20enabled\x20(--enable-bff-save)','SQL\x20parameters','env','Generate\x20SDK\x20Code','version','Database\x20ID\x20(optional)','Search\x20Datasets','message','7346608ydQZKi','record','SQL\x20code\x20from\x20list_sql_queries\x20->\x20sqlCode','logInfo','describe','execute_custom_sql','Include\x20table\x20relations\x20(default:\x20true)','22244mkzcGT','array','129EltVFW','login','Generate\x20SQL\x20Code','4RuMWXX','get_dataset_detail','registerTool','Page\x20number\x20(default:\x201)','Include\x20import\x20statements\x20(default:\x20true)','You\x20are\x20an\x20AI\x20assistant\x20helping\x20developers\x20work\x20with\x20the\x20Lovrabet\x20data\x20platform.\x0a\x0a##\x20Two\x20Runtime\x20Contexts:\x20Frontend\x20SDK\x20vs\x20Backend\x20Function\x20(BFF)\x0a\x0aLovrabet\x20has\x20two\x20code\x20execution\x20contexts\x20with\x20**identical\x20calling\x20methods\x20but\x20different\x20return\x20structures**:\x0a\x0a###\x20Frontend\x20TypeScript\x20SDK\x20(`@lovrabet/sdk`)\x0a-\x20Runs\x20in\x20browser/Node.js,\x20imported\x20via\x20`import\x20{\x20LovrabetClient\x20}\x20from\x20\x27@lovrabet/sdk\x27`\x0a-\x20Model\x20operations\x20return\x20unwrapped\x20data\x20on\x20success,\x20throw\x20LovrabetError\x20on\x20error\x0a-\x20SQL\x20execution\x20returns\x20wrapper:\x20`{\x20execSuccess,\x20execResult\x20}`\x0a\x0a###\x20Backend\x20Function\x20(BFF)\x0a-\x20Runs\x20on\x20Lovrabet\x20server,\x20function\x20signature:\x20`export\x20default\x20async\x20function(params,\x20context)\x20{\x20...\x20}`\x0a-\x20Use\x20`context.client`\x20to\x20access\x20the\x20same\x20SDK\x20methods\x0a-\x20Model\x20operations\x20behave\x20the\x20same\x20as\x20SDK\x0a-\x20**SQL\x20execution\x20returns\x20direct\x20array**\x20`T[]`,\x20errors\x20throw\x20exceptions\x20(no\x20wrapper)\x0a\x0a>\x20**CRITICAL**:\x20Always\x20ask\x20or\x20determine\x20which\x20context\x20the\x20user\x20is\x20working\x20in\x20before\x20generating\x20code.\x0a\x0a##\x20SDK\x20Usage\x20Patterns\x0a\x0a###\x20Model\x20Access\x20(SDK\x20>=\x201.2.0)\x0a-\x20Default:\x20`client.models.dataset_[code].filter()`\x0a-\x20Alias:\x20`client.models.[alias].filter()`\x20(check\x20user\x27s\x20createClient/registerModels\x20config\x20for\x20actual\x20alias)\x0a-\x20For\x20SDK\x20<\x201.2.0:\x20only\x20`client.models.[key]`\x20where\x20key\x20is\x20defined\x20in\x20createClient/registerModels\x0a\x0a###\x20SDK\x20Return\x20Value\x20Behavior\x0a-\x20**On\x20Success**:\x20Returns\x20ONLY\x20the\x20\x27data\x27\x20field\x20content\x20(e.g.,\x20`{\x20id:\x20123,\x20name:\x20\x22...\x22\x20}`)\x0a-\x20**On\x20Error**:\x20Throws\x20LovrabetError\x20with\x20`{\x20message,\x20status,\x20code,\x20data\x20}`\x0a-\x20**Always\x20use\x20try-catch**\x20when\x20calling\x20SDK\x20methods\x0a\x0a###\x20Data\x20Query\x20Best\x20Practices\x0a-\x20**filter**:\x20Most\x20flexible,\x20supports\x20complex\x20WHERE\x20conditions,\x20pagination,\x20sorting\x20—\x20use\x20this\x20for\x20queries\x0a-\x20**getOne**:\x20Single\x20record\x20by\x20primary\x20key\x20ID\x20only\x0a-\x20**getList**:\x20Simple\x20unfiltered\x20listing\x20(rarely\x20needed)\x0a\x0a##\x20Custom\x20SQL\x20Execution\x0a\x0a###\x20Frontend\x20SDK\x0a```typescript\x0aconst\x20data\x20=\x20await\x20client.sql.execute({\x20sqlCode:\x20\x27xxx\x27,\x20params:\x20{\x20key:\x20\x27value\x27\x20}\x20});\x0aif\x20(!data.execSuccess)\x20throw\x20new\x20Error(\x27SQL\x20execution\x20failed\x27);\x0aconst\x20results\x20=\x20data.execResult\x20||\x20[];\x0a```\x0a\x0a###\x20Backend\x20Function\x20(BFF)\x0a```javascript\x0a//\x20context.client.sql.execute\x20returns\x20rows\x20directly\x20—\x20NO\x20wrapper\x20object\x0aconst\x20rows\x20=\x20await\x20context.client.sql.execute({\x20sqlCode:\x20\x27xxx\x27,\x20params:\x20{\x20key:\x20\x27value\x27\x20}\x20});\x0a//\x20rows\x20is\x20T[]\x20directly,\x20errors\x20throw\x20exceptions\x0a```\x0a\x0a>\x20Note:\x20`client.api.executeSql()`\x20is\x20deprecated.\x20Use\x20`client.sql.execute()`.\x0a\x0a##\x20MyBatis\x20Dynamic\x20SQL\x0aSQL\x20content\x20supports\x20MyBatis\x20syntax:\x20`#{param}`,\x20`<if\x20test=\x22\x22>`,\x20`<where>`,\x20`<foreach>`.\x0aUse\x20`&lt;\x20&gt;\x20&amp;`\x20for\x20<\x20>\x20&\x20in\x20SQL\x20content\x20(not\x20in\x20`<if\x20test=\x22\x22>`\x20attributes).\x0a\x0a##\x20Workflow\x20Tips\x0a-\x20Use\x20list_datasets\x20to\x20discover\x20available\x20datasets\x0a-\x20Use\x20get_dataset_detail\x20to\x20see\x20fields,\x20operations,\x20and\x20database\x20info\x20(dbId)\x0a-\x20Use\x20generate_sdk_code\x20to\x20get\x20ready-to-use\x20TypeScript\x20code\x0a-\x20Use\x20list_sql_queries\x20to\x20find\x20existing\x20custom\x20SQLs\x20before\x20creating\x20new\x20ones\x0a-\x20validate_sql_content\x20before\x20save_or_update_custom_sql\x0a-\x20save_or_update_custom_sql\x20routes\x20through\x20toolbox;\x20DELETE/DDL\x20are\x20blocked;\x20if\x20blocked=true\x20(last\x20submitter\x20conflict)\x20tell\x20the\x20user\x20to\x20operate\x20manually,\x20do\x20NOT\x20retry;\x20after\x20a\x20successful\x20save\x20also\x20write\x20a\x20local\x20copy\x20to\x20src/custom_sql/<sqlName>.sql\x0a-\x20generate_sql_code\x20supports\x20target=\x27sdk\x27\x20(default)\x20or\x20target=\x27bff\x27\x20for\x20context-appropriate\x20code','validate_sql_content','Conflict\x20detection\x20is\x20handled\x20server-side\x20by\x20toolbox','3164220mSvfek','Server\x20started\x20successfully','mcpServer','List\x20Backend\x20Functions','boolean','9810261HfgzXC','Client-side\x20filter\x20by\x20name/description/content','List\x20Datasets','server','../package.json','Dataset\x20code/ID','List\x20all\x20available\x20custom\x20SQL\x20queries\x20with\x20metadata\x20and\x20parameters.','Lovrabet\x20Dataset\x20MCP\x20Server','sdk','SQL\x20ID\x20(kept\x20for\x20backward\x20compatibility,\x20not\x20used\x20by\x20toolbox)','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode.\x20Get\x20sqlCode\x20from\x20list_sql_queries\x20first.','Get\x20detailed\x20Backend\x20Function\x20script\x20including\x20full\x20source\x20code.','Known\x20sqlCode\x20—\x20use\x20to\x20directly\x20target\x20the\x20record\x20for\x20update,\x20skipping\x20name\x20lookup','638082YCxdOw','Get\x20list\x20of\x20all\x20API\x20operations\x20for\x20a\x20dataset.\x20Prefer\x20\x22filter\x22\x20for\x20queries,\x20\x22getOne\x22\x20for\x20single\x20record\x20by\x20ID.','Full\x20JavaScript/TypeScript\x20source\x20code.\x20Any\x20length\x20is\x20supported.','Unknown\x20error\x20occurred','optional','Login\x20to\x20Lovrabet\x20to\x20authenticate\x20for\x20dataset\x20queries.','lovrabet-dataset-mcp','Login','enum','generate_sql_code','SQL\x20code\x20from\x20list_sql_queries\x20(must\x20exist)','Validate\x20SQL\x20content\x20without\x20saving.\x20Detects\x20SQL\x20type\x20(SELECT/INSERT/UPDATE/DELETE/DDL)\x20and\x20validates\x20table/column\x20existence.\x20Supports\x20MyBatis\x20syntax.','registerAllTools','min','get_operation_detail','union','Example\x20parameter\x20values','Dataset\x20codes\x20to\x20validate\x20against','Get\x20Dataset\x20Detail','Get\x20Backend\x20Function\x20Info','log','Get\x20detailed\x20operation\x20information\x20including\x20request/response\x20examples.','Script\x20type:\x20ENDPOINT\x20(business\x20API\x20endpoints,\x20default)\x20or\x20COMMON\x20(shared\x20utility\x20functions)','List\x20Backend\x20Function\x20scripts.\x20Use\x20type=ENDPOINT\x20(default)\x20for\x20business\x20API\x20endpoints,\x20type=COMMON\x20for\x20shared/public\x20utility\x20functions\x20that\x20can\x20be\x20imported\x20by\x20other\x20scripts.','Get\x20detailed\x20dataset\x20information\x20including\x20fields,\x20operations,\x20and\x20bidirectional\x20relations\x20(outgoing\x20+\x20incoming).\x20Returns\x20_relations\x20(structured\x20graph\x20edges),\x20_relationsSummary\x20(natural\x20language\x20overview),\x20and\x20_usageHints\x20(actionable\x20advice\x20based\x20on\x20the\x20dataset\x27s\x20position\x20in\x20the\x20relation\x20graph).','Items\x20per\x20page\x20(default:\x20999)','list_datasets','Validate\x20SQL\x20Content','Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)','Save\x20or\x20Update\x20Custom\x20SQL','545510iCxgrI','Save\x20or\x20update\x20a\x20Backend\x20Function\x20script\x20via\x20toolbox\x20(server-side\x20submitter\x20check\x20+\x20automatic\x20cache\x20clearing).\x20On\x20success,\x20also\x20write\x20a\x20local\x20copy:\x20ENDPOINT\x20→\x20src/backend-function/endpoint/endpoint_<name>.js,\x20HOOK\x20→\x20src/backend-function/<tableName>/<tableName>_<hookName>.js,\x20COMMON\x20→\x20src/backend-function/common/common_<name>.js.\x20If\x20blocked=true\x20(last\x20submitter\x20conflict),\x20do\x20NOT\x20retry.\x20Pass\x20scriptContent\x20as\x20a\x20plain\x20string\x20with\x20the\x20complete\x20source\x20code\x20—\x20any\x20length\x20is\x20supported.\x20For\x20COMMON\x20scripts,\x20set\x20scriptType\x20to\x20\x22COMMON\x22.','461503blYiHI','get_bff_script_info','COMMON','Use\x20camelCase\x20alias\x20instead\x20of\x20dataset_[code]\x20pattern\x20(default:\x20false)','Authentication\x20cookie\x20(optional,\x20uses\x20stored\x20cookie\x20from\x20login\x20if\x20not\x20provided)','Search\x20keyword','stringify','Application\x20code\x20(optional\x20if\x20LOVRABET_APP_CODE\x20env\x20var\x20is\x20set)','Backend\x20Function\x20ID\x20(from\x20list_bff_scripts)','get_dataset_operations','search_datasets','Environment\x20(optional,\x20uses\x20LOVRABET_ENV\x20or\x20defaults\x20to\x20online)','string','bffSaveEnabled','20LoNNvF','Exported\x20default\x20function\x20name\x20(e.g.\x20\x22getCompanyList\x22).\x20Parse\x20from\x20scriptContent\x20by\x20matching\x20`export\x20default\x20[async]\x20function\x20<name>`.\x20Required\x20by\x20toolbox\x20—\x20if\x20omitted,\x20toolbox\x20will\x20reject\x20the\x20request.','Search\x20datasets\x20by\x20keyword\x20(searches\x20in\x20name,\x20table\x20name,\x20code,\x20and\x20description).','save_or_update_bff_script','connect','SQL\x20content\x20to\x20validate','bff','MCP_DEBUG'];a9_0x3878=function(){return _0x37f65e;};return a9_0x3878();}function wrapHandler(_0x177cbc){return async _0x5bb6a5=>{const _0x11c094=a9_0x5e5f;try{const _0x2d57b3=await _0x177cbc(_0x5bb6a5);return{'content':[{'type':_0x11c094(0xd5),'text':JSON[_0x11c094(0xc5)](_0x2d57b3,null,0x2)}]};}catch(_0x4bcd3d){return{'content':[{'type':'text','text':JSON['stringify']({'error':!![],'message':_0x4bcd3d[_0x11c094(0xe9)]||_0x11c094(0xa2)},null,0x2)}],'isError':!![]};}};}export class LovrabetDatasetMCPServer{['mcpServer'];['options'];constructor(_0x114e39={}){const _0x17939b=a9_0xcec854;this[_0x17939b(0xdf)]=_0x114e39,this['mcpServer']=new McpServer({'name':_0x17939b(0xa5),'version':packageJson[_0x17939b(0xe6)]},{'capabilities':{'tools':{}},'instructions':buildInstructions(_0x114e39)}),this[_0x17939b(0xab)]();}['registerAllTools'](){const _0x38da10=a9_0xcec854;registerToolWithOptions(this['mcpServer'],_0x38da10(0xf4),{'title':_0x38da10(0xa6),'description':_0x38da10(0xa4),'inputSchema':{'env':z['enum'](['online','daily'])['optional']()[_0x38da10(0xee)](_0x38da10(0xca))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(login)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xb9),{'title':_0x38da10(0x94),'description':'Get\x20list\x20of\x20all\x20datasets\x20with\x20metadata\x20and\x20table\x20relations\x20(ER\x20Config).\x20Use\x20includeRelations:\x20false\x20for\x20faster\x20response.','inputSchema':{...authSchema,'forceRefresh':z[_0x38da10(0x91)]()['optional']()[_0x38da10(0xee)]('Bypass\x20cache\x20(default:\x20false)'),'includeRelations':z[_0x38da10(0x91)]()['optional']()[_0x38da10(0xee)](_0x38da10(0xf0))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listDatasets)),registerToolWithOptions(this['mcpServer'],_0x38da10(0xc9),{'title':_0x38da10(0xe8),'description':_0x38da10(0xcf),'inputSchema':{...authSchema,'keyword':z[_0x38da10(0xcb)]()[_0x38da10(0xee)](_0x38da10(0xc4))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(searchDatasets)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xf7),{'title':_0x38da10(0xb1),'description':_0x38da10(0xb7),'inputSchema':{...authSchema,'datasetCode':z['string']()[_0x38da10(0xee)](_0x38da10(0xe1)),'forceRefresh':z[_0x38da10(0x91)]()['optional']()['describe']('Bypass\x20cache\x20(default:\x20false)'),'includeRelations':z['boolean']()[_0x38da10(0xa3)]()[_0x38da10(0xee)](_0x38da10(0xd6))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetDetail)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xc8),{'title':'Get\x20Operations','description':_0x38da10(0xa0),'inputSchema':{...authSchema,'datasetCode':z[_0x38da10(0xcb)]()[_0x38da10(0xee)](_0x38da10(0xe1))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetOperations)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xad),{'title':'Get\x20Operation\x20Detail','description':_0x38da10(0xb4),'inputSchema':{...authSchema,'datasetCode':z[_0x38da10(0xcb)]()[_0x38da10(0xee)](_0x38da10(0x97)),'operationName':z['string']()['describe']('Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getOperationDetail)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xdb),{'title':_0x38da10(0xe5),'description':'Generate\x20TypeScript\x20SDK\x20code\x20for\x20a\x20dataset\x20operation,\x20including\x20field\x20metadata.\x20Check\x20user\x27s\x20@lovrabet/sdk\x20version\x20in\x20package.json\x20first.','inputSchema':{...authSchema,'datasetCode':z[_0x38da10(0xcb)]()[_0x38da10(0xee)]('Dataset\x20code/ID'),'operationName':z[_0x38da10(0xcb)]()['describe'](_0x38da10(0xbb)),'includeImports':z['boolean']()[_0x38da10(0xa3)]()[_0x38da10(0xee)]('Include\x20import\x20statements\x20(default:\x20true)'),'useAlias':z[_0x38da10(0x91)]()[_0x38da10(0xa3)]()[_0x38da10(0xee)](_0x38da10(0xc2))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSDKCode)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xda),{'title':'List\x20SQL\x20Queries','description':_0x38da10(0x98),'inputSchema':{...authSchema,'keyword':z['string']()['optional']()[_0x38da10(0xee)](_0x38da10(0x93)),'category':z['string']()[_0x38da10(0xa3)]()[_0x38da10(0xee)]('Client-side\x20filter\x20by\x20category'),'sqlCode':z['string']()[_0x38da10(0xa3)]()[_0x38da10(0xee)]('Server-side\x20fuzzy\x20match\x20by\x20sqlCode'),'sqlName':z[_0x38da10(0xcb)]()['optional']()[_0x38da10(0xee)](_0x38da10(0xdd)),'pageSize':z[_0x38da10(0xe0)]()[_0x38da10(0xa3)]()['describe'](_0x38da10(0xb8)),'currentPage':z[_0x38da10(0xe0)]()['optional']()[_0x38da10(0xee)](_0x38da10(0xf9))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listSqlQueries)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xef),{'title':_0x38da10(0xdc),'description':_0x38da10(0x9c),'inputSchema':{...authSchema,'sqlCode':z['string']()['min'](0x1)[_0x38da10(0xee)](_0x38da10(0xec)),'params':z[_0x38da10(0xeb)](z[_0x38da10(0xae)]([z[_0x38da10(0xcb)](),z[_0x38da10(0xe0)]()]))[_0x38da10(0xa3)]()['describe'](_0x38da10(0xe3))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(executeCustomSql)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xa8),{'title':_0x38da10(0xf5),'description':'Generate\x20code\x20for\x20a\x20custom\x20SQL\x20query.\x20Validates\x20sqlCode\x20exists\x20first.\x20Use\x20target\x20to\x20switch\x20between\x20Frontend\x20SDK\x20and\x20Backend\x20Function\x20code\x20patterns.','inputSchema':{...authSchema,'sqlCode':z[_0x38da10(0xcb)]()[_0x38da10(0xac)](0x1)[_0x38da10(0xee)](_0x38da10(0xa9)),'params':z[_0x38da10(0xeb)](z[_0x38da10(0xae)]([z['string'](),z[_0x38da10(0xe0)]()]))[_0x38da10(0xa3)]()['describe'](_0x38da10(0xaf)),'includeImports':z[_0x38da10(0x91)]()[_0x38da10(0xa3)]()['describe'](_0x38da10(0xfa)),'target':z['enum']([_0x38da10(0x9a),_0x38da10(0xd3)])[_0x38da10(0xa3)]()['describe'](_0x38da10(0xd8))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSqlCode)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xfc),{'title':_0x38da10(0xba),'description':_0x38da10(0xaa),'inputSchema':{...authSchema,'sqlContent':z[_0x38da10(0xcb)]()[_0x38da10(0xac)](0x1)[_0x38da10(0xee)](_0x38da10(0xd2)),'dbId':z[_0x38da10(0xe0)]()[_0x38da10(0xa3)]()['describe'](_0x38da10(0xe7)),'validateSchemas':z[_0x38da10(0xf2)](z[_0x38da10(0xcb)]())[_0x38da10(0xa3)]()[_0x38da10(0xee)](_0x38da10(0xb0))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(validateSqlContent)),registerToolWithOptions(this[_0x38da10(0x8f)],'save_or_update_custom_sql',{'title':_0x38da10(0xbc),'description':'Save\x20or\x20update\x20a\x20custom\x20SQL\x20query\x20via\x20toolbox.\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20WITH\x20are\x20auto-saved;\x20DELETE\x20and\x20DDL\x20are\x20blocked\x20—\x20write\x20a\x20local\x20draft\x20file\x20and\x20tell\x20the\x20user\x20to\x20operate\x20manually.\x20If\x20blocked=true\x20(last\x20submitter\x20conflict),\x20do\x20NOT\x20retry.\x20On\x20success,\x20also\x20write\x20a\x20local\x20copy\x20to\x20src/custom_sql/<sqlName>.sql.\x20Supports\x20MyBatis\x20syntax.\x20Get\x20dbId\x20from\x20get_dataset_detail.','inputSchema':{...authSchema,'sqlName':z[_0x38da10(0xcb)]()[_0x38da10(0xa3)]()['describe']('SQL\x20name/label\x20(optional;\x20MCP\x20auto-extracts\x20from\x20@lovrabet.sqlName\x20comment,\x20or\x20toolbox\x20generates\x20fallback)'),'sqlCode':z[_0x38da10(0xcb)]()[_0x38da10(0xa3)]()['describe'](_0x38da10(0x9e)),'dbId':z['number']()['optional']()[_0x38da10(0xee)]('Database\x20ID\x20from\x20get_dataset_detail\x20—\x20required\x20when\x20creating\x20new\x20SQL,\x20optional\x20when\x20updating'),'sqlContent':z['string']()[_0x38da10(0xac)](0x1)[_0x38da10(0xee)]('SQL\x20content\x20(SELECT/INSERT/UPDATE/WITH\x20auto-saved;\x20DELETE/DDL\x20blocked).\x20Supports\x20MyBatis\x20syntax.'),'id':z['number']()['optional']()[_0x38da10(0xee)](_0x38da10(0x9b))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':![]}},wrapHandler(saveOrUpdateCustomSql)),this[_0x38da10(0xdf)]['bffSaveEnabled']&&(registerToolWithOptions(this['mcpServer'],'list_bff_scripts',{'title':_0x38da10(0x90),'description':_0x38da10(0xb6),'inputSchema':{...authSchema,'type':z[_0x38da10(0xa7)]([_0x38da10(0xd7),'COMMON'])[_0x38da10(0xa3)]()[_0x38da10(0xee)](_0x38da10(0xb5))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listBffScripts)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xc0),{'title':_0x38da10(0xb2),'description':_0x38da10(0x9d),'inputSchema':{...authSchema,'id':z[_0x38da10(0xe0)]()[_0x38da10(0xee)](_0x38da10(0xc7))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getBffScriptInfo)),registerToolWithOptions(this[_0x38da10(0x8f)],_0x38da10(0xd0),{'title':'Save\x20or\x20Update\x20Backend\x20Function','description':_0x38da10(0xbe),'inputSchema':{...authSchema,'id':z[_0x38da10(0xe0)]()[_0x38da10(0xa3)]()[_0x38da10(0xee)]('Backend\x20Function\x20ID\x20(for\x20updating).\x20Omit\x20when\x20creating\x20new.'),'description':z[_0x38da10(0xcb)]()[_0x38da10(0xac)](0x1)[_0x38da10(0xee)]('Function\x20description'),'scriptName':z[_0x38da10(0xcb)]()['optional']()[_0x38da10(0xee)](_0x38da10(0xce)),'scriptContent':z['string']()[_0x38da10(0xac)](0x1)[_0x38da10(0xee)](_0x38da10(0xa1)),'scriptType':z[_0x38da10(0xa7)]([_0x38da10(0xd7),_0x38da10(0xc1)])[_0x38da10(0xee)]('Script\x20type\x20(required):\x20ENDPOINT\x20for\x20business\x20API\x20endpoints\x20that\x20frontend\x20calls\x20via\x20client.bff.execute(),\x20COMMON\x20for\x20shared\x20utility\x20functions\x20that\x20other\x20BFF\x20scripts\x20import\x20and\x20reuse.\x20Analyze\x20the\x20script\x20purpose\x20carefully\x20before\x20choosing.')},'annotations':{'readOnlyHint':![],'destructiveHint':!![],'idempotentHint':![]}},wrapHandler(saveOrUpdateBffScript)));}get[a9_0xcec854(0x95)](){const _0x2f2a6e=a9_0xcec854;return this[_0x2f2a6e(0x8f)];}async[a9_0xcec854(0xd1)](_0x303c19){await this['mcpServer']['connect'](_0x303c19);}async['close'](){const _0x4c7541=a9_0xcec854;await this[_0x4c7541(0x8f)][_0x4c7541(0xd9)]();}[a9_0xcec854(0xed)](){const _0x5bcf65=a9_0xcec854;if(!process[_0x5bcf65(0xe4)][_0x5bcf65(0xd4)])return;console[_0x5bcf65(0xb3)](_0x5bcf65(0x99)),console[_0x5bcf65(0xb3)]('Version:\x20'+packageJson[_0x5bcf65(0xe6)]),console[_0x5bcf65(0xb3)](_0x5bcf65(0x8e)),this[_0x5bcf65(0xdf)][_0x5bcf65(0xcc)]&&(console[_0x5bcf65(0xb3)](_0x5bcf65(0xe2)),console['log'](_0x5bcf65(0xfd)));}}function buildInstructions(_0x6eb5b9){const _0x10a34a=a9_0xcec854,_0x5e1a2c=_0x6eb5b9[_0x10a34a(0xcc)]===!![],_0x5078f6=_0x5e1a2c?_0x10a34a(0xde):'';return _0x10a34a(0xfb)+_0x5078f6+'\x0a';}export function createServer(_0x4a3f8c){return new LovrabetDatasetMCPServer(_0x4a3f8c);}
@@ -1 +1 @@
1
- function a10_0x3001(_0x5a2c64,_0x1d3c3d){_0x5a2c64=_0x5a2c64-0x188;const _0x3895e4=a10_0x3895();let _0x30018d=_0x3895e4[_0x5a2c64];return _0x30018d;}(function(_0x4c8ada,_0x57ee92){const _0x5e0d2a=a10_0x3001,_0x431a7f=_0x4c8ada();while(!![]){try{const _0x787760=parseInt(_0x5e0d2a(0x194))/0x1+parseInt(_0x5e0d2a(0x1a0))/0x2*(-parseInt(_0x5e0d2a(0x19b))/0x3)+-parseInt(_0x5e0d2a(0x1a2))/0x4*(-parseInt(_0x5e0d2a(0x19d))/0x5)+-parseInt(_0x5e0d2a(0x195))/0x6*(parseInt(_0x5e0d2a(0x196))/0x7)+-parseInt(_0x5e0d2a(0x1a6))/0x8+parseInt(_0x5e0d2a(0x188))/0x9+parseInt(_0x5e0d2a(0x19c))/0xa;if(_0x787760===_0x57ee92)break;else _0x431a7f['push'](_0x431a7f['shift']());}catch(_0x10e8ff){_0x431a7f['push'](_0x431a7f['shift']());}}}(a10_0x3895,0xddc4b));import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode}from'../config/env.js';export async function executeCustomSql(_0x513a6d){const _0x100627=a10_0x3001,_0x4000fd=Date[_0x100627(0x18a)](),{appCode:appCode=getEnvAppCode(),cookie:_0x19d7c8,sqlCode:_0x56b12c,params:_0x5b5ad5}=_0x513a6d;if(!appCode)throw new Error(_0x100627(0x19f));if(!_0x56b12c||_0x56b12c[_0x100627(0x19e)]()==='')throw new Error(_0x100627(0x193));const _0x4b3bec=new DevApiClient({'appCode':appCode,'cookie':_0x19d7c8}),_0x267528=_0x5b5ad5&&Object[_0x100627(0x18d)](_0x5b5ad5)[_0x100627(0x191)]>0x0,_0x13481d=_0x267528?Object['keys'](_0x5b5ad5):[],_0x2165ac={'sqlCode':_0x56b12c,'hasParams':_0x267528||![],'paramNames':_0x13481d||[]};try{const _0x231e46=await _0x4b3bec[_0x100627(0x1a3)]({'sqlCode':_0x56b12c[_0x100627(0x19e)](),'params':_0x5b5ad5}),_0x441bc6=Date[_0x100627(0x18a)]()-_0x4000fd,_0x18d48c=_0x231e46[_0x100627(0x1a1)]??![],_0x14b4e4=_0x231e46[_0x100627(0x18c)];if(!_0x18d48c){const _0x1c3caa=_0x231e46[_0x100627(0x198)]||_0x231e46['msg']||_0x100627(0x18b);return{'success':![],'execSuccess':![],'execError':_0x1c3caa,'errorCode':_0x14b4e4||_0x100627(0x18f),'message':_0x100627(0x199)+(_0x14b4e4||_0x100627(0x197))+_0x100627(0x1a7)+_0x1c3caa,'executionTime':_0x441bc6,'sqlInfo':_0x2165ac};}const _0x2cf989=_0x231e46[_0x100627(0x1a5)]||_0x231e46,_0xf181e2=_0x2cf989['execSuccess']??_0x2cf989[_0x100627(0x1a1)]??!![],_0x56cf5f=_0x2cf989['execResult']||_0x2cf989[_0x100627(0x1a5)],_0x50f18a=_0x2cf989['execError']||_0x2cf989[_0x100627(0x198)];if(_0xf181e2){const _0x1a3f79=Array['isArray'](_0x56cf5f)?_0x56cf5f[_0x100627(0x191)]:0x0;return{'success':!![],'execSuccess':!![],'execResult':_0x56cf5f||[],'rowCount':_0x1a3f79,'message':_0x100627(0x1a4)+_0x1a3f79+_0x100627(0x192),'executionTime':_0x441bc6,'sqlInfo':_0x2165ac};}return{'success':!![],'execSuccess':![],'execError':_0x50f18a||_0x100627(0x19a),'message':_0x100627(0x189)+(_0x50f18a||_0x100627(0x18b)),'executionTime':_0x441bc6,'sqlInfo':_0x2165ac};}catch(_0x5b1736){const _0x315b96=Date[_0x100627(0x18a)]()-_0x4000fd;return{'success':![],'execSuccess':![],'execError':_0x5b1736[_0x100627(0x18e)]||_0x100627(0x18b),'message':_0x100627(0x190)+(_0x5b1736[_0x100627(0x18e)]||_0x100627(0x18b)),'executionTime':_0x315b96,'sqlInfo':_0x2165ac};}}function a10_0x3895(){const _0x377468=['3529322otItwM','success','1708unaqdi','executeSql','SQL\x20executed\x20successfully.\x20Returned\x20','data','1568328xqdJIh',']:\x20','8028315eLyFBB','SQL\x20execution\x20failed:\x20','now','Unknown\x20error','errorCode','keys','message','UNKNOWN','API\x20call\x20failed:\x20','length','\x20row(s).','sqlCode\x20is\x20required.\x20Get\x20it\x20from\x20list_sql_queries\x20->\x20sqlCode','183889ffVWLL','1346862FvcnJg','21hWIoNq','ERR','errorMsg','SQL\x20execution\x20failed\x20[','SQL\x20execution\x20failed\x20without\x20error\x20message','3SUNEPH','14114550hITGfC','12355jUQpJE','trim','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.'];a10_0x3895=function(){return _0x377468;};return a10_0x3895();}
1
+ function a10_0x3397(){const _0xb68f06=['SQL\x20executed\x20successfully.\x20Returned\x20','trim','ERR','success','now','executeSql','1378143KhgXwu','10373928YlkQGo','keys','10525bmwxqq','SQL\x20execution\x20failed\x20without\x20error\x20message','errorMsg','isArray','execError','UNKNOWN','SQL\x20execution\x20failed\x20[','length','message','execSuccess','4455312CwPudu','API\x20call\x20failed:\x20','Unknown\x20error','102184fStTAT','302HpMQPD',']:\x20','SQL\x20execution\x20failed:\x20','3782NsseKx','execResult','2228gTtdaq','6325260ZmMFOU','errorCode','854heJCRY','data','33iSIWvA'];a10_0x3397=function(){return _0xb68f06;};return a10_0x3397();}(function(_0x3417ab,_0x13e25e){const _0x5c052f=a10_0x4f1d,_0x4463c8=_0x3417ab();while(!![]){try{const _0x3a7a7c=parseInt(_0x5c052f(0x10f))/0x1*(-parseInt(_0x5c052f(0x10c))/0x2)+parseInt(_0x5c052f(0x108))/0x3+-parseInt(_0x5c052f(0x111))/0x4*(parseInt(_0x5c052f(0x120))/0x5)+parseInt(_0x5c052f(0x11e))/0x6+parseInt(_0x5c052f(0x114))/0x7*(parseInt(_0x5c052f(0x10b))/0x8)+-parseInt(_0x5c052f(0x11d))/0x9+parseInt(_0x5c052f(0x112))/0xa*(-parseInt(_0x5c052f(0x116))/0xb);if(_0x3a7a7c===_0x13e25e)break;else _0x4463c8['push'](_0x4463c8['shift']());}catch(_0x20d094){_0x4463c8['push'](_0x4463c8['shift']());}}}(a10_0x3397,0xeecce));import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode}from'../config/env.js';function a10_0x4f1d(_0x50045c,_0x52cd23){_0x50045c=_0x50045c-0x105;const _0x339781=a10_0x3397();let _0x4f1dfe=_0x339781[_0x50045c];return _0x4f1dfe;}export async function executeCustomSql(_0x5cdae9){const _0x4e1bba=a10_0x4f1d,_0xfea2b7=Date[_0x4e1bba(0x11b)](),{appCode:appCode=getEnvAppCode(),cookie:_0xbcc99b,sqlCode:_0x1dcc10,params:_0x205f76}=_0x5cdae9;if(!appCode)throw new Error('appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.');if(!_0x1dcc10||_0x1dcc10[_0x4e1bba(0x118)]()==='')throw new Error('sqlCode\x20is\x20required.\x20Get\x20it\x20from\x20list_sql_queries\x20->\x20sqlCode');const _0x426c60=new DevApiClient({'appCode':appCode,'cookie':_0xbcc99b}),_0x414b6f=_0x205f76&&Object[_0x4e1bba(0x11f)](_0x205f76)[_0x4e1bba(0x105)]>0x0,_0x2aeb6d=_0x414b6f?Object[_0x4e1bba(0x11f)](_0x205f76):[],_0x2741b4={'sqlCode':_0x1dcc10,'hasParams':_0x414b6f||![],'paramNames':_0x2aeb6d||[]};try{const _0x2fd369=await _0x426c60[_0x4e1bba(0x11c)]({'sqlCode':_0x1dcc10[_0x4e1bba(0x118)](),'params':_0x205f76}),_0xe3ca90=Date[_0x4e1bba(0x11b)]()-_0xfea2b7,_0x3d8920=_0x2fd369[_0x4e1bba(0x11a)]??![],_0x38136b=_0x2fd369[_0x4e1bba(0x113)];if(!_0x3d8920){const _0x4dddd8=_0x2fd369[_0x4e1bba(0x122)]||_0x2fd369['msg']||_0x4e1bba(0x10a);return{'success':![],'execSuccess':![],'execError':_0x4dddd8,'errorCode':_0x38136b||_0x4e1bba(0x125),'message':_0x4e1bba(0x126)+(_0x38136b||_0x4e1bba(0x119))+_0x4e1bba(0x10d)+_0x4dddd8,'executionTime':_0xe3ca90,'sqlInfo':_0x2741b4};}const _0x333cf4=_0x2fd369[_0x4e1bba(0x115)]||_0x2fd369,_0x41de19=_0x333cf4[_0x4e1bba(0x107)]??_0x333cf4['success']??!![],_0x1e7845=_0x333cf4[_0x4e1bba(0x110)]||_0x333cf4[_0x4e1bba(0x115)],_0x17eed5=_0x333cf4[_0x4e1bba(0x124)]||_0x333cf4[_0x4e1bba(0x122)];if(_0x41de19){const _0x3b76ad=Array[_0x4e1bba(0x123)](_0x1e7845)?_0x1e7845[_0x4e1bba(0x105)]:0x0;return{'success':!![],'execSuccess':!![],'execResult':_0x1e7845||[],'rowCount':_0x3b76ad,'message':_0x4e1bba(0x117)+_0x3b76ad+'\x20row(s).','executionTime':_0xe3ca90,'sqlInfo':_0x2741b4};}return{'success':!![],'execSuccess':![],'execError':_0x17eed5||_0x4e1bba(0x121),'message':_0x4e1bba(0x10e)+(_0x17eed5||_0x4e1bba(0x10a)),'executionTime':_0xe3ca90,'sqlInfo':_0x2741b4};}catch(_0x5cdfdb){const _0x23b34b=Date['now']()-_0xfea2b7;return{'success':![],'execSuccess':![],'execError':_0x5cdfdb[_0x4e1bba(0x106)]||_0x4e1bba(0x10a),'message':_0x4e1bba(0x109)+(_0x5cdfdb[_0x4e1bba(0x106)]||_0x4e1bba(0x10a)),'executionTime':_0x23b34b,'sqlInfo':_0x2741b4};}}
@@ -1 +1 @@
1
- (function(_0x1a6ef4,_0x42df83){const _0xfb1180=a11_0x3aa5,_0x59e6f3=_0x1a6ef4();while(!![]){try{const _0x587398=parseInt(_0xfb1180(0x15f))/0x1*(parseInt(_0xfb1180(0x155))/0x2)+parseInt(_0xfb1180(0x15c))/0x3+-parseInt(_0xfb1180(0x142))/0x4+-parseInt(_0xfb1180(0x154))/0x5+parseInt(_0xfb1180(0x163))/0x6*(parseInt(_0xfb1180(0x14c))/0x7)+-parseInt(_0xfb1180(0x153))/0x8+parseInt(_0xfb1180(0x14e))/0x9;if(_0x587398===_0x42df83)break;else _0x59e6f3['push'](_0x59e6f3['shift']());}catch(_0x1d5818){_0x59e6f3['push'](_0x59e6f3['shift']());}}}(a11_0xe5fb,0xbca39));function a11_0xe5fb(){const _0x2f6f8b=['getOperationDocMeta','getTableKey','3019332RteByT','generateFullSDKExample','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','datasetCode\x20is\x20required','\x20|\x20数据表:\x20','getDatasetDetail','Cannot\x20generate\x20SDK\x20code\x20for\x20operation\x20\x27','generateSDKInitCode','toJSON','typescript','7mBLMFS','//\x20数据集:\x20','3980457UniRzG','name','responseExample','requestExample','generateAliasExplanation','6779824HtWvkw','6539965brVkZg','1782954QNUWJq','code','replace','data','getOperationAnalysis','datasetCode','operationName\x20is\x20required','3740040sgSXrD','getDatasetSDKKey','usageExample','1hMEsWV','getModelAlias','\x27\x20in\x20dataset\x20\x27','getFieldList','6615234wwfJcp'];a11_0xe5fb=function(){return _0x2f6f8b;};return a11_0xe5fb();}import{DevApiClient}from'../api/dev-api-client.js';import{DrivenDataDetailPlus}from'@lovrabet/dsparser';import{getEnvAppCode,getEnvironment}from'../config/env.js';function a11_0x3aa5(_0x29d617,_0xfd01d4){_0x29d617=_0x29d617-0x141;const _0xe5fb7e=a11_0xe5fb();let _0x3aa507=_0xe5fb7e[_0x29d617];return _0x3aa507;}import{buildFieldRelationsMap,enrichFieldsWithRelations}from'../utils/relations.js';export async function generateSDKCode(_0x411536){const _0x47373d=a11_0x3aa5,{appCode:appCode=getEnvAppCode(),cookie:_0xa7cfc,datasetCode:_0x248cb0,operationName:_0x429394,includeImports:includeImports=!![],useAlias:useAlias=![]}=_0x411536;if(!appCode)throw new Error(_0x47373d(0x144));if(!_0x248cb0)throw new Error(_0x47373d(0x145));if(!_0x429394)throw new Error(_0x47373d(0x15b));const _0x303374=new DevApiClient({'appCode':appCode,'cookie':_0xa7cfc}),_0x2c5ebb=getEnvironment(),_0x36106b=await _0x303374[_0x47373d(0x147)](_0x248cb0),_0x123338=_0x36106b[_0x47373d(0x158)]||_0x36106b,_0x54b035=new DrivenDataDetailPlus(_0x123338),_0x64b7e1=_0x54b035[_0x47373d(0x164)](_0x429394);if(!_0x64b7e1)throw new Error(_0x47373d(0x148)+_0x429394+_0x47373d(0x161)+_0x248cb0+'\x27');const _0x2e896d=_0x54b035[_0x47373d(0x15d)](),_0x2b5a5f=_0x54b035[_0x47373d(0x160)](),_0x270486=_0x54b035[_0x47373d(0x141)](),_0xfdf482=_0x54b035['getTableName'](),_0x83a08a=_0x54b035[_0x47373d(0x14f)],_0xa2a608=_0x54b035[_0x47373d(0x162)](),_0x4fc573=_0xa2a608?.[_0x47373d(0x14a)]?.()||[],_0x2cbc6c=buildFieldRelationsMap(_0x36106b),_0x36aab0=enrichFieldsWithRelations(_0x4fc573,_0x2cbc6c),_0x17754c=_0x54b035[_0x47373d(0x143)](_0x429394,appCode),_0x28e4ea=_0x54b035[_0x47373d(0x159)](_0x429394);let _0x4f575b=_0x64b7e1['sdkCall'][_0x47373d(0x156)],_0x4f9234=_0x17754c||undefined;useAlias&&(_0x4f575b=_0x4f575b[_0x47373d(0x157)](new RegExp(_0x2e896d,'g'),_0x2b5a5f),_0x4f9234&&(_0x4f9234=_0x4f9234[_0x47373d(0x157)](new RegExp(_0x2e896d,'g'),_0x2b5a5f)));const _0x4348ba=_0x47373d(0x14d)+_0x83a08a+'\x20|\x20数据表:\x20'+_0xfdf482+'\x0a',_0x238e83=_0x4348ba+_0x4f575b,_0x1b01b7=_0x4f9234?_0x47373d(0x14d)+_0x83a08a+_0x47373d(0x146)+_0xfdf482+'\x0a'+_0x4f9234:undefined;return{'appCode':appCode,'env':_0x2c5ebb,'datasetName':_0x83a08a,'language':_0x47373d(0x14b),'code':_0x238e83,'fullExample':includeImports?_0x1b01b7:undefined,'sdkCallInfo':{'modelName':_0x2b5a5f,'tableName':_0xfdf482,'tableKey':_0x270486,'datasetCode':_0x54b035[_0x47373d(0x15a)],'operationName':_0x429394},'fields':_0x36aab0,'requestExample':_0x28e4ea?.[_0x47373d(0x151)],'responseExample':_0x28e4ea?.[_0x47373d(0x150)],'sdkInitCode':_0x54b035[_0x47373d(0x149)](_0x270486),'usageExample':_0x64b7e1[_0x47373d(0x15e)],'aliasExplanation':useAlias?_0x54b035[_0x47373d(0x152)]():undefined,'aliasHint':{'defaultAlias':_0x2b5a5f,'datasetSDKKey':_0x2e896d}};}
1
+ (function(_0x2c24f7,_0x487aba){const _0x1bc64e=a11_0x5265,_0x159db9=_0x2c24f7();while(!![]){try{const _0x284840=parseInt(_0x1bc64e(0x12b))/0x1+parseInt(_0x1bc64e(0x129))/0x2*(-parseInt(_0x1bc64e(0x116))/0x3)+-parseInt(_0x1bc64e(0x11f))/0x4+-parseInt(_0x1bc64e(0x121))/0x5*(parseInt(_0x1bc64e(0x120))/0x6)+-parseInt(_0x1bc64e(0x10e))/0x7+-parseInt(_0x1bc64e(0x10f))/0x8*(parseInt(_0x1bc64e(0x113))/0x9)+parseInt(_0x1bc64e(0x10d))/0xa;if(_0x284840===_0x487aba)break;else _0x159db9['push'](_0x159db9['shift']());}catch(_0x1526c3){_0x159db9['push'](_0x159db9['shift']());}}}(a11_0x4193,0xd6187));import{DevApiClient}from'../api/dev-api-client.js';import{DrivenDataDetailPlus}from'@lovrabet/dsparser';import{getEnvAppCode,getEnvironment}from'../config/env.js';import{buildFieldRelationsMap,enrichFieldsWithRelations}from'../utils/relations.js';function a11_0x5265(_0x54f94a,_0x4e29aa){_0x54f94a=_0x54f94a-0x10c;const _0x4193d3=a11_0x4193();let _0x526511=_0x4193d3[_0x54f94a];return _0x526511;}export async function generateSDKCode(_0x5ad098){const _0x535a3c=a11_0x5265,{appCode:appCode=getEnvAppCode(),cookie:_0x2f05c0,datasetCode:_0x1cf2af,operationName:_0x25b447,includeImports:includeImports=!![],useAlias:useAlias=![]}=_0x5ad098;if(!appCode)throw new Error(_0x535a3c(0x10c));if(!_0x1cf2af)throw new Error(_0x535a3c(0x125));if(!_0x25b447)throw new Error('operationName\x20is\x20required');const _0x333b8f=new DevApiClient({'appCode':appCode,'cookie':_0x2f05c0}),_0x480776=getEnvironment(),_0x50cba7=await _0x333b8f[_0x535a3c(0x110)](_0x1cf2af),_0x42a0c3=_0x50cba7[_0x535a3c(0x114)]||_0x50cba7,_0x5b8219=new DrivenDataDetailPlus(_0x42a0c3),_0x472d4d=_0x5b8219[_0x535a3c(0x117)](_0x25b447);if(!_0x472d4d)throw new Error(_0x535a3c(0x112)+_0x25b447+'\x27\x20in\x20dataset\x20\x27'+_0x1cf2af+'\x27');const _0x4975d4=_0x5b8219[_0x535a3c(0x123)](),_0x3476fc=_0x5b8219['getModelAlias'](),_0x256e90=_0x5b8219['getTableKey'](),_0x27f062=_0x5b8219[_0x535a3c(0x11a)](),_0xc07b4=_0x5b8219['name'],_0x4610b1=_0x5b8219[_0x535a3c(0x11e)](),_0x3cd6ef=_0x4610b1?.[_0x535a3c(0x128)]?.()||[],_0x5b61f3=buildFieldRelationsMap(_0x50cba7),_0x477338=enrichFieldsWithRelations(_0x3cd6ef,_0x5b61f3),_0x184d20=_0x5b8219[_0x535a3c(0x11b)](_0x25b447,appCode),_0x1b59f5=_0x5b8219['getOperationAnalysis'](_0x25b447);let _0x5bc707=_0x472d4d['sdkCall'][_0x535a3c(0x122)],_0x529773=_0x184d20||undefined;useAlias&&(_0x5bc707=_0x5bc707[_0x535a3c(0x111)](new RegExp(_0x4975d4,'g'),_0x3476fc),_0x529773&&(_0x529773=_0x529773[_0x535a3c(0x111)](new RegExp(_0x4975d4,'g'),_0x3476fc)));const _0x8ff0a4=_0x535a3c(0x11d)+_0xc07b4+'\x20|\x20数据表:\x20'+_0x27f062+'\x0a',_0x17d34d=_0x8ff0a4+_0x5bc707,_0x1dc7e7=_0x529773?_0x535a3c(0x11d)+_0xc07b4+_0x535a3c(0x119)+_0x27f062+'\x0a'+_0x529773:undefined;return{'appCode':appCode,'env':_0x480776,'datasetName':_0xc07b4,'language':_0x535a3c(0x11c),'code':_0x17d34d,'fullExample':includeImports?_0x1dc7e7:undefined,'sdkCallInfo':{'modelName':_0x3476fc,'tableName':_0x27f062,'tableKey':_0x256e90,'datasetCode':_0x5b8219[_0x535a3c(0x127)],'operationName':_0x25b447},'fields':_0x477338,'requestExample':_0x1b59f5?.[_0x535a3c(0x115)],'responseExample':_0x1b59f5?.[_0x535a3c(0x12a)],'sdkInitCode':_0x5b8219[_0x535a3c(0x118)](_0x256e90),'usageExample':_0x472d4d[_0x535a3c(0x126)],'aliasExplanation':useAlias?_0x5b8219[_0x535a3c(0x124)]():undefined,'aliasHint':{'defaultAlias':_0x3476fc,'datasetSDKKey':_0x4975d4}};}function a11_0x4193(){const _0x3b3120=['generateAliasExplanation','datasetCode\x20is\x20required','usageExample','datasetCode','toJSON','308VtKCzV','responseExample','1671896okKWGR','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','38804850dIGzrw','6673429bHAFDE','3383008UTojPh','getDatasetDetail','replace','Cannot\x20generate\x20SDK\x20code\x20for\x20operation\x20\x27','9YwRywY','data','requestExample','6915MNovzp','getOperationDocMeta','generateSDKInitCode','\x20|\x20数据表:\x20','getTableName','generateFullSDKExample','typescript','//\x20数据集:\x20','getFieldList','5720036RhlJmg','18WOeNOh','2523740sifEfA','code','getDatasetSDKKey'];a11_0x4193=function(){return _0x3b3120;};return a11_0x4193();}
@@ -1 +1 @@
1
- (function(_0x1f88ad,_0x4ea4bc){const _0xb42c02=a12_0x554e,_0x1e40ba=_0x1f88ad();while(!![]){try{const _0x4f1fba=parseInt(_0xb42c02(0x103))/0x1*(-parseInt(_0xb42c02(0xd8))/0x2)+parseInt(_0xb42c02(0xe2))/0x3*(parseInt(_0xb42c02(0xcc))/0x4)+parseInt(_0xb42c02(0xfc))/0x5+-parseInt(_0xb42c02(0xcb))/0x6*(parseInt(_0xb42c02(0xda))/0x7)+-parseInt(_0xb42c02(0xdc))/0x8+parseInt(_0xb42c02(0xbf))/0x9*(parseInt(_0xb42c02(0xe7))/0xa)+parseInt(_0xb42c02(0xed))/0xb*(parseInt(_0xb42c02(0xc0))/0xc);if(_0x4f1fba===_0x4ea4bc)break;else _0x1e40ba['push'](_0x1e40ba['shift']());}catch(_0x57a039){_0x1e40ba['push'](_0x1e40ba['shift']());}}}(a12_0x20a7,0x56e59));function a12_0x20a7(){const _0x1a786d=['from','length','35348nkoDjE','Errors\x20throw\x20exceptions\x20—\x20use\x20try-catch','page','limit','reduce','9IJLsrf','9934992AYjfXk','\x20code\x20for\x20SQL:\x20','Check\x20the\x20sqlCode\x20from\x20list_sql_queries\x20result\x20and\x20use\x20the\x20exact\x20value.','Note:\x20client.api.executeSql()\x20is\x20deprecated.\x20Use\x20client.sql.execute()\x20instead.','sqlCode\x20is\x20required','sqlName','Failed\x20to\x20verify\x20SQL\x20code:\x20','2024-01-01','getCustomSqlList','Backend\x20Function','bff','834oTdTRB','90996xVUksB','\x22\x20exists\x20and\x20is\x20valid.','search','BFF\x20context.client.sql.execute()\x20returns\x20rows\x20T[]\x20directly\x20—\x20no\x20wrapper\x20object','SQL\x20code\x20\x22','On\x20HTTP\x20error,\x20SDK\x20throws\x20LovrabetError\x20—\x20use\x20try-catch','sqlContent','\x27\x20}','stringify','sqlCode','toLowerCase','data','36oKgKJo','find','210hoclLm','example','4701808NftYWF',');\x0a\x0a//\x20IMPORTANT:\x20SDK\x20returns\x20wrapper\x20—\x20check\x20execSuccess\x20before\x20using\x20results\x0aif\x20(!data.execSuccess)\x20{\x0a\x20\x20throw\x20new\x20Error(\x27SQL\x20execution\x20failed\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:\x20any)\x20=>\x20{\x0a\x20\x20console.log(row);\x0a});',',\x0a}','Generated\x20','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','join','9RLOXPJ','value','trim','\x0aconst\x20data\x20=\x20await\x20client.sql.execute(','map','744170WJuiqD','date','keyword','\x22\x20does\x20not\x20exist.\x20Use\x20list_sql_queries\x20to\x20find\x20valid\x20SQL\x20codes.','name','{\x20sqlCode:\x20\x27','11bWqpBi','\x27,\x0a\x20\x20env:\x20\x27','sqlId','This\x20SQL\x20does\x20not\x20require\x20any\x20parameters',');\x0a\x0a\x20\x20//\x20rows\x20is\x20T[]\x20directly\x20—\x20no\x20wrapper,\x20errors\x20throw\x20exceptions\x0a\x20\x20console.log(`Retrieved\x20${rows.length}\x20rows`);\x0a\x0a\x20\x20return\x20{\x20data:\x20rows\x20};\x0a}','Use\x20list_sql_queries\x20to\x20see\x20all\x20available\x20SQLs.','This\x20SQL\x20requires\x20parameters:\x20','message','\x22\x0aexport\x20default\x20async\x20function(params,\x20context)\x20{\x0a\x20\x20const\x20rows\x20=\x20await\x20context.client.sql.execute(','status','SDK\x20client.sql.execute()\x20returns\x20{\x20execSuccess,\x20execResult\x20}\x20—\x20always\x20check\x20execSuccess','includes','size','Frontend\x20SDK','entries','3067545EiNagc','//\x20Initialize\x20the\x20SDK\x20client\x0aconst\x20client\x20=\x20new\x20LovrabetClient({\x0a\x20\x20appCode:\x20\x27','match','count','{\x0a\x20\x20sqlCode:\x20\x27'];a12_0x20a7=function(){return _0x1a786d;};return a12_0x20a7();}import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode,getEnvironment}from'../config/env.js';export async function generateSqlCode(_0x267c24){const _0x53576f=a12_0x554e,{appCode:appCode=getEnvAppCode(),cookie:_0x3a27a5,sqlCode:_0x2a6c56,params:_0x344cca,includeImports:includeImports=!![],target:target='sdk'}=_0x267c24;if(!appCode)throw new Error(_0x53576f(0xe0));if(!_0x2a6c56||_0x2a6c56[_0x53576f(0xe4)]()==='')return{'success':![],'sqlCode':'','sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':[]},'error':_0x53576f(0xc4)};const _0x4c8a86=_0x2a6c56[_0x53576f(0xe4)](),_0x1f0af1=new DevApiClient({'appCode':appCode,'cookie':_0x3a27a5}),_0x37d566=getEnvironment();try{const _0x2e336f=await _0x1f0af1[_0x53576f(0xc8)]({'pageSize':0x3e7,'currentPage':0x1,'sqlCode':_0x4c8a86}),_0x1474a3=_0x2e336f[_0x53576f(0xd7)]?.['tableData']||[],_0x3a37ab=_0x1474a3[_0x53576f(0xd9)](_0x26c548=>_0x26c548['sqlCode']===_0x4c8a86||_0x26c548[_0x53576f(0xd5)]?.[_0x53576f(0xf8)](_0x4c8a86)||_0x4c8a86[_0x53576f(0xf8)](_0x26c548[_0x53576f(0xd5)]));if(!_0x3a37ab)return{'success':![],'sqlCode':_0x4c8a86,'sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':['SQL\x20code\x20\x22'+_0x4c8a86+'\x22\x20not\x20found\x20in\x20the\x20application.',_0x53576f(0xf2),_0x53576f(0xc2)]},'error':_0x53576f(0xd0)+_0x4c8a86+_0x53576f(0xea)};const _0x303fe1=_0x3a37ab[_0x53576f(0xd5)],_0x4c65db=_0x3a37ab[_0x53576f(0xc5)]||_0x3a37ab[_0x53576f(0xeb)]||'SQL-'+(_0x3a37ab[_0x53576f(0xef)]||_0x3a37ab['id']),_0x57c9e2=_0x3a37ab[_0x53576f(0xd2)]||_0x3a37ab['sql']||'',_0x52014b=_0x57c9e2[_0x53576f(0xfe)](/[:$]\{?(\w+)\}?/g);let _0x2b2dae,_0x49d24b;if(_0x52014b){const _0x30f682=Array[_0x53576f(0x101)](new Set(_0x52014b[_0x53576f(0xe6)](_0x36e2ae=>_0x36e2ae['replace'](/[:${}]/g,''))));_0x2b2dae=_0x30f682[_0x53576f(0xe6)](_0x52a1f0=>{const _0x5e660d=_0x344cca?.[_0x52a1f0]??getDefaultExample(_0x52a1f0);return{'name':_0x52a1f0,'example':_0x5e660d};}),_0x49d24b=_0x2b2dae[_0x53576f(0xbe)]((_0x2e5d3c,_0x416881)=>({..._0x2e5d3c,[_0x416881['name']]:_0x416881[_0x53576f(0xdb)]}),{});}else _0x344cca&&(_0x2b2dae=Object[_0x53576f(0xfb)](_0x344cca)['map'](([_0x346ba4,_0x5e1ace])=>({'name':_0x346ba4,'example':_0x5e1ace})),_0x49d24b=_0x344cca);const _0x2cecd0=_0x2b2dae&&_0x2b2dae[_0x53576f(0x102)]>0x0,_0x618c71=_0x2cecd0?JSON[_0x53576f(0xd4)](_0x49d24b,null,0x2):'',_0x481d66=_0x2cecd0?_0x53576f(0x100)+_0x303fe1+'\x27,\x0a\x20\x20params:\x20'+_0x618c71+_0x53576f(0xde):_0x53576f(0xec)+_0x303fe1+_0x53576f(0xd3);let _0x2bd9a8;target===_0x53576f(0xca)?_0x2bd9a8='//\x20Backend\x20Function:\x20Execute\x20SQL\x20\x22'+_0x4c65db+_0x53576f(0xf5)+_0x481d66+_0x53576f(0xf1):_0x2bd9a8=(includeImports?'import\x20{\x20LovrabetClient\x20}\x20from\x20\x27@lovrabet/sdk\x27;\x0a\x0a':'')+_0x53576f(0xfd)+appCode+_0x53576f(0xee)+_0x37d566+'\x27,\x0a});\x0a\x0a//\x20Execute\x20SQL:\x20'+_0x4c65db+_0x53576f(0xe5)+_0x481d66+_0x53576f(0xdd);const _0x17f3ad=target===_0x53576f(0xca);return{'success':!![],'sqlCode':_0x303fe1,'sqlName':_0x4c65db,'sqlExists':!![],'code':_0x2bd9a8,'parameters':_0x2b2dae,'usage':{'description':_0x53576f(0xdf)+(_0x17f3ad?_0x53576f(0xc9):_0x53576f(0xfa))+_0x53576f(0xc1)+_0x4c65db,'important':[_0x53576f(0xd0)+_0x303fe1+_0x53576f(0xcd),_0x17f3ad?_0x53576f(0xcf):_0x53576f(0xf7),_0x17f3ad?_0x53576f(0xbb):_0x53576f(0xd1),_0x2cecd0?_0x53576f(0xf3)+_0x2b2dae[_0x53576f(0xe6)](_0x1c7cbe=>_0x1c7cbe[_0x53576f(0xeb)])[_0x53576f(0xe1)](',\x20'):_0x53576f(0xf0),_0x53576f(0xc3)]}};}catch(_0x25b41a){return{'success':![],'sqlCode':_0x4c8a86,'sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':['Failed\x20to\x20verify\x20SQL\x20code:\x20'+_0x25b41a[_0x53576f(0xf4)],_0x53576f(0xf2)]},'error':_0x53576f(0xc6)+_0x25b41a['message']};}}function a12_0x554e(_0x37babe,_0x11c26f){_0x37babe=_0x37babe-0xbb;const _0x20a7b5=a12_0x20a7();let _0x554e72=_0x20a7b5[_0x37babe];return _0x554e72;}function getDefaultExample(_0x5ea515){const _0x403179=a12_0x554e,_0x5cdf5d=_0x5ea515[_0x403179(0xd6)]();if(_0x5cdf5d['includes'](_0x403179(0xe8))||_0x5cdf5d[_0x403179(0xf8)]('time'))return _0x403179(0xc7);if(_0x5cdf5d[_0x403179(0xf8)]('id'))return 0x7b;if(_0x5cdf5d[_0x403179(0xf8)](_0x403179(0xbd))||_0x5cdf5d['includes'](_0x403179(0xff))||_0x5cdf5d[_0x403179(0xf8)](_0x403179(0xf9)))return 0xa;if(_0x5cdf5d[_0x403179(0xf8)](_0x403179(0xbc)))return 0x1;if(_0x5cdf5d['includes'](_0x403179(0xe9))||_0x5cdf5d[_0x403179(0xf8)](_0x403179(0xce))||_0x5cdf5d[_0x403179(0xf8)]('name'))return'example';if(_0x5cdf5d[_0x403179(0xf8)](_0x403179(0xf6)))return 0x1;return _0x403179(0xe3);}
1
+ (function(_0x36b02e,_0x49101d){const _0x556696=a12_0x5b15,_0x61e110=_0x36b02e();while(!![]){try{const _0x3b8df0=parseInt(_0x556696(0x1b5))/0x1*(parseInt(_0x556696(0x1a0))/0x2)+-parseInt(_0x556696(0x176))/0x3+parseInt(_0x556696(0x1ac))/0x4+-parseInt(_0x556696(0x179))/0x5*(parseInt(_0x556696(0x1b7))/0x6)+parseInt(_0x556696(0x180))/0x7*(-parseInt(_0x556696(0x1ad))/0x8)+-parseInt(_0x556696(0x1a7))/0x9*(-parseInt(_0x556696(0x1b2))/0xa)+-parseInt(_0x556696(0x187))/0xb;if(_0x3b8df0===_0x49101d)break;else _0x61e110['push'](_0x61e110['shift']());}catch(_0x26bd53){_0x61e110['push'](_0x61e110['shift']());}}}(a12_0x44ba,0x735bc));import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode,getEnvironment}from'../config/env.js';function a12_0x44ba(){const _0x3e6d58=['replace','page','9rkhRrT','//\x20Backend\x20Function:\x20Execute\x20SQL\x20\x22','map','Use\x20list_sql_queries\x20to\x20see\x20all\x20available\x20SQLs.','\x27,\x0a\x20\x20env:\x20\x27','2141396ZGQNaT','792OuZJFF','sql','\x22\x0aexport\x20default\x20async\x20function(params,\x20context)\x20{\x0a\x20\x20const\x20rows\x20=\x20await\x20context.client.sql.execute(','length','Failed\x20to\x20verify\x20SQL\x20code:\x20','4754660NaXeAp','entries','{\x20sqlCode:\x20\x27','3ugCmfm','\x0aconst\x20data\x20=\x20await\x20client.sql.execute(','192rauGGM','date','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','from','\x22\x20exists\x20and\x20is\x20valid.','349935CMHwIx','value','\x22\x20not\x20found\x20in\x20the\x20application.','34535EcKtAd','BFF\x20context.client.sql.execute()\x20returns\x20rows\x20T[]\x20directly\x20—\x20no\x20wrapper\x20object','sdk','Generated\x20',');\x0a\x0a\x20\x20//\x20rows\x20is\x20T[]\x20directly\x20—\x20no\x20wrapper,\x20errors\x20throw\x20exceptions\x0a\x20\x20console.log(`Retrieved\x20${rows.length}\x20rows`);\x0a\x0a\x20\x20return\x20{\x20data:\x20rows\x20};\x0a}','Check\x20the\x20sqlCode\x20from\x20list_sql_queries\x20result\x20and\x20use\x20the\x20exact\x20value.','getCustomSqlList','48454mLorAz','SQL\x20code\x20\x22','\x20code\x20for\x20SQL:\x20','includes','sqlId','Frontend\x20SDK','import\x20{\x20LovrabetClient\x20}\x20from\x20\x27@lovrabet/sdk\x27;\x0a\x0a','3636116VWbshx','keyword',');\x0a\x0a//\x20IMPORTANT:\x20SDK\x20returns\x20wrapper\x20—\x20check\x20execSuccess\x20before\x20using\x20results\x0aif\x20(!data.execSuccess)\x20{\x0a\x20\x20throw\x20new\x20Error(\x27SQL\x20execution\x20failed\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:\x20any)\x20=>\x20{\x0a\x20\x20console.log(row);\x0a});','size','\x22\x20does\x20not\x20exist.\x20Use\x20list_sql_queries\x20to\x20find\x20valid\x20SQL\x20codes.','toLowerCase','sqlName','SDK\x20client.sql.execute()\x20returns\x20{\x20execSuccess,\x20execResult\x20}\x20—\x20always\x20check\x20execSuccess','sqlCode\x20is\x20required','data','trim','status','bff','join','\x27,\x0a});\x0a\x0a//\x20Execute\x20SQL:\x20','match','count','name','SQL-','time','find','search','message','Errors\x20throw\x20exceptions\x20—\x20use\x20try-catch','{\x0a\x20\x20sqlCode:\x20\x27','543464SnzxEF','stringify','Note:\x20client.api.executeSql()\x20is\x20deprecated.\x20Use\x20client.sql.execute()\x20instead.','example','sqlCode'];a12_0x44ba=function(){return _0x3e6d58;};return a12_0x44ba();}function a12_0x5b15(_0xd7945a,_0x25c39f){_0xd7945a=_0xd7945a-0x175;const _0x44baf4=a12_0x44ba();let _0x5b15d2=_0x44baf4[_0xd7945a];return _0x5b15d2;}export async function generateSqlCode(_0x235197){const _0xfa0af0=a12_0x5b15,{appCode:appCode=getEnvAppCode(),cookie:_0xc8262d,sqlCode:_0x5c42a9,params:_0x369bc8,includeImports:includeImports=!![],target:target=_0xfa0af0(0x17b)}=_0x235197;if(!appCode)throw new Error(_0xfa0af0(0x1b9));if(!_0x5c42a9||_0x5c42a9[_0xfa0af0(0x191)]()==='')return{'success':![],'sqlCode':'','sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':[]},'error':_0xfa0af0(0x18f)};const _0x4e0121=_0x5c42a9[_0xfa0af0(0x191)](),_0x427c80=new DevApiClient({'appCode':appCode,'cookie':_0xc8262d}),_0xaaf28f=getEnvironment();try{const _0x29c8a6=await _0x427c80[_0xfa0af0(0x17f)]({'pageSize':0x3e7,'currentPage':0x1,'sqlCode':_0x4e0121}),_0x1240dd=_0x29c8a6[_0xfa0af0(0x190)]?.['tableData']||[],_0x11deaa=_0x1240dd[_0xfa0af0(0x19b)](_0x175718=>_0x175718[_0xfa0af0(0x1a4)]===_0x4e0121||_0x175718[_0xfa0af0(0x1a4)]?.[_0xfa0af0(0x183)](_0x4e0121)||_0x4e0121[_0xfa0af0(0x183)](_0x175718['sqlCode']));if(!_0x11deaa)return{'success':![],'sqlCode':_0x4e0121,'sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':[_0xfa0af0(0x181)+_0x4e0121+_0xfa0af0(0x178),_0xfa0af0(0x1aa),_0xfa0af0(0x17e)]},'error':_0xfa0af0(0x181)+_0x4e0121+_0xfa0af0(0x18b)};const _0x5e4ac5=_0x11deaa[_0xfa0af0(0x1a4)],_0x371976=_0x11deaa[_0xfa0af0(0x18d)]||_0x11deaa[_0xfa0af0(0x198)]||_0xfa0af0(0x199)+(_0x11deaa[_0xfa0af0(0x184)]||_0x11deaa['id']),_0x439e93=_0x11deaa['sqlContent']||_0x11deaa[_0xfa0af0(0x1ae)]||'',_0x1f7704=_0x439e93[_0xfa0af0(0x196)](/[:$]\{?(\w+)\}?/g);let _0x49938a,_0x12ca3c;if(_0x1f7704){const _0x4bf479=Array[_0xfa0af0(0x1ba)](new Set(_0x1f7704[_0xfa0af0(0x1a9)](_0x4b2d8e=>_0x4b2d8e[_0xfa0af0(0x1a5)](/[:${}]/g,''))));_0x49938a=_0x4bf479[_0xfa0af0(0x1a9)](_0x4e4825=>{const _0x3862e9=_0x369bc8?.[_0x4e4825]??getDefaultExample(_0x4e4825);return{'name':_0x4e4825,'example':_0x3862e9};}),_0x12ca3c=_0x49938a['reduce']((_0x28d59e,_0x27fbcb)=>({..._0x28d59e,[_0x27fbcb[_0xfa0af0(0x198)]]:_0x27fbcb[_0xfa0af0(0x1a3)]}),{});}else _0x369bc8&&(_0x49938a=Object[_0xfa0af0(0x1b3)](_0x369bc8)[_0xfa0af0(0x1a9)](([_0x291a64,_0x32c055])=>({'name':_0x291a64,'example':_0x32c055})),_0x12ca3c=_0x369bc8);const _0x2562d4=_0x49938a&&_0x49938a[_0xfa0af0(0x1b0)]>0x0,_0x3f3be4=_0x2562d4?JSON[_0xfa0af0(0x1a1)](_0x12ca3c,null,0x2):'',_0x559250=_0x2562d4?_0xfa0af0(0x19f)+_0x5e4ac5+'\x27,\x0a\x20\x20params:\x20'+_0x3f3be4+',\x0a}':_0xfa0af0(0x1b4)+_0x5e4ac5+'\x27\x20}';let _0x5ead98;target==='bff'?_0x5ead98=_0xfa0af0(0x1a8)+_0x371976+_0xfa0af0(0x1af)+_0x559250+_0xfa0af0(0x17d):_0x5ead98=(includeImports?_0xfa0af0(0x186):'')+'//\x20Initialize\x20the\x20SDK\x20client\x0aconst\x20client\x20=\x20new\x20LovrabetClient({\x0a\x20\x20appCode:\x20\x27'+appCode+_0xfa0af0(0x1ab)+_0xaaf28f+_0xfa0af0(0x195)+_0x371976+_0xfa0af0(0x1b6)+_0x559250+_0xfa0af0(0x189);const _0x10d0ec=target===_0xfa0af0(0x193);return{'success':!![],'sqlCode':_0x5e4ac5,'sqlName':_0x371976,'sqlExists':!![],'code':_0x5ead98,'parameters':_0x49938a,'usage':{'description':_0xfa0af0(0x17c)+(_0x10d0ec?'Backend\x20Function':_0xfa0af0(0x185))+_0xfa0af0(0x182)+_0x371976,'important':[_0xfa0af0(0x181)+_0x5e4ac5+_0xfa0af0(0x175),_0x10d0ec?_0xfa0af0(0x17a):_0xfa0af0(0x18e),_0x10d0ec?_0xfa0af0(0x19e):'On\x20HTTP\x20error,\x20SDK\x20throws\x20LovrabetError\x20—\x20use\x20try-catch',_0x2562d4?'This\x20SQL\x20requires\x20parameters:\x20'+_0x49938a[_0xfa0af0(0x1a9)](_0x4b5c0b=>_0x4b5c0b[_0xfa0af0(0x198)])[_0xfa0af0(0x194)](',\x20'):'This\x20SQL\x20does\x20not\x20require\x20any\x20parameters',_0xfa0af0(0x1a2)]}};}catch(_0x9f6812){return{'success':![],'sqlCode':_0x4e0121,'sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':[_0xfa0af0(0x1b1)+_0x9f6812[_0xfa0af0(0x19d)],'Use\x20list_sql_queries\x20to\x20see\x20all\x20available\x20SQLs.']},'error':_0xfa0af0(0x1b1)+_0x9f6812['message']};}}function getDefaultExample(_0x34d469){const _0xee0af4=a12_0x5b15,_0x2c9f7b=_0x34d469[_0xee0af4(0x18c)]();if(_0x2c9f7b[_0xee0af4(0x183)](_0xee0af4(0x1b8))||_0x2c9f7b['includes'](_0xee0af4(0x19a)))return'2024-01-01';if(_0x2c9f7b[_0xee0af4(0x183)]('id'))return 0x7b;if(_0x2c9f7b['includes']('limit')||_0x2c9f7b[_0xee0af4(0x183)](_0xee0af4(0x197))||_0x2c9f7b[_0xee0af4(0x183)](_0xee0af4(0x18a)))return 0xa;if(_0x2c9f7b[_0xee0af4(0x183)](_0xee0af4(0x1a6)))return 0x1;if(_0x2c9f7b['includes'](_0xee0af4(0x188))||_0x2c9f7b[_0xee0af4(0x183)](_0xee0af4(0x19c))||_0x2c9f7b[_0xee0af4(0x183)](_0xee0af4(0x198)))return _0xee0af4(0x1a3);if(_0x2c9f7b['includes'](_0xee0af4(0x192)))return 0x1;return _0xee0af4(0x177);}
@@ -1 +1 @@
1
- function a13_0x1157(){const _0x2eb226=['34zNuMLS','34041aigygx','3401226xkufnP','92440WOLRrP','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','4985748lQidKI','3310870lwzXBL','Failed\x20to\x20fetch\x20Backend\x20Function\x20script\x20info\x20for\x20id:\x20','4AihYKH','2043713AwPkUL','getBffScriptInfo','2068233ZGYbEN','16mcxhgL','data','473sJzcDR'];a13_0x1157=function(){return _0x2eb226;};return a13_0x1157();}(function(_0x2ed883,_0xcbdbcf){const _0x208d42=a13_0x300d,_0x20801b=_0x2ed883();while(!![]){try{const _0x34dc60=-parseInt(_0x208d42(0x163))/0x1*(-parseInt(_0x208d42(0x162))/0x2)+-parseInt(_0x208d42(0x15e))/0x3+-parseInt(_0x208d42(0x15b))/0x4*(-parseInt(_0x208d42(0x159))/0x5)+parseInt(_0x208d42(0x164))/0x6+-parseInt(_0x208d42(0x15c))/0x7*(parseInt(_0x208d42(0x15f))/0x8)+-parseInt(_0x208d42(0x158))/0x9+parseInt(_0x208d42(0x165))/0xa*(parseInt(_0x208d42(0x161))/0xb);if(_0x34dc60===_0xcbdbcf)break;else _0x20801b['push'](_0x20801b['shift']());}catch(_0x44c814){_0x20801b['push'](_0x20801b['shift']());}}}(a13_0x1157,0x5c44d));import{DevApiClient}from'../api/dev-api-client.js';function a13_0x300d(_0xadbc77,_0x3ebb7d){_0xadbc77=_0xadbc77-0x157;const _0x115745=a13_0x1157();let _0x300de0=_0x115745[_0xadbc77];return _0x300de0;}import{getEnvAppCode}from'../config/env.js';export async function getBffScriptInfo(_0x5beaf9){const _0x28e6e5=a13_0x300d,{appCode:appCode=getEnvAppCode(),cookie:_0x57c476,id:_0xcbf649}=_0x5beaf9;if(!appCode)throw new Error(_0x28e6e5(0x157));if(!_0xcbf649||_0xcbf649<=0x0)throw new Error('id\x20is\x20required\x20and\x20must\x20be\x20a\x20positive\x20number.\x20Get\x20it\x20from\x20list_bff_scripts.');const _0x5b75ef=new DevApiClient({'appCode':appCode,'cookie':_0x57c476}),_0x26b4d9=await _0x5b75ef[_0x28e6e5(0x15d)](_0xcbf649);if(!_0x26b4d9['success']||!_0x26b4d9[_0x28e6e5(0x160)])return{'success':![],'message':_0x28e6e5(0x15a)+_0xcbf649};return{'success':!![],'script':_0x26b4d9[_0x28e6e5(0x160)]};}
1
+ (function(_0xc79fa0,_0x154204){const _0x4598ea=a13_0x1923,_0x184a7d=_0xc79fa0();while(!![]){try{const _0x4f9de5=-parseInt(_0x4598ea(0xfe))/0x1*(-parseInt(_0x4598ea(0x109))/0x2)+-parseInt(_0x4598ea(0x105))/0x3*(parseInt(_0x4598ea(0x107))/0x4)+-parseInt(_0x4598ea(0x101))/0x5*(-parseInt(_0x4598ea(0xfd))/0x6)+-parseInt(_0x4598ea(0x102))/0x7+-parseInt(_0x4598ea(0x10b))/0x8*(-parseInt(_0x4598ea(0x103))/0x9)+parseInt(_0x4598ea(0x10a))/0xa+-parseInt(_0x4598ea(0xfc))/0xb*(-parseInt(_0x4598ea(0x104))/0xc);if(_0x4f9de5===_0x154204)break;else _0x184a7d['push'](_0x184a7d['shift']());}catch(_0x2c0e07){_0x184a7d['push'](_0x184a7d['shift']());}}}(a13_0x3598,0xd036c));function a13_0x1923(_0x2538ff,_0x59e7ec){_0x2538ff=_0x2538ff-0xfc;const _0x3598fb=a13_0x3598();let _0x1923d9=_0x3598fb[_0x2538ff];return _0x1923d9;}import{DevApiClient}from'../api/dev-api-client.js';function a13_0x3598(){const _0x15e6c7=['11XGawIT','3170754rdtCsD','517plieDk','data','getBffScriptInfo','10nEGmvK','9181599EXLmdp','8124849JzBLHJ','3317304zDsTPT','248934rKUnLD','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','76OkHeSi','success','686RYuWCS','13276310BBOHRe','8BsLhQj'];a13_0x3598=function(){return _0x15e6c7;};return a13_0x3598();}import{getEnvAppCode}from'../config/env.js';export async function getBffScriptInfo(_0x3c5eb4){const _0x5ddcbc=a13_0x1923,{appCode:appCode=getEnvAppCode(),cookie:_0x429d40,id:_0x71a488}=_0x3c5eb4;if(!appCode)throw new Error(_0x5ddcbc(0x106));if(!_0x71a488||_0x71a488<=0x0)throw new Error('id\x20is\x20required\x20and\x20must\x20be\x20a\x20positive\x20number.\x20Get\x20it\x20from\x20list_bff_scripts.');const _0x510fe9=new DevApiClient({'appCode':appCode,'cookie':_0x429d40}),_0x4b04ed=await _0x510fe9[_0x5ddcbc(0x100)](_0x71a488);if(!_0x4b04ed[_0x5ddcbc(0x108)]||!_0x4b04ed[_0x5ddcbc(0xff)])return{'success':![],'message':'Failed\x20to\x20fetch\x20Backend\x20Function\x20script\x20info\x20for\x20id:\x20'+_0x71a488};return{'success':!![],'script':_0x4b04ed[_0x5ddcbc(0xff)]};}