@lovrabet/dataset-mcp-server 1.3.1-beta.2 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzer/dataset-analyzer.js +1 -1
- 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/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-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-datasets.js +1 -1
- package/dist/tools/list-sql-queries.js +1 -1
- package/dist/tools/login.js +1 -1
- package/dist/tools/save-custom-sql.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/sql-parser.js +1 -1
- package/package.json +1 -1
package/dist/types/mcp-types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a23_0x2ac05f=a23_0x1d9f;function a23_0x2110(){const _0x37ff28=['AUTH_REQUIRED','3277836iZkjiD','SQL_VALIDATION_FAILED','759670nEESpA','type','检查\x20SQL\x20语法,确保关键字拼写正确、括号匹配','login({\x20env:\x20\x22online\x22\x20})','PARAMETER_INVALID','类型不匹配','查看所有可用的数据集','list_datasets','get_dataset_detail({\x20datasetCode:\x20\x22customer\x22\x20})','tool','suggestions','129977aZejtz','1383165XZsbZS','PARAMETER_MISSING','获取数据集详情以确认表名和字段名','push','error','UNKNOWN_ERROR','length','<dataset-code>','description','18pynzBW','查看所有可用的\x20SQL\x20查询','status','6YIWehS','list_datasets({\x20pageSize:\x20999\x20})','10QwijRk','4204NucOyN','246QUuvgl','severity','使用\x20list_datasets\x20工具查看所有可用的数据集表名','字段不存在','TABLE_NOT_FOUND','fixSteps','NETWORK_ERROR','code','字段名歧义','86876snzGSx','canAutoFix','recoverable','SQL_NOT_FOUND','toISOString','response','缺少\x20WHERE\x20条件','表不存在','登录到\x20Lovrabet\x20平台','fixedSql','SQL_EXECUTION_FAILED','缺少必需参数:\x20','确保\x20SELECT\x20语句格式正确,如:\x20SELECT\x20id,\x20name\x20FROM\x20table\x20WHERE\x20status\x20=\x201','list_sql_queries','message','typeLabel','使用\x20get_dataset_detail\x20工具查看数据集的所有字段','SYNTAX_ERROR','DATASET_NOT_FOUND','536192XYmWsD','API_ERROR','location','login','suggestedAction','get_dataset_detail','22ZerbQe'];a23_0x2110=function(){return _0x37ff28;};return a23_0x2110();}(function(_0x1b4f40,_0x21dd7b){const _0x53dc57=a23_0x1d9f,_0x5120db=_0x1b4f40();while(!![]){try{const _0x2931c8=-parseInt(_0x53dc57(0x147))/0x1+-parseInt(_0x53dc57(0x115))/0x2*(parseInt(_0x53dc57(0x116))/0x3)+parseInt(_0x53dc57(0x11f))/0x4*(-parseInt(_0x53dc57(0x114))/0x5)+parseInt(_0x53dc57(0x112))/0x6*(parseInt(_0x53dc57(0x148))/0x7)+parseInt(_0x53dc57(0x132))/0x8*(parseInt(_0x53dc57(0x10f))/0x9)+parseInt(_0x53dc57(0x13c))/0xa*(-parseInt(_0x53dc57(0x138))/0xb)+parseInt(_0x53dc57(0x13a))/0xc;if(_0x2931c8===_0x21dd7b)break;else _0x5120db['push'](_0x5120db['shift']());}catch(_0x44d312){_0x5120db['push'](_0x5120db['shift']());}}}(a23_0x2110,0x1a24b));function a23_0x1d9f(_0x1777a2,_0x551cfd){_0x1777a2=_0x1777a2-0x10c;const _0x211031=a23_0x2110();let _0x1d9f31=_0x211031[_0x1777a2];return _0x1d9f31;}export const SQL_ERROR_TYPE_LABELS={'TABLE_NOT_FOUND':a23_0x2ac05f(0x126),'COLUMN_NOT_FOUND':a23_0x2ac05f(0x119),'AMBIGUOUS_COLUMN':a23_0x2ac05f(0x11e),'SYNTAX_ERROR':'语法错误','TYPE_MISMATCH':a23_0x2ac05f(0x141),'MISSING_WHERE_CLAUSE':a23_0x2ac05f(0x125),'UNSAFE_QUERY':'不安全的查询'};export function createError(_0x4b812a){const _0xab588e=a23_0x2ac05f;return{'error':!![],'code':_0x4b812a[_0xab588e(0x11d)],'message':_0x4b812a[_0xab588e(0x12d)],'status':_0x4b812a[_0xab588e(0x111)],'description':_0x4b812a['description'],'response':_0x4b812a[_0xab588e(0x124)],'suggestedAction':_0x4b812a[_0xab588e(0x136)],'recoverable':_0x4b812a[_0xab588e(0x121)]??!![],'timestamp':new Date()[_0xab588e(0x123)]()};}export function createAuthError(){const _0x8b0e04=a23_0x2ac05f;return createError({'code':'AUTH_REQUIRED','message':'需要登录才能访问\x20Lovrabet\x20数据。请先使用\x20login\x20工具进行登录。','suggestedAction':{'tool':_0x8b0e04(0x135),'description':_0x8b0e04(0x127),'example':_0x8b0e04(0x13f)},'recoverable':!![]});}export function createMissingParamError(_0x2f48ad,_0x206c39){const _0xdefa=a23_0x2ac05f;return createError({'code':_0xdefa(0x149),'message':_0xdefa(0x12a)+_0x2f48ad+(_0x206c39?'\x20('+_0x206c39+')':''),'recoverable':!![]});}export function createDatasetNotFoundError(_0x2a3beb){const _0x2adabc=a23_0x2ac05f;return createError({'code':_0x2adabc(0x131),'message':'数据集不存在:\x20'+_0x2a3beb,'suggestedAction':{'tool':'list_datasets','description':_0x2adabc(0x142),'example':_0x2adabc(0x113)},'recoverable':!![]});}export function createSqlNotFoundError(_0x151001){const _0x363df9=a23_0x2ac05f;return createError({'code':_0x363df9(0x122),'message':'SQL\x20不存在:\x20'+_0x151001,'suggestedAction':{'tool':_0x363df9(0x12c),'description':_0x363df9(0x110),'example':'list_sql_queries({\x20pageSize:\x20999\x20})'},'recoverable':!![]});}export function createSqlValidationError(_0x2f665a){const _0x1adfef=a23_0x2ac05f,_0x42f9d9=_0x2f665a[_0x1adfef(0x11b)][_0x1adfef(0x10c)]>0x0,_0x4dba0a=_0x42f9d9?_0x2f665a[_0x1adfef(0x11b)][0x0]:undefined,_0x3979d6={'type':_0x2f665a[_0x1adfef(0x13d)],'typeLabel':_0x2f665a[_0x1adfef(0x12e)],'location':_0x2f665a[_0x1adfef(0x134)],'severity':_0x2f665a['severity'],'fixSteps':_0x2f665a[_0x1adfef(0x11b)],'suggestions':_0x2f665a[_0x1adfef(0x146)],'canAutoFix':_0x2f665a[_0x1adfef(0x120)],'fixedSql':_0x2f665a[_0x1adfef(0x128)]};return createError({'code':_0x1adfef(0x13b),'message':_0x2f665a[_0x1adfef(0x12e)]+':\x20'+_0x2f665a[_0x1adfef(0x12d)],'status':_0x2f665a[_0x1adfef(0x111)],'description':_0x3979d6,'response':_0x2f665a['response'],'suggestedAction':_0x4dba0a?{'tool':_0x4dba0a[_0x1adfef(0x145)],'description':_0x4dba0a[_0x1adfef(0x10e)],'params':_0x4dba0a['toolParams'],'example':_0x4dba0a['example']}:{'tool':_0x1adfef(0x137),'description':_0x1adfef(0x14a),'params':{'datasetCode':_0x1adfef(0x10d)}},'recoverable':_0x2f665a[_0x1adfef(0x117)]!==_0x1adfef(0x14c)});}export function createStructuredSqlError(_0x43649d){const _0x5aac07=a23_0x2ac05f,_0x23307b=SQL_ERROR_TYPE_LABELS[_0x43649d['type']],_0x1a358d=_0x43649d[_0x5aac07(0x117)]??_0x5aac07(0x14c),_0x19e6b2=[];if(_0x43649d['type']===_0x5aac07(0x11a))_0x19e6b2[_0x5aac07(0x14b)]({'description':_0x5aac07(0x118),'tool':_0x5aac07(0x143),'toolParams':{'pageSize':0x3e7},'example':_0x5aac07(0x113)});else{if(_0x43649d[_0x5aac07(0x13d)]==='COLUMN_NOT_FOUND')_0x19e6b2['push']({'description':_0x5aac07(0x12f),'tool':_0x5aac07(0x137),'toolParams':{'datasetCode':'<dataset-code>'},'example':_0x5aac07(0x144)});else _0x43649d[_0x5aac07(0x13d)]===_0x5aac07(0x130)&&_0x19e6b2[_0x5aac07(0x14b)]({'description':_0x5aac07(0x13e),'example':_0x5aac07(0x12b)});}return{'type':_0x43649d[_0x5aac07(0x13d)],'typeLabel':_0x23307b,'location':_0x43649d[_0x5aac07(0x134)],'message':_0x43649d['message'],'severity':_0x1a358d,'fixSteps':_0x43649d[_0x5aac07(0x11b)]??_0x19e6b2,'suggestions':_0x43649d[_0x5aac07(0x146)],'canAutoFix':_0x43649d[_0x5aac07(0x120)],'fixedSql':_0x43649d[_0x5aac07(0x128)],'status':_0x43649d[_0x5aac07(0x111)],'response':_0x43649d[_0x5aac07(0x124)]};}export function fromLovrabetError(_0x5c036f,_0x2ce201){const _0xa99f3c=a23_0x2ac05f;return createError({'code':mapSdkCodeToMcpCode(_0x5c036f['code']),'message':_0x5c036f[_0xa99f3c(0x12d)],'status':_0x5c036f[_0xa99f3c(0x111)],'description':_0x5c036f[_0xa99f3c(0x10e)],'response':_0x5c036f[_0xa99f3c(0x124)],'suggestedAction':_0x2ce201,'recoverable':_0x5c036f[_0xa99f3c(0x111)]?_0x5c036f[_0xa99f3c(0x111)]<0x1f4:!![]});}function mapSdkCodeToMcpCode(_0x5d3385){const _0x3d7785=a23_0x2ac05f;if(!_0x5d3385)return'UNKNOWN_ERROR';const _0x16c171={'AUTH_REQUIRED':_0x3d7785(0x139),'AUTH_FAILED':_0x3d7785(0x139),'UNAUTHORIZED':_0x3d7785(0x139),'DATASET_NOT_FOUND':_0x3d7785(0x131),'NOT_FOUND':'DATASET_NOT_FOUND','INVALID_PARAMETER':_0x3d7785(0x140),'MISSING_PARAMETER':'PARAMETER_MISSING','SQL_ERROR':_0x3d7785(0x129),'NETWORK_ERROR':_0x3d7785(0x11c),'API_ERROR':_0x3d7785(0x133)};return _0x16c171[_0x5d3385]||_0x3d7785(0x14d);}
|
package/dist/utils/sql-parser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x8e19c2,_0x28a7b9){const _0x19f686=a24_0x23f7,_0x403ae0=_0x8e19c2();while(!![]){try{const _0x2d8112=-parseInt(_0x19f686(0x9c))/0x1+-parseInt(_0x19f686(0xc0))/0x2*(parseInt(_0x19f686(0xab))/0x3)+-parseInt(_0x19f686(0xe2))/0x4*(parseInt(_0x19f686(0xe7))/0x5)+-parseInt(_0x19f686(0xb4))/0x6*(-parseInt(_0x19f686(0xce))/0x7)+parseInt(_0x19f686(0xa4))/0x8+parseInt(_0x19f686(0xac))/0x9+-parseInt(_0x19f686(0xbd))/0xa*(-parseInt(_0x19f686(0xc5))/0xb);if(_0x2d8112===_0x28a7b9)break;else _0x403ae0['push'](_0x403ae0['shift']());}catch(_0x8b2b13){_0x403ae0['push'](_0x403ae0['shift']());}}}(a24_0x5f35,0x75293));import{createStructuredSqlError}from'../types/mcp-types.js';export function parseSqlStructure(_0x87987b){const _0x434a63=a24_0x23f7,_0x36f2d6={'tables':[],'columns':[],'parameters':[],'joins':[]};if(!_0x87987b||typeof _0x87987b!==_0x434a63(0xdd))return _0x36f2d6;const _0x4359d2=_0x87987b[_0x434a63(0xdb)](/#\{[^}]*\}/g,'?')[_0x434a63(0xdb)](/\$\{[^}]*\}/g,'?')[_0x434a63(0xdb)](/'[^']*'/g,'\x27\x27')[_0x434a63(0xdb)](/--.*$/gm,'')[_0x434a63(0xdb)](/\/\*[\s\S]*?\*\//g,''),_0x330fdd=_0x4359d2['match'](/FROM\s+([^\s,)(]+)/i);if(_0x330fdd){const _0x325cdd=_0x330fdd[0x1]['replace'](/[`"]/g,'');_0x36f2d6['tables']['push'](_0x325cdd);}const _0x27f5ff=_0x4359d2[_0x434a63(0xb1)](/(?:INNER|LEFT|RIGHT|FULL|CROSS)?\s*JOIN\s+([^\s,)(]+)/gi);for(const _0x593faf of _0x27f5ff){const _0x324629=_0x593faf[0x1][_0x434a63(0xdb)](/[`"]/g,'');_0x324629&&!_0x36f2d6[_0x434a63(0xb6)][_0x434a63(0xd4)](_0x324629)&&_0x36f2d6[_0x434a63(0xb6)]['push'](_0x324629);}const _0x317645=_0x4359d2[_0x434a63(0xea)](/SELECT\s+([\s\S]+?)\s+FROM/i);if(_0x317645){const _0x40efe7=_0x317645[0x1][_0x434a63(0xb7)]();if(_0x40efe7!=='*'){const _0x463d88=splitSqlColumns(_0x40efe7);for(const _0x55e029 of _0x463d88){const _0x42c94c=_0x55e029[_0x434a63(0xb7)]();if(_0x42c94c&&!_0x42c94c[_0x434a63(0xea)](/^\d+$/)){const _0x103fd6=_0x42c94c['split'](/\s+AS\s+/i),_0xd9557f=_0x103fd6[0x0][_0x434a63(0xb7)](),_0x2d08df=_0x103fd6[0x1]?.['trim']();if(_0xd9557f[_0x434a63(0xd4)]('.')){const [_0x3ea617,_0x284b15]=_0xd9557f[_0x434a63(0xa8)]('.');_0x36f2d6[_0x434a63(0xe5)][_0x434a63(0xcd)]({'table':_0x3ea617['trim'](),'column':_0x284b15['replace'](/[`"]/g,'')[_0x434a63(0xb7)](),'alias':_0x2d08df});}else!_0xd9557f[_0x434a63(0xd4)]('(')&&_0x36f2d6[_0x434a63(0xe5)][_0x434a63(0xcd)]({'table':'','column':_0xd9557f[_0x434a63(0xdb)](/[`"]/g,''),'alias':_0x2d08df});}}}}const _0xde08b0=_0x4359d2['matchAll'](/JOIN\s+(\w+)\s+(?:AS\s+)?(\w+)?\s+ON\s+([\w.]+)\s*=\s*([\w.]+)/gi);for(const _0x27b3d5 of _0xde08b0){const [,,,_0x52cf7e,_0x416288]=_0x27b3d5;if(_0x52cf7e&&_0x416288){const [_0x434bc7,_0x28b646]=_0x52cf7e[_0x434a63(0xd4)]('.')?_0x52cf7e['split']('.'):['',_0x52cf7e],[_0xbb0eb5,_0x298559]=_0x416288['includes']('.')?_0x416288[_0x434a63(0xa8)]('.'):['',_0x416288];_0x36f2d6[_0x434a63(0xa0)]?.[_0x434a63(0xcd)]({'leftTable':_0x434bc7,'leftColumn':_0x28b646,'rightTable':_0xbb0eb5,'rightColumn':_0x298559});}}const _0x2ac0ff=_0x87987b[_0x434a63(0xb1)](/[#\$]\{(\w+)\}/g),_0x5d7600=new Set();for(const _0x157f0f of _0x2ac0ff){const _0xb1446d=_0x157f0f[0x1];!_0x5d7600[_0x434a63(0xd6)](_0xb1446d)&&(_0x5d7600['add'](_0xb1446d),_0x36f2d6[_0x434a63(0xa2)]['push']({'name':_0xb1446d,'type':inferParamType(_0xb1446d),'example':getExampleValue(_0xb1446d)}));}return _0x36f2d6;}function splitSqlColumns(_0x57148c){const _0x382546=a24_0x23f7,_0x1724b7=[];let _0xdbaab0='',_0x1051c2=0x0;for(let _0x543785=0x0;_0x543785<_0x57148c[_0x382546(0xdc)];_0x543785++){const _0x37ca86=_0x57148c[_0x543785];if(_0x37ca86==='(')_0x1051c2++,_0xdbaab0+=_0x37ca86;else{if(_0x37ca86===')')_0x1051c2--,_0xdbaab0+=_0x37ca86;else _0x37ca86===','&&_0x1051c2===0x0?(_0x1724b7[_0x382546(0xcd)](_0xdbaab0),_0xdbaab0=''):_0xdbaab0+=_0x37ca86;}}return _0xdbaab0&&_0x1724b7['push'](_0xdbaab0),_0x1724b7;}function inferParamType(_0x1e4e42){const _0x1e1100=a24_0x23f7,_0x4e1da7=_0x1e4e42['toLowerCase']();if(_0x4e1da7[_0x1e1100(0xd4)]('id')||_0x4e1da7[_0x1e1100(0xd4)](_0x1e1100(0xe9))||_0x4e1da7['includes'](_0x1e1100(0xbe))||_0x4e1da7[_0x1e1100(0xd4)](_0x1e1100(0xa1))||_0x4e1da7[_0x1e1100(0xd4)](_0x1e1100(0xc2))||_0x4e1da7[_0x1e1100(0xd4)](_0x1e1100(0xc3))||_0x4e1da7[_0x1e1100(0xd4)](_0x1e1100(0xd7))||_0x4e1da7[_0x1e1100(0xd4)](_0x1e1100(0xcf)))return _0x1e1100(0xa3);return'string';}function getExampleValue(_0x2336ea){const _0x3e12f1=a24_0x23f7,_0x3ccd38=_0x2336ea[_0x3e12f1(0xaa)](),_0x4a4290=inferParamType(_0x3ccd38);if(_0x4a4290===_0x3e12f1(0xa3)){if(_0x3ccd38[_0x3e12f1(0xd4)]('limit')||_0x3ccd38['includes'](_0x3e12f1(0xe9))||_0x3ccd38[_0x3e12f1(0xd4)](_0x3e12f1(0xa1)))return 0xa;if(_0x3ccd38[_0x3e12f1(0xd4)](_0x3e12f1(0xc2)))return 0x1;return 0x7b;}if(_0x3ccd38[_0x3e12f1(0xd4)](_0x3e12f1(0xcb))||_0x3ccd38['includes'](_0x3e12f1(0xb9)))return _0x3e12f1(0xcc);if(_0x3ccd38[_0x3e12f1(0xd4)]('status'))return'1';if(_0x3ccd38[_0x3e12f1(0xd4)](_0x3e12f1(0xd1))||_0x3ccd38[_0x3e12f1(0xd4)](_0x3e12f1(0xa5))||_0x3ccd38[_0x3e12f1(0xd4)]('name'))return _0x3e12f1(0xa9);return'value';}export function validateIsSelectOnly(_0x5dc7d7){const _0x2b6e2a=a24_0x23f7;if(!_0x5dc7d7||typeof _0x5dc7d7!==_0x2b6e2a(0xdd))return{'valid':![],'reason':_0x2b6e2a(0xdf)};const _0x1c059f=_0x5dc7d7[_0x2b6e2a(0xdb)](/#\{[^}]*\}/g,'?')[_0x2b6e2a(0xdb)](/\$\{[^}]*\}/g,'?')[_0x2b6e2a(0xdb)](/@[^(\s]+(\([^)]*\))?/g,''),_0x491ed3=_0x1c059f[_0x2b6e2a(0xb7)](),_0x430d42=_0x491ed3[_0x2b6e2a(0xa8)]('\x0a');let _0x22f53e='';for(const _0x38b22e of _0x430d42){const _0x306787=_0x38b22e['trim']();if(!_0x306787||_0x306787['startsWith']('--')||_0x306787['startsWith']('/*'))continue;_0x22f53e=_0x306787;break;}if(!_0x22f53e[_0x2b6e2a(0xeb)]()[_0x2b6e2a(0xd9)](_0x2b6e2a(0xb3)))return{'valid':![],'reason':_0x2b6e2a(0xd2)};const _0x27e764=[_0x2b6e2a(0xc4),_0x2b6e2a(0xba),_0x2b6e2a(0xd8),_0x2b6e2a(0xb8),_0x2b6e2a(0x9e),_0x2b6e2a(0xa7),_0x2b6e2a(0xae),_0x2b6e2a(0xbc),_0x2b6e2a(0xb5),_0x2b6e2a(0xd5),'EXECUTE'],_0x2c40c5=_0x491ed3['toUpperCase']();for(const _0x26f23c of _0x27e764){const _0x2232e9=new RegExp(_0x26f23c,'i');if(_0x2232e9[_0x2b6e2a(0xe8)](_0x2c40c5))return{'valid':![],'reason':_0x2b6e2a(0x9d)+_0x26f23c[_0x2b6e2a(0xdb)]('\x5c\x5cs+','\x20')+_0x2b6e2a(0x9f)};}return{'valid':!![]};}export function extractTableNames(_0x238400){const _0x3cfa15=a24_0x23f7,_0x5231f2=parseSqlStructure(_0x238400);return _0x5231f2[_0x3cfa15(0xb6)];}export function extractColumnNames(_0x3420b2){const _0x33bbae=a24_0x23f7,_0x184538=parseSqlStructure(_0x3420b2);return _0x184538[_0x33bbae(0xe5)][_0x33bbae(0xca)](_0x205b00=>({'table':_0x205b00[_0x33bbae(0xb2)],'column':_0x205b00['column']}));}export function extractParameters(_0x5ae4dc){const _0x365d85=a24_0x23f7,_0x1407d9=parseSqlStructure(_0x5ae4dc);return _0x1407d9[_0x365d85(0xa2)];}function a24_0x5f35(){const _0x3789e9=['GRANT','60SqKGPp','limit','表\x20\x22','1462094IeSFXh','column','page','num','INSERT\x5cs+INTO','3173027BzDtYj','get','join','slice','\x20|\x20','map','date','2024-01-01','push','49oOoITx','price','valid','keyword','Only\x20SELECT\x20queries\x20are\x20allowed.\x20The\x20SQL\x20must\x20start\x20with\x20SELECT\x20(after\x20any\x20comments).','from','includes','EXEC','has','amount','DELETE\x5cs+FROM','startsWith','\x22\x20中不存在','replace','length','string','reason','SQL\x20content\x20cannot\x20be\x20empty','字段\x20\x22','Tables:\x20','66180Dvytye','SELECT\x20query','Params:\x20','columns','filter','220uXIXWo','test','count','match','toUpperCase','确保\x20SQL\x20语句以\x20SELECT\x20关键字开头','473048qczQrT','Forbidden\x20keyword\x20detected:\x20','ALTER\x5cs+(TABLE|DATABASE)','.\x20Only\x20SELECT\x20queries\x20are\x20allowed.','joins','size','parameters','number','2830024jwodDR','search','tableName','CREATE\x5cs+(TABLE|INDEX|DATABASE|VIEW)','split','example','toLowerCase','3zeLlTF','1951272hUluML','\x22\x20在表\x20\x22','TRUNCATE','SYNTAX_ERROR','keys','matchAll','table','SELECT','94854wArqMx','REVOKE','tables','trim','DROP\x5cs+(TABLE|INDEX|DATABASE)','time','UPDATE\x5cs+\x5cw+\x5cs+SET','error'];a24_0x5f35=function(){return _0x3789e9;};return a24_0x5f35();}export function validateSqlContent(_0x36a843,_0x59b8cf){const _0x3df6f1=a24_0x23f7,_0x526816=validateIsSelectOnly(_0x36a843);if(!_0x526816[_0x3df6f1(0xd0)])return{'valid':![],'isSelectOnly':![],'errors':[createStructuredSqlError({'type':_0x3df6f1(0xaf),'location':'SQL_START','message':_0x526816[_0x3df6f1(0xde)]||'SQL\x20必须以\x20SELECT\x20开头','severity':_0x3df6f1(0xbb),'fixSteps':[{'description':_0x3df6f1(0xec),'example':'SELECT\x20id,\x20name\x20FROM\x20customer\x20WHERE\x20status\x20=\x201'}]})]};const _0x5a44bc=parseSqlStructure(_0x36a843),_0x239913=[];if(_0x59b8cf){const _0x108799=new Map(_0x59b8cf[_0x3df6f1(0xb6)]['map'](_0x298923=>[_0x298923[_0x3df6f1(0xa6)][_0x3df6f1(0xaa)](),_0x298923[_0x3df6f1(0xe5)][_0x3df6f1(0xca)](_0x3d7776=>_0x3d7776[_0x3df6f1(0xaa)]())]));for(const _0x45ab35 of _0x5a44bc[_0x3df6f1(0xb6)]){const _0x5eb4d5=_0x45ab35[_0x3df6f1(0xaa)]();if(!_0x108799['has'](_0x5eb4d5)){const _0x3bdec2=Array['from'](_0x108799[_0x3df6f1(0xb0)]())[_0x3df6f1(0xe6)](_0x3e83bc=>_0x3e83bc[_0x3df6f1(0xd4)](_0x5eb4d5)||_0x5eb4d5[_0x3df6f1(0xd4)](_0x3e83bc));_0x239913[_0x3df6f1(0xcd)](createStructuredSqlError({'type':'TABLE_NOT_FOUND','location':_0x45ab35,'message':_0x3df6f1(0xbf)+_0x45ab35+'\x22\x20在数据库\x20schema\x20中不存在','severity':_0x3df6f1(0xbb),'suggestions':_0x3bdec2[_0x3df6f1(0xdc)]>0x0?_0x3bdec2:Array[_0x3df6f1(0xd3)](_0x108799[_0x3df6f1(0xb0)]())}));}}for(const _0x3822c4 of _0x5a44bc[_0x3df6f1(0xe5)]){if(_0x3822c4[_0x3df6f1(0xb2)]){const _0x1d8cd3=_0x3822c4[_0x3df6f1(0xb2)]['toLowerCase'](),_0x3110d1=_0x108799[_0x3df6f1(0xc6)](_0x1d8cd3);if(_0x3110d1){const _0x20903=_0x3822c4['column'][_0x3df6f1(0xaa)]();if(!_0x3110d1[_0x3df6f1(0xd4)](_0x20903)&&!_0x3822c4[_0x3df6f1(0xc1)][_0x3df6f1(0xd4)]('*')){const _0x524873=_0x3110d1[_0x3df6f1(0xe6)](_0xd98b79=>_0xd98b79[_0x3df6f1(0xd4)](_0x20903)||_0x20903[_0x3df6f1(0xd4)](_0xd98b79));_0x239913[_0x3df6f1(0xcd)](createStructuredSqlError({'type':'COLUMN_NOT_FOUND','location':_0x3822c4[_0x3df6f1(0xb2)]+'.'+_0x3822c4[_0x3df6f1(0xc1)],'message':_0x3df6f1(0xe0)+_0x3822c4[_0x3df6f1(0xc1)]+_0x3df6f1(0xad)+_0x3822c4[_0x3df6f1(0xb2)]+_0x3df6f1(0xda),'severity':_0x3df6f1(0xbb),'suggestions':_0x524873[_0x3df6f1(0xdc)]>0x0?_0x524873:_0x3110d1[_0x3df6f1(0xc8)](0x0,0xa)}));}}}}}return{'valid':_0x239913['length']===0x0,'isSelectOnly':!![],'parsedStructure':_0x5a44bc,'errors':_0x239913['length']>0x0?_0x239913:undefined};}function a24_0x23f7(_0x22d88d,_0xa7ec14){_0x22d88d=_0x22d88d-0x9c;const _0x5f35df=a24_0x5f35();let _0x23f739=_0x5f35df[_0x22d88d];return _0x23f739;}export function generateSqlSummary(_0x5cc5ac){const _0x5046f4=a24_0x23f7,_0x5e1945=parseSqlStructure(_0x5cc5ac),_0x2823e2=[];return _0x5e1945[_0x5046f4(0xb6)][_0x5046f4(0xdc)]>0x0&&_0x2823e2[_0x5046f4(0xcd)](_0x5046f4(0xe1)+_0x5e1945[_0x5046f4(0xb6)][_0x5046f4(0xc7)](',\x20')),_0x5e1945[_0x5046f4(0xa2)]['length']>0x0&&_0x2823e2['push'](_0x5046f4(0xe4)+_0x5e1945[_0x5046f4(0xa2)][_0x5046f4(0xca)](_0x13a3de=>_0x13a3de['name'])['join'](',\x20')),_0x5e1945[_0x5046f4(0xa0)]&&_0x5e1945[_0x5046f4(0xa0)][_0x5046f4(0xdc)]>0x0&&_0x2823e2[_0x5046f4(0xcd)]('Joins:\x20'+_0x5e1945['joins'][_0x5046f4(0xdc)]),_0x2823e2['length']>0x0?_0x2823e2[_0x5046f4(0xc7)](_0x5046f4(0xc9)):_0x5046f4(0xe3);}
|
|
1
|
+
(function(_0x455c10,_0x564ad9){const _0x2039b4=a24_0x4d32,_0x39f937=_0x455c10();while(!![]){try{const _0x541606=parseInt(_0x2039b4(0x1c3))/0x1+parseInt(_0x2039b4(0x1c8))/0x2+-parseInt(_0x2039b4(0x1d8))/0x3*(parseInt(_0x2039b4(0x1ce))/0x4)+parseInt(_0x2039b4(0x1de))/0x5+parseInt(_0x2039b4(0x1d2))/0x6+parseInt(_0x2039b4(0x1a2))/0x7*(parseInt(_0x2039b4(0x19f))/0x8)+-parseInt(_0x2039b4(0x1d3))/0x9;if(_0x541606===_0x564ad9)break;else _0x39f937['push'](_0x39f937['shift']());}catch(_0x37f007){_0x39f937['push'](_0x39f937['shift']());}}}(a24_0x1146,0x54788));import{createStructuredSqlError}from'../types/mcp-types.js';export function parseSqlStructure(_0x597296){const _0x54a672=a24_0x4d32,_0x111537={'tables':[],'columns':[],'parameters':[],'joins':[]};if(!_0x597296||typeof _0x597296!==_0x54a672(0x1ca))return _0x111537;const _0x5bc038=_0x597296['replace'](/#\{[^}]*\}/g,'?')['replace'](/\$\{[^}]*\}/g,'?')[_0x54a672(0x1c9)](/'[^']*'/g,'\x27\x27')[_0x54a672(0x1c9)](/--.*$/gm,'')[_0x54a672(0x1c9)](/\/\*[\s\S]*?\*\//g,''),_0x599cb7=_0x5bc038[_0x54a672(0x1bb)](/FROM\s+([^\s,)(]+)/i);if(_0x599cb7){const _0x3fb93c=_0x599cb7[0x1]['replace'](/[`"]/g,'');_0x111537[_0x54a672(0x1b1)][_0x54a672(0x1cb)](_0x3fb93c);}const _0x3774f3=_0x5bc038[_0x54a672(0x1bf)](/(?:INNER|LEFT|RIGHT|FULL|CROSS)?\s*JOIN\s+([^\s,)(]+)/gi);for(const _0x2c1c30 of _0x3774f3){const _0x3e5808=_0x2c1c30[0x1][_0x54a672(0x1c9)](/[`"]/g,'');_0x3e5808&&!_0x111537[_0x54a672(0x1b1)]['includes'](_0x3e5808)&&_0x111537[_0x54a672(0x1b1)][_0x54a672(0x1cb)](_0x3e5808);}const _0x11b8bd=_0x5bc038[_0x54a672(0x1bb)](/SELECT\s+([\s\S]+?)\s+FROM/i);if(_0x11b8bd){const _0x392d3a=_0x11b8bd[0x1][_0x54a672(0x1cd)]();if(_0x392d3a!=='*'){const _0x18c8c0=splitSqlColumns(_0x392d3a);for(const _0x5f03a of _0x18c8c0){const _0x4f6df3=_0x5f03a['trim']();if(_0x4f6df3&&!_0x4f6df3[_0x54a672(0x1bb)](/^\d+$/)){const _0x4d356f=_0x4f6df3[_0x54a672(0x1a7)](/\s+AS\s+/i),_0x1194ab=_0x4d356f[0x0][_0x54a672(0x1cd)](),_0x5c4c91=_0x4d356f[0x1]?.['trim']();if(_0x1194ab['includes']('.')){const [_0x579d0b,_0x3c8603]=_0x1194ab[_0x54a672(0x1a7)]('.');_0x111537[_0x54a672(0x1e0)][_0x54a672(0x1cb)]({'table':_0x579d0b[_0x54a672(0x1cd)](),'column':_0x3c8603['replace'](/[`"]/g,'')[_0x54a672(0x1cd)](),'alias':_0x5c4c91});}else!_0x1194ab[_0x54a672(0x1c6)]('(')&&_0x111537[_0x54a672(0x1e0)][_0x54a672(0x1cb)]({'table':'','column':_0x1194ab[_0x54a672(0x1c9)](/[`"]/g,''),'alias':_0x5c4c91});}}}}const _0x20a658=_0x5bc038[_0x54a672(0x1bf)](/JOIN\s+(\w+)\s+(?:AS\s+)?(\w+)?\s+ON\s+([\w.]+)\s*=\s*([\w.]+)/gi);for(const _0x355274 of _0x20a658){const [,,,_0x1df071,_0x1ef1e8]=_0x355274;if(_0x1df071&&_0x1ef1e8){const [_0xa20428,_0x560d7f]=_0x1df071[_0x54a672(0x1c6)]('.')?_0x1df071[_0x54a672(0x1a7)]('.'):['',_0x1df071],[_0x152f8a,_0x27da2a]=_0x1ef1e8[_0x54a672(0x1c6)]('.')?_0x1ef1e8[_0x54a672(0x1a7)]('.'):['',_0x1ef1e8];_0x111537['joins']?.[_0x54a672(0x1cb)]({'leftTable':_0xa20428,'leftColumn':_0x560d7f,'rightTable':_0x152f8a,'rightColumn':_0x27da2a});}}const _0x5799c9=_0x597296[_0x54a672(0x1bf)](/[#\$]\{(\w+)\}/g),_0xcb51b3=new Set();for(const _0x485127 of _0x5799c9){const _0x356648=_0x485127[0x1];!_0xcb51b3[_0x54a672(0x1d9)](_0x356648)&&(_0xcb51b3[_0x54a672(0x1d7)](_0x356648),_0x111537[_0x54a672(0x1dc)][_0x54a672(0x1cb)]({'name':_0x356648,'type':inferParamType(_0x356648),'example':getExampleValue(_0x356648)}));}return _0x111537;}function splitSqlColumns(_0x326889){const _0x5b4c76=a24_0x4d32,_0x1cb059=[];let _0x5c2450='',_0x2bcbf7=0x0;for(let _0x3e63b5=0x0;_0x3e63b5<_0x326889['length'];_0x3e63b5++){const _0x2780e0=_0x326889[_0x3e63b5];if(_0x2780e0==='(')_0x2bcbf7++,_0x5c2450+=_0x2780e0;else{if(_0x2780e0===')')_0x2bcbf7--,_0x5c2450+=_0x2780e0;else _0x2780e0===','&&_0x2bcbf7===0x0?(_0x1cb059['push'](_0x5c2450),_0x5c2450=''):_0x5c2450+=_0x2780e0;}}return _0x5c2450&&_0x1cb059[_0x5b4c76(0x1cb)](_0x5c2450),_0x1cb059;}function inferParamType(_0x31a86b){const _0x28c3aa=a24_0x4d32,_0xd42c0=_0x31a86b[_0x28c3aa(0x19a)]();if(_0xd42c0[_0x28c3aa(0x1c6)]('id')||_0xd42c0[_0x28c3aa(0x1c6)](_0x28c3aa(0x199))||_0xd42c0[_0x28c3aa(0x1c6)](_0x28c3aa(0x1df))||_0xd42c0[_0x28c3aa(0x1c6)]('size')||_0xd42c0['includes'](_0x28c3aa(0x1a8))||_0xd42c0[_0x28c3aa(0x1c6)](_0x28c3aa(0x1ac))||_0xd42c0[_0x28c3aa(0x1c6)](_0x28c3aa(0x1af))||_0xd42c0[_0x28c3aa(0x1c6)](_0x28c3aa(0x1c7)))return _0x28c3aa(0x1a4);return'string';}function a24_0x4d32(_0x36de73,_0x189674){_0x36de73=_0x36de73-0x197;const _0x1146d0=a24_0x1146();let _0x4d32ba=_0x1146d0[_0x36de73];return _0x4d32ba;}function getExampleValue(_0x35f682){const _0xebc0bc=a24_0x4d32,_0xf1cefd=_0x35f682[_0xebc0bc(0x19a)](),_0x1f95f5=inferParamType(_0xf1cefd);if(_0x1f95f5===_0xebc0bc(0x1a4)){if(_0xf1cefd[_0xebc0bc(0x1c6)]('limit')||_0xf1cefd[_0xebc0bc(0x1c6)](_0xebc0bc(0x199))||_0xf1cefd[_0xebc0bc(0x1c6)]('size'))return 0xa;if(_0xf1cefd[_0xebc0bc(0x1c6)]('page'))return 0x1;return 0x7b;}if(_0xf1cefd[_0xebc0bc(0x1c6)]('date')||_0xf1cefd[_0xebc0bc(0x1c6)](_0xebc0bc(0x1ab)))return'2024-01-01';if(_0xf1cefd[_0xebc0bc(0x1c6)](_0xebc0bc(0x1b9)))return'1';if(_0xf1cefd[_0xebc0bc(0x1c6)]('keyword')||_0xf1cefd[_0xebc0bc(0x1c6)](_0xebc0bc(0x1b2))||_0xf1cefd[_0xebc0bc(0x1c6)](_0xebc0bc(0x198)))return _0xebc0bc(0x1cf);return _0xebc0bc(0x1b5);}export function validateIsSelectOnly(_0x13f754){const _0x2ab1bf=a24_0x4d32;if(!_0x13f754||typeof _0x13f754!==_0x2ab1bf(0x1ca))return{'valid':![],'reason':_0x2ab1bf(0x1c2)};const _0x5df056=_0x13f754[_0x2ab1bf(0x1c9)](/#\{[^}]*\}/g,'?')[_0x2ab1bf(0x1c9)](/\$\{[^}]*\}/g,'?')[_0x2ab1bf(0x1c9)](/@[^(\s]+(\([^)]*\))?/g,''),_0x3789f3=_0x5df056['trim'](),_0x557075=_0x3789f3['split']('\x0a');let _0xbbc22='';for(const _0x9878e4 of _0x557075){const _0x33b6a6=_0x9878e4[_0x2ab1bf(0x1cd)]();if(!_0x33b6a6||_0x33b6a6[_0x2ab1bf(0x1b6)]('--')||_0x33b6a6['startsWith']('/*'))continue;_0xbbc22=_0x33b6a6;break;}if(!_0xbbc22[_0x2ab1bf(0x1c5)]()[_0x2ab1bf(0x1b6)]('SELECT'))return{'valid':![],'reason':'Only\x20SELECT\x20queries\x20are\x20allowed.\x20The\x20SQL\x20must\x20start\x20with\x20SELECT\x20(after\x20any\x20comments).'};const _0x5a3536=[_0x2ab1bf(0x1d5),_0x2ab1bf(0x1b3),_0x2ab1bf(0x1bd),'DROP\x5cs+(TABLE|INDEX|DATABASE)',_0x2ab1bf(0x1d0),_0x2ab1bf(0x1a6),_0x2ab1bf(0x1dd),'GRANT',_0x2ab1bf(0x1aa),'EXEC','EXECUTE'],_0xb7fb99=_0x3789f3[_0x2ab1bf(0x1c5)]();for(const _0x3447f3 of _0x5a3536){const _0x3c4a44=new RegExp(_0x3447f3,'i');if(_0x3c4a44[_0x2ab1bf(0x1a3)](_0xb7fb99))return{'valid':![],'reason':'Forbidden\x20keyword\x20detected:\x20'+_0x3447f3[_0x2ab1bf(0x1c9)](_0x2ab1bf(0x1a9),'\x20')+_0x2ab1bf(0x1b0)};}return{'valid':!![]};}function a24_0x1146(){const _0x204d81=['tableName','amount','.\x20Only\x20SELECT\x20queries\x20are\x20allowed.','tables','search','UPDATE\x5cs+\x5cw+\x5cs+SET','error','value','startsWith','table','get','status','SQL\x20必须以\x20SELECT\x20开头','match','\x20|\x20','DELETE\x5cs+FROM','column','matchAll','\x22\x20中不存在','\x22\x20在表\x20\x22','SQL\x20content\x20cannot\x20be\x20empty','47017LzcRiV','reason','toUpperCase','includes','price','415744TDwzAe','replace','string','push','Params:\x20','trim','8WyvbFa','example','ALTER\x5cs+(TABLE|DATABASE)','filter','1993968nLpDFs','2915955omSdGM','joins','INSERT\x5cs+INTO','TABLE_NOT_FOUND','add','461019QASzlf','has','字段\x20\x22','length','parameters','TRUNCATE','1534495YDChhp','limit','columns','map','确保\x20SQL\x20语句以\x20SELECT\x20关键字开头','name','count','toLowerCase','join','keys','slice','\x22\x20在数据库\x20schema\x20中不存在','221912AAnhnh','Joins:\x20','表\x20\x22','21ryYqRv','test','number','SYNTAX_ERROR','CREATE\x5cs+(TABLE|INDEX|DATABASE|VIEW)','split','page','\x5c\x5cs+','REVOKE','time','num','from'];a24_0x1146=function(){return _0x204d81;};return a24_0x1146();}export function extractTableNames(_0x3a262e){const _0x3784d1=parseSqlStructure(_0x3a262e);return _0x3784d1['tables'];}export function extractColumnNames(_0x5885bd){const _0x1b2c38=a24_0x4d32,_0x226470=parseSqlStructure(_0x5885bd);return _0x226470['columns']['map'](_0x35ca17=>({'table':_0x35ca17[_0x1b2c38(0x1b7)],'column':_0x35ca17[_0x1b2c38(0x1be)]}));}export function extractParameters(_0x4b576a){const _0x7fed95=a24_0x4d32,_0x50f9c1=parseSqlStructure(_0x4b576a);return _0x50f9c1[_0x7fed95(0x1dc)];}export function validateSqlContent(_0x23af3f,_0x33e1a7){const _0xd8e928=a24_0x4d32,_0x7d56b7=validateIsSelectOnly(_0x23af3f);if(!_0x7d56b7['valid'])return{'valid':![],'isSelectOnly':![],'errors':[createStructuredSqlError({'type':_0xd8e928(0x1a5),'location':'SQL_START','message':_0x7d56b7[_0xd8e928(0x1c4)]||_0xd8e928(0x1ba),'severity':_0xd8e928(0x1b4),'fixSteps':[{'description':_0xd8e928(0x197),'example':'SELECT\x20id,\x20name\x20FROM\x20customer\x20WHERE\x20status\x20=\x201'}]})]};const _0x42a834=parseSqlStructure(_0x23af3f),_0x10e56c=[];if(_0x33e1a7){const _0x5c593d=new Map(_0x33e1a7[_0xd8e928(0x1b1)][_0xd8e928(0x1e1)](_0x1216ec=>[_0x1216ec[_0xd8e928(0x1ae)][_0xd8e928(0x19a)](),_0x1216ec[_0xd8e928(0x1e0)][_0xd8e928(0x1e1)](_0x176eda=>_0x176eda[_0xd8e928(0x19a)]())]));for(const _0x3a1ec6 of _0x42a834[_0xd8e928(0x1b1)]){const _0x4b2560=_0x3a1ec6['toLowerCase']();if(!_0x5c593d[_0xd8e928(0x1d9)](_0x4b2560)){const _0x3bfaad=Array['from'](_0x5c593d['keys']())[_0xd8e928(0x1d1)](_0x57da15=>_0x57da15[_0xd8e928(0x1c6)](_0x4b2560)||_0x4b2560[_0xd8e928(0x1c6)](_0x57da15));_0x10e56c[_0xd8e928(0x1cb)](createStructuredSqlError({'type':_0xd8e928(0x1d6),'location':_0x3a1ec6,'message':_0xd8e928(0x1a1)+_0x3a1ec6+_0xd8e928(0x19e),'severity':'error','suggestions':_0x3bfaad['length']>0x0?_0x3bfaad:Array[_0xd8e928(0x1ad)](_0x5c593d[_0xd8e928(0x19c)]())}));}}for(const _0x70e66d of _0x42a834[_0xd8e928(0x1e0)]){if(_0x70e66d[_0xd8e928(0x1b7)]){const _0x46995e=_0x70e66d[_0xd8e928(0x1b7)][_0xd8e928(0x19a)](),_0x11d9c5=_0x5c593d[_0xd8e928(0x1b8)](_0x46995e);if(_0x11d9c5){const _0x1bd284=_0x70e66d[_0xd8e928(0x1be)][_0xd8e928(0x19a)]();if(!_0x11d9c5[_0xd8e928(0x1c6)](_0x1bd284)&&!_0x70e66d['column'][_0xd8e928(0x1c6)]('*')){const _0x3adfc3=_0x11d9c5[_0xd8e928(0x1d1)](_0x5c7eac=>_0x5c7eac[_0xd8e928(0x1c6)](_0x1bd284)||_0x1bd284['includes'](_0x5c7eac));_0x10e56c[_0xd8e928(0x1cb)](createStructuredSqlError({'type':'COLUMN_NOT_FOUND','location':_0x70e66d[_0xd8e928(0x1b7)]+'.'+_0x70e66d['column'],'message':_0xd8e928(0x1da)+_0x70e66d['column']+_0xd8e928(0x1c1)+_0x70e66d['table']+_0xd8e928(0x1c0),'severity':_0xd8e928(0x1b4),'suggestions':_0x3adfc3['length']>0x0?_0x3adfc3:_0x11d9c5[_0xd8e928(0x19d)](0x0,0xa)}));}}}}}return{'valid':_0x10e56c[_0xd8e928(0x1db)]===0x0,'isSelectOnly':!![],'parsedStructure':_0x42a834,'errors':_0x10e56c['length']>0x0?_0x10e56c:undefined};}export function generateSqlSummary(_0x1cce22){const _0xf1504c=a24_0x4d32,_0x1cfa98=parseSqlStructure(_0x1cce22),_0x5d9e38=[];return _0x1cfa98['tables'][_0xf1504c(0x1db)]>0x0&&_0x5d9e38[_0xf1504c(0x1cb)]('Tables:\x20'+_0x1cfa98[_0xf1504c(0x1b1)][_0xf1504c(0x19b)](',\x20')),_0x1cfa98[_0xf1504c(0x1dc)][_0xf1504c(0x1db)]>0x0&&_0x5d9e38[_0xf1504c(0x1cb)](_0xf1504c(0x1cc)+_0x1cfa98[_0xf1504c(0x1dc)][_0xf1504c(0x1e1)](_0x4cfe2a=>_0x4cfe2a[_0xf1504c(0x198)])[_0xf1504c(0x19b)](',\x20')),_0x1cfa98['joins']&&_0x1cfa98[_0xf1504c(0x1d4)][_0xf1504c(0x1db)]>0x0&&_0x5d9e38[_0xf1504c(0x1cb)](_0xf1504c(0x1a0)+_0x1cfa98[_0xf1504c(0x1d4)][_0xf1504c(0x1db)]),_0x5d9e38['length']>0x0?_0x5d9e38[_0xf1504c(0x19b)](_0xf1504c(0x1bc)):'SELECT\x20query';}
|