@lovrabet/lovrabet-cli 2.1.0-beta.2 → 2.1.0
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/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
package/lib/commands/kb/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a27_0x314c25=a27_0x1dd4;(function(_0x55f431,_0x560f49){const _0x600115=a27_0x1dd4,_0x3dbeb3=_0x55f431();while(!![]){try{const _0x2b8776=parseInt(_0x600115(0x166))/0x1*(-parseInt(_0x600115(0x14f))/0x2)+parseInt(_0x600115(0x154))/0x3*(parseInt(_0x600115(0x149))/0x4)+-parseInt(_0x600115(0x171))/0x5+-parseInt(_0x600115(0x16c))/0x6+-parseInt(_0x600115(0x178))/0x7+-parseInt(_0x600115(0x173))/0x8+parseInt(_0x600115(0x155))/0x9;if(_0x2b8776===_0x560f49)break;else _0x3dbeb3['push'](_0x3dbeb3['shift']());}catch(_0x5b1b2c){_0x3dbeb3['push'](_0x3dbeb3['shift']());}}}(a27_0x2a06,0xdc4e5));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';function a27_0x1dd4(_0x2b535d,_0x18a31){_0x2b535d=_0x2b535d-0x143;const _0x2a0643=a27_0x2a06();let _0x1dd496=_0x2a0643[_0x2b535d];return _0x1dd496;}import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x314c25(0x159),'type':a27_0x314c25(0x15b),'required':!![],'description':a27_0x314c25(0x14d)},FILE_FLAG={'name':a27_0x314c25(0x147),'type':'string','required':!![],'description':a27_0x314c25(0x164)},QUERY_FLAG={'name':a27_0x314c25(0x17e),'type':a27_0x314c25(0x15b),'required':!![],'description':a27_0x314c25(0x146)},TOPK_FLAG={'name':'topk','type':a27_0x314c25(0x145),'description':a27_0x314c25(0x156)};function readKnowledgeFile(_0x1cad6b){const _0x5b2669=a27_0x314c25;if(!_0x1cad6b)throw CliErrors['validation'](_0x5b2669(0x153));if(!existsSync(_0x1cad6b))throw CliErrors[_0x5b2669(0x169)](_0x5b2669(0x152)+_0x1cad6b);if(!statSync(_0x1cad6b)[_0x5b2669(0x157)]())throw CliErrors['validation'](_0x5b2669(0x168)+_0x1cad6b);return readFileSync(_0x1cad6b,_0x5b2669(0x16d));}function summarizePersonalItem(_0x97e310){const _0x57191d=a27_0x314c25;return{'id':_0x97e310['id'],'title':_0x97e310[_0x57191d(0x159)],'version':_0x97e310['version'],'ragStatus':_0x97e310[_0x57191d(0x17d)],'ragErrorMessage':_0x97e310[_0x57191d(0x167)],'updateTime':_0x97e310[_0x57191d(0x170)]};}function detailPersonalItem(_0x9019d9){const _0x40da4d=a27_0x314c25;return{'id':_0x9019d9['id'],'appCode':_0x9019d9[_0x40da4d(0x150)],'scope':_0x9019d9[_0x40da4d(0x162)],'userId':_0x9019d9[_0x40da4d(0x175)],'title':_0x9019d9[_0x40da4d(0x159)],'content':_0x9019d9[_0x40da4d(0x144)]??'','version':_0x9019d9[_0x40da4d(0x15a)],'ragStatus':_0x9019d9[_0x40da4d(0x17d)],'ragErrorMessage':_0x9019d9[_0x40da4d(0x167)],'createTime':_0x9019d9[_0x40da4d(0x16e)],'updateTime':_0x9019d9['updateTime']};}function summarizeSearchHit(_0x10ee2c){const _0x40914b=a27_0x314c25;return{'scope':_0x10ee2c[_0x40914b(0x162)],'docId':_0x10ee2c[_0x40914b(0x174)],'score':_0x10ee2c['score'],'weightedScore':_0x10ee2c['weightedScore'],'content':_0x10ee2c[_0x40914b(0x144)],'metadata':_0x10ee2c[_0x40914b(0x179)]};}function readTopK(_0x922257){const _0x280728=a27_0x314c25,_0x2248a6=_0x922257[_0x280728(0x172)](_0x280728(0x17f));if(_0x2248a6===undefined||_0x2248a6===null||_0x2248a6==='')return undefined;const _0x1d75d1=_0x922257['num'](_0x280728(0x17f));if(!Number['isFinite'](_0x1d75d1)||_0x1d75d1<0x1)throw CliErrors['validation']('--topk\x20must\x20be\x20a\x20positive\x20number.');return _0x1d75d1;}const kbList={'service':'kb','command':a27_0x314c25(0x15e),'description':a27_0x314c25(0x14a),'risk':a27_0x314c25(0x15d),'flags':[VERBOSE_FLAG],async 'execute'(_0x1bfb27){const _0x45b80f=a27_0x314c25,_0x40e58d=await listPersonalKnowledgeBaseItems(_0x1bfb27[_0x45b80f(0x150)]);if(_0x1bfb27['bool'](_0x45b80f(0x180)))return{'ok':!![],'data':{'total':_0x40e58d[_0x45b80f(0x163)],'items':_0x40e58d}};return{'ok':!![],'data':{'total':_0x40e58d[_0x45b80f(0x163)],'items':_0x40e58d[_0x45b80f(0x16b)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x314c25(0x15c),'description':'Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','risk':a27_0x314c25(0x15d),'flags':[{...ID_FLAG,'description':a27_0x314c25(0x17a)}],async 'execute'(_0xa5b2b2){const _0x444600=a27_0x314c25,_0x363233=await getPersonalKnowledgeBaseItem(_0xa5b2b2[_0x444600(0x17c)]('id'),_0xa5b2b2['appCode']);return{'ok':!![],'data':detailPersonalItem(_0x363233)};}},kbCreate={'service':'kb','command':a27_0x314c25(0x176),'description':a27_0x314c25(0x148),'risk':a27_0x314c25(0x14e),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x3880e6){const _0x448a42=a27_0x314c25,_0x4e4c6f=_0x3880e6[_0x448a42(0x151)]('title'),_0x22a447=readKnowledgeFile(_0x3880e6[_0x448a42(0x151)](_0x448a42(0x147))),_0x4a49e5=await createPersonalKnowledgeBaseItem(_0x3880e6['appCode'],{'title':_0x4e4c6f,'content':_0x22a447});return{'ok':!![],'data':summarizePersonalItem(_0x4a49e5),'message':_0x448a42(0x181)+_0x4a49e5['id']+'\x20('+_0x4a49e5['title']+')'};},async 'dryRun'(_0x30b008){const _0x18060d=a27_0x314c25,_0x2e9c50=_0x30b008['str'](_0x18060d(0x159)),_0x3982f0=readKnowledgeFile(_0x30b008['str'](_0x18060d(0x147)));return dryRun(_0x18060d(0x14b),_0x18060d(0x16a))[_0x18060d(0x143)]({'appCode':_0x30b008[_0x18060d(0x150)],'title':_0x2e9c50,'content':_0x3982f0})[_0x18060d(0x14c)](_0x18060d(0x15f)+_0x2e9c50+'\x22')[_0x18060d(0x158)]();}},kbUpdate={'service':'kb','command':a27_0x314c25(0x17b),'description':'Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','risk':a27_0x314c25(0x14e),'flags':[{...ID_FLAG,'description':a27_0x314c25(0x17a)},{...TITLE_FLAG,'required':![],'description':a27_0x314c25(0x161)},FILE_FLAG],async 'execute'(_0x39fe80){const _0x266f5a=a27_0x314c25,_0x320186=_0x39fe80[_0x266f5a(0x17c)]('id'),_0x1fa692=readKnowledgeFile(_0x39fe80[_0x266f5a(0x151)]('file')),_0x26161a=_0x39fe80['str'](_0x266f5a(0x159))||(await getPersonalKnowledgeBaseItem(_0x320186,_0x39fe80[_0x266f5a(0x150)]))['title'],_0x399fd2=await updatePersonalKnowledgeBaseItem(_0x320186,_0x39fe80[_0x266f5a(0x150)],{'title':_0x26161a,'content':_0x1fa692});return{'ok':!![],'data':summarizePersonalItem(_0x399fd2),'message':'Updated\x20KB\x20entry\x20'+_0x399fd2['id']+'\x20('+_0x399fd2[_0x266f5a(0x159)]+')'};},async 'dryRun'(_0x28cb13){const _0x4f3d27=a27_0x314c25,_0x5b0c8c=_0x28cb13['num']('id'),_0x30761c=readKnowledgeFile(_0x28cb13[_0x4f3d27(0x151)](_0x4f3d27(0x147))),_0x2c33a2=_0x28cb13[_0x4f3d27(0x151)](_0x4f3d27(0x159))||(await getPersonalKnowledgeBaseItem(_0x5b0c8c,_0x28cb13[_0x4f3d27(0x150)]))[_0x4f3d27(0x159)];return dryRun('POST',_0x4f3d27(0x165)+_0x5b0c8c+_0x4f3d27(0x16f))[_0x4f3d27(0x143)]({'appCode':_0x28cb13[_0x4f3d27(0x150)],'title':_0x2c33a2,'content':_0x30761c})[_0x4f3d27(0x14c)](_0x4f3d27(0x177)+_0x5b0c8c)[_0x4f3d27(0x158)]();}},kbSearch={'service':'kb','command':'search','description':'Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','risk':a27_0x314c25(0x15d),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x5e1d71){const _0x6f9411=a27_0x314c25;if(!_0x5e1d71[_0x6f9411(0x151)](_0x6f9411(0x17e))[_0x6f9411(0x160)]())throw CliErrors[_0x6f9411(0x169)]('Search\x20query\x20is\x20required.');readTopK(_0x5e1d71);},async 'execute'(_0x44a9bf){const _0x1c8e90=a27_0x314c25,_0x5774ba=_0x44a9bf[_0x1c8e90(0x151)](_0x1c8e90(0x17e))[_0x1c8e90(0x160)](),_0x26c701=readTopK(_0x44a9bf),_0x50206d=await searchKnowledgeBase(_0x44a9bf[_0x1c8e90(0x150)],{'query':_0x5774ba,'topK':_0x26c701});return{'ok':!![],'data':{'total':_0x50206d[_0x1c8e90(0x163)],'hits':_0x50206d[_0x1c8e90(0x16b)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];function a27_0x2a06(){const _0x26b9e9=['docId','userId','create','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','10256519gBAOwI','metadata','Personal\x20knowledge-base\x20entry\x20ID','update','num','ragStatus','query','topk','verbose','Created\x20KB\x20entry\x20','body','content','number','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','file','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','4zyIzVq','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','POST','description','Personal\x20knowledge-base\x20entry\x20title','write','3838njOyVg','appCode','str','File\x20not\x20found:\x20','File\x20path\x20is\x20required.','3712683qMVIIH','56006019HEGphD','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','isFile','build','title','version','string','detail','read','list','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','trim','Override\x20the\x20existing\x20entry\x20title','scope','length','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','/client/knowledge-base/personal/','863lVTtFe','ragErrorMessage','File\x20is\x20not\x20a\x20regular\x20file:\x20','validation','/client/knowledge-base/personal/create','map','5963628PlzxkG','utf8','createTime','/update','updateTime','8747650nQzaYq','flag','5546376rtxbzW'];a27_0x2a06=function(){return _0x26b9e9;};return a27_0x2a06();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a28_0xe5f5(_0x1c9f87,_0x391b94){_0x1c9f87=_0x1c9f87-0x110;const _0x7c3d45=a28_0x7c3d();let _0xe5f5b7=_0x7c3d45[_0x1c9f87];return _0xe5f5b7;}const a28_0xa2a99=a28_0xe5f5;(function(_0x57e963,_0x297719){const _0x41888d=a28_0xe5f5,_0x2e8a2f=_0x57e963();while(!![]){try{const _0x5d3844=parseInt(_0x41888d(0x117))/0x1+parseInt(_0x41888d(0x129))/0x2+parseInt(_0x41888d(0x131))/0x3+-parseInt(_0x41888d(0x127))/0x4*(-parseInt(_0x41888d(0x11a))/0x5)+-parseInt(_0x41888d(0x121))/0x6+-parseInt(_0x41888d(0x113))/0x7+-parseInt(_0x41888d(0x110))/0x8*(-parseInt(_0x41888d(0x11c))/0x9);if(_0x5d3844===_0x297719)break;else _0x2e8a2f['push'](_0x2e8a2f['shift']());}catch(_0x1630d2){_0x2e8a2f['push'](_0x2e8a2f['shift']());}}}(a28_0x7c3d,0xa6b3b));import{logger}from'../../utils/logger.js';function a28_0x7c3d(){const _0x1a7b25=['3385039NDKSCH','error','\x20logs:\x0a','log','133941tJlRGX','read','clear','15CYBIty','keys','36XXGpTR','logs','warn','*\x20Logs\x20cleared','duration','7739112ElZTEO','\x20\x20\x20Details:\x20','details','level','en-US','clearLogs','563840XDsFUw','Clear\x20command\x20history\x20logs','1387110HsgGvn','\x20\x20\x20Time:\x20','show','length','readLogs','\x20\x20\x20Duration:\x20','forEach','command','2630604PmVDnX','*\x20No\x20logs\x20found','657992LpAyRh','success','write'];a28_0x7c3d=function(){return _0x1a7b25;};return a28_0x7c3d();}import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x4b6942){const _0x255a3a=a28_0xe5f5;if(_0x4b6942[_0x255a3a(0x12c)]===0x0){console['log'](_0x255a3a(0x132));return;}console[_0x255a3a(0x116)]('*\x20'+CLI_DISPLAY_NAME+_0x255a3a(0x115)),_0x4b6942[_0x255a3a(0x12f)]((_0x2ae590,_0x4309be)=>{const _0x2b59b3=_0x255a3a,_0x37d02a=new Date(_0x2ae590['timestamp'])['toLocaleString'](_0x2b59b3(0x125)),_0x251e65=_0x2ae590[_0x2b59b3(0x124)]===_0x2b59b3(0x111)?'√':_0x2ae590[_0x2b59b3(0x124)]===_0x2b59b3(0x114)?'×':_0x2ae590[_0x2b59b3(0x124)]===_0x2b59b3(0x11e)?'!':'i';console['log'](_0x4309be+0x1+'.\x20'+_0x251e65+'\x20['+_0x2ae590[_0x2b59b3(0x130)]+']\x20'+_0x2ae590['message']),console[_0x2b59b3(0x116)](_0x2b59b3(0x12a)+_0x37d02a),_0x2ae590[_0x2b59b3(0x120)]&&console[_0x2b59b3(0x116)](_0x2b59b3(0x12e)+_0x2ae590[_0x2b59b3(0x120)]+'ms'),_0x2ae590[_0x2b59b3(0x123)]&&Object[_0x2b59b3(0x11b)](_0x2ae590[_0x2b59b3(0x123)])[_0x2b59b3(0x12c)]>0x0&&console['log'](_0x2b59b3(0x122)+JSON['stringify'](_0x2ae590['details'],null,0x2)),console['log']('');});}export const logsDefinitions=[{'service':a28_0xa2a99(0x11d),'command':a28_0xa2a99(0x12b),'description':'View\x20command\x20history\x20logs','risk':a28_0xa2a99(0x118),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x57cff9){const _0x525a04=a28_0xa2a99;return printLogs(logger[_0x525a04(0x12d)]()),{'ok':!![]};}},{'service':a28_0xa2a99(0x11d),'command':a28_0xa2a99(0x119),'description':a28_0xa2a99(0x128),'risk':a28_0xa2a99(0x112),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x52b26a){const _0x83c97f=a28_0xa2a99;return logger[_0x83c97f(0x126)](),console['log'](_0x83c97f(0x11f)),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a29_0x25915f=a29_0x72d4;(function(_0x44e83c,_0x146216){const _0x4313e1=a29_0x72d4,_0x18cd62=_0x44e83c();while(!![]){try{const _0x1797a2=-parseInt(_0x4313e1(0x7f))/0x1*(parseInt(_0x4313e1(0x90))/0x2)+parseInt(_0x4313e1(0x77))/0x3+-parseInt(_0x4313e1(0x87))/0x4*(-parseInt(_0x4313e1(0xac))/0x5)+-parseInt(_0x4313e1(0x95))/0x6*(parseInt(_0x4313e1(0xa2))/0x7)+-parseInt(_0x4313e1(0xa9))/0x8*(parseInt(_0x4313e1(0xab))/0x9)+parseInt(_0x4313e1(0x98))/0xa*(parseInt(_0x4313e1(0x8b))/0xb)+parseInt(_0x4313e1(0x7d))/0xc;if(_0x1797a2===_0x146216)break;else _0x18cd62['push'](_0x18cd62['shift']());}catch(_0x1c8ee2){_0x18cd62['push'](_0x18cd62['shift']());}}}(a29_0x2119,0x87af4));function a29_0x2119(){const _0x53e88e=['Personal\x20BFF\x20script\x20ID','updateTime','3901920Ibxwgz','name','299dsYyqE','trim','source-session-id','Personal\x20BFF\x20script\x20file\x20is\x20blank.','update','exec','Update\x20a\x20personal\x20BFF\x20by\x20id','/client/runtime-bff/personal/','2156dgxIAu','/client/runtime-bff/personal/create','Preview:\x20update\x20personal\x20BFF\x20','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','396nUgfzo','Updated\x20personal\x20BFF\x20','Show\x20one\x20personal\x20BFF\x20by\x20id','File\x20not\x20found:\x20','config','3794byHrmw','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','POST','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','validation','3504Hkmuvj','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','sourceSessionId','268610gQrbgN','gmtModified','flag','functionName','File\x20path\x20is\x20required.','personal-bff','high-risk-write','str','Optional\x20source\x20RuntimeAgent\x20session\x20id','gmtCreate','5012AAVXwk','list','scriptType','/update','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','read','num','26048tqhhMS','verbose','2313HXgktW','9305rDqooN','keys','description','write','string','Executed\x20personal\x20BFF\x20','params','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','scriptContent','body','Preview:\x20create\x20personal\x20BFF\x20','Personal\x20BFF\x20description','createTime','build','version','Created\x20personal\x20BFF\x20','248004Enuhhm','file','File\x20is\x20not\x20a\x20regular\x20file:\x20','appCode'];a29_0x2119=function(){return _0x53e88e;};return a29_0x2119();}import{existsSync,readFileSync,statSync}from'node:fs';function a29_0x72d4(_0x1e8505,_0xc1edee){_0x1e8505=_0x1e8505-0x6a;const _0x2119fe=a29_0x2119();let _0x72d45=_0x2119fe[_0x1e8505];return _0x72d45;}import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x25915f(0x78),'type':a29_0x25915f(0x6b),'description':'Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'},FUNCTION_NAME_FLAG={'name':a29_0x25915f(0x7e),'type':a29_0x25915f(0x6b),'required':!![],'description':a29_0x25915f(0x93)},DESCRIPTION_FLAG={'name':a29_0x25915f(0xae),'type':a29_0x25915f(0x6b),'description':a29_0x25915f(0x72)},SOURCE_SESSION_FLAG={'name':a29_0x25915f(0x81),'type':a29_0x25915f(0x6b),'description':a29_0x25915f(0xa0)};function normalizeFunctionName(_0x126d22){const _0x55a9a9=a29_0x25915f,_0x3bffea=String(_0x126d22||'')[_0x55a9a9(0x80)]();if(!_0x3bffea||!FUNCTION_NAME_PATTERN['test'](_0x3bffea))throw CliErrors[_0x55a9a9(0x94)](_0x55a9a9(0x8a));return _0x3bffea;}function readScriptFile(_0x273383){const _0xb31966=a29_0x25915f;if(!_0x273383)throw CliErrors[_0xb31966(0x94)](_0xb31966(0x9c));if(!existsSync(_0x273383))throw CliErrors[_0xb31966(0x94)](_0xb31966(0x8e)+_0x273383);if(!statSync(_0x273383)['isFile']())throw CliErrors[_0xb31966(0x94)](_0xb31966(0x79)+_0x273383);const _0x13d3c5=readFileSync(_0x273383,'utf8');if(!_0x13d3c5['trim']())throw CliErrors[_0xb31966(0x94)](_0xb31966(0x82));return _0x13d3c5;}function optionalTrimmed(_0x5f2b11){const _0x3c8adb=a29_0x25915f,_0x1bfc4d=String(_0x5f2b11||'')[_0x3c8adb(0x80)]();return _0x1bfc4d||undefined;}function summarizeBff(_0x4fb231){const _0x31f027=a29_0x25915f;return{'id':_0x4fb231['id'],'appCode':_0x4fb231[_0x31f027(0x7a)],'functionName':_0x4fb231['functionName'],'description':_0x4fb231[_0x31f027(0xae)],'scriptType':_0x4fb231['scriptType'],'version':_0x4fb231['version'],'gmtModified':_0x4fb231['gmtModified'],'updateTime':_0x4fb231[_0x31f027(0x7c)]};}function detailBff(_0x2a69a3){const _0x1fefd0=a29_0x25915f;return{'id':_0x2a69a3['id'],'appCode':_0x2a69a3['appCode'],'functionName':_0x2a69a3['functionName'],'description':_0x2a69a3['description'],'scriptType':_0x2a69a3[_0x1fefd0(0xa4)],'scriptContent':_0x2a69a3[_0x1fefd0(0x6f)]??'','config':_0x2a69a3[_0x1fefd0(0x8f)],'version':_0x2a69a3[_0x1fefd0(0x75)],'createUserId':_0x2a69a3['createUserId'],'gmtCreate':_0x2a69a3[_0x1fefd0(0xa1)],'gmtModified':_0x2a69a3[_0x1fefd0(0x99)],'createTime':_0x2a69a3[_0x1fefd0(0x73)],'updateTime':_0x2a69a3[_0x1fefd0(0x7c)]};}function buildCreateInput(_0x8191a8){const _0x14fa21=a29_0x25915f;return{'functionName':normalizeFunctionName(_0x8191a8[_0x14fa21(0x9f)](_0x14fa21(0x7e))),...optionalTrimmed(_0x8191a8['str'](_0x14fa21(0xae)))?{'description':optionalTrimmed(_0x8191a8[_0x14fa21(0x9f)]('description'))}:{},'scriptContent':readScriptFile(_0x8191a8['str'](_0x14fa21(0x78))),...optionalTrimmed(_0x8191a8['str'](_0x14fa21(0x81)))?{'sourceSessionId':optionalTrimmed(_0x8191a8[_0x14fa21(0x9f)](_0x14fa21(0x81)))}:{}};}function buildUpdateInput(_0x249b76){const _0x43bae9=a29_0x25915f,_0x3d7e1c={};optionalTrimmed(_0x249b76[_0x43bae9(0x9f)](_0x43bae9(0x7e)))&&(_0x3d7e1c['functionName']=normalizeFunctionName(_0x249b76[_0x43bae9(0x9f)]('name')));_0x249b76[_0x43bae9(0x9a)](_0x43bae9(0xae))!==undefined&&(_0x3d7e1c['description']=_0x249b76['str']('description'));optionalTrimmed(_0x249b76['str'](_0x43bae9(0x78)))&&(_0x3d7e1c[_0x43bae9(0x6f)]=readScriptFile(_0x249b76[_0x43bae9(0x9f)](_0x43bae9(0x78))));_0x249b76[_0x43bae9(0x9a)]('source-session-id')!==undefined&&(_0x3d7e1c[_0x43bae9(0x97)]=_0x249b76[_0x43bae9(0x9f)]('source-session-id'));if(Object[_0x43bae9(0xad)](_0x3d7e1c)['length']===0x0)throw CliErrors[_0x43bae9(0x94)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x3d7e1c;}function parseExecParams(_0x4177cb){const _0x31a835=parseJsonParams(_0x4177cb)??{};if(Array['isArray'](_0x31a835))throw CliErrors['validation']('--params\x20must\x20be\x20a\x20JSON\x20object.');return _0x31a835;}const personalBffList={'service':a29_0x25915f(0x9d),'command':a29_0x25915f(0xa3),'description':a29_0x25915f(0x96),'risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x1a10c0){const _0x554212=a29_0x25915f,_0x56ca15=await listPersonalBffs(_0x1a10c0[_0x554212(0x7a)]);return{'ok':!![],'data':{'total':_0x56ca15['length'],'items':_0x1a10c0['bool'](_0x554212(0xaa))?_0x56ca15:_0x56ca15['map'](summarizeBff)}};}},personalBffDetail={'service':a29_0x25915f(0x9d),'command':'detail','description':a29_0x25915f(0x8d),'risk':a29_0x25915f(0xa7),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'}],async 'execute'(_0x60b2b1){const _0x103646=a29_0x25915f,_0x364267=await getPersonalBff(_0x60b2b1[_0x103646(0xa8)]('id'),_0x60b2b1['appCode']);return{'ok':!![],'data':detailBff(_0x364267)};}},personalBffCreate={'service':a29_0x25915f(0x9d),'command':'create','description':a29_0x25915f(0x91),'risk':'write','flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x2c66d3){const _0x246e85=a29_0x25915f,_0x5b442e=buildCreateInput(_0x2c66d3),_0x5a6f42=await createPersonalBff(_0x2c66d3[_0x246e85(0x7a)],_0x5b442e);return{'ok':!![],'data':detailBff(_0x5a6f42),'message':_0x246e85(0x76)+_0x5a6f42['id']+(_0x5a6f42[_0x246e85(0x9b)]?'\x20('+_0x5a6f42[_0x246e85(0x9b)]+')':'')};},async 'dryRun'(_0x28e2c8){const _0x1a550a=a29_0x25915f,_0x5e4e1a=buildCreateInput(_0x28e2c8);return dryRun('POST',_0x1a550a(0x88))[_0x1a550a(0x70)]({'appCode':_0x28e2c8[_0x1a550a(0x7a)],..._0x5e4e1a})[_0x1a550a(0xae)](_0x1a550a(0x71)+_0x5e4e1a['functionName'])[_0x1a550a(0x74)]();}},personalBffUpdate={'service':a29_0x25915f(0x9d),'command':a29_0x25915f(0x83),'description':a29_0x25915f(0x85),'risk':a29_0x25915f(0x6a),'flags':[{...ID_FLAG,'description':a29_0x25915f(0x7b)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x46bc66){const _0x578ce8=a29_0x25915f,_0x202d78=_0x46bc66[_0x578ce8(0xa8)]('id'),_0x1bcaad=buildUpdateInput(_0x46bc66),_0x5bb9cb=await updatePersonalBff(_0x202d78,_0x46bc66[_0x578ce8(0x7a)],_0x1bcaad);return{'ok':!![],'data':detailBff(_0x5bb9cb),'message':_0x578ce8(0x8c)+_0x5bb9cb['id']+(_0x5bb9cb['functionName']?'\x20('+_0x5bb9cb[_0x578ce8(0x9b)]+')':'')};},async 'dryRun'(_0x56d1b3){const _0x283d62=a29_0x25915f,_0x41aa97=_0x56d1b3[_0x283d62(0xa8)]('id'),_0x42e42a=buildUpdateInput(_0x56d1b3);return dryRun(_0x283d62(0x92),_0x283d62(0x86)+_0x41aa97+_0x283d62(0xa5))[_0x283d62(0x70)]({'appCode':_0x56d1b3[_0x283d62(0x7a)],..._0x42e42a})[_0x283d62(0xae)](_0x283d62(0x89)+_0x41aa97)['build']();}},personalBffExec={'service':a29_0x25915f(0x9d),'command':a29_0x25915f(0x84),'description':a29_0x25915f(0xa6),'risk':a29_0x25915f(0x9e),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...PARAMS_FLAG,'description':a29_0x25915f(0x6e)}],async 'validate'(_0x4466c5){const _0x4e4a18=a29_0x25915f;parseExecParams(_0x4466c5[_0x4e4a18(0x9f)]('params'));},async 'execute'(_0x396fd0){const _0x22e0a1=a29_0x25915f,_0x38a6ab=_0x396fd0[_0x22e0a1(0xa8)]('id'),_0x28e71f=parseExecParams(_0x396fd0[_0x22e0a1(0x9f)](_0x22e0a1(0x6d))),_0x875ec9=await executePersonalBff(_0x38a6ab,_0x396fd0[_0x22e0a1(0x7a)],_0x28e71f);return{'ok':!![],'data':{'result':_0x875ec9},'message':_0x22e0a1(0x6c)+_0x38a6ab};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
1
|
+
const a29_0x281be3=a29_0x1266;(function(_0x3a5994,_0x2f21f1){const _0x3bd000=a29_0x1266,_0x2df34b=_0x3a5994();while(!![]){try{const _0x31a24b=-parseInt(_0x3bd000(0xe7))/0x1+parseInt(_0x3bd000(0xe0))/0x2+parseInt(_0x3bd000(0xb1))/0x3*(-parseInt(_0x3bd000(0xdc))/0x4)+parseInt(_0x3bd000(0xdf))/0x5*(parseInt(_0x3bd000(0xd7))/0x6)+parseInt(_0x3bd000(0xae))/0x7*(parseInt(_0x3bd000(0xc4))/0x8)+parseInt(_0x3bd000(0xd0))/0x9+-parseInt(_0x3bd000(0xce))/0xa*(parseInt(_0x3bd000(0xba))/0xb);if(_0x31a24b===_0x2f21f1)break;else _0x2df34b['push'](_0x2df34b['shift']());}catch(_0x4ea0a6){_0x2df34b['push'](_0x2df34b['shift']());}}}(a29_0x5f04,0x4b136));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';function a29_0x1266(_0x4a6b48,_0xa38d47){_0x4a6b48=_0x4a6b48-0xab;const _0x5f0409=a29_0x5f04();let _0x126654=_0x5f0409[_0x4a6b48];return _0x126654;}import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':'file','type':a29_0x281be3(0xe9),'description':a29_0x281be3(0xdb)},FUNCTION_NAME_FLAG={'name':'name','type':a29_0x281be3(0xe9),'required':!![],'description':a29_0x281be3(0xda)},DESCRIPTION_FLAG={'name':a29_0x281be3(0xbe),'type':'string','description':a29_0x281be3(0xbc)},SOURCE_SESSION_FLAG={'name':'source-session-id','type':a29_0x281be3(0xe9),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x78f456){const _0x3fd254=a29_0x281be3,_0xd4d787=String(_0x78f456||'')[_0x3fd254(0xb6)]();if(!_0xd4d787||!FUNCTION_NAME_PATTERN['test'](_0xd4d787))throw CliErrors[_0x3fd254(0xc1)](_0x3fd254(0xed));return _0xd4d787;}function readScriptFile(_0x3796ba){const _0xb0088c=a29_0x281be3;if(!_0x3796ba)throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xcf));if(!existsSync(_0x3796ba))throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xaf)+_0x3796ba);if(!statSync(_0x3796ba)[_0xb0088c(0xd6)]())throw CliErrors['validation'](_0xb0088c(0xc2)+_0x3796ba);const _0x56e628=readFileSync(_0x3796ba,_0xb0088c(0xe8));if(!_0x56e628[_0xb0088c(0xb6)]())throw CliErrors['validation']('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0x56e628;}function optionalTrimmed(_0x45be88){const _0x4ab79e=a29_0x281be3,_0x28900b=String(_0x45be88||'')[_0x4ab79e(0xb6)]();return _0x28900b||undefined;}function summarizeBff(_0x2f7936){const _0x2ab8aa=a29_0x281be3;return{'id':_0x2f7936['id'],'appCode':_0x2f7936[_0x2ab8aa(0xc3)],'functionName':_0x2f7936[_0x2ab8aa(0xc9)],'description':_0x2f7936[_0x2ab8aa(0xbe)],'scriptType':_0x2f7936[_0x2ab8aa(0xeb)],'version':_0x2f7936[_0x2ab8aa(0xd1)],'gmtModified':_0x2f7936['gmtModified'],'updateTime':_0x2f7936['updateTime']};}function detailBff(_0x58bb62){const _0xe0e517=a29_0x281be3;return{'id':_0x58bb62['id'],'appCode':_0x58bb62[_0xe0e517(0xc3)],'functionName':_0x58bb62[_0xe0e517(0xc9)],'description':_0x58bb62[_0xe0e517(0xbe)],'scriptType':_0x58bb62[_0xe0e517(0xeb)],'scriptContent':_0x58bb62[_0xe0e517(0xd9)]??'','config':_0x58bb62['config'],'version':_0x58bb62[_0xe0e517(0xd1)],'createUserId':_0x58bb62['createUserId'],'gmtCreate':_0x58bb62['gmtCreate'],'gmtModified':_0x58bb62['gmtModified'],'createTime':_0x58bb62['createTime'],'updateTime':_0x58bb62[_0xe0e517(0xc0)]};}function buildCreateInput(_0x4f1ee3){const _0x75cd8=a29_0x281be3;return{'functionName':normalizeFunctionName(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe3))),...optionalTrimmed(_0x4f1ee3['str'](_0x75cd8(0xbe)))?{'description':optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xbe)))}:{},'scriptContent':readScriptFile(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xb7))),...optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe5)))?{'sourceSessionId':optionalTrimmed(_0x4f1ee3['str']('source-session-id'))}:{}};}function a29_0x5f04(){const _0x37045e=['appCode','8vsjdld','Updated\x20personal\x20BFF\x20','params','body','read','functionName','detail','map','Preview:\x20create\x20personal\x20BFF\x20','create','10jZCXEE','File\x20path\x20is\x20required.','1520982ifpKNN','version','str','list','keys','Personal\x20BFF\x20script\x20ID','isFile','2406EFJGuz','Update\x20a\x20personal\x20BFF\x20by\x20id','scriptContent','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','144encHag','flag','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','1145FMroHl','1141876rJRyPF','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','name','high-risk-write','source-session-id','num','40853mJKXUb','utf8','string','Created\x20personal\x20BFF\x20','scriptType','bool','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','write','length','/client/runtime-bff/personal/','510377kIZpLn','File\x20not\x20found:\x20','build','5091hUHCtZ','Preview:\x20update\x20personal\x20BFF\x20','Executed\x20personal\x20BFF\x20','POST','/update','trim','file','verbose','--params\x20must\x20be\x20a\x20JSON\x20object.','5447431bpRVEJ','/client/runtime-bff/personal/create','Personal\x20BFF\x20description','personal-bff','description','Show\x20one\x20personal\x20BFF\x20by\x20id','updateTime','validation','File\x20is\x20not\x20a\x20regular\x20file:\x20'];a29_0x5f04=function(){return _0x37045e;};return a29_0x5f04();}function buildUpdateInput(_0x342152){const _0x4e1935=a29_0x281be3,_0x2f2482={};optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3)))&&(_0x2f2482[_0x4e1935(0xc9)]=normalizeFunctionName(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3))));_0x342152[_0x4e1935(0xdd)]('description')!==undefined&&(_0x2f2482[_0x4e1935(0xbe)]=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xbe)));optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7)))&&(_0x2f2482[_0x4e1935(0xd9)]=readScriptFile(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7))));_0x342152[_0x4e1935(0xdd)](_0x4e1935(0xe5))!==undefined&&(_0x2f2482['sourceSessionId']=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe5)));if(Object[_0x4e1935(0xd4)](_0x2f2482)[_0x4e1935(0xac)]===0x0)throw CliErrors[_0x4e1935(0xc1)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x2f2482;}function parseExecParams(_0x3d6984){const _0x3ab9d9=a29_0x281be3,_0x2312c4=parseJsonParams(_0x3d6984)??{};if(Array['isArray'](_0x2312c4))throw CliErrors[_0x3ab9d9(0xc1)](_0x3ab9d9(0xb9));return _0x2312c4;}const personalBffList={'service':a29_0x281be3(0xbd),'command':a29_0x281be3(0xd3),'description':a29_0x281be3(0xde),'risk':a29_0x281be3(0xc8),'flags':[VERBOSE_FLAG],async 'execute'(_0x28e630){const _0xc8cc54=a29_0x281be3,_0x279f53=await listPersonalBffs(_0x28e630[_0xc8cc54(0xc3)]);return{'ok':!![],'data':{'total':_0x279f53[_0xc8cc54(0xac)],'items':_0x28e630[_0xc8cc54(0xec)](_0xc8cc54(0xb8))?_0x279f53:_0x279f53[_0xc8cc54(0xcb)](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':a29_0x281be3(0xca),'description':a29_0x281be3(0xbf),'risk':'read','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)}],async 'execute'(_0x30fb54){const _0x4b06f1=a29_0x281be3,_0x1886b0=await getPersonalBff(_0x30fb54[_0x4b06f1(0xe6)]('id'),_0x30fb54['appCode']);return{'ok':!![],'data':detailBff(_0x1886b0)};}},personalBffCreate={'service':'personal-bff','command':a29_0x281be3(0xcd),'description':a29_0x281be3(0xe1),'risk':a29_0x281be3(0xab),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x42be43){const _0x4e252a=a29_0x281be3,_0x4e4dd4=buildCreateInput(_0x42be43),_0x18f64c=await createPersonalBff(_0x42be43[_0x4e252a(0xc3)],_0x4e4dd4);return{'ok':!![],'data':detailBff(_0x18f64c),'message':_0x4e252a(0xea)+_0x18f64c['id']+(_0x18f64c[_0x4e252a(0xc9)]?'\x20('+_0x18f64c['functionName']+')':'')};},async 'dryRun'(_0x52084c){const _0x5ab7bb=a29_0x281be3,_0x4c7080=buildCreateInput(_0x52084c);return dryRun(_0x5ab7bb(0xb4),_0x5ab7bb(0xbb))[_0x5ab7bb(0xc7)]({'appCode':_0x52084c[_0x5ab7bb(0xc3)],..._0x4c7080})[_0x5ab7bb(0xbe)](_0x5ab7bb(0xcc)+_0x4c7080[_0x5ab7bb(0xc9)])[_0x5ab7bb(0xb0)]();}},personalBffUpdate={'service':'personal-bff','command':'update','description':a29_0x281be3(0xd8),'risk':'write','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x278911){const _0x5e6b83=a29_0x281be3,_0x5c57d4=_0x278911['num']('id'),_0x300853=buildUpdateInput(_0x278911),_0x233dd8=await updatePersonalBff(_0x5c57d4,_0x278911[_0x5e6b83(0xc3)],_0x300853);return{'ok':!![],'data':detailBff(_0x233dd8),'message':_0x5e6b83(0xc5)+_0x233dd8['id']+(_0x233dd8[_0x5e6b83(0xc9)]?'\x20('+_0x233dd8[_0x5e6b83(0xc9)]+')':'')};},async 'dryRun'(_0x236d51){const _0x366491=a29_0x281be3,_0x481833=_0x236d51['num']('id'),_0xda20c9=buildUpdateInput(_0x236d51);return dryRun(_0x366491(0xb4),_0x366491(0xad)+_0x481833+_0x366491(0xb5))[_0x366491(0xc7)]({'appCode':_0x236d51[_0x366491(0xc3)],..._0xda20c9})[_0x366491(0xbe)](_0x366491(0xb2)+_0x481833)['build']();}},personalBffExec={'service':a29_0x281be3(0xbd),'command':'exec','description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':a29_0x281be3(0xe4),'flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...PARAMS_FLAG,'description':a29_0x281be3(0xe2)}],async 'validate'(_0x1414db){const _0xf0707c=a29_0x281be3;parseExecParams(_0x1414db[_0xf0707c(0xd2)](_0xf0707c(0xc6)));},async 'execute'(_0x5ecbe6){const _0x16722c=a29_0x281be3,_0x2c17c7=_0x5ecbe6['num']('id'),_0x3a9cee=parseExecParams(_0x5ecbe6[_0x16722c(0xd2)](_0x16722c(0xc6))),_0x3e1542=await executePersonalBff(_0x2c17c7,_0x5ecbe6[_0x16722c(0xc3)],_0x3a9cee);return{'ok':!![],'data':{'result':_0x3e1542},'message':_0x16722c(0xb3)+_0x2c17c7};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x146646=a30_0x4d4b;(function(_0x433a49,_0x5d2f72){const _0x36068e=a30_0x4d4b,_0x413308=_0x433a49();while(!![]){try{const _0x357ecf=-parseInt(_0x36068e(0xd5))/0x1*(-parseInt(_0x36068e(0xea))/0x2)+-parseInt(_0x36068e(0xeb))/0x3+parseInt(_0x36068e(0xc6))/0x4*(parseInt(_0x36068e(0xc4))/0x5)+parseInt(_0x36068e(0xd9))/0x6+-parseInt(_0x36068e(0xd1))/0x7+-parseInt(_0x36068e(0xd7))/0x8+-parseInt(_0x36068e(0xc0))/0x9;if(_0x357ecf===_0x5d2f72)break;else _0x413308['push'](_0x413308['shift']());}catch(_0x2af242){_0x413308['push'](_0x413308['shift']());}}}(a30_0x33f4,0x1a2e3));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';function a30_0x33f4(){const _0x58b60b=['592920LqUdHE','\x20\x20[write]','Skills','Configuration','Instant\x20API','set','Self\x20Update','Artifacts','login','show','Diagnostics','\x20\x20[high-risk-write]','write','App\x20Management','get','SQL\x20Queries','Service\x20Tree','1712HVWAEV','34431GdYooE','command','Workspace','Datasets','694953EfMLGG','Authentication','defaultCommand','Logs','424705bhUqtk','push','8qIFmGh','BFF\x20Scripts','description','has','service','isSingleCommand','run','list','risk','Personal\x20BFF','map','785680ZBpXQy','from','Schema','API\x20Documentation','101kfrbyg','install','375912VUfKni','read'];a30_0x33f4=function(){return _0x58b60b;};return a30_0x33f4();}import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';function a30_0x4d4b(_0xc8362e,_0x53e171){_0xc8362e=_0xc8362e-0xbf;const _0x33f4a2=a30_0x33f4();let _0x4d4bb6=_0x33f4a2[_0xc8362e];return _0x4d4bb6;}import{personalBffDefinitions}from'../commands/personal-bff/index.js';import{apiDocDefinitions}from'../commands/api-doc/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x27f3be){const _0x1f96fa=a30_0x4d4b;for(const _0x49225a of _0x27f3be){definitions['set'](_0x49225a[_0x1f96fa(0xca)]+':'+_0x49225a[_0x1f96fa(0xec)],_0x49225a);let _0x39a23f=serviceGroups[_0x1f96fa(0xe7)](_0x49225a[_0x1f96fa(0xca)]);!_0x39a23f&&(_0x39a23f=[],serviceGroups[_0x1f96fa(0xde)](_0x49225a[_0x1f96fa(0xca)],_0x39a23f)),_0x39a23f[_0x1f96fa(0xc5)](_0x49225a);}}function registerService(_0x1c5d7e,_0x3952ea,_0x2281a8){const _0x2088d6=a30_0x4d4b;registerDefinitions(_0x3952ea);const _0x4961c8=_0x3ff9ce=>_0x3ff9ce===_0x2088d6(0xd8)?'':_0x3ff9ce===_0x2088d6(0xe5)?_0x2088d6(0xda):_0x2088d6(0xe4),_0x2f880b={'service':_0x3952ea[0x0][_0x2088d6(0xca)],'label':_0x1c5d7e,'commands':_0x3952ea[_0x2088d6(0xd0)](_0x1d8063=>({'command':_0x1d8063['command'],'description':_0x1d8063[_0x2088d6(0xc8)],'tag':_0x4961c8(_0x1d8063[_0x2088d6(0xce)])})),'defaultCommand':_0x2281a8?.[_0x2088d6(0xc2)]??(_0x2281a8?.[_0x2088d6(0xcb)]?_0x3952ea[0x0]['command']:undefined),'isSingleCommand':_0x2281a8?.[_0x2088d6(0xcb)]};serviceRegistry['push'](_0x2f880b),serviceByName[_0x2088d6(0xde)](_0x2f880b[_0x2088d6(0xca)],_0x2f880b);}registerService(a30_0x146646(0xc1),authDefinitions,{'defaultCommand':a30_0x146646(0xe1)}),registerService(a30_0x146646(0xd4),apiDocDefinitions),registerService(a30_0x146646(0xbf),datasetDefinitions),registerService(a30_0x146646(0xdd),dataDefinitions),registerService(a30_0x146646(0xe8),sqlDefinitions),registerService(a30_0x146646(0xc7),bffDefinitions),registerService(a30_0x146646(0xcf),personalBffDefinitions),registerService(a30_0x146646(0xe0),artifactDefinitions),registerService('Knowledge\x20Base',kbDefinitions),registerService(a30_0x146646(0xe6),appDefinitions,{'defaultCommand':a30_0x146646(0xcd)}),registerService(a30_0x146646(0xed),workspaceDefinitions),registerService(a30_0x146646(0xdc),configDefinitions,{'defaultCommand':a30_0x146646(0xcd)}),registerService(a30_0x146646(0xe9),serviceDefinitions,{'defaultCommand':a30_0x146646(0xcd)}),registerService(a30_0x146646(0xdb),skillDefinitions,{'defaultCommand':'install'}),registerService('CLI\x20Built-in\x20Skill',cliSkillDefinitions,{'defaultCommand':a30_0x146646(0xd6)}),registerService(a30_0x146646(0xdf),[updateDefinition],{'defaultCommand':a30_0x146646(0xcc),'isSingleCommand':!![]}),registerService(a30_0x146646(0xe3),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x146646(0xd3),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x146646(0xc3),logsDefinitions,{'defaultCommand':a30_0x146646(0xe2)});export function findDefinition(_0x519a67,_0x603e7f){return definitions['get'](_0x519a67+':'+_0x603e7f);}export function isKnownService(_0x4e2bf9){const _0x31286b=a30_0x146646;return serviceByName[_0x31286b(0xc9)](_0x4e2bf9);}export function getServiceEntry(_0x4f14f9){return serviceByName['get'](_0x4f14f9);}export function getAllDefinitions(){const _0x5b01be=a30_0x146646;return Array[_0x5b01be(0xd2)](definitions['values']());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a31_0x5693(){const _0x5b9ddc=['schema','1928358YWzOpI','3553816PkpEwJ','8584134PQloFy','78548QRjVQF','6880tXcQQg','24buDVST','export','5081020FPtsGU','read','27174190zrHZSC','302PYEHnf','Export\x20machine-readable\x20command\x20schema\x20(JSON)','51ckMmEk'];a31_0x5693=function(){return _0x5b9ddc;};return a31_0x5693();}function a31_0xabb2(_0x2c39b2,_0x9695ea){_0x2c39b2=_0x2c39b2-0x1f2;const _0x56933d=a31_0x5693();let _0xabb2f0=_0x56933d[_0x2c39b2];return _0xabb2f0;}const a31_0xa2567=a31_0xabb2;(function(_0x342bdf,_0x4270f4){const _0x5e39c4=a31_0xabb2,_0x51cb52=_0x342bdf();while(!![]){try{const _0xb45170=parseInt(_0x5e39c4(0x1f8))/0x1*(-parseInt(_0x5e39c4(0x1fe))/0x2)+-parseInt(_0x5e39c4(0x1f2))/0x3*(-parseInt(_0x5e39c4(0x1f7))/0x4)+-parseInt(_0x5e39c4(0x1fb))/0x5+-parseInt(_0x5e39c4(0x1f6))/0x6+parseInt(_0x5e39c4(0x1f5))/0x7+parseInt(_0x5e39c4(0x1f9))/0x8*(parseInt(_0x5e39c4(0x1f4))/0x9)+parseInt(_0x5e39c4(0x1fd))/0xa;if(_0xb45170===_0x4270f4)break;else _0x51cb52['push'](_0x51cb52['shift']());}catch(_0x56f29b){_0x51cb52['push'](_0x51cb52['shift']());}}}(a31_0x5693,0xaecad));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1b2b06){const _0x2fa514=await buildSchemaPayload();return{'ok':!![],'data':_0x2fa514};}export const schemaDefinition={'service':a31_0xa2567(0x1f3),'command':a31_0xa2567(0x1fa),'description':a31_0xa2567(0x1ff),'risk':a31_0xa2567(0x1fc),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x752ff5,_0x59bcc5){const _0x3effef=a32_0x37c6,_0x17e0b2=_0x752ff5();while(!![]){try{const _0x234cc2=-parseInt(_0x3effef(0x141))/0x1*(parseInt(_0x3effef(0x18d))/0x2)+parseInt(_0x3effef(0x190))/0x3+parseInt(_0x3effef(0x151))/0x4*(-parseInt(_0x3effef(0x19b))/0x5)+-parseInt(_0x3effef(0x13c))/0x6*(-parseInt(_0x3effef(0x194))/0x7)+-parseInt(_0x3effef(0x196))/0x8*(-parseInt(_0x3effef(0x13e))/0x9)+-parseInt(_0x3effef(0x168))/0xa+-parseInt(_0x3effef(0x17e))/0xb*(-parseInt(_0x3effef(0x1a6))/0xc);if(_0x234cc2===_0x59bcc5)break;else _0x17e0b2['push'](_0x17e0b2['shift']());}catch(_0x4b495a){_0x17e0b2['push'](_0x17e0b2['shift']());}}}(a32_0x55ac,0xf1b75));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x3318fb,_0x51cb34){const _0x55de17=a32_0x37c6,_0x426033=listLocalServiceTrees();let _0x5c4270;for(const _0x4405be of _0x426033){const _0x3710a1=matchServiceTreeCommand(_0x4405be,_0x3318fb);if(!_0x3710a1)continue;(!_0x5c4270||_0x3710a1[_0x55de17(0x19a)]['fullPath'][_0x55de17(0x16f)]>_0x5c4270[_0x55de17(0x19a)][_0x55de17(0x150)][_0x55de17(0x16f)])&&(_0x5c4270={'tree':_0x4405be,'command':_0x3710a1[_0x55de17(0x19a)],'remainingArgs':_0x3710a1[_0x55de17(0x192)]});}if(!_0x5c4270)return undefined;const _0x4af68b={..._0x51cb34};return applyAppBinding(_0x5c4270['tree'],_0x5c4270[_0x55de17(0x19a)],_0x4af68b),{'definition':buildDynamicCommandDefinition(_0x5c4270[_0x55de17(0x153)],_0x5c4270['command']),'args':_0x5c4270[_0x55de17(0x192)],'flags':_0x4af68b,'tree':_0x5c4270['tree'],'command':_0x5c4270[_0x55de17(0x19a)]};}export function generateDynamicServiceHelp(_0x2389bd){const _0x455e14=a32_0x37c6,_0x426fac=listLocalServiceTrees()[_0x455e14(0x1a2)](_0x3954b7=>_0x3954b7['service'][_0x455e14(0x181)]===_0x2389bd);if(!_0x426fac)return undefined;const _0x1092db=[CLI_BIN_NAME+'\x20'+_0x2389bd+_0x455e14(0x13f),'',_0x426fac['service']['name']||_0x2389bd,_0x426fac[_0x455e14(0x1a3)][_0x455e14(0x177)]?'\x20\x20'+_0x426fac[_0x455e14(0x1a3)]['description']:'','',_0x455e14(0x174),..._0x426fac[_0x455e14(0x14a)][_0x455e14(0x147)](_0x3fac5f=>{const _0x584d79=_0x455e14,_0x28b5be=_0x3fac5f[_0x584d79(0x150)][_0x584d79(0x18b)](0x1)[_0x584d79(0x195)]('\x20'),_0x239585=_0x3fac5f[_0x584d79(0x159)]===_0x584d79(0x184)?'':'\x20['+_0x3fac5f[_0x584d79(0x159)]+']';return'\x20\x20'+_0x28b5be[_0x584d79(0x14f)](0x18)+'\x20'+(_0x3fac5f[_0x584d79(0x177)]||'')+_0x239585;}),'',_0x455e14(0x1a4)+CLI_BIN_NAME+_0x455e14(0x191)+_0x2389bd+'`\x20to\x20inspect\x20the\x20manifest.'][_0x455e14(0x154)](Boolean);return _0x1092db['join']('\x0a');}export function listDynamicServiceEntries(){const _0x5348ab=a32_0x37c6;return listLocalServices()[_0x5348ab(0x147)](_0x32ed82=>{const _0x25d9ea=_0x5348ab,_0x2d5709=_0x32ed82[_0x25d9ea(0x198)];return{'service':_0x2d5709[_0x25d9ea(0x1a3)][_0x25d9ea(0x181)],'label':_0x2d5709[_0x25d9ea(0x1a3)][_0x25d9ea(0x18a)]||_0x2d5709[_0x25d9ea(0x1a3)][_0x25d9ea(0x181)],'commands':_0x2d5709[_0x25d9ea(0x14a)][_0x25d9ea(0x147)](_0x175136=>({'command':dynamicCommandName(_0x175136),'description':_0x175136['description']||_0x25d9ea(0x167)+_0x175136['cliPath'],'tag':riskTag(_0x175136[_0x25d9ea(0x159)])}))};});}export function getDynamicServiceEntry(_0x187154){const _0x5a80cb=a32_0x37c6;return listDynamicServiceEntries()[_0x5a80cb(0x1a2)](_0x5aaa35=>_0x5aaa35['service']===_0x187154);}export function listDynamicServiceDefinitions(_0x107f99){const _0x29b111=a32_0x37c6;return listLocalServiceTrees()[_0x29b111(0x154)](_0x39c198=>!_0x107f99||_0x39c198[_0x29b111(0x1a3)][_0x29b111(0x181)]===_0x107f99)[_0x29b111(0x187)](_0x13f2f8=>_0x13f2f8['commands'][_0x29b111(0x147)](_0x288719=>buildDynamicCommandDefinition(_0x13f2f8,_0x288719)));}export function getDynamicServiceDefinitions(_0x3533ca){const _0x170739=a32_0x37c6,_0x1242ad=listDynamicServiceDefinitions(_0x3533ca);return _0x1242ad[_0x170739(0x16f)]>0x0?_0x1242ad:undefined;}export function findDynamicServiceDefinition(_0x25a29b,_0x125137){const _0x127bbf=a32_0x37c6;return listDynamicServiceDefinitions(_0x25a29b)[_0x127bbf(0x1a2)](_0xcc5304=>_0xcc5304[_0x127bbf(0x19a)]===_0x125137);}export function buildDynamicCommandDefinition(_0x2ff0d0,_0x565139){const _0x4890ea=a32_0x37c6;return{'service':_0x2ff0d0[_0x4890ea(0x1a3)][_0x4890ea(0x181)],'command':dynamicCommandName(_0x565139),'description':_0x565139[_0x4890ea(0x177)]||_0x4890ea(0x167)+_0x565139['cliPath'],'risk':_0x565139['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x565139['args']['map'](_0x1d099d=>({'name':_0x1d099d[_0x4890ea(0x18a)],'description':_0x1d099d[_0x4890ea(0x177)]||_0x1d099d[_0x4890ea(0x18a)],'required':_0x1d099d[_0x4890ea(0x163)]})),'flags':_0x565139[_0x4890ea(0x14b)][_0x4890ea(0x147)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x565139),async 'dryRun'(_0x10a96e){const _0x5e7c11=_0x4890ea,_0x1e3124=await compilePlan(_0x565139,_0x10a96e);return{'method':'SERVICE_TREE','url':_0x565139[_0x5e7c11(0x169)],'body':{'target':targetPreview(_0x1e3124),'params':_0x1e3124[_0x5e7c11(0x140)]},'description':_0x5e7c11(0x199)+_0x565139[_0x5e7c11(0x169)]};},async 'execute'(_0xca644d){const _0x40332c=_0x4890ea,_0x33965f=await compilePlan(_0x565139,_0xca644d),_0x37d380=Date[_0x40332c(0x19d)](),_0x45fc7a=await executePlan(_0x33965f,_0x565139,_0xca644d),_0x3a6f6d=Date['now']()-_0x37d380;return{'ok':!![],'data':{'service':_0x2ff0d0[_0x40332c(0x1a3)],'command':_0x565139[_0x40332c(0x169)],'target':targetPreview(_0x33965f),'result':_0x45fc7a,'elapsed':_0x3a6f6d},'message':_0x40332c(0x18c)+_0x565139[_0x40332c(0x169)]+_0x40332c(0x173)+_0x3a6f6d+'ms'};}};}function dynamicCommandName(_0x3ba191){const _0x554f4b=a32_0x37c6;return _0x3ba191['fullPath'][_0x554f4b(0x18b)](0x1)[_0x554f4b(0x195)]('\x20');}function a32_0x55ac(){const _0x58b4d9=['nickName','flatMap','\x20\x20\x20\x20','fromEntries','name','slice','Service\x20command\x20','2HQshMQ','\x20\x20[','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','1604442VFiqMW','\x20service\x20detail\x20--service\x20','remainingArgs','push','87738jPHHoM','join','42080vdLkEs','operator','normalizedManifest','Preview\x20dynamic\x20service\x20command:\x20','command','496055cyxWWw','enum','now','type','username','args','startsWith','find','service','Use\x20`','\x20requires\x20target.sqlCode.','156pOLWas','444esHOAY','appBindings','603XKGsZA','\x20<command>\x20[flags]','params','595519HXmtvq','app','\x20\x20\x20\x20scriptName:\x20','userId','appcode','validation','map','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','rawFlags','commands','flags','bff','\x20\x20\x20\x20datatable:\x20','\x20\x20\x20\x20command:\x20','padEnd','fullPath','68BKoAJe','trim','tree','filter','sqlCode','mapTo','target','ctx.','risk','userName','kind','\x20requires\x20target.scriptName.','scriptName','Cannot\x20resolve\x20datatable\x20\x22','\x20\x20MAP\x20TO','bffId','datatable','some','required','default','number','string','Run\x20service\x20command\x20','12654510bzRfiQ','cliPath','appRef','context.','entries','nickname','tenantCode','length','envName','source','tableName','\x20completed\x20in\x20','Commands:','env','\x20->\x20','description','bffCode','dbtableConfig','\x20\x20SERVICE\x20TREE\x20TARGET','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','loginName','data','2303972NzYlcH','appCode','datasetCode','code','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20sqlCode:\x20','read','json'];a32_0x55ac=function(){return _0x58b4d9;};return a32_0x55ac();}function riskTag(_0x58c792){const _0x496724=a32_0x37c6;return _0x58c792===_0x496724(0x184)?'':_0x496724(0x18e)+_0x58c792+']';}function flagToCommandFlag(_0x21c2b4){const _0x6c80df=a32_0x37c6;return{'name':_0x21c2b4['cliName'],'type':_0x21c2b4[_0x6c80df(0x19e)]===_0x6c80df(0x185)?_0x6c80df(0x166):_0x21c2b4['type'],'description':_0x21c2b4[_0x6c80df(0x177)]||_0x21c2b4[_0x6c80df(0x18a)],'required':_0x21c2b4['required'],'default':isPrimitiveFlagDefault(_0x21c2b4['default'])?_0x21c2b4[_0x6c80df(0x164)]:undefined,'enum':_0x21c2b4[_0x6c80df(0x19c)]};}async function compilePlan(_0x56e628,_0x305170){const _0x1fe119=a32_0x37c6;return compileServiceTreeCommand(_0x56e628,{'flags':_0x305170[_0x1fe119(0x149)],'args':_0x305170[_0x1fe119(0x1a0)],'context':await buildServiceContext(_0x56e628,_0x305170)});}async function buildServiceContext(_0x3bfd0c,_0x2d3ef0){const _0x33da9f=a32_0x37c6,_0x109b67={'appCode':_0x2d3ef0[_0x33da9f(0x17f)],'env':_0x2d3ef0[_0x33da9f(0x170)],'envName':_0x2d3ef0[_0x33da9f(0x170)]};if(!usesRuntimeContext(_0x3bfd0c))return _0x109b67;const _0x57164d=await getLoginUserInfo(),_0x2e1542=pickFirst(_0x57164d[_0x33da9f(0x144)],_0x57164d['id']);return{..._0x109b67,'user':_0x57164d,'userId':_0x2e1542,'id':_0x57164d['id'],'username':pickFirst(_0x57164d[_0x33da9f(0x19f)],_0x57164d[_0x33da9f(0x15a)],_0x57164d[_0x33da9f(0x17c)]),'userName':_0x57164d[_0x33da9f(0x15a)],'nickname':pickFirst(_0x57164d[_0x33da9f(0x16d)],_0x57164d[_0x33da9f(0x186)]),'nickName':_0x57164d[_0x33da9f(0x186)],'tenantCode':_0x57164d[_0x33da9f(0x16e)],'employeeId':_0x57164d['employeeId']};}function usesRuntimeContext(_0x4378a1){const _0x14b9db=a32_0x37c6;return _0x4378a1[_0x14b9db(0x156)][_0x14b9db(0x162)](_0x5d8ce2=>typeof _0x5d8ce2[_0x14b9db(0x171)]===_0x14b9db(0x166)&&(_0x5d8ce2['source'][_0x14b9db(0x1a1)](_0x14b9db(0x16b))||_0x5d8ce2[_0x14b9db(0x171)][_0x14b9db(0x1a1)](_0x14b9db(0x158))));}function a32_0x37c6(_0x1fb5b4,_0x6fdd7e){_0x1fb5b4=_0x1fb5b4-0x13c;const _0x55ac17=a32_0x55ac();let _0x37c68c=_0x55ac17[_0x1fb5b4];return _0x37c68c;}function pickFirst(..._0x43c929){const _0x3e00d6=a32_0x37c6;return _0x43c929[_0x3e00d6(0x1a2)](_0x327553=>_0x327553!==undefined&&_0x327553!==null);}async function executePlan(_0x12f9ea,_0x5e26b4,_0x1d65c3){const _0x2bca1c=a32_0x37c6;if(_0x12f9ea[_0x2bca1c(0x15b)]===_0x2bca1c(0x17d)){const _0x37100d=await resolveDatasetCode(_0x12f9ea,_0x5e26b4,_0x1d65c3);return executeData(_0x37100d,_0x12f9ea[_0x2bca1c(0x19a)],_0x12f9ea['params']);}if(_0x12f9ea['kind']==='sql'){if(!_0x12f9ea[_0x2bca1c(0x155)])throw CliErrors[_0x2bca1c(0x146)]('Service\x20command\x20'+_0x5e26b4[_0x2bca1c(0x169)]+_0x2bca1c(0x1a5));return executeSdkSql(_0x12f9ea[_0x2bca1c(0x155)],normalizeScalarParams(_0x12f9ea[_0x2bca1c(0x140)]));}if(_0x12f9ea[_0x2bca1c(0x15b)]===_0x2bca1c(0x14c)){const _0x24180e=_0x12f9ea['scriptName']||_0x12f9ea[_0x2bca1c(0x178)]||(_0x12f9ea[_0x2bca1c(0x160)]==null?'':String(_0x12f9ea[_0x2bca1c(0x160)]));if(!_0x24180e)throw CliErrors[_0x2bca1c(0x146)](_0x2bca1c(0x18c)+_0x5e26b4['cliPath']+_0x2bca1c(0x15c));return executeSdkBff(_0x24180e,_0x12f9ea[_0x2bca1c(0x140)]);}throw CliErrors[_0x2bca1c(0x146)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x12f9ea['kind']);}async function resolveDatasetCode(_0x584159,_0x4fc797,_0x3ffc6b){const _0x4b6286=a32_0x37c6;if(_0x584159['datasetCode'])return _0x584159['datasetCode'];if(!_0x584159['datatable'])throw CliErrors[_0x4b6286(0x146)](_0x4b6286(0x18c)+_0x4fc797['cliPath']+_0x4b6286(0x182));const _0x2dcff1=await listDatasets(_0x3ffc6b[_0x4b6286(0x17f)]),_0x1aa8f3=_0x2dcff1['find'](_0x438619=>_0x438619[_0x4b6286(0x179)]?.[_0x4b6286(0x172)]===_0x584159[_0x4b6286(0x161)]);if(!_0x1aa8f3?.[_0x4b6286(0x181)])throw CliErrors[_0x4b6286(0x146)](_0x4b6286(0x15e)+_0x584159[_0x4b6286(0x161)]+_0x4b6286(0x18f)+_0x3ffc6b[_0x4b6286(0x17f)]+'.',_0x4b6286(0x17b));return _0x1aa8f3[_0x4b6286(0x181)];}function applyAppBinding(_0x266f41,_0x21a386,_0x59f9ae){const _0x381173=a32_0x37c6,_0x54bad2=_0x21a386[_0x381173(0x157)][_0x381173(0x16a)];if(!_0x54bad2)return;const _0x38f6d7=_0x266f41[_0x381173(0x13d)][_0x54bad2];if(!_0x38f6d7)throw CliErrors[_0x381173(0x146)]('Unknown\x20appRef\x20\x22'+_0x54bad2+'\x22\x20in\x20service\x20command\x20'+_0x21a386[_0x381173(0x169)]+'.',_0x381173(0x148));const _0x55af3e=_0x38f6d7['appcode']||_0x38f6d7['appCode'];_0x55af3e&&!hasText(_0x59f9ae[_0x381173(0x145)])&&(_0x59f9ae[_0x381173(0x145)]=_0x55af3e),_0x38f6d7[_0x381173(0x142)]&&!hasText(_0x59f9ae[_0x381173(0x142)])&&!hasText(_0x59f9ae[_0x381173(0x145)])&&(_0x59f9ae[_0x381173(0x142)]=_0x38f6d7[_0x381173(0x142)]),_0x38f6d7['env']&&!hasText(_0x59f9ae[_0x381173(0x175)])&&(_0x59f9ae[_0x381173(0x175)]=_0x38f6d7[_0x381173(0x175)]);}function renderDynamicCommandHelp(_0x5e1f26){const _0x67b677=a32_0x37c6,_0x2183bb=[_0x67b677(0x17a),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x15b)],_0x67b677(0x14e)+_0x5e1f26[_0x67b677(0x157)]['command']];if(_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x180)])_0x2183bb[_0x67b677(0x193)]('\x20\x20\x20\x20datasetCode:\x20'+_0x5e1f26[_0x67b677(0x157)]['datasetCode']);if(_0x5e1f26['target'][_0x67b677(0x161)])_0x2183bb[_0x67b677(0x193)](_0x67b677(0x14d)+_0x5e1f26['target'][_0x67b677(0x161)]);if(_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x155)])_0x2183bb[_0x67b677(0x193)](_0x67b677(0x183)+_0x5e1f26['target']['sqlCode']);if(_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x15d)])_0x2183bb[_0x67b677(0x193)](_0x67b677(0x143)+_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x15d)]);if(_0x5e1f26[_0x67b677(0x156)][_0x67b677(0x16f)]>0x0){_0x2183bb['push']('',_0x67b677(0x15f));for(const _0x59067a of _0x5e1f26[_0x67b677(0x156)]){_0x2183bb['push'](_0x67b677(0x188)+(_0x59067a['source']||'const')+_0x67b677(0x176)+_0x59067a[_0x67b677(0x157)]+(_0x59067a[_0x67b677(0x197)]?'.'+_0x59067a['operator']:''));}}return _0x2183bb[_0x67b677(0x195)]('\x0a');}function targetPreview(_0xccca36){const _0x1016ed=a32_0x37c6;return{'kind':_0xccca36[_0x1016ed(0x15b)],'command':_0xccca36[_0x1016ed(0x19a)],'appRef':_0xccca36['appRef'],'datasetCode':_0xccca36[_0x1016ed(0x180)],'datatable':_0xccca36[_0x1016ed(0x161)],'sqlCode':_0xccca36[_0x1016ed(0x155)],'bffCode':_0xccca36[_0x1016ed(0x178)],'bffId':_0xccca36[_0x1016ed(0x160)],'scriptName':_0xccca36[_0x1016ed(0x15d)]};}function normalizeScalarParams(_0x198d94){const _0x1313b2=a32_0x37c6;return Object[_0x1313b2(0x189)](Object[_0x1313b2(0x16c)](_0x198d94)[_0x1313b2(0x154)](([,_0x1c3aaa])=>typeof _0x1c3aaa===_0x1313b2(0x166)||typeof _0x1c3aaa==='number'));}function hasText(_0x29daa4){const _0x2c9273=a32_0x37c6;return typeof _0x29daa4===_0x2c9273(0x166)&&_0x29daa4[_0x2c9273(0x152)]()[_0x2c9273(0x16f)]>0x0;}function isPrimitiveFlagDefault(_0x29f126){const _0x5b985f=a32_0x37c6;return _0x29f126===undefined||typeof _0x29f126==='string'||typeof _0x29f126===_0x5b985f(0x165)||typeof _0x29f126==='boolean';}
|
|
1
|
+
(function(_0x2bef39,_0x381fa2){const _0x47f187=a32_0xd5be,_0x45510b=_0x2bef39();while(!![]){try{const _0x111a86=-parseInt(_0x47f187(0xb4))/0x1+-parseInt(_0x47f187(0xa6))/0x2+-parseInt(_0x47f187(0xde))/0x3+-parseInt(_0x47f187(0xd1))/0x4*(parseInt(_0x47f187(0xf9))/0x5)+-parseInt(_0x47f187(0xbe))/0x6*(parseInt(_0x47f187(0xca))/0x7)+-parseInt(_0x47f187(0xa7))/0x8*(parseInt(_0x47f187(0xe6))/0x9)+parseInt(_0x47f187(0xc6))/0xa;if(_0x111a86===_0x381fa2)break;else _0x45510b['push'](_0x45510b['shift']());}catch(_0x7525f4){_0x45510b['push'](_0x45510b['shift']());}}}(a32_0x3330,0xee369));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x18f4cd,_0x4e567d){const _0x1eac6c=a32_0xd5be,_0x163785=listLocalServiceTrees();let _0x53e8e6;for(const _0x39cb61 of _0x163785){const _0x2319a9=matchServiceTreeCommand(_0x39cb61,_0x18f4cd);if(!_0x2319a9)continue;(!_0x53e8e6||_0x2319a9[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)]>_0x53e8e6[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)])&&(_0x53e8e6={'tree':_0x39cb61,'command':_0x2319a9[_0x1eac6c(0xd2)],'remainingArgs':_0x2319a9[_0x1eac6c(0xf6)]});}if(!_0x53e8e6)return undefined;const _0x5d3840={..._0x4e567d};return applyAppBinding(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6[_0x1eac6c(0xd2)],_0x5d3840),{'definition':buildDynamicCommandDefinition(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6['command']),'args':_0x53e8e6[_0x1eac6c(0xf6)],'flags':_0x5d3840,'tree':_0x53e8e6[_0x1eac6c(0xbb)],'command':_0x53e8e6[_0x1eac6c(0xd2)]};}export function generateDynamicServiceHelp(_0x54985c){const _0x1f0bc3=a32_0xd5be,_0x44c139=listLocalServiceTrees()[_0x1f0bc3(0xea)](_0x16ed30=>_0x16ed30[_0x1f0bc3(0xfb)][_0x1f0bc3(0xa4)]===_0x54985c);if(!_0x44c139)return undefined;const _0x483eea=[CLI_BIN_NAME+'\x20'+_0x54985c+_0x1f0bc3(0xcc),'',_0x44c139[_0x1f0bc3(0xfb)]['name']||_0x54985c,_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]?'\x20\x20'+_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]:'','','Commands:',..._0x44c139[_0x1f0bc3(0xc0)]['map'](_0x1c3cbc=>{const _0x1c25a3=_0x1f0bc3,_0x5d49bf=_0x1c3cbc[_0x1c25a3(0xe4)][_0x1c25a3(0xf1)](0x1)['join']('\x20'),_0x5cb16c=_0x1c3cbc[_0x1c25a3(0xf0)]===_0x1c25a3(0xd4)?'':'\x20['+_0x1c3cbc[_0x1c25a3(0xf0)]+']';return'\x20\x20'+_0x5d49bf['padEnd'](0x18)+'\x20'+(_0x1c3cbc[_0x1c25a3(0xdd)]||'')+_0x5cb16c;}),'','Use\x20`'+CLI_BIN_NAME+_0x1f0bc3(0xd9)+_0x54985c+_0x1f0bc3(0xb5)]['filter'](Boolean);return _0x483eea[_0x1f0bc3(0xd6)]('\x0a');}export function listDynamicServiceEntries(){const _0x581c8a=a32_0xd5be;return listLocalServices()[_0x581c8a(0xbf)](_0xca4f35=>{const _0xe72d12=_0x581c8a,_0x19ba73=_0xca4f35[_0xe72d12(0xe9)];return{'service':_0x19ba73[_0xe72d12(0xfb)]['code'],'label':_0x19ba73[_0xe72d12(0xfb)][_0xe72d12(0xcb)]||_0x19ba73['service'][_0xe72d12(0xa4)],'commands':_0x19ba73[_0xe72d12(0xc0)]['map'](_0x1e64c4=>({'command':dynamicCommandName(_0x1e64c4),'description':_0x1e64c4[_0xe72d12(0xdd)]||'Run\x20service\x20command\x20'+_0x1e64c4[_0xe72d12(0xaa)],'tag':riskTag(_0x1e64c4['risk'])}))};});}export function getDynamicServiceEntry(_0x295390){const _0x27f6a8=a32_0xd5be;return listDynamicServiceEntries()[_0x27f6a8(0xea)](_0x1251d0=>_0x1251d0[_0x27f6a8(0xfb)]===_0x295390);}export function listDynamicServiceDefinitions(_0x25cdc9){const _0xd3eb84=a32_0xd5be;return listLocalServiceTrees()[_0xd3eb84(0xdb)](_0x11dfcb=>!_0x25cdc9||_0x11dfcb[_0xd3eb84(0xfb)][_0xd3eb84(0xa4)]===_0x25cdc9)[_0xd3eb84(0xc2)](_0x2609be=>_0x2609be['commands']['map'](_0x27440f=>buildDynamicCommandDefinition(_0x2609be,_0x27440f)));}export function getDynamicServiceDefinitions(_0x2c37e4){const _0x2b77db=listDynamicServiceDefinitions(_0x2c37e4);return _0x2b77db['length']>0x0?_0x2b77db:undefined;}export function findDynamicServiceDefinition(_0x4eb94d,_0x4c9b4d){return listDynamicServiceDefinitions(_0x4eb94d)['find'](_0x113c4a=>_0x113c4a['command']===_0x4c9b4d);}export function buildDynamicCommandDefinition(_0x9dae31,_0xaeb376){const _0x128bc9=a32_0xd5be;return{'service':_0x9dae31['service'][_0x128bc9(0xa4)],'command':dynamicCommandName(_0xaeb376),'description':_0xaeb376[_0x128bc9(0xdd)]||_0x128bc9(0xcf)+_0xaeb376[_0x128bc9(0xaa)],'risk':_0xaeb376[_0x128bc9(0xf0)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0xaeb376[_0x128bc9(0xa2)][_0x128bc9(0xbf)](_0x16e2ae=>({'name':_0x16e2ae[_0x128bc9(0xcb)],'description':_0x16e2ae[_0x128bc9(0xdd)]||_0x16e2ae[_0x128bc9(0xcb)],'required':_0x16e2ae[_0x128bc9(0xd3)]})),'flags':_0xaeb376['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xaeb376),async 'dryRun'(_0x56c772){const _0x52a1e3=_0x128bc9,_0x4ce21f=await compilePlan(_0xaeb376,_0x56c772);return{'method':_0x52a1e3(0xa1),'url':_0xaeb376[_0x52a1e3(0xaa)],'body':{'target':targetPreview(_0x4ce21f),'params':_0x4ce21f['params']},'description':_0x52a1e3(0xee)+_0xaeb376['cliPath']};},async 'execute'(_0x3505ea){const _0x52c81e=_0x128bc9,_0xffa6e9=await compilePlan(_0xaeb376,_0x3505ea),_0x3c58e1=Date[_0x52c81e(0xd8)](),_0x510db4=await executePlan(_0xffa6e9,_0xaeb376,_0x3505ea),_0x3a0e43=Date[_0x52c81e(0xd8)]()-_0x3c58e1;return{'ok':!![],'data':{'service':_0x9dae31[_0x52c81e(0xfb)],'command':_0xaeb376['cliPath'],'target':targetPreview(_0xffa6e9),'result':_0x510db4,'elapsed':_0x3a0e43},'message':'Service\x20command\x20'+_0xaeb376[_0x52c81e(0xaa)]+'\x20completed\x20in\x20'+_0x3a0e43+'ms'};}};}function dynamicCommandName(_0x5305ce){const _0x6d1205=a32_0xd5be;return _0x5305ce[_0x6d1205(0xe4)][_0x6d1205(0xf1)](0x1)['join']('\x20');}function riskTag(_0x17cf0b){const _0x559adf=a32_0xd5be;return _0x17cf0b===_0x559adf(0xd4)?'':_0x559adf(0xb0)+_0x17cf0b+']';}function a32_0xd5be(_0x1a5f84,_0x97dc09){_0x1a5f84=_0x1a5f84-0x9d;const _0x333052=a32_0x3330();let _0xd5be73=_0x333052[_0x1a5f84];return _0xd5be73;}function flagToCommandFlag(_0x44990f){const _0x50fa1e=a32_0xd5be;return{'name':_0x44990f['cliName'],'type':_0x44990f['type']==='json'?'string':_0x44990f[_0x50fa1e(0xf3)],'description':_0x44990f[_0x50fa1e(0xdd)]||_0x44990f[_0x50fa1e(0xcb)],'required':_0x44990f[_0x50fa1e(0xd3)],'default':isPrimitiveFlagDefault(_0x44990f['default'])?_0x44990f['default']:undefined,'enum':_0x44990f['enum']};}async function compilePlan(_0x47029e,_0x1177ed){const _0x9be11c=a32_0xd5be;return compileServiceTreeCommand(_0x47029e,{'flags':_0x1177ed[_0x9be11c(0xc9)],'args':_0x1177ed[_0x9be11c(0xa2)],'context':await buildServiceContext(_0x47029e,_0x1177ed)});}async function buildServiceContext(_0x1d5ca2,_0x5b2136){const _0x21bf1d=a32_0xd5be,_0x486925={'appCode':_0x5b2136[_0x21bf1d(0xda)],'env':_0x5b2136[_0x21bf1d(0x9f)],'envName':_0x5b2136[_0x21bf1d(0x9f)]};if(!usesRuntimeContext(_0x1d5ca2))return _0x486925;const _0x3b3946=await getLoginUserInfo(),_0x3022a8=pickFirst(_0x3b3946[_0x21bf1d(0xf5)],_0x3b3946['id']);return{..._0x486925,'user':_0x3b3946,'userId':_0x3022a8,'id':_0x3b3946['id'],'username':pickFirst(_0x3b3946['username'],_0x3b3946[_0x21bf1d(0xfa)],_0x3b3946[_0x21bf1d(0xb3)]),'userName':_0x3b3946['userName'],'nickname':pickFirst(_0x3b3946['nickname'],_0x3b3946[_0x21bf1d(0xef)]),'nickName':_0x3b3946[_0x21bf1d(0xef)],'tenantCode':_0x3b3946[_0x21bf1d(0xc4)],'employeeId':_0x3b3946[_0x21bf1d(0xd5)]};}function usesRuntimeContext(_0x5c4277){const _0x522777=a32_0xd5be;return _0x5c4277[_0x522777(0xf4)][_0x522777(0xfd)](_0x29ccc6=>typeof _0x29ccc6[_0x522777(0xb2)]==='string'&&(_0x29ccc6[_0x522777(0xb2)]['startsWith']('context.')||_0x29ccc6[_0x522777(0xb2)][_0x522777(0xf7)]('ctx.')));}function pickFirst(..._0x851f76){const _0x4fb18e=a32_0xd5be;return _0x851f76[_0x4fb18e(0xea)](_0x14f332=>_0x14f332!==undefined&&_0x14f332!==null);}async function executePlan(_0x1f6d57,_0x47f9bd,_0x438e5f){const _0x52f6a0=a32_0xd5be;if(_0x1f6d57['kind']===_0x52f6a0(0xce)){const _0x540425=await resolveDatasetCode(_0x1f6d57,_0x47f9bd,_0x438e5f);return executeData(_0x540425,_0x1f6d57[_0x52f6a0(0xd2)],_0x1f6d57[_0x52f6a0(0xc3)]);}if(_0x1f6d57[_0x52f6a0(0xb7)]===_0x52f6a0(0xeb)){if(!_0x1f6d57[_0x52f6a0(0xd0)])throw CliErrors[_0x52f6a0(0xb1)](_0x52f6a0(0xdc)+_0x47f9bd[_0x52f6a0(0xaa)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x1f6d57[_0x52f6a0(0xd0)],normalizeScalarParams(_0x1f6d57[_0x52f6a0(0xc3)]));}if(_0x1f6d57[_0x52f6a0(0xb7)]==='bff'){const _0x7650ed=_0x1f6d57[_0x52f6a0(0xc7)]||_0x1f6d57[_0x52f6a0(0xc8)]||(_0x1f6d57[_0x52f6a0(0xa3)]==null?'':String(_0x1f6d57[_0x52f6a0(0xa3)]));if(!_0x7650ed)throw CliErrors['validation']('Service\x20command\x20'+_0x47f9bd[_0x52f6a0(0xaa)]+_0x52f6a0(0xcd));return executeSdkBff(_0x7650ed,_0x1f6d57[_0x52f6a0(0xc3)]);}throw CliErrors['validation'](_0x52f6a0(0xd7)+_0x1f6d57[_0x52f6a0(0xb7)]);}async function resolveDatasetCode(_0x297f79,_0x2b3afa,_0x465da7){const _0x1f8c06=a32_0xd5be;if(_0x297f79[_0x1f8c06(0xad)])return _0x297f79[_0x1f8c06(0xad)];if(!_0x297f79['datatable'])throw CliErrors['validation']('Service\x20command\x20'+_0x2b3afa['cliPath']+_0x1f8c06(0xdf));const _0x8f28e2=await listDatasets(_0x465da7['appCode']),_0x21f40c=_0x8f28e2['find'](_0xbdb63=>_0xbdb63['dbtableConfig']?.[_0x1f8c06(0xbc)]===_0x297f79[_0x1f8c06(0xae)]);if(!_0x21f40c?.[_0x1f8c06(0xa4)])throw CliErrors[_0x1f8c06(0xb1)](_0x1f8c06(0xa0)+_0x297f79[_0x1f8c06(0xae)]+_0x1f8c06(0xb8)+_0x465da7[_0x1f8c06(0xda)]+'.',_0x1f8c06(0x9d));return _0x21f40c[_0x1f8c06(0xa4)];}function applyAppBinding(_0x408470,_0x276481,_0x1c88c9){const _0x272396=a32_0xd5be,_0x345766=_0x276481[_0x272396(0xc5)][_0x272396(0xb9)];if(!_0x345766)return;const _0x268f3b=_0x408470[_0x272396(0xe8)][_0x345766];if(!_0x268f3b)throw CliErrors['validation']('Unknown\x20appRef\x20\x22'+_0x345766+_0x272396(0xac)+_0x276481[_0x272396(0xaa)]+'.',_0x272396(0xa8));const _0xa11fd7=_0x268f3b[_0x272396(0xe7)]||_0x268f3b[_0x272396(0xda)];_0xa11fd7&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xe7)]=_0xa11fd7),_0x268f3b[_0x272396(0xba)]&&!hasText(_0x1c88c9['app'])&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xba)]=_0x268f3b[_0x272396(0xba)]),_0x268f3b[_0x272396(0xf2)]&&!hasText(_0x1c88c9[_0x272396(0xf2)])&&(_0x1c88c9[_0x272396(0xf2)]=_0x268f3b[_0x272396(0xf2)]);}function renderDynamicCommandHelp(_0x644518){const _0xcda14d=a32_0xd5be,_0xd2ceb=['\x20\x20SERVICE\x20TREE\x20TARGET',_0xcda14d(0xaf)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xb7)],_0xcda14d(0xe0)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd2)]];if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xad)])_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20datasetCode:\x20'+_0x644518['target'][_0xcda14d(0xad)]);if(_0x644518['target'][_0xcda14d(0xae)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xe3)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xae)]);if(_0x644518[_0xcda14d(0xc5)]['sqlCode'])_0xd2ceb['push'](_0xcda14d(0x9e)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd0)]);if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xc7)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xa5)+_0x644518['target'][_0xcda14d(0xc7)]);if(_0x644518['mapTo']['length']>0x0){_0xd2ceb[_0xcda14d(0xb6)]('',_0xcda14d(0xec));for(const _0x4626b0 of _0x644518[_0xcda14d(0xf4)]){_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20'+(_0x4626b0[_0xcda14d(0xb2)]||_0xcda14d(0xab))+_0xcda14d(0xf8)+_0x4626b0[_0xcda14d(0xc5)]+(_0x4626b0[_0xcda14d(0xbd)]?'.'+_0x4626b0['operator']:''));}}return _0xd2ceb['join']('\x0a');}function a32_0x3330(){const _0x37d523=['boolean','Preview\x20dynamic\x20service\x20command:\x20','nickName','risk','slice','env','type','mapTo','userId','remainingArgs','startsWith','\x20->\x20','400485tnzVsb','userName','service','fromEntries','some','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20sqlCode:\x20','envName','Cannot\x20resolve\x20datatable\x20\x22','SERVICE_TREE','args','bffId','code','\x20\x20\x20\x20scriptName:\x20','2761986YeMIkc','321560mLOxmQ','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','length','cliPath','const','\x22\x20in\x20service\x20command\x20','datasetCode','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20[','validation','source','loginName','1015838vCkwSX','`\x20to\x20inspect\x20the\x20manifest.','push','kind','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','appRef','app','tree','tableName','operator','2364cNFZNX','map','commands','number','flatMap','params','tenantCode','target','80434600ROQAmQ','scriptName','bffCode','rawFlags','3101mwQvIH','name','\x20<command>\x20[flags]','\x20requires\x20target.scriptName.','data','Run\x20service\x20command\x20','sqlCode','48WJEDpd','command','required','read','employeeId','join','Unsupported\x20service\x20target\x20kind:\x20','now','\x20service\x20detail\x20--service\x20','appCode','filter','Service\x20command\x20','description','5661621JnpSLG','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20command:\x20','string','trim','\x20\x20\x20\x20datatable:\x20','fullPath','entries','369YoLeox','appcode','appBindings','normalizedManifest','find','sql','\x20\x20MAP\x20TO'];a32_0x3330=function(){return _0x37d523;};return a32_0x3330();}function targetPreview(_0x49e165){const _0x1e5c2e=a32_0xd5be;return{'kind':_0x49e165['kind'],'command':_0x49e165[_0x1e5c2e(0xd2)],'appRef':_0x49e165[_0x1e5c2e(0xb9)],'datasetCode':_0x49e165[_0x1e5c2e(0xad)],'datatable':_0x49e165[_0x1e5c2e(0xae)],'sqlCode':_0x49e165[_0x1e5c2e(0xd0)],'bffCode':_0x49e165[_0x1e5c2e(0xc8)],'bffId':_0x49e165['bffId'],'scriptName':_0x49e165[_0x1e5c2e(0xc7)]};}function normalizeScalarParams(_0x4445e1){const _0x5813f7=a32_0xd5be;return Object[_0x5813f7(0xfc)](Object[_0x5813f7(0xe5)](_0x4445e1)['filter'](([,_0x316069])=>typeof _0x316069===_0x5813f7(0xe1)||typeof _0x316069===_0x5813f7(0xc1)));}function hasText(_0x439c3f){const _0x487dde=a32_0xd5be;return typeof _0x439c3f===_0x487dde(0xe1)&&_0x439c3f[_0x487dde(0xe2)]()[_0x487dde(0xa9)]>0x0;}function isPrimitiveFlagDefault(_0x587277){const _0x2dbcad=a32_0xd5be;return _0x587277===undefined||typeof _0x587277===_0x2dbcad(0xe1)||typeof _0x587277===_0x2dbcad(0xc1)||typeof _0x587277===_0x2dbcad(0xed);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a33_0x4f51(_0x5c8296,_0x2d18e6){_0x5c8296=_0x5c8296-0x1a5;const _0x4fa7f7=a33_0x4fa7();let _0x4f5109=_0x4fa7f7[_0x5c8296];return _0x4f5109;}const a33_0xa4e133=a33_0x4f51;(function(_0x254cb0,_0x4f9189){const _0x211fd9=a33_0x4f51,_0x10b64e=_0x254cb0();while(!![]){try{const _0x3014ee=-parseInt(_0x211fd9(0x1a8))/0x1+parseInt(_0x211fd9(0x1af))/0x2*(parseInt(_0x211fd9(0x1bb))/0x3)+-parseInt(_0x211fd9(0x1df))/0x4+-parseInt(_0x211fd9(0x1e8))/0x5*(parseInt(_0x211fd9(0x1b4))/0x6)+-parseInt(_0x211fd9(0x1b6))/0x7*(parseInt(_0x211fd9(0x1a6))/0x8)+-parseInt(_0x211fd9(0x1bc))/0x9+parseInt(_0x211fd9(0x1c2))/0xa*(parseInt(_0x211fd9(0x1de))/0xb);if(_0x3014ee===_0x4f9189)break;else _0x10b64e['push'](_0x10b64e['shift']());}catch(_0x419d6e){_0x10b64e['push'](_0x10b64e['shift']());}}}(a33_0x4fa7,0x624e5));function a33_0x4fa7(){const _0x5172a0=['reduce','entries','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','normalizedManifest','type','Imported','192060oUbCIs','1603112KIGCCV','imported','validate','list','serviceCode','cliPath','Exported\x20service\x20','file','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','565nGcOgH','warnings','risk','read','updated','\x20service(s),\x20updated\x20','length','errors','72JBanaH','serviceCount','265463TdeQeH','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','detail','commands','registryPath','manifests','remove','44980KKWyeM','\x20service\x20','source','Local\x20service\x20not\x20found:\x20','Updated','30678jbnIfq','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','553868HVNYfb','WRITE','registry','Removed\x20service\x20','cliName','48tOqLJi','2123397VWZntB','filePath','kind','str','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','required','1280fhmadT','replaced','version','string','import','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','Service\x20manifest\x20validation\x20passed.','target','service','write','report','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','hash','flags','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryIndex','Local\x20service\x20code,\x20for\x20example\x20crm','name','map','registryServiceCode','entry'];a33_0x4fa7=function(){return _0x5172a0;};return a33_0x4fa7();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0xa4e133(0x1e6),'type':'string','required':!![],'description':a33_0xa4e133(0x1c8)},SERVICE_FLAG={'name':'service','type':a33_0xa4e133(0x1c5),'required':!![],'description':a33_0xa4e133(0x1d3),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x4b5e39){const _0x24fb6a=a33_0xa4e133;return{'serviceCode':_0x4b5e39['serviceCode'],'name':_0x4b5e39[_0x24fb6a(0x1db)][_0x24fb6a(0x1cb)][_0x24fb6a(0x1d4)],'version':_0x4b5e39['version'],'importedAt':_0x4b5e39['importedAt'],'source':_0x4b5e39[_0x24fb6a(0x1b1)],'commandCount':_0x4b5e39[_0x24fb6a(0x1db)]['commands']['length'],'commands':_0x4b5e39[_0x24fb6a(0x1db)]['commands'][_0x24fb6a(0x1d5)](_0x400857=>({'path':_0x400857[_0x24fb6a(0x1e4)],'description':_0x400857['description'],'risk':_0x400857['risk'],'target':_0x400857['target'],'flags':_0x400857[_0x24fb6a(0x1d0)][_0x24fb6a(0x1d5)](_0x5bfdd8=>({'name':_0x5bfdd8[_0x24fb6a(0x1d4)],'cliName':_0x5bfdd8[_0x24fb6a(0x1ba)],'type':_0x5bfdd8[_0x24fb6a(0x1dc)],'required':_0x5bfdd8[_0x24fb6a(0x1c1)]===!![]}))}))};}function summarizeLoadedManifest(_0x533251){const _0x6492cd=a33_0xa4e133;return{'service':_0x533251['normalizedManifest']?.['service'],'version':_0x533251[_0x6492cd(0x1db)]?.[_0x6492cd(0x1c4)],'commandCount':_0x533251[_0x6492cd(0x1db)]?.[_0x6492cd(0x1ab)][_0x6492cd(0x1ee)]??0x0,'commands':_0x533251[_0x6492cd(0x1db)]?.[_0x6492cd(0x1ab)][_0x6492cd(0x1d5)](_0x513e72=>({'path':_0x513e72[_0x6492cd(0x1e4)],'risk':_0x513e72[_0x6492cd(0x1ea)],'target':_0x513e72[_0x6492cd(0x1ca)]}))??[],'registryIndex':_0x533251[_0x6492cd(0x1d2)],'registryServiceCode':_0x533251[_0x6492cd(0x1d6)],'errors':_0x533251[_0x6492cd(0x1cd)][_0x6492cd(0x1a5)],'warnings':_0x533251[_0x6492cd(0x1cd)][_0x6492cd(0x1e9)]};}export const serviceDefinitions=[{'service':'service','command':a33_0xa4e133(0x1e1),'description':a33_0xa4e133(0x1c0),'risk':a33_0xa4e133(0x1eb),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3eae09){const _0x266633=a33_0xa4e133,_0x1c1a88=loadServiceManifestFromFile(_0x3eae09[_0x266633(0x1bf)]('file'));if(!_0x1c1a88[_0x266633(0x1cd)]['ok'])return{'ok':![],'data':{'file':_0x1c1a88[_0x266633(0x1bd)],'hash':_0x1c1a88[_0x266633(0x1cf)],'kind':_0x1c1a88[_0x266633(0x1be)],'serviceCount':_0x1c1a88[_0x266633(0x1ad)][_0x266633(0x1ee)],'services':_0x1c1a88[_0x266633(0x1ad)][_0x266633(0x1d5)](summarizeLoadedManifest),'errors':_0x1c1a88[_0x266633(0x1cd)]['errors'],'warnings':_0x1c1a88['report'][_0x266633(0x1e9)]},'message':formatValidationFailure(_0x1c1a88['report'])};if(_0x1c1a88[_0x266633(0x1be)]===_0x266633(0x1b8)||_0x1c1a88['manifests'][_0x266633(0x1ee)]!==0x1)return{'ok':!![],'data':{'file':_0x1c1a88[_0x266633(0x1bd)],'hash':_0x1c1a88[_0x266633(0x1cf)],'kind':_0x1c1a88['kind'],'serviceCount':_0x1c1a88[_0x266633(0x1ad)]['length'],'commandCount':_0x1c1a88[_0x266633(0x1ad)][_0x266633(0x1d8)]((_0xfb19d1,_0x4d0b34)=>_0xfb19d1+(_0x4d0b34[_0x266633(0x1db)]?.['commands'][_0x266633(0x1ee)]??0x0),0x0),'services':_0x1c1a88['manifests'][_0x266633(0x1d5)](summarizeLoadedManifest),'warnings':_0x1c1a88[_0x266633(0x1cd)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x1c1a88[_0x266633(0x1bd)],'hash':_0x1c1a88['hash'],'kind':_0x1c1a88[_0x266633(0x1be)],'service':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1cb)],'version':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1c4)],'commandCount':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1ab)][_0x266633(0x1ee)]??0x0,'commands':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1ab)][_0x266633(0x1d5)](_0x4bfdbb=>({'path':_0x4bfdbb[_0x266633(0x1e4)],'risk':_0x4bfdbb[_0x266633(0x1ea)],'target':_0x4bfdbb[_0x266633(0x1ca)]})),'warnings':_0x1c1a88[_0x266633(0x1cd)][_0x266633(0x1e9)]},'message':_0x266633(0x1c9)};}},{'service':a33_0xa4e133(0x1cb),'command':a33_0xa4e133(0x1c6),'description':a33_0xa4e133(0x1d1),'risk':a33_0xa4e133(0x1cc),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2d4c32){const _0x4f7c6f=a33_0xa4e133,_0x584af8=loadServiceManifestFromFile(_0x2d4c32['str'](_0x4f7c6f(0x1e6)));return{'method':_0x4f7c6f(0x1b7),'url':getServiceRegistryPath(),'body':{'file':_0x584af8[_0x4f7c6f(0x1bd)],'hash':_0x584af8['hash'],'kind':_0x584af8[_0x4f7c6f(0x1be)],'ok':_0x584af8[_0x4f7c6f(0x1cd)]['ok'],'service':_0x584af8[_0x4f7c6f(0x1db)]?.[_0x4f7c6f(0x1cb)],'version':_0x584af8[_0x4f7c6f(0x1db)]?.[_0x4f7c6f(0x1c4)],'serviceCount':_0x584af8['manifests'][_0x4f7c6f(0x1ee)],'services':_0x584af8[_0x4f7c6f(0x1ad)][_0x4f7c6f(0x1d5)](_0x2587ab=>({'service':_0x2587ab[_0x4f7c6f(0x1db)]?.['service'],'version':_0x2587ab[_0x4f7c6f(0x1db)]?.[_0x4f7c6f(0x1c4)],'commandCount':_0x2587ab['normalizedManifest']?.['commands']['length']??0x0,'errors':_0x2587ab[_0x4f7c6f(0x1cd)]['errors']})),'errors':_0x584af8[_0x4f7c6f(0x1cd)]['errors'],'commandCount':_0x584af8[_0x4f7c6f(0x1db)]?.['commands'][_0x4f7c6f(0x1ee)]??0x0},'description':_0x4f7c6f(0x1da)};},async 'execute'(_0x6f6611){const _0x345c7d=a33_0xa4e133,_0x1168eb=importServiceManifest(_0x6f6611['str'](_0x345c7d(0x1e6)));if(_0x1168eb[_0x345c7d(0x1d9)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x1168eb['registryPath'],'imported':_0x1168eb['imported'],'updated':_0x1168eb[_0x345c7d(0x1ec)],'serviceCount':_0x1168eb[_0x345c7d(0x1a7)],'services':_0x1168eb[_0x345c7d(0x1d9)][_0x345c7d(0x1d5)](summarizeService)},'message':'Imported\x20'+_0x1168eb['imported']+_0x345c7d(0x1ed)+_0x1168eb[_0x345c7d(0x1ec)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1168eb[_0x345c7d(0x1ac)],'replaced':_0x1168eb[_0x345c7d(0x1c3)],'imported':_0x1168eb[_0x345c7d(0x1e0)],'updated':_0x1168eb[_0x345c7d(0x1ec)],'serviceCount':_0x1168eb[_0x345c7d(0x1a7)],'service':summarizeService(_0x1168eb[_0x345c7d(0x1d7)])},'message':(_0x1168eb[_0x345c7d(0x1c3)]?_0x345c7d(0x1b3):_0x345c7d(0x1dd))+_0x345c7d(0x1b0)+_0x1168eb[_0x345c7d(0x1d7)][_0x345c7d(0x1e3)]+'.'};}},{'service':a33_0xa4e133(0x1cb),'command':'export','description':a33_0xa4e133(0x1a9),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x166fe8){const _0x1cd84b=a33_0xa4e133,_0x16fa59=getLocalServiceEntry(_0x166fe8['str'](_0x1cd84b(0x1cb)));return{'method':'WRITE','url':_0x166fe8[_0x1cd84b(0x1bf)](_0x1cd84b(0x1e6)),'body':{'service':_0x166fe8[_0x1cd84b(0x1bf)](_0x1cd84b(0x1cb)),'found':Boolean(_0x16fa59),'version':_0x16fa59?.[_0x1cd84b(0x1c4)],'source':_0x16fa59?.[_0x1cd84b(0x1b1)]},'description':_0x1cd84b(0x1c7)};},async 'execute'(_0x1edccd){const _0x48c84f=a33_0xa4e133,_0x1f9e82=exportServiceManifest(_0x1edccd[_0x48c84f(0x1bf)](_0x48c84f(0x1cb)),_0x1edccd[_0x48c84f(0x1bf)](_0x48c84f(0x1e6)));return{'ok':!![],'data':{'registryPath':_0x1f9e82[_0x48c84f(0x1ac)],'file':_0x1f9e82[_0x48c84f(0x1bd)],'service':summarizeService(_0x1f9e82[_0x48c84f(0x1d7)])},'message':_0x48c84f(0x1e5)+_0x1f9e82[_0x48c84f(0x1d7)][_0x48c84f(0x1e3)]+'.'};}},{'service':a33_0xa4e133(0x1cb),'command':a33_0xa4e133(0x1e2),'description':a33_0xa4e133(0x1b5),'risk':a33_0xa4e133(0x1eb),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xe86660=a33_0xa4e133,_0x54e666=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x54e666['length'],'services':_0x54e666[_0xe86660(0x1d5)](summarizeService)}};}},{'service':'service','command':a33_0xa4e133(0x1ae),'description':a33_0xa4e133(0x1ce),'risk':a33_0xa4e133(0x1cc),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xe4fd7c){const _0x4358f0=a33_0xa4e133,_0xad2405=getLocalServiceEntry(_0xe4fd7c[_0x4358f0(0x1bf)](_0x4358f0(0x1cb)));return{'method':_0x4358f0(0x1b7),'url':getServiceRegistryPath(),'body':{'service':_0xe4fd7c[_0x4358f0(0x1bf)](_0x4358f0(0x1cb)),'found':Boolean(_0xad2405),'version':_0xad2405?.[_0x4358f0(0x1c4)],'source':_0xad2405?.['source']},'description':_0x4358f0(0x1e7)};},async 'execute'(_0x576eae){const _0x429755=a33_0xa4e133,_0x441be0=removeServiceManifest(_0x576eae['str'](_0x429755(0x1cb)));return{'ok':!![],'data':{'registryPath':_0x441be0[_0x429755(0x1ac)],'serviceCount':_0x441be0['serviceCount'],'service':summarizeService(_0x441be0[_0x429755(0x1d7)])},'message':_0x429755(0x1b9)+_0x441be0[_0x429755(0x1d7)][_0x429755(0x1e3)]+'.'};}},{'service':a33_0xa4e133(0x1cb),'command':a33_0xa4e133(0x1aa),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a33_0xa4e133(0x1eb),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x259c85){const _0xe4d11e=a33_0xa4e133,_0xebc07c=getLocalServiceEntry(_0x259c85[_0xe4d11e(0x1bf)](_0xe4d11e(0x1cb)));if(!_0xebc07c)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x259c85[_0xe4d11e(0x1bf)](_0xe4d11e(0x1cb))},'message':_0xe4d11e(0x1b2)+_0x259c85[_0xe4d11e(0x1bf)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0xebc07c),'manifest':_0xebc07c['manifest'],'normalizedManifest':_0xebc07c[_0xe4d11e(0x1db)]}};}}];
|
|
1
|
+
const a33_0x2b822a=a33_0x515b;(function(_0x56b58d,_0x5b1e9e){const _0x3eb27d=a33_0x515b,_0x460df6=_0x56b58d();while(!![]){try{const _0x2185f1=parseInt(_0x3eb27d(0x9c))/0x1+parseInt(_0x3eb27d(0x86))/0x2*(-parseInt(_0x3eb27d(0x88))/0x3)+-parseInt(_0x3eb27d(0xa5))/0x4*(parseInt(_0x3eb27d(0x79))/0x5)+parseInt(_0x3eb27d(0x9a))/0x6*(parseInt(_0x3eb27d(0x6d))/0x7)+parseInt(_0x3eb27d(0x8e))/0x8+parseInt(_0x3eb27d(0x6f))/0x9*(parseInt(_0x3eb27d(0x91))/0xa)+-parseInt(_0x3eb27d(0x97))/0xb;if(_0x2185f1===_0x5b1e9e)break;else _0x460df6['push'](_0x460df6['shift']());}catch(_0x496802){_0x460df6['push'](_0x460df6['shift']());}}}(a33_0x3480,0xe3940));function a33_0x515b(_0x3fb831,_0x16e0fb){_0x3fb831=_0x3fb831-0x6a;const _0x348077=a33_0x3480();let _0x515bd3=_0x348077[_0x3fb831];return _0x515bd3;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x2b822a(0x6a),'type':a33_0x2b822a(0x82),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a33_0x2b822a(0x81),'type':a33_0x2b822a(0x82),'required':!![],'description':a33_0x2b822a(0x93),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5221ff){const _0x46523e=a33_0x2b822a;return{'serviceCode':_0x5221ff[_0x46523e(0xa8)],'name':_0x5221ff['normalizedManifest'][_0x46523e(0x81)][_0x46523e(0x7c)],'version':_0x5221ff[_0x46523e(0x71)],'importedAt':_0x5221ff[_0x46523e(0x8c)],'source':_0x5221ff[_0x46523e(0x6e)],'commandCount':_0x5221ff['normalizedManifest'][_0x46523e(0x89)]['length'],'commands':_0x5221ff[_0x46523e(0x72)][_0x46523e(0x89)][_0x46523e(0x8f)](_0x29a9ef=>({'path':_0x29a9ef[_0x46523e(0x95)],'description':_0x29a9ef[_0x46523e(0x74)],'risk':_0x29a9ef[_0x46523e(0x76)],'target':_0x29a9ef[_0x46523e(0x8d)],'flags':_0x29a9ef['flags'][_0x46523e(0x8f)](_0x253230=>({'name':_0x253230[_0x46523e(0x7c)],'cliName':_0x253230[_0x46523e(0x94)],'type':_0x253230[_0x46523e(0xab)],'required':_0x253230[_0x46523e(0x78)]===!![]}))}))};}function summarizeLoadedManifest(_0x1cdd8b){const _0xb01bdf=a33_0x2b822a;return{'service':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x81)],'version':_0x1cdd8b[_0xb01bdf(0x72)]?.['version'],'commandCount':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0xa9)]??0x0,'commands':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0x8f)](_0x33b581=>({'path':_0x33b581['cliPath'],'risk':_0x33b581[_0xb01bdf(0x76)],'target':_0x33b581[_0xb01bdf(0x8d)]}))??[],'registryIndex':_0x1cdd8b[_0xb01bdf(0xa6)],'registryServiceCode':_0x1cdd8b['registryServiceCode'],'errors':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x9f)],'warnings':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x83)]};}export const serviceDefinitions=[{'service':'service','command':a33_0x2b822a(0xa3),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x16d696){const _0x58f7b3=a33_0x2b822a,_0x407356=loadServiceManifestFromFile(_0x16d696[_0x58f7b3(0xaa)](_0x58f7b3(0x6a)));if(!_0x407356[_0x58f7b3(0x8b)]['ok'])return{'ok':![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356['hash'],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'errors':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x9f)],'warnings':_0x407356['report']['warnings']},'message':formatValidationFailure(_0x407356['report'])};if(_0x407356[_0x58f7b3(0x7e)]==='registry'||_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)]!==0x1)return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'commandCount':_0x407356[_0x58f7b3(0x77)]['reduce']((_0x353e4d,_0x491d00)=>_0x353e4d+(_0x491d00[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)]['length']??0x0),0x0),'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'warnings':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x83)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'service':_0x407356[_0x58f7b3(0x72)]?.['service'],'version':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x71)],'commandCount':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0xa9)]??0x0,'commands':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0x8f)](_0x22cc3d=>({'path':_0x22cc3d['cliPath'],'risk':_0x22cc3d[_0x58f7b3(0x76)],'target':_0x22cc3d[_0x58f7b3(0x8d)]})),'warnings':_0x407356[_0x58f7b3(0x8b)]['warnings']},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x7d),'description':a33_0x2b822a(0x99),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x3b867f){const _0xfa620e=a33_0x2b822a,_0x542f95=loadServiceManifestFromFile(_0x3b867f['str'](_0xfa620e(0x6a)));return{'method':_0xfa620e(0x7f),'url':getServiceRegistryPath(),'body':{'file':_0x542f95[_0xfa620e(0x70)],'hash':_0x542f95[_0xfa620e(0x92)],'kind':_0x542f95['kind'],'ok':_0x542f95['report']['ok'],'service':_0x542f95['normalizedManifest']?.['service'],'version':_0x542f95[_0xfa620e(0x72)]?.['version'],'serviceCount':_0x542f95[_0xfa620e(0x77)][_0xfa620e(0xa9)],'services':_0x542f95['manifests'][_0xfa620e(0x8f)](_0x44faf0=>({'service':_0x44faf0['normalizedManifest']?.['service'],'version':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x71)],'commandCount':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x89)][_0xfa620e(0xa9)]??0x0,'errors':_0x44faf0['report'][_0xfa620e(0x9f)]})),'errors':_0x542f95[_0xfa620e(0x8b)][_0xfa620e(0x9f)],'commandCount':_0x542f95['normalizedManifest']?.['commands'][_0xfa620e(0xa9)]??0x0},'description':_0xfa620e(0x85)};},async 'execute'(_0x3c23bf){const _0xd92659=a33_0x2b822a,_0x1215ad=importServiceManifest(_0x3c23bf[_0xd92659(0xaa)](_0xd92659(0x6a)));if(_0x1215ad[_0xd92659(0x90)][_0xd92659(0xa9)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'imported':_0x1215ad[_0xd92659(0x7a)],'updated':_0x1215ad[_0xd92659(0xa4)],'serviceCount':_0x1215ad['serviceCount'],'services':_0x1215ad[_0xd92659(0x90)][_0xd92659(0x8f)](summarizeService)},'message':_0xd92659(0x75)+_0x1215ad[_0xd92659(0x7a)]+_0xd92659(0x9b)+_0x1215ad[_0xd92659(0xa4)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'replaced':_0x1215ad['replaced'],'imported':_0x1215ad['imported'],'updated':_0x1215ad['updated'],'serviceCount':_0x1215ad[_0xd92659(0x7b)],'service':summarizeService(_0x1215ad[_0xd92659(0xa1)])},'message':(_0x1215ad[_0xd92659(0x8a)]?'Updated':_0xd92659(0xa7))+'\x20service\x20'+_0x1215ad[_0xd92659(0xa1)]['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6c),'description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3c4a20){const _0x232b37=a33_0x2b822a,_0x37eaed=getLocalServiceEntry(_0x3c4a20[_0x232b37(0xaa)](_0x232b37(0x81)));return{'method':_0x232b37(0x7f),'url':_0x3c4a20[_0x232b37(0xaa)]('file'),'body':{'service':_0x3c4a20['str'](_0x232b37(0x81)),'found':Boolean(_0x37eaed),'version':_0x37eaed?.['version'],'source':_0x37eaed?.[_0x232b37(0x6e)]},'description':_0x232b37(0xa0)};},async 'execute'(_0xafd78e){const _0x611741=a33_0x2b822a,_0x2be1ce=exportServiceManifest(_0xafd78e[_0x611741(0xaa)]('service'),_0xafd78e[_0x611741(0xaa)]('file'));return{'ok':!![],'data':{'registryPath':_0x2be1ce['registryPath'],'file':_0x2be1ce[_0x611741(0x70)],'service':summarizeService(_0x2be1ce[_0x611741(0xa1)])},'message':_0x611741(0x9e)+_0x2be1ce['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':'list','description':a33_0x2b822a(0x80),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x578668=a33_0x2b822a,_0x2d845f=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2d845f['length'],'services':_0x2d845f[_0x578668(0x8f)](summarizeService)}};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x73),'description':a33_0x2b822a(0x84),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x332fba){const _0x26ad49=a33_0x2b822a,_0x22f8bb=getLocalServiceEntry(_0x332fba['str'](_0x26ad49(0x81)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x332fba[_0x26ad49(0xaa)](_0x26ad49(0x81)),'found':Boolean(_0x22f8bb),'version':_0x22f8bb?.[_0x26ad49(0x71)],'source':_0x22f8bb?.[_0x26ad49(0x6e)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xed128){const _0x1e672a=a33_0x2b822a,_0x51e400=removeServiceManifest(_0xed128[_0x1e672a(0xaa)](_0x1e672a(0x81)));return{'ok':!![],'data':{'registryPath':_0x51e400[_0x1e672a(0xac)],'serviceCount':_0x51e400[_0x1e672a(0x7b)],'service':summarizeService(_0x51e400['entry'])},'message':_0x1e672a(0x9d)+_0x51e400['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6b),'description':a33_0x2b822a(0x96),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x12d1b4){const _0x5f32ef=a33_0x2b822a,_0x4a1097=getLocalServiceEntry(_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81)));if(!_0x4a1097)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))},'message':'Local\x20service\x20not\x20found:\x20'+_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4a1097),'manifest':_0x4a1097[_0x5f32ef(0x98)],'normalizedManifest':_0x4a1097['normalizedManifest']}};}}];function a33_0x3480(){const _0x2d30f9=['errors','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','entry','read','validate','updated','13084HMRiux','registryIndex','Imported','serviceCode','length','str','type','registryPath','file','detail','export','350iQBdsx','source','18wigfKF','filePath','version','normalizedManifest','remove','description','Imported\x20','risk','manifests','required','1805mmFBkv','imported','serviceCount','name','import','kind','WRITE','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','service','string','warnings','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','88vXsfio','write','69321DxkkZZ','commands','replaced','report','importedAt','target','4168576GcmrTW','map','entries','6547770OAUjQO','hash','Local\x20service\x20code,\x20for\x20example\x20crm','cliName','cliPath','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','20141858mrpdUy','manifest','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','213366mySjIf','\x20service(s),\x20updated\x20','1352101mtJjhl','Removed\x20service\x20','Exported\x20service\x20'];a33_0x3480=function(){return _0x2d30f9;};return a33_0x3480();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a34_0x4b82aa=a34_0x46c8;(function(_0x2ea0d3,_0x341138){const _0x50784a=a34_0x46c8,_0x5094c8=_0x2ea0d3();while(!![]){try{const _0x98f456=parseInt(_0x50784a(0x10c))/0x1*(-parseInt(_0x50784a(0x139))/0x2)+-parseInt(_0x50784a(0x13c))/0x3*(-parseInt(_0x50784a(0xec))/0x4)+-parseInt(_0x50784a(0x12a))/0x5+-parseInt(_0x50784a(0xe9))/0x6*(parseInt(_0x50784a(0x135))/0x7)+parseInt(_0x50784a(0xfe))/0x8+-parseInt(_0x50784a(0x105))/0x9*(parseInt(_0x50784a(0xfd))/0xa)+parseInt(_0x50784a(0x11b))/0xb*(parseInt(_0x50784a(0x108))/0xc);if(_0x98f456===_0x341138)break;else _0x5094c8['push'](_0x5094c8['shift']());}catch(_0x5d376a){_0x5094c8['push'](_0x5094c8['shift']());}}}(a34_0x2c27,0x7c217));import{createHash}from'node:crypto';function a34_0x46c8(_0x38a572,_0x46d521){_0x38a572=_0x38a572-0xe9;const _0x2c2735=a34_0x2c27();let _0x46c8c3=_0x2c2735[_0x38a572];return _0x46c8c3;}import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x4b82aa(0x127);export function getServiceRegistryPath(_0x5bc6ac={}){const _0x441662=a34_0x4b82aa;return resolve(_0x5bc6ac[_0x441662(0xee)]??homedir(),PRODUCT_CONFIG[_0x441662(0x125)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4c0841={}){const _0x3ea95d=a34_0x4b82aa,_0x37cca9=getServiceRegistryPath(_0x4c0841);if(!existsSync(_0x37cca9))return emptyServiceRegistry();try{const _0x1665f1=readFileSync(_0x37cca9,_0x3ea95d(0xfc));if(!_0x1665f1[_0x3ea95d(0xef)]())return emptyServiceRegistry();const _0x5a860d=JSON[_0x3ea95d(0x115)](_0x1665f1);if(_0x5a860d[_0x3ea95d(0x13e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x3ea95d(0x12f)](_0x3ea95d(0xfb)+String(_0x5a860d['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x37cca9+'.');if(!Array[_0x3ea95d(0x122)](_0x5a860d['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5a860d[_0x3ea95d(0x13b)],'services':_0x5a860d[_0x3ea95d(0x134)]};}catch(_0x499308){if(_0x499308 instanceof Error&&_0x499308[_0x3ea95d(0x103)]==='CliError')throw _0x499308;throw CliErrors[_0x3ea95d(0x12f)](_0x3ea95d(0x11e)+_0x37cca9,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x240fe1,_0x34de8e={}){const _0x34bf93=a34_0x4b82aa,_0xd4f3c2=getServiceRegistryPath(_0x34de8e),_0x1a11df=dirname(_0xd4f3c2);!existsSync(_0x1a11df)&&mkdirSync(_0x1a11df,{'recursive':!![]});const _0x4bb049=_0xd4f3c2+_0x34bf93(0x12e);try{writeFileSync(_0x4bb049,JSON[_0x34bf93(0x13a)](_0x240fe1,null,0x2)+'\x0a',{'encoding':_0x34bf93(0xfc),'mode':0x180}),renameSync(_0x4bb049,_0xd4f3c2);}catch(_0x366cc3){try{unlinkSync(_0x4bb049);}catch{}if(_0x366cc3?.[_0x34bf93(0xeb)]===_0x34bf93(0x117))throw CliErrors[_0x34bf93(0x12f)](_0x34bf93(0x136)+_0xd4f3c2);throw _0x366cc3;}return _0xd4f3c2;}export function loadServiceManifestFromFile(_0x141630){const _0x5494e8=a34_0x4b82aa,_0x3d11fc=resolve(_0x141630);if(!existsSync(_0x3d11fc))throw CliErrors[_0x5494e8(0x12f)](_0x5494e8(0x112)+_0x141630);let _0x11a01f;const _0x1c981b=readFileSync(_0x3d11fc,_0x5494e8(0xfc));try{_0x11a01f=JSON[_0x5494e8(0x115)](_0x1c981b);}catch{throw CliErrors[_0x5494e8(0x12f)](_0x5494e8(0x138)+_0x141630,_0x5494e8(0x121));}const _0x2580f2=sha256(_0x1c981b),_0x2e45a1=extractLoadedServiceManifests(_0x11a01f,_0x2580f2),_0x5f116b=aggregateValidationReports(_0x2e45a1),_0x298a3e=_0x2e45a1[0x0];return{'filePath':_0x3d11fc,'hash':_0x2580f2,'kind':isServiceRegistryLike(_0x11a01f)?'registry':_0x5494e8(0x130),'manifest':_0x298a3e?.[_0x5494e8(0x130)]??_0x11a01f,'report':_0x5f116b,'normalizedManifest':_0x2e45a1[_0x5494e8(0x11f)]===0x1?_0x298a3e?.[_0x5494e8(0x137)]:undefined,'manifests':_0x2e45a1};}export function importServiceManifest(_0x33866d,_0x4888e9={}){const _0x133802=a34_0x4b82aa,_0x2fdf49=loadServiceManifestFromFile(_0x33866d);if(!_0x2fdf49[_0x133802(0x10f)]['ok'])throw CliErrors[_0x133802(0x12f)](formatValidationFailure(_0x2fdf49[_0x133802(0x10f)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x2fdf49[_0x133802(0x13d)][_0x133802(0x11f)]===0x0)throw CliErrors[_0x133802(0x12f)](_0x133802(0x109),_0x133802(0x11a));const _0x3b5304=readServiceRegistry(_0x4888e9),_0x1b4c0e=(_0x4888e9[_0x133802(0x12d)]??(()=>new Date()))()[_0x133802(0x106)](),_0x57864f=[];let _0x2436dd=0x0,_0xc0b029=0x0;for(const _0xbc0c5b of _0x2fdf49['manifests']){if(!_0xbc0c5b[_0x133802(0x137)])continue;const _0x15acad=_0xbc0c5b[_0x133802(0x137)][_0x133802(0x10e)][_0x133802(0xeb)],_0x5629e5={'serviceCode':_0x15acad,'version':_0xbc0c5b[_0x133802(0x137)]['version'],'importedAt':_0x1b4c0e,'source':{'type':_0x133802(0xf4),'path':_0x2fdf49[_0x133802(0xf6)],'hash':_0xbc0c5b[_0x133802(0xea)]},'manifest':_0xbc0c5b[_0x133802(0x130)],'normalizedManifest':_0xbc0c5b[_0x133802(0x137)]},_0x597250=_0x3b5304['services'][_0x133802(0x101)](_0x91ab6d=>_0x91ab6d[_0x133802(0x118)]===_0x15acad);_0x597250>=0x0?(_0x3b5304[_0x133802(0x134)][_0x597250]=_0x5629e5,_0xc0b029++):(_0x3b5304['services'][_0x133802(0x120)](_0x5629e5),_0x2436dd++),_0x57864f[_0x133802(0x120)](_0x5629e5);}_0x3b5304[_0x133802(0x134)][_0x133802(0xf1)]((_0x3065f7,_0x434e60)=>_0x3065f7[_0x133802(0x118)][_0x133802(0x110)](_0x434e60['serviceCode'])),_0x3b5304[_0x133802(0x13b)]=_0x1b4c0e;const _0x45f090=writeServiceRegistry(_0x3b5304,_0x4888e9);return{'registryPath':_0x45f090,'entry':_0x57864f[0x0],'replaced':_0x57864f['length']===0x1?_0xc0b029===0x1:_0xc0b029>0x0,'entries':_0x57864f,'imported':_0x2436dd,'updated':_0xc0b029,'serviceCount':_0x3b5304[_0x133802(0x134)][_0x133802(0x11f)]};}export function exportServiceManifest(_0x36bfb8,_0x601d61,_0x372f85={}){const _0x12e0d8=a34_0x4b82aa,_0x4b1881=getServiceRegistryPath(_0x372f85),_0x45e597=getLocalServiceEntry(_0x36bfb8,_0x372f85);if(!_0x45e597)throw CliErrors[_0x12e0d8(0x12f)](_0x12e0d8(0x100)+_0x36bfb8,_0x12e0d8(0xf9));const _0x29c1a8=resolve(_0x601d61),_0x1a0a39=dirname(_0x29c1a8);return!existsSync(_0x1a0a39)&&mkdirSync(_0x1a0a39,{'recursive':!![]}),writeFileSync(_0x29c1a8,JSON[_0x12e0d8(0x13a)](_0x45e597[_0x12e0d8(0x130)],null,0x2)+'\x0a',{'encoding':_0x12e0d8(0xfc),'mode':0x180}),{'registryPath':_0x4b1881,'filePath':_0x29c1a8,'entry':_0x45e597};}export function removeServiceManifest(_0x25338b,_0xbb297e={}){const _0x4309b0=a34_0x4b82aa,_0x573690=readServiceRegistry(_0xbb297e),_0x558284=_0x25338b[_0x4309b0(0xef)](),_0x1935a6=_0x573690[_0x4309b0(0x134)][_0x4309b0(0x101)](_0xa86e15=>_0xa86e15[_0x4309b0(0x118)]===_0x558284);if(_0x1935a6<0x0)throw CliErrors['validation'](_0x4309b0(0x100)+_0x558284,_0x4309b0(0xf9));const [_0x358ad1]=_0x573690[_0x4309b0(0x134)][_0x4309b0(0x11d)](_0x1935a6,0x1),_0x56bd5c=(_0xbb297e[_0x4309b0(0x12d)]??(()=>new Date()))()[_0x4309b0(0x106)]();_0x573690['updatedAt']=_0x56bd5c;const _0x36fd0e=writeServiceRegistry(_0x573690,_0xbb297e);return{'registryPath':_0x36fd0e,'entry':_0x358ad1,'serviceCount':_0x573690[_0x4309b0(0x134)]['length']};}export function listLocalServices(_0x187c58={}){const _0x524b1e=a34_0x4b82aa;return readServiceRegistry(_0x187c58)[_0x524b1e(0x134)];}export function getLocalServiceEntry(_0x39aa07,_0xb0cdc3={}){const _0x4de8e5=a34_0x4b82aa;return readServiceRegistry(_0xb0cdc3)['services'][_0x4de8e5(0x11c)](_0x4b742c=>_0x4b742c['serviceCode']===_0x39aa07[_0x4de8e5(0xef)]());}export function listLocalServiceTrees(_0x294b55={}){const _0xaf5364=a34_0x4b82aa;return readServiceRegistry(_0x294b55)['services'][_0xaf5364(0xff)](_0x276ae1=>_0x276ae1[_0xaf5364(0x137)]);}export function inspectServiceRegistry(_0x2e6a01={}){const _0x38e882=a34_0x4b82aa,_0x4ef6b8=getServiceRegistryPath(_0x2e6a01);if(!existsSync(_0x4ef6b8))return emptyServiceRegistryInspection(_0x4ef6b8,_0x38e882(0xfa),![]);try{const _0x434730=readFileSync(_0x4ef6b8,'utf8');if(!_0x434730[_0x38e882(0xef)]())return emptyServiceRegistryInspection(_0x4ef6b8,'empty',!![]);const _0x4250f0=JSON[_0x38e882(0x115)](_0x434730);if(_0x4250f0['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4ef6b8,_0x38e882(0x124),!![]),'schemaVersion':_0x4250f0[_0x38e882(0x13e)],'message':_0x38e882(0xf2)+String(_0x4250f0['schemaVersion'])};if(!Array['isArray'](_0x4250f0[_0x38e882(0x134)]))return{...emptyServiceRegistryInspection(_0x4ef6b8,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4250f0[_0x38e882(0x13b)],'message':'services\x20must\x20be\x20an\x20array'};const _0x48a221=_0x4250f0[_0x38e882(0x134)][_0x38e882(0xff)](summarizeLocalServiceEntry);return{'registryPath':_0x4ef6b8,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4250f0[_0x38e882(0x13b)],'serviceCount':_0x48a221[_0x38e882(0x11f)],'commandCount':_0x48a221[_0x38e882(0x129)]((_0x46abe6,_0x18e9d0)=>_0x46abe6+_0x18e9d0['commandCount'],0x0),'services':_0x48a221};}catch(_0x409fcc){return{...emptyServiceRegistryInspection(_0x4ef6b8,'invalid',!![]),'message':_0x409fcc instanceof Error?_0x409fcc[_0x38e882(0xf8)]:String(_0x409fcc)};}}export function formatValidationFailure(_0xa697ba){const _0x26f1d6=a34_0x4b82aa,_0x4edbb3=_0xa697ba[_0x26f1d6(0x102)][_0x26f1d6(0xff)](_0xdbc1a1=>_0xdbc1a1['path']+':\x20'+_0xdbc1a1['message']);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x4edbb3[_0x26f1d6(0xf3)]('\x0a');}function extractLoadedServiceManifests(_0xaf8583,_0x4aba6d){const _0x50ee63=a34_0x4b82aa;if(!isServiceRegistryLike(_0xaf8583)){const _0x279f69=_0xaf8583,_0x34ae7b=validateServiceTreeManifest(_0x279f69);return[{'manifest':_0x279f69,'report':_0x34ae7b,'normalizedManifest':_0x34ae7b['ok']?normalizeServiceTreeManifest(_0x279f69):undefined,'sourceHash':_0x4aba6d}];}return _0xaf8583[_0x50ee63(0x134)]['map']((_0x4bc220,_0xe7290a)=>{const _0x107d6b=_0x50ee63,_0x3cdf2c=isObjectRecord(_0x4bc220)?_0x4bc220[_0x107d6b(0x130)]:undefined,_0x72beb9=validateServiceTreeManifest(_0x3cdf2c),_0x172cdd=isObjectRecord(_0x4bc220)&&typeof _0x4bc220[_0x107d6b(0x118)]===_0x107d6b(0x116)?_0x4bc220[_0x107d6b(0x118)]:undefined;return{'manifest':_0x3cdf2c,'report':_0x72beb9,'normalizedManifest':_0x72beb9['ok']?normalizeServiceTreeManifest(_0x3cdf2c):undefined,'sourceHash':sha256(JSON[_0x107d6b(0x13a)](_0x3cdf2c,null,0x2)+'\x0a'),'registryIndex':_0xe7290a,'registryServiceCode':_0x172cdd};});}function aggregateValidationReports(_0x51dedf){const _0x488bb6=a34_0x4b82aa,_0x481848=_0x51dedf[_0x488bb6(0xf7)](_0x22a025=>_0x22a025[_0x488bb6(0x126)]===undefined?_0x22a025[_0x488bb6(0x10f)][_0x488bb6(0x102)]:_0x22a025[_0x488bb6(0x10f)]['errors'][_0x488bb6(0xff)](_0x1378e3=>({..._0x1378e3,'path':prefixRegistryIssuePath(_0x22a025[_0x488bb6(0x126)],_0x1378e3[_0x488bb6(0xf5)])}))),_0x4fbf4a=_0x51dedf[_0x488bb6(0xf7)](_0x51c60e=>_0x51c60e['registryIndex']===undefined?_0x51c60e[_0x488bb6(0x10f)]['warnings']:_0x51c60e[_0x488bb6(0x10f)][_0x488bb6(0x132)][_0x488bb6(0xff)](_0x2087fc=>({..._0x2087fc,'path':prefixRegistryIssuePath(_0x51c60e[_0x488bb6(0x126)],_0x2087fc[_0x488bb6(0xf5)])})));return{'ok':_0x481848['length']===0x0,'errors':_0x481848,'warnings':_0x4fbf4a};}function a34_0x2c27(){const _0x248c5e=['flatMap','message','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','missing','Unsupported\x20service\x20registry\x20schemaVersion:\x20','utf8','1061070zvswEt','6552856iNVJkN','map','Local\x20service\x20not\x20found:\x20','findIndex','errors','name','risk','9ggcCmw','toISOString','source','2016852dTUrgf','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','digest','commands','2nKlayl','sha256','service','report','localeCompare','importedAt','Service\x20manifest\x20file\x20not\x20found:\x20','hex','cliPath','parse','string','ENOENT','serviceCode','description','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','11WXDrFY','find','splice','Invalid\x20service\x20registry\x20JSON:\x20','length','push','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','isArray','].manifest','invalid','homeDirName','registryIndex','service.json','startsWith','reduce','716295zgPyKY','object','version','now','.tmp','validation','manifest','$.services[','warnings','command','services','1288fHkcDj','Cannot\x20write\x20service\x20registry:\x20','normalizedManifest','Invalid\x20service\x20manifest\x20JSON:\x20','813062axldFr','stringify','updatedAt','72489fbJkGj','manifests','schemaVersion','8544WtjqfV','sourceHash','code','140zuSjoZ','slice','homeDir','trim','update','sort','Unsupported\x20schemaVersion:\x20','join','file','path','filePath'];a34_0x2c27=function(){return _0x248c5e;};return a34_0x2c27();}function prefixRegistryIssuePath(_0x477701,_0x5072bd){const _0x566078=a34_0x4b82aa;if(_0x5072bd==='$')return _0x566078(0x131)+_0x477701+_0x566078(0x123);if(_0x5072bd[_0x566078(0x128)]('$.'))return'$.services['+_0x477701+_0x566078(0x123)+_0x5072bd[_0x566078(0xed)](0x1);if(_0x5072bd[_0x566078(0x128)]('$['))return _0x566078(0x131)+_0x477701+_0x566078(0x123)+_0x5072bd['slice'](0x1);return'$.services['+_0x477701+'].manifest.'+_0x5072bd;}function isServiceRegistryLike(_0xa6639a){const _0x6884ac=a34_0x4b82aa;return isObjectRecord(_0xa6639a)&&_0xa6639a['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x6884ac(0x122)](_0xa6639a[_0x6884ac(0x134)]);}function isObjectRecord(_0x1c933d){const _0x59200e=a34_0x4b82aa;return Boolean(_0x1c933d)&&typeof _0x1c933d===_0x59200e(0x12b)&&!Array[_0x59200e(0x122)](_0x1c933d);}function emptyServiceRegistryInspection(_0x454546,_0x4a316d,_0x2779b4){return{'registryPath':_0x454546,'exists':_0x2779b4,'status':_0x4a316d,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x4dd219){const _0x16ee97=a34_0x4b82aa,_0x3e25ab=_0x4dd219[_0x16ee97(0x137)],_0x12ec86=_0x3e25ab[_0x16ee97(0x10b)][_0x16ee97(0xff)](_0x48c8cc=>({'path':_0x48c8cc[_0x16ee97(0x114)],'description':_0x48c8cc[_0x16ee97(0x119)],'risk':_0x48c8cc[_0x16ee97(0x104)],'targetKind':_0x48c8cc['target']['kind'],'targetCommand':_0x48c8cc['target'][_0x16ee97(0x133)]}));return{'serviceCode':_0x4dd219['serviceCode'],'name':_0x3e25ab[_0x16ee97(0x10e)][_0x16ee97(0x103)],'description':_0x3e25ab['service'][_0x16ee97(0x119)],'version':_0x4dd219[_0x16ee97(0x12c)],'importedAt':_0x4dd219[_0x16ee97(0x111)],'source':_0x4dd219[_0x16ee97(0x107)],'commandCount':_0x12ec86[_0x16ee97(0x11f)],'commands':_0x12ec86};}function sha256(_0x422495){const _0x1015f0=a34_0x4b82aa;return createHash(_0x1015f0(0x10d))[_0x1015f0(0xf0)](_0x422495)[_0x1015f0(0x10a)](_0x1015f0(0x113));}
|
|
1
|
+
const a34_0x503b56=a34_0x350c;(function(_0x1a7248,_0x4f5874){const _0x18c510=a34_0x350c,_0x503057=_0x1a7248();while(!![]){try{const _0x1b86d4=parseInt(_0x18c510(0x166))/0x1*(-parseInt(_0x18c510(0x18a))/0x2)+-parseInt(_0x18c510(0x1a3))/0x3*(-parseInt(_0x18c510(0x156))/0x4)+parseInt(_0x18c510(0x188))/0x5+parseInt(_0x18c510(0x17c))/0x6+-parseInt(_0x18c510(0x173))/0x7+-parseInt(_0x18c510(0x159))/0x8*(-parseInt(_0x18c510(0x19c))/0x9)+-parseInt(_0x18c510(0x175))/0xa;if(_0x1b86d4===_0x4f5874)break;else _0x503057['push'](_0x503057['shift']());}catch(_0x5f360b){_0x503057['push'](_0x503057['shift']());}}}(a34_0x56a0,0xd05e5));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a34_0x56a0(){const _0x1e326a=['path','risk','registry','1wYOaQA','homeDir','schemaVersion','parse','hex','map','Local\x20service\x20not\x20found:\x20','find','services\x20must\x20be\x20an\x20array','sourceHash','warnings','$.services[','invalid','1735195OauLno','Invalid\x20service\x20manifest\x20JSON:\x20','14175260qHJIry','Cannot\x20write\x20service\x20registry:\x20','empty','length','stringify','now','serviceCode','1883808bShVrt','services','manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','source','toISOString','updatedAt','string','isArray','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','].manifest.','4848265oYwetu','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','1126922slDVqE','Service\x20manifest\x20file\x20not\x20found:\x20','errors','commandCount','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Invalid\x20service\x20registry\x20JSON:\x20','.tmp','sort','report','kind','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','update','slice','manifests','sha256','validation','importedAt','name','9839799QJsEui','digest','startsWith','utf8','version','ENOENT','service.json','8499tvDbWQ','996baypbh','push','normalizedManifest','8kqGuxt','Service\x20manifest\x20validation\x20failed:\x0a','splice','].manifest','filePath','registryIndex','description','trim','flatMap','service'];a34_0x56a0=function(){return _0x1e326a;};return a34_0x56a0();}import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';function a34_0x350c(_0x31661a,_0x502301){_0x31661a=_0x31661a-0x156;const _0x56a00a=a34_0x56a0();let _0x350c92=_0x56a00a[_0x31661a];return _0x350c92;}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x503b56(0x1a2);export function getServiceRegistryPath(_0x11dfdd={}){const _0x5be711=a34_0x503b56;return resolve(_0x11dfdd[_0x5be711(0x167)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x41b11a={}){const _0x4e4513=a34_0x503b56,_0x445b68=getServiceRegistryPath(_0x41b11a);if(!existsSync(_0x445b68))return emptyServiceRegistry();try{const _0x1b075b=readFileSync(_0x445b68,_0x4e4513(0x19f));if(!_0x1b075b[_0x4e4513(0x160)]())return emptyServiceRegistry();const _0x404d52=JSON['parse'](_0x1b075b);if(_0x404d52['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x4e4513(0x199)](_0x4e4513(0x17f)+String(_0x404d52['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x445b68+'.');if(!Array[_0x4e4513(0x185)](_0x404d52[_0x4e4513(0x17d)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x404d52[_0x4e4513(0x183)],'services':_0x404d52[_0x4e4513(0x17d)]};}catch(_0x3eb560){if(_0x3eb560 instanceof Error&&_0x3eb560[_0x4e4513(0x19b)]==='CliError')throw _0x3eb560;throw CliErrors['validation'](_0x4e4513(0x18f)+_0x445b68,_0x4e4513(0x194));}}export function writeServiceRegistry(_0x11f862,_0x324083={}){const _0x42c961=a34_0x503b56,_0x58d733=getServiceRegistryPath(_0x324083),_0xb944ef=dirname(_0x58d733);!existsSync(_0xb944ef)&&mkdirSync(_0xb944ef,{'recursive':!![]});const _0x29f8c5=_0x58d733+_0x42c961(0x190);try{writeFileSync(_0x29f8c5,JSON[_0x42c961(0x179)](_0x11f862,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x29f8c5,_0x58d733);}catch(_0x1fe40e){try{unlinkSync(_0x29f8c5);}catch{}if(_0x1fe40e?.['code']===_0x42c961(0x1a1))throw CliErrors[_0x42c961(0x199)](_0x42c961(0x176)+_0x58d733);throw _0x1fe40e;}return _0x58d733;}export function loadServiceManifestFromFile(_0x1313b8){const _0x100a14=a34_0x503b56,_0xd5505f=resolve(_0x1313b8);if(!existsSync(_0xd5505f))throw CliErrors[_0x100a14(0x199)](_0x100a14(0x18b)+_0x1313b8);let _0x2e8a3c;const _0x5ae8c9=readFileSync(_0xd5505f,_0x100a14(0x19f));try{_0x2e8a3c=JSON[_0x100a14(0x169)](_0x5ae8c9);}catch{throw CliErrors[_0x100a14(0x199)](_0x100a14(0x174)+_0x1313b8,_0x100a14(0x18e));}const _0x3e92a8=sha256(_0x5ae8c9),_0x479fe6=extractLoadedServiceManifests(_0x2e8a3c,_0x3e92a8),_0xce911b=aggregateValidationReports(_0x479fe6),_0x5e7c97=_0x479fe6[0x0];return{'filePath':_0xd5505f,'hash':_0x3e92a8,'kind':isServiceRegistryLike(_0x2e8a3c)?_0x100a14(0x165):'manifest','manifest':_0x5e7c97?.[_0x100a14(0x17e)]??_0x2e8a3c,'report':_0xce911b,'normalizedManifest':_0x479fe6[_0x100a14(0x178)]===0x1?_0x5e7c97?.[_0x100a14(0x158)]:undefined,'manifests':_0x479fe6};}export function importServiceManifest(_0x2604a2,_0x271ff4={}){const _0x253a14=a34_0x503b56,_0x34ce6b=loadServiceManifestFromFile(_0x2604a2);if(!_0x34ce6b[_0x253a14(0x192)]['ok'])throw CliErrors[_0x253a14(0x199)](formatValidationFailure(_0x34ce6b[_0x253a14(0x192)]),_0x253a14(0x186));if(_0x34ce6b[_0x253a14(0x197)][_0x253a14(0x178)]===0x0)throw CliErrors[_0x253a14(0x199)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x253a14(0x180));const _0x2c0189=readServiceRegistry(_0x271ff4),_0xf998de=(_0x271ff4[_0x253a14(0x17a)]??(()=>new Date()))()['toISOString'](),_0x1a3303=[];let _0x37ae66=0x0,_0x183235=0x0;for(const _0xadc903 of _0x34ce6b[_0x253a14(0x197)]){if(!_0xadc903[_0x253a14(0x158)])continue;const _0x25bb46=_0xadc903['normalizedManifest'][_0x253a14(0x162)]['code'],_0x293ac8={'serviceCode':_0x25bb46,'version':_0xadc903[_0x253a14(0x158)][_0x253a14(0x1a0)],'importedAt':_0xf998de,'source':{'type':'file','path':_0x34ce6b[_0x253a14(0x15d)],'hash':_0xadc903[_0x253a14(0x16f)]},'manifest':_0xadc903[_0x253a14(0x17e)],'normalizedManifest':_0xadc903[_0x253a14(0x158)]},_0x1eb361=_0x2c0189[_0x253a14(0x17d)]['findIndex'](_0x21ca14=>_0x21ca14[_0x253a14(0x17b)]===_0x25bb46);_0x1eb361>=0x0?(_0x2c0189[_0x253a14(0x17d)][_0x1eb361]=_0x293ac8,_0x183235++):(_0x2c0189['services'][_0x253a14(0x157)](_0x293ac8),_0x37ae66++),_0x1a3303['push'](_0x293ac8);}_0x2c0189['services'][_0x253a14(0x191)]((_0x43125e,_0x545ea9)=>_0x43125e[_0x253a14(0x17b)]['localeCompare'](_0x545ea9[_0x253a14(0x17b)])),_0x2c0189[_0x253a14(0x183)]=_0xf998de;const _0x105f8a=writeServiceRegistry(_0x2c0189,_0x271ff4);return{'registryPath':_0x105f8a,'entry':_0x1a3303[0x0],'replaced':_0x1a3303[_0x253a14(0x178)]===0x1?_0x183235===0x1:_0x183235>0x0,'entries':_0x1a3303,'imported':_0x37ae66,'updated':_0x183235,'serviceCount':_0x2c0189[_0x253a14(0x17d)][_0x253a14(0x178)]};}export function exportServiceManifest(_0xb89983,_0x289c45,_0x231dec={}){const _0x9a89f2=a34_0x503b56,_0x4e0d59=getServiceRegistryPath(_0x231dec),_0x2c7b4f=getLocalServiceEntry(_0xb89983,_0x231dec);if(!_0x2c7b4f)throw CliErrors[_0x9a89f2(0x199)]('Local\x20service\x20not\x20found:\x20'+_0xb89983,_0x9a89f2(0x189));const _0x467bc0=resolve(_0x289c45),_0x224afa=dirname(_0x467bc0);return!existsSync(_0x224afa)&&mkdirSync(_0x224afa,{'recursive':!![]}),writeFileSync(_0x467bc0,JSON[_0x9a89f2(0x179)](_0x2c7b4f[_0x9a89f2(0x17e)],null,0x2)+'\x0a',{'encoding':_0x9a89f2(0x19f),'mode':0x180}),{'registryPath':_0x4e0d59,'filePath':_0x467bc0,'entry':_0x2c7b4f};}export function removeServiceManifest(_0x6b8539,_0x64eef0={}){const _0x392a30=a34_0x503b56,_0x4bee90=readServiceRegistry(_0x64eef0),_0x5eca1d=_0x6b8539[_0x392a30(0x160)](),_0x152068=_0x4bee90[_0x392a30(0x17d)]['findIndex'](_0x416c4e=>_0x416c4e['serviceCode']===_0x5eca1d);if(_0x152068<0x0)throw CliErrors[_0x392a30(0x199)](_0x392a30(0x16c)+_0x5eca1d,_0x392a30(0x189));const [_0x4fb07c]=_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x15b)](_0x152068,0x1),_0xcbeb74=(_0x64eef0[_0x392a30(0x17a)]??(()=>new Date()))()[_0x392a30(0x182)]();_0x4bee90[_0x392a30(0x183)]=_0xcbeb74;const _0x33be97=writeServiceRegistry(_0x4bee90,_0x64eef0);return{'registryPath':_0x33be97,'entry':_0x4fb07c,'serviceCount':_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x178)]};}export function listLocalServices(_0x46ab53={}){const _0x50e57a=a34_0x503b56;return readServiceRegistry(_0x46ab53)[_0x50e57a(0x17d)];}export function getLocalServiceEntry(_0x22a46e,_0x504608={}){const _0x15d3fe=a34_0x503b56;return readServiceRegistry(_0x504608)[_0x15d3fe(0x17d)][_0x15d3fe(0x16d)](_0x1ad530=>_0x1ad530['serviceCode']===_0x22a46e['trim']());}export function listLocalServiceTrees(_0x44c584={}){const _0x520edf=a34_0x503b56;return readServiceRegistry(_0x44c584)['services'][_0x520edf(0x16b)](_0x41734d=>_0x41734d[_0x520edf(0x158)]);}export function inspectServiceRegistry(_0x33c2d1={}){const _0x56d5b0=a34_0x503b56,_0x5bd54d=getServiceRegistryPath(_0x33c2d1);if(!existsSync(_0x5bd54d))return emptyServiceRegistryInspection(_0x5bd54d,'missing',![]);try{const _0x116861=readFileSync(_0x5bd54d,_0x56d5b0(0x19f));if(!_0x116861[_0x56d5b0(0x160)]())return emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x177),!![]);const _0x49c16d=JSON[_0x56d5b0(0x169)](_0x116861);if(_0x49c16d[_0x56d5b0(0x168)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'schemaVersion':_0x49c16d[_0x56d5b0(0x168)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x49c16d[_0x56d5b0(0x168)])};if(!Array['isArray'](_0x49c16d['services']))return{...emptyServiceRegistryInspection(_0x5bd54d,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d['updatedAt'],'message':_0x56d5b0(0x16e)};const _0x2ffb01=_0x49c16d[_0x56d5b0(0x17d)][_0x56d5b0(0x16b)](summarizeLocalServiceEntry);return{'registryPath':_0x5bd54d,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d[_0x56d5b0(0x183)],'serviceCount':_0x2ffb01[_0x56d5b0(0x178)],'commandCount':_0x2ffb01['reduce']((_0x2c5467,_0x5a37b6)=>_0x2c5467+_0x5a37b6[_0x56d5b0(0x18d)],0x0),'services':_0x2ffb01};}catch(_0x5a18a6){return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'message':_0x5a18a6 instanceof Error?_0x5a18a6['message']:String(_0x5a18a6)};}}export function formatValidationFailure(_0x30e905){const _0x4d8914=a34_0x503b56,_0x534cb6=_0x30e905[_0x4d8914(0x18c)][_0x4d8914(0x16b)](_0x3db200=>_0x3db200[_0x4d8914(0x163)]+':\x20'+_0x3db200['message']);return _0x4d8914(0x15a)+_0x534cb6['join']('\x0a');}function extractLoadedServiceManifests(_0x54126b,_0x6c4c60){const _0x28fccb=a34_0x503b56;if(!isServiceRegistryLike(_0x54126b)){const _0x5137c2=_0x54126b,_0x2c1005=validateServiceTreeManifest(_0x5137c2);return[{'manifest':_0x5137c2,'report':_0x2c1005,'normalizedManifest':_0x2c1005['ok']?normalizeServiceTreeManifest(_0x5137c2):undefined,'sourceHash':_0x6c4c60}];}return _0x54126b[_0x28fccb(0x17d)][_0x28fccb(0x16b)]((_0x47b495,_0x28f3ac)=>{const _0x1da06b=_0x28fccb,_0x41a3a2=isObjectRecord(_0x47b495)?_0x47b495[_0x1da06b(0x17e)]:undefined,_0x46cc1e=validateServiceTreeManifest(_0x41a3a2),_0x3b2b6e=isObjectRecord(_0x47b495)&&typeof _0x47b495[_0x1da06b(0x17b)]===_0x1da06b(0x184)?_0x47b495['serviceCode']:undefined;return{'manifest':_0x41a3a2,'report':_0x46cc1e,'normalizedManifest':_0x46cc1e['ok']?normalizeServiceTreeManifest(_0x41a3a2):undefined,'sourceHash':sha256(JSON[_0x1da06b(0x179)](_0x41a3a2,null,0x2)+'\x0a'),'registryIndex':_0x28f3ac,'registryServiceCode':_0x3b2b6e};});}function aggregateValidationReports(_0x41af3f){const _0x4798ce=a34_0x503b56,_0x2ba423=_0x41af3f[_0x4798ce(0x161)](_0x1505c3=>_0x1505c3[_0x4798ce(0x15e)]===undefined?_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)]:_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)][_0x4798ce(0x16b)](_0x27c861=>({..._0x27c861,'path':prefixRegistryIssuePath(_0x1505c3[_0x4798ce(0x15e)],_0x27c861['path'])}))),_0x4059d1=_0x41af3f[_0x4798ce(0x161)](_0x2f9b09=>_0x2f9b09[_0x4798ce(0x15e)]===undefined?_0x2f9b09[_0x4798ce(0x192)]['warnings']:_0x2f9b09[_0x4798ce(0x192)][_0x4798ce(0x170)]['map'](_0x22ae1f=>({..._0x22ae1f,'path':prefixRegistryIssuePath(_0x2f9b09[_0x4798ce(0x15e)],_0x22ae1f[_0x4798ce(0x163)])})));return{'ok':_0x2ba423['length']===0x0,'errors':_0x2ba423,'warnings':_0x4059d1};}function prefixRegistryIssuePath(_0xdbc09a,_0x3f85cd){const _0x59cd05=a34_0x503b56;if(_0x3f85cd==='$')return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c);if(_0x3f85cd[_0x59cd05(0x19e)]('$.'))return _0x59cd05(0x171)+_0xdbc09a+'].manifest'+_0x3f85cd[_0x59cd05(0x196)](0x1);if(_0x3f85cd[_0x59cd05(0x19e)]('$['))return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c)+_0x3f85cd[_0x59cd05(0x196)](0x1);return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x187)+_0x3f85cd;}function isServiceRegistryLike(_0x2b613d){const _0x32facb=a34_0x503b56;return isObjectRecord(_0x2b613d)&&_0x2b613d[_0x32facb(0x168)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x32facb(0x185)](_0x2b613d[_0x32facb(0x17d)]);}function isObjectRecord(_0xbe3bc6){const _0xe6439d=a34_0x503b56;return Boolean(_0xbe3bc6)&&typeof _0xbe3bc6==='object'&&!Array[_0xe6439d(0x185)](_0xbe3bc6);}function emptyServiceRegistryInspection(_0x959af,_0x58681a,_0x11d52b){return{'registryPath':_0x959af,'exists':_0x11d52b,'status':_0x58681a,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x58c045){const _0x56ecec=a34_0x503b56,_0x4402f6=_0x58c045['normalizedManifest'],_0x1d6df7=_0x4402f6['commands']['map'](_0x446179=>({'path':_0x446179['cliPath'],'description':_0x446179['description'],'risk':_0x446179[_0x56ecec(0x164)],'targetKind':_0x446179['target'][_0x56ecec(0x193)],'targetCommand':_0x446179['target']['command']}));return{'serviceCode':_0x58c045[_0x56ecec(0x17b)],'name':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x19b)],'description':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x15f)],'version':_0x58c045[_0x56ecec(0x1a0)],'importedAt':_0x58c045[_0x56ecec(0x19a)],'source':_0x58c045[_0x56ecec(0x181)],'commandCount':_0x1d6df7[_0x56ecec(0x178)],'commands':_0x1d6df7};}function sha256(_0x5b46c6){const _0x19158e=a34_0x503b56;return createHash(_0x19158e(0x198))[_0x19158e(0x195)](_0x5b46c6)[_0x19158e(0x19d)](_0x19158e(0x16a));}
|