@lovrabet/dataset-mcp-server 1.3.7 → 1.3.8
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/env.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-parser.js +1 -1
- package/package.json +3 -3
package/dist/api/cache.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x29e596=a0_0x4a5d;function a0_0x4a5d(_0x535a09,_0x444786){_0x535a09=_0x535a09-0xf6;const _0x2f895b=a0_0x2f89();let _0x4a5da3=_0x2f895b[_0x535a09];return _0x4a5da3;}(function(_0x338a96,_0x11810b){const _0x32ee3e=a0_0x4a5d,_0x40c9ce=_0x338a96();while(!![]){try{const _0x4370e4=-parseInt(_0x32ee3e(0x104))/0x1+parseInt(_0x32ee3e(0x100))/0x2+parseInt(_0x32ee3e(0xfe))/0x3+-parseInt(_0x32ee3e(0xfb))/0x4+-parseInt(_0x32ee3e(0xfc))/0x5+parseInt(_0x32ee3e(0xfa))/0x6*(parseInt(_0x32ee3e(0xf7))/0x7)+parseInt(_0x32ee3e(0xf6))/0x8;if(_0x4370e4===_0x11810b)break;else _0x40c9ce['push'](_0x40c9ce['shift']());}catch(_0x2c9ff0){_0x40c9ce['push'](_0x40c9ce['shift']());}}}(a0_0x2f89,0x9fae1));export class SimpleCache{[a0_0x29e596(0x108)]=new Map();[a0_0x29e596(0xf8)];constructor(_0x1ff612=0x5){const _0x50fa51=a0_0x29e596;this[_0x50fa51(0xf8)]=_0x1ff612*0x3c*0x3e8;}['get'](_0x12d194){const _0x57604c=a0_0x29e596,_0x1cc4cf=this['cache'][_0x57604c(0x102)](_0x12d194);if(!_0x1cc4cf)return null;const _0xc3e9e8=Date[_0x57604c(0x101)](),_0x45937e=_0xc3e9e8-_0x1cc4cf[_0x57604c(0x106)];if(_0x45937e>this['defaultTTL'])return this[_0x57604c(0x108)]['delete'](_0x12d194),null;const _0x44a082=Math[_0x57604c(0xff)](_0x45937e/0x3e8);return _0x1cc4cf['data'];}[a0_0x29e596(0x107)](_0x47f95c,_0x142c04){const _0x259843=a0_0x29e596;this[_0x259843(0x108)]['set'](_0x47f95c,{'data':_0x142c04,'timestamp':Date[_0x259843(0x101)]()});}['clear'](_0x577633){const _0x1ba6b3=a0_0x29e596;_0x577633?this[_0x1ba6b3(0x108)][_0x1ba6b3(0x103)](_0x577633):this[_0x1ba6b3(0x108)][_0x1ba6b3(0xfd)]();}['getStats'](){const _0x389284=a0_0x29e596;return{'size':this[_0x389284(0x108)][_0x389284(0xf9)],'ttlMinutes':this[_0x389284(0xf8)]/0xea60,'entries':Array['from'](this[_0x389284(0x108)][_0x389284(0x105)]())};}}function a0_0x2f89(){const _0x252fca=['clear','1287489RQSyFF','floor','1546396oAXzvl','now','get','delete','1056565rekiDw','keys','timestamp','set','cache','11614392OxMlfx','493087aRBgIx','defaultTTL','size','42mNyOPY','2990420Nowxam','3445140DDhSjT'];a0_0x2f89=function(){return _0x252fca;};return a0_0x2f89();}export const apiCache=new SimpleCache(0x5);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x151391=a1_0x3f5b;(function(_0x3558d7,_0x30332a){const _0x3aa01a=a1_0x3f5b,_0x33651f=_0x3558d7();while(!![]){try{const _0x552c7f=parseInt(_0x3aa01a(0x174))/0x1+parseInt(_0x3aa01a(0x14f))/0x2*(parseInt(_0x3aa01a(0x175))/0x3)+-parseInt(_0x3aa01a(0x197))/0x4+parseInt(_0x3aa01a(0x166))/0x5*(-parseInt(_0x3aa01a(0x165))/0x6)+-parseInt(_0x3aa01a(0x15b))/0x7*(parseInt(_0x3aa01a(0x156))/0x8)+parseInt(_0x3aa01a(0x194))/0x9+parseInt(_0x3aa01a(0x188))/0xa;if(_0x552c7f===_0x30332a)break;else _0x33651f['push'](_0x33651f['shift']());}catch(_0xecf2b1){_0x33651f['push'](_0x33651f['shift']());}}}(a1_0x5412,0x56ca7));import{getCookie}from'../auth/cookie-manager.js';import{getEffectiveApiDomain,getEffectiveRuntimeDomain}from'../auth/constants.js';function a1_0x3f5b(_0x4d5cb0,_0x43fc21){_0x4d5cb0=_0x4d5cb0-0x14e;const _0x541253=a1_0x5412();let _0x3f5b0f=_0x541253[_0x4d5cb0];return _0x3f5b0f;}function a1_0x5412(){const _0x59e86d=['datasets','/api/management/library/scripts/list?appCode=','env','runtimeBaseUrl','runtimeDomain','message','clearBffScriptCache','set','pageSize','application/json','from','getDatasetList','/smartapi/dataset/get-driven-data?','getCustomSqlList','/api/management/library/scripts/info?id=','dbId','apiDomain','API\x20request\x20failed:\x20HTTP\x20','Unknown\x20error','tableData','stringify','14PnyiNx','toField','DEFAULT_TIMEOUT','tableName','AbortError','LOVRABET_ENV','sort','1792696QbaEPj','dataset-detail:','includes','scriptType','ms.\x20The\x20server\x20may\x20be\x20down\x20or\x20unreachable.\x0aURL:\x20','21pKYaXU','/api/custom/executeSql','executeSql','appCode','/smartapi/custom/queryUserCustomSqlList','forceRefresh','postRequest','searchDatasets','request','Failed\x20to\x20get\x20ER\x20config\x20for\x20dblinkId:\x20','552dSopNz','4045vELRXc','test','signal','fromField','toDatasetName','success','No\x20authentication\x20cookie\x20found.\x20Please\x20login\x20first.','cookie','datasetCode','Authentication\x20failed.\x20Please\x20login\x20again.','apiBaseUrl','Network\x20error:\x20Unable\x20to\x20connect\x20to\x20the\x20server.\x20Please\x20check\x20your\x20network\x20connection\x20or\x20the\x20server\x20may\x20be\x20down.\x0aURL:\x20','dbtableConfig','status','224357WiNmTF','157809bFCQMy','Failed\x20to\x20get\x20ER\x20config\x20for\x20dbId\x20','er-config:','updateUserCustomSql','sqlContent','get','joinType','process','sqlName','text','relations','code','/api/management/library/scripts/save','find','scriptContent','object','NODE_ENV','name','data','733160rCLbdy','API\x20request\x20timeout\x20after\x20','saveUserCustomSql','getBffScriptInfo','length','warn','/smartapi/custom/saveUserCustomSql','toLowerCase','/api/management/script/cache/clear','filter','meta','sqlCode','5563323KrfQGg','er-configs-all:','getDatasetRelations','727428QKMXyo','push','description','/smartapi/question/er-config','/smartapi/custom/updateUserCustomSql','abort','json','isArray','toDataset','\x0aURL:\x20','getUniqueDbIds','getAllErConfigs','API\x20error:\x20','modelCode','params','errorMsg','datasetName','getErConfig'];a1_0x5412=function(){return _0x59e86d;};return a1_0x5412();}import{apiCache}from'./cache.js';export class DevApiClient{[a1_0x151391(0x15e)];[a1_0x151391(0x1ab)];[a1_0x151391(0x16d)];[a1_0x151391(0x1b9)];[a1_0x151391(0x1ad)];constructor(_0x310a8f){const _0x12c9db=a1_0x151391;this[_0x12c9db(0x15e)]=_0x310a8f[_0x12c9db(0x15e)],this[_0x12c9db(0x1ab)]=globalThis[_0x12c9db(0x17c)]?.[_0x12c9db(0x1ab)]?.[_0x12c9db(0x154)]||'online',this[_0x12c9db(0x16d)]=_0x310a8f['cookie']||getCookie(),this[_0x12c9db(0x1b9)]=_0x310a8f[_0x12c9db(0x170)]||getEffectiveApiDomain(),this[_0x12c9db(0x1ad)]=_0x310a8f[_0x12c9db(0x1ac)]||getEffectiveRuntimeDomain();if(!this['cookie'])throw new Error(_0x12c9db(0x16c));}static [a1_0x151391(0x151)]=0x7530;async[a1_0x151391(0x163)](_0x4a81ef,_0x5aa76a=DevApiClient['DEFAULT_TIMEOUT']){const _0x8c0bdf=a1_0x151391,_0x21a433=new AbortController(),_0x285dd4=setTimeout(()=>_0x21a433[_0x8c0bdf(0x19c)](),_0x5aa76a);try{const _0x572228=await fetch(_0x4a81ef,{'headers':{'Cookie':this[_0x8c0bdf(0x16d)]},'signal':_0x21a433[_0x8c0bdf(0x168)]});clearTimeout(_0x285dd4);if(!_0x572228['ok']){if(_0x572228[_0x8c0bdf(0x173)]===0x191)throw new Error(_0x8c0bdf(0x16f));let _0x2133b5='';try{_0x2133b5=await _0x572228['text']();}catch{}throw new Error(_0x8c0bdf(0x1ba)+_0x572228[_0x8c0bdf(0x173)]+_0x8c0bdf(0x1a0)+_0x4a81ef+(_0x2133b5?'\x0a'+_0x2133b5:''));}const _0x4a6b27=await _0x572228[_0x8c0bdf(0x19d)]();if(_0x4a6b27&&typeof _0x4a6b27==='object'&&_0x8c0bdf(0x16b)in _0x4a6b27&&!_0x4a6b27[_0x8c0bdf(0x16b)]){const _0x8c862d=_0x4a6b27;throw new Error(_0x8c0bdf(0x1a3)+(_0x8c862d[_0x8c0bdf(0x1ae)]||_0x8c862d[_0x8c0bdf(0x1a6)]||_0x8c0bdf(0x1bb)));}return _0x4a6b27;}catch(_0x13e0cc){if(_0x13e0cc instanceof Error&&_0x13e0cc[_0x8c0bdf(0x186)]==='AbortError')throw new Error(_0x8c0bdf(0x189)+_0x5aa76a+_0x8c0bdf(0x15a)+_0x4a81ef);if(_0x13e0cc instanceof TypeError)throw new Error(_0x8c0bdf(0x171)+_0x4a81ef);throw _0x13e0cc;}}async['postRequest'](_0x585608,_0x1d054a,_0x41635c=DevApiClient[a1_0x151391(0x151)]){const _0x581012=a1_0x151391,_0x1bfb52=new AbortController(),_0x3b814e=setTimeout(()=>_0x1bfb52['abort'](),_0x41635c);try{const _0x3adebb=await fetch(_0x585608,{'method':'POST','headers':{'Content-Type':_0x581012(0x1b2),'Cookie':this['cookie']},'body':JSON[_0x581012(0x14e)](_0x1d054a),'signal':_0x1bfb52[_0x581012(0x168)]});clearTimeout(_0x3b814e);if(!_0x3adebb['ok']){if(_0x3adebb['status']===0x191)throw new Error(_0x581012(0x16f));let _0x2a9f88='';try{_0x2a9f88=await _0x3adebb[_0x581012(0x17e)]();}catch{}throw new Error(_0x581012(0x1ba)+_0x3adebb[_0x581012(0x173)]+_0x581012(0x1a0)+_0x585608+(_0x2a9f88?'\x0a'+_0x2a9f88:''));}const _0x512ace=await _0x3adebb[_0x581012(0x19d)]();if(_0x512ace&&typeof _0x512ace===_0x581012(0x184)&&_0x581012(0x16b)in _0x512ace&&!_0x512ace[_0x581012(0x16b)]){const _0x4e5cc6=_0x512ace;throw new Error(_0x581012(0x1a3)+(_0x4e5cc6[_0x581012(0x1ae)]||_0x4e5cc6[_0x581012(0x1a6)]||_0x581012(0x1bb)));}return _0x512ace;}catch(_0x18cff8){if(_0x18cff8 instanceof Error&&_0x18cff8[_0x581012(0x186)]===_0x581012(0x153))throw new Error(_0x581012(0x189)+_0x41635c+'ms.\x20The\x20server\x20may\x20be\x20down\x20or\x20unreachable.\x0aURL:\x20'+_0x585608);if(_0x18cff8 instanceof TypeError)throw new Error(_0x581012(0x171)+_0x585608);throw _0x18cff8;}}async['getDatasetList'](_0x12f33a){const _0x316d60=a1_0x151391,_0x4a61d1=_0x12f33a?.[_0x316d60(0x160)]||![],_0x4034d6='dataset-list:'+this[_0x316d60(0x15e)]+':'+this[_0x316d60(0x1ab)];if(!_0x4a61d1){const _0x11b8d2=apiCache['get'](_0x4034d6);if(_0x11b8d2)return _0x11b8d2;}const _0x1eff04=this[_0x316d60(0x1b9)]+'/smartapi/dataset/get-dataset-list',_0x14d416=await this[_0x316d60(0x161)](_0x1eff04,{'appCode':this[_0x316d60(0x15e)]});return apiCache[_0x316d60(0x1b0)](_0x4034d6,_0x14d416),_0x14d416;}async['getDatasetDetail'](_0x4a1230,_0x1c325e=![],_0x1d83df=![]){const _0x3b3708=a1_0x151391,_0x550e06=_0x3b3708(0x157)+this[_0x3b3708(0x15e)]+':'+this['env']+':'+_0x4a1230+':'+(_0x1d83df?'with-relations':'no-relations');if(!_0x1c325e){const _0x4f1481=apiCache[_0x3b3708(0x17a)](_0x550e06);if(_0x4f1481)return _0x4f1481;}const _0x18e4ff=/^\d+$/[_0x3b3708(0x167)](_0x4a1230),_0xb4f0df=_0x18e4ff?'id':'code',_0x3aa81a=this[_0x3b3708(0x1b9)]+_0x3b3708(0x1b5)+_0xb4f0df+'='+_0x4a1230,_0x232284=await this[_0x3b3708(0x163)](_0x3aa81a);if(_0x1d83df&&_0x232284[_0x3b3708(0x187)]?.[_0x3b3708(0x1a4)]){const _0xfb1fe=_0x232284[_0x3b3708(0x187)]['doVersion']==='v2',_0x4c62e7=Array[_0x3b3708(0x19e)](_0x232284['data'][_0x3b3708(0x17f)]);if(!_0xfb1fe||!_0x4c62e7)try{const _0x351a90=await this[_0x3b3708(0x196)](_0x232284[_0x3b3708(0x187)][_0x3b3708(0x1a4)],_0x1c325e);_0x232284[_0x3b3708(0x187)][_0x3b3708(0x17f)]=_0x351a90;}catch(_0x4badcd){process[_0x3b3708(0x1ab)][_0x3b3708(0x185)]!=='test'&&console['warn']('[getDatasetDetail]\x20Failed\x20to\x20fetch\x20relations\x20for\x20'+_0x4a1230+':',_0x4badcd);}}return apiCache['set'](_0x550e06,_0x232284),_0x232284;}async[a1_0x151391(0x162)](_0x219e31){const _0x4d9550=a1_0x151391,_0x5e1926=await this[_0x4d9550(0x1b4)](),_0x5491e9=Array[_0x4d9550(0x19e)](_0x5e1926['data'])?_0x5e1926[_0x4d9550(0x187)]:_0x5e1926[_0x4d9550(0x187)]?.[_0x4d9550(0x1bc)]||[];if(!_0x5e1926[_0x4d9550(0x16b)])return{'success':!![],'data':{'tableData':[]}};const _0x8662be=_0x5491e9[_0x4d9550(0x191)](_0x18a3a4=>{const _0x5df42d=_0x4d9550,_0x232752=_0x219e31[_0x5df42d(0x18f)]();return _0x18a3a4[_0x5df42d(0x186)]?.[_0x5df42d(0x18f)]()[_0x5df42d(0x158)](_0x232752)||_0x18a3a4[_0x5df42d(0x180)]?.['toLowerCase']()[_0x5df42d(0x158)](_0x232752)||_0x18a3a4['dbtableConfig']?.[_0x5df42d(0x152)]?.[_0x5df42d(0x18f)]()[_0x5df42d(0x158)](_0x232752)||_0x18a3a4[_0x5df42d(0x199)]?.[_0x5df42d(0x18f)]()['includes'](_0x232752);});return{'success':!![],'data':{'tableData':_0x8662be,'paging':{'totalCount':_0x8662be[_0x4d9550(0x18c)],'currentPage':0x1,'pageSize':_0x8662be[_0x4d9550(0x18c)]}}};}async[a1_0x151391(0x1b6)](_0x3ff8de){const _0x219129=a1_0x151391,_0x181f4e=_0x3ff8de?.['currentPage']||0x1,_0x2ef659=_0x3ff8de?.[_0x219129(0x1b1)]||0x3e7,_0x2a3763=this[_0x219129(0x1b9)]+_0x219129(0x15f),_0x572fd1={'appCode':this[_0x219129(0x15e)],'currentPage':_0x181f4e,'pageSize':_0x2ef659,..._0x3ff8de?.[_0x219129(0x193)]&&{'sqlCode':_0x3ff8de[_0x219129(0x193)]},..._0x3ff8de?.['sqlName']&&{'sqlName':_0x3ff8de[_0x219129(0x17d)]}},_0x34ae9=await this[_0x219129(0x161)](_0x2a3763,_0x572fd1);return _0x34ae9;}async[a1_0x151391(0x15d)](_0x412c79){const _0x4f2a67=a1_0x151391,_0x4bd9a2=this[_0x4f2a67(0x1ad)]+_0x4f2a67(0x15c),_0x345879={'appCode':this['appCode'],'sqlCode':_0x412c79[_0x4f2a67(0x193)],..._0x412c79[_0x4f2a67(0x1a5)]&&{'params':_0x412c79['params']}};return await this[_0x4f2a67(0x161)](_0x4bd9a2,_0x345879);}async[a1_0x151391(0x18a)](_0x38ae47){const _0x1756bf=a1_0x151391,_0x1bb8ef=this[_0x1756bf(0x1b9)]+_0x1756bf(0x18e),_0x4b5455={'sqlName':_0x38ae47['sqlName'],'dbId':_0x38ae47['dbId'],'sqlContent':_0x38ae47[_0x1756bf(0x179)],'appCode':this['appCode']};return await this[_0x1756bf(0x161)](_0x1bb8ef,_0x4b5455);}async[a1_0x151391(0x178)](_0x12636d){const _0x15ce90=a1_0x151391,_0x3d7878=this[_0x15ce90(0x1b9)]+_0x15ce90(0x19b),_0x4c9eaa={'id':_0x12636d['id'],'dbId':_0x12636d[_0x15ce90(0x1b8)],'sqlName':_0x12636d['sqlName'],'appCode':this[_0x15ce90(0x15e)],'sqlContent':_0x12636d[_0x15ce90(0x179)]};return await this[_0x15ce90(0x161)](_0x3d7878,_0x4c9eaa);}async['getErConfig'](_0x3b495d,_0x10c819=![]){const _0x4fccf2=a1_0x151391,_0x2f664f=_0x4fccf2(0x177)+this[_0x4fccf2(0x15e)]+':'+this[_0x4fccf2(0x1ab)]+':'+_0x3b495d;if(!_0x10c819){const _0x32436f=apiCache[_0x4fccf2(0x17a)](_0x2f664f);if(_0x32436f)return _0x32436f;}const _0x2b48e3=this[_0x4fccf2(0x1b9)]+_0x4fccf2(0x19a),_0x556d52=await this[_0x4fccf2(0x161)](_0x2b48e3,{'dblinkId':_0x3b495d,'appCode':this[_0x4fccf2(0x15e)]});if(!_0x556d52[_0x4fccf2(0x16b)]||!_0x556d52[_0x4fccf2(0x187)])throw new Error(_0x4fccf2(0x164)+_0x3b495d);const _0x418a24={'meta':_0x556d52['data'][_0x4fccf2(0x192)],'datasets':_0x556d52[_0x4fccf2(0x187)][_0x4fccf2(0x1a9)]};return apiCache['set'](_0x2f664f,_0x418a24),_0x418a24;}async[a1_0x151391(0x1a1)](_0x1e8ef6=![]){const _0x3a91bd=a1_0x151391,_0x32e143=await this[_0x3a91bd(0x1b4)]({'forceRefresh':_0x1e8ef6}),_0x6a5f0f=Array[_0x3a91bd(0x19e)](_0x32e143[_0x3a91bd(0x187)])?_0x32e143['data']:_0x32e143[_0x3a91bd(0x187)]?.[_0x3a91bd(0x1bc)]||[],_0x3a250a=new Set();for(const _0xa3c649 of _0x6a5f0f){_0xa3c649[_0x3a91bd(0x172)]?.[_0x3a91bd(0x1b8)]&&_0x3a250a['add'](_0xa3c649[_0x3a91bd(0x172)][_0x3a91bd(0x1b8)]);}return Array[_0x3a91bd(0x1b3)](_0x3a250a)[_0x3a91bd(0x155)]((_0x55b309,_0x3bb6a3)=>_0x55b309-_0x3bb6a3);}async[a1_0x151391(0x1a2)](_0x558213=![]){const _0x322064=a1_0x151391,_0x56a87a=_0x322064(0x195)+this[_0x322064(0x15e)]+':'+this['env'];if(!_0x558213){const _0x29ded4=apiCache[_0x322064(0x17a)](_0x56a87a);if(_0x29ded4)return _0x29ded4;}const _0x792d41=await this[_0x322064(0x1a1)](_0x558213),_0x5d350a=new Map();for(const _0x4ea0f7 of _0x792d41){try{const _0x325e09=await this[_0x322064(0x1a8)](_0x4ea0f7,_0x558213);_0x5d350a['set'](_0x4ea0f7,_0x325e09);}catch(_0x5a18a6){console[_0x322064(0x18d)](_0x322064(0x176)+_0x4ea0f7+':',_0x5a18a6);}}return apiCache[_0x322064(0x1b0)](_0x56a87a,_0x5d350a),_0x5d350a;}async[a1_0x151391(0x196)](_0xf87e3,_0x8a8ee0=![]){const _0x1a85e1=a1_0x151391,_0x3fc61c=await this[_0x1a85e1(0x1a2)](_0x8a8ee0),_0x455fca=[],_0x12d00=[];for(const [,_0x2fbd2c]of _0x3fc61c){const _0x19b458=_0x2fbd2c[_0x1a85e1(0x1a9)][_0x1a85e1(0x182)](_0x9e4f1d=>_0x9e4f1d[_0x1a85e1(0x16e)]===_0xf87e3);if(_0x19b458)for(const _0x29ac60 of _0x19b458[_0x1a85e1(0x17f)]||[]){_0x455fca[_0x1a85e1(0x198)]({'toDataset':_0x29ac60[_0x1a85e1(0x19f)],'toDatasetName':_0x29ac60[_0x1a85e1(0x16a)],'toField':_0x29ac60[_0x1a85e1(0x150)],'fromField':_0x29ac60[_0x1a85e1(0x169)],'joinType':_0x29ac60[_0x1a85e1(0x17b)]});}for(const _0x150aaa of _0x2fbd2c['datasets']){if(_0x150aaa[_0x1a85e1(0x16e)]===_0xf87e3)continue;for(const _0x56a65e of _0x150aaa[_0x1a85e1(0x17f)]||[]){_0x56a65e['toDataset']===_0xf87e3&&_0x12d00[_0x1a85e1(0x198)]({'fromDataset':_0x150aaa[_0x1a85e1(0x16e)],'fromDatasetName':_0x150aaa[_0x1a85e1(0x1a7)],'fromField':_0x56a65e['fromField'],'toField':_0x56a65e['toField'],'joinType':_0x56a65e['joinType']});}}}return{'outgoing':_0x455fca,'incoming':_0x12d00};}async['getBffScriptList'](){const _0x2ed070=a1_0x151391,_0x62e41e=this[_0x2ed070(0x1b9)]+_0x2ed070(0x1aa)+encodeURIComponent(this[_0x2ed070(0x15e)])+'&type=ENDPOINT';return await this[_0x2ed070(0x163)](_0x62e41e);}async[a1_0x151391(0x18b)](_0x4930f3){const _0x1bc3c9=a1_0x151391,_0x4093d3=this[_0x1bc3c9(0x1b9)]+_0x1bc3c9(0x1b7)+_0x4930f3;return await this[_0x1bc3c9(0x163)](_0x4093d3);}async['saveBffScript'](_0x1b5214){const _0x3979b5=a1_0x151391,_0x1acb31=this[_0x3979b5(0x1b9)]+_0x3979b5(0x181),_0x320d02={'id':_0x1b5214['id']??null,'appCode':_0x1b5214['appCode'],'description':_0x1b5214[_0x3979b5(0x199)],'scriptContent':_0x1b5214[_0x3979b5(0x183)],'scriptType':_0x1b5214[_0x3979b5(0x159)]};return await this[_0x3979b5(0x161)](_0x1acb31,_0x320d02);}async[a1_0x151391(0x1af)](){const _0x18e142=a1_0x151391,_0x5812ea=this[_0x18e142(0x1ad)]+_0x18e142(0x190);return await this[_0x18e142(0x161)](_0x5812ea,{});}}
|
|
1
|
+
const a1_0x22ccd2=a1_0x4717;function a1_0x4717(_0x56cf91,_0x553e32){_0x56cf91=_0x56cf91-0x18b;const _0x383b4e=a1_0x383b();let _0x471784=_0x383b4e[_0x56cf91];return _0x471784;}(function(_0x335da9,_0xebc187){const _0x265d68=a1_0x4717,_0xbd9c35=_0x335da9();while(!![]){try{const _0x1a3c5d=-parseInt(_0x265d68(0x19e))/0x1*(-parseInt(_0x265d68(0x1b0))/0x2)+parseInt(_0x265d68(0x197))/0x3*(-parseInt(_0x265d68(0x1ee))/0x4)+-parseInt(_0x265d68(0x1f8))/0x5*(parseInt(_0x265d68(0x1ab))/0x6)+-parseInt(_0x265d68(0x1ca))/0x7*(parseInt(_0x265d68(0x1d9))/0x8)+-parseInt(_0x265d68(0x1b1))/0x9+parseInt(_0x265d68(0x1d1))/0xa*(-parseInt(_0x265d68(0x1f2))/0xb)+parseInt(_0x265d68(0x1b9))/0xc;if(_0x1a3c5d===_0xebc187)break;else _0xbd9c35['push'](_0xbd9c35['shift']());}catch(_0x3c4d7f){_0xbd9c35['push'](_0xbd9c35['shift']());}}}(a1_0x383b,0xe6874));import{getCookie}from'../auth/cookie-manager.js';function a1_0x383b(){const _0x236a16=['push','sqlName','apiBaseUrl','71869428PHwOam','No\x20authentication\x20cookie\x20found.\x20Please\x20login\x20first.','/api/management/library/scripts/list?appCode=','relations','set','er-configs-all:','LOVRABET_ENV','name','sqlCode','/smartapi/dataset/get-dataset-list','abort','runtimeDomain','add','find','/api/custom/executeSql','datasets','sort','11011959GKNysS','clearBffScriptCache','Failed\x20to\x20get\x20ER\x20config\x20for\x20dbId\x20','Network\x20error:\x20Unable\x20to\x20connect\x20to\x20the\x20server.\x20Please\x20check\x20your\x20network\x20connection\x20or\x20the\x20server\x20may\x20be\x20down.\x0aURL:\x20','toLowerCase','fromField','DEFAULT_TIMEOUT','11085410HnkhWC','warn','/smartapi/question/er-config','test','/api/management/library/scripts/info?id=','stringify','updateUserCustomSql','AbortError','8CkTcXj','dbId','getAllErConfigs','success','/smartapi/custom/queryUserCustomSqlList','online','Failed\x20to\x20get\x20ER\x20config\x20for\x20dblinkId:\x20','data','getErConfig','API\x20error:\x20','request','get','filter','Authentication\x20failed.\x20Please\x20login\x20again.','Unknown\x20error','saveUserCustomSql','isArray','signal','runtimeBaseUrl','params','apiDomain','991088kNiCQe','POST','ms.\x20The\x20server\x20may\x20be\x20down\x20or\x20unreachable.\x0aURL:\x20','no-relations','11IXNfYn','/api/management/script/cache/clear','from','toDataset','/smartapi/custom/saveUserCustomSql','/smartapi/custom/updateUserCustomSql','5Igimvz','API\x20request\x20failed:\x20HTTP\x20','dataset-list:','errorMsg','status','includes','\x0aURL:\x20','currentPage','dataset-detail:','[getDatasetDetail]\x20Failed\x20to\x20fetch\x20relations\x20for\x20','dbtableConfig','getBffScriptInfo','getCustomSqlList','description','text','code','postRequest','process','length','9GdYLwa','env','scriptType','API\x20request\x20timeout\x20after\x20','scriptContent','/smartapi/dataset/get-driven-data?','toDatasetName','5077jGUInM','pageSize','sqlContent','NODE_ENV','&type=ENDPOINT','getDatasetRelations','appCode','object','datasetName','doVersion','datasetCode','application/json','meta','6226956RZYzXC','joinType','getBffScriptList','cookie','message','302kCTVzL','12138138UXjaoI','json','getDatasetList','tableName','getUniqueDbIds'];a1_0x383b=function(){return _0x236a16;};return a1_0x383b();}import{getEffectiveApiDomain,getEffectiveRuntimeDomain}from'../auth/constants.js';import{apiCache}from'./cache.js';export class DevApiClient{['appCode'];[a1_0x22ccd2(0x198)];[a1_0x22ccd2(0x1ae)];[a1_0x22ccd2(0x1ed)];[a1_0x22ccd2(0x1c4)];constructor(_0x2fcb17){const _0x85feb=a1_0x22ccd2;this['appCode']=_0x2fcb17[_0x85feb(0x1a4)],this[_0x85feb(0x198)]=globalThis[_0x85feb(0x195)]?.['env']?.[_0x85feb(0x1bf)]||_0x85feb(0x1de),this['cookie']=_0x2fcb17[_0x85feb(0x1ae)]||getCookie(),this[_0x85feb(0x1ed)]=_0x2fcb17[_0x85feb(0x1b8)]||getEffectiveApiDomain(),this['runtimeDomain']=_0x2fcb17[_0x85feb(0x1eb)]||getEffectiveRuntimeDomain();if(!this[_0x85feb(0x1ae)])throw new Error(_0x85feb(0x1ba));}static ['DEFAULT_TIMEOUT']=0x7530;async[a1_0x22ccd2(0x1e3)](_0x126ae1,_0x3b78f3=DevApiClient['DEFAULT_TIMEOUT']){const _0x3c1001=a1_0x22ccd2,_0x358187=new AbortController(),_0x435119=setTimeout(()=>_0x358187[_0x3c1001(0x1c3)](),_0x3b78f3);try{const _0x317819=await fetch(_0x126ae1,{'headers':{'Cookie':this[_0x3c1001(0x1ae)]},'signal':_0x358187[_0x3c1001(0x1ea)]});clearTimeout(_0x435119);if(!_0x317819['ok']){if(_0x317819['status']===0x191)throw new Error(_0x3c1001(0x1e6));let _0x355694='';try{_0x355694=await _0x317819[_0x3c1001(0x192)]();}catch{}throw new Error(_0x3c1001(0x1f9)+_0x317819[_0x3c1001(0x1fc)]+_0x3c1001(0x1fe)+_0x126ae1+(_0x355694?'\x0a'+_0x355694:''));}const _0x5b4f59=await _0x317819['json']();if(_0x5b4f59&&typeof _0x5b4f59==='object'&&'success'in _0x5b4f59&&!_0x5b4f59[_0x3c1001(0x1dc)]){const _0x46ea70=_0x5b4f59;throw new Error('API\x20error:\x20'+(_0x46ea70[_0x3c1001(0x1af)]||_0x46ea70[_0x3c1001(0x1fb)]||'Unknown\x20error'));}return _0x5b4f59;}catch(_0x2a3c5a){if(_0x2a3c5a instanceof Error&&_0x2a3c5a[_0x3c1001(0x1c0)]===_0x3c1001(0x1d8))throw new Error('API\x20request\x20timeout\x20after\x20'+_0x3b78f3+'ms.\x20The\x20server\x20may\x20be\x20down\x20or\x20unreachable.\x0aURL:\x20'+_0x126ae1);if(_0x2a3c5a instanceof TypeError)throw new Error(_0x3c1001(0x1cd)+_0x126ae1);throw _0x2a3c5a;}}async['postRequest'](_0x1d4226,_0x739abe,_0x107206=DevApiClient[a1_0x22ccd2(0x1d0)]){const _0x1406c0=a1_0x22ccd2,_0x10dc91=new AbortController(),_0x5e21e7=setTimeout(()=>_0x10dc91['abort'](),_0x107206);try{const _0x171baa=await fetch(_0x1d4226,{'method':_0x1406c0(0x1ef),'headers':{'Content-Type':_0x1406c0(0x1a9),'Cookie':this[_0x1406c0(0x1ae)]},'body':JSON[_0x1406c0(0x1d6)](_0x739abe),'signal':_0x10dc91[_0x1406c0(0x1ea)]});clearTimeout(_0x5e21e7);if(!_0x171baa['ok']){if(_0x171baa['status']===0x191)throw new Error('Authentication\x20failed.\x20Please\x20login\x20again.');let _0x20e05e='';try{_0x20e05e=await _0x171baa[_0x1406c0(0x192)]();}catch{}throw new Error('API\x20request\x20failed:\x20HTTP\x20'+_0x171baa[_0x1406c0(0x1fc)]+_0x1406c0(0x1fe)+_0x1d4226+(_0x20e05e?'\x0a'+_0x20e05e:''));}const _0x5c128a=await _0x171baa[_0x1406c0(0x1b2)]();if(_0x5c128a&&typeof _0x5c128a===_0x1406c0(0x1a5)&&_0x1406c0(0x1dc)in _0x5c128a&&!_0x5c128a[_0x1406c0(0x1dc)]){const _0x4df5d7=_0x5c128a;throw new Error(_0x1406c0(0x1e2)+(_0x4df5d7[_0x1406c0(0x1af)]||_0x4df5d7[_0x1406c0(0x1fb)]||_0x1406c0(0x1e7)));}return _0x5c128a;}catch(_0x5c8dbf){if(_0x5c8dbf instanceof Error&&_0x5c8dbf[_0x1406c0(0x1c0)]===_0x1406c0(0x1d8))throw new Error(_0x1406c0(0x19a)+_0x107206+_0x1406c0(0x1f0)+_0x1d4226);if(_0x5c8dbf instanceof TypeError)throw new Error(_0x1406c0(0x1cd)+_0x1d4226);throw _0x5c8dbf;}}async['getDatasetList'](_0x4c0afb){const _0x3306cf=a1_0x22ccd2,_0x17d953=_0x4c0afb?.['forceRefresh']||![],_0x4a2947=_0x3306cf(0x1fa)+this['appCode']+':'+this['env'];if(!_0x17d953){const _0x27613a=apiCache[_0x3306cf(0x1e4)](_0x4a2947);if(_0x27613a)return _0x27613a;}const _0x22f511=this[_0x3306cf(0x1ed)]+_0x3306cf(0x1c2),_0x5f10a9=await this[_0x3306cf(0x194)](_0x22f511,{'appCode':this[_0x3306cf(0x1a4)]});return apiCache[_0x3306cf(0x1bd)](_0x4a2947,_0x5f10a9),_0x5f10a9;}async['getDatasetDetail'](_0x16ed98,_0x2ce4d5=![],_0x6d11f5=![]){const _0x1f6d4a=a1_0x22ccd2,_0x41ff63=_0x1f6d4a(0x18c)+this[_0x1f6d4a(0x1a4)]+':'+this[_0x1f6d4a(0x198)]+':'+_0x16ed98+':'+(_0x6d11f5?'with-relations':_0x1f6d4a(0x1f1));if(!_0x2ce4d5){const _0x51aeac=apiCache[_0x1f6d4a(0x1e4)](_0x41ff63);if(_0x51aeac)return _0x51aeac;}const _0x4e471c=/^\d+$/[_0x1f6d4a(0x1d4)](_0x16ed98),_0x31c712=_0x4e471c?'id':'code',_0x1716e5=this[_0x1f6d4a(0x1ed)]+_0x1f6d4a(0x19c)+_0x31c712+'='+_0x16ed98,_0xa0d7f3=await this[_0x1f6d4a(0x1e3)](_0x1716e5);if(_0x6d11f5&&_0xa0d7f3[_0x1f6d4a(0x1e0)]?.['modelCode']){const _0x151f4f=_0xa0d7f3[_0x1f6d4a(0x1e0)][_0x1f6d4a(0x1a7)]==='v2',_0x3efec0=Array[_0x1f6d4a(0x1e9)](_0xa0d7f3[_0x1f6d4a(0x1e0)][_0x1f6d4a(0x1bc)]);if(!_0x151f4f||!_0x3efec0)try{const _0x434151=await this[_0x1f6d4a(0x1a3)](_0xa0d7f3[_0x1f6d4a(0x1e0)]['modelCode'],_0x2ce4d5);_0xa0d7f3[_0x1f6d4a(0x1e0)][_0x1f6d4a(0x1bc)]=_0x434151;}catch(_0x53147b){process['env'][_0x1f6d4a(0x1a1)]!==_0x1f6d4a(0x1d4)&&console['warn'](_0x1f6d4a(0x18d)+_0x16ed98+':',_0x53147b);}}return apiCache['set'](_0x41ff63,_0xa0d7f3),_0xa0d7f3;}async['searchDatasets'](_0xdfc201){const _0x7c1e09=a1_0x22ccd2,_0xd1e39c=await this[_0x7c1e09(0x1b3)](),_0x2ed0c1=Array['isArray'](_0xd1e39c[_0x7c1e09(0x1e0)])?_0xd1e39c[_0x7c1e09(0x1e0)]:_0xd1e39c[_0x7c1e09(0x1e0)]?.['tableData']||[];if(!_0xd1e39c[_0x7c1e09(0x1dc)])return{'success':!![],'data':{'tableData':[]}};const _0x224ab6=_0x2ed0c1[_0x7c1e09(0x1e5)](_0x491db6=>{const _0x1ac828=_0x7c1e09,_0x486e42=_0xdfc201['toLowerCase']();return _0x491db6[_0x1ac828(0x1c0)]?.[_0x1ac828(0x1ce)]()[_0x1ac828(0x1fd)](_0x486e42)||_0x491db6[_0x1ac828(0x193)]?.['toLowerCase']()[_0x1ac828(0x1fd)](_0x486e42)||_0x491db6[_0x1ac828(0x18e)]?.[_0x1ac828(0x1b4)]?.[_0x1ac828(0x1ce)]()[_0x1ac828(0x1fd)](_0x486e42)||_0x491db6['description']?.[_0x1ac828(0x1ce)]()[_0x1ac828(0x1fd)](_0x486e42);});return{'success':!![],'data':{'tableData':_0x224ab6,'paging':{'totalCount':_0x224ab6[_0x7c1e09(0x196)],'currentPage':0x1,'pageSize':_0x224ab6['length']}}};}async[a1_0x22ccd2(0x190)](_0x5d13af){const _0x4720c0=a1_0x22ccd2,_0x23f5cf=_0x5d13af?.[_0x4720c0(0x18b)]||0x1,_0x56ef5c=_0x5d13af?.[_0x4720c0(0x19f)]||0x3e7,_0xc373e6=this[_0x4720c0(0x1ed)]+_0x4720c0(0x1dd),_0x1276eb={'appCode':this[_0x4720c0(0x1a4)],'currentPage':_0x23f5cf,'pageSize':_0x56ef5c,..._0x5d13af?.[_0x4720c0(0x1c1)]&&{'sqlCode':_0x5d13af[_0x4720c0(0x1c1)]},..._0x5d13af?.[_0x4720c0(0x1b7)]&&{'sqlName':_0x5d13af[_0x4720c0(0x1b7)]}},_0x226f33=await this[_0x4720c0(0x194)](_0xc373e6,_0x1276eb);return _0x226f33;}async['executeSql'](_0x4e8ff7){const _0x38e0ee=a1_0x22ccd2,_0x2b170d=this['runtimeDomain']+_0x38e0ee(0x1c7),_0x307d88={'appCode':this[_0x38e0ee(0x1a4)],'sqlCode':_0x4e8ff7[_0x38e0ee(0x1c1)],..._0x4e8ff7[_0x38e0ee(0x1ec)]&&{'params':_0x4e8ff7[_0x38e0ee(0x1ec)]}};return await this[_0x38e0ee(0x194)](_0x2b170d,_0x307d88);}async[a1_0x22ccd2(0x1e8)](_0x32d587){const _0x542ceb=a1_0x22ccd2,_0x1ab094=this[_0x542ceb(0x1ed)]+_0x542ceb(0x1f6),_0x3d9051={'sqlName':_0x32d587[_0x542ceb(0x1b7)],'dbId':_0x32d587[_0x542ceb(0x1da)],'sqlContent':_0x32d587[_0x542ceb(0x1a0)],'appCode':this[_0x542ceb(0x1a4)]};return await this[_0x542ceb(0x194)](_0x1ab094,_0x3d9051);}async[a1_0x22ccd2(0x1d7)](_0x291b08){const _0x36a551=a1_0x22ccd2,_0x828ff4=this[_0x36a551(0x1ed)]+_0x36a551(0x1f7),_0x4c5db4={'id':_0x291b08['id'],'dbId':_0x291b08['dbId'],'sqlName':_0x291b08[_0x36a551(0x1b7)],'appCode':this[_0x36a551(0x1a4)],'sqlContent':_0x291b08[_0x36a551(0x1a0)]};return await this[_0x36a551(0x194)](_0x828ff4,_0x4c5db4);}async[a1_0x22ccd2(0x1e1)](_0xfd60aa,_0x3c4a19=![]){const _0x3948c4=a1_0x22ccd2,_0x38ef81='er-config:'+this['appCode']+':'+this['env']+':'+_0xfd60aa;if(!_0x3c4a19){const _0x555133=apiCache[_0x3948c4(0x1e4)](_0x38ef81);if(_0x555133)return _0x555133;}const _0x15bbab=this['apiDomain']+_0x3948c4(0x1d3),_0x33f7fc=await this[_0x3948c4(0x194)](_0x15bbab,{'dblinkId':_0xfd60aa,'appCode':this[_0x3948c4(0x1a4)]});if(!_0x33f7fc['success']||!_0x33f7fc[_0x3948c4(0x1e0)])throw new Error(_0x3948c4(0x1df)+_0xfd60aa);const _0x2e3d4c={'meta':_0x33f7fc[_0x3948c4(0x1e0)][_0x3948c4(0x1aa)],'datasets':_0x33f7fc[_0x3948c4(0x1e0)]['datasets']};return apiCache['set'](_0x38ef81,_0x2e3d4c),_0x2e3d4c;}async[a1_0x22ccd2(0x1b5)](_0x2e88c0=![]){const _0xe8dad0=a1_0x22ccd2,_0x4acff0=await this[_0xe8dad0(0x1b3)]({'forceRefresh':_0x2e88c0}),_0x353481=Array[_0xe8dad0(0x1e9)](_0x4acff0[_0xe8dad0(0x1e0)])?_0x4acff0[_0xe8dad0(0x1e0)]:_0x4acff0[_0xe8dad0(0x1e0)]?.['tableData']||[],_0x2ccd1a=new Set();for(const _0x1806a5 of _0x353481){_0x1806a5['dbtableConfig']?.['dbId']&&_0x2ccd1a[_0xe8dad0(0x1c5)](_0x1806a5[_0xe8dad0(0x18e)][_0xe8dad0(0x1da)]);}return Array[_0xe8dad0(0x1f4)](_0x2ccd1a)[_0xe8dad0(0x1c9)]((_0x475cc5,_0x5c694f)=>_0x475cc5-_0x5c694f);}async['getAllErConfigs'](_0x235273=![]){const _0x3c3663=a1_0x22ccd2,_0x3a2922=_0x3c3663(0x1be)+this[_0x3c3663(0x1a4)]+':'+this['env'];if(!_0x235273){const _0x365576=apiCache[_0x3c3663(0x1e4)](_0x3a2922);if(_0x365576)return _0x365576;}const _0xb7797b=await this[_0x3c3663(0x1b5)](_0x235273),_0xba4919=new Map();for(const _0x18b99e of _0xb7797b){try{const _0x41bad0=await this[_0x3c3663(0x1e1)](_0x18b99e,_0x235273);_0xba4919['set'](_0x18b99e,_0x41bad0);}catch(_0x44463a){console[_0x3c3663(0x1d2)](_0x3c3663(0x1cc)+_0x18b99e+':',_0x44463a);}}return apiCache[_0x3c3663(0x1bd)](_0x3a2922,_0xba4919),_0xba4919;}async['getDatasetRelations'](_0x48fc8b,_0x404e8a=![]){const _0x589c06=a1_0x22ccd2,_0x476da1=await this[_0x589c06(0x1db)](_0x404e8a),_0x2c9819=[],_0xbc9e4=[];for(const [,_0x578a1e]of _0x476da1){const _0x177c40=_0x578a1e[_0x589c06(0x1c8)][_0x589c06(0x1c6)](_0x2d7417=>_0x2d7417['datasetCode']===_0x48fc8b);if(_0x177c40)for(const _0x5d6dbd of _0x177c40['relations']||[]){_0x2c9819[_0x589c06(0x1b6)]({'toDataset':_0x5d6dbd[_0x589c06(0x1f5)],'toDatasetName':_0x5d6dbd[_0x589c06(0x19d)],'toField':_0x5d6dbd['toField'],'fromField':_0x5d6dbd[_0x589c06(0x1cf)],'joinType':_0x5d6dbd[_0x589c06(0x1ac)]});}for(const _0x17aa28 of _0x578a1e[_0x589c06(0x1c8)]){if(_0x17aa28[_0x589c06(0x1a8)]===_0x48fc8b)continue;for(const _0xcaf443 of _0x17aa28[_0x589c06(0x1bc)]||[]){_0xcaf443[_0x589c06(0x1f5)]===_0x48fc8b&&_0xbc9e4['push']({'fromDataset':_0x17aa28[_0x589c06(0x1a8)],'fromDatasetName':_0x17aa28[_0x589c06(0x1a6)],'fromField':_0xcaf443['fromField'],'toField':_0xcaf443['toField'],'joinType':_0xcaf443[_0x589c06(0x1ac)]});}}}return{'outgoing':_0x2c9819,'incoming':_0xbc9e4};}async[a1_0x22ccd2(0x1ad)](){const _0x26e640=a1_0x22ccd2,_0x1850f2=this[_0x26e640(0x1ed)]+_0x26e640(0x1bb)+encodeURIComponent(this['appCode'])+_0x26e640(0x1a2);return await this[_0x26e640(0x1e3)](_0x1850f2);}async[a1_0x22ccd2(0x18f)](_0x332601){const _0x5b1873=a1_0x22ccd2,_0x22f79a=this[_0x5b1873(0x1ed)]+_0x5b1873(0x1d5)+_0x332601;return await this['request'](_0x22f79a);}async['saveBffScript'](_0x495934){const _0x1e947f=a1_0x22ccd2,_0xe1d149=this['apiDomain']+'/api/management/library/scripts/save',_0x2806af={'id':_0x495934['id']??null,'appCode':_0x495934['appCode'],'description':_0x495934[_0x1e947f(0x191)],'scriptContent':_0x495934[_0x1e947f(0x19b)],'scriptType':_0x495934[_0x1e947f(0x199)]};return await this[_0x1e947f(0x194)](_0xe1d149,_0x2806af);}async[a1_0x22ccd2(0x1cb)](){const _0x19c16d=a1_0x22ccd2,_0xe9609d=this[_0x19c16d(0x1c4)]+_0x19c16d(0x1f3);return await this[_0x19c16d(0x194)](_0xe9609d,{});}}
|
package/dist/auth/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a2_0x5f26(){var _0x5cccaa=['42vKVbJh','81989gHdacZ','9914751pzRcwm','1320TTDoTs','12053025kVfpww','5594185zfMksi','3067758VGVacN','34AivmnC','118616xlbJqj','8eqgaiX','2563XiPTPw'];a2_0x5f26=function(){return _0x5cccaa;};return a2_0x5f26();}(function(_0x28264a,_0x24e4c4){var _0x580200=a2_0x2729,_0x35717d=_0x28264a();while(!![]){try{var _0x5e82f0=parseInt(_0x580200(0x13f))/0x1*(parseInt(_0x580200(0x145))/0x2)+-parseInt(_0x580200(0x13e))/0x3*(-parseInt(_0x580200(0x13b))/0x4)+parseInt(_0x580200(0x143))/0x5+parseInt(_0x580200(0x144))/0x6+-parseInt(_0x580200(0x140))/0x7+-parseInt(_0x580200(0x13c))/0x8*(parseInt(_0x580200(0x142))/0x9)+parseInt(_0x580200(0x141))/0xa*(parseInt(_0x580200(0x13d))/0xb);if(_0x5e82f0===_0x24e4c4)break;else _0x35717d['push'](_0x35717d['shift']());}catch(_0x397c3d){_0x35717d['push'](_0x35717d['shift']());}}}(a2_0x5f26,0xae5fd));function a2_0x2729(_0x24448a,_0x59f180){_0x24448a=_0x24448a-0x13b;var _0x5f26c5=a2_0x5f26();var _0x272927=_0x5f26c5[_0x24448a];return _0x272927;}export{getEnvAppCode,getEnvironment,getEnvApiBaseUrl,getEnvRuntimeBaseUrl,getEnvUserBaseUrl,getEnvAuthCookie,configDir,cookieFile,defaultConfig,getEnvAppCodeWithFallback,getApiDomain,getUserDomain,getRuntimeDomain,getEffectiveApiDomain,getEffectiveRuntimeDomain,getEffectiveUserDomain}from'../config/env.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3fb0ee,_0x3b4a96){const _0x227299=a3_0x30a8,_0x4c8940=_0x3fb0ee();while(!![]){try{const _0x24407b=-parseInt(_0x227299(0x1ae))/0x1*(-parseInt(_0x227299(0x1ab))/0x2)+parseInt(_0x227299(0x1af))/0x3+parseInt(_0x227299(0x1b0))/0x4*(-parseInt(_0x227299(0x1b2))/0x5)+parseInt(_0x227299(0x1b5))/0x6*(parseInt(_0x227299(0x1b1))/0x7)+parseInt(_0x227299(0x1a9))/0x8+parseInt(_0x227299(0x1a8))/0x9+-parseInt(_0x227299(0x1aa))/0xa;if(_0x24407b===_0x3b4a96)break;else _0x4c8940['push'](_0x4c8940['shift']());}catch(_0x8cf4e8){_0x4c8940['push'](_0x4c8940['shift']());}}}(a3_0x29e5,0xb6794));import{readFileSync,writeFileSync}from'node:fs';import{getEnvAuthCookie,cookieFile}from'../config/env.js';export function getCookie(){const _0x10a1b1=a3_0x30a8,_0x5b9d6c=getEnvAuthCookie();if(_0x5b9d6c)return _0x5b9d6c;try{return readFileSync(cookieFile,_0x10a1b1(0x1ac))[_0x10a1b1(0x1b6)]();}catch{return'';}}export function saveCookie(_0x323562){const _0x4dca93=a3_0x30a8;try{writeFileSync(cookieFile,_0x323562,_0x4dca93(0x1ac));}catch(_0x108a9d){throw new Error(_0x4dca93(0x1b4)+cookieFile+':\x20'+_0x108a9d[_0x4dca93(0x1ad)]);}}function a3_0x30a8(_0x15fec8,_0x547403){_0x15fec8=_0x15fec8-0x1a8;const _0x29e538=a3_0x29e5();let _0x30a873=_0x29e538[_0x15fec8];return _0x30a873;}export function hasCookie(){const _0x523bcd=a3_0x30a8,_0x4c048d=getCookie();return _0x4c048d[_0x523bcd(0x1b3)]>0x0;}export function clearCookie(){const _0x565145=a3_0x30a8;try{writeFileSync(cookieFile,'',_0x565145(0x1ac));}catch{}}function a3_0x29e5(){const _0x4a97fc=['3419352JBvkFr','trim','2170710ovuoQY','6797192CfnLzG','25686280MkOksE','790IUfCbM','utf-8','message','796pvUGLP','3301833lXeOUa','1318456eRUDzs','14oOMzTg','5gHdUfC','length','Failed\x20to\x20save\x20cookie\x20to\x20'];a3_0x29e5=function(){return _0x4a97fc;};return a3_0x29e5();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a4_0x532b(){const _0x1d04b7=['27WSznlQ','52876nkpZBB','192574KIkHHS','10134750oYTNVU','1198688ttCxBX','445025slQpxI','json','10101150qQKprc','session','40yZTBYd','6821454YVJXkV','35wRLcsQ'];a4_0x532b=function(){return _0x1d04b7;};return a4_0x532b();}function a4_0x371f(_0x3f67e4,_0x3969de){_0x3f67e4=_0x3f67e4-0xc3;const _0x532b09=a4_0x532b();let _0x371ff8=_0x532b09[_0x3f67e4];return _0x371ff8;}(function(_0x396d65,_0x148a1a){const _0x2a4d0b=a4_0x371f,_0xa82bd8=_0x396d65();while(!![]){try{const _0x1e1798=-parseInt(_0x2a4d0b(0xce))/0x1+-parseInt(_0x2a4d0b(0xcc))/0x2*(-parseInt(_0x2a4d0b(0xca))/0x3)+parseInt(_0x2a4d0b(0xcb))/0x4*(parseInt(_0x2a4d0b(0xc9))/0x5)+parseInt(_0x2a4d0b(0xc8))/0x6+-parseInt(_0x2a4d0b(0xc3))/0x7*(parseInt(_0x2a4d0b(0xc7))/0x8)+parseInt(_0x2a4d0b(0xc5))/0x9+-parseInt(_0x2a4d0b(0xcd))/0xa;if(_0x1e1798===_0x148a1a)break;else _0xa82bd8['push'](_0xa82bd8['shift']());}catch(_0x20f31b){_0xa82bd8['push'](_0xa82bd8['shift']());}}}(a4_0x532b,0xa80d1));import{getCookie}from'./cookie-manager.js';import{getUserDomain}from'../config/env.js';export async function isSessionValid(){const _0x3165d7=a4_0x371f,_0x44598d=getCookie();if(!_0x44598d)return![];try{const _0x25c928=await fetch(getUserDomain()+'/api/auth/get-session',{'headers':{'cookie':_0x44598d}});if(!_0x25c928['ok'])return![];const _0xa1f021=await _0x25c928[_0x3165d7(0xc4)]();return!!(_0xa1f021?.[_0x3165d7(0xc6)]&&_0xa1f021?.['user']);}catch{return![];}}
|
package/dist/config/env.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a5_0x44301f=a5_0x5907;(function(_0x466e5d,_0x21a947){const _0x4a9d8b=a5_0x5907,_0x5ac3c3=_0x466e5d();while(!![]){try{const _0x1ac7ee=parseInt(_0x4a9d8b(0xe5))/0x1*(-parseInt(_0x4a9d8b(0xdb))/0x2)+parseInt(_0x4a9d8b(0xf2))/0x3+-parseInt(_0x4a9d8b(0xea))/0x4*(parseInt(_0x4a9d8b(0xeb))/0x5)+parseInt(_0x4a9d8b(0xde))/0x6*(-parseInt(_0x4a9d8b(0xf4))/0x7)+-parseInt(_0x4a9d8b(0xed))/0x8+-parseInt(_0x4a9d8b(0xe2))/0x9*(parseInt(_0x4a9d8b(0xf1))/0xa)+parseInt(_0x4a9d8b(0xe0))/0xb;if(_0x1ac7ee===_0x21a947)break;else _0x5ac3c3['push'](_0x5ac3c3['shift']());}catch(_0x1896df){_0x5ac3c3['push'](_0x5ac3c3['shift']());}}}(a5_0x23f6,0xe556b));import{mkdirSync}from'node:fs';import{homedir}from'node:os';function a5_0x5907(_0x16f74e,_0x4e3062){_0x16f74e=_0x16f74e-0xda;const _0x23f662=a5_0x23f6();let _0x59074c=_0x23f662[_0x16f74e];return _0x59074c;}export function getEnvAppCode(){const _0x54622a=a5_0x5907;return process[_0x54622a(0xe3)][_0x54622a(0xe7)];}export function getEnvironment(){const _0x31540f=a5_0x5907;return process[_0x31540f(0xe3)][_0x31540f(0xec)]||_0x31540f(0xf3);}export function getEnvApiBaseUrl(){const _0x5460cd=a5_0x5907;return process[_0x5460cd(0xe3)][_0x5460cd(0xe4)];}export function getEnvRuntimeBaseUrl(){const _0x44dd4c=a5_0x5907;return process['env'][_0x44dd4c(0xe1)];}export function getEnvUserBaseUrl(){const _0x518466=a5_0x5907;return process[_0x518466(0xe3)][_0x518466(0xdd)];}export function getEnvAuthCookie(){const _0x1dff77=a5_0x5907;return process[_0x1dff77(0xe3)]['LOVRABET_AUTH_COOKIE']?.['trim']();}export function isTestEnv(){const _0xb8c8c9=a5_0x5907;return process[_0xb8c8c9(0xe3)][_0xb8c8c9(0xda)]===_0xb8c8c9(0xef);}export function isProductionEnv(){const _0xed0e3c=a5_0x5907;return process['env'][_0xed0e3c(0xda)]===_0xed0e3c(0xe6);}function a5_0x23f6(){const _0x317858=['2156kjyaAZ','12010jMTCoG','LOVRABET_ENV','6387800VtPmNi','daily','test','https://api.lovrabet.com','1390xjaatt','1937064IUgTdm','online','7USPakU','NODE_ENV','10486AcpDpG','/.lovrabet','LOVRABET_USER_BASEURL','3238644iznlmW','development','60045150qanDBX','LOVRABET_RUNTIME_BASEURL','90279iZUVcn','env','LOVRABET_API_BASEURL','217uFhdXU','production','LOVRABET_APP_CODE','https://user.lovrabet.com','https://daily-api.lovrabet.com'];a5_0x23f6=function(){return _0x317858;};return a5_0x23f6();}export function isDevelopmentEnv(){const _0x59b2a9=a5_0x5907;return process[_0x59b2a9(0xe3)][_0x59b2a9(0xda)]===_0x59b2a9(0xdf);}export function shouldLog(){const _0x1758b1=a5_0x5907,_0x36e89=process[_0x1758b1(0xe3)][_0x1758b1(0xda)];return _0x36e89===_0x1758b1(0xdf)||_0x36e89===_0x1758b1(0xee);}export const configDir=homedir()+a5_0x44301f(0xdc);export const cookieFile=configDir+'/cookie';mkdirSync(configDir,{'recursive':!![]});export const defaultConfig={'appCode':getEnvAppCode(),'env':getEnvironment()};export function getEnvAppCodeWithFallback(_0x48cab3){return getEnvAppCode()||_0x48cab3;}export function getApiDomain(){const _0x297af0=a5_0x44301f,_0x508243=getEnvironment();return _0x508243==='online'?_0x297af0(0xf0):_0x297af0(0xe9);}export function getUserDomain(){const _0x4ba8af=a5_0x44301f,_0xf64d4a=getEnvironment();return _0xf64d4a===_0x4ba8af(0xf3)?_0x4ba8af(0xe8):'https://user-daily.lovrabet.com';}export function getRuntimeDomain(){const _0x543982=getEnvironment();return _0x543982==='online'?'https://runtime.lovrabet.com':'https://daily-runtime.lovrabet.com';}export function getEffectiveApiDomain(){return getEnvApiBaseUrl()||getApiDomain();}export function getEffectiveRuntimeDomain(){return getEnvRuntimeBaseUrl()||getRuntimeDomain();}export function getEffectiveUserDomain(){return getEnvUserBaseUrl()||getUserDomain();}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const a6_0x3c25ff=a6_0x41b4;(function(_0x82fa3c,_0x5874d5){const _0x3123e2=a6_0x41b4,_0x5716e0=_0x82fa3c();while(!![]){try{const _0x21444a=-parseInt(_0x3123e2(0x7c))/0x1+-parseInt(_0x3123e2(0x88))/0x2+-parseInt(_0x3123e2(0x7b))/0x3*(parseInt(_0x3123e2(0x7f))/0x4)+-parseInt(_0x3123e2(0x7d))/0x5+parseInt(_0x3123e2(0x7e))/0x6*(parseInt(_0x3123e2(0x80))/0x7)+-parseInt(_0x3123e2(0x86))/0x8*(parseInt(_0x3123e2(0x75))/0x9)+parseInt(_0x3123e2(0x83))/0xa;if(_0x21444a===_0x5874d5)break;else _0x5716e0['push'](_0x5716e0['shift']());}catch(_0x4dc43d){_0x5716e0['push'](_0x5716e0['shift']());}}}(a6_0x3621,0xba308));function a6_0x3621(){const _0x3576f3=['4192955WjFMFR','78dwApdc','344sISGZm','357wxGiGT','MCP_DEBUG','Failed\x20to\x20start\x20Lovrabet\x20Dataset\x20MCP\x20Server:','46408250BgEGeW','catch','includes','5384rbjFVo','exit','2644916KRRWOO','logInfo','--dangerously-bff-save','connect','error','1494UZchBw','Shutting\x20down\x20Lovrabet\x20Dataset\x20MCP\x20Server...','env','log','argv','SIGINT','12729cwqtLj','1241191aOLkXp'];a6_0x3621=function(){return _0x3576f3;};return a6_0x3621();}import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{createServer}from'./server.js';function a6_0x41b4(_0x1e25bd,_0x337ad8){_0x1e25bd=_0x1e25bd-0x75;const _0x362174=a6_0x3621();let _0x41b4f1=_0x362174[_0x1e25bd];return _0x41b4f1;}function parseArgs(){const _0x33ae4d=a6_0x41b4,_0xe51840=process[_0x33ae4d(0x79)]['slice'](0x2),_0x3260fc=_0xe51840[_0x33ae4d(0x85)](_0x33ae4d(0x8a));return{'bffAutosave':_0x3260fc};}async function main(){const _0x46ff74=a6_0x41b4;try{const {bffAutosave:_0x3b2a36}=parseArgs(),_0x24858c=createServer({'bffAutosave':_0x3b2a36}),_0x5c677f=new StdioServerTransport();_0x24858c[_0x46ff74(0x89)](),await _0x24858c[_0x46ff74(0x8b)](_0x5c677f),process['on'](_0x46ff74(0x7a),async()=>{const _0x1d336c=_0x46ff74;process[_0x1d336c(0x77)][_0x1d336c(0x81)]&&console[_0x1d336c(0x78)](_0x1d336c(0x76)),process[_0x1d336c(0x87)](0x0);}),process['on']('SIGTERM',async()=>{const _0x3e3d2b=_0x46ff74;process[_0x3e3d2b(0x77)][_0x3e3d2b(0x81)]&&console['log'](_0x3e3d2b(0x76)),process[_0x3e3d2b(0x87)](0x0);});}catch(_0x28505d){console[_0x46ff74(0x8c)](_0x46ff74(0x82),_0x28505d),process[_0x46ff74(0x87)](0x1);}}main()[a6_0x3c25ff(0x84)](_0x4c7a10=>{const _0x587a0b=a6_0x3c25ff;console[_0x587a0b(0x8c)]('Unhandled\x20error:',_0x4c7a10),process['exit'](0x1);});
|
package/dist/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a7_0x4f18a9=a7_0x35b0;(function(_0x444503,_0x42d36e){const _0x114490=a7_0x35b0,_0x143425=_0x444503();while(!![]){try{const _0x5481ee=parseInt(_0x114490(0x19a))/0x1+-parseInt(_0x114490(0x1c0))/0x2*(-parseInt(_0x114490(0x1ed))/0x3)+-parseInt(_0x114490(0x1bf))/0x4+parseInt(_0x114490(0x199))/0x5*(-parseInt(_0x114490(0x1ad))/0x6)+-parseInt(_0x114490(0x1a0))/0x7+-parseInt(_0x114490(0x1a9))/0x8+parseInt(_0x114490(0x1b4))/0x9*(parseInt(_0x114490(0x1cd))/0xa);if(_0x5481ee===_0x42d36e)break;else _0x143425['push'](_0x143425['shift']());}catch(_0x52d0e8){_0x143425['push'](_0x143425['shift']());}}}(a7_0xae19,0x5aea2));import{McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';function a7_0x35b0(_0x737b90,_0x131f9e){_0x737b90=_0x737b90-0x192;const _0xae1968=a7_0xae19();let _0x35b000=_0xae1968[_0x737b90];return _0x35b000;}function a7_0xae19(){const _0x52e643=['generate_sdk_code','Save\x20or\x20Update\x20Custom\x20SQL','union','env','array','Save\x20or\x20update\x20a\x20custom\x20SQL\x20query.\x20Only\x20SELECT\x20queries\x20are\x20auto-saved;\x20non-SELECT\x20are\x20blocked\x20for\x20safety.\x20Supports\x20MyBatis\x20syntax.\x20Get\x20dbId\x20from\x20get_dataset_detail.','Get\x20detailed\x20dataset\x20information\x20including\x20fields,\x20operations,\x20and\x20relations.\x20Supports\x20both\x20dataset\x20ID\x20(numeric)\x20and\x20code\x20(UUID).','326488KGArDj','Login\x20to\x20Lovrabet\x20to\x20authenticate\x20for\x20dataset\x20queries.','Save\x20or\x20Update\x20Backend\x20Function','options','582vKToRU','You\x20are\x20an\x20AI\x20assistant\x20helping\x20developers\x20work\x20with\x20the\x20Lovrabet\x20data\x20platform.\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\x20Pattern\x0aAll\x20custom\x20SQLs\x20use\x20the\x20same\x20pattern:\x0a```typescript\x0aconst\x20data\x20=\x20await\x20client.api.executeSql(sqlCode,\x20params);\x0aif\x20(!data.execSuccess)\x20throw\x20new\x20Error(data.execError);\x0aconst\x20results\x20=\x20data.execResult\x20||\x20[];\x0a```\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','Server-side\x20fuzzy\x20match\x20by\x20sqlCode','Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)','log','Server\x20started\x20successfully','online','1290825bdMBNN','Dataset\x20code/ID','execute_custom_sql','SQL\x20parameters','logInfo','search_datasets','enum','Login','Database\x20ID\x20from\x20get_dataset_detail','Execute\x20Custom\x20SQL','bffAutosave','2049428atNJdv','1183786aVcGkb','SQL\x20code\x20from\x20list_sql_queries\x20(must\x20exist)','List\x20Backend\x20Functions','list_sql_queries','Generate\x20SDK\x20code\x20for\x20a\x20custom\x20SQL\x20query.\x20Validates\x20sqlCode\x20exists\x20first.\x20Use\x20list_sql_queries\x20to\x20find\x20valid\x20sqlCodes.','Backend\x20Function\x20ID\x20(from\x20list_bff_scripts)','boolean','Search\x20Datasets','SQL\x20name/label','Example\x20parameter\x20values','validate_sql_content','../package.json','close','10HEwdLZ','number','List\x20Datasets','SQL\x20content\x20to\x20validate','string','registerTool','save_or_update_custom_sql','Include\x20import\x20statements\x20(default:\x20true)','describe','Server-side\x20fuzzy\x20match\x20by\x20sqlName','text','Include\x20table\x20relations\x20(default:\x20true)','Get\x20Operations','login','stringify','SQL\x20ID\x20(for\x20updating\x20existing\x20SQL)','Get\x20Dataset\x20Detail','List\x20SQL\x20Queries','mcpServer','Get\x20list\x20of\x20all\x20API\x20operations\x20for\x20a\x20dataset.\x20Prefer\x20\x22filter\x22\x20for\x20queries,\x20\x22getOne\x22\x20for\x20single\x20record\x20by\x20ID.','version','Dataset\x20codes\x20to\x20validate\x20against','Items\x20per\x20page\x20(default:\x20999)','Search\x20keyword','Application\x20code\x20(optional\x20if\x20LOVRABET_APP_CODE\x20env\x20var\x20is\x20set)','registerAllTools','SQL\x20SELECT\x20statement\x20(supports\x20MyBatis\x20syntax)','connect','Get\x20Backend\x20Function\x20Info','Authentication\x20cookie\x20(optional,\x20uses\x20stored\x20cookie\x20from\x20login\x20if\x20not\x20provided)','list_datasets','min','3plaJHu','record','generate_sql_code','Database\x20ID\x20(optional)','Bypass\x20cache\x20(default:\x20false)','Get\x20detailed\x20Backend\x20Function\x20script\x20including\x20full\x20source\x20code.','Generate\x20TypeScript\x20SDK\x20code\x20for\x20a\x20dataset\x20operation,\x20including\x20field\x20metadata.\x20Check\x20user\x27s\x20@lovrabet/sdk\x20version\x20in\x20package.json\x20first.','optional','Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)','List\x20all\x20Backend\x20Function\x20(ENDPOINT\x20type)\x20scripts.','lovrabet-dataset-mcp','Get\x20list\x20of\x20all\x20datasets\x20with\x20metadata\x20and\x20table\x20relations\x20(ER\x20Config).\x20Use\x20includeRelations:\x20false\x20for\x20faster\x20response.','server','Use\x20camelCase\x20alias\x20instead\x20of\x20dataset_[code]\x20pattern\x20(default:\x20false)','Backend\x20Function\x20tools\x20enabled\x20(--dangerously-bff-save)','get_operation_detail','Client-side\x20filter\x20by\x20category','Validate\x20SQL\x20content\x20without\x20saving.\x20Detects\x20SQL\x20type\x20(SELECT/INSERT/UPDATE/DELETE/DDL)\x20and\x20validates\x20table/column\x20existence.\x20Supports\x20MyBatis\x20syntax.','10405DfBMzG','735339eWmoGZ','Get\x20detailed\x20operation\x20information\x20including\x20request/response\x20examples.','Save\x20or\x20update\x20a\x20Backend\x20Function\x20script.\x20Provide\x20id\x20for\x20updates,\x20omit\x20for\x20new.\x20Runtime\x20cache\x20is\x20automatically\x20cleared\x20after\x20save.','Environment\x20(optional,\x20uses\x20LOVRABET_ENV\x20or\x20defaults\x20to\x20online)','MCP_DEBUG','SQL\x20code\x20from\x20list_sql_queries\x20->\x20sqlCode','2402722zgOacv','daily'];a7_0xae19=function(){return _0x52e643;};return a7_0xae19();}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(a7_0x4f18a9(0x1cb)),authSchema={'appCode':z[a7_0x4f18a9(0x1d1)]()[a7_0x4f18a9(0x1f4)]()[a7_0x4f18a9(0x1d5)](a7_0x4f18a9(0x1e5)),'cookie':z[a7_0x4f18a9(0x1d1)]()['optional']()['describe'](a7_0x4f18a9(0x1ea))};function registerToolWithOptions(_0x1f8ce0,_0x8a76fa,_0x20d246,_0x5a84c8){const _0x58606b=a7_0x4f18a9;_0x1f8ce0[_0x58606b(0x1d2)](_0x8a76fa,_0x20d246,_0x5a84c8);}function wrapHandler(_0x3373b4){return async _0x5660cb=>{const _0x1989d5=a7_0x35b0;try{const _0x2e59e1=await _0x3373b4(_0x5660cb);return{'content':[{'type':_0x1989d5(0x1d7),'text':JSON[_0x1989d5(0x1db)](_0x2e59e1,null,0x2)}]};}catch(_0x3bef35){return{'content':[{'type':_0x1989d5(0x1d7),'text':JSON[_0x1989d5(0x1db)]({'error':!![],'message':_0x3bef35['message']||'Unknown\x20error\x20occurred'},null,0x2)}],'isError':!![]};}};}export class LovrabetDatasetMCPServer{[a7_0x4f18a9(0x1df)];[a7_0x4f18a9(0x1ac)];constructor(_0x911b3b={}){const _0x23741d=a7_0x4f18a9;this[_0x23741d(0x1ac)]=_0x911b3b,this[_0x23741d(0x1df)]=new McpServer({'name':_0x23741d(0x1f7),'version':packageJson[_0x23741d(0x1e1)]},{'capabilities':{'tools':{}},'instructions':INSTRUCTIONS}),this['registerAllTools']();}[a7_0x4f18a9(0x1e6)](){const _0x4e9819=a7_0x4f18a9;registerToolWithOptions(this['mcpServer'],_0x4e9819(0x1da),{'title':_0x4e9819(0x1bb),'description':_0x4e9819(0x1aa),'inputSchema':{'env':z[_0x4e9819(0x1ba)]([_0x4e9819(0x1b3),_0x4e9819(0x1a1)])['optional']()[_0x4e9819(0x1d5)](_0x4e9819(0x19d))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(login)),registerToolWithOptions(this[_0x4e9819(0x1df)],_0x4e9819(0x1eb),{'title':_0x4e9819(0x1cf),'description':_0x4e9819(0x192),'inputSchema':{...authSchema,'forceRefresh':z['boolean']()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1f1)),'includeRelations':z[_0x4e9819(0x1c6)]()[_0x4e9819(0x1f4)]()['describe'](_0x4e9819(0x1d8))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listDatasets)),registerToolWithOptions(this[_0x4e9819(0x1df)],_0x4e9819(0x1b9),{'title':_0x4e9819(0x1c7),'description':'Search\x20datasets\x20by\x20keyword\x20(searches\x20in\x20name,\x20table\x20name,\x20code,\x20and\x20description).','inputSchema':{...authSchema,'keyword':z[_0x4e9819(0x1d1)]()['describe'](_0x4e9819(0x1e4))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(searchDatasets)),registerToolWithOptions(this['mcpServer'],'get_dataset_detail',{'title':_0x4e9819(0x1dd),'description':_0x4e9819(0x1a8),'inputSchema':{...authSchema,'datasetCode':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1b0)),'forceRefresh':z[_0x4e9819(0x1c6)]()[_0x4e9819(0x1f4)]()['describe'](_0x4e9819(0x1f1)),'includeRelations':z['boolean']()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1d8))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetDetail)),registerToolWithOptions(this[_0x4e9819(0x1df)],'get_dataset_operations',{'title':_0x4e9819(0x1d9),'description':_0x4e9819(0x1e0),'inputSchema':{...authSchema,'datasetCode':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1b0))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetOperations)),registerToolWithOptions(this['mcpServer'],_0x4e9819(0x196),{'title':'Get\x20Operation\x20Detail','description':_0x4e9819(0x19b),'inputSchema':{...authSchema,'datasetCode':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1b5)),'operationName':z['string']()[_0x4e9819(0x1d5)](_0x4e9819(0x1f5))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getOperationDetail)),registerToolWithOptions(this[_0x4e9819(0x1df)],_0x4e9819(0x1a2),{'title':'Generate\x20SDK\x20Code','description':_0x4e9819(0x1f3),'inputSchema':{...authSchema,'datasetCode':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1b5)),'operationName':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1d5)]('Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)'),'includeImports':z[_0x4e9819(0x1c6)]()['optional']()['describe'](_0x4e9819(0x1d4)),'useAlias':z[_0x4e9819(0x1c6)]()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x194))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSDKCode)),registerToolWithOptions(this[_0x4e9819(0x1df)],_0x4e9819(0x1c3),{'title':_0x4e9819(0x1de),'description':'List\x20all\x20available\x20custom\x20SQL\x20queries\x20with\x20metadata\x20and\x20parameters.','inputSchema':{...authSchema,'keyword':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)]('Client-side\x20filter\x20by\x20name/description/content'),'category':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x197)),'sqlCode':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1af)),'sqlName':z[_0x4e9819(0x1d1)]()['optional']()['describe'](_0x4e9819(0x1d6)),'pageSize':z['number']()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1e3)),'currentPage':z['number']()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)]('Page\x20number\x20(default:\x201)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listSqlQueries)),registerToolWithOptions(this[_0x4e9819(0x1df)],_0x4e9819(0x1b6),{'title':_0x4e9819(0x1bd),'description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode.\x20Get\x20sqlCode\x20from\x20list_sql_queries\x20first.','inputSchema':{...authSchema,'sqlCode':z[_0x4e9819(0x1d1)]()['min'](0x1)[_0x4e9819(0x1d5)](_0x4e9819(0x19f)),'params':z[_0x4e9819(0x1ee)](z[_0x4e9819(0x1a4)]([z[_0x4e9819(0x1d1)](),z[_0x4e9819(0x1ce)]()]))[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1b7))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(executeCustomSql)),registerToolWithOptions(this[_0x4e9819(0x1df)],_0x4e9819(0x1ef),{'title':'Generate\x20SQL\x20Code','description':_0x4e9819(0x1c4),'inputSchema':{...authSchema,'sqlCode':z['string']()['min'](0x1)[_0x4e9819(0x1d5)](_0x4e9819(0x1c1)),'params':z['record'](z[_0x4e9819(0x1a4)]([z['string'](),z[_0x4e9819(0x1ce)]()]))[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1c9)),'includeImports':z[_0x4e9819(0x1c6)]()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1d4))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSqlCode)),registerToolWithOptions(this['mcpServer'],_0x4e9819(0x1ca),{'title':'Validate\x20SQL\x20Content','description':_0x4e9819(0x198),'inputSchema':{...authSchema,'sqlContent':z[_0x4e9819(0x1d1)]()['min'](0x1)[_0x4e9819(0x1d5)](_0x4e9819(0x1d0)),'dbId':z[_0x4e9819(0x1ce)]()[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1f0)),'validateSchemas':z[_0x4e9819(0x1a6)](z['string']())[_0x4e9819(0x1f4)]()[_0x4e9819(0x1d5)](_0x4e9819(0x1e2))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(validateSqlContent)),registerToolWithOptions(this['mcpServer'],_0x4e9819(0x1d3),{'title':_0x4e9819(0x1a3),'description':_0x4e9819(0x1a7),'inputSchema':{...authSchema,'sqlName':z[_0x4e9819(0x1d1)]()['min'](0x1)['describe'](_0x4e9819(0x1c8)),'dbId':z['number']()[_0x4e9819(0x1d5)](_0x4e9819(0x1bc)),'sqlContent':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1ec)](0x1)['describe'](_0x4e9819(0x1e7)),'id':z['number']()[_0x4e9819(0x1f4)]()['describe'](_0x4e9819(0x1dc))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':![]}},wrapHandler(saveOrUpdateCustomSql)),this[_0x4e9819(0x1ac)]['bffAutosave']&&(registerToolWithOptions(this[_0x4e9819(0x1df)],'list_bff_scripts',{'title':_0x4e9819(0x1c2),'description':_0x4e9819(0x1f6),'inputSchema':{...authSchema},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listBffScripts)),registerToolWithOptions(this['mcpServer'],'get_bff_script_info',{'title':_0x4e9819(0x1e9),'description':_0x4e9819(0x1f2),'inputSchema':{...authSchema,'id':z['number']()[_0x4e9819(0x1d5)](_0x4e9819(0x1c5))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getBffScriptInfo)),registerToolWithOptions(this[_0x4e9819(0x1df)],'save_or_update_bff_script',{'title':_0x4e9819(0x1ab),'description':_0x4e9819(0x19c),'inputSchema':{...authSchema,'id':z[_0x4e9819(0x1ce)]()[_0x4e9819(0x1f4)]()['describe']('Backend\x20Function\x20ID\x20(for\x20updating)'),'description':z['string']()[_0x4e9819(0x1ec)](0x1)[_0x4e9819(0x1d5)]('Function\x20description'),'scriptContent':z[_0x4e9819(0x1d1)]()[_0x4e9819(0x1ec)](0x1)[_0x4e9819(0x1d5)]('JavaScript/TypeScript\x20code\x20with\x20default\x20export')},'annotations':{'readOnlyHint':![],'destructiveHint':!![],'idempotentHint':![]}},wrapHandler(saveOrUpdateBffScript)));}get[a7_0x4f18a9(0x193)](){const _0x321f16=a7_0x4f18a9;return this[_0x321f16(0x1df)];}async[a7_0x4f18a9(0x1e8)](_0x2eefb9){const _0xf4e585=a7_0x4f18a9;await this[_0xf4e585(0x1df)]['connect'](_0x2eefb9);}async[a7_0x4f18a9(0x1cc)](){const _0x1838a3=a7_0x4f18a9;await this[_0x1838a3(0x1df)][_0x1838a3(0x1cc)]();}[a7_0x4f18a9(0x1b8)](){const _0x5948f4=a7_0x4f18a9;if(!process[_0x5948f4(0x1a5)][_0x5948f4(0x19e)])return;console[_0x5948f4(0x1b1)]('Lovrabet\x20Dataset\x20MCP\x20Server'),console[_0x5948f4(0x1b1)]('Version:\x20'+packageJson[_0x5948f4(0x1e1)]),console[_0x5948f4(0x1b1)](_0x5948f4(0x1b2)),this[_0x5948f4(0x1ac)][_0x5948f4(0x1be)]&&console[_0x5948f4(0x1b1)](_0x5948f4(0x195));}}const INSTRUCTIONS=a7_0x4f18a9(0x1ae);export function createServer(_0x255baf){return new LovrabetDatasetMCPServer(_0x255baf);}
|
|
1
|
+
const a7_0x57b955=a7_0x48b4;(function(_0x21fe21,_0x7eb565){const _0x52f780=a7_0x48b4,_0x56c51e=_0x21fe21();while(!![]){try{const _0x441660=-parseInt(_0x52f780(0x126))/0x1*(parseInt(_0x52f780(0xf9))/0x2)+parseInt(_0x52f780(0xfa))/0x3*(-parseInt(_0x52f780(0x111))/0x4)+parseInt(_0x52f780(0x113))/0x5+parseInt(_0x52f780(0x12a))/0x6+parseInt(_0x52f780(0x14e))/0x7*(-parseInt(_0x52f780(0x158))/0x8)+parseInt(_0x52f780(0x133))/0x9+-parseInt(_0x52f780(0x157))/0xa*(-parseInt(_0x52f780(0x124))/0xb);if(_0x441660===_0x7eb565)break;else _0x56c51e['push'](_0x56c51e['shift']());}catch(_0xda6a5f){_0x56c51e['push'](_0x56c51e['shift']());}}}(a7_0x1222,0x4ff22));import{McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import{z}from'zod';import{createRequire}from'module';function a7_0x1222(){const _0x326015=['SQL\x20ID\x20(for\x20updating\x20existing\x20SQL)','Client-side\x20filter\x20by\x20name/description/content','record','Get\x20detailed\x20Backend\x20Function\x20script\x20including\x20full\x20source\x20code.','Include\x20import\x20statements\x20(default:\x20true)','Unknown\x20error\x20occurred','List\x20all\x20Backend\x20Function\x20(ENDPOINT\x20type)\x20scripts.','Save\x20or\x20update\x20a\x20custom\x20SQL\x20query.\x20Only\x20SELECT\x20queries\x20are\x20auto-saved;\x20non-SELECT\x20are\x20blocked\x20for\x20safety.\x20Supports\x20MyBatis\x20syntax.\x20Get\x20dbId\x20from\x20get_dataset_detail.','get_dataset_detail','message','Backend\x20Function\x20tools\x20enabled\x20(--dangerously-bff-save)','2020777qOwNJq','env','922WvhgDI','string','Include\x20table\x20relations\x20(default:\x20true)','Get\x20list\x20of\x20all\x20datasets\x20with\x20metadata\x20and\x20table\x20relations\x20(ER\x20Config).\x20Use\x20includeRelations:\x20false\x20for\x20faster\x20response.','1532322awqGuR','text','SQL\x20name/label','Use\x20camelCase\x20alias\x20instead\x20of\x20dataset_[code]\x20pattern\x20(default:\x20false)','Login\x20to\x20Lovrabet\x20to\x20authenticate\x20for\x20dataset\x20queries.','version','List\x20Datasets','sdk','list_sql_queries','1358199WlCtsp','\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\x20and\x20automatically\x20clears\x20runtime\x20cache','Operation\x20name\x20(e.g.,\x20filter,\x20getOne,\x20create,\x20update)','Get\x20Operation\x20Detail','bff','boolean','registerAllTools','List\x20Backend\x20Functions','Search\x20keyword','Backend\x20Function\x20ID\x20(for\x20updating)','Save\x20or\x20update\x20a\x20Backend\x20Function\x20script.\x20Provide\x20id\x20for\x20updates,\x20omit\x20for\x20new.\x20Runtime\x20cache\x20is\x20automatically\x20cleared\x20after\x20save.','SQL\x20SELECT\x20statement\x20(supports\x20MyBatis\x20syntax)','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-\x20generate_sql_code\x20supports\x20target=\x27sdk\x27\x20(default)\x20or\x20target=\x27bff\x27\x20for\x20context-appropriate\x20code','Items\x20per\x20page\x20(default:\x20999)','log','Function\x20description','array','Version:\x20','Validate\x20SQL\x20content\x20without\x20saving.\x20Detects\x20SQL\x20type\x20(SELECT/INSERT/UPDATE/DELETE/DDL)\x20and\x20validates\x20table/column\x20existence.\x20Supports\x20MyBatis\x20syntax.','search_datasets','options','logInfo','bffAutosave','Get\x20detailed\x20operation\x20information\x20including\x20request/response\x20examples.','List\x20SQL\x20Queries','mcpServer','Generate\x20code\x20for\x20a\x20custom\x20SQL\x20query.\x20Validates\x20sqlCode\x20exists\x20first.\x20Use\x20target\x20to\x20switch\x20between\x20Frontend\x20SDK\x20and\x20Backend\x20Function\x20code\x20patterns.','14BPzqwk','execute_custom_sql','number','Environment\x20(optional,\x20uses\x20LOVRABET_ENV\x20or\x20defaults\x20to\x20online)','JavaScript/TypeScript\x20code\x20with\x20default\x20export','Client-side\x20filter\x20by\x20category','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.','Server\x20started\x20successfully','get_dataset_operations','30BSdgMw','548776NXraIj','min','Get\x20list\x20of\x20all\x20API\x20operations\x20for\x20a\x20dataset.\x20Prefer\x20\x22filter\x22\x20for\x20queries,\x20\x22getOne\x22\x20for\x20single\x20record\x20by\x20ID.','Bypass\x20cache\x20(default:\x20false)','List\x20all\x20available\x20custom\x20SQL\x20queries\x20with\x20metadata\x20and\x20parameters.','Validate\x20SQL\x20Content','Save\x20or\x20Update\x20Backend\x20Function','registerTool','Server-side\x20fuzzy\x20match\x20by\x20sqlCode','describe','Generate\x20TypeScript\x20SDK\x20code\x20for\x20a\x20dataset\x20operation,\x20including\x20field\x20metadata.\x20Check\x20user\x27s\x20@lovrabet/sdk\x20version\x20in\x20package.json\x20first.','Database\x20ID\x20(optional)','1284AZWHdC','141129XFGtYP','save_or_update_custom_sql','optional','SQL\x20code\x20from\x20list_sql_queries\x20(must\x20exist)','Dataset\x20code/ID','daily','connect','MCP_DEBUG','Get\x20Backend\x20Function\x20Info','stringify','Login','SQL\x20parameters','Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)','enum','Server-side\x20fuzzy\x20match\x20by\x20sqlName','close','generate_sql_code','Execute\x20Custom\x20SQL','Database\x20ID\x20from\x20get_dataset_detail','Lovrabet\x20Dataset\x20MCP\x20Server','Authentication\x20cookie\x20(optional,\x20uses\x20stored\x20cookie\x20from\x20login\x20if\x20not\x20provided)','Application\x20code\x20(optional\x20if\x20LOVRABET_APP_CODE\x20env\x20var\x20is\x20set)','get_operation_detail','32vphIpH','Example\x20parameter\x20values','2377505NbkaSJ','../package.json','Backend\x20Function\x20ID\x20(from\x20list_bff_scripts)','SQL\x20content\x20to\x20validate','validate_sql_content','login'];a7_0x1222=function(){return _0x326015;};return a7_0x1222();}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(a7_0x57b955(0x114)),authSchema={'appCode':z[a7_0x57b955(0x127)]()[a7_0x57b955(0xfc)]()[a7_0x57b955(0xf6)](a7_0x57b955(0x10f)),'cookie':z[a7_0x57b955(0x127)]()[a7_0x57b955(0xfc)]()[a7_0x57b955(0xf6)](a7_0x57b955(0x10e))};function a7_0x48b4(_0x3fdd87,_0x33fdce){_0x3fdd87=_0x3fdd87-0xf1;const _0x1222bb=a7_0x1222();let _0x48b400=_0x1222bb[_0x3fdd87];return _0x48b400;}function registerToolWithOptions(_0x48bfd2,_0x5f8609,_0x2893ac,_0x5a1a64){const _0x46dddb=a7_0x57b955;_0x48bfd2[_0x46dddb(0xf4)](_0x5f8609,_0x2893ac,_0x5a1a64);}function wrapHandler(_0x5ed7ec){return async _0x543b2a=>{const _0x1fb778=a7_0x48b4;try{const _0x53204e=await _0x5ed7ec(_0x543b2a);return{'content':[{'type':_0x1fb778(0x12b),'text':JSON[_0x1fb778(0x103)](_0x53204e,null,0x2)}]};}catch(_0x15eb88){return{'content':[{'type':_0x1fb778(0x12b),'text':JSON['stringify']({'error':!![],'message':_0x15eb88[_0x1fb778(0x122)]||_0x1fb778(0x11e)},null,0x2)}],'isError':!![]};}};}export class LovrabetDatasetMCPServer{[a7_0x57b955(0x14c)];[a7_0x57b955(0x147)];constructor(_0x10fef4={}){const _0x1ec5fe=a7_0x57b955;this[_0x1ec5fe(0x147)]=_0x10fef4,this[_0x1ec5fe(0x14c)]=new McpServer({'name':'lovrabet-dataset-mcp','version':packageJson[_0x1ec5fe(0x12f)]},{'capabilities':{'tools':{}},'instructions':buildInstructions(_0x10fef4)}),this['registerAllTools']();}[a7_0x57b955(0x139)](){const _0x140705=a7_0x57b955;registerToolWithOptions(this['mcpServer'],_0x140705(0x118),{'title':_0x140705(0x104),'description':_0x140705(0x12e),'inputSchema':{'env':z['enum'](['online',_0x140705(0xff)])[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x151))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(login)),registerToolWithOptions(this[_0x140705(0x14c)],'list_datasets',{'title':_0x140705(0x130),'description':_0x140705(0x129),'inputSchema':{...authSchema,'forceRefresh':z[_0x140705(0x138)]()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x15b)),'includeRelations':z[_0x140705(0x138)]()[_0x140705(0xfc)]()['describe'](_0x140705(0x128))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listDatasets)),registerToolWithOptions(this[_0x140705(0x14c)],_0x140705(0x146),{'title':'Search\x20Datasets','description':'Search\x20datasets\x20by\x20keyword\x20(searches\x20in\x20name,\x20table\x20name,\x20code,\x20and\x20description).','inputSchema':{...authSchema,'keyword':z[_0x140705(0x127)]()[_0x140705(0xf6)](_0x140705(0x13b))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(searchDatasets)),registerToolWithOptions(this['mcpServer'],_0x140705(0x121),{'title':'Get\x20Dataset\x20Detail','description':'Get\x20detailed\x20dataset\x20information\x20including\x20fields,\x20operations,\x20and\x20relations.\x20Supports\x20both\x20dataset\x20ID\x20(numeric)\x20and\x20code\x20(UUID).','inputSchema':{...authSchema,'datasetCode':z[_0x140705(0x127)]()['describe']('Dataset\x20ID\x20(numeric)\x20or\x20code\x20(UUID)'),'forceRefresh':z[_0x140705(0x138)]()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x15b)),'includeRelations':z[_0x140705(0x138)]()[_0x140705(0xfc)]()['describe'](_0x140705(0x128))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetDetail)),registerToolWithOptions(this[_0x140705(0x14c)],_0x140705(0x156),{'title':'Get\x20Operations','description':_0x140705(0x15a),'inputSchema':{...authSchema,'datasetCode':z['string']()[_0x140705(0xf6)](_0x140705(0x106))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getDatasetOperations)),registerToolWithOptions(this[_0x140705(0x14c)],_0x140705(0x110),{'title':_0x140705(0x136),'description':_0x140705(0x14a),'inputSchema':{...authSchema,'datasetCode':z['string']()['describe'](_0x140705(0xfe)),'operationName':z['string']()['describe'](_0x140705(0x135))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getOperationDetail)),registerToolWithOptions(this[_0x140705(0x14c)],'generate_sdk_code',{'title':'Generate\x20SDK\x20Code','description':_0x140705(0xf7),'inputSchema':{...authSchema,'datasetCode':z['string']()['describe'](_0x140705(0xfe)),'operationName':z[_0x140705(0x127)]()[_0x140705(0xf6)](_0x140705(0x135)),'includeImports':z[_0x140705(0x138)]()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x11d)),'useAlias':z['boolean']()[_0x140705(0xfc)]()['describe'](_0x140705(0x12d))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSDKCode)),registerToolWithOptions(this[_0x140705(0x14c)],_0x140705(0x132),{'title':_0x140705(0x14b),'description':_0x140705(0xf1),'inputSchema':{...authSchema,'keyword':z[_0x140705(0x127)]()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x11a)),'category':z['string']()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x153)),'sqlCode':z[_0x140705(0x127)]()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0xf5)),'sqlName':z[_0x140705(0x127)]()[_0x140705(0xfc)]()['describe'](_0x140705(0x108)),'pageSize':z[_0x140705(0x150)]()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x140)),'currentPage':z['number']()[_0x140705(0xfc)]()[_0x140705(0xf6)]('Page\x20number\x20(default:\x201)')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listSqlQueries)),registerToolWithOptions(this['mcpServer'],_0x140705(0x14f),{'title':_0x140705(0x10b),'description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode.\x20Get\x20sqlCode\x20from\x20list_sql_queries\x20first.','inputSchema':{...authSchema,'sqlCode':z[_0x140705(0x127)]()['min'](0x1)[_0x140705(0xf6)]('SQL\x20code\x20from\x20list_sql_queries\x20->\x20sqlCode'),'params':z[_0x140705(0x11b)](z['union']([z['string'](),z[_0x140705(0x150)]()]))[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x105))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(executeCustomSql)),registerToolWithOptions(this[_0x140705(0x14c)],_0x140705(0x10a),{'title':'Generate\x20SQL\x20Code','description':_0x140705(0x14d),'inputSchema':{...authSchema,'sqlCode':z[_0x140705(0x127)]()[_0x140705(0x159)](0x1)[_0x140705(0xf6)](_0x140705(0xfd)),'params':z[_0x140705(0x11b)](z['union']([z[_0x140705(0x127)](),z[_0x140705(0x150)]()]))[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x112)),'includeImports':z['boolean']()['optional']()['describe'](_0x140705(0x11d)),'target':z[_0x140705(0x107)]([_0x140705(0x131),_0x140705(0x137)])[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0x154))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(generateSqlCode)),registerToolWithOptions(this['mcpServer'],_0x140705(0x117),{'title':_0x140705(0xf2),'description':_0x140705(0x145),'inputSchema':{...authSchema,'sqlContent':z[_0x140705(0x127)]()[_0x140705(0x159)](0x1)[_0x140705(0xf6)](_0x140705(0x116)),'dbId':z[_0x140705(0x150)]()[_0x140705(0xfc)]()[_0x140705(0xf6)](_0x140705(0xf8)),'validateSchemas':z[_0x140705(0x143)](z[_0x140705(0x127)]())[_0x140705(0xfc)]()[_0x140705(0xf6)]('Dataset\x20codes\x20to\x20validate\x20against')},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(validateSqlContent)),registerToolWithOptions(this[_0x140705(0x14c)],_0x140705(0xfb),{'title':'Save\x20or\x20Update\x20Custom\x20SQL','description':_0x140705(0x120),'inputSchema':{...authSchema,'sqlName':z[_0x140705(0x127)]()[_0x140705(0x159)](0x1)[_0x140705(0xf6)](_0x140705(0x12c)),'dbId':z['number']()['describe'](_0x140705(0x10c)),'sqlContent':z['string']()['min'](0x1)['describe'](_0x140705(0x13e)),'id':z[_0x140705(0x150)]()['optional']()[_0x140705(0xf6)](_0x140705(0x119))},'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':![]}},wrapHandler(saveOrUpdateCustomSql)),this[_0x140705(0x147)][_0x140705(0x149)]&&(registerToolWithOptions(this[_0x140705(0x14c)],'list_bff_scripts',{'title':_0x140705(0x13a),'description':_0x140705(0x11f),'inputSchema':{...authSchema},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(listBffScripts)),registerToolWithOptions(this[_0x140705(0x14c)],'get_bff_script_info',{'title':_0x140705(0x102),'description':_0x140705(0x11c),'inputSchema':{...authSchema,'id':z[_0x140705(0x150)]()[_0x140705(0xf6)](_0x140705(0x115))},'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![]}},wrapHandler(getBffScriptInfo)),registerToolWithOptions(this[_0x140705(0x14c)],'save_or_update_bff_script',{'title':_0x140705(0xf3),'description':_0x140705(0x13d),'inputSchema':{...authSchema,'id':z[_0x140705(0x150)]()['optional']()[_0x140705(0xf6)](_0x140705(0x13c)),'description':z['string']()['min'](0x1)[_0x140705(0xf6)](_0x140705(0x142)),'scriptContent':z[_0x140705(0x127)]()[_0x140705(0x159)](0x1)[_0x140705(0xf6)](_0x140705(0x152))},'annotations':{'readOnlyHint':![],'destructiveHint':!![],'idempotentHint':![]}},wrapHandler(saveOrUpdateBffScript)));}get['server'](){const _0x39e02b=a7_0x57b955;return this[_0x39e02b(0x14c)];}async[a7_0x57b955(0x100)](_0x59039e){const _0x4c41a3=a7_0x57b955;await this[_0x4c41a3(0x14c)]['connect'](_0x59039e);}async[a7_0x57b955(0x109)](){const _0x1879f4=a7_0x57b955;await this[_0x1879f4(0x14c)][_0x1879f4(0x109)]();}[a7_0x57b955(0x148)](){const _0x591226=a7_0x57b955;if(!process[_0x591226(0x125)][_0x591226(0x101)])return;console[_0x591226(0x141)](_0x591226(0x10d)),console[_0x591226(0x141)](_0x591226(0x144)+packageJson['version']),console['log'](_0x591226(0x155)),this[_0x591226(0x147)][_0x591226(0x149)]&&console['log'](_0x591226(0x123));}}function buildInstructions(_0x2a89b2){const _0xfd4867=a7_0x57b955,_0x134acc=_0x2a89b2['bffAutosave']===!![],_0x4384b7=_0x134acc?_0xfd4867(0x134):'';return _0xfd4867(0x13f)+_0x4384b7+'\x0a';}export function createServer(_0x58bbbb){return new LovrabetDatasetMCPServer(_0x58bbbb);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x106cfa,_0x31d32a){const _0x542a0f=a8_0x1761,_0x189635=_0x106cfa();while(!![]){try{const _0x16b109=parseInt(_0x542a0f(0x1dc))/0x1*(-parseInt(_0x542a0f(0x1cf))/0x2)+-parseInt(_0x542a0f(0x1d3))/0x3+-parseInt(_0x542a0f(0x1d0))/0x4*(parseInt(_0x542a0f(0x1c3))/0x5)+parseInt(_0x542a0f(0x1c7))/0x6+-parseInt(_0x542a0f(0x1d5))/0x7+-parseInt(_0x542a0f(0x1d7))/0x8+parseInt(_0x542a0f(0x1cc))/0x9*(parseInt(_0x542a0f(0x1cb))/0xa);if(_0x16b109===_0x31d32a)break;else _0x189635['push'](_0x189635['shift']());}catch(_0x24277a){_0x189635['push'](_0x189635['shift']());}}}(a8_0x18aa,0x777f9));function a8_0x1761(_0x558672,_0x20d997){_0x558672=_0x558672-0x1c0;const _0x18aa72=a8_0x18aa();let _0x176160=_0x18aa72[_0x558672];return _0x176160;}function a8_0x18aa(){const _0x31d3ec=['SQL\x20executed\x20successfully.\x20Returned\x20','3783486ZANgoj','errorMsg','keys','API\x20call\x20failed:\x20','9392500zybjjJ','27vJzVcK','\x20row(s).','execError','123110uvDJBP','4552yCBBCm','success','execSuccess','1931589hYQyns','sqlCode\x20is\x20required.\x20Get\x20it\x20from\x20list_sql_queries\x20->\x20sqlCode','2357985qAXIQP','UNKNOWN','5920072rLjnXx','message','Unknown\x20error','now','trim','11rqkSCL','data','executeSql','length','ERR','2465DJHJZL','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','errorCode'];a8_0x18aa=function(){return _0x31d3ec;};return a8_0x18aa();}import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode}from'../config/env.js';export async function executeCustomSql(_0x121094){const _0x27af57=a8_0x1761,_0x3ab99e=Date[_0x27af57(0x1da)](),{appCode:appCode=getEnvAppCode(),cookie:_0x34f53c,sqlCode:_0x120331,params:_0x225775}=_0x121094;if(!appCode)throw new Error(_0x27af57(0x1c4));if(!_0x120331||_0x120331[_0x27af57(0x1db)]()==='')throw new Error(_0x27af57(0x1d4));const _0xd0a6b0=new DevApiClient({'appCode':appCode,'cookie':_0x34f53c}),_0x47aa9f=_0x225775&&Object['keys'](_0x225775)[_0x27af57(0x1c1)]>0x0,_0x5729e5=_0x47aa9f?Object[_0x27af57(0x1c9)](_0x225775):[],_0x213818={'sqlCode':_0x120331,'hasParams':_0x47aa9f||![],'paramNames':_0x5729e5||[]};try{const _0x5b0757=await _0xd0a6b0[_0x27af57(0x1c0)]({'sqlCode':_0x120331[_0x27af57(0x1db)](),'params':_0x225775}),_0x22a375=Date[_0x27af57(0x1da)]()-_0x3ab99e,_0x137937=_0x5b0757[_0x27af57(0x1d1)]??![],_0xb81553=_0x5b0757[_0x27af57(0x1c5)];if(!_0x137937){const _0x271874=_0x5b0757[_0x27af57(0x1c8)]||_0x5b0757['msg']||_0x27af57(0x1d9);return{'success':![],'execSuccess':![],'execError':_0x271874,'errorCode':_0xb81553||_0x27af57(0x1d6),'message':'SQL\x20execution\x20failed\x20['+(_0xb81553||_0x27af57(0x1c2))+']:\x20'+_0x271874,'executionTime':_0x22a375,'sqlInfo':_0x213818};}const _0x24eed9=_0x5b0757[_0x27af57(0x1dd)]||_0x5b0757,_0x394036=_0x24eed9[_0x27af57(0x1d2)]??_0x24eed9['success']??!![],_0x5cec0f=_0x24eed9['execResult']||_0x24eed9[_0x27af57(0x1dd)],_0x26aa51=_0x24eed9[_0x27af57(0x1ce)]||_0x24eed9[_0x27af57(0x1c8)];if(_0x394036){const _0x1a5979=Array['isArray'](_0x5cec0f)?_0x5cec0f[_0x27af57(0x1c1)]:0x0;return{'success':!![],'execSuccess':!![],'execResult':_0x5cec0f||[],'rowCount':_0x1a5979,'message':_0x27af57(0x1c6)+_0x1a5979+_0x27af57(0x1cd),'executionTime':_0x22a375,'sqlInfo':_0x213818};}return{'success':!![],'execSuccess':![],'execError':_0x26aa51||'SQL\x20execution\x20failed\x20without\x20error\x20message','message':'SQL\x20execution\x20failed:\x20'+(_0x26aa51||_0x27af57(0x1d9)),'executionTime':_0x22a375,'sqlInfo':_0x213818};}catch(_0xee62){const _0x5271ef=Date[_0x27af57(0x1da)]()-_0x3ab99e;return{'success':![],'execSuccess':![],'execError':_0xee62[_0x27af57(0x1d8)]||_0x27af57(0x1d9),'message':_0x27af57(0x1ca)+(_0xee62['message']||_0x27af57(0x1d9)),'executionTime':_0x5271ef,'sqlInfo':_0x213818};}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4c472d,_0x44539c){const _0xbec19a=a9_0x4033,_0x5bcfb3=_0x4c472d();while(!![]){try{const _0xb88c04=-parseInt(_0xbec19a(0x167))/0x1+-parseInt(_0xbec19a(0x169))/0x2*(-parseInt(_0xbec19a(0x15e))/0x3)+parseInt(_0xbec19a(0x166))/0x4+-parseInt(_0xbec19a(0x164))/0x5*(parseInt(_0xbec19a(0x16b))/0x6)+parseInt(_0xbec19a(0x171))/0x7*(parseInt(_0xbec19a(0x157))/0x8)+-parseInt(_0xbec19a(0x16d))/0x9*(-parseInt(_0xbec19a(0x160))/0xa)+-parseInt(_0xbec19a(0x161))/0xb;if(_0xb88c04===_0x44539c)break;else _0x5bcfb3['push'](_0x5bcfb3['shift']());}catch(_0x1b1ceb){_0x5bcfb3['push'](_0x5bcfb3['shift']());}}}(a9_0x597b,0x622a5));import{DevApiClient}from'../api/dev-api-client.js';function a9_0x4033(_0x5f22e3,_0xb4d5b3){_0x5f22e3=_0x5f22e3-0x154;const _0x597bb6=a9_0x597b();let _0x40330d=_0x597bb6[_0x5f22e3];return _0x40330d;}import{DrivenDataDetailPlus}from'@lovrabet/dsparser';import{getEnvAppCode,getEnvironment}from'../config/env.js';import{buildFieldRelationsMap,enrichFieldsWithRelations}from'../utils/relations.js';function a9_0x597b(){const _0x4733d9=['getOperationDocMeta','datasetCode\x20is\x20required','getTableName','Cannot\x20generate\x20SDK\x20code\x20for\x20operation\x20\x27','9yzgWDT','//\x20数据集:\x20','30UNGpvO','2789215OEwWhy','toJSON','\x20|\x20数据表:\x20','5SBVlwh','generateFullSDKExample','20300KenMRd','100447QEaFIj','requestExample','394894PPcpFU','operationName\x20is\x20required','3215562Cuuuuh','getTableKey','585387laIeRA','datasetCode','sdkCall','usageExample','10563aXDGLf','getModelAlias','\x27\x20in\x20dataset\x20\x27','replace','2648PHIFXT','getFieldList','generateAliasExplanation'];a9_0x597b=function(){return _0x4733d9;};return a9_0x597b();}export async function generateSDKCode(_0x1dd176){const _0x243097=a9_0x4033,{appCode:appCode=getEnvAppCode(),cookie:_0x1d09d6,datasetCode:_0x242295,operationName:_0x41a0ef,includeImports:includeImports=!![],useAlias:useAlias=![]}=_0x1dd176;if(!appCode)throw new Error('appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.');if(!_0x242295)throw new Error(_0x243097(0x15b));if(!_0x41a0ef)throw new Error(_0x243097(0x16a));const _0x1c6188=new DevApiClient({'appCode':appCode,'cookie':_0x1d09d6}),_0x3c8121=getEnvironment(),_0x5d31de=await _0x1c6188['getDatasetDetail'](_0x242295),_0x15e980=_0x5d31de['data']||_0x5d31de,_0x5a895e=new DrivenDataDetailPlus(_0x15e980),_0x438674=_0x5a895e[_0x243097(0x15a)](_0x41a0ef);if(!_0x438674)throw new Error(_0x243097(0x15d)+_0x41a0ef+_0x243097(0x155)+_0x242295+'\x27');const _0x3954d8=_0x5a895e['getDatasetSDKKey'](),_0x55f2f2=_0x5a895e[_0x243097(0x154)](),_0x323799=_0x5a895e[_0x243097(0x16c)](),_0x4f8aff=_0x5a895e[_0x243097(0x15c)](),_0x20fd3b=_0x5a895e['name'],_0x3a05cd=_0x5a895e[_0x243097(0x158)](),_0xd91a6=_0x3a05cd?.[_0x243097(0x162)]?.()||[],_0x4b58d9=buildFieldRelationsMap(_0x5d31de),_0xae89d9=enrichFieldsWithRelations(_0xd91a6,_0x4b58d9),_0x3995b2=_0x5a895e[_0x243097(0x165)](_0x41a0ef,appCode),_0x5974f6=_0x5a895e['getOperationAnalysis'](_0x41a0ef);let _0x468f17=_0x438674[_0x243097(0x16f)]['code'],_0x238ec2=_0x3995b2||undefined;useAlias&&(_0x468f17=_0x468f17[_0x243097(0x156)](new RegExp(_0x3954d8,'g'),_0x55f2f2),_0x238ec2&&(_0x238ec2=_0x238ec2['replace'](new RegExp(_0x3954d8,'g'),_0x55f2f2)));const _0x5d5acf=_0x243097(0x15f)+_0x20fd3b+_0x243097(0x163)+_0x4f8aff+'\x0a',_0x240b0f=_0x5d5acf+_0x468f17,_0x5f029d=_0x238ec2?_0x243097(0x15f)+_0x20fd3b+_0x243097(0x163)+_0x4f8aff+'\x0a'+_0x238ec2:undefined;return{'appCode':appCode,'env':_0x3c8121,'datasetName':_0x20fd3b,'language':'typescript','code':_0x240b0f,'fullExample':includeImports?_0x5f029d:undefined,'sdkCallInfo':{'modelName':_0x55f2f2,'tableName':_0x4f8aff,'tableKey':_0x323799,'datasetCode':_0x5a895e[_0x243097(0x16e)],'operationName':_0x41a0ef},'fields':_0xae89d9,'requestExample':_0x5974f6?.[_0x243097(0x168)],'responseExample':_0x5974f6?.['responseExample'],'sdkInitCode':_0x5a895e['generateSDKInitCode'](_0x323799),'usageExample':_0x438674[_0x243097(0x170)],'aliasExplanation':useAlias?_0x5a895e[_0x243097(0x159)]():undefined,'aliasHint':{'defaultAlias':_0x55f2f2,'datasetSDKKey':_0x3954d8}};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a10_0x323b(){const _0x39a5be=['\x27,\x0a});\x0a\x0a//\x20Execute\x20SQL:\x20','date','6393501aYWHZm','search','SQL\x20code\x20\x22','sqlCode','8528400eODDxv','10118qSGPif','Failed\x20to\x20verify\x20SQL\x20code:\x20','14415379qULFnv','Check\x20the\x20sqlCode\x20from\x20list_sql_queries\x20result\x20and\x20use\x20the\x20exact\x20value.','toLowerCase','530435qFkDjY','16FCdDGq','sqlContent','\x22\x20not\x20found\x20in\x20the\x20application.','\x22\x20does\x20not\x20exist.\x20Use\x20list_sql_queries\x20to\x20find\x20valid\x20SQL\x20codes.','2024-01-01','example','sqlId','sdk','find','\x22\x0aexport\x20default\x20async\x20function(params,\x20context)\x20{\x0a\x20\x20const\x20rows\x20=\x20await\x20context.client.sql.execute(','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','time','match','tableData','bff','name','//\x20Initialize\x20the\x20SDK\x20client\x0aconst\x20client\x20=\x20new\x20LovrabetClient({\x0a\x20\x20appCode:\x20\x27','BFF\x20context.client.sql.execute()\x20returns\x20rows\x20T[]\x20directly\x20—\x20no\x20wrapper\x20object','//\x20Backend\x20Function:\x20Execute\x20SQL\x20\x22','includes','285448aruoKP','This\x20SQL\x20requires\x20parameters:\x20','map','\x27,\x0a\x20\x20params:\x20','getCustomSqlList','39ooSybA','limit',');\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});','trim','8vuGICw','\x27\x20}','stringify','On\x20HTTP\x20error,\x20SDK\x20throws\x20LovrabetError\x20—\x20use\x20try-catch','246vVlJNE','page','message','sqlCode\x20is\x20required','size','14672ioJndd','keyword','Generated\x20',',\x0a}','entries','Use\x20list_sql_queries\x20to\x20see\x20all\x20available\x20SQLs.'];a10_0x323b=function(){return _0x39a5be;};return a10_0x323b();}(function(_0x446726,_0x389b4d){const _0x31f88f=a10_0x202c,_0x5a7afb=_0x446726();while(!![]){try{const _0x57cd93=-parseInt(_0x31f88f(0x136))/0x1+parseInt(_0x31f88f(0x155))/0x2*(parseInt(_0x31f88f(0x13b))/0x3)+-parseInt(_0x31f88f(0x15b))/0x4*(parseInt(_0x31f88f(0x15a))/0x5)+-parseInt(_0x31f88f(0x143))/0x6*(parseInt(_0x31f88f(0x148))/0x7)+-parseInt(_0x31f88f(0x13f))/0x8*(-parseInt(_0x31f88f(0x150))/0x9)+-parseInt(_0x31f88f(0x154))/0xa+parseInt(_0x31f88f(0x157))/0xb;if(_0x57cd93===_0x389b4d)break;else _0x5a7afb['push'](_0x5a7afb['shift']());}catch(_0x2b2cf4){_0x5a7afb['push'](_0x5a7afb['shift']());}}}(a10_0x323b,0x6af39));function a10_0x202c(_0x4e2f46,_0x42b82a){_0x4e2f46=_0x4e2f46-0x133;const _0x323bb8=a10_0x323b();let _0x202c7a=_0x323bb8[_0x4e2f46];return _0x202c7a;}import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode,getEnvironment}from'../config/env.js';export async function generateSqlCode(_0x356e83){const _0x211fe6=a10_0x202c,{appCode:appCode=getEnvAppCode(),cookie:_0x25416a,sqlCode:_0xe096d0,params:_0x4500aa,includeImports:includeImports=!![],target:target=_0x211fe6(0x162)}=_0x356e83;if(!appCode)throw new Error(_0x211fe6(0x165));if(!_0xe096d0||_0xe096d0[_0x211fe6(0x13e)]()==='')return{'success':![],'sqlCode':'','sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':[]},'error':_0x211fe6(0x146)};const _0x380aab=_0xe096d0[_0x211fe6(0x13e)](),_0x4c9bec=new DevApiClient({'appCode':appCode,'cookie':_0x25416a}),_0x90e132=getEnvironment();try{const _0x301120=await _0x4c9bec[_0x211fe6(0x13a)]({'pageSize':0x3e7,'currentPage':0x1,'sqlCode':_0x380aab}),_0x598251=_0x301120['data']?.[_0x211fe6(0x168)]||[],_0x1b1f45=_0x598251[_0x211fe6(0x163)](_0x32ba49=>_0x32ba49[_0x211fe6(0x153)]===_0x380aab||_0x32ba49[_0x211fe6(0x153)]?.[_0x211fe6(0x135)](_0x380aab)||_0x380aab[_0x211fe6(0x135)](_0x32ba49[_0x211fe6(0x153)]));if(!_0x1b1f45)return{'success':![],'sqlCode':_0x380aab,'sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':[_0x211fe6(0x152)+_0x380aab+_0x211fe6(0x15d),_0x211fe6(0x14d),_0x211fe6(0x158)]},'error':'SQL\x20code\x20\x22'+_0x380aab+_0x211fe6(0x15e)};const _0x46d938=_0x1b1f45[_0x211fe6(0x153)],_0x2bcd6a=_0x1b1f45['sqlName']||_0x1b1f45['name']||'SQL-'+(_0x1b1f45[_0x211fe6(0x161)]||_0x1b1f45['id']),_0x3b31b0=_0x1b1f45[_0x211fe6(0x15c)]||_0x1b1f45['sql']||'',_0xd12525=_0x3b31b0[_0x211fe6(0x167)](/[:$]\{?(\w+)\}?/g);let _0x401cf3,_0x4e1f0a;if(_0xd12525){const _0x9d5ab=Array['from'](new Set(_0xd12525[_0x211fe6(0x138)](_0x237a8c=>_0x237a8c['replace'](/[:${}]/g,''))));_0x401cf3=_0x9d5ab[_0x211fe6(0x138)](_0x226669=>{const _0x22db82=_0x4500aa?.[_0x226669]??getDefaultExample(_0x226669);return{'name':_0x226669,'example':_0x22db82};}),_0x4e1f0a=_0x401cf3['reduce']((_0x46f69c,_0x1e7944)=>({..._0x46f69c,[_0x1e7944[_0x211fe6(0x16a)]]:_0x1e7944[_0x211fe6(0x160)]}),{});}else _0x4500aa&&(_0x401cf3=Object[_0x211fe6(0x14c)](_0x4500aa)[_0x211fe6(0x138)](([_0x2dea23,_0x32e714])=>({'name':_0x2dea23,'example':_0x32e714})),_0x4e1f0a=_0x4500aa);const _0xef65ab=_0x401cf3&&_0x401cf3['length']>0x0,_0xd7d2ac=_0xef65ab?JSON[_0x211fe6(0x141)](_0x4e1f0a,null,0x2):'',_0x2ea999=_0xef65ab?'{\x0a\x20\x20sqlCode:\x20\x27'+_0x46d938+_0x211fe6(0x139)+_0xd7d2ac+_0x211fe6(0x14b):'{\x20sqlCode:\x20\x27'+_0x46d938+_0x211fe6(0x140);let _0x2e990f;target===_0x211fe6(0x169)?_0x2e990f=_0x211fe6(0x134)+_0x2bcd6a+_0x211fe6(0x164)+_0x2ea999+');\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}':_0x2e990f=(includeImports?'import\x20{\x20LovrabetClient\x20}\x20from\x20\x27@lovrabet/sdk\x27;\x0a\x0a':'')+_0x211fe6(0x16b)+appCode+'\x27,\x0a\x20\x20env:\x20\x27'+_0x90e132+_0x211fe6(0x14e)+_0x2bcd6a+'\x0aconst\x20data\x20=\x20await\x20client.sql.execute('+_0x2ea999+_0x211fe6(0x13d);const _0x505dd7=target==='bff';return{'success':!![],'sqlCode':_0x46d938,'sqlName':_0x2bcd6a,'sqlExists':!![],'code':_0x2e990f,'parameters':_0x401cf3,'usage':{'description':_0x211fe6(0x14a)+(_0x505dd7?'Backend\x20Function':'Frontend\x20SDK')+'\x20code\x20for\x20SQL:\x20'+_0x2bcd6a,'important':[_0x211fe6(0x152)+_0x46d938+'\x22\x20exists\x20and\x20is\x20valid.',_0x505dd7?_0x211fe6(0x133):'SDK\x20client.sql.execute()\x20returns\x20{\x20execSuccess,\x20execResult\x20}\x20—\x20always\x20check\x20execSuccess',_0x505dd7?'Errors\x20throw\x20exceptions\x20—\x20use\x20try-catch':_0x211fe6(0x142),_0xef65ab?_0x211fe6(0x137)+_0x401cf3[_0x211fe6(0x138)](_0x269afb=>_0x269afb[_0x211fe6(0x16a)])['join'](',\x20'):'This\x20SQL\x20does\x20not\x20require\x20any\x20parameters','Note:\x20client.api.executeSql()\x20is\x20deprecated.\x20Use\x20client.sql.execute()\x20instead.']}};}catch(_0x12a08e){return{'success':![],'sqlCode':_0x380aab,'sqlName':'','sqlExists':![],'code':'','usage':{'description':'','important':[_0x211fe6(0x156)+_0x12a08e[_0x211fe6(0x145)],_0x211fe6(0x14d)]},'error':_0x211fe6(0x156)+_0x12a08e[_0x211fe6(0x145)]};}}function getDefaultExample(_0x20a9a1){const _0x5f22f4=a10_0x202c,_0x1ee856=_0x20a9a1[_0x5f22f4(0x159)]();if(_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x14f))||_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x166)))return _0x5f22f4(0x15f);if(_0x1ee856['includes']('id'))return 0x7b;if(_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x13c))||_0x1ee856[_0x5f22f4(0x135)]('count')||_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x147)))return 0xa;if(_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x144)))return 0x1;if(_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x149))||_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x151))||_0x1ee856[_0x5f22f4(0x135)](_0x5f22f4(0x16a)))return'example';if(_0x1ee856['includes']('status'))return 0x1;return'value';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a11_0x1d48(){const _0xa9a2df=['5098TOLNfN','149636TMbtiW','id\x20is\x20required\x20and\x20must\x20be\x20a\x20positive\x20number.\x20Get\x20it\x20from\x20list_bff_scripts.','2547Koxpnw','getBffScriptInfo','7150aeqtdN','87NmHWFV','1221857nDuebM','data','success','45008PkcvcR','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','1514056LfIRPc','1242294dxsKsk','5Tbhnqh','Failed\x20to\x20fetch\x20Backend\x20Function\x20script\x20info\x20for\x20id:\x20'];a11_0x1d48=function(){return _0xa9a2df;};return a11_0x1d48();}function a11_0x5563(_0x2ec1ef,_0x1fa88b){_0x2ec1ef=_0x2ec1ef-0x1c8;const _0x1d4827=a11_0x1d48();let _0x556384=_0x1d4827[_0x2ec1ef];return _0x556384;}(function(_0xe54589,_0x3364a7){const _0x9a3f92=a11_0x5563,_0x3765fd=_0xe54589();while(!![]){try{const _0x442b8f=parseInt(_0x9a3f92(0x1cc))/0x1+-parseInt(_0x9a3f92(0x1d2))/0x2*(-parseInt(_0x9a3f92(0x1c8))/0x3)+-parseInt(_0x9a3f92(0x1d3))/0x4*(-parseInt(_0x9a3f92(0x1d0))/0x5)+-parseInt(_0x9a3f92(0x1cf))/0x6+parseInt(_0x9a3f92(0x1c9))/0x7+-parseInt(_0x9a3f92(0x1ce))/0x8+parseInt(_0x9a3f92(0x1d5))/0x9*(parseInt(_0x9a3f92(0x1d7))/0xa);if(_0x442b8f===_0x3364a7)break;else _0x3765fd['push'](_0x3765fd['shift']());}catch(_0x5de9e4){_0x3765fd['push'](_0x3765fd['shift']());}}}(a11_0x1d48,0x216e0));import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode}from'../config/env.js';export async function getBffScriptInfo(_0x4ef8bc){const _0x2d8dde=a11_0x5563,{appCode:appCode=getEnvAppCode(),cookie:_0x439e5a,id:_0x240e74}=_0x4ef8bc;if(!appCode)throw new Error(_0x2d8dde(0x1cd));if(!_0x240e74||_0x240e74<=0x0)throw new Error(_0x2d8dde(0x1d4));const _0x5ed56e=new DevApiClient({'appCode':appCode,'cookie':_0x439e5a}),_0x3aee3e=await _0x5ed56e[_0x2d8dde(0x1d6)](_0x240e74);if(!_0x3aee3e[_0x2d8dde(0x1cb)]||!_0x3aee3e['data'])return{'success':![],'message':_0x2d8dde(0x1d1)+_0x240e74};return{'success':!![],'script':_0x3aee3e[_0x2d8dde(0x1ca)]};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xd8fd55,_0x51bdf8){const _0x50f6f9=a12_0x4e0b,_0x18439b=_0xd8fd55();while(!![]){try{const _0x3d9882=-parseInt(_0x50f6f9(0x1b8))/0x1*(parseInt(_0x50f6f9(0x1ca))/0x2)+parseInt(_0x50f6f9(0x1c2))/0x3*(parseInt(_0x50f6f9(0x1bb))/0x4)+-parseInt(_0x50f6f9(0x1c4))/0x5*(parseInt(_0x50f6f9(0x1cb))/0x6)+-parseInt(_0x50f6f9(0x1b0))/0x7+parseInt(_0x50f6f9(0x1c9))/0x8+-parseInt(_0x50f6f9(0x1bf))/0x9*(-parseInt(_0x50f6f9(0x1bd))/0xa)+parseInt(_0x50f6f9(0x1c1))/0xb*(parseInt(_0x50f6f9(0x1b5))/0xc);if(_0x3d9882===_0x51bdf8)break;else _0x18439b['push'](_0x18439b['shift']());}catch(_0x2cd467){_0x18439b['push'](_0x18439b['shift']());}}}(a12_0x29ba,0xa3180));function a12_0x4e0b(_0x18caf8,_0x445243){_0x18caf8=_0x18caf8-0x1aa;const _0x29ba06=a12_0x29ba();let _0x4e0bc7=_0x29ba06[_0x18caf8];return _0x4e0bc7;}import{DevApiClient}from'../api/dev-api-client.js';import{DrivenDataDetailPlus}from'@lovrabet/dsparser';import{getEnvAppCode,getEnvironment}from'../config/env.js';function a12_0x29ba(){const _0x189876=['120142UgGytx','24081PSybIW','toField','15FvAiBQ','data','getFieldCount','References\x20','fromField','4002072YnsOpn','10lMWTRv','1675302bOexUn','getEnabledOperationAnalyses','getTableName','api','getOperationCount','unknown','fromDataset','toTableName','getDatasetDetail','MANY_TO_ONE','length','datasetCode\x20is\x20required','joinType','8389899WwUARq','\x20=\x20',')\x20via\x20','Referenced\x20by\x20','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','2580snUull','toDataset','push','211483NXAGFi','isArray','relations','448rqvaOs','hasRelations','141420XfWpgU','toDatasetName','9nHqUEn','fromTableName'];a12_0x29ba=function(){return _0x189876;};return a12_0x29ba();}import{rateLimiters}from'../utils/rate-limiter.js';export async function getDatasetDetail(_0x20b9e8){const _0x89ecc3=a12_0x4e0b,{appCode:appCode=getEnvAppCode(),cookie:_0x34492d,datasetCode:_0x52de11,forceRefresh:forceRefresh=![],includeRelations:includeRelations=!![]}=_0x20b9e8;if(!appCode)throw new Error(_0x89ecc3(0x1b4));if(!_0x52de11)throw new Error(_0x89ecc3(0x1ae));const _0x2b4e7e=new DevApiClient({'appCode':appCode,'cookie':_0x34492d}),_0x265bec=getEnvironment(),_0x462786=forceRefresh?await rateLimiters[_0x89ecc3(0x1ce)]['throttle'](()=>_0x2b4e7e['getDatasetDetail'](_0x52de11,forceRefresh,includeRelations)):await _0x2b4e7e[_0x89ecc3(0x1ab)](_0x52de11,forceRefresh,includeRelations),_0x16bad5=_0x462786[_0x89ecc3(0x1c5)]||_0x462786,_0x415c7d=new DrivenDataDetailPlus(_0x16bad5),_0x14d73e={'fieldCount':_0x415c7d[_0x89ecc3(0x1c6)](),'operationCount':_0x415c7d[_0x89ecc3(0x1cf)](),'enabledOperationCount':_0x415c7d[_0x89ecc3(0x1cc)]()?.[_0x89ecc3(0x1ad)]||0x0,'hasRelations':![]},_0x22f944=_0x16bad5[_0x89ecc3(0x1ba)];_0x14d73e[_0x89ecc3(0x1bc)]=Array[_0x89ecc3(0x1b9)](_0x22f944)&&_0x22f944['length']>0x0;let _0x5aa4e1;if(_0x14d73e[_0x89ecc3(0x1bc)]&&includeRelations){const _0x187be3=[],_0x3565a5=_0x415c7d[_0x89ecc3(0x1cd)]();for(const _0x5610ef of _0x22f944){const _0x101cfb=_0x5610ef[_0x89ecc3(0x1be)]||_0x5610ef[_0x89ecc3(0x1b6)]||_0x89ecc3(0x1d0),_0x1b1831=_0x5610ef[_0x89ecc3(0x1c8)],_0x5b3794=_0x5610ef[_0x89ecc3(0x1c3)],_0x445c62=_0x5610ef[_0x89ecc3(0x1aa)]||_0x5610ef[_0x89ecc3(0x1b6)]||_0x89ecc3(0x1d0),_0x2b8be4=_0x5610ef[_0x89ecc3(0x1af)]||_0x89ecc3(0x1ac);if(_0x5610ef[_0x89ecc3(0x1d1)]&&_0x5610ef[_0x89ecc3(0x1d1)]!==_0x52de11){const _0x2c81f2=_0x5610ef[_0x89ecc3(0x1c0)]||_0x5610ef[_0x89ecc3(0x1d1)]||_0x89ecc3(0x1d0);_0x187be3[_0x89ecc3(0x1b7)](_0x89ecc3(0x1b3)+_0x101cfb+'('+_0x2b8be4+_0x89ecc3(0x1b2)+_0x2c81f2+'.'+_0x1b1831+_0x89ecc3(0x1b1)+_0x3565a5+'.'+_0x5b3794);}else _0x187be3[_0x89ecc3(0x1b7)](_0x89ecc3(0x1c7)+_0x101cfb+'('+_0x2b8be4+_0x89ecc3(0x1b2)+_0x3565a5+'.'+_0x1b1831+_0x89ecc3(0x1b1)+_0x445c62+'.'+_0x5b3794);}_0x187be3['length']>0x0&&(_0x5aa4e1=_0x187be3['join'](';\x20'));}return{'appCode':appCode,'env':_0x265bec,'data':_0x16bad5,'_stats':_0x14d73e,'_relationsSummary':_0x5aa4e1};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x4c80bf,_0x6a3b17){const _0x493290=a13_0x79cc,_0x33367e=_0x4c80bf();while(!![]){try{const _0x2ba73f=-parseInt(_0x493290(0x126))/0x1+parseInt(_0x493290(0x121))/0x2*(parseInt(_0x493290(0x136))/0x3)+parseInt(_0x493290(0x12e))/0x4+-parseInt(_0x493290(0x12b))/0x5*(parseInt(_0x493290(0x11e))/0x6)+parseInt(_0x493290(0x12c))/0x7*(parseInt(_0x493290(0x11d))/0x8)+parseInt(_0x493290(0x132))/0x9+parseInt(_0x493290(0x123))/0xa*(parseInt(_0x493290(0x120))/0xb);if(_0x2ba73f===_0x6a3b17)break;else _0x33367e['push'](_0x33367e['shift']());}catch(_0x3b4810){_0x33367e['push'](_0x33367e['shift']());}}}(a13_0x4d44,0x4f3d1));import{DevApiClient}from'../api/dev-api-client.js';function a13_0x79cc(_0x238939,_0xedf9de){_0x238939=_0x238939-0x11d;const _0x4d4421=a13_0x4d44();let _0x79ccb4=_0x4d4421[_0x238939];return _0x79ccb4;}import{DrivenDataDetailPlus}from'@lovrabet/dsparser';import{getEnvAppCode,getEnvironment}from'../config/env.js';export async function getOperationDetail(_0x4445c2){const _0x28dc3d=a13_0x79cc,{appCode:appCode=getEnvAppCode(),cookie:_0x2a6067,datasetCode:_0x4a312f,operationName:_0x5aa622}=_0x4445c2;if(!appCode)throw new Error(_0x28dc3d(0x11f));if(!_0x4a312f)throw new Error(_0x28dc3d(0x124));if(!_0x5aa622)throw new Error(_0x28dc3d(0x12d));const _0x1d3fe5=new DevApiClient({'appCode':appCode,'cookie':_0x2a6067}),_0x35df8c=getEnvironment(),_0x5f11b8=/^\d+$/[_0x28dc3d(0x122)](_0x4a312f);let _0x46efbf;if(_0x5f11b8)_0x46efbf=_0x4a312f;else{let _0x4395d4;_0x4395d4=await _0x1d3fe5[_0x28dc3d(0x127)]();let _0x24ca0d=_0x4395d4[_0x28dc3d(0x125)];_0x24ca0d&&!Array['isArray'](_0x24ca0d)&&(_0x24ca0d=_0x24ca0d[_0x28dc3d(0x12f)]||_0x4395d4[_0x28dc3d(0x12f)]);!Array[_0x28dc3d(0x133)](_0x24ca0d)&&(_0x24ca0d=[]);const _0x3ef3ef=_0x24ca0d[_0x28dc3d(0x129)](_0x194128=>_0x194128['code']===_0x4a312f||_0x194128[_0x28dc3d(0x131)]===_0x4a312f);if(!_0x3ef3ef)throw new Error(_0x28dc3d(0x134)+_0x4a312f);_0x46efbf=String(_0x3ef3ef['id']);}const _0x39fbe6=await _0x1d3fe5['getDatasetDetail'](_0x46efbf),_0x220246=_0x39fbe6[_0x28dc3d(0x125)]||_0x39fbe6,_0x4b0e1d=new DrivenDataDetailPlus(_0x220246),_0x4beb8a=_0x4b0e1d[_0x28dc3d(0x135)](_0x5aa622);if(!_0x4beb8a)throw new Error(_0x28dc3d(0x130)+_0x5aa622+_0x28dc3d(0x12a)+_0x4a312f+'\x27');return{'appCode':appCode,'env':_0x35df8c,'datasetName':_0x4b0e1d[_0x28dc3d(0x128)],'operation':_0x4beb8a};}function a13_0x4d44(){const _0x488a29=['Operation\x20\x27','datasetCode','1931328ZhPysl','isArray','Dataset\x20not\x20found\x20with\x20code:\x20','getOperationAnalysis','723dTcmQs','497224QasLIf','42PfMBvc','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','1667149Ftljjw','2524ppWXAB','test','20rIlWeq','datasetCode\x20is\x20required','data','283144ikGTkR','getDatasetList','name','find','\x27\x20not\x20found\x20in\x20dataset\x20\x27','401485ylXviK','35Ubkcbo','operationName\x20is\x20required','148668PFquyZ','tableData'];a13_0x4d44=function(){return _0x488a29;};return a13_0x4d44();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4fb650,_0x4dd20d){const _0x2d8e73=a14_0x48d0,_0x5c7494=_0x4fb650();while(!![]){try{const _0x30f582=parseInt(_0x2d8e73(0xe8))/0x1+parseInt(_0x2d8e73(0xe6))/0x2*(-parseInt(_0x2d8e73(0xe4))/0x3)+parseInt(_0x2d8e73(0xf2))/0x4*(parseInt(_0x2d8e73(0xf1))/0x5)+-parseInt(_0x2d8e73(0xe2))/0x6*(parseInt(_0x2d8e73(0xe9))/0x7)+-parseInt(_0x2d8e73(0xe7))/0x8+parseInt(_0x2d8e73(0xe3))/0x9*(parseInt(_0x2d8e73(0xeb))/0xa)+-parseInt(_0x2d8e73(0xf0))/0xb*(-parseInt(_0x2d8e73(0xee))/0xc);if(_0x30f582===_0x4dd20d)break;else _0x5c7494['push'](_0x5c7494['shift']());}catch(_0x2c249d){_0x5c7494['push'](_0x5c7494['shift']());}}}(a14_0x466e,0x33705));import{DevApiClient}from'../api/dev-api-client.js';function a14_0x48d0(_0x3b76b0,_0x2e0fbd){_0x3b76b0=_0x3b76b0-0xde;const _0x466e8a=a14_0x466e();let _0x48d0b1=_0x466e8a[_0x3b76b0];return _0x48d0b1;}import{DrivenDataDetailPlus}from'@lovrabet/dsparser';function a14_0x466e(){const _0x508a16=['enabled','1236PDeFVT','type','21923iJQtaG','522755PiToeF','12CEcWhS','length','requestFields','method','name','31236WEdrkw','3123DuROed','6Uuwhwg','datasetCode\x20is\x20required','330364ehsutF','1171704ZQBbjO','154434XKECVJ','511VycAsP','displayName','11360kOQKEw','getOperationCount'];a14_0x466e=function(){return _0x508a16;};return a14_0x466e();}import{getEnvAppCode,getEnvironment}from'../config/env.js';export async function getDatasetOperations(_0x1ba1d2){const _0x447b4d=a14_0x48d0,{appCode:appCode=getEnvAppCode(),cookie:_0x550b42,datasetCode:_0x1d8137}=_0x1ba1d2;if(!appCode)throw new Error('appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.');if(!_0x1d8137)throw new Error(_0x447b4d(0xe5));const _0x3cbb63=new DevApiClient({'appCode':appCode,'cookie':_0x550b42}),_0x4dbe6b=getEnvironment(),_0x4bf0fc=await _0x3cbb63['getDatasetDetail'](_0x1d8137),_0x5e5bc0=_0x4bf0fc['data']||_0x4bf0fc,_0x299f9b=new DrivenDataDetailPlus(_0x5e5bc0),_0x3ef217=_0x299f9b['getEnabledOperationAnalyses']()||[];return{'appCode':appCode,'env':_0x4dbe6b,'datasetName':_0x299f9b[_0x447b4d(0xe1)],'tableName':_0x299f9b['getTableName'](),'operations':_0x3ef217['map'](_0x1a6b9a=>({'name':_0x1a6b9a['name'],'displayName':_0x1a6b9a[_0x447b4d(0xea)],'type':_0x1a6b9a[_0x447b4d(0xef)],'method':_0x1a6b9a[_0x447b4d(0xe0)],'path':_0x1a6b9a['path'],'requestFieldsCount':_0x1a6b9a[_0x447b4d(0xdf)][_0x447b4d(0xde)],'enabled':_0x1a6b9a[_0x447b4d(0xed)]})),'stats':{'total':_0x299f9b[_0x447b4d(0xec)](),'enabled':_0x3ef217[_0x447b4d(0xde)],'supportsCRUD':_0x299f9b['supportsCRUD']()}};}
|
package/dist/tools/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x5e0328,_0x167212){var _0x2188bf=a15_0x5aa1,_0x1c52ad=_0x5e0328();while(!![]){try{var _0x1f1b25=-parseInt(_0x2188bf(0xed))/0x1+parseInt(_0x2188bf(0xf5))/0x2*(-parseInt(_0x2188bf(0xf7))/0x3)+-parseInt(_0x2188bf(0xef))/0x4*(-parseInt(_0x2188bf(0xf0))/0x5)+-parseInt(_0x2188bf(0xf8))/0x6*(parseInt(_0x2188bf(0xf6))/0x7)+parseInt(_0x2188bf(0xf2))/0x8+-parseInt(_0x2188bf(0xf3))/0x9*(-parseInt(_0x2188bf(0xf1))/0xa)+-parseInt(_0x2188bf(0xf4))/0xb*(-parseInt(_0x2188bf(0xee))/0xc);if(_0x1f1b25===_0x167212)break;else _0x1c52ad['push'](_0x1c52ad['shift']());}catch(_0x416020){_0x1c52ad['push'](_0x1c52ad['shift']());}}}(a15_0x49ad,0x7ba91));export{login}from'./login.js';export{listDatasets}from'./list-datasets.js';export{getDatasetDetail}from'./get-dataset-detail.js';export{getDatasetOperations}from'./get-operations.js';function a15_0x49ad(){var _0x53b945=['200884CnmclT','40AEhDBo','1116230HIJtOm','3961688YOyiEj','9obWDol','3586GxeksX','394BbROKS','14pUVeYK','13719fJPtTP','401856UcmBsw','276062CytDin','29772aVKQuU'];a15_0x49ad=function(){return _0x53b945;};return a15_0x49ad();}export{getOperationDetail}from'./get-operation-detail.js';export{generateSDKCode}from'./generate-sdk-code.js';export{searchDatasets}from'./search-datasets.js';export{listSqlQueries}from'./list-sql-queries.js';export{saveOrUpdateCustomSql}from'./save-or-update-custom-sql.js';export{executeCustomSql}from'./execute-custom-sql.js';export{generateSqlCode}from'./generate-sql-code.js';export{validateSqlContent}from'./validate-sql-content.js';export{listBffScripts}from'./list-bff-scripts.js';export{getBffScriptInfo}from'./get-bff-script-info.js';function a15_0x5aa1(_0x5c6d76,_0x43748b){_0x5c6d76=_0x5c6d76-0xed;var _0x49ade3=a15_0x49ad();var _0x5aa177=_0x49ade3[_0x5c6d76];return _0x5aa177;}export{saveOrUpdateBffScript}from'./save-or-update-bff-script.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5b368d,_0x22a129){const _0x39ec2e=a16_0x1eb2,_0xaeff45=_0x5b368d();while(!![]){try{const _0x16927d=-parseInt(_0x39ec2e(0x179))/0x1+parseInt(_0x39ec2e(0x178))/0x2*(parseInt(_0x39ec2e(0x17a))/0x3)+-parseInt(_0x39ec2e(0x185))/0x4*(-parseInt(_0x39ec2e(0x184))/0x5)+-parseInt(_0x39ec2e(0x17b))/0x6*(parseInt(_0x39ec2e(0x182))/0x7)+-parseInt(_0x39ec2e(0x183))/0x8+parseInt(_0x39ec2e(0x17f))/0x9*(-parseInt(_0x39ec2e(0x186))/0xa)+-parseInt(_0x39ec2e(0x181))/0xb*(-parseInt(_0x39ec2e(0x17c))/0xc);if(_0x16927d===_0x22a129)break;else _0xaeff45['push'](_0xaeff45['shift']());}catch(_0x222bf3){_0xaeff45['push'](_0xaeff45['shift']());}}}(a16_0x1757,0x2d8ed));function a16_0x1757(){const _0x50f2d1=['success','723358dajMit','177100PvIrza','3uMPfit','647706wCtRBx','10524GJRMrF','Failed\x20to\x20fetch\x20Backend\x20Function\x20scripts\x20list','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','279sFxAAv','getBffScriptList','6611xstnXH','21HmgdxX','2511256tFcCgo','1670555otUuPd','4VoSrPB','71420MNhRok','data'];a16_0x1757=function(){return _0x50f2d1;};return a16_0x1757();}import{DevApiClient}from'../api/dev-api-client.js';function a16_0x1eb2(_0x2c734e,_0x5af365){_0x2c734e=_0x2c734e-0x177;const _0x1757a0=a16_0x1757();let _0x1eb28f=_0x1757a0[_0x2c734e];return _0x1eb28f;}import{getEnvAppCode}from'../config/env.js';export async function listBffScripts(_0x1a65ca={}){const _0x21df52=a16_0x1eb2,{appCode:appCode=getEnvAppCode(),cookie:_0x3d893d}=_0x1a65ca;if(!appCode)throw new Error(_0x21df52(0x17e));const _0x4f7b29=new DevApiClient({'appCode':appCode,'cookie':_0x3d893d}),_0x40fa1e=await _0x4f7b29[_0x21df52(0x180)]();if(!_0x40fa1e[_0x21df52(0x177)]||!_0x40fa1e[_0x21df52(0x187)])return{'success':![],'message':_0x21df52(0x17d)};return{'success':!![],'scripts':_0x40fa1e[_0x21df52(0x187)],'count':_0x40fa1e[_0x21df52(0x187)]['length']};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x823bc7,_0x504baf){const _0xdf0d87=a17_0x3fd1,_0x6e0d55=_0x823bc7();while(!![]){try{const _0x25f515=-parseInt(_0xdf0d87(0x170))/0x1*(parseInt(_0xdf0d87(0x16a))/0x2)+parseInt(_0xdf0d87(0x181))/0x3*(parseInt(_0xdf0d87(0x168))/0x4)+parseInt(_0xdf0d87(0x16d))/0x5*(-parseInt(_0xdf0d87(0x158))/0x6)+-parseInt(_0xdf0d87(0x15b))/0x7*(parseInt(_0xdf0d87(0x184))/0x8)+parseInt(_0xdf0d87(0x161))/0x9+parseInt(_0xdf0d87(0x176))/0xa+parseInt(_0xdf0d87(0x156))/0xb*(parseInt(_0xdf0d87(0x15c))/0xc);if(_0x25f515===_0x504baf)break;else _0x6e0d55['push'](_0x6e0d55['shift']());}catch(_0x3b0ef3){_0x6e0d55['push'](_0x6e0d55['shift']());}}}(a17_0x1f96,0xb69e3));import{DevApiClient}from'../api/dev-api-client.js';function a17_0x1f96(){const _0x485d7a=['tableData','784316sUFNmw','outgoingRelations','68dRVcCY','message','fromDataset','5kadHEC','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','Failed\x20to\x20fetch\x20datasets\x20list:\x20','36337oyUlcQ','database','dbId','isArray','filter','getCount','11813830ODIUHO','authentication\x20failed','getAllErConfigs','relations','getDatasetList','Possible\x20reasons:\x0a','unreachable','dbName','2.\x20Network\x20connection\x20issue\x0a\x0a','code','source','3QiaBvv','[listDatasets]\x20Failed\x20to\x20fetch\x20relations:','get','16088oSCyaa','data','name','description','entries','map','from','253vjuzem','includes','7175334eZvnDU','Suggestions:\x0a','-\x20Try\x20again\x20later\x0a','140vltSOA','446064JVPpPa','timeout','has','-\x20Check\x20your\x20network\x20connection','datasets','8884368PfyCSx','network\x20error','toDataset','length','set','dbtableConfig'];a17_0x1f96=function(){return _0x485d7a;};return a17_0x1f96();}import{DatasetList}from'@lovrabet/dsparser';import{buildRelationsMap}from'../utils/relations.js';import{getEnvAppCode,getEnvironment,shouldLog}from'../config/env.js';function a17_0x3fd1(_0x81b50,_0x181905){_0x81b50=_0x81b50-0x152;const _0x1f9670=a17_0x1f96();let _0x3fd1bb=_0x1f9670[_0x81b50];return _0x3fd1bb;}export async function listDatasets(_0x5b1b5f={}){const _0x4dc3c3=a17_0x3fd1,{appCode:appCode=getEnvAppCode(),cookie:_0x1650c3,forceRefresh:forceRefresh=![],includeRelations:includeRelations=!![]}=_0x5b1b5f;if(!appCode)throw new Error(_0x4dc3c3(0x16e));const _0x4645b6=new DevApiClient({'appCode':appCode,'cookie':_0x1650c3}),_0x3a811c=getEnvironment();let _0xeb9c78;try{_0xeb9c78=await _0x4645b6[_0x4dc3c3(0x17a)]({'forceRefresh':forceRefresh});}catch(_0x3709b4){if(_0x3709b4 instanceof Error){const _0x595c3a=_0x3709b4[_0x4dc3c3(0x16b)]['toLowerCase']();if(_0x595c3a[_0x4dc3c3(0x157)](_0x4dc3c3(0x15d))||_0x595c3a[_0x4dc3c3(0x157)](_0x4dc3c3(0x17c))||_0x595c3a['includes'](_0x4dc3c3(0x162)))throw new Error(_0x4dc3c3(0x16f)+_0x3709b4[_0x4dc3c3(0x16b)]+'\x0a\x0a'+_0x4dc3c3(0x17b)+'1.\x20The\x20server\x20is\x20down\x20or\x20unreachable\x0a'+_0x4dc3c3(0x17e)+_0x4dc3c3(0x159)+_0x4dc3c3(0x15a)+_0x4dc3c3(0x15f));if(_0x595c3a[_0x4dc3c3(0x157)](_0x4dc3c3(0x177)))throw new Error('Authentication\x20failed.\x20Please\x20login\x20again.\x0a'+'Use\x20the\x20\x27login\x27\x20tool\x20to\x20re-authenticate.');}throw _0x3709b4;}let _0x55e802=_0xeb9c78[_0x4dc3c3(0x185)];_0x55e802&&!Array[_0x4dc3c3(0x173)](_0x55e802)&&(_0x55e802=_0x55e802[_0x4dc3c3(0x167)]||_0xeb9c78['tableData']);if(!_0x55e802)_0x55e802=_0xeb9c78;const _0x4a371f=new DatasetList(_0x55e802),_0x1d5330=_0x4a371f['getItems'](),_0x375c6a=_0x1d5330[_0x4dc3c3(0x154)](_0x2e14f2=>{const _0x4ebd77=_0x4dc3c3,_0x23a45f=_0x2e14f2[_0x4ebd77(0x166)],_0x58ae09=_0x23a45f?.[_0x4ebd77(0x172)],_0x105432=_0x23a45f?.[_0x4ebd77(0x17d)];return{'id':Number(_0x2e14f2['id'])||0x0,'name':_0x2e14f2[_0x4ebd77(0x186)]||'','code':_0x2e14f2['datasetCode']||'','tableName':_0x2e14f2['getTableName'](),'source':_0x2e14f2[_0x4ebd77(0x180)]||'','description':_0x2e14f2[_0x4ebd77(0x152)]||'','isVirtual':_0x2e14f2['isVirtualTable'](),'database':_0x58ae09&&_0x105432?{'dbId':_0x58ae09,'dbName':_0x105432}:null};}),_0x401a46=new Map();for(const _0x67ec5 of _0x375c6a){_0x67ec5[_0x4dc3c3(0x171)]?.[_0x4dc3c3(0x172)]&&_0x67ec5[_0x4dc3c3(0x171)]['dbName']&&_0x401a46[_0x4dc3c3(0x165)](_0x67ec5[_0x4dc3c3(0x171)][_0x4dc3c3(0x172)],_0x67ec5['database'][_0x4dc3c3(0x17d)]);}const _0x37c18c=Array[_0x4dc3c3(0x155)](_0x401a46[_0x4dc3c3(0x153)]())['map'](([_0x4c2494,_0x491b51])=>({'dbId':_0x4c2494,'dbName':_0x491b51})),_0x308a34={'appCode':appCode,'env':_0x3a811c,'total':_0x4a371f[_0x4dc3c3(0x175)](),'databases':_0x37c18c,'datasets':_0x375c6a};if(includeRelations)try{const _0x5564b7=await _0x4645b6[_0x4dc3c3(0x178)](forceRefresh);if(_0x5564b7['size']>0x0){const _0x5f2d00=new Set(_0x308a34[_0x4dc3c3(0x160)][_0x4dc3c3(0x154)](_0x2c2ffd=>_0x2c2ffd[_0x4dc3c3(0x17f)])),_0x3ec7de=buildRelationsMap(_0x5564b7);for(const _0x57f09c of _0x308a34[_0x4dc3c3(0x160)]){const _0x2970bc=_0x3ec7de[_0x4dc3c3(0x183)](_0x57f09c[_0x4dc3c3(0x17f)]);if(_0x2970bc){const _0x386a22=_0x2970bc[_0x4dc3c3(0x169)][_0x4dc3c3(0x174)](_0x2c22a4=>_0x5f2d00['has'](_0x2c22a4[_0x4dc3c3(0x163)])),_0x40ddda=_0x2970bc['incomingRelations']['filter'](_0x1d72ca=>_0x1d72ca[_0x4dc3c3(0x16c)]&&_0x5f2d00[_0x4dc3c3(0x15e)](_0x1d72ca[_0x4dc3c3(0x16c)]));_0x57f09c[_0x4dc3c3(0x179)]={'outgoing':_0x386a22,'incoming':_0x40ddda,'totalCount':_0x386a22['length']+_0x40ddda[_0x4dc3c3(0x164)]};}else _0x57f09c[_0x4dc3c3(0x179)]={'outgoing':[],'incoming':[],'totalCount':0x0};}}}catch(_0x33880b){shouldLog()&&console['warn'](_0x4dc3c3(0x182),_0x33880b);}return _0x308a34;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a18_0x2d78(){const _0x55cddd=['length','sqlName','4LtunGt','34996qbpeij','replace','sql','8129IjnyAu','toLowerCase','sqlType','includes','sqlCode','appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','624765MXkAYO','description','11291zsdsbl','455604WhgHsr','map','all','createdTime','slice','tableData','sqlDesc','filter','getCustomSqlList','352036wLSXpq','data','564804tsEMlW','string','category','sqlContent','70QlGssg','SQL-','updatedTime','updateTime','match','message','5EiTHTK','sqlId','ceil','752UpiYVG','Failed\x20to\x20list\x20SQL\x20queries:\x20','name'];a18_0x2d78=function(){return _0x55cddd;};return a18_0x2d78();}function a18_0xbeb1(_0x4da6f0,_0x3868fd){_0x4da6f0=_0x4da6f0-0x138;const _0x2d788e=a18_0x2d78();let _0xbeb1cd=_0x2d788e[_0x4da6f0];return _0xbeb1cd;}(function(_0xe6ec13,_0x485934){const _0x5e0e4c=a18_0xbeb1,_0x5a7821=_0xe6ec13();while(!![]){try{const _0xc0ac67=-parseInt(_0x5e0e4c(0x155))/0x1*(parseInt(_0x5e0e4c(0x154))/0x2)+-parseInt(_0x5e0e4c(0x15e))/0x3+parseInt(_0x5e0e4c(0x140))/0x4+-parseInt(_0x5e0e4c(0x14c))/0x5*(-parseInt(_0x5e0e4c(0x161))/0x6)+parseInt(_0x5e0e4c(0x160))/0x7*(parseInt(_0x5e0e4c(0x14f))/0x8)+parseInt(_0x5e0e4c(0x142))/0x9+parseInt(_0x5e0e4c(0x146))/0xa*(parseInt(_0x5e0e4c(0x158))/0xb);if(_0xc0ac67===_0x485934)break;else _0x5a7821['push'](_0x5a7821['shift']());}catch(_0x284f2c){_0x5a7821['push'](_0x5a7821['shift']());}}}(a18_0x2d78,0x19b1f));import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode}from'../config/env.js';function extractSqlParameters(_0x3ff7fb){const _0x1b3553=a18_0xbeb1,_0x41be14=_0x3ff7fb[_0x1b3553(0x14a)](/[:$]\{?(\w+)\}?/g);if(!_0x41be14)return undefined;const _0x580b93=Array['from'](new Set(_0x41be14[_0x1b3553(0x138)](_0x54da62=>_0x54da62[_0x1b3553(0x156)](/[:${}]/g,''))));return _0x580b93['map'](_0x10395b=>({'name':_0x10395b,'type':_0x1b3553(0x143),'required':!![]}));}export async function listSqlQueries(_0x4b71dc={}){const _0x370a4f=a18_0xbeb1,{appCode:appCode=getEnvAppCode(),cookie:_0x35ec0d,keyword:_0x381e1f,category:_0x3b4ab5,sqlCode:_0x57f006,sqlName:_0x59def3,pageSize:pageSize=0x3e7,currentPage:currentPage=0x1}=_0x4b71dc;if(!appCode)throw new Error(_0x370a4f(0x15d));const _0x2145a8=new DevApiClient({'appCode':appCode,'cookie':_0x35ec0d});try{const _0x313d31=await _0x2145a8[_0x370a4f(0x13f)]({'pageSize':pageSize,'currentPage':currentPage,'sqlCode':_0x57f006,'sqlName':_0x59def3}),_0x3eb9a6=_0x313d31[_0x370a4f(0x141)]||_0x313d31,_0x4842f9=_0x3eb9a6[_0x370a4f(0x13c)]||[];let _0x15d634=_0x4842f9['map'](_0xa9d5cb=>{const _0x1771da=_0x370a4f,_0x42a53a=_0xa9d5cb[_0x1771da(0x15c)]||appCode+'-'+(_0xa9d5cb[_0x1771da(0x14d)]||_0xa9d5cb['id']),_0x5ba4df=_0xa9d5cb[_0x1771da(0x14d)]||_0xa9d5cb['id'],_0x5ee4a8=_0xa9d5cb[_0x1771da(0x145)]||_0xa9d5cb[_0x1771da(0x157)]||'',_0x1089e0={'sqlCode':_0x42a53a,'sqlId':_0x5ba4df,'name':_0xa9d5cb[_0x1771da(0x153)]||_0xa9d5cb['name']||_0x1771da(0x147)+_0x5ba4df,'description':_0xa9d5cb[_0x1771da(0x13d)]||_0xa9d5cb[_0x1771da(0x15f)],'category':_0xa9d5cb[_0x1771da(0x144)]||_0xa9d5cb[_0x1771da(0x15a)]||'other','sqlContent':_0x5ee4a8||undefined,'parameters':_0x5ee4a8?extractSqlParameters(_0x5ee4a8):undefined,'createdTime':_0xa9d5cb[_0x1771da(0x13a)]||_0xa9d5cb['createTime'],'updatedTime':_0xa9d5cb[_0x1771da(0x148)]||_0xa9d5cb[_0x1771da(0x149)]};return _0x1089e0;});if(_0x381e1f){const _0x132616=_0x381e1f['toLowerCase']();_0x15d634=_0x15d634[_0x370a4f(0x13e)](_0x42945c=>_0x42945c[_0x370a4f(0x151)][_0x370a4f(0x159)]()[_0x370a4f(0x15b)](_0x132616)||_0x42945c[_0x370a4f(0x15f)]&&_0x42945c[_0x370a4f(0x15f)][_0x370a4f(0x159)]()['includes'](_0x132616)||_0x42945c[_0x370a4f(0x15c)]['toLowerCase']()[_0x370a4f(0x15b)](_0x132616)||_0x42945c[_0x370a4f(0x145)]&&_0x42945c[_0x370a4f(0x145)][_0x370a4f(0x159)]()[_0x370a4f(0x15b)](_0x132616));}_0x3b4ab5&&_0x3b4ab5!==_0x370a4f(0x139)&&(_0x15d634=_0x15d634[_0x370a4f(0x13e)](_0x401fec=>_0x401fec[_0x370a4f(0x144)]&&_0x401fec[_0x370a4f(0x144)][_0x370a4f(0x159)]()===_0x3b4ab5[_0x370a4f(0x159)]()));const _0x1f1629=Math[_0x370a4f(0x14e)](_0x15d634[_0x370a4f(0x152)]/pageSize),_0x1670ee=_0x15d634[_0x370a4f(0x13b)]((currentPage-0x1)*pageSize,currentPage*pageSize);return{'total':_0x15d634[_0x370a4f(0x152)],'sqls':_0x1670ee,'pagination':{'currentPage':currentPage,'pageSize':pageSize,'totalPages':_0x1f1629}};}catch(_0x13f7b6){throw new Error(_0x370a4f(0x150)+_0x13f7b6[_0x370a4f(0x14b)]);}}
|
package/dist/tools/login.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1a6be8,_0x1d180a){const _0x125965=a19_0x36b1,_0x100763=_0x1a6be8();while(!![]){try{const _0x1ba2db=parseInt(_0x125965(0x1b5))/0x1+-parseInt(_0x125965(0x1a3))/0x2*(parseInt(_0x125965(0x199))/0x3)+parseInt(_0x125965(0x1b0))/0x4+-parseInt(_0x125965(0x1a8))/0x5+parseInt(_0x125965(0x198))/0x6*(-parseInt(_0x125965(0x1b4))/0x7)+parseInt(_0x125965(0x1a5))/0x8*(-parseInt(_0x125965(0x1a0))/0x9)+-parseInt(_0x125965(0x1a4))/0xa*(-parseInt(_0x125965(0x1a1))/0xb);if(_0x1ba2db===_0x1d180a)break;else _0x100763['push'](_0x100763['shift']());}catch(_0xb7ee25){_0x100763['push'](_0x100763['shift']());}}}(a19_0x2730,0x8b1ac));import*as a19_0x393a37 from'node:https';import{saveCookie}from'../auth/cookie-manager.js';import{isSessionValid}from'../auth/session-validator.js';import{getUserDomain,getEnvironment}from'../config/env.js';function a19_0x2730(){const _0x309526=['end','Internal\x20server\x20error','36keayYA','363649zEgtUt','listen','6kAUjiy','320ofVOLU','288976FmKhJK','Please\x20open\x20this\x20URL\x20in\x20your\x20browser\x20to\x20login:\x20','https://g.yuntooai.com/cert/lovrabet-dev.json','2516235fwupxy','Login\x20server\x20error','<!doctype\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>Login\x20Successful</title></head>\x0a<body>\x0a\x20\x20<div>Login\x20successful!\x20You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20your\x20vibe\x20editor.</div>\x0a\x20\x20<script>\x0a\x20\x20\x20\x20setTimeout(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20try\x20{\x20window.close();\x20}\x20catch(e)\x20{}\x0a\x20\x20\x20\x20},\x202000);\x0a\x20\x20</script>\x0a</body>\x0a</html>','json','</p>\x0a\x20\x20\x20\x20<p>Please\x20check\x20file\x20permissions\x20for\x20~/.lovrabet/cookie</p>\x0a\x20\x20</div>\x0a</body>\x0a</html>','https://dev.lovrabet.com:','\x20environment','Login\x20successful\x20but\x20failed\x20to\x20save\x20cookie:\x20','3454864ToKQuv','text/plain','session','Login\x20timeout\x20-\x20no\x20response\x20received\x20within\x205\x20minutes','139811vucaZA','262681pABqmy','headers','writeHead','127.0.0.1','cookie','close','/sign-in?redirect=','message','Already\x20logged\x20in\x20to\x20','246WwTHGr','147885GikBxX','text/html;\x20charset=utf-8','object','user','port'];a19_0x2730=function(){return _0x309526;};return a19_0x2730();}function a19_0x36b1(_0x57efd8,_0xecca6d){_0x57efd8=_0x57efd8-0x198;const _0x273048=a19_0x2730();let _0x36b163=_0x273048[_0x57efd8];return _0x36b163;}export async function login(_0x4c8f38={}){const _0x27da7d=a19_0x36b1,_0x1362df=getEnvironment();if(await isSessionValid())return{'success':!![],'message':_0x27da7d(0x1bd)+_0x1362df+_0x27da7d(0x1ae),'env':_0x1362df};let _0x3a6f07;try{const _0x47daa9=await fetch(_0x27da7d(0x1a7));_0x3a6f07=await _0x47daa9[_0x27da7d(0x1ab)]();}catch(_0x5bc318){return{'success':![],'message':'Failed\x20to\x20fetch\x20SSL\x20certificates\x20for\x20login\x20server','env':_0x1362df};}return new Promise(_0x28617c=>{const _0x5ed9a0=_0x27da7d;let _0x335f19=0x0;const _0x3cd55e=a19_0x393a37['createServer'](_0x3a6f07,async(_0x277061,_0x1d8d23)=>{const _0x3edce0=a19_0x36b1,_0x48fb60=getUserDomain(),_0x4e352c=_0x277061[_0x3edce0(0x1b6)][_0x3edce0(0x1b9)]||'';try{const _0x4aef2b=await fetch(_0x48fb60+'/api/auth/get-session',{'headers':{'cookie':_0x4e352c}}),_0x271cb4=await _0x4aef2b[_0x3edce0(0x1ab)](),_0x48412f=_0x271cb4&&_0x271cb4[_0x3edce0(0x1b2)]&&_0x271cb4[_0x3edce0(0x19c)];if(_0x48412f){try{saveCookie(_0x4e352c);}catch(_0x461737){const _0x5ea97c='<!doctype\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>Login\x20Failed</title></head>\x0a<body>\x0a\x20\x20<div\x20style=\x22color:\x20red;\x22>\x0a\x20\x20\x20\x20<h2>Login\x20Successful,\x20but\x20Failed\x20to\x20Save\x20Cookie</h2>\x0a\x20\x20\x20\x20<p>Error:\x20'+_0x461737[_0x3edce0(0x1bc)]+_0x3edce0(0x1ac);_0x1d8d23['writeHead'](0x1f4,{'Content-Type':_0x3edce0(0x19a)}),_0x1d8d23[_0x3edce0(0x19e)](_0x5ea97c),_0x3cd55e['close'](),_0x28617c({'success':![],'message':_0x3edce0(0x1af)+_0x461737['message'],'env':_0x1362df});return;}const _0xe5c3a5=_0x3edce0(0x1aa);_0x1d8d23[_0x3edce0(0x1b7)](0xc8,{'Content-Type':_0x3edce0(0x19a)}),_0x1d8d23[_0x3edce0(0x19e)](_0xe5c3a5),_0x3cd55e['close'](),_0x28617c({'success':!![],'message':'Successfully\x20logged\x20in\x20to\x20'+_0x1362df+_0x3edce0(0x1ae),'env':_0x1362df});}else{const _0x43f733=encodeURIComponent(_0x3edce0(0x1ad)+_0x335f19);_0x1d8d23[_0x3edce0(0x1b7)](0x12e,{'location':_0x48fb60+_0x3edce0(0x1bb)+_0x43f733}),_0x1d8d23[_0x3edce0(0x19e)]();}}catch(_0x559a8d){_0x1d8d23[_0x3edce0(0x1b7)](0x1f4,{'Content-Type':_0x3edce0(0x1b1)}),_0x1d8d23[_0x3edce0(0x19e)](_0x3edce0(0x19f)),_0x3cd55e[_0x3edce0(0x1ba)](),_0x28617c({'success':![],'message':_0x3edce0(0x1a9),'env':_0x1362df});}});_0x3cd55e[_0x5ed9a0(0x1a2)](0x0,_0x5ed9a0(0x1b8),()=>{const _0x576bad=_0x5ed9a0,_0x726ec0=_0x3cd55e['address']();_0x335f19=typeof _0x726ec0===_0x576bad(0x19b)&&_0x726ec0?_0x726ec0[_0x576bad(0x19d)]:0x0;const _0xc14433=_0x576bad(0x1ad)+_0x335f19;_0x28617c({'success':![],'message':_0x576bad(0x1a6)+_0xc14433,'loginUrl':_0xc14433,'env':_0x1362df});}),_0x3cd55e['on']('error',_0x4d6c7c=>{const _0x382b53=_0x5ed9a0;_0x28617c({'success':![],'message':'Login\x20server\x20error:\x20'+_0x4d6c7c[_0x382b53(0x1bc)],'env':_0x1362df});}),setTimeout(()=>{const _0x59cc6e=_0x5ed9a0;_0x3cd55e[_0x59cc6e(0x1ba)](),_0x28617c({'success':![],'message':_0x59cc6e(0x1b3),'env':_0x1362df});},0x5*0x3c*0x3e8);});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a20_0x3a67(_0x4d9a41,_0x2db332){_0x4d9a41=_0x4d9a41-0x1ad;const _0x42905c=a20_0x4290();let _0x3a6723=_0x42905c[_0x4d9a41];return _0x3a6723;}(function(_0x4dc018,_0x54973d){const _0x1e21e7=a20_0x3a67,_0x55a8ee=_0x4dc018();while(!![]){try{const _0x16253b=parseInt(_0x1e21e7(0x1b6))/0x1*(-parseInt(_0x1e21e7(0x1bd))/0x2)+-parseInt(_0x1e21e7(0x1af))/0x3*(-parseInt(_0x1e21e7(0x1b8))/0x4)+parseInt(_0x1e21e7(0x1bb))/0x5*(-parseInt(_0x1e21e7(0x1c8))/0x6)+parseInt(_0x1e21e7(0x1bc))/0x7*(parseInt(_0x1e21e7(0x1b3))/0x8)+parseInt(_0x1e21e7(0x1b7))/0x9+parseInt(_0x1e21e7(0x1c7))/0xa*(parseInt(_0x1e21e7(0x1b4))/0xb)+parseInt(_0x1e21e7(0x1ae))/0xc;if(_0x16253b===_0x54973d)break;else _0x55a8ee['push'](_0x55a8ee['shift']());}catch(_0x526bb4){_0x55a8ee['push'](_0x55a8ee['shift']());}}}(a20_0x4290,0x92277));import{DevApiClient}from'../api/dev-api-client.js';import{getEnvAppCode}from'../config/env.js';function a20_0x4290(){const _0x245383=['55086VzgXVM','clearBffScriptCache','5143512GuWOyq','2277PqFwVL','trim','\x20Backend\x20Function\x20script','saveBffScript','2264HwBgzR','22qUSwZI','created','54IyadDL','2044800MKPWpm','1140lviFKn','data','Unknown\x20error','365PeawMX','23443yfHeup','22718KcEfvQ','description\x20is\x20required\x20and\x20cannot\x20be\x20empty.','Backend\x20Function\x20\x22','scriptContent\x20is\x20required\x20and\x20cannot\x20be\x20empty.','save','update','\x22\x20saved\x20successfully','message','updated','success','311690SkaYbp'];a20_0x4290=function(){return _0x245383;};return a20_0x4290();}export async function saveOrUpdateBffScript(_0x23bc14){const _0x4d3177=a20_0x3a67,{appCode:appCode=getEnvAppCode(),cookie:_0x591e9e,id:_0x4a2e4c,description:_0x8832e4,scriptContent:_0xcceed4}=_0x23bc14;if(!appCode)throw new Error('appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.');if(!_0x8832e4||_0x8832e4[_0x4d3177(0x1b0)]()==='')throw new Error(_0x4d3177(0x1be));if(!_0xcceed4||_0xcceed4[_0x4d3177(0x1b0)]()==='')throw new Error(_0x4d3177(0x1c0));const _0x39703a=_0x4a2e4c!==undefined&&_0x4a2e4c>0x0,_0x14f1f6=new DevApiClient({'appCode':appCode,'cookie':_0x591e9e}),_0x263982=_0x8832e4['trim'](),_0x140cb6=_0xcceed4[_0x4d3177(0x1b0)]();let _0x12a313;_0x12a313=await _0x14f1f6[_0x4d3177(0x1b2)]({'id':_0x39703a?_0x4a2e4c:null,'appCode':appCode,'description':_0x263982,'scriptContent':_0x140cb6,'scriptType':'ENDPOINT'});if(!_0x12a313[_0x4d3177(0x1c6)])return{'success':![],'action':_0x39703a?_0x4d3177(0x1c5):_0x4d3177(0x1b5),'message':_0x12a313[_0x4d3177(0x1c4)]||_0x12a313['errorMsg']||'Failed\x20to\x20'+(_0x39703a?_0x4d3177(0x1c2):_0x4d3177(0x1c1))+_0x4d3177(0x1b1)};const _0x206f18=_0x12a313[_0x4d3177(0x1b9)]?.['id'];let _0x53cc25={'success':![]};try{const _0x3da43b=await _0x14f1f6[_0x4d3177(0x1ad)]();_0x53cc25={'success':_0x3da43b['success']};}catch(_0x27bc07){_0x53cc25={'success':![],'error':_0x27bc07[_0x4d3177(0x1c4)]||_0x4d3177(0x1ba)};}return{'success':!![],'action':_0x39703a?'updated':_0x4d3177(0x1b5),'message':_0x39703a?_0x4d3177(0x1bf)+_0x263982+'\x22\x20updated\x20successfully':_0x4d3177(0x1bf)+_0x263982+_0x4d3177(0x1c3),'data':_0x12a313[_0x4d3177(0x1b9)],'cacheClear':_0x53cc25};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1ca8dc,_0x57bcd2){const _0x48c85c=a21_0x33d7,_0x30222d=_0x1ca8dc();while(!![]){try{const _0x242271=-parseInt(_0x48c85c(0x158))/0x1+-parseInt(_0x48c85c(0x140))/0x2+parseInt(_0x48c85c(0x154))/0x3*(-parseInt(_0x48c85c(0x15b))/0x4)+parseInt(_0x48c85c(0x143))/0x5+parseInt(_0x48c85c(0x15e))/0x6+-parseInt(_0x48c85c(0x142))/0x7+parseInt(_0x48c85c(0x16e))/0x8*(parseInt(_0x48c85c(0x144))/0x9);if(_0x242271===_0x57bcd2)break;else _0x30222d['push'](_0x30222d['shift']());}catch(_0x1c7ce9){_0x30222d['push'](_0x30222d['shift']());}}}(a21_0x1e17,0x9e5da));import{DevApiClient}from'../api/dev-api-client.js';import{detectSqlType,parseSqlStructure,generateSqlSummary}from'../utils/sql-parser.js';function a21_0x1e17(){const _0x45adc4=['63BWnQoM','isDangerous','updated','type','warn','\x22\x20保存被阻止:\x20','sqlName','\x20custom\x20SQL','update','throttle','\x22\x20updated\x20successfully\x20(','tableData','[saveOrUpdateCustomSql]\x20Verification\x20query\x20failed:','length','name','sqlName\x20is\x20required\x20and\x20cannot\x20be\x20empty.','66VzGZwv','Custom\x20SQL\x20\x22','trim','verified','641916LWaFsO','isSelectOnly','⚠️\x20检测到\x20','183644fRwwzc','sqlContent\x20is\x20required\x20and\x20cannot\x20be\x20empty.','success','3022314OSsRmr','createdTime','errorMsg','save','sql','sqlContent','SQL\x20\x22','sqlSave','检测到\x20','created','sqlId','data','createTime','tables','dbId\x20is\x20required.\x20Get\x20it\x20from\x20get_dataset_detail\x20->\x20basic.database.dbId','parameters','3809840kSHMOM','\x20语句(会修改数据/结构),为安全起见不会自动保存到\x20Lovrabet\x20平台','getCustomSqlList','message','1790232TQzwxx','\x20语句,不会自动保存到\x20Lovrabet\x20平台','9067513zJonVE','3268850mbfzEV'];a21_0x1e17=function(){return _0x45adc4;};return a21_0x1e17();}import{getEnvAppCode,shouldLog}from'../config/env.js';import{rateLimiters}from'../utils/rate-limiter.js';function a21_0x33d7(_0x804341,_0x56332a){_0x804341=_0x804341-0x13f;const _0x1e1760=a21_0x1e17();let _0x33d7c0=_0x1e1760[_0x804341];return _0x33d7c0;}export async function saveOrUpdateCustomSql(_0x524bbd){const _0x4eae67=a21_0x33d7,{appCode:appCode=getEnvAppCode(),cookie:_0x3d5305,sqlName:_0x24e318,dbId:_0x598db9,sqlContent:_0xdf3376,id:_0x110139,verifyAfterSave:verifyAfterSave=!![]}=_0x524bbd;if(!appCode)throw new Error('appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.');if(!_0x24e318||_0x24e318[_0x4eae67(0x156)]()==='')throw new Error(_0x4eae67(0x153));if(!_0x598db9)throw new Error(_0x4eae67(0x16c));if(!_0xdf3376||_0xdf3376[_0x4eae67(0x156)]()==='')throw new Error(_0x4eae67(0x15c));const _0x40b195=_0x110139!==undefined&&_0x110139>0x0,_0x25ba59=detectSqlType(_0xdf3376),_0xab0f3b=parseSqlStructure(_0xdf3376),_0x5f4e89=generateSqlSummary(_0xdf3376),_0x47483b=_0x24e318[_0x4eae67(0x156)]();if(!_0x25ba59[_0x4eae67(0x159)]){const _0x2f128e=_0x25ba59[_0x4eae67(0x145)]?_0x4eae67(0x15a)+_0x25ba59['type']+_0x4eae67(0x16f):_0x4eae67(0x166)+_0x25ba59['type']+_0x4eae67(0x141);return{'success':![],'action':'blocked','message':_0x4eae67(0x164)+_0x47483b+_0x4eae67(0x149)+_0x2f128e,'parsedStructure':{'tables':_0xab0f3b[_0x4eae67(0x16b)],'columns':_0xab0f3b['columns'][_0x4eae67(0x151)],'parameters':_0xab0f3b['parameters'],'summary':_0x5f4e89},'sqlType':{'type':_0x25ba59['type'],'isSelectOnly':![],'isDangerous':_0x25ba59[_0x4eae67(0x145)],'warning':_0x2f128e}};}const _0x1cc6b=new DevApiClient({'appCode':appCode,'cookie':_0x3d5305});let _0x45e66d;_0x40b195?_0x45e66d=await rateLimiters['sqlSave'][_0x4eae67(0x14d)](()=>_0x1cc6b['updateUserCustomSql']({'id':_0x110139,'sqlName':_0x47483b,'dbId':_0x598db9,'sqlContent':_0xdf3376['trim']()})):_0x45e66d=await rateLimiters[_0x4eae67(0x165)]['throttle'](()=>_0x1cc6b['saveUserCustomSql']({'sqlName':_0x47483b,'dbId':_0x598db9,'sqlContent':_0xdf3376[_0x4eae67(0x156)]()}));if(!_0x45e66d[_0x4eae67(0x15d)])return{'success':![],'action':_0x40b195?_0x4eae67(0x146):_0x4eae67(0x167),'message':_0x45e66d[_0x4eae67(0x13f)]||_0x45e66d[_0x4eae67(0x160)]||'Failed\x20to\x20'+(_0x40b195?_0x4eae67(0x14c):_0x4eae67(0x161))+_0x4eae67(0x14b),'sqlType':{'type':_0x25ba59[_0x4eae67(0x147)],'isSelectOnly':!![],'isDangerous':![]}};const _0x295af0={'success':!![],'action':_0x40b195?'updated':_0x4eae67(0x167),'message':_0x40b195?_0x4eae67(0x155)+_0x47483b+_0x4eae67(0x14e)+_0x5f4e89+')':_0x4eae67(0x155)+_0x47483b+'\x22\x20saved\x20successfully\x20('+_0x5f4e89+')','parsedStructure':{'tables':_0xab0f3b[_0x4eae67(0x16b)],'columns':_0xab0f3b['columns']['length'],'parameters':_0xab0f3b[_0x4eae67(0x16d)],'summary':_0x5f4e89},'sqlType':{'type':_0x25ba59[_0x4eae67(0x147)],'isSelectOnly':!![],'isDangerous':![]},'data':_0x45e66d[_0x4eae67(0x169)]};if(verifyAfterSave)try{const _0x2146bb=await _0x1cc6b[_0x4eae67(0x170)]({'pageSize':0xa,'currentPage':0x1,'sqlName':_0x47483b}),_0x25b45f=_0x2146bb[_0x4eae67(0x169)]?.[_0x4eae67(0x14f)]||[],_0x317e8c=_0x25b45f['find'](_0x5a0f75=>_0x5a0f75[_0x4eae67(0x14a)]===_0x47483b||_0x5a0f75[_0x4eae67(0x152)]===_0x47483b);_0x317e8c?_0x295af0['verified']={'found':!![],'sqlInfo':{'sqlCode':_0x317e8c['sqlCode']||appCode+'-'+(_0x317e8c[_0x4eae67(0x168)]||_0x317e8c['id']),'sqlId':_0x317e8c['sqlId']||_0x317e8c['id'],'id':_0x317e8c['id'],'name':_0x317e8c['sqlName']||_0x317e8c[_0x4eae67(0x152)],'sqlContent':_0x317e8c[_0x4eae67(0x163)]||_0x317e8c[_0x4eae67(0x162)],'createdTime':_0x317e8c[_0x4eae67(0x15f)]||_0x317e8c[_0x4eae67(0x16a)],'updatedTime':_0x317e8c['updatedTime']||_0x317e8c['updateTime']}}:_0x295af0[_0x4eae67(0x157)]={'found':![]};}catch(_0x3fc660){shouldLog()&&console[_0x4eae67(0x148)](_0x4eae67(0x150),_0x3fc660),_0x295af0[_0x4eae67(0x157)]={'found':![]};}return _0x295af0;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x174212,_0x410158){const _0x320ab9=a22_0x4f98,_0x1eb9c4=_0x174212();while(!![]){try{const _0x5af99e=-parseInt(_0x320ab9(0xd1))/0x1+-parseInt(_0x320ab9(0xcb))/0x2+parseInt(_0x320ab9(0xc1))/0x3+parseInt(_0x320ab9(0xc6))/0x4*(-parseInt(_0x320ab9(0xcf))/0x5)+-parseInt(_0x320ab9(0xd2))/0x6*(-parseInt(_0x320ab9(0xd4))/0x7)+parseInt(_0x320ab9(0xcc))/0x8*(-parseInt(_0x320ab9(0xd0))/0x9)+parseInt(_0x320ab9(0xc7))/0xa*(parseInt(_0x320ab9(0xc9))/0xb);if(_0x5af99e===_0x410158)break;else _0x1eb9c4['push'](_0x1eb9c4['shift']());}catch(_0x202a51){_0x1eb9c4['push'](_0x1eb9c4['shift']());}}}(a22_0x128d,0xadf24));function a22_0x4f98(_0x3d305b,_0x514dd2){_0x3d305b=_0x3d305b-0xc0;const _0x128dd4=a22_0x128d();let _0x4f984b=_0x128dd4[_0x3d305b];return _0x4f984b;}function a22_0x128d(){const _0x550350=['appCode\x20is\x20required.\x20Provide\x20it\x20as\x20parameter\x20or\x20set\x20LOVRABET_APP_CODE\x20environment\x20variable.','290oriJFd','414CEOQQY','1142523xCMgXr','205554KDZRas','name','224tufEcq','map','2449251XAFgDq','tableData','description','getTableName','searchDatasets','89632tHxpeq','422340lLmXdC','keyword\x20is\x20required','550anDijV','getItems','1641764vZLJlX','8496FwQJla','datasetCode'];a22_0x128d=function(){return _0x550350;};return a22_0x128d();}import{DevApiClient}from'../api/dev-api-client.js';import{DatasetList}from'@lovrabet/dsparser';import{getEnvAppCode,getEnvironment}from'../config/env.js';export async function searchDatasets(_0x4f62e9){const _0x3df29f=a22_0x4f98,{appCode:appCode=getEnvAppCode(),cookie:_0x51b26b,keyword:_0x40e706}=_0x4f62e9;if(!appCode)throw new Error(_0x3df29f(0xce));if(!_0x40e706)throw new Error(_0x3df29f(0xc8));const _0x6f0b90=new DevApiClient({'appCode':appCode,'cookie':_0x51b26b}),_0x1de73c=getEnvironment(),_0x1997c6=await _0x6f0b90[_0x3df29f(0xc5)](_0x40e706);let _0x12e5e9=_0x1997c6['data'];_0x12e5e9&&!Array['isArray'](_0x12e5e9)&&(_0x12e5e9=_0x12e5e9[_0x3df29f(0xc2)]||_0x1997c6[_0x3df29f(0xc2)]);if(!_0x12e5e9)_0x12e5e9=_0x1997c6;const _0x5d175f=new DatasetList(_0x12e5e9),_0x23ecaf=_0x5d175f[_0x3df29f(0xca)]();return{'appCode':appCode,'env':_0x1de73c,'keyword':_0x40e706,'total':_0x5d175f['getCount'](),'datasets':_0x23ecaf[_0x3df29f(0xc0)](_0x303220=>({'id':Number(_0x303220['id'])||0x0,'name':_0x303220[_0x3df29f(0xd3)]||'','code':_0x303220[_0x3df29f(0xcd)]||'','tableName':_0x303220[_0x3df29f(0xc4)](),'description':_0x303220[_0x3df29f(0xc3)]||''}))};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x54158d,_0x98a8a5){const _0x1c5bcc=a23_0x39e2,_0x385106=_0x54158d();while(!![]){try{const _0x2b432d=-parseInt(_0x1c5bcc(0x9b))/0x1+-parseInt(_0x1c5bcc(0xad))/0x2*(parseInt(_0x1c5bcc(0xa8))/0x3)+-parseInt(_0x1c5bcc(0xa2))/0x4+-parseInt(_0x1c5bcc(0x9f))/0x5*(parseInt(_0x1c5bcc(0xa3))/0x6)+parseInt(_0x1c5bcc(0xb3))/0x7*(parseInt(_0x1c5bcc(0xb6))/0x8)+-parseInt(_0x1c5bcc(0xa7))/0x9+parseInt(_0x1c5bcc(0xb2))/0xa;if(_0x2b432d===_0x98a8a5)break;else _0x385106['push'](_0x385106['shift']());}catch(_0x3cb5f5){_0x385106['push'](_0x385106['shift']());}}}(a23_0xfcbb,0xa81b3));import{DevApiClient}from'../api/dev-api-client.js';function a23_0xfcbb(){const _0x18096a=['9240561sQphes','9MUInoh','\x20语句(会修改数据/结构)','isDangerous','UNKNOWN','isSelectOnly','748586LPaiLe','warn','valid','⚠️\x20SELECT\x20查询存在问题','find','30589560zjTAUQ','7461944JmsPgY','⚠️\x20','errors','8tQeOuK','map','trim',',存在错误','length','160911ayyajG','\x20个错误','data','code','73490PZWBJb','tableName','getDatasetDetail','1387488RTqjkv','318GEBjeZ','getDatasetList','SQL\x20content\x20is\x20required','\x20语句'];a23_0xfcbb=function(){return _0x18096a;};return a23_0xfcbb();}import{detectSqlType,parseSqlStructure,validateSqlContent as a23_0x163e2e,generateSqlSummary}from'../utils/sql-parser.js';function a23_0x39e2(_0x5161bc,_0x5cbe2b){_0x5161bc=_0x5161bc-0x98;const _0xfcbb5f=a23_0xfcbb();let _0x39e247=_0xfcbb5f[_0x5161bc];return _0x39e247;}import{getEnvAppCode,shouldLog}from'../config/env.js';async function fetchSchemaInfo(_0x2da4bb,_0x3f8934){const _0x5b79a7=a23_0x39e2,_0x2f2e50=[];for(const _0x104a8e of _0x2da4bb){try{const _0x1beca1=/^\d+$/['test'](_0x104a8e);let _0x23040d=_0x104a8e;if(!_0x1beca1){const _0x5f3ebe=await _0x3f8934[_0x5b79a7(0xa4)](),_0x49c6c8=_0x5f3ebe[_0x5b79a7(0x9d)]?.['tableData']||[],_0x155139=_0x49c6c8[_0x5b79a7(0xb1)](_0x3cdd5e=>_0x3cdd5e[_0x5b79a7(0x9e)]===_0x104a8e);if(!_0x155139)continue;_0x23040d=String(_0x155139['id']);}const _0x9f54f4=await _0x3f8934[_0x5b79a7(0xa1)](_0x23040d),_0x3e6d91=_0x9f54f4['data']?.[_0x5b79a7(0xa0)]||'',_0xfc2bc8=_0x9f54f4[_0x5b79a7(0x9d)]?.['properties']||[],_0x6be8b7=_0xfc2bc8[_0x5b79a7(0xb7)](_0x2797f0=>_0x2797f0[_0x5b79a7(0x9e)]||_0x2797f0['fieldCode']);_0x3e6d91&&_0x6be8b7[_0x5b79a7(0x9a)]>0x0&&_0x2f2e50['push']({'tableName':_0x3e6d91,'columns':_0x6be8b7});}catch(_0x3a257b){shouldLog()&&console[_0x5b79a7(0xae)]('[validateSqlContent]\x20Failed\x20to\x20fetch\x20schema\x20for\x20'+_0x104a8e+':',_0x3a257b);}}return _0x2f2e50;}export async function validateSqlContentTool(_0x1f5ec5){const _0x66a7e8=a23_0x39e2,{appCode:appCode=getEnvAppCode(),cookie:_0x40ee6d,sqlContent:_0x2ccc89,dbId:_0x4e89b2,validateSchemas:validateSchemas=[]}=_0x1f5ec5;if(!_0x2ccc89||_0x2ccc89[_0x66a7e8(0x98)]()==='')return{'success':![],'message':_0x66a7e8(0xa5),'sqlContent':'','parsedStructure':{'tables':[],'columns':[],'parameters':[]},'schemaValidation':{'valid':![]},'sqlType':{'type':_0x66a7e8(0xab),'isSelectOnly':![],'isDangerous':![]}};const _0x3f4da7=detectSqlType(_0x2ccc89),_0x55601c=parseSqlStructure(_0x2ccc89),_0x2db83c=generateSqlSummary(_0x2ccc89);let _0x29be51;if(validateSchemas[_0x66a7e8(0x9a)]>0x0&&appCode){const _0x195373=new DevApiClient({'appCode':appCode,'cookie':_0x40ee6d});_0x29be51=await fetchSchemaInfo(validateSchemas,_0x195373);}const _0x1b2367=a23_0x163e2e(_0x2ccc89,_0x29be51?{'tables':_0x29be51}:undefined);let _0x3305d0='';if(_0x3f4da7[_0x66a7e8(0xac)])_0x3305d0=_0x1b2367['valid']?'✓\x20SELECT\x20查询':_0x66a7e8(0xb0);else _0x3f4da7[_0x66a7e8(0xaa)]?_0x3305d0=_0x66a7e8(0xb4)+_0x3f4da7['type']+_0x66a7e8(0xa9):_0x3305d0=_0x3f4da7['type']+_0x66a7e8(0xa6);const _0x3da2a6=_0x1b2367[_0x66a7e8(0xaf)]?'':_0x66a7e8(0x99),_0x140e47=_0x2db83c?'\x20('+_0x2db83c+')':'',_0x2d8884=!_0x1b2367['valid']&&_0x1b2367[_0x66a7e8(0xb5)]?','+_0x1b2367[_0x66a7e8(0xb5)][_0x66a7e8(0x9a)]+_0x66a7e8(0x9c):'';return{'success':_0x1b2367['valid']||!![],'message':''+_0x3305d0+_0x3da2a6+_0x140e47+_0x2d8884,'sqlContent':_0x2ccc89,'parsedStructure':_0x55601c,'schemaValidation':{'valid':_0x1b2367[_0x66a7e8(0xaf)],'errors':_0x1b2367[_0x66a7e8(0xb5)]},'sqlType':_0x3f4da7};}export{validateSqlContentTool as validateSqlContent};
|
package/dist/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x31916,_0x100eb5){var _0x3bf326=a25_0x236f,_0x2f1711=_0x31916();while(!![]){try{var _0x372699=parseInt(_0x3bf326(0x1c5))/0x1*(parseInt(_0x3bf326(0x1ca))/0x2)+-parseInt(_0x3bf326(0x1c6))/0x3*(parseInt(_0x3bf326(0x1c7))/0x4)+-parseInt(_0x3bf326(0x1cd))/0x5*(parseInt(_0x3bf326(0x1cb))/0x6)+-parseInt(_0x3bf326(0x1cc))/0x7*(-parseInt(_0x3bf326(0x1c4))/0x8)+-parseInt(_0x3bf326(0x1c8))/0x9*(parseInt(_0x3bf326(0x1ce))/0xa)+-parseInt(_0x3bf326(0x1c9))/0xb+parseInt(_0x3bf326(0x1cf))/0xc;if(_0x372699===_0x100eb5)break;else _0x2f1711['push'](_0x2f1711['shift']());}catch(_0x5a2a62){_0x2f1711['push'](_0x2f1711['shift']());}}}(a25_0x3e37,0x688b9));export{createError,createAuthError,createMissingParamError,createDatasetNotFoundError,createSqlNotFoundError,createSqlValidationError,createStructuredSqlError,fromLovrabetError,SQL_ERROR_TYPE_LABELS}from'./mcp-types.js';function a25_0x236f(_0x11007f,_0x4d662e){_0x11007f=_0x11007f-0x1c4;var _0x3e37a6=a25_0x3e37();var _0x236f34=_0x3e37a6[_0x11007f];return _0x236f34;}function a25_0x3e37(){var _0x330453=['9DMSIuY','1286582XTUrBS','373670kObIWz','6xxiKYG','2005493vArfpl','3308915CjYASR','7364750DoGZbL','15798720PyCyOG','8JqvCwR','3gRtNvb','753fWSxmS','3508IQwNZv'];a25_0x3e37=function(){return _0x330453;};return a25_0x3e37();}
|
package/dist/types/mcp-types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a26_0x16c876=a26_0x330d;(function(_0x470099,_0x53f898){const _0x4f0078=a26_0x330d,_0x10a0e7=_0x470099();while(!![]){try{const _0xb98de0=-parseInt(_0x4f0078(0x1d6))/0x1+parseInt(_0x4f0078(0x1d3))/0x2+-parseInt(_0x4f0078(0x19b))/0x3*(parseInt(_0x4f0078(0x1b9))/0x4)+parseInt(_0x4f0078(0x1c5))/0x5*(-parseInt(_0x4f0078(0x1c7))/0x6)+parseInt(_0x4f0078(0x1c6))/0x7*(parseInt(_0x4f0078(0x1b3))/0x8)+parseInt(_0x4f0078(0x1ba))/0x9+parseInt(_0x4f0078(0x1d0))/0xa;if(_0xb98de0===_0x53f898)break;else _0x10a0e7['push'](_0x10a0e7['shift']());}catch(_0x1e340b){_0x10a0e7['push'](_0x10a0e7['shift']());}}}(a26_0x59fc,0x293b5));export const SQL_ERROR_TYPE_LABELS={'TABLE_NOT_FOUND':a26_0x16c876(0x1ae),'COLUMN_NOT_FOUND':a26_0x16c876(0x1b6),'AMBIGUOUS_COLUMN':a26_0x16c876(0x1bf),'SYNTAX_ERROR':a26_0x16c876(0x1a6),'TYPE_MISMATCH':'类型不匹配','MISSING_WHERE_CLAUSE':a26_0x16c876(0x1d4),'UNSAFE_QUERY':'不安全的查询'};export function createError(_0x2153da){const _0x15f42c=a26_0x16c876;return{'error':!![],'code':_0x2153da[_0x15f42c(0x1a1)],'message':_0x2153da[_0x15f42c(0x1b2)],'status':_0x2153da['status'],'description':_0x2153da[_0x15f42c(0x1d9)],'response':_0x2153da[_0x15f42c(0x1a4)],'suggestedAction':_0x2153da[_0x15f42c(0x1b5)],'recoverable':_0x2153da[_0x15f42c(0x1d2)]??!![],'timestamp':new Date()[_0x15f42c(0x1bb)]()};}export function createAuthError(){const _0x38b4fe=a26_0x16c876;return createError({'code':'AUTH_REQUIRED','message':_0x38b4fe(0x1c0),'suggestedAction':{'tool':_0x38b4fe(0x1a0),'description':_0x38b4fe(0x1ac),'example':_0x38b4fe(0x1a2)},'recoverable':!![]});}function a26_0x59fc(){const _0x384a8c=['确保\x20SELECT\x20语句格式正确,如:\x20SELECT\x20id,\x20name\x20FROM\x20table\x20WHERE\x20status\x20=\x201','SQL_EXECUTION_FAILED','message','216mhWpfq','location','suggestedAction','字段不存在','DATASET_NOT_FOUND','使用\x20list_datasets\x20工具查看所有可用的数据集表名','4oSKXNu','259632rTMckO','toISOString','SQL_NOT_FOUND','list_datasets','NETWORK_ERROR','字段名歧义','需要登录才能访问\x20Lovrabet\x20数据。请先使用\x20login\x20工具进行登录。','canAutoFix','API_ERROR','数据集不存在:\x20','tool','450Cbolyx','35301uZMRpm','16998nsIpDQ','example','toolParams','PARAMETER_INVALID','push','PARAMETER_MISSING','获取数据集详情以确认表名和字段名','typeLabel','get_dataset_detail({\x20datasetCode:\x20\x22customer\x22\x20})','5760240VCKqRk','fixSteps','recoverable','156464pQGjbF','缺少\x20WHERE\x20条件','fixedSql','131453BkTobH','COLUMN_NOT_FOUND','使用\x20get_dataset_detail\x20工具查看数据集的所有字段','description','UNKNOWN_ERROR','list_sql_queries','TABLE_NOT_FOUND','SQL\x20不存在:\x20','791871Fvrnue','error','severity','suggestions','查看所有可用的\x20SQL\x20查询','login','code','login({\x20env:\x20\x22online\x22\x20})','AUTH_REQUIRED','response','查看所有可用的数据集','语法错误','status','get_dataset_detail','SYNTAX_ERROR','type','list_sql_queries({\x20pageSize:\x20999\x20})','登录到\x20Lovrabet\x20平台','<dataset-code>','表不存在','检查\x20SQL\x20语法,确保关键字拼写正确、括号匹配'];a26_0x59fc=function(){return _0x384a8c;};return a26_0x59fc();}function a26_0x330d(_0xf14ab8,_0x134fae){_0xf14ab8=_0xf14ab8-0x197;const _0x59fc91=a26_0x59fc();let _0x330d80=_0x59fc91[_0xf14ab8];return _0x330d80;}export function createMissingParamError(_0x51c6e9,_0x294f9f){const _0x3136db=a26_0x16c876;return createError({'code':_0x3136db(0x1cc),'message':'缺少必需参数:\x20'+_0x51c6e9+(_0x294f9f?'\x20('+_0x294f9f+')':''),'recoverable':!![]});}export function createDatasetNotFoundError(_0x111a8d){const _0x5f2f5f=a26_0x16c876;return createError({'code':_0x5f2f5f(0x1b7),'message':_0x5f2f5f(0x1c3)+_0x111a8d,'suggestedAction':{'tool':_0x5f2f5f(0x1bd),'description':_0x5f2f5f(0x1a5),'example':'list_datasets({\x20pageSize:\x20999\x20})'},'recoverable':!![]});}export function createSqlNotFoundError(_0x591d49){const _0x17d3be=a26_0x16c876;return createError({'code':_0x17d3be(0x1bc),'message':_0x17d3be(0x19a)+_0x591d49,'suggestedAction':{'tool':_0x17d3be(0x198),'description':_0x17d3be(0x19f),'example':_0x17d3be(0x1ab)},'recoverable':!![]});}export function createSqlValidationError(_0x260b07){const _0x431cea=a26_0x16c876,_0x18c5ab=_0x260b07[_0x431cea(0x1d1)]['length']>0x0,_0x373ed9=_0x18c5ab?_0x260b07[_0x431cea(0x1d1)][0x0]:undefined,_0x1ad827={'type':_0x260b07[_0x431cea(0x1aa)],'typeLabel':_0x260b07[_0x431cea(0x1ce)],'location':_0x260b07[_0x431cea(0x1b4)],'severity':_0x260b07[_0x431cea(0x19d)],'fixSteps':_0x260b07[_0x431cea(0x1d1)],'suggestions':_0x260b07[_0x431cea(0x19e)],'canAutoFix':_0x260b07['canAutoFix'],'fixedSql':_0x260b07['fixedSql']};return createError({'code':'SQL_VALIDATION_FAILED','message':_0x260b07[_0x431cea(0x1ce)]+':\x20'+_0x260b07[_0x431cea(0x1b2)],'status':_0x260b07[_0x431cea(0x1a7)],'description':_0x1ad827,'response':_0x260b07[_0x431cea(0x1a4)],'suggestedAction':_0x373ed9?{'tool':_0x373ed9[_0x431cea(0x1c4)],'description':_0x373ed9[_0x431cea(0x1d9)],'params':_0x373ed9[_0x431cea(0x1c9)],'example':_0x373ed9[_0x431cea(0x1c8)]}:{'tool':_0x431cea(0x1a8),'description':_0x431cea(0x1cd),'params':{'datasetCode':_0x431cea(0x1ad)}},'recoverable':_0x260b07[_0x431cea(0x19d)]!==_0x431cea(0x19c)});}export function createStructuredSqlError(_0x549b49){const _0x2cdd38=a26_0x16c876,_0x100914=SQL_ERROR_TYPE_LABELS[_0x549b49[_0x2cdd38(0x1aa)]],_0x445e37=_0x549b49[_0x2cdd38(0x19d)]??_0x2cdd38(0x19c),_0x58023c=[];if(_0x549b49[_0x2cdd38(0x1aa)]===_0x2cdd38(0x199))_0x58023c[_0x2cdd38(0x1cb)]({'description':_0x2cdd38(0x1b8),'tool':_0x2cdd38(0x1bd),'toolParams':{'pageSize':0x3e7},'example':'list_datasets({\x20pageSize:\x20999\x20})'});else{if(_0x549b49[_0x2cdd38(0x1aa)]===_0x2cdd38(0x1d7))_0x58023c[_0x2cdd38(0x1cb)]({'description':_0x2cdd38(0x1d8),'tool':_0x2cdd38(0x1a8),'toolParams':{'datasetCode':_0x2cdd38(0x1ad)},'example':_0x2cdd38(0x1cf)});else _0x549b49['type']===_0x2cdd38(0x1a9)&&_0x58023c['push']({'description':_0x2cdd38(0x1af),'example':_0x2cdd38(0x1b0)});}return{'type':_0x549b49['type'],'typeLabel':_0x100914,'location':_0x549b49['location'],'message':_0x549b49[_0x2cdd38(0x1b2)],'severity':_0x445e37,'fixSteps':_0x549b49[_0x2cdd38(0x1d1)]??_0x58023c,'suggestions':_0x549b49[_0x2cdd38(0x19e)],'canAutoFix':_0x549b49[_0x2cdd38(0x1c1)],'fixedSql':_0x549b49[_0x2cdd38(0x1d5)],'status':_0x549b49['status'],'response':_0x549b49[_0x2cdd38(0x1a4)]};}export function fromLovrabetError(_0x222fbf,_0xc9e3ff){const _0xf5121a=a26_0x16c876;return createError({'code':mapSdkCodeToMcpCode(_0x222fbf[_0xf5121a(0x1a1)]),'message':_0x222fbf['message'],'status':_0x222fbf[_0xf5121a(0x1a7)],'description':_0x222fbf[_0xf5121a(0x1d9)],'response':_0x222fbf['response'],'suggestedAction':_0xc9e3ff,'recoverable':_0x222fbf[_0xf5121a(0x1a7)]?_0x222fbf[_0xf5121a(0x1a7)]<0x1f4:!![]});}function mapSdkCodeToMcpCode(_0x2bfdfa){const _0x5ec9b1=a26_0x16c876;if(!_0x2bfdfa)return _0x5ec9b1(0x197);const _0x418b36={'AUTH_REQUIRED':'AUTH_REQUIRED','AUTH_FAILED':_0x5ec9b1(0x1a3),'UNAUTHORIZED':_0x5ec9b1(0x1a3),'DATASET_NOT_FOUND':_0x5ec9b1(0x1b7),'NOT_FOUND':'DATASET_NOT_FOUND','INVALID_PARAMETER':_0x5ec9b1(0x1ca),'MISSING_PARAMETER':'PARAMETER_MISSING','SQL_ERROR':_0x5ec9b1(0x1b1),'NETWORK_ERROR':_0x5ec9b1(0x1be),'API_ERROR':_0x5ec9b1(0x1c2)};return _0x418b36[_0x2bfdfa]||'UNKNOWN_ERROR';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a27_0x1b2a84=a27_0x407b;(function(_0x563618,_0x59da50){const _0x1266e3=a27_0x407b,_0x1a0e04=_0x563618();while(!![]){try{const _0x33c846=-parseInt(_0x1266e3(0x16b))/0x1*(-parseInt(_0x1266e3(0x170))/0x2)+parseInt(_0x1266e3(0x176))/0x3+parseInt(_0x1266e3(0x172))/0x4*(-parseInt(_0x1266e3(0x171))/0x5)+parseInt(_0x1266e3(0x17e))/0x6*(-parseInt(_0x1266e3(0x167))/0x7)+parseInt(_0x1266e3(0x16e))/0x8*(-parseInt(_0x1266e3(0x169))/0x9)+-parseInt(_0x1266e3(0x16c))/0xa*(-parseInt(_0x1266e3(0x177))/0xb)+parseInt(_0x1266e3(0x17c))/0xc;if(_0x33c846===_0x59da50)break;else _0x1a0e04['push'](_0x1a0e04['shift']());}catch(_0x7d0d13){_0x1a0e04['push'](_0x1a0e04['shift']());}}}(a27_0x54c8,0x5607b));export class RateLimiter{['lastExecutionTime']=0x0;[a27_0x1b2a84(0x165)]=[];[a27_0x1b2a84(0x17f)]=![];[a27_0x1b2a84(0x174)];constructor(_0x3f2535={}){const _0x5570bc=a27_0x1b2a84;this[_0x5570bc(0x174)]={'maxOperations':_0x3f2535['maxOperations']??Infinity,'windowMs':_0x3f2535[_0x5570bc(0x17d)]??0x3e8,'delayMs':_0x3f2535[_0x5570bc(0x17b)]??0x7d0};}async['throttle'](_0x4041ee){return new Promise((_0x4582eb,_0x209a6e)=>{const _0x20a54a=a27_0x407b;this[_0x20a54a(0x165)][_0x20a54a(0x166)]({'fn':_0x4041ee,'resolve':_0x4582eb,'reject':_0x209a6e}),this[_0x20a54a(0x173)]();});}async[a27_0x1b2a84(0x173)](){const _0x3044bf=a27_0x1b2a84;if(this[_0x3044bf(0x17f)]||this[_0x3044bf(0x165)][_0x3044bf(0x178)]===0x0)return;this['processing']=!![];while(this[_0x3044bf(0x165)]['length']>0x0){const _0x218fa0=Date[_0x3044bf(0x168)](),_0x1f92e9=_0x218fa0-this[_0x3044bf(0x16a)];if(this[_0x3044bf(0x16a)]>0x0&&_0x1f92e9<this[_0x3044bf(0x174)][_0x3044bf(0x17b)]){const _0x395ddc=this[_0x3044bf(0x174)][_0x3044bf(0x17b)]-_0x1f92e9;await this['sleep'](_0x395ddc);}const _0x5b6eff=this[_0x3044bf(0x165)]['shift']();if(!_0x5b6eff)break;try{const _0x8e2695=await _0x5b6eff['fn']();_0x5b6eff[_0x3044bf(0x179)](_0x8e2695);}catch(_0x336cae){_0x5b6eff[_0x3044bf(0x164)](_0x336cae);}this[_0x3044bf(0x16a)]=Date[_0x3044bf(0x168)]();}this['processing']=![];}[a27_0x1b2a84(0x17a)](_0x399824){return new Promise(_0x275d6d=>setTimeout(_0x275d6d,_0x399824));}[a27_0x1b2a84(0x175)](){const _0x11de6a=a27_0x1b2a84;this['lastExecutionTime']=0x0,this[_0x11de6a(0x165)]=[],this[_0x11de6a(0x17f)]=![];}['getQueueLength'](){const _0x1642fe=a27_0x1b2a84;return this[_0x1642fe(0x165)][_0x1642fe(0x178)];}}function a27_0x407b(_0x2543e9,_0x49f85b){_0x2543e9=_0x2543e9-0x164;const _0x54c811=a27_0x54c8();let _0x407bf3=_0x54c811[_0x2543e9];return _0x407bf3;}const globalLimiters=new Map();export function getRateLimiter(_0x1a98b1,_0x278825){const _0x1677a1=a27_0x1b2a84;return!globalLimiters['has'](_0x1a98b1)&&globalLimiters[_0x1677a1(0x16d)](_0x1a98b1,new RateLimiter(_0x278825)),globalLimiters[_0x1677a1(0x16f)](_0x1a98b1);}function a27_0x54c8(){const _0xd629ce=['reset','787515cAbRyk','253fIADqp','length','resolve','sleep','delayMs','3745308nsEkMO','windowMs','240YNRcKm','processing','reject','queue','push','77476ePbLkW','now','32283EJJhOB','lastExecutionTime','2OnFRTp','285970ghHxCP','set','152DrCmiQ','get','276488hvVlLy','3227905TVQQCi','4loxzwk','processQueue','options'];a27_0x54c8=function(){return _0xd629ce;};return a27_0x54c8();}export const rateLimiters={'sqlSave':new RateLimiter({'delayMs':0x3e8}),'api':new RateLimiter({'delayMs':0x1f4}),'fast':new RateLimiter({'delayMs':0xc8})};
|
package/dist/utils/relations.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a28_0x5dd3(){const _0x18ae0c=['toTableName','joinType','has','relations','27izplhi','toDataset','find','map','push','toField','set','6PWVUxj','MANY_TO_ONE','datasetCode','fromField','3342582YulYkK','tableName','243544DgNKnF','1413968TecmxX','17331770VidRqt','toDatasetName','data','toDatasetCode','635135BsHAci','405806tbqVTW','condition','get','5707387JxCkkp','datasets','isArray','1LyBLfk','outgoing','datasetName'];a28_0x5dd3=function(){return _0x18ae0c;};return a28_0x5dd3();}(function(_0x4b9583,_0x2738ed){const _0x46e34a=a28_0x198f,_0x397359=_0x4b9583();while(!![]){try{const _0x9f21e=parseInt(_0x46e34a(0x1b1))/0x1*(-parseInt(_0x46e34a(0x1ab))/0x2)+-parseInt(_0x46e34a(0x1a2))/0x3+-parseInt(_0x46e34a(0x1a5))/0x4+parseInt(_0x46e34a(0x1aa))/0x5*(-parseInt(_0x46e34a(0x19e))/0x6)+parseInt(_0x46e34a(0x1ae))/0x7+parseInt(_0x46e34a(0x1a4))/0x8*(-parseInt(_0x46e34a(0x197))/0x9)+parseInt(_0x46e34a(0x1a6))/0xa;if(_0x9f21e===_0x2738ed)break;else _0x397359['push'](_0x397359['shift']());}catch(_0x43490c){_0x397359['push'](_0x397359['shift']());}}}(a28_0x5dd3,0xa1075));function a28_0x198f(_0x248329,_0x1a8faa){_0x248329=_0x248329-0x196;const _0x5dd38f=a28_0x5dd3();let _0x198f6f=_0x5dd38f[_0x248329];return _0x198f6f;}function findDatasetInErConfigs(_0x9bff48,_0x2d2230){const _0x4bf158=a28_0x198f;for(const [,_0x2696c0]of _0x2d2230){const _0x56a3ed=_0x2696c0[_0x4bf158(0x1af)][_0x4bf158(0x199)](_0x16a775=>_0x16a775['datasetCode']===_0x9bff48);if(_0x56a3ed)return{'datasetCode':_0x56a3ed[_0x4bf158(0x1a0)],'datasetName':_0x56a3ed[_0x4bf158(0x1b3)],'tableName':_0x56a3ed[_0x4bf158(0x1a3)]};}return null;}export function parseDatasetRelations(_0x44a73b,_0x6b5755){const _0x160d73=a28_0x198f,_0x238801=findDatasetInErConfigs(_0x44a73b,_0x6b5755);if(!_0x238801)return null;const _0x480c5a=[],_0x135e25=[];for(const [,_0x3f2307]of _0x6b5755){for(const _0x22d40d of _0x3f2307[_0x160d73(0x1af)]){if(_0x22d40d[_0x160d73(0x1a0)]===_0x44a73b)for(const _0x4ba479 of _0x22d40d['relations']){const _0x335e62=findDatasetInErConfigs(_0x4ba479[_0x160d73(0x198)],_0x6b5755);_0x480c5a[_0x160d73(0x19b)]({'fromField':_0x4ba479[_0x160d73(0x1a1)],'toDataset':_0x4ba479[_0x160d73(0x198)],'toDatasetName':_0x4ba479[_0x160d73(0x1a7)],'toField':_0x4ba479['toField'],'joinType':_0x4ba479[_0x160d73(0x1b5)],'condition':_0x4ba479[_0x160d73(0x1ac)],'toTableName':_0x335e62?.[_0x160d73(0x1a3)]});}if(_0x22d40d[_0x160d73(0x1a0)]!==_0x44a73b)for(const _0x41ace4 of _0x22d40d[_0x160d73(0x196)]){_0x41ace4[_0x160d73(0x198)]===_0x44a73b&&_0x135e25[_0x160d73(0x19b)]({'fromField':_0x41ace4[_0x160d73(0x1a1)],'fromDataset':_0x22d40d[_0x160d73(0x1a0)],'fromDatasetName':_0x22d40d[_0x160d73(0x1b3)],'fromTableName':_0x22d40d['tableName'],'toDataset':_0x41ace4[_0x160d73(0x198)],'toDatasetName':_0x41ace4['toDatasetName'],'toField':_0x41ace4[_0x160d73(0x19c)],'joinType':_0x41ace4[_0x160d73(0x1b5)],'condition':_0x41ace4[_0x160d73(0x1ac)],'toTableName':_0x238801[_0x160d73(0x1a3)]});}}}return{'datasetCode':_0x238801[_0x160d73(0x1a0)],'datasetName':_0x238801['datasetName'],'tableName':_0x238801[_0x160d73(0x1a3)],'outgoingRelations':_0x480c5a,'incomingRelations':_0x135e25,'allRelations':[..._0x480c5a,..._0x135e25]};}export function buildRelationsMap(_0x174697){const _0x159335=a28_0x198f,_0x523485=new Map();for(const [,_0x14298d]of _0x174697){for(const _0x374140 of _0x14298d['datasets']){if(!_0x523485[_0x159335(0x1b6)](_0x374140['datasetCode'])){const _0x338381=parseDatasetRelations(_0x374140[_0x159335(0x1a0)],_0x174697);_0x338381&&_0x523485[_0x159335(0x19d)](_0x374140[_0x159335(0x1a0)],_0x338381);}}}return _0x523485;}export function buildFieldRelationsMap(_0x1589bc){const _0x4e720c=a28_0x198f,_0x167f36=new Map(),_0x2489f0=_0x1589bc[_0x4e720c(0x1a8)]||_0x1589bc,_0x3b93ee=(_0x144577,_0x4c1654,_0x2ba4a8,_0x1cab88,_0x561005,_0x4b663d)=>{const _0x284f64=_0x4e720c;_0x144577&&_0x167f36[_0x284f64(0x19d)](_0x144577,{'datasetCode':_0x4c1654,'datasetName':_0x2ba4a8,'tableName':_0x4b663d,'toField':_0x1cab88,'joinType':_0x561005||_0x284f64(0x19f)});},_0x1bdf51=_0x1589bc?.[_0x4e720c(0x196)];if(_0x1bdf51?.['outgoing'])for(const _0x2c506e of _0x1bdf51[_0x4e720c(0x1b2)]){_0x3b93ee(_0x2c506e[_0x4e720c(0x1a1)],_0x2c506e[_0x4e720c(0x198)],_0x2c506e[_0x4e720c(0x1a7)],_0x2c506e[_0x4e720c(0x19c)],_0x2c506e[_0x4e720c(0x1b5)],_0x2c506e[_0x4e720c(0x1b4)]);}const _0x400c5e=_0x2489f0?.['relations'];if(_0x400c5e){if(Array[_0x4e720c(0x1b0)](_0x400c5e))for(const _0xa0a6cf of _0x400c5e){_0x3b93ee(_0xa0a6cf[_0x4e720c(0x1a1)],_0xa0a6cf[_0x4e720c(0x1a9)],_0xa0a6cf[_0x4e720c(0x1a7)],_0xa0a6cf[_0x4e720c(0x19c)],_0xa0a6cf[_0x4e720c(0x1b5)],_0xa0a6cf[_0x4e720c(0x1b4)]);}else{if(_0x400c5e['outgoing']&&Array[_0x4e720c(0x1b0)](_0x400c5e[_0x4e720c(0x1b2)]))for(const _0x48451e of _0x400c5e['outgoing']){_0x3b93ee(_0x48451e[_0x4e720c(0x1a1)],_0x48451e['toDataset'],_0x48451e[_0x4e720c(0x1a7)],_0x48451e[_0x4e720c(0x19c)],_0x48451e[_0x4e720c(0x1b5)],_0x48451e['toTableName']);}}}return _0x167f36;}export function enrichFieldsWithRelations(_0x13b07f,_0x22fdba){const _0x226463=a28_0x198f;if(_0x22fdba['size']===0x0)return _0x13b07f;return _0x13b07f[_0x226463(0x19a)](_0x3a68e8=>{const _0x6f0f6c=_0x226463,_0x210894=_0x3a68e8['code'];if(_0x210894&&_0x22fdba[_0x6f0f6c(0x1b6)](_0x210894))return{..._0x3a68e8,'relationTo':_0x22fdba[_0x6f0f6c(0x1ad)](_0x210894)};return _0x3a68e8;});}
|
package/dist/utils/sql-parser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x3809d4,_0x31adaa){const _0x101bd1=a29_0x393d,_0x41b971=_0x3809d4();while(!![]){try{const _0x245ece=parseInt(_0x101bd1(0x157))/0x1*(-parseInt(_0x101bd1(0x18e))/0x2)+parseInt(_0x101bd1(0x186))/0x3+-parseInt(_0x101bd1(0x18d))/0x4+parseInt(_0x101bd1(0x168))/0x5+-parseInt(_0x101bd1(0x198))/0x6*(parseInt(_0x101bd1(0x16a))/0x7)+-parseInt(_0x101bd1(0x176))/0x8*(parseInt(_0x101bd1(0x18f))/0x9)+-parseInt(_0x101bd1(0x162))/0xa*(-parseInt(_0x101bd1(0x19f))/0xb);if(_0x245ece===_0x31adaa)break;else _0x41b971['push'](_0x41b971['shift']());}catch(_0x31b3b7){_0x41b971['push'](_0x41b971['shift']());}}}(a29_0x12de,0x3408a));import{createStructuredSqlError}from'../types/mcp-types.js';export function parseSqlStructure(_0x194134){const _0x4f39f2=a29_0x393d,_0x58cb7b={'tables':[],'columns':[],'parameters':[],'joins':[]};if(!_0x194134||typeof _0x194134!==_0x4f39f2(0x164))return _0x58cb7b;const _0x3896f8=_0x194134[_0x4f39f2(0x15e)](/#\{[^}]*\}/g,'?')[_0x4f39f2(0x15e)](/\$\{[^}]*\}/g,'?')[_0x4f39f2(0x15e)](/'[^']*'/g,'\x27\x27')[_0x4f39f2(0x15e)](/--.*$/gm,'')[_0x4f39f2(0x15e)](/\/\*[\s\S]*?\*\//g,''),_0x56b8b7=_0x3896f8[_0x4f39f2(0x193)](/FROM\s+([^\s,)(]+)/i);if(_0x56b8b7){const _0x1be76d=_0x56b8b7[0x1][_0x4f39f2(0x15e)](/[`"]/g,'');_0x58cb7b[_0x4f39f2(0x1a3)]['push'](_0x1be76d);}const _0x55aeb7=_0x3896f8[_0x4f39f2(0x17a)](/(?:INNER|LEFT|RIGHT|FULL|CROSS)?\s*JOIN\s+([^\s,)(]+)/gi);for(const _0xa45b20 of _0x55aeb7){const _0x344d58=_0xa45b20[0x1][_0x4f39f2(0x15e)](/[`"]/g,'');_0x344d58&&!_0x58cb7b[_0x4f39f2(0x1a3)][_0x4f39f2(0x182)](_0x344d58)&&_0x58cb7b[_0x4f39f2(0x1a3)][_0x4f39f2(0x15b)](_0x344d58);}const _0x325cb5=_0x3896f8[_0x4f39f2(0x193)](/SELECT\s+([\s\S]+?)\s+FROM/i);if(_0x325cb5){const _0xcaa0aa=_0x325cb5[0x1]['trim']();if(_0xcaa0aa!=='*'){const _0x987ec2=splitSqlColumns(_0xcaa0aa);for(const _0x48f974 of _0x987ec2){const _0x374619=_0x48f974['trim']();if(_0x374619&&!_0x374619['match'](/^\d+$/)){const _0x5bf936=_0x374619[_0x4f39f2(0x170)](/\s+AS\s+/i),_0x57ebc5=_0x5bf936[0x0][_0x4f39f2(0x169)](),_0x6746fd=_0x5bf936[0x1]?.['trim']();if(_0x57ebc5[_0x4f39f2(0x182)]('.')){const [_0x19e133,_0x9dad17]=_0x57ebc5['split']('.');_0x58cb7b[_0x4f39f2(0x158)]['push']({'table':_0x19e133[_0x4f39f2(0x169)](),'column':_0x9dad17[_0x4f39f2(0x15e)](/[`"]/g,'')[_0x4f39f2(0x169)](),'alias':_0x6746fd});}else!_0x57ebc5['includes']('(')&&_0x58cb7b[_0x4f39f2(0x158)][_0x4f39f2(0x15b)]({'table':'','column':_0x57ebc5[_0x4f39f2(0x15e)](/[`"]/g,''),'alias':_0x6746fd});}}}}const _0x5491c1=_0x3896f8[_0x4f39f2(0x17a)](/JOIN\s+(\w+)\s+(?:AS\s+)?(\w+)?\s+ON\s+([\w.]+)\s*=\s*([\w.]+)/gi);for(const _0x224b1a of _0x5491c1){const [,,,_0x1f03fa,_0x583eb4]=_0x224b1a;if(_0x1f03fa&&_0x583eb4){const [_0x4765c2,_0xad5859]=_0x1f03fa['includes']('.')?_0x1f03fa[_0x4f39f2(0x170)]('.'):['',_0x1f03fa],[_0x4df442,_0x3f0dd7]=_0x583eb4['includes']('.')?_0x583eb4[_0x4f39f2(0x170)]('.'):['',_0x583eb4];_0x58cb7b[_0x4f39f2(0x17b)]?.[_0x4f39f2(0x15b)]({'leftTable':_0x4765c2,'leftColumn':_0xad5859,'rightTable':_0x4df442,'rightColumn':_0x3f0dd7});}}const _0x5a98a2=_0x194134[_0x4f39f2(0x17a)](/[#\$]\{(\w+)\}/g),_0x26e329=new Set();for(const _0x5742c3 of _0x5a98a2){const _0x584b89=_0x5742c3[0x1];!_0x26e329[_0x4f39f2(0x19b)](_0x584b89)&&(_0x26e329['add'](_0x584b89),_0x58cb7b[_0x4f39f2(0x15c)][_0x4f39f2(0x15b)]({'name':_0x584b89,'type':inferParamType(_0x584b89),'example':getExampleValue(_0x584b89)}));}return _0x58cb7b;}function splitSqlColumns(_0x29e882){const _0x11d87f=a29_0x393d,_0x26515e=[];let _0x34e5a2='',_0x2cc386=0x0;for(let _0x23306d=0x0;_0x23306d<_0x29e882['length'];_0x23306d++){const _0x5bfa83=_0x29e882[_0x23306d];if(_0x5bfa83==='(')_0x2cc386++,_0x34e5a2+=_0x5bfa83;else{if(_0x5bfa83===')')_0x2cc386--,_0x34e5a2+=_0x5bfa83;else _0x5bfa83===','&&_0x2cc386===0x0?(_0x26515e['push'](_0x34e5a2),_0x34e5a2=''):_0x34e5a2+=_0x5bfa83;}}return _0x34e5a2&&_0x26515e[_0x11d87f(0x15b)](_0x34e5a2),_0x26515e;}function a29_0x12de(){const _0x1da11e=['keyword','TRUNCATE','number','Contains\x20data\x20modification\x20keywords','INSERT','DELETE','includes','reason','example','table','12315AXYhAf','from','length','INSERT\x20statement\x20modifies\x20data','toUpperCase','UNKNOWN','join','752188WlFMFr','488zkMzcb','9NAKlDw','page','Params:\x20','num','match','DDL','\x20|\x20','startsWith','CTE\x20contains\x20data\x20modification\x20keywords','36ALJTkS','Tables:\x20','ALTER','has','keys','search','COLUMN_NOT_FOUND','11duXApR','DELETE\x20statement\x20modifies\x20data','CREATE','2024-01-01','tables','size','map','926EmpmnH','columns','tableName','\x22\x20在数据库\x20schema\x20中不存在','push','parameters','slice','replace','SQL\x20content\x20is\x20empty','value','count','10213330brtGzY','limit','string','toLowerCase','TABLE_NOT_FOUND','REVOKE','605895DWQbod','trim','398839mbnBFc','filter','error','column','\x22\x20在表\x20\x22','test','split','get','DROP','price','name','SELECT','1421072DTNLuh','isSelectOnly','UPDATE','SELECT\x20query','matchAll','joins'];a29_0x12de=function(){return _0x1da11e;};return a29_0x12de();}function inferParamType(_0x24aa5f){const _0x717706=a29_0x393d,_0x41cce6=_0x24aa5f[_0x717706(0x165)]();if(_0x41cce6[_0x717706(0x182)]('id')||_0x41cce6[_0x717706(0x182)](_0x717706(0x161))||_0x41cce6[_0x717706(0x182)](_0x717706(0x163))||_0x41cce6[_0x717706(0x182)](_0x717706(0x1a4))||_0x41cce6[_0x717706(0x182)]('page')||_0x41cce6[_0x717706(0x182)](_0x717706(0x192))||_0x41cce6[_0x717706(0x182)]('amount')||_0x41cce6['includes'](_0x717706(0x173)))return'number';return'string';}function getExampleValue(_0x507dbb){const _0x23a35c=a29_0x393d,_0x37ed32=_0x507dbb[_0x23a35c(0x165)](),_0x104d3d=inferParamType(_0x37ed32);if(_0x104d3d===_0x23a35c(0x17e)){if(_0x37ed32[_0x23a35c(0x182)](_0x23a35c(0x163))||_0x37ed32[_0x23a35c(0x182)]('count')||_0x37ed32[_0x23a35c(0x182)](_0x23a35c(0x1a4)))return 0xa;if(_0x37ed32[_0x23a35c(0x182)](_0x23a35c(0x190)))return 0x1;return 0x7b;}if(_0x37ed32[_0x23a35c(0x182)]('date')||_0x37ed32[_0x23a35c(0x182)]('time'))return _0x23a35c(0x1a2);if(_0x37ed32[_0x23a35c(0x182)]('status'))return'1';if(_0x37ed32[_0x23a35c(0x182)](_0x23a35c(0x17c))||_0x37ed32[_0x23a35c(0x182)](_0x23a35c(0x19d))||_0x37ed32[_0x23a35c(0x182)](_0x23a35c(0x174)))return _0x23a35c(0x184);return _0x23a35c(0x160);}export function detectSqlType(_0x5718a9){const _0x48fe05=a29_0x393d;if(!_0x5718a9||typeof _0x5718a9!==_0x48fe05(0x164))return{'type':_0x48fe05(0x18b),'isSelectOnly':![],'isDangerous':![],'reason':_0x48fe05(0x15f)};const _0x4d823a=_0x5718a9[_0x48fe05(0x15e)](/#\{[^}]*\}/g,'?')[_0x48fe05(0x15e)](/\$\{[^}]*\}/g,'?')['replace'](/@[^(\s]+(\([^)]*\))?/g,''),_0x5c4030=_0x4d823a[_0x48fe05(0x169)](),_0x3a762e=_0x5c4030['split']('\x0a');let _0x19f326='';for(const _0x8b0610 of _0x3a762e){const _0xd39ecf=_0x8b0610[_0x48fe05(0x169)]();if(!_0xd39ecf||_0xd39ecf['startsWith']('--')||_0xd39ecf['startsWith']('/*'))continue;_0x19f326=_0xd39ecf;break;}const _0xe8fc9f=_0x19f326[_0x48fe05(0x18a)](),_0x22584f=_0x5c4030[_0x48fe05(0x18a)]();if(/^WITH\b/[_0x48fe05(0x16f)](_0xe8fc9f)&&/\bSELECT\b/i['test'](_0x22584f)){const _0x58c45d=[/INSERT\s+INTO/i,/UPDATE\s+\w+\s+SET/i,/DELETE\s+FROM/i];for(const _0x2b43a2 of _0x58c45d){if(_0x2b43a2[_0x48fe05(0x16f)](_0x22584f))return{'type':_0x48fe05(0x175),'isSelectOnly':![],'isDangerous':!![],'reason':_0x48fe05(0x197)};}return{'type':_0x48fe05(0x175),'isSelectOnly':!![],'isDangerous':![]};}if(/^SELECT\b/[_0x48fe05(0x16f)](_0xe8fc9f)){const _0x23d675=[/INSERT\s+INTO/i,/UPDATE\s+\w+\s+SET/i,/DELETE\s+FROM/i];for(const _0x5a0973 of _0x23d675){if(_0x5a0973[_0x48fe05(0x16f)](_0x22584f))return{'type':_0x48fe05(0x175),'isSelectOnly':![],'isDangerous':!![],'reason':_0x48fe05(0x17f)};}return{'type':_0x48fe05(0x175),'isSelectOnly':!![],'isDangerous':![]};}if(/^INSERT\s+INTO\b/[_0x48fe05(0x16f)](_0xe8fc9f))return{'type':_0x48fe05(0x180),'isSelectOnly':![],'isDangerous':!![],'reason':_0x48fe05(0x189)};if(/^UPDATE\b/[_0x48fe05(0x16f)](_0xe8fc9f))return{'type':_0x48fe05(0x178),'isSelectOnly':![],'isDangerous':!![],'reason':'UPDATE\x20statement\x20modifies\x20data'};if(/^DELETE\s+FROM\b/[_0x48fe05(0x16f)](_0xe8fc9f))return{'type':_0x48fe05(0x181),'isSelectOnly':![],'isDangerous':!![],'reason':_0x48fe05(0x1a0)};const _0x566e69=[_0x48fe05(0x172),_0x48fe05(0x19a),_0x48fe05(0x1a1),_0x48fe05(0x17d),'GRANT',_0x48fe05(0x167)];for(const _0x49f5fe of _0x566e69){if(_0xe8fc9f[_0x48fe05(0x196)](_0x49f5fe))return{'type':_0x48fe05(0x194),'isSelectOnly':![],'isDangerous':!![],'reason':_0x49f5fe+'\x20statement\x20modifies\x20schema'};}return{'type':_0x48fe05(0x18b),'isSelectOnly':![],'isDangerous':![],'reason':'Unknown\x20SQL\x20type'};}export function validateIsSelectOnly(_0xb13b47){const _0x33b2e5=a29_0x393d,_0x13394f=detectSqlType(_0xb13b47);return{'valid':_0x13394f[_0x33b2e5(0x177)],'reason':_0x13394f['isSelectOnly']?undefined:_0x13394f[_0x33b2e5(0x183)]};}export function extractTableNames(_0x485d9e){const _0x3b0261=a29_0x393d,_0xe52847=parseSqlStructure(_0x485d9e);return _0xe52847[_0x3b0261(0x1a3)];}export function extractColumnNames(_0x50b542){const _0x4251a5=a29_0x393d,_0x42fd77=parseSqlStructure(_0x50b542);return _0x42fd77[_0x4251a5(0x158)]['map'](_0x383cfb=>({'table':_0x383cfb[_0x4251a5(0x185)],'column':_0x383cfb['column']}));}export function extractParameters(_0x1e439e){const _0x17ee2e=a29_0x393d,_0x227086=parseSqlStructure(_0x1e439e);return _0x227086[_0x17ee2e(0x15c)];}export function validateSqlContent(_0x1009b9,_0xb04f1d){const _0x4467ff=a29_0x393d,_0x295d64=detectSqlType(_0x1009b9),_0x4f5e73=parseSqlStructure(_0x1009b9),_0x1024a4=[];if(_0xb04f1d){const _0x2b03b1=new Map(_0xb04f1d[_0x4467ff(0x1a3)][_0x4467ff(0x1a5)](_0xc4a2f=>[_0xc4a2f[_0x4467ff(0x159)][_0x4467ff(0x165)](),_0xc4a2f[_0x4467ff(0x158)]['map'](_0x18dbab=>_0x18dbab['toLowerCase']())]));for(const _0x1bfdb9 of _0x4f5e73['tables']){const _0x62685d=_0x1bfdb9[_0x4467ff(0x165)]();if(!_0x2b03b1['has'](_0x62685d)){const _0x74b400=Array[_0x4467ff(0x187)](_0x2b03b1['keys']())[_0x4467ff(0x16b)](_0x515852=>_0x515852['includes'](_0x62685d)||_0x62685d[_0x4467ff(0x182)](_0x515852));_0x1024a4[_0x4467ff(0x15b)](createStructuredSqlError({'type':_0x4467ff(0x166),'location':_0x1bfdb9,'message':'表\x20\x22'+_0x1bfdb9+_0x4467ff(0x15a),'severity':_0x4467ff(0x16c),'suggestions':_0x74b400[_0x4467ff(0x188)]>0x0?_0x74b400:Array[_0x4467ff(0x187)](_0x2b03b1[_0x4467ff(0x19c)]())}));}}for(const _0x253e3e of _0x4f5e73[_0x4467ff(0x158)]){if(_0x253e3e['table']){const _0x178ed8=_0x253e3e[_0x4467ff(0x185)][_0x4467ff(0x165)](),_0x151643=_0x2b03b1[_0x4467ff(0x171)](_0x178ed8);if(_0x151643){const _0x7017b3=_0x253e3e[_0x4467ff(0x16d)][_0x4467ff(0x165)]();if(!_0x151643['includes'](_0x7017b3)&&!_0x253e3e[_0x4467ff(0x16d)]['includes']('*')){const _0x4d3b7e=_0x151643[_0x4467ff(0x16b)](_0x1a04d8=>_0x1a04d8['includes'](_0x7017b3)||_0x7017b3['includes'](_0x1a04d8));_0x1024a4[_0x4467ff(0x15b)](createStructuredSqlError({'type':_0x4467ff(0x19e),'location':_0x253e3e[_0x4467ff(0x185)]+'.'+_0x253e3e[_0x4467ff(0x16d)],'message':'字段\x20\x22'+_0x253e3e['column']+_0x4467ff(0x16e)+_0x253e3e[_0x4467ff(0x185)]+'\x22\x20中不存在','severity':_0x4467ff(0x16c),'suggestions':_0x4d3b7e[_0x4467ff(0x188)]>0x0?_0x4d3b7e:_0x151643[_0x4467ff(0x15d)](0x0,0xa)}));}}}}}return{'valid':_0x1024a4[_0x4467ff(0x188)]===0x0,'isSelectOnly':_0x295d64[_0x4467ff(0x177)],'parsedStructure':_0x4f5e73,'errors':_0x1024a4[_0x4467ff(0x188)]>0x0?_0x1024a4:undefined};}function a29_0x393d(_0x101192,_0x126e15){_0x101192=_0x101192-0x157;const _0x12de9a=a29_0x12de();let _0x393d6a=_0x12de9a[_0x101192];return _0x393d6a;}export function generateSqlSummary(_0x4589d8){const _0x43ff04=a29_0x393d,_0x2363a6=parseSqlStructure(_0x4589d8),_0x9c4d25=[];return _0x2363a6[_0x43ff04(0x1a3)][_0x43ff04(0x188)]>0x0&&_0x9c4d25[_0x43ff04(0x15b)](_0x43ff04(0x199)+_0x2363a6[_0x43ff04(0x1a3)][_0x43ff04(0x18c)](',\x20')),_0x2363a6[_0x43ff04(0x15c)][_0x43ff04(0x188)]>0x0&&_0x9c4d25[_0x43ff04(0x15b)](_0x43ff04(0x191)+_0x2363a6[_0x43ff04(0x15c)][_0x43ff04(0x1a5)](_0x13227e=>_0x13227e['name'])[_0x43ff04(0x18c)](',\x20')),_0x2363a6[_0x43ff04(0x17b)]&&_0x2363a6['joins'][_0x43ff04(0x188)]>0x0&&_0x9c4d25[_0x43ff04(0x15b)]('Joins:\x20'+_0x2363a6[_0x43ff04(0x17b)][_0x43ff04(0x188)]),_0x9c4d25['length']>0x0?_0x9c4d25[_0x43ff04(0x18c)](_0x43ff04(0x195)):_0x43ff04(0x179);}
|
|
1
|
+
(function(_0x137672,_0x3b2961){const _0x39e835=a29_0x7f88,_0x3baf8f=_0x137672();while(!![]){try{const _0x4e8863=-parseInt(_0x39e835(0x72))/0x1+-parseInt(_0x39e835(0x9c))/0x2*(-parseInt(_0x39e835(0x81))/0x3)+-parseInt(_0x39e835(0xa0))/0x4*(parseInt(_0x39e835(0x6e))/0x5)+parseInt(_0x39e835(0xb3))/0x6+-parseInt(_0x39e835(0x6a))/0x7*(-parseInt(_0x39e835(0x8a))/0x8)+-parseInt(_0x39e835(0x9b))/0x9*(parseInt(_0x39e835(0x95))/0xa)+parseInt(_0x39e835(0x84))/0xb*(parseInt(_0x39e835(0x6f))/0xc);if(_0x4e8863===_0x3b2961)break;else _0x3baf8f['push'](_0x3baf8f['shift']());}catch(_0x56ca23){_0x3baf8f['push'](_0x3baf8f['shift']());}}}(a29_0x503b,0x345a9));import{createStructuredSqlError}from'../types/mcp-types.js';function a29_0x503b(){const _0x4e9641=['keys','SELECT','INSERT\x20statement\x20modifies\x20data','push','CREATE','TRUNCATE','length','matchAll','isSelectOnly','DROP','add','split','Joins:\x20','amount','104202XZjNVo','\x22\x20在数据库\x20schema\x20中不存在','UPDATE','DDL','page','example','value','\x22\x20中不存在','ALTER','time','error','filter','INSERT','118104ROYmFP','num','get','COLUMN_NOT_FOUND','55cQMAte','42492CgehSo','\x22\x20在表\x20\x22','columns','30277YZJbtn','has','REVOKE','Params:\x20','tables','toUpperCase','TABLE_NOT_FOUND','字段\x20\x22','parameters','slice','Tables:\x20','test','tableName','joins','GRANT','3UhvuIA','limit','map','1287koUHFW','count','2024-01-01','replace','trim','string','8dauEso','status','table','toLowerCase','price','UNKNOWN','search','startsWith','SELECT\x20query','Unknown\x20SQL\x20type','number','769970BoQhTU','reason','match','name','CTE\x20contains\x20data\x20modification\x20keywords','join','9Mebyqb','296710hoOgzC','\x20statement\x20modifies\x20schema','column','date','100064XpDWAH','size','includes','from','\x20|\x20'];a29_0x503b=function(){return _0x4e9641;};return a29_0x503b();}export function parseSqlStructure(_0x3fb1fe){const _0x17e725=a29_0x7f88,_0x286c01={'tables':[],'columns':[],'parameters':[],'joins':[]};if(!_0x3fb1fe||typeof _0x3fb1fe!==_0x17e725(0x89))return _0x286c01;const _0x168c5c=_0x3fb1fe[_0x17e725(0x87)](/#\{[^}]*\}/g,'?')[_0x17e725(0x87)](/\$\{[^}]*\}/g,'?')['replace'](/'[^']*'/g,'\x27\x27')['replace'](/--.*$/gm,'')[_0x17e725(0x87)](/\/\*[\s\S]*?\*\//g,''),_0x134162=_0x168c5c[_0x17e725(0x97)](/FROM\s+([^\s,)(]+)/i);if(_0x134162){const _0x5a4060=_0x134162[0x1][_0x17e725(0x87)](/[`"]/g,'');_0x286c01[_0x17e725(0x76)][_0x17e725(0xa8)](_0x5a4060);}const _0x10d50d=_0x168c5c[_0x17e725(0xac)](/(?:INNER|LEFT|RIGHT|FULL|CROSS)?\s*JOIN\s+([^\s,)(]+)/gi);for(const _0x4d96bb of _0x10d50d){const _0x591231=_0x4d96bb[0x1]['replace'](/[`"]/g,'');_0x591231&&!_0x286c01[_0x17e725(0x76)][_0x17e725(0xa2)](_0x591231)&&_0x286c01[_0x17e725(0x76)][_0x17e725(0xa8)](_0x591231);}const _0x18c569=_0x168c5c[_0x17e725(0x97)](/SELECT\s+([\s\S]+?)\s+FROM/i);if(_0x18c569){const _0x1838cb=_0x18c569[0x1][_0x17e725(0x88)]();if(_0x1838cb!=='*'){const _0x5ac1a1=splitSqlColumns(_0x1838cb);for(const _0x26f586 of _0x5ac1a1){const _0x226e24=_0x26f586[_0x17e725(0x88)]();if(_0x226e24&&!_0x226e24[_0x17e725(0x97)](/^\d+$/)){const _0x42c5aa=_0x226e24[_0x17e725(0xb0)](/\s+AS\s+/i),_0x4a6242=_0x42c5aa[0x0][_0x17e725(0x88)](),_0x25f6d5=_0x42c5aa[0x1]?.['trim']();if(_0x4a6242[_0x17e725(0xa2)]('.')){const [_0x5d65c8,_0x567f9a]=_0x4a6242[_0x17e725(0xb0)]('.');_0x286c01[_0x17e725(0x71)][_0x17e725(0xa8)]({'table':_0x5d65c8[_0x17e725(0x88)](),'column':_0x567f9a[_0x17e725(0x87)](/[`"]/g,'')[_0x17e725(0x88)](),'alias':_0x25f6d5});}else!_0x4a6242[_0x17e725(0xa2)]('(')&&_0x286c01['columns'][_0x17e725(0xa8)]({'table':'','column':_0x4a6242[_0x17e725(0x87)](/[`"]/g,''),'alias':_0x25f6d5});}}}}const _0x1fa3c9=_0x168c5c[_0x17e725(0xac)](/JOIN\s+(\w+)\s+(?:AS\s+)?(\w+)?\s+ON\s+([\w.]+)\s*=\s*([\w.]+)/gi);for(const _0x4a4589 of _0x1fa3c9){const [,,,_0x3a4cb1,_0x3df47a]=_0x4a4589;if(_0x3a4cb1&&_0x3df47a){const [_0x10eaf4,_0x2dc567]=_0x3a4cb1[_0x17e725(0xa2)]('.')?_0x3a4cb1['split']('.'):['',_0x3a4cb1],[_0x1bfef0,_0x7082e0]=_0x3df47a[_0x17e725(0xa2)]('.')?_0x3df47a[_0x17e725(0xb0)]('.'):['',_0x3df47a];_0x286c01['joins']?.[_0x17e725(0xa8)]({'leftTable':_0x10eaf4,'leftColumn':_0x2dc567,'rightTable':_0x1bfef0,'rightColumn':_0x7082e0});}}const _0x26ccf2=_0x3fb1fe[_0x17e725(0xac)](/[#\$]\{(\w+)\}/g),_0x2ed863=new Set();for(const _0xe41c62 of _0x26ccf2){const _0x5c8e47=_0xe41c62[0x1];!_0x2ed863[_0x17e725(0x73)](_0x5c8e47)&&(_0x2ed863[_0x17e725(0xaf)](_0x5c8e47),_0x286c01[_0x17e725(0x7a)][_0x17e725(0xa8)]({'name':_0x5c8e47,'type':inferParamType(_0x5c8e47),'example':getExampleValue(_0x5c8e47)}));}return _0x286c01;}function splitSqlColumns(_0x5ac4ef){const _0x4bf904=a29_0x7f88,_0x4e562c=[];let _0x30aff1='',_0x3c2eb3=0x0;for(let _0x28e211=0x0;_0x28e211<_0x5ac4ef[_0x4bf904(0xab)];_0x28e211++){const _0x545a56=_0x5ac4ef[_0x28e211];if(_0x545a56==='(')_0x3c2eb3++,_0x30aff1+=_0x545a56;else{if(_0x545a56===')')_0x3c2eb3--,_0x30aff1+=_0x545a56;else _0x545a56===','&&_0x3c2eb3===0x0?(_0x4e562c['push'](_0x30aff1),_0x30aff1=''):_0x30aff1+=_0x545a56;}}return _0x30aff1&&_0x4e562c[_0x4bf904(0xa8)](_0x30aff1),_0x4e562c;}function inferParamType(_0x5efc99){const _0x1878af=a29_0x7f88,_0x352327=_0x5efc99[_0x1878af(0x8d)]();if(_0x352327[_0x1878af(0xa2)]('id')||_0x352327[_0x1878af(0xa2)](_0x1878af(0x85))||_0x352327['includes'](_0x1878af(0x82))||_0x352327[_0x1878af(0xa2)](_0x1878af(0xa1))||_0x352327[_0x1878af(0xa2)](_0x1878af(0xb7))||_0x352327[_0x1878af(0xa2)](_0x1878af(0x6b))||_0x352327[_0x1878af(0xa2)](_0x1878af(0xb2))||_0x352327[_0x1878af(0xa2)](_0x1878af(0x8e)))return _0x1878af(0x94);return _0x1878af(0x89);}function getExampleValue(_0x3218f5){const _0x274e35=a29_0x7f88,_0x355405=_0x3218f5['toLowerCase'](),_0x529f1e=inferParamType(_0x355405);if(_0x529f1e===_0x274e35(0x94)){if(_0x355405[_0x274e35(0xa2)](_0x274e35(0x82))||_0x355405[_0x274e35(0xa2)](_0x274e35(0x85))||_0x355405[_0x274e35(0xa2)](_0x274e35(0xa1)))return 0xa;if(_0x355405['includes'](_0x274e35(0xb7)))return 0x1;return 0x7b;}if(_0x355405[_0x274e35(0xa2)](_0x274e35(0x9f))||_0x355405[_0x274e35(0xa2)](_0x274e35(0x66)))return _0x274e35(0x86);if(_0x355405[_0x274e35(0xa2)](_0x274e35(0x8b)))return'1';if(_0x355405[_0x274e35(0xa2)]('keyword')||_0x355405[_0x274e35(0xa2)](_0x274e35(0x90))||_0x355405[_0x274e35(0xa2)](_0x274e35(0x98)))return _0x274e35(0xb8);return _0x274e35(0xb9);}function a29_0x7f88(_0x4bd1f3,_0x3f1d14){_0x4bd1f3=_0x4bd1f3-0x64;const _0x503b7f=a29_0x503b();let _0x7f8888=_0x503b7f[_0x4bd1f3];return _0x7f8888;}export function detectSqlType(_0x330952){const _0x108eab=a29_0x7f88;if(!_0x330952||typeof _0x330952!=='string')return{'type':_0x108eab(0x8f),'isSelectOnly':![],'isDangerous':![],'reason':'SQL\x20content\x20is\x20empty'};const _0x580d50=_0x330952[_0x108eab(0x87)](/#\{[^}]*\}/g,'?')[_0x108eab(0x87)](/\$\{[^}]*\}/g,'?')[_0x108eab(0x87)](/@[^(\s]+(\([^)]*\))?/g,''),_0x342da2=_0x580d50['trim'](),_0x13cb0e=_0x342da2[_0x108eab(0xb0)]('\x0a');let _0x1f9264='';for(const _0x3b3689 of _0x13cb0e){const _0x436031=_0x3b3689['trim']();if(!_0x436031||_0x436031[_0x108eab(0x91)]('--')||_0x436031[_0x108eab(0x91)]('/*'))continue;_0x1f9264=_0x436031;break;}const _0x42278b=_0x1f9264[_0x108eab(0x77)](),_0x53a35c=_0x342da2['toUpperCase']();if(/^WITH\b/['test'](_0x42278b)&&/\bSELECT\b/i['test'](_0x53a35c)){const _0x2fbe60=[/INSERT\s+INTO/i,/UPDATE\s+\w+\s+SET/i,/DELETE\s+FROM/i];for(const _0x87f708 of _0x2fbe60){if(_0x87f708[_0x108eab(0x7d)](_0x53a35c))return{'type':_0x108eab(0xa6),'isSelectOnly':![],'isDangerous':!![],'reason':_0x108eab(0x99)};}return{'type':_0x108eab(0xa6),'isSelectOnly':!![],'isDangerous':![]};}if(/^SELECT\b/['test'](_0x42278b)){const _0x4239e0=[/INSERT\s+INTO/i,/UPDATE\s+\w+\s+SET/i,/DELETE\s+FROM/i];for(const _0x2e2e87 of _0x4239e0){if(_0x2e2e87[_0x108eab(0x7d)](_0x53a35c))return{'type':_0x108eab(0xa6),'isSelectOnly':![],'isDangerous':!![],'reason':'Contains\x20data\x20modification\x20keywords'};}return{'type':'SELECT','isSelectOnly':!![],'isDangerous':![]};}if(/^INSERT\s+INTO\b/[_0x108eab(0x7d)](_0x42278b))return{'type':_0x108eab(0x69),'isSelectOnly':![],'isDangerous':!![],'reason':_0x108eab(0xa7)};if(/^UPDATE\b/['test'](_0x42278b))return{'type':_0x108eab(0xb5),'isSelectOnly':![],'isDangerous':!![],'reason':'UPDATE\x20statement\x20modifies\x20data'};if(/^DELETE\s+FROM\b/[_0x108eab(0x7d)](_0x42278b))return{'type':'DELETE','isSelectOnly':![],'isDangerous':!![],'reason':'DELETE\x20statement\x20modifies\x20data'};const _0x1aea1b=[_0x108eab(0xae),_0x108eab(0x65),_0x108eab(0xa9),_0x108eab(0xaa),_0x108eab(0x80),_0x108eab(0x74)];for(const _0x1eee26 of _0x1aea1b){if(_0x42278b['startsWith'](_0x1eee26))return{'type':_0x108eab(0xb6),'isSelectOnly':![],'isDangerous':!![],'reason':_0x1eee26+_0x108eab(0x9d)};}return{'type':_0x108eab(0x8f),'isSelectOnly':![],'isDangerous':![],'reason':_0x108eab(0x93)};}export function validateIsSelectOnly(_0x10e308){const _0x155ec8=a29_0x7f88,_0x1ec048=detectSqlType(_0x10e308);return{'valid':_0x1ec048[_0x155ec8(0xad)],'reason':_0x1ec048[_0x155ec8(0xad)]?undefined:_0x1ec048[_0x155ec8(0x96)]};}export function extractTableNames(_0x5cd33a){const _0x1736c1=a29_0x7f88,_0x44b249=parseSqlStructure(_0x5cd33a);return _0x44b249[_0x1736c1(0x76)];}export function extractColumnNames(_0x2d0ef3){const _0x39b499=a29_0x7f88,_0xb2e71a=parseSqlStructure(_0x2d0ef3);return _0xb2e71a[_0x39b499(0x71)]['map'](_0x367d4e=>({'table':_0x367d4e[_0x39b499(0x8c)],'column':_0x367d4e[_0x39b499(0x9e)]}));}export function extractParameters(_0x29ac5d){const _0x1191fa=a29_0x7f88,_0x20e2f4=parseSqlStructure(_0x29ac5d);return _0x20e2f4[_0x1191fa(0x7a)];}export function validateSqlContent(_0x24b371,_0x3a7004){const _0x3482f3=a29_0x7f88,_0x2cc0ea=detectSqlType(_0x24b371),_0x4ca10e=parseSqlStructure(_0x24b371),_0x5d5f3b=[];if(_0x3a7004){const _0x21857e=new Map(_0x3a7004['tables'][_0x3482f3(0x83)](_0xaebabc=>[_0xaebabc[_0x3482f3(0x7e)]['toLowerCase'](),_0xaebabc['columns'][_0x3482f3(0x83)](_0x247273=>_0x247273[_0x3482f3(0x8d)]())]));for(const _0x409e36 of _0x4ca10e[_0x3482f3(0x76)]){const _0x3381ba=_0x409e36[_0x3482f3(0x8d)]();if(!_0x21857e[_0x3482f3(0x73)](_0x3381ba)){const _0x24895b=Array[_0x3482f3(0xa3)](_0x21857e[_0x3482f3(0xa5)]())[_0x3482f3(0x68)](_0x42f1b3=>_0x42f1b3[_0x3482f3(0xa2)](_0x3381ba)||_0x3381ba[_0x3482f3(0xa2)](_0x42f1b3));_0x5d5f3b[_0x3482f3(0xa8)](createStructuredSqlError({'type':_0x3482f3(0x78),'location':_0x409e36,'message':'表\x20\x22'+_0x409e36+_0x3482f3(0xb4),'severity':_0x3482f3(0x67),'suggestions':_0x24895b[_0x3482f3(0xab)]>0x0?_0x24895b:Array['from'](_0x21857e[_0x3482f3(0xa5)]())}));}}for(const _0x3d4132 of _0x4ca10e['columns']){if(_0x3d4132[_0x3482f3(0x8c)]){const _0x48da97=_0x3d4132[_0x3482f3(0x8c)][_0x3482f3(0x8d)](),_0x431856=_0x21857e[_0x3482f3(0x6c)](_0x48da97);if(_0x431856){const _0x529068=_0x3d4132[_0x3482f3(0x9e)][_0x3482f3(0x8d)]();if(!_0x431856[_0x3482f3(0xa2)](_0x529068)&&!_0x3d4132[_0x3482f3(0x9e)][_0x3482f3(0xa2)]('*')){const _0x3bdb26=_0x431856['filter'](_0x1cccdd=>_0x1cccdd[_0x3482f3(0xa2)](_0x529068)||_0x529068[_0x3482f3(0xa2)](_0x1cccdd));_0x5d5f3b['push'](createStructuredSqlError({'type':_0x3482f3(0x6d),'location':_0x3d4132[_0x3482f3(0x8c)]+'.'+_0x3d4132[_0x3482f3(0x9e)],'message':_0x3482f3(0x79)+_0x3d4132[_0x3482f3(0x9e)]+_0x3482f3(0x70)+_0x3d4132['table']+_0x3482f3(0x64),'severity':_0x3482f3(0x67),'suggestions':_0x3bdb26[_0x3482f3(0xab)]>0x0?_0x3bdb26:_0x431856[_0x3482f3(0x7b)](0x0,0xa)}));}}}}}return{'valid':_0x5d5f3b[_0x3482f3(0xab)]===0x0,'isSelectOnly':_0x2cc0ea[_0x3482f3(0xad)],'parsedStructure':_0x4ca10e,'errors':_0x5d5f3b[_0x3482f3(0xab)]>0x0?_0x5d5f3b:undefined};}export function generateSqlSummary(_0x5f08ff){const _0x5f2f64=a29_0x7f88,_0x45408b=parseSqlStructure(_0x5f08ff),_0x5dd1a0=[];return _0x45408b[_0x5f2f64(0x76)][_0x5f2f64(0xab)]>0x0&&_0x5dd1a0['push'](_0x5f2f64(0x7c)+_0x45408b[_0x5f2f64(0x76)]['join'](',\x20')),_0x45408b['parameters'][_0x5f2f64(0xab)]>0x0&&_0x5dd1a0[_0x5f2f64(0xa8)](_0x5f2f64(0x75)+_0x45408b[_0x5f2f64(0x7a)][_0x5f2f64(0x83)](_0x21671b=>_0x21671b[_0x5f2f64(0x98)])[_0x5f2f64(0x9a)](',\x20')),_0x45408b[_0x5f2f64(0x7f)]&&_0x45408b['joins'][_0x5f2f64(0xab)]>0x0&&_0x5dd1a0['push'](_0x5f2f64(0xb1)+_0x45408b[_0x5f2f64(0x7f)]['length']),_0x5dd1a0[_0x5f2f64(0xab)]>0x0?_0x5dd1a0[_0x5f2f64(0x9a)](_0x5f2f64(0xa4)):_0x5f2f64(0x92);}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovrabet/dataset-mcp-server",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8",
|
|
4
4
|
"description": "MCP server for Lovrabet Dataset access",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"examples": "npm run example:basic && npm run example:sdk && npm run example:compare"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@lovrabet/dsparser": "
|
|
33
|
+
"@lovrabet/dsparser": "^1.3.5",
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
35
35
|
"axios": "^1.6.2",
|
|
36
36
|
"dotenv": "^16.3.1",
|
|
@@ -58,4 +58,4 @@
|
|
|
58
58
|
"engines": {
|
|
59
59
|
"node": ">=18.0.0"
|
|
60
60
|
}
|
|
61
|
-
}
|
|
61
|
+
}
|