@lovrabet/lovrabet-cli 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
package/lib/commands/kb/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a27_0x24ea57=a27_0x5459;function a27_0x34e7(){const _0x550aec=['7604200BwRhIP','detail','trim','build','list','verbose','4661836RoWZJF','File\x20not\x20found:\x20','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','6081348bqnjPP','topk','content','create','string','number','updateTime','utf8','isFinite','/client/knowledge-base/personal/','write','file','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','length','22859efQQBg','scope','7229349GocQPV','query','update','File\x20is\x20not\x20a\x20regular\x20file:\x20','str','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','version','POST','userId','Personal\x20knowledge-base\x20entry\x20ID','8tHJKxL','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','num','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','map','ragStatus','ragErrorMessage','title','description','score','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','validation','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','328362nOKAcc','weightedScore','flag','docId','appCode','read','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','metadata','search','58erSAHE','5iIZFEw','658668ocUorz','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20'];a27_0x34e7=function(){return _0x550aec;};return a27_0x34e7();}(function(_0x346f61,_0x131225){const _0x1b8a46=a27_0x5459,_0x1c71d4=_0x346f61();while(!![]){try{const _0x3fc1c9=parseInt(_0x1b8a46(0x1c1))/0x1*(parseInt(_0x1b8a46(0x1a5))/0x2)+parseInt(_0x1b8a46(0x1a7))/0x3+-parseInt(_0x1b8a46(0x1af))/0x4+-parseInt(_0x1b8a46(0x1a6))/0x5*(-parseInt(_0x1b8a46(0x1da))/0x6)+-parseInt(_0x1b8a46(0x1b3))/0x7*(-parseInt(_0x1b8a46(0x1cd))/0x8)+-parseInt(_0x1b8a46(0x1c3))/0x9+parseInt(_0x1b8a46(0x1a9))/0xa;if(_0x3fc1c9===_0x131225)break;else _0x1c71d4['push'](_0x1c71d4['shift']());}catch(_0x1ace28){_0x1c71d4['push'](_0x1c71d4['shift']());}}}(a27_0x34e7,0x91e9a));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';function a27_0x5459(_0x14114b,_0x351aab){_0x14114b=_0x14114b-0x1a3;const _0x34e771=a27_0x34e7();let _0x545927=_0x34e771[_0x14114b];return _0x545927;}const TITLE_FLAG={'name':'title','type':a27_0x24ea57(0x1b7),'required':!![],'description':'Personal\x20knowledge-base\x20entry\x20title'},FILE_FLAG={'name':a27_0x24ea57(0x1be),'type':a27_0x24ea57(0x1b7),'required':!![],'description':a27_0x24ea57(0x1d9)},QUERY_FLAG={'name':'query','type':a27_0x24ea57(0x1b7),'required':!![],'description':a27_0x24ea57(0x1c8)},TOPK_FLAG={'name':a27_0x24ea57(0x1b4),'type':a27_0x24ea57(0x1b8),'description':a27_0x24ea57(0x1bf)};function readKnowledgeFile(_0x5cd896){const _0x3ef2e9=a27_0x24ea57;if(!_0x5cd896)throw CliErrors[_0x3ef2e9(0x1d8)]('File\x20path\x20is\x20required.');if(!existsSync(_0x5cd896))throw CliErrors['validation'](_0x3ef2e9(0x1b0)+_0x5cd896);if(!statSync(_0x5cd896)['isFile']())throw CliErrors[_0x3ef2e9(0x1d8)](_0x3ef2e9(0x1c6)+_0x5cd896);return readFileSync(_0x5cd896,_0x3ef2e9(0x1ba));}function summarizePersonalItem(_0x539cc9){const _0x335993=a27_0x24ea57;return{'id':_0x539cc9['id'],'title':_0x539cc9[_0x335993(0x1d4)],'version':_0x539cc9[_0x335993(0x1c9)],'ragStatus':_0x539cc9[_0x335993(0x1d2)],'ragErrorMessage':_0x539cc9[_0x335993(0x1d3)],'updateTime':_0x539cc9[_0x335993(0x1b9)]};}function detailPersonalItem(_0x2a7c72){const _0x274a28=a27_0x24ea57;return{'id':_0x2a7c72['id'],'appCode':_0x2a7c72['appCode'],'scope':_0x2a7c72['scope'],'userId':_0x2a7c72[_0x274a28(0x1cb)],'title':_0x2a7c72['title'],'content':_0x2a7c72[_0x274a28(0x1b5)]??'','version':_0x2a7c72[_0x274a28(0x1c9)],'ragStatus':_0x2a7c72[_0x274a28(0x1d2)],'ragErrorMessage':_0x2a7c72[_0x274a28(0x1d3)],'createTime':_0x2a7c72['createTime'],'updateTime':_0x2a7c72[_0x274a28(0x1b9)]};}function summarizeSearchHit(_0x24174a){const _0x4d1e8e=a27_0x24ea57;return{'scope':_0x24174a[_0x4d1e8e(0x1c2)],'docId':_0x24174a[_0x4d1e8e(0x1dd)],'score':_0x24174a[_0x4d1e8e(0x1d6)],'weightedScore':_0x24174a[_0x4d1e8e(0x1db)],'content':_0x24174a['content'],'metadata':_0x24174a[_0x4d1e8e(0x1a3)]};}function readTopK(_0x3ef4bc){const _0x24f8d2=a27_0x24ea57,_0x3461ba=_0x3ef4bc[_0x24f8d2(0x1dc)]('topk');if(_0x3461ba===undefined||_0x3461ba===null||_0x3461ba==='')return undefined;const _0x4ddb11=_0x3ef4bc['num'](_0x24f8d2(0x1b4));if(!Number[_0x24f8d2(0x1bb)](_0x4ddb11)||_0x4ddb11<0x1)throw CliErrors[_0x24f8d2(0x1d8)]('--topk\x20must\x20be\x20a\x20positive\x20number.');return _0x4ddb11;}const kbList={'service':'kb','command':a27_0x24ea57(0x1ad),'description':a27_0x24ea57(0x1d7),'risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x4f5466){const _0x1e5291=a27_0x24ea57,_0x9d1eda=await listPersonalKnowledgeBaseItems(_0x4f5466['appCode']);if(_0x4f5466['bool'](_0x1e5291(0x1ae)))return{'ok':!![],'data':{'total':_0x9d1eda[_0x1e5291(0x1c0)],'items':_0x9d1eda}};return{'ok':!![],'data':{'total':_0x9d1eda[_0x1e5291(0x1c0)],'items':_0x9d1eda[_0x1e5291(0x1d1)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x24ea57(0x1aa),'description':a27_0x24ea57(0x1d0),'risk':a27_0x24ea57(0x1df),'flags':[{...ID_FLAG,'description':a27_0x24ea57(0x1cc)}],async 'execute'(_0xbca40d){const _0xb9ce14=a27_0x24ea57,_0x178caf=await getPersonalKnowledgeBaseItem(_0xbca40d['num']('id'),_0xbca40d[_0xb9ce14(0x1de)]);return{'ok':!![],'data':detailPersonalItem(_0x178caf)};}},kbCreate={'service':'kb','command':a27_0x24ea57(0x1b6),'description':a27_0x24ea57(0x1b1),'risk':'write','flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x4bf8a9){const _0x57f0ed=a27_0x24ea57,_0x1803ef=_0x4bf8a9[_0x57f0ed(0x1c7)]('title'),_0x16e863=readKnowledgeFile(_0x4bf8a9[_0x57f0ed(0x1c7)](_0x57f0ed(0x1be))),_0x5471e0=await createPersonalKnowledgeBaseItem(_0x4bf8a9[_0x57f0ed(0x1de)],{'title':_0x1803ef,'content':_0x16e863});return{'ok':!![],'data':summarizePersonalItem(_0x5471e0),'message':'Created\x20KB\x20entry\x20'+_0x5471e0['id']+'\x20('+_0x5471e0[_0x57f0ed(0x1d4)]+')'};},async 'dryRun'(_0x45d5e9){const _0xfaba62=a27_0x24ea57,_0x34ed17=_0x45d5e9['str']('title'),_0x15746d=readKnowledgeFile(_0x45d5e9[_0xfaba62(0x1c7)](_0xfaba62(0x1be)));return dryRun(_0xfaba62(0x1ca),'/client/knowledge-base/personal/create')['body']({'appCode':_0x45d5e9['appCode'],'title':_0x34ed17,'content':_0x15746d})[_0xfaba62(0x1d5)](_0xfaba62(0x1b2)+_0x34ed17+'\x22')[_0xfaba62(0x1ac)]();}},kbUpdate={'service':'kb','command':a27_0x24ea57(0x1c5),'description':a27_0x24ea57(0x1e0),'risk':a27_0x24ea57(0x1bd),'flags':[{...ID_FLAG,'description':a27_0x24ea57(0x1cc)},{...TITLE_FLAG,'required':![],'description':'Override\x20the\x20existing\x20entry\x20title'},FILE_FLAG],async 'execute'(_0x5149d3){const _0x28866e=a27_0x24ea57,_0x2f512b=_0x5149d3[_0x28866e(0x1cf)]('id'),_0x185987=readKnowledgeFile(_0x5149d3[_0x28866e(0x1c7)](_0x28866e(0x1be))),_0xc22633=_0x5149d3[_0x28866e(0x1c7)](_0x28866e(0x1d4))||(await getPersonalKnowledgeBaseItem(_0x2f512b,_0x5149d3[_0x28866e(0x1de)]))[_0x28866e(0x1d4)],_0x32df33=await updatePersonalKnowledgeBaseItem(_0x2f512b,_0x5149d3[_0x28866e(0x1de)],{'title':_0xc22633,'content':_0x185987});return{'ok':!![],'data':summarizePersonalItem(_0x32df33),'message':'Updated\x20KB\x20entry\x20'+_0x32df33['id']+'\x20('+_0x32df33['title']+')'};},async 'dryRun'(_0x3427c4){const _0x489b80=a27_0x24ea57,_0x2ed0c7=_0x3427c4[_0x489b80(0x1cf)]('id'),_0x3c2e67=readKnowledgeFile(_0x3427c4[_0x489b80(0x1c7)](_0x489b80(0x1be))),_0x489cbb=_0x3427c4[_0x489b80(0x1c7)]('title')||(await getPersonalKnowledgeBaseItem(_0x2ed0c7,_0x3427c4[_0x489b80(0x1de)]))[_0x489b80(0x1d4)];return dryRun(_0x489b80(0x1ca),_0x489b80(0x1bc)+_0x2ed0c7+'/update')['body']({'appCode':_0x3427c4[_0x489b80(0x1de)],'title':_0x489cbb,'content':_0x3c2e67})[_0x489b80(0x1d5)](_0x489b80(0x1a8)+_0x2ed0c7)[_0x489b80(0x1ac)]();}},kbSearch={'service':'kb','command':a27_0x24ea57(0x1a4),'description':a27_0x24ea57(0x1ce),'risk':a27_0x24ea57(0x1df),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x275e53){const _0x40fe0d=a27_0x24ea57;if(!_0x275e53['str'](_0x40fe0d(0x1c4))['trim']())throw CliErrors[_0x40fe0d(0x1d8)]('Search\x20query\x20is\x20required.');readTopK(_0x275e53);},async 'execute'(_0x24826b){const _0x49e2ad=a27_0x24ea57,_0x488ff1=_0x24826b[_0x49e2ad(0x1c7)](_0x49e2ad(0x1c4))[_0x49e2ad(0x1ab)](),_0x11d229=readTopK(_0x24826b),_0x552745=await searchKnowledgeBase(_0x24826b[_0x49e2ad(0x1de)],{'query':_0x488ff1,'topK':_0x11d229});return{'ok':!![],'data':{'total':_0x552745[_0x49e2ad(0x1c0)],'hits':_0x552745[_0x49e2ad(0x1d1)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a28_0x55e48f=a28_0x1f6b;(function(_0x563926,_0x5ab082){const _0x2059db=a28_0x1f6b,_0x4a6f4b=_0x563926();while(!![]){try{const _0x862d14=parseInt(_0x2059db(0x1ef))/0x1+-parseInt(_0x2059db(0x1e3))/0x2+parseInt(_0x2059db(0x1ed))/0x3+-parseInt(_0x2059db(0x1f1))/0x4*(-parseInt(_0x2059db(0x1fc))/0x5)+parseInt(_0x2059db(0x1fe))/0x6+-parseInt(_0x2059db(0x1fd))/0x7*(parseInt(_0x2059db(0x1f9))/0x8)+parseInt(_0x2059db(0x1eb))/0x9;if(_0x862d14===_0x5ab082)break;else _0x4a6f4b['push'](_0x4a6f4b['shift']());}catch(_0x3384ca){_0x4a6f4b['push'](_0x4a6f4b['shift']());}}}(a28_0x2009,0xd4904));function a28_0x1f6b(_0x5b1dcd,_0x40d32d){_0x5b1dcd=_0x5b1dcd-0x1e2;const _0x2009f5=a28_0x2009();let _0x1f6b32=_0x2009f5[_0x5b1dcd];return _0x1f6b32;}function a28_0x2009(){const _0x58f9eb=['length','24tciqbV','logs','\x20\x20\x20Duration:\x20','en-US','details','log','success','View\x20command\x20history\x20logs','6851528cHGKFb','*\x20Logs\x20cleared','duration','194355LVDIHP','14uOZwHC','8542956gZHuhL','write','toLocaleString','warn','1858538YqDSMh','message','\x20\x20\x20Time:\x20','readLogs','level','timestamp','stringify','show','6895341uefvYC','read','2898999xAmpvt','keys','123277iUYdZv'];a28_0x2009=function(){return _0x58f9eb;};return a28_0x2009();}import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x47ff7a){const _0x4fa2fc=a28_0x1f6b;if(_0x47ff7a[_0x4fa2fc(0x1f0)]===0x0){console['log']('*\x20No\x20logs\x20found');return;}console[_0x4fa2fc(0x1f6)]('*\x20'+CLI_DISPLAY_NAME+'\x20logs:\x0a'),_0x47ff7a['forEach']((_0x565e73,_0x1cadb4)=>{const _0x2e6240=_0x4fa2fc,_0x430411=new Date(_0x565e73[_0x2e6240(0x1e8)])[_0x2e6240(0x200)](_0x2e6240(0x1f4)),_0x1b0433=_0x565e73[_0x2e6240(0x1e7)]===_0x2e6240(0x1f7)?'√':_0x565e73[_0x2e6240(0x1e7)]==='error'?'×':_0x565e73['level']===_0x2e6240(0x1e2)?'!':'i';console[_0x2e6240(0x1f6)](_0x1cadb4+0x1+'.\x20'+_0x1b0433+'\x20['+_0x565e73['command']+']\x20'+_0x565e73[_0x2e6240(0x1e4)]),console[_0x2e6240(0x1f6)](_0x2e6240(0x1e5)+_0x430411),_0x565e73[_0x2e6240(0x1fb)]&&console[_0x2e6240(0x1f6)](_0x2e6240(0x1f3)+_0x565e73['duration']+'ms'),_0x565e73[_0x2e6240(0x1f5)]&&Object[_0x2e6240(0x1ee)](_0x565e73['details'])[_0x2e6240(0x1f0)]>0x0&&console[_0x2e6240(0x1f6)]('\x20\x20\x20Details:\x20'+JSON[_0x2e6240(0x1e9)](_0x565e73[_0x2e6240(0x1f5)],null,0x2)),console[_0x2e6240(0x1f6)]('');});}export const logsDefinitions=[{'service':a28_0x55e48f(0x1f2),'command':a28_0x55e48f(0x1ea),'description':a28_0x55e48f(0x1f8),'risk':a28_0x55e48f(0x1ec),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x5cb2ca){const _0x454f94=a28_0x55e48f;return printLogs(logger[_0x454f94(0x1e6)]()),{'ok':!![]};}},{'service':a28_0x55e48f(0x1f2),'command':'clear','description':'Clear\x20command\x20history\x20logs','risk':a28_0x55e48f(0x1ff),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x439582){const _0x4fcbd9=a28_0x55e48f;return logger['clearLogs'](),console[_0x4fcbd9(0x1f6)](_0x4fcbd9(0x1fa)),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a29_0x281be3=a29_0x1266;(function(_0x3a5994,_0x2f21f1){const _0x3bd000=a29_0x1266,_0x2df34b=_0x3a5994();while(!![]){try{const _0x31a24b=-parseInt(_0x3bd000(0xe7))/0x1+parseInt(_0x3bd000(0xe0))/0x2+parseInt(_0x3bd000(0xb1))/0x3*(-parseInt(_0x3bd000(0xdc))/0x4)+parseInt(_0x3bd000(0xdf))/0x5*(parseInt(_0x3bd000(0xd7))/0x6)+parseInt(_0x3bd000(0xae))/0x7*(parseInt(_0x3bd000(0xc4))/0x8)+parseInt(_0x3bd000(0xd0))/0x9+-parseInt(_0x3bd000(0xce))/0xa*(parseInt(_0x3bd000(0xba))/0xb);if(_0x31a24b===_0x2f21f1)break;else _0x2df34b['push'](_0x2df34b['shift']());}catch(_0x4ea0a6){_0x2df34b['push'](_0x2df34b['shift']());}}}(a29_0x5f04,0x4b136));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';function a29_0x1266(_0x4a6b48,_0xa38d47){_0x4a6b48=_0x4a6b48-0xab;const _0x5f0409=a29_0x5f04();let _0x126654=_0x5f0409[_0x4a6b48];return _0x126654;}import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':'file','type':a29_0x281be3(0xe9),'description':a29_0x281be3(0xdb)},FUNCTION_NAME_FLAG={'name':'name','type':a29_0x281be3(0xe9),'required':!![],'description':a29_0x281be3(0xda)},DESCRIPTION_FLAG={'name':a29_0x281be3(0xbe),'type':'string','description':a29_0x281be3(0xbc)},SOURCE_SESSION_FLAG={'name':'source-session-id','type':a29_0x281be3(0xe9),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x78f456){const _0x3fd254=a29_0x281be3,_0xd4d787=String(_0x78f456||'')[_0x3fd254(0xb6)]();if(!_0xd4d787||!FUNCTION_NAME_PATTERN['test'](_0xd4d787))throw CliErrors[_0x3fd254(0xc1)](_0x3fd254(0xed));return _0xd4d787;}function readScriptFile(_0x3796ba){const _0xb0088c=a29_0x281be3;if(!_0x3796ba)throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xcf));if(!existsSync(_0x3796ba))throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xaf)+_0x3796ba);if(!statSync(_0x3796ba)[_0xb0088c(0xd6)]())throw CliErrors['validation'](_0xb0088c(0xc2)+_0x3796ba);const _0x56e628=readFileSync(_0x3796ba,_0xb0088c(0xe8));if(!_0x56e628[_0xb0088c(0xb6)]())throw CliErrors['validation']('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0x56e628;}function optionalTrimmed(_0x45be88){const _0x4ab79e=a29_0x281be3,_0x28900b=String(_0x45be88||'')[_0x4ab79e(0xb6)]();return _0x28900b||undefined;}function summarizeBff(_0x2f7936){const _0x2ab8aa=a29_0x281be3;return{'id':_0x2f7936['id'],'appCode':_0x2f7936[_0x2ab8aa(0xc3)],'functionName':_0x2f7936[_0x2ab8aa(0xc9)],'description':_0x2f7936[_0x2ab8aa(0xbe)],'scriptType':_0x2f7936[_0x2ab8aa(0xeb)],'version':_0x2f7936[_0x2ab8aa(0xd1)],'gmtModified':_0x2f7936['gmtModified'],'updateTime':_0x2f7936['updateTime']};}function detailBff(_0x58bb62){const _0xe0e517=a29_0x281be3;return{'id':_0x58bb62['id'],'appCode':_0x58bb62[_0xe0e517(0xc3)],'functionName':_0x58bb62[_0xe0e517(0xc9)],'description':_0x58bb62[_0xe0e517(0xbe)],'scriptType':_0x58bb62[_0xe0e517(0xeb)],'scriptContent':_0x58bb62[_0xe0e517(0xd9)]??'','config':_0x58bb62['config'],'version':_0x58bb62[_0xe0e517(0xd1)],'createUserId':_0x58bb62['createUserId'],'gmtCreate':_0x58bb62['gmtCreate'],'gmtModified':_0x58bb62['gmtModified'],'createTime':_0x58bb62['createTime'],'updateTime':_0x58bb62[_0xe0e517(0xc0)]};}function buildCreateInput(_0x4f1ee3){const _0x75cd8=a29_0x281be3;return{'functionName':normalizeFunctionName(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe3))),...optionalTrimmed(_0x4f1ee3['str'](_0x75cd8(0xbe)))?{'description':optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xbe)))}:{},'scriptContent':readScriptFile(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xb7))),...optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe5)))?{'sourceSessionId':optionalTrimmed(_0x4f1ee3['str']('source-session-id'))}:{}};}function a29_0x5f04(){const _0x37045e=['appCode','8vsjdld','Updated\x20personal\x20BFF\x20','params','body','read','functionName','detail','map','Preview:\x20create\x20personal\x20BFF\x20','create','10jZCXEE','File\x20path\x20is\x20required.','1520982ifpKNN','version','str','list','keys','Personal\x20BFF\x20script\x20ID','isFile','2406EFJGuz','Update\x20a\x20personal\x20BFF\x20by\x20id','scriptContent','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','144encHag','flag','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','1145FMroHl','1141876rJRyPF','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','name','high-risk-write','source-session-id','num','40853mJKXUb','utf8','string','Created\x20personal\x20BFF\x20','scriptType','bool','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','write','length','/client/runtime-bff/personal/','510377kIZpLn','File\x20not\x20found:\x20','build','5091hUHCtZ','Preview:\x20update\x20personal\x20BFF\x20','Executed\x20personal\x20BFF\x20','POST','/update','trim','file','verbose','--params\x20must\x20be\x20a\x20JSON\x20object.','5447431bpRVEJ','/client/runtime-bff/personal/create','Personal\x20BFF\x20description','personal-bff','description','Show\x20one\x20personal\x20BFF\x20by\x20id','updateTime','validation','File\x20is\x20not\x20a\x20regular\x20file:\x20'];a29_0x5f04=function(){return _0x37045e;};return a29_0x5f04();}function buildUpdateInput(_0x342152){const _0x4e1935=a29_0x281be3,_0x2f2482={};optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3)))&&(_0x2f2482[_0x4e1935(0xc9)]=normalizeFunctionName(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3))));_0x342152[_0x4e1935(0xdd)]('description')!==undefined&&(_0x2f2482[_0x4e1935(0xbe)]=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xbe)));optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7)))&&(_0x2f2482[_0x4e1935(0xd9)]=readScriptFile(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7))));_0x342152[_0x4e1935(0xdd)](_0x4e1935(0xe5))!==undefined&&(_0x2f2482['sourceSessionId']=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe5)));if(Object[_0x4e1935(0xd4)](_0x2f2482)[_0x4e1935(0xac)]===0x0)throw CliErrors[_0x4e1935(0xc1)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x2f2482;}function parseExecParams(_0x3d6984){const _0x3ab9d9=a29_0x281be3,_0x2312c4=parseJsonParams(_0x3d6984)??{};if(Array['isArray'](_0x2312c4))throw CliErrors[_0x3ab9d9(0xc1)](_0x3ab9d9(0xb9));return _0x2312c4;}const personalBffList={'service':a29_0x281be3(0xbd),'command':a29_0x281be3(0xd3),'description':a29_0x281be3(0xde),'risk':a29_0x281be3(0xc8),'flags':[VERBOSE_FLAG],async 'execute'(_0x28e630){const _0xc8cc54=a29_0x281be3,_0x279f53=await listPersonalBffs(_0x28e630[_0xc8cc54(0xc3)]);return{'ok':!![],'data':{'total':_0x279f53[_0xc8cc54(0xac)],'items':_0x28e630[_0xc8cc54(0xec)](_0xc8cc54(0xb8))?_0x279f53:_0x279f53[_0xc8cc54(0xcb)](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':a29_0x281be3(0xca),'description':a29_0x281be3(0xbf),'risk':'read','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)}],async 'execute'(_0x30fb54){const _0x4b06f1=a29_0x281be3,_0x1886b0=await getPersonalBff(_0x30fb54[_0x4b06f1(0xe6)]('id'),_0x30fb54['appCode']);return{'ok':!![],'data':detailBff(_0x1886b0)};}},personalBffCreate={'service':'personal-bff','command':a29_0x281be3(0xcd),'description':a29_0x281be3(0xe1),'risk':a29_0x281be3(0xab),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x42be43){const _0x4e252a=a29_0x281be3,_0x4e4dd4=buildCreateInput(_0x42be43),_0x18f64c=await createPersonalBff(_0x42be43[_0x4e252a(0xc3)],_0x4e4dd4);return{'ok':!![],'data':detailBff(_0x18f64c),'message':_0x4e252a(0xea)+_0x18f64c['id']+(_0x18f64c[_0x4e252a(0xc9)]?'\x20('+_0x18f64c['functionName']+')':'')};},async 'dryRun'(_0x52084c){const _0x5ab7bb=a29_0x281be3,_0x4c7080=buildCreateInput(_0x52084c);return dryRun(_0x5ab7bb(0xb4),_0x5ab7bb(0xbb))[_0x5ab7bb(0xc7)]({'appCode':_0x52084c[_0x5ab7bb(0xc3)],..._0x4c7080})[_0x5ab7bb(0xbe)](_0x5ab7bb(0xcc)+_0x4c7080[_0x5ab7bb(0xc9)])[_0x5ab7bb(0xb0)]();}},personalBffUpdate={'service':'personal-bff','command':'update','description':a29_0x281be3(0xd8),'risk':'write','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x278911){const _0x5e6b83=a29_0x281be3,_0x5c57d4=_0x278911['num']('id'),_0x300853=buildUpdateInput(_0x278911),_0x233dd8=await updatePersonalBff(_0x5c57d4,_0x278911[_0x5e6b83(0xc3)],_0x300853);return{'ok':!![],'data':detailBff(_0x233dd8),'message':_0x5e6b83(0xc5)+_0x233dd8['id']+(_0x233dd8[_0x5e6b83(0xc9)]?'\x20('+_0x233dd8[_0x5e6b83(0xc9)]+')':'')};},async 'dryRun'(_0x236d51){const _0x366491=a29_0x281be3,_0x481833=_0x236d51['num']('id'),_0xda20c9=buildUpdateInput(_0x236d51);return dryRun(_0x366491(0xb4),_0x366491(0xad)+_0x481833+_0x366491(0xb5))[_0x366491(0xc7)]({'appCode':_0x236d51[_0x366491(0xc3)],..._0xda20c9})[_0x366491(0xbe)](_0x366491(0xb2)+_0x481833)['build']();}},personalBffExec={'service':a29_0x281be3(0xbd),'command':'exec','description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':a29_0x281be3(0xe4),'flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...PARAMS_FLAG,'description':a29_0x281be3(0xe2)}],async 'validate'(_0x1414db){const _0xf0707c=a29_0x281be3;parseExecParams(_0x1414db[_0xf0707c(0xd2)](_0xf0707c(0xc6)));},async 'execute'(_0x5ecbe6){const _0x16722c=a29_0x281be3,_0x2c17c7=_0x5ecbe6['num']('id'),_0x3a9cee=parseExecParams(_0x5ecbe6[_0x16722c(0xd2)](_0x16722c(0xc6))),_0x3e1542=await executePersonalBff(_0x2c17c7,_0x5ecbe6[_0x16722c(0xc3)],_0x3a9cee);return{'ok':!![],'data':{'result':_0x3e1542},'message':_0x16722c(0xb3)+_0x2c17c7};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
1
|
+
const a29_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];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x5370c2=a30_0x3895;(function(_0x262422,_0x3eabbc){const _0x4d7a6b=a30_0x3895,_0x373425=_0x262422();while(!![]){try{const _0x5c32d0=-parseInt(_0x4d7a6b(0x9a))/0x1*(-parseInt(_0x4d7a6b(0x8b))/0x2)+-parseInt(_0x4d7a6b(0x8a))/0x3+-parseInt(_0x4d7a6b(0x99))/0x4*(-parseInt(_0x4d7a6b(0x94))/0x5)+parseInt(_0x4d7a6b(0x89))/0x6+parseInt(_0x4d7a6b(0x7e))/0x7*(-parseInt(_0x4d7a6b(0x7c))/0x8)+parseInt(_0x4d7a6b(0x80))/0x9+parseInt(_0x4d7a6b(0x8c))/0xa*(-parseInt(_0x4d7a6b(0x8d))/0xb);if(_0x5c32d0===_0x3eabbc)break;else _0x373425['push'](_0x373425['shift']());}catch(_0x1cdd5c){_0x373425['push'](_0x373425['shift']());}}}(a30_0x3021,0xcaa9a));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';function a30_0x3021(){const _0x4af137=['Logs','1842224ekBNyQ','1fkyYwX','Authentication','write','isSingleCommand','list','Knowledge\x20Base','command','Schema','set','Configuration','service','600UdWPsa','has','47110LsKjdS','\x20\x20[write]','2784186hfTShe','run','Artifacts','values','BFF\x20Scripts','SQL\x20Queries','risk','\x20\x20[high-risk-write]','map','4257102gPIREV','3062652TkQiPA','2607178vUvRxs','13483880DVWpeo','11POtTBi','get','defaultCommand','push','Instant\x20API','install','CLI\x20Built-in\x20Skill','15qtSfDk','Diagnostics','from','Personal\x20BFF'];a30_0x3021=function(){return _0x4af137;};return a30_0x3021();}import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';function a30_0x3895(_0x5748ae,_0x3950ee){_0x5748ae=_0x5748ae-0x7b;const _0x302108=a30_0x3021();let _0x389511=_0x302108[_0x5748ae];return _0x389511;}import{personalBffDefinitions}from'../commands/personal-bff/index.js';import{apiDocDefinitions}from'../commands/api-doc/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x226d27){const _0x714620=a30_0x3895;for(const _0x384768 of _0x226d27){definitions[_0x714620(0xa2)](_0x384768[_0x714620(0x7b)]+':'+_0x384768[_0x714620(0xa0)],_0x384768);let _0x1c968b=serviceGroups[_0x714620(0x8e)](_0x384768[_0x714620(0x7b)]);!_0x1c968b&&(_0x1c968b=[],serviceGroups[_0x714620(0xa2)](_0x384768['service'],_0x1c968b)),_0x1c968b[_0x714620(0x90)](_0x384768);}}function registerService(_0x27c8dd,_0x2a1daa,_0x14ba86){const _0xfeedc6=a30_0x3895;registerDefinitions(_0x2a1daa);const _0x22ba72=_0x8f1893=>_0x8f1893==='read'?'':_0x8f1893===_0xfeedc6(0x9c)?_0xfeedc6(0x7f):_0xfeedc6(0x87),_0x488310={'service':_0x2a1daa[0x0][_0xfeedc6(0x7b)],'label':_0x27c8dd,'commands':_0x2a1daa[_0xfeedc6(0x88)](_0x5a5677=>({'command':_0x5a5677['command'],'description':_0x5a5677['description'],'tag':_0x22ba72(_0x5a5677[_0xfeedc6(0x86)])})),'defaultCommand':_0x14ba86?.[_0xfeedc6(0x8f)]??(_0x14ba86?.['isSingleCommand']?_0x2a1daa[0x0][_0xfeedc6(0xa0)]:undefined),'isSingleCommand':_0x14ba86?.[_0xfeedc6(0x9d)]};serviceRegistry[_0xfeedc6(0x90)](_0x488310),serviceByName[_0xfeedc6(0xa2)](_0x488310['service'],_0x488310);}registerService(a30_0x5370c2(0x9b),authDefinitions,{'defaultCommand':'login'}),registerService('API\x20Documentation',apiDocDefinitions),registerService('Datasets',datasetDefinitions),registerService(a30_0x5370c2(0x91),dataDefinitions),registerService(a30_0x5370c2(0x85),sqlDefinitions),registerService(a30_0x5370c2(0x84),bffDefinitions),registerService(a30_0x5370c2(0x97),personalBffDefinitions),registerService(a30_0x5370c2(0x82),artifactDefinitions),registerService(a30_0x5370c2(0x9f),kbDefinitions),registerService('App\x20Management',appDefinitions,{'defaultCommand':a30_0x5370c2(0x9e)}),registerService('Workspace',workspaceDefinitions),registerService(a30_0x5370c2(0xa3),configDefinitions,{'defaultCommand':a30_0x5370c2(0x9e)}),registerService('Service\x20Tree',serviceDefinitions,{'defaultCommand':'list'}),registerService('Skills',skillDefinitions,{'defaultCommand':a30_0x5370c2(0x92)}),registerService(a30_0x5370c2(0x93),cliSkillDefinitions,{'defaultCommand':a30_0x5370c2(0x92)}),registerService('Self\x20Update',[updateDefinition],{'defaultCommand':a30_0x5370c2(0x81),'isSingleCommand':!![]}),registerService(a30_0x5370c2(0x95),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x5370c2(0xa1),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x5370c2(0x98),logsDefinitions,{'defaultCommand':'show'});export function findDefinition(_0x24b2ca,_0x263d9b){const _0x3bcb84=a30_0x5370c2;return definitions[_0x3bcb84(0x8e)](_0x24b2ca+':'+_0x263d9b);}export function isKnownService(_0x16898f){const _0x5313dd=a30_0x5370c2;return serviceByName[_0x5313dd(0x7d)](_0x16898f);}export function getServiceEntry(_0x27c754){const _0x4851bd=a30_0x5370c2;return serviceByName[_0x4851bd(0x8e)](_0x27c754);}export function getAllDefinitions(){const _0x9f72ff=a30_0x5370c2;return Array[_0x9f72ff(0x96)](definitions[_0x9f72ff(0x83)]());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a31_0x42ae1d=a31_0xe7dc;(function(_0x49cefd,_0x88781a){const _0xdcf813=a31_0xe7dc,_0x3a9b46=_0x49cefd();while(!![]){try{const _0x3a99cd=-parseInt(_0xdcf813(0x187))/0x1*(parseInt(_0xdcf813(0x184))/0x2)+parseInt(_0xdcf813(0x18a))/0x3+-parseInt(_0xdcf813(0x17d))/0x4*(-parseInt(_0xdcf813(0x17f))/0x5)+-parseInt(_0xdcf813(0x180))/0x6*(parseInt(_0xdcf813(0x185))/0x7)+parseInt(_0xdcf813(0x182))/0x8+-parseInt(_0xdcf813(0x186))/0x9*(-parseInt(_0xdcf813(0x188))/0xa)+parseInt(_0xdcf813(0x181))/0xb*(-parseInt(_0xdcf813(0x17e))/0xc);if(_0x3a99cd===_0x88781a)break;else _0x3a9b46['push'](_0x3a9b46['shift']());}catch(_0x3f802){_0x3a9b46['push'](_0x3a9b46['shift']());}}}(a31_0x56c6,0xd6a8e));function a31_0x56c6(){const _0x3ec022=['1INaqUL','10KqlAKx','read','4084167XyFiHX','180876FfKBxT','12WgXFYF','175vApVKa','1272036XFGbOz','20626012ZhrdoQ','13157232EDYMyp','export','2405782FVNlPQ','42YMqGOk','5765013gtdSvi'];a31_0x56c6=function(){return _0x3ec022;};return a31_0x56c6();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x551918){const _0x373b24=await buildSchemaPayload();return{'ok':!![],'data':_0x373b24};}function a31_0xe7dc(_0x16ed3b,_0x2df7cf){_0x16ed3b=_0x16ed3b-0x17d;const _0x56c6cd=a31_0x56c6();let _0xe7dc6=_0x56c6cd[_0x16ed3b];return _0xe7dc6;}export const schemaDefinition={'service':'schema','command':a31_0x42ae1d(0x183),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a31_0x42ae1d(0x189),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x2bef39,_0x381fa2){const _0x47f187=a32_0xd5be,_0x45510b=_0x2bef39();while(!![]){try{const _0x111a86=-parseInt(_0x47f187(0xb4))/0x1+-parseInt(_0x47f187(0xa6))/0x2+-parseInt(_0x47f187(0xde))/0x3+-parseInt(_0x47f187(0xd1))/0x4*(parseInt(_0x47f187(0xf9))/0x5)+-parseInt(_0x47f187(0xbe))/0x6*(parseInt(_0x47f187(0xca))/0x7)+-parseInt(_0x47f187(0xa7))/0x8*(parseInt(_0x47f187(0xe6))/0x9)+parseInt(_0x47f187(0xc6))/0xa;if(_0x111a86===_0x381fa2)break;else _0x45510b['push'](_0x45510b['shift']());}catch(_0x7525f4){_0x45510b['push'](_0x45510b['shift']());}}}(a32_0x3330,0xee369));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x18f4cd,_0x4e567d){const _0x1eac6c=a32_0xd5be,_0x163785=listLocalServiceTrees();let _0x53e8e6;for(const _0x39cb61 of _0x163785){const _0x2319a9=matchServiceTreeCommand(_0x39cb61,_0x18f4cd);if(!_0x2319a9)continue;(!_0x53e8e6||_0x2319a9[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)]>_0x53e8e6[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)])&&(_0x53e8e6={'tree':_0x39cb61,'command':_0x2319a9[_0x1eac6c(0xd2)],'remainingArgs':_0x2319a9[_0x1eac6c(0xf6)]});}if(!_0x53e8e6)return undefined;const _0x5d3840={..._0x4e567d};return applyAppBinding(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6[_0x1eac6c(0xd2)],_0x5d3840),{'definition':buildDynamicCommandDefinition(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6['command']),'args':_0x53e8e6[_0x1eac6c(0xf6)],'flags':_0x5d3840,'tree':_0x53e8e6[_0x1eac6c(0xbb)],'command':_0x53e8e6[_0x1eac6c(0xd2)]};}export function generateDynamicServiceHelp(_0x54985c){const _0x1f0bc3=a32_0xd5be,_0x44c139=listLocalServiceTrees()[_0x1f0bc3(0xea)](_0x16ed30=>_0x16ed30[_0x1f0bc3(0xfb)][_0x1f0bc3(0xa4)]===_0x54985c);if(!_0x44c139)return undefined;const _0x483eea=[CLI_BIN_NAME+'\x20'+_0x54985c+_0x1f0bc3(0xcc),'',_0x44c139[_0x1f0bc3(0xfb)]['name']||_0x54985c,_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]?'\x20\x20'+_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]:'','','Commands:',..._0x44c139[_0x1f0bc3(0xc0)]['map'](_0x1c3cbc=>{const _0x1c25a3=_0x1f0bc3,_0x5d49bf=_0x1c3cbc[_0x1c25a3(0xe4)][_0x1c25a3(0xf1)](0x1)['join']('\x20'),_0x5cb16c=_0x1c3cbc[_0x1c25a3(0xf0)]===_0x1c25a3(0xd4)?'':'\x20['+_0x1c3cbc[_0x1c25a3(0xf0)]+']';return'\x20\x20'+_0x5d49bf['padEnd'](0x18)+'\x20'+(_0x1c3cbc[_0x1c25a3(0xdd)]||'')+_0x5cb16c;}),'','Use\x20`'+CLI_BIN_NAME+_0x1f0bc3(0xd9)+_0x54985c+_0x1f0bc3(0xb5)]['filter'](Boolean);return _0x483eea[_0x1f0bc3(0xd6)]('\x0a');}export function listDynamicServiceEntries(){const _0x581c8a=a32_0xd5be;return listLocalServices()[_0x581c8a(0xbf)](_0xca4f35=>{const _0xe72d12=_0x581c8a,_0x19ba73=_0xca4f35[_0xe72d12(0xe9)];return{'service':_0x19ba73[_0xe72d12(0xfb)]['code'],'label':_0x19ba73[_0xe72d12(0xfb)][_0xe72d12(0xcb)]||_0x19ba73['service'][_0xe72d12(0xa4)],'commands':_0x19ba73[_0xe72d12(0xc0)]['map'](_0x1e64c4=>({'command':dynamicCommandName(_0x1e64c4),'description':_0x1e64c4[_0xe72d12(0xdd)]||'Run\x20service\x20command\x20'+_0x1e64c4[_0xe72d12(0xaa)],'tag':riskTag(_0x1e64c4['risk'])}))};});}export function getDynamicServiceEntry(_0x295390){const _0x27f6a8=a32_0xd5be;return listDynamicServiceEntries()[_0x27f6a8(0xea)](_0x1251d0=>_0x1251d0[_0x27f6a8(0xfb)]===_0x295390);}export function listDynamicServiceDefinitions(_0x25cdc9){const _0xd3eb84=a32_0xd5be;return listLocalServiceTrees()[_0xd3eb84(0xdb)](_0x11dfcb=>!_0x25cdc9||_0x11dfcb[_0xd3eb84(0xfb)][_0xd3eb84(0xa4)]===_0x25cdc9)[_0xd3eb84(0xc2)](_0x2609be=>_0x2609be['commands']['map'](_0x27440f=>buildDynamicCommandDefinition(_0x2609be,_0x27440f)));}export function getDynamicServiceDefinitions(_0x2c37e4){const _0x2b77db=listDynamicServiceDefinitions(_0x2c37e4);return _0x2b77db['length']>0x0?_0x2b77db:undefined;}export function findDynamicServiceDefinition(_0x4eb94d,_0x4c9b4d){return listDynamicServiceDefinitions(_0x4eb94d)['find'](_0x113c4a=>_0x113c4a['command']===_0x4c9b4d);}export function buildDynamicCommandDefinition(_0x9dae31,_0xaeb376){const _0x128bc9=a32_0xd5be;return{'service':_0x9dae31['service'][_0x128bc9(0xa4)],'command':dynamicCommandName(_0xaeb376),'description':_0xaeb376[_0x128bc9(0xdd)]||_0x128bc9(0xcf)+_0xaeb376[_0x128bc9(0xaa)],'risk':_0xaeb376[_0x128bc9(0xf0)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0xaeb376[_0x128bc9(0xa2)][_0x128bc9(0xbf)](_0x16e2ae=>({'name':_0x16e2ae[_0x128bc9(0xcb)],'description':_0x16e2ae[_0x128bc9(0xdd)]||_0x16e2ae[_0x128bc9(0xcb)],'required':_0x16e2ae[_0x128bc9(0xd3)]})),'flags':_0xaeb376['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xaeb376),async 'dryRun'(_0x56c772){const _0x52a1e3=_0x128bc9,_0x4ce21f=await compilePlan(_0xaeb376,_0x56c772);return{'method':_0x52a1e3(0xa1),'url':_0xaeb376[_0x52a1e3(0xaa)],'body':{'target':targetPreview(_0x4ce21f),'params':_0x4ce21f['params']},'description':_0x52a1e3(0xee)+_0xaeb376['cliPath']};},async 'execute'(_0x3505ea){const _0x52c81e=_0x128bc9,_0xffa6e9=await compilePlan(_0xaeb376,_0x3505ea),_0x3c58e1=Date[_0x52c81e(0xd8)](),_0x510db4=await executePlan(_0xffa6e9,_0xaeb376,_0x3505ea),_0x3a0e43=Date[_0x52c81e(0xd8)]()-_0x3c58e1;return{'ok':!![],'data':{'service':_0x9dae31[_0x52c81e(0xfb)],'command':_0xaeb376['cliPath'],'target':targetPreview(_0xffa6e9),'result':_0x510db4,'elapsed':_0x3a0e43},'message':'Service\x20command\x20'+_0xaeb376[_0x52c81e(0xaa)]+'\x20completed\x20in\x20'+_0x3a0e43+'ms'};}};}function dynamicCommandName(_0x5305ce){const _0x6d1205=a32_0xd5be;return _0x5305ce[_0x6d1205(0xe4)][_0x6d1205(0xf1)](0x1)['join']('\x20');}function riskTag(_0x17cf0b){const _0x559adf=a32_0xd5be;return _0x17cf0b===_0x559adf(0xd4)?'':_0x559adf(0xb0)+_0x17cf0b+']';}function a32_0xd5be(_0x1a5f84,_0x97dc09){_0x1a5f84=_0x1a5f84-0x9d;const _0x333052=a32_0x3330();let _0xd5be73=_0x333052[_0x1a5f84];return _0xd5be73;}function flagToCommandFlag(_0x44990f){const _0x50fa1e=a32_0xd5be;return{'name':_0x44990f['cliName'],'type':_0x44990f['type']==='json'?'string':_0x44990f[_0x50fa1e(0xf3)],'description':_0x44990f[_0x50fa1e(0xdd)]||_0x44990f[_0x50fa1e(0xcb)],'required':_0x44990f[_0x50fa1e(0xd3)],'default':isPrimitiveFlagDefault(_0x44990f['default'])?_0x44990f['default']:undefined,'enum':_0x44990f['enum']};}async function compilePlan(_0x47029e,_0x1177ed){const _0x9be11c=a32_0xd5be;return compileServiceTreeCommand(_0x47029e,{'flags':_0x1177ed[_0x9be11c(0xc9)],'args':_0x1177ed[_0x9be11c(0xa2)],'context':await buildServiceContext(_0x47029e,_0x1177ed)});}async function buildServiceContext(_0x1d5ca2,_0x5b2136){const _0x21bf1d=a32_0xd5be,_0x486925={'appCode':_0x5b2136[_0x21bf1d(0xda)],'env':_0x5b2136[_0x21bf1d(0x9f)],'envName':_0x5b2136[_0x21bf1d(0x9f)]};if(!usesRuntimeContext(_0x1d5ca2))return _0x486925;const _0x3b3946=await getLoginUserInfo(),_0x3022a8=pickFirst(_0x3b3946[_0x21bf1d(0xf5)],_0x3b3946['id']);return{..._0x486925,'user':_0x3b3946,'userId':_0x3022a8,'id':_0x3b3946['id'],'username':pickFirst(_0x3b3946['username'],_0x3b3946[_0x21bf1d(0xfa)],_0x3b3946[_0x21bf1d(0xb3)]),'userName':_0x3b3946['userName'],'nickname':pickFirst(_0x3b3946['nickname'],_0x3b3946[_0x21bf1d(0xef)]),'nickName':_0x3b3946[_0x21bf1d(0xef)],'tenantCode':_0x3b3946[_0x21bf1d(0xc4)],'employeeId':_0x3b3946[_0x21bf1d(0xd5)]};}function usesRuntimeContext(_0x5c4277){const _0x522777=a32_0xd5be;return _0x5c4277[_0x522777(0xf4)][_0x522777(0xfd)](_0x29ccc6=>typeof _0x29ccc6[_0x522777(0xb2)]==='string'&&(_0x29ccc6[_0x522777(0xb2)]['startsWith']('context.')||_0x29ccc6[_0x522777(0xb2)][_0x522777(0xf7)]('ctx.')));}function pickFirst(..._0x851f76){const _0x4fb18e=a32_0xd5be;return _0x851f76[_0x4fb18e(0xea)](_0x14f332=>_0x14f332!==undefined&&_0x14f332!==null);}async function executePlan(_0x1f6d57,_0x47f9bd,_0x438e5f){const _0x52f6a0=a32_0xd5be;if(_0x1f6d57['kind']===_0x52f6a0(0xce)){const _0x540425=await resolveDatasetCode(_0x1f6d57,_0x47f9bd,_0x438e5f);return executeData(_0x540425,_0x1f6d57[_0x52f6a0(0xd2)],_0x1f6d57[_0x52f6a0(0xc3)]);}if(_0x1f6d57[_0x52f6a0(0xb7)]===_0x52f6a0(0xeb)){if(!_0x1f6d57[_0x52f6a0(0xd0)])throw CliErrors[_0x52f6a0(0xb1)](_0x52f6a0(0xdc)+_0x47f9bd[_0x52f6a0(0xaa)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x1f6d57[_0x52f6a0(0xd0)],normalizeScalarParams(_0x1f6d57[_0x52f6a0(0xc3)]));}if(_0x1f6d57[_0x52f6a0(0xb7)]==='bff'){const _0x7650ed=_0x1f6d57[_0x52f6a0(0xc7)]||_0x1f6d57[_0x52f6a0(0xc8)]||(_0x1f6d57[_0x52f6a0(0xa3)]==null?'':String(_0x1f6d57[_0x52f6a0(0xa3)]));if(!_0x7650ed)throw CliErrors['validation']('Service\x20command\x20'+_0x47f9bd[_0x52f6a0(0xaa)]+_0x52f6a0(0xcd));return executeSdkBff(_0x7650ed,_0x1f6d57[_0x52f6a0(0xc3)]);}throw CliErrors['validation'](_0x52f6a0(0xd7)+_0x1f6d57[_0x52f6a0(0xb7)]);}async function resolveDatasetCode(_0x297f79,_0x2b3afa,_0x465da7){const _0x1f8c06=a32_0xd5be;if(_0x297f79[_0x1f8c06(0xad)])return _0x297f79[_0x1f8c06(0xad)];if(!_0x297f79['datatable'])throw CliErrors['validation']('Service\x20command\x20'+_0x2b3afa['cliPath']+_0x1f8c06(0xdf));const _0x8f28e2=await listDatasets(_0x465da7['appCode']),_0x21f40c=_0x8f28e2['find'](_0xbdb63=>_0xbdb63['dbtableConfig']?.[_0x1f8c06(0xbc)]===_0x297f79[_0x1f8c06(0xae)]);if(!_0x21f40c?.[_0x1f8c06(0xa4)])throw CliErrors[_0x1f8c06(0xb1)](_0x1f8c06(0xa0)+_0x297f79[_0x1f8c06(0xae)]+_0x1f8c06(0xb8)+_0x465da7[_0x1f8c06(0xda)]+'.',_0x1f8c06(0x9d));return _0x21f40c[_0x1f8c06(0xa4)];}function applyAppBinding(_0x408470,_0x276481,_0x1c88c9){const _0x272396=a32_0xd5be,_0x345766=_0x276481[_0x272396(0xc5)][_0x272396(0xb9)];if(!_0x345766)return;const _0x268f3b=_0x408470[_0x272396(0xe8)][_0x345766];if(!_0x268f3b)throw CliErrors['validation']('Unknown\x20appRef\x20\x22'+_0x345766+_0x272396(0xac)+_0x276481[_0x272396(0xaa)]+'.',_0x272396(0xa8));const _0xa11fd7=_0x268f3b[_0x272396(0xe7)]||_0x268f3b[_0x272396(0xda)];_0xa11fd7&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xe7)]=_0xa11fd7),_0x268f3b[_0x272396(0xba)]&&!hasText(_0x1c88c9['app'])&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xba)]=_0x268f3b[_0x272396(0xba)]),_0x268f3b[_0x272396(0xf2)]&&!hasText(_0x1c88c9[_0x272396(0xf2)])&&(_0x1c88c9[_0x272396(0xf2)]=_0x268f3b[_0x272396(0xf2)]);}function renderDynamicCommandHelp(_0x644518){const _0xcda14d=a32_0xd5be,_0xd2ceb=['\x20\x20SERVICE\x20TREE\x20TARGET',_0xcda14d(0xaf)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xb7)],_0xcda14d(0xe0)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd2)]];if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xad)])_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20datasetCode:\x20'+_0x644518['target'][_0xcda14d(0xad)]);if(_0x644518['target'][_0xcda14d(0xae)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xe3)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xae)]);if(_0x644518[_0xcda14d(0xc5)]['sqlCode'])_0xd2ceb['push'](_0xcda14d(0x9e)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd0)]);if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xc7)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xa5)+_0x644518['target'][_0xcda14d(0xc7)]);if(_0x644518['mapTo']['length']>0x0){_0xd2ceb[_0xcda14d(0xb6)]('',_0xcda14d(0xec));for(const _0x4626b0 of _0x644518[_0xcda14d(0xf4)]){_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20'+(_0x4626b0[_0xcda14d(0xb2)]||_0xcda14d(0xab))+_0xcda14d(0xf8)+_0x4626b0[_0xcda14d(0xc5)]+(_0x4626b0[_0xcda14d(0xbd)]?'.'+_0x4626b0['operator']:''));}}return _0xd2ceb['join']('\x0a');}function a32_0x3330(){const _0x37d523=['boolean','Preview\x20dynamic\x20service\x20command:\x20','nickName','risk','slice','env','type','mapTo','userId','remainingArgs','startsWith','\x20->\x20','400485tnzVsb','userName','service','fromEntries','some','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20sqlCode:\x20','envName','Cannot\x20resolve\x20datatable\x20\x22','SERVICE_TREE','args','bffId','code','\x20\x20\x20\x20scriptName:\x20','2761986YeMIkc','321560mLOxmQ','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','length','cliPath','const','\x22\x20in\x20service\x20command\x20','datasetCode','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20[','validation','source','loginName','1015838vCkwSX','`\x20to\x20inspect\x20the\x20manifest.','push','kind','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','appRef','app','tree','tableName','operator','2364cNFZNX','map','commands','number','flatMap','params','tenantCode','target','80434600ROQAmQ','scriptName','bffCode','rawFlags','3101mwQvIH','name','\x20<command>\x20[flags]','\x20requires\x20target.scriptName.','data','Run\x20service\x20command\x20','sqlCode','48WJEDpd','command','required','read','employeeId','join','Unsupported\x20service\x20target\x20kind:\x20','now','\x20service\x20detail\x20--service\x20','appCode','filter','Service\x20command\x20','description','5661621JnpSLG','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20command:\x20','string','trim','\x20\x20\x20\x20datatable:\x20','fullPath','entries','369YoLeox','appcode','appBindings','normalizedManifest','find','sql','\x20\x20MAP\x20TO'];a32_0x3330=function(){return _0x37d523;};return a32_0x3330();}function targetPreview(_0x49e165){const _0x1e5c2e=a32_0xd5be;return{'kind':_0x49e165['kind'],'command':_0x49e165[_0x1e5c2e(0xd2)],'appRef':_0x49e165[_0x1e5c2e(0xb9)],'datasetCode':_0x49e165[_0x1e5c2e(0xad)],'datatable':_0x49e165[_0x1e5c2e(0xae)],'sqlCode':_0x49e165[_0x1e5c2e(0xd0)],'bffCode':_0x49e165[_0x1e5c2e(0xc8)],'bffId':_0x49e165['bffId'],'scriptName':_0x49e165[_0x1e5c2e(0xc7)]};}function normalizeScalarParams(_0x4445e1){const _0x5813f7=a32_0xd5be;return Object[_0x5813f7(0xfc)](Object[_0x5813f7(0xe5)](_0x4445e1)['filter'](([,_0x316069])=>typeof _0x316069===_0x5813f7(0xe1)||typeof _0x316069===_0x5813f7(0xc1)));}function hasText(_0x439c3f){const _0x487dde=a32_0xd5be;return typeof _0x439c3f===_0x487dde(0xe1)&&_0x439c3f[_0x487dde(0xe2)]()[_0x487dde(0xa9)]>0x0;}function isPrimitiveFlagDefault(_0x587277){const _0x2dbcad=a32_0xd5be;return _0x587277===undefined||typeof _0x587277===_0x2dbcad(0xe1)||typeof _0x587277===_0x2dbcad(0xc1)||typeof _0x587277===_0x2dbcad(0xed);}
|
|
1
|
+
(function(_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 +1 @@
|
|
|
1
|
-
const a33_0x2b822a=a33_0x515b;(function(_0x56b58d,_0x5b1e9e){const _0x3eb27d=a33_0x515b,_0x460df6=_0x56b58d();while(!![]){try{const _0x2185f1=parseInt(_0x3eb27d(0x9c))/0x1+parseInt(_0x3eb27d(0x86))/0x2*(-parseInt(_0x3eb27d(0x88))/0x3)+-parseInt(_0x3eb27d(0xa5))/0x4*(parseInt(_0x3eb27d(0x79))/0x5)+parseInt(_0x3eb27d(0x9a))/0x6*(parseInt(_0x3eb27d(0x6d))/0x7)+parseInt(_0x3eb27d(0x8e))/0x8+parseInt(_0x3eb27d(0x6f))/0x9*(parseInt(_0x3eb27d(0x91))/0xa)+-parseInt(_0x3eb27d(0x97))/0xb;if(_0x2185f1===_0x5b1e9e)break;else _0x460df6['push'](_0x460df6['shift']());}catch(_0x496802){_0x460df6['push'](_0x460df6['shift']());}}}(a33_0x3480,0xe3940));function a33_0x515b(_0x3fb831,_0x16e0fb){_0x3fb831=_0x3fb831-0x6a;const _0x348077=a33_0x3480();let _0x515bd3=_0x348077[_0x3fb831];return _0x515bd3;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x2b822a(0x6a),'type':a33_0x2b822a(0x82),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a33_0x2b822a(0x81),'type':a33_0x2b822a(0x82),'required':!![],'description':a33_0x2b822a(0x93),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5221ff){const _0x46523e=a33_0x2b822a;return{'serviceCode':_0x5221ff[_0x46523e(0xa8)],'name':_0x5221ff['normalizedManifest'][_0x46523e(0x81)][_0x46523e(0x7c)],'version':_0x5221ff[_0x46523e(0x71)],'importedAt':_0x5221ff[_0x46523e(0x8c)],'source':_0x5221ff[_0x46523e(0x6e)],'commandCount':_0x5221ff['normalizedManifest'][_0x46523e(0x89)]['length'],'commands':_0x5221ff[_0x46523e(0x72)][_0x46523e(0x89)][_0x46523e(0x8f)](_0x29a9ef=>({'path':_0x29a9ef[_0x46523e(0x95)],'description':_0x29a9ef[_0x46523e(0x74)],'risk':_0x29a9ef[_0x46523e(0x76)],'target':_0x29a9ef[_0x46523e(0x8d)],'flags':_0x29a9ef['flags'][_0x46523e(0x8f)](_0x253230=>({'name':_0x253230[_0x46523e(0x7c)],'cliName':_0x253230[_0x46523e(0x94)],'type':_0x253230[_0x46523e(0xab)],'required':_0x253230[_0x46523e(0x78)]===!![]}))}))};}function summarizeLoadedManifest(_0x1cdd8b){const _0xb01bdf=a33_0x2b822a;return{'service':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x81)],'version':_0x1cdd8b[_0xb01bdf(0x72)]?.['version'],'commandCount':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0xa9)]??0x0,'commands':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0x8f)](_0x33b581=>({'path':_0x33b581['cliPath'],'risk':_0x33b581[_0xb01bdf(0x76)],'target':_0x33b581[_0xb01bdf(0x8d)]}))??[],'registryIndex':_0x1cdd8b[_0xb01bdf(0xa6)],'registryServiceCode':_0x1cdd8b['registryServiceCode'],'errors':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x9f)],'warnings':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x83)]};}export const serviceDefinitions=[{'service':'service','command':a33_0x2b822a(0xa3),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x16d696){const _0x58f7b3=a33_0x2b822a,_0x407356=loadServiceManifestFromFile(_0x16d696[_0x58f7b3(0xaa)](_0x58f7b3(0x6a)));if(!_0x407356[_0x58f7b3(0x8b)]['ok'])return{'ok':![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356['hash'],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'errors':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x9f)],'warnings':_0x407356['report']['warnings']},'message':formatValidationFailure(_0x407356['report'])};if(_0x407356[_0x58f7b3(0x7e)]==='registry'||_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)]!==0x1)return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'commandCount':_0x407356[_0x58f7b3(0x77)]['reduce']((_0x353e4d,_0x491d00)=>_0x353e4d+(_0x491d00[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)]['length']??0x0),0x0),'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'warnings':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x83)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'service':_0x407356[_0x58f7b3(0x72)]?.['service'],'version':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x71)],'commandCount':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0xa9)]??0x0,'commands':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0x8f)](_0x22cc3d=>({'path':_0x22cc3d['cliPath'],'risk':_0x22cc3d[_0x58f7b3(0x76)],'target':_0x22cc3d[_0x58f7b3(0x8d)]})),'warnings':_0x407356[_0x58f7b3(0x8b)]['warnings']},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x7d),'description':a33_0x2b822a(0x99),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x3b867f){const _0xfa620e=a33_0x2b822a,_0x542f95=loadServiceManifestFromFile(_0x3b867f['str'](_0xfa620e(0x6a)));return{'method':_0xfa620e(0x7f),'url':getServiceRegistryPath(),'body':{'file':_0x542f95[_0xfa620e(0x70)],'hash':_0x542f95[_0xfa620e(0x92)],'kind':_0x542f95['kind'],'ok':_0x542f95['report']['ok'],'service':_0x542f95['normalizedManifest']?.['service'],'version':_0x542f95[_0xfa620e(0x72)]?.['version'],'serviceCount':_0x542f95[_0xfa620e(0x77)][_0xfa620e(0xa9)],'services':_0x542f95['manifests'][_0xfa620e(0x8f)](_0x44faf0=>({'service':_0x44faf0['normalizedManifest']?.['service'],'version':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x71)],'commandCount':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x89)][_0xfa620e(0xa9)]??0x0,'errors':_0x44faf0['report'][_0xfa620e(0x9f)]})),'errors':_0x542f95[_0xfa620e(0x8b)][_0xfa620e(0x9f)],'commandCount':_0x542f95['normalizedManifest']?.['commands'][_0xfa620e(0xa9)]??0x0},'description':_0xfa620e(0x85)};},async 'execute'(_0x3c23bf){const _0xd92659=a33_0x2b822a,_0x1215ad=importServiceManifest(_0x3c23bf[_0xd92659(0xaa)](_0xd92659(0x6a)));if(_0x1215ad[_0xd92659(0x90)][_0xd92659(0xa9)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'imported':_0x1215ad[_0xd92659(0x7a)],'updated':_0x1215ad[_0xd92659(0xa4)],'serviceCount':_0x1215ad['serviceCount'],'services':_0x1215ad[_0xd92659(0x90)][_0xd92659(0x8f)](summarizeService)},'message':_0xd92659(0x75)+_0x1215ad[_0xd92659(0x7a)]+_0xd92659(0x9b)+_0x1215ad[_0xd92659(0xa4)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'replaced':_0x1215ad['replaced'],'imported':_0x1215ad['imported'],'updated':_0x1215ad['updated'],'serviceCount':_0x1215ad[_0xd92659(0x7b)],'service':summarizeService(_0x1215ad[_0xd92659(0xa1)])},'message':(_0x1215ad[_0xd92659(0x8a)]?'Updated':_0xd92659(0xa7))+'\x20service\x20'+_0x1215ad[_0xd92659(0xa1)]['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6c),'description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3c4a20){const _0x232b37=a33_0x2b822a,_0x37eaed=getLocalServiceEntry(_0x3c4a20[_0x232b37(0xaa)](_0x232b37(0x81)));return{'method':_0x232b37(0x7f),'url':_0x3c4a20[_0x232b37(0xaa)]('file'),'body':{'service':_0x3c4a20['str'](_0x232b37(0x81)),'found':Boolean(_0x37eaed),'version':_0x37eaed?.['version'],'source':_0x37eaed?.[_0x232b37(0x6e)]},'description':_0x232b37(0xa0)};},async 'execute'(_0xafd78e){const _0x611741=a33_0x2b822a,_0x2be1ce=exportServiceManifest(_0xafd78e[_0x611741(0xaa)]('service'),_0xafd78e[_0x611741(0xaa)]('file'));return{'ok':!![],'data':{'registryPath':_0x2be1ce['registryPath'],'file':_0x2be1ce[_0x611741(0x70)],'service':summarizeService(_0x2be1ce[_0x611741(0xa1)])},'message':_0x611741(0x9e)+_0x2be1ce['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':'list','description':a33_0x2b822a(0x80),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x578668=a33_0x2b822a,_0x2d845f=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2d845f['length'],'services':_0x2d845f[_0x578668(0x8f)](summarizeService)}};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x73),'description':a33_0x2b822a(0x84),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x332fba){const _0x26ad49=a33_0x2b822a,_0x22f8bb=getLocalServiceEntry(_0x332fba['str'](_0x26ad49(0x81)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x332fba[_0x26ad49(0xaa)](_0x26ad49(0x81)),'found':Boolean(_0x22f8bb),'version':_0x22f8bb?.[_0x26ad49(0x71)],'source':_0x22f8bb?.[_0x26ad49(0x6e)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xed128){const _0x1e672a=a33_0x2b822a,_0x51e400=removeServiceManifest(_0xed128[_0x1e672a(0xaa)](_0x1e672a(0x81)));return{'ok':!![],'data':{'registryPath':_0x51e400[_0x1e672a(0xac)],'serviceCount':_0x51e400[_0x1e672a(0x7b)],'service':summarizeService(_0x51e400['entry'])},'message':_0x1e672a(0x9d)+_0x51e400['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6b),'description':a33_0x2b822a(0x96),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x12d1b4){const _0x5f32ef=a33_0x2b822a,_0x4a1097=getLocalServiceEntry(_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81)));if(!_0x4a1097)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))},'message':'Local\x20service\x20not\x20found:\x20'+_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4a1097),'manifest':_0x4a1097[_0x5f32ef(0x98)],'normalizedManifest':_0x4a1097['normalizedManifest']}};}}];function a33_0x3480(){const _0x2d30f9=['errors','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','entry','read','validate','updated','13084HMRiux','registryIndex','Imported','serviceCode','length','str','type','registryPath','file','detail','export','350iQBdsx','source','18wigfKF','filePath','version','normalizedManifest','remove','description','Imported\x20','risk','manifests','required','1805mmFBkv','imported','serviceCount','name','import','kind','WRITE','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','service','string','warnings','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','88vXsfio','write','69321DxkkZZ','commands','replaced','report','importedAt','target','4168576GcmrTW','map','entries','6547770OAUjQO','hash','Local\x20service\x20code,\x20for\x20example\x20crm','cliName','cliPath','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','20141858mrpdUy','manifest','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','213366mySjIf','\x20service(s),\x20updated\x20','1352101mtJjhl','Removed\x20service\x20','Exported\x20service\x20'];a33_0x3480=function(){return _0x2d30f9;};return a33_0x3480();}
|
|
1
|
+
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 +1 @@
|
|
|
1
|
-
const a34_0x503b56=a34_0x350c;(function(_0x1a7248,_0x4f5874){const _0x18c510=a34_0x350c,_0x503057=_0x1a7248();while(!![]){try{const _0x1b86d4=parseInt(_0x18c510(0x166))/0x1*(-parseInt(_0x18c510(0x18a))/0x2)+-parseInt(_0x18c510(0x1a3))/0x3*(-parseInt(_0x18c510(0x156))/0x4)+parseInt(_0x18c510(0x188))/0x5+parseInt(_0x18c510(0x17c))/0x6+-parseInt(_0x18c510(0x173))/0x7+-parseInt(_0x18c510(0x159))/0x8*(-parseInt(_0x18c510(0x19c))/0x9)+-parseInt(_0x18c510(0x175))/0xa;if(_0x1b86d4===_0x4f5874)break;else _0x503057['push'](_0x503057['shift']());}catch(_0x5f360b){_0x503057['push'](_0x503057['shift']());}}}(a34_0x56a0,0xd05e5));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a34_0x56a0(){const _0x1e326a=['path','risk','registry','1wYOaQA','homeDir','schemaVersion','parse','hex','map','Local\x20service\x20not\x20found:\x20','find','services\x20must\x20be\x20an\x20array','sourceHash','warnings','$.services[','invalid','1735195OauLno','Invalid\x20service\x20manifest\x20JSON:\x20','14175260qHJIry','Cannot\x20write\x20service\x20registry:\x20','empty','length','stringify','now','serviceCode','1883808bShVrt','services','manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','source','toISOString','updatedAt','string','isArray','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','].manifest.','4848265oYwetu','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','1126922slDVqE','Service\x20manifest\x20file\x20not\x20found:\x20','errors','commandCount','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Invalid\x20service\x20registry\x20JSON:\x20','.tmp','sort','report','kind','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','update','slice','manifests','sha256','validation','importedAt','name','9839799QJsEui','digest','startsWith','utf8','version','ENOENT','service.json','8499tvDbWQ','996baypbh','push','normalizedManifest','8kqGuxt','Service\x20manifest\x20validation\x20failed:\x0a','splice','].manifest','filePath','registryIndex','description','trim','flatMap','service'];a34_0x56a0=function(){return _0x1e326a;};return a34_0x56a0();}import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';function a34_0x350c(_0x31661a,_0x502301){_0x31661a=_0x31661a-0x156;const _0x56a00a=a34_0x56a0();let _0x350c92=_0x56a00a[_0x31661a];return _0x350c92;}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x503b56(0x1a2);export function getServiceRegistryPath(_0x11dfdd={}){const _0x5be711=a34_0x503b56;return resolve(_0x11dfdd[_0x5be711(0x167)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x41b11a={}){const _0x4e4513=a34_0x503b56,_0x445b68=getServiceRegistryPath(_0x41b11a);if(!existsSync(_0x445b68))return emptyServiceRegistry();try{const _0x1b075b=readFileSync(_0x445b68,_0x4e4513(0x19f));if(!_0x1b075b[_0x4e4513(0x160)]())return emptyServiceRegistry();const _0x404d52=JSON['parse'](_0x1b075b);if(_0x404d52['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x4e4513(0x199)](_0x4e4513(0x17f)+String(_0x404d52['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x445b68+'.');if(!Array[_0x4e4513(0x185)](_0x404d52[_0x4e4513(0x17d)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x404d52[_0x4e4513(0x183)],'services':_0x404d52[_0x4e4513(0x17d)]};}catch(_0x3eb560){if(_0x3eb560 instanceof Error&&_0x3eb560[_0x4e4513(0x19b)]==='CliError')throw _0x3eb560;throw CliErrors['validation'](_0x4e4513(0x18f)+_0x445b68,_0x4e4513(0x194));}}export function writeServiceRegistry(_0x11f862,_0x324083={}){const _0x42c961=a34_0x503b56,_0x58d733=getServiceRegistryPath(_0x324083),_0xb944ef=dirname(_0x58d733);!existsSync(_0xb944ef)&&mkdirSync(_0xb944ef,{'recursive':!![]});const _0x29f8c5=_0x58d733+_0x42c961(0x190);try{writeFileSync(_0x29f8c5,JSON[_0x42c961(0x179)](_0x11f862,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x29f8c5,_0x58d733);}catch(_0x1fe40e){try{unlinkSync(_0x29f8c5);}catch{}if(_0x1fe40e?.['code']===_0x42c961(0x1a1))throw CliErrors[_0x42c961(0x199)](_0x42c961(0x176)+_0x58d733);throw _0x1fe40e;}return _0x58d733;}export function loadServiceManifestFromFile(_0x1313b8){const _0x100a14=a34_0x503b56,_0xd5505f=resolve(_0x1313b8);if(!existsSync(_0xd5505f))throw CliErrors[_0x100a14(0x199)](_0x100a14(0x18b)+_0x1313b8);let _0x2e8a3c;const _0x5ae8c9=readFileSync(_0xd5505f,_0x100a14(0x19f));try{_0x2e8a3c=JSON[_0x100a14(0x169)](_0x5ae8c9);}catch{throw CliErrors[_0x100a14(0x199)](_0x100a14(0x174)+_0x1313b8,_0x100a14(0x18e));}const _0x3e92a8=sha256(_0x5ae8c9),_0x479fe6=extractLoadedServiceManifests(_0x2e8a3c,_0x3e92a8),_0xce911b=aggregateValidationReports(_0x479fe6),_0x5e7c97=_0x479fe6[0x0];return{'filePath':_0xd5505f,'hash':_0x3e92a8,'kind':isServiceRegistryLike(_0x2e8a3c)?_0x100a14(0x165):'manifest','manifest':_0x5e7c97?.[_0x100a14(0x17e)]??_0x2e8a3c,'report':_0xce911b,'normalizedManifest':_0x479fe6[_0x100a14(0x178)]===0x1?_0x5e7c97?.[_0x100a14(0x158)]:undefined,'manifests':_0x479fe6};}export function importServiceManifest(_0x2604a2,_0x271ff4={}){const _0x253a14=a34_0x503b56,_0x34ce6b=loadServiceManifestFromFile(_0x2604a2);if(!_0x34ce6b[_0x253a14(0x192)]['ok'])throw CliErrors[_0x253a14(0x199)](formatValidationFailure(_0x34ce6b[_0x253a14(0x192)]),_0x253a14(0x186));if(_0x34ce6b[_0x253a14(0x197)][_0x253a14(0x178)]===0x0)throw CliErrors[_0x253a14(0x199)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x253a14(0x180));const _0x2c0189=readServiceRegistry(_0x271ff4),_0xf998de=(_0x271ff4[_0x253a14(0x17a)]??(()=>new Date()))()['toISOString'](),_0x1a3303=[];let _0x37ae66=0x0,_0x183235=0x0;for(const _0xadc903 of _0x34ce6b[_0x253a14(0x197)]){if(!_0xadc903[_0x253a14(0x158)])continue;const _0x25bb46=_0xadc903['normalizedManifest'][_0x253a14(0x162)]['code'],_0x293ac8={'serviceCode':_0x25bb46,'version':_0xadc903[_0x253a14(0x158)][_0x253a14(0x1a0)],'importedAt':_0xf998de,'source':{'type':'file','path':_0x34ce6b[_0x253a14(0x15d)],'hash':_0xadc903[_0x253a14(0x16f)]},'manifest':_0xadc903[_0x253a14(0x17e)],'normalizedManifest':_0xadc903[_0x253a14(0x158)]},_0x1eb361=_0x2c0189[_0x253a14(0x17d)]['findIndex'](_0x21ca14=>_0x21ca14[_0x253a14(0x17b)]===_0x25bb46);_0x1eb361>=0x0?(_0x2c0189[_0x253a14(0x17d)][_0x1eb361]=_0x293ac8,_0x183235++):(_0x2c0189['services'][_0x253a14(0x157)](_0x293ac8),_0x37ae66++),_0x1a3303['push'](_0x293ac8);}_0x2c0189['services'][_0x253a14(0x191)]((_0x43125e,_0x545ea9)=>_0x43125e[_0x253a14(0x17b)]['localeCompare'](_0x545ea9[_0x253a14(0x17b)])),_0x2c0189[_0x253a14(0x183)]=_0xf998de;const _0x105f8a=writeServiceRegistry(_0x2c0189,_0x271ff4);return{'registryPath':_0x105f8a,'entry':_0x1a3303[0x0],'replaced':_0x1a3303[_0x253a14(0x178)]===0x1?_0x183235===0x1:_0x183235>0x0,'entries':_0x1a3303,'imported':_0x37ae66,'updated':_0x183235,'serviceCount':_0x2c0189[_0x253a14(0x17d)][_0x253a14(0x178)]};}export function exportServiceManifest(_0xb89983,_0x289c45,_0x231dec={}){const _0x9a89f2=a34_0x503b56,_0x4e0d59=getServiceRegistryPath(_0x231dec),_0x2c7b4f=getLocalServiceEntry(_0xb89983,_0x231dec);if(!_0x2c7b4f)throw CliErrors[_0x9a89f2(0x199)]('Local\x20service\x20not\x20found:\x20'+_0xb89983,_0x9a89f2(0x189));const _0x467bc0=resolve(_0x289c45),_0x224afa=dirname(_0x467bc0);return!existsSync(_0x224afa)&&mkdirSync(_0x224afa,{'recursive':!![]}),writeFileSync(_0x467bc0,JSON[_0x9a89f2(0x179)](_0x2c7b4f[_0x9a89f2(0x17e)],null,0x2)+'\x0a',{'encoding':_0x9a89f2(0x19f),'mode':0x180}),{'registryPath':_0x4e0d59,'filePath':_0x467bc0,'entry':_0x2c7b4f};}export function removeServiceManifest(_0x6b8539,_0x64eef0={}){const _0x392a30=a34_0x503b56,_0x4bee90=readServiceRegistry(_0x64eef0),_0x5eca1d=_0x6b8539[_0x392a30(0x160)](),_0x152068=_0x4bee90[_0x392a30(0x17d)]['findIndex'](_0x416c4e=>_0x416c4e['serviceCode']===_0x5eca1d);if(_0x152068<0x0)throw CliErrors[_0x392a30(0x199)](_0x392a30(0x16c)+_0x5eca1d,_0x392a30(0x189));const [_0x4fb07c]=_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x15b)](_0x152068,0x1),_0xcbeb74=(_0x64eef0[_0x392a30(0x17a)]??(()=>new Date()))()[_0x392a30(0x182)]();_0x4bee90[_0x392a30(0x183)]=_0xcbeb74;const _0x33be97=writeServiceRegistry(_0x4bee90,_0x64eef0);return{'registryPath':_0x33be97,'entry':_0x4fb07c,'serviceCount':_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x178)]};}export function listLocalServices(_0x46ab53={}){const _0x50e57a=a34_0x503b56;return readServiceRegistry(_0x46ab53)[_0x50e57a(0x17d)];}export function getLocalServiceEntry(_0x22a46e,_0x504608={}){const _0x15d3fe=a34_0x503b56;return readServiceRegistry(_0x504608)[_0x15d3fe(0x17d)][_0x15d3fe(0x16d)](_0x1ad530=>_0x1ad530['serviceCode']===_0x22a46e['trim']());}export function listLocalServiceTrees(_0x44c584={}){const _0x520edf=a34_0x503b56;return readServiceRegistry(_0x44c584)['services'][_0x520edf(0x16b)](_0x41734d=>_0x41734d[_0x520edf(0x158)]);}export function inspectServiceRegistry(_0x33c2d1={}){const _0x56d5b0=a34_0x503b56,_0x5bd54d=getServiceRegistryPath(_0x33c2d1);if(!existsSync(_0x5bd54d))return emptyServiceRegistryInspection(_0x5bd54d,'missing',![]);try{const _0x116861=readFileSync(_0x5bd54d,_0x56d5b0(0x19f));if(!_0x116861[_0x56d5b0(0x160)]())return emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x177),!![]);const _0x49c16d=JSON[_0x56d5b0(0x169)](_0x116861);if(_0x49c16d[_0x56d5b0(0x168)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'schemaVersion':_0x49c16d[_0x56d5b0(0x168)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x49c16d[_0x56d5b0(0x168)])};if(!Array['isArray'](_0x49c16d['services']))return{...emptyServiceRegistryInspection(_0x5bd54d,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d['updatedAt'],'message':_0x56d5b0(0x16e)};const _0x2ffb01=_0x49c16d[_0x56d5b0(0x17d)][_0x56d5b0(0x16b)](summarizeLocalServiceEntry);return{'registryPath':_0x5bd54d,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d[_0x56d5b0(0x183)],'serviceCount':_0x2ffb01[_0x56d5b0(0x178)],'commandCount':_0x2ffb01['reduce']((_0x2c5467,_0x5a37b6)=>_0x2c5467+_0x5a37b6[_0x56d5b0(0x18d)],0x0),'services':_0x2ffb01};}catch(_0x5a18a6){return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'message':_0x5a18a6 instanceof Error?_0x5a18a6['message']:String(_0x5a18a6)};}}export function formatValidationFailure(_0x30e905){const _0x4d8914=a34_0x503b56,_0x534cb6=_0x30e905[_0x4d8914(0x18c)][_0x4d8914(0x16b)](_0x3db200=>_0x3db200[_0x4d8914(0x163)]+':\x20'+_0x3db200['message']);return _0x4d8914(0x15a)+_0x534cb6['join']('\x0a');}function extractLoadedServiceManifests(_0x54126b,_0x6c4c60){const _0x28fccb=a34_0x503b56;if(!isServiceRegistryLike(_0x54126b)){const _0x5137c2=_0x54126b,_0x2c1005=validateServiceTreeManifest(_0x5137c2);return[{'manifest':_0x5137c2,'report':_0x2c1005,'normalizedManifest':_0x2c1005['ok']?normalizeServiceTreeManifest(_0x5137c2):undefined,'sourceHash':_0x6c4c60}];}return _0x54126b[_0x28fccb(0x17d)][_0x28fccb(0x16b)]((_0x47b495,_0x28f3ac)=>{const _0x1da06b=_0x28fccb,_0x41a3a2=isObjectRecord(_0x47b495)?_0x47b495[_0x1da06b(0x17e)]:undefined,_0x46cc1e=validateServiceTreeManifest(_0x41a3a2),_0x3b2b6e=isObjectRecord(_0x47b495)&&typeof _0x47b495[_0x1da06b(0x17b)]===_0x1da06b(0x184)?_0x47b495['serviceCode']:undefined;return{'manifest':_0x41a3a2,'report':_0x46cc1e,'normalizedManifest':_0x46cc1e['ok']?normalizeServiceTreeManifest(_0x41a3a2):undefined,'sourceHash':sha256(JSON[_0x1da06b(0x179)](_0x41a3a2,null,0x2)+'\x0a'),'registryIndex':_0x28f3ac,'registryServiceCode':_0x3b2b6e};});}function aggregateValidationReports(_0x41af3f){const _0x4798ce=a34_0x503b56,_0x2ba423=_0x41af3f[_0x4798ce(0x161)](_0x1505c3=>_0x1505c3[_0x4798ce(0x15e)]===undefined?_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)]:_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)][_0x4798ce(0x16b)](_0x27c861=>({..._0x27c861,'path':prefixRegistryIssuePath(_0x1505c3[_0x4798ce(0x15e)],_0x27c861['path'])}))),_0x4059d1=_0x41af3f[_0x4798ce(0x161)](_0x2f9b09=>_0x2f9b09[_0x4798ce(0x15e)]===undefined?_0x2f9b09[_0x4798ce(0x192)]['warnings']:_0x2f9b09[_0x4798ce(0x192)][_0x4798ce(0x170)]['map'](_0x22ae1f=>({..._0x22ae1f,'path':prefixRegistryIssuePath(_0x2f9b09[_0x4798ce(0x15e)],_0x22ae1f[_0x4798ce(0x163)])})));return{'ok':_0x2ba423['length']===0x0,'errors':_0x2ba423,'warnings':_0x4059d1};}function prefixRegistryIssuePath(_0xdbc09a,_0x3f85cd){const _0x59cd05=a34_0x503b56;if(_0x3f85cd==='$')return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c);if(_0x3f85cd[_0x59cd05(0x19e)]('$.'))return _0x59cd05(0x171)+_0xdbc09a+'].manifest'+_0x3f85cd[_0x59cd05(0x196)](0x1);if(_0x3f85cd[_0x59cd05(0x19e)]('$['))return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c)+_0x3f85cd[_0x59cd05(0x196)](0x1);return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x187)+_0x3f85cd;}function isServiceRegistryLike(_0x2b613d){const _0x32facb=a34_0x503b56;return isObjectRecord(_0x2b613d)&&_0x2b613d[_0x32facb(0x168)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x32facb(0x185)](_0x2b613d[_0x32facb(0x17d)]);}function isObjectRecord(_0xbe3bc6){const _0xe6439d=a34_0x503b56;return Boolean(_0xbe3bc6)&&typeof _0xbe3bc6==='object'&&!Array[_0xe6439d(0x185)](_0xbe3bc6);}function emptyServiceRegistryInspection(_0x959af,_0x58681a,_0x11d52b){return{'registryPath':_0x959af,'exists':_0x11d52b,'status':_0x58681a,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x58c045){const _0x56ecec=a34_0x503b56,_0x4402f6=_0x58c045['normalizedManifest'],_0x1d6df7=_0x4402f6['commands']['map'](_0x446179=>({'path':_0x446179['cliPath'],'description':_0x446179['description'],'risk':_0x446179[_0x56ecec(0x164)],'targetKind':_0x446179['target'][_0x56ecec(0x193)],'targetCommand':_0x446179['target']['command']}));return{'serviceCode':_0x58c045[_0x56ecec(0x17b)],'name':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x19b)],'description':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x15f)],'version':_0x58c045[_0x56ecec(0x1a0)],'importedAt':_0x58c045[_0x56ecec(0x19a)],'source':_0x58c045[_0x56ecec(0x181)],'commandCount':_0x1d6df7[_0x56ecec(0x178)],'commands':_0x1d6df7};}function sha256(_0x5b46c6){const _0x19158e=a34_0x503b56;return createHash(_0x19158e(0x198))[_0x19158e(0x195)](_0x5b46c6)[_0x19158e(0x19d)](_0x19158e(0x16a));}
|
|
1
|
+
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));}
|