@lovrabet/lovrabet-cli 2.1.0-beta.2 → 2.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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_0x3b93ed=a27_0x26ca;(function(_0x36c19e,_0x5f3fd0){const _0x459f2f=a27_0x26ca,_0x33b57c=_0x36c19e();while(!![]){try{const _0x1108e7=-parseInt(_0x459f2f(0xda))/0x1+-parseInt(_0x459f2f(0xd1))/0x2*(parseInt(_0x459f2f(0xd0))/0x3)+-parseInt(_0x459f2f(0xf5))/0x4+-parseInt(_0x459f2f(0xcd))/0x5*(-parseInt(_0x459f2f(0xfb))/0x6)+parseInt(_0x459f2f(0xeb))/0x7*(-parseInt(_0x459f2f(0xe7))/0x8)+-parseInt(_0x459f2f(0xf6))/0x9*(parseInt(_0x459f2f(0xdb))/0xa)+parseInt(_0x459f2f(0xe8))/0xb;if(_0x1108e7===_0x5f3fd0)break;else _0x33b57c['push'](_0x33b57c['shift']());}catch(_0x32ff0a){_0x33b57c['push'](_0x33b57c['shift']());}}}(a27_0x2bf0,0x32930));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';function a27_0x26ca(_0x39043a,_0x24a2d6){_0x39043a=_0x39043a-0xc0;const _0x2bf049=a27_0x2bf0();let _0x26caa1=_0x2bf049[_0x39043a];return _0x26caa1;}import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x3b93ed(0xfe),'type':a27_0x3b93ed(0xc4),'required':!![],'description':a27_0x3b93ed(0xe1)},FILE_FLAG={'name':'file','type':a27_0x3b93ed(0xc4),'required':!![],'description':a27_0x3b93ed(0xc5)},QUERY_FLAG={'name':'query','type':a27_0x3b93ed(0xc4),'required':!![],'description':'Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge'},TOPK_FLAG={'name':a27_0x3b93ed(0xf8),'type':a27_0x3b93ed(0xef),'description':a27_0x3b93ed(0xf2)};function readKnowledgeFile(_0x2063a0){const _0x2a862c=a27_0x3b93ed;if(!_0x2063a0)throw CliErrors[_0x2a862c(0xee)](_0x2a862c(0xd5));if(!existsSync(_0x2063a0))throw CliErrors['validation'](_0x2a862c(0xc7)+_0x2063a0);if(!statSync(_0x2063a0)[_0x2a862c(0xd8)]())throw CliErrors[_0x2a862c(0xee)]('File\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x2063a0);return readFileSync(_0x2063a0,_0x2a862c(0xc1));}function summarizePersonalItem(_0x7401d5){const _0x198cb6=a27_0x3b93ed;return{'id':_0x7401d5['id'],'title':_0x7401d5[_0x198cb6(0xfe)],'version':_0x7401d5['version'],'ragStatus':_0x7401d5[_0x198cb6(0xe9)],'ragErrorMessage':_0x7401d5[_0x198cb6(0xca)],'updateTime':_0x7401d5['updateTime']};}function detailPersonalItem(_0x513161){const _0x147018=a27_0x3b93ed;return{'id':_0x513161['id'],'appCode':_0x513161['appCode'],'scope':_0x513161[_0x147018(0x101)],'userId':_0x513161[_0x147018(0xc3)],'title':_0x513161['title'],'content':_0x513161[_0x147018(0xd4)]??'','version':_0x513161['version'],'ragStatus':_0x513161[_0x147018(0xe9)],'ragErrorMessage':_0x513161[_0x147018(0xca)],'createTime':_0x513161[_0x147018(0xc0)],'updateTime':_0x513161['updateTime']};}function summarizeSearchHit(_0x395afd){const _0x30e72f=a27_0x3b93ed;return{'scope':_0x395afd[_0x30e72f(0x101)],'docId':_0x395afd[_0x30e72f(0xcf)],'score':_0x395afd[_0x30e72f(0xe2)],'weightedScore':_0x395afd['weightedScore'],'content':_0x395afd['content'],'metadata':_0x395afd['metadata']};}function readTopK(_0x2ecbd2){const _0x2f2fe7=a27_0x3b93ed,_0x32e47a=_0x2ecbd2[_0x2f2fe7(0xdf)]('topk');if(_0x32e47a===undefined||_0x32e47a===null||_0x32e47a==='')return undefined;const _0x2b5e02=_0x2ecbd2[_0x2f2fe7(0xc9)]('topk');if(!Number[_0x2f2fe7(0xdc)](_0x2b5e02)||_0x2b5e02<0x1)throw CliErrors['validation'](_0x2f2fe7(0xff));return _0x2b5e02;}const kbList={'service':'kb','command':a27_0x3b93ed(0xfa),'description':a27_0x3b93ed(0x103),'risk':a27_0x3b93ed(0xd6),'flags':[VERBOSE_FLAG],async 'execute'(_0x1abf8f){const _0x26d93b=a27_0x3b93ed,_0x1485eb=await listPersonalKnowledgeBaseItems(_0x1abf8f[_0x26d93b(0x100)]);if(_0x1abf8f['bool'](_0x26d93b(0xcb)))return{'ok':!![],'data':{'total':_0x1485eb[_0x26d93b(0xe6)],'items':_0x1485eb}};return{'ok':!![],'data':{'total':_0x1485eb[_0x26d93b(0xe6)],'items':_0x1485eb[_0x26d93b(0xd9)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x3b93ed(0xd3),'description':a27_0x3b93ed(0xd7),'risk':'read','flags':[{...ID_FLAG,'description':a27_0x3b93ed(0xdd)}],async 'execute'(_0x25a605){const _0x3774eb=a27_0x3b93ed,_0x135c3a=await getPersonalKnowledgeBaseItem(_0x25a605[_0x3774eb(0xc9)]('id'),_0x25a605['appCode']);return{'ok':!![],'data':detailPersonalItem(_0x135c3a)};}},kbCreate={'service':'kb','command':a27_0x3b93ed(0xf0),'description':a27_0x3b93ed(0xf4),'risk':a27_0x3b93ed(0xd2),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x53d1c5){const _0x376097=a27_0x3b93ed,_0x458d11=_0x53d1c5[_0x376097(0xf1)](_0x376097(0xfe)),_0x2872ad=readKnowledgeFile(_0x53d1c5[_0x376097(0xf1)](_0x376097(0xe0))),_0x20f3b3=await createPersonalKnowledgeBaseItem(_0x53d1c5[_0x376097(0x100)],{'title':_0x458d11,'content':_0x2872ad});return{'ok':!![],'data':summarizePersonalItem(_0x20f3b3),'message':_0x376097(0xc2)+_0x20f3b3['id']+'\x20('+_0x20f3b3[_0x376097(0xfe)]+')'};},async 'dryRun'(_0x343423){const _0x15515c=a27_0x3b93ed,_0x376c6e=_0x343423[_0x15515c(0xf1)]('title'),_0x28aa06=readKnowledgeFile(_0x343423[_0x15515c(0xf1)](_0x15515c(0xe0)));return dryRun(_0x15515c(0xf7),_0x15515c(0xf9))['body']({'appCode':_0x343423['appCode'],'title':_0x376c6e,'content':_0x28aa06})[_0x15515c(0xc8)](_0x15515c(0xde)+_0x376c6e+'\x22')[_0x15515c(0xf3)]();}},kbUpdate={'service':'kb','command':a27_0x3b93ed(0xea),'description':a27_0x3b93ed(0xec),'risk':a27_0x3b93ed(0xd2),'flags':[{...ID_FLAG,'description':a27_0x3b93ed(0xdd)},{...TITLE_FLAG,'required':![],'description':a27_0x3b93ed(0xfd)},FILE_FLAG],async 'execute'(_0x56f68d){const _0x3cb614=a27_0x3b93ed,_0x37db15=_0x56f68d[_0x3cb614(0xc9)]('id'),_0xf6ca5e=readKnowledgeFile(_0x56f68d[_0x3cb614(0xf1)](_0x3cb614(0xe0))),_0x38faef=_0x56f68d['str'](_0x3cb614(0xfe))||(await getPersonalKnowledgeBaseItem(_0x37db15,_0x56f68d[_0x3cb614(0x100)]))[_0x3cb614(0xfe)],_0x3bf9e7=await updatePersonalKnowledgeBaseItem(_0x37db15,_0x56f68d[_0x3cb614(0x100)],{'title':_0x38faef,'content':_0xf6ca5e});return{'ok':!![],'data':summarizePersonalItem(_0x3bf9e7),'message':_0x3cb614(0xcc)+_0x3bf9e7['id']+'\x20('+_0x3bf9e7[_0x3cb614(0xfe)]+')'};},async 'dryRun'(_0x3716ae){const _0x55cf6b=a27_0x3b93ed,_0x734b41=_0x3716ae['num']('id'),_0x1886b5=readKnowledgeFile(_0x3716ae[_0x55cf6b(0xf1)]('file')),_0x55685f=_0x3716ae[_0x55cf6b(0xf1)]('title')||(await getPersonalKnowledgeBaseItem(_0x734b41,_0x3716ae['appCode']))[_0x55cf6b(0xfe)];return dryRun(_0x55cf6b(0xf7),_0x55cf6b(0xce)+_0x734b41+_0x55cf6b(0xe4))[_0x55cf6b(0x102)]({'appCode':_0x3716ae[_0x55cf6b(0x100)],'title':_0x55685f,'content':_0x1886b5})['description']('Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20'+_0x734b41)['build']();}},kbSearch={'service':'kb','command':a27_0x3b93ed(0xe3),'description':a27_0x3b93ed(0xed),'risk':a27_0x3b93ed(0xd6),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x54c1b6){const _0x14e565=a27_0x3b93ed;if(!_0x54c1b6[_0x14e565(0xf1)]('query')[_0x14e565(0xfc)]())throw CliErrors[_0x14e565(0xee)](_0x14e565(0xe5));readTopK(_0x54c1b6);},async 'execute'(_0x55243f){const _0x35e626=a27_0x3b93ed,_0xa9fe8=_0x55243f[_0x35e626(0xf1)](_0x35e626(0xc6))[_0x35e626(0xfc)](),_0x296341=readTopK(_0x55243f),_0x185e43=await searchKnowledgeBase(_0x55243f['appCode'],{'query':_0xa9fe8,'topK':_0x296341});return{'ok':!![],'data':{'total':_0x185e43['length'],'hits':_0x185e43[_0x35e626(0xd9)](summarizeSearchHit)}};}};function a27_0x2bf0(){const _0x481a38=['validation','number','create','str','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','build','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','497028zzpIDx','9JoHWtv','POST','topk','/client/knowledge-base/personal/create','list','942342gLzYHv','trim','Override\x20the\x20existing\x20entry\x20title','title','--topk\x20must\x20be\x20a\x20positive\x20number.','appCode','scope','body','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','createTime','utf8','Created\x20KB\x20entry\x20','userId','string','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','query','File\x20not\x20found:\x20','description','num','ragErrorMessage','verbose','Updated\x20KB\x20entry\x20','5lEgIwo','/client/knowledge-base/personal/','docId','6DGlswJ','389744NGthtF','write','detail','content','File\x20path\x20is\x20required.','read','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','isFile','map','14099tErDQz','4104310WdKRzG','isFinite','Personal\x20knowledge-base\x20entry\x20ID','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','flag','file','Personal\x20knowledge-base\x20entry\x20title','score','search','/update','Search\x20query\x20is\x20required.','length','8QuPMSi','13836185nbaiPv','ragStatus','update','1884463JUyNdb','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content'];a27_0x2bf0=function(){return _0x481a38;};return a27_0x2bf0();}export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a28_0x17fef4=a28_0x2cba;function a28_0x5acf(){const _0x456bcc=['\x20\x20\x20Time:\x20','Clear\x20command\x20history\x20logs','duration','details','10Hsoyrg','\x20\x20\x20Details:\x20','\x20logs:\x0a','\x20\x20\x20Duration:\x20','clear','605vlXyKB','clearLogs','log','stringify','26382SGzuIB','5603653DvbdsZ','timestamp','warn','View\x20command\x20history\x20logs','*\x20Logs\x20cleared','error','toLocaleString','logs','2474120wHImLp','76rYEnde','success','level','en-US','readLogs','4241237AzMpYP','forEach','83819CujqrR','write','20310CFzLpa','9KptpGb','1209512KYmaKP','read','command'];a28_0x5acf=function(){return _0x456bcc;};return a28_0x5acf();}(function(_0x1a9656,_0x1cb756){const _0x244450=a28_0x2cba,_0x417a74=_0x1a9656();while(!![]){try{const _0x29c42f=-parseInt(_0x244450(0x1f5))/0x1+-parseInt(_0x244450(0x1f9))/0x2+parseInt(_0x244450(0x1f7))/0x3*(parseInt(_0x244450(0x1ee))/0x4)+-parseInt(_0x244450(0x1e0))/0x5*(parseInt(_0x244450(0x1e4))/0x6)+parseInt(_0x244450(0x1f3))/0x7+-parseInt(_0x244450(0x1ed))/0x8*(-parseInt(_0x244450(0x1f8))/0x9)+-parseInt(_0x244450(0x200))/0xa*(-parseInt(_0x244450(0x1e5))/0xb);if(_0x29c42f===_0x1cb756)break;else _0x417a74['push'](_0x417a74['shift']());}catch(_0x20d318){_0x417a74['push'](_0x417a74['shift']());}}}(a28_0x5acf,0x51335));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x1455c7){const _0x4898ff=a28_0x2cba;if(_0x1455c7['length']===0x0){console[_0x4898ff(0x1e2)]('*\x20No\x20logs\x20found');return;}console['log']('*\x20'+CLI_DISPLAY_NAME+_0x4898ff(0x202)),_0x1455c7[_0x4898ff(0x1f4)]((_0xbcce3a,_0x4293f2)=>{const _0x11586b=_0x4898ff,_0x395e73=new Date(_0xbcce3a[_0x11586b(0x1e6)])[_0x11586b(0x1eb)](_0x11586b(0x1f1)),_0xd83c1c=_0xbcce3a[_0x11586b(0x1f0)]===_0x11586b(0x1ef)?'√':_0xbcce3a['level']===_0x11586b(0x1ea)?'×':_0xbcce3a[_0x11586b(0x1f0)]===_0x11586b(0x1e7)?'!':'i';console['log'](_0x4293f2+0x1+'.\x20'+_0xd83c1c+'\x20['+_0xbcce3a[_0x11586b(0x1fb)]+']\x20'+_0xbcce3a['message']),console[_0x11586b(0x1e2)](_0x11586b(0x1fc)+_0x395e73),_0xbcce3a[_0x11586b(0x1fe)]&&console[_0x11586b(0x1e2)](_0x11586b(0x1de)+_0xbcce3a['duration']+'ms'),_0xbcce3a['details']&&Object['keys'](_0xbcce3a[_0x11586b(0x1ff)])['length']>0x0&&console[_0x11586b(0x1e2)](_0x11586b(0x201)+JSON[_0x11586b(0x1e3)](_0xbcce3a[_0x11586b(0x1ff)],null,0x2)),console['log']('');});}function a28_0x2cba(_0x4d90b5,_0x314722){_0x4d90b5=_0x4d90b5-0x1de;const _0x5acfd8=a28_0x5acf();let _0x2cbadd=_0x5acfd8[_0x4d90b5];return _0x2cbadd;}export const logsDefinitions=[{'service':a28_0x17fef4(0x1ec),'command':'show','description':a28_0x17fef4(0x1e8),'risk':a28_0x17fef4(0x1fa),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x2061c9){const _0x1aa863=a28_0x17fef4;return printLogs(logger[_0x1aa863(0x1f2)]()),{'ok':!![]};}},{'service':a28_0x17fef4(0x1ec),'command':a28_0x17fef4(0x1df),'description':a28_0x17fef4(0x1fd),'risk':a28_0x17fef4(0x1f6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0xc6e321){const _0x14a9c6=a28_0x17fef4;return logger[_0x14a9c6(0x1e1)](),console['log'](_0x14a9c6(0x1e9)),{'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_0x53a6f5=a29_0x597d;(function(_0x19cf33,_0x335f8d){const _0x5b31ec=a29_0x597d,_0xa375f9=_0x19cf33();while(!![]){try{const _0x18657c=-parseInt(_0x5b31ec(0x9d))/0x1+parseInt(_0x5b31ec(0x91))/0x2+-parseInt(_0x5b31ec(0xa6))/0x3+-parseInt(_0x5b31ec(0xa2))/0x4+-parseInt(_0x5b31ec(0x96))/0x5+parseInt(_0x5b31ec(0x71))/0x6*(-parseInt(_0x5b31ec(0xa0))/0x7)+parseInt(_0x5b31ec(0xa4))/0x8;if(_0x18657c===_0x335f8d)break;else _0xa375f9['push'](_0xa375f9['shift']());}catch(_0x10c895){_0xa375f9['push'](_0xa375f9['shift']());}}}(a29_0x35ee,0x6c571));import{existsSync,readFileSync,statSync}from'node:fs';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';function a29_0x597d(_0x56002b,_0x9972bc){_0x56002b=_0x56002b-0x70;const _0x35ee52=a29_0x35ee();let _0x597dfd=_0x35ee52[_0x56002b];return _0x597dfd;}const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x53a6f5(0xa1),'type':'string','description':a29_0x53a6f5(0x70)},FUNCTION_NAME_FLAG={'name':a29_0x53a6f5(0x87),'type':a29_0x53a6f5(0x79),'required':!![],'description':'Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders'},DESCRIPTION_FLAG={'name':a29_0x53a6f5(0x90),'type':a29_0x53a6f5(0x79),'description':a29_0x53a6f5(0x8d)},SOURCE_SESSION_FLAG={'name':a29_0x53a6f5(0x76),'type':a29_0x53a6f5(0x79),'description':a29_0x53a6f5(0x81)};function normalizeFunctionName(_0x219f35){const _0x30c27f=a29_0x53a6f5,_0x144857=String(_0x219f35||'')[_0x30c27f(0xac)]();if(!_0x144857||!FUNCTION_NAME_PATTERN[_0x30c27f(0x94)](_0x144857))throw CliErrors[_0x30c27f(0x83)](_0x30c27f(0x80));return _0x144857;}function readScriptFile(_0x1a7e09){const _0xe49661=a29_0x53a6f5;if(!_0x1a7e09)throw CliErrors[_0xe49661(0x83)](_0xe49661(0x8b));if(!existsSync(_0x1a7e09))throw CliErrors['validation'](_0xe49661(0xaa)+_0x1a7e09);if(!statSync(_0x1a7e09)[_0xe49661(0x86)]())throw CliErrors[_0xe49661(0x83)](_0xe49661(0xad)+_0x1a7e09);const _0xa0c52c=readFileSync(_0x1a7e09,_0xe49661(0xa9));if(!_0xa0c52c[_0xe49661(0xac)]())throw CliErrors['validation']('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0xa0c52c;}function optionalTrimmed(_0xa8e21a){const _0x29eb2b=a29_0x53a6f5,_0x840863=String(_0xa8e21a||'')[_0x29eb2b(0xac)]();return _0x840863||undefined;}function summarizeBff(_0x315d7d){const _0x4afdd6=a29_0x53a6f5;return{'id':_0x315d7d['id'],'appCode':_0x315d7d[_0x4afdd6(0x93)],'functionName':_0x315d7d[_0x4afdd6(0x7d)],'description':_0x315d7d[_0x4afdd6(0x90)],'scriptType':_0x315d7d[_0x4afdd6(0x99)],'version':_0x315d7d[_0x4afdd6(0x84)],'gmtModified':_0x315d7d[_0x4afdd6(0xa5)],'updateTime':_0x315d7d[_0x4afdd6(0x9a)]};}function detailBff(_0x3c2a7c){const _0x382688=a29_0x53a6f5;return{'id':_0x3c2a7c['id'],'appCode':_0x3c2a7c[_0x382688(0x93)],'functionName':_0x3c2a7c[_0x382688(0x7d)],'description':_0x3c2a7c[_0x382688(0x90)],'scriptType':_0x3c2a7c['scriptType'],'scriptContent':_0x3c2a7c[_0x382688(0x82)]??'','config':_0x3c2a7c[_0x382688(0x85)],'version':_0x3c2a7c['version'],'createUserId':_0x3c2a7c[_0x382688(0x95)],'gmtCreate':_0x3c2a7c[_0x382688(0xa8)],'gmtModified':_0x3c2a7c['gmtModified'],'createTime':_0x3c2a7c[_0x382688(0x77)],'updateTime':_0x3c2a7c[_0x382688(0x9a)]};}function buildCreateInput(_0x21d3fc){const _0x2b20d2=a29_0x53a6f5;return{'functionName':normalizeFunctionName(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x87))),...optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x90)))?{'description':optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x90)))}:{},'scriptContent':readScriptFile(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0xa1))),...optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x76)))?{'sourceSessionId':optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)]('source-session-id'))}:{}};}function a29_0x35ee(){const _0x5bfdd6=['bool','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','build','source-session-id','createTime','Created\x20personal\x20BFF\x20','string','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','Update\x20a\x20personal\x20BFF\x20by\x20id','write','functionName','list','Preview:\x20create\x20personal\x20BFF\x20','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','Optional\x20source\x20RuntimeAgent\x20session\x20id','scriptContent','validation','version','config','isFile','name','detail','POST','update','File\x20path\x20is\x20required.','num','Personal\x20BFF\x20description','keys','length','description','1361360AWxlZo','str','appCode','test','createUserId','3166475qGBXdN','personal-bff','read','scriptType','updateTime','create','/client/runtime-bff/personal/create','508782lxgywG','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','verbose','7bprbaN','file','1459368xXkReb','flag','13999312kBlqWY','gmtModified','926259dXgNlq','isArray','gmtCreate','utf8','File\x20not\x20found:\x20','/update','trim','File\x20is\x20not\x20a\x20regular\x20file:\x20','--params\x20must\x20be\x20a\x20JSON\x20object.','body','params','Personal\x20BFF\x20script\x20ID','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','1026966hTtrio','high-risk-write'];a29_0x35ee=function(){return _0x5bfdd6;};return a29_0x35ee();}function buildUpdateInput(_0x333ba1){const _0x1f6d90=a29_0x53a6f5,_0xb2ed63={};optionalTrimmed(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0x87)))&&(_0xb2ed63['functionName']=normalizeFunctionName(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0x87))));_0x333ba1[_0x1f6d90(0xa3)](_0x1f6d90(0x90))!==undefined&&(_0xb2ed63[_0x1f6d90(0x90)]=_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0x90)));optionalTrimmed(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0xa1)))&&(_0xb2ed63['scriptContent']=readScriptFile(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0xa1))));_0x333ba1[_0x1f6d90(0xa3)](_0x1f6d90(0x76))!==undefined&&(_0xb2ed63['sourceSessionId']=_0x333ba1['str'](_0x1f6d90(0x76)));if(Object[_0x1f6d90(0x8e)](_0xb2ed63)[_0x1f6d90(0x8f)]===0x0)throw CliErrors[_0x1f6d90(0x83)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0xb2ed63;}function parseExecParams(_0xd7e1c2){const _0x5021ff=a29_0x53a6f5,_0x4d72c7=parseJsonParams(_0xd7e1c2)??{};if(Array[_0x5021ff(0xa7)](_0x4d72c7))throw CliErrors[_0x5021ff(0x83)](_0x5021ff(0xae));return _0x4d72c7;}const personalBffList={'service':a29_0x53a6f5(0x97),'command':a29_0x53a6f5(0x7e),'description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x53eb15){const _0x89c93b=a29_0x53a6f5,_0x57ad33=await listPersonalBffs(_0x53eb15[_0x89c93b(0x93)]);return{'ok':!![],'data':{'total':_0x57ad33[_0x89c93b(0x8f)],'items':_0x53eb15[_0x89c93b(0x73)](_0x89c93b(0x9f))?_0x57ad33:_0x57ad33['map'](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':a29_0x53a6f5(0x88),'description':'Show\x20one\x20personal\x20BFF\x20by\x20id','risk':a29_0x53a6f5(0x98),'flags':[{...ID_FLAG,'description':a29_0x53a6f5(0xb1)}],async 'execute'(_0xdbcc5b){const _0x429d5e=a29_0x53a6f5,_0x268aed=await getPersonalBff(_0xdbcc5b[_0x429d5e(0x8c)]('id'),_0xdbcc5b[_0x429d5e(0x93)]);return{'ok':!![],'data':detailBff(_0x268aed)};}},personalBffCreate={'service':'personal-bff','command':a29_0x53a6f5(0x9b),'description':a29_0x53a6f5(0x9e),'risk':a29_0x53a6f5(0x7c),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x261cd0){const _0x2d6e72=a29_0x53a6f5,_0x4d817c=buildCreateInput(_0x261cd0),_0x53c21b=await createPersonalBff(_0x261cd0['appCode'],_0x4d817c);return{'ok':!![],'data':detailBff(_0x53c21b),'message':_0x2d6e72(0x78)+_0x53c21b['id']+(_0x53c21b['functionName']?'\x20('+_0x53c21b['functionName']+')':'')};},async 'dryRun'(_0x2feeac){const _0x5e8831=a29_0x53a6f5,_0x5757bc=buildCreateInput(_0x2feeac);return dryRun(_0x5e8831(0x89),_0x5e8831(0x9c))[_0x5e8831(0xaf)]({'appCode':_0x2feeac['appCode'],..._0x5757bc})['description'](_0x5e8831(0x7f)+_0x5757bc[_0x5e8831(0x7d)])[_0x5e8831(0x75)]();}},personalBffUpdate={'service':a29_0x53a6f5(0x97),'command':a29_0x53a6f5(0x8a),'description':a29_0x53a6f5(0x7b),'risk':'write','flags':[{...ID_FLAG,'description':a29_0x53a6f5(0xb1)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x146631){const _0x269f5e=a29_0x53a6f5,_0x47ec8d=_0x146631[_0x269f5e(0x8c)]('id'),_0x4f8a18=buildUpdateInput(_0x146631),_0x231531=await updatePersonalBff(_0x47ec8d,_0x146631[_0x269f5e(0x93)],_0x4f8a18);return{'ok':!![],'data':detailBff(_0x231531),'message':'Updated\x20personal\x20BFF\x20'+_0x231531['id']+(_0x231531[_0x269f5e(0x7d)]?'\x20('+_0x231531[_0x269f5e(0x7d)]+')':'')};},async 'dryRun'(_0x4d1ca1){const _0x44260b=a29_0x53a6f5,_0x59c723=_0x4d1ca1[_0x44260b(0x8c)]('id'),_0x4dc19f=buildUpdateInput(_0x4d1ca1);return dryRun(_0x44260b(0x89),'/client/runtime-bff/personal/'+_0x59c723+_0x44260b(0xab))[_0x44260b(0xaf)]({'appCode':_0x4d1ca1[_0x44260b(0x93)],..._0x4dc19f})[_0x44260b(0x90)]('Preview:\x20update\x20personal\x20BFF\x20'+_0x59c723)['build']();}},personalBffExec={'service':a29_0x53a6f5(0x97),'command':'exec','description':a29_0x53a6f5(0x7a),'risk':a29_0x53a6f5(0x72),'flags':[{...ID_FLAG,'description':a29_0x53a6f5(0xb1)},{...PARAMS_FLAG,'description':a29_0x53a6f5(0x74)}],async 'validate'(_0x1fa77b){const _0x1811a0=a29_0x53a6f5;parseExecParams(_0x1fa77b[_0x1811a0(0x92)]('params'));},async 'execute'(_0x3c5247){const _0x440c46=a29_0x53a6f5,_0x5958a8=_0x3c5247[_0x440c46(0x8c)]('id'),_0x27c7bf=parseExecParams(_0x3c5247[_0x440c46(0x92)](_0x440c46(0xb0))),_0x411ffe=await executePersonalBff(_0x5958a8,_0x3c5247[_0x440c46(0x93)],_0x27c7bf);return{'ok':!![],'data':{'result':_0x411ffe},'message':'Executed\x20personal\x20BFF\x20'+_0x5958a8};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x3801dd=a30_0x502e;(function(_0x24bc5c,_0x61fcd5){const _0x3ffee6=a30_0x502e,_0x3e1208=_0x24bc5c();while(!![]){try{const _0x41a4b4=parseInt(_0x3ffee6(0x110))/0x1+parseInt(_0x3ffee6(0x109))/0x2*(-parseInt(_0x3ffee6(0x124))/0x3)+-parseInt(_0x3ffee6(0x116))/0x4+parseInt(_0x3ffee6(0x11e))/0x5*(-parseInt(_0x3ffee6(0x103))/0x6)+parseInt(_0x3ffee6(0x106))/0x7+-parseInt(_0x3ffee6(0x11f))/0x8+-parseInt(_0x3ffee6(0x121))/0x9*(-parseInt(_0x3ffee6(0x108))/0xa);if(_0x41a4b4===_0x61fcd5)break;else _0x3e1208['push'](_0x3e1208['shift']());}catch(_0x15fa25){_0x3e1208['push'](_0x3e1208['shift']());}}}(a30_0x1dff,0xe4115));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';function a30_0x1dff(){const _0x213e0b=['154973DCDVVU','BFF\x20Scripts','10zoZUqh','202YMuyeB','isSingleCommand','API\x20Documentation','\x20\x20[write]','set','CLI\x20Built-in\x20Skill','service','1182209hjgGKC','command','login','\x20\x20[high-risk-write]','defaultCommand','Datasets','3533784JrOIGQ','Authentication','Instant\x20API','list','install','get','description','read','4116155ZUIALh','862712kjFJhh','Self\x20Update','29051118HiGLbi','Diagnostics','push','50007oGFxoz','risk','Personal\x20BFF','Knowledge\x20Base','from','map','App\x20Management','Artifacts','6HGRKse','Schema','Configuration'];a30_0x1dff=function(){return _0x213e0b;};return a30_0x1dff();}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';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';import{personalBffDefinitions}from'../commands/personal-bff/index.js';function a30_0x502e(_0x564f43,_0x43a5db){_0x564f43=_0x564f43-0xfd;const _0x1dff66=a30_0x1dff();let _0x502ec7=_0x1dff66[_0x564f43];return _0x502ec7;}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(_0x1d123d){const _0x1a3782=a30_0x502e;for(const _0x27d683 of _0x1d123d){definitions[_0x1a3782(0x10d)](_0x27d683[_0x1a3782(0x10f)]+':'+_0x27d683['command'],_0x27d683);let _0x26d6da=serviceGroups[_0x1a3782(0x11b)](_0x27d683['service']);!_0x26d6da&&(_0x26d6da=[],serviceGroups[_0x1a3782(0x10d)](_0x27d683[_0x1a3782(0x10f)],_0x26d6da)),_0x26d6da['push'](_0x27d683);}}function registerService(_0x1314b8,_0x26f37d,_0xecd8d0){const _0x5ee196=a30_0x502e;registerDefinitions(_0x26f37d);const _0x54b199=_0x829e20=>_0x829e20===_0x5ee196(0x11d)?'':_0x829e20==='write'?_0x5ee196(0x10c):_0x5ee196(0x113),_0x525209={'service':_0x26f37d[0x0]['service'],'label':_0x1314b8,'commands':_0x26f37d[_0x5ee196(0x100)](_0x1ac46d=>({'command':_0x1ac46d[_0x5ee196(0x111)],'description':_0x1ac46d[_0x5ee196(0x11c)],'tag':_0x54b199(_0x1ac46d[_0x5ee196(0x125)])})),'defaultCommand':_0xecd8d0?.[_0x5ee196(0x114)]??(_0xecd8d0?.[_0x5ee196(0x10a)]?_0x26f37d[0x0]['command']:undefined),'isSingleCommand':_0xecd8d0?.['isSingleCommand']};serviceRegistry[_0x5ee196(0x123)](_0x525209),serviceByName[_0x5ee196(0x10d)](_0x525209[_0x5ee196(0x10f)],_0x525209);}registerService(a30_0x3801dd(0x117),authDefinitions,{'defaultCommand':a30_0x3801dd(0x112)}),registerService(a30_0x3801dd(0x10b),apiDocDefinitions),registerService(a30_0x3801dd(0x115),datasetDefinitions),registerService(a30_0x3801dd(0x118),dataDefinitions),registerService('SQL\x20Queries',sqlDefinitions),registerService(a30_0x3801dd(0x107),bffDefinitions),registerService(a30_0x3801dd(0xfd),personalBffDefinitions),registerService(a30_0x3801dd(0x102),artifactDefinitions),registerService(a30_0x3801dd(0xfe),kbDefinitions),registerService(a30_0x3801dd(0x101),appDefinitions,{'defaultCommand':a30_0x3801dd(0x119)}),registerService('Workspace',workspaceDefinitions),registerService(a30_0x3801dd(0x105),configDefinitions,{'defaultCommand':a30_0x3801dd(0x119)}),registerService('Service\x20Tree',serviceDefinitions,{'defaultCommand':'list'}),registerService('Skills',skillDefinitions,{'defaultCommand':a30_0x3801dd(0x11a)}),registerService(a30_0x3801dd(0x10e),cliSkillDefinitions,{'defaultCommand':'install'}),registerService(a30_0x3801dd(0x120),[updateDefinition],{'defaultCommand':'run','isSingleCommand':!![]}),registerService(a30_0x3801dd(0x122),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x3801dd(0x104),[schemaDefinition],{'isSingleCommand':!![]}),registerService('Logs',logsDefinitions,{'defaultCommand':'show'});export function findDefinition(_0x3ab506,_0x24322e){const _0x48ef78=a30_0x3801dd;return definitions[_0x48ef78(0x11b)](_0x3ab506+':'+_0x24322e);}export function isKnownService(_0x24d7e9){return serviceByName['has'](_0x24d7e9);}export function getServiceEntry(_0x245bc6){const _0x367856=a30_0x3801dd;return serviceByName[_0x367856(0x11b)](_0x245bc6);}export function getAllDefinitions(){const _0x20908d=a30_0x3801dd;return Array[_0x20908d(0xff)](definitions['values']());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a31_0x59a1b7=a31_0x4982;function a31_0x4982(_0x80cdda,_0x49c817){_0x80cdda=_0x80cdda-0x1ce;const _0x2bb9a5=a31_0x2bb9();let _0x4982b2=_0x2bb9a5[_0x80cdda];return _0x4982b2;}(function(_0x148b82,_0x4b3ee8){const _0x16d204=a31_0x4982,_0x2c989c=_0x148b82();while(!![]){try{const _0xd9a23e=-parseInt(_0x16d204(0x1d3))/0x1*(-parseInt(_0x16d204(0x1ce))/0x2)+-parseInt(_0x16d204(0x1d9))/0x3*(parseInt(_0x16d204(0x1db))/0x4)+-parseInt(_0x16d204(0x1dc))/0x5+parseInt(_0x16d204(0x1cf))/0x6+parseInt(_0x16d204(0x1d6))/0x7*(-parseInt(_0x16d204(0x1d4))/0x8)+parseInt(_0x16d204(0x1d1))/0x9*(parseInt(_0x16d204(0x1d0))/0xa)+parseInt(_0x16d204(0x1d5))/0xb*(-parseInt(_0x16d204(0x1d2))/0xc);if(_0xd9a23e===_0x4b3ee8)break;else _0x2c989c['push'](_0x2c989c['shift']());}catch(_0x47a54){_0x2c989c['push'](_0x2c989c['shift']());}}}(a31_0x2bb9,0x4f492));function a31_0x2bb9(){const _0x3b9590=['595012PtAHRd','2079900fGlRMv','2662210vSrejS','9qyUlrT','444rHGETk','1zcTefF','32yXJcaQ','19756HGVbCo','69916rGaKMw','schema','export','6RjeKAK','Export\x20machine-readable\x20command\x20schema\x20(JSON)','121080wDkLcW','2093395PKxrrS'];a31_0x2bb9=function(){return _0x3b9590;};return a31_0x2bb9();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x27ae4b){const _0x1c06e7=await buildSchemaPayload();return{'ok':!![],'data':_0x1c06e7};}export const schemaDefinition={'service':a31_0x59a1b7(0x1d7),'command':a31_0x59a1b7(0x1d8),'description':a31_0x59a1b7(0x1da),'risk':'read','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(_0x5a9148,_0x56bcab){const _0x5cffcc=a32_0x44b2,_0x2fdd27=_0x5a9148();while(!![]){try{const _0x4428b7=-parseInt(_0x5cffcc(0x154))/0x1+parseInt(_0x5cffcc(0x184))/0x2*(parseInt(_0x5cffcc(0x15a))/0x3)+parseInt(_0x5cffcc(0x182))/0x4+-parseInt(_0x5cffcc(0x14e))/0x5*(parseInt(_0x5cffcc(0x121))/0x6)+-parseInt(_0x5cffcc(0x12e))/0x7*(-parseInt(_0x5cffcc(0x132))/0x8)+parseInt(_0x5cffcc(0x169))/0x9*(-parseInt(_0x5cffcc(0x18a))/0xa)+parseInt(_0x5cffcc(0x15d))/0xb;if(_0x4428b7===_0x56bcab)break;else _0x2fdd27['push'](_0x2fdd27['shift']());}catch(_0x4dccc9){_0x2fdd27['push'](_0x2fdd27['shift']());}}}(a32_0xccc1,0x2d684));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(_0x3525ee,_0x443dfb){const _0xe51f14=a32_0x44b2,_0x34a2b4=listLocalServiceTrees();let _0x8d1bec;for(const _0x29614b of _0x34a2b4){const _0x378907=matchServiceTreeCommand(_0x29614b,_0x3525ee);if(!_0x378907)continue;(!_0x8d1bec||_0x378907[_0xe51f14(0x165)][_0xe51f14(0x172)][_0xe51f14(0x185)]>_0x8d1bec[_0xe51f14(0x165)]['fullPath'][_0xe51f14(0x185)])&&(_0x8d1bec={'tree':_0x29614b,'command':_0x378907[_0xe51f14(0x165)],'remainingArgs':_0x378907[_0xe51f14(0x12c)]});}if(!_0x8d1bec)return undefined;const _0xb1be01={..._0x443dfb};return applyAppBinding(_0x8d1bec['tree'],_0x8d1bec[_0xe51f14(0x165)],_0xb1be01),{'definition':buildDynamicCommandDefinition(_0x8d1bec['tree'],_0x8d1bec[_0xe51f14(0x165)]),'args':_0x8d1bec[_0xe51f14(0x12c)],'flags':_0xb1be01,'tree':_0x8d1bec[_0xe51f14(0x148)],'command':_0x8d1bec[_0xe51f14(0x165)]};}export function generateDynamicServiceHelp(_0x2e541b){const _0x53dd81=a32_0x44b2,_0x619f97=listLocalServiceTrees()[_0x53dd81(0x14c)](_0x4a4824=>_0x4a4824[_0x53dd81(0x152)]['code']===_0x2e541b);if(!_0x619f97)return undefined;const _0x43e3fe=[CLI_BIN_NAME+'\x20'+_0x2e541b+_0x53dd81(0x13d),'',_0x619f97[_0x53dd81(0x152)][_0x53dd81(0x168)]||_0x2e541b,_0x619f97[_0x53dd81(0x152)][_0x53dd81(0x183)]?'\x20\x20'+_0x619f97['service'][_0x53dd81(0x183)]:'','',_0x53dd81(0x123),..._0x619f97[_0x53dd81(0x175)][_0x53dd81(0x141)](_0x346be3=>{const _0x50569c=_0x53dd81,_0x4cde81=_0x346be3[_0x50569c(0x172)][_0x50569c(0x173)](0x1)[_0x50569c(0x155)]('\x20'),_0x2a2c58=_0x346be3[_0x50569c(0x143)]==='read'?'':'\x20['+_0x346be3[_0x50569c(0x143)]+']';return'\x20\x20'+_0x4cde81[_0x50569c(0x170)](0x18)+'\x20'+(_0x346be3[_0x50569c(0x183)]||'')+_0x2a2c58;}),'',_0x53dd81(0x136)+CLI_BIN_NAME+_0x53dd81(0x167)+_0x2e541b+_0x53dd81(0x124)][_0x53dd81(0x12b)](Boolean);return _0x43e3fe[_0x53dd81(0x155)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x59adfc=>{const _0x3d27d0=a32_0x44b2,_0x5e0a8c=_0x59adfc[_0x3d27d0(0x176)];return{'service':_0x5e0a8c['service'][_0x3d27d0(0x127)],'label':_0x5e0a8c[_0x3d27d0(0x152)][_0x3d27d0(0x168)]||_0x5e0a8c['service']['code'],'commands':_0x5e0a8c[_0x3d27d0(0x175)][_0x3d27d0(0x141)](_0x622103=>({'command':dynamicCommandName(_0x622103),'description':_0x622103['description']||_0x3d27d0(0x162)+_0x622103[_0x3d27d0(0x163)],'tag':riskTag(_0x622103[_0x3d27d0(0x143)])}))};});}export function getDynamicServiceEntry(_0x5d014f){const _0x215d78=a32_0x44b2;return listDynamicServiceEntries()[_0x215d78(0x14c)](_0x28e982=>_0x28e982[_0x215d78(0x152)]===_0x5d014f);}function a32_0xccc1(){const _0x5872ea=['description','4vJasbD','length','boolean','fromEntries','app','appBindings','296790rKQzUB','1617642CMfBsN','string','Commands:','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20command:\x20','bffId','code','type','data','validation','filter','remainingArgs','appRef','7cITykc','source','\x20requires\x20target.sqlCode.','read','1601224JHEbqN','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','Use\x20`','\x20->\x20','args','now','cliName','Unsupported\x20service\x20target\x20kind:\x20','entries','\x20<command>\x20[flags]','appcode','flatMap','\x20\x20\x20\x20datasetCode:\x20','map','scriptName','risk','target','context.','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','default','tree','ctx.','tableName','employeeId','find','nickname','5NIkivA','Unknown\x20appRef\x20\x22','mapTo','push','service','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','12409LxgifC','join','\x22\x20in\x20service\x20command\x20','nickName','Preview\x20dynamic\x20service\x20command:\x20','\x20\x20[','23808SwwVpd','\x20requires\x20target.scriptName.','\x20\x20\x20\x20datatable:\x20','2929311wucyZX','sql','\x20\x20MAP\x20TO','bffCode','kind','Run\x20service\x20command\x20','cliPath','required','command','dbtableConfig','\x20service\x20detail\x20--service\x20','name','27kazNXG','startsWith','userName','appCode','params','\x20\x20\x20\x20sqlCode:\x20','Service\x20command\x20','padEnd','loginName','fullPath','slice','operator','commands','normalizedManifest','sqlCode','SERVICE_TREE','env','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','enum','trim','Cannot\x20resolve\x20datatable\x20\x22','flags','userId','datasetCode','\x20completed\x20in\x20','298860GzEgkE'];a32_0xccc1=function(){return _0x5872ea;};return a32_0xccc1();}export function listDynamicServiceDefinitions(_0x48919c){const _0x231c71=a32_0x44b2;return listLocalServiceTrees()[_0x231c71(0x12b)](_0x1377ae=>!_0x48919c||_0x1377ae[_0x231c71(0x152)][_0x231c71(0x127)]===_0x48919c)[_0x231c71(0x13f)](_0x220e73=>_0x220e73['commands']['map'](_0x33be4b=>buildDynamicCommandDefinition(_0x220e73,_0x33be4b)));}export function getDynamicServiceDefinitions(_0x536a1f){const _0x471612=listDynamicServiceDefinitions(_0x536a1f);return _0x471612['length']>0x0?_0x471612:undefined;}export function findDynamicServiceDefinition(_0x32e12b,_0x4c948c){const _0x1abb31=a32_0x44b2;return listDynamicServiceDefinitions(_0x32e12b)[_0x1abb31(0x14c)](_0x458643=>_0x458643['command']===_0x4c948c);}export function buildDynamicCommandDefinition(_0x2f94fe,_0x90ea51){const _0x48b772=a32_0x44b2;return{'service':_0x2f94fe[_0x48b772(0x152)][_0x48b772(0x127)],'command':dynamicCommandName(_0x90ea51),'description':_0x90ea51[_0x48b772(0x183)]||_0x48b772(0x162)+_0x90ea51[_0x48b772(0x163)],'risk':_0x90ea51[_0x48b772(0x143)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x90ea51[_0x48b772(0x138)][_0x48b772(0x141)](_0x5cc778=>({'name':_0x5cc778[_0x48b772(0x168)],'description':_0x5cc778['description']||_0x5cc778['name'],'required':_0x5cc778[_0x48b772(0x164)]})),'flags':_0x90ea51[_0x48b772(0x17e)][_0x48b772(0x141)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x90ea51),async 'dryRun'(_0x172ac6){const _0x546862=_0x48b772,_0x5ea0ec=await compilePlan(_0x90ea51,_0x172ac6);return{'method':_0x546862(0x178),'url':_0x90ea51[_0x546862(0x163)],'body':{'target':targetPreview(_0x5ea0ec),'params':_0x5ea0ec['params']},'description':_0x546862(0x158)+_0x90ea51[_0x546862(0x163)]};},async 'execute'(_0x3473f0){const _0x520c9b=_0x48b772,_0x8aa14e=await compilePlan(_0x90ea51,_0x3473f0),_0x49ed2e=Date[_0x520c9b(0x139)](),_0x7f7f63=await executePlan(_0x8aa14e,_0x90ea51,_0x3473f0),_0x64a637=Date[_0x520c9b(0x139)]()-_0x49ed2e;return{'ok':!![],'data':{'service':_0x2f94fe['service'],'command':_0x90ea51['cliPath'],'target':targetPreview(_0x8aa14e),'result':_0x7f7f63,'elapsed':_0x64a637},'message':_0x520c9b(0x16f)+_0x90ea51[_0x520c9b(0x163)]+_0x520c9b(0x181)+_0x64a637+'ms'};}};}function dynamicCommandName(_0x3cca56){const _0x3ef498=a32_0x44b2;return _0x3cca56[_0x3ef498(0x172)][_0x3ef498(0x173)](0x1)[_0x3ef498(0x155)]('\x20');}function riskTag(_0x345288){const _0x4019ba=a32_0x44b2;return _0x345288===_0x4019ba(0x131)?'':_0x4019ba(0x159)+_0x345288+']';}function flagToCommandFlag(_0x3c22d3){const _0x5877b8=a32_0x44b2;return{'name':_0x3c22d3[_0x5877b8(0x13a)],'type':_0x3c22d3[_0x5877b8(0x128)]==='json'?_0x5877b8(0x122):_0x3c22d3[_0x5877b8(0x128)],'description':_0x3c22d3[_0x5877b8(0x183)]||_0x3c22d3[_0x5877b8(0x168)],'required':_0x3c22d3[_0x5877b8(0x164)],'default':isPrimitiveFlagDefault(_0x3c22d3[_0x5877b8(0x147)])?_0x3c22d3[_0x5877b8(0x147)]:undefined,'enum':_0x3c22d3[_0x5877b8(0x17b)]};}async function compilePlan(_0xc65808,_0x27c8c0){const _0x200b33=a32_0x44b2;return compileServiceTreeCommand(_0xc65808,{'flags':_0x27c8c0['rawFlags'],'args':_0x27c8c0[_0x200b33(0x138)],'context':await buildServiceContext(_0xc65808,_0x27c8c0)});}async function buildServiceContext(_0x3a97e2,_0x311fe4){const _0x326fea=a32_0x44b2,_0x1f4241={'appCode':_0x311fe4[_0x326fea(0x16c)],'env':_0x311fe4['envName'],'envName':_0x311fe4['envName']};if(!usesRuntimeContext(_0x3a97e2))return _0x1f4241;const _0x3a7e96=await getLoginUserInfo(),_0x31a61f=pickFirst(_0x3a7e96[_0x326fea(0x17f)],_0x3a7e96['id']);return{..._0x1f4241,'user':_0x3a7e96,'userId':_0x31a61f,'id':_0x3a7e96['id'],'username':pickFirst(_0x3a7e96['username'],_0x3a7e96[_0x326fea(0x16b)],_0x3a7e96[_0x326fea(0x171)]),'userName':_0x3a7e96['userName'],'nickname':pickFirst(_0x3a7e96[_0x326fea(0x14d)],_0x3a7e96[_0x326fea(0x157)]),'nickName':_0x3a7e96[_0x326fea(0x157)],'tenantCode':_0x3a7e96['tenantCode'],'employeeId':_0x3a7e96[_0x326fea(0x14b)]};}function usesRuntimeContext(_0x4c7bd3){const _0x5a738a=a32_0x44b2;return _0x4c7bd3[_0x5a738a(0x150)]['some'](_0x199252=>typeof _0x199252[_0x5a738a(0x12f)]==='string'&&(_0x199252[_0x5a738a(0x12f)]['startsWith'](_0x5a738a(0x145))||_0x199252[_0x5a738a(0x12f)][_0x5a738a(0x16a)](_0x5a738a(0x149))));}function a32_0x44b2(_0x237d9e,_0x430bbb){_0x237d9e=_0x237d9e-0x121;const _0xccc152=a32_0xccc1();let _0x44b297=_0xccc152[_0x237d9e];return _0x44b297;}function pickFirst(..._0x16623c){const _0x1dc9bf=a32_0x44b2;return _0x16623c[_0x1dc9bf(0x14c)](_0xa9ce5a=>_0xa9ce5a!==undefined&&_0xa9ce5a!==null);}async function executePlan(_0x3d5abf,_0x551959,_0x4c2c8b){const _0xa5847a=a32_0x44b2;if(_0x3d5abf[_0xa5847a(0x161)]===_0xa5847a(0x129)){const _0xc9703f=await resolveDatasetCode(_0x3d5abf,_0x551959,_0x4c2c8b);return executeData(_0xc9703f,_0x3d5abf[_0xa5847a(0x165)],_0x3d5abf[_0xa5847a(0x16d)]);}if(_0x3d5abf[_0xa5847a(0x161)]===_0xa5847a(0x15e)){if(!_0x3d5abf['sqlCode'])throw CliErrors[_0xa5847a(0x12a)](_0xa5847a(0x16f)+_0x551959[_0xa5847a(0x163)]+_0xa5847a(0x130));return executeSdkSql(_0x3d5abf[_0xa5847a(0x177)],normalizeScalarParams(_0x3d5abf[_0xa5847a(0x16d)]));}if(_0x3d5abf[_0xa5847a(0x161)]==='bff'){const _0x50f77f=_0x3d5abf['scriptName']||_0x3d5abf['bffCode']||(_0x3d5abf[_0xa5847a(0x126)]==null?'':String(_0x3d5abf[_0xa5847a(0x126)]));if(!_0x50f77f)throw CliErrors[_0xa5847a(0x12a)](_0xa5847a(0x16f)+_0x551959[_0xa5847a(0x163)]+_0xa5847a(0x15b));return executeSdkBff(_0x50f77f,_0x3d5abf[_0xa5847a(0x16d)]);}throw CliErrors[_0xa5847a(0x12a)](_0xa5847a(0x13b)+_0x3d5abf[_0xa5847a(0x161)]);}async function resolveDatasetCode(_0xcdda93,_0x4dd73b,_0x13a82e){const _0x5d9b50=a32_0x44b2;if(_0xcdda93[_0x5d9b50(0x180)])return _0xcdda93[_0x5d9b50(0x180)];if(!_0xcdda93[_0x5d9b50(0x134)])throw CliErrors['validation'](_0x5d9b50(0x16f)+_0x4dd73b[_0x5d9b50(0x163)]+_0x5d9b50(0x146));const _0x5631bd=await listDatasets(_0x13a82e[_0x5d9b50(0x16c)]),_0x1ac98e=_0x5631bd[_0x5d9b50(0x14c)](_0x1c874c=>_0x1c874c[_0x5d9b50(0x166)]?.[_0x5d9b50(0x14a)]===_0xcdda93['datatable']);if(!_0x1ac98e?.[_0x5d9b50(0x127)])throw CliErrors[_0x5d9b50(0x12a)](_0x5d9b50(0x17d)+_0xcdda93['datatable']+_0x5d9b50(0x153)+_0x13a82e['appCode']+'.',_0x5d9b50(0x133));return _0x1ac98e[_0x5d9b50(0x127)];}function applyAppBinding(_0x271f3f,_0x2c2938,_0x371b4c){const _0x136dc1=a32_0x44b2,_0x495a7e=_0x2c2938['target'][_0x136dc1(0x12d)];if(!_0x495a7e)return;const _0x1778ef=_0x271f3f[_0x136dc1(0x189)][_0x495a7e];if(!_0x1778ef)throw CliErrors[_0x136dc1(0x12a)](_0x136dc1(0x14f)+_0x495a7e+_0x136dc1(0x156)+_0x2c2938[_0x136dc1(0x163)]+'.',_0x136dc1(0x17a));const _0x184f49=_0x1778ef[_0x136dc1(0x13e)]||_0x1778ef[_0x136dc1(0x16c)];_0x184f49&&!hasText(_0x371b4c['appcode'])&&(_0x371b4c[_0x136dc1(0x13e)]=_0x184f49),_0x1778ef['app']&&!hasText(_0x371b4c[_0x136dc1(0x188)])&&!hasText(_0x371b4c[_0x136dc1(0x13e)])&&(_0x371b4c[_0x136dc1(0x188)]=_0x1778ef['app']),_0x1778ef['env']&&!hasText(_0x371b4c[_0x136dc1(0x179)])&&(_0x371b4c['env']=_0x1778ef[_0x136dc1(0x179)]);}function renderDynamicCommandHelp(_0x3e315b){const _0x3eca15=a32_0x44b2,_0x4a15b7=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x3eca15(0x135)+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x161)],_0x3eca15(0x125)+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x165)]];if(_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x180)])_0x4a15b7[_0x3eca15(0x151)](_0x3eca15(0x140)+_0x3e315b[_0x3eca15(0x144)]['datasetCode']);if(_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x134)])_0x4a15b7['push'](_0x3eca15(0x15c)+_0x3e315b['target'][_0x3eca15(0x134)]);if(_0x3e315b[_0x3eca15(0x144)]['sqlCode'])_0x4a15b7['push'](_0x3eca15(0x16e)+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x177)]);if(_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x142)])_0x4a15b7[_0x3eca15(0x151)]('\x20\x20\x20\x20scriptName:\x20'+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x142)]);if(_0x3e315b[_0x3eca15(0x150)][_0x3eca15(0x185)]>0x0){_0x4a15b7[_0x3eca15(0x151)]('',_0x3eca15(0x15f));for(const _0x1bae74 of _0x3e315b[_0x3eca15(0x150)]){_0x4a15b7[_0x3eca15(0x151)]('\x20\x20\x20\x20'+(_0x1bae74[_0x3eca15(0x12f)]||'const')+_0x3eca15(0x137)+_0x1bae74[_0x3eca15(0x144)]+(_0x1bae74[_0x3eca15(0x174)]?'.'+_0x1bae74['operator']:''));}}return _0x4a15b7[_0x3eca15(0x155)]('\x0a');}function targetPreview(_0x46bc96){const _0x1d5730=a32_0x44b2;return{'kind':_0x46bc96[_0x1d5730(0x161)],'command':_0x46bc96['command'],'appRef':_0x46bc96[_0x1d5730(0x12d)],'datasetCode':_0x46bc96[_0x1d5730(0x180)],'datatable':_0x46bc96[_0x1d5730(0x134)],'sqlCode':_0x46bc96[_0x1d5730(0x177)],'bffCode':_0x46bc96[_0x1d5730(0x160)],'bffId':_0x46bc96['bffId'],'scriptName':_0x46bc96[_0x1d5730(0x142)]};}function normalizeScalarParams(_0x47e997){const _0x37b7cf=a32_0x44b2;return Object[_0x37b7cf(0x187)](Object[_0x37b7cf(0x13c)](_0x47e997)[_0x37b7cf(0x12b)](([,_0x46ecbf])=>typeof _0x46ecbf===_0x37b7cf(0x122)||typeof _0x46ecbf==='number'));}function hasText(_0x4252f7){const _0x12dcbf=a32_0x44b2;return typeof _0x4252f7==='string'&&_0x4252f7[_0x12dcbf(0x17c)]()[_0x12dcbf(0x185)]>0x0;}function isPrimitiveFlagDefault(_0x4d7b0b){const _0x181ab7=a32_0x44b2;return _0x4d7b0b===undefined||typeof _0x4d7b0b===_0x181ab7(0x122)||typeof _0x4d7b0b==='number'||typeof _0x4d7b0b===_0x181ab7(0x186);}
|
|
@@ -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_0x28f41c=a33_0x589c;function a33_0x589c(_0x15efc7,_0x5302ce){_0x15efc7=_0x15efc7-0x142;const _0x20c81e=a33_0x20c8();let _0x589ca6=_0x20c81e[_0x15efc7];return _0x589ca6;}(function(_0x4a1345,_0x166178){const _0x1e1ed9=a33_0x589c,_0x589855=_0x4a1345();while(!![]){try{const _0x38209f=parseInt(_0x1e1ed9(0x17e))/0x1+-parseInt(_0x1e1ed9(0x14f))/0x2+-parseInt(_0x1e1ed9(0x159))/0x3*(parseInt(_0x1e1ed9(0x14b))/0x4)+-parseInt(_0x1e1ed9(0x15d))/0x5+-parseInt(_0x1e1ed9(0x17f))/0x6*(parseInt(_0x1e1ed9(0x181))/0x7)+parseInt(_0x1e1ed9(0x162))/0x8+parseInt(_0x1e1ed9(0x161))/0x9;if(_0x38209f===_0x166178)break;else _0x589855['push'](_0x589855['shift']());}catch(_0x2fd3df){_0x589855['push'](_0x589855['shift']());}}}(a33_0x20c8,0x2c479));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a33_0x20c8(){const _0x288c3a=['export','lower\x20kebab-case\x20service\x20code','Updated','373192aBXhWu','Imported','normalizedManifest','list','160102kvIeXY','registryServiceCode','entries','registry','map','read','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20manifest\x20validation\x20passed.','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','entry','3jYEqnJ','flags','Imported\x20','target','975905mWrjZw','service','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','registryPath','3250233cBeVkv','2195224VhCkPv','filePath','Removed\x20service\x20','remove','kind','registryIndex','length','type','Local\x20service\x20not\x20found:\x20','serviceCode','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','commands','write','import','serviceCount','Service\x20Tree\x20manifest\x20file\x20path','name','warnings','\x20service\x20','str','cliPath','source','\x20service(s),\x20updated\x20','Exported\x20service\x20','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','validate','report','updated','18546ihxWRm','18pqnPbE','file','243103xDdjRg','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','manifests','risk','string','version','errors','required','reduce','replaced','imported','WRITE','hash'];a33_0x20c8=function(){return _0x288c3a;};return a33_0x20c8();}const FILE_FLAG={'name':a33_0x28f41c(0x180),'type':a33_0x28f41c(0x185),'required':!![],'description':a33_0x28f41c(0x171)},SERVICE_FLAG={'name':'service','type':'string','required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x28f41c(0x149)}};function summarizeService(_0x6eed65){const _0xdfe8ce=a33_0x28f41c;return{'serviceCode':_0x6eed65[_0xdfe8ce(0x16b)],'name':_0x6eed65['normalizedManifest'][_0xdfe8ce(0x15e)][_0xdfe8ce(0x172)],'version':_0x6eed65[_0xdfe8ce(0x186)],'importedAt':_0x6eed65['importedAt'],'source':_0x6eed65[_0xdfe8ce(0x177)],'commandCount':_0x6eed65[_0xdfe8ce(0x14d)][_0xdfe8ce(0x16d)][_0xdfe8ce(0x168)],'commands':_0x6eed65[_0xdfe8ce(0x14d)][_0xdfe8ce(0x16d)][_0xdfe8ce(0x153)](_0x41fca0=>({'path':_0x41fca0[_0xdfe8ce(0x176)],'description':_0x41fca0['description'],'risk':_0x41fca0['risk'],'target':_0x41fca0[_0xdfe8ce(0x15c)],'flags':_0x41fca0[_0xdfe8ce(0x15a)][_0xdfe8ce(0x153)](_0x237182=>({'name':_0x237182['name'],'cliName':_0x237182['cliName'],'type':_0x237182[_0xdfe8ce(0x169)],'required':_0x237182[_0xdfe8ce(0x142)]===!![]}))}))};}function summarizeLoadedManifest(_0x113f36){const _0x5510f5=a33_0x28f41c;return{'service':_0x113f36[_0x5510f5(0x14d)]?.[_0x5510f5(0x15e)],'version':_0x113f36['normalizedManifest']?.[_0x5510f5(0x186)],'commandCount':_0x113f36['normalizedManifest']?.['commands'][_0x5510f5(0x168)]??0x0,'commands':_0x113f36[_0x5510f5(0x14d)]?.[_0x5510f5(0x16d)]['map'](_0x37bb42=>({'path':_0x37bb42[_0x5510f5(0x176)],'risk':_0x37bb42[_0x5510f5(0x184)],'target':_0x37bb42['target']}))??[],'registryIndex':_0x113f36[_0x5510f5(0x167)],'registryServiceCode':_0x113f36[_0x5510f5(0x150)],'errors':_0x113f36[_0x5510f5(0x17c)][_0x5510f5(0x187)],'warnings':_0x113f36['report'][_0x5510f5(0x173)]};}export const serviceDefinitions=[{'service':'service','command':a33_0x28f41c(0x17b),'description':a33_0x28f41c(0x182),'risk':a33_0x28f41c(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x1a208c){const _0x14e539=a33_0x28f41c,_0x251b71=loadServiceManifestFromFile(_0x1a208c[_0x14e539(0x175)](_0x14e539(0x180)));if(!_0x251b71['report']['ok'])return{'ok':![],'data':{'file':_0x251b71[_0x14e539(0x163)],'hash':_0x251b71[_0x14e539(0x147)],'kind':_0x251b71[_0x14e539(0x166)],'serviceCount':_0x251b71[_0x14e539(0x183)][_0x14e539(0x168)],'services':_0x251b71[_0x14e539(0x183)][_0x14e539(0x153)](summarizeLoadedManifest),'errors':_0x251b71[_0x14e539(0x17c)][_0x14e539(0x187)],'warnings':_0x251b71['report'][_0x14e539(0x173)]},'message':formatValidationFailure(_0x251b71[_0x14e539(0x17c)])};if(_0x251b71[_0x14e539(0x166)]===_0x14e539(0x152)||_0x251b71[_0x14e539(0x183)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x251b71[_0x14e539(0x163)],'hash':_0x251b71[_0x14e539(0x147)],'kind':_0x251b71[_0x14e539(0x166)],'serviceCount':_0x251b71[_0x14e539(0x183)][_0x14e539(0x168)],'commandCount':_0x251b71['manifests'][_0x14e539(0x143)]((_0x4dfd67,_0x3f9c76)=>_0x4dfd67+(_0x3f9c76[_0x14e539(0x14d)]?.[_0x14e539(0x16d)][_0x14e539(0x168)]??0x0),0x0),'services':_0x251b71[_0x14e539(0x183)][_0x14e539(0x153)](summarizeLoadedManifest),'warnings':_0x251b71[_0x14e539(0x17c)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x251b71[_0x14e539(0x163)],'hash':_0x251b71[_0x14e539(0x147)],'kind':_0x251b71[_0x14e539(0x166)],'service':_0x251b71[_0x14e539(0x14d)]?.['service'],'version':_0x251b71['normalizedManifest']?.[_0x14e539(0x186)],'commandCount':_0x251b71[_0x14e539(0x14d)]?.[_0x14e539(0x16d)][_0x14e539(0x168)]??0x0,'commands':_0x251b71[_0x14e539(0x14d)]?.[_0x14e539(0x16d)][_0x14e539(0x153)](_0x245969=>({'path':_0x245969[_0x14e539(0x176)],'risk':_0x245969[_0x14e539(0x184)],'target':_0x245969[_0x14e539(0x15c)]})),'warnings':_0x251b71[_0x14e539(0x17c)][_0x14e539(0x173)]},'message':_0x14e539(0x156)};}},{'service':a33_0x28f41c(0x15e),'command':a33_0x28f41c(0x16f),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a33_0x28f41c(0x16e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x48dfbb){const _0x2aacfb=a33_0x28f41c,_0x53e9a7=loadServiceManifestFromFile(_0x48dfbb['str'](_0x2aacfb(0x180)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x53e9a7[_0x2aacfb(0x163)],'hash':_0x53e9a7['hash'],'kind':_0x53e9a7['kind'],'ok':_0x53e9a7[_0x2aacfb(0x17c)]['ok'],'service':_0x53e9a7[_0x2aacfb(0x14d)]?.[_0x2aacfb(0x15e)],'version':_0x53e9a7[_0x2aacfb(0x14d)]?.[_0x2aacfb(0x186)],'serviceCount':_0x53e9a7[_0x2aacfb(0x183)][_0x2aacfb(0x168)],'services':_0x53e9a7[_0x2aacfb(0x183)][_0x2aacfb(0x153)](_0x49fd30=>({'service':_0x49fd30[_0x2aacfb(0x14d)]?.[_0x2aacfb(0x15e)],'version':_0x49fd30[_0x2aacfb(0x14d)]?.['version'],'commandCount':_0x49fd30['normalizedManifest']?.[_0x2aacfb(0x16d)]['length']??0x0,'errors':_0x49fd30[_0x2aacfb(0x17c)][_0x2aacfb(0x187)]})),'errors':_0x53e9a7[_0x2aacfb(0x17c)][_0x2aacfb(0x187)],'commandCount':_0x53e9a7['normalizedManifest']?.[_0x2aacfb(0x16d)][_0x2aacfb(0x168)]??0x0},'description':_0x2aacfb(0x17a)};},async 'execute'(_0x4e4361){const _0xdc3328=a33_0x28f41c,_0xd24684=importServiceManifest(_0x4e4361[_0xdc3328(0x175)](_0xdc3328(0x180)));if(_0xd24684[_0xdc3328(0x151)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0xd24684[_0xdc3328(0x160)],'imported':_0xd24684[_0xdc3328(0x145)],'updated':_0xd24684[_0xdc3328(0x17d)],'serviceCount':_0xd24684[_0xdc3328(0x170)],'services':_0xd24684[_0xdc3328(0x151)][_0xdc3328(0x153)](summarizeService)},'message':_0xdc3328(0x15b)+_0xd24684[_0xdc3328(0x145)]+_0xdc3328(0x178)+_0xd24684[_0xdc3328(0x17d)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0xd24684[_0xdc3328(0x160)],'replaced':_0xd24684[_0xdc3328(0x144)],'imported':_0xd24684['imported'],'updated':_0xd24684[_0xdc3328(0x17d)],'serviceCount':_0xd24684[_0xdc3328(0x170)],'service':summarizeService(_0xd24684[_0xdc3328(0x158)])},'message':(_0xd24684[_0xdc3328(0x144)]?_0xdc3328(0x14a):_0xdc3328(0x14c))+_0xdc3328(0x174)+_0xd24684[_0xdc3328(0x158)][_0xdc3328(0x16b)]+'.'};}},{'service':a33_0x28f41c(0x15e),'command':a33_0x28f41c(0x148),'description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a33_0x28f41c(0x16e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x19beaf){const _0x13ddc5=a33_0x28f41c,_0x3b9de0=getLocalServiceEntry(_0x19beaf[_0x13ddc5(0x175)](_0x13ddc5(0x15e)));return{'method':_0x13ddc5(0x146),'url':_0x19beaf['str'](_0x13ddc5(0x180)),'body':{'service':_0x19beaf[_0x13ddc5(0x175)](_0x13ddc5(0x15e)),'found':Boolean(_0x3b9de0),'version':_0x3b9de0?.['version'],'source':_0x3b9de0?.[_0x13ddc5(0x177)]},'description':_0x13ddc5(0x15f)};},async 'execute'(_0x26d161){const _0x373d89=a33_0x28f41c,_0x4dffab=exportServiceManifest(_0x26d161[_0x373d89(0x175)](_0x373d89(0x15e)),_0x26d161[_0x373d89(0x175)]('file'));return{'ok':!![],'data':{'registryPath':_0x4dffab['registryPath'],'file':_0x4dffab[_0x373d89(0x163)],'service':summarizeService(_0x4dffab[_0x373d89(0x158)])},'message':_0x373d89(0x179)+_0x4dffab[_0x373d89(0x158)][_0x373d89(0x16b)]+'.'};}},{'service':'service','command':a33_0x28f41c(0x14e),'description':a33_0x28f41c(0x157),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x56dee2=a33_0x28f41c,_0x3e3f30=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3e3f30[_0x56dee2(0x168)],'services':_0x3e3f30[_0x56dee2(0x153)](summarizeService)}};}},{'service':a33_0x28f41c(0x15e),'command':a33_0x28f41c(0x165),'description':'Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','risk':a33_0x28f41c(0x16e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x216d92){const _0x1698c3=a33_0x28f41c,_0x3f5cf7=getLocalServiceEntry(_0x216d92[_0x1698c3(0x175)]('service'));return{'method':_0x1698c3(0x146),'url':getServiceRegistryPath(),'body':{'service':_0x216d92[_0x1698c3(0x175)](_0x1698c3(0x15e)),'found':Boolean(_0x3f5cf7),'version':_0x3f5cf7?.[_0x1698c3(0x186)],'source':_0x3f5cf7?.[_0x1698c3(0x177)]},'description':_0x1698c3(0x155)};},async 'execute'(_0x36c8eb){const _0x508218=a33_0x28f41c,_0x4bcc09=removeServiceManifest(_0x36c8eb[_0x508218(0x175)](_0x508218(0x15e)));return{'ok':!![],'data':{'registryPath':_0x4bcc09[_0x508218(0x160)],'serviceCount':_0x4bcc09[_0x508218(0x170)],'service':summarizeService(_0x4bcc09[_0x508218(0x158)])},'message':_0x508218(0x164)+_0x4bcc09[_0x508218(0x158)][_0x508218(0x16b)]+'.'};}},{'service':a33_0x28f41c(0x15e),'command':'detail','description':a33_0x28f41c(0x16c),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xd18f9a){const _0x4430b2=a33_0x28f41c,_0x55487a=getLocalServiceEntry(_0xd18f9a[_0x4430b2(0x175)](_0x4430b2(0x15e)));if(!_0x55487a)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xd18f9a[_0x4430b2(0x175)](_0x4430b2(0x15e))},'message':_0x4430b2(0x16a)+_0xd18f9a['str'](_0x4430b2(0x15e))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x55487a),'manifest':_0x55487a['manifest'],'normalizedManifest':_0x55487a['normalizedManifest']}};}}];
|
|
@@ -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_0x4d91a0=a34_0x4a34;(function(_0x272e66,_0x4cd02b){const _0x290100=a34_0x4a34,_0x1e9ca6=_0x272e66();while(!![]){try{const _0x5ec7bf=-parseInt(_0x290100(0x166))/0x1+parseInt(_0x290100(0x163))/0x2*(-parseInt(_0x290100(0x140))/0x3)+-parseInt(_0x290100(0x164))/0x4+-parseInt(_0x290100(0x17c))/0x5+parseInt(_0x290100(0x16b))/0x6*(parseInt(_0x290100(0x145))/0x7)+parseInt(_0x290100(0x138))/0x8+parseInt(_0x290100(0x14d))/0x9*(parseInt(_0x290100(0x15d))/0xa);if(_0x5ec7bf===_0x4cd02b)break;else _0x1e9ca6['push'](_0x1e9ca6['shift']());}catch(_0x267828){_0x1e9ca6['push'](_0x1e9ca6['shift']());}}}(a34_0x5d8d,0x421a6));import{createHash}from'node:crypto';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_0x4d91a0(0x15b);export function getServiceRegistryPath(_0x1dbb44={}){const _0x50b337=a34_0x4d91a0;return resolve(_0x1dbb44[_0x50b337(0x175)]??homedir(),PRODUCT_CONFIG[_0x50b337(0x150)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x143f53={}){const _0x12ce39=a34_0x4d91a0,_0x3a00e6=getServiceRegistryPath(_0x143f53);if(!existsSync(_0x3a00e6))return emptyServiceRegistry();try{const _0x4d30e1=readFileSync(_0x3a00e6,_0x12ce39(0x130));if(!_0x4d30e1['trim']())return emptyServiceRegistry();const _0x46f0f5=JSON['parse'](_0x4d30e1);if(_0x46f0f5['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x12ce39(0x141)](_0x12ce39(0x143)+String(_0x46f0f5[_0x12ce39(0x16d)]),_0x12ce39(0x146)+_0x3a00e6+'.');if(!Array[_0x12ce39(0x171)](_0x46f0f5[_0x12ce39(0x179)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x46f0f5[_0x12ce39(0x12d)],'services':_0x46f0f5[_0x12ce39(0x179)]};}catch(_0x3341c8){if(_0x3341c8 instanceof Error&&_0x3341c8[_0x12ce39(0x148)]===_0x12ce39(0x14c))throw _0x3341c8;throw CliErrors['validation'](_0x12ce39(0x147)+_0x3a00e6,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x574b10,_0x46b3ba={}){const _0x53fdc5=a34_0x4d91a0,_0x25f097=getServiceRegistryPath(_0x46b3ba),_0x40205b=dirname(_0x25f097);!existsSync(_0x40205b)&&mkdirSync(_0x40205b,{'recursive':!![]});const _0x181462=_0x25f097+_0x53fdc5(0x142);try{writeFileSync(_0x181462,JSON[_0x53fdc5(0x17d)](_0x574b10,null,0x2)+'\x0a',{'encoding':_0x53fdc5(0x130),'mode':0x180}),renameSync(_0x181462,_0x25f097);}catch(_0x6cba67){try{unlinkSync(_0x181462);}catch{}if(_0x6cba67?.['code']===_0x53fdc5(0x15c))throw CliErrors[_0x53fdc5(0x141)]('Cannot\x20write\x20service\x20registry:\x20'+_0x25f097);throw _0x6cba67;}return _0x25f097;}export function loadServiceManifestFromFile(_0x2b6843){const _0x38a842=a34_0x4d91a0,_0x207d62=resolve(_0x2b6843);if(!existsSync(_0x207d62))throw CliErrors['validation'](_0x38a842(0x156)+_0x2b6843);let _0x1b4dc9;const _0x772b5b=readFileSync(_0x207d62,_0x38a842(0x130));try{_0x1b4dc9=JSON[_0x38a842(0x162)](_0x772b5b);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x2b6843,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x3927bb=sha256(_0x772b5b),_0x33336c=extractLoadedServiceManifests(_0x1b4dc9,_0x3927bb),_0x391034=aggregateValidationReports(_0x33336c),_0x4d822b=_0x33336c[0x0];return{'filePath':_0x207d62,'hash':_0x3927bb,'kind':isServiceRegistryLike(_0x1b4dc9)?'registry':_0x38a842(0x178),'manifest':_0x4d822b?.[_0x38a842(0x178)]??_0x1b4dc9,'report':_0x391034,'normalizedManifest':_0x33336c[_0x38a842(0x16f)]===0x1?_0x4d822b?.[_0x38a842(0x14a)]:undefined,'manifests':_0x33336c};}export function importServiceManifest(_0x45ca25,_0xded252={}){const _0x40a26c=a34_0x4d91a0,_0x19f178=loadServiceManifestFromFile(_0x45ca25);if(!_0x19f178[_0x40a26c(0x17a)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x19f178[_0x40a26c(0x17a)]),_0x40a26c(0x13f));if(_0x19f178[_0x40a26c(0x158)][_0x40a26c(0x16f)]===0x0)throw CliErrors[_0x40a26c(0x141)](_0x40a26c(0x161),_0x40a26c(0x160));const _0xcd429c=readServiceRegistry(_0xded252),_0x15552a=(_0xded252['now']??(()=>new Date()))()['toISOString'](),_0x358133=[];let _0x2e164f=0x0,_0x15e09d=0x0;for(const _0x574ad5 of _0x19f178[_0x40a26c(0x158)]){if(!_0x574ad5[_0x40a26c(0x14a)])continue;const _0x17c44d=_0x574ad5[_0x40a26c(0x14a)][_0x40a26c(0x133)][_0x40a26c(0x136)],_0x5f2500={'serviceCode':_0x17c44d,'version':_0x574ad5[_0x40a26c(0x14a)][_0x40a26c(0x153)],'importedAt':_0x15552a,'source':{'type':'file','path':_0x19f178[_0x40a26c(0x167)],'hash':_0x574ad5['sourceHash']},'manifest':_0x574ad5[_0x40a26c(0x178)],'normalizedManifest':_0x574ad5[_0x40a26c(0x14a)]},_0x3aaac1=_0xcd429c[_0x40a26c(0x179)][_0x40a26c(0x16c)](_0x28298f=>_0x28298f[_0x40a26c(0x159)]===_0x17c44d);_0x3aaac1>=0x0?(_0xcd429c[_0x40a26c(0x179)][_0x3aaac1]=_0x5f2500,_0x15e09d++):(_0xcd429c[_0x40a26c(0x179)][_0x40a26c(0x157)](_0x5f2500),_0x2e164f++),_0x358133[_0x40a26c(0x157)](_0x5f2500);}_0xcd429c[_0x40a26c(0x179)][_0x40a26c(0x169)]((_0x36949f,_0x136ae9)=>_0x36949f[_0x40a26c(0x159)][_0x40a26c(0x177)](_0x136ae9['serviceCode'])),_0xcd429c['updatedAt']=_0x15552a;const _0x4d2d73=writeServiceRegistry(_0xcd429c,_0xded252);return{'registryPath':_0x4d2d73,'entry':_0x358133[0x0],'replaced':_0x358133[_0x40a26c(0x16f)]===0x1?_0x15e09d===0x1:_0x15e09d>0x0,'entries':_0x358133,'imported':_0x2e164f,'updated':_0x15e09d,'serviceCount':_0xcd429c[_0x40a26c(0x179)]['length']};}export function exportServiceManifest(_0xd3afe5,_0x7fca3e,_0x3e7c27={}){const _0x736b63=a34_0x4d91a0,_0x5158c2=getServiceRegistryPath(_0x3e7c27),_0x4da9d7=getLocalServiceEntry(_0xd3afe5,_0x3e7c27);if(!_0x4da9d7)throw CliErrors[_0x736b63(0x141)](_0x736b63(0x134)+_0xd3afe5,_0x736b63(0x137));const _0x50742d=resolve(_0x7fca3e),_0x428f06=dirname(_0x50742d);return!existsSync(_0x428f06)&&mkdirSync(_0x428f06,{'recursive':!![]}),writeFileSync(_0x50742d,JSON['stringify'](_0x4da9d7['manifest'],null,0x2)+'\x0a',{'encoding':_0x736b63(0x130),'mode':0x180}),{'registryPath':_0x5158c2,'filePath':_0x50742d,'entry':_0x4da9d7};}export function removeServiceManifest(_0x5bb0e1,_0x2d9277={}){const _0x498e7e=a34_0x4d91a0,_0x44e127=readServiceRegistry(_0x2d9277),_0x1e07ec=_0x5bb0e1['trim'](),_0x47a9ae=_0x44e127[_0x498e7e(0x179)][_0x498e7e(0x16c)](_0x40aff1=>_0x40aff1[_0x498e7e(0x159)]===_0x1e07ec);if(_0x47a9ae<0x0)throw CliErrors[_0x498e7e(0x141)](_0x498e7e(0x134)+_0x1e07ec,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x132673]=_0x44e127[_0x498e7e(0x179)][_0x498e7e(0x149)](_0x47a9ae,0x1),_0x230723=(_0x2d9277[_0x498e7e(0x172)]??(()=>new Date()))()['toISOString']();_0x44e127[_0x498e7e(0x12d)]=_0x230723;const _0x183f86=writeServiceRegistry(_0x44e127,_0x2d9277);return{'registryPath':_0x183f86,'entry':_0x132673,'serviceCount':_0x44e127['services']['length']};}export function listLocalServices(_0x33b624={}){const _0x52ea16=a34_0x4d91a0;return readServiceRegistry(_0x33b624)[_0x52ea16(0x179)];}export function getLocalServiceEntry(_0x2da9f0,_0x51958f={}){const _0x55eea8=a34_0x4d91a0;return readServiceRegistry(_0x51958f)[_0x55eea8(0x179)][_0x55eea8(0x14e)](_0x3a36c9=>_0x3a36c9[_0x55eea8(0x159)]===_0x2da9f0[_0x55eea8(0x14b)]());}function a34_0x5d8d(){const _0x3a0635=['3226424PJJVtE','flatMap','message','cliPath','path','Service\x20manifest\x20validation\x20failed:\x0a','].manifest.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','21327RSYDul','validation','.tmp','Unsupported\x20service\x20registry\x20schemaVersion:\x20','commands','105ZRYTLa','Remove\x20or\x20migrate\x20','Invalid\x20service\x20registry\x20JSON:\x20','name','splice','normalizedManifest','trim','CliError','5112UqjVEU','find','warnings','homeDirName','empty','slice','version','services\x20must\x20be\x20an\x20array','string','Service\x20manifest\x20file\x20not\x20found:\x20','push','manifests','serviceCode','missing','service.json','ENOENT','8060LouWFJ','reduce','digest','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','parse','142zhjdfB','261820EmDiCz','source','162946RozLDJ','filePath','].manifest','sort','description','168774iEkuiL','findIndex','schemaVersion','object','length','Unsupported\x20schemaVersion:\x20','isArray','now','errors','risk','homeDir','registryIndex','localeCompare','manifest','services','report','importedAt','1395740zPaWYi','stringify','sha256','commandCount','hex','updatedAt','invalid','map','utf8','target','$.services[','service','Local\x20service\x20not\x20found:\x20','startsWith','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.'];a34_0x5d8d=function(){return _0x3a0635;};return a34_0x5d8d();}export function listLocalServiceTrees(_0x34231d={}){const _0x4f2e9e=a34_0x4d91a0;return readServiceRegistry(_0x34231d)[_0x4f2e9e(0x179)][_0x4f2e9e(0x12f)](_0x1d35b4=>_0x1d35b4[_0x4f2e9e(0x14a)]);}export function inspectServiceRegistry(_0x36cb7d={}){const _0xe34f=a34_0x4d91a0,_0x2f151c=getServiceRegistryPath(_0x36cb7d);if(!existsSync(_0x2f151c))return emptyServiceRegistryInspection(_0x2f151c,_0xe34f(0x15a),![]);try{const _0x3a8828=readFileSync(_0x2f151c,_0xe34f(0x130));if(!_0x3a8828[_0xe34f(0x14b)]())return emptyServiceRegistryInspection(_0x2f151c,_0xe34f(0x151),!![]);const _0x407f9d=JSON[_0xe34f(0x162)](_0x3a8828);if(_0x407f9d[_0xe34f(0x16d)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x2f151c,'invalid',!![]),'schemaVersion':_0x407f9d['schemaVersion'],'message':_0xe34f(0x170)+String(_0x407f9d[_0xe34f(0x16d)])};if(!Array['isArray'](_0x407f9d['services']))return{...emptyServiceRegistryInspection(_0x2f151c,_0xe34f(0x12e),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x407f9d['updatedAt'],'message':_0xe34f(0x154)};const _0x5e2bf6=_0x407f9d[_0xe34f(0x179)][_0xe34f(0x12f)](summarizeLocalServiceEntry);return{'registryPath':_0x2f151c,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x407f9d[_0xe34f(0x12d)],'serviceCount':_0x5e2bf6[_0xe34f(0x16f)],'commandCount':_0x5e2bf6[_0xe34f(0x15e)]((_0x17a886,_0x1fb98e)=>_0x17a886+_0x1fb98e[_0xe34f(0x12b)],0x0),'services':_0x5e2bf6};}catch(_0xdb5cfc){return{...emptyServiceRegistryInspection(_0x2f151c,'invalid',!![]),'message':_0xdb5cfc instanceof Error?_0xdb5cfc[_0xe34f(0x13a)]:String(_0xdb5cfc)};}}export function formatValidationFailure(_0x3534cc){const _0x2584fc=a34_0x4d91a0,_0x400026=_0x3534cc[_0x2584fc(0x173)][_0x2584fc(0x12f)](_0x54544f=>_0x54544f['path']+':\x20'+_0x54544f[_0x2584fc(0x13a)]);return _0x2584fc(0x13d)+_0x400026['join']('\x0a');}function extractLoadedServiceManifests(_0x21892b,_0xd29e8f){if(!isServiceRegistryLike(_0x21892b)){const _0x503b96=_0x21892b,_0x520c9f=validateServiceTreeManifest(_0x503b96);return[{'manifest':_0x503b96,'report':_0x520c9f,'normalizedManifest':_0x520c9f['ok']?normalizeServiceTreeManifest(_0x503b96):undefined,'sourceHash':_0xd29e8f}];}return _0x21892b['services']['map']((_0x8d885a,_0x55e942)=>{const _0x35b407=a34_0x4a34,_0x5f045b=isObjectRecord(_0x8d885a)?_0x8d885a['manifest']:undefined,_0x219474=validateServiceTreeManifest(_0x5f045b),_0xc6edc9=isObjectRecord(_0x8d885a)&&typeof _0x8d885a['serviceCode']===_0x35b407(0x155)?_0x8d885a['serviceCode']:undefined;return{'manifest':_0x5f045b,'report':_0x219474,'normalizedManifest':_0x219474['ok']?normalizeServiceTreeManifest(_0x5f045b):undefined,'sourceHash':sha256(JSON[_0x35b407(0x17d)](_0x5f045b,null,0x2)+'\x0a'),'registryIndex':_0x55e942,'registryServiceCode':_0xc6edc9};});}function aggregateValidationReports(_0x209d8a){const _0x292e4e=a34_0x4d91a0,_0x2c0e9a=_0x209d8a[_0x292e4e(0x139)](_0x7efd21=>_0x7efd21[_0x292e4e(0x176)]===undefined?_0x7efd21['report'][_0x292e4e(0x173)]:_0x7efd21['report'][_0x292e4e(0x173)][_0x292e4e(0x12f)](_0x1df298=>({..._0x1df298,'path':prefixRegistryIssuePath(_0x7efd21[_0x292e4e(0x176)],_0x1df298[_0x292e4e(0x13c)])}))),_0x10c793=_0x209d8a[_0x292e4e(0x139)](_0x26194d=>_0x26194d[_0x292e4e(0x176)]===undefined?_0x26194d[_0x292e4e(0x17a)][_0x292e4e(0x14f)]:_0x26194d[_0x292e4e(0x17a)]['warnings'][_0x292e4e(0x12f)](_0x36b5ef=>({..._0x36b5ef,'path':prefixRegistryIssuePath(_0x26194d[_0x292e4e(0x176)],_0x36b5ef['path'])})));return{'ok':_0x2c0e9a['length']===0x0,'errors':_0x2c0e9a,'warnings':_0x10c793};}function a34_0x4a34(_0x309813,_0x4a65a8){_0x309813=_0x309813-0x12a;const _0x5d8d9f=a34_0x5d8d();let _0x4a342f=_0x5d8d9f[_0x309813];return _0x4a342f;}function prefixRegistryIssuePath(_0x2e1c61,_0x305264){const _0x3e7c68=a34_0x4d91a0;if(_0x305264==='$')return _0x3e7c68(0x132)+_0x2e1c61+'].manifest';if(_0x305264[_0x3e7c68(0x135)]('$.'))return'$.services['+_0x2e1c61+_0x3e7c68(0x168)+_0x305264[_0x3e7c68(0x152)](0x1);if(_0x305264[_0x3e7c68(0x135)]('$['))return _0x3e7c68(0x132)+_0x2e1c61+_0x3e7c68(0x168)+_0x305264[_0x3e7c68(0x152)](0x1);return _0x3e7c68(0x132)+_0x2e1c61+_0x3e7c68(0x13e)+_0x305264;}function isServiceRegistryLike(_0x4ed959){const _0x2abb4b=a34_0x4d91a0;return isObjectRecord(_0x4ed959)&&_0x4ed959['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2abb4b(0x171)](_0x4ed959[_0x2abb4b(0x179)]);}function isObjectRecord(_0x5d8542){const _0x1ea658=a34_0x4d91a0;return Boolean(_0x5d8542)&&typeof _0x5d8542===_0x1ea658(0x16e)&&!Array[_0x1ea658(0x171)](_0x5d8542);}function emptyServiceRegistryInspection(_0x355417,_0x5cf6c5,_0x2ddda6){return{'registryPath':_0x355417,'exists':_0x2ddda6,'status':_0x5cf6c5,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0xefedec){const _0x1ca485=a34_0x4d91a0,_0x22a539=_0xefedec[_0x1ca485(0x14a)],_0x234193=_0x22a539[_0x1ca485(0x144)][_0x1ca485(0x12f)](_0x59decc=>({'path':_0x59decc[_0x1ca485(0x13b)],'description':_0x59decc['description'],'risk':_0x59decc[_0x1ca485(0x174)],'targetKind':_0x59decc[_0x1ca485(0x131)]['kind'],'targetCommand':_0x59decc['target']['command']}));return{'serviceCode':_0xefedec[_0x1ca485(0x159)],'name':_0x22a539[_0x1ca485(0x133)][_0x1ca485(0x148)],'description':_0x22a539[_0x1ca485(0x133)][_0x1ca485(0x16a)],'version':_0xefedec[_0x1ca485(0x153)],'importedAt':_0xefedec[_0x1ca485(0x17b)],'source':_0xefedec[_0x1ca485(0x165)],'commandCount':_0x234193['length'],'commands':_0x234193};}function sha256(_0xb7cdaf){const _0x6d2066=a34_0x4d91a0;return createHash(_0x6d2066(0x12a))['update'](_0xb7cdaf)[_0x6d2066(0x15f)](_0x6d2066(0x12c));}
|