@lovrabet/lovrabet-cli 2.1.7-beta.5 → 2.1.7
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/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/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/commands/create.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.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/service-order.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/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.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 a30_0x58bdd9=a30_0x2d94;function a30_0x2d94(_0x2ef5a3,_0x1188c1){_0x2ef5a3=_0x2ef5a3-0x1b9;const _0x41ff36=a30_0x41ff();let _0x2d9447=_0x41ff36[_0x2ef5a3];return _0x2d9447;}(function(_0x4cac26,_0x5ce3b7){const _0x1a0e18=a30_0x2d94,_0x8af09d=_0x4cac26();while(!![]){try{const _0x2fe3ee=parseInt(_0x1a0e18(0x1e7))/0x1*(parseInt(_0x1a0e18(0x1c8))/0x2)+parseInt(_0x1a0e18(0x1e0))/0x3*(-parseInt(_0x1a0e18(0x1ee))/0x4)+parseInt(_0x1a0e18(0x1c3))/0x5+parseInt(_0x1a0e18(0x1c4))/0x6+parseInt(_0x1a0e18(0x1eb))/0x7*(-parseInt(_0x1a0e18(0x1f0))/0x8)+-parseInt(_0x1a0e18(0x1c5))/0x9+parseInt(_0x1a0e18(0x1dc))/0xa;if(_0x2fe3ee===_0x5ce3b7)break;else _0x8af09d['push'](_0x8af09d['shift']());}catch(_0x5e1a8f){_0x8af09d['push'](_0x8af09d['shift']());}}}(a30_0x41ff,0xe0cc9));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a30_0x58bdd9(0x1d9)},FILE_FLAG={'name':'file','type':'string','required':!![],'description':a30_0x58bdd9(0x1dd)},QUERY_FLAG={'name':a30_0x58bdd9(0x1f6),'type':'string','required':!![],'description':a30_0x58bdd9(0x1e3)},TOPK_FLAG={'name':a30_0x58bdd9(0x1ef),'type':a30_0x58bdd9(0x1bb),'description':a30_0x58bdd9(0x1bc)};function readKnowledgeFile(_0xa758b1){const _0x66f516=a30_0x58bdd9;if(!_0xa758b1)throw CliErrors[_0x66f516(0x1cc)](_0x66f516(0x1e4));if(!existsSync(_0xa758b1))throw CliErrors[_0x66f516(0x1cc)]('File\x20not\x20found:\x20'+_0xa758b1);if(!statSync(_0xa758b1)['isFile']())throw CliErrors[_0x66f516(0x1cc)]('File\x20is\x20not\x20a\x20regular\x20file:\x20'+_0xa758b1);return readFileSync(_0xa758b1,_0x66f516(0x1ca));}function summarizePersonalItem(_0x747ac9){const _0x48d85a=a30_0x58bdd9;return{'id':_0x747ac9['id'],'title':_0x747ac9[_0x48d85a(0x1e1)],'version':_0x747ac9['version'],'ragStatus':_0x747ac9[_0x48d85a(0x1d5)],'ragErrorMessage':_0x747ac9['ragErrorMessage'],'updateTime':_0x747ac9[_0x48d85a(0x1ce)]};}function detailPersonalItem(_0x10b6af){const _0xf831db=a30_0x58bdd9;return{'id':_0x10b6af['id'],'appCode':_0x10b6af[_0xf831db(0x1df)],'scope':_0x10b6af[_0xf831db(0x1db)],'userId':_0x10b6af[_0xf831db(0x1f3)],'title':_0x10b6af[_0xf831db(0x1e1)],'content':_0x10b6af[_0xf831db(0x1ed)]??'','version':_0x10b6af['version'],'ragStatus':_0x10b6af['ragStatus'],'ragErrorMessage':_0x10b6af[_0xf831db(0x1e8)],'createTime':_0x10b6af[_0xf831db(0x1c1)],'updateTime':_0x10b6af[_0xf831db(0x1ce)]};}function summarizeSearchHit(_0x267772){const _0x2b962c=a30_0x58bdd9;return{'scope':_0x267772[_0x2b962c(0x1db)],'docId':_0x267772[_0x2b962c(0x1d6)],'score':_0x267772[_0x2b962c(0x1f2)],'weightedScore':_0x267772[_0x2b962c(0x1bd)],'content':_0x267772['content'],'metadata':_0x267772['metadata']};}function a30_0x41ff(){const _0x13c151=['Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','map','appCode','3OlqgJk','title','list','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','File\x20path\x20is\x20required.','verbose','Personal\x20knowledge-base\x20entry\x20ID','284989nmmNXS','ragErrorMessage','write','/update','523915WWaUTL','length','content','3835788oysCGU','topk','80xagaWi','Search\x20query\x20is\x20required.','score','userId','num','/client/knowledge-base/personal/','query','file','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','number','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','weightedScore','Override\x20the\x20existing\x20entry\x20title','update','Updated\x20KB\x20entry\x20','createTime','bool','1330295TWulpo','911604KjqHCs','9685341vwDXdZ','detail','Created\x20KB\x20entry\x20','6PinZVY','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','utf8','flag','validation','trim','updateTime','str','POST','search','description','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','build','ragStatus','docId','read','body','Personal\x20knowledge-base\x20entry\x20title','--topk\x20must\x20be\x20a\x20positive\x20number.','scope','24313630CsnKHp'];a30_0x41ff=function(){return _0x13c151;};return a30_0x41ff();}function readTopK(_0x5524b0){const _0x5d81ee=a30_0x58bdd9,_0x13c2e0=_0x5524b0[_0x5d81ee(0x1cb)](_0x5d81ee(0x1ef));if(_0x13c2e0===undefined||_0x13c2e0===null||_0x13c2e0==='')return undefined;const _0x60e3a9=_0x5524b0[_0x5d81ee(0x1f4)]('topk');if(!Number['isFinite'](_0x60e3a9)||_0x60e3a9<0x1)throw CliErrors[_0x5d81ee(0x1cc)](_0x5d81ee(0x1da));return _0x60e3a9;}const kbList={'service':'kb','command':a30_0x58bdd9(0x1e2),'description':a30_0x58bdd9(0x1c9),'risk':a30_0x58bdd9(0x1d7),'flags':[VERBOSE_FLAG],async 'execute'(_0x41741e){const _0x4abc5e=a30_0x58bdd9,_0x29aefe=await listPersonalKnowledgeBaseItems(_0x41741e[_0x4abc5e(0x1df)]);if(_0x41741e[_0x4abc5e(0x1c2)](_0x4abc5e(0x1e5)))return{'ok':!![],'data':{'total':_0x29aefe[_0x4abc5e(0x1ec)],'items':_0x29aefe}};return{'ok':!![],'data':{'total':_0x29aefe['length'],'items':_0x29aefe[_0x4abc5e(0x1de)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a30_0x58bdd9(0x1c6),'description':a30_0x58bdd9(0x1d3),'risk':a30_0x58bdd9(0x1d7),'flags':[{...ID_FLAG,'description':a30_0x58bdd9(0x1e6)}],async 'execute'(_0x3114a0){const _0xdcd117=a30_0x58bdd9,_0x131c45=await getPersonalKnowledgeBaseItem(_0x3114a0[_0xdcd117(0x1f4)]('id'),_0x3114a0[_0xdcd117(0x1df)]);return{'ok':!![],'data':detailPersonalItem(_0x131c45)};}},kbCreate={'service':'kb','command':'create','description':'Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','risk':a30_0x58bdd9(0x1e9),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x2563fc){const _0x157517=a30_0x58bdd9,_0x376cc1=_0x2563fc[_0x157517(0x1cf)](_0x157517(0x1e1)),_0x205193=readKnowledgeFile(_0x2563fc[_0x157517(0x1cf)](_0x157517(0x1b9))),_0xa475c6=await createPersonalKnowledgeBaseItem(_0x2563fc[_0x157517(0x1df)],{'title':_0x376cc1,'content':_0x205193});return{'ok':!![],'data':summarizePersonalItem(_0xa475c6),'message':_0x157517(0x1c7)+_0xa475c6['id']+'\x20('+_0xa475c6[_0x157517(0x1e1)]+')'};},async 'dryRun'(_0x433194){const _0x141ec9=a30_0x58bdd9,_0x4089e1=_0x433194[_0x141ec9(0x1cf)](_0x141ec9(0x1e1)),_0x280afd=readKnowledgeFile(_0x433194['str'](_0x141ec9(0x1b9)));return dryRun(_0x141ec9(0x1d0),'/client/knowledge-base/personal/create')[_0x141ec9(0x1d8)]({'appCode':_0x433194[_0x141ec9(0x1df)],'title':_0x4089e1,'content':_0x280afd})[_0x141ec9(0x1d2)](_0x141ec9(0x1ba)+_0x4089e1+'\x22')[_0x141ec9(0x1d4)]();}},kbUpdate={'service':'kb','command':a30_0x58bdd9(0x1bf),'description':'Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','risk':a30_0x58bdd9(0x1e9),'flags':[{...ID_FLAG,'description':a30_0x58bdd9(0x1e6)},{...TITLE_FLAG,'required':![],'description':a30_0x58bdd9(0x1be)},FILE_FLAG],async 'execute'(_0x1115a4){const _0x32e6e4=a30_0x58bdd9,_0xde54a0=_0x1115a4[_0x32e6e4(0x1f4)]('id'),_0x3c3b47=readKnowledgeFile(_0x1115a4[_0x32e6e4(0x1cf)](_0x32e6e4(0x1b9))),_0x15cca7=_0x1115a4['str'](_0x32e6e4(0x1e1))||(await getPersonalKnowledgeBaseItem(_0xde54a0,_0x1115a4[_0x32e6e4(0x1df)]))[_0x32e6e4(0x1e1)],_0xc9adea=await updatePersonalKnowledgeBaseItem(_0xde54a0,_0x1115a4[_0x32e6e4(0x1df)],{'title':_0x15cca7,'content':_0x3c3b47});return{'ok':!![],'data':summarizePersonalItem(_0xc9adea),'message':_0x32e6e4(0x1c0)+_0xc9adea['id']+'\x20('+_0xc9adea[_0x32e6e4(0x1e1)]+')'};},async 'dryRun'(_0x2c0533){const _0x5a1f19=a30_0x58bdd9,_0x50d91b=_0x2c0533[_0x5a1f19(0x1f4)]('id'),_0x5340b9=readKnowledgeFile(_0x2c0533[_0x5a1f19(0x1cf)](_0x5a1f19(0x1b9))),_0x2603e6=_0x2c0533['str'](_0x5a1f19(0x1e1))||(await getPersonalKnowledgeBaseItem(_0x50d91b,_0x2c0533[_0x5a1f19(0x1df)]))[_0x5a1f19(0x1e1)];return dryRun(_0x5a1f19(0x1d0),_0x5a1f19(0x1f5)+_0x50d91b+_0x5a1f19(0x1ea))['body']({'appCode':_0x2c0533['appCode'],'title':_0x2603e6,'content':_0x5340b9})[_0x5a1f19(0x1d2)]('Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20'+_0x50d91b)[_0x5a1f19(0x1d4)]();}},kbSearch={'service':'kb','command':a30_0x58bdd9(0x1d1),'description':'Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','risk':'read','flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x654954){const _0x3d0056=a30_0x58bdd9;if(!_0x654954[_0x3d0056(0x1cf)](_0x3d0056(0x1f6))[_0x3d0056(0x1cd)]())throw CliErrors[_0x3d0056(0x1cc)](_0x3d0056(0x1f1));readTopK(_0x654954);},async 'execute'(_0x17a1a5){const _0x4f6604=a30_0x58bdd9,_0x29454d=_0x17a1a5[_0x4f6604(0x1cf)](_0x4f6604(0x1f6))[_0x4f6604(0x1cd)](),_0x350818=readTopK(_0x17a1a5),_0xbea389=await searchKnowledgeBase(_0x17a1a5['appCode'],{'query':_0x29454d,'topK':_0x350818});return{'ok':!![],'data':{'total':_0xbea389['length'],'hits':_0xbea389['map'](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a31_0x1a8a(){const _0x1f7e9b=['length','10QHBYJw','show','505917LXfACn','208655lJYSXo','warn','View\x20command\x20history\x20logs','Clear\x20command\x20history\x20logs','272120XYdqFP','301224AhOXkT','write','2dxZvng','log','keys','146118OQGuFu','\x20logs:\x0a','level','forEach','error','en-US','*\x20Logs\x20cleared','*\x20No\x20logs\x20found','logs','18KxRang','clear','205599IINlHO','read','16jYmywF','duration','stringify','348711nBrgku','timestamp','message','toLocaleString','details','success','readLogs','\x20\x20\x20Duration:\x20'];a31_0x1a8a=function(){return _0x1f7e9b;};return a31_0x1a8a();}function a31_0x201d(_0x409435,_0x2d2af8){_0x409435=_0x409435-0xf3;const _0x1a8a12=a31_0x1a8a();let _0x201dfb=_0x1a8a12[_0x409435];return _0x201dfb;}const a31_0x320d83=a31_0x201d;(function(_0xe2647c,_0x47dfdc){const _0x452ead=a31_0x201d,_0x563801=_0xe2647c();while(!![]){try{const _0x1f8d14=parseInt(_0x452ead(0x115))/0x1+parseInt(_0x452ead(0x107))/0x2*(-parseInt(_0x452ead(0x105))/0x3)+-parseInt(_0x452ead(0x104))/0x4+parseInt(_0x452ead(0x100))/0x5+-parseInt(_0x452ead(0x113))/0x6*(parseInt(_0x452ead(0x10a))/0x7)+-parseInt(_0x452ead(0x117))/0x8*(-parseInt(_0x452ead(0xff))/0x9)+parseInt(_0x452ead(0xfd))/0xa*(parseInt(_0x452ead(0xf4))/0xb);if(_0x1f8d14===_0x47dfdc)break;else _0x563801['push'](_0x563801['shift']());}catch(_0x884da0){_0x563801['push'](_0x563801['shift']());}}}(a31_0x1a8a,0x2728d));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x531873){const _0x237165=a31_0x201d;if(_0x531873[_0x237165(0xfc)]===0x0){console[_0x237165(0x108)](_0x237165(0x111));return;}console[_0x237165(0x108)]('*\x20'+CLI_DISPLAY_NAME+_0x237165(0x10b)),_0x531873[_0x237165(0x10d)]((_0x2e3b7c,_0x794ae)=>{const _0x234eea=_0x237165,_0x4a34d6=new Date(_0x2e3b7c[_0x234eea(0xf5)])[_0x234eea(0xf7)](_0x234eea(0x10f)),_0x1aede2=_0x2e3b7c['level']===_0x234eea(0xf9)?'√':_0x2e3b7c[_0x234eea(0x10c)]===_0x234eea(0x10e)?'×':_0x2e3b7c[_0x234eea(0x10c)]===_0x234eea(0x101)?'!':'i';console['log'](_0x794ae+0x1+'.\x20'+_0x1aede2+'\x20['+_0x2e3b7c['command']+']\x20'+_0x2e3b7c[_0x234eea(0xf6)]),console[_0x234eea(0x108)]('\x20\x20\x20Time:\x20'+_0x4a34d6),_0x2e3b7c['duration']&&console[_0x234eea(0x108)](_0x234eea(0xfb)+_0x2e3b7c[_0x234eea(0x118)]+'ms'),_0x2e3b7c['details']&&Object[_0x234eea(0x109)](_0x2e3b7c[_0x234eea(0xf8)])[_0x234eea(0xfc)]>0x0&&console[_0x234eea(0x108)]('\x20\x20\x20Details:\x20'+JSON[_0x234eea(0xf3)](_0x2e3b7c[_0x234eea(0xf8)],null,0x2)),console[_0x234eea(0x108)]('');});}export const logsDefinitions=[{'service':a31_0x320d83(0x112),'command':a31_0x320d83(0xfe),'description':a31_0x320d83(0x102),'risk':a31_0x320d83(0x116),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x36f5a5){const _0x3e2d8a=a31_0x320d83;return printLogs(logger[_0x3e2d8a(0xfa)]()),{'ok':!![]};}},{'service':a31_0x320d83(0x112),'command':a31_0x320d83(0x114),'description':a31_0x320d83(0x103),'risk':a31_0x320d83(0x106),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x3bd082){const _0x31b6e9=a31_0x320d83;return logger['clearLogs'](),console[_0x31b6e9(0x108)](_0x31b6e9(0x110)),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a32_0x359101=a32_0x5c71;(function(_0x18413c,_0x1613db){const _0x2fa765=a32_0x5c71,_0x5a38e4=_0x18413c();while(!![]){try{const _0x438509=parseInt(_0x2fa765(0x129))/0x1*(-parseInt(_0x2fa765(0x149))/0x2)+-parseInt(_0x2fa765(0x13b))/0x3*(-parseInt(_0x2fa765(0x15a))/0x4)+parseInt(_0x2fa765(0x130))/0x5+-parseInt(_0x2fa765(0x156))/0x6*(-parseInt(_0x2fa765(0x122))/0x7)+-parseInt(_0x2fa765(0x15d))/0x8+-parseInt(_0x2fa765(0x125))/0x9*(parseInt(_0x2fa765(0x11e))/0xa)+-parseInt(_0x2fa765(0x138))/0xb;if(_0x438509===_0x1613db)break;else _0x5a38e4['push'](_0x5a38e4['shift']());}catch(_0xb53d87){_0x5a38e4['push'](_0x5a38e4['shift']());}}}(a32_0x3ebc,0x192e6));import{existsSync,readFileSync,statSync}from'node:fs';function a32_0x3ebc(){const _0x17e2b5=['createTime','update','30RLgNpW','verbose','description','gmtModified','24jvPLHi','Updated\x20personal\x20BFF\x20','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','239888PDcDFG','50ysLVYW','File\x20is\x20not\x20a\x20regular\x20file:\x20','appCode','/update','114814pTMNor','version','validation','317754RaaNLd','exec','string','test','4520Mjmkib','isArray','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','functionName','File\x20not\x20found:\x20','createUserId','write','584580iKOHAs','utf8','Show\x20one\x20personal\x20BFF\x20by\x20id','str','updateTime','isFile','build','--params\x20must\x20be\x20a\x20JSON\x20object.','632412ZSLdRI','detail','read','88632BEekQs','body','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','Personal\x20BFF\x20script\x20ID','length','personal-bff','list','scriptType','bool','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','file','trim','config','POST','4gdbKMB','Created\x20personal\x20BFF\x20','name','num','flag','Personal\x20BFF\x20description','Personal\x20BFF\x20script\x20file\x20is\x20blank.','map','params','Preview:\x20update\x20personal\x20BFF\x20','source-session-id'];a32_0x3ebc=function(){return _0x17e2b5;};return a32_0x3ebc();}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':a32_0x359101(0x145),'type':a32_0x359101(0x127),'description':'Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'},FUNCTION_NAME_FLAG={'name':a32_0x359101(0x14b),'type':'string','required':!![],'description':a32_0x359101(0x12b)},DESCRIPTION_FLAG={'name':'description','type':a32_0x359101(0x127),'description':a32_0x359101(0x14e)},SOURCE_SESSION_FLAG={'name':'source-session-id','type':a32_0x359101(0x127),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x264a37){const _0x2b382d=a32_0x359101,_0x263e0a=String(_0x264a37||'')[_0x2b382d(0x146)]();if(!_0x263e0a||!FUNCTION_NAME_PATTERN[_0x2b382d(0x128)](_0x263e0a))throw CliErrors[_0x2b382d(0x124)](_0x2b382d(0x144));return _0x263e0a;}function readScriptFile(_0x5320f7){const _0x5b1afb=a32_0x359101;if(!_0x5320f7)throw CliErrors[_0x5b1afb(0x124)]('File\x20path\x20is\x20required.');if(!existsSync(_0x5320f7))throw CliErrors[_0x5b1afb(0x124)](_0x5b1afb(0x12d)+_0x5320f7);if(!statSync(_0x5320f7)[_0x5b1afb(0x135)]())throw CliErrors[_0x5b1afb(0x124)](_0x5b1afb(0x11f)+_0x5320f7);const _0x4083e3=readFileSync(_0x5320f7,_0x5b1afb(0x131));if(!_0x4083e3[_0x5b1afb(0x146)]())throw CliErrors[_0x5b1afb(0x124)](_0x5b1afb(0x14f));return _0x4083e3;}function optionalTrimmed(_0x6762d7){const _0x1b3413=a32_0x359101,_0x1b7e35=String(_0x6762d7||'')[_0x1b3413(0x146)]();return _0x1b7e35||undefined;}function summarizeBff(_0x3714d8){const _0x317011=a32_0x359101;return{'id':_0x3714d8['id'],'appCode':_0x3714d8['appCode'],'functionName':_0x3714d8[_0x317011(0x12c)],'description':_0x3714d8[_0x317011(0x158)],'scriptType':_0x3714d8[_0x317011(0x142)],'version':_0x3714d8['version'],'gmtModified':_0x3714d8[_0x317011(0x159)],'updateTime':_0x3714d8['updateTime']};}function detailBff(_0xe3df63){const _0x3677c6=a32_0x359101;return{'id':_0xe3df63['id'],'appCode':_0xe3df63[_0x3677c6(0x120)],'functionName':_0xe3df63[_0x3677c6(0x12c)],'description':_0xe3df63[_0x3677c6(0x158)],'scriptType':_0xe3df63[_0x3677c6(0x142)],'scriptContent':_0xe3df63['scriptContent']??'','config':_0xe3df63[_0x3677c6(0x147)],'version':_0xe3df63[_0x3677c6(0x123)],'createUserId':_0xe3df63[_0x3677c6(0x12e)],'gmtCreate':_0xe3df63['gmtCreate'],'gmtModified':_0xe3df63[_0x3677c6(0x159)],'createTime':_0xe3df63[_0x3677c6(0x154)],'updateTime':_0xe3df63[_0x3677c6(0x134)]};}function buildCreateInput(_0x2d4711){const _0x487c6e=a32_0x359101;return{'functionName':normalizeFunctionName(_0x2d4711[_0x487c6e(0x133)](_0x487c6e(0x14b))),...optionalTrimmed(_0x2d4711[_0x487c6e(0x133)]('description'))?{'description':optionalTrimmed(_0x2d4711[_0x487c6e(0x133)](_0x487c6e(0x158)))}:{},'scriptContent':readScriptFile(_0x2d4711['str']('file')),...optionalTrimmed(_0x2d4711[_0x487c6e(0x133)](_0x487c6e(0x153)))?{'sourceSessionId':optionalTrimmed(_0x2d4711[_0x487c6e(0x133)](_0x487c6e(0x153)))}:{}};}function buildUpdateInput(_0x38ba27){const _0x37b1ea=a32_0x359101,_0x5e7594={};optionalTrimmed(_0x38ba27[_0x37b1ea(0x133)](_0x37b1ea(0x14b)))&&(_0x5e7594[_0x37b1ea(0x12c)]=normalizeFunctionName(_0x38ba27['str']('name')));_0x38ba27[_0x37b1ea(0x14d)]('description')!==undefined&&(_0x5e7594['description']=_0x38ba27[_0x37b1ea(0x133)](_0x37b1ea(0x158)));optionalTrimmed(_0x38ba27[_0x37b1ea(0x133)](_0x37b1ea(0x145)))&&(_0x5e7594['scriptContent']=readScriptFile(_0x38ba27['str'](_0x37b1ea(0x145))));_0x38ba27[_0x37b1ea(0x14d)](_0x37b1ea(0x153))!==undefined&&(_0x5e7594['sourceSessionId']=_0x38ba27[_0x37b1ea(0x133)]('source-session-id'));if(Object['keys'](_0x5e7594)[_0x37b1ea(0x13f)]===0x0)throw CliErrors[_0x37b1ea(0x124)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x5e7594;}function a32_0x5c71(_0x2b857f,_0x3a6fa8){_0x2b857f=_0x2b857f-0x11e;const _0x3ebc04=a32_0x3ebc();let _0x5c711f=_0x3ebc04[_0x2b857f];return _0x5c711f;}function parseExecParams(_0x29737d){const _0x4f6f52=a32_0x359101,_0x411125=parseJsonParams(_0x29737d)??{};if(Array[_0x4f6f52(0x12a)](_0x411125))throw CliErrors[_0x4f6f52(0x124)](_0x4f6f52(0x137));return _0x411125;}const personalBffList={'service':a32_0x359101(0x140),'command':a32_0x359101(0x141),'description':a32_0x359101(0x13d),'risk':a32_0x359101(0x13a),'flags':[VERBOSE_FLAG],async 'execute'(_0x1eca1e){const _0xd1072=a32_0x359101,_0x564863=await listPersonalBffs(_0x1eca1e['appCode']);return{'ok':!![],'data':{'total':_0x564863['length'],'items':_0x1eca1e[_0xd1072(0x143)](_0xd1072(0x157))?_0x564863:_0x564863[_0xd1072(0x150)](summarizeBff)}};}},personalBffDetail={'service':a32_0x359101(0x140),'command':a32_0x359101(0x139),'description':a32_0x359101(0x132),'risk':a32_0x359101(0x13a),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'}],async 'execute'(_0xbd5aa3){const _0x5afe7f=a32_0x359101,_0x37d506=await getPersonalBff(_0xbd5aa3[_0x5afe7f(0x14c)]('id'),_0xbd5aa3['appCode']);return{'ok':!![],'data':detailBff(_0x37d506)};}},personalBffCreate={'service':a32_0x359101(0x140),'command':'create','description':'Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','risk':a32_0x359101(0x12f),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x4e7a6b){const _0x362e82=a32_0x359101,_0xe9fa34=buildCreateInput(_0x4e7a6b),_0x504a58=await createPersonalBff(_0x4e7a6b['appCode'],_0xe9fa34);return{'ok':!![],'data':detailBff(_0x504a58),'message':_0x362e82(0x14a)+_0x504a58['id']+(_0x504a58['functionName']?'\x20('+_0x504a58[_0x362e82(0x12c)]+')':'')};},async 'dryRun'(_0xcc92e7){const _0x17e17e=a32_0x359101,_0xf88d6e=buildCreateInput(_0xcc92e7);return dryRun(_0x17e17e(0x148),'/client/runtime-bff/personal/create')[_0x17e17e(0x13c)]({'appCode':_0xcc92e7['appCode'],..._0xf88d6e})[_0x17e17e(0x158)]('Preview:\x20create\x20personal\x20BFF\x20'+_0xf88d6e['functionName'])['build']();}},personalBffUpdate={'service':a32_0x359101(0x140),'command':a32_0x359101(0x155),'description':'Update\x20a\x20personal\x20BFF\x20by\x20id','risk':'write','flags':[{...ID_FLAG,'description':a32_0x359101(0x13e)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x486261){const _0x49d192=a32_0x359101,_0x522a35=_0x486261[_0x49d192(0x14c)]('id'),_0x3ba19e=buildUpdateInput(_0x486261),_0x121f10=await updatePersonalBff(_0x522a35,_0x486261[_0x49d192(0x120)],_0x3ba19e);return{'ok':!![],'data':detailBff(_0x121f10),'message':_0x49d192(0x15b)+_0x121f10['id']+(_0x121f10['functionName']?'\x20('+_0x121f10[_0x49d192(0x12c)]+')':'')};},async 'dryRun'(_0x5cf7e3){const _0x2e3357=a32_0x359101,_0x39c782=_0x5cf7e3[_0x2e3357(0x14c)]('id'),_0x1172bc=buildUpdateInput(_0x5cf7e3);return dryRun('POST','/client/runtime-bff/personal/'+_0x39c782+_0x2e3357(0x121))[_0x2e3357(0x13c)]({'appCode':_0x5cf7e3[_0x2e3357(0x120)],..._0x1172bc})[_0x2e3357(0x158)](_0x2e3357(0x152)+_0x39c782)[_0x2e3357(0x136)]();}},personalBffExec={'service':a32_0x359101(0x140),'command':a32_0x359101(0x126),'description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':'high-risk-write','flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...PARAMS_FLAG,'description':a32_0x359101(0x15c)}],async 'validate'(_0x13fd61){const _0x58821f=a32_0x359101;parseExecParams(_0x13fd61['str'](_0x58821f(0x151)));},async 'execute'(_0x4a5509){const _0x9f2be9=a32_0x359101,_0x30e2a2=_0x4a5509[_0x9f2be9(0x14c)]('id'),_0x372b18=parseExecParams(_0x4a5509[_0x9f2be9(0x133)](_0x9f2be9(0x151))),_0x235cbc=await executePersonalBff(_0x30e2a2,_0x4a5509[_0x9f2be9(0x120)],_0x372b18);return{'ok':!![],'data':{'result':_0x235cbc},'message':'Executed\x20personal\x20BFF\x20'+_0x30e2a2};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
1
|
+
const a32_0x2167bf=a32_0x4943;(function(_0x155b56,_0x44b364){const _0x169268=a32_0x4943,_0x232288=_0x155b56();while(!![]){try{const _0x203f8f=parseInt(_0x169268(0xbc))/0x1+parseInt(_0x169268(0xcd))/0x2*(parseInt(_0x169268(0xa0))/0x3)+-parseInt(_0x169268(0xa5))/0x4+parseInt(_0x169268(0xc6))/0x5*(parseInt(_0x169268(0xae))/0x6)+parseInt(_0x169268(0xb7))/0x7+parseInt(_0x169268(0x9a))/0x8*(-parseInt(_0x169268(0xb3))/0x9)+-parseInt(_0x169268(0xd5))/0xa*(parseInt(_0x169268(0xcf))/0xb);if(_0x203f8f===_0x44b364)break;else _0x232288['push'](_0x232288['shift']());}catch(_0x52299a){_0x232288['push'](_0x232288['shift']());}}}(a32_0x3adf,0x2cef3));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':'file','type':a32_0x2167bf(0x97),'description':a32_0x2167bf(0xb9)},FUNCTION_NAME_FLAG={'name':a32_0x2167bf(0xb8),'type':a32_0x2167bf(0x97),'required':!![],'description':'Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders'},DESCRIPTION_FLAG={'name':a32_0x2167bf(0xd2),'type':a32_0x2167bf(0x97),'description':'Personal\x20BFF\x20description'},SOURCE_SESSION_FLAG={'name':a32_0x2167bf(0xb5),'type':a32_0x2167bf(0x97),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x4e1639){const _0x187569=a32_0x2167bf,_0x1c70c6=String(_0x4e1639||'')[_0x187569(0xa9)]();if(!_0x1c70c6||!FUNCTION_NAME_PATTERN['test'](_0x1c70c6))throw CliErrors['validation']('--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.');return _0x1c70c6;}function readScriptFile(_0x562e39){const _0x23406f=a32_0x2167bf;if(!_0x562e39)throw CliErrors[_0x23406f(0x9b)](_0x23406f(0xbe));if(!existsSync(_0x562e39))throw CliErrors[_0x23406f(0x9b)]('File\x20not\x20found:\x20'+_0x562e39);if(!statSync(_0x562e39)[_0x23406f(0xc5)]())throw CliErrors[_0x23406f(0x9b)](_0x23406f(0xc4)+_0x562e39);const _0x2393ef=readFileSync(_0x562e39,_0x23406f(0xc1));if(!_0x2393ef[_0x23406f(0xa9)]())throw CliErrors[_0x23406f(0x9b)](_0x23406f(0xc8));return _0x2393ef;}function optionalTrimmed(_0x42ecbf){const _0x437dec=a32_0x2167bf,_0x474157=String(_0x42ecbf||'')[_0x437dec(0xa9)]();return _0x474157||undefined;}function summarizeBff(_0x522e1e){const _0x5752ce=a32_0x2167bf;return{'id':_0x522e1e['id'],'appCode':_0x522e1e['appCode'],'functionName':_0x522e1e['functionName'],'description':_0x522e1e[_0x5752ce(0xd2)],'scriptType':_0x522e1e[_0x5752ce(0xc0)],'version':_0x522e1e['version'],'gmtModified':_0x522e1e[_0x5752ce(0xb6)],'updateTime':_0x522e1e[_0x5752ce(0x99)]};}function a32_0x3adf(){const _0x481c61=['num','230tawnyz','Personal\x20BFF\x20script\x20ID','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','map','high-risk-write','string','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','updateTime','72HnbaLV','validation','build','flag','--params\x20must\x20be\x20a\x20JSON\x20object.','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','21399QpQJMf','/update','verbose','file','POST','107396FuhSpv','createUserId','str','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','trim','personal-bff','Preview:\x20update\x20personal\x20BFF\x20','Show\x20one\x20personal\x20BFF\x20by\x20id','create','42HHJIft','detail','list','length','functionName','52560eMFzep','config','source-session-id','gmtModified','318122gEMtwO','name','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','createTime','write','361981hNgZAY','Updated\x20personal\x20BFF\x20','File\x20path\x20is\x20required.','read','scriptType','utf8','appCode','/client/runtime-bff/personal/','File\x20is\x20not\x20a\x20regular\x20file:\x20','isFile','187895qTkVVX','/client/runtime-bff/personal/create','Personal\x20BFF\x20script\x20file\x20is\x20blank.','body','isArray','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','Update\x20a\x20personal\x20BFF\x20by\x20id','38oihYNV','exec','259479cAfAtO','params','keys','description','Executed\x20personal\x20BFF\x20'];a32_0x3adf=function(){return _0x481c61;};return a32_0x3adf();}function detailBff(_0x169963){const _0x2c8d7f=a32_0x2167bf;return{'id':_0x169963['id'],'appCode':_0x169963[_0x2c8d7f(0xc2)],'functionName':_0x169963[_0x2c8d7f(0xb2)],'description':_0x169963[_0x2c8d7f(0xd2)],'scriptType':_0x169963[_0x2c8d7f(0xc0)],'scriptContent':_0x169963['scriptContent']??'','config':_0x169963[_0x2c8d7f(0xb4)],'version':_0x169963['version'],'createUserId':_0x169963[_0x2c8d7f(0xa6)],'gmtCreate':_0x169963['gmtCreate'],'gmtModified':_0x169963['gmtModified'],'createTime':_0x169963[_0x2c8d7f(0xba)],'updateTime':_0x169963[_0x2c8d7f(0x99)]};}function buildCreateInput(_0x502875){const _0xa616f3=a32_0x2167bf;return{'functionName':normalizeFunctionName(_0x502875['str'](_0xa616f3(0xb8))),...optionalTrimmed(_0x502875[_0xa616f3(0xa7)](_0xa616f3(0xd2)))?{'description':optionalTrimmed(_0x502875[_0xa616f3(0xa7)](_0xa616f3(0xd2)))}:{},'scriptContent':readScriptFile(_0x502875['str'](_0xa616f3(0xa3))),...optionalTrimmed(_0x502875[_0xa616f3(0xa7)]('source-session-id'))?{'sourceSessionId':optionalTrimmed(_0x502875[_0xa616f3(0xa7)](_0xa616f3(0xb5)))}:{}};}function buildUpdateInput(_0x280904){const _0x4eb939=a32_0x2167bf,_0x594758={};optionalTrimmed(_0x280904[_0x4eb939(0xa7)](_0x4eb939(0xb8)))&&(_0x594758['functionName']=normalizeFunctionName(_0x280904[_0x4eb939(0xa7)](_0x4eb939(0xb8))));_0x280904[_0x4eb939(0x9d)](_0x4eb939(0xd2))!==undefined&&(_0x594758[_0x4eb939(0xd2)]=_0x280904[_0x4eb939(0xa7)](_0x4eb939(0xd2)));optionalTrimmed(_0x280904[_0x4eb939(0xa7)](_0x4eb939(0xa3)))&&(_0x594758['scriptContent']=readScriptFile(_0x280904[_0x4eb939(0xa7)]('file')));_0x280904[_0x4eb939(0x9d)](_0x4eb939(0xb5))!==undefined&&(_0x594758['sourceSessionId']=_0x280904[_0x4eb939(0xa7)](_0x4eb939(0xb5)));if(Object[_0x4eb939(0xd1)](_0x594758)[_0x4eb939(0xb1)]===0x0)throw CliErrors['validation'](_0x4eb939(0x98));return _0x594758;}function parseExecParams(_0x33bfce){const _0x837c1f=a32_0x2167bf,_0x169b7a=parseJsonParams(_0x33bfce)??{};if(Array[_0x837c1f(0xca)](_0x169b7a))throw CliErrors['validation'](_0x837c1f(0x9e));return _0x169b7a;}const personalBffList={'service':a32_0x2167bf(0xaa),'command':a32_0x2167bf(0xb0),'description':a32_0x2167bf(0xcb),'risk':a32_0x2167bf(0xbf),'flags':[VERBOSE_FLAG],async 'execute'(_0x1a30b4){const _0x2416d4=a32_0x2167bf,_0x18f675=await listPersonalBffs(_0x1a30b4[_0x2416d4(0xc2)]);return{'ok':!![],'data':{'total':_0x18f675[_0x2416d4(0xb1)],'items':_0x1a30b4['bool'](_0x2416d4(0xa2))?_0x18f675:_0x18f675[_0x2416d4(0xd8)](summarizeBff)}};}},personalBffDetail={'service':a32_0x2167bf(0xaa),'command':a32_0x2167bf(0xaf),'description':a32_0x2167bf(0xac),'risk':a32_0x2167bf(0xbf),'flags':[{...ID_FLAG,'description':a32_0x2167bf(0xd6)}],async 'execute'(_0x3d97b6){const _0xe7f50b=a32_0x2167bf,_0xfb4c61=await getPersonalBff(_0x3d97b6[_0xe7f50b(0xd4)]('id'),_0x3d97b6[_0xe7f50b(0xc2)]);return{'ok':!![],'data':detailBff(_0xfb4c61)};}},personalBffCreate={'service':'personal-bff','command':a32_0x2167bf(0xad),'description':a32_0x2167bf(0xa8),'risk':a32_0x2167bf(0xbb),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x6a107d){const _0x188bd5=a32_0x2167bf,_0x2cc923=buildCreateInput(_0x6a107d),_0x1b7ca9=await createPersonalBff(_0x6a107d[_0x188bd5(0xc2)],_0x2cc923);return{'ok':!![],'data':detailBff(_0x1b7ca9),'message':'Created\x20personal\x20BFF\x20'+_0x1b7ca9['id']+(_0x1b7ca9['functionName']?'\x20('+_0x1b7ca9['functionName']+')':'')};},async 'dryRun'(_0x150e35){const _0xd104ec=a32_0x2167bf,_0x82966d=buildCreateInput(_0x150e35);return dryRun(_0xd104ec(0xa4),_0xd104ec(0xc7))[_0xd104ec(0xc9)]({'appCode':_0x150e35[_0xd104ec(0xc2)],..._0x82966d})['description']('Preview:\x20create\x20personal\x20BFF\x20'+_0x82966d[_0xd104ec(0xb2)])[_0xd104ec(0x9c)]();}},personalBffUpdate={'service':a32_0x2167bf(0xaa),'command':'update','description':a32_0x2167bf(0xcc),'risk':a32_0x2167bf(0xbb),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x419007){const _0x1f15a7=a32_0x2167bf,_0x3fe414=_0x419007['num']('id'),_0x389fb8=buildUpdateInput(_0x419007),_0x4198ac=await updatePersonalBff(_0x3fe414,_0x419007[_0x1f15a7(0xc2)],_0x389fb8);return{'ok':!![],'data':detailBff(_0x4198ac),'message':_0x1f15a7(0xbd)+_0x4198ac['id']+(_0x4198ac['functionName']?'\x20('+_0x4198ac[_0x1f15a7(0xb2)]+')':'')};},async 'dryRun'(_0x299061){const _0x28e63c=a32_0x2167bf,_0x2dc759=_0x299061['num']('id'),_0x349903=buildUpdateInput(_0x299061);return dryRun(_0x28e63c(0xa4),_0x28e63c(0xc3)+_0x2dc759+_0x28e63c(0xa1))['body']({'appCode':_0x299061[_0x28e63c(0xc2)],..._0x349903})[_0x28e63c(0xd2)](_0x28e63c(0xab)+_0x2dc759)[_0x28e63c(0x9c)]();}},personalBffExec={'service':'personal-bff','command':a32_0x2167bf(0xce),'description':a32_0x2167bf(0x9f),'risk':a32_0x2167bf(0x96),'flags':[{...ID_FLAG,'description':a32_0x2167bf(0xd6)},{...PARAMS_FLAG,'description':a32_0x2167bf(0xd7)}],async 'validate'(_0x18a8d9){const _0x3bf9f=a32_0x2167bf;parseExecParams(_0x18a8d9[_0x3bf9f(0xa7)](_0x3bf9f(0xd0)));},async 'execute'(_0x4f226e){const _0x385d5d=a32_0x2167bf,_0x3c4675=_0x4f226e[_0x385d5d(0xd4)]('id'),_0x57a816=parseExecParams(_0x4f226e[_0x385d5d(0xa7)](_0x385d5d(0xd0))),_0x522875=await executePersonalBff(_0x3c4675,_0x4f226e[_0x385d5d(0xc2)],_0x57a816);return{'ok':!![],'data':{'result':_0x522875},'message':_0x385d5d(0xd3)+_0x3c4675};}};function a32_0x4943(_0x530e77,_0x5e4343){_0x530e77=_0x530e77-0x96;const _0x3adf21=a32_0x3adf();let _0x494352=_0x3adf21[_0x530e77];return _0x494352;}export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a33_0x33b793=a33_0x181d;(function(_0x48c4f4,_0x2de328){const _0x2dd301=a33_0x181d,_0x101783=_0x48c4f4();while(!![]){try{const _0x32d59d=-parseInt(_0x2dd301(0xa4))/0x1*(parseInt(_0x2dd301(0xd1))/0x2)+-parseInt(_0x2dd301(0xc1))/0x3*(parseInt(_0x2dd301(0xce))/0x4)+-parseInt(_0x2dd301(0xb7))/0x5*(parseInt(_0x2dd301(0xba))/0x6)+parseInt(_0x2dd301(0xb2))/0x7*(-parseInt(_0x2dd301(0xbc))/0x8)+-parseInt(_0x2dd301(0xcd))/0x9+-parseInt(_0x2dd301(0xb9))/0xa*(parseInt(_0x2dd301(0xcb))/0xb)+parseInt(_0x2dd301(0xaf))/0xc;if(_0x32d59d===_0x2de328)break;else _0x101783['push'](_0x101783['shift']());}catch(_0x55b895){_0x101783['push'](_0x101783['shift']());}}}(a33_0x3fc6,0x4ca0d));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';function a33_0x3fc6(){const _0xb0505d=['Logs','3652sLZpDD','from','4918617NfxIEM','1489172DvgOVS','Runtime\x20App\x20Config','values','34686oaPKzf','Self\x20Update','Datasets','login','BFF\x20Scripts','1WqMSaX','Configuration','Instant\x20API','\x20\x20[write]','service','list','Service\x20Tree','CLI\x20Built-in\x20Skill','SQL\x20Queries','command','get','31440408IgHkwv','App\x20Management','has','28wVIjgn','show','isSingleCommand','write','Skills','107955ZiFtCc','run','8780ZvXBFN','168REEPFb','push','947944lVuocy','Personal\x20BFF','install','Authentication','Artifacts','3WrineW','map','description','set','\x20\x20[high-risk-write]','Diagnostics','defaultCommand','risk','Knowledge\x20Base'];a33_0x3fc6=function(){return _0xb0505d;};return a33_0x3fc6();}function a33_0x181d(_0x15dec3,_0x31546e){_0x15dec3=_0x15dec3-0xa2;const _0x3fc674=a33_0x3fc6();let _0x181d94=_0x3fc674[_0x15dec3];return _0x181d94;}import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';import{personalBffDefinitions}from'../commands/personal-bff/index.js';import{apiDocDefinitions}from'../commands/api-doc/index.js';import{appConfigDefinitions}from'../commands/app-config/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x288444){const _0x4fc9c7=a33_0x181d;for(const _0x3d4971 of _0x288444){definitions['set'](_0x3d4971[_0x4fc9c7(0xa8)]+':'+_0x3d4971[_0x4fc9c7(0xad)],_0x3d4971);let _0x3ed2a8=serviceGroups[_0x4fc9c7(0xae)](_0x3d4971[_0x4fc9c7(0xa8)]);!_0x3ed2a8&&(_0x3ed2a8=[],serviceGroups[_0x4fc9c7(0xc4)](_0x3d4971[_0x4fc9c7(0xa8)],_0x3ed2a8)),_0x3ed2a8['push'](_0x3d4971);}}function registerService(_0x101488,_0x102ec0,_0x2e370a){const _0x4541c6=a33_0x181d;registerDefinitions(_0x102ec0);const _0x25d45c=_0x2880c5=>_0x2880c5==='read'?'':_0x2880c5===_0x4541c6(0xb5)?_0x4541c6(0xa7):_0x4541c6(0xc5),_0x51c13f={'service':_0x102ec0[0x0][_0x4541c6(0xa8)],'label':_0x101488,'commands':_0x102ec0[_0x4541c6(0xc2)](_0x191590=>({'command':_0x191590[_0x4541c6(0xad)],'description':_0x191590[_0x4541c6(0xc3)],'tag':_0x25d45c(_0x191590[_0x4541c6(0xc8)])})),'defaultCommand':_0x2e370a?.[_0x4541c6(0xc7)]??(_0x2e370a?.[_0x4541c6(0xb4)]?_0x102ec0[0x0][_0x4541c6(0xad)]:undefined),'isSingleCommand':_0x2e370a?.[_0x4541c6(0xb4)]};serviceRegistry[_0x4541c6(0xbb)](_0x51c13f),serviceByName[_0x4541c6(0xc4)](_0x51c13f['service'],_0x51c13f);}registerService(a33_0x33b793(0xbf),authDefinitions,{'defaultCommand':a33_0x33b793(0xa2)}),registerService(a33_0x33b793(0xb0),appDefinitions,{'defaultCommand':a33_0x33b793(0xa9)}),registerService('Workspace',workspaceDefinitions),registerService(a33_0x33b793(0xcf),appConfigDefinitions),registerService(a33_0x33b793(0xa5),configDefinitions,{'defaultCommand':a33_0x33b793(0xa9)}),registerService('API\x20Documentation',apiDocDefinitions),registerService(a33_0x33b793(0xd3),datasetDefinitions),registerService(a33_0x33b793(0xa6),dataDefinitions),registerService(a33_0x33b793(0xac),sqlDefinitions),registerService(a33_0x33b793(0xa3),bffDefinitions),registerService(a33_0x33b793(0xbd),personalBffDefinitions),registerService(a33_0x33b793(0xc0),artifactDefinitions),registerService(a33_0x33b793(0xc9),kbDefinitions),registerService(a33_0x33b793(0xaa),serviceDefinitions,{'defaultCommand':'list'}),registerService(a33_0x33b793(0xb6),skillDefinitions,{'defaultCommand':a33_0x33b793(0xbe)}),registerService(a33_0x33b793(0xab),cliSkillDefinitions,{'defaultCommand':'install'}),registerService(a33_0x33b793(0xd2),[updateDefinition],{'defaultCommand':a33_0x33b793(0xb8),'isSingleCommand':!![]}),registerService(a33_0x33b793(0xc6),[doctorDefinition],{'isSingleCommand':!![]}),registerService('Schema',[schemaDefinition],{'isSingleCommand':!![]}),registerService(a33_0x33b793(0xca),logsDefinitions,{'defaultCommand':a33_0x33b793(0xb3)});export function findDefinition(_0x4366c7,_0x5a433a){return definitions['get'](_0x4366c7+':'+_0x5a433a);}export function isKnownService(_0x6974a7){const _0x3dc94e=a33_0x33b793;return serviceByName[_0x3dc94e(0xb1)](_0x6974a7);}export function getServiceEntry(_0x268692){const _0x87f1b5=a33_0x33b793;return serviceByName[_0x87f1b5(0xae)](_0x268692);}export function getAllDefinitions(){const _0x4322a2=a33_0x33b793;return Array[_0x4322a2(0xcc)](definitions[_0x4322a2(0xd0)]());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a34_0x5f4f76=a34_0x5cc5;(function(_0x5c3625,_0x38e4e0){const _0x2c5cff=a34_0x5cc5,_0x4470f1=_0x5c3625();while(!![]){try{const _0x353d12=-parseInt(_0x2c5cff(0xd1))/0x1+-parseInt(_0x2c5cff(0xd3))/0x2+-parseInt(_0x2c5cff(0xd4))/0x3+-parseInt(_0x2c5cff(0xd7))/0x4*(-parseInt(_0x2c5cff(0xd8))/0x5)+-parseInt(_0x2c5cff(0xd2))/0x6+parseInt(_0x2c5cff(0xd6))/0x7+parseInt(_0x2c5cff(0xd5))/0x8;if(_0x353d12===_0x38e4e0)break;else _0x4470f1['push'](_0x4470f1['shift']());}catch(_0x59b7f6){_0x4470f1['push'](_0x4470f1['shift']());}}}(a34_0x38cd,0x88f5b));function a34_0x5cc5(_0x126eec,_0x33c7f1){_0x126eec=_0x126eec-0xcf;const _0x38cd4c=a34_0x38cd();let _0x5cc5cf=_0x38cd4c[_0x126eec];return _0x5cc5cf;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x8e331a){const _0x1fae79=await buildSchemaPayload();return{'ok':!![],'data':_0x1fae79};}function a34_0x38cd(){const _0x11bd4a=['3352475qhwPds','628KkBKck','3410tFqhkS','export','schema','93461mwxRbv','2715390NURpeM','978728TaEuOA','1766724TkcGuE','12794288GvbQPB'];a34_0x38cd=function(){return _0x11bd4a;};return a34_0x38cd();}export const schemaDefinition={'service':a34_0x5f4f76(0xd0),'command':a34_0x5f4f76(0xcf),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x483d41,_0x1feb00){const _0x350c78=a35_0x5d6f,_0xbbc9ed=_0x483d41();while(!![]){try{const _0x198114=parseInt(_0x350c78(0x1c9))/0x1+-parseInt(_0x350c78(0x19a))/0x2*(-parseInt(_0x350c78(0x19e))/0x3)+parseInt(_0x350c78(0x197))/0x4+parseInt(_0x350c78(0x1ad))/0x5*(parseInt(_0x350c78(0x1cd))/0x6)+-parseInt(_0x350c78(0x18a))/0x7+parseInt(_0x350c78(0x1a3))/0x8+-parseInt(_0x350c78(0x199))/0x9*(-parseInt(_0x350c78(0x19b))/0xa);if(_0x198114===_0x1feb00)break;else _0xbbc9ed['push'](_0xbbc9ed['shift']());}catch(_0x261b4a){_0xbbc9ed['push'](_0xbbc9ed['shift']());}}}(a35_0x590b,0x30692));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(_0x443899,_0x27a772){const _0xa9e5f=a35_0x5d6f,_0x1c081a=listLocalServiceTrees();let _0x160fea;for(const _0x1ec46d of _0x1c081a){const _0x2a642f=matchServiceTreeCommand(_0x1ec46d,_0x443899);if(!_0x2a642f)continue;(!_0x160fea||_0x2a642f['command'][_0xa9e5f(0x1a0)][_0xa9e5f(0x17b)]>_0x160fea[_0xa9e5f(0x1a6)][_0xa9e5f(0x1a0)][_0xa9e5f(0x17b)])&&(_0x160fea={'tree':_0x1ec46d,'command':_0x2a642f[_0xa9e5f(0x1a6)],'remainingArgs':_0x2a642f[_0xa9e5f(0x1c8)]});}if(!_0x160fea)return undefined;const _0xde51b8={..._0x27a772};return applyAppBinding(_0x160fea[_0xa9e5f(0x1df)],_0x160fea[_0xa9e5f(0x1a6)],_0xde51b8),{'definition':buildDynamicCommandDefinition(_0x160fea[_0xa9e5f(0x1df)],_0x160fea['command']),'args':_0x160fea[_0xa9e5f(0x1c8)],'flags':_0xde51b8,'tree':_0x160fea[_0xa9e5f(0x1df)],'command':_0x160fea[_0xa9e5f(0x1a6)]};}export function generateDynamicServiceHelp(_0x55cfbd){const _0x3c39c0=a35_0x5d6f,_0x733c7=listLocalServiceTrees()[_0x3c39c0(0x17f)](_0x46a24c=>_0x46a24c[_0x3c39c0(0x185)][_0x3c39c0(0x1ae)]===_0x55cfbd);if(!_0x733c7)return undefined;const _0x373e44=[CLI_BIN_NAME+'\x20'+_0x55cfbd+_0x3c39c0(0x1bc),'',_0x733c7[_0x3c39c0(0x185)][_0x3c39c0(0x1d4)]||_0x55cfbd,_0x733c7[_0x3c39c0(0x185)][_0x3c39c0(0x1b0)]?'\x20\x20'+_0x733c7[_0x3c39c0(0x185)]['description']:'','',_0x3c39c0(0x187),..._0x733c7['commands'][_0x3c39c0(0x1e0)](_0x49e2f0=>{const _0x24abef=_0x3c39c0,_0x3ea91f=_0x49e2f0[_0x24abef(0x1a0)][_0x24abef(0x1c2)](0x1)[_0x24abef(0x181)]('\x20'),_0x116aac=_0x49e2f0[_0x24abef(0x179)]===_0x24abef(0x1b9)?'':'\x20['+_0x49e2f0[_0x24abef(0x179)]+']';return'\x20\x20'+_0x3ea91f[_0x24abef(0x1b7)](0x18)+'\x20'+(_0x49e2f0[_0x24abef(0x1b0)]||'')+_0x116aac;}),'',_0x3c39c0(0x1a7)+CLI_BIN_NAME+_0x3c39c0(0x190)+_0x55cfbd+_0x3c39c0(0x1a1)][_0x3c39c0(0x1d7)](Boolean);return _0x373e44['join']('\x0a');}export function listDynamicServiceEntries(){const _0x3f39f9=a35_0x5d6f;return listLocalServices()[_0x3f39f9(0x1e0)](_0x337abe=>{const _0x3ddb2c=_0x3f39f9,_0x28d325=_0x337abe[_0x3ddb2c(0x17a)];return{'service':_0x28d325[_0x3ddb2c(0x185)][_0x3ddb2c(0x1ae)],'label':_0x28d325[_0x3ddb2c(0x185)][_0x3ddb2c(0x1d4)]||_0x28d325[_0x3ddb2c(0x185)][_0x3ddb2c(0x1ae)],'commands':_0x28d325[_0x3ddb2c(0x184)][_0x3ddb2c(0x1e0)](_0x3b625b=>({'command':dynamicCommandName(_0x3b625b),'description':_0x3b625b[_0x3ddb2c(0x1b0)]||_0x3ddb2c(0x183)+_0x3b625b[_0x3ddb2c(0x193)],'tag':riskTag(_0x3b625b['risk'])}))};});}export function getDynamicServiceEntry(_0x103717){const _0x11eca5=a35_0x5d6f;return listDynamicServiceEntries()[_0x11eca5(0x17f)](_0x20ff54=>_0x20ff54[_0x11eca5(0x185)]===_0x103717);}export function listDynamicServiceDefinitions(_0x452d73){const _0x235438=a35_0x5d6f;return listLocalServiceTrees()[_0x235438(0x1d7)](_0x1b6bbe=>!_0x452d73||_0x1b6bbe['service']['code']===_0x452d73)[_0x235438(0x18f)](_0x609112=>_0x609112[_0x235438(0x184)][_0x235438(0x1e0)](_0x3d6f2c=>buildDynamicCommandDefinition(_0x609112,_0x3d6f2c)));}export function getDynamicServiceDefinitions(_0x1387bb){const _0x188ef4=a35_0x5d6f,_0x5dc2f4=listDynamicServiceDefinitions(_0x1387bb);return _0x5dc2f4[_0x188ef4(0x17b)]>0x0?_0x5dc2f4:undefined;}export function findDynamicServiceDefinition(_0x33f3c6,_0x32f924){return listDynamicServiceDefinitions(_0x33f3c6)['find'](_0x273862=>_0x273862['command']===_0x32f924);}export function buildDynamicCommandDefinition(_0x2391b3,_0x300bd1){const _0x461b51=a35_0x5d6f;return{'service':_0x2391b3[_0x461b51(0x185)][_0x461b51(0x1ae)],'command':dynamicCommandName(_0x300bd1),'description':_0x300bd1[_0x461b51(0x1b0)]||'Run\x20service\x20command\x20'+_0x300bd1[_0x461b51(0x193)],'risk':_0x300bd1['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x300bd1[_0x461b51(0x1af)][_0x461b51(0x1e0)](_0x191bdf=>({'name':_0x191bdf[_0x461b51(0x1d4)],'description':_0x191bdf[_0x461b51(0x1b0)]||_0x191bdf[_0x461b51(0x1d4)],'required':_0x191bdf[_0x461b51(0x1d3)]})),'flags':_0x300bd1[_0x461b51(0x192)][_0x461b51(0x1e0)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x300bd1),async 'dryRun'(_0x1c34db){const _0x313a87=_0x461b51,_0x53745b=await compilePlan(_0x300bd1,_0x1c34db);return{'method':_0x313a87(0x195),'url':_0x300bd1[_0x313a87(0x193)],'body':{'target':targetPreview(_0x53745b),'params':_0x53745b[_0x313a87(0x1b5)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x300bd1[_0x313a87(0x193)]};},async 'execute'(_0x127053){const _0x4f8615=_0x461b51,_0x2feda6=await compilePlan(_0x300bd1,_0x127053),_0x105d09=Date[_0x4f8615(0x1db)](),_0x48c7e3=await executePlan(_0x2feda6,_0x300bd1,_0x127053),_0xafca90=Date[_0x4f8615(0x1db)]()-_0x105d09;return{'ok':!![],'data':{'service':_0x2391b3[_0x4f8615(0x185)],'command':_0x300bd1[_0x4f8615(0x193)],'target':targetPreview(_0x2feda6),'result':_0x48c7e3,'elapsed':_0xafca90},'message':'Service\x20command\x20'+_0x300bd1[_0x4f8615(0x193)]+_0x4f8615(0x1dd)+_0xafca90+'ms'};}};}function dynamicCommandName(_0x37731a){const _0x377741=a35_0x5d6f;return _0x37731a['fullPath'][_0x377741(0x1c2)](0x1)[_0x377741(0x181)]('\x20');}function riskTag(_0x3f7690){const _0x18e349=a35_0x5d6f;return _0x3f7690===_0x18e349(0x1b9)?'':_0x18e349(0x1c7)+_0x3f7690+']';}function flagToCommandFlag(_0x505aa0){const _0x3cf389=a35_0x5d6f;return{'name':_0x505aa0[_0x3cf389(0x194)],'type':_0x505aa0[_0x3cf389(0x1bb)]===_0x3cf389(0x1b8)?_0x3cf389(0x18d):_0x505aa0['type'],'description':_0x505aa0['description']||_0x505aa0[_0x3cf389(0x1d4)],'required':_0x505aa0['required'],'default':isPrimitiveFlagDefault(_0x505aa0[_0x3cf389(0x180)])?_0x505aa0['default']:undefined,'enum':_0x505aa0['enum']};}async function compilePlan(_0x10d0f3,_0x6eeb47){const _0x1603d0=a35_0x5d6f;return compileServiceTreeCommand(_0x10d0f3,{'flags':_0x6eeb47[_0x1603d0(0x1a2)],'args':_0x6eeb47[_0x1603d0(0x1af)],'context':await buildServiceContext(_0x10d0f3,_0x6eeb47)});}async function buildServiceContext(_0x32ccba,_0x508baa){const _0x1e280d=a35_0x5d6f,_0x4b3ca2={'appCode':_0x508baa[_0x1e280d(0x18b)],'env':_0x508baa[_0x1e280d(0x191)],'envName':_0x508baa[_0x1e280d(0x191)]};if(!usesRuntimeContext(_0x32ccba))return _0x4b3ca2;const _0x18136c=await getLoginUserInfo(),_0xe4956b=pickFirst(_0x18136c[_0x1e280d(0x1c4)],_0x18136c['id']);return{..._0x4b3ca2,'user':_0x18136c,'userId':_0xe4956b,'id':_0x18136c['id'],'username':pickFirst(_0x18136c[_0x1e280d(0x1d5)],_0x18136c['userName'],_0x18136c[_0x1e280d(0x1dc)]),'userName':_0x18136c[_0x1e280d(0x1a9)],'nickname':pickFirst(_0x18136c[_0x1e280d(0x1b2)],_0x18136c[_0x1e280d(0x1ba)]),'nickName':_0x18136c[_0x1e280d(0x1ba)],'tenantCode':_0x18136c[_0x1e280d(0x18e)],'employeeId':_0x18136c['employeeId']};}function a35_0x5d6f(_0x570e49,_0x3336ee){_0x570e49=_0x570e49-0x179;const _0x590be5=a35_0x590b();let _0x5d6fba=_0x590be5[_0x570e49];return _0x5d6fba;}function usesRuntimeContext(_0x1a065e){const _0x46cecc=a35_0x5d6f;return _0x1a065e[_0x46cecc(0x1a4)][_0x46cecc(0x1d2)](_0x231fd9=>typeof _0x231fd9[_0x46cecc(0x1b4)]===_0x46cecc(0x18d)&&(_0x231fd9['source'][_0x46cecc(0x1de)]('context.')||_0x231fd9[_0x46cecc(0x1b4)]['startsWith']('ctx.')));}function pickFirst(..._0x28fcbf){return _0x28fcbf['find'](_0x176c62=>_0x176c62!==undefined&&_0x176c62!==null);}async function executePlan(_0x51ac26,_0x40f5b7,_0x4aa38b){const _0x5ec973=a35_0x5d6f;if(_0x51ac26[_0x5ec973(0x1a5)]===_0x5ec973(0x1bf)){const _0x30ae94=await resolveDatasetCode(_0x51ac26,_0x40f5b7,_0x4aa38b);return executeData(_0x30ae94,_0x51ac26[_0x5ec973(0x1a6)],_0x51ac26[_0x5ec973(0x1b5)]);}if(_0x51ac26[_0x5ec973(0x1a5)]==='sql'){if(!_0x51ac26[_0x5ec973(0x1cf)])throw CliErrors[_0x5ec973(0x1c0)]('Service\x20command\x20'+_0x40f5b7[_0x5ec973(0x193)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x51ac26[_0x5ec973(0x1cf)],normalizeScalarParams(_0x51ac26[_0x5ec973(0x1b5)]));}if(_0x51ac26['kind']===_0x5ec973(0x186)){const _0x42c2aa=_0x51ac26[_0x5ec973(0x1c3)]||_0x51ac26[_0x5ec973(0x1d1)]||(_0x51ac26['bffId']==null?'':String(_0x51ac26[_0x5ec973(0x19c)]));if(!_0x42c2aa)throw CliErrors[_0x5ec973(0x1c0)](_0x5ec973(0x1aa)+_0x40f5b7[_0x5ec973(0x193)]+_0x5ec973(0x1c1));return executeSdkBff(_0x42c2aa,_0x51ac26['params']);}throw CliErrors['validation'](_0x5ec973(0x182)+_0x51ac26[_0x5ec973(0x1a5)]);}async function resolveDatasetCode(_0x136387,_0x5db627,_0x2d55b6){const _0xda6ba=a35_0x5d6f;if(_0x136387[_0xda6ba(0x1be)])return _0x136387[_0xda6ba(0x1be)];if(!_0x136387[_0xda6ba(0x1bd)])throw CliErrors[_0xda6ba(0x1c0)]('Service\x20command\x20'+_0x5db627[_0xda6ba(0x193)]+_0xda6ba(0x189));const _0x10fe7d=await listDatasets(_0x2d55b6[_0xda6ba(0x18b)]),_0x5d27fe=_0x10fe7d[_0xda6ba(0x17f)](_0x46ac85=>_0x46ac85[_0xda6ba(0x1c6)]?.[_0xda6ba(0x1cc)]===_0x136387['datatable']);if(!_0x5d27fe?.[_0xda6ba(0x1ae)])throw CliErrors['validation'](_0xda6ba(0x17c)+_0x136387[_0xda6ba(0x1bd)]+_0xda6ba(0x1d0)+_0x2d55b6[_0xda6ba(0x18b)]+'.',_0xda6ba(0x198));return _0x5d27fe[_0xda6ba(0x1ae)];}function applyAppBinding(_0x364625,_0x4fce07,_0x3ee857){const _0x104d8f=a35_0x5d6f,_0x338258=_0x4fce07['target'][_0x104d8f(0x196)];if(!_0x338258)return;const _0x435151=_0x364625['appBindings'][_0x338258];if(!_0x435151)throw CliErrors['validation']('Unknown\x20appRef\x20\x22'+_0x338258+_0x104d8f(0x188)+_0x4fce07[_0x104d8f(0x193)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x2f936b=_0x435151[_0x104d8f(0x1d8)]||_0x435151[_0x104d8f(0x18b)];_0x2f936b&&!hasText(_0x3ee857[_0x104d8f(0x1d8)])&&(_0x3ee857[_0x104d8f(0x1d8)]=_0x2f936b),_0x435151['app']&&!hasText(_0x3ee857[_0x104d8f(0x1ac)])&&!hasText(_0x3ee857[_0x104d8f(0x1d8)])&&(_0x3ee857[_0x104d8f(0x1ac)]=_0x435151[_0x104d8f(0x1ac)]),_0x435151[_0x104d8f(0x19d)]&&!hasText(_0x3ee857[_0x104d8f(0x19d)])&&(_0x3ee857[_0x104d8f(0x19d)]=_0x435151[_0x104d8f(0x19d)]);}function renderDynamicCommandHelp(_0x5568e4){const _0xef6622=a35_0x5d6f,_0xfcaf28=[_0xef6622(0x1e1),_0xef6622(0x1cb)+_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1a5)],'\x20\x20\x20\x20command:\x20'+_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1a6)]];if(_0x5568e4[_0xef6622(0x1d9)]['datasetCode'])_0xfcaf28[_0xef6622(0x1ab)]('\x20\x20\x20\x20datasetCode:\x20'+_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1be)]);if(_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1bd)])_0xfcaf28[_0xef6622(0x1ab)](_0xef6622(0x1ce)+_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1bd)]);if(_0x5568e4['target'][_0xef6622(0x1cf)])_0xfcaf28[_0xef6622(0x1ab)](_0xef6622(0x18c)+_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1cf)]);if(_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1c3)])_0xfcaf28[_0xef6622(0x1ab)](_0xef6622(0x1c5)+_0x5568e4[_0xef6622(0x1d9)][_0xef6622(0x1c3)]);if(_0x5568e4[_0xef6622(0x1a4)][_0xef6622(0x17b)]>0x0){_0xfcaf28['push']('',_0xef6622(0x17d));for(const _0xa75e1c of _0x5568e4[_0xef6622(0x1a4)]){_0xfcaf28['push'](_0xef6622(0x1b6)+(_0xa75e1c[_0xef6622(0x1b4)]||_0xef6622(0x1a8))+_0xef6622(0x19f)+_0xa75e1c[_0xef6622(0x1d9)]+(_0xa75e1c[_0xef6622(0x1b3)]?'.'+_0xa75e1c[_0xef6622(0x1b3)]:''));}}return _0xfcaf28[_0xef6622(0x181)]('\x0a');}function targetPreview(_0x180a09){const _0x1744d8=a35_0x5d6f;return{'kind':_0x180a09['kind'],'command':_0x180a09[_0x1744d8(0x1a6)],'appRef':_0x180a09[_0x1744d8(0x196)],'datasetCode':_0x180a09[_0x1744d8(0x1be)],'datatable':_0x180a09[_0x1744d8(0x1bd)],'sqlCode':_0x180a09['sqlCode'],'bffCode':_0x180a09['bffCode'],'bffId':_0x180a09['bffId'],'scriptName':_0x180a09[_0x1744d8(0x1c3)]};}function a35_0x590b(){const _0x37896d=['Cannot\x20resolve\x20datatable\x20\x22','\x20\x20MAP\x20TO','fromEntries','find','default','join','Unsupported\x20service\x20target\x20kind:\x20','Run\x20service\x20command\x20','commands','service','bff','Commands:','\x22\x20in\x20service\x20command\x20','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','2527735hxMlOM','appCode','\x20\x20\x20\x20sqlCode:\x20','string','tenantCode','flatMap','\x20service\x20detail\x20--service\x20','envName','flags','cliPath','cliName','SERVICE_TREE','appRef','477400mwLkhn','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','315YsbRCA','2018yMvjhy','5270BKOpfQ','bffId','env','141DKCMXR','\x20->\x20','fullPath','`\x20to\x20inspect\x20the\x20manifest.','rawFlags','1035688gZtlZI','mapTo','kind','command','Use\x20`','const','userName','Service\x20command\x20','push','app','5tsevEw','code','args','description','boolean','nickname','operator','source','params','\x20\x20\x20\x20','padEnd','json','read','nickName','type','\x20<command>\x20[flags]','datatable','datasetCode','data','validation','\x20requires\x20target.scriptName.','slice','scriptName','userId','\x20\x20\x20\x20scriptName:\x20','dbtableConfig','\x20\x20[','remainingArgs','186573GDMPVN','trim','\x20\x20\x20\x20kind:\x20\x20\x20\x20','tableName','348858KXvVlt','\x20\x20\x20\x20datatable:\x20','sqlCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','bffCode','some','required','name','username','entries','filter','appcode','target','number','now','loginName','\x20completed\x20in\x20','startsWith','tree','map','\x20\x20SERVICE\x20TREE\x20TARGET','risk','normalizedManifest','length'];a35_0x590b=function(){return _0x37896d;};return a35_0x590b();}function normalizeScalarParams(_0x34a6d9){const _0x48361b=a35_0x5d6f;return Object[_0x48361b(0x17e)](Object[_0x48361b(0x1d6)](_0x34a6d9)[_0x48361b(0x1d7)](([,_0x5ec3a5])=>typeof _0x5ec3a5===_0x48361b(0x18d)||typeof _0x5ec3a5===_0x48361b(0x1da)));}function hasText(_0x3bed1d){const _0x53a584=a35_0x5d6f;return typeof _0x3bed1d==='string'&&_0x3bed1d[_0x53a584(0x1ca)]()[_0x53a584(0x17b)]>0x0;}function isPrimitiveFlagDefault(_0xc340a9){const _0x58d415=a35_0x5d6f;return _0xc340a9===undefined||typeof _0xc340a9===_0x58d415(0x18d)||typeof _0xc340a9===_0x58d415(0x1da)||typeof _0xc340a9===_0x58d415(0x1b1);}
|
|
1
|
+
(function(_0x1f5b4a,_0x47c04d){const _0x174e07=a35_0x3f69,_0x20fa08=_0x1f5b4a();while(!![]){try{const _0x52ce36=-parseInt(_0x174e07(0x19a))/0x1+parseInt(_0x174e07(0x1f5))/0x2*(-parseInt(_0x174e07(0x1da))/0x3)+-parseInt(_0x174e07(0x1f1))/0x4+parseInt(_0x174e07(0x1e9))/0x5+-parseInt(_0x174e07(0x1c2))/0x6+parseInt(_0x174e07(0x19b))/0x7*(-parseInt(_0x174e07(0x1f4))/0x8)+parseInt(_0x174e07(0x1d4))/0x9*(parseInt(_0x174e07(0x1a8))/0xa);if(_0x52ce36===_0x47c04d)break;else _0x20fa08['push'](_0x20fa08['shift']());}catch(_0x124d7f){_0x20fa08['push'](_0x20fa08['shift']());}}}(a35_0x37fa,0xd5d8b));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';function a35_0x37fa(){const _0x41eab2=['slice','params','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20datasetCode:\x20','Unsupported\x20service\x20target\x20kind:\x20','\x20\x20SERVICE\x20TREE\x20TARGET','\x20->\x20','657545lhRdfX','username','service','name','\x20\x20\x20\x20command:\x20','Use\x20`','\x20completed\x20in\x20','loginName','4746884wwHumR','userName','commands','16GrDxog','1672244qJywEx','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','required','type','tree','normalizedManifest','startsWith','rawFlags','fullPath','source','code','dbtableConfig','now','341868LRbrRi','5157558JIFySO','find','map','description','boolean','\x20\x20\x20\x20','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Preview\x20dynamic\x20service\x20command:\x20','appCode','string','Service\x20command\x20','padEnd','cliPath','57418870wyFASI','const','filter','sqlCode','\x20requires\x20target.sqlCode.','employeeId','appBindings','args','bffCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','tenantCode','data','enum','command','datatable','entries','\x22\x20in\x20service\x20command\x20','\x20requires\x20target.scriptName.','tableName','\x20\x20\x20\x20kind:\x20\x20\x20\x20','nickname','push','scriptName','context.','risk','some','1938360nLCyYW','SERVICE_TREE','\x20\x20\x20\x20scriptName:\x20','env','length','kind','validation','\x20\x20\x20\x20datatable:\x20','flatMap','json','join','number','\x20\x20\x20\x20sqlCode:\x20','envName','app','Run\x20service\x20command\x20','trim','Commands:','9oIxLoH','flags','target','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','read','appcode','6uEQXlw','\x20service\x20detail\x20--service\x20','sql','\x20\x20MAP\x20TO','bffId','datasetCode','nickName','default'];a35_0x37fa=function(){return _0x41eab2;};return a35_0x37fa();}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x2f6592,_0x3eeaf9){const _0x60461b=a35_0x3f69,_0x398ca2=listLocalServiceTrees();let _0x2ffe14;for(const _0x155bf9 of _0x398ca2){const _0x2904ce=matchServiceTreeCommand(_0x155bf9,_0x2f6592);if(!_0x2904ce)continue;(!_0x2ffe14||_0x2904ce[_0x60461b(0x1b5)][_0x60461b(0x1fd)]['length']>_0x2ffe14[_0x60461b(0x1b5)][_0x60461b(0x1fd)]['length'])&&(_0x2ffe14={'tree':_0x155bf9,'command':_0x2904ce[_0x60461b(0x1b5)],'remainingArgs':_0x2904ce['remainingArgs']});}if(!_0x2ffe14)return undefined;const _0x935fde={..._0x3eeaf9};return applyAppBinding(_0x2ffe14[_0x60461b(0x1f9)],_0x2ffe14[_0x60461b(0x1b5)],_0x935fde),{'definition':buildDynamicCommandDefinition(_0x2ffe14[_0x60461b(0x1f9)],_0x2ffe14[_0x60461b(0x1b5)]),'args':_0x2ffe14['remainingArgs'],'flags':_0x935fde,'tree':_0x2ffe14['tree'],'command':_0x2ffe14[_0x60461b(0x1b5)]};}export function generateDynamicServiceHelp(_0x4b70db){const _0x30b4e9=a35_0x3f69,_0xcf008b=listLocalServiceTrees()['find'](_0x175c6b=>_0x175c6b[_0x30b4e9(0x1eb)][_0x30b4e9(0x197)]===_0x4b70db);if(!_0xcf008b)return undefined;const _0x47e5cf=[CLI_BIN_NAME+'\x20'+_0x4b70db+'\x20<command>\x20[flags]','',_0xcf008b['service'][_0x30b4e9(0x1ec)]||_0x4b70db,_0xcf008b['service'][_0x30b4e9(0x19e)]?'\x20\x20'+_0xcf008b[_0x30b4e9(0x1eb)]['description']:'','',_0x30b4e9(0x1d3),..._0xcf008b[_0x30b4e9(0x1f3)][_0x30b4e9(0x19d)](_0x4adde0=>{const _0x5e2f43=_0x30b4e9,_0x28e332=_0x4adde0[_0x5e2f43(0x1fd)][_0x5e2f43(0x1e2)](0x1)[_0x5e2f43(0x1cc)]('\x20'),_0x13b3fd=_0x4adde0[_0x5e2f43(0x1c0)]==='read'?'':'\x20['+_0x4adde0[_0x5e2f43(0x1c0)]+']';return'\x20\x20'+_0x28e332[_0x5e2f43(0x1a6)](0x18)+'\x20'+(_0x4adde0[_0x5e2f43(0x19e)]||'')+_0x13b3fd;}),'',_0x30b4e9(0x1ee)+CLI_BIN_NAME+_0x30b4e9(0x1db)+_0x4b70db+_0x30b4e9(0x1e4)][_0x30b4e9(0x1aa)](Boolean);return _0x47e5cf[_0x30b4e9(0x1cc)]('\x0a');}export function listDynamicServiceEntries(){const _0x1b6aa7=a35_0x3f69;return listLocalServices()[_0x1b6aa7(0x19d)](_0x28a0c2=>{const _0x5a1219=_0x1b6aa7,_0x3fe8cc=_0x28a0c2[_0x5a1219(0x1fa)];return{'service':_0x3fe8cc[_0x5a1219(0x1eb)][_0x5a1219(0x197)],'label':_0x3fe8cc[_0x5a1219(0x1eb)][_0x5a1219(0x1ec)]||_0x3fe8cc[_0x5a1219(0x1eb)][_0x5a1219(0x197)],'commands':_0x3fe8cc[_0x5a1219(0x1f3)][_0x5a1219(0x19d)](_0x2a14e3=>({'command':dynamicCommandName(_0x2a14e3),'description':_0x2a14e3[_0x5a1219(0x19e)]||_0x5a1219(0x1d1)+_0x2a14e3[_0x5a1219(0x1a7)],'tag':riskTag(_0x2a14e3[_0x5a1219(0x1c0)])}))};});}export function getDynamicServiceEntry(_0xa7708c){const _0xc2c6d6=a35_0x3f69;return listDynamicServiceEntries()[_0xc2c6d6(0x19c)](_0x235cb6=>_0x235cb6[_0xc2c6d6(0x1eb)]===_0xa7708c);}export function listDynamicServiceDefinitions(_0x4610b7){const _0x1f4b1b=a35_0x3f69;return listLocalServiceTrees()[_0x1f4b1b(0x1aa)](_0x37a0a2=>!_0x4610b7||_0x37a0a2[_0x1f4b1b(0x1eb)][_0x1f4b1b(0x197)]===_0x4610b7)[_0x1f4b1b(0x1ca)](_0x1fcd64=>_0x1fcd64['commands'][_0x1f4b1b(0x19d)](_0x48e3bb=>buildDynamicCommandDefinition(_0x1fcd64,_0x48e3bb)));}export function getDynamicServiceDefinitions(_0x2362d1){const _0x3673f0=a35_0x3f69,_0xe82710=listDynamicServiceDefinitions(_0x2362d1);return _0xe82710[_0x3673f0(0x1c6)]>0x0?_0xe82710:undefined;}export function findDynamicServiceDefinition(_0x4dfdad,_0x187482){const _0x4f8ae4=a35_0x3f69;return listDynamicServiceDefinitions(_0x4dfdad)['find'](_0x26c1cb=>_0x26c1cb[_0x4f8ae4(0x1b5)]===_0x187482);}export function buildDynamicCommandDefinition(_0x1ee3a0,_0xe2cd63){const _0xc6809=a35_0x3f69;return{'service':_0x1ee3a0[_0xc6809(0x1eb)]['code'],'command':dynamicCommandName(_0xe2cd63),'description':_0xe2cd63[_0xc6809(0x19e)]||_0xc6809(0x1d1)+_0xe2cd63[_0xc6809(0x1a7)],'risk':_0xe2cd63['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0xe2cd63[_0xc6809(0x1af)][_0xc6809(0x19d)](_0x1fd087=>({'name':_0x1fd087[_0xc6809(0x1ec)],'description':_0x1fd087[_0xc6809(0x19e)]||_0x1fd087['name'],'required':_0x1fd087[_0xc6809(0x1f7)]})),'flags':_0xe2cd63[_0xc6809(0x1d5)][_0xc6809(0x19d)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xe2cd63),async 'dryRun'(_0x48f357){const _0x6b1517=_0xc6809,_0xa21afe=await compilePlan(_0xe2cd63,_0x48f357);return{'method':_0x6b1517(0x1c3),'url':_0xe2cd63[_0x6b1517(0x1a7)],'body':{'target':targetPreview(_0xa21afe),'params':_0xa21afe['params']},'description':_0x6b1517(0x1a2)+_0xe2cd63['cliPath']};},async 'execute'(_0x3cfdc4){const _0x14a69b=_0xc6809,_0x1836e4=await compilePlan(_0xe2cd63,_0x3cfdc4),_0x4f5371=Date[_0x14a69b(0x199)](),_0x46bf0c=await executePlan(_0x1836e4,_0xe2cd63,_0x3cfdc4),_0x456760=Date[_0x14a69b(0x199)]()-_0x4f5371;return{'ok':!![],'data':{'service':_0x1ee3a0[_0x14a69b(0x1eb)],'command':_0xe2cd63[_0x14a69b(0x1a7)],'target':targetPreview(_0x1836e4),'result':_0x46bf0c,'elapsed':_0x456760},'message':_0x14a69b(0x1a5)+_0xe2cd63['cliPath']+_0x14a69b(0x1ef)+_0x456760+'ms'};}};}function dynamicCommandName(_0x1857e4){const _0x19cc5a=a35_0x3f69;return _0x1857e4[_0x19cc5a(0x1fd)][_0x19cc5a(0x1e2)](0x1)['join']('\x20');}function riskTag(_0x1cb92e){const _0x481fcb=a35_0x3f69;return _0x1cb92e===_0x481fcb(0x1d8)?'':'\x20\x20['+_0x1cb92e+']';}function flagToCommandFlag(_0x204fe4){const _0x505cd2=a35_0x3f69;return{'name':_0x204fe4['cliName'],'type':_0x204fe4[_0x505cd2(0x1f8)]===_0x505cd2(0x1cb)?_0x505cd2(0x1a4):_0x204fe4[_0x505cd2(0x1f8)],'description':_0x204fe4['description']||_0x204fe4[_0x505cd2(0x1ec)],'required':_0x204fe4[_0x505cd2(0x1f7)],'default':isPrimitiveFlagDefault(_0x204fe4[_0x505cd2(0x1e1)])?_0x204fe4['default']:undefined,'enum':_0x204fe4[_0x505cd2(0x1b4)]};}async function compilePlan(_0xf38c,_0x4dd8a5){const _0x703434=a35_0x3f69;return compileServiceTreeCommand(_0xf38c,{'flags':_0x4dd8a5[_0x703434(0x1fc)],'args':_0x4dd8a5[_0x703434(0x1af)],'context':await buildServiceContext(_0xf38c,_0x4dd8a5)});}async function buildServiceContext(_0x2ea679,_0x40f2fe){const _0x4bc64a=a35_0x3f69,_0x40592a={'appCode':_0x40f2fe['appCode'],'env':_0x40f2fe[_0x4bc64a(0x1cf)],'envName':_0x40f2fe['envName']};if(!usesRuntimeContext(_0x2ea679))return _0x40592a;const _0x5b5f91=await getLoginUserInfo(),_0x164c48=pickFirst(_0x5b5f91['userId'],_0x5b5f91['id']);return{..._0x40592a,'user':_0x5b5f91,'userId':_0x164c48,'id':_0x5b5f91['id'],'username':pickFirst(_0x5b5f91[_0x4bc64a(0x1ea)],_0x5b5f91[_0x4bc64a(0x1f2)],_0x5b5f91[_0x4bc64a(0x1f0)]),'userName':_0x5b5f91[_0x4bc64a(0x1f2)],'nickname':pickFirst(_0x5b5f91[_0x4bc64a(0x1bc)],_0x5b5f91[_0x4bc64a(0x1e0)]),'nickName':_0x5b5f91[_0x4bc64a(0x1e0)],'tenantCode':_0x5b5f91[_0x4bc64a(0x1b2)],'employeeId':_0x5b5f91[_0x4bc64a(0x1ad)]};}function usesRuntimeContext(_0x2c2243){const _0xe487fe=a35_0x3f69;return _0x2c2243['mapTo'][_0xe487fe(0x1c1)](_0x34f5ad=>typeof _0x34f5ad[_0xe487fe(0x196)]===_0xe487fe(0x1a4)&&(_0x34f5ad['source'][_0xe487fe(0x1fb)](_0xe487fe(0x1bf))||_0x34f5ad[_0xe487fe(0x196)]['startsWith']('ctx.')));}function pickFirst(..._0x4cfac2){const _0x1a1190=a35_0x3f69;return _0x4cfac2[_0x1a1190(0x19c)](_0x4f5a9c=>_0x4f5a9c!==undefined&&_0x4f5a9c!==null);}async function executePlan(_0x1b31f4,_0x24fe90,_0x4bf4a6){const _0x5ba6d5=a35_0x3f69;if(_0x1b31f4[_0x5ba6d5(0x1c7)]===_0x5ba6d5(0x1b3)){const _0x3f7ea1=await resolveDatasetCode(_0x1b31f4,_0x24fe90,_0x4bf4a6);return executeData(_0x3f7ea1,_0x1b31f4['command'],_0x1b31f4[_0x5ba6d5(0x1e3)]);}if(_0x1b31f4[_0x5ba6d5(0x1c7)]===_0x5ba6d5(0x1dc)){if(!_0x1b31f4[_0x5ba6d5(0x1ab)])throw CliErrors['validation']('Service\x20command\x20'+_0x24fe90['cliPath']+_0x5ba6d5(0x1ac));return executeSdkSql(_0x1b31f4[_0x5ba6d5(0x1ab)],normalizeScalarParams(_0x1b31f4['params']));}if(_0x1b31f4['kind']==='bff'){const _0x1cfb61=_0x1b31f4[_0x5ba6d5(0x1be)]||_0x1b31f4['bffCode']||(_0x1b31f4[_0x5ba6d5(0x1de)]==null?'':String(_0x1b31f4[_0x5ba6d5(0x1de)]));if(!_0x1cfb61)throw CliErrors[_0x5ba6d5(0x1c8)](_0x5ba6d5(0x1a5)+_0x24fe90[_0x5ba6d5(0x1a7)]+_0x5ba6d5(0x1b9));return executeSdkBff(_0x1cfb61,_0x1b31f4[_0x5ba6d5(0x1e3)]);}throw CliErrors[_0x5ba6d5(0x1c8)](_0x5ba6d5(0x1e6)+_0x1b31f4[_0x5ba6d5(0x1c7)]);}async function resolveDatasetCode(_0x2b520,_0x44d4f4,_0x55e1e6){const _0x30b973=a35_0x3f69;if(_0x2b520[_0x30b973(0x1df)])return _0x2b520[_0x30b973(0x1df)];if(!_0x2b520['datatable'])throw CliErrors[_0x30b973(0x1c8)](_0x30b973(0x1a5)+_0x44d4f4[_0x30b973(0x1a7)]+_0x30b973(0x1a1));const _0x576414=await listDatasets(_0x55e1e6[_0x30b973(0x1a3)]),_0x3d3631=_0x576414[_0x30b973(0x19c)](_0x10519b=>_0x10519b[_0x30b973(0x198)]?.[_0x30b973(0x1ba)]===_0x2b520['datatable']);if(!_0x3d3631?.[_0x30b973(0x197)])throw CliErrors[_0x30b973(0x1c8)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x2b520[_0x30b973(0x1b6)]+_0x30b973(0x1b1)+_0x55e1e6[_0x30b973(0x1a3)]+'.',_0x30b973(0x1f6));return _0x3d3631[_0x30b973(0x197)];}function applyAppBinding(_0x5c95b5,_0x289274,_0x436f5f){const _0x3ad88d=a35_0x3f69,_0x5b6536=_0x289274[_0x3ad88d(0x1d6)]['appRef'];if(!_0x5b6536)return;const _0x1f5f94=_0x5c95b5[_0x3ad88d(0x1ae)][_0x5b6536];if(!_0x1f5f94)throw CliErrors[_0x3ad88d(0x1c8)]('Unknown\x20appRef\x20\x22'+_0x5b6536+_0x3ad88d(0x1b8)+_0x289274[_0x3ad88d(0x1a7)]+'.',_0x3ad88d(0x1d7));const _0x3f94ac=_0x1f5f94[_0x3ad88d(0x1d9)]||_0x1f5f94[_0x3ad88d(0x1a3)];_0x3f94ac&&!hasText(_0x436f5f[_0x3ad88d(0x1d9)])&&(_0x436f5f[_0x3ad88d(0x1d9)]=_0x3f94ac),_0x1f5f94[_0x3ad88d(0x1d0)]&&!hasText(_0x436f5f['app'])&&!hasText(_0x436f5f['appcode'])&&(_0x436f5f['app']=_0x1f5f94[_0x3ad88d(0x1d0)]),_0x1f5f94[_0x3ad88d(0x1c5)]&&!hasText(_0x436f5f[_0x3ad88d(0x1c5)])&&(_0x436f5f[_0x3ad88d(0x1c5)]=_0x1f5f94[_0x3ad88d(0x1c5)]);}function renderDynamicCommandHelp(_0x1ffce6){const _0x1f0bd1=a35_0x3f69,_0xa9aa89=[_0x1f0bd1(0x1e7),_0x1f0bd1(0x1bb)+_0x1ffce6[_0x1f0bd1(0x1d6)][_0x1f0bd1(0x1c7)],_0x1f0bd1(0x1ed)+_0x1ffce6[_0x1f0bd1(0x1d6)][_0x1f0bd1(0x1b5)]];if(_0x1ffce6[_0x1f0bd1(0x1d6)][_0x1f0bd1(0x1df)])_0xa9aa89['push'](_0x1f0bd1(0x1e5)+_0x1ffce6[_0x1f0bd1(0x1d6)][_0x1f0bd1(0x1df)]);if(_0x1ffce6['target'][_0x1f0bd1(0x1b6)])_0xa9aa89[_0x1f0bd1(0x1bd)](_0x1f0bd1(0x1c9)+_0x1ffce6[_0x1f0bd1(0x1d6)][_0x1f0bd1(0x1b6)]);if(_0x1ffce6['target']['sqlCode'])_0xa9aa89[_0x1f0bd1(0x1bd)](_0x1f0bd1(0x1ce)+_0x1ffce6[_0x1f0bd1(0x1d6)]['sqlCode']);if(_0x1ffce6[_0x1f0bd1(0x1d6)]['scriptName'])_0xa9aa89[_0x1f0bd1(0x1bd)](_0x1f0bd1(0x1c4)+_0x1ffce6[_0x1f0bd1(0x1d6)][_0x1f0bd1(0x1be)]);if(_0x1ffce6['mapTo'][_0x1f0bd1(0x1c6)]>0x0){_0xa9aa89['push']('',_0x1f0bd1(0x1dd));for(const _0x47ac8b of _0x1ffce6['mapTo']){_0xa9aa89[_0x1f0bd1(0x1bd)](_0x1f0bd1(0x1a0)+(_0x47ac8b[_0x1f0bd1(0x196)]||_0x1f0bd1(0x1a9))+_0x1f0bd1(0x1e8)+_0x47ac8b[_0x1f0bd1(0x1d6)]+(_0x47ac8b['operator']?'.'+_0x47ac8b['operator']:''));}}return _0xa9aa89[_0x1f0bd1(0x1cc)]('\x0a');}function a35_0x3f69(_0x1c1366,_0x24e5c1){_0x1c1366=_0x1c1366-0x196;const _0x37fa3d=a35_0x37fa();let _0x3f69d8=_0x37fa3d[_0x1c1366];return _0x3f69d8;}function targetPreview(_0x372102){const _0x257e14=a35_0x3f69;return{'kind':_0x372102[_0x257e14(0x1c7)],'command':_0x372102['command'],'appRef':_0x372102['appRef'],'datasetCode':_0x372102[_0x257e14(0x1df)],'datatable':_0x372102[_0x257e14(0x1b6)],'sqlCode':_0x372102[_0x257e14(0x1ab)],'bffCode':_0x372102[_0x257e14(0x1b0)],'bffId':_0x372102[_0x257e14(0x1de)],'scriptName':_0x372102[_0x257e14(0x1be)]};}function normalizeScalarParams(_0x2db192){const _0x320236=a35_0x3f69;return Object['fromEntries'](Object[_0x320236(0x1b7)](_0x2db192)['filter'](([,_0x3a5050])=>typeof _0x3a5050==='string'||typeof _0x3a5050==='number'));}function hasText(_0x8b3840){const _0x3f93ff=a35_0x3f69;return typeof _0x8b3840===_0x3f93ff(0x1a4)&&_0x8b3840[_0x3f93ff(0x1d2)]()[_0x3f93ff(0x1c6)]>0x0;}function isPrimitiveFlagDefault(_0x3bb6c8){const _0x392663=a35_0x3f69;return _0x3bb6c8===undefined||typeof _0x3bb6c8===_0x392663(0x1a4)||typeof _0x3bb6c8===_0x392663(0x1cd)||typeof _0x3bb6c8===_0x392663(0x19f);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a36_0x2057aa=a36_0x1004;(function(_0xa67738,_0x54d87a){const _0xeda7cc=a36_0x1004,_0x306db5=_0xa67738();while(!![]){try{const _0x465d20=-parseInt(_0xeda7cc(0x196))/0x1*(parseInt(_0xeda7cc(0x19e))/0x2)+-parseInt(_0xeda7cc(0x191))/0x3+parseInt(_0xeda7cc(0x197))/0x4+parseInt(_0xeda7cc(0x18d))/0x5*(parseInt(_0xeda7cc(0x187))/0x6)+parseInt(_0xeda7cc(0x1ae))/0x7+-parseInt(_0xeda7cc(0x1a7))/0x8+-parseInt(_0xeda7cc(0x18e))/0x9*(-parseInt(_0xeda7cc(0x1b7))/0xa);if(_0x465d20===_0x54d87a)break;else _0x306db5['push'](_0x306db5['shift']());}catch(_0x590fc0){_0x306db5['push'](_0x306db5['shift']());}}}(a36_0x7382,0x3df95));function a36_0x7382(){const _0x4ee6b4=['cliPath','version','length','Service\x20Tree\x20manifest\x20file\x20path','commands','validate','import','cliName','type','serviceCode','\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','filePath','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','reduce','54078lJhGNC','WRITE','risk','str','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','export','185rAvkhE','3873807nQETCo','hash','manifest','987144wIBYDO','entries','registry','file','serviceCount','23945XSYFkJ','1298372trjaFf','map','registryIndex','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','registryServiceCode','\x20service(s),\x20updated\x20','string','26hBfUop','registryPath','warnings','Exported\x20service\x20','read','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Service\x20manifest\x20validation\x20passed.','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','flags','3167200zNBaIs','source','report','importedAt','lower\x20kebab-case\x20service\x20code','updated','replaced','1411067WFgedU','manifests','entry','normalizedManifest','errors','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Imported\x20','target','kind','10NEHnFz','write','Imported','service','name'];a36_0x7382=function(){return _0x4ee6b4;};return a36_0x7382();}function a36_0x1004(_0x18de7e,_0x2b3b2e){_0x18de7e=_0x18de7e-0x17f;const _0x7382f7=a36_0x7382();let _0x10043d=_0x7382f7[_0x18de7e];return _0x10043d;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':'file','type':a36_0x2057aa(0x19d),'required':!![],'description':a36_0x2057aa(0x1bf)},SERVICE_FLAG={'name':a36_0x2057aa(0x1ba),'type':a36_0x2057aa(0x19d),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a36_0x2057aa(0x1ab)}};function summarizeService(_0x28909a){const _0x202917=a36_0x2057aa;return{'serviceCode':_0x28909a[_0x202917(0x181)],'name':_0x28909a[_0x202917(0x1b1)][_0x202917(0x1ba)][_0x202917(0x1bb)],'version':_0x28909a[_0x202917(0x1bd)],'importedAt':_0x28909a[_0x202917(0x1aa)],'source':_0x28909a[_0x202917(0x1a8)],'commandCount':_0x28909a['normalizedManifest'][_0x202917(0x1c0)]['length'],'commands':_0x28909a[_0x202917(0x1b1)][_0x202917(0x1c0)][_0x202917(0x198)](_0x27e5a2=>({'path':_0x27e5a2[_0x202917(0x1bc)],'description':_0x27e5a2['description'],'risk':_0x27e5a2[_0x202917(0x189)],'target':_0x27e5a2[_0x202917(0x1b5)],'flags':_0x27e5a2[_0x202917(0x1a6)][_0x202917(0x198)](_0x4e85bc=>({'name':_0x4e85bc[_0x202917(0x1bb)],'cliName':_0x4e85bc[_0x202917(0x17f)],'type':_0x4e85bc[_0x202917(0x180)],'required':_0x4e85bc['required']===!![]}))}))};}function summarizeLoadedManifest(_0xbe31a3){const _0x386775=a36_0x2057aa;return{'service':_0xbe31a3[_0x386775(0x1b1)]?.[_0x386775(0x1ba)],'version':_0xbe31a3[_0x386775(0x1b1)]?.['version'],'commandCount':_0xbe31a3[_0x386775(0x1b1)]?.[_0x386775(0x1c0)][_0x386775(0x1be)]??0x0,'commands':_0xbe31a3[_0x386775(0x1b1)]?.[_0x386775(0x1c0)]['map'](_0x16b076=>({'path':_0x16b076[_0x386775(0x1bc)],'risk':_0x16b076[_0x386775(0x189)],'target':_0x16b076[_0x386775(0x1b5)]}))??[],'registryIndex':_0xbe31a3[_0x386775(0x199)],'registryServiceCode':_0xbe31a3[_0x386775(0x19b)],'errors':_0xbe31a3[_0x386775(0x1a9)][_0x386775(0x1b2)],'warnings':_0xbe31a3[_0x386775(0x1a9)]['warnings']};}export const serviceDefinitions=[{'service':a36_0x2057aa(0x1ba),'command':a36_0x2057aa(0x1c1),'description':a36_0x2057aa(0x185),'risk':a36_0x2057aa(0x1a2),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x9db8f5){const _0x277591=a36_0x2057aa,_0x2046ed=loadServiceManifestFromFile(_0x9db8f5['str'](_0x277591(0x194)));if(!_0x2046ed[_0x277591(0x1a9)]['ok'])return{'ok':![],'data':{'file':_0x2046ed['filePath'],'hash':_0x2046ed[_0x277591(0x18f)],'kind':_0x2046ed[_0x277591(0x1b6)],'serviceCount':_0x2046ed[_0x277591(0x1af)][_0x277591(0x1be)],'services':_0x2046ed[_0x277591(0x1af)][_0x277591(0x198)](summarizeLoadedManifest),'errors':_0x2046ed[_0x277591(0x1a9)][_0x277591(0x1b2)],'warnings':_0x2046ed[_0x277591(0x1a9)][_0x277591(0x1a0)]},'message':formatValidationFailure(_0x2046ed['report'])};if(_0x2046ed[_0x277591(0x1b6)]===_0x277591(0x193)||_0x2046ed['manifests'][_0x277591(0x1be)]!==0x1)return{'ok':!![],'data':{'file':_0x2046ed['filePath'],'hash':_0x2046ed[_0x277591(0x18f)],'kind':_0x2046ed['kind'],'serviceCount':_0x2046ed['manifests'][_0x277591(0x1be)],'commandCount':_0x2046ed[_0x277591(0x1af)][_0x277591(0x186)]((_0x5acd06,_0x51cceb)=>_0x5acd06+(_0x51cceb[_0x277591(0x1b1)]?.[_0x277591(0x1c0)][_0x277591(0x1be)]??0x0),0x0),'services':_0x2046ed[_0x277591(0x1af)][_0x277591(0x198)](summarizeLoadedManifest),'warnings':_0x2046ed['report']['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x2046ed[_0x277591(0x184)],'hash':_0x2046ed[_0x277591(0x18f)],'kind':_0x2046ed[_0x277591(0x1b6)],'service':_0x2046ed[_0x277591(0x1b1)]?.[_0x277591(0x1ba)],'version':_0x2046ed[_0x277591(0x1b1)]?.[_0x277591(0x1bd)],'commandCount':_0x2046ed[_0x277591(0x1b1)]?.[_0x277591(0x1c0)][_0x277591(0x1be)]??0x0,'commands':_0x2046ed['normalizedManifest']?.[_0x277591(0x1c0)][_0x277591(0x198)](_0x5c39d1=>({'path':_0x5c39d1['cliPath'],'risk':_0x5c39d1[_0x277591(0x189)],'target':_0x5c39d1['target']})),'warnings':_0x2046ed[_0x277591(0x1a9)]['warnings']},'message':_0x277591(0x1a4)};}},{'service':a36_0x2057aa(0x1ba),'command':a36_0x2057aa(0x1c2),'description':a36_0x2057aa(0x1a5),'risk':a36_0x2057aa(0x1b8),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x10b4a0){const _0x227329=a36_0x2057aa,_0x5cc3fd=loadServiceManifestFromFile(_0x10b4a0['str']('file'));return{'method':_0x227329(0x188),'url':getServiceRegistryPath(),'body':{'file':_0x5cc3fd[_0x227329(0x184)],'hash':_0x5cc3fd[_0x227329(0x18f)],'kind':_0x5cc3fd[_0x227329(0x1b6)],'ok':_0x5cc3fd['report']['ok'],'service':_0x5cc3fd[_0x227329(0x1b1)]?.[_0x227329(0x1ba)],'version':_0x5cc3fd[_0x227329(0x1b1)]?.[_0x227329(0x1bd)],'serviceCount':_0x5cc3fd['manifests'][_0x227329(0x1be)],'services':_0x5cc3fd[_0x227329(0x1af)][_0x227329(0x198)](_0x2ac8ea=>({'service':_0x2ac8ea[_0x227329(0x1b1)]?.['service'],'version':_0x2ac8ea[_0x227329(0x1b1)]?.[_0x227329(0x1bd)],'commandCount':_0x2ac8ea[_0x227329(0x1b1)]?.[_0x227329(0x1c0)][_0x227329(0x1be)]??0x0,'errors':_0x2ac8ea[_0x227329(0x1a9)][_0x227329(0x1b2)]})),'errors':_0x5cc3fd[_0x227329(0x1a9)][_0x227329(0x1b2)],'commandCount':_0x5cc3fd['normalizedManifest']?.[_0x227329(0x1c0)][_0x227329(0x1be)]??0x0},'description':_0x227329(0x18b)};},async 'execute'(_0x5217c2){const _0x2474c6=a36_0x2057aa,_0x11f890=importServiceManifest(_0x5217c2[_0x2474c6(0x18a)](_0x2474c6(0x194)));if(_0x11f890[_0x2474c6(0x192)][_0x2474c6(0x1be)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x11f890[_0x2474c6(0x19f)],'imported':_0x11f890['imported'],'updated':_0x11f890['updated'],'serviceCount':_0x11f890['serviceCount'],'services':_0x11f890[_0x2474c6(0x192)][_0x2474c6(0x198)](summarizeService)},'message':_0x2474c6(0x1b4)+_0x11f890['imported']+_0x2474c6(0x19c)+_0x11f890['updated']+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x11f890[_0x2474c6(0x19f)],'replaced':_0x11f890[_0x2474c6(0x1ad)],'imported':_0x11f890['imported'],'updated':_0x11f890[_0x2474c6(0x1ac)],'serviceCount':_0x11f890[_0x2474c6(0x195)],'service':summarizeService(_0x11f890['entry'])},'message':(_0x11f890[_0x2474c6(0x1ad)]?'Updated':_0x2474c6(0x1b9))+_0x2474c6(0x182)+_0x11f890[_0x2474c6(0x1b0)]['serviceCode']+'.'};}},{'service':a36_0x2057aa(0x1ba),'command':a36_0x2057aa(0x18c),'description':a36_0x2057aa(0x19a),'risk':a36_0x2057aa(0x1b8),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3ea182){const _0x41fafa=a36_0x2057aa,_0x5e9f88=getLocalServiceEntry(_0x3ea182['str']('service'));return{'method':_0x41fafa(0x188),'url':_0x3ea182[_0x41fafa(0x18a)]('file'),'body':{'service':_0x3ea182[_0x41fafa(0x18a)](_0x41fafa(0x1ba)),'found':Boolean(_0x5e9f88),'version':_0x5e9f88?.[_0x41fafa(0x1bd)],'source':_0x5e9f88?.['source']},'description':_0x41fafa(0x1a3)};},async 'execute'(_0x757e42){const _0xf2dc1d=a36_0x2057aa,_0x5a80f3=exportServiceManifest(_0x757e42[_0xf2dc1d(0x18a)](_0xf2dc1d(0x1ba)),_0x757e42[_0xf2dc1d(0x18a)]('file'));return{'ok':!![],'data':{'registryPath':_0x5a80f3[_0xf2dc1d(0x19f)],'file':_0x5a80f3[_0xf2dc1d(0x184)],'service':summarizeService(_0x5a80f3[_0xf2dc1d(0x1b0)])},'message':_0xf2dc1d(0x1a1)+_0x5a80f3['entry']['serviceCode']+'.'};}},{'service':a36_0x2057aa(0x1ba),'command':'list','description':a36_0x2057aa(0x183),'risk':a36_0x2057aa(0x1a2),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x505126=a36_0x2057aa,_0x146a73=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x146a73[_0x505126(0x1be)],'services':_0x146a73['map'](summarizeService)}};}},{'service':a36_0x2057aa(0x1ba),'command':'remove','description':'Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','risk':a36_0x2057aa(0x1b8),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x58d6de){const _0x38e854=a36_0x2057aa,_0x5359c1=getLocalServiceEntry(_0x58d6de[_0x38e854(0x18a)](_0x38e854(0x1ba)));return{'method':_0x38e854(0x188),'url':getServiceRegistryPath(),'body':{'service':_0x58d6de['str'](_0x38e854(0x1ba)),'found':Boolean(_0x5359c1),'version':_0x5359c1?.[_0x38e854(0x1bd)],'source':_0x5359c1?.[_0x38e854(0x1a8)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x3dbdd3){const _0x2511c9=a36_0x2057aa,_0x25bfc3=removeServiceManifest(_0x3dbdd3['str'](_0x2511c9(0x1ba)));return{'ok':!![],'data':{'registryPath':_0x25bfc3['registryPath'],'serviceCount':_0x25bfc3['serviceCount'],'service':summarizeService(_0x25bfc3[_0x2511c9(0x1b0)])},'message':'Removed\x20service\x20'+_0x25bfc3[_0x2511c9(0x1b0)][_0x2511c9(0x181)]+'.'};}},{'service':a36_0x2057aa(0x1ba),'command':'detail','description':a36_0x2057aa(0x1b3),'risk':a36_0x2057aa(0x1a2),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x55251a){const _0x429627=a36_0x2057aa,_0x1a55b8=getLocalServiceEntry(_0x55251a[_0x429627(0x18a)](_0x429627(0x1ba)));if(!_0x1a55b8)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x55251a['str'](_0x429627(0x1ba))},'message':'Local\x20service\x20not\x20found:\x20'+_0x55251a['str'](_0x429627(0x1ba))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x1a55b8),'manifest':_0x1a55b8[_0x429627(0x190)],'normalizedManifest':_0x1a55b8[_0x429627(0x1b1)]}};}}];
|
|
1
|
+
function a36_0x4cb6(){const _0x5a0218=['96fVrZAy','Removed\x20service\x20','552489QmIZwo','file','map','Service\x20Tree\x20manifest\x20file\x20path','target','risk','report','Local\x20service\x20code,\x20for\x20example\x20crm','3675764ZhZDOi','commands','write','manifests','importedAt','696385aMMUZm','errors','hash','str','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','description','service','length','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','string','\x20service(s).','serviceCount','list','Imported\x20','source','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','validate','filePath','cliPath','name','normalizedManifest','registryPath','631895ZIztBx','updated','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','warnings','kind','read','39102453majYhU','lower\x20kebab-case\x20service\x20code','\x20service\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Service\x20manifest\x20validation\x20passed.','entries','imported','5583435DxOAtt','entry','Service\x20registry\x20validation\x20passed.','version','72pVXsdD','2739978BEbqMU','flags','registryIndex','Imported','manifest','WRITE','remove','cliName','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','serviceCode'];a36_0x4cb6=function(){return _0x5a0218;};return a36_0x4cb6();}const a36_0x11589c=a36_0x4a51;(function(_0x4d7833,_0x3dd216){const _0x401ed0=a36_0x4a51,_0x3511bc=_0x4d7833();while(!![]){try{const _0xda0185=parseInt(_0x401ed0(0x1af))/0x1+parseInt(_0x401ed0(0x1c2))/0x2+-parseInt(_0x401ed0(0x1bd))/0x3+-parseInt(_0x401ed0(0x1d7))/0x4+parseInt(_0x401ed0(0x1dc))/0x5*(-parseInt(_0x401ed0(0x1c1))/0x6)+parseInt(_0x401ed0(0x1cf))/0x7*(-parseInt(_0x401ed0(0x1cd))/0x8)+parseInt(_0x401ed0(0x1b5))/0x9;if(_0xda0185===_0x3dd216)break;else _0x3511bc['push'](_0x3511bc['shift']());}catch(_0x59c2f6){_0x3511bc['push'](_0x3511bc['shift']());}}}(a36_0x4cb6,0xe7763));function a36_0x4a51(_0x2195c7,_0x10a95d){_0x2195c7=_0x2195c7-0x1a9;const _0x4cb67b=a36_0x4cb6();let _0x4a513a=_0x4cb67b[_0x2195c7];return _0x4a513a;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a36_0x11589c(0x1d0),'type':a36_0x11589c(0x1e5),'required':!![],'description':a36_0x11589c(0x1d2)},SERVICE_FLAG={'name':a36_0x11589c(0x1e2),'type':a36_0x11589c(0x1e5),'required':!![],'description':a36_0x11589c(0x1d6),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a36_0x11589c(0x1b6)}};function summarizeService(_0x3bc082){const _0x5c2ef7=a36_0x11589c;return{'serviceCode':_0x3bc082[_0x5c2ef7(0x1cc)],'name':_0x3bc082['normalizedManifest']['service'][_0x5c2ef7(0x1ac)],'version':_0x3bc082['version'],'importedAt':_0x3bc082[_0x5c2ef7(0x1db)],'source':_0x3bc082[_0x5c2ef7(0x1ea)],'commandCount':_0x3bc082[_0x5c2ef7(0x1ad)][_0x5c2ef7(0x1d8)][_0x5c2ef7(0x1e3)],'commands':_0x3bc082[_0x5c2ef7(0x1ad)][_0x5c2ef7(0x1d8)][_0x5c2ef7(0x1d1)](_0x16615f=>({'path':_0x16615f['cliPath'],'description':_0x16615f[_0x5c2ef7(0x1e1)],'risk':_0x16615f[_0x5c2ef7(0x1d4)],'target':_0x16615f[_0x5c2ef7(0x1d3)],'flags':_0x16615f[_0x5c2ef7(0x1c3)][_0x5c2ef7(0x1d1)](_0x1dad5f=>({'name':_0x1dad5f[_0x5c2ef7(0x1ac)],'cliName':_0x1dad5f[_0x5c2ef7(0x1c9)],'type':_0x1dad5f['type'],'required':_0x1dad5f['required']===!![]}))}))};}function summarizeLoadedManifest(_0x23fa6c){const _0x28702d=a36_0x11589c;return{'service':_0x23fa6c[_0x28702d(0x1ad)]?.[_0x28702d(0x1e2)],'version':_0x23fa6c['normalizedManifest']?.['version'],'commandCount':_0x23fa6c[_0x28702d(0x1ad)]?.[_0x28702d(0x1d8)]['length']??0x0,'commands':_0x23fa6c[_0x28702d(0x1ad)]?.['commands'][_0x28702d(0x1d1)](_0x23c325=>({'path':_0x23c325[_0x28702d(0x1ab)],'risk':_0x23c325[_0x28702d(0x1d4)],'target':_0x23c325[_0x28702d(0x1d3)]}))??[],'registryIndex':_0x23fa6c[_0x28702d(0x1c4)],'registryServiceCode':_0x23fa6c['registryServiceCode'],'errors':_0x23fa6c['report'][_0x28702d(0x1dd)],'warnings':_0x23fa6c[_0x28702d(0x1d5)][_0x28702d(0x1b2)]};}export const serviceDefinitions=[{'service':'service','command':a36_0x11589c(0x1a9),'description':a36_0x11589c(0x1b1),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x244d74){const _0x4a4f15=a36_0x11589c,_0x485505=loadServiceManifestFromFile(_0x244d74['str'](_0x4a4f15(0x1d0)));if(!_0x485505[_0x4a4f15(0x1d5)]['ok'])return{'ok':![],'data':{'file':_0x485505[_0x4a4f15(0x1aa)],'hash':_0x485505[_0x4a4f15(0x1de)],'kind':_0x485505[_0x4a4f15(0x1b3)],'serviceCount':_0x485505['manifests'][_0x4a4f15(0x1e3)],'services':_0x485505[_0x4a4f15(0x1da)][_0x4a4f15(0x1d1)](summarizeLoadedManifest),'errors':_0x485505['report'][_0x4a4f15(0x1dd)],'warnings':_0x485505['report']['warnings']},'message':formatValidationFailure(_0x485505[_0x4a4f15(0x1d5)])};if(_0x485505[_0x4a4f15(0x1b3)]==='registry'||_0x485505['manifests'][_0x4a4f15(0x1e3)]!==0x1)return{'ok':!![],'data':{'file':_0x485505[_0x4a4f15(0x1aa)],'hash':_0x485505[_0x4a4f15(0x1de)],'kind':_0x485505['kind'],'serviceCount':_0x485505[_0x4a4f15(0x1da)][_0x4a4f15(0x1e3)],'commandCount':_0x485505['manifests']['reduce']((_0x82358d,_0x1ce68d)=>_0x82358d+(_0x1ce68d['normalizedManifest']?.[_0x4a4f15(0x1d8)][_0x4a4f15(0x1e3)]??0x0),0x0),'services':_0x485505[_0x4a4f15(0x1da)][_0x4a4f15(0x1d1)](summarizeLoadedManifest),'warnings':_0x485505[_0x4a4f15(0x1d5)][_0x4a4f15(0x1b2)]},'message':_0x4a4f15(0x1bf)};return{'ok':!![],'data':{'file':_0x485505[_0x4a4f15(0x1aa)],'hash':_0x485505[_0x4a4f15(0x1de)],'kind':_0x485505['kind'],'service':_0x485505[_0x4a4f15(0x1ad)]?.[_0x4a4f15(0x1e2)],'version':_0x485505[_0x4a4f15(0x1ad)]?.['version'],'commandCount':_0x485505[_0x4a4f15(0x1ad)]?.[_0x4a4f15(0x1d8)][_0x4a4f15(0x1e3)]??0x0,'commands':_0x485505['normalizedManifest']?.[_0x4a4f15(0x1d8)][_0x4a4f15(0x1d1)](_0x2d5d72=>({'path':_0x2d5d72[_0x4a4f15(0x1ab)],'risk':_0x2d5d72['risk'],'target':_0x2d5d72[_0x4a4f15(0x1d3)]})),'warnings':_0x485505[_0x4a4f15(0x1d5)][_0x4a4f15(0x1b2)]},'message':_0x4a4f15(0x1ba)};}},{'service':a36_0x11589c(0x1e2),'command':'import','description':a36_0x11589c(0x1ca),'risk':a36_0x11589c(0x1d9),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1d2094){const _0x2a6f91=a36_0x11589c,_0xc9586c=loadServiceManifestFromFile(_0x1d2094[_0x2a6f91(0x1df)](_0x2a6f91(0x1d0)));return{'method':_0x2a6f91(0x1c7),'url':getServiceRegistryPath(),'body':{'file':_0xc9586c[_0x2a6f91(0x1aa)],'hash':_0xc9586c[_0x2a6f91(0x1de)],'kind':_0xc9586c[_0x2a6f91(0x1b3)],'ok':_0xc9586c['report']['ok'],'service':_0xc9586c['normalizedManifest']?.['service'],'version':_0xc9586c[_0x2a6f91(0x1ad)]?.[_0x2a6f91(0x1c0)],'serviceCount':_0xc9586c[_0x2a6f91(0x1da)][_0x2a6f91(0x1e3)],'services':_0xc9586c[_0x2a6f91(0x1da)][_0x2a6f91(0x1d1)](_0x28e5c6=>({'service':_0x28e5c6['normalizedManifest']?.['service'],'version':_0x28e5c6['normalizedManifest']?.['version'],'commandCount':_0x28e5c6['normalizedManifest']?.[_0x2a6f91(0x1d8)]['length']??0x0,'errors':_0x28e5c6[_0x2a6f91(0x1d5)]['errors']})),'errors':_0xc9586c[_0x2a6f91(0x1d5)]['errors'],'commandCount':_0xc9586c['normalizedManifest']?.['commands'][_0x2a6f91(0x1e3)]??0x0},'description':_0x2a6f91(0x1b9)};},async 'execute'(_0x13aacb){const _0x41f977=a36_0x11589c,_0x1637e4=importServiceManifest(_0x13aacb['str'](_0x41f977(0x1d0)));if(_0x1637e4['entries'][_0x41f977(0x1e3)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1637e4[_0x41f977(0x1ae)],'imported':_0x1637e4['imported'],'updated':_0x1637e4[_0x41f977(0x1b0)],'serviceCount':_0x1637e4[_0x41f977(0x1e7)],'services':_0x1637e4[_0x41f977(0x1bb)]['map'](summarizeService)},'message':_0x41f977(0x1e9)+_0x1637e4[_0x41f977(0x1bc)]+'\x20service(s),\x20updated\x20'+_0x1637e4['updated']+_0x41f977(0x1e6)};return{'ok':!![],'data':{'registryPath':_0x1637e4[_0x41f977(0x1ae)],'replaced':_0x1637e4['replaced'],'imported':_0x1637e4[_0x41f977(0x1bc)],'updated':_0x1637e4[_0x41f977(0x1b0)],'serviceCount':_0x1637e4['serviceCount'],'service':summarizeService(_0x1637e4[_0x41f977(0x1be)])},'message':(_0x1637e4['replaced']?'Updated':_0x41f977(0x1c5))+_0x41f977(0x1b7)+_0x1637e4[_0x41f977(0x1be)][_0x41f977(0x1cc)]+'.'};}},{'service':a36_0x11589c(0x1e2),'command':'export','description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5bb2a3){const _0x12eae9=a36_0x11589c,_0x356960=getLocalServiceEntry(_0x5bb2a3[_0x12eae9(0x1df)](_0x12eae9(0x1e2)));return{'method':_0x12eae9(0x1c7),'url':_0x5bb2a3[_0x12eae9(0x1df)](_0x12eae9(0x1d0)),'body':{'service':_0x5bb2a3[_0x12eae9(0x1df)](_0x12eae9(0x1e2)),'found':Boolean(_0x356960),'version':_0x356960?.[_0x12eae9(0x1c0)],'source':_0x356960?.[_0x12eae9(0x1ea)]},'description':_0x12eae9(0x1eb)};},async 'execute'(_0x56e7d0){const _0x309c6c=a36_0x11589c,_0x39db9e=exportServiceManifest(_0x56e7d0[_0x309c6c(0x1df)](_0x309c6c(0x1e2)),_0x56e7d0[_0x309c6c(0x1df)](_0x309c6c(0x1d0)));return{'ok':!![],'data':{'registryPath':_0x39db9e[_0x309c6c(0x1ae)],'file':_0x39db9e[_0x309c6c(0x1aa)],'service':summarizeService(_0x39db9e[_0x309c6c(0x1be)])},'message':'Exported\x20service\x20'+_0x39db9e[_0x309c6c(0x1be)]['serviceCode']+'.'};}},{'service':a36_0x11589c(0x1e2),'command':a36_0x11589c(0x1e8),'description':a36_0x11589c(0x1cb),'risk':a36_0x11589c(0x1b4),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x379401=a36_0x11589c,_0x46ace4=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x46ace4[_0x379401(0x1e3)],'services':_0x46ace4[_0x379401(0x1d1)](summarizeService)}};}},{'service':a36_0x11589c(0x1e2),'command':a36_0x11589c(0x1c8),'description':a36_0x11589c(0x1e0),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xd4c6b4){const _0x4b38f5=a36_0x11589c,_0x5c662e=getLocalServiceEntry(_0xd4c6b4[_0x4b38f5(0x1df)](_0x4b38f5(0x1e2)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0xd4c6b4[_0x4b38f5(0x1df)](_0x4b38f5(0x1e2)),'found':Boolean(_0x5c662e),'version':_0x5c662e?.[_0x4b38f5(0x1c0)],'source':_0x5c662e?.[_0x4b38f5(0x1ea)]},'description':_0x4b38f5(0x1e4)};},async 'execute'(_0x11fee4){const _0x69e565=a36_0x11589c,_0x5b7ffa=removeServiceManifest(_0x11fee4[_0x69e565(0x1df)]('service'));return{'ok':!![],'data':{'registryPath':_0x5b7ffa[_0x69e565(0x1ae)],'serviceCount':_0x5b7ffa[_0x69e565(0x1e7)],'service':summarizeService(_0x5b7ffa[_0x69e565(0x1be)])},'message':_0x69e565(0x1ce)+_0x5b7ffa[_0x69e565(0x1be)][_0x69e565(0x1cc)]+'.'};}},{'service':a36_0x11589c(0x1e2),'command':'detail','description':a36_0x11589c(0x1b8),'risk':a36_0x11589c(0x1b4),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x52ec84){const _0x4c4d38=a36_0x11589c,_0x235e61=getLocalServiceEntry(_0x52ec84['str'](_0x4c4d38(0x1e2)));if(!_0x235e61)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x52ec84[_0x4c4d38(0x1df)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x52ec84[_0x4c4d38(0x1df)](_0x4c4d38(0x1e2))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x235e61),'manifest':_0x235e61[_0x4c4d38(0x1c6)],'normalizedManifest':_0x235e61[_0x4c4d38(0x1ad)]}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x32c656,_0x29cd51){const _0x517031=a37_0x43d9,_0x3849a0=_0x32c656();while(!![]){try{const _0x1924d7=parseInt(_0x517031(0x91))/0x1*(-parseInt(_0x517031(0xca))/0x2)+parseInt(_0x517031(0x89))/0x3+-parseInt(_0x517031(0xb8))/0x4*(-parseInt(_0x517031(0x9b))/0x5)+-parseInt(_0x517031(0xaa))/0x6+-parseInt(_0x517031(0xb4))/0x7*(parseInt(_0x517031(0xcf))/0x8)+parseInt(_0x517031(0xa4))/0x9+-parseInt(_0x517031(0x9a))/0xa;if(_0x1924d7===_0x29cd51)break;else _0x3849a0['push'](_0x3849a0['shift']());}catch(_0x4b766d){_0x3849a0['push'](_0x3849a0['shift']());}}}(a37_0x2f48,0x3fcb9));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='service.json';export function getServiceRegistryPath(_0x48f609={}){const _0x226c91=a37_0x43d9;return resolve(_0x48f609[_0x226c91(0xd2)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3aa2a8={}){const _0x46b6f8=a37_0x43d9,_0x15d381=getServiceRegistryPath(_0x3aa2a8);if(!existsSync(_0x15d381))return emptyServiceRegistry();try{const _0xaa9848=readFileSync(_0x15d381,'utf8');if(!_0xaa9848[_0x46b6f8(0x90)]())return emptyServiceRegistry();const _0x1d6347=JSON['parse'](_0xaa9848);if(_0x1d6347[_0x46b6f8(0xa2)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x46b6f8(0xb6)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x1d6347[_0x46b6f8(0xa2)]),_0x46b6f8(0xa0)+_0x15d381+'.');if(!Array[_0x46b6f8(0x8f)](_0x1d6347[_0x46b6f8(0x9e)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1d6347['updatedAt'],'services':_0x1d6347[_0x46b6f8(0x9e)]};}catch(_0x1f0e1c){if(_0x1f0e1c instanceof Error&&_0x1f0e1c[_0x46b6f8(0xa6)]==='CliError')throw _0x1f0e1c;throw CliErrors[_0x46b6f8(0xb6)](_0x46b6f8(0x8d)+_0x15d381,_0x46b6f8(0xc4));}}export function writeServiceRegistry(_0x30df81,_0x446f9b={}){const _0xc7fd87=a37_0x43d9,_0x131b3a=getServiceRegistryPath(_0x446f9b),_0x4741a9=dirname(_0x131b3a);!existsSync(_0x4741a9)&&mkdirSync(_0x4741a9,{'recursive':!![]});const _0x1c51df=_0x131b3a+_0xc7fd87(0xc7);try{writeFileSync(_0x1c51df,JSON[_0xc7fd87(0x9f)](_0x30df81,null,0x2)+'\x0a',{'encoding':_0xc7fd87(0xbc),'mode':0x180}),renameSync(_0x1c51df,_0x131b3a);}catch(_0x324b9c){try{unlinkSync(_0x1c51df);}catch{}if(_0x324b9c?.[_0xc7fd87(0xc0)]===_0xc7fd87(0xcd))throw CliErrors[_0xc7fd87(0xb6)]('Cannot\x20write\x20service\x20registry:\x20'+_0x131b3a);throw _0x324b9c;}return _0x131b3a;}export function loadServiceManifestFromFile(_0x5c5536){const _0x414b44=a37_0x43d9,_0x430f0c=resolve(_0x5c5536);if(!existsSync(_0x430f0c))throw CliErrors[_0x414b44(0xb6)](_0x414b44(0xc2)+_0x5c5536);let _0x23e9c9;const _0x3bfba5=readFileSync(_0x430f0c,_0x414b44(0xbc));try{_0x23e9c9=JSON['parse'](_0x3bfba5);}catch{throw CliErrors[_0x414b44(0xb6)](_0x414b44(0x93)+_0x5c5536,_0x414b44(0xba));}const _0x557ae2=sha256(_0x3bfba5),_0x238e1c=extractLoadedServiceManifests(_0x23e9c9,_0x557ae2),_0x2ccf02=aggregateValidationReports(_0x238e1c),_0x4f832e=_0x238e1c[0x0];return{'filePath':_0x430f0c,'hash':_0x557ae2,'kind':isServiceRegistryLike(_0x23e9c9)?_0x414b44(0xbe):_0x414b44(0xd3),'manifest':_0x4f832e?.[_0x414b44(0xd3)]??_0x23e9c9,'report':_0x2ccf02,'normalizedManifest':_0x238e1c[_0x414b44(0xab)]===0x1?_0x4f832e?.['normalizedManifest']:undefined,'manifests':_0x238e1c};}function a37_0x2f48(){const _0x46c183=['service','empty','89868BOuLsO','sort','digest','ENOENT','now','8qAaPzG','parse','message','homeDir','manifest','push','updatedAt','warnings','version','1307418tHJCZZ','filePath','toISOString','find','Invalid\x20service\x20registry\x20JSON:\x20','join','isArray','trim','3InAoFz','normalizedManifest','Invalid\x20service\x20manifest\x20JSON:\x20','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','splice','findIndex','description','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','].manifest','2878920pPEIWz','60545HSijPc','services\x20must\x20be\x20an\x20array','object','services','stringify','Remove\x20or\x20migrate\x20','path','schemaVersion','source','3677022ccxNez','invalid','name','report','$.services[','startsWith','2962716xbIEMZ','length','file','slice','map','serviceCode','commands','].manifest.','flatMap','localeCompare','802284bFWwcD','errors','validation','manifests','148uUKCIW','command','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','cliPath','utf8','Local\x20service\x20not\x20found:\x20','registry','target','code','commandCount','Service\x20manifest\x20file\x20not\x20found:\x20','string','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','registryIndex','reduce','.tmp'];a37_0x2f48=function(){return _0x46c183;};return a37_0x2f48();}export function importServiceManifest(_0x3b78d8,_0x2cd11f={}){const _0x40a87f=a37_0x43d9,_0x55009c=loadServiceManifestFromFile(_0x3b78d8);if(!_0x55009c[_0x40a87f(0xa7)]['ok'])throw CliErrors[_0x40a87f(0xb6)](formatValidationFailure(_0x55009c[_0x40a87f(0xa7)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x55009c[_0x40a87f(0xb7)][_0x40a87f(0xab)]===0x0)throw CliErrors[_0x40a87f(0xb6)](_0x40a87f(0x94),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x5af33a=readServiceRegistry(_0x2cd11f),_0x4710a6=(_0x2cd11f[_0x40a87f(0xce)]??(()=>new Date()))()[_0x40a87f(0x8b)](),_0x3b8c5c=[];let _0x36bda2=0x0,_0x2cf2ea=0x0;for(const _0x822f21 of _0x55009c['manifests']){if(!_0x822f21[_0x40a87f(0x92)])continue;const _0x221d9c=_0x822f21[_0x40a87f(0x92)][_0x40a87f(0xc8)]['code'],_0x5bad64={'serviceCode':_0x221d9c,'version':_0x822f21[_0x40a87f(0x92)][_0x40a87f(0xd7)],'importedAt':_0x4710a6,'source':{'type':_0x40a87f(0xac),'path':_0x55009c[_0x40a87f(0x8a)],'hash':_0x822f21['sourceHash']},'manifest':_0x822f21[_0x40a87f(0xd3)],'normalizedManifest':_0x822f21[_0x40a87f(0x92)]},_0x2b4a84=_0x5af33a['services'][_0x40a87f(0x96)](_0x2f8926=>_0x2f8926[_0x40a87f(0xaf)]===_0x221d9c);_0x2b4a84>=0x0?(_0x5af33a['services'][_0x2b4a84]=_0x5bad64,_0x2cf2ea++):(_0x5af33a[_0x40a87f(0x9e)][_0x40a87f(0xd4)](_0x5bad64),_0x36bda2++),_0x3b8c5c[_0x40a87f(0xd4)](_0x5bad64);}_0x5af33a[_0x40a87f(0x9e)][_0x40a87f(0xcb)]((_0x535946,_0x5662c7)=>_0x535946[_0x40a87f(0xaf)][_0x40a87f(0xb3)](_0x5662c7[_0x40a87f(0xaf)])),_0x5af33a['updatedAt']=_0x4710a6;const _0x2f411d=writeServiceRegistry(_0x5af33a,_0x2cd11f);return{'registryPath':_0x2f411d,'entry':_0x3b8c5c[0x0],'replaced':_0x3b8c5c['length']===0x1?_0x2cf2ea===0x1:_0x2cf2ea>0x0,'entries':_0x3b8c5c,'imported':_0x36bda2,'updated':_0x2cf2ea,'serviceCount':_0x5af33a[_0x40a87f(0x9e)]['length']};}export function exportServiceManifest(_0x3ca431,_0xc011cd,_0x3d05f7={}){const _0x1ac6b9=a37_0x43d9,_0x43add2=getServiceRegistryPath(_0x3d05f7),_0xee7a2c=getLocalServiceEntry(_0x3ca431,_0x3d05f7);if(!_0xee7a2c)throw CliErrors['validation'](_0x1ac6b9(0xbd)+_0x3ca431,_0x1ac6b9(0x98));const _0x21b12b=resolve(_0xc011cd),_0x5c6d13=dirname(_0x21b12b);return!existsSync(_0x5c6d13)&&mkdirSync(_0x5c6d13,{'recursive':!![]}),writeFileSync(_0x21b12b,JSON[_0x1ac6b9(0x9f)](_0xee7a2c[_0x1ac6b9(0xd3)],null,0x2)+'\x0a',{'encoding':_0x1ac6b9(0xbc),'mode':0x180}),{'registryPath':_0x43add2,'filePath':_0x21b12b,'entry':_0xee7a2c};}export function removeServiceManifest(_0x37ecec,_0x3db630={}){const _0x11077d=a37_0x43d9,_0x5998d1=readServiceRegistry(_0x3db630),_0x3293d0=_0x37ecec['trim'](),_0x368c2b=_0x5998d1[_0x11077d(0x9e)][_0x11077d(0x96)](_0x41889d=>_0x41889d[_0x11077d(0xaf)]===_0x3293d0);if(_0x368c2b<0x0)throw CliErrors[_0x11077d(0xb6)](_0x11077d(0xbd)+_0x3293d0,_0x11077d(0x98));const [_0x1d894c]=_0x5998d1[_0x11077d(0x9e)][_0x11077d(0x95)](_0x368c2b,0x1),_0x5dc090=(_0x3db630[_0x11077d(0xce)]??(()=>new Date()))()[_0x11077d(0x8b)]();_0x5998d1[_0x11077d(0xd5)]=_0x5dc090;const _0x2f79e2=writeServiceRegistry(_0x5998d1,_0x3db630);return{'registryPath':_0x2f79e2,'entry':_0x1d894c,'serviceCount':_0x5998d1[_0x11077d(0x9e)]['length']};}export function listLocalServices(_0x548721={}){const _0x4dd557=a37_0x43d9;return readServiceRegistry(_0x548721)[_0x4dd557(0x9e)];}export function getLocalServiceEntry(_0x3c7507,_0x255baf={}){const _0x57b88d=a37_0x43d9;return readServiceRegistry(_0x255baf)[_0x57b88d(0x9e)][_0x57b88d(0x8c)](_0x493f2e=>_0x493f2e['serviceCode']===_0x3c7507[_0x57b88d(0x90)]());}export function listLocalServiceTrees(_0x1f6896={}){const _0x3722e5=a37_0x43d9;return readServiceRegistry(_0x1f6896)['services'][_0x3722e5(0xae)](_0x2ec7e7=>_0x2ec7e7['normalizedManifest']);}export function inspectServiceRegistry(_0x3d0943={}){const _0x4047ae=a37_0x43d9,_0x4a14b8=getServiceRegistryPath(_0x3d0943);if(!existsSync(_0x4a14b8))return emptyServiceRegistryInspection(_0x4a14b8,'missing',![]);try{const _0xde765e=readFileSync(_0x4a14b8,_0x4047ae(0xbc));if(!_0xde765e[_0x4047ae(0x90)]())return emptyServiceRegistryInspection(_0x4a14b8,_0x4047ae(0xc9),!![]);const _0x1e7ce3=JSON[_0x4047ae(0xd0)](_0xde765e);if(_0x1e7ce3[_0x4047ae(0xa2)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4a14b8,_0x4047ae(0xa5),!![]),'schemaVersion':_0x1e7ce3[_0x4047ae(0xa2)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1e7ce3['schemaVersion'])};if(!Array[_0x4047ae(0x8f)](_0x1e7ce3['services']))return{...emptyServiceRegistryInspection(_0x4a14b8,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1e7ce3[_0x4047ae(0xd5)],'message':_0x4047ae(0x9c)};const _0x468ec4=_0x1e7ce3[_0x4047ae(0x9e)][_0x4047ae(0xae)](summarizeLocalServiceEntry);return{'registryPath':_0x4a14b8,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1e7ce3[_0x4047ae(0xd5)],'serviceCount':_0x468ec4['length'],'commandCount':_0x468ec4[_0x4047ae(0xc6)]((_0x244cc1,_0x26b2d9)=>_0x244cc1+_0x26b2d9[_0x4047ae(0xc1)],0x0),'services':_0x468ec4};}catch(_0x26ce4c){return{...emptyServiceRegistryInspection(_0x4a14b8,'invalid',!![]),'message':_0x26ce4c instanceof Error?_0x26ce4c[_0x4047ae(0xd1)]:String(_0x26ce4c)};}}export function formatValidationFailure(_0x160fc0){const _0x57c9cd=a37_0x43d9,_0x535bb3=_0x160fc0['errors'][_0x57c9cd(0xae)](_0x18c485=>_0x18c485[_0x57c9cd(0xa1)]+':\x20'+_0x18c485[_0x57c9cd(0xd1)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x535bb3[_0x57c9cd(0x8e)]('\x0a');}function extractLoadedServiceManifests(_0x299623,_0x2d88be){const _0x2c887f=a37_0x43d9;if(!isServiceRegistryLike(_0x299623)){const _0x53c51a=_0x299623,_0x2baecb=validateServiceTreeManifest(_0x53c51a);return[{'manifest':_0x53c51a,'report':_0x2baecb,'normalizedManifest':_0x2baecb['ok']?normalizeServiceTreeManifest(_0x53c51a):undefined,'sourceHash':_0x2d88be}];}return _0x299623[_0x2c887f(0x9e)]['map']((_0x5c54b5,_0x1b740c)=>{const _0x435641=_0x2c887f,_0x78e94f=isObjectRecord(_0x5c54b5)?_0x5c54b5[_0x435641(0xd3)]:undefined,_0x4b74b0=validateServiceTreeManifest(_0x78e94f),_0x209f8e=isObjectRecord(_0x5c54b5)&&typeof _0x5c54b5['serviceCode']===_0x435641(0xc3)?_0x5c54b5[_0x435641(0xaf)]:undefined;return{'manifest':_0x78e94f,'report':_0x4b74b0,'normalizedManifest':_0x4b74b0['ok']?normalizeServiceTreeManifest(_0x78e94f):undefined,'sourceHash':sha256(JSON[_0x435641(0x9f)](_0x78e94f,null,0x2)+'\x0a'),'registryIndex':_0x1b740c,'registryServiceCode':_0x209f8e};});}function aggregateValidationReports(_0x224bbc){const _0x22d4b6=a37_0x43d9,_0x99a47c=_0x224bbc[_0x22d4b6(0xb2)](_0x2b2260=>_0x2b2260[_0x22d4b6(0xc5)]===undefined?_0x2b2260[_0x22d4b6(0xa7)][_0x22d4b6(0xb5)]:_0x2b2260[_0x22d4b6(0xa7)]['errors'][_0x22d4b6(0xae)](_0x1db427=>({..._0x1db427,'path':prefixRegistryIssuePath(_0x2b2260[_0x22d4b6(0xc5)],_0x1db427[_0x22d4b6(0xa1)])}))),_0x14b790=_0x224bbc[_0x22d4b6(0xb2)](_0x1a126d=>_0x1a126d['registryIndex']===undefined?_0x1a126d[_0x22d4b6(0xa7)][_0x22d4b6(0xd6)]:_0x1a126d[_0x22d4b6(0xa7)][_0x22d4b6(0xd6)][_0x22d4b6(0xae)](_0x347d06=>({..._0x347d06,'path':prefixRegistryIssuePath(_0x1a126d[_0x22d4b6(0xc5)],_0x347d06[_0x22d4b6(0xa1)])})));return{'ok':_0x99a47c[_0x22d4b6(0xab)]===0x0,'errors':_0x99a47c,'warnings':_0x14b790};}function prefixRegistryIssuePath(_0x37c709,_0x3dad7c){const _0x5b5e76=a37_0x43d9;if(_0x3dad7c==='$')return _0x5b5e76(0xa8)+_0x37c709+_0x5b5e76(0x99);if(_0x3dad7c[_0x5b5e76(0xa9)]('$.'))return _0x5b5e76(0xa8)+_0x37c709+_0x5b5e76(0x99)+_0x3dad7c[_0x5b5e76(0xad)](0x1);if(_0x3dad7c[_0x5b5e76(0xa9)]('$['))return _0x5b5e76(0xa8)+_0x37c709+'].manifest'+_0x3dad7c[_0x5b5e76(0xad)](0x1);return _0x5b5e76(0xa8)+_0x37c709+_0x5b5e76(0xb1)+_0x3dad7c;}function a37_0x43d9(_0x4a4dac,_0x4e9224){_0x4a4dac=_0x4a4dac-0x89;const _0x2f48df=a37_0x2f48();let _0x43d98d=_0x2f48df[_0x4a4dac];return _0x43d98d;}function isServiceRegistryLike(_0x331e76){const _0x5272ff=a37_0x43d9;return isObjectRecord(_0x331e76)&&_0x331e76[_0x5272ff(0xa2)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5272ff(0x8f)](_0x331e76[_0x5272ff(0x9e)]);}function isObjectRecord(_0x2983a6){const _0x4cae0c=a37_0x43d9;return Boolean(_0x2983a6)&&typeof _0x2983a6===_0x4cae0c(0x9d)&&!Array['isArray'](_0x2983a6);}function emptyServiceRegistryInspection(_0x354c3a,_0x5bcdb4,_0x16a4b6){return{'registryPath':_0x354c3a,'exists':_0x16a4b6,'status':_0x5bcdb4,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5d47d5){const _0x5afdc0=a37_0x43d9,_0x5c3a51=_0x5d47d5['normalizedManifest'],_0x14f410=_0x5c3a51[_0x5afdc0(0xb0)][_0x5afdc0(0xae)](_0x44f577=>({'path':_0x44f577[_0x5afdc0(0xbb)],'description':_0x44f577[_0x5afdc0(0x97)],'risk':_0x44f577['risk'],'targetKind':_0x44f577[_0x5afdc0(0xbf)]['kind'],'targetCommand':_0x44f577['target'][_0x5afdc0(0xb9)]}));return{'serviceCode':_0x5d47d5[_0x5afdc0(0xaf)],'name':_0x5c3a51['service']['name'],'description':_0x5c3a51[_0x5afdc0(0xc8)][_0x5afdc0(0x97)],'version':_0x5d47d5[_0x5afdc0(0xd7)],'importedAt':_0x5d47d5['importedAt'],'source':_0x5d47d5[_0x5afdc0(0xa3)],'commandCount':_0x14f410[_0x5afdc0(0xab)],'commands':_0x14f410};}function sha256(_0x226948){const _0x1d93e4=a37_0x43d9;return createHash('sha256')['update'](_0x226948)[_0x1d93e4(0xcc)]('hex');}
|
|
1
|
+
const a37_0x4a99e8=a37_0x28ad;(function(_0x577f53,_0x2afc7f){const _0x9bd59=a37_0x28ad,_0x345193=_0x577f53();while(!![]){try{const _0xe145e7=parseInt(_0x9bd59(0x19b))/0x1*(-parseInt(_0x9bd59(0x195))/0x2)+parseInt(_0x9bd59(0x1a7))/0x3*(-parseInt(_0x9bd59(0x191))/0x4)+parseInt(_0x9bd59(0x194))/0x5*(-parseInt(_0x9bd59(0x1ce))/0x6)+-parseInt(_0x9bd59(0x18f))/0x7+-parseInt(_0x9bd59(0x199))/0x8*(parseInt(_0x9bd59(0x1d8))/0x9)+-parseInt(_0x9bd59(0x1c1))/0xa*(-parseInt(_0x9bd59(0x1cf))/0xb)+parseInt(_0x9bd59(0x1b5))/0xc*(parseInt(_0x9bd59(0x1c7))/0xd);if(_0xe145e7===_0x2afc7f)break;else _0x345193['push'](_0x345193['shift']());}catch(_0x14f4eb){_0x345193['push'](_0x345193['shift']());}}}(a37_0x35ad,0x7f6b1));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a37_0x35ad(){const _0x4a40f3=['service','now','services','sort','sha256','isArray','file','description','Service\x20manifest\x20file\x20not\x20found:\x20','cliPath','message','495408OObNQf','updatedAt','Local\x20service\x20not\x20found:\x20','digest','map','homeDirName','utf8','report','normalizedManifest','length','stringify','reduce','version','CliError','144ykVcXT','target','update','errors','code','schemaVersion','sourceHash','splice','Cannot\x20write\x20service\x20registry:\x20','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','.tmp','command','3106930XLSYms','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','commands','Service\x20manifest\x20validation\x20failed:\x0a','source','push','1580683MSvmBC','Invalid\x20service\x20manifest\x20JSON:\x20','startsWith','join','manifests','empty','service.json','2525280KzgsFf','33TRkUFd','toISOString','invalid','filePath','kind','string','Remove\x20or\x20migrate\x20','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','].manifest.','360xSFpRy','validation','Invalid\x20service\x20registry\x20JSON:\x20','manifest','findIndex','serviceCode','commandCount','warnings','registryIndex','find','4675419TUNGnZ','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','8Rvmdnk','trim','parse','5GbWrgf','2YDjsza','$.services[','flatMap','importedAt','82616fJeOHv','path','37117SnjfPW'];a37_0x35ad=function(){return _0x4a40f3;};return a37_0x35ad();}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;function a37_0x28ad(_0x58edb8,_0x2be1c2){_0x58edb8=_0x58edb8-0x186;const _0x35adfc=a37_0x35ad();let _0x28adf6=_0x35adfc[_0x58edb8];return _0x28adf6;}export const SERVICE_REGISTRY_FILE_NAME=a37_0x4a99e8(0x1cd);export function getServiceRegistryPath(_0x82be90={}){const _0x14cd27=a37_0x4a99e8;return resolve(_0x82be90['homeDir']??homedir(),PRODUCT_CONFIG[_0x14cd27(0x1ac)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1246d1={}){const _0x3826fc=a37_0x4a99e8,_0xe0b0fe=getServiceRegistryPath(_0x1246d1);if(!existsSync(_0xe0b0fe))return emptyServiceRegistry();try{const _0x45a0c6=readFileSync(_0xe0b0fe,'utf8');if(!_0x45a0c6[_0x3826fc(0x192)]())return emptyServiceRegistry();const _0x464220=JSON[_0x3826fc(0x193)](_0x45a0c6);if(_0x464220[_0x3826fc(0x1ba)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation']('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x464220[_0x3826fc(0x1ba)]),_0x3826fc(0x1d5)+_0xe0b0fe+'.');if(!Array[_0x3826fc(0x1a1)](_0x464220[_0x3826fc(0x19e)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x464220[_0x3826fc(0x1a8)],'services':_0x464220['services']};}catch(_0xc35ded){if(_0xc35ded instanceof Error&&_0xc35ded['name']===_0x3826fc(0x1b4))throw _0xc35ded;throw CliErrors[_0x3826fc(0x186)](_0x3826fc(0x187)+_0xe0b0fe,_0x3826fc(0x1c2));}}export function writeServiceRegistry(_0x41d860,_0x4635ca={}){const _0x39eaa6=a37_0x4a99e8,_0x570b76=getServiceRegistryPath(_0x4635ca),_0x3606d3=dirname(_0x570b76);!existsSync(_0x3606d3)&&mkdirSync(_0x3606d3,{'recursive':!![]});const _0x478a73=_0x570b76+_0x39eaa6(0x1bf);try{writeFileSync(_0x478a73,JSON[_0x39eaa6(0x1b1)](_0x41d860,null,0x2)+'\x0a',{'encoding':_0x39eaa6(0x1ad),'mode':0x180}),renameSync(_0x478a73,_0x570b76);}catch(_0x3b00db){try{unlinkSync(_0x478a73);}catch{}if(_0x3b00db?.[_0x39eaa6(0x1b9)]==='ENOENT')throw CliErrors[_0x39eaa6(0x186)](_0x39eaa6(0x1bd)+_0x570b76);throw _0x3b00db;}return _0x570b76;}export function loadServiceManifestFromFile(_0x31b257){const _0x499811=a37_0x4a99e8,_0x1fff8c=resolve(_0x31b257);if(!existsSync(_0x1fff8c))throw CliErrors[_0x499811(0x186)](_0x499811(0x1a4)+_0x31b257);let _0x5a09ee;const _0x2574d3=readFileSync(_0x1fff8c,'utf8');try{_0x5a09ee=JSON[_0x499811(0x193)](_0x2574d3);}catch{throw CliErrors['validation'](_0x499811(0x1c8)+_0x31b257,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x5b3b57=sha256(_0x2574d3),_0x410ddf=extractLoadedServiceManifests(_0x5a09ee,_0x5b3b57),_0x85c44d=aggregateValidationReports(_0x410ddf),_0xf7613a=_0x410ddf[0x0];return{'filePath':_0x1fff8c,'hash':_0x5b3b57,'kind':isServiceRegistryLike(_0x5a09ee)?'registry':_0x499811(0x188),'manifest':_0xf7613a?.[_0x499811(0x188)]??_0x5a09ee,'report':_0x85c44d,'normalizedManifest':_0x410ddf[_0x499811(0x1b0)]===0x1?_0xf7613a?.[_0x499811(0x1af)]:undefined,'manifests':_0x410ddf};}export function importServiceManifest(_0x3c7add,_0x1483f9={}){const _0x551de6=a37_0x4a99e8,_0x91da0b=loadServiceManifestFromFile(_0x3c7add);if(!_0x91da0b['report']['ok'])throw CliErrors[_0x551de6(0x186)](formatValidationFailure(_0x91da0b[_0x551de6(0x1ae)]),_0x551de6(0x1be));if(_0x91da0b[_0x551de6(0x1cb)][_0x551de6(0x1b0)]===0x0)throw CliErrors[_0x551de6(0x186)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x551de6(0x190));const _0x153f39=readServiceRegistry(_0x1483f9),_0x22399f=(_0x1483f9[_0x551de6(0x19d)]??(()=>new Date()))()['toISOString'](),_0x52a5ba=[];let _0x1f1cf1=0x0,_0x372278=0x0;for(const _0xa954b0 of _0x91da0b['manifests']){if(!_0xa954b0['normalizedManifest'])continue;const _0x2dd138=_0xa954b0[_0x551de6(0x1af)][_0x551de6(0x19c)]['code'],_0x425cc8={'serviceCode':_0x2dd138,'version':_0xa954b0[_0x551de6(0x1af)][_0x551de6(0x1b3)],'importedAt':_0x22399f,'source':{'type':_0x551de6(0x1a2),'path':_0x91da0b[_0x551de6(0x1d2)],'hash':_0xa954b0[_0x551de6(0x1bb)]},'manifest':_0xa954b0[_0x551de6(0x188)],'normalizedManifest':_0xa954b0[_0x551de6(0x1af)]},_0x369a8f=_0x153f39[_0x551de6(0x19e)][_0x551de6(0x189)](_0x43fe92=>_0x43fe92[_0x551de6(0x18a)]===_0x2dd138);_0x369a8f>=0x0?(_0x153f39[_0x551de6(0x19e)][_0x369a8f]=_0x425cc8,_0x372278++):(_0x153f39[_0x551de6(0x19e)][_0x551de6(0x1c6)](_0x425cc8),_0x1f1cf1++),_0x52a5ba['push'](_0x425cc8);}_0x153f39[_0x551de6(0x19e)][_0x551de6(0x19f)]((_0x105d52,_0xdd765d)=>_0x105d52['serviceCode']['localeCompare'](_0xdd765d['serviceCode'])),_0x153f39['updatedAt']=_0x22399f;const _0x1b69ee=writeServiceRegistry(_0x153f39,_0x1483f9);return{'registryPath':_0x1b69ee,'entry':_0x52a5ba[0x0],'replaced':_0x52a5ba[_0x551de6(0x1b0)]===0x1?_0x372278===0x1:_0x372278>0x0,'entries':_0x52a5ba,'imported':_0x1f1cf1,'updated':_0x372278,'serviceCount':_0x153f39[_0x551de6(0x19e)][_0x551de6(0x1b0)]};}export function exportServiceManifest(_0x166332,_0x2b28ca,_0x36241f={}){const _0x795b6b=a37_0x4a99e8,_0x3e1ae6=getServiceRegistryPath(_0x36241f),_0x4add59=getLocalServiceEntry(_0x166332,_0x36241f);if(!_0x4add59)throw CliErrors['validation'](_0x795b6b(0x1a9)+_0x166332,_0x795b6b(0x1d6));const _0x2baf77=resolve(_0x2b28ca),_0x324182=dirname(_0x2baf77);return!existsSync(_0x324182)&&mkdirSync(_0x324182,{'recursive':!![]}),writeFileSync(_0x2baf77,JSON[_0x795b6b(0x1b1)](_0x4add59[_0x795b6b(0x188)],null,0x2)+'\x0a',{'encoding':_0x795b6b(0x1ad),'mode':0x180}),{'registryPath':_0x3e1ae6,'filePath':_0x2baf77,'entry':_0x4add59};}export function removeServiceManifest(_0x1b3142,_0x1410d4={}){const _0x489d94=a37_0x4a99e8,_0x5a0262=readServiceRegistry(_0x1410d4),_0xfb94e5=_0x1b3142['trim'](),_0x242453=_0x5a0262[_0x489d94(0x19e)][_0x489d94(0x189)](_0x1bf5db=>_0x1bf5db[_0x489d94(0x18a)]===_0xfb94e5);if(_0x242453<0x0)throw CliErrors[_0x489d94(0x186)]('Local\x20service\x20not\x20found:\x20'+_0xfb94e5,_0x489d94(0x1d6));const [_0x1da881]=_0x5a0262['services'][_0x489d94(0x1bc)](_0x242453,0x1),_0x138937=(_0x1410d4[_0x489d94(0x19d)]??(()=>new Date()))()[_0x489d94(0x1d0)]();_0x5a0262[_0x489d94(0x1a8)]=_0x138937;const _0x4b9ae6=writeServiceRegistry(_0x5a0262,_0x1410d4);return{'registryPath':_0x4b9ae6,'entry':_0x1da881,'serviceCount':_0x5a0262[_0x489d94(0x19e)]['length']};}export function listLocalServices(_0x2b2615={}){const _0x348532=a37_0x4a99e8;return readServiceRegistry(_0x2b2615)[_0x348532(0x19e)];}export function getLocalServiceEntry(_0x313baa,_0xff6eb5={}){const _0x582534=a37_0x4a99e8;return readServiceRegistry(_0xff6eb5)[_0x582534(0x19e)][_0x582534(0x18e)](_0x5f41fa=>_0x5f41fa[_0x582534(0x18a)]===_0x313baa['trim']());}export function listLocalServiceTrees(_0x31f4ca={}){const _0x3291cd=a37_0x4a99e8;return readServiceRegistry(_0x31f4ca)[_0x3291cd(0x19e)]['map'](_0x35e2c6=>_0x35e2c6[_0x3291cd(0x1af)]);}export function inspectServiceRegistry(_0x1dc1dd={}){const _0x12c28a=a37_0x4a99e8,_0x3f81ab=getServiceRegistryPath(_0x1dc1dd);if(!existsSync(_0x3f81ab))return emptyServiceRegistryInspection(_0x3f81ab,'missing',![]);try{const _0x44f845=readFileSync(_0x3f81ab,'utf8');if(!_0x44f845['trim']())return emptyServiceRegistryInspection(_0x3f81ab,_0x12c28a(0x1cc),!![]);const _0x401a0e=JSON[_0x12c28a(0x193)](_0x44f845);if(_0x401a0e[_0x12c28a(0x1ba)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x3f81ab,'invalid',!![]),'schemaVersion':_0x401a0e[_0x12c28a(0x1ba)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x401a0e[_0x12c28a(0x1ba)])};if(!Array[_0x12c28a(0x1a1)](_0x401a0e[_0x12c28a(0x19e)]))return{...emptyServiceRegistryInspection(_0x3f81ab,_0x12c28a(0x1d1),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x401a0e[_0x12c28a(0x1a8)],'message':'services\x20must\x20be\x20an\x20array'};const _0x14b651=_0x401a0e[_0x12c28a(0x19e)][_0x12c28a(0x1ab)](summarizeLocalServiceEntry);return{'registryPath':_0x3f81ab,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x401a0e['updatedAt'],'serviceCount':_0x14b651[_0x12c28a(0x1b0)],'commandCount':_0x14b651[_0x12c28a(0x1b2)]((_0x426781,_0x3ea12f)=>_0x426781+_0x3ea12f[_0x12c28a(0x18b)],0x0),'services':_0x14b651};}catch(_0x2533a1){return{...emptyServiceRegistryInspection(_0x3f81ab,_0x12c28a(0x1d1),!![]),'message':_0x2533a1 instanceof Error?_0x2533a1[_0x12c28a(0x1a6)]:String(_0x2533a1)};}}export function formatValidationFailure(_0x418154){const _0x5eb4b4=a37_0x4a99e8,_0xa0d45c=_0x418154[_0x5eb4b4(0x1b8)]['map'](_0x112a41=>_0x112a41[_0x5eb4b4(0x19a)]+':\x20'+_0x112a41['message']);return _0x5eb4b4(0x1c4)+_0xa0d45c[_0x5eb4b4(0x1ca)]('\x0a');}function extractLoadedServiceManifests(_0x2b3e0f,_0x4944bb){const _0x1d37c4=a37_0x4a99e8;if(!isServiceRegistryLike(_0x2b3e0f)){const _0x1fdfb9=_0x2b3e0f,_0x380148=validateServiceTreeManifest(_0x1fdfb9);return[{'manifest':_0x1fdfb9,'report':_0x380148,'normalizedManifest':_0x380148['ok']?normalizeServiceTreeManifest(_0x1fdfb9):undefined,'sourceHash':_0x4944bb}];}return _0x2b3e0f[_0x1d37c4(0x19e)]['map']((_0xdd071b,_0x2a4d67)=>{const _0x4cda1c=_0x1d37c4,_0x25e6ff=isObjectRecord(_0xdd071b)?_0xdd071b[_0x4cda1c(0x188)]:undefined,_0x1894f1=validateServiceTreeManifest(_0x25e6ff),_0x45ed6d=isObjectRecord(_0xdd071b)&&typeof _0xdd071b[_0x4cda1c(0x18a)]===_0x4cda1c(0x1d4)?_0xdd071b[_0x4cda1c(0x18a)]:undefined;return{'manifest':_0x25e6ff,'report':_0x1894f1,'normalizedManifest':_0x1894f1['ok']?normalizeServiceTreeManifest(_0x25e6ff):undefined,'sourceHash':sha256(JSON['stringify'](_0x25e6ff,null,0x2)+'\x0a'),'registryIndex':_0x2a4d67,'registryServiceCode':_0x45ed6d};});}function aggregateValidationReports(_0x4a21f9){const _0x3b4123=a37_0x4a99e8,_0x3d00e2=_0x4a21f9['flatMap'](_0x250a2d=>_0x250a2d[_0x3b4123(0x18d)]===undefined?_0x250a2d[_0x3b4123(0x1ae)]['errors']:_0x250a2d[_0x3b4123(0x1ae)]['errors'][_0x3b4123(0x1ab)](_0x51e1f6=>({..._0x51e1f6,'path':prefixRegistryIssuePath(_0x250a2d[_0x3b4123(0x18d)],_0x51e1f6[_0x3b4123(0x19a)])}))),_0x46de74=_0x4a21f9[_0x3b4123(0x197)](_0x415b7e=>_0x415b7e['registryIndex']===undefined?_0x415b7e[_0x3b4123(0x1ae)][_0x3b4123(0x18c)]:_0x415b7e[_0x3b4123(0x1ae)][_0x3b4123(0x18c)][_0x3b4123(0x1ab)](_0x309369=>({..._0x309369,'path':prefixRegistryIssuePath(_0x415b7e[_0x3b4123(0x18d)],_0x309369[_0x3b4123(0x19a)])})));return{'ok':_0x3d00e2[_0x3b4123(0x1b0)]===0x0,'errors':_0x3d00e2,'warnings':_0x46de74};}function prefixRegistryIssuePath(_0x595528,_0x272f3e){const _0x586657=a37_0x4a99e8;if(_0x272f3e==='$')return _0x586657(0x196)+_0x595528+'].manifest';if(_0x272f3e[_0x586657(0x1c9)]('$.'))return _0x586657(0x196)+_0x595528+'].manifest'+_0x272f3e['slice'](0x1);if(_0x272f3e[_0x586657(0x1c9)]('$['))return _0x586657(0x196)+_0x595528+'].manifest'+_0x272f3e['slice'](0x1);return _0x586657(0x196)+_0x595528+_0x586657(0x1d7)+_0x272f3e;}function isServiceRegistryLike(_0x4bcf9d){const _0x46eefd=a37_0x4a99e8;return isObjectRecord(_0x4bcf9d)&&_0x4bcf9d['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x4bcf9d[_0x46eefd(0x19e)]);}function isObjectRecord(_0x3d7a90){return Boolean(_0x3d7a90)&&typeof _0x3d7a90==='object'&&!Array['isArray'](_0x3d7a90);}function emptyServiceRegistryInspection(_0x8253ba,_0x306220,_0x1e7134){return{'registryPath':_0x8253ba,'exists':_0x1e7134,'status':_0x306220,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x509533){const _0xa2cce0=a37_0x4a99e8,_0x19dc92=_0x509533[_0xa2cce0(0x1af)],_0x2eb418=_0x19dc92[_0xa2cce0(0x1c3)][_0xa2cce0(0x1ab)](_0x595741=>({'path':_0x595741[_0xa2cce0(0x1a5)],'description':_0x595741[_0xa2cce0(0x1a3)],'risk':_0x595741['risk'],'targetKind':_0x595741[_0xa2cce0(0x1b6)][_0xa2cce0(0x1d3)],'targetCommand':_0x595741[_0xa2cce0(0x1b6)][_0xa2cce0(0x1c0)]}));return{'serviceCode':_0x509533[_0xa2cce0(0x18a)],'name':_0x19dc92['service']['name'],'description':_0x19dc92[_0xa2cce0(0x19c)][_0xa2cce0(0x1a3)],'version':_0x509533['version'],'importedAt':_0x509533[_0xa2cce0(0x198)],'source':_0x509533[_0xa2cce0(0x1c5)],'commandCount':_0x2eb418[_0xa2cce0(0x1b0)],'commands':_0x2eb418};}function sha256(_0x133ba4){const _0x475191=a37_0x4a99e8;return createHash(_0x475191(0x1a0))[_0x475191(0x1b7)](_0x133ba4)[_0x475191(0x1aa)]('hex');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a38_0x359c60=a38_0x469c;function a38_0x469c(_0x183ee7,_0x330772){_0x183ee7=_0x183ee7-0x17b;const _0x52f344=a38_0x52f3();let _0x469c3d=_0x52f344[_0x183ee7];return _0x469c3d;}(function(_0x4e8b3d,_0x5a1370){const _0x178cc5=a38_0x469c,_0x4a4986=_0x4e8b3d();while(!![]){try{const _0x50b91b=parseInt(_0x178cc5(0x19a))/0x1*(-parseInt(_0x178cc5(0x189))/0x2)+parseInt(_0x178cc5(0x187))/0x3+parseInt(_0x178cc5(0x18c))/0x4+-parseInt(_0x178cc5(0x191))/0x5*(parseInt(_0x178cc5(0x183))/0x6)+parseInt(_0x178cc5(0x19d))/0x7+-parseInt(_0x178cc5(0x18b))/0x8+-parseInt(_0x178cc5(0x186))/0x9;if(_0x50b91b===_0x5a1370)break;else _0x4a4986['push'](_0x4a4986['shift']());}catch(_0x40af9b){_0x4a4986['push'](_0x4a4986['shift']());}}}(a38_0x52f3,0x69263));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a38_0x52f3(){const _0x14085e=['type','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','skill','path','str','24yMxUmG','bool','Skill\x20directory\x20already\x20exists:\x20','633600XDqLDr','436218IuZmsW','isSymbolicLink','4406atacef','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','3305616xBFkaK','1524092buzkWz','files','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','content','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','215545NNFZqL','force','target','skillDir','isDirectory','trim','rendered','name','create','71QejeKa','skillName','WRITE','5016991ofCLfL','map','validation','utf8'];a38_0x52f3=function(){return _0x14085e;};return a38_0x52f3();}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a38_0x359c60(0x180),'command':a38_0x359c60(0x199),'description':a38_0x359c60(0x18a),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4bbc76){const _0x1f1e60=a38_0x359c60,_0x12c589=buildSkillCreatePlan(_0x4bbc76[_0x1f1e60(0x182)]('name'),_0x4bbc76[_0x1f1e60(0x182)](_0x1f1e60(0x17e)),_0x4bbc76['str'](_0x1f1e60(0x193)));return{'method':_0x1f1e60(0x19c),'url':_0x12c589[_0x1f1e60(0x194)],'body':{'skillName':_0x12c589[_0x1f1e60(0x197)][_0x1f1e60(0x19b)],'type':_0x12c589[_0x1f1e60(0x197)][_0x1f1e60(0x17e)],'selfContained':!![],'files':_0x12c589['rendered'][_0x1f1e60(0x18d)][_0x1f1e60(0x17b)](_0x42b5f1=>_0x42b5f1[_0x1f1e60(0x181)])},'description':_0x1f1e60(0x18e)};},async 'execute'(_0x1399ca){const _0x32559d=a38_0x359c60,_0x1d66f4=buildSkillCreatePlan(_0x1399ca[_0x32559d(0x182)](_0x32559d(0x198)),_0x1399ca['str'](_0x32559d(0x17e)),_0x1399ca[_0x32559d(0x182)](_0x32559d(0x193)));return writeSkillDraft(_0x1d66f4,_0x1399ca[_0x32559d(0x184)](_0x32559d(0x192))),{'ok':!![],'data':{'skillName':_0x1d66f4[_0x32559d(0x197)]['skillName'],'type':_0x1d66f4['rendered'][_0x32559d(0x17e)],'dir':_0x1d66f4[_0x32559d(0x194)],'files':_0x1d66f4['rendered'][_0x32559d(0x18d)][_0x32559d(0x17b)](_0x2cccf2=>_0x2cccf2[_0x32559d(0x181)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x1d66f4['rendered'][_0x32559d(0x19b)]};}};function buildSkillCreatePlan(_0x5245a8,_0x67b014,_0x54a177){const _0x4c202f=a38_0x359c60,_0xc9a25c=renderSkillTemplate({'skillName':_0x5245a8,'type':_0x67b014}),_0x1e595b=resolve(normalizeSkillTarget(_0x54a177));return{'rendered':_0xc9a25c,'targetRoot':_0x1e595b,'skillDir':resolve(_0x1e595b,_0xc9a25c[_0x4c202f(0x19b)])};}function normalizeSkillTarget(_0x83053){const _0x444e32=a38_0x359c60;return(_0x83053||DEFAULT_SKILL_TARGET)[_0x444e32(0x196)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x119300,_0x15874b){const _0x7d6bfa=a38_0x359c60;if(existsSync(_0x119300['skillDir'])){const _0x37a811=lstatSync(_0x119300[_0x7d6bfa(0x194)]);if(!_0x37a811[_0x7d6bfa(0x195)]()||_0x37a811['isSymbolicLink']())throw CliErrors['validation'](_0x7d6bfa(0x17f)+_0x119300['skillDir']);if(!_0x15874b)throw CliErrors[_0x7d6bfa(0x17c)](_0x7d6bfa(0x185)+_0x119300[_0x7d6bfa(0x194)],_0x7d6bfa(0x190));}for(const _0x4688c5 of _0x119300[_0x7d6bfa(0x197)][_0x7d6bfa(0x18d)]){const _0x151263=resolve(_0x119300['skillDir'],_0x4688c5['path']),_0x39d72c=dirname(_0x151263);mkdirSync(_0x39d72c,{'recursive':!![]});if(existsSync(_0x151263)&&lstatSync(_0x151263)[_0x7d6bfa(0x188)]())throw CliErrors[_0x7d6bfa(0x17c)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x151263);writeFileSync(_0x151263,_0x4688c5[_0x7d6bfa(0x18f)],_0x7d6bfa(0x17d));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a39_0x3d6080=a39_0x540c;(function(_0x441334,_0x3ffd41){const _0x315ddd=a39_0x540c,_0x318fc4=_0x441334();while(!![]){try{const _0x3a6a47=-parseInt(_0x315ddd(0x124))/0x1+parseInt(_0x315ddd(0x121))/0x2*(-parseInt(_0x315ddd(0x12e))/0x3)+parseInt(_0x315ddd(0x136))/0x4*(-parseInt(_0x315ddd(0x11b))/0x5)+-parseInt(_0x315ddd(0x138))/0x6+parseInt(_0x315ddd(0x135))/0x7*(parseInt(_0x315ddd(0x11c))/0x8)+-parseInt(_0x315ddd(0x141))/0x9*(parseInt(_0x315ddd(0x13c))/0xa)+-parseInt(_0x315ddd(0x128))/0xb*(-parseInt(_0x315ddd(0x11f))/0xc);if(_0x3a6a47===_0x3ffd41)break;else _0x318fc4['push'](_0x318fc4['shift']());}catch(_0x11f89d){_0x318fc4['push'](_0x318fc4['shift']());}}}(a39_0x43a4,0xd8cdc));import{CliErrors}from'../../../errors.js';function a39_0x540c(_0x13e7c9,_0xc1d25c){_0x13e7c9=_0x13e7c9-0x11b;const _0x43a439=a39_0x43a4();let _0x540c8f=_0x43a439[_0x13e7c9];return _0x540c8f;}function a39_0x43a4(){const _0x500df5=['removed','updated','all','17207410ETrdIJ','push','action','production','filter','skillCode','3658359PKoqOM','created','str','write','length','\x20company\x20Skill(s).','../../../skills/runtime-skill-sync.js','63kiqwva','73468IctAeh','includes','7029216nJXeoQ','map','company','unchanged','15643470WwwSpz','install','skill','reduce','Installed\x20','9ZxZGoR','trim','version','appCode','245HoZIFr','1118288qLLLry','authRequired','scope','48LTuXtY','flatMap','2RceebF','personal','\x20personal\x20and\x20','1771967YctvwM'];a39_0x43a4=function(){return _0x500df5;};return a39_0x43a4();}import{CODE_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a39_0x3d6080(0x13e),'command':a39_0x3d6080(0x13d),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a39_0x3d6080(0x131),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x37dd1d){return syncRuntimeSkills(_0x37dd1d);}};async function syncRuntimeSkills(_0x1e0f1a){const _0x2d7352=a39_0x3d6080,{downloadRuntimeSkillPackage:_0x23f43c,listRuntimeSkills:_0x138677}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x1db592,materializeRuntimeSkill:_0x152f55,pruneStaleRuntimeSkillCache:_0x4d0578,pruneStaleRuntimeSkillLinks:_0x2b5f3a}=await import(_0x2d7352(0x134)),_0x4ce14e=_0x1e0f1a[_0x2d7352(0x130)]('code'),_0x172879=normalizeSyncScopes(_0x1e0f1a[_0x2d7352(0x130)](_0x2d7352(0x11e))),_0x2a0f2b=_0x1e0f1a['envName']??_0x2d7352(0x12b),_0x2b67b2=_0x1e0f1a['accessKey'];if(!_0x2b67b2)throw CliErrors[_0x2d7352(0x11d)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x580324=await Promise[_0x2d7352(0x127)](_0x172879['map'](_0x419d98=>_0x138677({'appCode':_0x1e0f1a[_0x2d7352(0x144)],'scope':_0x419d98,'code':_0x4ce14e['trim']()||undefined}))),_0x1e26a3=_0x172879['includes']('personal')?_0x580324[_0x2d7352(0x120)]((_0xb4b8f2,_0xa6f17c)=>_0x172879[_0xa6f17c]===_0x2d7352(0x122)?_0xb4b8f2['personal']:[]):[],_0x324871=_0x172879['includes'](_0x2d7352(0x13a))?_0x580324[_0x2d7352(0x120)]((_0x569743,_0x58f2b9)=>_0x172879[_0x58f2b9]===_0x2d7352(0x13a)?_0x569743[_0x2d7352(0x13a)]:[]):[],_0x6cf76d=new Set([..._0x1e26a3[_0x2d7352(0x139)](_0x159045=>_0x159045['skillCode']?.['trim']())[_0x2d7352(0x12c)](_0x22fd0d=>Boolean(_0x22fd0d)),..._0x324871['map'](_0x545b6f=>_0x545b6f[_0x2d7352(0x12d)]?.[_0x2d7352(0x142)]())['filter'](_0x54a4e8=>Boolean(_0x54a4e8))]),_0xdbf9bd=_0x4ce14e[_0x2d7352(0x142)]()?[_0x4ce14e[_0x2d7352(0x142)]()]:undefined,_0x467aea=_0x172879['length']===0x2&&_0x172879['includes'](_0x2d7352(0x122))&&_0x172879[_0x2d7352(0x137)]('company'),_0x419a25=_0x467aea?_0x2b5f3a(_0x1e0f1a[_0x2d7352(0x144)],_0x6cf76d,{},_0xdbf9bd):[],_0x3f1b3c=_0x4d0578({'env':_0x2a0f2b,'accessKey':_0x2b67b2,'appCode':_0x1e0f1a['appCode'],'activeSkillCodes':_0x6cf76d,'pruneSkillCodes':_0xdbf9bd,'scopes':_0x172879}),_0x5c5fbd=[];for(const _0x3d2de3 of _0x1e26a3){_0x5c5fbd[_0x2d7352(0x129)](_0x152f55(_0x3d2de3,_0x2d7352(0x122),{'env':_0x2a0f2b,'accessKey':_0x2b67b2,'appCode':_0x1e0f1a['appCode'],'packageBytes':await downloadSkillPackage(_0x3d2de3,'personal',_0x1e0f1a[_0x2d7352(0x144)],_0x23f43c)}));}for(const _0x272299 of _0x324871){_0x5c5fbd[_0x2d7352(0x129)](_0x152f55(_0x272299,_0x2d7352(0x13a),{'env':_0x2a0f2b,'accessKey':_0x2b67b2,'appCode':_0x1e0f1a[_0x2d7352(0x144)],'packageBytes':await downloadSkillPackage(_0x272299,_0x2d7352(0x13a),_0x1e0f1a[_0x2d7352(0x144)],_0x23f43c)}));}const _0x56a3f9=_0x1db592(_0x5c5fbd,_0x1e0f1a['appCode']),_0xc692a7=countLinkActions(_0x56a3f9);return{'ok':!![],'data':{'appCode':_0x1e0f1a[_0x2d7352(0x144)],'personal':_0x1e26a3['length'],'company':_0x324871[_0x2d7352(0x132)],'materialized':_0x5c5fbd['length'],'links':{'total':_0x56a3f9[_0x2d7352(0x132)],'created':_0xc692a7[_0x2d7352(0x12f)]??0x0,'updated':_0xc692a7[_0x2d7352(0x126)]??0x0,'unchanged':_0xc692a7[_0x2d7352(0x13b)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x419a25[_0x2d7352(0x12c)](_0x19ec64=>_0x19ec64[_0x2d7352(0x12a)]===_0x2d7352(0x125))[_0x2d7352(0x132)],'cacheDirs':_0x3f1b3c[_0x2d7352(0x12c)](_0x4dd348=>_0x4dd348[_0x2d7352(0x12a)]===_0x2d7352(0x125))[_0x2d7352(0x132)],'skipped':[..._0x419a25,..._0x3f1b3c][_0x2d7352(0x12c)](_0x2bda49=>_0x2bda49[_0x2d7352(0x12a)]==='skipped')['length']},'skills':{'personal':_0x1e26a3['map'](summarizeRuntimeSkill),'company':_0x324871[_0x2d7352(0x139)](summarizeRuntimeSkill)}},'message':_0x2d7352(0x140)+_0x1e26a3[_0x2d7352(0x132)]+_0x2d7352(0x123)+_0x324871[_0x2d7352(0x132)]+_0x2d7352(0x133)};}async function downloadSkillPackage(_0x345fd2,_0x3ce280,_0x4f60fd,_0x451b9a){const _0x23e0c4=a39_0x3d6080,_0x272146=_0x345fd2[_0x23e0c4(0x143)]?.['trim']();return _0x272146?_0x451b9a(_0x3ce280,_0x345fd2[_0x23e0c4(0x12d)],_0x4f60fd,_0x272146):_0x451b9a(_0x3ce280,_0x345fd2[_0x23e0c4(0x12d)],_0x4f60fd);}function countLinkActions(_0x454ba8){const _0x168c6e=a39_0x3d6080;return _0x454ba8[_0x168c6e(0x13f)]((_0x52f9fc,_0x8fd33)=>{const _0x148795=_0x168c6e;return _0x52f9fc[_0x8fd33[_0x148795(0x12a)]]=(_0x52f9fc[_0x8fd33['action']]??0x0)+0x1,_0x52f9fc;},{});}
|