@lovrabet/dataset-mcp-server 1.4.1 → 1.4.3
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 +1 -1
- package/dist/api/dev-api-client.js +1 -1
- package/dist/auth/constants.js +1 -1
- package/dist/auth/cookie-manager.js +1 -1
- package/dist/auth/session-validator.js +1 -1
- package/dist/config/api-url-resolver.js +1 -1
- package/dist/config/env.js +1 -1
- package/dist/config/lovrabet-config.js +1 -1
- package/dist/index.js +1 -1
- package/dist/server.js +1 -1
- package/dist/tools/execute-custom-sql.js +1 -1
- package/dist/tools/generate-sdk-code.js +1 -1
- package/dist/tools/generate-sql-code.js +1 -1
- package/dist/tools/get-bff-script-info.js +1 -1
- package/dist/tools/get-dataset-detail.js +1 -1
- package/dist/tools/get-operation-detail.js +1 -1
- package/dist/tools/get-operations.js +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/list-bff-scripts.js +1 -1
- package/dist/tools/list-datasets.js +1 -1
- package/dist/tools/list-sql-queries.js +1 -1
- package/dist/tools/login.js +1 -1
- package/dist/tools/save-or-update-bff-script.js +1 -1
- package/dist/tools/save-or-update-custom-sql.js +1 -1
- package/dist/tools/search-datasets.js +1 -1
- package/dist/tools/validate-sql-content.js +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/mcp-types.js +1 -1
- package/dist/utils/rate-limiter.js +1 -1
- package/dist/utils/relations.js +1 -1
- package/dist/utils/sql-meta.js +1 -1
- package/dist/utils/sql-parser.js +1 -1
- package/package.json +1 -1
package/dist/api/cache.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
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 +1 @@
|
|
|
1
|
-
const a1_0x35b167=a1_0x16cb;(function(_0xce2897,_0x40b635){const _0x5d52df=a1_0x16cb,_0xa3c2fe=_0xce2897();while(!![]){try{const _0xfb6bf8=parseInt(_0x5d52df(0x110))/0x1*(parseInt(_0x5d52df(0xc3))/0x2)+parseInt(_0x5d52df(0xd0))/0x3*(-parseInt(_0x5d52df(0xd3))/0x4)+-parseInt(_0x5d52df(0x124))/0x5*(-parseInt(_0x5d52df(0xde))/0x6)+parseInt(_0x5d52df(0x121))/0x7+parseInt(_0x5d52df(0xd2))/0x8*(-parseInt(_0x5d52df(0xf3))/0x9)+-parseInt(_0x5d52df(0x122))/0xa*(parseInt(_0x5d52df(0x11f))/0xb)+parseInt(_0x5d52df(0xe4))/0xc*(parseInt(_0x5d52df(0x129))/0xd);if(_0xfb6bf8===_0x40b635)break;else _0xa3c2fe['push'](_0xa3c2fe['shift']());}catch(_0x28f254){_0xa3c2fe['push'](_0xa3c2fe['shift']());}}}(a1_0x9e2c,0x1cdbf));import{getCookie}from'../auth/cookie-manager.js';import{getEffectiveApiDomain,getEffectiveRuntimeDomain,resolveApiBaseUrl}from'../auth/constants.js';function a1_0x16cb(_0x472f78,_0x556763){_0x472f78=_0x472f78-0xc1;const _0x9e2c90=a1_0x9e2c();let _0x16cbb9=_0x9e2c90[_0x472f78];return _0x16cbb9;}import{apiCache}from'./cache.js';export class DevApiClient{[a1_0x35b167(0x116)];[a1_0x35b167(0xe9)];['cookie'];[a1_0x35b167(0x125)];[a1_0x35b167(0x105)];[a1_0x35b167(0x12c)];constructor(_0x85c9b1){const _0x2efd0b=a1_0x35b167;this[_0x2efd0b(0x116)]=_0x85c9b1[_0x2efd0b(0x116)],this[_0x2efd0b(0xe9)]=globalThis[_0x2efd0b(0xcc)]?.[_0x2efd0b(0xe9)]?.['LOVRABET_ENV']||_0x2efd0b(0x102),this[_0x2efd0b(0x10b)]=_0x85c9b1[_0x2efd0b(0x10b)]||getCookie(),this[_0x2efd0b(0x125)]=_0x85c9b1[_0x2efd0b(0xeb)]||getEffectiveApiDomain(),this[_0x2efd0b(0x105)]=_0x85c9b1[_0x2efd0b(0x135)]||getEffectiveRuntimeDomain(),this[_0x2efd0b(0x12c)]=_0x85c9b1[_0x2efd0b(0x103)];if(!this[_0x2efd0b(0x10b)])throw new Error('No\x20authentication\x20cookie\x20found.\x20Please\x20login\x20first.');}[a1_0x35b167(0x12d)](_0x5cd58b,_0x372898){const _0x3216ad=a1_0x35b167,_0x2fbd7=resolveApiBaseUrl(_0x5cd58b),_0x5ab9a1=this['toolboxBaseUrlOverride']&&_0x2fbd7===getEffectiveApiDomain()?this[_0x3216ad(0x12c)]:_0x2fbd7;try{const _0x447bad=new URL(_0x5ab9a1);if(_0x447bad['pathname']!=='/')return _0x5ab9a1;}catch{}return''+_0x5ab9a1+_0x372898;}static ['DEFAULT_TIMEOUT']=0x7530;async[a1_0x35b167(0x11a)](_0x20f7e6,_0x20a644={},_0x2c9a9f=DevApiClient[a1_0x35b167(0xe6)]){const _0x230625=a1_0x35b167,{method:method=_0x230625(0xdf),body:_0x12ff7b,extraHeaders:_0x392f91}=_0x20a644,_0x4e210c=new AbortController(),_0x12ccd0=setTimeout(()=>_0x4e210c['abort'](),_0x2c9a9f),_0x5e51c1={'Cookie':this[_0x230625(0x10b)],'X-Invoke-Source':_0x230625(0x131),..._0x392f91};method===_0x230625(0xe8)&&(_0x5e51c1['Content-Type']='application/json');try{const _0x203a11=await fetch(_0x20f7e6,{'method':method,'headers':_0x5e51c1,..._0x12ff7b!==undefined&&{'body':JSON['stringify'](_0x12ff7b)},'signal':_0x4e210c['signal']});clearTimeout(_0x12ccd0);if(!_0x203a11['ok']){if(_0x203a11[_0x230625(0xe3)]===0x191)throw new Error(_0x230625(0x120));let _0x22a9f6='';try{_0x22a9f6=await _0x203a11[_0x230625(0xf7)]();}catch{}throw new Error(_0x230625(0x119)+_0x203a11[_0x230625(0xe3)]+_0x230625(0xc4)+_0x20f7e6+(_0x22a9f6?'\x0a'+_0x22a9f6:''));}const _0x4f672f=await _0x203a11['json']();if(_0x4f672f&&typeof _0x4f672f===_0x230625(0x132)&&_0x230625(0x12e)in _0x4f672f&&!_0x4f672f[_0x230625(0x12e)]){const _0x38b91a=_0x4f672f;throw new Error(_0x230625(0x100)+(_0x38b91a[_0x230625(0x133)]||_0x38b91a[_0x230625(0x107)]||'Unknown\x20error'));}return _0x4f672f;}catch(_0x560c83){if(_0x560c83 instanceof Error&&_0x560c83['name']===_0x230625(0xd7))throw new Error(_0x230625(0xec)+_0x2c9a9f+_0x230625(0x104)+_0x20f7e6);if(_0x560c83 instanceof TypeError)throw new Error(_0x230625(0xc8)+_0x20f7e6);throw _0x560c83;}}async[a1_0x35b167(0x118)](_0x2ee8de,_0x180ee7){return this['_request'](_0x2ee8de,{'method':'GET'},_0x180ee7);}async[a1_0x35b167(0xc7)](_0x1a7481,_0x6ce5a0,_0x4630d1,_0x337d7){const _0x3a6ad1=a1_0x35b167;return this[_0x3a6ad1(0x11a)](_0x1a7481,{'method':_0x3a6ad1(0xe8),'body':_0x6ce5a0,'extraHeaders':_0x337d7},_0x4630d1);}async['getDatasetList'](_0x49197b){const _0x54e169=a1_0x35b167,_0xe0cbe6=_0x49197b?.[_0x54e169(0xfc)]||![],_0x866667=_0x54e169(0x10e)+this['appCode']+':'+this[_0x54e169(0xe9)];if(!_0xe0cbe6){const _0x9cccfb=apiCache[_0x54e169(0xd6)](_0x866667);if(_0x9cccfb)return _0x9cccfb;}const _0x376bb1=this['apiDomain']+_0x54e169(0xca),_0x3b67f4=await this['postRequest'](_0x376bb1,{'appCode':this['appCode']});return apiCache['set'](_0x866667,_0x3b67f4),_0x3b67f4;}async[a1_0x35b167(0x111)](_0x107df1,_0x298482=![],_0xec4d=![]){const _0x260deb=a1_0x35b167,_0x48ef5b=_0x260deb(0x109)+this['appCode']+':'+this[_0x260deb(0xe9)]+':'+_0x107df1+':'+(_0xec4d?_0x260deb(0x10f):_0x260deb(0x108));if(!_0x298482){const _0x3c7157=apiCache[_0x260deb(0xd6)](_0x48ef5b);if(_0x3c7157)return _0x3c7157;}const _0x50e8dc=/^\d+$/[_0x260deb(0xd9)](_0x107df1),_0x1c6050=_0x50e8dc?'id':_0x260deb(0x117),_0xc65bac=this[_0x260deb(0x125)]+_0x260deb(0x106)+_0x1c6050+'='+_0x107df1,_0x48ff28=await this[_0x260deb(0x118)](_0xc65bac);if(_0xec4d&&_0x48ff28[_0x260deb(0xc9)]?.[_0x260deb(0xfd)]){const _0x25c6e7=_0x48ff28[_0x260deb(0xc9)][_0x260deb(0x11b)]==='v2',_0x4c7715=Array[_0x260deb(0xc1)](_0x48ff28[_0x260deb(0xc9)][_0x260deb(0xf9)]);if(!_0x25c6e7||!_0x4c7715)try{const _0x256a43=await this['getDatasetRelations'](_0x48ff28['data']['modelCode'],_0x298482);_0x48ff28[_0x260deb(0xc9)][_0x260deb(0xf9)]=_0x256a43;}catch(_0x2a86b1){process['env']['NODE_ENV']!==_0x260deb(0xd9)&&console[_0x260deb(0x126)](_0x260deb(0x12f)+_0x107df1+':',_0x2a86b1);}}return apiCache['set'](_0x48ef5b,_0x48ff28),_0x48ff28;}async[a1_0x35b167(0xc6)](_0x4ebace){const _0x157d36=a1_0x35b167,_0x466a40=await this['getDatasetList'](),_0x360dda=Array['isArray'](_0x466a40[_0x157d36(0xc9)])?_0x466a40[_0x157d36(0xc9)]:_0x466a40['data']?.['tableData']||[];if(!_0x466a40['success'])return{'success':!![],'data':{'tableData':[]}};const _0x349819=_0x360dda['filter'](_0x4915cf=>{const _0x3d764d=_0x157d36,_0x5be8cd=_0x4ebace[_0x3d764d(0xe5)]();return _0x4915cf[_0x3d764d(0xdc)]?.['toLowerCase']()['includes'](_0x5be8cd)||_0x4915cf[_0x3d764d(0x117)]?.[_0x3d764d(0xe5)]()[_0x3d764d(0x130)](_0x5be8cd)||_0x4915cf[_0x3d764d(0xea)]?.[_0x3d764d(0xf5)]?.[_0x3d764d(0xe5)]()['includes'](_0x5be8cd)||_0x4915cf[_0x3d764d(0x101)]?.['toLowerCase']()['includes'](_0x5be8cd);});return{'success':!![],'data':{'tableData':_0x349819,'paging':{'totalCount':_0x349819[_0x157d36(0xce)],'currentPage':0x1,'pageSize':_0x349819[_0x157d36(0xce)]}}};}async[a1_0x35b167(0x10d)](_0x183f6b){const _0x4c76c4=a1_0x35b167,_0x3174af=_0x183f6b?.[_0x4c76c4(0xf8)]||0x1,_0x174abd=_0x183f6b?.[_0x4c76c4(0xcb)]||0x3e7,_0x3066a=this['apiDomain']+'/smartapi/custom/queryUserCustomSqlList',_0x5ea574={'appCode':this[_0x4c76c4(0x116)],'currentPage':_0x3174af,'pageSize':_0x174abd,..._0x183f6b?.[_0x4c76c4(0x11e)]&&{'sqlCode':_0x183f6b[_0x4c76c4(0x11e)]},..._0x183f6b?.[_0x4c76c4(0xf1)]&&{'sqlName':_0x183f6b[_0x4c76c4(0xf1)]}},_0x553d9a=await this[_0x4c76c4(0xc7)](_0x3066a,_0x5ea574);return _0x553d9a;}async['executeSql'](_0x128590){const _0x2988e7=a1_0x35b167,_0xe8af02=this[_0x2988e7(0x105)]+_0x2988e7(0xe0),_0x4685ed={'appCode':this[_0x2988e7(0x116)],'sqlCode':_0x128590['sqlCode'],..._0x128590['params']&&{'params':_0x128590[_0x2988e7(0xcf)]}};return await this['postRequest'](_0xe8af02,_0x4685ed);}async[a1_0x35b167(0xc2)](_0x4bc959){const _0x582e30=a1_0x35b167,_0x2cf909=this['apiDomain']+_0x582e30(0xef),_0x4ab686={'sqlName':_0x4bc959[_0x582e30(0xf1)],'dbId':_0x4bc959[_0x582e30(0xda)],'sqlContent':_0x4bc959[_0x582e30(0xff)],'appCode':this[_0x582e30(0x116)]};return await this['postRequest'](_0x2cf909,_0x4ab686);}async[a1_0x35b167(0xf0)](_0x291670){const _0x4fb88a=a1_0x35b167,_0xa6114f=this[_0x4fb88a(0x125)]+_0x4fb88a(0xed),_0x1314b6={'id':_0x291670['id'],'dbId':_0x291670[_0x4fb88a(0xda)],'sqlName':_0x291670[_0x4fb88a(0xf1)],'appCode':this['appCode'],'sqlContent':_0x291670['sqlContent']};return await this[_0x4fb88a(0xc7)](_0xa6114f,_0x1314b6);}async[a1_0x35b167(0xfb)](_0x371e08,_0x3b57b5=![]){const _0xf42d23=a1_0x35b167,_0x4f4eab='er-config:'+this[_0xf42d23(0x116)]+':'+this[_0xf42d23(0xe9)]+':'+_0x371e08;if(!_0x3b57b5){const _0x11eebf=apiCache['get'](_0x4f4eab);if(_0x11eebf)return _0x11eebf;}const _0x3d03d4=this[_0xf42d23(0x125)]+_0xf42d23(0xf2),_0xa79b2e=await this[_0xf42d23(0xc7)](_0x3d03d4,{'dblinkId':_0x371e08,'appCode':this[_0xf42d23(0x116)]});if(!_0xa79b2e[_0xf42d23(0x12e)]||!_0xa79b2e[_0xf42d23(0xc9)])throw new Error('Failed\x20to\x20get\x20ER\x20config\x20for\x20dblinkId:\x20'+_0x371e08);const _0xf9a7e9={'meta':_0xa79b2e['data']['meta'],'datasets':_0xa79b2e[_0xf42d23(0xc9)]['datasets']};return apiCache[_0xf42d23(0x10c)](_0x4f4eab,_0xf9a7e9),_0xf9a7e9;}async[a1_0x35b167(0x11d)](_0x466ba4=![]){const _0x59f19d=a1_0x35b167,_0x3f962d=await this['getDatasetList']({'forceRefresh':_0x466ba4}),_0x29b7fa=Array['isArray'](_0x3f962d[_0x59f19d(0xc9)])?_0x3f962d[_0x59f19d(0xc9)]:_0x3f962d[_0x59f19d(0xc9)]?.[_0x59f19d(0x12b)]||[],_0x8a9f07=new Set();for(const _0x3e523b of _0x29b7fa){_0x3e523b['dbtableConfig']?.[_0x59f19d(0xda)]&&_0x8a9f07[_0x59f19d(0xe7)](_0x3e523b['dbtableConfig'][_0x59f19d(0xda)]);}return Array[_0x59f19d(0xd4)](_0x8a9f07)['sort']((_0x542406,_0x34f6f6)=>_0x542406-_0x34f6f6);}async[a1_0x35b167(0xdd)](_0x3ddec6=![]){const _0x55957d=a1_0x35b167,_0x484451=_0x55957d(0x115)+this['appCode']+':'+this[_0x55957d(0xe9)];if(!_0x3ddec6){const _0x336191=apiCache[_0x55957d(0xd6)](_0x484451);if(_0x336191)return _0x336191;}const _0x277474=await this[_0x55957d(0x11d)](_0x3ddec6),_0x356147=new Map();for(const _0x2238b6 of _0x277474){try{const _0x415fb9=await this[_0x55957d(0xfb)](_0x2238b6,_0x3ddec6);_0x356147[_0x55957d(0x10c)](_0x2238b6,_0x415fb9);}catch(_0x230296){console['warn'](_0x55957d(0x134)+_0x2238b6+':',_0x230296);}}return apiCache['set'](_0x484451,_0x356147),_0x356147;}async[a1_0x35b167(0x114)](_0x520fa7,_0x120add=![]){const _0x36546f=a1_0x35b167,_0x307003=await this[_0x36546f(0xdd)](_0x120add),_0x441078=[],_0x3add57=[];for(const [,_0x57b3ad]of _0x307003){const _0x30755b=_0x57b3ad[_0x36546f(0x112)][_0x36546f(0x10a)](_0x86acb4=>_0x86acb4['datasetCode']===_0x520fa7);if(_0x30755b)for(const _0x3551ba of _0x30755b['relations']||[]){_0x441078['push']({'toDataset':_0x3551ba[_0x36546f(0xe2)],'toDatasetName':_0x3551ba[_0x36546f(0x136)],'toField':_0x3551ba[_0x36546f(0x113)],'fromField':_0x3551ba['fromField'],'joinType':_0x3551ba[_0x36546f(0xdb)]});}for(const _0x167167 of _0x57b3ad['datasets']){if(_0x167167[_0x36546f(0xd1)]===_0x520fa7)continue;for(const _0x1abcc0 of _0x167167['relations']||[]){_0x1abcc0[_0x36546f(0xe2)]===_0x520fa7&&_0x3add57[_0x36546f(0x12a)]({'fromDataset':_0x167167[_0x36546f(0xd1)],'fromDatasetName':_0x167167[_0x36546f(0xe1)],'fromField':_0x1abcc0[_0x36546f(0x11c)],'toField':_0x1abcc0['toField'],'joinType':_0x1abcc0[_0x36546f(0xdb)]});}}}return{'outgoing':_0x441078,'incoming':_0x3add57};}async[a1_0x35b167(0xc5)](){const _0xfd188b=a1_0x35b167,_0x1b613c=this[_0xfd188b(0x125)]+'/api/management/library/scripts/list?appCode='+encodeURIComponent(this[_0xfd188b(0x116)])+_0xfd188b(0xf4);return await this['request'](_0x1b613c);}async[a1_0x35b167(0xf6)](_0x31c722){const _0x51121d=a1_0x35b167,_0x28f375=this[_0x51121d(0x125)]+_0x51121d(0xd8)+_0x31c722;return await this[_0x51121d(0x118)](_0x28f375);}async[a1_0x35b167(0xfa)](_0x4b5bad){const _0x3f7d73=a1_0x35b167,_0x478c78=this[_0x3f7d73(0x125)]+_0x3f7d73(0xd5),_0x5f22d9={'id':_0x4b5bad['id']??null,'appCode':_0x4b5bad[_0x3f7d73(0x116)],'description':_0x4b5bad[_0x3f7d73(0x101)],'scriptContent':_0x4b5bad[_0x3f7d73(0x128)],'scriptType':_0x4b5bad[_0x3f7d73(0xfe)]};return await this[_0x3f7d73(0xc7)](_0x478c78,_0x5f22d9);}async[a1_0x35b167(0xcd)](){const _0x299dac=a1_0x35b167,_0x1f03cd=this[_0x299dac(0x105)]+_0x299dac(0x123);return await this[_0x299dac(0xc7)](_0x1f03cd,{});}async['saveCustomSqlViaToolbox'](_0x32b9c8){const _0x8de18f=a1_0x35b167,_0x12a2e2=this['resolveToolboxUrl'](_0x8de18f(0xee),_0x8de18f(0x127)),_0x1f4ae7=await this[_0x8de18f(0xc7)](_0x12a2e2,_0x32b9c8);return _0x1f4ae7[_0x8de18f(0xc9)];}async['saveBffScriptViaToolbox'](_0x23ab6c){const _0x44fb0d=a1_0x35b167,_0x5367b5=this[_0x44fb0d(0x12d)]('save-bff','/api/node-toolbox/bff/save'),_0x2e92ce=await this['postRequest'](_0x5367b5,_0x23ab6c);return _0x2e92ce['data'];}}function a1_0x9e2c(){const _0x277a5e=['saveBffScript','getErConfig','forceRefresh','modelCode','scriptType','sqlContent','API\x20error:\x20','description','online','toolboxBaseUrl','ms.\x20The\x20server\x20may\x20be\x20down\x20or\x20unreachable.\x0aURL:\x20','runtimeDomain','/smartapi/dataset/get-driven-data?','errorMsg','no-relations','dataset-detail:','find','cookie','set','getCustomSqlList','dataset-list:','with-relations','2966Srzlnx','getDatasetDetail','datasets','toField','getDatasetRelations','er-configs-all:','appCode','code','request','API\x20request\x20failed:\x20HTTP\x20','_request','doVersion','fromField','getUniqueDbIds','sqlCode','24849qfFXvl','Authentication\x20failed.\x20Please\x20login\x20again.','930391jpbPLH','850GmaRfk','/api/management/script/cache/clear','1019680FgkInS','apiDomain','warn','/api/node-toolbox/sql/save','scriptContent','2558348unpXZe','push','tableData','toolboxBaseUrlOverride','resolveToolboxUrl','success','[getDatasetDetail]\x20Failed\x20to\x20fetch\x20relations\x20for\x20','includes','mcp:vibe','object','message','Failed\x20to\x20get\x20ER\x20config\x20for\x20dbId\x20','runtimeBaseUrl','toDatasetName','isArray','saveUserCustomSql','50IaQkUO','\x0aURL:\x20','getBffScriptList','searchDatasets','postRequest','Network\x20error:\x20Unable\x20to\x20connect\x20to\x20the\x20server.\x20Please\x20check\x20your\x20network\x20connection\x20or\x20the\x20server\x20may\x20be\x20down.\x0aURL:\x20','data','/smartapi/dataset/get-dataset-list','pageSize','process','clearBffScriptCache','length','params','87705ednSPh','datasetCode','839472fgugLi','12ZlElRS','from','/api/management/library/scripts/save','get','AbortError','/api/management/library/scripts/info?id=','test','dbId','joinType','name','getAllErConfigs','6eaiYAJ','GET','/api/custom/executeSql','datasetName','toDataset','status','12TKdbPZ','toLowerCase','DEFAULT_TIMEOUT','add','POST','env','dbtableConfig','apiBaseUrl','API\x20request\x20timeout\x20after\x20','/smartapi/custom/updateUserCustomSql','save-sql','/smartapi/custom/saveUserCustomSql','updateUserCustomSql','sqlName','/smartapi/question/er-config','18UNpdKA','&type=ENDPOINT','tableName','getBffScriptInfo','text','currentPage','relations'];a1_0x9e2c=function(){return _0x277a5e;};return a1_0x9e2c();}
|
|
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'];}}
|
package/dist/auth/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
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 +1 @@
|
|
|
1
|
-
function
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
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();}
|
package/dist/config/env.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
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;}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
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);});
|
package/dist/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a9_0x2abb8e=a9_0x4c60;(function(_0x3c78e6,_0x2010c1){const _0x3a1170=a9_0x4c60,_0xc082b3=_0x3c78e6();while(!![]){try{const _0x4d4dbe=parseInt(_0x3a1170(0x17a))/0x1*(parseInt(_0x3a1170(0x186))/0x2)+-parseInt(_0x3a1170(0x1bd))/0x3*(-parseInt(_0x3a1170(0x17b))/0x4)+-parseInt(_0x3a1170(0x18e))/0x5+parseInt(_0x3a1170(0x19b))/0x6*(-parseInt(_0x3a1170(0x1d3))/0x7)+-parseInt(_0x3a1170(0x170))/0x8*(-parseInt(_0x3a1170(0x17f))/0x9)+-parseInt(_0x3a1170(0x178))/0xa*(parseInt(_0x3a1170(0x177))/0xb)+-parseInt(_0x3a1170(0x1c5))/0xc*(-parseInt(_0x3a1170(0x1a4))/0xd);if(_0x4d4dbe===_0x2010c1)break;else _0xc082b3['push'](_0xc082b3['shift']());}catch(_0x2552da){_0xc082b3['push'](_0xc082b3['shift']());}}}(a9_0x5b28,0xa0fa7));function a9_0x5b28(){const _0x472748=['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.','SQL\x20parameters','Client-side\x20filter\x20by\x20name/description/content','Dataset\x20codes\x20to\x20validate\x20against','bff','list_datasets','Lovrabet\x20Dataset\x20MCP\x20Server','log','Execute\x20Custom\x20SQL','Generate\x20SDK\x20Code','SQL\x20name/label\x20(optional;\x20MCP\x20auto-extracts\x20from\x20@lovrabet.sqlName\x20comment,\x20or\x20toolbox\x20generates\x20fallback)','Validate\x20SQL\x20content\x20without\x20saving.\x20Detects\x20SQL\x20type\x20(SELECT/INSERT/UPDATE/DELETE/DDL)\x20and\x20validates\x20table/column\x20existence.\x20Supports\x20MyBatis\x20syntax.','generate_sdk_code','MCP_DEBUG','3smEwJI','Server\x20started\x20successfully','SQL\x20content\x20(SELECT/INSERT/UPDATE/WITH\x20auto-saved;\x20DELETE/DDL\x20blocked).\x20Supports\x20MyBatis\x20syntax.','mcpServer','SQL\x20content\x20to\x20validate','Save\x20or\x20Update\x20Custom\x20SQL','Known\x20sqlCode\x20—\x20use\x20to\x20directly\x20target\x20the\x20record\x20for\x20update,\x20skipping\x20name\x20lookup','Login\x20to\x20Lovrabet\x20to\x20authenticate\x20for\x20dataset\x20queries.','12998712fFYGRn','get_dataset_operations','Get\x20list\x20of\x20all\x20API\x20operations\x20for\x20a\x20dataset.\x20Prefer\x20\x22filter\x22\x20for\x20queries,\x20\x22getOne\x22\x20for\x20single\x20record\x20by\x20ID.','Include\x20table\x20relations\x20(default:\x20true)','Get\x20Operation\x20Detail','generate_sql_code','daily','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`<\x20>\x20&`\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','JavaScript/TypeScript\x20code\x20with\x20default\x20export','Conflict\x20detection\x20is\x20handled\x20server-side\x20by\x20toolbox','registerAllTools','Search\x20keyword','list_bff_scripts','Server-side\x20fuzzy\x20match\x20by\x20sqlName','28aAyqvO','stringify','Generate\x20SQL\x20Code','List\x20Backend\x20Functions','List\x20SQL\x20Queries','Authentication\x20cookie\x20(optional,\x20uses\x20stored\x20cookie\x20from\x20login\x20if\x20not\x20provided)','Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)','8rkYGaY','string','List\x20all\x20available\x20custom\x20SQL\x20queries\x20with\x20metadata\x20and\x20parameters.','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.','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode.\x20Get\x20sqlCode\x20from\x20list_sql_queries\x20first.','connect','Environment\x20(optional,\x20uses\x20LOVRABET_ENV\x20or\x20defaults\x20to\x20online)','4453262LTVPCR','10XDfYuX','get_dataset_detail','1ssRpoF','2902620adaFHE','Generate\x20code\x20for\x20a\x20custom\x20SQL\x20query.\x20Validates\x20sqlCode\x20exists\x20first.\x20Use\x20target\x20to\x20switch\x20between\x20Frontend\x20SDK\x20and\x20Backend\x20Function\x20code\x20patterns.','Database\x20ID\x20(optional)','get_bff_script_info','7222086NbfUyQ','Use\x20camelCase\x20alias\x20instead\x20of\x20dataset_[code]\x20pattern\x20(default:\x20false)','array','Example\x20parameter\x20values','Get\x20detailed\x20operation\x20information\x20including\x20request/response\x20examples.','record','logInfo','455458XSUFAp','optional','Include\x20import\x20statements\x20(default:\x20true)','list_sql_queries','options','Backend\x20Function\x20ID\x20(from\x20list_bff_scripts)','login','get_operation_detail','2417835DbENGi','close','Dataset\x20code/ID','enum','Unknown\x20error\x20occurred','SQL\x20code\x20from\x20list_sql_queries\x20(must\x20exist)','Application\x20code\x20(optional\x20if\x20LOVRABET_APP_CODE\x20env\x20var\x20is\x20set)','min','sdk','../package.json','Get\x20Dataset\x20Detail','Items\x20per\x20page\x20(default:\x20999)','message','1936932CedEfB','Version:\x20','Get\x20Backend\x20Function\x20Info','Get\x20Operations','bffSaveEnabled','Server-side\x20fuzzy\x20match\x20by\x20sqlCode','search_datasets','version','save_or_update_custom_sql','13jFsBqx','SQL\x20ID\x20(kept\x20for\x20backward\x20compatibility,\x20not\x20used\x20by\x20toolbox)','union','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.','Validate\x20SQL\x20Content','save_or_update_bff_script','Client-side\x20filter\x20by\x20category','env','boolean','number','describe'];a9_0x5b28=function(){return _0x472748;};return a9_0x5b28();}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';const require=createRequire(import.meta.url),packageJson=require(a9_0x2abb8e(0x197)),authSchema={'appCode':z[a9_0x2abb8e(0x171)]()[a9_0x2abb8e(0x187)]()[a9_0x2abb8e(0x1ae)](a9_0x2abb8e(0x194)),'cookie':z[a9_0x2abb8e(0x171)]()['optional']()[a9_0x2abb8e(0x1ae)](a9_0x2abb8e(0x16e))};function registerToolWithOptions(_0x1f2dea,_0x10e0fc,_0x1dad6a,_0xe7eb4a){_0x1f2dea['registerTool'](_0x10e0fc,_0x1dad6a,_0xe7eb4a);}function wrapHandler(_0x47ac1d){return async _0x52b8fd=>{const _0x242d73=a9_0x4c60;try{const _0x52cde4=await _0x47ac1d(_0x52b8fd);return{'content':[{'type':'text','text':JSON['stringify'](_0x52cde4,null,0x2)}]};}catch(_0x1bbcb9){return{'content':[{'type':'text','text':JSON[_0x242d73(0x16a)]({'error':!![],'message':_0x1bbcb9[_0x242d73(0x19a)]||_0x242d73(0x192)},null,0x2)}],'isError':!![]};}};}export class LovrabetDatasetMCPServer{[a9_0x2abb8e(0x1c0)];['options'];constructor(_0x2d8b85={}){const _0x58abb9=a9_0x2abb8e;this[_0x58abb9(0x18a)]=_0x2d8b85,this[_0x58abb9(0x1c0)]=new McpServer({'name':'lovrabet-dataset-mcp','version':packageJson['version']},{'capabilities':{'tools':{}},'instructions':buildInstructions(_0x2d8b85)}),this[_0x58abb9(0x1cf)]();}[a9_0x2abb8e(0x1cf)](){const _0x4ae62e=a9_0x2abb8e;registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x18c),{'title':'Login','description':_0x4ae62e(0x1c4),'inputSchema':{'env':z[_0x4ae62e(0x191)](['online',_0x4ae62e(0x1cb)])[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x176))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(login)),registerToolWithOptions(this['mcpServer'],_0x4ae62e(0x1b4),{'title':'List\x20Datasets','description':'Get\x20list\x20of\x20all\x20datasets\x20with\x20metadata\x20and\x20table\x20relations\x20(ER\x20Config).\x20Use\x20includeRelations:\x20false\x20for\x20faster\x20response.','inputSchema':{...authSchema,'forceRefresh':z[_0x4ae62e(0x1ac)]()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)]('Bypass\x20cache\x20(default:\x20false)'),'includeRelations':z[_0x4ae62e(0x1ac)]()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1c8))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listDatasets)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x1a1),{'title':'Search\x20Datasets','description':'Search\x20datasets\x20by\x20keyword\x20(searches\x20in\x20name,\x20table\x20name,\x20code,\x20and\x20description).','inputSchema':{...authSchema,'keyword':z['string']()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1d0))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(searchDatasets)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x179),{'title':_0x4ae62e(0x198),'description':'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).','inputSchema':{...authSchema,'datasetCode':z['string']()['describe']('Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)'),'forceRefresh':z['boolean']()[_0x4ae62e(0x187)]()['describe']('Bypass\x20cache\x20(default:\x20false)'),'includeRelations':z['boolean']()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)]('Include\x20bidirectional\x20relations,\x20summary,\x20and\x20usage\x20hints\x20(default:\x20true)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetDetail)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x1c6),{'title':_0x4ae62e(0x19e),'description':_0x4ae62e(0x1c7),'inputSchema':{...authSchema,'datasetCode':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x1ae)]('Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetOperations)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x18d),{'title':_0x4ae62e(0x1c9),'description':_0x4ae62e(0x183),'inputSchema':{...authSchema,'datasetCode':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x190)),'operationName':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x16f))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getOperationDetail)),registerToolWithOptions(this['mcpServer'],_0x4ae62e(0x1bb),{'title':_0x4ae62e(0x1b8),'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[_0x4ae62e(0x171)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x190)),'operationName':z[_0x4ae62e(0x171)]()['describe']('Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)'),'includeImports':z[_0x4ae62e(0x1ac)]()['optional']()[_0x4ae62e(0x1ae)](_0x4ae62e(0x188)),'useAlias':z[_0x4ae62e(0x1ac)]()['optional']()[_0x4ae62e(0x1ae)](_0x4ae62e(0x180))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSDKCode)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x189),{'title':_0x4ae62e(0x16d),'description':_0x4ae62e(0x172),'inputSchema':{...authSchema,'keyword':z['string']()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1b1)),'category':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1aa)),'sqlCode':z['string']()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1a0)),'sqlName':z['string']()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1d2)),'pageSize':z[_0x4ae62e(0x1ad)]()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x199)),'currentPage':z[_0x4ae62e(0x1ad)]()['optional']()[_0x4ae62e(0x1ae)]('Page\x20number\x20(default:\x201)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listSqlQueries)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],'execute_custom_sql',{'title':_0x4ae62e(0x1b7),'description':_0x4ae62e(0x174),'inputSchema':{...authSchema,'sqlCode':z[_0x4ae62e(0x171)]()['min'](0x1)[_0x4ae62e(0x1ae)]('SQL\x20code\x20from\x20list_sql_queries\x20->\x20sqlCode'),'params':z[_0x4ae62e(0x184)](z[_0x4ae62e(0x1a6)]([z[_0x4ae62e(0x171)](),z[_0x4ae62e(0x1ad)]()]))['optional']()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1b0))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(executeCustomSql)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x1ca),{'title':_0x4ae62e(0x16b),'description':_0x4ae62e(0x17c),'inputSchema':{...authSchema,'sqlCode':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x195)](0x1)[_0x4ae62e(0x1ae)](_0x4ae62e(0x193)),'params':z[_0x4ae62e(0x184)](z[_0x4ae62e(0x1a6)]([z['string'](),z[_0x4ae62e(0x1ad)]()]))[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x182)),'includeImports':z[_0x4ae62e(0x1ac)]()['optional']()[_0x4ae62e(0x1ae)](_0x4ae62e(0x188)),'target':z[_0x4ae62e(0x191)]([_0x4ae62e(0x196),_0x4ae62e(0x1b3)])[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x173))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSqlCode)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],'validate_sql_content',{'title':_0x4ae62e(0x1a8),'description':_0x4ae62e(0x1ba),'inputSchema':{...authSchema,'sqlContent':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x195)](0x1)[_0x4ae62e(0x1ae)](_0x4ae62e(0x1c1)),'dbId':z[_0x4ae62e(0x1ad)]()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x17d)),'validateSchemas':z[_0x4ae62e(0x181)](z[_0x4ae62e(0x171)]())[_0x4ae62e(0x187)]()['describe'](_0x4ae62e(0x1b2))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(validateSqlContent)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x1a3),{'title':_0x4ae62e(0x1c2),'description':_0x4ae62e(0x1af),'inputSchema':{...authSchema,'sqlName':z['string']()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1b9)),'sqlCode':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x187)]()['describe'](_0x4ae62e(0x1c3)),'dbId':z[_0x4ae62e(0x1ad)]()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)]('Database\x20ID\x20from\x20get_dataset_detail\x20—\x20required\x20when\x20creating\x20new\x20SQL,\x20optional\x20when\x20updating'),'sqlContent':z[_0x4ae62e(0x171)]()[_0x4ae62e(0x195)](0x1)[_0x4ae62e(0x1ae)](_0x4ae62e(0x1bf)),'id':z['number']()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x1a5))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':![]}},wrapHandler(saveOrUpdateCustomSql)),this['options']['bffSaveEnabled']&&(registerToolWithOptions(this['mcpServer'],_0x4ae62e(0x1d1),{'title':_0x4ae62e(0x16c),'description':'List\x20all\x20Backend\x20Function\x20(ENDPOINT\x20type)\x20scripts.','inputSchema':{...authSchema},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listBffScripts)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x17e),{'title':_0x4ae62e(0x19d),'description':'Get\x20detailed\x20Backend\x20Function\x20script\x20including\x20full\x20source\x20code.','inputSchema':{...authSchema,'id':z[_0x4ae62e(0x1ad)]()[_0x4ae62e(0x1ae)](_0x4ae62e(0x18b))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getBffScriptInfo)),registerToolWithOptions(this[_0x4ae62e(0x1c0)],_0x4ae62e(0x1a9),{'title':'Save\x20or\x20Update\x20Backend\x20Function','description':_0x4ae62e(0x1a7),'inputSchema':{...authSchema,'id':z['number']()[_0x4ae62e(0x187)]()[_0x4ae62e(0x1ae)]('Backend\x20Function\x20ID\x20(for\x20updating)'),'description':z['string']()[_0x4ae62e(0x195)](0x1)['describe']('Function\x20description'),'scriptContent':z['string']()[_0x4ae62e(0x195)](0x1)[_0x4ae62e(0x1ae)](_0x4ae62e(0x1cd))},'annotations':{'readOnlyHint':![],'destructiveHint':!![],'idempotentHint':![]}},wrapHandler(saveOrUpdateBffScript)));}get['server'](){const _0x26f3bc=a9_0x2abb8e;return this[_0x26f3bc(0x1c0)];}async[a9_0x2abb8e(0x175)](_0x5119b0){await this['mcpServer']['connect'](_0x5119b0);}async[a9_0x2abb8e(0x18f)](){const _0xf11363=a9_0x2abb8e;await this[_0xf11363(0x1c0)][_0xf11363(0x18f)]();}[a9_0x2abb8e(0x185)](){const _0x458346=a9_0x2abb8e;if(!process[_0x458346(0x1ab)][_0x458346(0x1bc)])return;console[_0x458346(0x1b6)](_0x458346(0x1b5)),console[_0x458346(0x1b6)](_0x458346(0x19c)+packageJson[_0x458346(0x1a2)]),console[_0x458346(0x1b6)](_0x458346(0x1be)),this[_0x458346(0x18a)][_0x458346(0x19f)]&&(console[_0x458346(0x1b6)]('Backend\x20Function\x20write\x20tools\x20enabled\x20(--enable-bff-save)'),console['log'](_0x458346(0x1ce)));}}function a9_0x4c60(_0x391261,_0x2806e6){_0x391261=_0x391261-0x16a;const _0x5b28ad=a9_0x5b28();let _0x4c60e5=_0x5b28ad[_0x391261];return _0x4c60e5;}function buildInstructions(_0x58608d){const _0x469122=a9_0x2abb8e,_0x1f802c=_0x58608d[_0x469122(0x19f)]===!![],_0xf9a88d=_0x1f802c?'\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':'';return _0x469122(0x1cc)+_0xf9a88d+'\x0a';}export function createServer(_0x289350){return new LovrabetDatasetMCPServer(_0x289350);}
|
|
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`<\x20>\x20&`\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 +1 @@
|
|
|
1
|
-
(function(
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
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)]};}
|