@lovrabet/lovrabet-cli 2.1.0 → 2.1.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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_0xd095b=a27_0x1660;(function(_0x1e04c1,_0x49a1fe){const _0x452ecf=a27_0x1660,_0x2c43e9=_0x1e04c1();while(!![]){try{const _0x38223b=parseInt(_0x452ecf(0x1d5))/0x1*(parseInt(_0x452ecf(0x1fd))/0x2)+-parseInt(_0x452ecf(0x207))/0x3*(-parseInt(_0x452ecf(0x1e6))/0x4)+-parseInt(_0x452ecf(0x1f5))/0x5+parseInt(_0x452ecf(0x1f4))/0x6*(parseInt(_0x452ecf(0x1d3))/0x7)+-parseInt(_0x452ecf(0x212))/0x8*(-parseInt(_0x452ecf(0x1f6))/0x9)+-parseInt(_0x452ecf(0x1f7))/0xa*(-parseInt(_0x452ecf(0x1da))/0xb)+-parseInt(_0x452ecf(0x209))/0xc;if(_0x38223b===_0x49a1fe)break;else _0x2c43e9['push'](_0x2c43e9['shift']());}catch(_0x1db377){_0x2c43e9['push'](_0x2c43e9['shift']());}}}(a27_0x105a,0x7df39));import{existsSync,readFileSync,statSync}from'node:fs';function a27_0x1660(_0x561135,_0x3f427f){_0x561135=_0x561135-0x1ce;const _0x105a4c=a27_0x105a();let _0x166035=_0x105a4c[_0x561135];return _0x166035;}import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0xd095b(0x1e9),'type':'string','required':!![],'description':a27_0xd095b(0x211)},FILE_FLAG={'name':a27_0xd095b(0x1e7),'type':a27_0xd095b(0x1dc),'required':!![],'description':a27_0xd095b(0x1df)},QUERY_FLAG={'name':a27_0xd095b(0x1d7),'type':a27_0xd095b(0x1dc),'required':!![],'description':a27_0xd095b(0x1ee)},TOPK_FLAG={'name':a27_0xd095b(0x1fc),'type':a27_0xd095b(0x1dd),'description':a27_0xd095b(0x1f3)};function readKnowledgeFile(_0x5d11d8){const _0x5e96f5=a27_0xd095b;if(!_0x5d11d8)throw CliErrors[_0x5e96f5(0x205)]('File\x20path\x20is\x20required.');if(!existsSync(_0x5d11d8))throw CliErrors[_0x5e96f5(0x205)](_0x5e96f5(0x1e2)+_0x5d11d8);if(!statSync(_0x5d11d8)['isFile']())throw CliErrors['validation'](_0x5e96f5(0x210)+_0x5d11d8);return readFileSync(_0x5d11d8,_0x5e96f5(0x202));}function summarizePersonalItem(_0x57d3cf){const _0x3ba355=a27_0xd095b;return{'id':_0x57d3cf['id'],'title':_0x57d3cf['title'],'version':_0x57d3cf[_0x3ba355(0x1f2)],'ragStatus':_0x57d3cf[_0x3ba355(0x1e5)],'ragErrorMessage':_0x57d3cf['ragErrorMessage'],'updateTime':_0x57d3cf[_0x3ba355(0x1e3)]};}function detailPersonalItem(_0xd66aa6){const _0x280003=a27_0xd095b;return{'id':_0xd66aa6['id'],'appCode':_0xd66aa6[_0x280003(0x1ed)],'scope':_0xd66aa6['scope'],'userId':_0xd66aa6[_0x280003(0x20b)],'title':_0xd66aa6['title'],'content':_0xd66aa6[_0x280003(0x1ff)]??'','version':_0xd66aa6['version'],'ragStatus':_0xd66aa6['ragStatus'],'ragErrorMessage':_0xd66aa6['ragErrorMessage'],'createTime':_0xd66aa6[_0x280003(0x1d1)],'updateTime':_0xd66aa6[_0x280003(0x1e3)]};}function summarizeSearchHit(_0x30773f){const _0x336449=a27_0xd095b;return{'scope':_0x30773f['scope'],'docId':_0x30773f[_0x336449(0x20e)],'score':_0x30773f[_0x336449(0x204)],'weightedScore':_0x30773f[_0x336449(0x1de)],'content':_0x30773f[_0x336449(0x1ff)],'metadata':_0x30773f[_0x336449(0x20f)]};}function readTopK(_0x40a95a){const _0xac6219=a27_0xd095b,_0x3f004d=_0x40a95a['flag'](_0xac6219(0x1fc));if(_0x3f004d===undefined||_0x3f004d===null||_0x3f004d==='')return undefined;const _0x3bc937=_0x40a95a[_0xac6219(0x1e0)](_0xac6219(0x1fc));if(!Number[_0xac6219(0x1ce)](_0x3bc937)||_0x3bc937<0x1)throw CliErrors['validation'](_0xac6219(0x208));return _0x3bc937;}const kbList={'service':'kb','command':a27_0xd095b(0x20d),'description':a27_0xd095b(0x1eb),'risk':a27_0xd095b(0x1ea),'flags':[VERBOSE_FLAG],async 'execute'(_0x2a3a58){const _0x492af2=a27_0xd095b,_0x4eb605=await listPersonalKnowledgeBaseItems(_0x2a3a58[_0x492af2(0x1ed)]);if(_0x2a3a58[_0x492af2(0x1d9)](_0x492af2(0x1e4)))return{'ok':!![],'data':{'total':_0x4eb605[_0x492af2(0x1fe)],'items':_0x4eb605}};return{'ok':!![],'data':{'total':_0x4eb605[_0x492af2(0x1fe)],'items':_0x4eb605[_0x492af2(0x1cf)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0xd095b(0x1d6),'description':a27_0xd095b(0x206),'risk':a27_0xd095b(0x1ea),'flags':[{...ID_FLAG,'description':a27_0xd095b(0x1db)}],async 'execute'(_0x4ef4e1){const _0xf2be0=await getPersonalKnowledgeBaseItem(_0x4ef4e1['num']('id'),_0x4ef4e1['appCode']);return{'ok':!![],'data':detailPersonalItem(_0xf2be0)};}},kbCreate={'service':'kb','command':a27_0xd095b(0x1d2),'description':a27_0xd095b(0x1d8),'risk':a27_0xd095b(0x203),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x1c4918){const _0x3640e3=a27_0xd095b,_0x137185=_0x1c4918[_0x3640e3(0x1fa)]('title'),_0x4e7c6d=readKnowledgeFile(_0x1c4918['str']('file')),_0x222023=await createPersonalKnowledgeBaseItem(_0x1c4918[_0x3640e3(0x1ed)],{'title':_0x137185,'content':_0x4e7c6d});return{'ok':!![],'data':summarizePersonalItem(_0x222023),'message':_0x3640e3(0x201)+_0x222023['id']+'\x20('+_0x222023[_0x3640e3(0x1e9)]+')'};},async 'dryRun'(_0x2c8544){const _0x5b65f9=a27_0xd095b,_0x4f0475=_0x2c8544[_0x5b65f9(0x1fa)]('title'),_0x88910=readKnowledgeFile(_0x2c8544['str'](_0x5b65f9(0x1e7)));return dryRun(_0x5b65f9(0x1d4),'/client/knowledge-base/personal/create')['body']({'appCode':_0x2c8544['appCode'],'title':_0x4f0475,'content':_0x88910})[_0x5b65f9(0x1f9)](_0x5b65f9(0x1ec)+_0x4f0475+'\x22')[_0x5b65f9(0x1f8)]();}},kbUpdate={'service':'kb','command':a27_0xd095b(0x1d0),'description':a27_0xd095b(0x1fb),'risk':a27_0xd095b(0x203),'flags':[{...ID_FLAG,'description':'Personal\x20knowledge-base\x20entry\x20ID'},{...TITLE_FLAG,'required':![],'description':'Override\x20the\x20existing\x20entry\x20title'},FILE_FLAG],async 'execute'(_0x4e662b){const _0x34f33f=a27_0xd095b,_0x55bb8e=_0x4e662b[_0x34f33f(0x1e0)]('id'),_0x4afe8e=readKnowledgeFile(_0x4e662b['str'](_0x34f33f(0x1e7))),_0x5930ca=_0x4e662b[_0x34f33f(0x1fa)](_0x34f33f(0x1e9))||(await getPersonalKnowledgeBaseItem(_0x55bb8e,_0x4e662b[_0x34f33f(0x1ed)]))[_0x34f33f(0x1e9)],_0x3319c7=await updatePersonalKnowledgeBaseItem(_0x55bb8e,_0x4e662b[_0x34f33f(0x1ed)],{'title':_0x5930ca,'content':_0x4afe8e});return{'ok':!![],'data':summarizePersonalItem(_0x3319c7),'message':_0x34f33f(0x20c)+_0x3319c7['id']+'\x20('+_0x3319c7[_0x34f33f(0x1e9)]+')'};},async 'dryRun'(_0x58b2e4){const _0x1ffbf7=a27_0xd095b,_0x3157f0=_0x58b2e4[_0x1ffbf7(0x1e0)]('id'),_0xb9f8e8=readKnowledgeFile(_0x58b2e4[_0x1ffbf7(0x1fa)]('file')),_0x4ec327=_0x58b2e4[_0x1ffbf7(0x1fa)](_0x1ffbf7(0x1e9))||(await getPersonalKnowledgeBaseItem(_0x3157f0,_0x58b2e4[_0x1ffbf7(0x1ed)]))[_0x1ffbf7(0x1e9)];return dryRun(_0x1ffbf7(0x1d4),_0x1ffbf7(0x1ef)+_0x3157f0+_0x1ffbf7(0x1e1))[_0x1ffbf7(0x200)]({'appCode':_0x58b2e4[_0x1ffbf7(0x1ed)],'title':_0x4ec327,'content':_0xb9f8e8})[_0x1ffbf7(0x1f9)]('Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20'+_0x3157f0)[_0x1ffbf7(0x1f8)]();}},kbSearch={'service':'kb','command':a27_0xd095b(0x1e8),'description':a27_0xd095b(0x20a),'risk':a27_0xd095b(0x1ea),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x30f238){const _0x2edc99=a27_0xd095b;if(!_0x30f238[_0x2edc99(0x1fa)](_0x2edc99(0x1d7))[_0x2edc99(0x1f1)]())throw CliErrors[_0x2edc99(0x205)](_0x2edc99(0x1f0));readTopK(_0x30f238);},async 'execute'(_0x8b5107){const _0x268e29=a27_0xd095b,_0x395369=_0x8b5107[_0x268e29(0x1fa)]('query')['trim'](),_0x43ef98=readTopK(_0x8b5107),_0x300f92=await searchKnowledgeBase(_0x8b5107['appCode'],{'query':_0x395369,'topK':_0x43ef98});return{'ok':!![],'data':{'total':_0x300f92['length'],'hits':_0x300f92[_0x268e29(0x1cf)](summarizeSearchHit)}};}};function a27_0x105a(){const _0x81f910=['Personal\x20knowledge-base\x20entry\x20ID','string','number','weightedScore','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','num','/update','File\x20not\x20found:\x20','updateTime','verbose','ragStatus','249160nHkqwP','file','search','title','read','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','appCode','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','/client/knowledge-base/personal/','Search\x20query\x20is\x20required.','trim','version','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','1633062iiEUCN','4275815EvagSd','2783763ovtMUc','20hjZZbl','build','description','str','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','topk','479314tPCvSy','length','content','body','Created\x20KB\x20entry\x20','utf8','write','score','validation','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','27kuyDtg','--topk\x20must\x20be\x20a\x20positive\x20number.','11904792rWLqbj','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','userId','Updated\x20KB\x20entry\x20','list','docId','metadata','File\x20is\x20not\x20a\x20regular\x20file:\x20','Personal\x20knowledge-base\x20entry\x20title','8kzNmjo','isFinite','map','update','createTime','create','7YTmwUw','POST','2fZCIYy','detail','query','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','bool','4079449GwYptL'];a27_0x105a=function(){return _0x81f910;};return a27_0x105a();}export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a28_0x3aaa0e=a28_0x1132;(function(_0x32f785,_0xe527b){const _0xe0abbe=a28_0x1132,_0x381587=_0x32f785();while(!![]){try{const _0x3aa417=parseInt(_0xe0abbe(0xa9))/0x1+-parseInt(_0xe0abbe(0xb1))/0x2*(-parseInt(_0xe0abbe(0x93))/0x3)+-parseInt(_0xe0abbe(0xb0))/0x4*(-parseInt(_0xe0abbe(0xab))/0x5)+-parseInt(_0xe0abbe(0xb5))/0x6*(parseInt(_0xe0abbe(0xa3))/0x7)+-parseInt(_0xe0abbe(0x9e))/0x8+parseInt(_0xe0abbe(0xa4))/0x9*(parseInt(_0xe0abbe(0x9c))/0xa)+-parseInt(_0xe0abbe(0x9f))/0xb;if(_0x3aa417===_0xe527b)break;else _0x381587['push'](_0x381587['shift']());}catch(_0x2819f6){_0x381587['push'](_0x381587['shift']());}}}(a28_0x24a5,0x39b76));function a28_0x1132(_0x3d6fc9,_0x5db275){_0x3d6fc9=_0x3d6fc9-0x91;const _0x24a560=a28_0x24a5();let _0x113223=_0x24a560[_0x3d6fc9];return _0x113223;}import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x53323e){const _0x2db0f7=a28_0x1132;if(_0x53323e[_0x2db0f7(0x9b)]===0x0){console[_0x2db0f7(0xa6)](_0x2db0f7(0x96));return;}console[_0x2db0f7(0xa6)]('*\x20'+CLI_DISPLAY_NAME+_0x2db0f7(0xa7)),_0x53323e[_0x2db0f7(0xa5)]((_0x27aac9,_0xacd55)=>{const _0x192631=_0x2db0f7,_0x5b3c98=new Date(_0x27aac9['timestamp'])['toLocaleString'](_0x192631(0xb4)),_0x385fe7=_0x27aac9['level']===_0x192631(0x9a)?'√':_0x27aac9[_0x192631(0xa2)]===_0x192631(0x95)?'×':_0x27aac9[_0x192631(0xa2)]===_0x192631(0x94)?'!':'i';console[_0x192631(0xa6)](_0xacd55+0x1+'.\x20'+_0x385fe7+'\x20['+_0x27aac9[_0x192631(0xaa)]+']\x20'+_0x27aac9[_0x192631(0xb2)]),console['log'](_0x192631(0xad)+_0x5b3c98),_0x27aac9[_0x192631(0x99)]&&console[_0x192631(0xa6)]('\x20\x20\x20Duration:\x20'+_0x27aac9[_0x192631(0x99)]+'ms'),_0x27aac9[_0x192631(0x9d)]&&Object[_0x192631(0xac)](_0x27aac9[_0x192631(0x9d)])[_0x192631(0x9b)]>0x0&&console[_0x192631(0xa6)](_0x192631(0x92)+JSON['stringify'](_0x27aac9['details'],null,0x2)),console[_0x192631(0xa6)]('');});}export const logsDefinitions=[{'service':a28_0x3aaa0e(0xaf),'command':a28_0x3aaa0e(0xa8),'description':a28_0x3aaa0e(0xa0),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x5635df){const _0x20e638=a28_0x3aaa0e;return printLogs(logger[_0x20e638(0xa1)]()),{'ok':!![]};}},{'service':a28_0x3aaa0e(0xaf),'command':a28_0x3aaa0e(0x91),'description':a28_0x3aaa0e(0xb3),'risk':a28_0x3aaa0e(0x97),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x901c8a){const _0x271b99=a28_0x3aaa0e;return logger[_0x271b99(0xae)](),console[_0x271b99(0xa6)](_0x271b99(0x98)),{'ok':!![]};}}];function a28_0x24a5(){const _0x16e6b0=['2322495EaFVGE','keys','\x20\x20\x20Time:\x20','clearLogs','logs','4zTIMWC','4iscAiG','message','Clear\x20command\x20history\x20logs','en-US','1710tdUTOA','clear','\x20\x20\x20Details:\x20','658059mGgyDa','warn','error','*\x20No\x20logs\x20found','write','*\x20Logs\x20cleared','duration','success','length','160cOvDnL','details','258152GXLRHb','9214689USIvla','View\x20command\x20history\x20logs','readLogs','level','4795JQdlJt','141318BgTcpp','forEach','log','\x20logs:\x0a','show','147162pVgzdI','command'];a28_0x24a5=function(){return _0x16e6b0;};return a28_0x24a5();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a29_0x281be3=a29_0x1266;(function(_0x3a5994,_0x2f21f1){const _0x3bd000=a29_0x1266,_0x2df34b=_0x3a5994();while(!![]){try{const _0x31a24b=-parseInt(_0x3bd000(0xe7))/0x1+parseInt(_0x3bd000(0xe0))/0x2+parseInt(_0x3bd000(0xb1))/0x3*(-parseInt(_0x3bd000(0xdc))/0x4)+parseInt(_0x3bd000(0xdf))/0x5*(parseInt(_0x3bd000(0xd7))/0x6)+parseInt(_0x3bd000(0xae))/0x7*(parseInt(_0x3bd000(0xc4))/0x8)+parseInt(_0x3bd000(0xd0))/0x9+-parseInt(_0x3bd000(0xce))/0xa*(parseInt(_0x3bd000(0xba))/0xb);if(_0x31a24b===_0x2f21f1)break;else _0x2df34b['push'](_0x2df34b['shift']());}catch(_0x4ea0a6){_0x2df34b['push'](_0x2df34b['shift']());}}}(a29_0x5f04,0x4b136));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';function a29_0x1266(_0x4a6b48,_0xa38d47){_0x4a6b48=_0x4a6b48-0xab;const _0x5f0409=a29_0x5f04();let _0x126654=_0x5f0409[_0x4a6b48];return _0x126654;}import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':'file','type':a29_0x281be3(0xe9),'description':a29_0x281be3(0xdb)},FUNCTION_NAME_FLAG={'name':'name','type':a29_0x281be3(0xe9),'required':!![],'description':a29_0x281be3(0xda)},DESCRIPTION_FLAG={'name':a29_0x281be3(0xbe),'type':'string','description':a29_0x281be3(0xbc)},SOURCE_SESSION_FLAG={'name':'source-session-id','type':a29_0x281be3(0xe9),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x78f456){const _0x3fd254=a29_0x281be3,_0xd4d787=String(_0x78f456||'')[_0x3fd254(0xb6)]();if(!_0xd4d787||!FUNCTION_NAME_PATTERN['test'](_0xd4d787))throw CliErrors[_0x3fd254(0xc1)](_0x3fd254(0xed));return _0xd4d787;}function readScriptFile(_0x3796ba){const _0xb0088c=a29_0x281be3;if(!_0x3796ba)throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xcf));if(!existsSync(_0x3796ba))throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xaf)+_0x3796ba);if(!statSync(_0x3796ba)[_0xb0088c(0xd6)]())throw CliErrors['validation'](_0xb0088c(0xc2)+_0x3796ba);const _0x56e628=readFileSync(_0x3796ba,_0xb0088c(0xe8));if(!_0x56e628[_0xb0088c(0xb6)]())throw CliErrors['validation']('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0x56e628;}function optionalTrimmed(_0x45be88){const _0x4ab79e=a29_0x281be3,_0x28900b=String(_0x45be88||'')[_0x4ab79e(0xb6)]();return _0x28900b||undefined;}function summarizeBff(_0x2f7936){const _0x2ab8aa=a29_0x281be3;return{'id':_0x2f7936['id'],'appCode':_0x2f7936[_0x2ab8aa(0xc3)],'functionName':_0x2f7936[_0x2ab8aa(0xc9)],'description':_0x2f7936[_0x2ab8aa(0xbe)],'scriptType':_0x2f7936[_0x2ab8aa(0xeb)],'version':_0x2f7936[_0x2ab8aa(0xd1)],'gmtModified':_0x2f7936['gmtModified'],'updateTime':_0x2f7936['updateTime']};}function detailBff(_0x58bb62){const _0xe0e517=a29_0x281be3;return{'id':_0x58bb62['id'],'appCode':_0x58bb62[_0xe0e517(0xc3)],'functionName':_0x58bb62[_0xe0e517(0xc9)],'description':_0x58bb62[_0xe0e517(0xbe)],'scriptType':_0x58bb62[_0xe0e517(0xeb)],'scriptContent':_0x58bb62[_0xe0e517(0xd9)]??'','config':_0x58bb62['config'],'version':_0x58bb62[_0xe0e517(0xd1)],'createUserId':_0x58bb62['createUserId'],'gmtCreate':_0x58bb62['gmtCreate'],'gmtModified':_0x58bb62['gmtModified'],'createTime':_0x58bb62['createTime'],'updateTime':_0x58bb62[_0xe0e517(0xc0)]};}function buildCreateInput(_0x4f1ee3){const _0x75cd8=a29_0x281be3;return{'functionName':normalizeFunctionName(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe3))),...optionalTrimmed(_0x4f1ee3['str'](_0x75cd8(0xbe)))?{'description':optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xbe)))}:{},'scriptContent':readScriptFile(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xb7))),...optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe5)))?{'sourceSessionId':optionalTrimmed(_0x4f1ee3['str']('source-session-id'))}:{}};}function a29_0x5f04(){const _0x37045e=['appCode','8vsjdld','Updated\x20personal\x20BFF\x20','params','body','read','functionName','detail','map','Preview:\x20create\x20personal\x20BFF\x20','create','10jZCXEE','File\x20path\x20is\x20required.','1520982ifpKNN','version','str','list','keys','Personal\x20BFF\x20script\x20ID','isFile','2406EFJGuz','Update\x20a\x20personal\x20BFF\x20by\x20id','scriptContent','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','144encHag','flag','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','1145FMroHl','1141876rJRyPF','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','name','high-risk-write','source-session-id','num','40853mJKXUb','utf8','string','Created\x20personal\x20BFF\x20','scriptType','bool','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','write','length','/client/runtime-bff/personal/','510377kIZpLn','File\x20not\x20found:\x20','build','5091hUHCtZ','Preview:\x20update\x20personal\x20BFF\x20','Executed\x20personal\x20BFF\x20','POST','/update','trim','file','verbose','--params\x20must\x20be\x20a\x20JSON\x20object.','5447431bpRVEJ','/client/runtime-bff/personal/create','Personal\x20BFF\x20description','personal-bff','description','Show\x20one\x20personal\x20BFF\x20by\x20id','updateTime','validation','File\x20is\x20not\x20a\x20regular\x20file:\x20'];a29_0x5f04=function(){return _0x37045e;};return a29_0x5f04();}function buildUpdateInput(_0x342152){const _0x4e1935=a29_0x281be3,_0x2f2482={};optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3)))&&(_0x2f2482[_0x4e1935(0xc9)]=normalizeFunctionName(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3))));_0x342152[_0x4e1935(0xdd)]('description')!==undefined&&(_0x2f2482[_0x4e1935(0xbe)]=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xbe)));optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7)))&&(_0x2f2482[_0x4e1935(0xd9)]=readScriptFile(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7))));_0x342152[_0x4e1935(0xdd)](_0x4e1935(0xe5))!==undefined&&(_0x2f2482['sourceSessionId']=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe5)));if(Object[_0x4e1935(0xd4)](_0x2f2482)[_0x4e1935(0xac)]===0x0)throw CliErrors[_0x4e1935(0xc1)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x2f2482;}function parseExecParams(_0x3d6984){const _0x3ab9d9=a29_0x281be3,_0x2312c4=parseJsonParams(_0x3d6984)??{};if(Array['isArray'](_0x2312c4))throw CliErrors[_0x3ab9d9(0xc1)](_0x3ab9d9(0xb9));return _0x2312c4;}const personalBffList={'service':a29_0x281be3(0xbd),'command':a29_0x281be3(0xd3),'description':a29_0x281be3(0xde),'risk':a29_0x281be3(0xc8),'flags':[VERBOSE_FLAG],async 'execute'(_0x28e630){const _0xc8cc54=a29_0x281be3,_0x279f53=await listPersonalBffs(_0x28e630[_0xc8cc54(0xc3)]);return{'ok':!![],'data':{'total':_0x279f53[_0xc8cc54(0xac)],'items':_0x28e630[_0xc8cc54(0xec)](_0xc8cc54(0xb8))?_0x279f53:_0x279f53[_0xc8cc54(0xcb)](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':a29_0x281be3(0xca),'description':a29_0x281be3(0xbf),'risk':'read','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)}],async 'execute'(_0x30fb54){const _0x4b06f1=a29_0x281be3,_0x1886b0=await getPersonalBff(_0x30fb54[_0x4b06f1(0xe6)]('id'),_0x30fb54['appCode']);return{'ok':!![],'data':detailBff(_0x1886b0)};}},personalBffCreate={'service':'personal-bff','command':a29_0x281be3(0xcd),'description':a29_0x281be3(0xe1),'risk':a29_0x281be3(0xab),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x42be43){const _0x4e252a=a29_0x281be3,_0x4e4dd4=buildCreateInput(_0x42be43),_0x18f64c=await createPersonalBff(_0x42be43[_0x4e252a(0xc3)],_0x4e4dd4);return{'ok':!![],'data':detailBff(_0x18f64c),'message':_0x4e252a(0xea)+_0x18f64c['id']+(_0x18f64c[_0x4e252a(0xc9)]?'\x20('+_0x18f64c['functionName']+')':'')};},async 'dryRun'(_0x52084c){const _0x5ab7bb=a29_0x281be3,_0x4c7080=buildCreateInput(_0x52084c);return dryRun(_0x5ab7bb(0xb4),_0x5ab7bb(0xbb))[_0x5ab7bb(0xc7)]({'appCode':_0x52084c[_0x5ab7bb(0xc3)],..._0x4c7080})[_0x5ab7bb(0xbe)](_0x5ab7bb(0xcc)+_0x4c7080[_0x5ab7bb(0xc9)])[_0x5ab7bb(0xb0)]();}},personalBffUpdate={'service':'personal-bff','command':'update','description':a29_0x281be3(0xd8),'risk':'write','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x278911){const _0x5e6b83=a29_0x281be3,_0x5c57d4=_0x278911['num']('id'),_0x300853=buildUpdateInput(_0x278911),_0x233dd8=await updatePersonalBff(_0x5c57d4,_0x278911[_0x5e6b83(0xc3)],_0x300853);return{'ok':!![],'data':detailBff(_0x233dd8),'message':_0x5e6b83(0xc5)+_0x233dd8['id']+(_0x233dd8[_0x5e6b83(0xc9)]?'\x20('+_0x233dd8[_0x5e6b83(0xc9)]+')':'')};},async 'dryRun'(_0x236d51){const _0x366491=a29_0x281be3,_0x481833=_0x236d51['num']('id'),_0xda20c9=buildUpdateInput(_0x236d51);return dryRun(_0x366491(0xb4),_0x366491(0xad)+_0x481833+_0x366491(0xb5))[_0x366491(0xc7)]({'appCode':_0x236d51[_0x366491(0xc3)],..._0xda20c9})[_0x366491(0xbe)](_0x366491(0xb2)+_0x481833)['build']();}},personalBffExec={'service':a29_0x281be3(0xbd),'command':'exec','description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':a29_0x281be3(0xe4),'flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...PARAMS_FLAG,'description':a29_0x281be3(0xe2)}],async 'validate'(_0x1414db){const _0xf0707c=a29_0x281be3;parseExecParams(_0x1414db[_0xf0707c(0xd2)](_0xf0707c(0xc6)));},async 'execute'(_0x5ecbe6){const _0x16722c=a29_0x281be3,_0x2c17c7=_0x5ecbe6['num']('id'),_0x3a9cee=parseExecParams(_0x5ecbe6[_0x16722c(0xd2)](_0x16722c(0xc6))),_0x3e1542=await executePersonalBff(_0x2c17c7,_0x5ecbe6[_0x16722c(0xc3)],_0x3a9cee);return{'ok':!![],'data':{'result':_0x3e1542},'message':_0x16722c(0xb3)+_0x2c17c7};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
1
|
+
const a29_0x45a965=a29_0x4b65;(function(_0x2f8412,_0x32fd83){const _0x1e9624=a29_0x4b65,_0x2beeb3=_0x2f8412();while(!![]){try{const _0x224884=-parseInt(_0x1e9624(0x1bc))/0x1+-parseInt(_0x1e9624(0x1d2))/0x2*(parseInt(_0x1e9624(0x1cf))/0x3)+-parseInt(_0x1e9624(0x1cd))/0x4*(-parseInt(_0x1e9624(0x1ac))/0x5)+-parseInt(_0x1e9624(0x1dc))/0x6*(-parseInt(_0x1e9624(0x1c7))/0x7)+parseInt(_0x1e9624(0x1e0))/0x8+-parseInt(_0x1e9624(0x1bb))/0x9*(parseInt(_0x1e9624(0x1c2))/0xa)+parseInt(_0x1e9624(0x1ea))/0xb;if(_0x224884===_0x32fd83)break;else _0x2beeb3['push'](_0x2beeb3['shift']());}catch(_0x330581){_0x2beeb3['push'](_0x2beeb3['shift']());}}}(a29_0x61d4,0xac124));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';function a29_0x4b65(_0x509326,_0x1d719c){_0x509326=_0x509326-0x1ac;const _0x61d433=a29_0x61d4();let _0x4b659c=_0x61d433[_0x509326];return _0x4b659c;}import{CliErrors}from'../../errors.js';function a29_0x61d4(){const _0x53b8e2=['createUserId','config','updateTime','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','69140duJmUv','functionName','body','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','build','315GcoeJZ','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','isArray','gmtCreate','flag','write','1196872BACACT','read','129201dspEhf','length','name','58zwCtkv','num','Personal\x20BFF\x20script\x20file\x20is\x20blank.','/client/runtime-bff/personal/','createTime','Preview:\x20create\x20personal\x20BFF\x20','params','exec','isFile','Personal\x20BFF\x20script\x20ID','88902jlRnCT','personal-bff','description','scriptContent','5377528UQAePi','File\x20path\x20is\x20required.','scriptType','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','keys','validation','trim','Preview:\x20update\x20personal\x20BFF\x20','POST','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','16442052BIYyax','update','create','version','gmtModified','source-session-id','/client/runtime-bff/personal/create','20XiwjTM','sourceSessionId','map','Executed\x20personal\x20BFF\x20','appCode','detail','verbose','str','Show\x20one\x20personal\x20BFF\x20by\x20id','file','Updated\x20personal\x20BFF\x20','string','Created\x20personal\x20BFF\x20','test','File\x20not\x20found:\x20','1737FGxgsi','742411QfvwsQ','File\x20is\x20not\x20a\x20regular\x20file:\x20'];a29_0x61d4=function(){return _0x53b8e2;};return a29_0x61d4();}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_0x45a965(0x1b5),'type':a29_0x45a965(0x1b7),'description':a29_0x45a965(0x1c8)},FUNCTION_NAME_FLAG={'name':'name','type':'string','required':!![],'description':a29_0x45a965(0x1e3)},DESCRIPTION_FLAG={'name':a29_0x45a965(0x1de),'type':'string','description':'Personal\x20BFF\x20description'},SOURCE_SESSION_FLAG={'name':a29_0x45a965(0x1ef),'type':a29_0x45a965(0x1b7),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x30c11e){const _0x22d05d=a29_0x45a965,_0x1910a2=String(_0x30c11e||'')[_0x22d05d(0x1e6)]();if(!_0x1910a2||!FUNCTION_NAME_PATTERN[_0x22d05d(0x1b9)](_0x1910a2))throw CliErrors['validation'](_0x22d05d(0x1c1));return _0x1910a2;}function readScriptFile(_0x2b45f8){const _0x3eecda=a29_0x45a965;if(!_0x2b45f8)throw CliErrors['validation'](_0x3eecda(0x1e1));if(!existsSync(_0x2b45f8))throw CliErrors[_0x3eecda(0x1e5)](_0x3eecda(0x1ba)+_0x2b45f8);if(!statSync(_0x2b45f8)[_0x3eecda(0x1da)]())throw CliErrors[_0x3eecda(0x1e5)](_0x3eecda(0x1bd)+_0x2b45f8);const _0x440101=readFileSync(_0x2b45f8,'utf8');if(!_0x440101['trim']())throw CliErrors[_0x3eecda(0x1e5)](_0x3eecda(0x1d4));return _0x440101;}function optionalTrimmed(_0x3022de){const _0x5a8773=a29_0x45a965,_0x1fa23c=String(_0x3022de||'')[_0x5a8773(0x1e6)]();return _0x1fa23c||undefined;}function summarizeBff(_0x28083f){const _0xdca09a=a29_0x45a965;return{'id':_0x28083f['id'],'appCode':_0x28083f[_0xdca09a(0x1b0)],'functionName':_0x28083f[_0xdca09a(0x1c3)],'description':_0x28083f[_0xdca09a(0x1de)],'scriptType':_0x28083f[_0xdca09a(0x1e2)],'version':_0x28083f[_0xdca09a(0x1ed)],'gmtModified':_0x28083f['gmtModified'],'updateTime':_0x28083f[_0xdca09a(0x1c0)]};}function detailBff(_0x2624a3){const _0x32e331=a29_0x45a965;return{'id':_0x2624a3['id'],'appCode':_0x2624a3['appCode'],'functionName':_0x2624a3[_0x32e331(0x1c3)],'description':_0x2624a3[_0x32e331(0x1de)],'scriptType':_0x2624a3[_0x32e331(0x1e2)],'scriptContent':_0x2624a3[_0x32e331(0x1df)]??'','config':_0x2624a3[_0x32e331(0x1bf)],'version':_0x2624a3['version'],'createUserId':_0x2624a3[_0x32e331(0x1be)],'gmtCreate':_0x2624a3[_0x32e331(0x1ca)],'gmtModified':_0x2624a3[_0x32e331(0x1ee)],'createTime':_0x2624a3[_0x32e331(0x1d6)],'updateTime':_0x2624a3['updateTime']};}function buildCreateInput(_0x2f57bb){const _0x1fcbba=a29_0x45a965;return{'functionName':normalizeFunctionName(_0x2f57bb['str'](_0x1fcbba(0x1d1))),...optionalTrimmed(_0x2f57bb['str']('description'))?{'description':optionalTrimmed(_0x2f57bb[_0x1fcbba(0x1b3)]('description'))}:{},'scriptContent':readScriptFile(_0x2f57bb[_0x1fcbba(0x1b3)](_0x1fcbba(0x1b5))),...optionalTrimmed(_0x2f57bb[_0x1fcbba(0x1b3)]('source-session-id'))?{'sourceSessionId':optionalTrimmed(_0x2f57bb[_0x1fcbba(0x1b3)](_0x1fcbba(0x1ef)))}:{}};}function buildUpdateInput(_0x12b824){const _0x34ddf8=a29_0x45a965,_0x301cba={};optionalTrimmed(_0x12b824[_0x34ddf8(0x1b3)]('name'))&&(_0x301cba[_0x34ddf8(0x1c3)]=normalizeFunctionName(_0x12b824[_0x34ddf8(0x1b3)]('name')));_0x12b824[_0x34ddf8(0x1cb)](_0x34ddf8(0x1de))!==undefined&&(_0x301cba[_0x34ddf8(0x1de)]=_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1de)));optionalTrimmed(_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1b5)))&&(_0x301cba[_0x34ddf8(0x1df)]=readScriptFile(_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1b5))));_0x12b824[_0x34ddf8(0x1cb)](_0x34ddf8(0x1ef))!==undefined&&(_0x301cba[_0x34ddf8(0x1ad)]=_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1ef)));if(Object[_0x34ddf8(0x1e4)](_0x301cba)[_0x34ddf8(0x1d0)]===0x0)throw CliErrors[_0x34ddf8(0x1e5)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x301cba;}function parseExecParams(_0x30446d){const _0x42c950=a29_0x45a965,_0x3db8d4=parseJsonParams(_0x30446d)??{};if(Array[_0x42c950(0x1c9)](_0x3db8d4))throw CliErrors[_0x42c950(0x1e5)]('--params\x20must\x20be\x20a\x20JSON\x20object.');return _0x3db8d4;}const personalBffList={'service':a29_0x45a965(0x1dd),'command':'list','description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':a29_0x45a965(0x1ce),'flags':[VERBOSE_FLAG],async 'execute'(_0x95a6ae){const _0x50450e=a29_0x45a965,_0x14c951=await listPersonalBffs(_0x95a6ae[_0x50450e(0x1b0)]);return{'ok':!![],'data':{'total':_0x14c951[_0x50450e(0x1d0)],'items':_0x95a6ae['bool'](_0x50450e(0x1b2))?_0x14c951:_0x14c951[_0x50450e(0x1ae)](summarizeBff)}};}},personalBffDetail={'service':a29_0x45a965(0x1dd),'command':a29_0x45a965(0x1b1),'description':a29_0x45a965(0x1b4),'risk':a29_0x45a965(0x1ce),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'}],async 'execute'(_0x49fbfb){const _0x3bad4d=a29_0x45a965,_0xcc6051=await getPersonalBff(_0x49fbfb[_0x3bad4d(0x1d3)]('id'),_0x49fbfb[_0x3bad4d(0x1b0)]);return{'ok':!![],'data':detailBff(_0xcc6051)};}},personalBffCreate={'service':'personal-bff','command':a29_0x45a965(0x1ec),'description':a29_0x45a965(0x1c5),'risk':a29_0x45a965(0x1cc),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x4b9c13){const _0x422960=a29_0x45a965,_0x339c30=buildCreateInput(_0x4b9c13),_0x6b1029=await createPersonalBff(_0x4b9c13[_0x422960(0x1b0)],_0x339c30);return{'ok':!![],'data':detailBff(_0x6b1029),'message':_0x422960(0x1b8)+_0x6b1029['id']+(_0x6b1029[_0x422960(0x1c3)]?'\x20('+_0x6b1029[_0x422960(0x1c3)]+')':'')};},async 'dryRun'(_0x33778f){const _0x5952a5=a29_0x45a965,_0x48d795=buildCreateInput(_0x33778f);return dryRun(_0x5952a5(0x1e8),_0x5952a5(0x1f0))[_0x5952a5(0x1c4)]({'appCode':_0x33778f['appCode'],..._0x48d795})[_0x5952a5(0x1de)](_0x5952a5(0x1d7)+_0x48d795['functionName'])['build']();}},personalBffUpdate={'service':a29_0x45a965(0x1dd),'command':a29_0x45a965(0x1eb),'description':'Update\x20a\x20personal\x20BFF\x20by\x20id','risk':a29_0x45a965(0x1cc),'flags':[{...ID_FLAG,'description':a29_0x45a965(0x1db)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x570d55){const _0x5f36b9=a29_0x45a965,_0x445ad4=_0x570d55[_0x5f36b9(0x1d3)]('id'),_0x395544=buildUpdateInput(_0x570d55),_0x5aa9f5=await updatePersonalBff(_0x445ad4,_0x570d55[_0x5f36b9(0x1b0)],_0x395544);return{'ok':!![],'data':detailBff(_0x5aa9f5),'message':_0x5f36b9(0x1b6)+_0x5aa9f5['id']+(_0x5aa9f5[_0x5f36b9(0x1c3)]?'\x20('+_0x5aa9f5[_0x5f36b9(0x1c3)]+')':'')};},async 'dryRun'(_0xed0fae){const _0x531b9d=a29_0x45a965,_0x4e8f37=_0xed0fae['num']('id'),_0x1ba5fb=buildUpdateInput(_0xed0fae);return dryRun(_0x531b9d(0x1e8),_0x531b9d(0x1d5)+_0x4e8f37+'/update')[_0x531b9d(0x1c4)]({'appCode':_0xed0fae['appCode'],..._0x1ba5fb})[_0x531b9d(0x1de)](_0x531b9d(0x1e7)+_0x4e8f37)[_0x531b9d(0x1c6)]();}},personalBffExec={'service':'personal-bff','command':a29_0x45a965(0x1d9),'description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':'high-risk-write','flags':[{...ID_FLAG,'description':a29_0x45a965(0x1db)},{...PARAMS_FLAG,'description':a29_0x45a965(0x1e9)}],async 'validate'(_0x57d6c5){const _0x2d2d13=a29_0x45a965;parseExecParams(_0x57d6c5[_0x2d2d13(0x1b3)](_0x2d2d13(0x1d8)));},async 'execute'(_0x59a560){const _0x6879f4=a29_0x45a965,_0x175649=_0x59a560[_0x6879f4(0x1d3)]('id'),_0xdb4761=parseExecParams(_0x59a560[_0x6879f4(0x1b3)](_0x6879f4(0x1d8))),_0x3a4841=await executePersonalBff(_0x175649,_0x59a560['appCode'],_0xdb4761);return{'ok':!![],'data':{'result':_0x3a4841},'message':_0x6879f4(0x1af)+_0x175649};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x2d7a9f=a30_0x52dc;(function(_0x37d4d3,_0x18f3c7){const _0x2417e4=a30_0x52dc,_0x117f3a=_0x37d4d3();while(!![]){try{const _0x1f33c9=parseInt(_0x2417e4(0xc7))/0x1+parseInt(_0x2417e4(0xdc))/0x2+-parseInt(_0x2417e4(0xc8))/0x3+parseInt(_0x2417e4(0xdf))/0x4+-parseInt(_0x2417e4(0xcd))/0x5*(parseInt(_0x2417e4(0xc4))/0x6)+parseInt(_0x2417e4(0xe5))/0x7*(-parseInt(_0x2417e4(0xd0))/0x8)+-parseInt(_0x2417e4(0xda))/0x9*(-parseInt(_0x2417e4(0xdb))/0xa);if(_0x1f33c9===_0x18f3c7)break;else _0x117f3a['push'](_0x117f3a['shift']());}catch(_0x5a4c91){_0x117f3a['push'](_0x117f3a['shift']());}}}(a30_0x2876,0xa02d4));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';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(_0x4e35c2){const _0x39fe00=a30_0x52dc;for(const _0x3f721e of _0x4e35c2){definitions[_0x39fe00(0xd3)](_0x3f721e[_0x39fe00(0xbd)]+':'+_0x3f721e['command'],_0x3f721e);let _0x2c80a8=serviceGroups[_0x39fe00(0xd4)](_0x3f721e['service']);!_0x2c80a8&&(_0x2c80a8=[],serviceGroups[_0x39fe00(0xd3)](_0x3f721e[_0x39fe00(0xbd)],_0x2c80a8)),_0x2c80a8[_0x39fe00(0xca)](_0x3f721e);}}function registerService(_0x25b727,_0xf62b3b,_0x4383dd){const _0x4bca01=a30_0x52dc;registerDefinitions(_0xf62b3b);const _0x13b5a4=_0x3a69f2=>_0x3a69f2==='read'?'':_0x3a69f2===_0x4bca01(0xe0)?_0x4bca01(0xc9):_0x4bca01(0xd2),_0xe1db18={'service':_0xf62b3b[0x0][_0x4bca01(0xbd)],'label':_0x25b727,'commands':_0xf62b3b[_0x4bca01(0xd8)](_0x41257f=>({'command':_0x41257f['command'],'description':_0x41257f[_0x4bca01(0xcf)],'tag':_0x13b5a4(_0x41257f['risk'])})),'defaultCommand':_0x4383dd?.['defaultCommand']??(_0x4383dd?.[_0x4bca01(0xe2)]?_0xf62b3b[0x0][_0x4bca01(0xce)]:undefined),'isSingleCommand':_0x4383dd?.[_0x4bca01(0xe2)]};serviceRegistry[_0x4bca01(0xca)](_0xe1db18),serviceByName[_0x4bca01(0xd3)](_0xe1db18[_0x4bca01(0xbd)],_0xe1db18);}function a30_0x2876(){const _0xa45f1f=['show','CLI\x20Built-in\x20Skill','SQL\x20Queries','101712mzndJc','Artifacts','from','708036RpeZuA','2867145sFCpZO','\x20\x20[write]','push','install','Skills','80TMoCpY','command','description','15160XPFGeb','Authentication','\x20\x20[high-risk-write]','set','get','API\x20Documentation','Instant\x20API','values','map','App\x20Management','2784762Zqwvbc','40XHyGmN','87074PuXCaT','Datasets','Logs','4699224vvAOGB','write','Workspace','isSingleCommand','run','Service\x20Tree','4732JNgRWT','Self\x20Update','Schema','service','BFF\x20Scripts','has','list'];a30_0x2876=function(){return _0xa45f1f;};return a30_0x2876();}function a30_0x52dc(_0x3e733d,_0x1eb4fc){_0x3e733d=_0x3e733d-0xbb;const _0x2876b0=a30_0x2876();let _0x52dcd4=_0x2876b0[_0x3e733d];return _0x52dcd4;}registerService(a30_0x2d7a9f(0xd1),authDefinitions,{'defaultCommand':'login'}),registerService(a30_0x2d7a9f(0xd5),apiDocDefinitions),registerService(a30_0x2d7a9f(0xdd),datasetDefinitions),registerService(a30_0x2d7a9f(0xd6),dataDefinitions),registerService(a30_0x2d7a9f(0xc3),sqlDefinitions),registerService(a30_0x2d7a9f(0xbe),bffDefinitions),registerService('Personal\x20BFF',personalBffDefinitions),registerService(a30_0x2d7a9f(0xc5),artifactDefinitions),registerService('Knowledge\x20Base',kbDefinitions),registerService(a30_0x2d7a9f(0xd9),appDefinitions,{'defaultCommand':a30_0x2d7a9f(0xc0)}),registerService(a30_0x2d7a9f(0xe1),workspaceDefinitions),registerService('Configuration',configDefinitions,{'defaultCommand':'list'}),registerService(a30_0x2d7a9f(0xe4),serviceDefinitions,{'defaultCommand':a30_0x2d7a9f(0xc0)}),registerService(a30_0x2d7a9f(0xcc),skillDefinitions,{'defaultCommand':a30_0x2d7a9f(0xcb)}),registerService(a30_0x2d7a9f(0xc2),cliSkillDefinitions,{'defaultCommand':a30_0x2d7a9f(0xcb)}),registerService(a30_0x2d7a9f(0xbb),[updateDefinition],{'defaultCommand':a30_0x2d7a9f(0xe3),'isSingleCommand':!![]}),registerService('Diagnostics',[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x2d7a9f(0xbc),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x2d7a9f(0xde),logsDefinitions,{'defaultCommand':a30_0x2d7a9f(0xc1)});export function findDefinition(_0x3e69ec,_0x1b9538){const _0x559d18=a30_0x2d7a9f;return definitions[_0x559d18(0xd4)](_0x3e69ec+':'+_0x1b9538);}export function isKnownService(_0x536c06){const _0x3d76ea=a30_0x2d7a9f;return serviceByName[_0x3d76ea(0xbf)](_0x536c06);}export function getServiceEntry(_0x14d61b){return serviceByName['get'](_0x14d61b);}export function getAllDefinitions(){const _0x345b94=a30_0x2d7a9f;return Array[_0x345b94(0xc6)](definitions[_0x345b94(0xd7)]());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a31_0x3689c3=a31_0x33cd;(function(_0x14242e,_0x5781d5){const _0x5bf977=a31_0x33cd,_0x51fa69=_0x14242e();while(!![]){try{const _0xf8a346=parseInt(_0x5bf977(0x11c))/0x1*(parseInt(_0x5bf977(0x121))/0x2)+parseInt(_0x5bf977(0x125))/0x3*(parseInt(_0x5bf977(0x124))/0x4)+-parseInt(_0x5bf977(0x119))/0x5*(parseInt(_0x5bf977(0x128))/0x6)+-parseInt(_0x5bf977(0x11e))/0x7+-parseInt(_0x5bf977(0x126))/0x8+parseInt(_0x5bf977(0x120))/0x9*(parseInt(_0x5bf977(0x11b))/0xa)+-parseInt(_0x5bf977(0x11f))/0xb*(-parseInt(_0x5bf977(0x11a))/0xc);if(_0xf8a346===_0x5781d5)break;else _0x51fa69['push'](_0x51fa69['shift']());}catch(_0x27e1b4){_0x51fa69['push'](_0x51fa69['shift']());}}}(a31_0x31c5,0x4f2cd));function a31_0x31c5(){const _0x3b9844=['340749fzTCvy','Export\x20machine-readable\x20command\x20schema\x20(JSON)','3596320ruJQNa','286759KpbHqM','27iSXkXG','2WSxUhL','schema','export','4fAjkQe','901293syeECl','192880uQinir','read','30HXVVsF','415790bUbelD','24mMSWfm','1948810ZyasSG'];a31_0x31c5=function(){return _0x3b9844;};return a31_0x31c5();}import{buildSchemaPayload}from'../framework/schema-export.js';function a31_0x33cd(_0x16207b,_0x1d6d65){_0x16207b=_0x16207b-0x119;const _0x31c50c=a31_0x31c5();let _0x33cda5=_0x31c50c[_0x16207b];return _0x33cda5;}async function execute(_0xa931b1){const _0xb6b8ef=await buildSchemaPayload();return{'ok':!![],'data':_0xb6b8ef};}export const schemaDefinition={'service':a31_0x3689c3(0x122),'command':a31_0x3689c3(0x123),'description':a31_0x3689c3(0x11d),'risk':a31_0x3689c3(0x127),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x2bef39,_0x381fa2){const _0x47f187=a32_0xd5be,_0x45510b=_0x2bef39();while(!![]){try{const _0x111a86=-parseInt(_0x47f187(0xb4))/0x1+-parseInt(_0x47f187(0xa6))/0x2+-parseInt(_0x47f187(0xde))/0x3+-parseInt(_0x47f187(0xd1))/0x4*(parseInt(_0x47f187(0xf9))/0x5)+-parseInt(_0x47f187(0xbe))/0x6*(parseInt(_0x47f187(0xca))/0x7)+-parseInt(_0x47f187(0xa7))/0x8*(parseInt(_0x47f187(0xe6))/0x9)+parseInt(_0x47f187(0xc6))/0xa;if(_0x111a86===_0x381fa2)break;else _0x45510b['push'](_0x45510b['shift']());}catch(_0x7525f4){_0x45510b['push'](_0x45510b['shift']());}}}(a32_0x3330,0xee369));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x18f4cd,_0x4e567d){const _0x1eac6c=a32_0xd5be,_0x163785=listLocalServiceTrees();let _0x53e8e6;for(const _0x39cb61 of _0x163785){const _0x2319a9=matchServiceTreeCommand(_0x39cb61,_0x18f4cd);if(!_0x2319a9)continue;(!_0x53e8e6||_0x2319a9[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)]>_0x53e8e6[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)])&&(_0x53e8e6={'tree':_0x39cb61,'command':_0x2319a9[_0x1eac6c(0xd2)],'remainingArgs':_0x2319a9[_0x1eac6c(0xf6)]});}if(!_0x53e8e6)return undefined;const _0x5d3840={..._0x4e567d};return applyAppBinding(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6[_0x1eac6c(0xd2)],_0x5d3840),{'definition':buildDynamicCommandDefinition(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6['command']),'args':_0x53e8e6[_0x1eac6c(0xf6)],'flags':_0x5d3840,'tree':_0x53e8e6[_0x1eac6c(0xbb)],'command':_0x53e8e6[_0x1eac6c(0xd2)]};}export function generateDynamicServiceHelp(_0x54985c){const _0x1f0bc3=a32_0xd5be,_0x44c139=listLocalServiceTrees()[_0x1f0bc3(0xea)](_0x16ed30=>_0x16ed30[_0x1f0bc3(0xfb)][_0x1f0bc3(0xa4)]===_0x54985c);if(!_0x44c139)return undefined;const _0x483eea=[CLI_BIN_NAME+'\x20'+_0x54985c+_0x1f0bc3(0xcc),'',_0x44c139[_0x1f0bc3(0xfb)]['name']||_0x54985c,_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]?'\x20\x20'+_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]:'','','Commands:',..._0x44c139[_0x1f0bc3(0xc0)]['map'](_0x1c3cbc=>{const _0x1c25a3=_0x1f0bc3,_0x5d49bf=_0x1c3cbc[_0x1c25a3(0xe4)][_0x1c25a3(0xf1)](0x1)['join']('\x20'),_0x5cb16c=_0x1c3cbc[_0x1c25a3(0xf0)]===_0x1c25a3(0xd4)?'':'\x20['+_0x1c3cbc[_0x1c25a3(0xf0)]+']';return'\x20\x20'+_0x5d49bf['padEnd'](0x18)+'\x20'+(_0x1c3cbc[_0x1c25a3(0xdd)]||'')+_0x5cb16c;}),'','Use\x20`'+CLI_BIN_NAME+_0x1f0bc3(0xd9)+_0x54985c+_0x1f0bc3(0xb5)]['filter'](Boolean);return _0x483eea[_0x1f0bc3(0xd6)]('\x0a');}export function listDynamicServiceEntries(){const _0x581c8a=a32_0xd5be;return listLocalServices()[_0x581c8a(0xbf)](_0xca4f35=>{const _0xe72d12=_0x581c8a,_0x19ba73=_0xca4f35[_0xe72d12(0xe9)];return{'service':_0x19ba73[_0xe72d12(0xfb)]['code'],'label':_0x19ba73[_0xe72d12(0xfb)][_0xe72d12(0xcb)]||_0x19ba73['service'][_0xe72d12(0xa4)],'commands':_0x19ba73[_0xe72d12(0xc0)]['map'](_0x1e64c4=>({'command':dynamicCommandName(_0x1e64c4),'description':_0x1e64c4[_0xe72d12(0xdd)]||'Run\x20service\x20command\x20'+_0x1e64c4[_0xe72d12(0xaa)],'tag':riskTag(_0x1e64c4['risk'])}))};});}export function getDynamicServiceEntry(_0x295390){const _0x27f6a8=a32_0xd5be;return listDynamicServiceEntries()[_0x27f6a8(0xea)](_0x1251d0=>_0x1251d0[_0x27f6a8(0xfb)]===_0x295390);}export function listDynamicServiceDefinitions(_0x25cdc9){const _0xd3eb84=a32_0xd5be;return listLocalServiceTrees()[_0xd3eb84(0xdb)](_0x11dfcb=>!_0x25cdc9||_0x11dfcb[_0xd3eb84(0xfb)][_0xd3eb84(0xa4)]===_0x25cdc9)[_0xd3eb84(0xc2)](_0x2609be=>_0x2609be['commands']['map'](_0x27440f=>buildDynamicCommandDefinition(_0x2609be,_0x27440f)));}export function getDynamicServiceDefinitions(_0x2c37e4){const _0x2b77db=listDynamicServiceDefinitions(_0x2c37e4);return _0x2b77db['length']>0x0?_0x2b77db:undefined;}export function findDynamicServiceDefinition(_0x4eb94d,_0x4c9b4d){return listDynamicServiceDefinitions(_0x4eb94d)['find'](_0x113c4a=>_0x113c4a['command']===_0x4c9b4d);}export function buildDynamicCommandDefinition(_0x9dae31,_0xaeb376){const _0x128bc9=a32_0xd5be;return{'service':_0x9dae31['service'][_0x128bc9(0xa4)],'command':dynamicCommandName(_0xaeb376),'description':_0xaeb376[_0x128bc9(0xdd)]||_0x128bc9(0xcf)+_0xaeb376[_0x128bc9(0xaa)],'risk':_0xaeb376[_0x128bc9(0xf0)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0xaeb376[_0x128bc9(0xa2)][_0x128bc9(0xbf)](_0x16e2ae=>({'name':_0x16e2ae[_0x128bc9(0xcb)],'description':_0x16e2ae[_0x128bc9(0xdd)]||_0x16e2ae[_0x128bc9(0xcb)],'required':_0x16e2ae[_0x128bc9(0xd3)]})),'flags':_0xaeb376['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xaeb376),async 'dryRun'(_0x56c772){const _0x52a1e3=_0x128bc9,_0x4ce21f=await compilePlan(_0xaeb376,_0x56c772);return{'method':_0x52a1e3(0xa1),'url':_0xaeb376[_0x52a1e3(0xaa)],'body':{'target':targetPreview(_0x4ce21f),'params':_0x4ce21f['params']},'description':_0x52a1e3(0xee)+_0xaeb376['cliPath']};},async 'execute'(_0x3505ea){const _0x52c81e=_0x128bc9,_0xffa6e9=await compilePlan(_0xaeb376,_0x3505ea),_0x3c58e1=Date[_0x52c81e(0xd8)](),_0x510db4=await executePlan(_0xffa6e9,_0xaeb376,_0x3505ea),_0x3a0e43=Date[_0x52c81e(0xd8)]()-_0x3c58e1;return{'ok':!![],'data':{'service':_0x9dae31[_0x52c81e(0xfb)],'command':_0xaeb376['cliPath'],'target':targetPreview(_0xffa6e9),'result':_0x510db4,'elapsed':_0x3a0e43},'message':'Service\x20command\x20'+_0xaeb376[_0x52c81e(0xaa)]+'\x20completed\x20in\x20'+_0x3a0e43+'ms'};}};}function dynamicCommandName(_0x5305ce){const _0x6d1205=a32_0xd5be;return _0x5305ce[_0x6d1205(0xe4)][_0x6d1205(0xf1)](0x1)['join']('\x20');}function riskTag(_0x17cf0b){const _0x559adf=a32_0xd5be;return _0x17cf0b===_0x559adf(0xd4)?'':_0x559adf(0xb0)+_0x17cf0b+']';}function a32_0xd5be(_0x1a5f84,_0x97dc09){_0x1a5f84=_0x1a5f84-0x9d;const _0x333052=a32_0x3330();let _0xd5be73=_0x333052[_0x1a5f84];return _0xd5be73;}function flagToCommandFlag(_0x44990f){const _0x50fa1e=a32_0xd5be;return{'name':_0x44990f['cliName'],'type':_0x44990f['type']==='json'?'string':_0x44990f[_0x50fa1e(0xf3)],'description':_0x44990f[_0x50fa1e(0xdd)]||_0x44990f[_0x50fa1e(0xcb)],'required':_0x44990f[_0x50fa1e(0xd3)],'default':isPrimitiveFlagDefault(_0x44990f['default'])?_0x44990f['default']:undefined,'enum':_0x44990f['enum']};}async function compilePlan(_0x47029e,_0x1177ed){const _0x9be11c=a32_0xd5be;return compileServiceTreeCommand(_0x47029e,{'flags':_0x1177ed[_0x9be11c(0xc9)],'args':_0x1177ed[_0x9be11c(0xa2)],'context':await buildServiceContext(_0x47029e,_0x1177ed)});}async function buildServiceContext(_0x1d5ca2,_0x5b2136){const _0x21bf1d=a32_0xd5be,_0x486925={'appCode':_0x5b2136[_0x21bf1d(0xda)],'env':_0x5b2136[_0x21bf1d(0x9f)],'envName':_0x5b2136[_0x21bf1d(0x9f)]};if(!usesRuntimeContext(_0x1d5ca2))return _0x486925;const _0x3b3946=await getLoginUserInfo(),_0x3022a8=pickFirst(_0x3b3946[_0x21bf1d(0xf5)],_0x3b3946['id']);return{..._0x486925,'user':_0x3b3946,'userId':_0x3022a8,'id':_0x3b3946['id'],'username':pickFirst(_0x3b3946['username'],_0x3b3946[_0x21bf1d(0xfa)],_0x3b3946[_0x21bf1d(0xb3)]),'userName':_0x3b3946['userName'],'nickname':pickFirst(_0x3b3946['nickname'],_0x3b3946[_0x21bf1d(0xef)]),'nickName':_0x3b3946[_0x21bf1d(0xef)],'tenantCode':_0x3b3946[_0x21bf1d(0xc4)],'employeeId':_0x3b3946[_0x21bf1d(0xd5)]};}function usesRuntimeContext(_0x5c4277){const _0x522777=a32_0xd5be;return _0x5c4277[_0x522777(0xf4)][_0x522777(0xfd)](_0x29ccc6=>typeof _0x29ccc6[_0x522777(0xb2)]==='string'&&(_0x29ccc6[_0x522777(0xb2)]['startsWith']('context.')||_0x29ccc6[_0x522777(0xb2)][_0x522777(0xf7)]('ctx.')));}function pickFirst(..._0x851f76){const _0x4fb18e=a32_0xd5be;return _0x851f76[_0x4fb18e(0xea)](_0x14f332=>_0x14f332!==undefined&&_0x14f332!==null);}async function executePlan(_0x1f6d57,_0x47f9bd,_0x438e5f){const _0x52f6a0=a32_0xd5be;if(_0x1f6d57['kind']===_0x52f6a0(0xce)){const _0x540425=await resolveDatasetCode(_0x1f6d57,_0x47f9bd,_0x438e5f);return executeData(_0x540425,_0x1f6d57[_0x52f6a0(0xd2)],_0x1f6d57[_0x52f6a0(0xc3)]);}if(_0x1f6d57[_0x52f6a0(0xb7)]===_0x52f6a0(0xeb)){if(!_0x1f6d57[_0x52f6a0(0xd0)])throw CliErrors[_0x52f6a0(0xb1)](_0x52f6a0(0xdc)+_0x47f9bd[_0x52f6a0(0xaa)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x1f6d57[_0x52f6a0(0xd0)],normalizeScalarParams(_0x1f6d57[_0x52f6a0(0xc3)]));}if(_0x1f6d57[_0x52f6a0(0xb7)]==='bff'){const _0x7650ed=_0x1f6d57[_0x52f6a0(0xc7)]||_0x1f6d57[_0x52f6a0(0xc8)]||(_0x1f6d57[_0x52f6a0(0xa3)]==null?'':String(_0x1f6d57[_0x52f6a0(0xa3)]));if(!_0x7650ed)throw CliErrors['validation']('Service\x20command\x20'+_0x47f9bd[_0x52f6a0(0xaa)]+_0x52f6a0(0xcd));return executeSdkBff(_0x7650ed,_0x1f6d57[_0x52f6a0(0xc3)]);}throw CliErrors['validation'](_0x52f6a0(0xd7)+_0x1f6d57[_0x52f6a0(0xb7)]);}async function resolveDatasetCode(_0x297f79,_0x2b3afa,_0x465da7){const _0x1f8c06=a32_0xd5be;if(_0x297f79[_0x1f8c06(0xad)])return _0x297f79[_0x1f8c06(0xad)];if(!_0x297f79['datatable'])throw CliErrors['validation']('Service\x20command\x20'+_0x2b3afa['cliPath']+_0x1f8c06(0xdf));const _0x8f28e2=await listDatasets(_0x465da7['appCode']),_0x21f40c=_0x8f28e2['find'](_0xbdb63=>_0xbdb63['dbtableConfig']?.[_0x1f8c06(0xbc)]===_0x297f79[_0x1f8c06(0xae)]);if(!_0x21f40c?.[_0x1f8c06(0xa4)])throw CliErrors[_0x1f8c06(0xb1)](_0x1f8c06(0xa0)+_0x297f79[_0x1f8c06(0xae)]+_0x1f8c06(0xb8)+_0x465da7[_0x1f8c06(0xda)]+'.',_0x1f8c06(0x9d));return _0x21f40c[_0x1f8c06(0xa4)];}function applyAppBinding(_0x408470,_0x276481,_0x1c88c9){const _0x272396=a32_0xd5be,_0x345766=_0x276481[_0x272396(0xc5)][_0x272396(0xb9)];if(!_0x345766)return;const _0x268f3b=_0x408470[_0x272396(0xe8)][_0x345766];if(!_0x268f3b)throw CliErrors['validation']('Unknown\x20appRef\x20\x22'+_0x345766+_0x272396(0xac)+_0x276481[_0x272396(0xaa)]+'.',_0x272396(0xa8));const _0xa11fd7=_0x268f3b[_0x272396(0xe7)]||_0x268f3b[_0x272396(0xda)];_0xa11fd7&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xe7)]=_0xa11fd7),_0x268f3b[_0x272396(0xba)]&&!hasText(_0x1c88c9['app'])&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xba)]=_0x268f3b[_0x272396(0xba)]),_0x268f3b[_0x272396(0xf2)]&&!hasText(_0x1c88c9[_0x272396(0xf2)])&&(_0x1c88c9[_0x272396(0xf2)]=_0x268f3b[_0x272396(0xf2)]);}function renderDynamicCommandHelp(_0x644518){const _0xcda14d=a32_0xd5be,_0xd2ceb=['\x20\x20SERVICE\x20TREE\x20TARGET',_0xcda14d(0xaf)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xb7)],_0xcda14d(0xe0)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd2)]];if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xad)])_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20datasetCode:\x20'+_0x644518['target'][_0xcda14d(0xad)]);if(_0x644518['target'][_0xcda14d(0xae)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xe3)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xae)]);if(_0x644518[_0xcda14d(0xc5)]['sqlCode'])_0xd2ceb['push'](_0xcda14d(0x9e)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd0)]);if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xc7)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xa5)+_0x644518['target'][_0xcda14d(0xc7)]);if(_0x644518['mapTo']['length']>0x0){_0xd2ceb[_0xcda14d(0xb6)]('',_0xcda14d(0xec));for(const _0x4626b0 of _0x644518[_0xcda14d(0xf4)]){_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20'+(_0x4626b0[_0xcda14d(0xb2)]||_0xcda14d(0xab))+_0xcda14d(0xf8)+_0x4626b0[_0xcda14d(0xc5)]+(_0x4626b0[_0xcda14d(0xbd)]?'.'+_0x4626b0['operator']:''));}}return _0xd2ceb['join']('\x0a');}function a32_0x3330(){const _0x37d523=['boolean','Preview\x20dynamic\x20service\x20command:\x20','nickName','risk','slice','env','type','mapTo','userId','remainingArgs','startsWith','\x20->\x20','400485tnzVsb','userName','service','fromEntries','some','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20sqlCode:\x20','envName','Cannot\x20resolve\x20datatable\x20\x22','SERVICE_TREE','args','bffId','code','\x20\x20\x20\x20scriptName:\x20','2761986YeMIkc','321560mLOxmQ','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','length','cliPath','const','\x22\x20in\x20service\x20command\x20','datasetCode','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20[','validation','source','loginName','1015838vCkwSX','`\x20to\x20inspect\x20the\x20manifest.','push','kind','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','appRef','app','tree','tableName','operator','2364cNFZNX','map','commands','number','flatMap','params','tenantCode','target','80434600ROQAmQ','scriptName','bffCode','rawFlags','3101mwQvIH','name','\x20<command>\x20[flags]','\x20requires\x20target.scriptName.','data','Run\x20service\x20command\x20','sqlCode','48WJEDpd','command','required','read','employeeId','join','Unsupported\x20service\x20target\x20kind:\x20','now','\x20service\x20detail\x20--service\x20','appCode','filter','Service\x20command\x20','description','5661621JnpSLG','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20command:\x20','string','trim','\x20\x20\x20\x20datatable:\x20','fullPath','entries','369YoLeox','appcode','appBindings','normalizedManifest','find','sql','\x20\x20MAP\x20TO'];a32_0x3330=function(){return _0x37d523;};return a32_0x3330();}function targetPreview(_0x49e165){const _0x1e5c2e=a32_0xd5be;return{'kind':_0x49e165['kind'],'command':_0x49e165[_0x1e5c2e(0xd2)],'appRef':_0x49e165[_0x1e5c2e(0xb9)],'datasetCode':_0x49e165[_0x1e5c2e(0xad)],'datatable':_0x49e165[_0x1e5c2e(0xae)],'sqlCode':_0x49e165[_0x1e5c2e(0xd0)],'bffCode':_0x49e165[_0x1e5c2e(0xc8)],'bffId':_0x49e165['bffId'],'scriptName':_0x49e165[_0x1e5c2e(0xc7)]};}function normalizeScalarParams(_0x4445e1){const _0x5813f7=a32_0xd5be;return Object[_0x5813f7(0xfc)](Object[_0x5813f7(0xe5)](_0x4445e1)['filter'](([,_0x316069])=>typeof _0x316069===_0x5813f7(0xe1)||typeof _0x316069===_0x5813f7(0xc1)));}function hasText(_0x439c3f){const _0x487dde=a32_0xd5be;return typeof _0x439c3f===_0x487dde(0xe1)&&_0x439c3f[_0x487dde(0xe2)]()[_0x487dde(0xa9)]>0x0;}function isPrimitiveFlagDefault(_0x587277){const _0x2dbcad=a32_0xd5be;return _0x587277===undefined||typeof _0x587277===_0x2dbcad(0xe1)||typeof _0x587277===_0x2dbcad(0xc1)||typeof _0x587277===_0x2dbcad(0xed);}
|
|
1
|
+
(function(_0x52581b,_0x46c852){const _0x54e695=a32_0x36ac,_0x29b294=_0x52581b();while(!![]){try{const _0x5bda1d=-parseInt(_0x54e695(0xaa))/0x1+parseInt(_0x54e695(0xcc))/0x2+-parseInt(_0x54e695(0x9b))/0x3+-parseInt(_0x54e695(0x9e))/0x4*(-parseInt(_0x54e695(0xba))/0x5)+parseInt(_0x54e695(0xd1))/0x6*(-parseInt(_0x54e695(0xa8))/0x7)+-parseInt(_0x54e695(0xe0))/0x8*(-parseInt(_0x54e695(0xc0))/0x9)+-parseInt(_0x54e695(0xb1))/0xa;if(_0x5bda1d===_0x46c852)break;else _0x29b294['push'](_0x29b294['shift']());}catch(_0x332b05){_0x29b294['push'](_0x29b294['shift']());}}}(a32_0x5baf,0xd6bb5));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(_0x20f433,_0x2d920f){const _0x2c8b73=a32_0x36ac,_0x115d29=listLocalServiceTrees();let _0x45c823;for(const _0x2df595 of _0x115d29){const _0x330b6b=matchServiceTreeCommand(_0x2df595,_0x20f433);if(!_0x330b6b)continue;(!_0x45c823||_0x330b6b[_0x2c8b73(0xd3)][_0x2c8b73(0xd9)][_0x2c8b73(0xde)]>_0x45c823[_0x2c8b73(0xd3)]['fullPath']['length'])&&(_0x45c823={'tree':_0x2df595,'command':_0x330b6b[_0x2c8b73(0xd3)],'remainingArgs':_0x330b6b[_0x2c8b73(0x98)]});}if(!_0x45c823)return undefined;const _0xaa008={..._0x2d920f};return applyAppBinding(_0x45c823[_0x2c8b73(0xbe)],_0x45c823[_0x2c8b73(0xd3)],_0xaa008),{'definition':buildDynamicCommandDefinition(_0x45c823['tree'],_0x45c823[_0x2c8b73(0xd3)]),'args':_0x45c823['remainingArgs'],'flags':_0xaa008,'tree':_0x45c823['tree'],'command':_0x45c823[_0x2c8b73(0xd3)]};}export function generateDynamicServiceHelp(_0x1dc73a){const _0x399143=a32_0x36ac,_0x4fca7d=listLocalServiceTrees()[_0x399143(0xe9)](_0x446d22=>_0x446d22['service'][_0x399143(0xac)]===_0x1dc73a);if(!_0x4fca7d)return undefined;const _0x1f8f4b=[CLI_BIN_NAME+'\x20'+_0x1dc73a+_0x399143(0xa0),'',_0x4fca7d[_0x399143(0xe4)][_0x399143(0xbf)]||_0x1dc73a,_0x4fca7d['service']['description']?'\x20\x20'+_0x4fca7d[_0x399143(0xe4)][_0x399143(0xa3)]:'','','Commands:',..._0x4fca7d[_0x399143(0xd7)][_0x399143(0xaf)](_0x328073=>{const _0x2428f9=_0x399143,_0x365f88=_0x328073[_0x2428f9(0xd9)][_0x2428f9(0xd6)](0x1)[_0x2428f9(0xc9)]('\x20'),_0x52b2e7=_0x328073['risk']===_0x2428f9(0xe8)?'':'\x20['+_0x328073[_0x2428f9(0xb0)]+']';return'\x20\x20'+_0x365f88[_0x2428f9(0xb2)](0x18)+'\x20'+(_0x328073[_0x2428f9(0xa3)]||'')+_0x52b2e7;}),'',_0x399143(0xdc)+CLI_BIN_NAME+_0x399143(0xca)+_0x1dc73a+_0x399143(0xeb)][_0x399143(0xc3)](Boolean);return _0x1f8f4b[_0x399143(0xc9)]('\x0a');}export function listDynamicServiceEntries(){const _0x2882a7=a32_0x36ac;return listLocalServices()[_0x2882a7(0xaf)](_0x3ed52a=>{const _0x3f01e7=_0x2882a7,_0x4ed61d=_0x3ed52a['normalizedManifest'];return{'service':_0x4ed61d[_0x3f01e7(0xe4)][_0x3f01e7(0xac)],'label':_0x4ed61d['service']['name']||_0x4ed61d[_0x3f01e7(0xe4)][_0x3f01e7(0xac)],'commands':_0x4ed61d[_0x3f01e7(0xd7)][_0x3f01e7(0xaf)](_0x19a738=>({'command':dynamicCommandName(_0x19a738),'description':_0x19a738[_0x3f01e7(0xa3)]||_0x3f01e7(0xc6)+_0x19a738[_0x3f01e7(0xce)],'tag':riskTag(_0x19a738['risk'])}))};});}export function getDynamicServiceEntry(_0x3fa66c){const _0x2071c8=a32_0x36ac;return listDynamicServiceEntries()[_0x2071c8(0xe9)](_0x49279f=>_0x49279f['service']===_0x3fa66c);}export function listDynamicServiceDefinitions(_0x5fefb3){const _0x31e5b9=a32_0x36ac;return listLocalServiceTrees()[_0x31e5b9(0xc3)](_0x4afce9=>!_0x5fefb3||_0x4afce9[_0x31e5b9(0xe4)][_0x31e5b9(0xac)]===_0x5fefb3)[_0x31e5b9(0x99)](_0x4e21d6=>_0x4e21d6['commands'][_0x31e5b9(0xaf)](_0x306e38=>buildDynamicCommandDefinition(_0x4e21d6,_0x306e38)));}export function getDynamicServiceDefinitions(_0x3b05a9){const _0x3c117d=a32_0x36ac,_0x1dea2c=listDynamicServiceDefinitions(_0x3b05a9);return _0x1dea2c[_0x3c117d(0xde)]>0x0?_0x1dea2c:undefined;}export function findDynamicServiceDefinition(_0x56d729,_0x1e65a1){const _0x58fad2=a32_0x36ac;return listDynamicServiceDefinitions(_0x56d729)[_0x58fad2(0xe9)](_0xa40250=>_0xa40250['command']===_0x1e65a1);}export function buildDynamicCommandDefinition(_0x1038b3,_0x4019f6){const _0x296730=a32_0x36ac;return{'service':_0x1038b3[_0x296730(0xe4)]['code'],'command':dynamicCommandName(_0x4019f6),'description':_0x4019f6[_0x296730(0xa3)]||_0x296730(0xc6)+_0x4019f6[_0x296730(0xce)],'risk':_0x4019f6[_0x296730(0xb0)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x4019f6[_0x296730(0x8d)]['map'](_0x2dfbd9=>({'name':_0x2dfbd9[_0x296730(0xbf)],'description':_0x2dfbd9[_0x296730(0xa3)]||_0x2dfbd9[_0x296730(0xbf)],'required':_0x2dfbd9['required']})),'flags':_0x4019f6['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x4019f6),async 'dryRun'(_0x49f128){const _0x140013=_0x296730,_0x3dfb9c=await compilePlan(_0x4019f6,_0x49f128);return{'method':_0x140013(0x94),'url':_0x4019f6[_0x140013(0xce)],'body':{'target':targetPreview(_0x3dfb9c),'params':_0x3dfb9c[_0x140013(0xdf)]},'description':_0x140013(0xda)+_0x4019f6[_0x140013(0xce)]};},async 'execute'(_0x3ed72c){const _0x5df508=_0x296730,_0x295841=await compilePlan(_0x4019f6,_0x3ed72c),_0x341042=Date[_0x5df508(0xc7)](),_0x2e8083=await executePlan(_0x295841,_0x4019f6,_0x3ed72c),_0x56a0f2=Date[_0x5df508(0xc7)]()-_0x341042;return{'ok':!![],'data':{'service':_0x1038b3[_0x5df508(0xe4)],'command':_0x4019f6['cliPath'],'target':targetPreview(_0x295841),'result':_0x2e8083,'elapsed':_0x56a0f2},'message':_0x5df508(0x8c)+_0x4019f6[_0x5df508(0xce)]+_0x5df508(0xa1)+_0x56a0f2+'ms'};}};}function dynamicCommandName(_0x3aec09){const _0x27d38b=a32_0x36ac;return _0x3aec09[_0x27d38b(0xd9)][_0x27d38b(0xd6)](0x1)[_0x27d38b(0xc9)]('\x20');}function riskTag(_0x564038){const _0x2a7d6e=a32_0x36ac;return _0x564038==='read'?'':_0x2a7d6e(0xbd)+_0x564038+']';}function flagToCommandFlag(_0x189715){const _0x2ff691=a32_0x36ac;return{'name':_0x189715[_0x2ff691(0xb5)],'type':_0x189715[_0x2ff691(0xab)]===_0x2ff691(0xd2)?_0x2ff691(0x93):_0x189715[_0x2ff691(0xab)],'description':_0x189715[_0x2ff691(0xa3)]||_0x189715['name'],'required':_0x189715['required'],'default':isPrimitiveFlagDefault(_0x189715[_0x2ff691(0xdd)])?_0x189715[_0x2ff691(0xdd)]:undefined,'enum':_0x189715[_0x2ff691(0xc1)]};}async function compilePlan(_0x4606e0,_0x5c1452){const _0x3cbd21=a32_0x36ac;return compileServiceTreeCommand(_0x4606e0,{'flags':_0x5c1452[_0x3cbd21(0x9d)],'args':_0x5c1452[_0x3cbd21(0x8d)],'context':await buildServiceContext(_0x4606e0,_0x5c1452)});}async function buildServiceContext(_0x3ad199,_0x3e436e){const _0x410f79=a32_0x36ac,_0x2aa0b0={'appCode':_0x3e436e['appCode'],'env':_0x3e436e[_0x410f79(0xc4)],'envName':_0x3e436e[_0x410f79(0xc4)]};if(!usesRuntimeContext(_0x3ad199))return _0x2aa0b0;const _0x10be1f=await getLoginUserInfo(),_0x48a64b=pickFirst(_0x10be1f[_0x410f79(0x8b)],_0x10be1f['id']);return{..._0x2aa0b0,'user':_0x10be1f,'userId':_0x48a64b,'id':_0x10be1f['id'],'username':pickFirst(_0x10be1f[_0x410f79(0xbc)],_0x10be1f[_0x410f79(0xea)],_0x10be1f[_0x410f79(0x97)]),'userName':_0x10be1f['userName'],'nickname':pickFirst(_0x10be1f['nickname'],_0x10be1f[_0x410f79(0xa4)]),'nickName':_0x10be1f[_0x410f79(0xa4)],'tenantCode':_0x10be1f[_0x410f79(0x91)],'employeeId':_0x10be1f['employeeId']};}function a32_0x36ac(_0x232fd7,_0x1d5bd0){_0x232fd7=_0x232fd7-0x8b;const _0x5baf77=a32_0x5baf();let _0x36ac68=_0x5baf77[_0x232fd7];return _0x36ac68;}function usesRuntimeContext(_0x2c381d){const _0x25f5f7=a32_0x36ac;return _0x2c381d[_0x25f5f7(0xa7)]['some'](_0x8ed734=>typeof _0x8ed734[_0x25f5f7(0xb6)]===_0x25f5f7(0x93)&&(_0x8ed734[_0x25f5f7(0xb6)][_0x25f5f7(0x90)]('context.')||_0x8ed734['source'][_0x25f5f7(0x90)](_0x25f5f7(0xe1))));}function pickFirst(..._0xd0177a){const _0x469ab7=a32_0x36ac;return _0xd0177a[_0x469ab7(0xe9)](_0x51733d=>_0x51733d!==undefined&&_0x51733d!==null);}async function executePlan(_0x5e26b4,_0x5dbc64,_0x324ec){const _0x1b3a3b=a32_0x36ac;if(_0x5e26b4[_0x1b3a3b(0xc2)]==='data'){const _0x355d13=await resolveDatasetCode(_0x5e26b4,_0x5dbc64,_0x324ec);return executeData(_0x355d13,_0x5e26b4[_0x1b3a3b(0xd3)],_0x5e26b4[_0x1b3a3b(0xdf)]);}if(_0x5e26b4[_0x1b3a3b(0xc2)]===_0x1b3a3b(0x9f)){if(!_0x5e26b4[_0x1b3a3b(0xb4)])throw CliErrors[_0x1b3a3b(0x9c)]('Service\x20command\x20'+_0x5dbc64[_0x1b3a3b(0xce)]+_0x1b3a3b(0xbb));return executeSdkSql(_0x5e26b4[_0x1b3a3b(0xb4)],normalizeScalarParams(_0x5e26b4['params']));}if(_0x5e26b4['kind']==='bff'){const _0x36b29a=_0x5e26b4['scriptName']||_0x5e26b4[_0x1b3a3b(0x8e)]||(_0x5e26b4[_0x1b3a3b(0xdb)]==null?'':String(_0x5e26b4[_0x1b3a3b(0xdb)]));if(!_0x36b29a)throw CliErrors['validation'](_0x1b3a3b(0x8c)+_0x5dbc64[_0x1b3a3b(0xce)]+_0x1b3a3b(0xae));return executeSdkBff(_0x36b29a,_0x5e26b4[_0x1b3a3b(0xdf)]);}throw CliErrors[_0x1b3a3b(0x9c)](_0x1b3a3b(0xb9)+_0x5e26b4[_0x1b3a3b(0xc2)]);}async function resolveDatasetCode(_0x4a2897,_0x4ae13c,_0x6254bc){const _0x531152=a32_0x36ac;if(_0x4a2897['datasetCode'])return _0x4a2897['datasetCode'];if(!_0x4a2897['datatable'])throw CliErrors['validation'](_0x531152(0x8c)+_0x4ae13c[_0x531152(0xce)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x2c9974=await listDatasets(_0x6254bc['appCode']),_0x416b48=_0x2c9974[_0x531152(0xe9)](_0x3c9d8b=>_0x3c9d8b['dbtableConfig']?.['tableName']===_0x4a2897[_0x531152(0xa2)]);if(!_0x416b48?.[_0x531152(0xac)])throw CliErrors['validation'](_0x531152(0xa9)+_0x4a2897[_0x531152(0xa2)]+_0x531152(0xd0)+_0x6254bc['appCode']+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x416b48[_0x531152(0xac)];}function applyAppBinding(_0xd65123,_0x8f55a7,_0x4017e6){const _0x207d2a=a32_0x36ac,_0x2f8d8b=_0x8f55a7[_0x207d2a(0xcd)][_0x207d2a(0xcb)];if(!_0x2f8d8b)return;const _0xa04615=_0xd65123[_0x207d2a(0x96)][_0x2f8d8b];if(!_0xa04615)throw CliErrors[_0x207d2a(0x9c)](_0x207d2a(0xa5)+_0x2f8d8b+_0x207d2a(0x8f)+_0x8f55a7[_0x207d2a(0xce)]+'.',_0x207d2a(0x9a));const _0x2d9b23=_0xa04615['appcode']||_0xa04615[_0x207d2a(0xe2)];_0x2d9b23&&!hasText(_0x4017e6['appcode'])&&(_0x4017e6[_0x207d2a(0xad)]=_0x2d9b23),_0xa04615[_0x207d2a(0x92)]&&!hasText(_0x4017e6[_0x207d2a(0x92)])&&!hasText(_0x4017e6[_0x207d2a(0xad)])&&(_0x4017e6[_0x207d2a(0x92)]=_0xa04615[_0x207d2a(0x92)]),_0xa04615[_0x207d2a(0x95)]&&!hasText(_0x4017e6[_0x207d2a(0x95)])&&(_0x4017e6[_0x207d2a(0x95)]=_0xa04615[_0x207d2a(0x95)]);}function renderDynamicCommandHelp(_0x241022){const _0x23f5d6=a32_0x36ac,_0x148108=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x23f5d6(0xc8)+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xc2)],'\x20\x20\x20\x20command:\x20'+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xd3)]];if(_0x241022[_0x23f5d6(0xcd)]['datasetCode'])_0x148108['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xd4)]);if(_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xa2)])_0x148108[_0x23f5d6(0xe3)](_0x23f5d6(0xa6)+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xa2)]);if(_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xb4)])_0x148108[_0x23f5d6(0xe3)]('\x20\x20\x20\x20sqlCode:\x20'+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xb4)]);if(_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xb7)])_0x148108[_0x23f5d6(0xe3)]('\x20\x20\x20\x20scriptName:\x20'+_0x241022[_0x23f5d6(0xcd)]['scriptName']);if(_0x241022['mapTo'][_0x23f5d6(0xde)]>0x0){_0x148108['push']('',_0x23f5d6(0xd8));for(const _0x156593 of _0x241022['mapTo']){_0x148108[_0x23f5d6(0xe3)](_0x23f5d6(0xe5)+(_0x156593[_0x23f5d6(0xb6)]||'const')+_0x23f5d6(0xcf)+_0x156593[_0x23f5d6(0xcd)]+(_0x156593[_0x23f5d6(0xe7)]?'.'+_0x156593['operator']:''));}}return _0x148108[_0x23f5d6(0xc9)]('\x0a');}function targetPreview(_0x5dd7e8){const _0x3f9b09=a32_0x36ac;return{'kind':_0x5dd7e8[_0x3f9b09(0xc2)],'command':_0x5dd7e8[_0x3f9b09(0xd3)],'appRef':_0x5dd7e8['appRef'],'datasetCode':_0x5dd7e8[_0x3f9b09(0xd4)],'datatable':_0x5dd7e8[_0x3f9b09(0xa2)],'sqlCode':_0x5dd7e8[_0x3f9b09(0xb4)],'bffCode':_0x5dd7e8[_0x3f9b09(0x8e)],'bffId':_0x5dd7e8[_0x3f9b09(0xdb)],'scriptName':_0x5dd7e8[_0x3f9b09(0xb7)]};}function normalizeScalarParams(_0x258890){const _0x180445=a32_0x36ac;return Object[_0x180445(0xc5)](Object[_0x180445(0xd5)](_0x258890)['filter'](([,_0x358d19])=>typeof _0x358d19===_0x180445(0x93)||typeof _0x358d19===_0x180445(0xb3)));}function a32_0x5baf(){const _0x239c2b=['ctx.','appCode','push','service','\x20\x20\x20\x20','trim','operator','read','find','userName','`\x20to\x20inspect\x20the\x20manifest.','userId','Service\x20command\x20','args','bffCode','\x22\x20in\x20service\x20command\x20','startsWith','tenantCode','app','string','SERVICE_TREE','env','appBindings','loginName','remainingArgs','flatMap','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','2265063rsDQqy','validation','rawFlags','8bnZLnx','sql','\x20<command>\x20[flags]','\x20completed\x20in\x20','datatable','description','nickName','Unknown\x20appRef\x20\x22','\x20\x20\x20\x20datatable:\x20','mapTo','4518150BPffsI','Cannot\x20resolve\x20datatable\x20\x22','644471MEndCp','type','code','appcode','\x20requires\x20target.scriptName.','map','risk','9771550jlwwNH','padEnd','number','sqlCode','cliName','source','scriptName','boolean','Unsupported\x20service\x20target\x20kind:\x20','3385790kQHDLi','\x20requires\x20target.sqlCode.','username','\x20\x20[','tree','name','9yAZWSi','enum','kind','filter','envName','fromEntries','Run\x20service\x20command\x20','now','\x20\x20\x20\x20kind:\x20\x20\x20\x20','join','\x20service\x20detail\x20--service\x20','appRef','1930240CcFIne','target','cliPath','\x20->\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','6tmUrEh','json','command','datasetCode','entries','slice','commands','\x20\x20MAP\x20TO','fullPath','Preview\x20dynamic\x20service\x20command:\x20','bffId','Use\x20`','default','length','params','12657616xNhVPN'];a32_0x5baf=function(){return _0x239c2b;};return a32_0x5baf();}function hasText(_0x534fb5){const _0x310c60=a32_0x36ac;return typeof _0x534fb5===_0x310c60(0x93)&&_0x534fb5[_0x310c60(0xe6)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x1559b4){const _0x30bcc3=a32_0x36ac;return _0x1559b4===undefined||typeof _0x1559b4==='string'||typeof _0x1559b4===_0x30bcc3(0xb3)||typeof _0x1559b4===_0x30bcc3(0xb8);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a33_0x2b822a=a33_0x515b;(function(_0x56b58d,_0x5b1e9e){const _0x3eb27d=a33_0x515b,_0x460df6=_0x56b58d();while(!![]){try{const _0x2185f1=parseInt(_0x3eb27d(0x9c))/0x1+parseInt(_0x3eb27d(0x86))/0x2*(-parseInt(_0x3eb27d(0x88))/0x3)+-parseInt(_0x3eb27d(0xa5))/0x4*(parseInt(_0x3eb27d(0x79))/0x5)+parseInt(_0x3eb27d(0x9a))/0x6*(parseInt(_0x3eb27d(0x6d))/0x7)+parseInt(_0x3eb27d(0x8e))/0x8+parseInt(_0x3eb27d(0x6f))/0x9*(parseInt(_0x3eb27d(0x91))/0xa)+-parseInt(_0x3eb27d(0x97))/0xb;if(_0x2185f1===_0x5b1e9e)break;else _0x460df6['push'](_0x460df6['shift']());}catch(_0x496802){_0x460df6['push'](_0x460df6['shift']());}}}(a33_0x3480,0xe3940));function a33_0x515b(_0x3fb831,_0x16e0fb){_0x3fb831=_0x3fb831-0x6a;const _0x348077=a33_0x3480();let _0x515bd3=_0x348077[_0x3fb831];return _0x515bd3;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x2b822a(0x6a),'type':a33_0x2b822a(0x82),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a33_0x2b822a(0x81),'type':a33_0x2b822a(0x82),'required':!![],'description':a33_0x2b822a(0x93),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5221ff){const _0x46523e=a33_0x2b822a;return{'serviceCode':_0x5221ff[_0x46523e(0xa8)],'name':_0x5221ff['normalizedManifest'][_0x46523e(0x81)][_0x46523e(0x7c)],'version':_0x5221ff[_0x46523e(0x71)],'importedAt':_0x5221ff[_0x46523e(0x8c)],'source':_0x5221ff[_0x46523e(0x6e)],'commandCount':_0x5221ff['normalizedManifest'][_0x46523e(0x89)]['length'],'commands':_0x5221ff[_0x46523e(0x72)][_0x46523e(0x89)][_0x46523e(0x8f)](_0x29a9ef=>({'path':_0x29a9ef[_0x46523e(0x95)],'description':_0x29a9ef[_0x46523e(0x74)],'risk':_0x29a9ef[_0x46523e(0x76)],'target':_0x29a9ef[_0x46523e(0x8d)],'flags':_0x29a9ef['flags'][_0x46523e(0x8f)](_0x253230=>({'name':_0x253230[_0x46523e(0x7c)],'cliName':_0x253230[_0x46523e(0x94)],'type':_0x253230[_0x46523e(0xab)],'required':_0x253230[_0x46523e(0x78)]===!![]}))}))};}function summarizeLoadedManifest(_0x1cdd8b){const _0xb01bdf=a33_0x2b822a;return{'service':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x81)],'version':_0x1cdd8b[_0xb01bdf(0x72)]?.['version'],'commandCount':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0xa9)]??0x0,'commands':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0x8f)](_0x33b581=>({'path':_0x33b581['cliPath'],'risk':_0x33b581[_0xb01bdf(0x76)],'target':_0x33b581[_0xb01bdf(0x8d)]}))??[],'registryIndex':_0x1cdd8b[_0xb01bdf(0xa6)],'registryServiceCode':_0x1cdd8b['registryServiceCode'],'errors':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x9f)],'warnings':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x83)]};}export const serviceDefinitions=[{'service':'service','command':a33_0x2b822a(0xa3),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x16d696){const _0x58f7b3=a33_0x2b822a,_0x407356=loadServiceManifestFromFile(_0x16d696[_0x58f7b3(0xaa)](_0x58f7b3(0x6a)));if(!_0x407356[_0x58f7b3(0x8b)]['ok'])return{'ok':![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356['hash'],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'errors':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x9f)],'warnings':_0x407356['report']['warnings']},'message':formatValidationFailure(_0x407356['report'])};if(_0x407356[_0x58f7b3(0x7e)]==='registry'||_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)]!==0x1)return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'commandCount':_0x407356[_0x58f7b3(0x77)]['reduce']((_0x353e4d,_0x491d00)=>_0x353e4d+(_0x491d00[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)]['length']??0x0),0x0),'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'warnings':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x83)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'service':_0x407356[_0x58f7b3(0x72)]?.['service'],'version':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x71)],'commandCount':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0xa9)]??0x0,'commands':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0x8f)](_0x22cc3d=>({'path':_0x22cc3d['cliPath'],'risk':_0x22cc3d[_0x58f7b3(0x76)],'target':_0x22cc3d[_0x58f7b3(0x8d)]})),'warnings':_0x407356[_0x58f7b3(0x8b)]['warnings']},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x7d),'description':a33_0x2b822a(0x99),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x3b867f){const _0xfa620e=a33_0x2b822a,_0x542f95=loadServiceManifestFromFile(_0x3b867f['str'](_0xfa620e(0x6a)));return{'method':_0xfa620e(0x7f),'url':getServiceRegistryPath(),'body':{'file':_0x542f95[_0xfa620e(0x70)],'hash':_0x542f95[_0xfa620e(0x92)],'kind':_0x542f95['kind'],'ok':_0x542f95['report']['ok'],'service':_0x542f95['normalizedManifest']?.['service'],'version':_0x542f95[_0xfa620e(0x72)]?.['version'],'serviceCount':_0x542f95[_0xfa620e(0x77)][_0xfa620e(0xa9)],'services':_0x542f95['manifests'][_0xfa620e(0x8f)](_0x44faf0=>({'service':_0x44faf0['normalizedManifest']?.['service'],'version':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x71)],'commandCount':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x89)][_0xfa620e(0xa9)]??0x0,'errors':_0x44faf0['report'][_0xfa620e(0x9f)]})),'errors':_0x542f95[_0xfa620e(0x8b)][_0xfa620e(0x9f)],'commandCount':_0x542f95['normalizedManifest']?.['commands'][_0xfa620e(0xa9)]??0x0},'description':_0xfa620e(0x85)};},async 'execute'(_0x3c23bf){const _0xd92659=a33_0x2b822a,_0x1215ad=importServiceManifest(_0x3c23bf[_0xd92659(0xaa)](_0xd92659(0x6a)));if(_0x1215ad[_0xd92659(0x90)][_0xd92659(0xa9)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'imported':_0x1215ad[_0xd92659(0x7a)],'updated':_0x1215ad[_0xd92659(0xa4)],'serviceCount':_0x1215ad['serviceCount'],'services':_0x1215ad[_0xd92659(0x90)][_0xd92659(0x8f)](summarizeService)},'message':_0xd92659(0x75)+_0x1215ad[_0xd92659(0x7a)]+_0xd92659(0x9b)+_0x1215ad[_0xd92659(0xa4)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'replaced':_0x1215ad['replaced'],'imported':_0x1215ad['imported'],'updated':_0x1215ad['updated'],'serviceCount':_0x1215ad[_0xd92659(0x7b)],'service':summarizeService(_0x1215ad[_0xd92659(0xa1)])},'message':(_0x1215ad[_0xd92659(0x8a)]?'Updated':_0xd92659(0xa7))+'\x20service\x20'+_0x1215ad[_0xd92659(0xa1)]['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6c),'description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3c4a20){const _0x232b37=a33_0x2b822a,_0x37eaed=getLocalServiceEntry(_0x3c4a20[_0x232b37(0xaa)](_0x232b37(0x81)));return{'method':_0x232b37(0x7f),'url':_0x3c4a20[_0x232b37(0xaa)]('file'),'body':{'service':_0x3c4a20['str'](_0x232b37(0x81)),'found':Boolean(_0x37eaed),'version':_0x37eaed?.['version'],'source':_0x37eaed?.[_0x232b37(0x6e)]},'description':_0x232b37(0xa0)};},async 'execute'(_0xafd78e){const _0x611741=a33_0x2b822a,_0x2be1ce=exportServiceManifest(_0xafd78e[_0x611741(0xaa)]('service'),_0xafd78e[_0x611741(0xaa)]('file'));return{'ok':!![],'data':{'registryPath':_0x2be1ce['registryPath'],'file':_0x2be1ce[_0x611741(0x70)],'service':summarizeService(_0x2be1ce[_0x611741(0xa1)])},'message':_0x611741(0x9e)+_0x2be1ce['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':'list','description':a33_0x2b822a(0x80),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x578668=a33_0x2b822a,_0x2d845f=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2d845f['length'],'services':_0x2d845f[_0x578668(0x8f)](summarizeService)}};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x73),'description':a33_0x2b822a(0x84),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x332fba){const _0x26ad49=a33_0x2b822a,_0x22f8bb=getLocalServiceEntry(_0x332fba['str'](_0x26ad49(0x81)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x332fba[_0x26ad49(0xaa)](_0x26ad49(0x81)),'found':Boolean(_0x22f8bb),'version':_0x22f8bb?.[_0x26ad49(0x71)],'source':_0x22f8bb?.[_0x26ad49(0x6e)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xed128){const _0x1e672a=a33_0x2b822a,_0x51e400=removeServiceManifest(_0xed128[_0x1e672a(0xaa)](_0x1e672a(0x81)));return{'ok':!![],'data':{'registryPath':_0x51e400[_0x1e672a(0xac)],'serviceCount':_0x51e400[_0x1e672a(0x7b)],'service':summarizeService(_0x51e400['entry'])},'message':_0x1e672a(0x9d)+_0x51e400['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6b),'description':a33_0x2b822a(0x96),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x12d1b4){const _0x5f32ef=a33_0x2b822a,_0x4a1097=getLocalServiceEntry(_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81)));if(!_0x4a1097)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))},'message':'Local\x20service\x20not\x20found:\x20'+_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4a1097),'manifest':_0x4a1097[_0x5f32ef(0x98)],'normalizedManifest':_0x4a1097['normalizedManifest']}};}}];function a33_0x3480(){const _0x2d30f9=['errors','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','entry','read','validate','updated','13084HMRiux','registryIndex','Imported','serviceCode','length','str','type','registryPath','file','detail','export','350iQBdsx','source','18wigfKF','filePath','version','normalizedManifest','remove','description','Imported\x20','risk','manifests','required','1805mmFBkv','imported','serviceCount','name','import','kind','WRITE','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','service','string','warnings','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','88vXsfio','write','69321DxkkZZ','commands','replaced','report','importedAt','target','4168576GcmrTW','map','entries','6547770OAUjQO','hash','Local\x20service\x20code,\x20for\x20example\x20crm','cliName','cliPath','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','20141858mrpdUy','manifest','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','213366mySjIf','\x20service(s),\x20updated\x20','1352101mtJjhl','Removed\x20service\x20','Exported\x20service\x20'];a33_0x3480=function(){return _0x2d30f9;};return a33_0x3480();}
|
|
1
|
+
const a33_0x52c295=a33_0xf5bb;(function(_0x2cb97d,_0x229dae){const _0x315344=a33_0xf5bb,_0xadd3f5=_0x2cb97d();while(!![]){try{const _0x2072c2=-parseInt(_0x315344(0x175))/0x1*(parseInt(_0x315344(0x146))/0x2)+-parseInt(_0x315344(0x14d))/0x3+parseInt(_0x315344(0x15a))/0x4+parseInt(_0x315344(0x148))/0x5+parseInt(_0x315344(0x16e))/0x6+-parseInt(_0x315344(0x15b))/0x7+parseInt(_0x315344(0x170))/0x8;if(_0x2072c2===_0x229dae)break;else _0xadd3f5['push'](_0xadd3f5['shift']());}catch(_0x278ec3){_0xadd3f5['push'](_0xadd3f5['shift']());}}}(a33_0x589a,0x9afdf));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a33_0x589a(){const _0x3faad1=['Removed\x20service\x20','warnings','Service\x20manifest\x20validation\x20passed.','commands','249726AcEXji','errors','2697075YKCHko','Updated','importedAt','target','risk','547125QoMztw','map','read','serviceCount','entry','required','registryPath','\x20service\x20','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','cliPath','reduce','string','WRITE','2317948fOcCvP','8474767YkysbN','Exported\x20service\x20','Local\x20service\x20code,\x20for\x20example\x20crm','filePath','replaced','imported','str','file','service','manifests','updated','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','source','\x20service(s).','normalizedManifest','serviceCode','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','registryIndex','length','342090QNOWUk','kind','10811504ckjWjS','Service\x20registry\x20validation\x20passed.','validate','list','write','4HSALsg','Imported\x20','registryServiceCode','Imported','flags','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','hash','\x20service(s),\x20updated\x20','import','version','detail','entries','report','name'];a33_0x589a=function(){return _0x3faad1;};return a33_0x589a();}const FILE_FLAG={'name':'file','type':a33_0x52c295(0x158),'required':!![],'description':a33_0x52c295(0x17b)},SERVICE_FLAG={'name':a33_0x52c295(0x163),'type':a33_0x52c295(0x158),'required':!![],'description':a33_0x52c295(0x15d),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5a6881){const _0x331f22=a33_0x52c295;return{'serviceCode':_0x5a6881[_0x331f22(0x16a)],'name':_0x5a6881[_0x331f22(0x169)][_0x331f22(0x163)][_0x331f22(0x141)],'version':_0x5a6881[_0x331f22(0x13d)],'importedAt':_0x5a6881[_0x331f22(0x14a)],'source':_0x5a6881['source'],'commandCount':_0x5a6881[_0x331f22(0x169)]['commands']['length'],'commands':_0x5a6881[_0x331f22(0x169)][_0x331f22(0x145)]['map'](_0x2d9a57=>({'path':_0x2d9a57[_0x331f22(0x156)],'description':_0x2d9a57['description'],'risk':_0x2d9a57[_0x331f22(0x14c)],'target':_0x2d9a57[_0x331f22(0x14b)],'flags':_0x2d9a57[_0x331f22(0x179)]['map'](_0x227611=>({'name':_0x227611[_0x331f22(0x141)],'cliName':_0x227611['cliName'],'type':_0x227611['type'],'required':_0x227611[_0x331f22(0x152)]===!![]}))}))};}function a33_0xf5bb(_0x230fa0,_0xf88b1b){_0x230fa0=_0x230fa0-0x13c;const _0x589a3f=a33_0x589a();let _0xf5bb00=_0x589a3f[_0x230fa0];return _0xf5bb00;}function summarizeLoadedManifest(_0x22a12b){const _0x377ecd=a33_0x52c295;return{'service':_0x22a12b[_0x377ecd(0x169)]?.['service'],'version':_0x22a12b[_0x377ecd(0x169)]?.[_0x377ecd(0x13d)],'commandCount':_0x22a12b[_0x377ecd(0x169)]?.[_0x377ecd(0x145)][_0x377ecd(0x16d)]??0x0,'commands':_0x22a12b['normalizedManifest']?.[_0x377ecd(0x145)][_0x377ecd(0x14e)](_0x4ecdef=>({'path':_0x4ecdef[_0x377ecd(0x156)],'risk':_0x4ecdef['risk'],'target':_0x4ecdef[_0x377ecd(0x14b)]}))??[],'registryIndex':_0x22a12b[_0x377ecd(0x16c)],'registryServiceCode':_0x22a12b[_0x377ecd(0x177)],'errors':_0x22a12b[_0x377ecd(0x140)][_0x377ecd(0x147)],'warnings':_0x22a12b[_0x377ecd(0x140)]['warnings']};}export const serviceDefinitions=[{'service':a33_0x52c295(0x163),'command':a33_0x52c295(0x172),'description':a33_0x52c295(0x155),'risk':a33_0x52c295(0x14f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x9720fe){const _0x7f65eb=a33_0x52c295,_0x18a91b=loadServiceManifestFromFile(_0x9720fe[_0x7f65eb(0x161)](_0x7f65eb(0x162)));if(!_0x18a91b[_0x7f65eb(0x140)]['ok'])return{'ok':![],'data':{'file':_0x18a91b[_0x7f65eb(0x15e)],'hash':_0x18a91b['hash'],'kind':_0x18a91b[_0x7f65eb(0x16f)],'serviceCount':_0x18a91b['manifests'][_0x7f65eb(0x16d)],'services':_0x18a91b['manifests'][_0x7f65eb(0x14e)](summarizeLoadedManifest),'errors':_0x18a91b[_0x7f65eb(0x140)][_0x7f65eb(0x147)],'warnings':_0x18a91b[_0x7f65eb(0x140)][_0x7f65eb(0x143)]},'message':formatValidationFailure(_0x18a91b[_0x7f65eb(0x140)])};if(_0x18a91b['kind']==='registry'||_0x18a91b[_0x7f65eb(0x164)][_0x7f65eb(0x16d)]!==0x1)return{'ok':!![],'data':{'file':_0x18a91b[_0x7f65eb(0x15e)],'hash':_0x18a91b['hash'],'kind':_0x18a91b['kind'],'serviceCount':_0x18a91b[_0x7f65eb(0x164)][_0x7f65eb(0x16d)],'commandCount':_0x18a91b[_0x7f65eb(0x164)][_0x7f65eb(0x157)]((_0x67a381,_0x40c716)=>_0x67a381+(_0x40c716['normalizedManifest']?.[_0x7f65eb(0x145)][_0x7f65eb(0x16d)]??0x0),0x0),'services':_0x18a91b[_0x7f65eb(0x164)]['map'](summarizeLoadedManifest),'warnings':_0x18a91b[_0x7f65eb(0x140)][_0x7f65eb(0x143)]},'message':_0x7f65eb(0x171)};return{'ok':!![],'data':{'file':_0x18a91b[_0x7f65eb(0x15e)],'hash':_0x18a91b[_0x7f65eb(0x17d)],'kind':_0x18a91b[_0x7f65eb(0x16f)],'service':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x163)],'version':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x13d)],'commandCount':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x145)][_0x7f65eb(0x16d)]??0x0,'commands':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x145)][_0x7f65eb(0x14e)](_0x3b14f5=>({'path':_0x3b14f5[_0x7f65eb(0x156)],'risk':_0x3b14f5[_0x7f65eb(0x14c)],'target':_0x3b14f5['target']})),'warnings':_0x18a91b[_0x7f65eb(0x140)]['warnings']},'message':_0x7f65eb(0x144)};}},{'service':a33_0x52c295(0x163),'command':a33_0x52c295(0x13c),'description':a33_0x52c295(0x166),'risk':a33_0x52c295(0x174),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x3c695d){const _0x4de7bb=a33_0x52c295,_0x2c046a=loadServiceManifestFromFile(_0x3c695d['str']('file'));return{'method':_0x4de7bb(0x159),'url':getServiceRegistryPath(),'body':{'file':_0x2c046a[_0x4de7bb(0x15e)],'hash':_0x2c046a[_0x4de7bb(0x17d)],'kind':_0x2c046a[_0x4de7bb(0x16f)],'ok':_0x2c046a[_0x4de7bb(0x140)]['ok'],'service':_0x2c046a[_0x4de7bb(0x169)]?.[_0x4de7bb(0x163)],'version':_0x2c046a[_0x4de7bb(0x169)]?.['version'],'serviceCount':_0x2c046a[_0x4de7bb(0x164)][_0x4de7bb(0x16d)],'services':_0x2c046a[_0x4de7bb(0x164)][_0x4de7bb(0x14e)](_0xf7ed4f=>({'service':_0xf7ed4f[_0x4de7bb(0x169)]?.[_0x4de7bb(0x163)],'version':_0xf7ed4f[_0x4de7bb(0x169)]?.[_0x4de7bb(0x13d)],'commandCount':_0xf7ed4f[_0x4de7bb(0x169)]?.[_0x4de7bb(0x145)][_0x4de7bb(0x16d)]??0x0,'errors':_0xf7ed4f[_0x4de7bb(0x140)]['errors']})),'errors':_0x2c046a[_0x4de7bb(0x140)]['errors'],'commandCount':_0x2c046a['normalizedManifest']?.[_0x4de7bb(0x145)][_0x4de7bb(0x16d)]??0x0},'description':_0x4de7bb(0x16b)};},async 'execute'(_0x211173){const _0x479cd0=a33_0x52c295,_0x5cf793=importServiceManifest(_0x211173[_0x479cd0(0x161)](_0x479cd0(0x162)));if(_0x5cf793[_0x479cd0(0x13f)][_0x479cd0(0x16d)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5cf793[_0x479cd0(0x153)],'imported':_0x5cf793['imported'],'updated':_0x5cf793[_0x479cd0(0x165)],'serviceCount':_0x5cf793[_0x479cd0(0x150)],'services':_0x5cf793['entries'][_0x479cd0(0x14e)](summarizeService)},'message':_0x479cd0(0x176)+_0x5cf793[_0x479cd0(0x160)]+_0x479cd0(0x17e)+_0x5cf793[_0x479cd0(0x165)]+_0x479cd0(0x168)};return{'ok':!![],'data':{'registryPath':_0x5cf793[_0x479cd0(0x153)],'replaced':_0x5cf793[_0x479cd0(0x15f)],'imported':_0x5cf793[_0x479cd0(0x160)],'updated':_0x5cf793[_0x479cd0(0x165)],'serviceCount':_0x5cf793[_0x479cd0(0x150)],'service':summarizeService(_0x5cf793[_0x479cd0(0x151)])},'message':(_0x5cf793[_0x479cd0(0x15f)]?_0x479cd0(0x149):_0x479cd0(0x178))+_0x479cd0(0x154)+_0x5cf793[_0x479cd0(0x151)][_0x479cd0(0x16a)]+'.'};}},{'service':'service','command':'export','description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x10d621){const _0x1b1dbc=a33_0x52c295,_0x4a6496=getLocalServiceEntry(_0x10d621[_0x1b1dbc(0x161)](_0x1b1dbc(0x163)));return{'method':_0x1b1dbc(0x159),'url':_0x10d621[_0x1b1dbc(0x161)](_0x1b1dbc(0x162)),'body':{'service':_0x10d621[_0x1b1dbc(0x161)](_0x1b1dbc(0x163)),'found':Boolean(_0x4a6496),'version':_0x4a6496?.[_0x1b1dbc(0x13d)],'source':_0x4a6496?.['source']},'description':_0x1b1dbc(0x17c)};},async 'execute'(_0x1d7f60){const _0x3af69e=a33_0x52c295,_0xd44b64=exportServiceManifest(_0x1d7f60['str'](_0x3af69e(0x163)),_0x1d7f60[_0x3af69e(0x161)](_0x3af69e(0x162)));return{'ok':!![],'data':{'registryPath':_0xd44b64[_0x3af69e(0x153)],'file':_0xd44b64[_0x3af69e(0x15e)],'service':summarizeService(_0xd44b64[_0x3af69e(0x151)])},'message':_0x3af69e(0x15c)+_0xd44b64[_0x3af69e(0x151)][_0x3af69e(0x16a)]+'.'};}},{'service':'service','command':a33_0x52c295(0x173),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a33_0x52c295(0x14f),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5c530e=a33_0x52c295,_0x20625f=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x20625f[_0x5c530e(0x16d)],'services':_0x20625f[_0x5c530e(0x14e)](summarizeService)}};}},{'service':'service','command':'remove','description':'Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','risk':a33_0x52c295(0x174),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1b6dc2){const _0x46f6c0=a33_0x52c295,_0x371f0e=getLocalServiceEntry(_0x1b6dc2[_0x46f6c0(0x161)](_0x46f6c0(0x163)));return{'method':_0x46f6c0(0x159),'url':getServiceRegistryPath(),'body':{'service':_0x1b6dc2[_0x46f6c0(0x161)](_0x46f6c0(0x163)),'found':Boolean(_0x371f0e),'version':_0x371f0e?.[_0x46f6c0(0x13d)],'source':_0x371f0e?.[_0x46f6c0(0x167)]},'description':_0x46f6c0(0x17a)};},async 'execute'(_0x4524c6){const _0x482d15=a33_0x52c295,_0x1fd40d=removeServiceManifest(_0x4524c6[_0x482d15(0x161)]('service'));return{'ok':!![],'data':{'registryPath':_0x1fd40d['registryPath'],'serviceCount':_0x1fd40d[_0x482d15(0x150)],'service':summarizeService(_0x1fd40d[_0x482d15(0x151)])},'message':_0x482d15(0x142)+_0x1fd40d[_0x482d15(0x151)][_0x482d15(0x16a)]+'.'};}},{'service':a33_0x52c295(0x163),'command':a33_0x52c295(0x13e),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a33_0x52c295(0x14f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xbab292){const _0x37b4c1=a33_0x52c295,_0x3e8fa9=getLocalServiceEntry(_0xbab292[_0x37b4c1(0x161)]('service'));if(!_0x3e8fa9)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xbab292[_0x37b4c1(0x161)](_0x37b4c1(0x163))},'message':'Local\x20service\x20not\x20found:\x20'+_0xbab292[_0x37b4c1(0x161)](_0x37b4c1(0x163))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3e8fa9),'manifest':_0x3e8fa9['manifest'],'normalizedManifest':_0x3e8fa9[_0x37b4c1(0x169)]}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a34_0x503b56=a34_0x350c;(function(_0x1a7248,_0x4f5874){const _0x18c510=a34_0x350c,_0x503057=_0x1a7248();while(!![]){try{const _0x1b86d4=parseInt(_0x18c510(0x166))/0x1*(-parseInt(_0x18c510(0x18a))/0x2)+-parseInt(_0x18c510(0x1a3))/0x3*(-parseInt(_0x18c510(0x156))/0x4)+parseInt(_0x18c510(0x188))/0x5+parseInt(_0x18c510(0x17c))/0x6+-parseInt(_0x18c510(0x173))/0x7+-parseInt(_0x18c510(0x159))/0x8*(-parseInt(_0x18c510(0x19c))/0x9)+-parseInt(_0x18c510(0x175))/0xa;if(_0x1b86d4===_0x4f5874)break;else _0x503057['push'](_0x503057['shift']());}catch(_0x5f360b){_0x503057['push'](_0x503057['shift']());}}}(a34_0x56a0,0xd05e5));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a34_0x56a0(){const _0x1e326a=['path','risk','registry','1wYOaQA','homeDir','schemaVersion','parse','hex','map','Local\x20service\x20not\x20found:\x20','find','services\x20must\x20be\x20an\x20array','sourceHash','warnings','$.services[','invalid','1735195OauLno','Invalid\x20service\x20manifest\x20JSON:\x20','14175260qHJIry','Cannot\x20write\x20service\x20registry:\x20','empty','length','stringify','now','serviceCode','1883808bShVrt','services','manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','source','toISOString','updatedAt','string','isArray','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','].manifest.','4848265oYwetu','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','1126922slDVqE','Service\x20manifest\x20file\x20not\x20found:\x20','errors','commandCount','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Invalid\x20service\x20registry\x20JSON:\x20','.tmp','sort','report','kind','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','update','slice','manifests','sha256','validation','importedAt','name','9839799QJsEui','digest','startsWith','utf8','version','ENOENT','service.json','8499tvDbWQ','996baypbh','push','normalizedManifest','8kqGuxt','Service\x20manifest\x20validation\x20failed:\x0a','splice','].manifest','filePath','registryIndex','description','trim','flatMap','service'];a34_0x56a0=function(){return _0x1e326a;};return a34_0x56a0();}import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';function a34_0x350c(_0x31661a,_0x502301){_0x31661a=_0x31661a-0x156;const _0x56a00a=a34_0x56a0();let _0x350c92=_0x56a00a[_0x31661a];return _0x350c92;}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x503b56(0x1a2);export function getServiceRegistryPath(_0x11dfdd={}){const _0x5be711=a34_0x503b56;return resolve(_0x11dfdd[_0x5be711(0x167)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x41b11a={}){const _0x4e4513=a34_0x503b56,_0x445b68=getServiceRegistryPath(_0x41b11a);if(!existsSync(_0x445b68))return emptyServiceRegistry();try{const _0x1b075b=readFileSync(_0x445b68,_0x4e4513(0x19f));if(!_0x1b075b[_0x4e4513(0x160)]())return emptyServiceRegistry();const _0x404d52=JSON['parse'](_0x1b075b);if(_0x404d52['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x4e4513(0x199)](_0x4e4513(0x17f)+String(_0x404d52['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x445b68+'.');if(!Array[_0x4e4513(0x185)](_0x404d52[_0x4e4513(0x17d)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x404d52[_0x4e4513(0x183)],'services':_0x404d52[_0x4e4513(0x17d)]};}catch(_0x3eb560){if(_0x3eb560 instanceof Error&&_0x3eb560[_0x4e4513(0x19b)]==='CliError')throw _0x3eb560;throw CliErrors['validation'](_0x4e4513(0x18f)+_0x445b68,_0x4e4513(0x194));}}export function writeServiceRegistry(_0x11f862,_0x324083={}){const _0x42c961=a34_0x503b56,_0x58d733=getServiceRegistryPath(_0x324083),_0xb944ef=dirname(_0x58d733);!existsSync(_0xb944ef)&&mkdirSync(_0xb944ef,{'recursive':!![]});const _0x29f8c5=_0x58d733+_0x42c961(0x190);try{writeFileSync(_0x29f8c5,JSON[_0x42c961(0x179)](_0x11f862,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x29f8c5,_0x58d733);}catch(_0x1fe40e){try{unlinkSync(_0x29f8c5);}catch{}if(_0x1fe40e?.['code']===_0x42c961(0x1a1))throw CliErrors[_0x42c961(0x199)](_0x42c961(0x176)+_0x58d733);throw _0x1fe40e;}return _0x58d733;}export function loadServiceManifestFromFile(_0x1313b8){const _0x100a14=a34_0x503b56,_0xd5505f=resolve(_0x1313b8);if(!existsSync(_0xd5505f))throw CliErrors[_0x100a14(0x199)](_0x100a14(0x18b)+_0x1313b8);let _0x2e8a3c;const _0x5ae8c9=readFileSync(_0xd5505f,_0x100a14(0x19f));try{_0x2e8a3c=JSON[_0x100a14(0x169)](_0x5ae8c9);}catch{throw CliErrors[_0x100a14(0x199)](_0x100a14(0x174)+_0x1313b8,_0x100a14(0x18e));}const _0x3e92a8=sha256(_0x5ae8c9),_0x479fe6=extractLoadedServiceManifests(_0x2e8a3c,_0x3e92a8),_0xce911b=aggregateValidationReports(_0x479fe6),_0x5e7c97=_0x479fe6[0x0];return{'filePath':_0xd5505f,'hash':_0x3e92a8,'kind':isServiceRegistryLike(_0x2e8a3c)?_0x100a14(0x165):'manifest','manifest':_0x5e7c97?.[_0x100a14(0x17e)]??_0x2e8a3c,'report':_0xce911b,'normalizedManifest':_0x479fe6[_0x100a14(0x178)]===0x1?_0x5e7c97?.[_0x100a14(0x158)]:undefined,'manifests':_0x479fe6};}export function importServiceManifest(_0x2604a2,_0x271ff4={}){const _0x253a14=a34_0x503b56,_0x34ce6b=loadServiceManifestFromFile(_0x2604a2);if(!_0x34ce6b[_0x253a14(0x192)]['ok'])throw CliErrors[_0x253a14(0x199)](formatValidationFailure(_0x34ce6b[_0x253a14(0x192)]),_0x253a14(0x186));if(_0x34ce6b[_0x253a14(0x197)][_0x253a14(0x178)]===0x0)throw CliErrors[_0x253a14(0x199)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x253a14(0x180));const _0x2c0189=readServiceRegistry(_0x271ff4),_0xf998de=(_0x271ff4[_0x253a14(0x17a)]??(()=>new Date()))()['toISOString'](),_0x1a3303=[];let _0x37ae66=0x0,_0x183235=0x0;for(const _0xadc903 of _0x34ce6b[_0x253a14(0x197)]){if(!_0xadc903[_0x253a14(0x158)])continue;const _0x25bb46=_0xadc903['normalizedManifest'][_0x253a14(0x162)]['code'],_0x293ac8={'serviceCode':_0x25bb46,'version':_0xadc903[_0x253a14(0x158)][_0x253a14(0x1a0)],'importedAt':_0xf998de,'source':{'type':'file','path':_0x34ce6b[_0x253a14(0x15d)],'hash':_0xadc903[_0x253a14(0x16f)]},'manifest':_0xadc903[_0x253a14(0x17e)],'normalizedManifest':_0xadc903[_0x253a14(0x158)]},_0x1eb361=_0x2c0189[_0x253a14(0x17d)]['findIndex'](_0x21ca14=>_0x21ca14[_0x253a14(0x17b)]===_0x25bb46);_0x1eb361>=0x0?(_0x2c0189[_0x253a14(0x17d)][_0x1eb361]=_0x293ac8,_0x183235++):(_0x2c0189['services'][_0x253a14(0x157)](_0x293ac8),_0x37ae66++),_0x1a3303['push'](_0x293ac8);}_0x2c0189['services'][_0x253a14(0x191)]((_0x43125e,_0x545ea9)=>_0x43125e[_0x253a14(0x17b)]['localeCompare'](_0x545ea9[_0x253a14(0x17b)])),_0x2c0189[_0x253a14(0x183)]=_0xf998de;const _0x105f8a=writeServiceRegistry(_0x2c0189,_0x271ff4);return{'registryPath':_0x105f8a,'entry':_0x1a3303[0x0],'replaced':_0x1a3303[_0x253a14(0x178)]===0x1?_0x183235===0x1:_0x183235>0x0,'entries':_0x1a3303,'imported':_0x37ae66,'updated':_0x183235,'serviceCount':_0x2c0189[_0x253a14(0x17d)][_0x253a14(0x178)]};}export function exportServiceManifest(_0xb89983,_0x289c45,_0x231dec={}){const _0x9a89f2=a34_0x503b56,_0x4e0d59=getServiceRegistryPath(_0x231dec),_0x2c7b4f=getLocalServiceEntry(_0xb89983,_0x231dec);if(!_0x2c7b4f)throw CliErrors[_0x9a89f2(0x199)]('Local\x20service\x20not\x20found:\x20'+_0xb89983,_0x9a89f2(0x189));const _0x467bc0=resolve(_0x289c45),_0x224afa=dirname(_0x467bc0);return!existsSync(_0x224afa)&&mkdirSync(_0x224afa,{'recursive':!![]}),writeFileSync(_0x467bc0,JSON[_0x9a89f2(0x179)](_0x2c7b4f[_0x9a89f2(0x17e)],null,0x2)+'\x0a',{'encoding':_0x9a89f2(0x19f),'mode':0x180}),{'registryPath':_0x4e0d59,'filePath':_0x467bc0,'entry':_0x2c7b4f};}export function removeServiceManifest(_0x6b8539,_0x64eef0={}){const _0x392a30=a34_0x503b56,_0x4bee90=readServiceRegistry(_0x64eef0),_0x5eca1d=_0x6b8539[_0x392a30(0x160)](),_0x152068=_0x4bee90[_0x392a30(0x17d)]['findIndex'](_0x416c4e=>_0x416c4e['serviceCode']===_0x5eca1d);if(_0x152068<0x0)throw CliErrors[_0x392a30(0x199)](_0x392a30(0x16c)+_0x5eca1d,_0x392a30(0x189));const [_0x4fb07c]=_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x15b)](_0x152068,0x1),_0xcbeb74=(_0x64eef0[_0x392a30(0x17a)]??(()=>new Date()))()[_0x392a30(0x182)]();_0x4bee90[_0x392a30(0x183)]=_0xcbeb74;const _0x33be97=writeServiceRegistry(_0x4bee90,_0x64eef0);return{'registryPath':_0x33be97,'entry':_0x4fb07c,'serviceCount':_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x178)]};}export function listLocalServices(_0x46ab53={}){const _0x50e57a=a34_0x503b56;return readServiceRegistry(_0x46ab53)[_0x50e57a(0x17d)];}export function getLocalServiceEntry(_0x22a46e,_0x504608={}){const _0x15d3fe=a34_0x503b56;return readServiceRegistry(_0x504608)[_0x15d3fe(0x17d)][_0x15d3fe(0x16d)](_0x1ad530=>_0x1ad530['serviceCode']===_0x22a46e['trim']());}export function listLocalServiceTrees(_0x44c584={}){const _0x520edf=a34_0x503b56;return readServiceRegistry(_0x44c584)['services'][_0x520edf(0x16b)](_0x41734d=>_0x41734d[_0x520edf(0x158)]);}export function inspectServiceRegistry(_0x33c2d1={}){const _0x56d5b0=a34_0x503b56,_0x5bd54d=getServiceRegistryPath(_0x33c2d1);if(!existsSync(_0x5bd54d))return emptyServiceRegistryInspection(_0x5bd54d,'missing',![]);try{const _0x116861=readFileSync(_0x5bd54d,_0x56d5b0(0x19f));if(!_0x116861[_0x56d5b0(0x160)]())return emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x177),!![]);const _0x49c16d=JSON[_0x56d5b0(0x169)](_0x116861);if(_0x49c16d[_0x56d5b0(0x168)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'schemaVersion':_0x49c16d[_0x56d5b0(0x168)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x49c16d[_0x56d5b0(0x168)])};if(!Array['isArray'](_0x49c16d['services']))return{...emptyServiceRegistryInspection(_0x5bd54d,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d['updatedAt'],'message':_0x56d5b0(0x16e)};const _0x2ffb01=_0x49c16d[_0x56d5b0(0x17d)][_0x56d5b0(0x16b)](summarizeLocalServiceEntry);return{'registryPath':_0x5bd54d,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d[_0x56d5b0(0x183)],'serviceCount':_0x2ffb01[_0x56d5b0(0x178)],'commandCount':_0x2ffb01['reduce']((_0x2c5467,_0x5a37b6)=>_0x2c5467+_0x5a37b6[_0x56d5b0(0x18d)],0x0),'services':_0x2ffb01};}catch(_0x5a18a6){return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'message':_0x5a18a6 instanceof Error?_0x5a18a6['message']:String(_0x5a18a6)};}}export function formatValidationFailure(_0x30e905){const _0x4d8914=a34_0x503b56,_0x534cb6=_0x30e905[_0x4d8914(0x18c)][_0x4d8914(0x16b)](_0x3db200=>_0x3db200[_0x4d8914(0x163)]+':\x20'+_0x3db200['message']);return _0x4d8914(0x15a)+_0x534cb6['join']('\x0a');}function extractLoadedServiceManifests(_0x54126b,_0x6c4c60){const _0x28fccb=a34_0x503b56;if(!isServiceRegistryLike(_0x54126b)){const _0x5137c2=_0x54126b,_0x2c1005=validateServiceTreeManifest(_0x5137c2);return[{'manifest':_0x5137c2,'report':_0x2c1005,'normalizedManifest':_0x2c1005['ok']?normalizeServiceTreeManifest(_0x5137c2):undefined,'sourceHash':_0x6c4c60}];}return _0x54126b[_0x28fccb(0x17d)][_0x28fccb(0x16b)]((_0x47b495,_0x28f3ac)=>{const _0x1da06b=_0x28fccb,_0x41a3a2=isObjectRecord(_0x47b495)?_0x47b495[_0x1da06b(0x17e)]:undefined,_0x46cc1e=validateServiceTreeManifest(_0x41a3a2),_0x3b2b6e=isObjectRecord(_0x47b495)&&typeof _0x47b495[_0x1da06b(0x17b)]===_0x1da06b(0x184)?_0x47b495['serviceCode']:undefined;return{'manifest':_0x41a3a2,'report':_0x46cc1e,'normalizedManifest':_0x46cc1e['ok']?normalizeServiceTreeManifest(_0x41a3a2):undefined,'sourceHash':sha256(JSON[_0x1da06b(0x179)](_0x41a3a2,null,0x2)+'\x0a'),'registryIndex':_0x28f3ac,'registryServiceCode':_0x3b2b6e};});}function aggregateValidationReports(_0x41af3f){const _0x4798ce=a34_0x503b56,_0x2ba423=_0x41af3f[_0x4798ce(0x161)](_0x1505c3=>_0x1505c3[_0x4798ce(0x15e)]===undefined?_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)]:_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)][_0x4798ce(0x16b)](_0x27c861=>({..._0x27c861,'path':prefixRegistryIssuePath(_0x1505c3[_0x4798ce(0x15e)],_0x27c861['path'])}))),_0x4059d1=_0x41af3f[_0x4798ce(0x161)](_0x2f9b09=>_0x2f9b09[_0x4798ce(0x15e)]===undefined?_0x2f9b09[_0x4798ce(0x192)]['warnings']:_0x2f9b09[_0x4798ce(0x192)][_0x4798ce(0x170)]['map'](_0x22ae1f=>({..._0x22ae1f,'path':prefixRegistryIssuePath(_0x2f9b09[_0x4798ce(0x15e)],_0x22ae1f[_0x4798ce(0x163)])})));return{'ok':_0x2ba423['length']===0x0,'errors':_0x2ba423,'warnings':_0x4059d1};}function prefixRegistryIssuePath(_0xdbc09a,_0x3f85cd){const _0x59cd05=a34_0x503b56;if(_0x3f85cd==='$')return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c);if(_0x3f85cd[_0x59cd05(0x19e)]('$.'))return _0x59cd05(0x171)+_0xdbc09a+'].manifest'+_0x3f85cd[_0x59cd05(0x196)](0x1);if(_0x3f85cd[_0x59cd05(0x19e)]('$['))return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c)+_0x3f85cd[_0x59cd05(0x196)](0x1);return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x187)+_0x3f85cd;}function isServiceRegistryLike(_0x2b613d){const _0x32facb=a34_0x503b56;return isObjectRecord(_0x2b613d)&&_0x2b613d[_0x32facb(0x168)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x32facb(0x185)](_0x2b613d[_0x32facb(0x17d)]);}function isObjectRecord(_0xbe3bc6){const _0xe6439d=a34_0x503b56;return Boolean(_0xbe3bc6)&&typeof _0xbe3bc6==='object'&&!Array[_0xe6439d(0x185)](_0xbe3bc6);}function emptyServiceRegistryInspection(_0x959af,_0x58681a,_0x11d52b){return{'registryPath':_0x959af,'exists':_0x11d52b,'status':_0x58681a,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x58c045){const _0x56ecec=a34_0x503b56,_0x4402f6=_0x58c045['normalizedManifest'],_0x1d6df7=_0x4402f6['commands']['map'](_0x446179=>({'path':_0x446179['cliPath'],'description':_0x446179['description'],'risk':_0x446179[_0x56ecec(0x164)],'targetKind':_0x446179['target'][_0x56ecec(0x193)],'targetCommand':_0x446179['target']['command']}));return{'serviceCode':_0x58c045[_0x56ecec(0x17b)],'name':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x19b)],'description':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x15f)],'version':_0x58c045[_0x56ecec(0x1a0)],'importedAt':_0x58c045[_0x56ecec(0x19a)],'source':_0x58c045[_0x56ecec(0x181)],'commandCount':_0x1d6df7[_0x56ecec(0x178)],'commands':_0x1d6df7};}function sha256(_0x5b46c6){const _0x19158e=a34_0x503b56;return createHash(_0x19158e(0x198))[_0x19158e(0x195)](_0x5b46c6)[_0x19158e(0x19d)](_0x19158e(0x16a));}
|
|
1
|
+
(function(_0x48e481,_0x57386e){const _0x33bfb7=a34_0x154a,_0x519ea8=_0x48e481();while(!![]){try{const _0x177ba4=parseInt(_0x33bfb7(0xf1))/0x1+parseInt(_0x33bfb7(0xf8))/0x2+-parseInt(_0x33bfb7(0xd9))/0x3*(-parseInt(_0x33bfb7(0x104))/0x4)+parseInt(_0x33bfb7(0xe5))/0x5*(-parseInt(_0x33bfb7(0x109))/0x6)+parseInt(_0x33bfb7(0xc1))/0x7+parseInt(_0x33bfb7(0xba))/0x8+-parseInt(_0x33bfb7(0xc3))/0x9;if(_0x177ba4===_0x57386e)break;else _0x519ea8['push'](_0x519ea8['shift']());}catch(_0x189d69){_0x519ea8['push'](_0x519ea8['shift']());}}}(a34_0x771b,0xeba11));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a34_0x154a(_0x359104,_0x4a9cc5){_0x359104=_0x359104-0xba;const _0x771bc5=a34_0x771b();let _0x154aee=_0x771bc5[_0x359104];return _0x154aee;}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='service.json';export function getServiceRegistryPath(_0x547fb3={}){const _0x54aad4=a34_0x154a;return resolve(_0x547fb3[_0x54aad4(0xe2)]??homedir(),PRODUCT_CONFIG[_0x54aad4(0x101)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1bacb9={}){const _0x108be3=a34_0x154a,_0x46a4d6=getServiceRegistryPath(_0x1bacb9);if(!existsSync(_0x46a4d6))return emptyServiceRegistry();try{const _0x9d165f=readFileSync(_0x46a4d6,_0x108be3(0xf2));if(!_0x9d165f[_0x108be3(0xc5)]())return emptyServiceRegistry();const _0xeeebb0=JSON['parse'](_0x9d165f);if(_0xeeebb0[_0x108be3(0xf6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x108be3(0x102)](_0x108be3(0xd8)+String(_0xeeebb0[_0x108be3(0xf6)]),_0x108be3(0xc8)+_0x46a4d6+'.');if(!Array[_0x108be3(0xdc)](_0xeeebb0['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xeeebb0[_0x108be3(0xfc)],'services':_0xeeebb0[_0x108be3(0xbe)]};}catch(_0x4705d0){if(_0x4705d0 instanceof Error&&_0x4705d0[_0x108be3(0xbc)]===_0x108be3(0x103))throw _0x4705d0;throw CliErrors[_0x108be3(0x102)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x46a4d6,_0x108be3(0xde));}}export function writeServiceRegistry(_0x44c4d5,_0x3b913c={}){const _0x165a93=a34_0x154a,_0x2fa9d9=getServiceRegistryPath(_0x3b913c),_0x856684=dirname(_0x2fa9d9);!existsSync(_0x856684)&&mkdirSync(_0x856684,{'recursive':!![]});const _0xab8764=_0x2fa9d9+_0x165a93(0xeb);try{writeFileSync(_0xab8764,JSON[_0x165a93(0xce)](_0x44c4d5,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xab8764,_0x2fa9d9);}catch(_0x5a8dfc){try{unlinkSync(_0xab8764);}catch{}if(_0x5a8dfc?.['code']==='ENOENT')throw CliErrors[_0x165a93(0x102)]('Cannot\x20write\x20service\x20registry:\x20'+_0x2fa9d9);throw _0x5a8dfc;}return _0x2fa9d9;}export function loadServiceManifestFromFile(_0x39452c){const _0x38931b=a34_0x154a,_0x241872=resolve(_0x39452c);if(!existsSync(_0x241872))throw CliErrors[_0x38931b(0x102)](_0x38931b(0x105)+_0x39452c);let _0xfb86e;const _0x4673ef=readFileSync(_0x241872,_0x38931b(0xf2));try{_0xfb86e=JSON['parse'](_0x4673ef);}catch{throw CliErrors['validation'](_0x38931b(0xea)+_0x39452c,_0x38931b(0xcd));}const _0x45a5f6=sha256(_0x4673ef),_0x13cd55=extractLoadedServiceManifests(_0xfb86e,_0x45a5f6),_0x2f1f47=aggregateValidationReports(_0x13cd55),_0x52058d=_0x13cd55[0x0];return{'filePath':_0x241872,'hash':_0x45a5f6,'kind':isServiceRegistryLike(_0xfb86e)?_0x38931b(0xf7):_0x38931b(0xf5),'manifest':_0x52058d?.[_0x38931b(0xf5)]??_0xfb86e,'report':_0x2f1f47,'normalizedManifest':_0x13cd55[_0x38931b(0xc0)]===0x1?_0x52058d?.['normalizedManifest']:undefined,'manifests':_0x13cd55};}export function importServiceManifest(_0x540bed,_0x98295a={}){const _0x5a05c0=a34_0x154a,_0x87ab1c=loadServiceManifestFromFile(_0x540bed);if(!_0x87ab1c[_0x5a05c0(0xec)]['ok'])throw CliErrors[_0x5a05c0(0x102)](formatValidationFailure(_0x87ab1c[_0x5a05c0(0xec)]),_0x5a05c0(0xd2));if(_0x87ab1c[_0x5a05c0(0xf4)][_0x5a05c0(0xc0)]===0x0)throw CliErrors[_0x5a05c0(0x102)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5a05c0(0xc4));const _0x44cc3c=readServiceRegistry(_0x98295a),_0x2c6941=(_0x98295a[_0x5a05c0(0xe0)]??(()=>new Date()))()[_0x5a05c0(0xfd)](),_0x5cd19e=[];let _0x1d4884=0x0,_0x2aebf=0x0;for(const _0x255938 of _0x87ab1c[_0x5a05c0(0xf4)]){if(!_0x255938['normalizedManifest'])continue;const _0x250582=_0x255938['normalizedManifest'][_0x5a05c0(0xfa)][_0x5a05c0(0xef)],_0x17cc0e={'serviceCode':_0x250582,'version':_0x255938[_0x5a05c0(0xc2)]['version'],'importedAt':_0x2c6941,'source':{'type':_0x5a05c0(0xc7),'path':_0x87ab1c[_0x5a05c0(0xcb)],'hash':_0x255938[_0x5a05c0(0xd6)]},'manifest':_0x255938['manifest'],'normalizedManifest':_0x255938[_0x5a05c0(0xc2)]},_0x56d907=_0x44cc3c[_0x5a05c0(0xbe)][_0x5a05c0(0xdf)](_0x152bf9=>_0x152bf9[_0x5a05c0(0xc6)]===_0x250582);_0x56d907>=0x0?(_0x44cc3c[_0x5a05c0(0xbe)][_0x56d907]=_0x17cc0e,_0x2aebf++):(_0x44cc3c[_0x5a05c0(0xbe)][_0x5a05c0(0xf0)](_0x17cc0e),_0x1d4884++),_0x5cd19e[_0x5a05c0(0xf0)](_0x17cc0e);}_0x44cc3c[_0x5a05c0(0xbe)]['sort']((_0x2dfcf4,_0x217ca5)=>_0x2dfcf4[_0x5a05c0(0xc6)][_0x5a05c0(0x108)](_0x217ca5[_0x5a05c0(0xc6)])),_0x44cc3c[_0x5a05c0(0xfc)]=_0x2c6941;const _0x478182=writeServiceRegistry(_0x44cc3c,_0x98295a);return{'registryPath':_0x478182,'entry':_0x5cd19e[0x0],'replaced':_0x5cd19e[_0x5a05c0(0xc0)]===0x1?_0x2aebf===0x1:_0x2aebf>0x0,'entries':_0x5cd19e,'imported':_0x1d4884,'updated':_0x2aebf,'serviceCount':_0x44cc3c[_0x5a05c0(0xbe)][_0x5a05c0(0xc0)]};}export function exportServiceManifest(_0x741b6,_0x1d5976,_0x3d1152={}){const _0x485857=a34_0x154a,_0xf13705=getServiceRegistryPath(_0x3d1152),_0x45a1a6=getLocalServiceEntry(_0x741b6,_0x3d1152);if(!_0x45a1a6)throw CliErrors[_0x485857(0x102)]('Local\x20service\x20not\x20found:\x20'+_0x741b6,_0x485857(0xbf));const _0x1a30cc=resolve(_0x1d5976),_0xf1b5a7=dirname(_0x1a30cc);return!existsSync(_0xf1b5a7)&&mkdirSync(_0xf1b5a7,{'recursive':!![]}),writeFileSync(_0x1a30cc,JSON['stringify'](_0x45a1a6['manifest'],null,0x2)+'\x0a',{'encoding':_0x485857(0xf2),'mode':0x180}),{'registryPath':_0xf13705,'filePath':_0x1a30cc,'entry':_0x45a1a6};}export function removeServiceManifest(_0x4a9888,_0x35a2ec={}){const _0x43d0fb=a34_0x154a,_0x385bf4=readServiceRegistry(_0x35a2ec),_0x3540b6=_0x4a9888[_0x43d0fb(0xc5)](),_0x11a533=_0x385bf4[_0x43d0fb(0xbe)]['findIndex'](_0x152ccd=>_0x152ccd[_0x43d0fb(0xc6)]===_0x3540b6);if(_0x11a533<0x0)throw CliErrors['validation'](_0x43d0fb(0xc9)+_0x3540b6,_0x43d0fb(0xbf));const [_0x11a890]=_0x385bf4[_0x43d0fb(0xbe)][_0x43d0fb(0xe1)](_0x11a533,0x1),_0x16b931=(_0x35a2ec[_0x43d0fb(0xe0)]??(()=>new Date()))()['toISOString']();_0x385bf4['updatedAt']=_0x16b931;const _0x336c98=writeServiceRegistry(_0x385bf4,_0x35a2ec);return{'registryPath':_0x336c98,'entry':_0x11a890,'serviceCount':_0x385bf4[_0x43d0fb(0xbe)][_0x43d0fb(0xc0)]};}export function listLocalServices(_0x388873={}){return readServiceRegistry(_0x388873)['services'];}export function getLocalServiceEntry(_0x461c89,_0x51d7b1={}){const _0x5cedf2=a34_0x154a;return readServiceRegistry(_0x51d7b1)[_0x5cedf2(0xbe)][_0x5cedf2(0xbb)](_0x50455f=>_0x50455f[_0x5cedf2(0xc6)]===_0x461c89[_0x5cedf2(0xc5)]());}export function listLocalServiceTrees(_0x135269={}){const _0x1ebf49=a34_0x154a;return readServiceRegistry(_0x135269)[_0x1ebf49(0xbe)]['map'](_0x44c382=>_0x44c382[_0x1ebf49(0xc2)]);}export function inspectServiceRegistry(_0x135895={}){const _0x1faa56=a34_0x154a,_0x221ab4=getServiceRegistryPath(_0x135895);if(!existsSync(_0x221ab4))return emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0x107),![]);try{const _0x259668=readFileSync(_0x221ab4,'utf8');if(!_0x259668['trim']())return emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xf9),!![]);const _0x1c250b=JSON[_0x1faa56(0xff)](_0x259668);if(_0x1c250b[_0x1faa56(0xf6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xe9),!![]),'schemaVersion':_0x1c250b[_0x1faa56(0xf6)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1c250b['schemaVersion'])};if(!Array[_0x1faa56(0xdc)](_0x1c250b['services']))return{...emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xe9),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c250b[_0x1faa56(0xfc)],'message':_0x1faa56(0xdb)};const _0x4dcd03=_0x1c250b[_0x1faa56(0xbe)][_0x1faa56(0xd7)](summarizeLocalServiceEntry);return{'registryPath':_0x221ab4,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c250b[_0x1faa56(0xfc)],'serviceCount':_0x4dcd03[_0x1faa56(0xc0)],'commandCount':_0x4dcd03['reduce']((_0x137ae1,_0x4561da)=>_0x137ae1+_0x4561da['commandCount'],0x0),'services':_0x4dcd03};}catch(_0x21e135){return{...emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xe9),!![]),'message':_0x21e135 instanceof Error?_0x21e135[_0x1faa56(0xe3)]:String(_0x21e135)};}}export function formatValidationFailure(_0x212974){const _0x4d69c9=a34_0x154a,_0x53f21c=_0x212974[_0x4d69c9(0xd5)][_0x4d69c9(0xd7)](_0x59049b=>_0x59049b[_0x4d69c9(0xed)]+':\x20'+_0x59049b[_0x4d69c9(0xe3)]);return _0x4d69c9(0xd0)+_0x53f21c['join']('\x0a');}function extractLoadedServiceManifests(_0x2cc523,_0x518604){const _0x332019=a34_0x154a;if(!isServiceRegistryLike(_0x2cc523)){const _0x2c4211=_0x2cc523,_0x2fe60=validateServiceTreeManifest(_0x2c4211);return[{'manifest':_0x2c4211,'report':_0x2fe60,'normalizedManifest':_0x2fe60['ok']?normalizeServiceTreeManifest(_0x2c4211):undefined,'sourceHash':_0x518604}];}return _0x2cc523[_0x332019(0xbe)][_0x332019(0xd7)]((_0x4f6760,_0x21ebba)=>{const _0x2096b2=_0x332019,_0x21c488=isObjectRecord(_0x4f6760)?_0x4f6760['manifest']:undefined,_0x2fee53=validateServiceTreeManifest(_0x21c488),_0x1a63a8=isObjectRecord(_0x4f6760)&&typeof _0x4f6760[_0x2096b2(0xc6)]==='string'?_0x4f6760[_0x2096b2(0xc6)]:undefined;return{'manifest':_0x21c488,'report':_0x2fee53,'normalizedManifest':_0x2fee53['ok']?normalizeServiceTreeManifest(_0x21c488):undefined,'sourceHash':sha256(JSON[_0x2096b2(0xce)](_0x21c488,null,0x2)+'\x0a'),'registryIndex':_0x21ebba,'registryServiceCode':_0x1a63a8};});}function aggregateValidationReports(_0x554eef){const _0xa52f2c=a34_0x154a,_0xdb223c=_0x554eef['flatMap'](_0x365861=>_0x365861[_0xa52f2c(0xe4)]===undefined?_0x365861[_0xa52f2c(0xec)][_0xa52f2c(0xd5)]:_0x365861[_0xa52f2c(0xec)][_0xa52f2c(0xd5)][_0xa52f2c(0xd7)](_0x3726f5=>({..._0x3726f5,'path':prefixRegistryIssuePath(_0x365861[_0xa52f2c(0xe4)],_0x3726f5[_0xa52f2c(0xed)])}))),_0x29652c=_0x554eef[_0xa52f2c(0x100)](_0x37a282=>_0x37a282[_0xa52f2c(0xe4)]===undefined?_0x37a282['report'][_0xa52f2c(0xe6)]:_0x37a282[_0xa52f2c(0xec)][_0xa52f2c(0xe6)]['map'](_0xf7a445=>({..._0xf7a445,'path':prefixRegistryIssuePath(_0x37a282[_0xa52f2c(0xe4)],_0xf7a445[_0xa52f2c(0xed)])})));return{'ok':_0xdb223c['length']===0x0,'errors':_0xdb223c,'warnings':_0x29652c};}function prefixRegistryIssuePath(_0x131ddc,_0x2a1752){const _0x37a36e=a34_0x154a;if(_0x2a1752==='$')return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xda);if(_0x2a1752[_0x37a36e(0xdd)]('$.'))return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xda)+_0x2a1752[_0x37a36e(0xd1)](0x1);if(_0x2a1752['startsWith']('$['))return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xda)+_0x2a1752[_0x37a36e(0xd1)](0x1);return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xfe)+_0x2a1752;}function a34_0x771b(){const _0x5f2051=['push','216583IJQUBu','utf8','$.services[','manifests','manifest','schemaVersion','registry','3366526UqCXec','empty','service','commands','updatedAt','toISOString','].manifest.','parse','flatMap','homeDirName','validation','CliError','4luQcqa','Service\x20manifest\x20file\x20not\x20found:\x20','sha256','missing','localeCompare','6zGPXos','1112808BeerFh','find','name','command','services','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','length','3854333nTacrF','normalizedManifest','25142814ZIAgME','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','trim','serviceCode','file','Remove\x20or\x20migrate\x20','Local\x20service\x20not\x20found:\x20','target','filePath','description','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','stringify','source','Service\x20manifest\x20validation\x20failed:\x0a','slice','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','object','cliPath','errors','sourceHash','map','Unsupported\x20service\x20registry\x20schemaVersion:\x20','4883484vwWhhU','].manifest','services\x20must\x20be\x20an\x20array','isArray','startsWith','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','findIndex','now','splice','homeDir','message','registryIndex','2293055cMFFDY','warnings','version','update','invalid','Invalid\x20service\x20manifest\x20JSON:\x20','.tmp','report','path','hex','code'];a34_0x771b=function(){return _0x5f2051;};return a34_0x771b();}function isServiceRegistryLike(_0xe498ec){const _0x50fb99=a34_0x154a;return isObjectRecord(_0xe498ec)&&_0xe498ec[_0x50fb99(0xf6)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0xe498ec[_0x50fb99(0xbe)]);}function isObjectRecord(_0x2e50e3){const _0x293f5f=a34_0x154a;return Boolean(_0x2e50e3)&&typeof _0x2e50e3===_0x293f5f(0xd3)&&!Array['isArray'](_0x2e50e3);}function emptyServiceRegistryInspection(_0xebf479,_0x43c563,_0x58f229){return{'registryPath':_0xebf479,'exists':_0x58f229,'status':_0x43c563,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x43998f){const _0x4937c4=a34_0x154a,_0x3d6434=_0x43998f['normalizedManifest'],_0x51afdd=_0x3d6434[_0x4937c4(0xfb)]['map'](_0x7c4be=>({'path':_0x7c4be[_0x4937c4(0xd4)],'description':_0x7c4be['description'],'risk':_0x7c4be['risk'],'targetKind':_0x7c4be[_0x4937c4(0xca)]['kind'],'targetCommand':_0x7c4be['target'][_0x4937c4(0xbd)]}));return{'serviceCode':_0x43998f['serviceCode'],'name':_0x3d6434['service'][_0x4937c4(0xbc)],'description':_0x3d6434[_0x4937c4(0xfa)][_0x4937c4(0xcc)],'version':_0x43998f[_0x4937c4(0xe7)],'importedAt':_0x43998f['importedAt'],'source':_0x43998f[_0x4937c4(0xcf)],'commandCount':_0x51afdd[_0x4937c4(0xc0)],'commands':_0x51afdd};}function sha256(_0x318ba5){const _0x529d04=a34_0x154a;return createHash(_0x529d04(0x106))[_0x529d04(0xe8)](_0x318ba5)['digest'](_0x529d04(0xee));}
|