@lovrabet/lovrabet-cli 2.1.0-beta.1 → 2.1.0-beta.2
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_0x3f72d2=a27_0x27c0;(function(_0x2317e1,_0x14b3a8){const _0x422f34=a27_0x27c0,_0x61079=_0x2317e1();while(!![]){try{const _0x4aa58d=-parseInt(_0x422f34(0x171))/0x1*(parseInt(_0x422f34(0x186))/0x2)+-parseInt(_0x422f34(0x142))/0x3*(-parseInt(_0x422f34(0x182))/0x4)+-parseInt(_0x422f34(0x14c))/0x5*(-parseInt(_0x422f34(0x141))/0x6)+parseInt(_0x422f34(0x170))/0x7*(-parseInt(_0x422f34(0x17a))/0x8)+parseInt(_0x422f34(0x172))/0x9+parseInt(_0x422f34(0x15c))/0xa*(-parseInt(_0x422f34(0x163))/0xb)+parseInt(_0x422f34(0x149))/0xc*(parseInt(_0x422f34(0x181))/0xd);if(_0x4aa58d===_0x14b3a8)break;else _0x61079['push'](_0x61079['shift']());}catch(_0x44c1c5){_0x61079['push'](_0x61079['shift']());}}}(a27_0x54c8,0xcee80));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';function a27_0x54c8(){const _0x6e470b=['createTime','map','num','description','975TuKBrs','128176vZdlcJ','POST','flag','Override\x20the\x20existing\x20entry\x20title','438SplqQt','726CQBeKm','144XilVfP','validation','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','string','updateTime','Personal\x20knowledge-base\x20entry\x20ID','35796nrYbgw','utf8','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','38270lZIKwa','appCode','build','metadata','/update','isFinite','number','/client/knowledge-base/personal/create','trim','--topk\x20must\x20be\x20a\x20positive\x20number.','length','detail','isFile','weightedScore','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','ragStatus','570oRIOaR','create','body','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Updated\x20KB\x20entry\x20','content','80553mMJetX','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','topk','title','/client/knowledge-base/personal/','query','scope','write','File\x20path\x20is\x20required.','Personal\x20knowledge-base\x20entry\x20title','File\x20is\x20not\x20a\x20regular\x20file:\x20','bool','read','3812305YwrQTh','2001wVNTuS','5840928ptWuuk','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','version','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','file','docId','list','24mqswWd','str','verbose'];a27_0x54c8=function(){return _0x6e470b;};return a27_0x54c8();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x3f72d2(0x166),'type':a27_0x3f72d2(0x146),'required':!![],'description':a27_0x3f72d2(0x16c)},FILE_FLAG={'name':a27_0x3f72d2(0x177),'type':a27_0x3f72d2(0x146),'required':!![],'description':a27_0x3f72d2(0x176)},QUERY_FLAG={'name':a27_0x3f72d2(0x168),'type':a27_0x3f72d2(0x146),'required':!![],'description':a27_0x3f72d2(0x174)},TOPK_FLAG={'name':a27_0x3f72d2(0x165),'type':a27_0x3f72d2(0x152),'description':a27_0x3f72d2(0x164)};function readKnowledgeFile(_0x37d1af){const _0x3c284c=a27_0x3f72d2;if(!_0x37d1af)throw CliErrors[_0x3c284c(0x143)](_0x3c284c(0x16b));if(!existsSync(_0x37d1af))throw CliErrors[_0x3c284c(0x143)]('File\x20not\x20found:\x20'+_0x37d1af);if(!statSync(_0x37d1af)[_0x3c284c(0x158)]())throw CliErrors[_0x3c284c(0x143)](_0x3c284c(0x16d)+_0x37d1af);return readFileSync(_0x37d1af,_0x3c284c(0x14a));}function a27_0x27c0(_0x4ae05f,_0x3035d7){_0x4ae05f=_0x4ae05f-0x141;const _0x54c824=a27_0x54c8();let _0x27c003=_0x54c824[_0x4ae05f];return _0x27c003;}function summarizePersonalItem(_0x5f2266){const _0x46695f=a27_0x3f72d2;return{'id':_0x5f2266['id'],'title':_0x5f2266[_0x46695f(0x166)],'version':_0x5f2266[_0x46695f(0x175)],'ragStatus':_0x5f2266[_0x46695f(0x15b)],'ragErrorMessage':_0x5f2266['ragErrorMessage'],'updateTime':_0x5f2266[_0x46695f(0x147)]};}function detailPersonalItem(_0x3d3d35){const _0xbe46b7=a27_0x3f72d2;return{'id':_0x3d3d35['id'],'appCode':_0x3d3d35[_0xbe46b7(0x14d)],'scope':_0x3d3d35[_0xbe46b7(0x169)],'userId':_0x3d3d35['userId'],'title':_0x3d3d35[_0xbe46b7(0x166)],'content':_0x3d3d35[_0xbe46b7(0x162)]??'','version':_0x3d3d35['version'],'ragStatus':_0x3d3d35[_0xbe46b7(0x15b)],'ragErrorMessage':_0x3d3d35['ragErrorMessage'],'createTime':_0x3d3d35[_0xbe46b7(0x17d)],'updateTime':_0x3d3d35[_0xbe46b7(0x147)]};}function summarizeSearchHit(_0x294c25){const _0xcbb430=a27_0x3f72d2;return{'scope':_0x294c25[_0xcbb430(0x169)],'docId':_0x294c25[_0xcbb430(0x178)],'score':_0x294c25['score'],'weightedScore':_0x294c25[_0xcbb430(0x159)],'content':_0x294c25[_0xcbb430(0x162)],'metadata':_0x294c25[_0xcbb430(0x14f)]};}function readTopK(_0x1016ce){const _0x2c1344=a27_0x3f72d2,_0x27d619=_0x1016ce[_0x2c1344(0x184)](_0x2c1344(0x165));if(_0x27d619===undefined||_0x27d619===null||_0x27d619==='')return undefined;const _0x2e36b3=_0x1016ce[_0x2c1344(0x17f)](_0x2c1344(0x165));if(!Number[_0x2c1344(0x151)](_0x2e36b3)||_0x2e36b3<0x1)throw CliErrors[_0x2c1344(0x143)](_0x2c1344(0x155));return _0x2e36b3;}const kbList={'service':'kb','command':a27_0x3f72d2(0x179),'description':a27_0x3f72d2(0x145),'risk':a27_0x3f72d2(0x16f),'flags':[VERBOSE_FLAG],async 'execute'(_0x24f7f6){const _0x27eb4a=a27_0x3f72d2,_0x1aa2aa=await listPersonalKnowledgeBaseItems(_0x24f7f6[_0x27eb4a(0x14d)]);if(_0x24f7f6[_0x27eb4a(0x16e)](_0x27eb4a(0x17c)))return{'ok':!![],'data':{'total':_0x1aa2aa[_0x27eb4a(0x156)],'items':_0x1aa2aa}};return{'ok':!![],'data':{'total':_0x1aa2aa[_0x27eb4a(0x156)],'items':_0x1aa2aa[_0x27eb4a(0x17e)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x3f72d2(0x157),'description':a27_0x3f72d2(0x144),'risk':a27_0x3f72d2(0x16f),'flags':[{...ID_FLAG,'description':a27_0x3f72d2(0x148)}],async 'execute'(_0x2baa8d){const _0x5da328=a27_0x3f72d2,_0x4e8335=await getPersonalKnowledgeBaseItem(_0x2baa8d[_0x5da328(0x17f)]('id'),_0x2baa8d[_0x5da328(0x14d)]);return{'ok':!![],'data':detailPersonalItem(_0x4e8335)};}},kbCreate={'service':'kb','command':a27_0x3f72d2(0x15d),'description':a27_0x3f72d2(0x160),'risk':'write','flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x304866){const _0x4df57a=a27_0x3f72d2,_0x493163=_0x304866['str'](_0x4df57a(0x166)),_0x56f205=readKnowledgeFile(_0x304866[_0x4df57a(0x17b)](_0x4df57a(0x177))),_0x5a1f8c=await createPersonalKnowledgeBaseItem(_0x304866['appCode'],{'title':_0x493163,'content':_0x56f205});return{'ok':!![],'data':summarizePersonalItem(_0x5a1f8c),'message':'Created\x20KB\x20entry\x20'+_0x5a1f8c['id']+'\x20('+_0x5a1f8c[_0x4df57a(0x166)]+')'};},async 'dryRun'(_0xbf1996){const _0x2e42a7=a27_0x3f72d2,_0x326aec=_0xbf1996[_0x2e42a7(0x17b)](_0x2e42a7(0x166)),_0x4b233c=readKnowledgeFile(_0xbf1996[_0x2e42a7(0x17b)](_0x2e42a7(0x177)));return dryRun(_0x2e42a7(0x183),_0x2e42a7(0x153))[_0x2e42a7(0x15e)]({'appCode':_0xbf1996[_0x2e42a7(0x14d)],'title':_0x326aec,'content':_0x4b233c})[_0x2e42a7(0x180)](_0x2e42a7(0x15a)+_0x326aec+'\x22')[_0x2e42a7(0x14e)]();}},kbUpdate={'service':'kb','command':'update','description':a27_0x3f72d2(0x14b),'risk':a27_0x3f72d2(0x16a),'flags':[{...ID_FLAG,'description':a27_0x3f72d2(0x148)},{...TITLE_FLAG,'required':![],'description':a27_0x3f72d2(0x185)},FILE_FLAG],async 'execute'(_0x22ca51){const _0x482db8=a27_0x3f72d2,_0x4aea21=_0x22ca51['num']('id'),_0xf068b0=readKnowledgeFile(_0x22ca51[_0x482db8(0x17b)](_0x482db8(0x177))),_0x219c86=_0x22ca51[_0x482db8(0x17b)]('title')||(await getPersonalKnowledgeBaseItem(_0x4aea21,_0x22ca51[_0x482db8(0x14d)]))['title'],_0x3ffa5d=await updatePersonalKnowledgeBaseItem(_0x4aea21,_0x22ca51[_0x482db8(0x14d)],{'title':_0x219c86,'content':_0xf068b0});return{'ok':!![],'data':summarizePersonalItem(_0x3ffa5d),'message':_0x482db8(0x161)+_0x3ffa5d['id']+'\x20('+_0x3ffa5d['title']+')'};},async 'dryRun'(_0x3811d8){const _0x587d7b=a27_0x3f72d2,_0x139989=_0x3811d8[_0x587d7b(0x17f)]('id'),_0x169aab=readKnowledgeFile(_0x3811d8['str']('file')),_0x132b22=_0x3811d8['str']('title')||(await getPersonalKnowledgeBaseItem(_0x139989,_0x3811d8[_0x587d7b(0x14d)]))['title'];return dryRun(_0x587d7b(0x183),_0x587d7b(0x167)+_0x139989+_0x587d7b(0x150))[_0x587d7b(0x15e)]({'appCode':_0x3811d8[_0x587d7b(0x14d)],'title':_0x132b22,'content':_0x169aab})['description'](_0x587d7b(0x173)+_0x139989)[_0x587d7b(0x14e)]();}},kbSearch={'service':'kb','command':'search','description':a27_0x3f72d2(0x15f),'risk':a27_0x3f72d2(0x16f),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x1e3146){const _0x2d1128=a27_0x3f72d2;if(!_0x1e3146[_0x2d1128(0x17b)]('query')[_0x2d1128(0x154)]())throw CliErrors[_0x2d1128(0x143)]('Search\x20query\x20is\x20required.');readTopK(_0x1e3146);},async 'execute'(_0x9d3309){const _0x438730=a27_0x3f72d2,_0x11e0da=_0x9d3309[_0x438730(0x17b)](_0x438730(0x168))[_0x438730(0x154)](),_0x471870=readTopK(_0x9d3309),_0x121fc9=await searchKnowledgeBase(_0x9d3309['appCode'],{'query':_0x11e0da,'topK':_0x471870});return{'ok':!![],'data':{'total':_0x121fc9[_0x438730(0x156)],'hits':_0x121fc9[_0x438730(0x17e)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a28_0x57cd74=a28_0x4b9d;function a28_0x4b9d(_0x42502e,_0x3403be){_0x42502e=_0x42502e-0x15c;const _0x1d22b4=a28_0x1d22();let _0x4b9de9=_0x1d22b4[_0x42502e];return _0x4b9de9;}function a28_0x1d22(){const _0x55aaa6=['stringify','success','warn','forEach','readLogs','1AAdENJ','duration','1818vtoeOw','clearLogs','1254555zjiRHk','\x20\x20\x20Duration:\x20','keys','details','level','en-US','1367684wAgVYO','\x20logs:\x0a','1827224GMlYmK','\x20\x20\x20Time:\x20','message','\x20\x20\x20Details:\x20','3320475wHtcAu','12810537YfBFih','log','19733vJycMm','930698TQzPAP','timestamp','*\x20No\x20logs\x20found','length','show'];a28_0x1d22=function(){return _0x55aaa6;};return a28_0x1d22();}(function(_0x17bb7c,_0x4811b8){const _0x577a98=a28_0x4b9d,_0x23d129=_0x17bb7c();while(!![]){try{const _0x23ff6a=-parseInt(_0x577a98(0x16b))/0x1*(-parseInt(_0x577a98(0x161))/0x2)+parseInt(_0x577a98(0x16f))/0x3+-parseInt(_0x577a98(0x175))/0x4+-parseInt(_0x577a98(0x15d))/0x5+-parseInt(_0x577a98(0x16d))/0x6*(parseInt(_0x577a98(0x160))/0x7)+parseInt(_0x577a98(0x177))/0x8+parseInt(_0x577a98(0x15e))/0x9;if(_0x23ff6a===_0x4811b8)break;else _0x23d129['push'](_0x23d129['shift']());}catch(_0xc5920){_0x23d129['push'](_0x23d129['shift']());}}}(a28_0x1d22,0xa4d55));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x5d5e35){const _0x36faa9=a28_0x4b9d;if(_0x5d5e35[_0x36faa9(0x164)]===0x0){console[_0x36faa9(0x15f)](_0x36faa9(0x163));return;}console[_0x36faa9(0x15f)]('*\x20'+CLI_DISPLAY_NAME+_0x36faa9(0x176)),_0x5d5e35[_0x36faa9(0x169)]((_0x20ec3b,_0x2c7e27)=>{const _0x4352cd=_0x36faa9,_0x35055b=new Date(_0x20ec3b[_0x4352cd(0x162)])['toLocaleString'](_0x4352cd(0x174)),_0x4f1bfb=_0x20ec3b[_0x4352cd(0x173)]===_0x4352cd(0x167)?'√':_0x20ec3b[_0x4352cd(0x173)]==='error'?'×':_0x20ec3b['level']===_0x4352cd(0x168)?'!':'i';console['log'](_0x2c7e27+0x1+'.\x20'+_0x4f1bfb+'\x20['+_0x20ec3b['command']+']\x20'+_0x20ec3b[_0x4352cd(0x179)]),console[_0x4352cd(0x15f)](_0x4352cd(0x178)+_0x35055b),_0x20ec3b[_0x4352cd(0x16c)]&&console[_0x4352cd(0x15f)](_0x4352cd(0x170)+_0x20ec3b['duration']+'ms'),_0x20ec3b[_0x4352cd(0x172)]&&Object[_0x4352cd(0x171)](_0x20ec3b[_0x4352cd(0x172)])['length']>0x0&&console[_0x4352cd(0x15f)](_0x4352cd(0x15c)+JSON[_0x4352cd(0x166)](_0x20ec3b['details'],null,0x2)),console['log']('');});}export const logsDefinitions=[{'service':'logs','command':a28_0x57cd74(0x165),'description':'View\x20command\x20history\x20logs','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x15ab1e){const _0x5c9d55=a28_0x57cd74;return printLogs(logger[_0x5c9d55(0x16a)]()),{'ok':!![]};}},{'service':'logs','command':'clear','description':'Clear\x20command\x20history\x20logs','risk':'write','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x2ad83a){const _0x3cc85d=a28_0x57cd74;return logger[_0x3cc85d(0x16e)](),console[_0x3cc85d(0x15f)]('*\x20Logs\x20cleared'),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a29_0x17af8f=a29_0x2cdb;function a29_0x5c26(){const _0x2e292b=['80IzRiZS','5711651CBOBwy','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','verbose','source-session-id','create','trim','scriptContent','isArray','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','functionName','name','list','personal-bff','params','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','flag','read','updateTime','Show\x20one\x20personal\x20BFF\x20by\x20id','detail','gmtCreate','version','utf8','POST','6777joFMTb','gmtModified','Personal\x20BFF\x20script\x20ID','2376qKdVSS','13990aWzbkc','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','Preview:\x20create\x20personal\x20BFF\x20','File\x20path\x20is\x20required.','6145362fYKVqd','698HnQJAn','test','isFile','Executed\x20personal\x20BFF\x20','body','validation','update','Preview:\x20update\x20personal\x20BFF\x20','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','high-risk-write','Personal\x20BFF\x20description','createTime','73770TmdHfv','file','appCode','File\x20is\x20not\x20a\x20regular\x20file:\x20','createUserId','num','/update','12aanYRf','77651tpqGQM','description','sourceSessionId','length','str','map','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','string','84573FJMjBg','100LpTURU','build','write'];a29_0x5c26=function(){return _0x2e292b;};return a29_0x5c26();}(function(_0xf03291,_0x11e9c6){const _0x20d9a0=a29_0x2cdb,_0x462d95=_0xf03291();while(!![]){try{const _0x30cb6f=-parseInt(_0x20d9a0(0x181))/0x1*(-parseInt(_0x20d9a0(0x187))/0x2)+-parseInt(_0x20d9a0(0x161))/0x3*(parseInt(_0x20d9a0(0x162))/0x4)+-parseInt(_0x20d9a0(0x193))/0x5+-parseInt(_0x20d9a0(0x186))/0x6+-parseInt(_0x20d9a0(0x19b))/0x7*(parseInt(_0x20d9a0(0x165))/0x8)+parseInt(_0x20d9a0(0x17e))/0x9*(parseInt(_0x20d9a0(0x182))/0xa)+parseInt(_0x20d9a0(0x166))/0xb*(parseInt(_0x20d9a0(0x19a))/0xc);if(_0x30cb6f===_0x11e9c6)break;else _0x462d95['push'](_0x462d95['shift']());}catch(_0x949458){_0x462d95['push'](_0x462d95['shift']());}}}(a29_0x5c26,0x8599a));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';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x17af8f(0x194),'type':a29_0x17af8f(0x1a2),'description':a29_0x17af8f(0x167)},FUNCTION_NAME_FLAG={'name':a29_0x17af8f(0x170),'type':a29_0x17af8f(0x1a2),'required':!![],'description':a29_0x17af8f(0x174)},DESCRIPTION_FLAG={'name':'description','type':'string','description':a29_0x17af8f(0x191)},SOURCE_SESSION_FLAG={'name':'source-session-id','type':'string','description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x55d425){const _0xc6a73f=a29_0x17af8f,_0x4da07f=String(_0x55d425||'')[_0xc6a73f(0x16b)]();if(!_0x4da07f||!FUNCTION_NAME_PATTERN[_0xc6a73f(0x188)](_0x4da07f))throw CliErrors[_0xc6a73f(0x18c)](_0xc6a73f(0x18f));return _0x4da07f;}function readScriptFile(_0x23f60d){const _0x140617=a29_0x17af8f;if(!_0x23f60d)throw CliErrors['validation'](_0x140617(0x185));if(!existsSync(_0x23f60d))throw CliErrors[_0x140617(0x18c)]('File\x20not\x20found:\x20'+_0x23f60d);if(!statSync(_0x23f60d)[_0x140617(0x189)]())throw CliErrors[_0x140617(0x18c)](_0x140617(0x196)+_0x23f60d);const _0x58fc4b=readFileSync(_0x23f60d,_0x140617(0x17c));if(!_0x58fc4b['trim']())throw CliErrors[_0x140617(0x18c)]('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0x58fc4b;}function a29_0x2cdb(_0x5635bc,_0x509450){_0x5635bc=_0x5635bc-0x161;const _0x5c268c=a29_0x5c26();let _0x2cdbf=_0x5c268c[_0x5635bc];return _0x2cdbf;}function optionalTrimmed(_0x262da5){const _0x39edf6=String(_0x262da5||'')['trim']();return _0x39edf6||undefined;}function summarizeBff(_0x2695ed){const _0x384567=a29_0x17af8f;return{'id':_0x2695ed['id'],'appCode':_0x2695ed[_0x384567(0x195)],'functionName':_0x2695ed[_0x384567(0x16f)],'description':_0x2695ed[_0x384567(0x19c)],'scriptType':_0x2695ed['scriptType'],'version':_0x2695ed[_0x384567(0x17b)],'gmtModified':_0x2695ed[_0x384567(0x17f)],'updateTime':_0x2695ed[_0x384567(0x177)]};}function detailBff(_0x1026bd){const _0x3e60c7=a29_0x17af8f;return{'id':_0x1026bd['id'],'appCode':_0x1026bd[_0x3e60c7(0x195)],'functionName':_0x1026bd['functionName'],'description':_0x1026bd[_0x3e60c7(0x19c)],'scriptType':_0x1026bd['scriptType'],'scriptContent':_0x1026bd[_0x3e60c7(0x16c)]??'','config':_0x1026bd['config'],'version':_0x1026bd[_0x3e60c7(0x17b)],'createUserId':_0x1026bd[_0x3e60c7(0x197)],'gmtCreate':_0x1026bd[_0x3e60c7(0x17a)],'gmtModified':_0x1026bd['gmtModified'],'createTime':_0x1026bd[_0x3e60c7(0x192)],'updateTime':_0x1026bd[_0x3e60c7(0x177)]};}function buildCreateInput(_0x51a4d4){const _0x16769=a29_0x17af8f;return{'functionName':normalizeFunctionName(_0x51a4d4[_0x16769(0x19f)](_0x16769(0x170))),...optionalTrimmed(_0x51a4d4[_0x16769(0x19f)](_0x16769(0x19c)))?{'description':optionalTrimmed(_0x51a4d4['str']('description'))}:{},'scriptContent':readScriptFile(_0x51a4d4[_0x16769(0x19f)]('file')),...optionalTrimmed(_0x51a4d4[_0x16769(0x19f)](_0x16769(0x169)))?{'sourceSessionId':optionalTrimmed(_0x51a4d4['str']('source-session-id'))}:{}};}function buildUpdateInput(_0x106220){const _0x1cd89e=a29_0x17af8f,_0x3cf0a9={};optionalTrimmed(_0x106220[_0x1cd89e(0x19f)](_0x1cd89e(0x170)))&&(_0x3cf0a9[_0x1cd89e(0x16f)]=normalizeFunctionName(_0x106220[_0x1cd89e(0x19f)](_0x1cd89e(0x170))));_0x106220[_0x1cd89e(0x175)](_0x1cd89e(0x19c))!==undefined&&(_0x3cf0a9[_0x1cd89e(0x19c)]=_0x106220[_0x1cd89e(0x19f)](_0x1cd89e(0x19c)));optionalTrimmed(_0x106220[_0x1cd89e(0x19f)](_0x1cd89e(0x194)))&&(_0x3cf0a9[_0x1cd89e(0x16c)]=readScriptFile(_0x106220[_0x1cd89e(0x19f)](_0x1cd89e(0x194))));_0x106220['flag']('source-session-id')!==undefined&&(_0x3cf0a9[_0x1cd89e(0x19d)]=_0x106220[_0x1cd89e(0x19f)](_0x1cd89e(0x169)));if(Object['keys'](_0x3cf0a9)[_0x1cd89e(0x19e)]===0x0)throw CliErrors[_0x1cd89e(0x18c)](_0x1cd89e(0x16e));return _0x3cf0a9;}function parseExecParams(_0x550670){const _0x385936=a29_0x17af8f,_0x4764aa=parseJsonParams(_0x550670)??{};if(Array[_0x385936(0x16d)](_0x4764aa))throw CliErrors['validation']('--params\x20must\x20be\x20a\x20JSON\x20object.');return _0x4764aa;}const personalBffList={'service':a29_0x17af8f(0x172),'command':a29_0x17af8f(0x171),'description':a29_0x17af8f(0x183),'risk':a29_0x17af8f(0x176),'flags':[VERBOSE_FLAG],async 'execute'(_0x216d7a){const _0x32de7e=a29_0x17af8f,_0x1f46c2=await listPersonalBffs(_0x216d7a[_0x32de7e(0x195)]);return{'ok':!![],'data':{'total':_0x1f46c2[_0x32de7e(0x19e)],'items':_0x216d7a['bool'](_0x32de7e(0x168))?_0x1f46c2:_0x1f46c2[_0x32de7e(0x1a0)](summarizeBff)}};}},personalBffDetail={'service':a29_0x17af8f(0x172),'command':a29_0x17af8f(0x179),'description':a29_0x17af8f(0x178),'risk':a29_0x17af8f(0x176),'flags':[{...ID_FLAG,'description':a29_0x17af8f(0x180)}],async 'execute'(_0x2b8224){const _0x12f2e=a29_0x17af8f,_0x5d7485=await getPersonalBff(_0x2b8224['num']('id'),_0x2b8224[_0x12f2e(0x195)]);return{'ok':!![],'data':detailBff(_0x5d7485)};}},personalBffCreate={'service':a29_0x17af8f(0x172),'command':a29_0x17af8f(0x16a),'description':a29_0x17af8f(0x1a1),'risk':'write','flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x652e8d){const _0x371b4f=a29_0x17af8f,_0x392e06=buildCreateInput(_0x652e8d),_0x38ad1f=await createPersonalBff(_0x652e8d[_0x371b4f(0x195)],_0x392e06);return{'ok':!![],'data':detailBff(_0x38ad1f),'message':'Created\x20personal\x20BFF\x20'+_0x38ad1f['id']+(_0x38ad1f[_0x371b4f(0x16f)]?'\x20('+_0x38ad1f['functionName']+')':'')};},async 'dryRun'(_0x5d58c5){const _0x290b0a=a29_0x17af8f,_0x4d362f=buildCreateInput(_0x5d58c5);return dryRun(_0x290b0a(0x17d),'/client/runtime-bff/personal/create')[_0x290b0a(0x18b)]({'appCode':_0x5d58c5[_0x290b0a(0x195)],..._0x4d362f})['description'](_0x290b0a(0x184)+_0x4d362f[_0x290b0a(0x16f)])['build']();}},personalBffUpdate={'service':a29_0x17af8f(0x172),'command':a29_0x17af8f(0x18d),'description':'Update\x20a\x20personal\x20BFF\x20by\x20id','risk':a29_0x17af8f(0x164),'flags':[{...ID_FLAG,'description':a29_0x17af8f(0x180)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0xccac89){const _0x51be4d=a29_0x17af8f,_0x3fffcb=_0xccac89[_0x51be4d(0x198)]('id'),_0x31aa15=buildUpdateInput(_0xccac89),_0x4e4975=await updatePersonalBff(_0x3fffcb,_0xccac89[_0x51be4d(0x195)],_0x31aa15);return{'ok':!![],'data':detailBff(_0x4e4975),'message':'Updated\x20personal\x20BFF\x20'+_0x4e4975['id']+(_0x4e4975[_0x51be4d(0x16f)]?'\x20('+_0x4e4975['functionName']+')':'')};},async 'dryRun'(_0x57e039){const _0x116069=a29_0x17af8f,_0x3ad20a=_0x57e039[_0x116069(0x198)]('id'),_0x207b8f=buildUpdateInput(_0x57e039);return dryRun(_0x116069(0x17d),'/client/runtime-bff/personal/'+_0x3ad20a+_0x116069(0x199))['body']({'appCode':_0x57e039[_0x116069(0x195)],..._0x207b8f})[_0x116069(0x19c)](_0x116069(0x18e)+_0x3ad20a)[_0x116069(0x163)]();}},personalBffExec={'service':a29_0x17af8f(0x172),'command':'exec','description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':a29_0x17af8f(0x190),'flags':[{...ID_FLAG,'description':a29_0x17af8f(0x180)},{...PARAMS_FLAG,'description':'JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution'}],async 'validate'(_0x58e5c6){const _0x1325c2=a29_0x17af8f;parseExecParams(_0x58e5c6[_0x1325c2(0x19f)](_0x1325c2(0x173)));},async 'execute'(_0x4e1c52){const _0x43b5d6=a29_0x17af8f,_0x83fdd3=_0x4e1c52[_0x43b5d6(0x198)]('id'),_0x35aa54=parseExecParams(_0x4e1c52['str'](_0x43b5d6(0x173))),_0x2d5719=await executePersonalBff(_0x83fdd3,_0x4e1c52['appCode'],_0x35aa54);return{'ok':!![],'data':{'result':_0x2d5719},'message':_0x43b5d6(0x18a)+_0x83fdd3};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
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];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x234598=a30_0x2e0e;(function(_0x455422,_0x241734){const _0x3271d4=a30_0x2e0e,_0x477460=_0x455422();while(!![]){try{const _0x3671da=parseInt(_0x3271d4(0x1b4))/0x1+-parseInt(_0x3271d4(0x1aa))/0x2+parseInt(_0x3271d4(0x1ba))/0x3+-parseInt(_0x3271d4(0x1ac))/0x4+-parseInt(_0x3271d4(0x1bb))/0x5+-parseInt(_0x3271d4(0x1c3))/0x6+parseInt(_0x3271d4(0x1ae))/0x7*(parseInt(_0x3271d4(0x1b0))/0x8);if(_0x3671da===_0x241734)break;else _0x477460['push'](_0x477460['shift']());}catch(_0x23a7a3){_0x477460['push'](_0x477460['shift']());}}}(a30_0x4605,0x511d1));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';function a30_0x2e0e(_0xd257ca,_0x37a9ef){_0xd257ca=_0xd257ca-0x1a9;const _0x4605de=a30_0x4605();let _0x2e0e11=_0x4605de[_0xd257ca];return _0x2e0e11;}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';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(_0x13c688){const _0x1faf09=a30_0x2e0e;for(const _0x45dbbb of _0x13c688){definitions[_0x1faf09(0x1b3)](_0x45dbbb['service']+':'+_0x45dbbb['command'],_0x45dbbb);let _0x201298=serviceGroups[_0x1faf09(0x1b7)](_0x45dbbb[_0x1faf09(0x1c0)]);!_0x201298&&(_0x201298=[],serviceGroups[_0x1faf09(0x1b3)](_0x45dbbb['service'],_0x201298)),_0x201298[_0x1faf09(0x1ad)](_0x45dbbb);}}function registerService(_0x50886e,_0x4e1778,_0x4b78f6){const _0x95bf1=a30_0x2e0e;registerDefinitions(_0x4e1778);const _0x1db57d=_0x10ded8=>_0x10ded8==='read'?'':_0x10ded8==='write'?'\x20\x20[write]':_0x95bf1(0x1bd),_0x33dbe9={'service':_0x4e1778[0x0]['service'],'label':_0x50886e,'commands':_0x4e1778[_0x95bf1(0x1bf)](_0x51afc0=>({'command':_0x51afc0[_0x95bf1(0x1b5)],'description':_0x51afc0[_0x95bf1(0x1c1)],'tag':_0x1db57d(_0x51afc0[_0x95bf1(0x1b9)])})),'defaultCommand':_0x4b78f6?.['defaultCommand']??(_0x4b78f6?.['isSingleCommand']?_0x4e1778[0x0][_0x95bf1(0x1b5)]:undefined),'isSingleCommand':_0x4b78f6?.[_0x95bf1(0x1c6)]};serviceRegistry[_0x95bf1(0x1ad)](_0x33dbe9),serviceByName['set'](_0x33dbe9[_0x95bf1(0x1c0)],_0x33dbe9);}registerService(a30_0x234598(0x1b2),authDefinitions,{'defaultCommand':'login'}),registerService('API\x20Documentation',apiDocDefinitions),registerService(a30_0x234598(0x1cc),datasetDefinitions),registerService(a30_0x234598(0x1c4),dataDefinitions),registerService('SQL\x20Queries',sqlDefinitions),registerService(a30_0x234598(0x1ab),bffDefinitions),registerService(a30_0x234598(0x1bc),personalBffDefinitions),registerService(a30_0x234598(0x1af),artifactDefinitions),registerService(a30_0x234598(0x1ca),kbDefinitions),registerService(a30_0x234598(0x1cb),appDefinitions,{'defaultCommand':'list'}),registerService(a30_0x234598(0x1a9),workspaceDefinitions),registerService('Configuration',configDefinitions,{'defaultCommand':a30_0x234598(0x1c5)}),registerService(a30_0x234598(0x1b6),serviceDefinitions,{'defaultCommand':a30_0x234598(0x1c5)}),registerService(a30_0x234598(0x1b1),skillDefinitions,{'defaultCommand':a30_0x234598(0x1c7)}),registerService(a30_0x234598(0x1b8),cliSkillDefinitions,{'defaultCommand':a30_0x234598(0x1c7)}),registerService('Self\x20Update',[updateDefinition],{'defaultCommand':a30_0x234598(0x1c9),'isSingleCommand':!![]}),registerService(a30_0x234598(0x1be),[doctorDefinition],{'isSingleCommand':!![]}),registerService('Schema',[schemaDefinition],{'isSingleCommand':!![]}),registerService('Logs',logsDefinitions,{'defaultCommand':a30_0x234598(0x1cd)});export function findDefinition(_0x4b4559,_0x3e7c2c){const _0x4de1f3=a30_0x234598;return definitions[_0x4de1f3(0x1b7)](_0x4b4559+':'+_0x3e7c2c);}export function isKnownService(_0x3279cb){const _0x34d1a3=a30_0x234598;return serviceByName[_0x34d1a3(0x1c8)](_0x3279cb);}function a30_0x4605(){const _0x42786b=['3301056ikwoDA','Instant\x20API','list','isSingleCommand','install','has','run','Knowledge\x20Base','App\x20Management','Datasets','show','Workspace','570818HcdpVZ','BFF\x20Scripts','616640eYUwBi','push','27041WSxrgO','Artifacts','2096qXAlRX','Skills','Authentication','set','371030yWNjhP','command','Service\x20Tree','get','CLI\x20Built-in\x20Skill','risk','908910TIjXTl','1820600wydMOf','Personal\x20BFF','\x20\x20[high-risk-write]','Diagnostics','map','service','description','from'];a30_0x4605=function(){return _0x42786b;};return a30_0x4605();}export function getServiceEntry(_0x168a73){const _0x9070fa=a30_0x234598;return serviceByName[_0x9070fa(0x1b7)](_0x168a73);}export function getAllDefinitions(){const _0x41660c=a30_0x234598;return Array[_0x41660c(0x1c2)](definitions['values']());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a31_0x29554d=a31_0x4460;(function(_0xb69008,_0x3488b0){const _0x274097=a31_0x4460,_0x302ca2=_0xb69008();while(!![]){try{const _0x3c0542=-parseInt(_0x274097(0x98))/0x1*(-parseInt(_0x274097(0x9f))/0x2)+parseInt(_0x274097(0x9a))/0x3+parseInt(_0x274097(0x9e))/0x4+-parseInt(_0x274097(0x95))/0x5*(-parseInt(_0x274097(0xa0))/0x6)+-parseInt(_0x274097(0x99))/0x7+-parseInt(_0x274097(0x97))/0x8*(-parseInt(_0x274097(0x9b))/0x9)+-parseInt(_0x274097(0x94))/0xa;if(_0x3c0542===_0x3488b0)break;else _0x302ca2['push'](_0x302ca2['shift']());}catch(_0xe9dad5){_0x302ca2['push'](_0x302ca2['shift']());}}}(a31_0x1a8f,0xbc078));import{buildSchemaPayload}from'../framework/schema-export.js';function a31_0x1a8f(){const _0x1c79f7=['read','4796856yfMQFw','637646CjNMXf','31002xJZipE','schema','18699910HGrHzG','665vwIiuc','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2843528EeffIn','1FQouKL','8928052LaWfbT','4064718TBBBic','9MSdXVi','export'];a31_0x1a8f=function(){return _0x1c79f7;};return a31_0x1a8f();}function a31_0x4460(_0x2e86d7,_0x20fea7){_0x2e86d7=_0x2e86d7-0x93;const _0x1a8f52=a31_0x1a8f();let _0x4460bd=_0x1a8f52[_0x2e86d7];return _0x4460bd;}async function execute(_0x190911){const _0x3b5779=await buildSchemaPayload();return{'ok':!![],'data':_0x3b5779};}export const schemaDefinition={'service':a31_0x29554d(0x93),'command':a31_0x29554d(0x9c),'description':a31_0x29554d(0x96),'risk':a31_0x29554d(0x9d),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x2df406,_0x39aae8){const _0x13c365=a32_0x1743,_0x144251=_0x2df406();while(!![]){try{const _0x2044c4=-parseInt(_0x13c365(0x132))/0x1*(-parseInt(_0x13c365(0x152))/0x2)+-parseInt(_0x13c365(0x130))/0x3*(-parseInt(_0x13c365(0x110))/0x4)+-parseInt(_0x13c365(0x109))/0x5*(parseInt(_0x13c365(0x106))/0x6)+-parseInt(_0x13c365(0x13b))/0x7+-parseInt(_0x13c365(0x154))/0x8+parseInt(_0x13c365(0x122))/0x9*(parseInt(_0x13c365(0x118))/0xa)+parseInt(_0x13c365(0x144))/0xb;if(_0x2044c4===_0x39aae8)break;else _0x144251['push'](_0x144251['shift']());}catch(_0x4f56bd){_0x144251['push'](_0x144251['shift']());}}}(a32_0x5095,0xc647e));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';function a32_0x1743(_0x535cc5,_0x2da008){_0x535cc5=_0x535cc5-0x101;const _0x5095ad=a32_0x5095();let _0x1743de=_0x5095ad[_0x535cc5];return _0x1743de;}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x42c134,_0x465aab){const _0x2d9669=a32_0x1743,_0x594942=listLocalServiceTrees();let _0x5cf479;for(const _0x231315 of _0x594942){const _0x66b7eb=matchServiceTreeCommand(_0x231315,_0x42c134);if(!_0x66b7eb)continue;(!_0x5cf479||_0x66b7eb[_0x2d9669(0x158)][_0x2d9669(0x11a)]['length']>_0x5cf479['command'][_0x2d9669(0x11a)][_0x2d9669(0x13f)])&&(_0x5cf479={'tree':_0x231315,'command':_0x66b7eb[_0x2d9669(0x158)],'remainingArgs':_0x66b7eb[_0x2d9669(0x12e)]});}if(!_0x5cf479)return undefined;const _0x559340={..._0x465aab};return applyAppBinding(_0x5cf479[_0x2d9669(0x11b)],_0x5cf479[_0x2d9669(0x158)],_0x559340),{'definition':buildDynamicCommandDefinition(_0x5cf479[_0x2d9669(0x11b)],_0x5cf479['command']),'args':_0x5cf479[_0x2d9669(0x12e)],'flags':_0x559340,'tree':_0x5cf479[_0x2d9669(0x11b)],'command':_0x5cf479[_0x2d9669(0x158)]};}export function generateDynamicServiceHelp(_0x284399){const _0x1895b1=a32_0x1743,_0x2b115f=listLocalServiceTrees()[_0x1895b1(0x168)](_0x5625ae=>_0x5625ae[_0x1895b1(0x162)]['code']===_0x284399);if(!_0x2b115f)return undefined;const _0x54e90a=[CLI_BIN_NAME+'\x20'+_0x284399+_0x1895b1(0x13c),'',_0x2b115f[_0x1895b1(0x162)][_0x1895b1(0x156)]||_0x284399,_0x2b115f[_0x1895b1(0x162)][_0x1895b1(0x153)]?'\x20\x20'+_0x2b115f[_0x1895b1(0x162)]['description']:'','',_0x1895b1(0x10d),..._0x2b115f[_0x1895b1(0x14d)][_0x1895b1(0x141)](_0x55d904=>{const _0x33f3f5=_0x1895b1,_0x54c873=_0x55d904[_0x33f3f5(0x11a)][_0x33f3f5(0x113)](0x1)[_0x33f3f5(0x167)]('\x20'),_0x466ad4=_0x55d904[_0x33f3f5(0x15a)]===_0x33f3f5(0x136)?'':'\x20['+_0x55d904[_0x33f3f5(0x15a)]+']';return'\x20\x20'+_0x54c873[_0x33f3f5(0x101)](0x18)+'\x20'+(_0x55d904[_0x33f3f5(0x153)]||'')+_0x466ad4;}),'',_0x1895b1(0x11f)+CLI_BIN_NAME+_0x1895b1(0x119)+_0x284399+'`\x20to\x20inspect\x20the\x20manifest.'][_0x1895b1(0x149)](Boolean);return _0x54e90a[_0x1895b1(0x167)]('\x0a');}export function listDynamicServiceEntries(){const _0x53f2c4=a32_0x1743;return listLocalServices()[_0x53f2c4(0x141)](_0x462717=>{const _0x517c0d=_0x53f2c4,_0x44989b=_0x462717[_0x517c0d(0x13e)];return{'service':_0x44989b[_0x517c0d(0x162)]['code'],'label':_0x44989b['service'][_0x517c0d(0x156)]||_0x44989b[_0x517c0d(0x162)][_0x517c0d(0x124)],'commands':_0x44989b[_0x517c0d(0x14d)][_0x517c0d(0x141)](_0x53b6fc=>({'command':dynamicCommandName(_0x53b6fc),'description':_0x53b6fc[_0x517c0d(0x153)]||_0x517c0d(0x105)+_0x53b6fc['cliPath'],'tag':riskTag(_0x53b6fc[_0x517c0d(0x15a)])}))};});}export function getDynamicServiceEntry(_0xf840d1){const _0x147393=a32_0x1743;return listDynamicServiceEntries()[_0x147393(0x168)](_0x447eec=>_0x447eec[_0x147393(0x162)]===_0xf840d1);}export function listDynamicServiceDefinitions(_0x39f22d){const _0x35dbef=a32_0x1743;return listLocalServiceTrees()['filter'](_0x47c254=>!_0x39f22d||_0x47c254[_0x35dbef(0x162)][_0x35dbef(0x124)]===_0x39f22d)[_0x35dbef(0x129)](_0x31cddb=>_0x31cddb[_0x35dbef(0x14d)][_0x35dbef(0x141)](_0x143a1d=>buildDynamicCommandDefinition(_0x31cddb,_0x143a1d)));}export function getDynamicServiceDefinitions(_0x5b7041){const _0x5313ad=a32_0x1743,_0x5d566d=listDynamicServiceDefinitions(_0x5b7041);return _0x5d566d[_0x5313ad(0x13f)]>0x0?_0x5d566d:undefined;}export function findDynamicServiceDefinition(_0x18db55,_0xd4ec8d){const _0x131f20=a32_0x1743;return listDynamicServiceDefinitions(_0x18db55)[_0x131f20(0x168)](_0xe5e47=>_0xe5e47['command']===_0xd4ec8d);}export function buildDynamicCommandDefinition(_0x51609c,_0x5a87ef){const _0x403c08=a32_0x1743;return{'service':_0x51609c['service']['code'],'command':dynamicCommandName(_0x5a87ef),'description':_0x5a87ef[_0x403c08(0x153)]||_0x403c08(0x105)+_0x5a87ef[_0x403c08(0x13d)],'risk':_0x5a87ef['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x5a87ef[_0x403c08(0x159)]['map'](_0x31aa25=>({'name':_0x31aa25[_0x403c08(0x156)],'description':_0x31aa25[_0x403c08(0x153)]||_0x31aa25[_0x403c08(0x156)],'required':_0x31aa25['required']})),'flags':_0x5a87ef[_0x403c08(0x148)][_0x403c08(0x141)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x5a87ef),async 'dryRun'(_0x1dd4ac){const _0x975c04=_0x403c08,_0x5d763c=await compilePlan(_0x5a87ef,_0x1dd4ac);return{'method':_0x975c04(0x10a),'url':_0x5a87ef[_0x975c04(0x13d)],'body':{'target':targetPreview(_0x5d763c),'params':_0x5d763c[_0x975c04(0x139)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x5a87ef[_0x975c04(0x13d)]};},async 'execute'(_0x4ca064){const _0xc59e40=_0x403c08,_0x5e5d25=await compilePlan(_0x5a87ef,_0x4ca064),_0x26ecdb=Date['now'](),_0x4f4827=await executePlan(_0x5e5d25,_0x5a87ef,_0x4ca064),_0x2d3ecc=Date[_0xc59e40(0x147)]()-_0x26ecdb;return{'ok':!![],'data':{'service':_0x51609c[_0xc59e40(0x162)],'command':_0x5a87ef[_0xc59e40(0x13d)],'target':targetPreview(_0x5e5d25),'result':_0x4f4827,'elapsed':_0x2d3ecc},'message':_0xc59e40(0x11d)+_0x5a87ef[_0xc59e40(0x13d)]+_0xc59e40(0x163)+_0x2d3ecc+'ms'};}};}function dynamicCommandName(_0x34db86){const _0x23afdc=a32_0x1743;return _0x34db86[_0x23afdc(0x11a)][_0x23afdc(0x113)](0x1)[_0x23afdc(0x167)]('\x20');}function riskTag(_0x35a6f5){const _0x59b787=a32_0x1743;return _0x35a6f5===_0x59b787(0x136)?'':_0x59b787(0x135)+_0x35a6f5+']';}function flagToCommandFlag(_0x165283){const _0x527519=a32_0x1743;return{'name':_0x165283[_0x527519(0x12c)],'type':_0x165283['type']===_0x527519(0x102)?_0x527519(0x15c):_0x165283[_0x527519(0x131)],'description':_0x165283[_0x527519(0x153)]||_0x165283[_0x527519(0x156)],'required':_0x165283[_0x527519(0x120)],'default':isPrimitiveFlagDefault(_0x165283[_0x527519(0x126)])?_0x165283[_0x527519(0x126)]:undefined,'enum':_0x165283[_0x527519(0x123)]};}async function compilePlan(_0x23a995,_0x1e548c){const _0x4414a3=a32_0x1743;return compileServiceTreeCommand(_0x23a995,{'flags':_0x1e548c[_0x4414a3(0x112)],'args':_0x1e548c[_0x4414a3(0x159)],'context':await buildServiceContext(_0x23a995,_0x1e548c)});}async function buildServiceContext(_0x5e2375,_0x336fc9){const _0x557958=a32_0x1743,_0x5e9644={'appCode':_0x336fc9[_0x557958(0x15d)],'env':_0x336fc9[_0x557958(0x12d)],'envName':_0x336fc9[_0x557958(0x12d)]};if(!usesRuntimeContext(_0x5e2375))return _0x5e9644;const _0x30effa=await getLoginUserInfo(),_0x153c8f=pickFirst(_0x30effa[_0x557958(0x121)],_0x30effa['id']);return{..._0x5e9644,'user':_0x30effa,'userId':_0x153c8f,'id':_0x30effa['id'],'username':pickFirst(_0x30effa['username'],_0x30effa[_0x557958(0x125)],_0x30effa['loginName']),'userName':_0x30effa[_0x557958(0x125)],'nickname':pickFirst(_0x30effa['nickname'],_0x30effa[_0x557958(0x11c)]),'nickName':_0x30effa['nickName'],'tenantCode':_0x30effa[_0x557958(0x116)],'employeeId':_0x30effa['employeeId']};}function usesRuntimeContext(_0x1a9bb4){const _0x25e2bc=a32_0x1743;return _0x1a9bb4[_0x25e2bc(0x111)][_0x25e2bc(0x15e)](_0x3c71d5=>typeof _0x3c71d5[_0x25e2bc(0x133)]===_0x25e2bc(0x15c)&&(_0x3c71d5[_0x25e2bc(0x133)][_0x25e2bc(0x127)](_0x25e2bc(0x10c))||_0x3c71d5[_0x25e2bc(0x133)][_0x25e2bc(0x127)](_0x25e2bc(0x146))));}function pickFirst(..._0x118cda){const _0x53c7c6=a32_0x1743;return _0x118cda[_0x53c7c6(0x168)](_0x591f34=>_0x591f34!==undefined&&_0x591f34!==null);}async function executePlan(_0x2c96a7,_0x3e0a3f,_0x20788d){const _0x46d8a0=a32_0x1743;if(_0x2c96a7[_0x46d8a0(0x134)]==='data'){const _0x3ce38b=await resolveDatasetCode(_0x2c96a7,_0x3e0a3f,_0x20788d);return executeData(_0x3ce38b,_0x2c96a7[_0x46d8a0(0x158)],_0x2c96a7['params']);}if(_0x2c96a7['kind']==='sql'){if(!_0x2c96a7['sqlCode'])throw CliErrors[_0x46d8a0(0x143)](_0x46d8a0(0x11d)+_0x3e0a3f[_0x46d8a0(0x13d)]+_0x46d8a0(0x160));return executeSdkSql(_0x2c96a7['sqlCode'],normalizeScalarParams(_0x2c96a7[_0x46d8a0(0x139)]));}if(_0x2c96a7[_0x46d8a0(0x134)]===_0x46d8a0(0x117)){const _0x22d6b2=_0x2c96a7['scriptName']||_0x2c96a7['bffCode']||(_0x2c96a7[_0x46d8a0(0x165)]==null?'':String(_0x2c96a7['bffId']));if(!_0x22d6b2)throw CliErrors[_0x46d8a0(0x143)](_0x46d8a0(0x11d)+_0x3e0a3f[_0x46d8a0(0x13d)]+_0x46d8a0(0x128));return executeSdkBff(_0x22d6b2,_0x2c96a7[_0x46d8a0(0x139)]);}throw CliErrors[_0x46d8a0(0x143)](_0x46d8a0(0x12f)+_0x2c96a7[_0x46d8a0(0x134)]);}async function resolveDatasetCode(_0x47374b,_0x1a6828,_0x150521){const _0x38c7d8=a32_0x1743;if(_0x47374b[_0x38c7d8(0x169)])return _0x47374b[_0x38c7d8(0x169)];if(!_0x47374b[_0x38c7d8(0x166)])throw CliErrors[_0x38c7d8(0x143)](_0x38c7d8(0x11d)+_0x1a6828[_0x38c7d8(0x13d)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x7fef21=await listDatasets(_0x150521[_0x38c7d8(0x15d)]),_0x354f27=_0x7fef21[_0x38c7d8(0x168)](_0x357c73=>_0x357c73[_0x38c7d8(0x10e)]?.[_0x38c7d8(0x12a)]===_0x47374b[_0x38c7d8(0x166)]);if(!_0x354f27?.[_0x38c7d8(0x124)])throw CliErrors[_0x38c7d8(0x143)](_0x38c7d8(0x142)+_0x47374b[_0x38c7d8(0x166)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x150521[_0x38c7d8(0x15d)]+'.',_0x38c7d8(0x164));return _0x354f27['code'];}function applyAppBinding(_0x22a067,_0x52a63f,_0x3742b4){const _0x17015f=a32_0x1743,_0x3bc3d2=_0x52a63f[_0x17015f(0x14a)][_0x17015f(0x11e)];if(!_0x3bc3d2)return;const _0x5b4c54=_0x22a067[_0x17015f(0x104)][_0x3bc3d2];if(!_0x5b4c54)throw CliErrors[_0x17015f(0x143)](_0x17015f(0x155)+_0x3bc3d2+_0x17015f(0x14e)+_0x52a63f[_0x17015f(0x13d)]+'.',_0x17015f(0x145));const _0x390121=_0x5b4c54['appcode']||_0x5b4c54[_0x17015f(0x15d)];_0x390121&&!hasText(_0x3742b4[_0x17015f(0x15f)])&&(_0x3742b4[_0x17015f(0x15f)]=_0x390121),_0x5b4c54[_0x17015f(0x138)]&&!hasText(_0x3742b4[_0x17015f(0x138)])&&!hasText(_0x3742b4['appcode'])&&(_0x3742b4[_0x17015f(0x138)]=_0x5b4c54[_0x17015f(0x138)]),_0x5b4c54[_0x17015f(0x137)]&&!hasText(_0x3742b4['env'])&&(_0x3742b4['env']=_0x5b4c54[_0x17015f(0x137)]);}function renderDynamicCommandHelp(_0xdbbb2c){const _0x94df04=a32_0x1743,_0x16b39b=[_0x94df04(0x10f),_0x94df04(0x15b)+_0xdbbb2c[_0x94df04(0x14a)]['kind'],'\x20\x20\x20\x20command:\x20'+_0xdbbb2c[_0x94df04(0x14a)][_0x94df04(0x158)]];if(_0xdbbb2c[_0x94df04(0x14a)][_0x94df04(0x169)])_0x16b39b[_0x94df04(0x157)]('\x20\x20\x20\x20datasetCode:\x20'+_0xdbbb2c[_0x94df04(0x14a)][_0x94df04(0x169)]);if(_0xdbbb2c[_0x94df04(0x14a)][_0x94df04(0x166)])_0x16b39b['push'](_0x94df04(0x108)+_0xdbbb2c['target'][_0x94df04(0x166)]);if(_0xdbbb2c[_0x94df04(0x14a)]['sqlCode'])_0x16b39b[_0x94df04(0x157)](_0x94df04(0x14c)+_0xdbbb2c['target']['sqlCode']);if(_0xdbbb2c[_0x94df04(0x14a)][_0x94df04(0x151)])_0x16b39b[_0x94df04(0x157)](_0x94df04(0x13a)+_0xdbbb2c[_0x94df04(0x14a)][_0x94df04(0x151)]);if(_0xdbbb2c[_0x94df04(0x111)][_0x94df04(0x13f)]>0x0){_0x16b39b[_0x94df04(0x157)]('',_0x94df04(0x140));for(const _0xfc0acd of _0xdbbb2c['mapTo']){_0x16b39b['push'](_0x94df04(0x103)+(_0xfc0acd['source']||_0x94df04(0x14f))+'\x20->\x20'+_0xfc0acd[_0x94df04(0x14a)]+(_0xfc0acd['operator']?'.'+_0xfc0acd[_0x94df04(0x114)]:''));}}return _0x16b39b[_0x94df04(0x167)]('\x0a');}function a32_0x5095(){const _0x86419c=['code','userName','default','startsWith','\x20requires\x20target.scriptName.','flatMap','tableName','boolean','cliName','envName','remainingArgs','Unsupported\x20service\x20target\x20kind:\x20','3XNTMGj','type','41DtvlvL','source','kind','\x20\x20[','read','env','app','params','\x20\x20\x20\x20scriptName:\x20','9088758MNhVAe','\x20<command>\x20[flags]','cliPath','normalizedManifest','length','\x20\x20MAP\x20TO','map','Cannot\x20resolve\x20datatable\x20\x22','validation','8413064BDaSiH','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','ctx.','now','flags','filter','target','sqlCode','\x20\x20\x20\x20sqlCode:\x20','commands','\x22\x20in\x20service\x20command\x20','const','entries','scriptName','33634gRjkBe','description','3105912iBxJXK','Unknown\x20appRef\x20\x22','name','push','command','args','risk','\x20\x20\x20\x20kind:\x20\x20\x20\x20','string','appCode','some','appcode','\x20requires\x20target.sqlCode.','bffCode','service','\x20completed\x20in\x20','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','bffId','datatable','join','find','datasetCode','padEnd','json','\x20\x20\x20\x20','appBindings','Run\x20service\x20command\x20','124572XjCkSM','trim','\x20\x20\x20\x20datatable:\x20','210iMrVHh','SERVICE_TREE','number','context.','Commands:','dbtableConfig','\x20\x20SERVICE\x20TREE\x20TARGET','6167716qnYsPt','mapTo','rawFlags','slice','operator','fromEntries','tenantCode','bff','50zcnZvG','\x20service\x20detail\x20--service\x20','fullPath','tree','nickName','Service\x20command\x20','appRef','Use\x20`','required','userId','674181KwoXCa','enum'];a32_0x5095=function(){return _0x86419c;};return a32_0x5095();}function targetPreview(_0x14cdec){const _0xe44551=a32_0x1743;return{'kind':_0x14cdec[_0xe44551(0x134)],'command':_0x14cdec[_0xe44551(0x158)],'appRef':_0x14cdec['appRef'],'datasetCode':_0x14cdec[_0xe44551(0x169)],'datatable':_0x14cdec[_0xe44551(0x166)],'sqlCode':_0x14cdec[_0xe44551(0x14b)],'bffCode':_0x14cdec[_0xe44551(0x161)],'bffId':_0x14cdec[_0xe44551(0x165)],'scriptName':_0x14cdec[_0xe44551(0x151)]};}function normalizeScalarParams(_0x2104ee){const _0x4361ce=a32_0x1743;return Object[_0x4361ce(0x115)](Object[_0x4361ce(0x150)](_0x2104ee)[_0x4361ce(0x149)](([,_0x27791f])=>typeof _0x27791f===_0x4361ce(0x15c)||typeof _0x27791f===_0x4361ce(0x10b)));}function hasText(_0xb14de2){const _0xc9a31d=a32_0x1743;return typeof _0xb14de2===_0xc9a31d(0x15c)&&_0xb14de2[_0xc9a31d(0x107)]()[_0xc9a31d(0x13f)]>0x0;}function isPrimitiveFlagDefault(_0x54e13b){const _0x485ddb=a32_0x1743;return _0x54e13b===undefined||typeof _0x54e13b==='string'||typeof _0x54e13b==='number'||typeof _0x54e13b===_0x485ddb(0x12b);}
|
|
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 +1 @@
|
|
|
1
|
-
const a33_0x365f49=a33_0x2b49;(function(_0x48441a,_0x3340bb){const _0xd77712=a33_0x2b49,_0x113255=_0x48441a();while(!![]){try{const _0x4ac3df=-parseInt(_0xd77712(0x84))/0x1+-parseInt(_0xd77712(0x8b))/0x2*(parseInt(_0xd77712(0xad))/0x3)+-parseInt(_0xd77712(0xaa))/0x4*(-parseInt(_0xd77712(0x82))/0x5)+parseInt(_0xd77712(0x80))/0x6*(parseInt(_0xd77712(0x7b))/0x7)+-parseInt(_0xd77712(0x90))/0x8*(-parseInt(_0xd77712(0xb1))/0x9)+-parseInt(_0xd77712(0x9d))/0xa*(parseInt(_0xd77712(0x9f))/0xb)+-parseInt(_0xd77712(0x71))/0xc*(parseInt(_0xd77712(0xab))/0xd);if(_0x4ac3df===_0x3340bb)break;else _0x113255['push'](_0x113255['shift']());}catch(_0x1e7fc5){_0x113255['push'](_0x113255['shift']());}}}(a33_0x4abf,0x27ca4));function a33_0x2b49(_0x198a23,_0x316b7a){_0x198a23=_0x198a23-0x6e;const _0x4abf0e=a33_0x4abf();let _0x2b49bf=_0x4abf0e[_0x198a23];return _0x2b49bf;}function a33_0x4abf(){const _0x1154e1=['risk','239617XFuJUr','Service\x20manifest\x20validation\x20passed.','export','Imported\x20','import','6frvsdT','list','1096730vvvQLn','manifest','156341SQPRVw','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','file','write','Service\x20Tree\x20manifest\x20file\x20path','remove','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','143084tUzAEg','\x20service\x20','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','kind','serviceCode','399272WqdmHu','registryPath','type','Updated','Removed\x20service\x20','manifests','Local\x20service\x20not\x20found:\x20','Exported\x20service\x20','commands','read','description','hash','entry','17360QKqmVf','normalizedManifest','44OXwImD','report','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Service\x20registry\x20validation\x20passed.','flags','entries','map','Local\x20service\x20code,\x20for\x20example\x20crm','warnings','errors','reduce','4NVltuY','360139qQoMme','updated','3zLxlVI','length','\x20service(s),\x20updated\x20','cliPath','36NppTYx','registryServiceCode','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','filePath','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','cliName','str','version','service','detail','serviceCount','24FXaJwR','string','source','name','replaced','target','WRITE','imported','validate'];a33_0x4abf=function(){return _0x1154e1;};return a33_0x4abf();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x365f49(0x86),'type':a33_0x365f49(0x72),'required':!![],'description':a33_0x365f49(0x88)},SERVICE_FLAG={'name':a33_0x365f49(0x6e),'type':a33_0x365f49(0x72),'required':!![],'description':a33_0x365f49(0xa6),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x53e0ba){const _0x410b3f=a33_0x365f49;return{'serviceCode':_0x53e0ba[_0x410b3f(0x8f)],'name':_0x53e0ba[_0x410b3f(0x9e)][_0x410b3f(0x6e)][_0x410b3f(0x74)],'version':_0x53e0ba[_0x410b3f(0xb8)],'importedAt':_0x53e0ba['importedAt'],'source':_0x53e0ba[_0x410b3f(0x73)],'commandCount':_0x53e0ba[_0x410b3f(0x9e)]['commands'][_0x410b3f(0xae)],'commands':_0x53e0ba[_0x410b3f(0x9e)][_0x410b3f(0x98)]['map'](_0x31e59e=>({'path':_0x31e59e[_0x410b3f(0xb0)],'description':_0x31e59e[_0x410b3f(0x9a)],'risk':_0x31e59e[_0x410b3f(0x7a)],'target':_0x31e59e[_0x410b3f(0x76)],'flags':_0x31e59e[_0x410b3f(0xa3)][_0x410b3f(0xa5)](_0x1101a6=>({'name':_0x1101a6[_0x410b3f(0x74)],'cliName':_0x1101a6[_0x410b3f(0xb6)],'type':_0x1101a6[_0x410b3f(0x92)],'required':_0x1101a6['required']===!![]}))}))};}function summarizeLoadedManifest(_0x58273e){const _0x3001fd=a33_0x365f49;return{'service':_0x58273e[_0x3001fd(0x9e)]?.[_0x3001fd(0x6e)],'version':_0x58273e['normalizedManifest']?.[_0x3001fd(0xb8)],'commandCount':_0x58273e[_0x3001fd(0x9e)]?.['commands'][_0x3001fd(0xae)]??0x0,'commands':_0x58273e[_0x3001fd(0x9e)]?.[_0x3001fd(0x98)][_0x3001fd(0xa5)](_0x301cb9=>({'path':_0x301cb9[_0x3001fd(0xb0)],'risk':_0x301cb9['risk'],'target':_0x301cb9[_0x3001fd(0x76)]}))??[],'registryIndex':_0x58273e['registryIndex'],'registryServiceCode':_0x58273e[_0x3001fd(0xb2)],'errors':_0x58273e['report'][_0x3001fd(0xa8)],'warnings':_0x58273e['report'][_0x3001fd(0xa7)]};}export const serviceDefinitions=[{'service':a33_0x365f49(0x6e),'command':a33_0x365f49(0x79),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a33_0x365f49(0x99),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x134c6b){const _0x11c86c=a33_0x365f49,_0xcb2290=loadServiceManifestFromFile(_0x134c6b['str']('file'));if(!_0xcb2290[_0x11c86c(0xa0)]['ok'])return{'ok':![],'data':{'file':_0xcb2290[_0x11c86c(0xb4)],'hash':_0xcb2290['hash'],'kind':_0xcb2290[_0x11c86c(0x8e)],'serviceCount':_0xcb2290[_0x11c86c(0x95)][_0x11c86c(0xae)],'services':_0xcb2290[_0x11c86c(0x95)]['map'](summarizeLoadedManifest),'errors':_0xcb2290[_0x11c86c(0xa0)][_0x11c86c(0xa8)],'warnings':_0xcb2290[_0x11c86c(0xa0)]['warnings']},'message':formatValidationFailure(_0xcb2290[_0x11c86c(0xa0)])};if(_0xcb2290['kind']==='registry'||_0xcb2290['manifests'][_0x11c86c(0xae)]!==0x1)return{'ok':!![],'data':{'file':_0xcb2290[_0x11c86c(0xb4)],'hash':_0xcb2290['hash'],'kind':_0xcb2290[_0x11c86c(0x8e)],'serviceCount':_0xcb2290[_0x11c86c(0x95)][_0x11c86c(0xae)],'commandCount':_0xcb2290[_0x11c86c(0x95)][_0x11c86c(0xa9)]((_0x18e43a,_0xaf9ecf)=>_0x18e43a+(_0xaf9ecf[_0x11c86c(0x9e)]?.[_0x11c86c(0x98)]['length']??0x0),0x0),'services':_0xcb2290[_0x11c86c(0x95)][_0x11c86c(0xa5)](summarizeLoadedManifest),'warnings':_0xcb2290[_0x11c86c(0xa0)][_0x11c86c(0xa7)]},'message':_0x11c86c(0xa2)};return{'ok':!![],'data':{'file':_0xcb2290[_0x11c86c(0xb4)],'hash':_0xcb2290[_0x11c86c(0x9b)],'kind':_0xcb2290[_0x11c86c(0x8e)],'service':_0xcb2290[_0x11c86c(0x9e)]?.[_0x11c86c(0x6e)],'version':_0xcb2290['normalizedManifest']?.[_0x11c86c(0xb8)],'commandCount':_0xcb2290[_0x11c86c(0x9e)]?.[_0x11c86c(0x98)]['length']??0x0,'commands':_0xcb2290[_0x11c86c(0x9e)]?.[_0x11c86c(0x98)][_0x11c86c(0xa5)](_0x10d9cd=>({'path':_0x10d9cd[_0x11c86c(0xb0)],'risk':_0x10d9cd[_0x11c86c(0x7a)],'target':_0x10d9cd[_0x11c86c(0x76)]})),'warnings':_0xcb2290[_0x11c86c(0xa0)]['warnings']},'message':_0x11c86c(0x7c)};}},{'service':'service','command':a33_0x365f49(0x7f),'description':a33_0x365f49(0xa1),'risk':a33_0x365f49(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x25bcbe){const _0x5d39bc=a33_0x365f49,_0x254a1a=loadServiceManifestFromFile(_0x25bcbe[_0x5d39bc(0xb7)](_0x5d39bc(0x86)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x254a1a[_0x5d39bc(0xb4)],'hash':_0x254a1a[_0x5d39bc(0x9b)],'kind':_0x254a1a[_0x5d39bc(0x8e)],'ok':_0x254a1a['report']['ok'],'service':_0x254a1a[_0x5d39bc(0x9e)]?.[_0x5d39bc(0x6e)],'version':_0x254a1a[_0x5d39bc(0x9e)]?.['version'],'serviceCount':_0x254a1a[_0x5d39bc(0x95)][_0x5d39bc(0xae)],'services':_0x254a1a['manifests'][_0x5d39bc(0xa5)](_0x18afe2=>({'service':_0x18afe2[_0x5d39bc(0x9e)]?.[_0x5d39bc(0x6e)],'version':_0x18afe2[_0x5d39bc(0x9e)]?.[_0x5d39bc(0xb8)],'commandCount':_0x18afe2[_0x5d39bc(0x9e)]?.['commands']['length']??0x0,'errors':_0x18afe2[_0x5d39bc(0xa0)]['errors']})),'errors':_0x254a1a['report'][_0x5d39bc(0xa8)],'commandCount':_0x254a1a['normalizedManifest']?.[_0x5d39bc(0x98)][_0x5d39bc(0xae)]??0x0},'description':_0x5d39bc(0x85)};},async 'execute'(_0x13db74){const _0x44735c=a33_0x365f49,_0x3ab4c1=importServiceManifest(_0x13db74[_0x44735c(0xb7)](_0x44735c(0x86)));if(_0x3ab4c1['entries'][_0x44735c(0xae)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3ab4c1['registryPath'],'imported':_0x3ab4c1['imported'],'updated':_0x3ab4c1['updated'],'serviceCount':_0x3ab4c1[_0x44735c(0x70)],'services':_0x3ab4c1[_0x44735c(0xa4)][_0x44735c(0xa5)](summarizeService)},'message':_0x44735c(0x7e)+_0x3ab4c1[_0x44735c(0x78)]+_0x44735c(0xaf)+_0x3ab4c1[_0x44735c(0xac)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x3ab4c1['registryPath'],'replaced':_0x3ab4c1['replaced'],'imported':_0x3ab4c1['imported'],'updated':_0x3ab4c1['updated'],'serviceCount':_0x3ab4c1[_0x44735c(0x70)],'service':summarizeService(_0x3ab4c1[_0x44735c(0x9c)])},'message':(_0x3ab4c1[_0x44735c(0x75)]?_0x44735c(0x93):'Imported')+_0x44735c(0x8c)+_0x3ab4c1['entry'][_0x44735c(0x8f)]+'.'};}},{'service':a33_0x365f49(0x6e),'command':a33_0x365f49(0x7d),'description':a33_0x365f49(0xb3),'risk':a33_0x365f49(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4d479a){const _0x57a5ab=a33_0x365f49,_0x54058e=getLocalServiceEntry(_0x4d479a[_0x57a5ab(0xb7)](_0x57a5ab(0x6e)));return{'method':_0x57a5ab(0x77),'url':_0x4d479a['str'](_0x57a5ab(0x86)),'body':{'service':_0x4d479a[_0x57a5ab(0xb7)](_0x57a5ab(0x6e)),'found':Boolean(_0x54058e),'version':_0x54058e?.[_0x57a5ab(0xb8)],'source':_0x54058e?.['source']},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x49bedc){const _0x4a8547=a33_0x365f49,_0x4dc57b=exportServiceManifest(_0x49bedc[_0x4a8547(0xb7)](_0x4a8547(0x6e)),_0x49bedc[_0x4a8547(0xb7)](_0x4a8547(0x86)));return{'ok':!![],'data':{'registryPath':_0x4dc57b[_0x4a8547(0x91)],'file':_0x4dc57b[_0x4a8547(0xb4)],'service':summarizeService(_0x4dc57b['entry'])},'message':_0x4a8547(0x97)+_0x4dc57b[_0x4a8547(0x9c)][_0x4a8547(0x8f)]+'.'};}},{'service':'service','command':a33_0x365f49(0x81),'description':a33_0x365f49(0xb5),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x492316=a33_0x365f49,_0x49df9a=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x49df9a['length'],'services':_0x49df9a[_0x492316(0xa5)](summarizeService)}};}},{'service':a33_0x365f49(0x6e),'command':a33_0x365f49(0x89),'description':a33_0x365f49(0x8d),'risk':a33_0x365f49(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xae6247){const _0x2f0854=a33_0x365f49,_0x3cb2a0=getLocalServiceEntry(_0xae6247['str'](_0x2f0854(0x6e)));return{'method':_0x2f0854(0x77),'url':getServiceRegistryPath(),'body':{'service':_0xae6247[_0x2f0854(0xb7)](_0x2f0854(0x6e)),'found':Boolean(_0x3cb2a0),'version':_0x3cb2a0?.[_0x2f0854(0xb8)],'source':_0x3cb2a0?.[_0x2f0854(0x73)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x185432){const _0x4d3dca=a33_0x365f49,_0x46d366=removeServiceManifest(_0x185432[_0x4d3dca(0xb7)]('service'));return{'ok':!![],'data':{'registryPath':_0x46d366[_0x4d3dca(0x91)],'serviceCount':_0x46d366[_0x4d3dca(0x70)],'service':summarizeService(_0x46d366[_0x4d3dca(0x9c)])},'message':_0x4d3dca(0x94)+_0x46d366[_0x4d3dca(0x9c)][_0x4d3dca(0x8f)]+'.'};}},{'service':a33_0x365f49(0x6e),'command':a33_0x365f49(0x6f),'description':a33_0x365f49(0x8a),'risk':a33_0x365f49(0x99),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x3c8c36){const _0x58608=a33_0x365f49,_0x5e522c=getLocalServiceEntry(_0x3c8c36[_0x58608(0xb7)](_0x58608(0x6e)));if(!_0x5e522c)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x3c8c36[_0x58608(0xb7)](_0x58608(0x6e))},'message':_0x58608(0x96)+_0x3c8c36['str'](_0x58608(0x6e))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x5e522c),'manifest':_0x5e522c[_0x58608(0x83)],'normalizedManifest':_0x5e522c[_0x58608(0x9e)]}};}}];
|
|
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 +1 @@
|
|
|
1
|
-
const a34_0xb613d9=a34_0x52e7;(function(_0x3e3d7b,_0x1f7d88){const _0x3df16b=a34_0x52e7,_0x1a91ff=_0x3e3d7b();while(!![]){try{const _0x4ffc55=parseInt(_0x3df16b(0xa9))/0x1+-parseInt(_0x3df16b(0xaf))/0x2+-parseInt(_0x3df16b(0xc1))/0x3+parseInt(_0x3df16b(0xd4))/0x4*(-parseInt(_0x3df16b(0xc3))/0x5)+-parseInt(_0x3df16b(0xab))/0x6+-parseInt(_0x3df16b(0xd5))/0x7+parseInt(_0x3df16b(0xa5))/0x8;if(_0x4ffc55===_0x1f7d88)break;else _0x1a91ff['push'](_0x1a91ff['shift']());}catch(_0x2d4ad5){_0x1a91ff['push'](_0x1a91ff['shift']());}}}(a34_0x1ccc,0xab219));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';function a34_0x52e7(_0x42dc22,_0x41e3bf){_0x42dc22=_0x42dc22-0x99;const _0x1ccc16=a34_0x1ccc();let _0x52e73e=_0x1ccc16[_0x42dc22];return _0x52e73e;}import{CliErrors}from'../../errors.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0xb613d9(0xaa);export function getServiceRegistryPath(_0x4bc351={}){const _0x23bedf=a34_0xb613d9;return resolve(_0x4bc351[_0x23bedf(0xa4)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x43792a={}){const _0xf5c2e4=a34_0xb613d9,_0x24f45f=getServiceRegistryPath(_0x43792a);if(!existsSync(_0x24f45f))return emptyServiceRegistry();try{const _0x3c098b=readFileSync(_0x24f45f,_0xf5c2e4(0xae));if(!_0x3c098b[_0xf5c2e4(0xdc)]())return emptyServiceRegistry();const _0x3b50d2=JSON['parse'](_0x3c098b);if(_0x3b50d2[_0xf5c2e4(0xbd)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0xf5c2e4(0x9f)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x3b50d2[_0xf5c2e4(0xbd)]),'Remove\x20or\x20migrate\x20'+_0x24f45f+'.');if(!Array[_0xf5c2e4(0xb1)](_0x3b50d2[_0xf5c2e4(0xe8)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3b50d2['updatedAt'],'services':_0x3b50d2['services']};}catch(_0x24043f){if(_0x24043f instanceof Error&&_0x24043f[_0xf5c2e4(0xd3)]===_0xf5c2e4(0xe4))throw _0x24043f;throw CliErrors[_0xf5c2e4(0x9f)](_0xf5c2e4(0xbc)+_0x24f45f,_0xf5c2e4(0xa0));}}function a34_0x1ccc(){const _0x597950=['schemaVersion','manifests','string','digest','3916122YPwGRH','version','460330ByfHiz','path','errors','reduce','Local\x20service\x20not\x20found:\x20','find','risk','code','importedAt','services\x20must\x20be\x20an\x20array','now','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','commands','message','registry','findIndex','name','36eNxXEr','1094674FEKMca','invalid','stringify','Service\x20manifest\x20file\x20not\x20found:\x20','cliPath','updatedAt','hex','trim','].manifest','length','startsWith','warnings','manifest','.tmp','Unsupported\x20schemaVersion:\x20','CliError','registryIndex','commandCount','push','services','report','Invalid\x20service\x20manifest\x20JSON:\x20','command','update','slice','serviceCode','validation','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','join','source','localeCompare','homeDir','27006176ahZnUG','$.services[','toISOString','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','325872czNPoE','service.json','2437698zWxIah','ENOENT','kind','utf8','608116thEfdU','map','isArray','file','parse','service','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','normalizedManifest','target','object','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Cannot\x20write\x20service\x20registry:\x20','description','Invalid\x20service\x20registry\x20JSON:\x20'];a34_0x1ccc=function(){return _0x597950;};return a34_0x1ccc();}export function writeServiceRegistry(_0x4cfc1b,_0x559040={}){const _0x16738b=a34_0xb613d9,_0x44c484=getServiceRegistryPath(_0x559040),_0x110fe1=dirname(_0x44c484);!existsSync(_0x110fe1)&&mkdirSync(_0x110fe1,{'recursive':!![]});const _0x15d719=_0x44c484+_0x16738b(0xe2);try{writeFileSync(_0x15d719,JSON[_0x16738b(0xd7)](_0x4cfc1b,null,0x2)+'\x0a',{'encoding':_0x16738b(0xae),'mode':0x180}),renameSync(_0x15d719,_0x44c484);}catch(_0x204a11){try{unlinkSync(_0x15d719);}catch{}if(_0x204a11?.[_0x16738b(0xca)]===_0x16738b(0xac))throw CliErrors[_0x16738b(0x9f)](_0x16738b(0xba)+_0x44c484);throw _0x204a11;}return _0x44c484;}export function loadServiceManifestFromFile(_0x3ce33c){const _0x245fc4=a34_0xb613d9,_0x3dfb67=resolve(_0x3ce33c);if(!existsSync(_0x3dfb67))throw CliErrors['validation'](_0x245fc4(0xd8)+_0x3ce33c);let _0x140922;const _0x30cc82=readFileSync(_0x3dfb67,_0x245fc4(0xae));try{_0x140922=JSON['parse'](_0x30cc82);}catch{throw CliErrors['validation'](_0x245fc4(0x9a)+_0x3ce33c,_0x245fc4(0xb5));}const _0x3325b8=sha256(_0x30cc82),_0x181f11=extractLoadedServiceManifests(_0x140922,_0x3325b8),_0x5651ad=aggregateValidationReports(_0x181f11),_0x532e28=_0x181f11[0x0];return{'filePath':_0x3dfb67,'hash':_0x3325b8,'kind':isServiceRegistryLike(_0x140922)?_0x245fc4(0xd1):_0x245fc4(0xe1),'manifest':_0x532e28?.[_0x245fc4(0xe1)]??_0x140922,'report':_0x5651ad,'normalizedManifest':_0x181f11[_0x245fc4(0xde)]===0x1?_0x532e28?.[_0x245fc4(0xb6)]:undefined,'manifests':_0x181f11};}export function importServiceManifest(_0x26771a,_0x5247d6={}){const _0x1a978b=a34_0xb613d9,_0x9fa702=loadServiceManifestFromFile(_0x26771a);if(!_0x9fa702['report']['ok'])throw CliErrors[_0x1a978b(0x9f)](formatValidationFailure(_0x9fa702[_0x1a978b(0x99)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x9fa702[_0x1a978b(0xbe)]['length']===0x0)throw CliErrors[_0x1a978b(0x9f)](_0x1a978b(0xce),_0x1a978b(0xb9));const _0x55c77a=readServiceRegistry(_0x5247d6),_0x4e6412=(_0x5247d6[_0x1a978b(0xcd)]??(()=>new Date()))()[_0x1a978b(0xa7)](),_0x538711=[];let _0x246ea1=0x0,_0x4f68d6=0x0;for(const _0x18ecb4 of _0x9fa702[_0x1a978b(0xbe)]){if(!_0x18ecb4['normalizedManifest'])continue;const _0x369e14=_0x18ecb4['normalizedManifest']['service'][_0x1a978b(0xca)],_0x19280f={'serviceCode':_0x369e14,'version':_0x18ecb4['normalizedManifest'][_0x1a978b(0xc2)],'importedAt':_0x4e6412,'source':{'type':_0x1a978b(0xb2),'path':_0x9fa702['filePath'],'hash':_0x18ecb4['sourceHash']},'manifest':_0x18ecb4[_0x1a978b(0xe1)],'normalizedManifest':_0x18ecb4[_0x1a978b(0xb6)]},_0x5d2353=_0x55c77a[_0x1a978b(0xe8)][_0x1a978b(0xd2)](_0x43a75c=>_0x43a75c[_0x1a978b(0x9e)]===_0x369e14);_0x5d2353>=0x0?(_0x55c77a[_0x1a978b(0xe8)][_0x5d2353]=_0x19280f,_0x4f68d6++):(_0x55c77a[_0x1a978b(0xe8)]['push'](_0x19280f),_0x246ea1++),_0x538711[_0x1a978b(0xe7)](_0x19280f);}_0x55c77a[_0x1a978b(0xe8)]['sort']((_0x47c76a,_0x32b36c)=>_0x47c76a['serviceCode'][_0x1a978b(0xa3)](_0x32b36c['serviceCode'])),_0x55c77a[_0x1a978b(0xda)]=_0x4e6412;const _0x5856c3=writeServiceRegistry(_0x55c77a,_0x5247d6);return{'registryPath':_0x5856c3,'entry':_0x538711[0x0],'replaced':_0x538711['length']===0x1?_0x4f68d6===0x1:_0x4f68d6>0x0,'entries':_0x538711,'imported':_0x246ea1,'updated':_0x4f68d6,'serviceCount':_0x55c77a[_0x1a978b(0xe8)][_0x1a978b(0xde)]};}export function exportServiceManifest(_0x24b016,_0xa3cd0e,_0x2e2696={}){const _0x3bc59f=a34_0xb613d9,_0x155a38=getServiceRegistryPath(_0x2e2696),_0x5f4e70=getLocalServiceEntry(_0x24b016,_0x2e2696);if(!_0x5f4e70)throw CliErrors[_0x3bc59f(0x9f)](_0x3bc59f(0xc7)+_0x24b016,_0x3bc59f(0xa8));const _0x2908d4=resolve(_0xa3cd0e),_0x1883c0=dirname(_0x2908d4);return!existsSync(_0x1883c0)&&mkdirSync(_0x1883c0,{'recursive':!![]}),writeFileSync(_0x2908d4,JSON[_0x3bc59f(0xd7)](_0x5f4e70[_0x3bc59f(0xe1)],null,0x2)+'\x0a',{'encoding':_0x3bc59f(0xae),'mode':0x180}),{'registryPath':_0x155a38,'filePath':_0x2908d4,'entry':_0x5f4e70};}export function removeServiceManifest(_0x5c3ad9,_0x544cb1={}){const _0x3795b4=a34_0xb613d9,_0x2568d6=readServiceRegistry(_0x544cb1),_0x2904b9=_0x5c3ad9[_0x3795b4(0xdc)](),_0x475f92=_0x2568d6['services']['findIndex'](_0x4fd4fe=>_0x4fd4fe[_0x3795b4(0x9e)]===_0x2904b9);if(_0x475f92<0x0)throw CliErrors[_0x3795b4(0x9f)](_0x3795b4(0xc7)+_0x2904b9,_0x3795b4(0xa8));const [_0x4199b3]=_0x2568d6[_0x3795b4(0xe8)]['splice'](_0x475f92,0x1),_0x36b616=(_0x544cb1[_0x3795b4(0xcd)]??(()=>new Date()))()[_0x3795b4(0xa7)]();_0x2568d6['updatedAt']=_0x36b616;const _0x57556a=writeServiceRegistry(_0x2568d6,_0x544cb1);return{'registryPath':_0x57556a,'entry':_0x4199b3,'serviceCount':_0x2568d6[_0x3795b4(0xe8)][_0x3795b4(0xde)]};}export function listLocalServices(_0x322378={}){const _0x246d53=a34_0xb613d9;return readServiceRegistry(_0x322378)[_0x246d53(0xe8)];}export function getLocalServiceEntry(_0x13f39b,_0x1f568f={}){const _0x342d7b=a34_0xb613d9;return readServiceRegistry(_0x1f568f)[_0x342d7b(0xe8)][_0x342d7b(0xc8)](_0x2d3f57=>_0x2d3f57[_0x342d7b(0x9e)]===_0x13f39b[_0x342d7b(0xdc)]());}export function listLocalServiceTrees(_0x57059c={}){const _0x4f12e4=a34_0xb613d9;return readServiceRegistry(_0x57059c)[_0x4f12e4(0xe8)][_0x4f12e4(0xb0)](_0x18ea99=>_0x18ea99[_0x4f12e4(0xb6)]);}export function inspectServiceRegistry(_0x3be87d={}){const _0x320d1a=a34_0xb613d9,_0x3bc8ae=getServiceRegistryPath(_0x3be87d);if(!existsSync(_0x3bc8ae))return emptyServiceRegistryInspection(_0x3bc8ae,'missing',![]);try{const _0x2ba8cd=readFileSync(_0x3bc8ae,_0x320d1a(0xae));if(!_0x2ba8cd[_0x320d1a(0xdc)]())return emptyServiceRegistryInspection(_0x3bc8ae,'empty',!![]);const _0x585ce7=JSON[_0x320d1a(0xb3)](_0x2ba8cd);if(_0x585ce7['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x3bc8ae,_0x320d1a(0xd6),!![]),'schemaVersion':_0x585ce7[_0x320d1a(0xbd)],'message':_0x320d1a(0xe3)+String(_0x585ce7[_0x320d1a(0xbd)])};if(!Array[_0x320d1a(0xb1)](_0x585ce7[_0x320d1a(0xe8)]))return{...emptyServiceRegistryInspection(_0x3bc8ae,_0x320d1a(0xd6),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x585ce7[_0x320d1a(0xda)],'message':_0x320d1a(0xcc)};const _0x5cf417=_0x585ce7[_0x320d1a(0xe8)][_0x320d1a(0xb0)](summarizeLocalServiceEntry);return{'registryPath':_0x3bc8ae,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x585ce7[_0x320d1a(0xda)],'serviceCount':_0x5cf417[_0x320d1a(0xde)],'commandCount':_0x5cf417[_0x320d1a(0xc6)]((_0x3cf85d,_0x4e21ae)=>_0x3cf85d+_0x4e21ae[_0x320d1a(0xe6)],0x0),'services':_0x5cf417};}catch(_0x12065e){return{...emptyServiceRegistryInspection(_0x3bc8ae,_0x320d1a(0xd6),!![]),'message':_0x12065e instanceof Error?_0x12065e[_0x320d1a(0xd0)]:String(_0x12065e)};}}export function formatValidationFailure(_0xb0ad9b){const _0x54008e=a34_0xb613d9,_0x2355f9=_0xb0ad9b[_0x54008e(0xc5)][_0x54008e(0xb0)](_0x2bd673=>_0x2bd673['path']+':\x20'+_0x2bd673['message']);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x2355f9[_0x54008e(0xa1)]('\x0a');}function extractLoadedServiceManifests(_0x3f5b44,_0x5022e8){const _0x4f7dcc=a34_0xb613d9;if(!isServiceRegistryLike(_0x3f5b44)){const _0x1fe648=_0x3f5b44,_0x3a2790=validateServiceTreeManifest(_0x1fe648);return[{'manifest':_0x1fe648,'report':_0x3a2790,'normalizedManifest':_0x3a2790['ok']?normalizeServiceTreeManifest(_0x1fe648):undefined,'sourceHash':_0x5022e8}];}return _0x3f5b44[_0x4f7dcc(0xe8)][_0x4f7dcc(0xb0)]((_0xe5325,_0x120c83)=>{const _0x1dd903=_0x4f7dcc,_0x406364=isObjectRecord(_0xe5325)?_0xe5325[_0x1dd903(0xe1)]:undefined,_0x7287ca=validateServiceTreeManifest(_0x406364),_0x5625b1=isObjectRecord(_0xe5325)&&typeof _0xe5325[_0x1dd903(0x9e)]===_0x1dd903(0xbf)?_0xe5325[_0x1dd903(0x9e)]:undefined;return{'manifest':_0x406364,'report':_0x7287ca,'normalizedManifest':_0x7287ca['ok']?normalizeServiceTreeManifest(_0x406364):undefined,'sourceHash':sha256(JSON[_0x1dd903(0xd7)](_0x406364,null,0x2)+'\x0a'),'registryIndex':_0x120c83,'registryServiceCode':_0x5625b1};});}function aggregateValidationReports(_0xf7511e){const _0x357825=a34_0xb613d9,_0x17f250=_0xf7511e['flatMap'](_0x18f8aa=>_0x18f8aa[_0x357825(0xe5)]===undefined?_0x18f8aa[_0x357825(0x99)][_0x357825(0xc5)]:_0x18f8aa[_0x357825(0x99)][_0x357825(0xc5)][_0x357825(0xb0)](_0x5a27c8=>({..._0x5a27c8,'path':prefixRegistryIssuePath(_0x18f8aa[_0x357825(0xe5)],_0x5a27c8[_0x357825(0xc4)])}))),_0xff2b37=_0xf7511e['flatMap'](_0x41961=>_0x41961['registryIndex']===undefined?_0x41961[_0x357825(0x99)]['warnings']:_0x41961[_0x357825(0x99)][_0x357825(0xe0)]['map'](_0x1106e2=>({..._0x1106e2,'path':prefixRegistryIssuePath(_0x41961[_0x357825(0xe5)],_0x1106e2[_0x357825(0xc4)])})));return{'ok':_0x17f250[_0x357825(0xde)]===0x0,'errors':_0x17f250,'warnings':_0xff2b37};}function prefixRegistryIssuePath(_0x1e1089,_0x3824b7){const _0x34de80=a34_0xb613d9;if(_0x3824b7==='$')return _0x34de80(0xa6)+_0x1e1089+_0x34de80(0xdd);if(_0x3824b7[_0x34de80(0xdf)]('$.'))return _0x34de80(0xa6)+_0x1e1089+_0x34de80(0xdd)+_0x3824b7[_0x34de80(0x9d)](0x1);if(_0x3824b7[_0x34de80(0xdf)]('$['))return _0x34de80(0xa6)+_0x1e1089+'].manifest'+_0x3824b7['slice'](0x1);return _0x34de80(0xa6)+_0x1e1089+'].manifest.'+_0x3824b7;}function isServiceRegistryLike(_0x3d52bb){const _0x15fcf6=a34_0xb613d9;return isObjectRecord(_0x3d52bb)&&_0x3d52bb['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x3d52bb[_0x15fcf6(0xe8)]);}function isObjectRecord(_0x5f24b7){const _0x1ab423=a34_0xb613d9;return Boolean(_0x5f24b7)&&typeof _0x5f24b7===_0x1ab423(0xb8)&&!Array[_0x1ab423(0xb1)](_0x5f24b7);}function emptyServiceRegistryInspection(_0x46fab3,_0x3631eb,_0x3ec21d){return{'registryPath':_0x46fab3,'exists':_0x3ec21d,'status':_0x3631eb,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1c3126){const _0x14d8cf=a34_0xb613d9,_0x56bc02=_0x1c3126['normalizedManifest'],_0x32aac3=_0x56bc02[_0x14d8cf(0xcf)][_0x14d8cf(0xb0)](_0x240039=>({'path':_0x240039[_0x14d8cf(0xd9)],'description':_0x240039[_0x14d8cf(0xbb)],'risk':_0x240039[_0x14d8cf(0xc9)],'targetKind':_0x240039[_0x14d8cf(0xb7)][_0x14d8cf(0xad)],'targetCommand':_0x240039['target'][_0x14d8cf(0x9b)]}));return{'serviceCode':_0x1c3126[_0x14d8cf(0x9e)],'name':_0x56bc02['service'][_0x14d8cf(0xd3)],'description':_0x56bc02[_0x14d8cf(0xb4)][_0x14d8cf(0xbb)],'version':_0x1c3126['version'],'importedAt':_0x1c3126[_0x14d8cf(0xcb)],'source':_0x1c3126[_0x14d8cf(0xa2)],'commandCount':_0x32aac3[_0x14d8cf(0xde)],'commands':_0x32aac3};}function sha256(_0x356d60){const _0x31bc93=a34_0xb613d9;return createHash('sha256')[_0x31bc93(0x9c)](_0x356d60)[_0x31bc93(0xc0)](_0x31bc93(0xdb));}
|
|
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));}
|