@lovrabet/lovrabet-cli 2.1.23-beta.2 → 2.1.23-beta.3
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/artifact/index.js +1 -1
- package/lib/commands/auth/device.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/common/local-file.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/file/index.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/ocr/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.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/diagram.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/diagram.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-execute.js +1 -1
- package/lib/commands/skill/push-flow-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.d.ts +14 -0
- 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/rate-limit.js +1 -1
- package/lib/framework/raw-flags.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.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/npx-skills-add.d.ts +30 -0
- 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/install-target.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/skills/skill-presence.d.ts +48 -0
- package/lib/skills/skill-presence.js +1 -0
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.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
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x8df488,_0x3b141f){const _0x105b46=a39_0x414e,_0x5bb71e=_0x8df488();while(!![]){try{const _0x507db7=parseInt(_0x105b46(0x1b0))/0x1+parseInt(_0x105b46(0x1eb))/0x2+-parseInt(_0x105b46(0x1ed))/0x3*(parseInt(_0x105b46(0x1e7))/0x4)+-parseInt(_0x105b46(0x1cf))/0x5+parseInt(_0x105b46(0x207))/0x6*(-parseInt(_0x105b46(0x1e5))/0x7)+-parseInt(_0x105b46(0x1f5))/0x8+parseInt(_0x105b46(0x1e0))/0x9*(parseInt(_0x105b46(0x1ce))/0xa);if(_0x507db7===_0x3b141f)break;else _0x5bb71e['push'](_0x5bb71e['shift']());}catch(_0x3a9282){_0x5bb71e['push'](_0x5bb71e['shift']());}}}(a39_0x3d0e,0x6a7c3));function a39_0x414e(_0xdcec69,_0x446358){_0xdcec69=_0xdcec69-0x1aa;const _0x3d0e3e=a39_0x3d0e();let _0x414e72=_0x3d0e3e[_0xdcec69];return _0x414e72;}import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';function a39_0x3d0e(){const _0x139d50=['filter','tenantCode','find','userName','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','padEnd','bffCode','env','180SzHGye','2171030ZcrxsQ','entries','sql','scriptName','high-risk-write','command','description','data','SERVICE_TREE','const','join','username','sqlCode','bffId','source','fromEntries','length','946395wvZINB','bff','envName','flags','json','1099hnaDMB','default','444LfZxgJ','commands','Preview\x20dynamic\x20service\x20command:\x20','service','1067614nEbhVF','string','16521qJJqQP','map','Service\x20command\x20','该命令被清单标记为写入,可能修改业务数据或服务状态。','`\x20to\x20inspect\x20the\x20manifest.','nickName','\x20\x20\x20\x20datasetCode:\x20','\x20->\x20','5121216lXwOUY','risk','normalizedManifest','mapTo','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','tree','userId','datatable','now','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','target','rawFlags','boolean','type','number','appRef','push','context.','12006DwiwgL','kind','appCode','nickname','slice','Use\x20`','\x20\x20\x20\x20sqlCode:\x20','name','\x20\x20MAP\x20TO','args','params','9358nrKqdB','\x20\x20\x20\x20','Run\x20service\x20command\x20','validation','\x20\x20\x20\x20functionName:\x20','read','app','some','appcode','flatMap','fullPath','\x20\x20\x20\x20command:\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','datasetCode','cliPath','code','startsWith','remainingArgs','operator','cliName','\x20\x20SERVICE\x20TREE\x20TARGET'];a39_0x3d0e=function(){return _0x139d50;};return a39_0x3d0e();}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(_0x327f1c,_0x355364){const _0x3ac9ed=a39_0x414e,_0x3556cc=listLocalServiceTrees();let _0x542754;for(const _0x200412 of _0x3556cc){const _0x482bb2=matchServiceTreeCommand(_0x200412,_0x327f1c);if(!_0x482bb2)continue;(!_0x542754||_0x482bb2[_0x3ac9ed(0x1d4)]['fullPath'][_0x3ac9ed(0x1df)]>_0x542754[_0x3ac9ed(0x1d4)][_0x3ac9ed(0x1ba)]['length'])&&(_0x542754={'tree':_0x200412,'command':_0x482bb2[_0x3ac9ed(0x1d4)],'remainingArgs':_0x482bb2[_0x3ac9ed(0x1c1)]});}if(!_0x542754)return undefined;const _0x50f74e={..._0x355364};return applyAppBinding(_0x542754['tree'],_0x542754[_0x3ac9ed(0x1d4)],_0x50f74e),{'definition':buildDynamicCommandDefinition(_0x542754[_0x3ac9ed(0x1fa)],_0x542754[_0x3ac9ed(0x1d4)]),'args':_0x542754[_0x3ac9ed(0x1c1)],'flags':_0x50f74e,'tree':_0x542754['tree'],'command':_0x542754[_0x3ac9ed(0x1d4)]};}export function generateDynamicServiceHelp(_0x1c45d7){const _0xbb6dab=a39_0x414e,_0x2fa1f6=listLocalServiceTrees()['find'](_0x35a714=>_0x35a714[_0xbb6dab(0x1ea)][_0xbb6dab(0x1bf)]===_0x1c45d7);if(!_0x2fa1f6)return undefined;const _0x2cb6ba=[CLI_BIN_NAME+'\x20'+_0x1c45d7+'\x20<command>\x20[flags]','',_0x2fa1f6['service'][_0xbb6dab(0x1ac)]||_0x1c45d7,_0x2fa1f6['service'][_0xbb6dab(0x1d5)]?'\x20\x20'+_0x2fa1f6['service']['description']:'','','Commands:',..._0x2fa1f6[_0xbb6dab(0x1e8)]['map'](_0x1b66b8=>{const _0x128ae7=_0xbb6dab,_0x410900=_0x1b66b8[_0x128ae7(0x1ba)][_0x128ae7(0x20b)](0x1)[_0x128ae7(0x1d9)]('\x20'),_0x544ac0=_0x1b66b8['risk']===_0x128ae7(0x1b5)?'':'\x20['+_0x1b66b8[_0x128ae7(0x1f6)]+']';return'\x20\x20'+_0x410900[_0x128ae7(0x1cb)](0x18)+'\x20'+(_0x1b66b8[_0x128ae7(0x1d5)]||'')+_0x544ac0;}),'',_0xbb6dab(0x1aa)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x1c45d7+_0xbb6dab(0x1f1)][_0xbb6dab(0x1c5)](Boolean);return _0x2cb6ba[_0xbb6dab(0x1d9)]('\x0a');}export function listDynamicServiceEntries(){const _0x13c577=a39_0x414e;return listLocalServices()[_0x13c577(0x1ee)](_0xebe951=>{const _0x263840=_0x13c577,_0x5920fa=_0xebe951[_0x263840(0x1f7)];return{'service':_0x5920fa[_0x263840(0x1ea)][_0x263840(0x1bf)],'label':_0x5920fa['service'][_0x263840(0x1ac)]||_0x5920fa[_0x263840(0x1ea)][_0x263840(0x1bf)],'commands':_0x5920fa['commands'][_0x263840(0x1ee)](_0x1bcabd=>({'command':dynamicCommandName(_0x1bcabd),'description':_0x1bcabd['description']||'Run\x20service\x20command\x20'+_0x1bcabd[_0x263840(0x1be)],'tag':riskTag(_0x1bcabd[_0x263840(0x1f6)])}))};});}export function getDynamicServiceEntry(_0x42cfb3){const _0x18c7c2=a39_0x414e;return listDynamicServiceEntries()[_0x18c7c2(0x1c7)](_0xe0a25d=>_0xe0a25d[_0x18c7c2(0x1ea)]===_0x42cfb3);}export function listDynamicServiceDefinitions(_0x3d07b8){const _0x30c22f=a39_0x414e;return listLocalServiceTrees()['filter'](_0x5b83b9=>!_0x3d07b8||_0x5b83b9[_0x30c22f(0x1ea)]['code']===_0x3d07b8)[_0x30c22f(0x1b9)](_0xb8768d=>_0xb8768d['commands']['map'](_0x4f076e=>buildDynamicCommandDefinition(_0xb8768d,_0x4f076e)));}export function getDynamicServiceDefinitions(_0x350e4c){const _0x30863c=a39_0x414e,_0x42c8b2=listDynamicServiceDefinitions(_0x350e4c);return _0x42c8b2[_0x30863c(0x1df)]>0x0?_0x42c8b2:undefined;}export function findDynamicServiceDefinition(_0x1e2201,_0x3eecbb){const _0x4a0a7c=a39_0x414e;return listDynamicServiceDefinitions(_0x1e2201)['find'](_0x5145eb=>_0x5145eb[_0x4a0a7c(0x1d4)]===_0x3eecbb);}export function buildDynamicCommandDefinition(_0x552810,_0x37db4d){const _0x361401=a39_0x414e;return{'service':_0x552810[_0x361401(0x1ea)][_0x361401(0x1bf)],'command':dynamicCommandName(_0x37db4d),'description':_0x37db4d[_0x361401(0x1d5)]||_0x361401(0x1b2)+_0x37db4d[_0x361401(0x1be)],'risk':_0x37db4d['risk'],..._0x37db4d[_0x361401(0x1f6)]===_0x361401(0x1b5)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x37db4d)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x37db4d[_0x361401(0x1ae)][_0x361401(0x1ee)](_0x304be5=>({'name':_0x304be5[_0x361401(0x1ac)],'description':_0x304be5[_0x361401(0x1d5)]||_0x304be5['name'],'required':_0x304be5['required']})),'flags':_0x37db4d[_0x361401(0x1e3)][_0x361401(0x1ee)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x37db4d),async 'dryRun'(_0x35c2a3){const _0x5352f7=_0x361401,_0x22d9a2=await compilePlan(_0x37db4d,_0x35c2a3);return{'method':_0x5352f7(0x1d7),'url':_0x37db4d[_0x5352f7(0x1be)],'body':{'target':targetPreview(_0x22d9a2),'params':_0x22d9a2[_0x5352f7(0x1af)]},'description':_0x5352f7(0x1e9)+_0x37db4d[_0x5352f7(0x1be)]};},async 'execute'(_0x2c8e71){const _0x272ac0=_0x361401,_0x22194b=await compilePlan(_0x37db4d,_0x2c8e71),_0x214439=Date[_0x272ac0(0x1fd)](),_0x2d3eb5=await executePlan(_0x22194b,_0x37db4d,_0x2c8e71),_0x299c99=Date[_0x272ac0(0x1fd)]()-_0x214439;return{'ok':!![],'data':{'service':_0x552810[_0x272ac0(0x1ea)],'command':_0x37db4d[_0x272ac0(0x1be)],'target':targetPreview(_0x22194b),'result':_0x2d3eb5,'elapsed':_0x299c99},'message':_0x272ac0(0x1ef)+_0x37db4d[_0x272ac0(0x1be)]+'\x20completed\x20in\x20'+_0x299c99+'ms'};}};}function buildDynamicConfirmationDescription(_0x2d13b8){const _0x2af84c=a39_0x414e,_0xec9508=_0x2d13b8[_0x2af84c(0x1d5)]||_0x2d13b8[_0x2af84c(0x1be)],_0x14b1f0=_0x2d13b8[_0x2af84c(0x1f6)]===_0x2af84c(0x1d3)?_0x2af84c(0x1fe):_0x2af84c(0x1f0);return'将通过\x20Service\x20Tree\x20执行“'+_0xec9508+'”。'+_0x14b1f0;}function dynamicCommandName(_0x10840a){const _0x4e80ec=a39_0x414e;return _0x10840a[_0x4e80ec(0x1ba)][_0x4e80ec(0x20b)](0x1)['join']('\x20');}function riskTag(_0x3c7281){const _0x457dd5=a39_0x414e;return _0x3c7281===_0x457dd5(0x1b5)?'':'\x20\x20['+_0x3c7281+']';}function flagToCommandFlag(_0x2451c0){const _0x716039=a39_0x414e;return{'name':_0x2451c0[_0x716039(0x1c3)],'type':_0x2451c0[_0x716039(0x202)]===_0x716039(0x1e4)?_0x716039(0x1ec):_0x2451c0[_0x716039(0x202)],'description':_0x2451c0[_0x716039(0x1d5)]||_0x2451c0[_0x716039(0x1ac)],'required':_0x2451c0['required'],'default':isPrimitiveFlagDefault(_0x2451c0[_0x716039(0x1e6)])?_0x2451c0['default']:undefined,'enum':_0x2451c0['enum']};}async function compilePlan(_0x52c26c,_0x48f691){const _0x5ce31d=a39_0x414e;return compileServiceTreeCommand(_0x52c26c,{'flags':_0x48f691[_0x5ce31d(0x200)],'args':_0x48f691['args'],'context':await buildServiceContext(_0x52c26c,_0x48f691)});}async function buildServiceContext(_0x14fcdd,_0x4973bd){const _0x54008e=a39_0x414e,_0xed3c6={'appCode':_0x4973bd['appCode'],'env':_0x4973bd[_0x54008e(0x1e2)],'envName':_0x4973bd['envName']};if(!usesRuntimeContext(_0x14fcdd))return _0xed3c6;const _0x6fca98=await getLoginUserInfo(),_0x24843c=pickFirst(_0x6fca98[_0x54008e(0x1fb)],_0x6fca98['id']);return{..._0xed3c6,'user':_0x6fca98,'userId':_0x24843c,'id':_0x6fca98['id'],'username':pickFirst(_0x6fca98[_0x54008e(0x1da)],_0x6fca98[_0x54008e(0x1c8)],_0x6fca98['loginName']),'userName':_0x6fca98[_0x54008e(0x1c8)],'nickname':pickFirst(_0x6fca98[_0x54008e(0x20a)],_0x6fca98['nickName']),'nickName':_0x6fca98[_0x54008e(0x1f2)],'tenantCode':_0x6fca98[_0x54008e(0x1c6)],'employeeId':_0x6fca98['employeeId']};}function usesRuntimeContext(_0x167e02){const _0x2f17c3=a39_0x414e;return _0x167e02[_0x2f17c3(0x1f8)][_0x2f17c3(0x1b7)](_0x3acac9=>typeof _0x3acac9['source']==='string'&&(_0x3acac9[_0x2f17c3(0x1dd)][_0x2f17c3(0x1c0)](_0x2f17c3(0x206))||_0x3acac9[_0x2f17c3(0x1dd)][_0x2f17c3(0x1c0)]('ctx.')));}function pickFirst(..._0x381266){return _0x381266['find'](_0x5bb5ac=>_0x5bb5ac!==undefined&&_0x5bb5ac!==null);}async function executePlan(_0x9c5276,_0xe95598,_0x41a23b){const _0x17d2cc=a39_0x414e;if(_0x9c5276['kind']===_0x17d2cc(0x1d6)){const _0xcd6f5d=await resolveDatasetCode(_0x9c5276,_0xe95598,_0x41a23b);return executeData(_0xcd6f5d,_0x9c5276['command'],_0x9c5276['params']);}if(_0x9c5276[_0x17d2cc(0x208)]===_0x17d2cc(0x1d1)){if(!_0x9c5276[_0x17d2cc(0x1db)])throw CliErrors[_0x17d2cc(0x1b3)]('Service\x20command\x20'+_0xe95598[_0x17d2cc(0x1be)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x9c5276[_0x17d2cc(0x1db)],normalizeScalarParams(_0x9c5276['params']));}if(_0x9c5276[_0x17d2cc(0x208)]===_0x17d2cc(0x1e1)){const _0x1c0751=_0x9c5276['scriptName']||_0x9c5276[_0x17d2cc(0x1cc)]||(_0x9c5276[_0x17d2cc(0x1dc)]==null?'':String(_0x9c5276['bffId']));if(!_0x1c0751)throw CliErrors[_0x17d2cc(0x1b3)](_0x17d2cc(0x1ef)+_0xe95598['cliPath']+'\x20requires\x20target.functionName.');return executeSdkBff(_0x1c0751,_0x9c5276[_0x17d2cc(0x1af)]);}throw CliErrors[_0x17d2cc(0x1b3)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x9c5276[_0x17d2cc(0x208)]);}async function resolveDatasetCode(_0x5372ba,_0x285718,_0x19515a){const _0x3a76bc=a39_0x414e;if(_0x5372ba['datasetCode'])return _0x5372ba['datasetCode'];if(!_0x5372ba[_0x3a76bc(0x1fc)])throw CliErrors[_0x3a76bc(0x1b3)](_0x3a76bc(0x1ef)+_0x285718[_0x3a76bc(0x1be)]+_0x3a76bc(0x1c9));const _0x36d632=await listDatasets(_0x19515a[_0x3a76bc(0x209)]),_0x167718=_0x36d632[_0x3a76bc(0x1c7)](_0x14361d=>_0x14361d['dbtableConfig']?.['tableName']===_0x5372ba[_0x3a76bc(0x1fc)]);if(!_0x167718?.[_0x3a76bc(0x1bf)])throw CliErrors[_0x3a76bc(0x1b3)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x5372ba[_0x3a76bc(0x1fc)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x19515a[_0x3a76bc(0x209)]+'.',_0x3a76bc(0x1f9));return _0x167718['code'];}function applyAppBinding(_0x6f1db3,_0x4fecae,_0x4f6ec3){const _0x46826c=a39_0x414e,_0x39381c=_0x4fecae['target'][_0x46826c(0x204)];if(!_0x39381c)return;const _0x27a074=_0x6f1db3['appBindings'][_0x39381c];if(!_0x27a074)throw CliErrors[_0x46826c(0x1b3)]('Unknown\x20appRef\x20\x22'+_0x39381c+'\x22\x20in\x20service\x20command\x20'+_0x4fecae[_0x46826c(0x1be)]+'.',_0x46826c(0x1ca));const _0xcdd628=_0x27a074[_0x46826c(0x1b8)]||_0x27a074[_0x46826c(0x209)];_0xcdd628&&!hasText(_0x4f6ec3[_0x46826c(0x1b8)])&&(_0x4f6ec3[_0x46826c(0x1b8)]=_0xcdd628),_0x27a074[_0x46826c(0x1b6)]&&!hasText(_0x4f6ec3[_0x46826c(0x1b6)])&&!hasText(_0x4f6ec3['appcode'])&&(_0x4f6ec3['app']=_0x27a074[_0x46826c(0x1b6)]),_0x27a074[_0x46826c(0x1cd)]&&!hasText(_0x4f6ec3['env'])&&(_0x4f6ec3['env']=_0x27a074[_0x46826c(0x1cd)]);}function renderDynamicCommandHelp(_0x2d51bd){const _0x4ea79f=a39_0x414e,_0x7d8a3d=[_0x4ea79f(0x1c4),_0x4ea79f(0x1bc)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x208)],_0x4ea79f(0x1bb)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1d4)]];if(_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1bd)])_0x7d8a3d[_0x4ea79f(0x205)](_0x4ea79f(0x1f3)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1bd)]);if(_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1fc)])_0x7d8a3d[_0x4ea79f(0x205)]('\x20\x20\x20\x20datatable:\x20'+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1fc)]);if(_0x2d51bd['target'][_0x4ea79f(0x1db)])_0x7d8a3d[_0x4ea79f(0x205)](_0x4ea79f(0x1ab)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1db)]);if(_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1d2)])_0x7d8a3d[_0x4ea79f(0x205)](_0x4ea79f(0x1b4)+_0x2d51bd[_0x4ea79f(0x1ff)]['scriptName']);if(_0x2d51bd[_0x4ea79f(0x1f8)][_0x4ea79f(0x1df)]>0x0){_0x7d8a3d[_0x4ea79f(0x205)]('',_0x4ea79f(0x1ad));for(const _0x27a14c of _0x2d51bd[_0x4ea79f(0x1f8)]){_0x7d8a3d['push'](_0x4ea79f(0x1b1)+(_0x27a14c[_0x4ea79f(0x1dd)]||_0x4ea79f(0x1d8))+_0x4ea79f(0x1f4)+_0x27a14c[_0x4ea79f(0x1ff)]+(_0x27a14c[_0x4ea79f(0x1c2)]?'.'+_0x27a14c[_0x4ea79f(0x1c2)]:''));}}return _0x7d8a3d[_0x4ea79f(0x1d9)]('\x0a');}function targetPreview(_0x174faf){const _0x22da90=a39_0x414e;return{'kind':_0x174faf[_0x22da90(0x208)],'command':_0x174faf[_0x22da90(0x1d4)],'appRef':_0x174faf[_0x22da90(0x204)],'datasetCode':_0x174faf['datasetCode'],'datatable':_0x174faf[_0x22da90(0x1fc)],'sqlCode':_0x174faf['sqlCode'],'bffCode':_0x174faf[_0x22da90(0x1cc)],'bffId':_0x174faf[_0x22da90(0x1dc)],'functionName':_0x174faf[_0x22da90(0x1d2)]};}function normalizeScalarParams(_0x2b1031){const _0x5ccb55=a39_0x414e;return Object[_0x5ccb55(0x1de)](Object[_0x5ccb55(0x1d0)](_0x2b1031)[_0x5ccb55(0x1c5)](([,_0x41661e])=>typeof _0x41661e===_0x5ccb55(0x1ec)||typeof _0x41661e===_0x5ccb55(0x203)));}function hasText(_0x25de85){const _0x2660f6=a39_0x414e;return typeof _0x25de85===_0x2660f6(0x1ec)&&_0x25de85['trim']()[_0x2660f6(0x1df)]>0x0;}function isPrimitiveFlagDefault(_0x20f34e){const _0x32fe9b=a39_0x414e;return _0x20f34e===undefined||typeof _0x20f34e==='string'||typeof _0x20f34e===_0x32fe9b(0x203)||typeof _0x20f34e===_0x32fe9b(0x201);}
|
|
1
|
+
(function(_0x379f9e,_0x59d6cf){const _0x562d0b=a39_0x1bc4,_0x227606=_0x379f9e();while(!![]){try{const _0x66b74=-parseInt(_0x562d0b(0x1ba))/0x1*(-parseInt(_0x562d0b(0x1d8))/0x2)+parseInt(_0x562d0b(0x185))/0x3+-parseInt(_0x562d0b(0x1ca))/0x4+-parseInt(_0x562d0b(0x1c9))/0x5+-parseInt(_0x562d0b(0x1e1))/0x6+-parseInt(_0x562d0b(0x1ae))/0x7*(-parseInt(_0x562d0b(0x199))/0x8)+-parseInt(_0x562d0b(0x1dc))/0x9*(-parseInt(_0x562d0b(0x1ad))/0xa);if(_0x66b74===_0x59d6cf)break;else _0x227606['push'](_0x227606['shift']());}catch(_0x7f5456){_0x227606['push'](_0x227606['shift']());}}}(a39_0x217a,0xe30d9));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 a39_0x217a(){const _0x1c6d51=['read','cliPath','context.','\x20\x20SERVICE\x20TREE\x20TARGET','join','default','code','scriptName','high-risk-write','args','startsWith','\x20\x20[','sql','7140zsMIJQ','35SzoZse','some','datatable','\x20\x20\x20\x20sqlCode:\x20','tree','dbtableConfig','fromEntries','find','app','\x22\x20in\x20service\x20command\x20','required','\x20\x20MAP\x20TO','15821dElSEi','filter','json','remainingArgs','now','appcode','name','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','service','\x20requires\x20target.functionName.','\x20requires\x20target.sqlCode.','params','\x20\x20\x20\x20datasetCode:\x20','validation','\x20->\x20','3337460jxyVRE','733332wvjaDb','\x20service\x20detail\x20--service\x20','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','nickName','tenantCode','appCode','enum','bffCode','Commands:','\x20\x20\x20\x20functionName:\x20','target','sqlCode','nickname','Service\x20command\x20','166HBKIif','command','env','appRef','8136ZsaSLq','Unknown\x20appRef\x20\x22','flatMap','Run\x20service\x20command\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','7584078wtMclI','SERVICE_TREE','Use\x20`','\x20<command>\x20[flags]','fullPath','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','rawFlags','commands','operator','flags','number','Cannot\x20resolve\x20datatable\x20\x22','normalizedManifest','username','boolean','risk','employeeId','kind','2393154bTdEzi','string','datasetCode','envName','entries','source','bff','map','push','loginName','将通过\x20Service\x20Tree\x20执行“','type','`\x20to\x20inspect\x20the\x20manifest.','userName','mapTo','tableName','userId','slice','data','bffId','461648uBBXBh','appBindings','description','\x20\x20\x20\x20','cliName','length','\x20\x20\x20\x20kind:\x20\x20\x20\x20'];a39_0x217a=function(){return _0x1c6d51;};return a39_0x217a();}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x3efeca,_0x487ccd){const _0x15825e=a39_0x1bc4,_0x422067=listLocalServiceTrees();let _0x4b4b7c;for(const _0x10f960 of _0x422067){const _0x950a84=matchServiceTreeCommand(_0x10f960,_0x3efeca);if(!_0x950a84)continue;(!_0x4b4b7c||_0x950a84[_0x15825e(0x1d9)][_0x15825e(0x176)][_0x15825e(0x19e)]>_0x4b4b7c[_0x15825e(0x1d9)][_0x15825e(0x176)][_0x15825e(0x19e)])&&(_0x4b4b7c={'tree':_0x10f960,'command':_0x950a84[_0x15825e(0x1d9)],'remainingArgs':_0x950a84[_0x15825e(0x1bd)]});}if(!_0x4b4b7c)return undefined;const _0x214ca6={..._0x487ccd};return applyAppBinding(_0x4b4b7c[_0x15825e(0x1b2)],_0x4b4b7c[_0x15825e(0x1d9)],_0x214ca6),{'definition':buildDynamicCommandDefinition(_0x4b4b7c[_0x15825e(0x1b2)],_0x4b4b7c[_0x15825e(0x1d9)]),'args':_0x4b4b7c[_0x15825e(0x1bd)],'flags':_0x214ca6,'tree':_0x4b4b7c[_0x15825e(0x1b2)],'command':_0x4b4b7c[_0x15825e(0x1d9)]};}export function generateDynamicServiceHelp(_0x129a34){const _0x328c62=a39_0x1bc4,_0x5bc098=listLocalServiceTrees()[_0x328c62(0x1b5)](_0x34425e=>_0x34425e[_0x328c62(0x1c2)][_0x328c62(0x1a6)]===_0x129a34);if(!_0x5bc098)return undefined;const _0x4c6ecf=[CLI_BIN_NAME+'\x20'+_0x129a34+_0x328c62(0x175),'',_0x5bc098['service'][_0x328c62(0x1c0)]||_0x129a34,_0x5bc098[_0x328c62(0x1c2)][_0x328c62(0x19b)]?'\x20\x20'+_0x5bc098['service']['description']:'','',_0x328c62(0x1d2),..._0x5bc098[_0x328c62(0x17a)][_0x328c62(0x18c)](_0x572914=>{const _0x44077e=_0x328c62,_0x3ec1c8=_0x572914[_0x44077e(0x176)]['slice'](0x1)['join']('\x20'),_0x4e67b5=_0x572914['risk']===_0x44077e(0x1a0)?'':'\x20['+_0x572914['risk']+']';return'\x20\x20'+_0x3ec1c8['padEnd'](0x18)+'\x20'+(_0x572914['description']||'')+_0x4e67b5;}),'',_0x328c62(0x174)+CLI_BIN_NAME+_0x328c62(0x1cb)+_0x129a34+_0x328c62(0x191)][_0x328c62(0x1bb)](Boolean);return _0x4c6ecf[_0x328c62(0x1a4)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x5321b0=>{const _0x454e05=a39_0x1bc4,_0x1f3301=_0x5321b0[_0x454e05(0x17f)];return{'service':_0x1f3301[_0x454e05(0x1c2)][_0x454e05(0x1a6)],'label':_0x1f3301['service'][_0x454e05(0x1c0)]||_0x1f3301[_0x454e05(0x1c2)][_0x454e05(0x1a6)],'commands':_0x1f3301[_0x454e05(0x17a)]['map'](_0xc1771b=>({'command':dynamicCommandName(_0xc1771b),'description':_0xc1771b[_0x454e05(0x19b)]||_0x454e05(0x1df)+_0xc1771b[_0x454e05(0x1a1)],'tag':riskTag(_0xc1771b[_0x454e05(0x182)])}))};});}export function getDynamicServiceEntry(_0xdb2d80){const _0x4dac90=a39_0x1bc4;return listDynamicServiceEntries()[_0x4dac90(0x1b5)](_0x2b7c1b=>_0x2b7c1b[_0x4dac90(0x1c2)]===_0xdb2d80);}export function listDynamicServiceDefinitions(_0x593808){const _0x596dd0=a39_0x1bc4;return listLocalServiceTrees()[_0x596dd0(0x1bb)](_0x2c959d=>!_0x593808||_0x2c959d[_0x596dd0(0x1c2)][_0x596dd0(0x1a6)]===_0x593808)[_0x596dd0(0x1de)](_0x21ce8a=>_0x21ce8a[_0x596dd0(0x17a)][_0x596dd0(0x18c)](_0x3975ea=>buildDynamicCommandDefinition(_0x21ce8a,_0x3975ea)));}export function getDynamicServiceDefinitions(_0x557545){const _0x33001e=listDynamicServiceDefinitions(_0x557545);return _0x33001e['length']>0x0?_0x33001e:undefined;}export function findDynamicServiceDefinition(_0x5bb1f1,_0x13fc8e){const _0x1e9cbf=a39_0x1bc4;return listDynamicServiceDefinitions(_0x5bb1f1)[_0x1e9cbf(0x1b5)](_0x1805db=>_0x1805db[_0x1e9cbf(0x1d9)]===_0x13fc8e);}export function buildDynamicCommandDefinition(_0x6caa1a,_0x4b0f9c){const _0x25d24c=a39_0x1bc4;return{'service':_0x6caa1a[_0x25d24c(0x1c2)][_0x25d24c(0x1a6)],'command':dynamicCommandName(_0x4b0f9c),'description':_0x4b0f9c[_0x25d24c(0x19b)]||'Run\x20service\x20command\x20'+_0x4b0f9c['cliPath'],'risk':_0x4b0f9c['risk'],..._0x4b0f9c['risk']===_0x25d24c(0x1a0)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x4b0f9c)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x4b0f9c[_0x25d24c(0x1a9)][_0x25d24c(0x18c)](_0x1b36bb=>({'name':_0x1b36bb['name'],'description':_0x1b36bb[_0x25d24c(0x19b)]||_0x1b36bb[_0x25d24c(0x1c0)],'required':_0x1b36bb[_0x25d24c(0x1b8)]})),'flags':_0x4b0f9c[_0x25d24c(0x17c)][_0x25d24c(0x18c)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x4b0f9c),async 'dryRun'(_0x2b89fb){const _0x346fd2=_0x25d24c,_0x3e8b70=await compilePlan(_0x4b0f9c,_0x2b89fb);return{'method':_0x346fd2(0x173),'url':_0x4b0f9c[_0x346fd2(0x1a1)],'body':{'target':targetPreview(_0x3e8b70),'params':_0x3e8b70[_0x346fd2(0x1c5)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x4b0f9c[_0x346fd2(0x1a1)]};},async 'execute'(_0x5b1e6a){const _0x214fda=_0x25d24c,_0x52d66c=await compilePlan(_0x4b0f9c,_0x5b1e6a),_0x161dc0=Date[_0x214fda(0x1be)](),_0x28ed2b=await executePlan(_0x52d66c,_0x4b0f9c,_0x5b1e6a),_0x519a36=Date[_0x214fda(0x1be)]()-_0x161dc0;return{'ok':!![],'data':{'service':_0x6caa1a[_0x214fda(0x1c2)],'command':_0x4b0f9c[_0x214fda(0x1a1)],'target':targetPreview(_0x52d66c),'result':_0x28ed2b,'elapsed':_0x519a36},'message':_0x214fda(0x1d7)+_0x4b0f9c[_0x214fda(0x1a1)]+'\x20completed\x20in\x20'+_0x519a36+'ms'};}};}function buildDynamicConfirmationDescription(_0x37d8da){const _0x4dfd89=a39_0x1bc4,_0x55dd59=_0x37d8da['description']||_0x37d8da[_0x4dfd89(0x1a1)],_0x29f835=_0x37d8da['risk']===_0x4dfd89(0x1a8)?_0x4dfd89(0x1cc):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return _0x4dfd89(0x18f)+_0x55dd59+'”。'+_0x29f835;}function a39_0x1bc4(_0x18bd15,_0xcecf6e){_0x18bd15=_0x18bd15-0x173;const _0x217a06=a39_0x217a();let _0x1bc4e8=_0x217a06[_0x18bd15];return _0x1bc4e8;}function dynamicCommandName(_0x2fbb36){const _0x3a4707=a39_0x1bc4;return _0x2fbb36[_0x3a4707(0x176)][_0x3a4707(0x196)](0x1)[_0x3a4707(0x1a4)]('\x20');}function riskTag(_0x6d311e){const _0x49f43a=a39_0x1bc4;return _0x6d311e===_0x49f43a(0x1a0)?'':_0x49f43a(0x1ab)+_0x6d311e+']';}function flagToCommandFlag(_0x3d33d0){const _0xbe8a77=a39_0x1bc4;return{'name':_0x3d33d0[_0xbe8a77(0x19d)],'type':_0x3d33d0[_0xbe8a77(0x190)]===_0xbe8a77(0x1bc)?'string':_0x3d33d0[_0xbe8a77(0x190)],'description':_0x3d33d0[_0xbe8a77(0x19b)]||_0x3d33d0[_0xbe8a77(0x1c0)],'required':_0x3d33d0[_0xbe8a77(0x1b8)],'default':isPrimitiveFlagDefault(_0x3d33d0['default'])?_0x3d33d0[_0xbe8a77(0x1a5)]:undefined,'enum':_0x3d33d0[_0xbe8a77(0x1d0)]};}async function compilePlan(_0x3b7ce7,_0x45aa6d){const _0x208cdc=a39_0x1bc4;return compileServiceTreeCommand(_0x3b7ce7,{'flags':_0x45aa6d[_0x208cdc(0x179)],'args':_0x45aa6d[_0x208cdc(0x1a9)],'context':await buildServiceContext(_0x3b7ce7,_0x45aa6d)});}async function buildServiceContext(_0x5de472,_0x11cab6){const _0x2d2ffb=a39_0x1bc4,_0x3f5fd3={'appCode':_0x11cab6[_0x2d2ffb(0x1cf)],'env':_0x11cab6['envName'],'envName':_0x11cab6[_0x2d2ffb(0x188)]};if(!usesRuntimeContext(_0x5de472))return _0x3f5fd3;const _0x2825f4=await getLoginUserInfo(),_0x63f443=pickFirst(_0x2825f4[_0x2d2ffb(0x195)],_0x2825f4['id']);return{..._0x3f5fd3,'user':_0x2825f4,'userId':_0x63f443,'id':_0x2825f4['id'],'username':pickFirst(_0x2825f4[_0x2d2ffb(0x180)],_0x2825f4[_0x2d2ffb(0x192)],_0x2825f4[_0x2d2ffb(0x18e)]),'userName':_0x2825f4[_0x2d2ffb(0x192)],'nickname':pickFirst(_0x2825f4[_0x2d2ffb(0x1d6)],_0x2825f4[_0x2d2ffb(0x1cd)]),'nickName':_0x2825f4[_0x2d2ffb(0x1cd)],'tenantCode':_0x2825f4[_0x2d2ffb(0x1ce)],'employeeId':_0x2825f4[_0x2d2ffb(0x183)]};}function usesRuntimeContext(_0x13a294){const _0x54c278=a39_0x1bc4;return _0x13a294['mapTo'][_0x54c278(0x1af)](_0x20493f=>typeof _0x20493f['source']===_0x54c278(0x186)&&(_0x20493f[_0x54c278(0x18a)]['startsWith'](_0x54c278(0x1a2))||_0x20493f[_0x54c278(0x18a)][_0x54c278(0x1aa)]('ctx.')));}function pickFirst(..._0x185a6f){const _0x2d2fdc=a39_0x1bc4;return _0x185a6f[_0x2d2fdc(0x1b5)](_0x34e781=>_0x34e781!==undefined&&_0x34e781!==null);}async function executePlan(_0x4eabf5,_0x5a38f8,_0x555c21){const _0xa843fb=a39_0x1bc4;if(_0x4eabf5[_0xa843fb(0x184)]===_0xa843fb(0x197)){const _0x1b0eee=await resolveDatasetCode(_0x4eabf5,_0x5a38f8,_0x555c21);return executeData(_0x1b0eee,_0x4eabf5['command'],_0x4eabf5['params']);}if(_0x4eabf5[_0xa843fb(0x184)]===_0xa843fb(0x1ac)){if(!_0x4eabf5[_0xa843fb(0x1d5)])throw CliErrors['validation'](_0xa843fb(0x1d7)+_0x5a38f8[_0xa843fb(0x1a1)]+_0xa843fb(0x1c4));return executeSdkSql(_0x4eabf5[_0xa843fb(0x1d5)],normalizeScalarParams(_0x4eabf5['params']));}if(_0x4eabf5[_0xa843fb(0x184)]===_0xa843fb(0x18b)){const _0x96c081=_0x4eabf5['scriptName']||_0x4eabf5[_0xa843fb(0x1d1)]||(_0x4eabf5[_0xa843fb(0x198)]==null?'':String(_0x4eabf5[_0xa843fb(0x198)]));if(!_0x96c081)throw CliErrors[_0xa843fb(0x1c7)](_0xa843fb(0x1d7)+_0x5a38f8['cliPath']+_0xa843fb(0x1c3));return executeSdkBff(_0x96c081,_0x4eabf5[_0xa843fb(0x1c5)]);}throw CliErrors[_0xa843fb(0x1c7)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x4eabf5[_0xa843fb(0x184)]);}async function resolveDatasetCode(_0x5d4f98,_0x420ecf,_0x21c04b){const _0x540403=a39_0x1bc4;if(_0x5d4f98[_0x540403(0x187)])return _0x5d4f98[_0x540403(0x187)];if(!_0x5d4f98[_0x540403(0x1b0)])throw CliErrors['validation'](_0x540403(0x1d7)+_0x420ecf[_0x540403(0x1a1)]+_0x540403(0x177));const _0x2e3ec5=await listDatasets(_0x21c04b[_0x540403(0x1cf)]),_0x307e4b=_0x2e3ec5['find'](_0x39520e=>_0x39520e[_0x540403(0x1b3)]?.[_0x540403(0x194)]===_0x5d4f98[_0x540403(0x1b0)]);if(!_0x307e4b?.[_0x540403(0x1a6)])throw CliErrors[_0x540403(0x1c7)](_0x540403(0x17e)+_0x5d4f98[_0x540403(0x1b0)]+_0x540403(0x1e0)+_0x21c04b[_0x540403(0x1cf)]+'.',_0x540403(0x178));return _0x307e4b[_0x540403(0x1a6)];}function applyAppBinding(_0x443908,_0x3318ec,_0x253f07){const _0x448671=a39_0x1bc4,_0x18e3eb=_0x3318ec['target'][_0x448671(0x1db)];if(!_0x18e3eb)return;const _0x3d81af=_0x443908[_0x448671(0x19a)][_0x18e3eb];if(!_0x3d81af)throw CliErrors[_0x448671(0x1c7)](_0x448671(0x1dd)+_0x18e3eb+_0x448671(0x1b7)+_0x3318ec[_0x448671(0x1a1)]+'.',_0x448671(0x1c1));const _0x1518fb=_0x3d81af['appcode']||_0x3d81af['appCode'];_0x1518fb&&!hasText(_0x253f07[_0x448671(0x1bf)])&&(_0x253f07[_0x448671(0x1bf)]=_0x1518fb),_0x3d81af[_0x448671(0x1b6)]&&!hasText(_0x253f07[_0x448671(0x1b6)])&&!hasText(_0x253f07[_0x448671(0x1bf)])&&(_0x253f07[_0x448671(0x1b6)]=_0x3d81af['app']),_0x3d81af[_0x448671(0x1da)]&&!hasText(_0x253f07[_0x448671(0x1da)])&&(_0x253f07[_0x448671(0x1da)]=_0x3d81af['env']);}function renderDynamicCommandHelp(_0x4513ec){const _0x173a71=a39_0x1bc4,_0x380e60=[_0x173a71(0x1a3),_0x173a71(0x19f)+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x184)],'\x20\x20\x20\x20command:\x20'+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1d9)]];if(_0x4513ec[_0x173a71(0x1d4)]['datasetCode'])_0x380e60[_0x173a71(0x18d)](_0x173a71(0x1c6)+_0x4513ec[_0x173a71(0x1d4)]['datasetCode']);if(_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1b0)])_0x380e60[_0x173a71(0x18d)]('\x20\x20\x20\x20datatable:\x20'+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1b0)]);if(_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1d5)])_0x380e60['push'](_0x173a71(0x1b1)+_0x4513ec['target'][_0x173a71(0x1d5)]);if(_0x4513ec[_0x173a71(0x1d4)]['scriptName'])_0x380e60['push'](_0x173a71(0x1d3)+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1a7)]);if(_0x4513ec[_0x173a71(0x193)][_0x173a71(0x19e)]>0x0){_0x380e60[_0x173a71(0x18d)]('',_0x173a71(0x1b9));for(const _0x2242d5 of _0x4513ec[_0x173a71(0x193)]){_0x380e60[_0x173a71(0x18d)](_0x173a71(0x19c)+(_0x2242d5[_0x173a71(0x18a)]||'const')+_0x173a71(0x1c8)+_0x2242d5[_0x173a71(0x1d4)]+(_0x2242d5[_0x173a71(0x17b)]?'.'+_0x2242d5[_0x173a71(0x17b)]:''));}}return _0x380e60[_0x173a71(0x1a4)]('\x0a');}function targetPreview(_0xc044a6){const _0x37ed43=a39_0x1bc4;return{'kind':_0xc044a6[_0x37ed43(0x184)],'command':_0xc044a6[_0x37ed43(0x1d9)],'appRef':_0xc044a6['appRef'],'datasetCode':_0xc044a6[_0x37ed43(0x187)],'datatable':_0xc044a6[_0x37ed43(0x1b0)],'sqlCode':_0xc044a6[_0x37ed43(0x1d5)],'bffCode':_0xc044a6[_0x37ed43(0x1d1)],'bffId':_0xc044a6['bffId'],'functionName':_0xc044a6[_0x37ed43(0x1a7)]};}function normalizeScalarParams(_0x3f3ef7){const _0x319bf9=a39_0x1bc4;return Object[_0x319bf9(0x1b4)](Object[_0x319bf9(0x189)](_0x3f3ef7)['filter'](([,_0x2bc810])=>typeof _0x2bc810==='string'||typeof _0x2bc810===_0x319bf9(0x17d)));}function hasText(_0x2b0cff){const _0x340fda=a39_0x1bc4;return typeof _0x2b0cff===_0x340fda(0x186)&&_0x2b0cff['trim']()[_0x340fda(0x19e)]>0x0;}function isPrimitiveFlagDefault(_0x389ae0){const _0x43e105=a39_0x1bc4;return _0x389ae0===undefined||typeof _0x389ae0===_0x43e105(0x186)||typeof _0x389ae0===_0x43e105(0x17d)||typeof _0x389ae0===_0x43e105(0x181);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a40_0x3274(_0x97a71d,_0x9a74a2){_0x97a71d=_0x97a71d-0x138;const _0x3440cb=a40_0x3440();let _0x327422=_0x3440cb[_0x97a71d];return _0x327422;}(function(_0x85ab53,_0x2d35bb){const _0x1c434d=a40_0x3274,_0x5a0ef2=_0x85ab53();while(!![]){try{const _0x230767=-parseInt(_0x1c434d(0x13d))/0x1+parseInt(_0x1c434d(0x14f))/0x2+parseInt(_0x1c434d(0x13c))/0x3+-parseInt(_0x1c434d(0x149))/0x4*(-parseInt(_0x1c434d(0x13a))/0x5)+-parseInt(_0x1c434d(0x13b))/0x6+-parseInt(_0x1c434d(0x141))/0x7+parseInt(_0x1c434d(0x151))/0x8*(parseInt(_0x1c434d(0x154))/0x9);if(_0x230767===_0x2d35bb)break;else _0x5a0ef2['push'](_0x5a0ef2['shift']());}catch(_0x22b42e){_0x5a0ef2['push'](_0x5a0ef2['shift']());}}}(a40_0x3440,0x8e2af));export function adaptServiceTreeManifestForLegacyFramework(_0x34d27c){const _0x4eb1c2=a40_0x3274,_0x49f12e=cloneJsonValue(_0x34d27c),_0x77b367=[];if(!isObjectRecord(_0x49f12e))return{'manifest':_0x49f12e,'errors':_0x77b367};return Array[_0x4eb1c2(0x150)](_0x49f12e[_0x4eb1c2(0x139)])&&_0x49f12e[_0x4eb1c2(0x139)][_0x4eb1c2(0x15a)]((_0x10d423,_0x1be469)=>{const _0x3aaf12=_0x4eb1c2;if(!isObjectRecord(_0x10d423))return;adaptBffTarget(_0x10d423[_0x3aaf12(0x148)],'$.commands['+_0x1be469+_0x3aaf12(0x146),_0x77b367);}),adaptResources(_0x49f12e['resources'],_0x4eb1c2(0x14c),_0x77b367),{'manifest':_0x49f12e,'errors':_0x77b367};}export function toPublicServiceTreeTarget(_0x2538c0){const _0x43304e=a40_0x3274,{scriptName:_0x24b0a2,..._0x5d92ae}=_0x2538c0;return typeof _0x24b0a2==='string'&&_0x24b0a2['trim']()&&(_0x5d92ae[_0x43304e(0x142)]=_0x24b0a2),_0x5d92ae;}export function toPublicNormalizedServiceTree(_0x31398e){const _0xbad412=a40_0x3274;return{..._0x31398e,'commands':_0x31398e[_0xbad412(0x139)][_0xbad412(0x143)](_0xfab9cc=>({..._0xfab9cc,'target':toPublicServiceTreeTarget(_0xfab9cc[_0xbad412(0x148)])}))};}function adaptResources(_0x492491,_0x496dd8,_0x17b208){const _0x437c71=a40_0x3274;if(!isObjectRecord(_0x492491))return;for(const [_0x382445,_0x19b7e8]of Object[_0x437c71(0x15b)](_0x492491)){if(!isObjectRecord(_0x19b7e8))continue;const _0x1be06c=_0x496dd8+'.'+_0x382445;if(isObjectRecord(_0x19b7e8['actions']))for(const [_0x51eb6a,_0x39f6e0]of Object[_0x437c71(0x15b)](_0x19b7e8[_0x437c71(0x156)])){if(!isObjectRecord(_0x39f6e0))continue;const _0x4b9f76=_0x1be06c+_0x437c71(0x138)+_0x51eb6a,_0x405e26=isObjectRecord(_0x39f6e0[_0x437c71(0x148)])&&_0x39f6e0[_0x437c71(0x148)]['kind']==='bff';adaptBffTarget(_0x39f6e0[_0x437c71(0x148)],_0x4b9f76+_0x437c71(0x144),_0x17b208),(_0x405e26||isBffAction(_0x39f6e0))&&adaptFunctionNameField(_0x39f6e0,_0x4b9f76,_0x17b208);}adaptResources(_0x19b7e8['resources'],_0x1be06c+'.resources',_0x17b208);}}function adaptBffTarget(_0x78763a,_0x31f61a,_0x47741d){const _0x1d8147=a40_0x3274;if(!isObjectRecord(_0x78763a)||_0x78763a[_0x1d8147(0x14b)]!==_0x1d8147(0x14d))return;adaptFunctionNameField(_0x78763a,_0x31f61a,_0x47741d);}function adaptFunctionNameField(_0x57c0f5,_0x230f90,_0x44bc36){const _0x3dd276=a40_0x3274;Object[_0x3dd276(0x14a)][_0x3dd276(0x147)][_0x3dd276(0x13e)](_0x57c0f5,_0x3dd276(0x152))&&_0x44bc36['push']({'level':_0x3dd276(0x14e),'path':_0x230f90+_0x3dd276(0x158),'message':_0x3dd276(0x145)});if(Object['prototype'][_0x3dd276(0x147)]['call'](_0x57c0f5,_0x3dd276(0x142))){if(typeof _0x57c0f5[_0x3dd276(0x142)]!==_0x3dd276(0x159)||!_0x57c0f5[_0x3dd276(0x142)]['trim']()){_0x44bc36[_0x3dd276(0x13f)]({'level':_0x3dd276(0x14e),'path':_0x230f90+_0x3dd276(0x155),'message':_0x3dd276(0x153)}),delete _0x57c0f5['functionName'];return;}_0x57c0f5['scriptName']=_0x57c0f5[_0x3dd276(0x142)],delete _0x57c0f5[_0x3dd276(0x142)];}}function isBffAction(_0x2df0a0){const _0x1323b3=a40_0x3274;return _0x2df0a0[_0x1323b3(0x14b)]===_0x1323b3(0x14d)||_0x2df0a0['action']===_0x1323b3(0x140)||_0x2df0a0[_0x1323b3(0x148)]===_0x1323b3(0x140);}function a40_0x3440(){const _0x5ec8b3=['forEach','entries','.actions.','commands','62025OGIWXm','4442760grOEpO','177468SXbEmc','1047184BINtmU','call','push','bff.exec','6138916PeYJhx','functionName','map','.target','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','].target','hasOwnProperty','target','260tsNaua','prototype','kind','$.resources','bff','error','2204644yxfOaN','isArray','136sXXADx','scriptName','functionName\x20must\x20be\x20a\x20non-empty\x20string.','677196UjBXSz','.functionName','actions','fromEntries','.scriptName','string'];a40_0x3440=function(){return _0x5ec8b3;};return a40_0x3440();}function cloneJsonValue(_0x395ac5){const _0x4535c9=a40_0x3274;if(Array[_0x4535c9(0x150)](_0x395ac5))return _0x395ac5[_0x4535c9(0x143)](_0x24dd1a=>cloneJsonValue(_0x24dd1a));if(isObjectRecord(_0x395ac5))return Object[_0x4535c9(0x157)](Object['entries'](_0x395ac5)[_0x4535c9(0x143)](([_0x278e92,_0x2959a1])=>[_0x278e92,cloneJsonValue(_0x2959a1)]));return _0x395ac5;}function isObjectRecord(_0x149b46){return Boolean(_0x149b46)&&typeof _0x149b46==='object'&&!Array['isArray'](_0x149b46);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a41_0x42c04e=a41_0x5270;(function(_0x44ab3f,_0x3c312e){const _0x445e7d=a41_0x5270,_0x4974e8=_0x44ab3f();while(!![]){try{const _0x5a8912=parseInt(_0x445e7d(0x1c6))/0x1*(parseInt(_0x445e7d(0x1de))/0x2)+parseInt(_0x445e7d(0x1af))/0x3*(-parseInt(_0x445e7d(0x1b5))/0x4)+parseInt(_0x445e7d(0x1a3))/0x5+-parseInt(_0x445e7d(0x1ca))/0x6+-parseInt(_0x445e7d(0x1e8))/0x7*(parseInt(_0x445e7d(0x1d0))/0x8)+parseInt(_0x445e7d(0x1ad))/0x9*(-parseInt(_0x445e7d(0x1d4))/0xa)+parseInt(_0x445e7d(0x1ac))/0xb*(parseInt(_0x445e7d(0x1d7))/0xc);if(_0x5a8912===_0x3c312e)break;else _0x4974e8['push'](_0x4974e8['shift']());}catch(_0x3fe5c8){_0x4974e8['push'](_0x4974e8['shift']());}}}(a41_0x3b82,0x6e1b0));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a41_0x5270(_0x7506f5,_0x1bd1c1){_0x7506f5=_0x7506f5-0x19e;const _0x3b82d1=a41_0x3b82();let _0x52707f=_0x3b82d1[_0x7506f5];return _0x52707f;}const FILE_FLAG={'name':a41_0x42c04e(0x1e7),'type':a41_0x42c04e(0x1b8),'required':!![],'description':a41_0x42c04e(0x1d3)},SERVICE_FLAG={'name':a41_0x42c04e(0x1cf),'type':a41_0x42c04e(0x1b8),'required':!![],'description':a41_0x42c04e(0x1b3),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5d820f){const _0x3617d6=a41_0x42c04e;return{'serviceCode':_0x5d820f[_0x3617d6(0x1c8)],'name':_0x5d820f[_0x3617d6(0x1a4)][_0x3617d6(0x1cf)]['name'],'version':_0x5d820f[_0x3617d6(0x1a9)],'importedAt':_0x5d820f[_0x3617d6(0x1a1)],'source':_0x5d820f[_0x3617d6(0x1bc)],'commandCount':_0x5d820f['normalizedManifest'][_0x3617d6(0x1b1)][_0x3617d6(0x1da)],'commands':_0x5d820f[_0x3617d6(0x1a4)]['commands']['map'](_0x172852=>({'path':_0x172852['cliPath'],'description':_0x172852['description'],'risk':_0x172852[_0x3617d6(0x1b9)],'target':toPublicServiceTreeTarget(_0x172852[_0x3617d6(0x1dd)]),'flags':_0x172852[_0x3617d6(0x1a5)][_0x3617d6(0x1c0)](_0x244e75=>({'name':_0x244e75['name'],'cliName':_0x244e75[_0x3617d6(0x1d5)],'type':_0x244e75[_0x3617d6(0x1d2)],'required':_0x244e75['required']===!![]}))}))};}function a41_0x3b82(){const _0x4d3060=['detail','12pardHO','replaced','kind','length','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','warnings','target','459686IZjlJB','entry','validate','read','errors','export','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','\x20service\x20','\x20service(s),\x20updated\x20','file','126lPfbul','registryServiceCode','filePath','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','Service\x20manifest\x20validation\x20passed.','importedAt','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','4032240uArmJF','normalizedManifest','flags','Imported','str','WRITE','version','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Imported\x20','5450478koylvw','63iYPHNi','registryPath','222918vcYUCY','hash','commands','updated','Local\x20service\x20code,\x20for\x20example\x20crm','Exported\x20service\x20','8jxQVyO','reduce','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','string','risk','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','manifests','source','report','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','manifest','map','remove','serviceCount','imported','将\x20Service\x20Tree\x20清单导入本地运行态注册表','Local\x20service\x20not\x20found:\x20','3FziIAb','registry','serviceCode','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','3947706ojKiGq','从本地运行态注册表移除\x20Service\x20Tree\x20清单','Service\x20registry\x20validation\x20passed.','write','entries','service','277224vzhyyz','import','type','Service\x20Tree\x20manifest\x20file\x20path','157380eHTSdL','cliName'];a41_0x3b82=function(){return _0x4d3060;};return a41_0x3b82();}function summarizeLoadedManifest(_0x20e29c){const _0x26d8b7=a41_0x42c04e;return{'service':_0x20e29c[_0x26d8b7(0x1a4)]?.[_0x26d8b7(0x1cf)],'version':_0x20e29c[_0x26d8b7(0x1a4)]?.[_0x26d8b7(0x1a9)],'commandCount':_0x20e29c['normalizedManifest']?.['commands']['length']??0x0,'commands':_0x20e29c[_0x26d8b7(0x1a4)]?.['commands'][_0x26d8b7(0x1c0)](_0x22aded=>({'path':_0x22aded['cliPath'],'risk':_0x22aded[_0x26d8b7(0x1b9)],'target':toPublicServiceTreeTarget(_0x22aded['target'])}))??[],'registryIndex':_0x20e29c['registryIndex'],'registryServiceCode':_0x20e29c[_0x26d8b7(0x1e9)],'errors':_0x20e29c[_0x26d8b7(0x1bd)][_0x26d8b7(0x1e2)],'warnings':_0x20e29c[_0x26d8b7(0x1bd)][_0x26d8b7(0x1dc)]};}export const serviceDefinitions=[{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1e0),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x42c04e(0x1e1),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x4a8d10){const _0x315571=a41_0x42c04e,_0x22db9c=loadServiceManifestFromFile(_0x4a8d10[_0x315571(0x1a7)](_0x315571(0x1e7)));if(!_0x22db9c[_0x315571(0x1bd)]['ok'])return{'ok':![],'data':{'file':_0x22db9c[_0x315571(0x19e)],'hash':_0x22db9c['hash'],'kind':_0x22db9c[_0x315571(0x1d9)],'serviceCount':_0x22db9c['manifests'][_0x315571(0x1da)],'services':_0x22db9c['manifests'][_0x315571(0x1c0)](summarizeLoadedManifest),'errors':_0x22db9c[_0x315571(0x1bd)][_0x315571(0x1e2)],'warnings':_0x22db9c['report'][_0x315571(0x1dc)]},'message':formatValidationFailure(_0x22db9c[_0x315571(0x1bd)])};if(_0x22db9c[_0x315571(0x1d9)]===_0x315571(0x1c7)||_0x22db9c['manifests'][_0x315571(0x1da)]!==0x1)return{'ok':!![],'data':{'file':_0x22db9c[_0x315571(0x19e)],'hash':_0x22db9c[_0x315571(0x1b0)],'kind':_0x22db9c[_0x315571(0x1d9)],'serviceCount':_0x22db9c[_0x315571(0x1bb)][_0x315571(0x1da)],'commandCount':_0x22db9c[_0x315571(0x1bb)][_0x315571(0x1b6)]((_0x356474,_0x11c0b0)=>_0x356474+(_0x11c0b0[_0x315571(0x1a4)]?.['commands'][_0x315571(0x1da)]??0x0),0x0),'services':_0x22db9c['manifests'][_0x315571(0x1c0)](summarizeLoadedManifest),'warnings':_0x22db9c[_0x315571(0x1bd)][_0x315571(0x1dc)]},'message':_0x315571(0x1cc)};return{'ok':!![],'data':{'file':_0x22db9c['filePath'],'hash':_0x22db9c['hash'],'kind':_0x22db9c[_0x315571(0x1d9)],'service':_0x22db9c[_0x315571(0x1a4)]?.[_0x315571(0x1cf)],'version':_0x22db9c['normalizedManifest']?.['version'],'commandCount':_0x22db9c[_0x315571(0x1a4)]?.[_0x315571(0x1b1)][_0x315571(0x1da)]??0x0,'commands':_0x22db9c[_0x315571(0x1a4)]?.[_0x315571(0x1b1)][_0x315571(0x1c0)](_0x178e89=>({'path':_0x178e89['cliPath'],'risk':_0x178e89['risk'],'target':toPublicServiceTreeTarget(_0x178e89[_0x315571(0x1dd)])})),'warnings':_0x22db9c[_0x315571(0x1bd)]['warnings']},'message':_0x315571(0x1a0)};}},{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1d1),'description':a41_0x42c04e(0x1c4),'risk':a41_0x42c04e(0x1cd),'confirmationDescription':a41_0x42c04e(0x1b7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0xbbeb07){const _0x2d6f55=a41_0x42c04e,_0x1ba5d0=loadServiceManifestFromFile(_0xbbeb07[_0x2d6f55(0x1a7)](_0x2d6f55(0x1e7)));return{'method':_0x2d6f55(0x1a8),'url':getServiceRegistryPath(),'body':{'file':_0x1ba5d0[_0x2d6f55(0x19e)],'hash':_0x1ba5d0[_0x2d6f55(0x1b0)],'kind':_0x1ba5d0['kind'],'ok':_0x1ba5d0['report']['ok'],'service':_0x1ba5d0[_0x2d6f55(0x1a4)]?.['service'],'version':_0x1ba5d0[_0x2d6f55(0x1a4)]?.[_0x2d6f55(0x1a9)],'serviceCount':_0x1ba5d0['manifests'][_0x2d6f55(0x1da)],'services':_0x1ba5d0[_0x2d6f55(0x1bb)][_0x2d6f55(0x1c0)](_0x2e4afc=>({'service':_0x2e4afc[_0x2d6f55(0x1a4)]?.[_0x2d6f55(0x1cf)],'version':_0x2e4afc[_0x2d6f55(0x1a4)]?.['version'],'commandCount':_0x2e4afc[_0x2d6f55(0x1a4)]?.[_0x2d6f55(0x1b1)][_0x2d6f55(0x1da)]??0x0,'errors':_0x2e4afc[_0x2d6f55(0x1bd)][_0x2d6f55(0x1e2)]})),'errors':_0x1ba5d0[_0x2d6f55(0x1bd)][_0x2d6f55(0x1e2)],'commandCount':_0x1ba5d0[_0x2d6f55(0x1a4)]?.['commands']['length']??0x0},'description':_0x2d6f55(0x1db)};},async 'execute'(_0x52e0b3){const _0x3ba75a=a41_0x42c04e,_0x2fc96a=importServiceManifest(_0x52e0b3['str'](_0x3ba75a(0x1e7)));if(_0x2fc96a[_0x3ba75a(0x1ce)][_0x3ba75a(0x1da)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x2fc96a[_0x3ba75a(0x1ae)],'imported':_0x2fc96a[_0x3ba75a(0x1c3)],'updated':_0x2fc96a['updated'],'serviceCount':_0x2fc96a[_0x3ba75a(0x1c2)],'services':_0x2fc96a['entries'][_0x3ba75a(0x1c0)](summarizeService)},'message':_0x3ba75a(0x1ab)+_0x2fc96a[_0x3ba75a(0x1c3)]+_0x3ba75a(0x1e6)+_0x2fc96a[_0x3ba75a(0x1b2)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x2fc96a[_0x3ba75a(0x1ae)],'replaced':_0x2fc96a[_0x3ba75a(0x1d8)],'imported':_0x2fc96a[_0x3ba75a(0x1c3)],'updated':_0x2fc96a[_0x3ba75a(0x1b2)],'serviceCount':_0x2fc96a['serviceCount'],'service':summarizeService(_0x2fc96a[_0x3ba75a(0x1df)])},'message':(_0x2fc96a[_0x3ba75a(0x1d8)]?'Updated':_0x3ba75a(0x1a6))+_0x3ba75a(0x1e5)+_0x2fc96a[_0x3ba75a(0x1df)]['serviceCode']+'.'};}},{'service':'service','command':a41_0x42c04e(0x1e3),'description':a41_0x42c04e(0x1c9),'risk':a41_0x42c04e(0x1cd),'confirmationDescription':a41_0x42c04e(0x19f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x48a0d1){const _0x2dbf38=a41_0x42c04e,_0x35f36d=getLocalServiceEntry(_0x48a0d1[_0x2dbf38(0x1a7)]('service'));return{'method':_0x2dbf38(0x1a8),'url':_0x48a0d1[_0x2dbf38(0x1a7)]('file'),'body':{'service':_0x48a0d1['str']('service'),'found':Boolean(_0x35f36d),'version':_0x35f36d?.[_0x2dbf38(0x1a9)],'source':_0x35f36d?.[_0x2dbf38(0x1bc)]},'description':_0x2dbf38(0x1aa)};},async 'execute'(_0x41cca8){const _0x19e58e=a41_0x42c04e,_0x2d8814=exportServiceManifest(_0x41cca8[_0x19e58e(0x1a7)](_0x19e58e(0x1cf)),_0x41cca8[_0x19e58e(0x1a7)](_0x19e58e(0x1e7)));return{'ok':!![],'data':{'registryPath':_0x2d8814[_0x19e58e(0x1ae)],'file':_0x2d8814[_0x19e58e(0x19e)],'service':summarizeService(_0x2d8814[_0x19e58e(0x1df)])},'message':_0x19e58e(0x1b4)+_0x2d8814[_0x19e58e(0x1df)]['serviceCode']+'.'};}},{'service':a41_0x42c04e(0x1cf),'command':'list','description':a41_0x42c04e(0x1be),'risk':a41_0x42c04e(0x1e1),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x998c09=a41_0x42c04e,_0x386d35=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x386d35[_0x998c09(0x1da)],'services':_0x386d35[_0x998c09(0x1c0)](summarizeService)}};}},{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1c1),'description':a41_0x42c04e(0x1cb),'risk':'write','confirmationDescription':a41_0x42c04e(0x1a2),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x25ba84){const _0x5cacbf=a41_0x42c04e,_0x166c5f=getLocalServiceEntry(_0x25ba84[_0x5cacbf(0x1a7)](_0x5cacbf(0x1cf)));return{'method':_0x5cacbf(0x1a8),'url':getServiceRegistryPath(),'body':{'service':_0x25ba84[_0x5cacbf(0x1a7)](_0x5cacbf(0x1cf)),'found':Boolean(_0x166c5f),'version':_0x166c5f?.[_0x5cacbf(0x1a9)],'source':_0x166c5f?.['source']},'description':_0x5cacbf(0x1e4)};},async 'execute'(_0x49ecf8){const _0x135b39=a41_0x42c04e,_0x41d0a1=removeServiceManifest(_0x49ecf8[_0x135b39(0x1a7)](_0x135b39(0x1cf)));return{'ok':!![],'data':{'registryPath':_0x41d0a1[_0x135b39(0x1ae)],'serviceCount':_0x41d0a1[_0x135b39(0x1c2)],'service':summarizeService(_0x41d0a1[_0x135b39(0x1df)])},'message':'Removed\x20service\x20'+_0x41d0a1['entry'][_0x135b39(0x1c8)]+'.'};}},{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1d6),'description':a41_0x42c04e(0x1ba),'risk':a41_0x42c04e(0x1e1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1293ce){const _0x2eaae1=a41_0x42c04e,_0x3ad793=getLocalServiceEntry(_0x1293ce['str'](_0x2eaae1(0x1cf)));if(!_0x3ad793)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1293ce['str'](_0x2eaae1(0x1cf))},'message':_0x2eaae1(0x1c5)+_0x1293ce[_0x2eaae1(0x1a7)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3ad793),'manifest':_0x3ad793[_0x2eaae1(0x1bf)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3ad793['normalizedManifest'])}};}}];
|
|
1
|
+
const a41_0x176963=a41_0x40d1;function a41_0x40d1(_0x2fb60a,_0x389242){_0x2fb60a=_0x2fb60a-0x1c8;const _0x44a6d0=a41_0x44a6();let _0x40d1e9=_0x44a6d0[_0x2fb60a];return _0x40d1e9;}function a41_0x44a6(){const _0x5be92a=['Local\x20service\x20not\x20found:\x20','44vUrAbs','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','Removed\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','updated','Service\x20registry\x20validation\x20passed.','35pCvujt','8886951LizZHu','length','entries','risk','registryServiceCode','111GyYekq','Local\x20service\x20code,\x20for\x20example\x20crm','hash','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','write','map','version','registry','Service\x20Tree\x20manifest\x20file\x20path','import','485944AWcKYY','11EiVSLk','lower\x20kebab-case\x20service\x20code','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','str','serviceCount','errors','cliPath','filePath','normalizedManifest','9208930wxDfPc','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','export','reduce','source','list','36021CoaHUg','remove','read','file','service','flags','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','replaced','detail','将\x20Service\x20Tree\x20清单导入本地运行态注册表','name','warnings','entry','string','186OfzcfI','importedAt','\x20service\x20','50701260dLRIFJ','165625iATYCi','type','kind','WRITE','Imported','cliName','14856vFsfhC','target','manifests','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','\x20service(s),\x20updated\x20','required','registryPath','report','serviceCode','description','Exported\x20service\x20','从本地运行态注册表移除\x20Service\x20Tree\x20清单','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','imported','commands','registryIndex'];a41_0x44a6=function(){return _0x5be92a;};return a41_0x44a6();}(function(_0x552d63,_0x31f1ba){const _0x581330=a41_0x40d1,_0x2fbf34=_0x552d63();while(!![]){try{const _0x2b1db9=parseInt(_0x581330(0x1f1))/0x1*(-parseInt(_0x581330(0x1d4))/0x2)+parseInt(_0x581330(0x20b))/0x3*(-parseInt(_0x581330(0x1e5))/0x4)+-parseInt(_0x581330(0x1ce))/0x5*(parseInt(_0x581330(0x1ca))/0x6)+-parseInt(_0x581330(0x1eb))/0x7*(-parseInt(_0x581330(0x1fb))/0x8)+-parseInt(_0x581330(0x1ec))/0x9+-parseInt(_0x581330(0x205))/0xa*(parseInt(_0x581330(0x1fc))/0xb)+parseInt(_0x581330(0x1cd))/0xc;if(_0x2b1db9===_0x31f1ba)break;else _0x2fbf34['push'](_0x2fbf34['shift']());}catch(_0x3f1919){_0x2fbf34['push'](_0x2fbf34['shift']());}}}(a41_0x44a6,0x9b864));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x176963(0x20e),'type':a41_0x176963(0x1c9),'required':!![],'description':a41_0x176963(0x1f9)},SERVICE_FLAG={'name':a41_0x176963(0x20f),'type':a41_0x176963(0x1c9),'required':!![],'description':a41_0x176963(0x1f2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x176963(0x1fd)}};function summarizeService(_0x567263){const _0x4457e8=a41_0x176963;return{'serviceCode':_0x567263['serviceCode'],'name':_0x567263[_0x4457e8(0x204)][_0x4457e8(0x20f)][_0x4457e8(0x215)],'version':_0x567263[_0x4457e8(0x1f7)],'importedAt':_0x567263[_0x4457e8(0x1cb)],'source':_0x567263['source'],'commandCount':_0x567263['normalizedManifest'][_0x4457e8(0x1e2)][_0x4457e8(0x1ed)],'commands':_0x567263[_0x4457e8(0x204)][_0x4457e8(0x1e2)]['map'](_0x3feffe=>({'path':_0x3feffe['cliPath'],'description':_0x3feffe[_0x4457e8(0x1dd)],'risk':_0x3feffe[_0x4457e8(0x1ef)],'target':toPublicServiceTreeTarget(_0x3feffe[_0x4457e8(0x1d5)]),'flags':_0x3feffe[_0x4457e8(0x210)]['map'](_0x4910bb=>({'name':_0x4910bb[_0x4457e8(0x215)],'cliName':_0x4910bb[_0x4457e8(0x1d3)],'type':_0x4910bb[_0x4457e8(0x1cf)],'required':_0x4910bb[_0x4457e8(0x1d9)]===!![]}))}))};}function summarizeLoadedManifest(_0x96f6ae){const _0x3d9203=a41_0x176963;return{'service':_0x96f6ae['normalizedManifest']?.[_0x3d9203(0x20f)],'version':_0x96f6ae[_0x3d9203(0x204)]?.['version'],'commandCount':_0x96f6ae[_0x3d9203(0x204)]?.['commands'][_0x3d9203(0x1ed)]??0x0,'commands':_0x96f6ae[_0x3d9203(0x204)]?.['commands'][_0x3d9203(0x1f6)](_0x52f7c7=>({'path':_0x52f7c7[_0x3d9203(0x202)],'risk':_0x52f7c7[_0x3d9203(0x1ef)],'target':toPublicServiceTreeTarget(_0x52f7c7['target'])}))??[],'registryIndex':_0x96f6ae[_0x3d9203(0x1e3)],'registryServiceCode':_0x96f6ae[_0x3d9203(0x1f0)],'errors':_0x96f6ae[_0x3d9203(0x1db)]['errors'],'warnings':_0x96f6ae[_0x3d9203(0x1db)][_0x3d9203(0x216)]};}export const serviceDefinitions=[{'service':'service','command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x176963(0x20d),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x1ade9d){const _0x16766b=a41_0x176963,_0x2b0728=loadServiceManifestFromFile(_0x1ade9d['str']('file'));if(!_0x2b0728[_0x16766b(0x1db)]['ok'])return{'ok':![],'data':{'file':_0x2b0728['filePath'],'hash':_0x2b0728[_0x16766b(0x1f3)],'kind':_0x2b0728[_0x16766b(0x1d0)],'serviceCount':_0x2b0728[_0x16766b(0x1d6)]['length'],'services':_0x2b0728[_0x16766b(0x1d6)][_0x16766b(0x1f6)](summarizeLoadedManifest),'errors':_0x2b0728[_0x16766b(0x1db)][_0x16766b(0x201)],'warnings':_0x2b0728[_0x16766b(0x1db)][_0x16766b(0x216)]},'message':formatValidationFailure(_0x2b0728['report'])};if(_0x2b0728['kind']===_0x16766b(0x1f8)||_0x2b0728['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x2b0728[_0x16766b(0x203)],'hash':_0x2b0728[_0x16766b(0x1f3)],'kind':_0x2b0728[_0x16766b(0x1d0)],'serviceCount':_0x2b0728[_0x16766b(0x1d6)][_0x16766b(0x1ed)],'commandCount':_0x2b0728['manifests'][_0x16766b(0x208)]((_0x490e30,_0x585c63)=>_0x490e30+(_0x585c63[_0x16766b(0x204)]?.['commands'][_0x16766b(0x1ed)]??0x0),0x0),'services':_0x2b0728[_0x16766b(0x1d6)][_0x16766b(0x1f6)](summarizeLoadedManifest),'warnings':_0x2b0728[_0x16766b(0x1db)][_0x16766b(0x216)]},'message':_0x16766b(0x1ea)};return{'ok':!![],'data':{'file':_0x2b0728[_0x16766b(0x203)],'hash':_0x2b0728[_0x16766b(0x1f3)],'kind':_0x2b0728[_0x16766b(0x1d0)],'service':_0x2b0728[_0x16766b(0x204)]?.[_0x16766b(0x20f)],'version':_0x2b0728[_0x16766b(0x204)]?.[_0x16766b(0x1f7)],'commandCount':_0x2b0728[_0x16766b(0x204)]?.[_0x16766b(0x1e2)][_0x16766b(0x1ed)]??0x0,'commands':_0x2b0728[_0x16766b(0x204)]?.['commands'][_0x16766b(0x1f6)](_0x303a3d=>({'path':_0x303a3d[_0x16766b(0x202)],'risk':_0x303a3d[_0x16766b(0x1ef)],'target':toPublicServiceTreeTarget(_0x303a3d['target'])})),'warnings':_0x2b0728['report'][_0x16766b(0x216)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x1fa),'description':a41_0x176963(0x214),'risk':a41_0x176963(0x1f5),'confirmationDescription':a41_0x176963(0x1e6),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2a4108){const _0x297da2=a41_0x176963,_0x465ff4=loadServiceManifestFromFile(_0x2a4108[_0x297da2(0x1ff)](_0x297da2(0x20e)));return{'method':_0x297da2(0x1d1),'url':getServiceRegistryPath(),'body':{'file':_0x465ff4[_0x297da2(0x203)],'hash':_0x465ff4[_0x297da2(0x1f3)],'kind':_0x465ff4[_0x297da2(0x1d0)],'ok':_0x465ff4[_0x297da2(0x1db)]['ok'],'service':_0x465ff4[_0x297da2(0x204)]?.['service'],'version':_0x465ff4[_0x297da2(0x204)]?.[_0x297da2(0x1f7)],'serviceCount':_0x465ff4[_0x297da2(0x1d6)][_0x297da2(0x1ed)],'services':_0x465ff4[_0x297da2(0x1d6)][_0x297da2(0x1f6)](_0x55e502=>({'service':_0x55e502['normalizedManifest']?.[_0x297da2(0x20f)],'version':_0x55e502['normalizedManifest']?.[_0x297da2(0x1f7)],'commandCount':_0x55e502[_0x297da2(0x204)]?.[_0x297da2(0x1e2)]['length']??0x0,'errors':_0x55e502[_0x297da2(0x1db)][_0x297da2(0x201)]})),'errors':_0x465ff4[_0x297da2(0x1db)]['errors'],'commandCount':_0x465ff4[_0x297da2(0x204)]?.[_0x297da2(0x1e2)][_0x297da2(0x1ed)]??0x0},'description':_0x297da2(0x1d7)};},async 'execute'(_0x201518){const _0x14003d=a41_0x176963,_0x3260fa=importServiceManifest(_0x201518[_0x14003d(0x1ff)](_0x14003d(0x20e)));if(_0x3260fa[_0x14003d(0x1ee)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x3260fa[_0x14003d(0x1da)],'imported':_0x3260fa[_0x14003d(0x1e1)],'updated':_0x3260fa['updated'],'serviceCount':_0x3260fa[_0x14003d(0x200)],'services':_0x3260fa[_0x14003d(0x1ee)]['map'](summarizeService)},'message':'Imported\x20'+_0x3260fa[_0x14003d(0x1e1)]+_0x14003d(0x1d8)+_0x3260fa[_0x14003d(0x1e9)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x3260fa['registryPath'],'replaced':_0x3260fa[_0x14003d(0x212)],'imported':_0x3260fa[_0x14003d(0x1e1)],'updated':_0x3260fa[_0x14003d(0x1e9)],'serviceCount':_0x3260fa['serviceCount'],'service':summarizeService(_0x3260fa[_0x14003d(0x1c8)])},'message':(_0x3260fa['replaced']?'Updated':_0x14003d(0x1d2))+_0x14003d(0x1cc)+_0x3260fa[_0x14003d(0x1c8)][_0x14003d(0x1dc)]+'.'};}},{'service':'service','command':a41_0x176963(0x207),'description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':a41_0x176963(0x1f5),'confirmationDescription':a41_0x176963(0x206),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3cbbbc){const _0x5a5107=a41_0x176963,_0x22a280=getLocalServiceEntry(_0x3cbbbc[_0x5a5107(0x1ff)](_0x5a5107(0x20f)));return{'method':_0x5a5107(0x1d1),'url':_0x3cbbbc[_0x5a5107(0x1ff)](_0x5a5107(0x20e)),'body':{'service':_0x3cbbbc[_0x5a5107(0x1ff)](_0x5a5107(0x20f)),'found':Boolean(_0x22a280),'version':_0x22a280?.[_0x5a5107(0x1f7)],'source':_0x22a280?.['source']},'description':_0x5a5107(0x211)};},async 'execute'(_0x1fe0ea){const _0x5d67ae=a41_0x176963,_0x39a5c9=exportServiceManifest(_0x1fe0ea[_0x5d67ae(0x1ff)](_0x5d67ae(0x20f)),_0x1fe0ea[_0x5d67ae(0x1ff)](_0x5d67ae(0x20e)));return{'ok':!![],'data':{'registryPath':_0x39a5c9[_0x5d67ae(0x1da)],'file':_0x39a5c9['filePath'],'service':summarizeService(_0x39a5c9[_0x5d67ae(0x1c8)])},'message':_0x5d67ae(0x1de)+_0x39a5c9[_0x5d67ae(0x1c8)]['serviceCode']+'.'};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x20a),'description':a41_0x176963(0x1e8),'risk':a41_0x176963(0x20d),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x59be7b=a41_0x176963,_0x3dfb13=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3dfb13[_0x59be7b(0x1ed)],'services':_0x3dfb13[_0x59be7b(0x1f6)](summarizeService)}};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x20c),'description':a41_0x176963(0x1df),'risk':a41_0x176963(0x1f5),'confirmationDescription':a41_0x176963(0x1e0),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x7cdd39){const _0x7d75ab=a41_0x176963,_0x59ceb7=getLocalServiceEntry(_0x7cdd39[_0x7d75ab(0x1ff)](_0x7d75ab(0x20f)));return{'method':_0x7d75ab(0x1d1),'url':getServiceRegistryPath(),'body':{'service':_0x7cdd39['str']('service'),'found':Boolean(_0x59ceb7),'version':_0x59ceb7?.[_0x7d75ab(0x1f7)],'source':_0x59ceb7?.[_0x7d75ab(0x209)]},'description':_0x7d75ab(0x1fe)};},async 'execute'(_0x2e8cb6){const _0x1559dc=a41_0x176963,_0x1a19cb=removeServiceManifest(_0x2e8cb6[_0x1559dc(0x1ff)](_0x1559dc(0x20f)));return{'ok':!![],'data':{'registryPath':_0x1a19cb[_0x1559dc(0x1da)],'serviceCount':_0x1a19cb[_0x1559dc(0x200)],'service':summarizeService(_0x1a19cb['entry'])},'message':_0x1559dc(0x1e7)+_0x1a19cb[_0x1559dc(0x1c8)][_0x1559dc(0x1dc)]+'.'};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x213),'description':a41_0x176963(0x1f4),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1ea5ab){const _0x5b50ca=a41_0x176963,_0x3eb6e4=getLocalServiceEntry(_0x1ea5ab[_0x5b50ca(0x1ff)](_0x5b50ca(0x20f)));if(!_0x3eb6e4)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1ea5ab[_0x5b50ca(0x1ff)](_0x5b50ca(0x20f))},'message':_0x5b50ca(0x1e4)+_0x1ea5ab[_0x5b50ca(0x1ff)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3eb6e4),'manifest':_0x3eb6e4['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x3eb6e4[_0x5b50ca(0x204)])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a42_0x30ec34=a42_0x28a4;function a42_0x2382(){const _0xb859c7=['Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Invalid\x20service\x20registry\x20JSON:\x20','updatedAt','Service\x20manifest\x20validation\x20failed:\x0a','$.services[','].manifest','command','145EMtzFe','string','homeDirName','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','slice','length','10298080QBdyiA','invalid','isArray','986USYEan','join','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','target','source','manifests','schemaVersion','warnings','service','services\x20must\x20be\x20an\x20array','map','parse','startsWith','risk','Local\x20service\x20not\x20found:\x20','flatMap','registryIndex','digest','553216QaMKio','errors','file','empty','homeDir','40932TfdtBh','object','description','64Mdpaci','3042486ORvblW','cliPath','Invalid\x20service\x20manifest\x20JSON:\x20','registry','commandCount','missing','toISOString','CliError','reduce','push','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','4337494ipJWBv','validation','normalizedManifest','trim','message','localeCompare','find','splice','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','15rrqmOJ','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','bff\x20target\x20requires\x20functionName.','Remove\x20or\x20migrate\x20','Cannot\x20write\x20service\x20registry:\x20','now','manifest','Service\x20manifest\x20file\x20not\x20found:\x20','filePath','code','report','stringify','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','utf8','path','commands','215328DPHvhc','kind','services','service.json','version','hex','serviceCode'];a42_0x2382=function(){return _0xb859c7;};return a42_0x2382();}(function(_0x9b503d,_0x4776a8){const _0x5cc45f=a42_0x28a4,_0x34f7f2=_0x9b503d();while(!![]){try{const _0x547dce=-parseInt(_0x5cc45f(0x1fb))/0x1*(parseInt(_0x5cc45f(0x204))/0x2)+parseInt(_0x5cc45f(0x1ed))/0x3+-parseInt(_0x5cc45f(0x216))/0x4*(-parseInt(_0x5cc45f(0x1dd))/0x5)+-parseInt(_0x5cc45f(0x21f))/0x6+-parseInt(_0x5cc45f(0x1d4))/0x7+parseInt(_0x5cc45f(0x21e))/0x8*(parseInt(_0x5cc45f(0x21b))/0x9)+parseInt(_0x5cc45f(0x201))/0xa;if(_0x547dce===_0x4776a8)break;else _0x34f7f2['push'](_0x34f7f2['shift']());}catch(_0x324a7a){_0x34f7f2['push'](_0x34f7f2['shift']());}}}(a42_0x2382,0x56970));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';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x30ec34(0x1f0);export function getServiceRegistryPath(_0x2a65d0={}){const _0x101fa3=a42_0x30ec34;return resolve(_0x2a65d0[_0x101fa3(0x21a)]??homedir(),PRODUCT_CONFIG[_0x101fa3(0x1fd)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4b15f6={}){const _0x4222b5=a42_0x30ec34,_0x9433eb=getServiceRegistryPath(_0x4b15f6);if(!existsSync(_0x9433eb))return emptyServiceRegistry();try{const _0x422921=readFileSync(_0x9433eb,_0x4222b5(0x1ea));if(!_0x422921[_0x4222b5(0x1d7)]())return emptyServiceRegistry();const _0xb45b32=JSON[_0x4222b5(0x20f)](_0x422921);if(_0xb45b32['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x4222b5(0x1d5)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0xb45b32[_0x4222b5(0x20a)]),_0x4222b5(0x1e0)+_0x9433eb+'.');if(!Array[_0x4222b5(0x203)](_0xb45b32['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb45b32[_0x4222b5(0x1f6)],'services':_0xb45b32[_0x4222b5(0x1ef)]};}catch(_0xa081a7){if(_0xa081a7 instanceof Error&&_0xa081a7['name']===_0x4222b5(0x226))throw _0xa081a7;throw CliErrors['validation'](_0x4222b5(0x1f5)+_0x9433eb,_0x4222b5(0x1de));}}export function writeServiceRegistry(_0x2de49e,_0x1b6e87={}){const _0x3866e3=a42_0x30ec34,_0x171746=getServiceRegistryPath(_0x1b6e87),_0x2a0ca4=dirname(_0x171746);!existsSync(_0x2a0ca4)&&mkdirSync(_0x2a0ca4,{'recursive':!![]});const _0x414075=_0x171746+'.tmp';try{writeFileSync(_0x414075,JSON['stringify'](_0x2de49e,null,0x2)+'\x0a',{'encoding':_0x3866e3(0x1ea),'mode':0x180}),renameSync(_0x414075,_0x171746);}catch(_0x24a31e){try{unlinkSync(_0x414075);}catch{}if(_0x24a31e?.[_0x3866e3(0x1e6)]==='ENOENT')throw CliErrors[_0x3866e3(0x1d5)](_0x3866e3(0x1e1)+_0x171746);throw _0x24a31e;}return _0x171746;}export function loadServiceManifestFromFile(_0xca5301){const _0x3ec13d=a42_0x30ec34,_0x16cfd9=resolve(_0xca5301);if(!existsSync(_0x16cfd9))throw CliErrors[_0x3ec13d(0x1d5)](_0x3ec13d(0x1e4)+_0xca5301);let _0x4aa70d;const _0xdce742=readFileSync(_0x16cfd9,_0x3ec13d(0x1ea));try{_0x4aa70d=JSON[_0x3ec13d(0x20f)](_0xdce742);}catch{throw CliErrors['validation'](_0x3ec13d(0x221)+_0xca5301,_0x3ec13d(0x1fe));}const _0x2848e5=sha256(_0xdce742),_0x3bcc83=extractLoadedServiceManifests(_0x4aa70d,_0x2848e5),_0x35c2fe=aggregateValidationReports(_0x3bcc83),_0x35d684=_0x3bcc83[0x0];return{'filePath':_0x16cfd9,'hash':_0x2848e5,'kind':isServiceRegistryLike(_0x4aa70d)?_0x3ec13d(0x222):'manifest','manifest':_0x35d684?.[_0x3ec13d(0x1e3)]??_0x4aa70d,'report':_0x35c2fe,'normalizedManifest':_0x3bcc83[_0x3ec13d(0x200)]===0x1?_0x35d684?.['normalizedManifest']:undefined,'manifests':_0x3bcc83};}export function importServiceManifest(_0x489182,_0x221cbd={}){const _0x18f7ce=a42_0x30ec34,_0x4fd937=loadServiceManifestFromFile(_0x489182);if(!_0x4fd937['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x4fd937[_0x18f7ce(0x1e7)]),_0x18f7ce(0x1f4));if(_0x4fd937[_0x18f7ce(0x209)][_0x18f7ce(0x200)]===0x0)throw CliErrors[_0x18f7ce(0x1d5)](_0x18f7ce(0x1d3),_0x18f7ce(0x206));const _0x40b9b2=readServiceRegistry(_0x221cbd),_0x3b47e7=(_0x221cbd[_0x18f7ce(0x1e2)]??(()=>new Date()))()[_0x18f7ce(0x225)](),_0x4f141b=[];let _0xc2e64=0x0,_0x5c282e=0x0;for(const _0x433f57 of _0x4fd937['manifests']){if(!_0x433f57['normalizedManifest'])continue;const _0x564852=_0x433f57[_0x18f7ce(0x1d6)][_0x18f7ce(0x20c)][_0x18f7ce(0x1e6)],_0x3bc0a7={'serviceCode':_0x564852,'version':_0x433f57[_0x18f7ce(0x1d6)][_0x18f7ce(0x1f1)],'importedAt':_0x3b47e7,'source':{'type':_0x18f7ce(0x218),'path':_0x4fd937[_0x18f7ce(0x1e5)],'hash':_0x433f57['sourceHash']},'manifest':_0x433f57[_0x18f7ce(0x1e3)],'normalizedManifest':_0x433f57[_0x18f7ce(0x1d6)]},_0x2a32fe=_0x40b9b2['services']['findIndex'](_0x3fc37a=>_0x3fc37a[_0x18f7ce(0x1f3)]===_0x564852);_0x2a32fe>=0x0?(_0x40b9b2[_0x18f7ce(0x1ef)][_0x2a32fe]=_0x3bc0a7,_0x5c282e++):(_0x40b9b2[_0x18f7ce(0x1ef)][_0x18f7ce(0x228)](_0x3bc0a7),_0xc2e64++),_0x4f141b['push'](_0x3bc0a7);}_0x40b9b2['services']['sort']((_0x4d215d,_0x470ca5)=>_0x4d215d[_0x18f7ce(0x1f3)][_0x18f7ce(0x1d9)](_0x470ca5['serviceCode'])),_0x40b9b2[_0x18f7ce(0x1f6)]=_0x3b47e7;const _0x42c58e=writeServiceRegistry(_0x40b9b2,_0x221cbd);return{'registryPath':_0x42c58e,'entry':_0x4f141b[0x0],'replaced':_0x4f141b[_0x18f7ce(0x200)]===0x1?_0x5c282e===0x1:_0x5c282e>0x0,'entries':_0x4f141b,'imported':_0xc2e64,'updated':_0x5c282e,'serviceCount':_0x40b9b2['services'][_0x18f7ce(0x200)]};}function a42_0x28a4(_0x57c20b,_0x4c6771){_0x57c20b=_0x57c20b-0x1d3;const _0x2382ee=a42_0x2382();let _0x28a4ad=_0x2382ee[_0x57c20b];return _0x28a4ad;}export function exportServiceManifest(_0x31dcee,_0x8e10d3,_0x1d692c={}){const _0x2d6641=a42_0x30ec34,_0x36402e=getServiceRegistryPath(_0x1d692c),_0x200b50=getLocalServiceEntry(_0x31dcee,_0x1d692c);if(!_0x200b50)throw CliErrors[_0x2d6641(0x1d5)](_0x2d6641(0x212)+_0x31dcee,_0x2d6641(0x1dc));const _0x348a3c=resolve(_0x8e10d3),_0x39af43=dirname(_0x348a3c);return!existsSync(_0x39af43)&&mkdirSync(_0x39af43,{'recursive':!![]}),writeFileSync(_0x348a3c,JSON[_0x2d6641(0x1e8)](_0x200b50['manifest'],null,0x2)+'\x0a',{'encoding':_0x2d6641(0x1ea),'mode':0x180}),{'registryPath':_0x36402e,'filePath':_0x348a3c,'entry':_0x200b50};}export function removeServiceManifest(_0x112785,_0x4b2ac3={}){const _0x37641e=a42_0x30ec34,_0x2f7539=readServiceRegistry(_0x4b2ac3),_0x286539=_0x112785[_0x37641e(0x1d7)](),_0x12ce62=_0x2f7539[_0x37641e(0x1ef)]['findIndex'](_0x50e63d=>_0x50e63d[_0x37641e(0x1f3)]===_0x286539);if(_0x12ce62<0x0)throw CliErrors[_0x37641e(0x1d5)](_0x37641e(0x212)+_0x286539,_0x37641e(0x1dc));const [_0x5bd4e4]=_0x2f7539['services'][_0x37641e(0x1db)](_0x12ce62,0x1),_0x10c808=(_0x4b2ac3[_0x37641e(0x1e2)]??(()=>new Date()))()[_0x37641e(0x225)]();_0x2f7539['updatedAt']=_0x10c808;const _0x695136=writeServiceRegistry(_0x2f7539,_0x4b2ac3);return{'registryPath':_0x695136,'entry':_0x5bd4e4,'serviceCount':_0x2f7539[_0x37641e(0x1ef)][_0x37641e(0x200)]};}export function listLocalServices(_0x343803={}){const _0x4652ab=a42_0x30ec34;return readServiceRegistry(_0x343803)[_0x4652ab(0x1ef)];}export function getLocalServiceEntry(_0x4c127b,_0x5c8433={}){const _0x502647=a42_0x30ec34;return readServiceRegistry(_0x5c8433)['services'][_0x502647(0x1da)](_0xad4d56=>_0xad4d56['serviceCode']===_0x4c127b[_0x502647(0x1d7)]());}export function listLocalServiceTrees(_0xe92af1={}){const _0x2c1138=a42_0x30ec34;return readServiceRegistry(_0xe92af1)[_0x2c1138(0x1ef)]['map'](_0x3763ee=>_0x3763ee[_0x2c1138(0x1d6)]);}export function inspectServiceRegistry(_0x4e3884={}){const _0x167f54=a42_0x30ec34,_0x1e6f94=getServiceRegistryPath(_0x4e3884);if(!existsSync(_0x1e6f94))return emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x224),![]);try{const _0x536aaa=readFileSync(_0x1e6f94,_0x167f54(0x1ea));if(!_0x536aaa[_0x167f54(0x1d7)]())return emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x219),!![]);const _0x1b084c=JSON['parse'](_0x536aaa);if(_0x1b084c[_0x167f54(0x20a)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x202),!![]),'schemaVersion':_0x1b084c[_0x167f54(0x20a)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1b084c[_0x167f54(0x20a)])};if(!Array[_0x167f54(0x203)](_0x1b084c[_0x167f54(0x1ef)]))return{...emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x202),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1b084c[_0x167f54(0x1f6)],'message':_0x167f54(0x20d)};const _0x5f5943=_0x1b084c[_0x167f54(0x1ef)][_0x167f54(0x20e)](summarizeLocalServiceEntry);return{'registryPath':_0x1e6f94,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1b084c[_0x167f54(0x1f6)],'serviceCount':_0x5f5943[_0x167f54(0x200)],'commandCount':_0x5f5943[_0x167f54(0x227)]((_0x377857,_0x254030)=>_0x377857+_0x254030[_0x167f54(0x223)],0x0),'services':_0x5f5943};}catch(_0x3a2c6c){return{...emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x202),!![]),'message':_0x3a2c6c instanceof Error?_0x3a2c6c[_0x167f54(0x1d8)]:String(_0x3a2c6c)};}}export function formatValidationFailure(_0x3357df){const _0x1920de=a42_0x30ec34,_0x2271fc=_0x3357df[_0x1920de(0x217)][_0x1920de(0x20e)](_0x5680fc=>_0x5680fc[_0x1920de(0x1eb)]+':\x20'+_0x5680fc[_0x1920de(0x1d8)]);return _0x1920de(0x1f7)+_0x2271fc[_0x1920de(0x205)]('\x0a');}function extractLoadedServiceManifests(_0x2e49a0,_0x4f2e01){const _0x13f878=a42_0x30ec34;if(!isServiceRegistryLike(_0x2e49a0)){const _0x11d196=_0x2e49a0,{manifest:_0x4a37b8,errors:_0x590449}=adaptServiceTreeManifestForLegacyFramework(_0x11d196),_0x1a0bed=validateServiceTreeManifest(_0x4a37b8),_0x2695ee=mergeValidationErrors(_0x1a0bed,_0x590449);return[{'manifest':_0x11d196,'report':_0x2695ee,'normalizedManifest':_0x2695ee['ok']?normalizeServiceTreeManifest(_0x4a37b8):undefined,'sourceHash':_0x4f2e01}];}return _0x2e49a0[_0x13f878(0x1ef)]['map']((_0x3c52d1,_0x1b5344)=>{const _0x1ea4b9=_0x13f878,_0x1d506e=isObjectRecord(_0x3c52d1)?_0x3c52d1[_0x1ea4b9(0x1e3)]:undefined,{manifest:_0x62cb04,errors:_0x450378}=adaptServiceTreeManifestForLegacyFramework(_0x1d506e),_0x1c50a8=validateServiceTreeManifest(_0x62cb04),_0x589a6c=mergeValidationErrors(_0x1c50a8,_0x450378),_0x2828fe=isObjectRecord(_0x3c52d1)&&typeof _0x3c52d1['serviceCode']===_0x1ea4b9(0x1fc)?_0x3c52d1[_0x1ea4b9(0x1f3)]:undefined;return{'manifest':_0x1d506e,'report':_0x589a6c,'normalizedManifest':_0x589a6c['ok']?normalizeServiceTreeManifest(_0x62cb04):undefined,'sourceHash':sha256(JSON[_0x1ea4b9(0x1e8)](_0x1d506e,null,0x2)+'\x0a'),'registryIndex':_0x1b5344,'registryServiceCode':_0x2828fe};});}function mergeValidationErrors(_0x5109c3,_0xff91fa){const _0x28b25a=a42_0x30ec34,_0x3dd6b7=_0x5109c3[_0x28b25a(0x217)]['map'](_0x586641=>_0x586641[_0x28b25a(0x1d8)]===_0x28b25a(0x1e9)?{..._0x586641,'message':_0x28b25a(0x1df)}:_0x586641),_0x12a70b=[..._0xff91fa,..._0x3dd6b7];return{'ok':_0x12a70b[_0x28b25a(0x200)]===0x0,'errors':_0x12a70b,'warnings':_0x5109c3[_0x28b25a(0x20b)]};}function aggregateValidationReports(_0x1cc79f){const _0x4f293b=a42_0x30ec34,_0x40667f=_0x1cc79f[_0x4f293b(0x213)](_0x3ce43c=>_0x3ce43c[_0x4f293b(0x214)]===undefined?_0x3ce43c[_0x4f293b(0x1e7)][_0x4f293b(0x217)]:_0x3ce43c[_0x4f293b(0x1e7)]['errors'][_0x4f293b(0x20e)](_0xca913a=>({..._0xca913a,'path':prefixRegistryIssuePath(_0x3ce43c[_0x4f293b(0x214)],_0xca913a['path'])}))),_0x1fb67a=_0x1cc79f[_0x4f293b(0x213)](_0x50ef88=>_0x50ef88[_0x4f293b(0x214)]===undefined?_0x50ef88[_0x4f293b(0x1e7)][_0x4f293b(0x20b)]:_0x50ef88['report'][_0x4f293b(0x20b)][_0x4f293b(0x20e)](_0x3c510b=>({..._0x3c510b,'path':prefixRegistryIssuePath(_0x50ef88['registryIndex'],_0x3c510b[_0x4f293b(0x1eb)])})));return{'ok':_0x40667f['length']===0x0,'errors':_0x40667f,'warnings':_0x1fb67a};}function prefixRegistryIssuePath(_0x263f62,_0x3e272e){const _0x560be6=a42_0x30ec34;if(_0x3e272e==='$')return _0x560be6(0x1f8)+_0x263f62+_0x560be6(0x1f9);if(_0x3e272e[_0x560be6(0x210)]('$.'))return _0x560be6(0x1f8)+_0x263f62+_0x560be6(0x1f9)+_0x3e272e[_0x560be6(0x1ff)](0x1);if(_0x3e272e[_0x560be6(0x210)]('$['))return _0x560be6(0x1f8)+_0x263f62+_0x560be6(0x1f9)+_0x3e272e[_0x560be6(0x1ff)](0x1);return _0x560be6(0x1f8)+_0x263f62+'].manifest.'+_0x3e272e;}function isServiceRegistryLike(_0x476b91){const _0x1cf82b=a42_0x30ec34;return isObjectRecord(_0x476b91)&&_0x476b91[_0x1cf82b(0x20a)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x476b91[_0x1cf82b(0x1ef)]);}function isObjectRecord(_0x5adb4f){const _0x139d66=a42_0x30ec34;return Boolean(_0x5adb4f)&&typeof _0x5adb4f===_0x139d66(0x21c)&&!Array[_0x139d66(0x203)](_0x5adb4f);}function emptyServiceRegistryInspection(_0x4a1f05,_0xc7e236,_0x296b3a){return{'registryPath':_0x4a1f05,'exists':_0x296b3a,'status':_0xc7e236,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x499061){const _0x51492f=a42_0x30ec34,_0x5b29cb=_0x499061[_0x51492f(0x1d6)],_0x15cb0d=_0x5b29cb[_0x51492f(0x1ec)]['map'](_0x4de657=>({'path':_0x4de657[_0x51492f(0x220)],'description':_0x4de657['description'],'risk':_0x4de657[_0x51492f(0x211)],'targetKind':_0x4de657[_0x51492f(0x207)][_0x51492f(0x1ee)],'targetCommand':_0x4de657[_0x51492f(0x207)][_0x51492f(0x1fa)]}));return{'serviceCode':_0x499061[_0x51492f(0x1f3)],'name':_0x5b29cb['service']['name'],'description':_0x5b29cb[_0x51492f(0x20c)][_0x51492f(0x21d)],'version':_0x499061[_0x51492f(0x1f1)],'importedAt':_0x499061['importedAt'],'source':_0x499061[_0x51492f(0x208)],'commandCount':_0x15cb0d[_0x51492f(0x200)],'commands':_0x15cb0d};}function sha256(_0x549cd9){const _0x457bdf=a42_0x30ec34;return createHash('sha256')['update'](_0x549cd9)[_0x457bdf(0x215)](_0x457bdf(0x1f2));}
|
|
1
|
+
function a42_0xb180(){const _0x29d778=['join','flatMap','errors','Invalid\x20service\x20registry\x20JSON:\x20','$.services[','object','target','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','isArray','service.json','1219810syxvqP','localeCompare','invalid','schemaVersion','Unsupported\x20schemaVersion:\x20','string','map','36kdCyDc','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','filePath','registry','command','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Service\x20manifest\x20validation\x20failed:\x0a','slice','empty','utf8','validation','2880yURIpd','].manifest','stringify','parse','bff\x20target\x20requires\x20functionName.','CliError','Local\x20service\x20not\x20found:\x20','normalizedManifest','now','780086GUaYKj','Remove\x20or\x20migrate\x20','path','risk','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','code','homeDir','133206DdBWAS','15274ctQWMP','hex','].manifest.','reduce','commands','toISOString','manifest','Invalid\x20service\x20manifest\x20JSON:\x20','importedAt','Service\x20manifest\x20file\x20not\x20found:\x20','findIndex','description','commandCount','splice','length','version','startsWith','serviceCode','push','107811QVWyCE','3632zghHuA','source','services','missing','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','1344820oDLpHL','warnings','20FaKumQ','report','message','service','manifests','Cannot\x20write\x20service\x20registry:\x20','file','3aMTcnn','1950537kEuGmC','registryIndex','updatedAt','ENOENT','trim'];a42_0xb180=function(){return _0x29d778;};return a42_0xb180();}const a42_0x421b80=a42_0x2673;(function(_0xa8454b,_0x2b1755){const _0x15468a=a42_0x2673,_0x518bb0=_0xa8454b();while(!![]){try{const _0x151812=-parseInt(_0x15468a(0x160))/0x1*(parseInt(_0x15468a(0x136))/0x2)+parseInt(_0x15468a(0x161))/0x3+parseInt(_0x15468a(0x157))/0x4+parseInt(_0x15468a(0x159))/0x5*(-parseInt(_0x15468a(0x13d))/0x6)+-parseInt(_0x15468a(0x13e))/0x7*(parseInt(_0x15468a(0x152))/0x8)+parseInt(_0x15468a(0x122))/0x9*(-parseInt(_0x15468a(0x11b))/0xa)+parseInt(_0x15468a(0x151))/0xb*(parseInt(_0x15468a(0x12d))/0xc);if(_0x151812===_0x2b1755)break;else _0x518bb0['push'](_0x518bb0['shift']());}catch(_0x32e416){_0x518bb0['push'](_0x518bb0['shift']());}}}(a42_0xb180,0x92c33));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';function a42_0x2673(_0x4d4840,_0x4154d5){_0x4d4840=_0x4d4840-0x11a;const _0xb18017=a42_0xb180();let _0x2673dd=_0xb18017[_0x4d4840];return _0x2673dd;}import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x421b80(0x11a);export function getServiceRegistryPath(_0x4cf21a={}){const _0x5ece57=a42_0x421b80;return resolve(_0x4cf21a[_0x5ece57(0x13c)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x5b1ace={}){const _0x408947=a42_0x421b80,_0x216464=getServiceRegistryPath(_0x5b1ace);if(!existsSync(_0x216464))return emptyServiceRegistry();try{const _0x2a856c=readFileSync(_0x216464,_0x408947(0x12b));if(!_0x2a856c[_0x408947(0x165)]())return emptyServiceRegistry();const _0x2a71a6=JSON[_0x408947(0x130)](_0x2a856c);if(_0x2a71a6[_0x408947(0x11e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x408947(0x127)+String(_0x2a71a6['schemaVersion']),_0x408947(0x137)+_0x216464+'.');if(!Array['isArray'](_0x2a71a6[_0x408947(0x154)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2a71a6['updatedAt'],'services':_0x2a71a6['services']};}catch(_0x223c91){if(_0x223c91 instanceof Error&&_0x223c91['name']===_0x408947(0x132))throw _0x223c91;throw CliErrors[_0x408947(0x12c)](_0x408947(0x169)+_0x216464,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x7298f6,_0x285d21={}){const _0x14df56=a42_0x421b80,_0xa8e39f=getServiceRegistryPath(_0x285d21),_0x335599=dirname(_0xa8e39f);!existsSync(_0x335599)&&mkdirSync(_0x335599,{'recursive':!![]});const _0x59a3a5=_0xa8e39f+'.tmp';try{writeFileSync(_0x59a3a5,JSON[_0x14df56(0x12f)](_0x7298f6,null,0x2)+'\x0a',{'encoding':_0x14df56(0x12b),'mode':0x180}),renameSync(_0x59a3a5,_0xa8e39f);}catch(_0x31d8b8){try{unlinkSync(_0x59a3a5);}catch{}if(_0x31d8b8?.['code']===_0x14df56(0x164))throw CliErrors[_0x14df56(0x12c)](_0x14df56(0x15e)+_0xa8e39f);throw _0x31d8b8;}return _0xa8e39f;}export function loadServiceManifestFromFile(_0x3267f7){const _0xff6121=a42_0x421b80,_0x145c3f=resolve(_0x3267f7);if(!existsSync(_0x145c3f))throw CliErrors['validation'](_0xff6121(0x147)+_0x3267f7);let _0x33fb47;const _0x4d8472=readFileSync(_0x145c3f,_0xff6121(0x12b));try{_0x33fb47=JSON[_0xff6121(0x130)](_0x4d8472);}catch{throw CliErrors['validation'](_0xff6121(0x145)+_0x3267f7,_0xff6121(0x13a));}const _0x59009a=sha256(_0x4d8472),_0xdcf1b9=extractLoadedServiceManifests(_0x33fb47,_0x59009a),_0x362605=aggregateValidationReports(_0xdcf1b9),_0x2bde3e=_0xdcf1b9[0x0];return{'filePath':_0x145c3f,'hash':_0x59009a,'kind':isServiceRegistryLike(_0x33fb47)?_0xff6121(0x125):_0xff6121(0x144),'manifest':_0x2bde3e?.[_0xff6121(0x144)]??_0x33fb47,'report':_0x362605,'normalizedManifest':_0xdcf1b9[_0xff6121(0x14c)]===0x1?_0x2bde3e?.[_0xff6121(0x134)]:undefined,'manifests':_0xdcf1b9};}export function importServiceManifest(_0x404481,_0x5e057c={}){const _0x2c0329=a42_0x421b80,_0x487703=loadServiceManifestFromFile(_0x404481);if(!_0x487703['report']['ok'])throw CliErrors[_0x2c0329(0x12c)](formatValidationFailure(_0x487703['report']),_0x2c0329(0x16d));if(_0x487703['manifests'][_0x2c0329(0x14c)]===0x0)throw CliErrors[_0x2c0329(0x12c)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x360c1f=readServiceRegistry(_0x5e057c),_0x4a5341=(_0x5e057c[_0x2c0329(0x135)]??(()=>new Date()))()[_0x2c0329(0x143)](),_0x174cee=[];let _0x3cad49=0x0,_0x57316d=0x0;for(const _0x176cb7 of _0x487703[_0x2c0329(0x15d)]){if(!_0x176cb7['normalizedManifest'])continue;const _0x2c6eab=_0x176cb7['normalizedManifest']['service'][_0x2c0329(0x13b)],_0x52f5d3={'serviceCode':_0x2c6eab,'version':_0x176cb7['normalizedManifest']['version'],'importedAt':_0x4a5341,'source':{'type':_0x2c0329(0x15f),'path':_0x487703[_0x2c0329(0x124)],'hash':_0x176cb7['sourceHash']},'manifest':_0x176cb7[_0x2c0329(0x144)],'normalizedManifest':_0x176cb7['normalizedManifest']},_0x1cf00d=_0x360c1f[_0x2c0329(0x154)][_0x2c0329(0x148)](_0x35f4bb=>_0x35f4bb['serviceCode']===_0x2c6eab);_0x1cf00d>=0x0?(_0x360c1f[_0x2c0329(0x154)][_0x1cf00d]=_0x52f5d3,_0x57316d++):(_0x360c1f[_0x2c0329(0x154)]['push'](_0x52f5d3),_0x3cad49++),_0x174cee[_0x2c0329(0x150)](_0x52f5d3);}_0x360c1f[_0x2c0329(0x154)]['sort']((_0x25d342,_0x1190ab)=>_0x25d342['serviceCode'][_0x2c0329(0x11c)](_0x1190ab[_0x2c0329(0x14f)])),_0x360c1f[_0x2c0329(0x163)]=_0x4a5341;const _0x5873cb=writeServiceRegistry(_0x360c1f,_0x5e057c);return{'registryPath':_0x5873cb,'entry':_0x174cee[0x0],'replaced':_0x174cee[_0x2c0329(0x14c)]===0x1?_0x57316d===0x1:_0x57316d>0x0,'entries':_0x174cee,'imported':_0x3cad49,'updated':_0x57316d,'serviceCount':_0x360c1f[_0x2c0329(0x154)][_0x2c0329(0x14c)]};}export function exportServiceManifest(_0x2ef706,_0x22f442,_0x33239c={}){const _0x4eb905=a42_0x421b80,_0x118e05=getServiceRegistryPath(_0x33239c),_0x3ffd3e=getLocalServiceEntry(_0x2ef706,_0x33239c);if(!_0x3ffd3e)throw CliErrors[_0x4eb905(0x12c)](_0x4eb905(0x133)+_0x2ef706,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x26691d=resolve(_0x22f442),_0x321925=dirname(_0x26691d);return!existsSync(_0x321925)&&mkdirSync(_0x321925,{'recursive':!![]}),writeFileSync(_0x26691d,JSON[_0x4eb905(0x12f)](_0x3ffd3e['manifest'],null,0x2)+'\x0a',{'encoding':_0x4eb905(0x12b),'mode':0x180}),{'registryPath':_0x118e05,'filePath':_0x26691d,'entry':_0x3ffd3e};}export function removeServiceManifest(_0x41d908,_0x2c8581={}){const _0x23af79=a42_0x421b80,_0x458d2f=readServiceRegistry(_0x2c8581),_0x589c92=_0x41d908['trim'](),_0x344437=_0x458d2f[_0x23af79(0x154)][_0x23af79(0x148)](_0x19622d=>_0x19622d['serviceCode']===_0x589c92);if(_0x344437<0x0)throw CliErrors[_0x23af79(0x12c)]('Local\x20service\x20not\x20found:\x20'+_0x589c92,_0x23af79(0x123));const [_0xc71358]=_0x458d2f[_0x23af79(0x154)][_0x23af79(0x14b)](_0x344437,0x1),_0x149cbb=(_0x2c8581[_0x23af79(0x135)]??(()=>new Date()))()[_0x23af79(0x143)]();_0x458d2f[_0x23af79(0x163)]=_0x149cbb;const _0x4678d6=writeServiceRegistry(_0x458d2f,_0x2c8581);return{'registryPath':_0x4678d6,'entry':_0xc71358,'serviceCount':_0x458d2f['services']['length']};}export function listLocalServices(_0x215ed4={}){const _0x3141b8=a42_0x421b80;return readServiceRegistry(_0x215ed4)[_0x3141b8(0x154)];}export function getLocalServiceEntry(_0x305c85,_0x89cef4={}){const _0x3da124=a42_0x421b80;return readServiceRegistry(_0x89cef4)[_0x3da124(0x154)]['find'](_0x3e890c=>_0x3e890c['serviceCode']===_0x305c85[_0x3da124(0x165)]());}export function listLocalServiceTrees(_0x1098b7={}){const _0x15d2a0=a42_0x421b80;return readServiceRegistry(_0x1098b7)[_0x15d2a0(0x154)][_0x15d2a0(0x121)](_0x26dd29=>_0x26dd29[_0x15d2a0(0x134)]);}export function inspectServiceRegistry(_0x19f483={}){const _0x31e8e0=a42_0x421b80,_0x255192=getServiceRegistryPath(_0x19f483);if(!existsSync(_0x255192))return emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x155),![]);try{const _0x435fb2=readFileSync(_0x255192,'utf8');if(!_0x435fb2[_0x31e8e0(0x165)]())return emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x12a),!![]);const _0x925e44=JSON[_0x31e8e0(0x130)](_0x435fb2);if(_0x925e44[_0x31e8e0(0x11e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x11d),!![]),'schemaVersion':_0x925e44['schemaVersion'],'message':_0x31e8e0(0x11f)+String(_0x925e44[_0x31e8e0(0x11e)])};if(!Array['isArray'](_0x925e44['services']))return{...emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x11d),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x925e44[_0x31e8e0(0x163)],'message':'services\x20must\x20be\x20an\x20array'};const _0x266c0e=_0x925e44[_0x31e8e0(0x154)][_0x31e8e0(0x121)](summarizeLocalServiceEntry);return{'registryPath':_0x255192,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x925e44['updatedAt'],'serviceCount':_0x266c0e[_0x31e8e0(0x14c)],'commandCount':_0x266c0e[_0x31e8e0(0x141)]((_0x1eb009,_0x40d088)=>_0x1eb009+_0x40d088[_0x31e8e0(0x14a)],0x0),'services':_0x266c0e};}catch(_0x36518b){return{...emptyServiceRegistryInspection(_0x255192,'invalid',!![]),'message':_0x36518b instanceof Error?_0x36518b[_0x31e8e0(0x15b)]:String(_0x36518b)};}}export function formatValidationFailure(_0x53fe0d){const _0x487268=a42_0x421b80,_0x2d26ab=_0x53fe0d[_0x487268(0x168)][_0x487268(0x121)](_0x2e1729=>_0x2e1729['path']+':\x20'+_0x2e1729['message']);return _0x487268(0x128)+_0x2d26ab[_0x487268(0x166)]('\x0a');}function extractLoadedServiceManifests(_0x243306,_0x87324f){const _0xd6a3b5=a42_0x421b80;if(!isServiceRegistryLike(_0x243306)){const _0x4fe574=_0x243306,{manifest:_0x118580,errors:_0x307f8f}=adaptServiceTreeManifestForLegacyFramework(_0x4fe574),_0x36ef43=validateServiceTreeManifest(_0x118580),_0x2063f3=mergeValidationErrors(_0x36ef43,_0x307f8f);return[{'manifest':_0x4fe574,'report':_0x2063f3,'normalizedManifest':_0x2063f3['ok']?normalizeServiceTreeManifest(_0x118580):undefined,'sourceHash':_0x87324f}];}return _0x243306['services'][_0xd6a3b5(0x121)]((_0x179e93,_0x11eb33)=>{const _0x5ce00e=_0xd6a3b5,_0x286e8a=isObjectRecord(_0x179e93)?_0x179e93[_0x5ce00e(0x144)]:undefined,{manifest:_0x5c4ea3,errors:_0x52432b}=adaptServiceTreeManifestForLegacyFramework(_0x286e8a),_0xa96448=validateServiceTreeManifest(_0x5c4ea3),_0x5ad020=mergeValidationErrors(_0xa96448,_0x52432b),_0x2b44a4=isObjectRecord(_0x179e93)&&typeof _0x179e93[_0x5ce00e(0x14f)]===_0x5ce00e(0x120)?_0x179e93[_0x5ce00e(0x14f)]:undefined;return{'manifest':_0x286e8a,'report':_0x5ad020,'normalizedManifest':_0x5ad020['ok']?normalizeServiceTreeManifest(_0x5c4ea3):undefined,'sourceHash':sha256(JSON['stringify'](_0x286e8a,null,0x2)+'\x0a'),'registryIndex':_0x11eb33,'registryServiceCode':_0x2b44a4};});}function mergeValidationErrors(_0x142419,_0x341dc5){const _0x361dcc=a42_0x421b80,_0x2eb3a2=_0x142419[_0x361dcc(0x168)][_0x361dcc(0x121)](_0x48c80e=>_0x48c80e[_0x361dcc(0x15b)]===_0x361dcc(0x156)?{..._0x48c80e,'message':_0x361dcc(0x131)}:_0x48c80e),_0x280158=[..._0x341dc5,..._0x2eb3a2];return{'ok':_0x280158['length']===0x0,'errors':_0x280158,'warnings':_0x142419[_0x361dcc(0x158)]};}function aggregateValidationReports(_0x3a4776){const _0x327f52=a42_0x421b80,_0x4b70db=_0x3a4776[_0x327f52(0x167)](_0x3a8e6a=>_0x3a8e6a['registryIndex']===undefined?_0x3a8e6a['report'][_0x327f52(0x168)]:_0x3a8e6a[_0x327f52(0x15a)]['errors'][_0x327f52(0x121)](_0x4e78b4=>({..._0x4e78b4,'path':prefixRegistryIssuePath(_0x3a8e6a[_0x327f52(0x162)],_0x4e78b4[_0x327f52(0x138)])}))),_0x1fe8fd=_0x3a4776[_0x327f52(0x167)](_0x3227d8=>_0x3227d8['registryIndex']===undefined?_0x3227d8[_0x327f52(0x15a)][_0x327f52(0x158)]:_0x3227d8['report'][_0x327f52(0x158)]['map'](_0x462574=>({..._0x462574,'path':prefixRegistryIssuePath(_0x3227d8[_0x327f52(0x162)],_0x462574[_0x327f52(0x138)])})));return{'ok':_0x4b70db[_0x327f52(0x14c)]===0x0,'errors':_0x4b70db,'warnings':_0x1fe8fd};}function prefixRegistryIssuePath(_0x13bdb9,_0x1f0a46){const _0x4325b3=a42_0x421b80;if(_0x1f0a46==='$')return _0x4325b3(0x16a)+_0x13bdb9+_0x4325b3(0x12e);if(_0x1f0a46[_0x4325b3(0x14e)]('$.'))return'$.services['+_0x13bdb9+_0x4325b3(0x12e)+_0x1f0a46[_0x4325b3(0x129)](0x1);if(_0x1f0a46[_0x4325b3(0x14e)]('$['))return _0x4325b3(0x16a)+_0x13bdb9+_0x4325b3(0x12e)+_0x1f0a46[_0x4325b3(0x129)](0x1);return _0x4325b3(0x16a)+_0x13bdb9+_0x4325b3(0x140)+_0x1f0a46;}function isServiceRegistryLike(_0x3a44da){const _0x1d3050=a42_0x421b80;return isObjectRecord(_0x3a44da)&&_0x3a44da[_0x1d3050(0x11e)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x1d3050(0x16e)](_0x3a44da['services']);}function isObjectRecord(_0x4e8d13){const _0x288b53=a42_0x421b80;return Boolean(_0x4e8d13)&&typeof _0x4e8d13===_0x288b53(0x16b)&&!Array[_0x288b53(0x16e)](_0x4e8d13);}function emptyServiceRegistryInspection(_0x15538c,_0x27a2da,_0xfdd1b7){return{'registryPath':_0x15538c,'exists':_0xfdd1b7,'status':_0x27a2da,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x2f7c17){const _0x2a6a28=a42_0x421b80,_0x337968=_0x2f7c17[_0x2a6a28(0x134)],_0x88faac=_0x337968[_0x2a6a28(0x142)][_0x2a6a28(0x121)](_0x433079=>({'path':_0x433079['cliPath'],'description':_0x433079[_0x2a6a28(0x149)],'risk':_0x433079[_0x2a6a28(0x139)],'targetKind':_0x433079['target']['kind'],'targetCommand':_0x433079[_0x2a6a28(0x16c)][_0x2a6a28(0x126)]}));return{'serviceCode':_0x2f7c17['serviceCode'],'name':_0x337968[_0x2a6a28(0x15c)]['name'],'description':_0x337968['service']['description'],'version':_0x2f7c17[_0x2a6a28(0x14d)],'importedAt':_0x2f7c17[_0x2a6a28(0x146)],'source':_0x2f7c17[_0x2a6a28(0x153)],'commandCount':_0x88faac[_0x2a6a28(0x14c)],'commands':_0x88faac};}function sha256(_0x3aad90){const _0x1a2904=a42_0x421b80;return createHash('sha256')['update'](_0x3aad90)['digest'](_0x1a2904(0x13f));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a43_0x3c01a6=a43_0x2c94;(function(_0x171dd4,_0x41218b){const _0x1a8cf8=a43_0x2c94,_0x44a509=_0x171dd4();while(!![]){try{const _0x7e69cb=-parseInt(_0x1a8cf8(0x1c7))/0x1*(-parseInt(_0x1a8cf8(0x1c3))/0x2)+parseInt(_0x1a8cf8(0x1da))/0x3*(-parseInt(_0x1a8cf8(0x1d3))/0x4)+parseInt(_0x1a8cf8(0x1d8))/0x5+parseInt(_0x1a8cf8(0x1cd))/0x6*(parseInt(_0x1a8cf8(0x1dc))/0x7)+-parseInt(_0x1a8cf8(0x1c8))/0x8+-parseInt(_0x1a8cf8(0x1d1))/0x9*(-parseInt(_0x1a8cf8(0x1e5))/0xa)+-parseInt(_0x1a8cf8(0x1e3))/0xb*(-parseInt(_0x1a8cf8(0x1ca))/0xc);if(_0x7e69cb===_0x41218b)break;else _0x44a509['push'](_0x44a509['shift']());}catch(_0x2fe77b){_0x44a509['push'](_0x44a509['shift']());}}}(a43_0x3e3d,0x4c2ac));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a43_0x3e3d(){const _0x2d510a=['10RSNLCY','utf8','Refusing\x20to\x20overwrite\x20symlink:\x20','bool','2638gqYbcE','type','str','rendered','283migBQC','4937464cSNKXE','Created\x20local\x20Skill\x20draft\x20','1884hVTrto','force','trim','120sRHDRd','path','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','validation','217017HWxCAo','skillDir','2152NqOtDq','target','Skill\x20directory\x20already\x20exists:\x20','create','isSymbolicLink','2449535IfcmFD','skillName','3414tFgtMo','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','4193qGCvDH','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','map','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','write','将在本地生成一个自包含的\x20Skill\x20草稿目录;使用\x20--force\x20时会覆盖目录中同名的模板文件。确认界面不会展示本地路径。','files','44990sqEpRW','name'];a43_0x3e3d=function(){return _0x2d510a;};return a43_0x3e3d();}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':'skill','command':a43_0x3c01a6(0x1d6),'description':'创建本地自包含的运行态\x20Skill\x20草稿','risk':a43_0x3c01a6(0x1e0),'confirmationDescription':a43_0x3c01a6(0x1e1),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x2143e2){const _0x41ef74=a43_0x3c01a6,_0x1d3e95=buildSkillCreatePlan(_0x2143e2[_0x41ef74(0x1c5)](_0x41ef74(0x1e4)),_0x2143e2[_0x41ef74(0x1c5)](_0x41ef74(0x1c4)),_0x2143e2[_0x41ef74(0x1c5)](_0x41ef74(0x1d4)));return{'method':'WRITE','url':_0x1d3e95[_0x41ef74(0x1d2)],'body':{'skillName':_0x1d3e95['rendered'][_0x41ef74(0x1d9)],'type':_0x1d3e95[_0x41ef74(0x1c6)][_0x41ef74(0x1c4)],'selfContained':!![],'files':_0x1d3e95[_0x41ef74(0x1c6)][_0x41ef74(0x1e2)][_0x41ef74(0x1de)](_0xbf4495=>_0xbf4495[_0x41ef74(0x1ce)])},'description':_0x41ef74(0x1df)};},async 'execute'(_0x2eddeb){const _0x5871fb=a43_0x3c01a6,_0x345957=buildSkillCreatePlan(_0x2eddeb[_0x5871fb(0x1c5)](_0x5871fb(0x1e4)),_0x2eddeb['str'](_0x5871fb(0x1c4)),_0x2eddeb[_0x5871fb(0x1c5)]('target'));return writeSkillDraft(_0x345957,_0x2eddeb[_0x5871fb(0x1e8)](_0x5871fb(0x1cb))),{'ok':!![],'data':{'skillName':_0x345957[_0x5871fb(0x1c6)][_0x5871fb(0x1d9)],'type':_0x345957[_0x5871fb(0x1c6)][_0x5871fb(0x1c4)],'dir':_0x345957['skillDir'],'files':_0x345957[_0x5871fb(0x1c6)][_0x5871fb(0x1e2)][_0x5871fb(0x1de)](_0x44b856=>_0x44b856['path'])},'message':_0x5871fb(0x1c9)+_0x345957[_0x5871fb(0x1c6)][_0x5871fb(0x1d9)]};}};function buildSkillCreatePlan(_0xc3d29c,_0xd24a56,_0x3e55dd){const _0x102c28=a43_0x3c01a6,_0x14e72d=_0xd24a56[_0x102c28(0x1cc)](),_0x17a912=renderSkillTemplate({'skillName':_0xc3d29c,'type':_0x14e72d});!_0x14e72d&&writeCliSideChannelLine(_0x102c28(0x1db));const _0x5a7526=resolve(normalizeSkillTarget(_0x3e55dd));return{'rendered':_0x17a912,'targetRoot':_0x5a7526,'skillDir':resolve(_0x5a7526,_0x17a912[_0x102c28(0x1d9)])};}function a43_0x2c94(_0x45d35a,_0x3f641f){_0x45d35a=_0x45d35a-0x1c3;const _0x3e3d3e=a43_0x3e3d();let _0x2c946e=_0x3e3d3e[_0x45d35a];return _0x2c946e;}function normalizeSkillTarget(_0x832ac4){const _0x2196e1=a43_0x3c01a6;return(_0x832ac4||DEFAULT_SKILL_TARGET)[_0x2196e1(0x1cc)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x7c36ee,_0x2c31db){const _0x127cb9=a43_0x3c01a6;if(existsSync(_0x7c36ee[_0x127cb9(0x1d2)])){const _0x27cb38=lstatSync(_0x7c36ee[_0x127cb9(0x1d2)]);if(!_0x27cb38['isDirectory']()||_0x27cb38[_0x127cb9(0x1d7)]())throw CliErrors[_0x127cb9(0x1d0)](_0x127cb9(0x1cf)+_0x7c36ee[_0x127cb9(0x1d2)]);if(!_0x2c31db)throw CliErrors['validation'](_0x127cb9(0x1d5)+_0x7c36ee[_0x127cb9(0x1d2)],_0x127cb9(0x1dd));}for(const _0x3f0782 of _0x7c36ee[_0x127cb9(0x1c6)]['files']){const _0x177877=resolve(_0x7c36ee[_0x127cb9(0x1d2)],_0x3f0782[_0x127cb9(0x1ce)]),_0x1deae8=dirname(_0x177877);mkdirSync(_0x1deae8,{'recursive':!![]});if(existsSync(_0x177877)&&lstatSync(_0x177877)[_0x127cb9(0x1d7)]())throw CliErrors[_0x127cb9(0x1d0)](_0x127cb9(0x1e7)+_0x177877);writeFileSync(_0x177877,_0x3f0782['content'],_0x127cb9(0x1e6));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a44_0x367393=a44_0x166b;(function(_0x140a3a,_0x305543){const _0x341920=a44_0x166b,_0x2295a2=_0x140a3a();while(!![]){try{const _0x2d6817=parseInt(_0x341920(0x15d))/0x1+parseInt(_0x341920(0x15b))/0x2*(parseInt(_0x341920(0x16a))/0x3)+-parseInt(_0x341920(0x175))/0x4+-parseInt(_0x341920(0x163))/0x5*(parseInt(_0x341920(0x14d))/0x6)+parseInt(_0x341920(0x156))/0x7+parseInt(_0x341920(0x166))/0x8*(parseInt(_0x341920(0x173))/0x9)+-parseInt(_0x341920(0x15c))/0xa;if(_0x2d6817===_0x305543)break;else _0x2295a2['push'](_0x2295a2['shift']());}catch(_0x21d85a){_0x2295a2['push'](_0x2295a2['shift']());}}}(a44_0x5c37,0x8010e));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x229646){const _0x129d01=a44_0x166b,_0x52a3e7=_0x229646[_0x129d01(0x16e)](_0x129d01(0x160))[_0x129d01(0x162)](),_0x39fd41=_0x229646[_0x129d01(0x16e)](_0x129d01(0x15e))['trim'](),_0x5e21c9=_0x229646[_0x129d01(0x16e)](_0x129d01(0x14e));if(!_0x52a3e7||!_0x39fd41||_0x5e21c9!==_0x129d01(0x155)&&_0x5e21c9!==_0x129d01(0x172))throw CliErrors[_0x129d01(0x14b)](_0x129d01(0x15a));return{'skillCode':_0x52a3e7,'version':_0x39fd41,'scope':_0x5e21c9};}function a44_0x166b(_0x580190,_0x522053){_0x580190=_0x580190-0x14a;const _0x5c374b=a44_0x5c37();let _0x166bfc=_0x5c374b[_0x580190];return _0x166bfc;}async function readDiagramWriteInput(_0xd2415a){const _0x461012=a44_0x166b,_0x3185b2=_0xd2415a[_0x461012(0x152)](_0x461012(0x168)),_0x18572a=_0xd2415a['str']('source-fingerprint')[_0x461012(0x162)]();if(!Number['isInteger'](_0x3185b2)||_0x3185b2<0x0)throw CliErrors[_0x461012(0x14b)](_0x461012(0x16b));if(!/^sha256:[0-9a-f]{64}$/[_0x461012(0x157)](_0x18572a))throw CliErrors[_0x461012(0x14b)]('--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.');return{'expectedDiagramRevision':_0x3185b2,'sourceFingerprint':_0x18572a,'diagram':await readRequiredSkillDiagram(_0xd2415a[_0x461012(0x16e)](_0x461012(0x169)))};}function a44_0x5c37(){const _0x3693c2=['validation','skill','5673198iXKKpA','scope','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','Skill\x20diagram\x20for\x20','Found\x20Skill\x20diagram\x20for\x20','num','write','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','personal','3254090UVENRy','test','Skill\x20diagram\x20validation\x20passed\x20for\x20','appCode','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','2zbKazL','5623230sEAMQI','660255TrrzhA','version','created','skill-code','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','trim','5ACriAF','found','Created','112DOuJWk','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','expected-diagram-revision','diagram-file','2406309uOEsLz','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','expectedDiagramRevision','\x20Skill\x20diagram\x20for\x20','str',';\x20next\x20write\x20expects\x20revision\x20','action','read','company','83817yECHqo',';\x20first\x20write\x20expects\x20revision\x20','100784kQyZhw','skillCode','diagram-show','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version'];a44_0x5c37=function(){return _0x3693c2;};return a44_0x5c37();}export const diagramValidateCommand={'service':a44_0x367393(0x14c),'command':'diagram-validate','description':a44_0x367393(0x161),'risk':a44_0x367393(0x171),'flags':WRITE_FLAGS,async 'execute'(_0x40867c){const _0x399975=a44_0x367393,_0x1f3afa=readDiagramTarget(_0x40867c),_0x1b177e=await validateRuntimeSkillVersionDiagram(_0x40867c[_0x399975(0x159)],_0x1f3afa[_0x399975(0x176)],_0x1f3afa[_0x399975(0x15e)],_0x1f3afa[_0x399975(0x14e)],await readDiagramWriteInput(_0x40867c));return{'ok':!![],'data':_0x1b177e,'message':_0x399975(0x158)+_0x1f3afa[_0x399975(0x176)]+'@'+_0x1f3afa[_0x399975(0x15e)]+'.'};}};export const diagramPushCommand={'service':a44_0x367393(0x14c),'command':'diagram-push','description':a44_0x367393(0x14f),'risk':a44_0x367393(0x153),'confirmationDescription':a44_0x367393(0x154),'flags':WRITE_FLAGS,async 'execute'(_0x1ea697){const _0x21ea52=a44_0x367393,_0x3576b5=readDiagramTarget(_0x1ea697),_0x4a5174=await putRuntimeSkillVersionDiagram(_0x1ea697[_0x21ea52(0x159)],_0x3576b5['skillCode'],_0x3576b5['version'],_0x3576b5[_0x21ea52(0x14e)],await readDiagramWriteInput(_0x1ea697));return{'ok':!![],'data':_0x4a5174,'message':_0x4a5174[_0x21ea52(0x170)]==='unchanged'?_0x21ea52(0x150)+_0x3576b5[_0x21ea52(0x176)]+'@'+_0x3576b5[_0x21ea52(0x15e)]+'\x20is\x20unchanged.':(_0x4a5174[_0x21ea52(0x170)]===_0x21ea52(0x15f)?_0x21ea52(0x165):'Updated')+_0x21ea52(0x16d)+_0x3576b5['skillCode']+'@'+_0x3576b5[_0x21ea52(0x15e)]+'.'};}};export const diagramShowCommand={'service':a44_0x367393(0x14c),'command':a44_0x367393(0x177),'description':a44_0x367393(0x14a),'risk':a44_0x367393(0x171),'flags':TARGET_FLAGS,async 'execute'(_0xcb8b03){const _0x55a275=a44_0x367393,_0x1adea3=readDiagramTarget(_0xcb8b03),_0x13165a=await getRuntimeSkillVersionDiagram(_0xcb8b03[_0x55a275(0x159)],_0x1adea3[_0x55a275(0x176)],_0x1adea3['version'],_0x1adea3[_0x55a275(0x14e)]);return{'ok':!![],'data':_0x13165a,'message':_0x13165a[_0x55a275(0x164)]?_0x55a275(0x151)+_0x1adea3['skillCode']+'@'+_0x1adea3[_0x55a275(0x15e)]+_0x55a275(0x16f)+_0x13165a[_0x55a275(0x16c)]+'.':_0x55a275(0x167)+_0x1adea3[_0x55a275(0x176)]+'@'+_0x1adea3[_0x55a275(0x15e)]+_0x55a275(0x174)+_0x13165a[_0x55a275(0x16c)]+'.'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a45_0x4f212d=a45_0x503b;(function(_0x5765e1,_0x44ee29){const _0x173e34=a45_0x503b,_0x49fe29=_0x5765e1();while(!![]){try{const _0x2c02c0=parseInt(_0x173e34(0x156))/0x1*(-parseInt(_0x173e34(0x149))/0x2)+-parseInt(_0x173e34(0x155))/0x3+-parseInt(_0x173e34(0x158))/0x4+-parseInt(_0x173e34(0x142))/0x5*(parseInt(_0x173e34(0x148))/0x6)+parseInt(_0x173e34(0x13b))/0x7+parseInt(_0x173e34(0x139))/0x8+-parseInt(_0x173e34(0x159))/0x9*(-parseInt(_0x173e34(0x144))/0xa);if(_0x2c02c0===_0x44ee29)break;else _0x49fe29['push'](_0x49fe29['shift']());}catch(_0x3bc8f5){_0x49fe29['push'](_0x49fe29['shift']());}}}(a45_0x2d43,0x3b0aa));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a45_0x503b(_0x23acc8,_0x34354a){_0x23acc8=_0x23acc8-0x12f;const _0x2d439a=a45_0x2d43();let _0x503b93=_0x2d439a[_0x23acc8];return _0x503b93;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x4f212d(0x14f),'command':a45_0x4f212d(0x13a),'description':a45_0x4f212d(0x150),'risk':a45_0x4f212d(0x138),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x32c5ee){return syncRuntimeSkills(_0x32c5ee);}};function a45_0x2d43(){const _0x5f5c9c=['12saWENR','reduce','push','version','company','map','skill','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','skipped','action','personal','filter','892815NxNgEL','5318uoZALP','../../../skills/runtime-skill-sync.js','313428nGUSya','9UxUPYL','envName','production','skillCode','\x20personal\x20and\x20','skillRoots','created','unchanged','includes','project','trim','Installed\x20','read','2218600CQkJpq','install','1197273VyxpGf','code','\x20company\x20Skill(s).','global','flatMap','appCode','bool','928430ifFJoA','authRequired','3870260SueWgC','str','length','scope','6TwqsbT'];a45_0x2d43=function(){return _0x5f5c9c;};return a45_0x2d43();}async function syncRuntimeSkills(_0x175254){const _0xba06ad=a45_0x4f212d,{downloadRuntimeSkillPackage:_0x916442,listRuntimeSkills:_0x218ce0}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x1b1bd3,materializeRuntimeSkill:_0x11b0c1,pruneStaleRuntimeSkillCache:_0x3a412d,pruneStaleRuntimeSkillLinks:_0x3eb8bf,resolveRuntimeSkillInstallTarget:_0x27b553}=await import(_0xba06ad(0x157)),_0x25ce08=_0x175254[_0xba06ad(0x145)](_0xba06ad(0x13c)),_0x409404=normalizeSyncScopes(_0x175254['str'](_0xba06ad(0x147))),_0x47385c=_0x175254[_0xba06ad(0x15a)]??_0xba06ad(0x15b),_0x4a5c4a=_0x175254['accessKey'],_0x4d0890=_0x175254['bool']('force');if(!_0x4a5c4a)throw CliErrors[_0xba06ad(0x143)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x47c3fa=_0x27b553(_0x175254[_0xba06ad(0x140)],_0x175254[_0xba06ad(0x141)](_0xba06ad(0x135))?'project':'global'),_0x23f33f=_0x27b553(_0x175254[_0xba06ad(0x140)],_0x47c3fa[_0xba06ad(0x147)]===_0xba06ad(0x135)?_0xba06ad(0x13e):'project'),_0xd238ba=await Promise['all'](_0x409404[_0xba06ad(0x14e)](_0x5ee2d6=>_0x218ce0({'appCode':_0x175254[_0xba06ad(0x140)],'scope':_0x5ee2d6,'code':_0x25ce08[_0xba06ad(0x136)]()||undefined}))),_0x2e1bf8=_0x409404[_0xba06ad(0x134)](_0xba06ad(0x153))?_0xd238ba['flatMap']((_0x14012e,_0x16de2c)=>_0x409404[_0x16de2c]===_0xba06ad(0x153)?_0x14012e[_0xba06ad(0x153)]:[]):[],_0x379ce3=_0x409404['includes'](_0xba06ad(0x14d))?_0xd238ba[_0xba06ad(0x13f)]((_0x264f57,_0x4d48c7)=>_0x409404[_0x4d48c7]==='company'?_0x264f57[_0xba06ad(0x14d)]:[]):[],_0x388505=new Set([..._0x2e1bf8[_0xba06ad(0x14e)](_0xc09b5b=>_0xc09b5b[_0xba06ad(0x12f)]?.[_0xba06ad(0x136)]())[_0xba06ad(0x154)](_0x47d17a=>Boolean(_0x47d17a)),..._0x379ce3[_0xba06ad(0x14e)](_0x1b099d=>_0x1b099d[_0xba06ad(0x12f)]?.['trim']())[_0xba06ad(0x154)](_0x2ae542=>Boolean(_0x2ae542))]),_0x2d54cb=_0x25ce08['trim']()?[_0x25ce08[_0xba06ad(0x136)]()]:undefined,_0x2d4df4=_0x409404[_0xba06ad(0x146)]===0x2&&_0x409404['includes'](_0xba06ad(0x153))&&_0x409404['includes'](_0xba06ad(0x14d)),_0x20d1dc=_0x2d4df4?_0x3eb8bf(_0x47c3fa,_0x388505,_0x2d54cb):[],_0x448be6=_0x3a412d({'env':_0x47385c,'accessKey':_0x4a5c4a,'appCode':_0x175254['appCode'],'activeSkillCodes':_0x388505,'pruneSkillCodes':_0x2d54cb,'scopes':_0x409404,'protectedLinkRoots':_0x23f33f[_0xba06ad(0x131)]}),_0x75390b=[];for(const _0x237f71 of _0x2e1bf8){_0x75390b[_0xba06ad(0x14b)](_0x11b0c1(_0x237f71,'personal',{'env':_0x47385c,'accessKey':_0x4a5c4a,'appCode':_0x175254[_0xba06ad(0x140)],'force':_0x4d0890,'packageBytes':await downloadSkillPackage(_0x237f71,_0xba06ad(0x153),_0x175254[_0xba06ad(0x140)],_0x916442)}));}for(const _0xf20ddd of _0x379ce3){_0x75390b[_0xba06ad(0x14b)](_0x11b0c1(_0xf20ddd,'company',{'env':_0x47385c,'accessKey':_0x4a5c4a,'appCode':_0x175254[_0xba06ad(0x140)],'force':_0x4d0890,'packageBytes':await downloadSkillPackage(_0xf20ddd,'company',_0x175254['appCode'],_0x916442)}));}const _0x3895e6=_0x1b1bd3(_0x75390b,_0x47c3fa),_0x3ac99d=countLinkActions(_0x3895e6);return{'ok':!![],'data':{'appCode':_0x175254[_0xba06ad(0x140)],..._0x47c3fa['scope']===_0xba06ad(0x135)?{'installTarget':{'scope':_0x47c3fa['scope'],'skillRoots':[..._0x47c3fa[_0xba06ad(0x131)]]}}:{},'personal':_0x2e1bf8[_0xba06ad(0x146)],'company':_0x379ce3[_0xba06ad(0x146)],'materialized':_0x75390b[_0xba06ad(0x146)],'links':{'total':_0x3895e6[_0xba06ad(0x146)],'created':_0x3ac99d[_0xba06ad(0x132)]??0x0,'updated':_0x3ac99d['updated']??0x0,'unchanged':_0x3ac99d[_0xba06ad(0x133)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x20d1dc[_0xba06ad(0x154)](_0x2b0a42=>_0x2b0a42[_0xba06ad(0x152)]==='removed')[_0xba06ad(0x146)],'cacheDirs':_0x448be6[_0xba06ad(0x154)](_0x37bbe2=>_0x37bbe2['action']==='removed')['length'],'skipped':[..._0x20d1dc,..._0x448be6]['filter'](_0xe21318=>_0xe21318[_0xba06ad(0x152)]===_0xba06ad(0x151))[_0xba06ad(0x146)]},'skills':{'personal':_0x2e1bf8[_0xba06ad(0x14e)](summarizeRuntimeSkill),'company':_0x379ce3[_0xba06ad(0x14e)](summarizeRuntimeSkill)}},'message':_0xba06ad(0x137)+_0x2e1bf8['length']+_0xba06ad(0x130)+_0x379ce3[_0xba06ad(0x146)]+_0xba06ad(0x13d)};}async function downloadSkillPackage(_0x18ff1b,_0xc02abd,_0x4e2cd3,_0x1f7012){const _0x2ae690=a45_0x4f212d,_0x3ae50e=_0x18ff1b[_0x2ae690(0x14c)]?.['trim']();return _0x3ae50e?_0x1f7012(_0xc02abd,_0x18ff1b[_0x2ae690(0x12f)],_0x4e2cd3,_0x3ae50e):_0x1f7012(_0xc02abd,_0x18ff1b[_0x2ae690(0x12f)],_0x4e2cd3);}function countLinkActions(_0x3c550f){const _0x303e97=a45_0x4f212d;return _0x3c550f[_0x303e97(0x14a)]((_0x4459e0,_0x2a16f9)=>{return _0x4459e0[_0x2a16f9['action']]=(_0x4459e0[_0x2a16f9['action']]??0x0)+0x1,_0x4459e0;},{});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a46_0x130301=a46_0x3ec0;(function(_0x4eed01,_0x4fdce4){const _0x3e440d=a46_0x3ec0,_0x5775e8=_0x4eed01();while(!![]){try{const _0x370e29=-parseInt(_0x3e440d(0x8d))/0x1+-parseInt(_0x3e440d(0x74))/0x2*(parseInt(_0x3e440d(0x83))/0x3)+-parseInt(_0x3e440d(0x94))/0x4*(parseInt(_0x3e440d(0x82))/0x5)+parseInt(_0x3e440d(0x81))/0x6*(-parseInt(_0x3e440d(0x85))/0x7)+parseInt(_0x3e440d(0x93))/0x8+-parseInt(_0x3e440d(0x92))/0x9*(parseInt(_0x3e440d(0x79))/0xa)+parseInt(_0x3e440d(0x76))/0xb*(parseInt(_0x3e440d(0x7c))/0xc);if(_0x370e29===_0x4fdce4)break;else _0x5775e8['push'](_0x5775e8['shift']());}catch(_0x58f5d6){_0x5775e8['push'](_0x5775e8['shift']());}}}(a46_0x5388,0xebbde));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a46_0x3ec0(_0x149d4c,_0x145e1b){_0x149d4c=_0x149d4c-0x72;const _0x5388eb=a46_0x5388();let _0x3ec0a0=_0x5388eb[_0x149d4c];return _0x3ec0a0;}function a46_0x5388(){const _0x4a1b9d=['map','Listed\x20','../../../core/api-client.js','bool','5423661QhFfVV','4188528BGpZow','272636pwubpV','builtin','production','\x20remote\x20Skill(s).','project','10htoGIX','str','4642FHwYHU','envName','company','20eAEygd','personal','trim','140664HExUtq','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','list','code','global','4446UciHSI','65rNIYux','451821GfUPAV','filter','5299lzYmDX','scope','appCode','\x20local\x20Skill(s).','skill','local','read','length','1099355cQxBqZ'];a46_0x5388=function(){return _0x4a1b9d;};return a46_0x5388();}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a46_0x130301(0x89),'command':a46_0x130301(0x7e),'description':a46_0x130301(0x7d),'risk':a46_0x130301(0x8b),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x469250){const _0x2a7bfe=a46_0x130301,_0x5ee04d=_0x469250[_0x2a7bfe(0x75)](_0x2a7bfe(0x7f)),_0x2b2e20=normalizeListScope(_0x469250[_0x2a7bfe(0x75)](_0x2a7bfe(0x86)));if(_0x469250[_0x2a7bfe(0x91)](_0x2a7bfe(0x8a))){const _0x3f02f3=_0x469250['accessKey'];if(!_0x3f02f3)throw CliErrors['authRequired']();const {listLocalRuntimeSkills:_0x517234,resolveRuntimeSkillInstallTarget:_0x56aab6}=await import('../../../skills/runtime-skill-sync.js'),_0x1a00a8=_0x56aab6(_0x469250[_0x2a7bfe(0x87)],_0x469250[_0x2a7bfe(0x91)](_0x2a7bfe(0x73))?_0x2a7bfe(0x73):_0x2a7bfe(0x80)),_0x32fa56=_0x517234({'env':_0x469250[_0x2a7bfe(0x77)]??_0x2a7bfe(0x96),'accessKey':_0x3f02f3,'appCode':_0x469250[_0x2a7bfe(0x87)],'scopes':listScopeToRuntimeScopes(_0x2b2e20),'code':_0x5ee04d[_0x2a7bfe(0x7b)]()||undefined},_0x1a00a8),_0x51b24c=groupLocalRuntimeSkills(_0x32fa56);return{'ok':!![],'data':{'appCode':_0x469250['appCode'],'source':_0x2a7bfe(0x8a),..._0x1a00a8[_0x2a7bfe(0x86)]===_0x2a7bfe(0x73)?{'installScope':_0x1a00a8[_0x2a7bfe(0x86)]}:{},'scope':_0x2b2e20,'total':_0x32fa56['length'],'personal':_0x51b24c[_0x2a7bfe(0x7a)][_0x2a7bfe(0x8c)],'company':_0x51b24c[_0x2a7bfe(0x78)][_0x2a7bfe(0x8c)],'items':_0x32fa56['map'](summarizeLocalRuntimeSkill),'skills':{'personal':_0x51b24c[_0x2a7bfe(0x7a)][_0x2a7bfe(0x8e)](summarizeLocalRuntimeSkill),'company':_0x51b24c[_0x2a7bfe(0x78)][_0x2a7bfe(0x8e)](summarizeLocalRuntimeSkill)}},'message':_0x2a7bfe(0x8f)+_0x32fa56['length']+_0x2a7bfe(0x88)};}const {listRuntimeSkills:_0x209e9a}=await import(_0x2a7bfe(0x90)),_0x3bcf77=await _0x209e9a({'appCode':_0x469250[_0x2a7bfe(0x87)],'scope':listScopeToRemoteScope(_0x2b2e20),'code':_0x5ee04d[_0x2a7bfe(0x7b)]()||undefined}),_0x15acdb=shouldListScope(_0x2b2e20,'personal')?_0x3bcf77['personal']??[]:[],_0x110453=shouldListScope(_0x2b2e20,_0x2a7bfe(0x78))?_0x3bcf77[_0x2a7bfe(0x78)]??[]:[],_0x2422ae=[..._0x15acdb,..._0x110453];return{'ok':!![],'data':{'appCode':_0x469250[_0x2a7bfe(0x87)],'source':'remote','scope':_0x2b2e20,'total':_0x2422ae[_0x2a7bfe(0x8c)],'personal':_0x15acdb[_0x2a7bfe(0x8c)],'company':_0x110453[_0x2a7bfe(0x8c)],'items':_0x2422ae[_0x2a7bfe(0x8e)](summarizeRuntimeSkill),'skills':{'personal':_0x15acdb['map'](summarizeRuntimeSkill),'company':_0x110453[_0x2a7bfe(0x8e)](summarizeRuntimeSkill)}},'message':_0x2a7bfe(0x8f)+_0x2422ae['length']+_0x2a7bfe(0x72)};}};function groupLocalRuntimeSkills(_0x5abf45){const _0x42f686=a46_0x130301;return{'personal':_0x5abf45[_0x42f686(0x84)](_0xc9fb8a=>_0xc9fb8a['scope']==='personal'),'company':_0x5abf45[_0x42f686(0x84)](_0x3790b2=>_0x3790b2[_0x42f686(0x86)]===_0x42f686(0x78)),'builtin':_0x5abf45[_0x42f686(0x84)](_0x4053b7=>_0x4053b7[_0x42f686(0x86)]===_0x42f686(0x95))};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a47_0x1403(_0x218976,_0x521572){_0x218976=_0x218976-0xb0;const _0x2a4bac=a47_0x2a4b();let _0x14035f=_0x2a4bac[_0x218976];return _0x14035f;}const a47_0x2488e0=a47_0x1403;(function(_0x5d7e71,_0xb16022){const _0x3359f2=a47_0x1403,_0x2e65e8=_0x5d7e71();while(!![]){try{const _0xda31e7=parseInt(_0x3359f2(0xbb))/0x1*(-parseInt(_0x3359f2(0xb5))/0x2)+parseInt(_0x3359f2(0xbc))/0x3+-parseInt(_0x3359f2(0xb9))/0x4*(-parseInt(_0x3359f2(0xba))/0x5)+-parseInt(_0x3359f2(0xb8))/0x6+-parseInt(_0x3359f2(0xb4))/0x7+-parseInt(_0x3359f2(0xb2))/0x8+parseInt(_0x3359f2(0xb3))/0x9;if(_0xda31e7===_0xb16022)break;else _0x2e65e8['push'](_0x2e65e8['shift']());}catch(_0x50e735){_0x2e65e8['push'](_0x2e65e8['shift']());}}}(a47_0x2a4b,0x825b2));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a47_0x2a4b(){const _0x515bc6=['4532646zwGjJy','8mwgoux','981155ZpbtWd','1117DiEazN','2310489cAtXZQ','push','write','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','8479768XlnzuK','18388548czRXeK','568743PqbyBq','1388vHhvOZ','skill','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。'];a47_0x2a4b=function(){return _0x515bc6;};return a47_0x2a4b();}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a47_0x2488e0(0xb6),'command':a47_0x2488e0(0xbd),'description':a47_0x2488e0(0xb1),'risk':a47_0x2488e0(0xb0),'confirmationDescription':a47_0x2488e0(0xb7),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a48_0x53c7(_0x33ed29,_0x3b44ee){_0x33ed29=_0x33ed29-0x1b2;const _0x10b162=a48_0x10b1();let _0x53c76f=_0x10b162[_0x33ed29];return _0x53c76f;}const a48_0x4f94c2=a48_0x53c7;(function(_0x67381e,_0x533ad7){const _0x5b8b58=a48_0x53c7,_0x342b77=_0x67381e();while(!![]){try{const _0x4dda08=parseInt(_0x5b8b58(0x1c3))/0x1*(-parseInt(_0x5b8b58(0x1c4))/0x2)+parseInt(_0x5b8b58(0x1c5))/0x3*(parseInt(_0x5b8b58(0x1b3))/0x4)+-parseInt(_0x5b8b58(0x1bc))/0x5*(-parseInt(_0x5b8b58(0x1b8))/0x6)+parseInt(_0x5b8b58(0x1b6))/0x7*(-parseInt(_0x5b8b58(0x1bf))/0x8)+-parseInt(_0x5b8b58(0x1b4))/0x9*(parseInt(_0x5b8b58(0x1c8))/0xa)+-parseInt(_0x5b8b58(0x1c7))/0xb+parseInt(_0x5b8b58(0x1c2))/0xc;if(_0x4dda08===_0x533ad7)break;else _0x342b77['push'](_0x342b77['shift']());}catch(_0x2ca8f2){_0x342b77['push'](_0x342b77['shift']());}}}(a48_0x10b1,0x1d8e4));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':a48_0x4f94c2(0x1c6),'command':a48_0x4f94c2(0x1c0),'description':a48_0x4f94c2(0x1b5),'risk':a48_0x4f94c2(0x1b7),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x46c74c){const _0x18109c=a48_0x4f94c2,_0x3716ed=_0x46c74c[_0x18109c(0x1be)](_0x18109c(0x1b2)),_0xcfa42e=validateSkillDirectory(_0x46c74c[_0x18109c(0x1bb)](_0x18109c(0x1b9)),{'strict':_0x3716ed});return throwIfSkillValidationFailed(_0xcfa42e,_0x3716ed),{'ok':!![],'data':{'dir':_0xcfa42e['dir'],'type':_0xcfa42e['type'],'errors':_0xcfa42e[_0x18109c(0x1ba)],'warnings':_0xcfa42e[_0x18109c(0x1c1)]},'message':_0x18109c(0x1bd)};}};function a48_0x10b1(){const _0x13a23a=['Skill\x20validation\x20passed.','bool','34616DJObuO','validate','warnings','3327060iMFyiT','93371ICXyVL','2OeuCFP','30CjNLhQ','skill','846615UmhMii','30nCoDTM','strict','86652cGGxRy','591633RaLxgC','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','84wevTIE','read','1686QrxohN','dir','errors','str','830FJuXSO'];a48_0x10b1=function(){return _0x13a23a;};return a48_0x10b1();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x293f7e,_0x5a3070){const _0x28921b=a49_0x4fac,_0x305689=_0x293f7e();while(!![]){try{const _0x379698=-parseInt(_0x28921b(0x1d0))/0x1*(-parseInt(_0x28921b(0x1de))/0x2)+parseInt(_0x28921b(0x1d3))/0x3+-parseInt(_0x28921b(0x1ce))/0x4*(parseInt(_0x28921b(0x1cc))/0x5)+-parseInt(_0x28921b(0x1c6))/0x6*(parseInt(_0x28921b(0x1c7))/0x7)+-parseInt(_0x28921b(0x1d2))/0x8*(parseInt(_0x28921b(0x1e0))/0x9)+parseInt(_0x28921b(0x1c4))/0xa*(-parseInt(_0x28921b(0x1c8))/0xb)+-parseInt(_0x28921b(0x1c5))/0xc*(-parseInt(_0x28921b(0x1d7))/0xd);if(_0x379698===_0x5a3070)break;else _0x305689['push'](_0x305689['shift']());}catch(_0x48e816){_0x305689['push'](_0x305689['shift']());}}}(a49_0x2750,0xa73f3));import{existsSync,readFileSync,statSync}from'node:fs';import{resolve}from'node:path';function a49_0x2750(){const _0x5a93f7=['107146JBgtio','mermaid','trim','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','utf8','window','912754AJbSKl','parse','261lLTumi','isFile','1428660vPfwdC','1308qLpHPH','264qAMFOr','90587fcBmcg','11OhvCxQ','Mermaid\x20syntax\x20validation\x20failed.','default','document','125wGSXFB','replace','7336LAhXUL','validation','1QoNHMN','defineProperties','206688WAAUdw','2512956wEryan','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.'];a49_0x2750=function(){return _0x5a93f7;};return a49_0x2750();}import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';function a49_0x4fac(_0x17e449,_0x2ed67e){_0x17e449=_0x17e449-0x1c3;const _0x27504a=a49_0x2750();let _0x4facc2=_0x27504a[_0x17e449];return _0x4facc2;}let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x3d63aa){const _0x36ebfd=a49_0x4fac,_0x2de5e7=_0x3d63aa[_0x36ebfd(0x1d9)]();if(!_0x2de5e7)throw CliErrors[_0x36ebfd(0x1cf)](_0x36ebfd(0x1d6),_0x36ebfd(0x1db));let _0x2ba093;if(_0x2de5e7==='-')try{_0x2ba093=readFileSync(0x0,'utf8');}catch{throw CliErrors['validation'](_0x36ebfd(0x1d5));}else{const _0x99d40b=resolve(_0x2de5e7);if(!existsSync(_0x99d40b))throw CliErrors[_0x36ebfd(0x1cf)](_0x36ebfd(0x1da)+_0x99d40b);if(!statSync(_0x99d40b)[_0x36ebfd(0x1c3)]())throw CliErrors[_0x36ebfd(0x1cf)]('Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x99d40b);_0x2ba093=readFileSync(_0x99d40b,_0x36ebfd(0x1dc));}return{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x2ba093)};}export async function validateAndCanonicalizeMermaid(_0x145d84){const _0x456d3c=a49_0x4fac,_0x46beb1=_0x145d84['replace'](/\r\n/g,'\x0a')[_0x456d3c(0x1cd)](/\r/g,'\x0a')[_0x456d3c(0x1cd)](/\n+$/,'')+'\x0a';try{const _0x237532=await loadMermaidApi();await _0x237532[_0x456d3c(0x1df)](_0x46beb1);}catch{throw diagramValidationError();}return _0x46beb1;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x421fdd=a49_0x4fac;if(!(_0x421fdd(0x1dd)in globalThis)||!(_0x421fdd(0x1cb)in globalThis)){const _0x487409=new JSDOM('');Object[_0x421fdd(0x1d1)](globalThis,{'window':{'configurable':!![],'value':_0x487409[_0x421fdd(0x1dd)]},'document':{'configurable':!![],'value':_0x487409['window'][_0x421fdd(0x1cb)]}});}return(await import(_0x421fdd(0x1d8)))[_0x421fdd(0x1ca)];})()),mermaidApiPromise;}function diagramValidationError(){const _0x3b5b1a=a49_0x4fac;return CliErrors[_0x3b5b1a(0x1cf)](_0x3b5b1a(0x1c9),_0x3b5b1a(0x1d4));}
|