@lovrabet/lovrabet-cli 2.1.1 → 2.1.2-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
|
-
|
|
1
|
+
function a27_0x571a(){const _0x57dff2=['build','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','Created\x20KB\x20entry\x20','21812RorCwv','125345sNstar','POST','Personal\x20knowledge-base\x20entry\x20ID','num','string','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','str','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Search\x20query\x20is\x20required.','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','ragStatus','title','updateTime','version','number','30638ajSmHE','Updated\x20KB\x20entry\x20','Override\x20the\x20existing\x20entry\x20title','metadata','length','150nSQSub','flag','docId','content','list','verbose','File\x20is\x20not\x20a\x20regular\x20file:\x20','file','utf8','/client/knowledge-base/personal/create','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','64idBDoZ','7738912bJunXs','map','/update','userId','query','read','appCode','createTime','22VnTXgK','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','1098foNhHe','Personal\x20knowledge-base\x20entry\x20title','description','validation','2966929xJxlIN','search','1827756RXGftR','74770KVFvdH','447wGpfjP','bool','trim','/client/knowledge-base/personal/','ragErrorMessage','topk','detail','create','File\x20not\x20found:\x20','--topk\x20must\x20be\x20a\x20positive\x20number.','scope','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','write','body','update','File\x20path\x20is\x20required.'];a27_0x571a=function(){return _0x57dff2;};return a27_0x571a();}const a27_0x24ccfe=a27_0x1ccb;(function(_0x66171b,_0x34b717){const _0x40a301=a27_0x1ccb,_0x28737a=_0x66171b();while(!![]){try{const _0x2cb171=-parseInt(_0x40a301(0xed))/0x1*(parseInt(_0x40a301(0xdd))/0x2)+-parseInt(_0x40a301(0x101))/0x3*(parseInt(_0x40a301(0x114))/0x4)+-parseInt(_0x40a301(0x115))/0x5*(-parseInt(_0x40a301(0xe2))/0x6)+-parseInt(_0x40a301(0xfd))/0x7+parseInt(_0x40a301(0xee))/0x8+-parseInt(_0x40a301(0xf9))/0x9*(-parseInt(_0x40a301(0x100))/0xa)+parseInt(_0x40a301(0xf6))/0xb*(parseInt(_0x40a301(0xff))/0xc);if(_0x2cb171===_0x34b717)break;else _0x28737a['push'](_0x28737a['shift']());}catch(_0x2e9dc3){_0x28737a['push'](_0x28737a['shift']());}}}(a27_0x571a,0x910e5));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x24ccfe(0x122),'type':a27_0x24ccfe(0x119),'required':!![],'description':a27_0x24ccfe(0xfa)},FILE_FLAG={'name':a27_0x24ccfe(0xe9),'type':a27_0x24ccfe(0x119),'required':!![],'description':a27_0x24ccfe(0x11d)},QUERY_FLAG={'name':a27_0x24ccfe(0xf2),'type':a27_0x24ccfe(0x119),'required':!![],'description':a27_0x24ccfe(0xf7)},TOPK_FLAG={'name':a27_0x24ccfe(0x106),'type':a27_0x24ccfe(0xdc),'description':a27_0x24ccfe(0xf8)};function readKnowledgeFile(_0x14f79e){const _0x22e055=a27_0x24ccfe;if(!_0x14f79e)throw CliErrors['validation'](_0x22e055(0x110));if(!existsSync(_0x14f79e))throw CliErrors[_0x22e055(0xfc)](_0x22e055(0x109)+_0x14f79e);if(!statSync(_0x14f79e)['isFile']())throw CliErrors[_0x22e055(0xfc)](_0x22e055(0xe8)+_0x14f79e);return readFileSync(_0x14f79e,_0x22e055(0xea));}function summarizePersonalItem(_0x2384b5){const _0x17a902=a27_0x24ccfe;return{'id':_0x2384b5['id'],'title':_0x2384b5['title'],'version':_0x2384b5[_0x17a902(0xdb)],'ragStatus':_0x2384b5[_0x17a902(0x121)],'ragErrorMessage':_0x2384b5['ragErrorMessage'],'updateTime':_0x2384b5[_0x17a902(0x123)]};}function detailPersonalItem(_0x13f657){const _0x1a8837=a27_0x24ccfe;return{'id':_0x13f657['id'],'appCode':_0x13f657[_0x1a8837(0xf4)],'scope':_0x13f657[_0x1a8837(0x10b)],'userId':_0x13f657[_0x1a8837(0xf1)],'title':_0x13f657[_0x1a8837(0x122)],'content':_0x13f657[_0x1a8837(0xe5)]??'','version':_0x13f657['version'],'ragStatus':_0x13f657[_0x1a8837(0x121)],'ragErrorMessage':_0x13f657[_0x1a8837(0x105)],'createTime':_0x13f657[_0x1a8837(0xf5)],'updateTime':_0x13f657[_0x1a8837(0x123)]};}function summarizeSearchHit(_0x47866d){const _0x5e6ada=a27_0x24ccfe;return{'scope':_0x47866d['scope'],'docId':_0x47866d[_0x5e6ada(0xe4)],'score':_0x47866d['score'],'weightedScore':_0x47866d['weightedScore'],'content':_0x47866d['content'],'metadata':_0x47866d[_0x5e6ada(0xe0)]};}function readTopK(_0x21f35b){const _0x220a94=a27_0x24ccfe,_0x29d8d3=_0x21f35b[_0x220a94(0xe3)](_0x220a94(0x106));if(_0x29d8d3===undefined||_0x29d8d3===null||_0x29d8d3==='')return undefined;const _0xde9eab=_0x21f35b[_0x220a94(0x118)](_0x220a94(0x106));if(!Number['isFinite'](_0xde9eab)||_0xde9eab<0x1)throw CliErrors[_0x220a94(0xfc)](_0x220a94(0x10a));return _0xde9eab;}function a27_0x1ccb(_0x563e80,_0x36272d){_0x563e80=_0x563e80-0xdb;const _0x571af4=a27_0x571a();let _0x1ccb4a=_0x571af4[_0x563e80];return _0x1ccb4a;}const kbList={'service':'kb','command':a27_0x24ccfe(0xe6),'description':a27_0x24ccfe(0x10c),'risk':a27_0x24ccfe(0xf3),'flags':[VERBOSE_FLAG],async 'execute'(_0x16ad15){const _0x3c27d9=a27_0x24ccfe,_0x20164e=await listPersonalKnowledgeBaseItems(_0x16ad15[_0x3c27d9(0xf4)]);if(_0x16ad15[_0x3c27d9(0x102)](_0x3c27d9(0xe7)))return{'ok':!![],'data':{'total':_0x20164e[_0x3c27d9(0xe1)],'items':_0x20164e}};return{'ok':!![],'data':{'total':_0x20164e['length'],'items':_0x20164e[_0x3c27d9(0xef)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x24ccfe(0x107),'description':a27_0x24ccfe(0x120),'risk':a27_0x24ccfe(0xf3),'flags':[{...ID_FLAG,'description':a27_0x24ccfe(0x117)}],async 'execute'(_0x5bc2c8){const _0x15da76=a27_0x24ccfe,_0x486f72=await getPersonalKnowledgeBaseItem(_0x5bc2c8[_0x15da76(0x118)]('id'),_0x5bc2c8[_0x15da76(0xf4)]);return{'ok':!![],'data':detailPersonalItem(_0x486f72)};}},kbCreate={'service':'kb','command':a27_0x24ccfe(0x108),'description':a27_0x24ccfe(0xec),'risk':'write','flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x5cba7a){const _0x1b4a29=a27_0x24ccfe,_0x2c7d48=_0x5cba7a[_0x1b4a29(0x11b)]('title'),_0x1bb27c=readKnowledgeFile(_0x5cba7a[_0x1b4a29(0x11b)](_0x1b4a29(0xe9))),_0x5e5d3f=await createPersonalKnowledgeBaseItem(_0x5cba7a[_0x1b4a29(0xf4)],{'title':_0x2c7d48,'content':_0x1bb27c});return{'ok':!![],'data':summarizePersonalItem(_0x5e5d3f),'message':_0x1b4a29(0x113)+_0x5e5d3f['id']+'\x20('+_0x5e5d3f['title']+')'};},async 'dryRun'(_0x34faec){const _0xab02cc=a27_0x24ccfe,_0x4008e3=_0x34faec[_0xab02cc(0x11b)]('title'),_0x20d347=readKnowledgeFile(_0x34faec[_0xab02cc(0x11b)]('file'));return dryRun('POST',_0xab02cc(0xeb))['body']({'appCode':_0x34faec[_0xab02cc(0xf4)],'title':_0x4008e3,'content':_0x20d347})[_0xab02cc(0xfb)](_0xab02cc(0x11a)+_0x4008e3+'\x22')[_0xab02cc(0x111)]();}},kbUpdate={'service':'kb','command':a27_0x24ccfe(0x10f),'description':a27_0x24ccfe(0x11e),'risk':a27_0x24ccfe(0x10d),'flags':[{...ID_FLAG,'description':'Personal\x20knowledge-base\x20entry\x20ID'},{...TITLE_FLAG,'required':![],'description':a27_0x24ccfe(0xdf)},FILE_FLAG],async 'execute'(_0x3b6bba){const _0x50c8ed=a27_0x24ccfe,_0x56f235=_0x3b6bba['num']('id'),_0x2164b9=readKnowledgeFile(_0x3b6bba[_0x50c8ed(0x11b)]('file')),_0x11a6b5=_0x3b6bba['str'](_0x50c8ed(0x122))||(await getPersonalKnowledgeBaseItem(_0x56f235,_0x3b6bba['appCode']))['title'],_0x48ece9=await updatePersonalKnowledgeBaseItem(_0x56f235,_0x3b6bba[_0x50c8ed(0xf4)],{'title':_0x11a6b5,'content':_0x2164b9});return{'ok':!![],'data':summarizePersonalItem(_0x48ece9),'message':_0x50c8ed(0xde)+_0x48ece9['id']+'\x20('+_0x48ece9[_0x50c8ed(0x122)]+')'};},async 'dryRun'(_0x2e56d1){const _0x721b80=a27_0x24ccfe,_0x474b5a=_0x2e56d1[_0x721b80(0x118)]('id'),_0x42eeb9=readKnowledgeFile(_0x2e56d1[_0x721b80(0x11b)](_0x721b80(0xe9))),_0x179b15=_0x2e56d1[_0x721b80(0x11b)](_0x721b80(0x122))||(await getPersonalKnowledgeBaseItem(_0x474b5a,_0x2e56d1['appCode']))[_0x721b80(0x122)];return dryRun(_0x721b80(0x116),_0x721b80(0x104)+_0x474b5a+_0x721b80(0xf0))[_0x721b80(0x10e)]({'appCode':_0x2e56d1[_0x721b80(0xf4)],'title':_0x179b15,'content':_0x42eeb9})[_0x721b80(0xfb)](_0x721b80(0x11c)+_0x474b5a)[_0x721b80(0x111)]();}},kbSearch={'service':'kb','command':a27_0x24ccfe(0xfe),'description':a27_0x24ccfe(0x112),'risk':a27_0x24ccfe(0xf3),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x4560c0){const _0x250023=a27_0x24ccfe;if(!_0x4560c0[_0x250023(0x11b)](_0x250023(0xf2))[_0x250023(0x103)]())throw CliErrors[_0x250023(0xfc)](_0x250023(0x11f));readTopK(_0x4560c0);},async 'execute'(_0x57f143){const _0x1766de=a27_0x24ccfe,_0x353ed2=_0x57f143[_0x1766de(0x11b)](_0x1766de(0xf2))['trim'](),_0x448258=readTopK(_0x57f143),_0x2cb3bd=await searchKnowledgeBase(_0x57f143[_0x1766de(0xf4)],{'query':_0x353ed2,'topK':_0x448258});return{'ok':!![],'data':{'total':_0x2cb3bd['length'],'hits':_0x2cb3bd['map'](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a28_0x1a44(_0x16930d,_0x2b6d46){_0x16930d=_0x16930d-0xaf;const _0x423c10=a28_0x423c();let _0x1a44a5=_0x423c10[_0x16930d];return _0x1a44a5;}const a28_0x4642e3=a28_0x1a44;(function(_0xd2574c,_0x13e6ff){const _0x2bec56=a28_0x1a44,_0x22e1b2=_0xd2574c();while(!![]){try{const _0x3693a7=-parseInt(_0x2bec56(0xb8))/0x1*(-parseInt(_0x2bec56(0xb5))/0x2)+parseInt(_0x2bec56(0xbc))/0x3+parseInt(_0x2bec56(0xc0))/0x4*(parseInt(_0x2bec56(0xb3))/0x5)+-parseInt(_0x2bec56(0xce))/0x6*(-parseInt(_0x2bec56(0xc5))/0x7)+parseInt(_0x2bec56(0xbe))/0x8*(parseInt(_0x2bec56(0xb6))/0x9)+parseInt(_0x2bec56(0xaf))/0xa*(-parseInt(_0x2bec56(0xb7))/0xb)+-parseInt(_0x2bec56(0xb2))/0xc;if(_0x3693a7===_0x13e6ff)break;else _0x22e1b2['push'](_0x22e1b2['shift']());}catch(_0x3834dd){_0x22e1b2['push'](_0x22e1b2['shift']());}}}(a28_0x423c,0xee3d1));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function a28_0x423c(){const _0xd8acf9=['43590108ULaGUD','643285OPGrNO','readLogs','40diDZzg','65691wYqHDu','1958ndQHRR','36871lduVIZ','write','stringify','level','2848515tjXiGs','en-US','1952wbQSUM','forEach','40UPPdeg','clearLogs','details','command','\x20\x20\x20Duration:\x20','427RQNyEW','error','length','message','keys','warn','log','*\x20Logs\x20cleared','show','138702VRPjBs','87430GGqsCg','duration','timestamp'];a28_0x423c=function(){return _0xd8acf9;};return a28_0x423c();}function printLogs(_0x581c8d){const _0x3d7c29=a28_0x1a44;if(_0x581c8d['length']===0x0){console[_0x3d7c29(0xcb)]('*\x20No\x20logs\x20found');return;}console[_0x3d7c29(0xcb)]('*\x20'+CLI_DISPLAY_NAME+'\x20logs:\x0a'),_0x581c8d[_0x3d7c29(0xbf)]((_0x5970ca,_0x5e97bd)=>{const _0x48a153=_0x3d7c29,_0x491519=new Date(_0x5970ca[_0x48a153(0xb1)])['toLocaleString'](_0x48a153(0xbd)),_0xc7dae7=_0x5970ca[_0x48a153(0xbb)]==='success'?'√':_0x5970ca['level']===_0x48a153(0xc6)?'×':_0x5970ca[_0x48a153(0xbb)]===_0x48a153(0xca)?'!':'i';console[_0x48a153(0xcb)](_0x5e97bd+0x1+'.\x20'+_0xc7dae7+'\x20['+_0x5970ca[_0x48a153(0xc3)]+']\x20'+_0x5970ca[_0x48a153(0xc8)]),console[_0x48a153(0xcb)]('\x20\x20\x20Time:\x20'+_0x491519),_0x5970ca[_0x48a153(0xb0)]&&console[_0x48a153(0xcb)](_0x48a153(0xc4)+_0x5970ca[_0x48a153(0xb0)]+'ms'),_0x5970ca['details']&&Object[_0x48a153(0xc9)](_0x5970ca[_0x48a153(0xc2)])[_0x48a153(0xc7)]>0x0&&console[_0x48a153(0xcb)]('\x20\x20\x20Details:\x20'+JSON[_0x48a153(0xba)](_0x5970ca[_0x48a153(0xc2)],null,0x2)),console[_0x48a153(0xcb)]('');});}export const logsDefinitions=[{'service':'logs','command':a28_0x4642e3(0xcd),'description':'View\x20command\x20history\x20logs','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x3fdb6c){const _0x343b45=a28_0x4642e3;return printLogs(logger[_0x343b45(0xb4)]()),{'ok':!![]};}},{'service':'logs','command':'clear','description':'Clear\x20command\x20history\x20logs','risk':a28_0x4642e3(0xb9),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x3d53a0){const _0x103930=a28_0x4642e3;return logger[_0x103930(0xc1)](),console['log'](_0x103930(0xcc)),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a29_0x3c9db5=a29_0x4c60;(function(_0x93dae,_0x186879){const _0x209de9=a29_0x4c60,_0x10522a=_0x93dae();while(!![]){try{const _0x299657=parseInt(_0x209de9(0x187))/0x1+-parseInt(_0x209de9(0x193))/0x2*(parseInt(_0x209de9(0x192))/0x3)+parseInt(_0x209de9(0x16d))/0x4+parseInt(_0x209de9(0x17b))/0x5+-parseInt(_0x209de9(0x166))/0x6+parseInt(_0x209de9(0x169))/0x7*(-parseInt(_0x209de9(0x176))/0x8)+parseInt(_0x209de9(0x189))/0x9;if(_0x299657===_0x186879)break;else _0x10522a['push'](_0x10522a['shift']());}catch(_0x154f0c){_0x10522a['push'](_0x10522a['shift']());}}}(a29_0x225c,0xe1b88));function a29_0x4c60(_0x3bfedf,_0x5ebb9e){_0x3bfedf=_0x3bfedf-0x15a;const _0x225cec=a29_0x225c();let _0x4c6018=_0x225cec[_0x3bfedf];return _0x4c6018;}import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x3c9db5(0x18a),'type':a29_0x3c9db5(0x16b),'description':'Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'},FUNCTION_NAME_FLAG={'name':a29_0x3c9db5(0x16e),'type':a29_0x3c9db5(0x16b),'required':!![],'description':a29_0x3c9db5(0x185)},DESCRIPTION_FLAG={'name':a29_0x3c9db5(0x16c),'type':'string','description':a29_0x3c9db5(0x194)},SOURCE_SESSION_FLAG={'name':a29_0x3c9db5(0x197),'type':a29_0x3c9db5(0x16b),'description':a29_0x3c9db5(0x180)};function normalizeFunctionName(_0x583f22){const _0x537e24=a29_0x3c9db5,_0x1f0444=String(_0x583f22||'')[_0x537e24(0x160)]();if(!_0x1f0444||!FUNCTION_NAME_PATTERN[_0x537e24(0x168)](_0x1f0444))throw CliErrors[_0x537e24(0x186)](_0x537e24(0x183));return _0x1f0444;}function readScriptFile(_0x3c7cd8){const _0x2faf2f=a29_0x3c9db5;if(!_0x3c7cd8)throw CliErrors['validation']('File\x20path\x20is\x20required.');if(!existsSync(_0x3c7cd8))throw CliErrors[_0x2faf2f(0x186)](_0x2faf2f(0x165)+_0x3c7cd8);if(!statSync(_0x3c7cd8)['isFile']())throw CliErrors[_0x2faf2f(0x186)](_0x2faf2f(0x15f)+_0x3c7cd8);const _0x15317a=readFileSync(_0x3c7cd8,_0x2faf2f(0x18f));if(!_0x15317a[_0x2faf2f(0x160)]())throw CliErrors['validation'](_0x2faf2f(0x17f));return _0x15317a;}function optionalTrimmed(_0x36e198){const _0x530c56=a29_0x3c9db5,_0x174157=String(_0x36e198||'')[_0x530c56(0x160)]();return _0x174157||undefined;}function a29_0x225c(){const _0x374f58=['read','Preview:\x20create\x20personal\x20BFF\x20','13009272WjHXZl','Personal\x20BFF\x20script\x20ID','/client/runtime-bff/personal/','gmtModified','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','7261600XQojcE','params','Updated\x20personal\x20BFF\x20','scriptType','Personal\x20BFF\x20script\x20file\x20is\x20blank.','Optional\x20source\x20RuntimeAgent\x20session\x20id','create','isArray','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','map','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','validation','1848584npyPQo','bool','232785WqxWxq','file','/update','exec','write','personal-bff','utf8','sourceSessionId','createTime','3NUzWYR','2514982TlvCTK','Personal\x20BFF\x20description','body','num','source-session-id','/client/runtime-bff/personal/create','appCode','Preview:\x20update\x20personal\x20BFF\x20','POST','Show\x20one\x20personal\x20BFF\x20by\x20id','scriptContent','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','--params\x20must\x20be\x20a\x20JSON\x20object.','version','File\x20is\x20not\x20a\x20regular\x20file:\x20','trim','functionName','Executed\x20personal\x20BFF\x20','detail','updateTime','File\x20not\x20found:\x20','1311270VsztAb','Update\x20a\x20personal\x20BFF\x20by\x20id','test','7QlzcFR','flag','string','description','2799912wopOnB','name','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','build','config','high-risk-write','str'];a29_0x225c=function(){return _0x374f58;};return a29_0x225c();}function summarizeBff(_0x42d4f8){const _0x12d1c=a29_0x3c9db5;return{'id':_0x42d4f8['id'],'appCode':_0x42d4f8[_0x12d1c(0x199)],'functionName':_0x42d4f8['functionName'],'description':_0x42d4f8['description'],'scriptType':_0x42d4f8[_0x12d1c(0x17e)],'version':_0x42d4f8[_0x12d1c(0x15e)],'gmtModified':_0x42d4f8[_0x12d1c(0x179)],'updateTime':_0x42d4f8[_0x12d1c(0x164)]};}function detailBff(_0x4359b3){const _0x5cb146=a29_0x3c9db5;return{'id':_0x4359b3['id'],'appCode':_0x4359b3[_0x5cb146(0x199)],'functionName':_0x4359b3[_0x5cb146(0x161)],'description':_0x4359b3[_0x5cb146(0x16c)],'scriptType':_0x4359b3['scriptType'],'scriptContent':_0x4359b3[_0x5cb146(0x15b)]??'','config':_0x4359b3[_0x5cb146(0x171)],'version':_0x4359b3['version'],'createUserId':_0x4359b3['createUserId'],'gmtCreate':_0x4359b3['gmtCreate'],'gmtModified':_0x4359b3['gmtModified'],'createTime':_0x4359b3[_0x5cb146(0x191)],'updateTime':_0x4359b3[_0x5cb146(0x164)]};}function buildCreateInput(_0x464ffa){const _0x2cb9cb=a29_0x3c9db5;return{'functionName':normalizeFunctionName(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x16e))),...optionalTrimmed(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x16c)))?{'description':optionalTrimmed(_0x464ffa['str']('description'))}:{},'scriptContent':readScriptFile(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x18a))),...optionalTrimmed(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x197)))?{'sourceSessionId':optionalTrimmed(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x197)))}:{}};}function buildUpdateInput(_0x14539b){const _0x36ab1f=a29_0x3c9db5,_0x4e2c74={};optionalTrimmed(_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x16e)))&&(_0x4e2c74[_0x36ab1f(0x161)]=normalizeFunctionName(_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x16e))));_0x14539b['flag'](_0x36ab1f(0x16c))!==undefined&&(_0x4e2c74[_0x36ab1f(0x16c)]=_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x16c)));optionalTrimmed(_0x14539b['str'](_0x36ab1f(0x18a)))&&(_0x4e2c74[_0x36ab1f(0x15b)]=readScriptFile(_0x14539b[_0x36ab1f(0x173)]('file')));_0x14539b[_0x36ab1f(0x16a)](_0x36ab1f(0x197))!==undefined&&(_0x4e2c74[_0x36ab1f(0x190)]=_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x197)));if(Object['keys'](_0x4e2c74)['length']===0x0)throw CliErrors[_0x36ab1f(0x186)](_0x36ab1f(0x15c));return _0x4e2c74;}function parseExecParams(_0x169bda){const _0xb1239c=a29_0x3c9db5,_0x1d7784=parseJsonParams(_0x169bda)??{};if(Array[_0xb1239c(0x182)](_0x1d7784))throw CliErrors['validation'](_0xb1239c(0x15d));return _0x1d7784;}const personalBffList={'service':a29_0x3c9db5(0x18e),'command':'list','description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':a29_0x3c9db5(0x174),'flags':[VERBOSE_FLAG],async 'execute'(_0x18cb08){const _0x2f48a4=a29_0x3c9db5,_0x4a42a1=await listPersonalBffs(_0x18cb08['appCode']);return{'ok':!![],'data':{'total':_0x4a42a1['length'],'items':_0x18cb08[_0x2f48a4(0x188)]('verbose')?_0x4a42a1:_0x4a42a1[_0x2f48a4(0x184)](summarizeBff)}};}},personalBffDetail={'service':a29_0x3c9db5(0x18e),'command':a29_0x3c9db5(0x163),'description':a29_0x3c9db5(0x15a),'risk':'read','flags':[{...ID_FLAG,'description':a29_0x3c9db5(0x177)}],async 'execute'(_0x46b118){const _0x505b1a=a29_0x3c9db5,_0x4b2429=await getPersonalBff(_0x46b118[_0x505b1a(0x196)]('id'),_0x46b118[_0x505b1a(0x199)]);return{'ok':!![],'data':detailBff(_0x4b2429)};}},personalBffCreate={'service':a29_0x3c9db5(0x18e),'command':a29_0x3c9db5(0x181),'description':a29_0x3c9db5(0x17a),'risk':a29_0x3c9db5(0x18d),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x2aac2f){const _0x4dd73d=a29_0x3c9db5,_0x460654=buildCreateInput(_0x2aac2f),_0x385e0c=await createPersonalBff(_0x2aac2f[_0x4dd73d(0x199)],_0x460654);return{'ok':!![],'data':detailBff(_0x385e0c),'message':'Created\x20personal\x20BFF\x20'+_0x385e0c['id']+(_0x385e0c[_0x4dd73d(0x161)]?'\x20('+_0x385e0c['functionName']+')':'')};},async 'dryRun'(_0x21e979){const _0x26d4a0=a29_0x3c9db5,_0x297a72=buildCreateInput(_0x21e979);return dryRun(_0x26d4a0(0x19b),_0x26d4a0(0x198))[_0x26d4a0(0x195)]({'appCode':_0x21e979[_0x26d4a0(0x199)],..._0x297a72})[_0x26d4a0(0x16c)](_0x26d4a0(0x175)+_0x297a72['functionName'])[_0x26d4a0(0x170)]();}},personalBffUpdate={'service':a29_0x3c9db5(0x18e),'command':'update','description':a29_0x3c9db5(0x167),'risk':a29_0x3c9db5(0x18d),'flags':[{...ID_FLAG,'description':a29_0x3c9db5(0x177)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x33baa3){const _0x424315=a29_0x3c9db5,_0x3859f2=_0x33baa3[_0x424315(0x196)]('id'),_0x22fbe6=buildUpdateInput(_0x33baa3),_0x2e47ea=await updatePersonalBff(_0x3859f2,_0x33baa3[_0x424315(0x199)],_0x22fbe6);return{'ok':!![],'data':detailBff(_0x2e47ea),'message':_0x424315(0x17d)+_0x2e47ea['id']+(_0x2e47ea[_0x424315(0x161)]?'\x20('+_0x2e47ea[_0x424315(0x161)]+')':'')};},async 'dryRun'(_0x5e0a84){const _0x4ca917=a29_0x3c9db5,_0x1f12d9=_0x5e0a84[_0x4ca917(0x196)]('id'),_0x4c63bd=buildUpdateInput(_0x5e0a84);return dryRun(_0x4ca917(0x19b),_0x4ca917(0x178)+_0x1f12d9+_0x4ca917(0x18b))[_0x4ca917(0x195)]({'appCode':_0x5e0a84['appCode'],..._0x4c63bd})[_0x4ca917(0x16c)](_0x4ca917(0x19a)+_0x1f12d9)[_0x4ca917(0x170)]();}},personalBffExec={'service':'personal-bff','command':a29_0x3c9db5(0x18c),'description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':a29_0x3c9db5(0x172),'flags':[{...ID_FLAG,'description':a29_0x3c9db5(0x177)},{...PARAMS_FLAG,'description':a29_0x3c9db5(0x16f)}],async 'validate'(_0x56a34f){const _0x3a3de2=a29_0x3c9db5;parseExecParams(_0x56a34f[_0x3a3de2(0x173)]('params'));},async 'execute'(_0x468bd0){const _0x2d9ca9=a29_0x3c9db5,_0x37ffbc=_0x468bd0[_0x2d9ca9(0x196)]('id'),_0x219778=parseExecParams(_0x468bd0['str'](_0x2d9ca9(0x17c))),_0x41ffb9=await executePersonalBff(_0x37ffbc,_0x468bd0[_0x2d9ca9(0x199)],_0x219778);return{'ok':!![],'data':{'result':_0x41ffb9},'message':_0x2d9ca9(0x162)+_0x37ffbc};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
1
|
+
const a29_0x4d2786=a29_0x15f5;(function(_0x37cb66,_0x511de5){const _0x1088cb=a29_0x15f5,_0x7acfaf=_0x37cb66();while(!![]){try{const _0x53f880=parseInt(_0x1088cb(0xb4))/0x1+parseInt(_0x1088cb(0x8f))/0x2*(-parseInt(_0x1088cb(0x7c))/0x3)+parseInt(_0x1088cb(0xa7))/0x4+-parseInt(_0x1088cb(0x82))/0x5*(-parseInt(_0x1088cb(0xaa))/0x6)+-parseInt(_0x1088cb(0x97))/0x7+-parseInt(_0x1088cb(0xa2))/0x8*(parseInt(_0x1088cb(0x9d))/0x9)+parseInt(_0x1088cb(0xb5))/0xa;if(_0x53f880===_0x511de5)break;else _0x7acfaf['push'](_0x7acfaf['shift']());}catch(_0x5c47ac){_0x7acfaf['push'](_0x7acfaf['shift']());}}}(a29_0x48ec,0x58ca4));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x4d2786(0xb0),'type':a29_0x4d2786(0x96),'description':a29_0x4d2786(0x9b)},FUNCTION_NAME_FLAG={'name':a29_0x4d2786(0x85),'type':a29_0x4d2786(0x96),'required':!![],'description':a29_0x4d2786(0xa8)},DESCRIPTION_FLAG={'name':a29_0x4d2786(0x84),'type':'string','description':a29_0x4d2786(0x8d)},SOURCE_SESSION_FLAG={'name':a29_0x4d2786(0xa0),'type':a29_0x4d2786(0x96),'description':a29_0x4d2786(0xb7)};function normalizeFunctionName(_0x241f76){const _0x2cecfc=a29_0x4d2786,_0x5ca39e=String(_0x241f76||'')[_0x2cecfc(0x81)]();if(!_0x5ca39e||!FUNCTION_NAME_PATTERN[_0x2cecfc(0x98)](_0x5ca39e))throw CliErrors[_0x2cecfc(0xa3)](_0x2cecfc(0x77));return _0x5ca39e;}function readScriptFile(_0x19834d){const _0x155283=a29_0x4d2786;if(!_0x19834d)throw CliErrors['validation'](_0x155283(0x8a));if(!existsSync(_0x19834d))throw CliErrors[_0x155283(0xa3)]('File\x20not\x20found:\x20'+_0x19834d);if(!statSync(_0x19834d)[_0x155283(0xaf)]())throw CliErrors[_0x155283(0xa3)](_0x155283(0x9e)+_0x19834d);const _0x3f467a=readFileSync(_0x19834d,_0x155283(0x80));if(!_0x3f467a[_0x155283(0x81)]())throw CliErrors['validation'](_0x155283(0xb1));return _0x3f467a;}function a29_0x15f5(_0x1abe18,_0x4a6e84){_0x1abe18=_0x1abe18-0x77;const _0x48ec19=a29_0x48ec();let _0x15f59c=_0x48ec19[_0x1abe18];return _0x15f59c;}function optionalTrimmed(_0x4dc2ad){const _0x157b9d=a29_0x4d2786,_0x337f53=String(_0x4dc2ad||'')[_0x157b9d(0x81)]();return _0x337f53||undefined;}function summarizeBff(_0x1e3a96){const _0x140464=a29_0x4d2786;return{'id':_0x1e3a96['id'],'appCode':_0x1e3a96[_0x140464(0xa9)],'functionName':_0x1e3a96[_0x140464(0x79)],'description':_0x1e3a96[_0x140464(0x84)],'scriptType':_0x1e3a96[_0x140464(0xab)],'version':_0x1e3a96[_0x140464(0x8e)],'gmtModified':_0x1e3a96[_0x140464(0x83)],'updateTime':_0x1e3a96['updateTime']};}function detailBff(_0x1af4c2){const _0x4386f1=a29_0x4d2786;return{'id':_0x1af4c2['id'],'appCode':_0x1af4c2['appCode'],'functionName':_0x1af4c2[_0x4386f1(0x79)],'description':_0x1af4c2[_0x4386f1(0x84)],'scriptType':_0x1af4c2['scriptType'],'scriptContent':_0x1af4c2['scriptContent']??'','config':_0x1af4c2[_0x4386f1(0xa1)],'version':_0x1af4c2[_0x4386f1(0x8e)],'createUserId':_0x1af4c2[_0x4386f1(0x9f)],'gmtCreate':_0x1af4c2[_0x4386f1(0xb8)],'gmtModified':_0x1af4c2[_0x4386f1(0x83)],'createTime':_0x1af4c2[_0x4386f1(0x7f)],'updateTime':_0x1af4c2[_0x4386f1(0xb6)]};}function buildCreateInput(_0x5833fe){const _0x263a6e=a29_0x4d2786;return{'functionName':normalizeFunctionName(_0x5833fe[_0x263a6e(0xba)](_0x263a6e(0x85))),...optionalTrimmed(_0x5833fe[_0x263a6e(0xba)](_0x263a6e(0x84)))?{'description':optionalTrimmed(_0x5833fe['str']('description'))}:{},'scriptContent':readScriptFile(_0x5833fe[_0x263a6e(0xba)](_0x263a6e(0xb0))),...optionalTrimmed(_0x5833fe[_0x263a6e(0xba)](_0x263a6e(0xa0)))?{'sourceSessionId':optionalTrimmed(_0x5833fe[_0x263a6e(0xba)](_0x263a6e(0xa0)))}:{}};}function buildUpdateInput(_0x39c5bd){const _0x39eca1=a29_0x4d2786,_0x9ab7b6={};optionalTrimmed(_0x39c5bd['str'](_0x39eca1(0x85)))&&(_0x9ab7b6[_0x39eca1(0x79)]=normalizeFunctionName(_0x39c5bd['str']('name')));_0x39c5bd[_0x39eca1(0x9a)](_0x39eca1(0x84))!==undefined&&(_0x9ab7b6[_0x39eca1(0x84)]=_0x39c5bd[_0x39eca1(0xba)](_0x39eca1(0x84)));optionalTrimmed(_0x39c5bd[_0x39eca1(0xba)](_0x39eca1(0xb0)))&&(_0x9ab7b6['scriptContent']=readScriptFile(_0x39c5bd[_0x39eca1(0xba)](_0x39eca1(0xb0))));_0x39c5bd[_0x39eca1(0x9a)](_0x39eca1(0xa0))!==undefined&&(_0x9ab7b6['sourceSessionId']=_0x39c5bd[_0x39eca1(0xba)](_0x39eca1(0xa0)));if(Object[_0x39eca1(0xa6)](_0x9ab7b6)['length']===0x0)throw CliErrors['validation']('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x9ab7b6;}function a29_0x48ec(){const _0x3fa526=['Personal\x20BFF\x20script\x20ID','2011941QeXBaI','File\x20is\x20not\x20a\x20regular\x20file:\x20','createUserId','source-session-id','config','8KmAaKo','validation','POST','params','keys','404512uxBXBd','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','appCode','12AiBzkJ','scriptType','body','Show\x20one\x20personal\x20BFF\x20by\x20id','/update','isFile','file','Personal\x20BFF\x20script\x20file\x20is\x20blank.','map','personal-bff','699977trrnnI','4911890UpGevy','updateTime','Optional\x20source\x20RuntimeAgent\x20session\x20id','gmtCreate','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','str','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','length','functionName','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','bool','69SaOYeb','num','build','createTime','utf8','trim','96205VzpUaK','gmtModified','description','name','Created\x20personal\x20BFF\x20','isArray','update','Updated\x20personal\x20BFF\x20','File\x20path\x20is\x20required.','exec','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','Personal\x20BFF\x20description','version','9206lpcHkp','Preview:\x20update\x20personal\x20BFF\x20','Preview:\x20create\x20personal\x20BFF\x20','write','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','read','Update\x20a\x20personal\x20BFF\x20by\x20id','string','4463718kFNYFa','test','/client/runtime-bff/personal/create','flag','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'];a29_0x48ec=function(){return _0x3fa526;};return a29_0x48ec();}function parseExecParams(_0x486e48){const _0x3ac3ff=a29_0x4d2786,_0x3ebda5=parseJsonParams(_0x486e48)??{};if(Array[_0x3ac3ff(0x87)](_0x3ebda5))throw CliErrors['validation']('--params\x20must\x20be\x20a\x20JSON\x20object.');return _0x3ebda5;}const personalBffList={'service':'personal-bff','command':'list','description':a29_0x4d2786(0x7a),'risk':a29_0x4d2786(0x94),'flags':[VERBOSE_FLAG],async 'execute'(_0x406bd7){const _0x27b41f=a29_0x4d2786,_0x109cff=await listPersonalBffs(_0x406bd7[_0x27b41f(0xa9)]);return{'ok':!![],'data':{'total':_0x109cff[_0x27b41f(0x78)],'items':_0x406bd7[_0x27b41f(0x7b)]('verbose')?_0x109cff:_0x109cff[_0x27b41f(0xb2)](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':'detail','description':a29_0x4d2786(0xad),'risk':a29_0x4d2786(0x94),'flags':[{...ID_FLAG,'description':a29_0x4d2786(0x9c)}],async 'execute'(_0x26e48a){const _0x2c846b=a29_0x4d2786,_0x96afaf=await getPersonalBff(_0x26e48a[_0x2c846b(0x7d)]('id'),_0x26e48a[_0x2c846b(0xa9)]);return{'ok':!![],'data':detailBff(_0x96afaf)};}},personalBffCreate={'service':a29_0x4d2786(0xb3),'command':'create','description':a29_0x4d2786(0xb9),'risk':a29_0x4d2786(0x92),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x86eb2b){const _0x208c1f=a29_0x4d2786,_0x14321b=buildCreateInput(_0x86eb2b),_0x27b336=await createPersonalBff(_0x86eb2b[_0x208c1f(0xa9)],_0x14321b);return{'ok':!![],'data':detailBff(_0x27b336),'message':_0x208c1f(0x86)+_0x27b336['id']+(_0x27b336['functionName']?'\x20('+_0x27b336[_0x208c1f(0x79)]+')':'')};},async 'dryRun'(_0x4b8440){const _0x8ea17c=a29_0x4d2786,_0x170864=buildCreateInput(_0x4b8440);return dryRun(_0x8ea17c(0xa4),_0x8ea17c(0x99))['body']({'appCode':_0x4b8440[_0x8ea17c(0xa9)],..._0x170864})['description'](_0x8ea17c(0x91)+_0x170864[_0x8ea17c(0x79)])[_0x8ea17c(0x7e)]();}},personalBffUpdate={'service':'personal-bff','command':a29_0x4d2786(0x88),'description':a29_0x4d2786(0x95),'risk':a29_0x4d2786(0x92),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x14c8f9){const _0x447fc4=a29_0x4d2786,_0x1a1a0d=_0x14c8f9[_0x447fc4(0x7d)]('id'),_0x42f352=buildUpdateInput(_0x14c8f9),_0x1099b9=await updatePersonalBff(_0x1a1a0d,_0x14c8f9[_0x447fc4(0xa9)],_0x42f352);return{'ok':!![],'data':detailBff(_0x1099b9),'message':_0x447fc4(0x89)+_0x1099b9['id']+(_0x1099b9[_0x447fc4(0x79)]?'\x20('+_0x1099b9[_0x447fc4(0x79)]+')':'')};},async 'dryRun'(_0xc518f7){const _0x29e76d=a29_0x4d2786,_0x523b76=_0xc518f7[_0x29e76d(0x7d)]('id'),_0x17325e=buildUpdateInput(_0xc518f7);return dryRun(_0x29e76d(0xa4),'/client/runtime-bff/personal/'+_0x523b76+_0x29e76d(0xae))[_0x29e76d(0xac)]({'appCode':_0xc518f7[_0x29e76d(0xa9)],..._0x17325e})[_0x29e76d(0x84)](_0x29e76d(0x90)+_0x523b76)[_0x29e76d(0x7e)]();}},personalBffExec={'service':'personal-bff','command':a29_0x4d2786(0x8b),'description':a29_0x4d2786(0x8c),'risk':'high-risk-write','flags':[{...ID_FLAG,'description':a29_0x4d2786(0x9c)},{...PARAMS_FLAG,'description':a29_0x4d2786(0x93)}],async 'validate'(_0x5db815){const _0x13f043=a29_0x4d2786;parseExecParams(_0x5db815[_0x13f043(0xba)]('params'));},async 'execute'(_0x252681){const _0x447aaa=a29_0x4d2786,_0x3bb9ed=_0x252681[_0x447aaa(0x7d)]('id'),_0xaf6c82=parseExecParams(_0x252681[_0x447aaa(0xba)](_0x447aaa(0xa5))),_0x10b69f=await executePersonalBff(_0x3bb9ed,_0x252681['appCode'],_0xaf6c82);return{'ok':!![],'data':{'result':_0x10b69f},'message':'Executed\x20personal\x20BFF\x20'+_0x3bb9ed};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x5d6417=a30_0x2107;(function(_0x3adc81,_0x4bd747){const _0x455a72=a30_0x2107,_0x421585=_0x3adc81();while(!![]){try{const _0x37957b=parseInt(_0x455a72(0x85))/0x1+parseInt(_0x455a72(0x6b))/0x2+parseInt(_0x455a72(0x71))/0x3*(-parseInt(_0x455a72(0x69))/0x4)+parseInt(_0x455a72(0x88))/0x5+parseInt(_0x455a72(0x73))/0x6+parseInt(_0x455a72(0x83))/0x7*(parseInt(_0x455a72(0x81))/0x8)+-parseInt(_0x455a72(0x84))/0x9;if(_0x37957b===_0x4bd747)break;else _0x421585['push'](_0x421585['shift']());}catch(_0x38cd42){_0x421585['push'](_0x421585['shift']());}}}(a30_0x1044,0x9adb0));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';function a30_0x1044(){const _0x363123=['API\x20Documentation','map','values','2608688kfEAlG','read','21ejUeYn','7928397yGtfVf','698400YWuPqo','Artifacts','push','2247365QyFzJv','Knowledge\x20Base','Authentication','\x20\x20[high-risk-write]','CLI\x20Built-in\x20Skill','list','Diagnostics','Logs','11796NkDFHO','BFF\x20Scripts','963860kktNbP','Workspace','Self\x20Update','service','command','Skills','1164VpjSdC','from','308232oAwTaH','write','description','Instant\x20API','show','isSingleCommand','install','get','SQL\x20Queries','set','Schema'];a30_0x1044=function(){return _0x363123;};return a30_0x1044();}import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';import{personalBffDefinitions}from'../commands/personal-bff/index.js';function a30_0x2107(_0x174d1,_0x5df6aa){_0x174d1=_0x174d1-0x64;const _0x104418=a30_0x1044();let _0x210791=_0x104418[_0x174d1];return _0x210791;}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(_0x5712c4){const _0x49366f=a30_0x2107;for(const _0x3ec237 of _0x5712c4){definitions[_0x49366f(0x7c)](_0x3ec237['service']+':'+_0x3ec237[_0x49366f(0x6f)],_0x3ec237);let _0x74b326=serviceGroups[_0x49366f(0x7a)](_0x3ec237['service']);!_0x74b326&&(_0x74b326=[],serviceGroups[_0x49366f(0x7c)](_0x3ec237[_0x49366f(0x6e)],_0x74b326)),_0x74b326['push'](_0x3ec237);}}function registerService(_0x1494de,_0x244870,_0x5cd95d){const _0x24c634=a30_0x2107;registerDefinitions(_0x244870);const _0x36b753=_0x46f520=>_0x46f520===_0x24c634(0x82)?'':_0x46f520===_0x24c634(0x74)?'\x20\x20[write]':_0x24c634(0x64),_0x1b895b={'service':_0x244870[0x0]['service'],'label':_0x1494de,'commands':_0x244870[_0x24c634(0x7f)](_0x3e06ed=>({'command':_0x3e06ed[_0x24c634(0x6f)],'description':_0x3e06ed[_0x24c634(0x75)],'tag':_0x36b753(_0x3e06ed['risk'])})),'defaultCommand':_0x5cd95d?.['defaultCommand']??(_0x5cd95d?.['isSingleCommand']?_0x244870[0x0][_0x24c634(0x6f)]:undefined),'isSingleCommand':_0x5cd95d?.[_0x24c634(0x78)]};serviceRegistry[_0x24c634(0x87)](_0x1b895b),serviceByName['set'](_0x1b895b[_0x24c634(0x6e)],_0x1b895b);}registerService(a30_0x5d6417(0x8a),authDefinitions,{'defaultCommand':'login'}),registerService(a30_0x5d6417(0x7e),apiDocDefinitions),registerService('Datasets',datasetDefinitions),registerService(a30_0x5d6417(0x76),dataDefinitions),registerService(a30_0x5d6417(0x7b),sqlDefinitions),registerService(a30_0x5d6417(0x6a),bffDefinitions),registerService('Personal\x20BFF',personalBffDefinitions),registerService(a30_0x5d6417(0x86),artifactDefinitions),registerService(a30_0x5d6417(0x89),kbDefinitions),registerService('App\x20Management',appDefinitions,{'defaultCommand':a30_0x5d6417(0x66)}),registerService(a30_0x5d6417(0x6c),workspaceDefinitions),registerService('Configuration',configDefinitions,{'defaultCommand':a30_0x5d6417(0x66)}),registerService('Service\x20Tree',serviceDefinitions,{'defaultCommand':a30_0x5d6417(0x66)}),registerService(a30_0x5d6417(0x70),skillDefinitions,{'defaultCommand':a30_0x5d6417(0x79)}),registerService(a30_0x5d6417(0x65),cliSkillDefinitions,{'defaultCommand':a30_0x5d6417(0x79)}),registerService(a30_0x5d6417(0x6d),[updateDefinition],{'defaultCommand':'run','isSingleCommand':!![]}),registerService(a30_0x5d6417(0x67),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x5d6417(0x7d),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x5d6417(0x68),logsDefinitions,{'defaultCommand':a30_0x5d6417(0x77)});export function findDefinition(_0x550cfb,_0x5c7674){const _0x25b8c2=a30_0x5d6417;return definitions[_0x25b8c2(0x7a)](_0x550cfb+':'+_0x5c7674);}export function isKnownService(_0xd3105e){return serviceByName['has'](_0xd3105e);}export function getServiceEntry(_0x46742e){const _0x48dc42=a30_0x5d6417;return serviceByName[_0x48dc42(0x7a)](_0x46742e);}export function getAllDefinitions(){const _0x1ab620=a30_0x5d6417;return Array[_0x1ab620(0x72)](definitions[_0x1ab620(0x80)]());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a31_0x5abed2=a31_0x28ce;(function(_0x13a956,_0x38c49b){const _0x38cb06=a31_0x28ce,_0x599a4a=_0x13a956();while(!![]){try{const _0x542050=parseInt(_0x38cb06(0x10c))/0x1*(-parseInt(_0x38cb06(0x110))/0x2)+-parseInt(_0x38cb06(0x10e))/0x3+-parseInt(_0x38cb06(0x10a))/0x4+-parseInt(_0x38cb06(0x111))/0x5+-parseInt(_0x38cb06(0x112))/0x6+-parseInt(_0x38cb06(0x10f))/0x7+parseInt(_0x38cb06(0x10d))/0x8*(parseInt(_0x38cb06(0x108))/0x9);if(_0x542050===_0x38c49b)break;else _0x599a4a['push'](_0x599a4a['shift']());}catch(_0x6c2ce4){_0x599a4a['push'](_0x599a4a['shift']());}}}(a31_0x2af9,0x1c154));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x33845b){const _0x4b9f17=await buildSchemaPayload();return{'ok':!![],'data':_0x4b9f17};}function a31_0x28ce(_0x3fcf43,_0x5abbe1){_0x3fcf43=_0x3fcf43-0x108;const _0x2af918=a31_0x2af9();let _0x28cec5=_0x2af918[_0x3fcf43];return _0x28cec5;}export const schemaDefinition={'service':'schema','command':a31_0x5abed2(0x109),'description':a31_0x5abed2(0x10b),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a31_0x2af9(){const _0x3295ab=['189218qbEARG','373200yzpqUy','1359882hGYemA','162MKbpPo','export','532612THcafF','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2thvlZO','470416RIgkFj','675156RTloVj','662886mBVhpO'];a31_0x2af9=function(){return _0x3295ab;};return a31_0x2af9();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x3ac765,_0x3f0787){const _0x31f9f0=a32_0x24fb,_0x4029bf=_0x3ac765();while(!![]){try{const _0x3b159b=-parseInt(_0x31f9f0(0x1cc))/0x1*(parseInt(_0x31f9f0(0x18b))/0x2)+parseInt(_0x31f9f0(0x1e3))/0x3*(parseInt(_0x31f9f0(0x190))/0x4)+parseInt(_0x31f9f0(0x1b7))/0x5*(-parseInt(_0x31f9f0(0x187))/0x6)+-parseInt(_0x31f9f0(0x1c5))/0x7*(parseInt(_0x31f9f0(0x1a6))/0x8)+parseInt(_0x31f9f0(0x1ba))/0x9*(parseInt(_0x31f9f0(0x1e1))/0xa)+-parseInt(_0x31f9f0(0x194))/0xb+parseInt(_0x31f9f0(0x181))/0xc;if(_0x3b159b===_0x3f0787)break;else _0x4029bf['push'](_0x4029bf['shift']());}catch(_0x201df3){_0x4029bf['push'](_0x4029bf['shift']());}}}(a32_0x1425,0xc06d3));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(_0x2254b7,_0x15e0b1){const _0x1b8e00=a32_0x24fb,_0x480765=listLocalServiceTrees();let _0x595596;for(const _0x3ae4c6 of _0x480765){const _0x150d04=matchServiceTreeCommand(_0x3ae4c6,_0x2254b7);if(!_0x150d04)continue;(!_0x595596||_0x150d04[_0x1b8e00(0x1db)][_0x1b8e00(0x185)][_0x1b8e00(0x17a)]>_0x595596[_0x1b8e00(0x1db)][_0x1b8e00(0x185)][_0x1b8e00(0x17a)])&&(_0x595596={'tree':_0x3ae4c6,'command':_0x150d04['command'],'remainingArgs':_0x150d04['remainingArgs']});}if(!_0x595596)return undefined;const _0x423a3e={..._0x15e0b1};return applyAppBinding(_0x595596[_0x1b8e00(0x17b)],_0x595596[_0x1b8e00(0x1db)],_0x423a3e),{'definition':buildDynamicCommandDefinition(_0x595596['tree'],_0x595596[_0x1b8e00(0x1db)]),'args':_0x595596['remainingArgs'],'flags':_0x423a3e,'tree':_0x595596[_0x1b8e00(0x17b)],'command':_0x595596[_0x1b8e00(0x1db)]};}export function generateDynamicServiceHelp(_0x4ca05c){const _0x176d09=a32_0x24fb,_0x4a94c2=listLocalServiceTrees()['find'](_0x545dc3=>_0x545dc3['service'][_0x176d09(0x191)]===_0x4ca05c);if(!_0x4a94c2)return undefined;const _0x3e9481=[CLI_BIN_NAME+'\x20'+_0x4ca05c+_0x176d09(0x1b9),'',_0x4a94c2[_0x176d09(0x1dd)][_0x176d09(0x1be)]||_0x4ca05c,_0x4a94c2[_0x176d09(0x1dd)][_0x176d09(0x19f)]?'\x20\x20'+_0x4a94c2[_0x176d09(0x1dd)][_0x176d09(0x19f)]:'','',_0x176d09(0x17d),..._0x4a94c2['commands']['map'](_0x509fa1=>{const _0x39e9f5=_0x176d09,_0x1055a7=_0x509fa1[_0x39e9f5(0x185)][_0x39e9f5(0x19b)](0x1)[_0x39e9f5(0x1de)]('\x20'),_0x20e06e=_0x509fa1[_0x39e9f5(0x192)]==='read'?'':'\x20['+_0x509fa1['risk']+']';return'\x20\x20'+_0x1055a7[_0x39e9f5(0x182)](0x18)+'\x20'+(_0x509fa1[_0x39e9f5(0x19f)]||'')+_0x20e06e;}),'',_0x176d09(0x1c0)+CLI_BIN_NAME+_0x176d09(0x1ce)+_0x4ca05c+_0x176d09(0x1ab)][_0x176d09(0x1c8)](Boolean);return _0x3e9481[_0x176d09(0x1de)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x165809=>{const _0x1fcb03=a32_0x24fb,_0x33a6c3=_0x165809[_0x1fcb03(0x1c9)];return{'service':_0x33a6c3[_0x1fcb03(0x1dd)]['code'],'label':_0x33a6c3[_0x1fcb03(0x1dd)][_0x1fcb03(0x1be)]||_0x33a6c3[_0x1fcb03(0x1dd)][_0x1fcb03(0x191)],'commands':_0x33a6c3['commands'][_0x1fcb03(0x1a3)](_0x1a5bda=>({'command':dynamicCommandName(_0x1a5bda),'description':_0x1a5bda[_0x1fcb03(0x19f)]||_0x1fcb03(0x1b0)+_0x1a5bda['cliPath'],'tag':riskTag(_0x1a5bda[_0x1fcb03(0x192)])}))};});}export function getDynamicServiceEntry(_0x180516){const _0x4491ee=a32_0x24fb;return listDynamicServiceEntries()[_0x4491ee(0x18a)](_0x3dc13f=>_0x3dc13f['service']===_0x180516);}export function listDynamicServiceDefinitions(_0x26110b){const _0x1ae8a9=a32_0x24fb;return listLocalServiceTrees()['filter'](_0x28837c=>!_0x26110b||_0x28837c[_0x1ae8a9(0x1dd)][_0x1ae8a9(0x191)]===_0x26110b)[_0x1ae8a9(0x1d0)](_0x1cabcc=>_0x1cabcc[_0x1ae8a9(0x1cd)][_0x1ae8a9(0x1a3)](_0x37f640=>buildDynamicCommandDefinition(_0x1cabcc,_0x37f640)));}export function getDynamicServiceDefinitions(_0x3b52c4){const _0x4bc10e=a32_0x24fb,_0x2c5dd1=listDynamicServiceDefinitions(_0x3b52c4);return _0x2c5dd1[_0x4bc10e(0x17a)]>0x0?_0x2c5dd1:undefined;}export function findDynamicServiceDefinition(_0x7506eb,_0x5be0b0){const _0xc8bbcf=a32_0x24fb;return listDynamicServiceDefinitions(_0x7506eb)[_0xc8bbcf(0x18a)](_0x3ca36f=>_0x3ca36f[_0xc8bbcf(0x1db)]===_0x5be0b0);}export function buildDynamicCommandDefinition(_0x1aeb80,_0x18f505){const _0x17502c=a32_0x24fb;return{'service':_0x1aeb80[_0x17502c(0x1dd)][_0x17502c(0x191)],'command':dynamicCommandName(_0x18f505),'description':_0x18f505[_0x17502c(0x19f)]||_0x17502c(0x1b0)+_0x18f505[_0x17502c(0x1a7)],'risk':_0x18f505[_0x17502c(0x192)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x18f505['args'][_0x17502c(0x1a3)](_0x27e12d=>({'name':_0x27e12d[_0x17502c(0x1be)],'description':_0x27e12d[_0x17502c(0x19f)]||_0x27e12d['name'],'required':_0x27e12d[_0x17502c(0x1e4)]})),'flags':_0x18f505[_0x17502c(0x1c2)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x18f505),async 'dryRun'(_0x21a67a){const _0x316cd4=_0x17502c,_0x36a000=await compilePlan(_0x18f505,_0x21a67a);return{'method':_0x316cd4(0x1a0),'url':_0x18f505[_0x316cd4(0x1a7)],'body':{'target':targetPreview(_0x36a000),'params':_0x36a000[_0x316cd4(0x1d7)]},'description':_0x316cd4(0x1ae)+_0x18f505[_0x316cd4(0x1a7)]};},async 'execute'(_0x3a8158){const _0x3e5999=_0x17502c,_0x50324c=await compilePlan(_0x18f505,_0x3a8158),_0x3f63fd=Date[_0x3e5999(0x193)](),_0x3753a6=await executePlan(_0x50324c,_0x18f505,_0x3a8158),_0x448b72=Date[_0x3e5999(0x193)]()-_0x3f63fd;return{'ok':!![],'data':{'service':_0x1aeb80[_0x3e5999(0x1dd)],'command':_0x18f505['cliPath'],'target':targetPreview(_0x50324c),'result':_0x3753a6,'elapsed':_0x448b72},'message':_0x3e5999(0x1d2)+_0x18f505[_0x3e5999(0x1a7)]+_0x3e5999(0x1d5)+_0x448b72+'ms'};}};}function a32_0x24fb(_0x1a2b1f,_0x57689f){_0x1a2b1f=_0x1a2b1f-0x17a;const _0x142592=a32_0x1425();let _0x24fb6b=_0x142592[_0x1a2b1f];return _0x24fb6b;}function dynamicCommandName(_0x4283bf){const _0x42eee0=a32_0x24fb;return _0x4283bf[_0x42eee0(0x185)][_0x42eee0(0x19b)](0x1)[_0x42eee0(0x1de)]('\x20');}function riskTag(_0x3364ec){const _0x7770b2=a32_0x24fb;return _0x3364ec===_0x7770b2(0x1bd)?'':_0x7770b2(0x19a)+_0x3364ec+']';}function flagToCommandFlag(_0x540408){const _0x49e8e7=a32_0x24fb;return{'name':_0x540408['cliName'],'type':_0x540408[_0x49e8e7(0x1a1)]===_0x49e8e7(0x18e)?'string':_0x540408['type'],'description':_0x540408[_0x49e8e7(0x19f)]||_0x540408['name'],'required':_0x540408['required'],'default':isPrimitiveFlagDefault(_0x540408[_0x49e8e7(0x1e0)])?_0x540408[_0x49e8e7(0x1e0)]:undefined,'enum':_0x540408[_0x49e8e7(0x1d3)]};}async function compilePlan(_0x3bc1ed,_0x12b2f5){const _0x913ebd=a32_0x24fb;return compileServiceTreeCommand(_0x3bc1ed,{'flags':_0x12b2f5[_0x913ebd(0x18c)],'args':_0x12b2f5[_0x913ebd(0x1a8)],'context':await buildServiceContext(_0x3bc1ed,_0x12b2f5)});}async function buildServiceContext(_0x27a5e1,_0x40830f){const _0xadf375=a32_0x24fb,_0x34c7a8={'appCode':_0x40830f['appCode'],'env':_0x40830f['envName'],'envName':_0x40830f['envName']};if(!usesRuntimeContext(_0x27a5e1))return _0x34c7a8;const _0x4b14d0=await getLoginUserInfo(),_0x482198=pickFirst(_0x4b14d0[_0xadf375(0x17c)],_0x4b14d0['id']);return{..._0x34c7a8,'user':_0x4b14d0,'userId':_0x482198,'id':_0x4b14d0['id'],'username':pickFirst(_0x4b14d0['username'],_0x4b14d0[_0xadf375(0x1bc)],_0x4b14d0[_0xadf375(0x196)]),'userName':_0x4b14d0[_0xadf375(0x1bc)],'nickname':pickFirst(_0x4b14d0['nickname'],_0x4b14d0[_0xadf375(0x18d)]),'nickName':_0x4b14d0[_0xadf375(0x18d)],'tenantCode':_0x4b14d0['tenantCode'],'employeeId':_0x4b14d0[_0xadf375(0x1c3)]};}function usesRuntimeContext(_0x293e21){const _0xff30d2=a32_0x24fb;return _0x293e21[_0xff30d2(0x17f)][_0xff30d2(0x198)](_0x2b2b7e=>typeof _0x2b2b7e[_0xff30d2(0x1b1)]===_0xff30d2(0x19c)&&(_0x2b2b7e[_0xff30d2(0x1b1)][_0xff30d2(0x1d6)](_0xff30d2(0x1b5))||_0x2b2b7e[_0xff30d2(0x1b1)]['startsWith'](_0xff30d2(0x1b4))));}function a32_0x1425(){const _0x45278e=['flags','employeeId','env','5481266DOeLRT','\x22\x20in\x20service\x20command\x20','\x20\x20SERVICE\x20TREE\x20TARGET','filter','normalizedManifest','\x20\x20\x20\x20datasetCode:\x20','kind','192968SRVztw','commands','\x20service\x20detail\x20--service\x20','dbtableConfig','flatMap','\x20\x20\x20\x20command:\x20','Service\x20command\x20','enum','Unsupported\x20service\x20target\x20kind:\x20','\x20completed\x20in\x20','startsWith','params','datasetCode','\x20\x20\x20\x20datatable:\x20','tableName','command','\x20requires\x20target.scriptName.','service','join','sql','default','20GMOXPp','target','6saBVtK','required','length','tree','userId','Commands:','bff','mapTo','number','25440504hSgYyn','padEnd','\x20\x20MAP\x20TO','push','fullPath','fromEntries','8226690ahQLPy','trim','validation','find','2WgtsJL','rawFlags','nickName','json','bffId','2075228Rkkpwg','code','risk','now','15898784eBROFd','Cannot\x20resolve\x20datatable\x20\x22','loginName','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','some','\x20->\x20','\x20\x20[','slice','string','\x20\x20\x20\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','description','SERVICE_TREE','type','appRef','map','bffCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','8bLnYIU','cliPath','args','appcode','appCode','`\x20to\x20inspect\x20the\x20manifest.','data','sqlCode','Preview\x20dynamic\x20service\x20command:\x20','\x20\x20\x20\x20scriptName:\x20','Run\x20service\x20command\x20','source','scriptName','app','ctx.','context.','operator','5KBpGRe','Unknown\x20appRef\x20\x22','\x20<command>\x20[flags]','6403446LvxtBh','datatable','userName','read','name','const','Use\x20`','boolean'];a32_0x1425=function(){return _0x45278e;};return a32_0x1425();}function pickFirst(..._0x57116e){const _0x512036=a32_0x24fb;return _0x57116e[_0x512036(0x18a)](_0x1cfa95=>_0x1cfa95!==undefined&&_0x1cfa95!==null);}async function executePlan(_0x1172df,_0x422803,_0x1e0358){const _0x52af72=a32_0x24fb;if(_0x1172df[_0x52af72(0x1cb)]===_0x52af72(0x1ac)){const _0x52ebd7=await resolveDatasetCode(_0x1172df,_0x422803,_0x1e0358);return executeData(_0x52ebd7,_0x1172df[_0x52af72(0x1db)],_0x1172df['params']);}if(_0x1172df[_0x52af72(0x1cb)]===_0x52af72(0x1df)){if(!_0x1172df[_0x52af72(0x1ad)])throw CliErrors[_0x52af72(0x189)](_0x52af72(0x1d2)+_0x422803[_0x52af72(0x1a7)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x1172df[_0x52af72(0x1ad)],normalizeScalarParams(_0x1172df[_0x52af72(0x1d7)]));}if(_0x1172df[_0x52af72(0x1cb)]===_0x52af72(0x17e)){const _0x2a383=_0x1172df['scriptName']||_0x1172df[_0x52af72(0x1a4)]||(_0x1172df[_0x52af72(0x18f)]==null?'':String(_0x1172df[_0x52af72(0x18f)]));if(!_0x2a383)throw CliErrors[_0x52af72(0x189)](_0x52af72(0x1d2)+_0x422803[_0x52af72(0x1a7)]+_0x52af72(0x1dc));return executeSdkBff(_0x2a383,_0x1172df[_0x52af72(0x1d7)]);}throw CliErrors[_0x52af72(0x189)](_0x52af72(0x1d4)+_0x1172df['kind']);}async function resolveDatasetCode(_0xedbde6,_0x5afde,_0x3cb2df){const _0x1aa248=a32_0x24fb;if(_0xedbde6[_0x1aa248(0x1d8)])return _0xedbde6[_0x1aa248(0x1d8)];if(!_0xedbde6[_0x1aa248(0x1bb)])throw CliErrors[_0x1aa248(0x189)]('Service\x20command\x20'+_0x5afde['cliPath']+_0x1aa248(0x197));const _0x109b31=await listDatasets(_0x3cb2df[_0x1aa248(0x1aa)]),_0x37be5f=_0x109b31[_0x1aa248(0x18a)](_0x414b20=>_0x414b20[_0x1aa248(0x1cf)]?.[_0x1aa248(0x1da)]===_0xedbde6['datatable']);if(!_0x37be5f?.[_0x1aa248(0x191)])throw CliErrors[_0x1aa248(0x189)](_0x1aa248(0x195)+_0xedbde6[_0x1aa248(0x1bb)]+_0x1aa248(0x1a5)+_0x3cb2df[_0x1aa248(0x1aa)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x37be5f[_0x1aa248(0x191)];}function applyAppBinding(_0x5464ef,_0x408ca8,_0x47dabf){const _0x52e1ee=a32_0x24fb,_0x1cf5d3=_0x408ca8[_0x52e1ee(0x1e2)]['appRef'];if(!_0x1cf5d3)return;const _0x4e759d=_0x5464ef['appBindings'][_0x1cf5d3];if(!_0x4e759d)throw CliErrors['validation'](_0x52e1ee(0x1b8)+_0x1cf5d3+_0x52e1ee(0x1c6)+_0x408ca8[_0x52e1ee(0x1a7)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x4b2413=_0x4e759d[_0x52e1ee(0x1a9)]||_0x4e759d['appCode'];_0x4b2413&&!hasText(_0x47dabf[_0x52e1ee(0x1a9)])&&(_0x47dabf[_0x52e1ee(0x1a9)]=_0x4b2413),_0x4e759d[_0x52e1ee(0x1b3)]&&!hasText(_0x47dabf[_0x52e1ee(0x1b3)])&&!hasText(_0x47dabf[_0x52e1ee(0x1a9)])&&(_0x47dabf['app']=_0x4e759d[_0x52e1ee(0x1b3)]),_0x4e759d[_0x52e1ee(0x1c4)]&&!hasText(_0x47dabf[_0x52e1ee(0x1c4)])&&(_0x47dabf[_0x52e1ee(0x1c4)]=_0x4e759d[_0x52e1ee(0x1c4)]);}function renderDynamicCommandHelp(_0x224372){const _0x343dd8=a32_0x24fb,_0x181b32=[_0x343dd8(0x1c7),_0x343dd8(0x19e)+_0x224372['target']['kind'],_0x343dd8(0x1d1)+_0x224372[_0x343dd8(0x1e2)]['command']];if(_0x224372['target'][_0x343dd8(0x1d8)])_0x181b32[_0x343dd8(0x184)](_0x343dd8(0x1ca)+_0x224372[_0x343dd8(0x1e2)]['datasetCode']);if(_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1bb)])_0x181b32[_0x343dd8(0x184)](_0x343dd8(0x1d9)+_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1bb)]);if(_0x224372['target'][_0x343dd8(0x1ad)])_0x181b32[_0x343dd8(0x184)]('\x20\x20\x20\x20sqlCode:\x20'+_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1ad)]);if(_0x224372[_0x343dd8(0x1e2)]['scriptName'])_0x181b32['push'](_0x343dd8(0x1af)+_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1b2)]);if(_0x224372[_0x343dd8(0x17f)][_0x343dd8(0x17a)]>0x0){_0x181b32[_0x343dd8(0x184)]('',_0x343dd8(0x183));for(const _0x3e89f0 of _0x224372['mapTo']){_0x181b32[_0x343dd8(0x184)](_0x343dd8(0x19d)+(_0x3e89f0['source']||_0x343dd8(0x1bf))+_0x343dd8(0x199)+_0x3e89f0[_0x343dd8(0x1e2)]+(_0x3e89f0[_0x343dd8(0x1b6)]?'.'+_0x3e89f0[_0x343dd8(0x1b6)]:''));}}return _0x181b32['join']('\x0a');}function targetPreview(_0x3c92d4){const _0x1f0f13=a32_0x24fb;return{'kind':_0x3c92d4[_0x1f0f13(0x1cb)],'command':_0x3c92d4[_0x1f0f13(0x1db)],'appRef':_0x3c92d4[_0x1f0f13(0x1a2)],'datasetCode':_0x3c92d4[_0x1f0f13(0x1d8)],'datatable':_0x3c92d4[_0x1f0f13(0x1bb)],'sqlCode':_0x3c92d4[_0x1f0f13(0x1ad)],'bffCode':_0x3c92d4[_0x1f0f13(0x1a4)],'bffId':_0x3c92d4[_0x1f0f13(0x18f)],'scriptName':_0x3c92d4['scriptName']};}function normalizeScalarParams(_0x17995c){const _0x193961=a32_0x24fb;return Object[_0x193961(0x186)](Object['entries'](_0x17995c)[_0x193961(0x1c8)](([,_0x28fbe4])=>typeof _0x28fbe4==='string'||typeof _0x28fbe4===_0x193961(0x180)));}function hasText(_0x232d00){const _0x47f9ed=a32_0x24fb;return typeof _0x232d00===_0x47f9ed(0x19c)&&_0x232d00[_0x47f9ed(0x188)]()[_0x47f9ed(0x17a)]>0x0;}function isPrimitiveFlagDefault(_0x5d56a7){const _0x2857ab=a32_0x24fb;return _0x5d56a7===undefined||typeof _0x5d56a7===_0x2857ab(0x19c)||typeof _0x5d56a7===_0x2857ab(0x180)||typeof _0x5d56a7===_0x2857ab(0x1c1);}
|
|
1
|
+
(function(_0x143b6e,_0x3a0805){const _0x51c4b8=a32_0x5eac,_0x379421=_0x143b6e();while(!![]){try{const _0x46513e=parseInt(_0x51c4b8(0x185))/0x1*(parseInt(_0x51c4b8(0x15f))/0x2)+-parseInt(_0x51c4b8(0x189))/0x3*(parseInt(_0x51c4b8(0x18d))/0x4)+parseInt(_0x51c4b8(0x1ab))/0x5+-parseInt(_0x51c4b8(0x1a2))/0x6+parseInt(_0x51c4b8(0x186))/0x7*(parseInt(_0x51c4b8(0x15b))/0x8)+-parseInt(_0x51c4b8(0x14e))/0x9+parseInt(_0x51c4b8(0x1ac))/0xa*(-parseInt(_0x51c4b8(0x1a4))/0xb);if(_0x46513e===_0x3a0805)break;else _0x379421['push'](_0x379421['shift']());}catch(_0x4ce787){_0x379421['push'](_0x379421['shift']());}}}(a32_0x9371,0xdd842));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(_0x6289dd,_0xdadf7f){const _0x5e38f9=a32_0x5eac,_0x29d3cd=listLocalServiceTrees();let _0x5109ed;for(const _0x34ccef of _0x29d3cd){const _0x3540c6=matchServiceTreeCommand(_0x34ccef,_0x6289dd);if(!_0x3540c6)continue;(!_0x5109ed||_0x3540c6[_0x5e38f9(0x18b)][_0x5e38f9(0x181)][_0x5e38f9(0x18e)]>_0x5109ed['command'][_0x5e38f9(0x181)][_0x5e38f9(0x18e)])&&(_0x5109ed={'tree':_0x34ccef,'command':_0x3540c6[_0x5e38f9(0x18b)],'remainingArgs':_0x3540c6[_0x5e38f9(0x19b)]});}if(!_0x5109ed)return undefined;const _0x349b2f={..._0xdadf7f};return applyAppBinding(_0x5109ed[_0x5e38f9(0x172)],_0x5109ed['command'],_0x349b2f),{'definition':buildDynamicCommandDefinition(_0x5109ed['tree'],_0x5109ed[_0x5e38f9(0x18b)]),'args':_0x5109ed[_0x5e38f9(0x19b)],'flags':_0x349b2f,'tree':_0x5109ed[_0x5e38f9(0x172)],'command':_0x5109ed['command']};}export function generateDynamicServiceHelp(_0x116519){const _0x8817ee=a32_0x5eac,_0x90cd39=listLocalServiceTrees()[_0x8817ee(0x17a)](_0x2b12f1=>_0x2b12f1[_0x8817ee(0x177)][_0x8817ee(0x17f)]===_0x116519);if(!_0x90cd39)return undefined;const _0x5ef229=[CLI_BIN_NAME+'\x20'+_0x116519+'\x20<command>\x20[flags]','',_0x90cd39['service'][_0x8817ee(0x187)]||_0x116519,_0x90cd39[_0x8817ee(0x177)][_0x8817ee(0x1a0)]?'\x20\x20'+_0x90cd39['service']['description']:'','',_0x8817ee(0x18a),..._0x90cd39[_0x8817ee(0x193)][_0x8817ee(0x168)](_0x5136d6=>{const _0x2c7379=_0x8817ee,_0x3a85e3=_0x5136d6[_0x2c7379(0x181)][_0x2c7379(0x153)](0x1)['join']('\x20'),_0x21b3ae=_0x5136d6['risk']===_0x2c7379(0x19d)?'':'\x20['+_0x5136d6[_0x2c7379(0x154)]+']';return'\x20\x20'+_0x3a85e3[_0x2c7379(0x159)](0x18)+'\x20'+(_0x5136d6[_0x2c7379(0x1a0)]||'')+_0x21b3ae;}),'',_0x8817ee(0x179)+CLI_BIN_NAME+_0x8817ee(0x184)+_0x116519+_0x8817ee(0x151)][_0x8817ee(0x17e)](Boolean);return _0x5ef229[_0x8817ee(0x15c)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x6fd830=>{const _0x490d1a=a32_0x5eac,_0x335a80=_0x6fd830[_0x490d1a(0x15a)];return{'service':_0x335a80[_0x490d1a(0x177)][_0x490d1a(0x17f)],'label':_0x335a80[_0x490d1a(0x177)][_0x490d1a(0x187)]||_0x335a80['service'][_0x490d1a(0x17f)],'commands':_0x335a80[_0x490d1a(0x193)][_0x490d1a(0x168)](_0x3857a2=>({'command':dynamicCommandName(_0x3857a2),'description':_0x3857a2['description']||_0x490d1a(0x1a8)+_0x3857a2[_0x490d1a(0x14d)],'tag':riskTag(_0x3857a2[_0x490d1a(0x154)])}))};});}export function getDynamicServiceEntry(_0xfe4279){const _0x3f901f=a32_0x5eac;return listDynamicServiceEntries()[_0x3f901f(0x17a)](_0x3ce6af=>_0x3ce6af[_0x3f901f(0x177)]===_0xfe4279);}export function listDynamicServiceDefinitions(_0x37a412){const _0x40d4a6=a32_0x5eac;return listLocalServiceTrees()[_0x40d4a6(0x17e)](_0x7d17fd=>!_0x37a412||_0x7d17fd['service'][_0x40d4a6(0x17f)]===_0x37a412)[_0x40d4a6(0x14c)](_0x1e5b59=>_0x1e5b59[_0x40d4a6(0x193)]['map'](_0x1e0778=>buildDynamicCommandDefinition(_0x1e5b59,_0x1e0778)));}export function getDynamicServiceDefinitions(_0x44f5dd){const _0x379d57=listDynamicServiceDefinitions(_0x44f5dd);return _0x379d57['length']>0x0?_0x379d57:undefined;}export function findDynamicServiceDefinition(_0x38a5bf,_0x1c55ca){const _0x2c472c=a32_0x5eac;return listDynamicServiceDefinitions(_0x38a5bf)[_0x2c472c(0x17a)](_0x52fc14=>_0x52fc14[_0x2c472c(0x18b)]===_0x1c55ca);}export function buildDynamicCommandDefinition(_0x5361cc,_0x1f513c){const _0x3efc37=a32_0x5eac;return{'service':_0x5361cc[_0x3efc37(0x177)][_0x3efc37(0x17f)],'command':dynamicCommandName(_0x1f513c),'description':_0x1f513c[_0x3efc37(0x1a0)]||'Run\x20service\x20command\x20'+_0x1f513c[_0x3efc37(0x14d)],'risk':_0x1f513c[_0x3efc37(0x154)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1f513c['args'][_0x3efc37(0x168)](_0x4e7397=>({'name':_0x4e7397[_0x3efc37(0x187)],'description':_0x4e7397[_0x3efc37(0x1a0)]||_0x4e7397['name'],'required':_0x4e7397[_0x3efc37(0x1a7)]})),'flags':_0x1f513c[_0x3efc37(0x1a5)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1f513c),async 'dryRun'(_0x3522b3){const _0x4ca708=_0x3efc37,_0x264f7e=await compilePlan(_0x1f513c,_0x3522b3);return{'method':_0x4ca708(0x173),'url':_0x1f513c[_0x4ca708(0x14d)],'body':{'target':targetPreview(_0x264f7e),'params':_0x264f7e['params']},'description':_0x4ca708(0x14b)+_0x1f513c[_0x4ca708(0x14d)]};},async 'execute'(_0x2b68b9){const _0x4c6aa9=_0x3efc37,_0x523a06=await compilePlan(_0x1f513c,_0x2b68b9),_0xa5d3d6=Date['now'](),_0x5bcc2e=await executePlan(_0x523a06,_0x1f513c,_0x2b68b9),_0x308a2d=Date[_0x4c6aa9(0x164)]()-_0xa5d3d6;return{'ok':!![],'data':{'service':_0x5361cc['service'],'command':_0x1f513c[_0x4c6aa9(0x14d)],'target':targetPreview(_0x523a06),'result':_0x5bcc2e,'elapsed':_0x308a2d},'message':_0x4c6aa9(0x16c)+_0x1f513c[_0x4c6aa9(0x14d)]+'\x20completed\x20in\x20'+_0x308a2d+'ms'};}};}function dynamicCommandName(_0x5606e1){const _0x19b056=a32_0x5eac;return _0x5606e1[_0x19b056(0x181)]['slice'](0x1)[_0x19b056(0x15c)]('\x20');}function riskTag(_0x1f7e28){const _0x10bf52=a32_0x5eac;return _0x1f7e28===_0x10bf52(0x19d)?'':_0x10bf52(0x165)+_0x1f7e28+']';}function flagToCommandFlag(_0xf61efa){const _0x2265ba=a32_0x5eac;return{'name':_0xf61efa[_0x2265ba(0x15d)],'type':_0xf61efa[_0x2265ba(0x152)]==='json'?_0x2265ba(0x174):_0xf61efa[_0x2265ba(0x152)],'description':_0xf61efa[_0x2265ba(0x1a0)]||_0xf61efa[_0x2265ba(0x187)],'required':_0xf61efa[_0x2265ba(0x1a7)],'default':isPrimitiveFlagDefault(_0xf61efa[_0x2265ba(0x162)])?_0xf61efa[_0x2265ba(0x162)]:undefined,'enum':_0xf61efa[_0x2265ba(0x18f)]};}async function compilePlan(_0x42ca9e,_0x3345e2){return compileServiceTreeCommand(_0x42ca9e,{'flags':_0x3345e2['rawFlags'],'args':_0x3345e2['args'],'context':await buildServiceContext(_0x42ca9e,_0x3345e2)});}async function buildServiceContext(_0x3aa514,_0x32ff4e){const _0x3a151f=a32_0x5eac,_0x590094={'appCode':_0x32ff4e[_0x3a151f(0x16b)],'env':_0x32ff4e[_0x3a151f(0x160)],'envName':_0x32ff4e[_0x3a151f(0x160)]};if(!usesRuntimeContext(_0x3aa514))return _0x590094;const _0x57b5ef=await getLoginUserInfo(),_0x2f99f2=pickFirst(_0x57b5ef[_0x3a151f(0x1a1)],_0x57b5ef['id']);return{..._0x590094,'user':_0x57b5ef,'userId':_0x2f99f2,'id':_0x57b5ef['id'],'username':pickFirst(_0x57b5ef['username'],_0x57b5ef['userName'],_0x57b5ef[_0x3a151f(0x190)]),'userName':_0x57b5ef[_0x3a151f(0x175)],'nickname':pickFirst(_0x57b5ef[_0x3a151f(0x169)],_0x57b5ef[_0x3a151f(0x155)]),'nickName':_0x57b5ef['nickName'],'tenantCode':_0x57b5ef[_0x3a151f(0x17d)],'employeeId':_0x57b5ef[_0x3a151f(0x195)]};}function usesRuntimeContext(_0x105865){const _0x4c86d0=a32_0x5eac;return _0x105865[_0x4c86d0(0x19e)][_0x4c86d0(0x194)](_0x3e4338=>typeof _0x3e4338[_0x4c86d0(0x183)]===_0x4c86d0(0x174)&&(_0x3e4338[_0x4c86d0(0x183)][_0x4c86d0(0x166)](_0x4c86d0(0x17c))||_0x3e4338[_0x4c86d0(0x183)][_0x4c86d0(0x166)](_0x4c86d0(0x1aa))));}function pickFirst(..._0x35eb5d){const _0x26356e=a32_0x5eac;return _0x35eb5d[_0x26356e(0x17a)](_0x1d9456=>_0x1d9456!==undefined&&_0x1d9456!==null);}async function executePlan(_0x2a5426,_0x512db2,_0x221833){const _0xf268ff=a32_0x5eac;if(_0x2a5426[_0xf268ff(0x1a9)]==='data'){const _0x100f20=await resolveDatasetCode(_0x2a5426,_0x512db2,_0x221833);return executeData(_0x100f20,_0x2a5426[_0xf268ff(0x18b)],_0x2a5426[_0xf268ff(0x16f)]);}if(_0x2a5426['kind']===_0xf268ff(0x198)){if(!_0x2a5426[_0xf268ff(0x167)])throw CliErrors[_0xf268ff(0x188)](_0xf268ff(0x16c)+_0x512db2[_0xf268ff(0x14d)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x2a5426[_0xf268ff(0x167)],normalizeScalarParams(_0x2a5426['params']));}if(_0x2a5426[_0xf268ff(0x1a9)]==='bff'){const _0xce11aa=_0x2a5426[_0xf268ff(0x161)]||_0x2a5426[_0xf268ff(0x18c)]||(_0x2a5426['bffId']==null?'':String(_0x2a5426['bffId']));if(!_0xce11aa)throw CliErrors[_0xf268ff(0x188)]('Service\x20command\x20'+_0x512db2[_0xf268ff(0x14d)]+_0xf268ff(0x182));return executeSdkBff(_0xce11aa,_0x2a5426[_0xf268ff(0x16f)]);}throw CliErrors[_0xf268ff(0x188)](_0xf268ff(0x158)+_0x2a5426[_0xf268ff(0x1a9)]);}async function resolveDatasetCode(_0x336122,_0x43ae4f,_0x20bbba){const _0x35f30b=a32_0x5eac;if(_0x336122[_0x35f30b(0x176)])return _0x336122['datasetCode'];if(!_0x336122['datatable'])throw CliErrors[_0x35f30b(0x188)]('Service\x20command\x20'+_0x43ae4f[_0x35f30b(0x14d)]+_0x35f30b(0x1af));const _0x1f81a6=await listDatasets(_0x20bbba[_0x35f30b(0x16b)]),_0x5c0d8a=_0x1f81a6[_0x35f30b(0x17a)](_0x124fad=>_0x124fad['dbtableConfig']?.[_0x35f30b(0x17b)]===_0x336122[_0x35f30b(0x16d)]);if(!_0x5c0d8a?.[_0x35f30b(0x17f)])throw CliErrors[_0x35f30b(0x188)](_0x35f30b(0x16e)+_0x336122[_0x35f30b(0x16d)]+_0x35f30b(0x14f)+_0x20bbba[_0x35f30b(0x16b)]+'.',_0x35f30b(0x19c));return _0x5c0d8a['code'];}function applyAppBinding(_0xed8c38,_0x54d323,_0x4b36a7){const _0x27df34=a32_0x5eac,_0x4d3f37=_0x54d323[_0x27df34(0x180)]['appRef'];if(!_0x4d3f37)return;const _0x559896=_0xed8c38['appBindings'][_0x4d3f37];if(!_0x559896)throw CliErrors[_0x27df34(0x188)]('Unknown\x20appRef\x20\x22'+_0x4d3f37+'\x22\x20in\x20service\x20command\x20'+_0x54d323['cliPath']+'.',_0x27df34(0x150));const _0x3111ce=_0x559896[_0x27df34(0x196)]||_0x559896[_0x27df34(0x16b)];_0x3111ce&&!hasText(_0x4b36a7[_0x27df34(0x196)])&&(_0x4b36a7[_0x27df34(0x196)]=_0x3111ce),_0x559896[_0x27df34(0x197)]&&!hasText(_0x4b36a7[_0x27df34(0x197)])&&!hasText(_0x4b36a7[_0x27df34(0x196)])&&(_0x4b36a7['app']=_0x559896[_0x27df34(0x197)]),_0x559896['env']&&!hasText(_0x4b36a7[_0x27df34(0x19f)])&&(_0x4b36a7[_0x27df34(0x19f)]=_0x559896[_0x27df34(0x19f)]);}function a32_0x5eac(_0x326299,_0x5271f9){_0x326299=_0x326299-0x14b;const _0x9371ce=a32_0x9371();let _0x5eacd8=_0x9371ce[_0x326299];return _0x5eacd8;}function a32_0x9371(){const _0x15f9d0=['446EeFpHW','envName','scriptName','default','operator','now','\x20\x20[','startsWith','sqlCode','map','nickname','\x20\x20\x20\x20datatable:\x20','appCode','Service\x20command\x20','datatable','Cannot\x20resolve\x20datatable\x20\x22','params','\x20\x20SERVICE\x20TREE\x20TARGET','const','tree','SERVICE_TREE','string','userName','datasetCode','service','\x20\x20\x20\x20datasetCode:\x20','Use\x20`','find','tableName','context.','tenantCode','filter','code','target','fullPath','\x20requires\x20target.scriptName.','source','\x20service\x20detail\x20--service\x20','6678rmmyYs','126049xsZTBw','name','validation','445371wrmEps','Commands:','command','bffCode','16VaoEmB','length','enum','loginName','number','\x20\x20\x20\x20sqlCode:\x20','commands','some','employeeId','appcode','app','sql','push','appRef','remainingArgs','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','read','mapTo','env','description','userId','6431142QeQgwi','trim','600061AIeFzz','flags','\x20\x20\x20\x20scriptName:\x20','required','Run\x20service\x20command\x20','kind','ctx.','2292270xiWAhU','30RyQJhC','\x20\x20MAP\x20TO','fromEntries','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Preview\x20dynamic\x20service\x20command:\x20','flatMap','cliPath','4081167JREomG','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','`\x20to\x20inspect\x20the\x20manifest.','type','slice','risk','nickName','\x20\x20\x20\x20','\x20\x20\x20\x20command:\x20','Unsupported\x20service\x20target\x20kind:\x20','padEnd','normalizedManifest','552RNjmEx','join','cliName','\x20\x20\x20\x20kind:\x20\x20\x20\x20'];a32_0x9371=function(){return _0x15f9d0;};return a32_0x9371();}function renderDynamicCommandHelp(_0x280dc6){const _0x5d9a85=a32_0x5eac,_0x50bdc4=[_0x5d9a85(0x170),_0x5d9a85(0x15e)+_0x280dc6['target'][_0x5d9a85(0x1a9)],_0x5d9a85(0x157)+_0x280dc6[_0x5d9a85(0x180)]['command']];if(_0x280dc6[_0x5d9a85(0x180)][_0x5d9a85(0x176)])_0x50bdc4[_0x5d9a85(0x199)](_0x5d9a85(0x178)+_0x280dc6['target']['datasetCode']);if(_0x280dc6[_0x5d9a85(0x180)]['datatable'])_0x50bdc4[_0x5d9a85(0x199)](_0x5d9a85(0x16a)+_0x280dc6[_0x5d9a85(0x180)][_0x5d9a85(0x16d)]);if(_0x280dc6[_0x5d9a85(0x180)][_0x5d9a85(0x167)])_0x50bdc4[_0x5d9a85(0x199)](_0x5d9a85(0x192)+_0x280dc6[_0x5d9a85(0x180)][_0x5d9a85(0x167)]);if(_0x280dc6[_0x5d9a85(0x180)][_0x5d9a85(0x161)])_0x50bdc4['push'](_0x5d9a85(0x1a6)+_0x280dc6[_0x5d9a85(0x180)][_0x5d9a85(0x161)]);if(_0x280dc6['mapTo']['length']>0x0){_0x50bdc4[_0x5d9a85(0x199)]('',_0x5d9a85(0x1ad));for(const _0x26b490 of _0x280dc6[_0x5d9a85(0x19e)]){_0x50bdc4[_0x5d9a85(0x199)](_0x5d9a85(0x156)+(_0x26b490[_0x5d9a85(0x183)]||_0x5d9a85(0x171))+'\x20->\x20'+_0x26b490['target']+(_0x26b490['operator']?'.'+_0x26b490[_0x5d9a85(0x163)]:''));}}return _0x50bdc4[_0x5d9a85(0x15c)]('\x0a');}function targetPreview(_0x318f81){const _0x18d0f5=a32_0x5eac;return{'kind':_0x318f81[_0x18d0f5(0x1a9)],'command':_0x318f81['command'],'appRef':_0x318f81[_0x18d0f5(0x19a)],'datasetCode':_0x318f81[_0x18d0f5(0x176)],'datatable':_0x318f81[_0x18d0f5(0x16d)],'sqlCode':_0x318f81['sqlCode'],'bffCode':_0x318f81[_0x18d0f5(0x18c)],'bffId':_0x318f81['bffId'],'scriptName':_0x318f81[_0x18d0f5(0x161)]};}function normalizeScalarParams(_0x5d197c){const _0x176e35=a32_0x5eac;return Object[_0x176e35(0x1ae)](Object['entries'](_0x5d197c)['filter'](([,_0x5dbac9])=>typeof _0x5dbac9===_0x176e35(0x174)||typeof _0x5dbac9===_0x176e35(0x191)));}function hasText(_0x3ccaab){const _0x29e2b8=a32_0x5eac;return typeof _0x3ccaab===_0x29e2b8(0x174)&&_0x3ccaab[_0x29e2b8(0x1a3)]()[_0x29e2b8(0x18e)]>0x0;}function isPrimitiveFlagDefault(_0xdebbdc){const _0x59c94a=a32_0x5eac;return _0xdebbdc===undefined||typeof _0xdebbdc===_0x59c94a(0x174)||typeof _0xdebbdc===_0x59c94a(0x191)||typeof _0xdebbdc==='boolean';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a33_0x23c4(_0x456856,_0xabbfbd){_0x456856=_0x456856-0x1d0;const _0x4c5f54=a33_0x4c5f();let _0x23c439=_0x4c5f54[_0x456856];return _0x23c439;}function a33_0x4c5f(){const _0xf884a0=['validate','37165320kPgwBa','manifest','write','risk','entry','registryPath','Service\x20registry\x20validation\x20passed.','Exported\x20service\x20','Local\x20service\x20not\x20found:\x20','4iMgbbA','Removed\x20service\x20','str','registryServiceCode','Imported\x20','errors','file','Service\x20Tree\x20manifest\x20file\x20path','version','normalizedManifest','length','service','manifests','export','reduce','cliPath','map','\x20service\x20','type','read','importedAt','12133010botuiV','updated','lower\x20kebab-case\x20service\x20code','flags','registry','9dyQXpo','string','imported','name','serviceCode','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','445832YBbghQ','report','serviceCount','list','source','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','\x20service(s).','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','4131471OzFgkR','2359UduhCE','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','commands','hash','replaced','required','11bIcOSD','\x20service(s),\x20updated\x20','603814HLnxKF','1424816mJoyKH','entries','warnings','description','kind','WRITE','filePath','30FGSlGA','target','registryIndex','Updated','16158keHEUi'];a33_0x4c5f=function(){return _0xf884a0;};return a33_0x4c5f();}const a33_0x5ae0b0=a33_0x23c4;(function(_0x384193,_0x15864f){const _0x5f5c1a=a33_0x23c4,_0x5012f2=_0x384193();while(!![]){try{const _0x527187=-parseInt(_0x5f5c1a(0x1d7))/0x1*(parseInt(_0x5f5c1a(0x1ee))/0x2)+-parseInt(_0x5f5c1a(0x217))/0x3+parseInt(_0x5f5c1a(0x20e))/0x4*(parseInt(_0x5f5c1a(0x1df))/0x5)+parseInt(_0x5f5c1a(0x1e3))/0x6*(parseInt(_0x5f5c1a(0x218))/0x7)+-parseInt(_0x5f5c1a(0x1d8))/0x8+parseInt(_0x5f5c1a(0x208))/0x9*(-parseInt(_0x5f5c1a(0x203))/0xa)+parseInt(_0x5f5c1a(0x1d5))/0xb*(parseInt(_0x5f5c1a(0x1e5))/0xc);if(_0x527187===_0x15864f)break;else _0x5012f2['push'](_0x5012f2['shift']());}catch(_0x49a0a6){_0x5012f2['push'](_0x5012f2['shift']());}}}(a33_0x4c5f,0xaa37b));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x5ae0b0(0x1f4),'type':a33_0x5ae0b0(0x209),'required':!![],'description':a33_0x5ae0b0(0x1f5)},SERVICE_FLAG={'name':'service','type':a33_0x5ae0b0(0x209),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x5ae0b0(0x205)}};function summarizeService(_0x51c30a){const _0x2b2891=a33_0x5ae0b0;return{'serviceCode':_0x51c30a[_0x2b2891(0x20c)],'name':_0x51c30a['normalizedManifest'][_0x2b2891(0x1f9)]['name'],'version':_0x51c30a[_0x2b2891(0x1f6)],'importedAt':_0x51c30a[_0x2b2891(0x202)],'source':_0x51c30a[_0x2b2891(0x212)],'commandCount':_0x51c30a[_0x2b2891(0x1f7)][_0x2b2891(0x1d1)][_0x2b2891(0x1f8)],'commands':_0x51c30a[_0x2b2891(0x1f7)]['commands'][_0x2b2891(0x1fe)](_0x6e8497=>({'path':_0x6e8497[_0x2b2891(0x1fd)],'description':_0x6e8497[_0x2b2891(0x1db)],'risk':_0x6e8497[_0x2b2891(0x1e8)],'target':_0x6e8497['target'],'flags':_0x6e8497[_0x2b2891(0x206)]['map'](_0x3f37c8=>({'name':_0x3f37c8[_0x2b2891(0x20b)],'cliName':_0x3f37c8['cliName'],'type':_0x3f37c8[_0x2b2891(0x200)],'required':_0x3f37c8[_0x2b2891(0x1d4)]===!![]}))}))};}function summarizeLoadedManifest(_0x37fc55){const _0x35b6aa=a33_0x5ae0b0;return{'service':_0x37fc55[_0x35b6aa(0x1f7)]?.[_0x35b6aa(0x1f9)],'version':_0x37fc55['normalizedManifest']?.[_0x35b6aa(0x1f6)],'commandCount':_0x37fc55[_0x35b6aa(0x1f7)]?.[_0x35b6aa(0x1d1)][_0x35b6aa(0x1f8)]??0x0,'commands':_0x37fc55['normalizedManifest']?.[_0x35b6aa(0x1d1)]['map'](_0x5b9d23=>({'path':_0x5b9d23[_0x35b6aa(0x1fd)],'risk':_0x5b9d23[_0x35b6aa(0x1e8)],'target':_0x5b9d23[_0x35b6aa(0x1e0)]}))??[],'registryIndex':_0x37fc55[_0x35b6aa(0x1e1)],'registryServiceCode':_0x37fc55[_0x35b6aa(0x1f1)],'errors':_0x37fc55[_0x35b6aa(0x20f)][_0x35b6aa(0x1f3)],'warnings':_0x37fc55[_0x35b6aa(0x20f)]['warnings']};}export const serviceDefinitions=[{'service':a33_0x5ae0b0(0x1f9),'command':a33_0x5ae0b0(0x1e4),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x4b5774){const _0x263193=a33_0x5ae0b0,_0x138403=loadServiceManifestFromFile(_0x4b5774[_0x263193(0x1f0)](_0x263193(0x1f4)));if(!_0x138403[_0x263193(0x20f)]['ok'])return{'ok':![],'data':{'file':_0x138403[_0x263193(0x1de)],'hash':_0x138403['hash'],'kind':_0x138403['kind'],'serviceCount':_0x138403['manifests'][_0x263193(0x1f8)],'services':_0x138403[_0x263193(0x1fa)][_0x263193(0x1fe)](summarizeLoadedManifest),'errors':_0x138403['report'][_0x263193(0x1f3)],'warnings':_0x138403[_0x263193(0x20f)][_0x263193(0x1da)]},'message':formatValidationFailure(_0x138403[_0x263193(0x20f)])};if(_0x138403[_0x263193(0x1dc)]===_0x263193(0x207)||_0x138403[_0x263193(0x1fa)][_0x263193(0x1f8)]!==0x1)return{'ok':!![],'data':{'file':_0x138403[_0x263193(0x1de)],'hash':_0x138403['hash'],'kind':_0x138403[_0x263193(0x1dc)],'serviceCount':_0x138403['manifests'][_0x263193(0x1f8)],'commandCount':_0x138403[_0x263193(0x1fa)][_0x263193(0x1fc)]((_0x50614f,_0xdfd4f7)=>_0x50614f+(_0xdfd4f7[_0x263193(0x1f7)]?.[_0x263193(0x1d1)][_0x263193(0x1f8)]??0x0),0x0),'services':_0x138403[_0x263193(0x1fa)][_0x263193(0x1fe)](summarizeLoadedManifest),'warnings':_0x138403[_0x263193(0x20f)][_0x263193(0x1da)]},'message':_0x263193(0x1eb)};return{'ok':!![],'data':{'file':_0x138403[_0x263193(0x1de)],'hash':_0x138403['hash'],'kind':_0x138403[_0x263193(0x1dc)],'service':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1f9)],'version':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1f6)],'commandCount':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1d1)][_0x263193(0x1f8)]??0x0,'commands':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1d1)][_0x263193(0x1fe)](_0x2e8f97=>({'path':_0x2e8f97['cliPath'],'risk':_0x2e8f97[_0x263193(0x1e8)],'target':_0x2e8f97[_0x263193(0x1e0)]})),'warnings':_0x138403[_0x263193(0x20f)][_0x263193(0x1da)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':'import','description':a33_0x5ae0b0(0x1d0),'risk':a33_0x5ae0b0(0x1e7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5e5470){const _0x132a47=a33_0x5ae0b0,_0x2b2a2b=loadServiceManifestFromFile(_0x5e5470[_0x132a47(0x1f0)](_0x132a47(0x1f4)));return{'method':_0x132a47(0x1dd),'url':getServiceRegistryPath(),'body':{'file':_0x2b2a2b[_0x132a47(0x1de)],'hash':_0x2b2a2b[_0x132a47(0x1d2)],'kind':_0x2b2a2b[_0x132a47(0x1dc)],'ok':_0x2b2a2b[_0x132a47(0x20f)]['ok'],'service':_0x2b2a2b[_0x132a47(0x1f7)]?.['service'],'version':_0x2b2a2b[_0x132a47(0x1f7)]?.[_0x132a47(0x1f6)],'serviceCount':_0x2b2a2b[_0x132a47(0x1fa)][_0x132a47(0x1f8)],'services':_0x2b2a2b['manifests'][_0x132a47(0x1fe)](_0x630af3=>({'service':_0x630af3['normalizedManifest']?.['service'],'version':_0x630af3[_0x132a47(0x1f7)]?.[_0x132a47(0x1f6)],'commandCount':_0x630af3[_0x132a47(0x1f7)]?.[_0x132a47(0x1d1)][_0x132a47(0x1f8)]??0x0,'errors':_0x630af3[_0x132a47(0x20f)][_0x132a47(0x1f3)]})),'errors':_0x2b2a2b['report']['errors'],'commandCount':_0x2b2a2b[_0x132a47(0x1f7)]?.[_0x132a47(0x1d1)][_0x132a47(0x1f8)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x2da8eb){const _0x5c8a45=a33_0x5ae0b0,_0x243117=importServiceManifest(_0x2da8eb[_0x5c8a45(0x1f0)](_0x5c8a45(0x1f4)));if(_0x243117[_0x5c8a45(0x1d9)][_0x5c8a45(0x1f8)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x243117[_0x5c8a45(0x1ea)],'imported':_0x243117[_0x5c8a45(0x20a)],'updated':_0x243117[_0x5c8a45(0x204)],'serviceCount':_0x243117[_0x5c8a45(0x210)],'services':_0x243117[_0x5c8a45(0x1d9)][_0x5c8a45(0x1fe)](summarizeService)},'message':_0x5c8a45(0x1f2)+_0x243117[_0x5c8a45(0x20a)]+_0x5c8a45(0x1d6)+_0x243117[_0x5c8a45(0x204)]+_0x5c8a45(0x215)};return{'ok':!![],'data':{'registryPath':_0x243117[_0x5c8a45(0x1ea)],'replaced':_0x243117['replaced'],'imported':_0x243117[_0x5c8a45(0x20a)],'updated':_0x243117[_0x5c8a45(0x204)],'serviceCount':_0x243117[_0x5c8a45(0x210)],'service':summarizeService(_0x243117['entry'])},'message':(_0x243117[_0x5c8a45(0x1d3)]?_0x5c8a45(0x1e2):'Imported')+_0x5c8a45(0x1ff)+_0x243117[_0x5c8a45(0x1e9)]['serviceCode']+'.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':a33_0x5ae0b0(0x1fb),'description':a33_0x5ae0b0(0x213),'risk':a33_0x5ae0b0(0x1e7),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x401b4c){const _0x441a4c=a33_0x5ae0b0,_0x49fda7=getLocalServiceEntry(_0x401b4c[_0x441a4c(0x1f0)]('service'));return{'method':_0x441a4c(0x1dd),'url':_0x401b4c[_0x441a4c(0x1f0)]('file'),'body':{'service':_0x401b4c['str']('service'),'found':Boolean(_0x49fda7),'version':_0x49fda7?.[_0x441a4c(0x1f6)],'source':_0x49fda7?.[_0x441a4c(0x212)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x59767f){const _0x2a81ed=a33_0x5ae0b0,_0xe0dd37=exportServiceManifest(_0x59767f[_0x2a81ed(0x1f0)](_0x2a81ed(0x1f9)),_0x59767f[_0x2a81ed(0x1f0)](_0x2a81ed(0x1f4)));return{'ok':!![],'data':{'registryPath':_0xe0dd37[_0x2a81ed(0x1ea)],'file':_0xe0dd37[_0x2a81ed(0x1de)],'service':summarizeService(_0xe0dd37['entry'])},'message':_0x2a81ed(0x1ec)+_0xe0dd37[_0x2a81ed(0x1e9)][_0x2a81ed(0x20c)]+'.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':a33_0x5ae0b0(0x211),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x182a0e=a33_0x5ae0b0,_0x1137dd=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1137dd[_0x182a0e(0x1f8)],'services':_0x1137dd[_0x182a0e(0x1fe)](summarizeService)}};}},{'service':a33_0x5ae0b0(0x1f9),'command':'remove','description':a33_0x5ae0b0(0x214),'risk':a33_0x5ae0b0(0x1e7),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xac0c4a){const _0x4d8174=a33_0x5ae0b0,_0x34aa07=getLocalServiceEntry(_0xac0c4a['str']('service'));return{'method':_0x4d8174(0x1dd),'url':getServiceRegistryPath(),'body':{'service':_0xac0c4a[_0x4d8174(0x1f0)](_0x4d8174(0x1f9)),'found':Boolean(_0x34aa07),'version':_0x34aa07?.[_0x4d8174(0x1f6)],'source':_0x34aa07?.[_0x4d8174(0x212)]},'description':_0x4d8174(0x20d)};},async 'execute'(_0x41c995){const _0x4b06db=a33_0x5ae0b0,_0x3b538c=removeServiceManifest(_0x41c995[_0x4b06db(0x1f0)](_0x4b06db(0x1f9)));return{'ok':!![],'data':{'registryPath':_0x3b538c['registryPath'],'serviceCount':_0x3b538c['serviceCount'],'service':summarizeService(_0x3b538c['entry'])},'message':_0x4b06db(0x1ef)+_0x3b538c[_0x4b06db(0x1e9)][_0x4b06db(0x20c)]+'.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':'detail','description':a33_0x5ae0b0(0x216),'risk':a33_0x5ae0b0(0x201),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xc245a2){const _0x1f572f=a33_0x5ae0b0,_0x536012=getLocalServiceEntry(_0xc245a2['str']('service'));if(!_0x536012)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xc245a2['str'](_0x1f572f(0x1f9))},'message':_0x1f572f(0x1ed)+_0xc245a2[_0x1f572f(0x1f0)](_0x1f572f(0x1f9))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x536012),'manifest':_0x536012[_0x1f572f(0x1e6)],'normalizedManifest':_0x536012[_0x1f572f(0x1f7)]}};}}];
|
|
1
|
+
const a33_0x32732f=a33_0x392c;(function(_0x6d3e8d,_0x45dc2e){const _0x5777df=a33_0x392c,_0x3a7328=_0x6d3e8d();while(!![]){try{const _0x5adb00=-parseInt(_0x5777df(0x154))/0x1*(-parseInt(_0x5777df(0x184))/0x2)+-parseInt(_0x5777df(0x160))/0x3*(parseInt(_0x5777df(0x16a))/0x4)+parseInt(_0x5777df(0x15f))/0x5+-parseInt(_0x5777df(0x168))/0x6*(parseInt(_0x5777df(0x180))/0x7)+parseInt(_0x5777df(0x182))/0x8*(parseInt(_0x5777df(0x198))/0x9)+-parseInt(_0x5777df(0x185))/0xa*(-parseInt(_0x5777df(0x15e))/0xb)+-parseInt(_0x5777df(0x176))/0xc*(-parseInt(_0x5777df(0x170))/0xd);if(_0x5adb00===_0x45dc2e)break;else _0x3a7328['push'](_0x3a7328['shift']());}catch(_0x4babc5){_0x3a7328['push'](_0x3a7328['shift']());}}}(a33_0x1c26,0x211db));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x32732f(0x163),'type':'string','required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':'service','type':a33_0x32732f(0x155),'required':!![],'description':a33_0x32732f(0x161),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x32732f(0x15c)}};function summarizeService(_0x32cfa1){const _0x2fd55b=a33_0x32732f;return{'serviceCode':_0x32cfa1['serviceCode'],'name':_0x32cfa1[_0x2fd55b(0x18a)][_0x2fd55b(0x172)][_0x2fd55b(0x19b)],'version':_0x32cfa1[_0x2fd55b(0x174)],'importedAt':_0x32cfa1['importedAt'],'source':_0x32cfa1[_0x2fd55b(0x15d)],'commandCount':_0x32cfa1['normalizedManifest']['commands'][_0x2fd55b(0x157)],'commands':_0x32cfa1['normalizedManifest']['commands'][_0x2fd55b(0x18e)](_0x1d1f74=>({'path':_0x1d1f74[_0x2fd55b(0x16e)],'description':_0x1d1f74[_0x2fd55b(0x183)],'risk':_0x1d1f74[_0x2fd55b(0x19c)],'target':_0x1d1f74['target'],'flags':_0x1d1f74[_0x2fd55b(0x18c)]['map'](_0x4935dd=>({'name':_0x4935dd['name'],'cliName':_0x4935dd[_0x2fd55b(0x16b)],'type':_0x4935dd[_0x2fd55b(0x177)],'required':_0x4935dd[_0x2fd55b(0x173)]===!![]}))}))};}function summarizeLoadedManifest(_0x4dceeb){const _0x4fcebd=a33_0x32732f;return{'service':_0x4dceeb[_0x4fcebd(0x18a)]?.[_0x4fcebd(0x172)],'version':_0x4dceeb[_0x4fcebd(0x18a)]?.['version'],'commandCount':_0x4dceeb[_0x4fcebd(0x18a)]?.[_0x4fcebd(0x17f)][_0x4fcebd(0x157)]??0x0,'commands':_0x4dceeb[_0x4fcebd(0x18a)]?.['commands'][_0x4fcebd(0x18e)](_0x150b42=>({'path':_0x150b42['cliPath'],'risk':_0x150b42['risk'],'target':_0x150b42[_0x4fcebd(0x18f)]}))??[],'registryIndex':_0x4dceeb[_0x4fcebd(0x153)],'registryServiceCode':_0x4dceeb[_0x4fcebd(0x166)],'errors':_0x4dceeb[_0x4fcebd(0x18d)][_0x4fcebd(0x190)],'warnings':_0x4dceeb[_0x4fcebd(0x18d)]['warnings']};}function a33_0x392c(_0x2a1032,_0x46bc82){_0x2a1032=_0x2a1032-0x150;const _0x1c267c=a33_0x1c26();let _0x392c1b=_0x1c267c[_0x2a1032];return _0x392c1b;}export const serviceDefinitions=[{'service':a33_0x32732f(0x172),'command':a33_0x32732f(0x175),'description':a33_0x32732f(0x150),'risk':a33_0x32732f(0x167),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x15759f){const _0x2cd1b6=a33_0x32732f,_0x574ed0=loadServiceManifestFromFile(_0x15759f[_0x2cd1b6(0x192)](_0x2cd1b6(0x163)));if(!_0x574ed0['report']['ok'])return{'ok':![],'data':{'file':_0x574ed0[_0x2cd1b6(0x186)],'hash':_0x574ed0[_0x2cd1b6(0x179)],'kind':_0x574ed0[_0x2cd1b6(0x195)],'serviceCount':_0x574ed0['manifests'][_0x2cd1b6(0x157)],'services':_0x574ed0[_0x2cd1b6(0x164)]['map'](summarizeLoadedManifest),'errors':_0x574ed0[_0x2cd1b6(0x18d)]['errors'],'warnings':_0x574ed0['report'][_0x2cd1b6(0x15a)]},'message':formatValidationFailure(_0x574ed0[_0x2cd1b6(0x18d)])};if(_0x574ed0['kind']==='registry'||_0x574ed0[_0x2cd1b6(0x164)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x574ed0[_0x2cd1b6(0x186)],'hash':_0x574ed0['hash'],'kind':_0x574ed0[_0x2cd1b6(0x195)],'serviceCount':_0x574ed0[_0x2cd1b6(0x164)][_0x2cd1b6(0x157)],'commandCount':_0x574ed0[_0x2cd1b6(0x164)]['reduce']((_0x3a8329,_0xf1badd)=>_0x3a8329+(_0xf1badd[_0x2cd1b6(0x18a)]?.[_0x2cd1b6(0x17f)][_0x2cd1b6(0x157)]??0x0),0x0),'services':_0x574ed0[_0x2cd1b6(0x164)][_0x2cd1b6(0x18e)](summarizeLoadedManifest),'warnings':_0x574ed0[_0x2cd1b6(0x18d)][_0x2cd1b6(0x15a)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x574ed0[_0x2cd1b6(0x186)],'hash':_0x574ed0[_0x2cd1b6(0x179)],'kind':_0x574ed0[_0x2cd1b6(0x195)],'service':_0x574ed0[_0x2cd1b6(0x18a)]?.[_0x2cd1b6(0x172)],'version':_0x574ed0[_0x2cd1b6(0x18a)]?.['version'],'commandCount':_0x574ed0[_0x2cd1b6(0x18a)]?.[_0x2cd1b6(0x17f)][_0x2cd1b6(0x157)]??0x0,'commands':_0x574ed0[_0x2cd1b6(0x18a)]?.[_0x2cd1b6(0x17f)][_0x2cd1b6(0x18e)](_0x1b391b=>({'path':_0x1b391b[_0x2cd1b6(0x16e)],'risk':_0x1b391b[_0x2cd1b6(0x19c)],'target':_0x1b391b[_0x2cd1b6(0x18f)]})),'warnings':_0x574ed0[_0x2cd1b6(0x18d)][_0x2cd1b6(0x15a)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x32732f(0x172),'command':a33_0x32732f(0x159),'description':a33_0x32732f(0x187),'risk':a33_0x32732f(0x17e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5d4cd8){const _0x4f6df3=a33_0x32732f,_0x31bc85=loadServiceManifestFromFile(_0x5d4cd8['str'](_0x4f6df3(0x163)));return{'method':_0x4f6df3(0x18b),'url':getServiceRegistryPath(),'body':{'file':_0x31bc85['filePath'],'hash':_0x31bc85['hash'],'kind':_0x31bc85[_0x4f6df3(0x195)],'ok':_0x31bc85[_0x4f6df3(0x18d)]['ok'],'service':_0x31bc85[_0x4f6df3(0x18a)]?.[_0x4f6df3(0x172)],'version':_0x31bc85['normalizedManifest']?.[_0x4f6df3(0x174)],'serviceCount':_0x31bc85[_0x4f6df3(0x164)][_0x4f6df3(0x157)],'services':_0x31bc85[_0x4f6df3(0x164)][_0x4f6df3(0x18e)](_0x35c0fd=>({'service':_0x35c0fd[_0x4f6df3(0x18a)]?.[_0x4f6df3(0x172)],'version':_0x35c0fd[_0x4f6df3(0x18a)]?.[_0x4f6df3(0x174)],'commandCount':_0x35c0fd[_0x4f6df3(0x18a)]?.[_0x4f6df3(0x17f)][_0x4f6df3(0x157)]??0x0,'errors':_0x35c0fd[_0x4f6df3(0x18d)][_0x4f6df3(0x190)]})),'errors':_0x31bc85[_0x4f6df3(0x18d)][_0x4f6df3(0x190)],'commandCount':_0x31bc85[_0x4f6df3(0x18a)]?.[_0x4f6df3(0x17f)]['length']??0x0},'description':_0x4f6df3(0x16d)};},async 'execute'(_0x50b9df){const _0x947670=a33_0x32732f,_0x3e893c=importServiceManifest(_0x50b9df[_0x947670(0x192)](_0x947670(0x163)));if(_0x3e893c[_0x947670(0x165)][_0x947670(0x157)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3e893c[_0x947670(0x188)],'imported':_0x3e893c['imported'],'updated':_0x3e893c[_0x947670(0x19d)],'serviceCount':_0x3e893c[_0x947670(0x169)],'services':_0x3e893c['entries'][_0x947670(0x18e)](summarizeService)},'message':_0x947670(0x171)+_0x3e893c[_0x947670(0x178)]+_0x947670(0x16c)+_0x3e893c['updated']+_0x947670(0x17c)};return{'ok':!![],'data':{'registryPath':_0x3e893c[_0x947670(0x188)],'replaced':_0x3e893c[_0x947670(0x16f)],'imported':_0x3e893c[_0x947670(0x178)],'updated':_0x3e893c[_0x947670(0x19d)],'serviceCount':_0x3e893c[_0x947670(0x169)],'service':summarizeService(_0x3e893c[_0x947670(0x191)])},'message':(_0x3e893c[_0x947670(0x16f)]?_0x947670(0x158):_0x947670(0x15b))+'\x20service\x20'+_0x3e893c[_0x947670(0x191)][_0x947670(0x181)]+'.'};}},{'service':'service','command':a33_0x32732f(0x17b),'description':a33_0x32732f(0x196),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0xd65655){const _0x6e1b5d=a33_0x32732f,_0x5ecd99=getLocalServiceEntry(_0xd65655['str'](_0x6e1b5d(0x172)));return{'method':_0x6e1b5d(0x18b),'url':_0xd65655['str'](_0x6e1b5d(0x163)),'body':{'service':_0xd65655[_0x6e1b5d(0x192)](_0x6e1b5d(0x172)),'found':Boolean(_0x5ecd99),'version':_0x5ecd99?.[_0x6e1b5d(0x174)],'source':_0x5ecd99?.[_0x6e1b5d(0x15d)]},'description':_0x6e1b5d(0x151)};},async 'execute'(_0x42d906){const _0x616dc7=a33_0x32732f,_0x2fbd76=exportServiceManifest(_0x42d906[_0x616dc7(0x192)]('service'),_0x42d906[_0x616dc7(0x192)]('file'));return{'ok':!![],'data':{'registryPath':_0x2fbd76['registryPath'],'file':_0x2fbd76[_0x616dc7(0x186)],'service':summarizeService(_0x2fbd76['entry'])},'message':_0x616dc7(0x17a)+_0x2fbd76[_0x616dc7(0x191)][_0x616dc7(0x181)]+'.'};}},{'service':'service','command':a33_0x32732f(0x156),'description':a33_0x32732f(0x17d),'risk':a33_0x32732f(0x167),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x221a8d=a33_0x32732f,_0x1b0022=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1b0022[_0x221a8d(0x157)],'services':_0x1b0022[_0x221a8d(0x18e)](summarizeService)}};}},{'service':'service','command':a33_0x32732f(0x152),'description':a33_0x32732f(0x189),'risk':a33_0x32732f(0x17e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x5b0113){const _0xe4a0d4=a33_0x32732f,_0xb867f2=getLocalServiceEntry(_0x5b0113[_0xe4a0d4(0x192)](_0xe4a0d4(0x172)));return{'method':_0xe4a0d4(0x18b),'url':getServiceRegistryPath(),'body':{'service':_0x5b0113[_0xe4a0d4(0x192)](_0xe4a0d4(0x172)),'found':Boolean(_0xb867f2),'version':_0xb867f2?.['version'],'source':_0xb867f2?.['source']},'description':_0xe4a0d4(0x193)};},async 'execute'(_0x54ecec){const _0x42d220=a33_0x32732f,_0x295811=removeServiceManifest(_0x54ecec[_0x42d220(0x192)]('service'));return{'ok':!![],'data':{'registryPath':_0x295811[_0x42d220(0x188)],'serviceCount':_0x295811['serviceCount'],'service':summarizeService(_0x295811[_0x42d220(0x191)])},'message':_0x42d220(0x194)+_0x295811[_0x42d220(0x191)]['serviceCode']+'.'};}},{'service':a33_0x32732f(0x172),'command':a33_0x32732f(0x162),'description':a33_0x32732f(0x199),'risk':a33_0x32732f(0x167),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x3ce611){const _0x417c84=a33_0x32732f,_0x584f96=getLocalServiceEntry(_0x3ce611[_0x417c84(0x192)](_0x417c84(0x172)));if(!_0x584f96)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x3ce611[_0x417c84(0x192)](_0x417c84(0x172))},'message':_0x417c84(0x19a)+_0x3ce611['str']('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x584f96),'manifest':_0x584f96[_0x417c84(0x197)],'normalizedManifest':_0x584f96[_0x417c84(0x18a)]}};}}];function a33_0x1c26(){const _0x3fbaa9=['required','version','validate','12Fniuse','type','imported','hash','Exported\x20service\x20','export','\x20service(s).','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','write','commands','716072GCEoFP','serviceCode','468016GzLjGY','description','8iGYAcl','470wwcFwp','filePath','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryPath','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','normalizedManifest','WRITE','flags','report','map','target','errors','entry','str','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Removed\x20service\x20','kind','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','manifest','36GjYfQt','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Local\x20service\x20not\x20found:\x20','name','risk','updated','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','remove','registryIndex','24551UKOUsR','string','list','length','Updated','import','warnings','Imported','lower\x20kebab-case\x20service\x20code','source','517ppVJqx','714620eoavbo','3ErIIxF','Local\x20service\x20code,\x20for\x20example\x20crm','detail','file','manifests','entries','registryServiceCode','read','12LjpfEB','serviceCount','921364NZZHSp','cliName','\x20service(s),\x20updated\x20','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','cliPath','replaced','1212003DSNNyV','Imported\x20','service'];a33_0x1c26=function(){return _0x3fbaa9;};return a33_0x1c26();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a34_0x2cf5c5=a34_0x5488;(function(_0x3f81e1,_0x3e067c){const _0x4c55bb=a34_0x5488,_0x4df2c1=_0x3f81e1();while(!![]){try{const _0x2929f1=-parseInt(_0x4c55bb(0x10d))/0x1+-parseInt(_0x4c55bb(0x109))/0x2+parseInt(_0x4c55bb(0x137))/0x3*(-parseInt(_0x4c55bb(0x138))/0x4)+parseInt(_0x4c55bb(0x128))/0x5*(parseInt(_0x4c55bb(0x130))/0x6)+parseInt(_0x4c55bb(0x116))/0x7+-parseInt(_0x4c55bb(0x129))/0x8+parseInt(_0x4c55bb(0x147))/0x9;if(_0x2929f1===_0x3e067c)break;else _0x4df2c1['push'](_0x4df2c1['shift']());}catch(_0x50da5f){_0x4df2c1['push'](_0x4df2c1['shift']());}}}(a34_0x1d23,0xf053a));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x2cf5c5(0x123);export function getServiceRegistryPath(_0x2fc8d3={}){const _0x226931=a34_0x2cf5c5;return resolve(_0x2fc8d3[_0x226931(0x124)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3f5d39={}){const _0xf2efdf=a34_0x2cf5c5,_0x49be63=getServiceRegistryPath(_0x3f5d39);if(!existsSync(_0x49be63))return emptyServiceRegistry();try{const _0x5abc2c=readFileSync(_0x49be63,_0xf2efdf(0x11a));if(!_0x5abc2c[_0xf2efdf(0xfc)]())return emptyServiceRegistry();const _0x497b10=JSON[_0xf2efdf(0x11b)](_0x5abc2c);if(_0x497b10[_0xf2efdf(0x118)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0xf2efdf(0xff)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x497b10[_0xf2efdf(0x118)]),_0xf2efdf(0x141)+_0x49be63+'.');if(!Array[_0xf2efdf(0x13e)](_0x497b10[_0xf2efdf(0x115)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x497b10[_0xf2efdf(0x11e)],'services':_0x497b10['services']};}catch(_0x336f89){if(_0x336f89 instanceof Error&&_0x336f89['name']===_0xf2efdf(0x100))throw _0x336f89;throw CliErrors[_0xf2efdf(0xff)](_0xf2efdf(0x134)+_0x49be63,_0xf2efdf(0x10f));}}export function writeServiceRegistry(_0x4f909d,_0x3f2f18={}){const _0x24810a=a34_0x2cf5c5,_0x6ffc70=getServiceRegistryPath(_0x3f2f18),_0x28f25a=dirname(_0x6ffc70);!existsSync(_0x28f25a)&&mkdirSync(_0x28f25a,{'recursive':!![]});const _0x4d16d7=_0x6ffc70+_0x24810a(0x13b);try{writeFileSync(_0x4d16d7,JSON['stringify'](_0x4f909d,null,0x2)+'\x0a',{'encoding':_0x24810a(0x11a),'mode':0x180}),renameSync(_0x4d16d7,_0x6ffc70);}catch(_0x41322b){try{unlinkSync(_0x4d16d7);}catch{}if(_0x41322b?.['code']===_0x24810a(0x13f))throw CliErrors[_0x24810a(0xff)](_0x24810a(0x110)+_0x6ffc70);throw _0x41322b;}return _0x6ffc70;}export function loadServiceManifestFromFile(_0x3fd7a0){const _0x21eef5=a34_0x2cf5c5,_0x25960f=resolve(_0x3fd7a0);if(!existsSync(_0x25960f))throw CliErrors[_0x21eef5(0xff)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x3fd7a0);let _0x1890b1;const _0x1ae3d4=readFileSync(_0x25960f,_0x21eef5(0x11a));try{_0x1890b1=JSON[_0x21eef5(0x11b)](_0x1ae3d4);}catch{throw CliErrors[_0x21eef5(0xff)](_0x21eef5(0x145)+_0x3fd7a0,_0x21eef5(0x12c));}const _0x434f7f=sha256(_0x1ae3d4),_0x4d0cd6=extractLoadedServiceManifests(_0x1890b1,_0x434f7f),_0x197522=aggregateValidationReports(_0x4d0cd6),_0x30b5d8=_0x4d0cd6[0x0];return{'filePath':_0x25960f,'hash':_0x434f7f,'kind':isServiceRegistryLike(_0x1890b1)?'registry':_0x21eef5(0x13d),'manifest':_0x30b5d8?.[_0x21eef5(0x13d)]??_0x1890b1,'report':_0x197522,'normalizedManifest':_0x4d0cd6['length']===0x1?_0x30b5d8?.[_0x21eef5(0x13c)]:undefined,'manifests':_0x4d0cd6};}export function importServiceManifest(_0x1c89cf,_0x56d102={}){const _0x49a5b7=a34_0x2cf5c5,_0x1c8087=loadServiceManifestFromFile(_0x1c89cf);if(!_0x1c8087[_0x49a5b7(0x10e)]['ok'])throw CliErrors[_0x49a5b7(0xff)](formatValidationFailure(_0x1c8087[_0x49a5b7(0x10e)]),_0x49a5b7(0x12e));if(_0x1c8087['manifests']['length']===0x0)throw CliErrors[_0x49a5b7(0xff)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x192124=readServiceRegistry(_0x56d102),_0x2a8144=(_0x56d102[_0x49a5b7(0x117)]??(()=>new Date()))()[_0x49a5b7(0x114)](),_0x269fc5=[];let _0x59f3b5=0x0,_0x5d197a=0x0;for(const _0x162265 of _0x1c8087['manifests']){if(!_0x162265[_0x49a5b7(0x13c)])continue;const _0x5736ac=_0x162265['normalizedManifest'][_0x49a5b7(0x104)][_0x49a5b7(0x13a)],_0x18a46e={'serviceCode':_0x5736ac,'version':_0x162265['normalizedManifest']['version'],'importedAt':_0x2a8144,'source':{'type':'file','path':_0x1c8087['filePath'],'hash':_0x162265[_0x49a5b7(0x143)]},'manifest':_0x162265[_0x49a5b7(0x13d)],'normalizedManifest':_0x162265['normalizedManifest']},_0x5baa50=_0x192124[_0x49a5b7(0x115)]['findIndex'](_0x1981fe=>_0x1981fe[_0x49a5b7(0x127)]===_0x5736ac);_0x5baa50>=0x0?(_0x192124['services'][_0x5baa50]=_0x18a46e,_0x5d197a++):(_0x192124[_0x49a5b7(0x115)][_0x49a5b7(0x11d)](_0x18a46e),_0x59f3b5++),_0x269fc5[_0x49a5b7(0x11d)](_0x18a46e);}_0x192124[_0x49a5b7(0x115)]['sort']((_0x582d4e,_0x4d4a16)=>_0x582d4e[_0x49a5b7(0x127)][_0x49a5b7(0x126)](_0x4d4a16[_0x49a5b7(0x127)])),_0x192124[_0x49a5b7(0x11e)]=_0x2a8144;const _0x5520ba=writeServiceRegistry(_0x192124,_0x56d102);return{'registryPath':_0x5520ba,'entry':_0x269fc5[0x0],'replaced':_0x269fc5[_0x49a5b7(0x106)]===0x1?_0x5d197a===0x1:_0x5d197a>0x0,'entries':_0x269fc5,'imported':_0x59f3b5,'updated':_0x5d197a,'serviceCount':_0x192124[_0x49a5b7(0x115)][_0x49a5b7(0x106)]};}export function exportServiceManifest(_0x1a644c,_0x1d265c,_0x83ce0c={}){const _0x43ffee=a34_0x2cf5c5,_0x8e4d8b=getServiceRegistryPath(_0x83ce0c),_0x509fed=getLocalServiceEntry(_0x1a644c,_0x83ce0c);if(!_0x509fed)throw CliErrors[_0x43ffee(0xff)](_0x43ffee(0x10b)+_0x1a644c,_0x43ffee(0x125));const _0x286ab9=resolve(_0x1d265c),_0x59d35b=dirname(_0x286ab9);return!existsSync(_0x59d35b)&&mkdirSync(_0x59d35b,{'recursive':!![]}),writeFileSync(_0x286ab9,JSON[_0x43ffee(0x146)](_0x509fed[_0x43ffee(0x13d)],null,0x2)+'\x0a',{'encoding':_0x43ffee(0x11a),'mode':0x180}),{'registryPath':_0x8e4d8b,'filePath':_0x286ab9,'entry':_0x509fed};}export function removeServiceManifest(_0x19e2e4,_0x109d5d={}){const _0x2ac928=a34_0x2cf5c5,_0x5b8c90=readServiceRegistry(_0x109d5d),_0x19a00c=_0x19e2e4[_0x2ac928(0xfc)](),_0xf7ee6e=_0x5b8c90['services']['findIndex'](_0x588e54=>_0x588e54[_0x2ac928(0x127)]===_0x19a00c);if(_0xf7ee6e<0x0)throw CliErrors['validation'](_0x2ac928(0x10b)+_0x19a00c,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x336da8]=_0x5b8c90['services'][_0x2ac928(0x108)](_0xf7ee6e,0x1),_0x1e2098=(_0x109d5d[_0x2ac928(0x117)]??(()=>new Date()))()[_0x2ac928(0x114)]();_0x5b8c90['updatedAt']=_0x1e2098;const _0x2d34e9=writeServiceRegistry(_0x5b8c90,_0x109d5d);return{'registryPath':_0x2d34e9,'entry':_0x336da8,'serviceCount':_0x5b8c90[_0x2ac928(0x115)][_0x2ac928(0x106)]};}export function listLocalServices(_0xbd3505={}){const _0x2671a3=a34_0x2cf5c5;return readServiceRegistry(_0xbd3505)[_0x2671a3(0x115)];}export function getLocalServiceEntry(_0x2436d1,_0x5a5717={}){const _0x4197fc=a34_0x2cf5c5;return readServiceRegistry(_0x5a5717)[_0x4197fc(0x115)][_0x4197fc(0x107)](_0x1fec9e=>_0x1fec9e['serviceCode']===_0x2436d1[_0x4197fc(0xfc)]());}export function listLocalServiceTrees(_0x7f3180={}){const _0x12f5cc=a34_0x2cf5c5;return readServiceRegistry(_0x7f3180)['services'][_0x12f5cc(0x11f)](_0x4827d6=>_0x4827d6[_0x12f5cc(0x13c)]);}export function inspectServiceRegistry(_0x14a709={}){const _0x375011=a34_0x2cf5c5,_0x933b7c=getServiceRegistryPath(_0x14a709);if(!existsSync(_0x933b7c))return emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x121),![]);try{const _0x3940c5=readFileSync(_0x933b7c,'utf8');if(!_0x3940c5[_0x375011(0xfc)]())return emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x12d),!![]);const _0x2f8e94=JSON['parse'](_0x3940c5);if(_0x2f8e94['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x140),!![]),'schemaVersion':_0x2f8e94['schemaVersion'],'message':_0x375011(0x144)+String(_0x2f8e94[_0x375011(0x118)])};if(!Array[_0x375011(0x13e)](_0x2f8e94[_0x375011(0x115)]))return{...emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x140),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2f8e94[_0x375011(0x11e)],'message':_0x375011(0x105)};const _0x3891ab=_0x2f8e94[_0x375011(0x115)][_0x375011(0x11f)](summarizeLocalServiceEntry);return{'registryPath':_0x933b7c,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2f8e94[_0x375011(0x11e)],'serviceCount':_0x3891ab['length'],'commandCount':_0x3891ab['reduce']((_0x4111a2,_0x1f1a18)=>_0x4111a2+_0x1f1a18['commandCount'],0x0),'services':_0x3891ab};}catch(_0x1513f6){return{...emptyServiceRegistryInspection(_0x933b7c,'invalid',!![]),'message':_0x1513f6 instanceof Error?_0x1513f6[_0x375011(0x10a)]:String(_0x1513f6)};}}export function formatValidationFailure(_0x57e7b8){const _0x31e79a=a34_0x2cf5c5,_0x4a5475=_0x57e7b8[_0x31e79a(0x136)][_0x31e79a(0x11f)](_0x40210c=>_0x40210c['path']+':\x20'+_0x40210c[_0x31e79a(0x10a)]);return _0x31e79a(0x111)+_0x4a5475[_0x31e79a(0x133)]('\x0a');}function extractLoadedServiceManifests(_0x22bd4a,_0x4c171a){if(!isServiceRegistryLike(_0x22bd4a)){const _0x2a804f=_0x22bd4a,_0x216ade=validateServiceTreeManifest(_0x2a804f);return[{'manifest':_0x2a804f,'report':_0x216ade,'normalizedManifest':_0x216ade['ok']?normalizeServiceTreeManifest(_0x2a804f):undefined,'sourceHash':_0x4c171a}];}return _0x22bd4a['services']['map']((_0x2b8dba,_0x342b52)=>{const _0x149780=a34_0x5488,_0x105185=isObjectRecord(_0x2b8dba)?_0x2b8dba[_0x149780(0x13d)]:undefined,_0x5d6287=validateServiceTreeManifest(_0x105185),_0x156ad2=isObjectRecord(_0x2b8dba)&&typeof _0x2b8dba[_0x149780(0x127)]===_0x149780(0x101)?_0x2b8dba[_0x149780(0x127)]:undefined;return{'manifest':_0x105185,'report':_0x5d6287,'normalizedManifest':_0x5d6287['ok']?normalizeServiceTreeManifest(_0x105185):undefined,'sourceHash':sha256(JSON[_0x149780(0x146)](_0x105185,null,0x2)+'\x0a'),'registryIndex':_0x342b52,'registryServiceCode':_0x156ad2};});}function aggregateValidationReports(_0x1730bf){const _0x36e777=a34_0x2cf5c5,_0x568fa3=_0x1730bf[_0x36e777(0x131)](_0x579599=>_0x579599['registryIndex']===undefined?_0x579599[_0x36e777(0x10e)]['errors']:_0x579599[_0x36e777(0x10e)][_0x36e777(0x136)][_0x36e777(0x11f)](_0x3ee379=>({..._0x3ee379,'path':prefixRegistryIssuePath(_0x579599['registryIndex'],_0x3ee379[_0x36e777(0x119)])}))),_0x413938=_0x1730bf['flatMap'](_0x29009b=>_0x29009b[_0x36e777(0x10c)]===undefined?_0x29009b[_0x36e777(0x10e)][_0x36e777(0x12b)]:_0x29009b[_0x36e777(0x10e)][_0x36e777(0x12b)]['map'](_0x68e13d=>({..._0x68e13d,'path':prefixRegistryIssuePath(_0x29009b[_0x36e777(0x10c)],_0x68e13d['path'])})));return{'ok':_0x568fa3[_0x36e777(0x106)]===0x0,'errors':_0x568fa3,'warnings':_0x413938};}function prefixRegistryIssuePath(_0x341c5d,_0xc1fe86){const _0x436c9e=a34_0x2cf5c5;if(_0xc1fe86==='$')return _0x436c9e(0xfe)+_0x341c5d+'].manifest';if(_0xc1fe86[_0x436c9e(0x112)]('$.'))return _0x436c9e(0xfe)+_0x341c5d+'].manifest'+_0xc1fe86[_0x436c9e(0xfd)](0x1);if(_0xc1fe86[_0x436c9e(0x112)]('$['))return _0x436c9e(0xfe)+_0x341c5d+'].manifest'+_0xc1fe86[_0x436c9e(0xfd)](0x1);return _0x436c9e(0xfe)+_0x341c5d+'].manifest.'+_0xc1fe86;}function a34_0x5488(_0x847316,_0x419c75){_0x847316=_0x847316-0xfb;const _0x1d23f5=a34_0x1d23();let _0x548848=_0x1d23f5[_0x847316];return _0x548848;}function isServiceRegistryLike(_0x38ab94){const _0xb325d9=a34_0x2cf5c5;return isObjectRecord(_0x38ab94)&&_0x38ab94[_0xb325d9(0x118)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0xb325d9(0x13e)](_0x38ab94[_0xb325d9(0x115)]);}function isObjectRecord(_0x3c5637){const _0x4a8a9f=a34_0x2cf5c5;return Boolean(_0x3c5637)&&typeof _0x3c5637===_0x4a8a9f(0x135)&&!Array[_0x4a8a9f(0x13e)](_0x3c5637);}function emptyServiceRegistryInspection(_0x27da1d,_0x4c4804,_0x29608b){return{'registryPath':_0x27da1d,'exists':_0x29608b,'status':_0x4c4804,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x26f95f){const _0x1dd35e=a34_0x2cf5c5,_0x1b3343=_0x26f95f[_0x1dd35e(0x13c)],_0x4e6840=_0x1b3343['commands'][_0x1dd35e(0x11f)](_0x3f5079=>({'path':_0x3f5079[_0x1dd35e(0x142)],'description':_0x3f5079[_0x1dd35e(0x12a)],'risk':_0x3f5079['risk'],'targetKind':_0x3f5079['target'][_0x1dd35e(0x132)],'targetCommand':_0x3f5079[_0x1dd35e(0x11c)][_0x1dd35e(0x103)]}));return{'serviceCode':_0x26f95f['serviceCode'],'name':_0x1b3343[_0x1dd35e(0x104)][_0x1dd35e(0x102)],'description':_0x1b3343[_0x1dd35e(0x104)]['description'],'version':_0x26f95f['version'],'importedAt':_0x26f95f[_0x1dd35e(0xfb)],'source':_0x26f95f[_0x1dd35e(0x139)],'commandCount':_0x4e6840[_0x1dd35e(0x106)],'commands':_0x4e6840};}function a34_0x1d23(){const _0x5464f0=['now','schemaVersion','path','utf8','parse','target','push','updatedAt','map','update','missing','digest','service.json','homeDir','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','localeCompare','serviceCode','446465ZfqbuL','7756680gmWyfm','description','warnings','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','empty','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','sha256','36vUKeNe','flatMap','kind','join','Invalid\x20service\x20registry\x20JSON:\x20','object','errors','441dLACPj','24380wrTUyF','source','code','.tmp','normalizedManifest','manifest','isArray','ENOENT','invalid','Remove\x20or\x20migrate\x20','cliPath','sourceHash','Unsupported\x20schemaVersion:\x20','Invalid\x20service\x20manifest\x20JSON:\x20','stringify','25825131EPpAqI','importedAt','trim','slice','$.services[','validation','CliError','string','name','command','service','services\x20must\x20be\x20an\x20array','length','find','splice','3536194DhZFzi','message','Local\x20service\x20not\x20found:\x20','registryIndex','540947HCtnEM','report','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','Cannot\x20write\x20service\x20registry:\x20','Service\x20manifest\x20validation\x20failed:\x0a','startsWith','hex','toISOString','services','12276285kxlFvB'];a34_0x1d23=function(){return _0x5464f0;};return a34_0x1d23();}function sha256(_0x2dadec){const _0xb57512=a34_0x2cf5c5;return createHash(_0xb57512(0x12f))[_0xb57512(0x120)](_0x2dadec)[_0xb57512(0x122)](_0xb57512(0x113));}
|
|
1
|
+
const a34_0x1fae47=a34_0x433a;(function(_0x28591b,_0x425ea5){const _0x6e696=a34_0x433a,_0x5822e8=_0x28591b();while(!![]){try{const _0x2f9a9b=parseInt(_0x6e696(0x1e4))/0x1+-parseInt(_0x6e696(0x1e2))/0x2+parseInt(_0x6e696(0x1a0))/0x3+-parseInt(_0x6e696(0x1be))/0x4*(-parseInt(_0x6e696(0x1d8))/0x5)+parseInt(_0x6e696(0x1ac))/0x6+-parseInt(_0x6e696(0x1c2))/0x7+-parseInt(_0x6e696(0x19f))/0x8*(parseInt(_0x6e696(0x1cb))/0x9);if(_0x2f9a9b===_0x425ea5)break;else _0x5822e8['push'](_0x5822e8['shift']());}catch(_0x15d5c0){_0x5822e8['push'](_0x5822e8['shift']());}}}(a34_0xa907,0xe705a));function a34_0x433a(_0x52eaff,_0x1c9581){_0x52eaff=_0x52eaff-0x19a;const _0xa907c3=a34_0xa907();let _0x433abd=_0xa907c3[_0x52eaff];return _0x433abd;}import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x1fae47(0x1c5);export function getServiceRegistryPath(_0x24a88c={}){const _0x1e75b8=a34_0x1fae47;return resolve(_0x24a88c['homeDir']??homedir(),PRODUCT_CONFIG[_0x1e75b8(0x1ce)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x19e4ea={}){const _0x1fed7f=a34_0x1fae47,_0x1269bb=getServiceRegistryPath(_0x19e4ea);if(!existsSync(_0x1269bb))return emptyServiceRegistry();try{const _0x351cad=readFileSync(_0x1269bb,'utf8');if(!_0x351cad[_0x1fed7f(0x19c)]())return emptyServiceRegistry();const _0x3d7191=JSON[_0x1fed7f(0x1e3)](_0x351cad);if(_0x3d7191[_0x1fed7f(0x1d6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x1fed7f(0x19a)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x3d7191[_0x1fed7f(0x1d6)]),_0x1fed7f(0x1b5)+_0x1269bb+'.');if(!Array[_0x1fed7f(0x1d4)](_0x3d7191[_0x1fed7f(0x1db)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3d7191[_0x1fed7f(0x1a5)],'services':_0x3d7191[_0x1fed7f(0x1db)]};}catch(_0xe55a95){if(_0xe55a95 instanceof Error&&_0xe55a95[_0x1fed7f(0x1c1)]===_0x1fed7f(0x1ab))throw _0xe55a95;throw CliErrors[_0x1fed7f(0x19a)](_0x1fed7f(0x1bf)+_0x1269bb,_0x1fed7f(0x1aa));}}export function writeServiceRegistry(_0x1a4f22,_0x528d9c={}){const _0x128978=a34_0x1fae47,_0x29d2a4=getServiceRegistryPath(_0x528d9c),_0x56a14f=dirname(_0x29d2a4);!existsSync(_0x56a14f)&&mkdirSync(_0x56a14f,{'recursive':!![]});const _0x488d91=_0x29d2a4+_0x128978(0x1a7);try{writeFileSync(_0x488d91,JSON['stringify'](_0x1a4f22,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x488d91,_0x29d2a4);}catch(_0x4868db){try{unlinkSync(_0x488d91);}catch{}if(_0x4868db?.[_0x128978(0x1d0)]===_0x128978(0x1ea))throw CliErrors[_0x128978(0x19a)](_0x128978(0x19d)+_0x29d2a4);throw _0x4868db;}return _0x29d2a4;}export function loadServiceManifestFromFile(_0x2448d5){const _0x210266=a34_0x1fae47,_0xe1bd99=resolve(_0x2448d5);if(!existsSync(_0xe1bd99))throw CliErrors['validation'](_0x210266(0x1c9)+_0x2448d5);let _0x434323;const _0x7bf315=readFileSync(_0xe1bd99,_0x210266(0x1a9));try{_0x434323=JSON[_0x210266(0x1e3)](_0x7bf315);}catch{throw CliErrors[_0x210266(0x19a)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x2448d5,_0x210266(0x1a1));}const _0x33bee8=sha256(_0x7bf315),_0x57bda2=extractLoadedServiceManifests(_0x434323,_0x33bee8),_0xf222e2=aggregateValidationReports(_0x57bda2),_0x108e09=_0x57bda2[0x0];return{'filePath':_0xe1bd99,'hash':_0x33bee8,'kind':isServiceRegistryLike(_0x434323)?'registry':_0x210266(0x1d5),'manifest':_0x108e09?.[_0x210266(0x1d5)]??_0x434323,'report':_0xf222e2,'normalizedManifest':_0x57bda2['length']===0x1?_0x108e09?.[_0x210266(0x1b7)]:undefined,'manifests':_0x57bda2};}export function importServiceManifest(_0x5dbc2e,_0x3d50e6={}){const _0xe4b441=a34_0x1fae47,_0xe30654=loadServiceManifestFromFile(_0x5dbc2e);if(!_0xe30654[_0xe4b441(0x1dd)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0xe30654[_0xe4b441(0x1dd)]),_0xe4b441(0x19e));if(_0xe30654[_0xe4b441(0x1cd)][_0xe4b441(0x1e5)]===0x0)throw CliErrors[_0xe4b441(0x19a)](_0xe4b441(0x1e7),_0xe4b441(0x1d2));const _0x47581b=readServiceRegistry(_0x3d50e6),_0x2bc595=(_0x3d50e6[_0xe4b441(0x1da)]??(()=>new Date()))()[_0xe4b441(0x1e6)](),_0xaff90b=[];let _0x3b4c69=0x0,_0x407016=0x0;for(const _0x5c7b6b of _0xe30654[_0xe4b441(0x1cd)]){if(!_0x5c7b6b[_0xe4b441(0x1b7)])continue;const _0x3f6143=_0x5c7b6b[_0xe4b441(0x1b7)][_0xe4b441(0x1b6)]['code'],_0x4ddfea={'serviceCode':_0x3f6143,'version':_0x5c7b6b[_0xe4b441(0x1b7)][_0xe4b441(0x1d1)],'importedAt':_0x2bc595,'source':{'type':_0xe4b441(0x1b2),'path':_0xe30654[_0xe4b441(0x1af)],'hash':_0x5c7b6b['sourceHash']},'manifest':_0x5c7b6b[_0xe4b441(0x1d5)],'normalizedManifest':_0x5c7b6b[_0xe4b441(0x1b7)]},_0x55fe65=_0x47581b[_0xe4b441(0x1db)][_0xe4b441(0x1ad)](_0x532438=>_0x532438[_0xe4b441(0x1de)]===_0x3f6143);_0x55fe65>=0x0?(_0x47581b[_0xe4b441(0x1db)][_0x55fe65]=_0x4ddfea,_0x407016++):(_0x47581b['services']['push'](_0x4ddfea),_0x3b4c69++),_0xaff90b['push'](_0x4ddfea);}_0x47581b[_0xe4b441(0x1db)][_0xe4b441(0x1bc)]((_0x59282d,_0xb4c013)=>_0x59282d[_0xe4b441(0x1de)]['localeCompare'](_0xb4c013[_0xe4b441(0x1de)])),_0x47581b[_0xe4b441(0x1a5)]=_0x2bc595;const _0x16cb33=writeServiceRegistry(_0x47581b,_0x3d50e6);return{'registryPath':_0x16cb33,'entry':_0xaff90b[0x0],'replaced':_0xaff90b[_0xe4b441(0x1e5)]===0x1?_0x407016===0x1:_0x407016>0x0,'entries':_0xaff90b,'imported':_0x3b4c69,'updated':_0x407016,'serviceCount':_0x47581b['services'][_0xe4b441(0x1e5)]};}export function exportServiceManifest(_0x1891c8,_0x9050f,_0x3ddc24={}){const _0x35635d=a34_0x1fae47,_0x1b1f6f=getServiceRegistryPath(_0x3ddc24),_0x4010b0=getLocalServiceEntry(_0x1891c8,_0x3ddc24);if(!_0x4010b0)throw CliErrors[_0x35635d(0x19a)](_0x35635d(0x1a2)+_0x1891c8,_0x35635d(0x1df));const _0x32bd07=resolve(_0x9050f),_0x26561c=dirname(_0x32bd07);return!existsSync(_0x26561c)&&mkdirSync(_0x26561c,{'recursive':!![]}),writeFileSync(_0x32bd07,JSON[_0x35635d(0x1eb)](_0x4010b0[_0x35635d(0x1d5)],null,0x2)+'\x0a',{'encoding':_0x35635d(0x1a9),'mode':0x180}),{'registryPath':_0x1b1f6f,'filePath':_0x32bd07,'entry':_0x4010b0};}export function removeServiceManifest(_0x4fbf91,_0x3c5cad={}){const _0x19577d=a34_0x1fae47,_0x5a8ed0=readServiceRegistry(_0x3c5cad),_0x304297=_0x4fbf91[_0x19577d(0x19c)](),_0x538e2b=_0x5a8ed0[_0x19577d(0x1db)][_0x19577d(0x1ad)](_0x37fa19=>_0x37fa19['serviceCode']===_0x304297);if(_0x538e2b<0x0)throw CliErrors[_0x19577d(0x19a)](_0x19577d(0x1a2)+_0x304297,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x3870ad]=_0x5a8ed0[_0x19577d(0x1db)][_0x19577d(0x1e9)](_0x538e2b,0x1),_0xf43a01=(_0x3c5cad[_0x19577d(0x1da)]??(()=>new Date()))()[_0x19577d(0x1e6)]();_0x5a8ed0[_0x19577d(0x1a5)]=_0xf43a01;const _0x2842e1=writeServiceRegistry(_0x5a8ed0,_0x3c5cad);return{'registryPath':_0x2842e1,'entry':_0x3870ad,'serviceCount':_0x5a8ed0[_0x19577d(0x1db)][_0x19577d(0x1e5)]};}export function listLocalServices(_0x4a03b9={}){const _0x5a4894=a34_0x1fae47;return readServiceRegistry(_0x4a03b9)[_0x5a4894(0x1db)];}export function getLocalServiceEntry(_0x3bdffe,_0x48fb8a={}){const _0x41d253=a34_0x1fae47;return readServiceRegistry(_0x48fb8a)[_0x41d253(0x1db)]['find'](_0x260e88=>_0x260e88[_0x41d253(0x1de)]===_0x3bdffe[_0x41d253(0x19c)]());}function a34_0xa907(){const _0x2bcd44=['message','$.services[','updatedAt','Unsupported\x20schemaVersion:\x20','.tmp','sha256','utf8','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','CliError','111552hfBiDt','findIndex','].manifest','filePath','update','warnings','file','source','description','Remove\x20or\x20migrate\x20','service','normalizedManifest','string','importedAt','map','target','sort','flatMap','28180xvuyIc','Invalid\x20service\x20registry\x20JSON:\x20','risk','name','3114692gVPwWo','command','commands','service.json','invalid','join','kind','Service\x20manifest\x20file\x20not\x20found:\x20','registryIndex','9024471CoipQZ','services\x20must\x20be\x20an\x20array','manifests','homeDirName','errors','code','version','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','hex','isArray','manifest','schemaVersion','Service\x20manifest\x20validation\x20failed:\x0a','290vfpqwj','startsWith','now','services','].manifest.','report','serviceCode','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','path','cliPath','358176Jmyhpa','parse','1771691gtoflU','length','toISOString','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','empty','splice','ENOENT','stringify','validation','slice','trim','Cannot\x20write\x20service\x20registry:\x20','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','8sFCjST','1122408RguDOy','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Local\x20service\x20not\x20found:\x20'];a34_0xa907=function(){return _0x2bcd44;};return a34_0xa907();}export function listLocalServiceTrees(_0x4e6b97={}){const _0x2992db=a34_0x1fae47;return readServiceRegistry(_0x4e6b97)['services'][_0x2992db(0x1ba)](_0x108407=>_0x108407['normalizedManifest']);}export function inspectServiceRegistry(_0x5eb2a3={}){const _0x531855=a34_0x1fae47,_0x1d3d94=getServiceRegistryPath(_0x5eb2a3);if(!existsSync(_0x1d3d94))return emptyServiceRegistryInspection(_0x1d3d94,'missing',![]);try{const _0x116658=readFileSync(_0x1d3d94,_0x531855(0x1a9));if(!_0x116658[_0x531855(0x19c)]())return emptyServiceRegistryInspection(_0x1d3d94,_0x531855(0x1e8),!![]);const _0x5a02fc=JSON[_0x531855(0x1e3)](_0x116658);if(_0x5a02fc['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1d3d94,_0x531855(0x1c6),!![]),'schemaVersion':_0x5a02fc[_0x531855(0x1d6)],'message':_0x531855(0x1a6)+String(_0x5a02fc[_0x531855(0x1d6)])};if(!Array[_0x531855(0x1d4)](_0x5a02fc['services']))return{...emptyServiceRegistryInspection(_0x1d3d94,_0x531855(0x1c6),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5a02fc['updatedAt'],'message':_0x531855(0x1cc)};const _0x5d3939=_0x5a02fc[_0x531855(0x1db)][_0x531855(0x1ba)](summarizeLocalServiceEntry);return{'registryPath':_0x1d3d94,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5a02fc[_0x531855(0x1a5)],'serviceCount':_0x5d3939[_0x531855(0x1e5)],'commandCount':_0x5d3939['reduce']((_0x1e4fcd,_0x4d47dd)=>_0x1e4fcd+_0x4d47dd['commandCount'],0x0),'services':_0x5d3939};}catch(_0x1da14f){return{...emptyServiceRegistryInspection(_0x1d3d94,_0x531855(0x1c6),!![]),'message':_0x1da14f instanceof Error?_0x1da14f[_0x531855(0x1a3)]:String(_0x1da14f)};}}export function formatValidationFailure(_0x13e869){const _0x463a69=a34_0x1fae47,_0x1e6f83=_0x13e869[_0x463a69(0x1cf)][_0x463a69(0x1ba)](_0x1b37d5=>_0x1b37d5[_0x463a69(0x1e0)]+':\x20'+_0x1b37d5[_0x463a69(0x1a3)]);return _0x463a69(0x1d7)+_0x1e6f83[_0x463a69(0x1c7)]('\x0a');}function extractLoadedServiceManifests(_0x37154f,_0x5ac37d){const _0x4424a5=a34_0x1fae47;if(!isServiceRegistryLike(_0x37154f)){const _0x401d26=_0x37154f,_0x4023a7=validateServiceTreeManifest(_0x401d26);return[{'manifest':_0x401d26,'report':_0x4023a7,'normalizedManifest':_0x4023a7['ok']?normalizeServiceTreeManifest(_0x401d26):undefined,'sourceHash':_0x5ac37d}];}return _0x37154f['services'][_0x4424a5(0x1ba)]((_0x273b49,_0x39cc33)=>{const _0x4b7651=_0x4424a5,_0x557bc1=isObjectRecord(_0x273b49)?_0x273b49['manifest']:undefined,_0x137698=validateServiceTreeManifest(_0x557bc1),_0x1535fc=isObjectRecord(_0x273b49)&&typeof _0x273b49['serviceCode']===_0x4b7651(0x1b8)?_0x273b49[_0x4b7651(0x1de)]:undefined;return{'manifest':_0x557bc1,'report':_0x137698,'normalizedManifest':_0x137698['ok']?normalizeServiceTreeManifest(_0x557bc1):undefined,'sourceHash':sha256(JSON[_0x4b7651(0x1eb)](_0x557bc1,null,0x2)+'\x0a'),'registryIndex':_0x39cc33,'registryServiceCode':_0x1535fc};});}function aggregateValidationReports(_0x2c1885){const _0x3316ae=a34_0x1fae47,_0x585e9f=_0x2c1885[_0x3316ae(0x1bd)](_0x3a43ed=>_0x3a43ed[_0x3316ae(0x1ca)]===undefined?_0x3a43ed[_0x3316ae(0x1dd)][_0x3316ae(0x1cf)]:_0x3a43ed[_0x3316ae(0x1dd)][_0x3316ae(0x1cf)][_0x3316ae(0x1ba)](_0x29959e=>({..._0x29959e,'path':prefixRegistryIssuePath(_0x3a43ed['registryIndex'],_0x29959e[_0x3316ae(0x1e0)])}))),_0x618f21=_0x2c1885[_0x3316ae(0x1bd)](_0x1d24b6=>_0x1d24b6['registryIndex']===undefined?_0x1d24b6[_0x3316ae(0x1dd)]['warnings']:_0x1d24b6[_0x3316ae(0x1dd)][_0x3316ae(0x1b1)][_0x3316ae(0x1ba)](_0x4af1aa=>({..._0x4af1aa,'path':prefixRegistryIssuePath(_0x1d24b6[_0x3316ae(0x1ca)],_0x4af1aa[_0x3316ae(0x1e0)])})));return{'ok':_0x585e9f[_0x3316ae(0x1e5)]===0x0,'errors':_0x585e9f,'warnings':_0x618f21};}function prefixRegistryIssuePath(_0x2a15fc,_0x421c03){const _0x371d1c=a34_0x1fae47;if(_0x421c03==='$')return _0x371d1c(0x1a4)+_0x2a15fc+_0x371d1c(0x1ae);if(_0x421c03[_0x371d1c(0x1d9)]('$.'))return _0x371d1c(0x1a4)+_0x2a15fc+'].manifest'+_0x421c03[_0x371d1c(0x19b)](0x1);if(_0x421c03['startsWith']('$['))return'$.services['+_0x2a15fc+_0x371d1c(0x1ae)+_0x421c03[_0x371d1c(0x19b)](0x1);return _0x371d1c(0x1a4)+_0x2a15fc+_0x371d1c(0x1dc)+_0x421c03;}function isServiceRegistryLike(_0x187d39){const _0x22074e=a34_0x1fae47;return isObjectRecord(_0x187d39)&&_0x187d39['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x22074e(0x1d4)](_0x187d39[_0x22074e(0x1db)]);}function isObjectRecord(_0x2f8fa2){const _0x3cdd9e=a34_0x1fae47;return Boolean(_0x2f8fa2)&&typeof _0x2f8fa2==='object'&&!Array[_0x3cdd9e(0x1d4)](_0x2f8fa2);}function emptyServiceRegistryInspection(_0x8b21da,_0x2f4009,_0x5041dd){return{'registryPath':_0x8b21da,'exists':_0x5041dd,'status':_0x2f4009,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x4bf53e){const _0x3f88cc=a34_0x1fae47,_0x5e16e6=_0x4bf53e[_0x3f88cc(0x1b7)],_0x3d7287=_0x5e16e6[_0x3f88cc(0x1c4)][_0x3f88cc(0x1ba)](_0x4f884b=>({'path':_0x4f884b[_0x3f88cc(0x1e1)],'description':_0x4f884b[_0x3f88cc(0x1b4)],'risk':_0x4f884b[_0x3f88cc(0x1c0)],'targetKind':_0x4f884b[_0x3f88cc(0x1bb)][_0x3f88cc(0x1c8)],'targetCommand':_0x4f884b[_0x3f88cc(0x1bb)][_0x3f88cc(0x1c3)]}));return{'serviceCode':_0x4bf53e[_0x3f88cc(0x1de)],'name':_0x5e16e6[_0x3f88cc(0x1b6)][_0x3f88cc(0x1c1)],'description':_0x5e16e6[_0x3f88cc(0x1b6)][_0x3f88cc(0x1b4)],'version':_0x4bf53e[_0x3f88cc(0x1d1)],'importedAt':_0x4bf53e[_0x3f88cc(0x1b9)],'source':_0x4bf53e[_0x3f88cc(0x1b3)],'commandCount':_0x3d7287[_0x3f88cc(0x1e5)],'commands':_0x3d7287};}function sha256(_0x3e7935){const _0x2155c2=a34_0x1fae47;return createHash(_0x2155c2(0x1a8))[_0x2155c2(0x1b0)](_0x3e7935)['digest'](_0x2155c2(0x1d3));}
|