@lovrabet/lovrabet-cli 2.2.2 → 2.2.3-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- 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/user-account/bind.d.ts +2 -0
- package/lib/commands/user-account/bind.js +1 -0
- package/lib/commands/user-account/index.d.ts +2 -0
- package/lib/commands/user-account/index.js +1 -0
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +2 -0
- 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/postinstall.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/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/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.js +1 -1
- 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
- package/skills/lovrabet/SKILL.md +7 -3
- package/skills/lovrabet/guides/sql-and-bff-workflow.md +5 -0
- package/skills/lovrabet/references/lovrabet-personal-bff-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-service-tree.md +2 -0
- package/skills/lovrabet/references/lovrabet-sql-workflow.md +4 -1
- package/skills/lovrabet/references/lovrabet-user-account.md +46 -0
- package/skills/lovrabet.manifest.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x362f9c,_0x372e4a){const _0x55124f=a39_0x283c,_0x27f1c7=_0x362f9c();while(!![]){try{const _0xaeccc9=-parseInt(_0x55124f(0xcf))/0x1+parseInt(_0x55124f(0xe3))/0x2+parseInt(_0x55124f(0xdc))/0x3*(-parseInt(_0x55124f(0x10b))/0x4)+-parseInt(_0x55124f(0x125))/0x5+-parseInt(_0x55124f(0x110))/0x6+parseInt(_0x55124f(0x11f))/0x7*(parseInt(_0x55124f(0xf4))/0x8)+-parseInt(_0x55124f(0xdf))/0x9*(-parseInt(_0x55124f(0x107))/0xa);if(_0xaeccc9===_0x372e4a)break;else _0x27f1c7['push'](_0x27f1c7['shift']());}catch(_0x5998eb){_0x27f1c7['push'](_0x27f1c7['shift']());}}}(a39_0xf9b2,0xef35e));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x11d743,_0x17e56d){const _0x101b29=a39_0x283c,_0x3ec457=listLocalServiceTrees();let _0x302dc6;for(const _0x6d8c30 of _0x3ec457){const _0x4add3a=matchServiceTreeCommand(_0x6d8c30,_0x11d743);if(!_0x4add3a)continue;(!_0x302dc6||_0x4add3a[_0x101b29(0xf9)][_0x101b29(0x108)][_0x101b29(0xdd)]>_0x302dc6[_0x101b29(0xf9)][_0x101b29(0x108)][_0x101b29(0xdd)])&&(_0x302dc6={'tree':_0x6d8c30,'command':_0x4add3a[_0x101b29(0xf9)],'remainingArgs':_0x4add3a[_0x101b29(0xca)]});}if(!_0x302dc6)return undefined;const _0x4baee6={..._0x17e56d};return applyAppBinding(_0x302dc6['tree'],_0x302dc6[_0x101b29(0xf9)],_0x4baee6),{'definition':buildDynamicCommandDefinition(_0x302dc6[_0x101b29(0x10a)],_0x302dc6[_0x101b29(0xf9)]),'args':_0x302dc6['remainingArgs'],'flags':_0x4baee6,'tree':_0x302dc6['tree'],'command':_0x302dc6[_0x101b29(0xf9)]};}export function generateDynamicServiceHelp(_0x2bc1f9){const _0x334d2a=a39_0x283c,_0x4b7d07=listLocalServiceTrees()['find'](_0x511814=>_0x511814[_0x334d2a(0xce)]['code']===_0x2bc1f9);if(!_0x4b7d07)return undefined;const _0x1fa315=[CLI_BIN_NAME+'\x20'+_0x2bc1f9+_0x334d2a(0x12a),'',_0x4b7d07['service'][_0x334d2a(0xd2)]||_0x2bc1f9,_0x4b7d07[_0x334d2a(0xce)][_0x334d2a(0xc8)]?'\x20\x20'+_0x4b7d07[_0x334d2a(0xce)][_0x334d2a(0xc8)]:'','',_0x334d2a(0x113),..._0x4b7d07['commands'][_0x334d2a(0x119)](_0x253ffe=>{const _0x5d3578=_0x334d2a,_0x5d0278=_0x253ffe[_0x5d3578(0x108)][_0x5d3578(0x111)](0x1)[_0x5d3578(0xd0)]('\x20'),_0x1cb605=_0x253ffe[_0x5d3578(0xda)]===_0x5d3578(0xe6)?'':'\x20['+_0x253ffe[_0x5d3578(0xda)]+']';return'\x20\x20'+_0x5d0278[_0x5d3578(0xe1)](0x18)+'\x20'+(_0x253ffe['description']||'')+_0x1cb605;}),'',_0x334d2a(0xfe)+CLI_BIN_NAME+_0x334d2a(0x12e)+_0x2bc1f9+_0x334d2a(0xeb)][_0x334d2a(0xf3)](Boolean);return _0x1fa315[_0x334d2a(0xd0)]('\x0a');}export function listDynamicServiceEntries(){const _0x54fb25=a39_0x283c;return listLocalServices()[_0x54fb25(0x119)](_0x2c4598=>{const _0x2fc8f2=_0x54fb25,_0xa5d6f2=_0x2c4598[_0x2fc8f2(0x105)];return{'service':_0xa5d6f2['service'][_0x2fc8f2(0x116)],'label':_0xa5d6f2['service'][_0x2fc8f2(0xd2)]||_0xa5d6f2['service'][_0x2fc8f2(0x116)],'commands':_0xa5d6f2['commands'][_0x2fc8f2(0x119)](_0x5cd6c6=>({'command':dynamicCommandName(_0x5cd6c6),'description':_0x5cd6c6[_0x2fc8f2(0xc8)]||_0x2fc8f2(0xed)+_0x5cd6c6['cliPath'],'tag':riskTag(_0x5cd6c6['risk'])}))};});}export function getDynamicServiceEntry(_0xf32d84){const _0x348c3b=a39_0x283c;return listDynamicServiceEntries()['find'](_0x4928ee=>_0x4928ee[_0x348c3b(0xce)]===_0xf32d84);}function a39_0xf9b2(){const _0x2bf687=['operator','data','userName','tenantCode','\x20->\x20','filter','64MqFjRB','\x22\x20in\x20service\x20command\x20','required','appRef','Preview\x20dynamic\x20service\x20command:\x20','command','\x20\x20\x20\x20','\x20\x20\x20\x20command:\x20','cliPath','kind','Use\x20`','sqlCode','username','number','\x20\x20[','rawFlags','now','normalizedManifest','Unknown\x20appRef\x20\x22','3130uMlDtm','fullPath','employeeId','tree','20044lhFIGj','datasetCode','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','string','boolean','1965534fjHFdp','slice','push','Commands:','bffId','\x20\x20\x20\x20functionName:\x20','code','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','\x20requires\x20target.sqlCode.','map','flatMap','nickname','dbtableConfig','\x20\x20SERVICE\x20TREE\x20TARGET','app','565075yPnZNG','envName','datatable','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','bff','\x20\x20\x20\x20datatable:\x20','9434490zwHgaI','\x20completed\x20in\x20','Unsupported\x20service\x20target\x20kind:\x20','SERVICE_TREE','type','\x20<command>\x20[flags]','\x20\x20MAP\x20TO','appcode','const','\x20service\x20detail\x20--service\x20','startsWith','appBindings','default','description','appCode','remainingArgs','nickName','params','mapTo','service','1953587UkKgUw','join','high-risk-write','name','args','Service\x20command\x20','cliName','target','tableName','sql','\x20\x20\x20\x20kind:\x20\x20\x20\x20','risk','source','171dvALpG','length','将通过\x20Service\x20Tree\x20执行“','122553zjkXro','validation','padEnd','bffCode','1051172FcDGbF','commands','\x20\x20\x20\x20sqlCode:\x20','read','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','env','scriptName','userId','`\x20to\x20inspect\x20the\x20manifest.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','Run\x20service\x20command\x20'];a39_0xf9b2=function(){return _0x2bf687;};return a39_0xf9b2();}export function listDynamicServiceDefinitions(_0x21d1ad){const _0x135141=a39_0x283c;return listLocalServiceTrees()['filter'](_0x173bd7=>!_0x21d1ad||_0x173bd7['service'][_0x135141(0x116)]===_0x21d1ad)[_0x135141(0x11a)](_0x23d26d=>_0x23d26d[_0x135141(0xe4)][_0x135141(0x119)](_0x20fc73=>buildDynamicCommandDefinition(_0x23d26d,_0x20fc73)));}export function getDynamicServiceDefinitions(_0x5c0849){const _0x325092=a39_0x283c,_0x291faa=listDynamicServiceDefinitions(_0x5c0849);return _0x291faa[_0x325092(0xdd)]>0x0?_0x291faa:undefined;}export function findDynamicServiceDefinition(_0x35d253,_0x52672b){return listDynamicServiceDefinitions(_0x35d253)['find'](_0x2304a4=>_0x2304a4['command']===_0x52672b);}export function buildDynamicCommandDefinition(_0x53dc31,_0x3aa060){const _0x5162db=a39_0x283c;return{'service':_0x53dc31[_0x5162db(0xce)][_0x5162db(0x116)],'command':dynamicCommandName(_0x3aa060),'description':_0x3aa060[_0x5162db(0xc8)]||'Run\x20service\x20command\x20'+_0x3aa060['cliPath'],'risk':_0x3aa060[_0x5162db(0xda)],..._0x3aa060['risk']===_0x5162db(0xe6)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x3aa060)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x3aa060[_0x5162db(0xd3)][_0x5162db(0x119)](_0x4941c1=>({'name':_0x4941c1[_0x5162db(0xd2)],'description':_0x4941c1['description']||_0x4941c1['name'],'required':_0x4941c1[_0x5162db(0xf6)]})),'flags':_0x3aa060['flags'][_0x5162db(0x119)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x3aa060),async 'dryRun'(_0x4987c4){const _0x3e9268=_0x5162db,_0x1f2e75=await compilePlan(_0x3aa060,_0x4987c4);return{'method':_0x3e9268(0x128),'url':_0x3aa060[_0x3e9268(0xfc)],'body':{'target':targetPreview(_0x1f2e75),'params':_0x1f2e75[_0x3e9268(0xcc)]},'description':_0x3e9268(0xf8)+_0x3aa060['cliPath']};},async 'execute'(_0x427086){const _0x5dbc58=_0x5162db,_0x21ac0f=await compilePlan(_0x3aa060,_0x427086),_0x42823e=Date[_0x5dbc58(0x104)](),_0x4414ca=await executePlan(_0x21ac0f,_0x3aa060,_0x427086),_0x5bc712=Date[_0x5dbc58(0x104)]()-_0x42823e;return{'ok':!![],'data':{'service':_0x53dc31[_0x5dbc58(0xce)],'command':_0x3aa060[_0x5dbc58(0xfc)],'target':targetPreview(_0x21ac0f),'result':_0x4414ca,'elapsed':_0x5bc712},'message':_0x5dbc58(0xd4)+_0x3aa060[_0x5dbc58(0xfc)]+_0x5dbc58(0x126)+_0x5bc712+'ms'};}};}function buildDynamicConfirmationDescription(_0x229ef6){const _0x4c1fd2=a39_0x283c,_0x5b6734=_0x229ef6[_0x4c1fd2(0xc8)]||_0x229ef6[_0x4c1fd2(0xfc)],_0x3460de=_0x229ef6['risk']===_0x4c1fd2(0xd1)?_0x4c1fd2(0xe7):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return _0x4c1fd2(0xde)+_0x5b6734+'”。'+_0x3460de;}function dynamicCommandName(_0x5b088b){const _0x3b44f6=a39_0x283c;return _0x5b088b['fullPath']['slice'](0x1)[_0x3b44f6(0xd0)]('\x20');}function riskTag(_0x134f8){const _0x4d66ee=a39_0x283c;return _0x134f8===_0x4d66ee(0xe6)?'':_0x4d66ee(0x102)+_0x134f8+']';}function a39_0x283c(_0x44ffc4,_0xc69245){_0x44ffc4=_0x44ffc4-0xc8;const _0xf9b2ae=a39_0xf9b2();let _0x283cd7=_0xf9b2ae[_0x44ffc4];return _0x283cd7;}function flagToCommandFlag(_0x573020){const _0x496906=a39_0x283c;return{'name':_0x573020[_0x496906(0xd5)],'type':_0x573020[_0x496906(0x129)]==='json'?_0x496906(0x10e):_0x573020[_0x496906(0x129)],'description':_0x573020[_0x496906(0xc8)]||_0x573020[_0x496906(0xd2)],'required':_0x573020[_0x496906(0xf6)],'default':isPrimitiveFlagDefault(_0x573020['default'])?_0x573020[_0x496906(0x131)]:undefined,'enum':_0x573020['enum']};}async function compilePlan(_0x4751f8,_0x42848f){const _0x52c64c=a39_0x283c;return compileServiceTreeCommand(_0x4751f8,{'flags':_0x42848f[_0x52c64c(0x103)],'args':_0x42848f[_0x52c64c(0xd3)],'context':await buildServiceContext(_0x4751f8,_0x42848f)});}async function buildServiceContext(_0x41e41b,_0xda11c2){const _0x153fe6=a39_0x283c,_0xcd27ae={'appCode':_0xda11c2[_0x153fe6(0xc9)],'env':_0xda11c2['envName'],'envName':_0xda11c2[_0x153fe6(0x120)]};if(!usesRuntimeContext(_0x41e41b))return _0xcd27ae;const _0x58756d=await getLoginUserInfo(),_0x38507c=pickFirst(_0x58756d[_0x153fe6(0xea)],_0x58756d['id']);return{..._0xcd27ae,'user':_0x58756d,'userId':_0x38507c,'id':_0x58756d['id'],'username':pickFirst(_0x58756d[_0x153fe6(0x100)],_0x58756d[_0x153fe6(0xf0)],_0x58756d['loginName']),'userName':_0x58756d['userName'],'nickname':pickFirst(_0x58756d[_0x153fe6(0x11b)],_0x58756d[_0x153fe6(0xcb)]),'nickName':_0x58756d[_0x153fe6(0xcb)],'tenantCode':_0x58756d[_0x153fe6(0xf1)],'employeeId':_0x58756d[_0x153fe6(0x109)]};}function usesRuntimeContext(_0x5b0d9f){const _0x4aa7f0=a39_0x283c;return _0x5b0d9f[_0x4aa7f0(0xcd)]['some'](_0x345ad1=>typeof _0x345ad1[_0x4aa7f0(0xdb)]===_0x4aa7f0(0x10e)&&(_0x345ad1[_0x4aa7f0(0xdb)][_0x4aa7f0(0x12f)]('context.')||_0x345ad1['source'][_0x4aa7f0(0x12f)]('ctx.')));}function pickFirst(..._0x449ea2){return _0x449ea2['find'](_0x2b4e6d=>_0x2b4e6d!==undefined&&_0x2b4e6d!==null);}async function executePlan(_0xd83157,_0x129fc2,_0x44c6ed){const _0x37448d=a39_0x283c;if(_0xd83157['kind']===_0x37448d(0xef)){const _0x32bb78=await resolveDatasetCode(_0xd83157,_0x129fc2,_0x44c6ed);return executeData(_0x32bb78,_0xd83157[_0x37448d(0xf9)],_0xd83157[_0x37448d(0xcc)]);}if(_0xd83157[_0x37448d(0xfd)]===_0x37448d(0xd8)){if(!_0xd83157['sqlCode'])throw CliErrors['validation'](_0x37448d(0xd4)+_0x129fc2[_0x37448d(0xfc)]+_0x37448d(0x118));return executeSdkSql(_0xd83157['sqlCode'],normalizeScalarParams(_0xd83157[_0x37448d(0xcc)]));}if(_0xd83157[_0x37448d(0xfd)]===_0x37448d(0x123)){const _0x59dc44=_0xd83157['scriptName']||_0xd83157[_0x37448d(0xe2)]||(_0xd83157[_0x37448d(0x114)]==null?'':String(_0xd83157[_0x37448d(0x114)]));if(!_0x59dc44)throw CliErrors[_0x37448d(0xe0)](_0x37448d(0xd4)+_0x129fc2[_0x37448d(0xfc)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x59dc44,_0xd83157[_0x37448d(0xcc)]);}throw CliErrors['validation'](_0x37448d(0x127)+_0xd83157[_0x37448d(0xfd)]);}async function resolveDatasetCode(_0x55c0c3,_0x25c5d4,_0x5799e4){const _0x258041=a39_0x283c;if(_0x55c0c3['datasetCode'])return _0x55c0c3[_0x258041(0x10c)];if(!_0x55c0c3[_0x258041(0x121)])throw CliErrors[_0x258041(0xe0)](_0x258041(0xd4)+_0x25c5d4[_0x258041(0xfc)]+_0x258041(0x122));const _0x58c4dc=await listDatasets(_0x5799e4[_0x258041(0xc9)]),_0xa099b5=_0x58c4dc['find'](_0x12ed22=>_0x12ed22[_0x258041(0x11c)]?.[_0x258041(0xd7)]===_0x55c0c3[_0x258041(0x121)]);if(!_0xa099b5?.[_0x258041(0x116)])throw CliErrors[_0x258041(0xe0)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x55c0c3[_0x258041(0x121)]+_0x258041(0x117)+_0x5799e4[_0x258041(0xc9)]+'.',_0x258041(0xec));return _0xa099b5[_0x258041(0x116)];}function applyAppBinding(_0x2f9e3c,_0x2bf10d,_0x33a570){const _0x53a251=a39_0x283c,_0x4756e1=_0x2bf10d[_0x53a251(0xd6)]['appRef'];if(!_0x4756e1)return;const _0x33c7b2=_0x2f9e3c[_0x53a251(0x130)][_0x4756e1];if(!_0x33c7b2)throw CliErrors['validation'](_0x53a251(0x106)+_0x4756e1+_0x53a251(0xf5)+_0x2bf10d['cliPath']+'.',_0x53a251(0x10d));const _0x2841ce=_0x33c7b2[_0x53a251(0x12c)]||_0x33c7b2['appCode'];_0x2841ce&&!hasText(_0x33a570['appcode'])&&(_0x33a570[_0x53a251(0x12c)]=_0x2841ce),_0x33c7b2[_0x53a251(0x11e)]&&!hasText(_0x33a570[_0x53a251(0x11e)])&&!hasText(_0x33a570[_0x53a251(0x12c)])&&(_0x33a570[_0x53a251(0x11e)]=_0x33c7b2[_0x53a251(0x11e)]),_0x33c7b2[_0x53a251(0xe8)]&&!hasText(_0x33a570[_0x53a251(0xe8)])&&(_0x33a570[_0x53a251(0xe8)]=_0x33c7b2['env']);}function renderDynamicCommandHelp(_0x558126){const _0x33a26e=a39_0x283c,_0x140533=[_0x33a26e(0x11d),_0x33a26e(0xd9)+_0x558126[_0x33a26e(0xd6)][_0x33a26e(0xfd)],_0x33a26e(0xfb)+_0x558126[_0x33a26e(0xd6)][_0x33a26e(0xf9)]];if(_0x558126[_0x33a26e(0xd6)][_0x33a26e(0x10c)])_0x140533[_0x33a26e(0x112)]('\x20\x20\x20\x20datasetCode:\x20'+_0x558126[_0x33a26e(0xd6)][_0x33a26e(0x10c)]);if(_0x558126[_0x33a26e(0xd6)]['datatable'])_0x140533[_0x33a26e(0x112)](_0x33a26e(0x124)+_0x558126[_0x33a26e(0xd6)][_0x33a26e(0x121)]);if(_0x558126[_0x33a26e(0xd6)][_0x33a26e(0xff)])_0x140533[_0x33a26e(0x112)](_0x33a26e(0xe5)+_0x558126[_0x33a26e(0xd6)][_0x33a26e(0xff)]);if(_0x558126[_0x33a26e(0xd6)]['scriptName'])_0x140533[_0x33a26e(0x112)](_0x33a26e(0x115)+_0x558126[_0x33a26e(0xd6)][_0x33a26e(0xe9)]);if(_0x558126[_0x33a26e(0xcd)]['length']>0x0){_0x140533[_0x33a26e(0x112)]('',_0x33a26e(0x12b));for(const _0x2f01bf of _0x558126[_0x33a26e(0xcd)]){_0x140533[_0x33a26e(0x112)](_0x33a26e(0xfa)+(_0x2f01bf[_0x33a26e(0xdb)]||_0x33a26e(0x12d))+_0x33a26e(0xf2)+_0x2f01bf[_0x33a26e(0xd6)]+(_0x2f01bf[_0x33a26e(0xee)]?'.'+_0x2f01bf[_0x33a26e(0xee)]:''));}}return _0x140533['join']('\x0a');}function targetPreview(_0x26396b){const _0x2338f6=a39_0x283c;return{'kind':_0x26396b['kind'],'command':_0x26396b['command'],'appRef':_0x26396b[_0x2338f6(0xf7)],'datasetCode':_0x26396b[_0x2338f6(0x10c)],'datatable':_0x26396b[_0x2338f6(0x121)],'sqlCode':_0x26396b[_0x2338f6(0xff)],'bffCode':_0x26396b[_0x2338f6(0xe2)],'bffId':_0x26396b['bffId'],'functionName':_0x26396b[_0x2338f6(0xe9)]};}function normalizeScalarParams(_0x32afba){const _0xf8011d=a39_0x283c;return Object['fromEntries'](Object['entries'](_0x32afba)[_0xf8011d(0xf3)](([,_0x1571b5])=>typeof _0x1571b5===_0xf8011d(0x10e)||typeof _0x1571b5===_0xf8011d(0x101)));}function hasText(_0x24aacf){const _0x3e87f8=a39_0x283c;return typeof _0x24aacf===_0x3e87f8(0x10e)&&_0x24aacf['trim']()[_0x3e87f8(0xdd)]>0x0;}function isPrimitiveFlagDefault(_0xc51dbf){const _0x179665=a39_0x283c;return _0xc51dbf===undefined||typeof _0xc51dbf===_0x179665(0x10e)||typeof _0xc51dbf===_0x179665(0x101)||typeof _0xc51dbf===_0x179665(0x10f);}
|
|
1
|
+
(function(_0x1ba12d,_0x53282b){const _0xa401b3=a39_0x5f2c,_0x45c9e=_0x1ba12d();while(!![]){try{const _0x384efe=-parseInt(_0xa401b3(0x157))/0x1*(-parseInt(_0xa401b3(0x177))/0x2)+-parseInt(_0xa401b3(0x15e))/0x3+-parseInt(_0xa401b3(0x136))/0x4+parseInt(_0xa401b3(0x156))/0x5*(parseInt(_0xa401b3(0x186))/0x6)+-parseInt(_0xa401b3(0x12c))/0x7*(parseInt(_0xa401b3(0x16f))/0x8)+parseInt(_0xa401b3(0x17b))/0x9*(-parseInt(_0xa401b3(0x171))/0xa)+parseInt(_0xa401b3(0x150))/0xb;if(_0x384efe===_0x53282b)break;else _0x45c9e['push'](_0x45c9e['shift']());}catch(_0x52e15e){_0x45c9e['push'](_0x45c9e['shift']());}}}(a39_0x14ef,0xd0392));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x6b4fe6,_0x6271a1){const _0x4a98ef=a39_0x5f2c,_0x4c345b=listLocalServiceTrees();let _0x288833;for(const _0x3c4e3c of _0x4c345b){const _0x459913=matchServiceTreeCommand(_0x3c4e3c,_0x6b4fe6);if(!_0x459913)continue;(!_0x288833||_0x459913['command'][_0x4a98ef(0x13d)]['length']>_0x288833[_0x4a98ef(0x123)][_0x4a98ef(0x13d)][_0x4a98ef(0x152)])&&(_0x288833={'tree':_0x3c4e3c,'command':_0x459913[_0x4a98ef(0x123)],'remainingArgs':_0x459913[_0x4a98ef(0x12a)]});}if(!_0x288833)return undefined;const _0x1b2b04={..._0x6271a1};return applyAppBinding(_0x288833[_0x4a98ef(0x170)],_0x288833['command'],_0x1b2b04),{'definition':buildDynamicCommandDefinition(_0x288833[_0x4a98ef(0x170)],_0x288833[_0x4a98ef(0x123)]),'args':_0x288833[_0x4a98ef(0x12a)],'flags':_0x1b2b04,'tree':_0x288833[_0x4a98ef(0x170)],'command':_0x288833[_0x4a98ef(0x123)]};}export function generateDynamicServiceHelp(_0x43daaf){const _0x37e038=a39_0x5f2c,_0x28c1cb=listLocalServiceTrees()['find'](_0x1451a9=>_0x1451a9[_0x37e038(0x14c)][_0x37e038(0x16b)]===_0x43daaf);if(!_0x28c1cb)return undefined;const _0x990d87=[CLI_BIN_NAME+'\x20'+_0x43daaf+_0x37e038(0x125),'',_0x28c1cb[_0x37e038(0x14c)][_0x37e038(0x153)]||_0x43daaf,_0x28c1cb[_0x37e038(0x14c)]['description']?'\x20\x20'+_0x28c1cb[_0x37e038(0x14c)][_0x37e038(0x175)]:'','',_0x37e038(0x16d),..._0x28c1cb[_0x37e038(0x174)][_0x37e038(0x126)](_0x1d1da1=>{const _0x26a3ff=_0x37e038,_0x45019c=_0x1d1da1[_0x26a3ff(0x13d)][_0x26a3ff(0x189)](0x1)['join']('\x20'),_0xb08eb8=_0x1d1da1[_0x26a3ff(0x16e)]===_0x26a3ff(0x160)?'':'\x20['+_0x1d1da1[_0x26a3ff(0x16e)]+']';return'\x20\x20'+_0x45019c[_0x26a3ff(0x13b)](0x18)+'\x20'+(_0x1d1da1['description']||'')+_0xb08eb8;}),'',_0x37e038(0x179)+CLI_BIN_NAME+_0x37e038(0x17e)+_0x43daaf+_0x37e038(0x163)][_0x37e038(0x149)](Boolean);return _0x990d87[_0x37e038(0x13c)]('\x0a');}export function listDynamicServiceEntries(){const _0x5ecb91=a39_0x5f2c;return listLocalServices()[_0x5ecb91(0x126)](_0x2f3dbb=>{const _0x3c9361=_0x5ecb91,_0xaeced4=_0x2f3dbb[_0x3c9361(0x142)];return{'service':_0xaeced4['service'][_0x3c9361(0x16b)],'label':_0xaeced4[_0x3c9361(0x14c)]['name']||_0xaeced4[_0x3c9361(0x14c)][_0x3c9361(0x16b)],'commands':_0xaeced4[_0x3c9361(0x174)]['map'](_0x1aa5c1=>({'command':dynamicCommandName(_0x1aa5c1),'description':_0x1aa5c1[_0x3c9361(0x175)]||_0x3c9361(0x188)+_0x1aa5c1[_0x3c9361(0x137)],'tag':riskTag(_0x1aa5c1[_0x3c9361(0x16e)])}))};});}export function getDynamicServiceEntry(_0x4ab8a0){const _0x54b3f3=a39_0x5f2c;return listDynamicServiceEntries()[_0x54b3f3(0x172)](_0x341e96=>_0x341e96[_0x54b3f3(0x14c)]===_0x4ab8a0);}export function listDynamicServiceDefinitions(_0x3dd1e1){const _0x5d835f=a39_0x5f2c;return listLocalServiceTrees()[_0x5d835f(0x149)](_0x49aea4=>!_0x3dd1e1||_0x49aea4[_0x5d835f(0x14c)][_0x5d835f(0x16b)]===_0x3dd1e1)['flatMap'](_0x28cd4c=>_0x28cd4c[_0x5d835f(0x174)][_0x5d835f(0x126)](_0x30ed6d=>buildDynamicCommandDefinition(_0x28cd4c,_0x30ed6d)));}export function getDynamicServiceDefinitions(_0x1ff00a){const _0x3b52d6=listDynamicServiceDefinitions(_0x1ff00a);return _0x3b52d6['length']>0x0?_0x3b52d6:undefined;}export function findDynamicServiceDefinition(_0x3493c5,_0x244858){const _0x47c9fc=a39_0x5f2c;return listDynamicServiceDefinitions(_0x3493c5)[_0x47c9fc(0x172)](_0x3f3b9e=>_0x3f3b9e['command']===_0x244858);}export function buildDynamicCommandDefinition(_0x23332f,_0x46a1fc){const _0x36b4ef=a39_0x5f2c;return{'service':_0x23332f['service']['code'],'command':dynamicCommandName(_0x46a1fc),'description':_0x46a1fc[_0x36b4ef(0x175)]||_0x36b4ef(0x188)+_0x46a1fc['cliPath'],'risk':_0x46a1fc[_0x36b4ef(0x16e)],..._0x46a1fc[_0x36b4ef(0x16e)]===_0x36b4ef(0x160)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x46a1fc)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x46a1fc['args'][_0x36b4ef(0x126)](_0x5492dc=>({'name':_0x5492dc[_0x36b4ef(0x153)],'description':_0x5492dc[_0x36b4ef(0x175)]||_0x5492dc['name'],'required':_0x5492dc[_0x36b4ef(0x17f)]})),'flags':_0x46a1fc[_0x36b4ef(0x162)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x46a1fc),async 'dryRun'(_0xb1fa96){const _0x1d97b6=_0x36b4ef,_0x36b670=await compilePlan(_0x46a1fc,_0xb1fa96);return{'method':_0x1d97b6(0x129),'url':_0x46a1fc['cliPath'],'body':{'target':targetPreview(_0x36b670),'params':_0x36b670['params']},'description':_0x1d97b6(0x168)+_0x46a1fc[_0x1d97b6(0x137)]};},async 'execute'(_0x86f1f5){const _0x55fe6c=_0x36b4ef,_0x3c66d0=await compilePlan(_0x46a1fc,_0x86f1f5),_0x48b711=Date[_0x55fe6c(0x130)](),_0x2318e1=await executePlan(_0x3c66d0,_0x46a1fc,_0x86f1f5),_0x50f8af=Date['now']()-_0x48b711;return{'ok':!![],'data':{'service':_0x23332f[_0x55fe6c(0x14c)],'command':_0x46a1fc['cliPath'],'target':targetPreview(_0x3c66d0),'result':_0x2318e1,'elapsed':_0x50f8af},'message':_0x55fe6c(0x164)+_0x46a1fc['cliPath']+_0x55fe6c(0x182)+_0x50f8af+'ms'};}};}function buildDynamicConfirmationDescription(_0x4696f0){const _0x42f127=a39_0x5f2c,_0x4473c8=_0x4696f0[_0x42f127(0x175)]||_0x4696f0[_0x42f127(0x137)],_0x3cf968=_0x4696f0['risk']===_0x42f127(0x151)?_0x42f127(0x169):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return _0x42f127(0x178)+_0x4473c8+'”。'+_0x3cf968;}function dynamicCommandName(_0x24e64b){const _0x24439e=a39_0x5f2c;return _0x24e64b[_0x24439e(0x13d)][_0x24439e(0x189)](0x1)['join']('\x20');}function riskTag(_0x13e3f6){return _0x13e3f6==='read'?'':'\x20\x20['+_0x13e3f6+']';}function flagToCommandFlag(_0x1c5122){const _0x12bcf4=a39_0x5f2c;return{'name':_0x1c5122[_0x12bcf4(0x17c)],'type':_0x1c5122[_0x12bcf4(0x158)]===_0x12bcf4(0x16c)?_0x12bcf4(0x144):_0x1c5122[_0x12bcf4(0x158)],'description':_0x1c5122[_0x12bcf4(0x175)]||_0x1c5122[_0x12bcf4(0x153)],'required':_0x1c5122[_0x12bcf4(0x17f)],'default':isPrimitiveFlagDefault(_0x1c5122[_0x12bcf4(0x146)])?_0x1c5122[_0x12bcf4(0x146)]:undefined,'enum':_0x1c5122['enum']};}async function compilePlan(_0x3c755f,_0x336d03){const _0x4754f4=a39_0x5f2c;return compileServiceTreeCommand(_0x3c755f,{'flags':_0x336d03[_0x4754f4(0x15f)],'args':_0x336d03[_0x4754f4(0x14b)],'context':await buildServiceContext(_0x3c755f,_0x336d03)});}async function buildServiceContext(_0x2f56b9,_0x272e41){const _0x7ce558=a39_0x5f2c,_0xffd8f3={'appCode':_0x272e41['appCode'],'env':_0x272e41['envName'],'envName':_0x272e41[_0x7ce558(0x122)]};if(!usesRuntimeContext(_0x2f56b9))return _0xffd8f3;const _0x454560=await getLoginUserInfo(),_0x4c0505=pickFirst(_0x454560[_0x7ce558(0x135)],_0x454560['id']);return{..._0xffd8f3,'user':_0x454560,'userId':_0x4c0505,'id':_0x454560['id'],'username':pickFirst(_0x454560[_0x7ce558(0x147)],_0x454560[_0x7ce558(0x12e)],_0x454560[_0x7ce558(0x131)]),'userName':_0x454560['userName'],'nickname':pickFirst(_0x454560['nickname'],_0x454560[_0x7ce558(0x15c)]),'nickName':_0x454560[_0x7ce558(0x15c)],'tenantCode':_0x454560[_0x7ce558(0x180)],'employeeId':_0x454560[_0x7ce558(0x183)]};}function usesRuntimeContext(_0x48365d){const _0x50e5e6=a39_0x5f2c;return _0x48365d[_0x50e5e6(0x13e)]['some'](_0x28cb90=>typeof _0x28cb90[_0x50e5e6(0x121)]===_0x50e5e6(0x144)&&(_0x28cb90[_0x50e5e6(0x121)][_0x50e5e6(0x145)](_0x50e5e6(0x127))||_0x28cb90[_0x50e5e6(0x121)][_0x50e5e6(0x145)](_0x50e5e6(0x16a))));}function pickFirst(..._0x12830a){const _0x14e981=a39_0x5f2c;return _0x12830a[_0x14e981(0x172)](_0x19b997=>_0x19b997!==undefined&&_0x19b997!==null);}async function executePlan(_0x1fb642,_0x4ef8fc,_0x1fdba6){const _0x3c99f0=a39_0x5f2c;if(_0x1fb642[_0x3c99f0(0x173)]==='data'){const _0xe901d1=await resolveDatasetCode(_0x1fb642,_0x4ef8fc,_0x1fdba6);return executeData(_0xe901d1,_0x1fb642[_0x3c99f0(0x123)],_0x1fb642[_0x3c99f0(0x134)]);}if(_0x1fb642[_0x3c99f0(0x173)]===_0x3c99f0(0x140)){if(!_0x1fb642[_0x3c99f0(0x13f)])throw CliErrors[_0x3c99f0(0x132)](_0x3c99f0(0x164)+_0x4ef8fc[_0x3c99f0(0x137)]+_0x3c99f0(0x128));return executeSdkSql(_0x1fb642[_0x3c99f0(0x13f)],normalizeScalarParams(_0x1fb642[_0x3c99f0(0x134)]));}if(_0x1fb642[_0x3c99f0(0x173)]==='bff'){const _0x533562=_0x1fb642[_0x3c99f0(0x155)]||_0x1fb642[_0x3c99f0(0x14e)]||(_0x1fb642['bffId']==null?'':String(_0x1fb642[_0x3c99f0(0x124)]));if(!_0x533562)throw CliErrors[_0x3c99f0(0x132)](_0x3c99f0(0x164)+_0x4ef8fc[_0x3c99f0(0x137)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x533562,_0x1fb642[_0x3c99f0(0x134)]);}throw CliErrors['validation'](_0x3c99f0(0x185)+_0x1fb642[_0x3c99f0(0x173)]);}async function resolveDatasetCode(_0x22b24e,_0x3a92af,_0x1c2b86){const _0x1f3d8b=a39_0x5f2c;if(_0x22b24e['datasetCode'])return _0x22b24e[_0x1f3d8b(0x166)];if(!_0x22b24e[_0x1f3d8b(0x148)])throw CliErrors['validation'](_0x1f3d8b(0x164)+_0x3a92af[_0x1f3d8b(0x137)]+_0x1f3d8b(0x154));const _0x248f06=await listDatasets(_0x1c2b86['appCode']),_0x2a4efd=_0x248f06['find'](_0xd9783e=>_0xd9783e[_0x1f3d8b(0x181)]?.[_0x1f3d8b(0x12f)]===_0x22b24e[_0x1f3d8b(0x148)]);if(!_0x2a4efd?.['code'])throw CliErrors['validation'](_0x1f3d8b(0x14f)+_0x22b24e[_0x1f3d8b(0x148)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x1c2b86[_0x1f3d8b(0x176)]+'.',_0x1f3d8b(0x15b));return _0x2a4efd[_0x1f3d8b(0x16b)];}function applyAppBinding(_0x426d93,_0x404e0d,_0xbe68c1){const _0x536782=a39_0x5f2c,_0x3e4ccd=_0x404e0d['target'][_0x536782(0x18b)];if(!_0x3e4ccd)return;const _0x3ce0d3=_0x426d93[_0x536782(0x141)][_0x3e4ccd];if(!_0x3ce0d3)throw CliErrors['validation'](_0x536782(0x12d)+_0x3e4ccd+_0x536782(0x133)+_0x404e0d[_0x536782(0x137)]+'.',_0x536782(0x18d));const _0x37b29f=_0x3ce0d3['appcode']||_0x3ce0d3['appCode'];_0x37b29f&&!hasText(_0xbe68c1[_0x536782(0x17a)])&&(_0xbe68c1['appcode']=_0x37b29f),_0x3ce0d3['app']&&!hasText(_0xbe68c1['app'])&&!hasText(_0xbe68c1[_0x536782(0x17a)])&&(_0xbe68c1[_0x536782(0x15a)]=_0x3ce0d3[_0x536782(0x15a)]),_0x3ce0d3[_0x536782(0x165)]&&!hasText(_0xbe68c1['env'])&&(_0xbe68c1[_0x536782(0x165)]=_0x3ce0d3[_0x536782(0x165)]);}function renderDynamicCommandHelp(_0x2d3e12){const _0x450f96=a39_0x5f2c,_0x389a1a=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x450f96(0x139)+_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x173)],'\x20\x20\x20\x20command:\x20'+_0x2d3e12['target'][_0x450f96(0x123)]];if(_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x166)])_0x389a1a[_0x450f96(0x159)](_0x450f96(0x161)+_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x166)]);if(_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x148)])_0x389a1a['push']('\x20\x20\x20\x20datatable:\x20'+_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x148)]);if(_0x2d3e12[_0x450f96(0x15d)]['sqlCode'])_0x389a1a[_0x450f96(0x159)](_0x450f96(0x18a)+_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x13f)]);if(_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x155)])_0x389a1a[_0x450f96(0x159)](_0x450f96(0x13a)+_0x2d3e12[_0x450f96(0x15d)][_0x450f96(0x155)]);if(_0x2d3e12['mapTo'][_0x450f96(0x152)]>0x0){_0x389a1a[_0x450f96(0x159)]('',_0x450f96(0x143));for(const _0x123a41 of _0x2d3e12[_0x450f96(0x13e)]){_0x389a1a[_0x450f96(0x159)](_0x450f96(0x184)+(_0x123a41[_0x450f96(0x121)]||_0x450f96(0x17d))+_0x450f96(0x187)+_0x123a41[_0x450f96(0x15d)]+(_0x123a41[_0x450f96(0x14a)]?'.'+_0x123a41[_0x450f96(0x14a)]:''));}}return _0x389a1a['join']('\x0a');}function targetPreview(_0x3b10d8){const _0x22ec57=a39_0x5f2c;return{'kind':_0x3b10d8[_0x22ec57(0x173)],'command':_0x3b10d8[_0x22ec57(0x123)],'appRef':_0x3b10d8['appRef'],'datasetCode':_0x3b10d8[_0x22ec57(0x166)],'datatable':_0x3b10d8[_0x22ec57(0x148)],'sqlCode':_0x3b10d8['sqlCode'],'bffCode':_0x3b10d8[_0x22ec57(0x14e)],'bffId':_0x3b10d8['bffId'],'functionName':_0x3b10d8['scriptName']};}function normalizeScalarParams(_0x51924d){const _0x1ad57f=a39_0x5f2c;return Object[_0x1ad57f(0x14d)](Object[_0x1ad57f(0x18c)](_0x51924d)[_0x1ad57f(0x149)](([,_0x1e46f])=>typeof _0x1e46f==='string'||typeof _0x1e46f===_0x1ad57f(0x167)));}function a39_0x14ef(){const _0x1c87f8=['userId','5587292WfOwYK','cliPath','boolean','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20\x20\x20functionName:\x20','padEnd','join','fullPath','mapTo','sqlCode','sql','appBindings','normalizedManifest','\x20\x20MAP\x20TO','string','startsWith','default','username','datatable','filter','operator','args','service','fromEntries','bffCode','Cannot\x20resolve\x20datatable\x20\x22','22970035vcFpeo','high-risk-write','length','name','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','scriptName','5uPtLGf','145147RpIumF','type','push','app','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','nickName','target','1545177tbiaxu','rawFlags','read','\x20\x20\x20\x20datasetCode:\x20','flags','`\x20to\x20inspect\x20the\x20manifest.','Service\x20command\x20','env','datasetCode','number','Preview\x20dynamic\x20service\x20command:\x20','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','ctx.','code','json','Commands:','risk','473848mbMgNu','tree','21470cbGPlc','find','kind','commands','description','appCode','22jgoori','将通过\x20Service\x20Tree\x20执行“','Use\x20`','appcode','3015QHTQHb','cliName','const','\x20service\x20detail\x20--service\x20','required','tenantCode','dbtableConfig','\x20completed\x20in\x20','employeeId','\x20\x20\x20\x20','Unsupported\x20service\x20target\x20kind:\x20','572172MgUMhH','\x20->\x20','Run\x20service\x20command\x20','slice','\x20\x20\x20\x20sqlCode:\x20','appRef','entries','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','source','envName','command','bffId','\x20<command>\x20[flags]','map','context.','\x20requires\x20target.sqlCode.','SERVICE_TREE','remainingArgs','trim','35XEOgHc','Unknown\x20appRef\x20\x22','userName','tableName','now','loginName','validation','\x22\x20in\x20service\x20command\x20','params'];a39_0x14ef=function(){return _0x1c87f8;};return a39_0x14ef();}function a39_0x5f2c(_0x125647,_0x5e3497){_0x125647=_0x125647-0x121;const _0x14ef30=a39_0x14ef();let _0x5f2c7a=_0x14ef30[_0x125647];return _0x5f2c7a;}function hasText(_0x47ae55){const _0x186983=a39_0x5f2c;return typeof _0x47ae55===_0x186983(0x144)&&_0x47ae55[_0x186983(0x12b)]()[_0x186983(0x152)]>0x0;}function isPrimitiveFlagDefault(_0x3693a9){const _0x139d86=a39_0x5f2c;return _0x3693a9===undefined||typeof _0x3693a9===_0x139d86(0x144)||typeof _0x3693a9==='number'||typeof _0x3693a9===_0x139d86(0x138);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x31e025,_0x4438c7){const _0x305bba=a40_0x3a0f,_0x3962ba=_0x31e025();while(!![]){try{const _0x2cf375=-parseInt(_0x305bba(0x1f0))/0x1+-parseInt(_0x305bba(0x1d7))/0x2+-parseInt(_0x305bba(0x1db))/0x3*(-parseInt(_0x305bba(0x1dc))/0x4)+parseInt(_0x305bba(0x1eb))/0x5+parseInt(_0x305bba(0x1f6))/0x6+parseInt(_0x305bba(0x1ef))/0x7*(-parseInt(_0x305bba(0x1f4))/0x8)+parseInt(_0x305bba(0x1e5))/0x9;if(_0x2cf375===_0x4438c7)break;else _0x3962ba['push'](_0x3962ba['shift']());}catch(_0x32b03d){_0x3962ba['push'](_0x3962ba['shift']());}}}(a40_0x5e80,0xeb36f));export function adaptServiceTreeManifestForLegacyFramework(_0x3db387){const _0x30be08=a40_0x3a0f,_0x138a2a=cloneJsonValue(_0x3db387),_0x1d2832=[];if(!isObjectRecord(_0x138a2a))return{'manifest':_0x138a2a,'errors':_0x1d2832};return Array[_0x30be08(0x1e3)](_0x138a2a[_0x30be08(0x1e0)])&&_0x138a2a['commands'][_0x30be08(0x1ec)]((_0x396d88,_0xee361d)=>{const _0x13105c=_0x30be08;if(!isObjectRecord(_0x396d88))return;adaptBffTarget(_0x396d88[_0x13105c(0x1d8)],_0x13105c(0x1e6)+_0xee361d+_0x13105c(0x1df),_0x1d2832);}),adaptResources(_0x138a2a[_0x30be08(0x1ed)],_0x30be08(0x1f2),_0x1d2832),{'manifest':_0x138a2a,'errors':_0x1d2832};}export function toPublicServiceTreeTarget(_0x5c5b25){const _0x45d9b2=a40_0x3a0f,{scriptName:_0x16b6b7,..._0x440ac2}=_0x5c5b25;return typeof _0x16b6b7===_0x45d9b2(0x1ee)&&_0x16b6b7['trim']()&&(_0x440ac2[_0x45d9b2(0x1d6)]=_0x16b6b7),_0x440ac2;}export function toPublicNormalizedServiceTree(_0x2e94e8){const _0xc26c5c=a40_0x3a0f;return{..._0x2e94e8,'commands':_0x2e94e8[_0xc26c5c(0x1e0)][_0xc26c5c(0x1f7)](_0x1a8a5a=>({..._0x1a8a5a,'target':toPublicServiceTreeTarget(_0x1a8a5a[_0xc26c5c(0x1d8)])}))};}function adaptResources(_0x4f75ba,_0xc20c49,_0x2f4fdc){const _0x2f032e=a40_0x3a0f;if(!isObjectRecord(_0x4f75ba))return;for(const [_0x1b48bb,_0xb4f49]of Object[_0x2f032e(0x1f3)](_0x4f75ba)){if(!isObjectRecord(_0xb4f49))continue;const _0x3bb26e=_0xc20c49+'.'+_0x1b48bb;if(isObjectRecord(_0xb4f49['actions']))for(const [_0x2affc4,_0x51f032]of Object[_0x2f032e(0x1f3)](_0xb4f49[_0x2f032e(0x1e2)])){if(!isObjectRecord(_0x51f032))continue;const _0x205ff3=_0x3bb26e+'.actions.'+_0x2affc4,_0x5a7739=isObjectRecord(_0x51f032['target'])&&_0x51f032[_0x2f032e(0x1d8)][_0x2f032e(0x1f1)]===_0x2f032e(0x1de);adaptBffTarget(_0x51f032['target'],_0x205ff3+_0x2f032e(0x1d5),_0x2f4fdc),(_0x5a7739||isBffAction(_0x51f032))&&adaptFunctionNameField(_0x51f032,_0x205ff3,_0x2f4fdc);}adaptResources(_0xb4f49[_0x2f032e(0x1ed)],_0x3bb26e+'.resources',_0x2f4fdc);}}function a40_0x5e80(){const _0x28c1d9=['target','bff.exec','trim','1073505ERgDWz','4fjrBBO','object','bff','].target','commands','action','actions','isArray','error','14696271RprgQv','$.commands[','push','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','call','prototype','3844865KxQKsi','forEach','resources','string','1415785DzwHXs','1575596yAcULK','kind','$.resources','entries','24WbVZPl','functionName\x20must\x20be\x20a\x20non-empty\x20string.','5094540kkVzmO','map','hasOwnProperty','scriptName','.target','functionName','926034owItMz'];a40_0x5e80=function(){return _0x28c1d9;};return a40_0x5e80();}function a40_0x3a0f(_0x2fbc73,_0x35a109){_0x2fbc73=_0x2fbc73-0x1d5;const _0x5e800d=a40_0x5e80();let _0x3a0f3f=_0x5e800d[_0x2fbc73];return _0x3a0f3f;}function adaptBffTarget(_0xa561c9,_0xb1ebf0,_0x38f0df){const _0x3835a4=a40_0x3a0f;if(!isObjectRecord(_0xa561c9)||_0xa561c9[_0x3835a4(0x1f1)]!==_0x3835a4(0x1de))return;adaptFunctionNameField(_0xa561c9,_0xb1ebf0,_0x38f0df);}function adaptFunctionNameField(_0x3769c9,_0x38dce5,_0x625cdf){const _0x435ca6=a40_0x3a0f;Object['prototype'][_0x435ca6(0x1f8)][_0x435ca6(0x1e9)](_0x3769c9,_0x435ca6(0x1f9))&&_0x625cdf[_0x435ca6(0x1e7)]({'level':_0x435ca6(0x1e4),'path':_0x38dce5+'.scriptName','message':_0x435ca6(0x1e8)});if(Object[_0x435ca6(0x1ea)][_0x435ca6(0x1f8)][_0x435ca6(0x1e9)](_0x3769c9,'functionName')){if(typeof _0x3769c9[_0x435ca6(0x1d6)]!==_0x435ca6(0x1ee)||!_0x3769c9[_0x435ca6(0x1d6)][_0x435ca6(0x1da)]()){_0x625cdf[_0x435ca6(0x1e7)]({'level':_0x435ca6(0x1e4),'path':_0x38dce5+'.functionName','message':_0x435ca6(0x1f5)}),delete _0x3769c9[_0x435ca6(0x1d6)];return;}_0x3769c9[_0x435ca6(0x1f9)]=_0x3769c9[_0x435ca6(0x1d6)],delete _0x3769c9[_0x435ca6(0x1d6)];}}function isBffAction(_0xe550a4){const _0x24e88a=a40_0x3a0f;return _0xe550a4[_0x24e88a(0x1f1)]===_0x24e88a(0x1de)||_0xe550a4[_0x24e88a(0x1e1)]===_0x24e88a(0x1d9)||_0xe550a4[_0x24e88a(0x1d8)]==='bff.exec';}function cloneJsonValue(_0x45ce83){const _0x1fc786=a40_0x3a0f;if(Array[_0x1fc786(0x1e3)](_0x45ce83))return _0x45ce83[_0x1fc786(0x1f7)](_0x3db5a0=>cloneJsonValue(_0x3db5a0));if(isObjectRecord(_0x45ce83))return Object['fromEntries'](Object[_0x1fc786(0x1f3)](_0x45ce83)[_0x1fc786(0x1f7)](([_0x558f77,_0x12ea43])=>[_0x558f77,cloneJsonValue(_0x12ea43)]));return _0x45ce83;}function isObjectRecord(_0x2e54af){const _0x233ea1=a40_0x3a0f;return Boolean(_0x2e54af)&&typeof _0x2e54af===_0x233ea1(0x1dd)&&!Array[_0x233ea1(0x1e3)](_0x2e54af);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a41_0x27193f=a41_0x5b09;(function(_0x3b5943,_0xde61be){const _0x4308c3=a41_0x5b09,_0x110b41=_0x3b5943();while(!![]){try{const _0x4c4e8e=-parseInt(_0x4308c3(0xef))/0x1+-parseInt(_0x4308c3(0xcd))/0x2*(-parseInt(_0x4308c3(0xd7))/0x3)+-parseInt(_0x4308c3(0xd5))/0x4+-parseInt(_0x4308c3(0xff))/0x5+-parseInt(_0x4308c3(0xe5))/0x6*(parseInt(_0x4308c3(0xcb))/0x7)+parseInt(_0x4308c3(0x108))/0x8+parseInt(_0x4308c3(0xd3))/0x9;if(_0x4c4e8e===_0xde61be)break;else _0x110b41['push'](_0x110b41['shift']());}catch(_0x165179){_0x110b41['push'](_0x110b41['shift']());}}}(a41_0x57b8,0xbe8c2));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x5b09(_0x2f52e1,_0x5a4ad1){_0x2f52e1=_0x2f52e1-0xc8;const _0x57b867=a41_0x57b8();let _0x5b0913=_0x57b867[_0x2f52e1];return _0x5b0913;}function a41_0x57b8(){const _0x50ef61=['Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','4NxWpla','service','commands','serviceCode','Updated','read','21662037XxVXnR','flags','5356508ehVBHK','length','1628526eFvtTs','string','registryIndex','registry','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','replaced','将\x20Service\x20Tree\x20清单导入本地运行态注册表','source','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','manifest','Removed\x20service\x20','Imported\x20','Service\x20Tree\x20manifest\x20file\x20path','22020hlHjhN','filePath','map','file','errors','Exported\x20service\x20','cliPath','cliName','type','importedAt','627796yQQIkk','description','从本地运行态注册表移除\x20Service\x20Tree\x20清单','lower\x20kebab-case\x20service\x20code','version','\x20service(s).','updated','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Service\x20manifest\x20validation\x20passed.','risk','normalizedManifest','imported','Imported','name','kind','warnings','1413310glqJvZ','entries','import','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','serviceCount','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','registryPath','detail','entry','1672800bHctFm','Local\x20service\x20code,\x20for\x20example\x20crm','export','required','\x20service(s),\x20updated\x20','hash','str','write','Service\x20registry\x20validation\x20passed.','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','manifests','report','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','WRITE','target','1281EjmrDf'];a41_0x57b8=function(){return _0x50ef61;};return a41_0x57b8();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x27193f(0xe8),'type':a41_0x27193f(0xd8),'required':!![],'description':a41_0x27193f(0xe4)},SERVICE_FLAG={'name':a41_0x27193f(0xce),'type':a41_0x27193f(0xd8),'required':!![],'description':a41_0x27193f(0x109),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x27193f(0xf2)}};function summarizeService(_0x45c57e){const _0x552e99=a41_0x27193f;return{'serviceCode':_0x45c57e[_0x552e99(0xd0)],'name':_0x45c57e['normalizedManifest'][_0x552e99(0xce)][_0x552e99(0xfc)],'version':_0x45c57e['version'],'importedAt':_0x45c57e[_0x552e99(0xee)],'source':_0x45c57e[_0x552e99(0xdf)],'commandCount':_0x45c57e['normalizedManifest']['commands']['length'],'commands':_0x45c57e[_0x552e99(0xf9)][_0x552e99(0xcf)][_0x552e99(0xe7)](_0x4148c3=>({'path':_0x4148c3[_0x552e99(0xeb)],'description':_0x4148c3[_0x552e99(0xf0)],'risk':_0x4148c3[_0x552e99(0xf8)],'target':toPublicServiceTreeTarget(_0x4148c3[_0x552e99(0xca)]),'flags':_0x4148c3[_0x552e99(0xd4)][_0x552e99(0xe7)](_0x2382ce=>({'name':_0x2382ce[_0x552e99(0xfc)],'cliName':_0x2382ce[_0x552e99(0xec)],'type':_0x2382ce[_0x552e99(0xed)],'required':_0x2382ce[_0x552e99(0x10b)]===!![]}))}))};}function summarizeLoadedManifest(_0x27f326){const _0x33278b=a41_0x27193f;return{'service':_0x27f326['normalizedManifest']?.['service'],'version':_0x27f326[_0x33278b(0xf9)]?.[_0x33278b(0xf3)],'commandCount':_0x27f326[_0x33278b(0xf9)]?.['commands']['length']??0x0,'commands':_0x27f326[_0x33278b(0xf9)]?.['commands'][_0x33278b(0xe7)](_0x4cf065=>({'path':_0x4cf065[_0x33278b(0xeb)],'risk':_0x4cf065['risk'],'target':toPublicServiceTreeTarget(_0x4cf065[_0x33278b(0xca)])}))??[],'registryIndex':_0x27f326[_0x33278b(0xd9)],'registryServiceCode':_0x27f326['registryServiceCode'],'errors':_0x27f326[_0x33278b(0x113)][_0x33278b(0xe9)],'warnings':_0x27f326[_0x33278b(0x113)]['warnings']};}export const serviceDefinitions=[{'service':a41_0x27193f(0xce),'command':'validate','description':a41_0x27193f(0x102),'risk':a41_0x27193f(0xd2),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x265846){const _0x442a12=a41_0x27193f,_0x532170=loadServiceManifestFromFile(_0x265846[_0x442a12(0x10e)]('file'));if(!_0x532170[_0x442a12(0x113)]['ok'])return{'ok':![],'data':{'file':_0x532170['filePath'],'hash':_0x532170[_0x442a12(0x10d)],'kind':_0x532170[_0x442a12(0xfd)],'serviceCount':_0x532170[_0x442a12(0x112)]['length'],'services':_0x532170['manifests']['map'](summarizeLoadedManifest),'errors':_0x532170[_0x442a12(0x113)][_0x442a12(0xe9)],'warnings':_0x532170['report']['warnings']},'message':formatValidationFailure(_0x532170['report'])};if(_0x532170['kind']===_0x442a12(0xda)||_0x532170[_0x442a12(0x112)][_0x442a12(0xd6)]!==0x1)return{'ok':!![],'data':{'file':_0x532170[_0x442a12(0xe6)],'hash':_0x532170['hash'],'kind':_0x532170[_0x442a12(0xfd)],'serviceCount':_0x532170[_0x442a12(0x112)][_0x442a12(0xd6)],'commandCount':_0x532170[_0x442a12(0x112)]['reduce']((_0x474f68,_0x2e5c91)=>_0x474f68+(_0x2e5c91[_0x442a12(0xf9)]?.[_0x442a12(0xcf)][_0x442a12(0xd6)]??0x0),0x0),'services':_0x532170[_0x442a12(0x112)][_0x442a12(0xe7)](summarizeLoadedManifest),'warnings':_0x532170['report'][_0x442a12(0xfe)]},'message':_0x442a12(0x110)};return{'ok':!![],'data':{'file':_0x532170[_0x442a12(0xe6)],'hash':_0x532170['hash'],'kind':_0x532170[_0x442a12(0xfd)],'service':_0x532170[_0x442a12(0xf9)]?.[_0x442a12(0xce)],'version':_0x532170['normalizedManifest']?.[_0x442a12(0xf3)],'commandCount':_0x532170['normalizedManifest']?.[_0x442a12(0xcf)]['length']??0x0,'commands':_0x532170['normalizedManifest']?.[_0x442a12(0xcf)][_0x442a12(0xe7)](_0x14f940=>({'path':_0x14f940['cliPath'],'risk':_0x14f940[_0x442a12(0xf8)],'target':toPublicServiceTreeTarget(_0x14f940[_0x442a12(0xca)])})),'warnings':_0x532170[_0x442a12(0x113)][_0x442a12(0xfe)]},'message':_0x442a12(0xf7)};}},{'service':a41_0x27193f(0xce),'command':a41_0x27193f(0x101),'description':a41_0x27193f(0xde),'risk':a41_0x27193f(0x10f),'confirmationDescription':a41_0x27193f(0x104),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x4a76e2){const _0x2a75aa=a41_0x27193f,_0x2069e8=loadServiceManifestFromFile(_0x4a76e2[_0x2a75aa(0x10e)](_0x2a75aa(0xe8)));return{'method':_0x2a75aa(0xc9),'url':getServiceRegistryPath(),'body':{'file':_0x2069e8[_0x2a75aa(0xe6)],'hash':_0x2069e8['hash'],'kind':_0x2069e8[_0x2a75aa(0xfd)],'ok':_0x2069e8['report']['ok'],'service':_0x2069e8['normalizedManifest']?.[_0x2a75aa(0xce)],'version':_0x2069e8[_0x2a75aa(0xf9)]?.[_0x2a75aa(0xf3)],'serviceCount':_0x2069e8[_0x2a75aa(0x112)]['length'],'services':_0x2069e8[_0x2a75aa(0x112)][_0x2a75aa(0xe7)](_0x164caa=>({'service':_0x164caa[_0x2a75aa(0xf9)]?.[_0x2a75aa(0xce)],'version':_0x164caa[_0x2a75aa(0xf9)]?.[_0x2a75aa(0xf3)],'commandCount':_0x164caa[_0x2a75aa(0xf9)]?.[_0x2a75aa(0xcf)][_0x2a75aa(0xd6)]??0x0,'errors':_0x164caa['report'][_0x2a75aa(0xe9)]})),'errors':_0x2069e8[_0x2a75aa(0x113)][_0x2a75aa(0xe9)],'commandCount':_0x2069e8[_0x2a75aa(0xf9)]?.[_0x2a75aa(0xcf)][_0x2a75aa(0xd6)]??0x0},'description':_0x2a75aa(0xc8)};},async 'execute'(_0x21db22){const _0x32dbba=a41_0x27193f,_0x2c575e=importServiceManifest(_0x21db22[_0x32dbba(0x10e)]('file'));if(_0x2c575e[_0x32dbba(0x100)][_0x32dbba(0xd6)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x2c575e[_0x32dbba(0x105)],'imported':_0x2c575e[_0x32dbba(0xfa)],'updated':_0x2c575e[_0x32dbba(0xf5)],'serviceCount':_0x2c575e[_0x32dbba(0x103)],'services':_0x2c575e[_0x32dbba(0x100)][_0x32dbba(0xe7)](summarizeService)},'message':_0x32dbba(0xe3)+_0x2c575e[_0x32dbba(0xfa)]+_0x32dbba(0x10c)+_0x2c575e[_0x32dbba(0xf5)]+_0x32dbba(0xf4)};return{'ok':!![],'data':{'registryPath':_0x2c575e['registryPath'],'replaced':_0x2c575e[_0x32dbba(0xdd)],'imported':_0x2c575e[_0x32dbba(0xfa)],'updated':_0x2c575e[_0x32dbba(0xf5)],'serviceCount':_0x2c575e['serviceCount'],'service':summarizeService(_0x2c575e['entry'])},'message':(_0x2c575e[_0x32dbba(0xdd)]?_0x32dbba(0xd1):_0x32dbba(0xfb))+'\x20service\x20'+_0x2c575e['entry'][_0x32dbba(0xd0)]+'.'};}},{'service':a41_0x27193f(0xce),'command':a41_0x27193f(0x10a),'description':a41_0x27193f(0x111),'risk':a41_0x27193f(0x10f),'confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x16afc7){const _0x540dcc=a41_0x27193f,_0x3220ef=getLocalServiceEntry(_0x16afc7[_0x540dcc(0x10e)](_0x540dcc(0xce)));return{'method':_0x540dcc(0xc9),'url':_0x16afc7[_0x540dcc(0x10e)](_0x540dcc(0xe8)),'body':{'service':_0x16afc7[_0x540dcc(0x10e)]('service'),'found':Boolean(_0x3220ef),'version':_0x3220ef?.[_0x540dcc(0xf3)],'source':_0x3220ef?.[_0x540dcc(0xdf)]},'description':_0x540dcc(0xdb)};},async 'execute'(_0x1bc2ca){const _0x55c44a=a41_0x27193f,_0x300cb7=exportServiceManifest(_0x1bc2ca[_0x55c44a(0x10e)](_0x55c44a(0xce)),_0x1bc2ca[_0x55c44a(0x10e)](_0x55c44a(0xe8)));return{'ok':!![],'data':{'registryPath':_0x300cb7[_0x55c44a(0x105)],'file':_0x300cb7[_0x55c44a(0xe6)],'service':summarizeService(_0x300cb7[_0x55c44a(0x107)])},'message':_0x55c44a(0xea)+_0x300cb7[_0x55c44a(0x107)][_0x55c44a(0xd0)]+'.'};}},{'service':a41_0x27193f(0xce),'command':'list','description':a41_0x27193f(0xf6),'risk':a41_0x27193f(0xd2),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x306c88=a41_0x27193f,_0x2b1eeb=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2b1eeb[_0x306c88(0xd6)],'services':_0x2b1eeb[_0x306c88(0xe7)](summarizeService)}};}},{'service':a41_0x27193f(0xce),'command':'remove','description':a41_0x27193f(0xf1),'risk':a41_0x27193f(0x10f),'confirmationDescription':a41_0x27193f(0xdc),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x181a8d){const _0x1d0941=a41_0x27193f,_0xca403f=getLocalServiceEntry(_0x181a8d[_0x1d0941(0x10e)]('service'));return{'method':_0x1d0941(0xc9),'url':getServiceRegistryPath(),'body':{'service':_0x181a8d[_0x1d0941(0x10e)](_0x1d0941(0xce)),'found':Boolean(_0xca403f),'version':_0xca403f?.[_0x1d0941(0xf3)],'source':_0xca403f?.[_0x1d0941(0xdf)]},'description':_0x1d0941(0xe0)};},async 'execute'(_0x4769fe){const _0x32b2c0=a41_0x27193f,_0x283047=removeServiceManifest(_0x4769fe['str'](_0x32b2c0(0xce)));return{'ok':!![],'data':{'registryPath':_0x283047[_0x32b2c0(0x105)],'serviceCount':_0x283047['serviceCount'],'service':summarizeService(_0x283047[_0x32b2c0(0x107)])},'message':_0x32b2c0(0xe2)+_0x283047[_0x32b2c0(0x107)][_0x32b2c0(0xd0)]+'.'};}},{'service':a41_0x27193f(0xce),'command':a41_0x27193f(0x106),'description':a41_0x27193f(0xcc),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1f4aa8){const _0x15d316=a41_0x27193f,_0x4608d2=getLocalServiceEntry(_0x1f4aa8['str']('service'));if(!_0x4608d2)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1f4aa8[_0x15d316(0x10e)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x1f4aa8[_0x15d316(0x10e)](_0x15d316(0xce))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4608d2),'manifest':_0x4608d2[_0x15d316(0xe1)],'normalizedManifest':toPublicNormalizedServiceTree(_0x4608d2[_0x15d316(0xf9)])}};}}];
|
|
1
|
+
const a41_0x336e73=a41_0x2531;(function(_0x1a79fd,_0x1e6e79){const _0x236bf5=a41_0x2531,_0x3a0110=_0x1a79fd();while(!![]){try{const _0x8a1893=parseInt(_0x236bf5(0xe9))/0x1*(-parseInt(_0x236bf5(0xed))/0x2)+parseInt(_0x236bf5(0xe6))/0x3+-parseInt(_0x236bf5(0xf4))/0x4+parseInt(_0x236bf5(0x122))/0x5+-parseInt(_0x236bf5(0xfe))/0x6*(-parseInt(_0x236bf5(0x113))/0x7)+-parseInt(_0x236bf5(0x105))/0x8*(parseInt(_0x236bf5(0xfd))/0x9)+parseInt(_0x236bf5(0x109))/0xa*(parseInt(_0x236bf5(0x10f))/0xb);if(_0x8a1893===_0x1e6e79)break;else _0x3a0110['push'](_0x3a0110['shift']());}catch(_0x4ab444){_0x3a0110['push'](_0x3a0110['shift']());}}}(a41_0x3ced,0x7ab2b));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_0x336e73(0x106),'type':a41_0x336e73(0x11d),'required':!![],'description':a41_0x336e73(0xf0)},SERVICE_FLAG={'name':'service','type':a41_0x336e73(0x11d),'required':!![],'description':a41_0x336e73(0xea),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x336e73(0x10c)}};function summarizeService(_0xfea7af){const _0x22d023=a41_0x336e73;return{'serviceCode':_0xfea7af[_0x22d023(0xec)],'name':_0xfea7af[_0x22d023(0x104)][_0x22d023(0x10d)][_0x22d023(0x10e)],'version':_0xfea7af[_0x22d023(0x123)],'importedAt':_0xfea7af['importedAt'],'source':_0xfea7af[_0x22d023(0x128)],'commandCount':_0xfea7af[_0x22d023(0x104)][_0x22d023(0x11b)][_0x22d023(0xef)],'commands':_0xfea7af[_0x22d023(0x104)][_0x22d023(0x11b)][_0x22d023(0xfa)](_0x4e0d4c=>({'path':_0x4e0d4c[_0x22d023(0xf6)],'description':_0x4e0d4c['description'],'risk':_0x4e0d4c[_0x22d023(0x11a)],'target':toPublicServiceTreeTarget(_0x4e0d4c['target']),'flags':_0x4e0d4c[_0x22d023(0xf5)]['map'](_0x4503e5=>({'name':_0x4503e5[_0x22d023(0x10e)],'cliName':_0x4503e5['cliName'],'type':_0x4503e5[_0x22d023(0xe1)],'required':_0x4503e5[_0x22d023(0x112)]===!![]}))}))};}function summarizeLoadedManifest(_0x3caf01){const _0x467024=a41_0x336e73;return{'service':_0x3caf01['normalizedManifest']?.[_0x467024(0x10d)],'version':_0x3caf01[_0x467024(0x104)]?.[_0x467024(0x123)],'commandCount':_0x3caf01[_0x467024(0x104)]?.[_0x467024(0x11b)]['length']??0x0,'commands':_0x3caf01[_0x467024(0x104)]?.[_0x467024(0x11b)]['map'](_0x31d069=>({'path':_0x31d069[_0x467024(0xf6)],'risk':_0x31d069[_0x467024(0x11a)],'target':toPublicServiceTreeTarget(_0x31d069[_0x467024(0xe7)])}))??[],'registryIndex':_0x3caf01['registryIndex'],'registryServiceCode':_0x3caf01[_0x467024(0xe2)],'errors':_0x3caf01['report'][_0x467024(0x10b)],'warnings':_0x3caf01[_0x467024(0x127)][_0x467024(0x116)]};}export const serviceDefinitions=[{'service':a41_0x336e73(0x10d),'command':a41_0x336e73(0xff),'description':a41_0x336e73(0x100),'risk':a41_0x336e73(0x125),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x12169e){const _0x2bb91f=a41_0x336e73,_0x25734c=loadServiceManifestFromFile(_0x12169e['str'](_0x2bb91f(0x106)));if(!_0x25734c[_0x2bb91f(0x127)]['ok'])return{'ok':![],'data':{'file':_0x25734c[_0x2bb91f(0xf3)],'hash':_0x25734c[_0x2bb91f(0xf1)],'kind':_0x25734c[_0x2bb91f(0x11f)],'serviceCount':_0x25734c[_0x2bb91f(0x124)][_0x2bb91f(0xef)],'services':_0x25734c['manifests'][_0x2bb91f(0xfa)](summarizeLoadedManifest),'errors':_0x25734c[_0x2bb91f(0x127)][_0x2bb91f(0x10b)],'warnings':_0x25734c[_0x2bb91f(0x127)][_0x2bb91f(0x116)]},'message':formatValidationFailure(_0x25734c[_0x2bb91f(0x127)])};if(_0x25734c[_0x2bb91f(0x11f)]==='registry'||_0x25734c['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x25734c['filePath'],'hash':_0x25734c[_0x2bb91f(0xf1)],'kind':_0x25734c[_0x2bb91f(0x11f)],'serviceCount':_0x25734c[_0x2bb91f(0x124)][_0x2bb91f(0xef)],'commandCount':_0x25734c[_0x2bb91f(0x124)][_0x2bb91f(0xe4)]((_0xdb4a00,_0x4645c6)=>_0xdb4a00+(_0x4645c6[_0x2bb91f(0x104)]?.[_0x2bb91f(0x11b)][_0x2bb91f(0xef)]??0x0),0x0),'services':_0x25734c[_0x2bb91f(0x124)]['map'](summarizeLoadedManifest),'warnings':_0x25734c['report'][_0x2bb91f(0x116)]},'message':_0x2bb91f(0xf8)};return{'ok':!![],'data':{'file':_0x25734c[_0x2bb91f(0xf3)],'hash':_0x25734c['hash'],'kind':_0x25734c['kind'],'service':_0x25734c[_0x2bb91f(0x104)]?.['service'],'version':_0x25734c['normalizedManifest']?.[_0x2bb91f(0x123)],'commandCount':_0x25734c['normalizedManifest']?.[_0x2bb91f(0x11b)][_0x2bb91f(0xef)]??0x0,'commands':_0x25734c[_0x2bb91f(0x104)]?.['commands'][_0x2bb91f(0xfa)](_0x3ad0f0=>({'path':_0x3ad0f0['cliPath'],'risk':_0x3ad0f0[_0x2bb91f(0x11a)],'target':toPublicServiceTreeTarget(_0x3ad0f0[_0x2bb91f(0xe7)])})),'warnings':_0x25734c['report'][_0x2bb91f(0x116)]},'message':_0x2bb91f(0xf2)};}},{'service':a41_0x336e73(0x10d),'command':a41_0x336e73(0x102),'description':a41_0x336e73(0x117),'risk':'write','confirmationDescription':a41_0x336e73(0x10a),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x37445e){const _0x2d851b=a41_0x336e73,_0x48c167=loadServiceManifestFromFile(_0x37445e[_0x2d851b(0x11e)]('file'));return{'method':_0x2d851b(0xe3),'url':getServiceRegistryPath(),'body':{'file':_0x48c167[_0x2d851b(0xf3)],'hash':_0x48c167[_0x2d851b(0xf1)],'kind':_0x48c167[_0x2d851b(0x11f)],'ok':_0x48c167[_0x2d851b(0x127)]['ok'],'service':_0x48c167['normalizedManifest']?.[_0x2d851b(0x10d)],'version':_0x48c167[_0x2d851b(0x104)]?.['version'],'serviceCount':_0x48c167[_0x2d851b(0x124)][_0x2d851b(0xef)],'services':_0x48c167[_0x2d851b(0x124)][_0x2d851b(0xfa)](_0x18e65b=>({'service':_0x18e65b[_0x2d851b(0x104)]?.['service'],'version':_0x18e65b[_0x2d851b(0x104)]?.[_0x2d851b(0x123)],'commandCount':_0x18e65b['normalizedManifest']?.[_0x2d851b(0x11b)][_0x2d851b(0xef)]??0x0,'errors':_0x18e65b[_0x2d851b(0x127)]['errors']})),'errors':_0x48c167[_0x2d851b(0x127)][_0x2d851b(0x10b)],'commandCount':_0x48c167['normalizedManifest']?.[_0x2d851b(0x11b)][_0x2d851b(0xef)]??0x0},'description':_0x2d851b(0xeb)};},async 'execute'(_0x5c0a9c){const _0x58b3d1=a41_0x336e73,_0x511e4a=importServiceManifest(_0x5c0a9c['str'](_0x58b3d1(0x106)));if(_0x511e4a[_0x58b3d1(0x108)][_0x58b3d1(0xef)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x511e4a['registryPath'],'imported':_0x511e4a[_0x58b3d1(0xe8)],'updated':_0x511e4a[_0x58b3d1(0x110)],'serviceCount':_0x511e4a[_0x58b3d1(0x11c)],'services':_0x511e4a[_0x58b3d1(0x108)][_0x58b3d1(0xfa)](summarizeService)},'message':'Imported\x20'+_0x511e4a[_0x58b3d1(0xe8)]+'\x20service(s),\x20updated\x20'+_0x511e4a[_0x58b3d1(0x110)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x511e4a[_0x58b3d1(0xf7)],'replaced':_0x511e4a[_0x58b3d1(0xe5)],'imported':_0x511e4a[_0x58b3d1(0xe8)],'updated':_0x511e4a[_0x58b3d1(0x110)],'serviceCount':_0x511e4a[_0x58b3d1(0x11c)],'service':summarizeService(_0x511e4a[_0x58b3d1(0xfc)])},'message':(_0x511e4a[_0x58b3d1(0xe5)]?_0x58b3d1(0x107):'Imported')+_0x58b3d1(0x120)+_0x511e4a['entry']['serviceCode']+'.'};}},{'service':a41_0x336e73(0x10d),'command':a41_0x336e73(0x103),'description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':a41_0x336e73(0x126),'confirmationDescription':a41_0x336e73(0x121),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x27d062){const _0x313185=a41_0x336e73,_0x5f1bd7=getLocalServiceEntry(_0x27d062[_0x313185(0x11e)](_0x313185(0x10d)));return{'method':'WRITE','url':_0x27d062[_0x313185(0x11e)](_0x313185(0x106)),'body':{'service':_0x27d062['str'](_0x313185(0x10d)),'found':Boolean(_0x5f1bd7),'version':_0x5f1bd7?.[_0x313185(0x123)],'source':_0x5f1bd7?.[_0x313185(0x128)]},'description':_0x313185(0xfb)};},async 'execute'(_0x59658c){const _0x4db5fb=a41_0x336e73,_0x4ffe3f=exportServiceManifest(_0x59658c[_0x4db5fb(0x11e)](_0x4db5fb(0x10d)),_0x59658c[_0x4db5fb(0x11e)](_0x4db5fb(0x106)));return{'ok':!![],'data':{'registryPath':_0x4ffe3f[_0x4db5fb(0xf7)],'file':_0x4ffe3f[_0x4db5fb(0xf3)],'service':summarizeService(_0x4ffe3f[_0x4db5fb(0xfc)])},'message':'Exported\x20service\x20'+_0x4ffe3f[_0x4db5fb(0xfc)][_0x4db5fb(0xec)]+'.'};}},{'service':a41_0x336e73(0x10d),'command':a41_0x336e73(0x119),'description':a41_0x336e73(0xee),'risk':a41_0x336e73(0x125),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5743f6=a41_0x336e73,_0x4e0a1c=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x4e0a1c[_0x5743f6(0xef)],'services':_0x4e0a1c['map'](summarizeService)}};}},{'service':a41_0x336e73(0x10d),'command':a41_0x336e73(0xf9),'description':a41_0x336e73(0x111),'risk':a41_0x336e73(0x126),'confirmationDescription':a41_0x336e73(0x101),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4ef1ea){const _0x7d6d7e=a41_0x336e73,_0x15a043=getLocalServiceEntry(_0x4ef1ea[_0x7d6d7e(0x11e)](_0x7d6d7e(0x10d)));return{'method':_0x7d6d7e(0xe3),'url':getServiceRegistryPath(),'body':{'service':_0x4ef1ea[_0x7d6d7e(0x11e)](_0x7d6d7e(0x10d)),'found':Boolean(_0x15a043),'version':_0x15a043?.[_0x7d6d7e(0x123)],'source':_0x15a043?.['source']},'description':_0x7d6d7e(0xe0)};},async 'execute'(_0x5bab0b){const _0x1f0b9f=a41_0x336e73,_0x257f69=removeServiceManifest(_0x5bab0b[_0x1f0b9f(0x11e)](_0x1f0b9f(0x10d)));return{'ok':!![],'data':{'registryPath':_0x257f69[_0x1f0b9f(0xf7)],'serviceCount':_0x257f69[_0x1f0b9f(0x11c)],'service':summarizeService(_0x257f69[_0x1f0b9f(0xfc)])},'message':'Removed\x20service\x20'+_0x257f69['entry'][_0x1f0b9f(0xec)]+'.'};}},{'service':a41_0x336e73(0x10d),'command':'detail','description':a41_0x336e73(0x114),'risk':a41_0x336e73(0x125),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xb9c5a5){const _0x55b5e0=a41_0x336e73,_0x1fb37f=getLocalServiceEntry(_0xb9c5a5[_0x55b5e0(0x11e)](_0x55b5e0(0x10d)));if(!_0x1fb37f)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xb9c5a5[_0x55b5e0(0x11e)]('service')},'message':_0x55b5e0(0x115)+_0xb9c5a5[_0x55b5e0(0x11e)](_0x55b5e0(0x10d))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x1fb37f),'manifest':_0x1fb37f[_0x55b5e0(0x118)],'normalizedManifest':toPublicNormalizedServiceTree(_0x1fb37f[_0x55b5e0(0x104)])}};}}];function a41_0x2531(_0x16458f,_0x352fdc){_0x16458f=_0x16458f-0xe0;const _0x3ceda5=a41_0x3ced();let _0x253194=_0x3ceda5[_0x16458f];return _0x253194;}function a41_0x3ced(){const _0x45d5e0=['将\x20Service\x20Tree\x20清单导入本地运行态注册表','manifest','list','risk','commands','serviceCount','string','str','kind','\x20service\x20','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','647475VAAZQW','version','manifests','read','write','report','source','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','type','registryServiceCode','WRITE','reduce','replaced','454251udnpfT','target','imported','22zhUfaN','Local\x20service\x20code,\x20for\x20example\x20crm','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','serviceCode','12092tgayYZ','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','length','Service\x20Tree\x20manifest\x20file\x20path','hash','Service\x20manifest\x20validation\x20passed.','filePath','3290220iQpzCi','flags','cliPath','registryPath','Service\x20registry\x20validation\x20passed.','remove','map','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','entry','9wQuDdA','6XLWuhX','validate','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','import','export','normalizedManifest','1373096nSnKSt','file','Updated','entries','150ThPvbU','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','errors','lower\x20kebab-case\x20service\x20code','service','name','368269pXDLKg','updated','从本地运行态注册表移除\x20Service\x20Tree\x20清单','required','5926746tnfeNE','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Local\x20service\x20not\x20found:\x20','warnings'];a41_0x3ced=function(){return _0x45d5e0;};return a41_0x3ced();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a42_0x2e02ac=a42_0x380c;(function(_0x9be9cd,_0x383a40){const _0x1829dd=a42_0x380c,_0x5e6e59=_0x9be9cd();while(!![]){try{const _0x41173b=-parseInt(_0x1829dd(0x1a9))/0x1*(-parseInt(_0x1829dd(0x1c7))/0x2)+-parseInt(_0x1829dd(0x1ce))/0x3*(-parseInt(_0x1829dd(0x197))/0x4)+parseInt(_0x1829dd(0x191))/0x5+parseInt(_0x1829dd(0x1d5))/0x6+-parseInt(_0x1829dd(0x1a6))/0x7+parseInt(_0x1829dd(0x1a8))/0x8*(parseInt(_0x1829dd(0x1b6))/0x9)+-parseInt(_0x1829dd(0x195))/0xa;if(_0x41173b===_0x383a40)break;else _0x5e6e59['push'](_0x5e6e59['shift']());}catch(_0x216385){_0x5e6e59['push'](_0x5e6e59['shift']());}}}(a42_0x4506,0x79101));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;function a42_0x4506(){const _0x1a2b0d=['validation','1734147ZLoreP','findIndex','risk','sourceHash','stringify','$.services[','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','trim','manifests','utf8','homeDir','Service\x20manifest\x20file\x20not\x20found:\x20','errors','bff\x20target\x20requires\x20functionName.','slice','push','startsWith','8820XfiEep','homeDirName','digest','parse','splice','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','map','45828hOzaHI','.tmp','normalizedManifest','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Invalid\x20service\x20registry\x20JSON:\x20','].manifest','1799364mvgQYA','find','now','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','flatMap','version','name','2298375krcQOF','serviceCode','warnings','manifest','26426330cBLnEN','registryIndex','228QFNtZw','report','services','path','kind','registry','code','schemaVersion','target','commandCount','cliPath','file','Invalid\x20service\x20manifest\x20JSON:\x20','invalid','message','1412999KmOtcT','isArray','32Xuruzr','213sBnQHc','length','ENOENT','service','CliError','updatedAt','missing','source','empty','service.json','importedAt','reduce'];a42_0x4506=function(){return _0x1a2b0d;};return a42_0x4506();}export const SERVICE_REGISTRY_FILE_NAME=a42_0x2e02ac(0x1b2);export function getServiceRegistryPath(_0x4f7a11={}){const _0x2e9d95=a42_0x2e02ac;return resolve(_0x4f7a11[_0x2e9d95(0x1c0)]??homedir(),PRODUCT_CONFIG[_0x2e9d95(0x1c8)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x5a1415={}){const _0x170088=a42_0x2e02ac,_0x2d3595=getServiceRegistryPath(_0x5a1415);if(!existsSync(_0x2d3595))return emptyServiceRegistry();try{const _0x499f05=readFileSync(_0x2d3595,_0x170088(0x1bf));if(!_0x499f05['trim']())return emptyServiceRegistry();const _0x41526a=JSON['parse'](_0x499f05);if(_0x41526a['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x170088(0x1b5)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x41526a[_0x170088(0x19e)]),'Remove\x20or\x20migrate\x20'+_0x2d3595+'.');if(!Array['isArray'](_0x41526a[_0x170088(0x199)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x41526a[_0x170088(0x1ae)],'services':_0x41526a[_0x170088(0x199)]};}catch(_0x263fd3){if(_0x263fd3 instanceof Error&&_0x263fd3['name']===_0x170088(0x1ad))throw _0x263fd3;throw CliErrors[_0x170088(0x1b5)](_0x170088(0x1d3)+_0x2d3595,_0x170088(0x1cc));}}function a42_0x380c(_0x1f9dbb,_0x28fdd4){_0x1f9dbb=_0x1f9dbb-0x18c;const _0x450688=a42_0x4506();let _0x380cfd=_0x450688[_0x1f9dbb];return _0x380cfd;}export function writeServiceRegistry(_0x2edfe6,_0x541e78={}){const _0x285377=a42_0x2e02ac,_0x48de70=getServiceRegistryPath(_0x541e78),_0x5cf14c=dirname(_0x48de70);!existsSync(_0x5cf14c)&&mkdirSync(_0x5cf14c,{'recursive':!![]});const _0x27be7b=_0x48de70+_0x285377(0x1cf);try{writeFileSync(_0x27be7b,JSON[_0x285377(0x1ba)](_0x2edfe6,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x27be7b,_0x48de70);}catch(_0x363370){try{unlinkSync(_0x27be7b);}catch{}if(_0x363370?.[_0x285377(0x19d)]===_0x285377(0x1ab))throw CliErrors[_0x285377(0x1b5)]('Cannot\x20write\x20service\x20registry:\x20'+_0x48de70);throw _0x363370;}return _0x48de70;}export function loadServiceManifestFromFile(_0x2ce2e0){const _0x4ef886=a42_0x2e02ac,_0x3061e9=resolve(_0x2ce2e0);if(!existsSync(_0x3061e9))throw CliErrors[_0x4ef886(0x1b5)](_0x4ef886(0x1c1)+_0x2ce2e0);let _0x8ad2e0;const _0x1badf8=readFileSync(_0x3061e9,_0x4ef886(0x1bf));try{_0x8ad2e0=JSON[_0x4ef886(0x1ca)](_0x1badf8);}catch{throw CliErrors[_0x4ef886(0x1b5)](_0x4ef886(0x1a3)+_0x2ce2e0,_0x4ef886(0x18d));}const _0x104380=sha256(_0x1badf8),_0x605da=extractLoadedServiceManifests(_0x8ad2e0,_0x104380),_0x14c2e9=aggregateValidationReports(_0x605da),_0x14ee53=_0x605da[0x0];return{'filePath':_0x3061e9,'hash':_0x104380,'kind':isServiceRegistryLike(_0x8ad2e0)?_0x4ef886(0x19c):_0x4ef886(0x194),'manifest':_0x14ee53?.['manifest']??_0x8ad2e0,'report':_0x14c2e9,'normalizedManifest':_0x605da[_0x4ef886(0x1aa)]===0x1?_0x14ee53?.[_0x4ef886(0x1d0)]:undefined,'manifests':_0x605da};}export function importServiceManifest(_0x5e9954,_0x104543={}){const _0xcb4b25=a42_0x2e02ac,_0x2c65da=loadServiceManifestFromFile(_0x5e9954);if(!_0x2c65da[_0xcb4b25(0x198)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x2c65da[_0xcb4b25(0x198)]),_0xcb4b25(0x1bc));if(_0x2c65da[_0xcb4b25(0x1be)]['length']===0x0)throw CliErrors[_0xcb4b25(0x1b5)](_0xcb4b25(0x1d2),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x329c41=readServiceRegistry(_0x104543),_0x50c30b=(_0x104543[_0xcb4b25(0x18c)]??(()=>new Date()))()['toISOString'](),_0x30e30f=[];let _0x32e3aa=0x0,_0x6a1e94=0x0;for(const _0x326321 of _0x2c65da[_0xcb4b25(0x1be)]){if(!_0x326321[_0xcb4b25(0x1d0)])continue;const _0x515b77=_0x326321[_0xcb4b25(0x1d0)][_0xcb4b25(0x1ac)]['code'],_0x510b35={'serviceCode':_0x515b77,'version':_0x326321[_0xcb4b25(0x1d0)][_0xcb4b25(0x18f)],'importedAt':_0x50c30b,'source':{'type':_0xcb4b25(0x1a2),'path':_0x2c65da['filePath'],'hash':_0x326321[_0xcb4b25(0x1b9)]},'manifest':_0x326321[_0xcb4b25(0x194)],'normalizedManifest':_0x326321[_0xcb4b25(0x1d0)]},_0x1db50e=_0x329c41[_0xcb4b25(0x199)]['findIndex'](_0x36817d=>_0x36817d[_0xcb4b25(0x192)]===_0x515b77);_0x1db50e>=0x0?(_0x329c41[_0xcb4b25(0x199)][_0x1db50e]=_0x510b35,_0x6a1e94++):(_0x329c41[_0xcb4b25(0x199)][_0xcb4b25(0x1c5)](_0x510b35),_0x32e3aa++),_0x30e30f[_0xcb4b25(0x1c5)](_0x510b35);}_0x329c41[_0xcb4b25(0x199)]['sort']((_0x292eba,_0x540cde)=>_0x292eba[_0xcb4b25(0x192)]['localeCompare'](_0x540cde[_0xcb4b25(0x192)])),_0x329c41[_0xcb4b25(0x1ae)]=_0x50c30b;const _0x18c85e=writeServiceRegistry(_0x329c41,_0x104543);return{'registryPath':_0x18c85e,'entry':_0x30e30f[0x0],'replaced':_0x30e30f[_0xcb4b25(0x1aa)]===0x1?_0x6a1e94===0x1:_0x6a1e94>0x0,'entries':_0x30e30f,'imported':_0x32e3aa,'updated':_0x6a1e94,'serviceCount':_0x329c41[_0xcb4b25(0x199)]['length']};}export function exportServiceManifest(_0x17639a,_0x2865a4,_0x3217eb={}){const _0x4af334=a42_0x2e02ac,_0x2b7e90=getServiceRegistryPath(_0x3217eb),_0x37a701=getLocalServiceEntry(_0x17639a,_0x3217eb);if(!_0x37a701)throw CliErrors[_0x4af334(0x1b5)]('Local\x20service\x20not\x20found:\x20'+_0x17639a,_0x4af334(0x1d1));const _0x144671=resolve(_0x2865a4),_0x5c263e=dirname(_0x144671);return!existsSync(_0x5c263e)&&mkdirSync(_0x5c263e,{'recursive':!![]}),writeFileSync(_0x144671,JSON[_0x4af334(0x1ba)](_0x37a701[_0x4af334(0x194)],null,0x2)+'\x0a',{'encoding':_0x4af334(0x1bf),'mode':0x180}),{'registryPath':_0x2b7e90,'filePath':_0x144671,'entry':_0x37a701};}export function removeServiceManifest(_0x6847d7,_0x557f87={}){const _0x2d2804=a42_0x2e02ac,_0x3bb4b0=readServiceRegistry(_0x557f87),_0x3cf676=_0x6847d7[_0x2d2804(0x1bd)](),_0x1e78a6=_0x3bb4b0[_0x2d2804(0x199)][_0x2d2804(0x1b7)](_0x1fe6d1=>_0x1fe6d1[_0x2d2804(0x192)]===_0x3cf676);if(_0x1e78a6<0x0)throw CliErrors[_0x2d2804(0x1b5)]('Local\x20service\x20not\x20found:\x20'+_0x3cf676,_0x2d2804(0x1d1));const [_0x2c045b]=_0x3bb4b0['services'][_0x2d2804(0x1cb)](_0x1e78a6,0x1),_0x385d26=(_0x557f87['now']??(()=>new Date()))()['toISOString']();_0x3bb4b0['updatedAt']=_0x385d26;const _0x1d985e=writeServiceRegistry(_0x3bb4b0,_0x557f87);return{'registryPath':_0x1d985e,'entry':_0x2c045b,'serviceCount':_0x3bb4b0['services']['length']};}export function listLocalServices(_0x1e4d22={}){const _0x2a4312=a42_0x2e02ac;return readServiceRegistry(_0x1e4d22)[_0x2a4312(0x199)];}export function getLocalServiceEntry(_0x32f80f,_0x2489ed={}){const _0xc05cad=a42_0x2e02ac;return readServiceRegistry(_0x2489ed)['services'][_0xc05cad(0x1d6)](_0x479bca=>_0x479bca[_0xc05cad(0x192)]===_0x32f80f[_0xc05cad(0x1bd)]());}export function listLocalServiceTrees(_0x4824ee={}){const _0x460ae5=a42_0x2e02ac;return readServiceRegistry(_0x4824ee)[_0x460ae5(0x199)][_0x460ae5(0x1cd)](_0x337386=>_0x337386[_0x460ae5(0x1d0)]);}export function inspectServiceRegistry(_0x54703b={}){const _0x48c0dc=a42_0x2e02ac,_0x349a23=getServiceRegistryPath(_0x54703b);if(!existsSync(_0x349a23))return emptyServiceRegistryInspection(_0x349a23,_0x48c0dc(0x1af),![]);try{const _0x255a5f=readFileSync(_0x349a23,'utf8');if(!_0x255a5f[_0x48c0dc(0x1bd)]())return emptyServiceRegistryInspection(_0x349a23,_0x48c0dc(0x1b1),!![]);const _0x476695=JSON['parse'](_0x255a5f);if(_0x476695[_0x48c0dc(0x19e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x349a23,_0x48c0dc(0x1a4),!![]),'schemaVersion':_0x476695[_0x48c0dc(0x19e)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x476695[_0x48c0dc(0x19e)])};if(!Array[_0x48c0dc(0x1a7)](_0x476695[_0x48c0dc(0x199)]))return{...emptyServiceRegistryInspection(_0x349a23,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x476695['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0x119a14=_0x476695[_0x48c0dc(0x199)][_0x48c0dc(0x1cd)](summarizeLocalServiceEntry);return{'registryPath':_0x349a23,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x476695[_0x48c0dc(0x1ae)],'serviceCount':_0x119a14[_0x48c0dc(0x1aa)],'commandCount':_0x119a14[_0x48c0dc(0x1b4)]((_0x334a18,_0x177d77)=>_0x334a18+_0x177d77[_0x48c0dc(0x1a0)],0x0),'services':_0x119a14};}catch(_0x5203d0){return{...emptyServiceRegistryInspection(_0x349a23,_0x48c0dc(0x1a4),!![]),'message':_0x5203d0 instanceof Error?_0x5203d0[_0x48c0dc(0x1a5)]:String(_0x5203d0)};}}export function formatValidationFailure(_0x3bf0f0){const _0x34786e=a42_0x2e02ac,_0x1216d3=_0x3bf0f0[_0x34786e(0x1c2)][_0x34786e(0x1cd)](_0x50b990=>_0x50b990[_0x34786e(0x19a)]+':\x20'+_0x50b990[_0x34786e(0x1a5)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x1216d3['join']('\x0a');}function extractLoadedServiceManifests(_0x2a4d57,_0x1c91aa){const _0x53f1b9=a42_0x2e02ac;if(!isServiceRegistryLike(_0x2a4d57)){const _0x29ec15=_0x2a4d57,{manifest:_0x2c0c96,errors:_0x259722}=adaptServiceTreeManifestForLegacyFramework(_0x29ec15),_0x4f83b5=validateServiceTreeManifest(_0x2c0c96),_0x21d593=mergeValidationErrors(_0x4f83b5,_0x259722);return[{'manifest':_0x29ec15,'report':_0x21d593,'normalizedManifest':_0x21d593['ok']?normalizeServiceTreeManifest(_0x2c0c96):undefined,'sourceHash':_0x1c91aa}];}return _0x2a4d57[_0x53f1b9(0x199)][_0x53f1b9(0x1cd)]((_0x366098,_0x2a17ff)=>{const _0x2e0e34=_0x53f1b9,_0x589efa=isObjectRecord(_0x366098)?_0x366098[_0x2e0e34(0x194)]:undefined,{manifest:_0x5fad1c,errors:_0x16235c}=adaptServiceTreeManifestForLegacyFramework(_0x589efa),_0x11d149=validateServiceTreeManifest(_0x5fad1c),_0xc1effa=mergeValidationErrors(_0x11d149,_0x16235c),_0x383774=isObjectRecord(_0x366098)&&typeof _0x366098[_0x2e0e34(0x192)]==='string'?_0x366098[_0x2e0e34(0x192)]:undefined;return{'manifest':_0x589efa,'report':_0xc1effa,'normalizedManifest':_0xc1effa['ok']?normalizeServiceTreeManifest(_0x5fad1c):undefined,'sourceHash':sha256(JSON[_0x2e0e34(0x1ba)](_0x589efa,null,0x2)+'\x0a'),'registryIndex':_0x2a17ff,'registryServiceCode':_0x383774};});}function mergeValidationErrors(_0x3606db,_0x1527f7){const _0x42b4c2=a42_0x2e02ac,_0x1fa30c=_0x3606db[_0x42b4c2(0x1c2)]['map'](_0x1016cd=>_0x1016cd[_0x42b4c2(0x1a5)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x1016cd,'message':_0x42b4c2(0x1c3)}:_0x1016cd),_0x513ddd=[..._0x1527f7,..._0x1fa30c];return{'ok':_0x513ddd[_0x42b4c2(0x1aa)]===0x0,'errors':_0x513ddd,'warnings':_0x3606db[_0x42b4c2(0x193)]};}function aggregateValidationReports(_0x5cfaa1){const _0x229011=a42_0x2e02ac,_0x18da32=_0x5cfaa1[_0x229011(0x18e)](_0x365216=>_0x365216[_0x229011(0x196)]===undefined?_0x365216[_0x229011(0x198)][_0x229011(0x1c2)]:_0x365216[_0x229011(0x198)][_0x229011(0x1c2)][_0x229011(0x1cd)](_0x10074a=>({..._0x10074a,'path':prefixRegistryIssuePath(_0x365216[_0x229011(0x196)],_0x10074a[_0x229011(0x19a)])}))),_0x17385f=_0x5cfaa1['flatMap'](_0x43e908=>_0x43e908[_0x229011(0x196)]===undefined?_0x43e908[_0x229011(0x198)][_0x229011(0x193)]:_0x43e908[_0x229011(0x198)][_0x229011(0x193)][_0x229011(0x1cd)](_0x127cf1=>({..._0x127cf1,'path':prefixRegistryIssuePath(_0x43e908[_0x229011(0x196)],_0x127cf1[_0x229011(0x19a)])})));return{'ok':_0x18da32[_0x229011(0x1aa)]===0x0,'errors':_0x18da32,'warnings':_0x17385f};}function prefixRegistryIssuePath(_0x2db357,_0x30fb5b){const _0x26f701=a42_0x2e02ac;if(_0x30fb5b==='$')return _0x26f701(0x1bb)+_0x2db357+_0x26f701(0x1d4);if(_0x30fb5b[_0x26f701(0x1c6)]('$.'))return _0x26f701(0x1bb)+_0x2db357+_0x26f701(0x1d4)+_0x30fb5b[_0x26f701(0x1c4)](0x1);if(_0x30fb5b[_0x26f701(0x1c6)]('$['))return'$.services['+_0x2db357+_0x26f701(0x1d4)+_0x30fb5b[_0x26f701(0x1c4)](0x1);return _0x26f701(0x1bb)+_0x2db357+'].manifest.'+_0x30fb5b;}function isServiceRegistryLike(_0xfbf828){const _0x314b77=a42_0x2e02ac;return isObjectRecord(_0xfbf828)&&_0xfbf828['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0xfbf828[_0x314b77(0x199)]);}function isObjectRecord(_0x10f8ca){const _0x355389=a42_0x2e02ac;return Boolean(_0x10f8ca)&&typeof _0x10f8ca==='object'&&!Array[_0x355389(0x1a7)](_0x10f8ca);}function emptyServiceRegistryInspection(_0x598029,_0x66d6ff,_0x3d49d6){return{'registryPath':_0x598029,'exists':_0x3d49d6,'status':_0x66d6ff,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x31d5e6){const _0xcfcc72=a42_0x2e02ac,_0x11a834=_0x31d5e6['normalizedManifest'],_0x1204ff=_0x11a834['commands'][_0xcfcc72(0x1cd)](_0x3aa67a=>({'path':_0x3aa67a[_0xcfcc72(0x1a1)],'description':_0x3aa67a['description'],'risk':_0x3aa67a[_0xcfcc72(0x1b8)],'targetKind':_0x3aa67a[_0xcfcc72(0x19f)][_0xcfcc72(0x19b)],'targetCommand':_0x3aa67a[_0xcfcc72(0x19f)]['command']}));return{'serviceCode':_0x31d5e6[_0xcfcc72(0x192)],'name':_0x11a834['service'][_0xcfcc72(0x190)],'description':_0x11a834[_0xcfcc72(0x1ac)]['description'],'version':_0x31d5e6['version'],'importedAt':_0x31d5e6[_0xcfcc72(0x1b3)],'source':_0x31d5e6[_0xcfcc72(0x1b0)],'commandCount':_0x1204ff[_0xcfcc72(0x1aa)],'commands':_0x1204ff};}function sha256(_0x4ad57e){const _0x2fff01=a42_0x2e02ac;return createHash('sha256')['update'](_0x4ad57e)[_0x2fff01(0x1c9)]('hex');}
|
|
1
|
+
(function(_0x1e9f7a,_0x2a9b81){const _0x4aebb9=a42_0x1d44,_0x1cbc8f=_0x1e9f7a();while(!![]){try{const _0x4cfcb4=-parseInt(_0x4aebb9(0xe4))/0x1+parseInt(_0x4aebb9(0xca))/0x2*(-parseInt(_0x4aebb9(0xdc))/0x3)+parseInt(_0x4aebb9(0xe8))/0x4+-parseInt(_0x4aebb9(0xe3))/0x5+-parseInt(_0x4aebb9(0x9d))/0x6*(-parseInt(_0x4aebb9(0x9e))/0x7)+-parseInt(_0x4aebb9(0xa7))/0x8+parseInt(_0x4aebb9(0xa2))/0x9;if(_0x4cfcb4===_0x2a9b81)break;else _0x1cbc8f['push'](_0x1cbc8f['shift']());}catch(_0x3f4c1c){_0x1cbc8f['push'](_0x1cbc8f['shift']());}}}(a42_0xabaa,0x406bf));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='service.json';export function getServiceRegistryPath(_0x308314={}){const _0x691d91=a42_0x1d44;return resolve(_0x308314[_0x691d91(0xe0)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x24d7fc={}){const _0x486d40=a42_0x1d44,_0x14beb4=getServiceRegistryPath(_0x24d7fc);if(!existsSync(_0x14beb4))return emptyServiceRegistry();try{const _0x5d4987=readFileSync(_0x14beb4,_0x486d40(0xdd));if(!_0x5d4987[_0x486d40(0xc8)]())return emptyServiceRegistry();const _0x1f2876=JSON[_0x486d40(0xb9)](_0x5d4987);if(_0x1f2876['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation']('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x1f2876['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x14beb4+'.');if(!Array['isArray'](_0x1f2876[_0x486d40(0xc3)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1f2876[_0x486d40(0xb4)],'services':_0x1f2876[_0x486d40(0xc3)]};}catch(_0x505a61){if(_0x505a61 instanceof Error&&_0x505a61[_0x486d40(0xd6)]===_0x486d40(0xb2))throw _0x505a61;throw CliErrors[_0x486d40(0xa5)](_0x486d40(0xb3)+_0x14beb4,_0x486d40(0xc6));}}export function writeServiceRegistry(_0x13715b,_0x41a9da={}){const _0x15008=a42_0x1d44,_0x48abbe=getServiceRegistryPath(_0x41a9da),_0x1cc0fa=dirname(_0x48abbe);!existsSync(_0x1cc0fa)&&mkdirSync(_0x1cc0fa,{'recursive':!![]});const _0xb43917=_0x48abbe+'.tmp';try{writeFileSync(_0xb43917,JSON[_0x15008(0xe2)](_0x13715b,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xb43917,_0x48abbe);}catch(_0x3ce0f2){try{unlinkSync(_0xb43917);}catch{}if(_0x3ce0f2?.[_0x15008(0xc2)]===_0x15008(0xeb))throw CliErrors[_0x15008(0xa5)]('Cannot\x20write\x20service\x20registry:\x20'+_0x48abbe);throw _0x3ce0f2;}return _0x48abbe;}export function loadServiceManifestFromFile(_0x572d0b){const _0x4e9fcf=a42_0x1d44,_0x5ba2e4=resolve(_0x572d0b);if(!existsSync(_0x5ba2e4))throw CliErrors[_0x4e9fcf(0xa5)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x572d0b);let _0x5528a2;const _0x517765=readFileSync(_0x5ba2e4,'utf8');try{_0x5528a2=JSON[_0x4e9fcf(0xb9)](_0x517765);}catch{throw CliErrors[_0x4e9fcf(0xa5)](_0x4e9fcf(0xde)+_0x572d0b,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x4d4585=sha256(_0x517765),_0x5db4e6=extractLoadedServiceManifests(_0x5528a2,_0x4d4585),_0x1952d7=aggregateValidationReports(_0x5db4e6),_0x356e7e=_0x5db4e6[0x0];return{'filePath':_0x5ba2e4,'hash':_0x4d4585,'kind':isServiceRegistryLike(_0x5528a2)?'registry':_0x4e9fcf(0xb6),'manifest':_0x356e7e?.[_0x4e9fcf(0xb6)]??_0x5528a2,'report':_0x1952d7,'normalizedManifest':_0x5db4e6[_0x4e9fcf(0xe7)]===0x1?_0x356e7e?.[_0x4e9fcf(0xd2)]:undefined,'manifests':_0x5db4e6};}function a42_0x1d44(_0xb5a944,_0x1552ba){_0xb5a944=_0xb5a944-0x99;const _0xabaa28=a42_0xabaa();let _0x1d447e=_0xabaa28[_0xb5a944];return _0x1d447e;}export function importServiceManifest(_0x48eeb9,_0x2f26e9={}){const _0x4a28fa=a42_0x1d44,_0x300e0e=loadServiceManifestFromFile(_0x48eeb9);if(!_0x300e0e[_0x4a28fa(0xc0)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x300e0e[_0x4a28fa(0xc0)]),_0x4a28fa(0xd4));if(_0x300e0e[_0x4a28fa(0xa8)][_0x4a28fa(0xe7)]===0x0)throw CliErrors[_0x4a28fa(0xa5)](_0x4a28fa(0xda),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x33eed4=readServiceRegistry(_0x2f26e9),_0xf4c6e0=(_0x2f26e9['now']??(()=>new Date()))()[_0x4a28fa(0xa3)](),_0x226766=[];let _0x83bcf6=0x0,_0x444ec5=0x0;for(const _0x234afc of _0x300e0e[_0x4a28fa(0xa8)]){if(!_0x234afc[_0x4a28fa(0xd2)])continue;const _0xba05c6=_0x234afc[_0x4a28fa(0xd2)][_0x4a28fa(0x9c)][_0x4a28fa(0xc2)],_0x124681={'serviceCode':_0xba05c6,'version':_0x234afc[_0x4a28fa(0xd2)][_0x4a28fa(0xdf)],'importedAt':_0xf4c6e0,'source':{'type':'file','path':_0x300e0e[_0x4a28fa(0xd1)],'hash':_0x234afc[_0x4a28fa(0xe5)]},'manifest':_0x234afc[_0x4a28fa(0xb6)],'normalizedManifest':_0x234afc[_0x4a28fa(0xd2)]},_0x6889f1=_0x33eed4[_0x4a28fa(0xc3)][_0x4a28fa(0xb5)](_0x4a276b=>_0x4a276b[_0x4a28fa(0xd9)]===_0xba05c6);_0x6889f1>=0x0?(_0x33eed4['services'][_0x6889f1]=_0x124681,_0x444ec5++):(_0x33eed4[_0x4a28fa(0xc3)][_0x4a28fa(0xbe)](_0x124681),_0x83bcf6++),_0x226766[_0x4a28fa(0xbe)](_0x124681);}_0x33eed4[_0x4a28fa(0xc3)][_0x4a28fa(0x99)]((_0xa03eda,_0x32365a)=>_0xa03eda[_0x4a28fa(0xd9)][_0x4a28fa(0xa4)](_0x32365a[_0x4a28fa(0xd9)])),_0x33eed4[_0x4a28fa(0xb4)]=_0xf4c6e0;const _0x29c283=writeServiceRegistry(_0x33eed4,_0x2f26e9);return{'registryPath':_0x29c283,'entry':_0x226766[0x0],'replaced':_0x226766[_0x4a28fa(0xe7)]===0x1?_0x444ec5===0x1:_0x444ec5>0x0,'entries':_0x226766,'imported':_0x83bcf6,'updated':_0x444ec5,'serviceCount':_0x33eed4[_0x4a28fa(0xc3)][_0x4a28fa(0xe7)]};}export function exportServiceManifest(_0x2788a7,_0x34fbd4,_0x4f29e0={}){const _0x62d72d=a42_0x1d44,_0x1f03b9=getServiceRegistryPath(_0x4f29e0),_0x1f58c0=getLocalServiceEntry(_0x2788a7,_0x4f29e0);if(!_0x1f58c0)throw CliErrors[_0x62d72d(0xa5)](_0x62d72d(0xa0)+_0x2788a7,_0x62d72d(0xcb));const _0x47e0af=resolve(_0x34fbd4),_0x38f095=dirname(_0x47e0af);return!existsSync(_0x38f095)&&mkdirSync(_0x38f095,{'recursive':!![]}),writeFileSync(_0x47e0af,JSON['stringify'](_0x1f58c0[_0x62d72d(0xb6)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x1f03b9,'filePath':_0x47e0af,'entry':_0x1f58c0};}export function removeServiceManifest(_0x5981f2,_0x44764a={}){const _0x4255e2=a42_0x1d44,_0x2d2c54=readServiceRegistry(_0x44764a),_0x892440=_0x5981f2[_0x4255e2(0xc8)](),_0x10098e=_0x2d2c54[_0x4255e2(0xc3)][_0x4255e2(0xb5)](_0x4f0597=>_0x4f0597[_0x4255e2(0xd9)]===_0x892440);if(_0x10098e<0x0)throw CliErrors[_0x4255e2(0xa5)](_0x4255e2(0xa0)+_0x892440,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x3bbf15]=_0x2d2c54[_0x4255e2(0xc3)][_0x4255e2(0xd3)](_0x10098e,0x1),_0x363cb1=(_0x44764a['now']??(()=>new Date()))()['toISOString']();_0x2d2c54[_0x4255e2(0xb4)]=_0x363cb1;const _0x2a9f3f=writeServiceRegistry(_0x2d2c54,_0x44764a);return{'registryPath':_0x2a9f3f,'entry':_0x3bbf15,'serviceCount':_0x2d2c54[_0x4255e2(0xc3)]['length']};}export function listLocalServices(_0x12d56d={}){const _0xd8506e=a42_0x1d44;return readServiceRegistry(_0x12d56d)[_0xd8506e(0xc3)];}export function getLocalServiceEntry(_0x2c698c,_0x3f621f={}){const _0x31436d=a42_0x1d44;return readServiceRegistry(_0x3f621f)[_0x31436d(0xc3)][_0x31436d(0xc1)](_0x14afac=>_0x14afac[_0x31436d(0xd9)]===_0x2c698c[_0x31436d(0xc8)]());}export function listLocalServiceTrees(_0xb8edfc={}){const _0x343c84=a42_0x1d44;return readServiceRegistry(_0xb8edfc)[_0x343c84(0xc3)]['map'](_0x212330=>_0x212330[_0x343c84(0xd2)]);}export function inspectServiceRegistry(_0x23b90c={}){const _0xb052d6=a42_0x1d44,_0x1e22d2=getServiceRegistryPath(_0x23b90c);if(!existsSync(_0x1e22d2))return emptyServiceRegistryInspection(_0x1e22d2,_0xb052d6(0xd0),![]);try{const _0x114a6f=readFileSync(_0x1e22d2,_0xb052d6(0xdd));if(!_0x114a6f[_0xb052d6(0xc8)]())return emptyServiceRegistryInspection(_0x1e22d2,_0xb052d6(0xc9),!![]);const _0x576d09=JSON[_0xb052d6(0xb9)](_0x114a6f);if(_0x576d09[_0xb052d6(0xc7)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1e22d2,_0xb052d6(0xb1),!![]),'schemaVersion':_0x576d09[_0xb052d6(0xc7)],'message':_0xb052d6(0xc4)+String(_0x576d09['schemaVersion'])};if(!Array[_0xb052d6(0xba)](_0x576d09[_0xb052d6(0xc3)]))return{...emptyServiceRegistryInspection(_0x1e22d2,_0xb052d6(0xb1),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x576d09['updatedAt'],'message':_0xb052d6(0xbd)};const _0x2010de=_0x576d09[_0xb052d6(0xc3)][_0xb052d6(0xd8)](summarizeLocalServiceEntry);return{'registryPath':_0x1e22d2,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x576d09[_0xb052d6(0xb4)],'serviceCount':_0x2010de[_0xb052d6(0xe7)],'commandCount':_0x2010de[_0xb052d6(0xe6)]((_0x1a0c7f,_0x159326)=>_0x1a0c7f+_0x159326[_0xb052d6(0xcc)],0x0),'services':_0x2010de};}catch(_0x261770){return{...emptyServiceRegistryInspection(_0x1e22d2,_0xb052d6(0xb1),!![]),'message':_0x261770 instanceof Error?_0x261770[_0xb052d6(0xb0)]:String(_0x261770)};}}export function formatValidationFailure(_0x44fb58){const _0x217047=a42_0x1d44,_0x41207d=_0x44fb58[_0x217047(0x9f)]['map'](_0x2672e0=>_0x2672e0[_0x217047(0xc5)]+':\x20'+_0x2672e0[_0x217047(0xb0)]);return _0x217047(0xea)+_0x41207d[_0x217047(0xe9)]('\x0a');}function extractLoadedServiceManifests(_0x2b7262,_0x11c8fa){const _0x340192=a42_0x1d44;if(!isServiceRegistryLike(_0x2b7262)){const _0x2c66c3=_0x2b7262,{manifest:_0x194d08,errors:_0x4a8e10}=adaptServiceTreeManifestForLegacyFramework(_0x2c66c3),_0x3e6035=validateServiceTreeManifest(_0x194d08),_0x5269a3=mergeValidationErrors(_0x3e6035,_0x4a8e10);return[{'manifest':_0x2c66c3,'report':_0x5269a3,'normalizedManifest':_0x5269a3['ok']?normalizeServiceTreeManifest(_0x194d08):undefined,'sourceHash':_0x11c8fa}];}return _0x2b7262[_0x340192(0xc3)][_0x340192(0xd8)]((_0x2313b5,_0x1037a1)=>{const _0x3be4b2=_0x340192,_0x37c9d3=isObjectRecord(_0x2313b5)?_0x2313b5[_0x3be4b2(0xb6)]:undefined,{manifest:_0x40b752,errors:_0x3a5456}=adaptServiceTreeManifestForLegacyFramework(_0x37c9d3),_0x2b746b=validateServiceTreeManifest(_0x40b752),_0x3f22e9=mergeValidationErrors(_0x2b746b,_0x3a5456),_0x469d57=isObjectRecord(_0x2313b5)&&typeof _0x2313b5[_0x3be4b2(0xd9)]===_0x3be4b2(0xaf)?_0x2313b5[_0x3be4b2(0xd9)]:undefined;return{'manifest':_0x37c9d3,'report':_0x3f22e9,'normalizedManifest':_0x3f22e9['ok']?normalizeServiceTreeManifest(_0x40b752):undefined,'sourceHash':sha256(JSON[_0x3be4b2(0xe2)](_0x37c9d3,null,0x2)+'\x0a'),'registryIndex':_0x1037a1,'registryServiceCode':_0x469d57};});}function mergeValidationErrors(_0x1e06f0,_0x4ab970){const _0xd04a3e=a42_0x1d44,_0x5ee298=_0x1e06f0['errors'][_0xd04a3e(0xd8)](_0x17f9aa=>_0x17f9aa[_0xd04a3e(0xb0)]===_0xd04a3e(0xb7)?{..._0x17f9aa,'message':_0xd04a3e(0xaa)}:_0x17f9aa),_0x5a2c38=[..._0x4ab970,..._0x5ee298];return{'ok':_0x5a2c38[_0xd04a3e(0xe7)]===0x0,'errors':_0x5a2c38,'warnings':_0x1e06f0[_0xd04a3e(0xcf)]};}function aggregateValidationReports(_0x377321){const _0x17cc33=a42_0x1d44,_0x4809b9=_0x377321[_0x17cc33(0xbf)](_0x12c666=>_0x12c666['registryIndex']===undefined?_0x12c666[_0x17cc33(0xc0)][_0x17cc33(0x9f)]:_0x12c666[_0x17cc33(0xc0)][_0x17cc33(0x9f)][_0x17cc33(0xd8)](_0x26ab6f=>({..._0x26ab6f,'path':prefixRegistryIssuePath(_0x12c666[_0x17cc33(0xb8)],_0x26ab6f['path'])}))),_0x555f2e=_0x377321[_0x17cc33(0xbf)](_0x24f121=>_0x24f121['registryIndex']===undefined?_0x24f121[_0x17cc33(0xc0)][_0x17cc33(0xcf)]:_0x24f121[_0x17cc33(0xc0)]['warnings']['map'](_0x453f83=>({..._0x453f83,'path':prefixRegistryIssuePath(_0x24f121[_0x17cc33(0xb8)],_0x453f83[_0x17cc33(0xc5)])})));return{'ok':_0x4809b9[_0x17cc33(0xe7)]===0x0,'errors':_0x4809b9,'warnings':_0x555f2e};}function prefixRegistryIssuePath(_0x37d6d0,_0x42b847){const _0x373b48=a42_0x1d44;if(_0x42b847==='$')return _0x373b48(0xa6)+_0x37d6d0+_0x373b48(0xd7);if(_0x42b847[_0x373b48(0xbb)]('$.'))return _0x373b48(0xa6)+_0x37d6d0+'].manifest'+_0x42b847['slice'](0x1);if(_0x42b847['startsWith']('$['))return _0x373b48(0xa6)+_0x37d6d0+_0x373b48(0xd7)+_0x42b847[_0x373b48(0xa9)](0x1);return _0x373b48(0xa6)+_0x37d6d0+_0x373b48(0xd5)+_0x42b847;}function isServiceRegistryLike(_0x175528){const _0x34f97a=a42_0x1d44;return isObjectRecord(_0x175528)&&_0x175528[_0x34f97a(0xc7)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x34f97a(0xba)](_0x175528['services']);}function isObjectRecord(_0x485b4c){const _0x3c2baa=a42_0x1d44;return Boolean(_0x485b4c)&&typeof _0x485b4c===_0x3c2baa(0xab)&&!Array[_0x3c2baa(0xba)](_0x485b4c);}function emptyServiceRegistryInspection(_0x25313b,_0x512137,_0x138065){return{'registryPath':_0x25313b,'exists':_0x138065,'status':_0x512137,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x76fd29){const _0x1a2780=a42_0x1d44,_0xca4f37=_0x76fd29[_0x1a2780(0xd2)],_0x3887f7=_0xca4f37[_0x1a2780(0xad)][_0x1a2780(0xd8)](_0x3767a4=>({'path':_0x3767a4[_0x1a2780(0x9a)],'description':_0x3767a4[_0x1a2780(0xe1)],'risk':_0x3767a4['risk'],'targetKind':_0x3767a4[_0x1a2780(0xcd)][_0x1a2780(0xac)],'targetCommand':_0x3767a4['target'][_0x1a2780(0xbc)]}));return{'serviceCode':_0x76fd29[_0x1a2780(0xd9)],'name':_0xca4f37[_0x1a2780(0x9c)]['name'],'description':_0xca4f37['service'][_0x1a2780(0xe1)],'version':_0x76fd29[_0x1a2780(0xdf)],'importedAt':_0x76fd29[_0x1a2780(0xa1)],'source':_0x76fd29[_0x1a2780(0xce)],'commandCount':_0x3887f7[_0x1a2780(0xe7)],'commands':_0x3887f7};}function sha256(_0x17e06f){const _0x44a0b1=a42_0x1d44;return createHash('sha256')[_0x44a0b1(0x9b)](_0x17e06f)[_0x44a0b1(0xae)](_0x44a0b1(0xdb));}function a42_0xabaa(){const _0x1724a4=['target','source','warnings','missing','filePath','normalizedManifest','splice','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','].manifest.','name','].manifest','map','serviceCode','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','hex','132OWHCQv','utf8','Invalid\x20service\x20manifest\x20JSON:\x20','version','homeDir','description','stringify','842115NgpZSP','175970Zuzrwn','sourceHash','reduce','length','1856996qKncZS','join','Service\x20manifest\x20validation\x20failed:\x0a','ENOENT','sort','cliPath','update','service','10722SJuqJg','1148iDGHBT','errors','Local\x20service\x20not\x20found:\x20','importedAt','1336554vIfLgg','toISOString','localeCompare','validation','$.services[','1817272HWhajG','manifests','slice','bff\x20target\x20requires\x20functionName.','object','kind','commands','digest','string','message','invalid','CliError','Invalid\x20service\x20registry\x20JSON:\x20','updatedAt','findIndex','manifest','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','registryIndex','parse','isArray','startsWith','command','services\x20must\x20be\x20an\x20array','push','flatMap','report','find','code','services','Unsupported\x20schemaVersion:\x20','path','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','schemaVersion','trim','empty','3200hcHxMx','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','commandCount'];a42_0xabaa=function(){return _0x1724a4;};return a42_0xabaa();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a43_0x5f172d=a43_0x17dd;(function(_0xfae50c,_0x2de6f8){const _0x11e298=a43_0x17dd,_0x6c05f7=_0xfae50c();while(!![]){try{const _0x17dc20=parseInt(_0x11e298(0x1be))/0x1+parseInt(_0x11e298(0x1d1))/0x2*(parseInt(_0x11e298(0x1b7))/0x3)+-parseInt(_0x11e298(0x1c3))/0x4*(parseInt(_0x11e298(0x1bf))/0x5)+parseInt(_0x11e298(0x1cb))/0x6+parseInt(_0x11e298(0x1b9))/0x7+-parseInt(_0x11e298(0x1cf))/0x8*(parseInt(_0x11e298(0x1d8))/0x9)+-parseInt(_0x11e298(0x1c4))/0xa;if(_0x17dc20===_0x2de6f8)break;else _0x6c05f7['push'](_0x6c05f7['shift']());}catch(_0x390940){_0x6c05f7['push'](_0x6c05f7['shift']());}}}(a43_0x2651,0x794de));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a43_0x17dd(_0x2f665b,_0x1bdd79){_0x2f665b=_0x2f665b-0x1b7;const _0x2651ac=a43_0x2651();let _0x17ddbf=_0x2651ac[_0x2f665b];return _0x17ddbf;}import{dirname,resolve}from'node:path';function a43_0x2651(){const _0x210f75=['path','1651779kXvpeT','create','str','name','45fdfQQf','type','5777947zZqPzg','skillDir','isDirectory','target','Created\x20local\x20Skill\x20draft\x20','860748glYiHl','45MLxSAz','read','Skill\x20directory\x20already\x20exists:\x20','skill','263744hHkHiV','4483060SLrJaT','Refusing\x20to\x20overwrite\x20symlink:\x20','创建本地自包含的运行态\x20Skill\x20草稿','bool','rendered','trim','isSymbolicLink','1938612DIdKIf','map','force','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','32gwcTRX','skillName','35126ceynTX','utf8','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','validation','files','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.'];a43_0x2651=function(){return _0x210f75;};return a43_0x2651();}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';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x5f172d(0x1c2),'command':a43_0x5f172d(0x1d9),'description':a43_0x5f172d(0x1c6),'risk':a43_0x5f172d(0x1c0),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x52ccc1){const _0x34d740=a43_0x5f172d,_0x4f27b2=buildSkillCreatePlan(_0x52ccc1[_0x34d740(0x1da)]('name'),_0x52ccc1['str']('type'),_0x52ccc1['str']('target'));return{'method':'WRITE','url':_0x4f27b2['skillDir'],'body':{'skillName':_0x4f27b2[_0x34d740(0x1c8)][_0x34d740(0x1d0)],'type':_0x4f27b2[_0x34d740(0x1c8)][_0x34d740(0x1b8)],'selfContained':!![],'files':_0x4f27b2[_0x34d740(0x1c8)][_0x34d740(0x1d5)][_0x34d740(0x1cc)](_0x2895ff=>_0x2895ff[_0x34d740(0x1d7)])},'description':_0x34d740(0x1d3)};},async 'execute'(_0x3b6b2e){const _0x5719a2=a43_0x5f172d,_0x4b9755=buildSkillCreatePlan(_0x3b6b2e[_0x5719a2(0x1da)](_0x5719a2(0x1db)),_0x3b6b2e[_0x5719a2(0x1da)]('type'),_0x3b6b2e[_0x5719a2(0x1da)](_0x5719a2(0x1bc)));return writeSkillDraft(_0x4b9755,_0x3b6b2e[_0x5719a2(0x1c7)](_0x5719a2(0x1cd))),{'ok':!![],'data':{'skillName':_0x4b9755[_0x5719a2(0x1c8)][_0x5719a2(0x1d0)],'type':_0x4b9755[_0x5719a2(0x1c8)][_0x5719a2(0x1b8)],'dir':_0x4b9755[_0x5719a2(0x1ba)],'files':_0x4b9755[_0x5719a2(0x1c8)][_0x5719a2(0x1d5)]['map'](_0x176739=>_0x176739[_0x5719a2(0x1d7)])},'message':_0x5719a2(0x1bd)+_0x4b9755[_0x5719a2(0x1c8)][_0x5719a2(0x1d0)]};}};function buildSkillCreatePlan(_0x593936,_0x536927,_0xa09dd1){const _0x8b066d=a43_0x5f172d,_0x23be84=_0x536927['trim'](),_0x575ecc=renderSkillTemplate({'skillName':_0x593936,'type':_0x23be84});!_0x23be84&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x4ebd66=resolve(normalizeSkillTarget(_0xa09dd1));return{'rendered':_0x575ecc,'targetRoot':_0x4ebd66,'skillDir':resolve(_0x4ebd66,_0x575ecc[_0x8b066d(0x1d0)])};}function normalizeSkillTarget(_0x3dba3b){const _0x5c50ff=a43_0x5f172d;return(_0x3dba3b||DEFAULT_SKILL_TARGET)[_0x5c50ff(0x1c9)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x336ea2,_0x343c70){const _0x21cd88=a43_0x5f172d;if(existsSync(_0x336ea2[_0x21cd88(0x1ba)])){const _0x645570=lstatSync(_0x336ea2[_0x21cd88(0x1ba)]);if(!_0x645570[_0x21cd88(0x1bb)]()||_0x645570[_0x21cd88(0x1ca)]())throw CliErrors[_0x21cd88(0x1d4)](_0x21cd88(0x1ce)+_0x336ea2['skillDir']);if(!_0x343c70)throw CliErrors['validation'](_0x21cd88(0x1c1)+_0x336ea2[_0x21cd88(0x1ba)],_0x21cd88(0x1d6));}for(const _0x407df4 of _0x336ea2[_0x21cd88(0x1c8)][_0x21cd88(0x1d5)]){const _0x1554e0=resolve(_0x336ea2['skillDir'],_0x407df4['path']),_0x4ff73a=dirname(_0x1554e0);mkdirSync(_0x4ff73a,{'recursive':!![]});if(existsSync(_0x1554e0)&&lstatSync(_0x1554e0)[_0x21cd88(0x1ca)]())throw CliErrors[_0x21cd88(0x1d4)](_0x21cd88(0x1c5)+_0x1554e0);writeFileSync(_0x1554e0,_0x407df4['content'],_0x21cd88(0x1d2));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a44_0x3366(){const _0x3f4563=['为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','Updated','\x20is\x20unchanged.','42FQWMaq','trim','\x20Skill\x20diagram\x20for\x20','2hKOKdP','diagram-file','1042506JfClbF','880410FRpXta','action','company','Skill\x20diagram\x20validation\x20passed\x20for\x20','Found\x20Skill\x20diagram\x20for\x20','14660734liGrYm','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','num','read','source-fingerprint','1525660VPeyaD','3861zKZqke','diagram-validate','1843290MWizQV',';\x20first\x20write\x20expects\x20revision\x20','1820OucubS','skillCode','diagram-push','scope','appCode','skill-code','16plrrrw','found','expectedDiagramRevision','Skill\x20diagram\x20for\x20','14889032MovFGE','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','created','validation','diagram-show','expected-diagram-revision','str','skill','unchanged','version','write'];a44_0x3366=function(){return _0x3f4563;};return a44_0x3366();}function a44_0x11a7(_0x4f6283,_0x29ec6b){_0x4f6283=_0x4f6283-0x1d2;const _0x336601=a44_0x3366();let _0x11a737=_0x336601[_0x4f6283];return _0x11a737;}const a44_0x406b7e=a44_0x11a7;(function(_0x33deea,_0x11d7ef){const _0x5ba7f2=a44_0x11a7,_0x4b15bd=_0x33deea();while(!![]){try{const _0x16c4b8=parseInt(_0x5ba7f2(0x1dd))/0x1*(-parseInt(_0x5ba7f2(0x1ea))/0x2)+-parseInt(_0x5ba7f2(0x1df))/0x3*(-parseInt(_0x5ba7f2(0x1f5))/0x4)+-parseInt(_0x5ba7f2(0x1e0))/0x5+-parseInt(_0x5ba7f2(0x1ed))/0x6*(parseInt(_0x5ba7f2(0x1da))/0x7)+parseInt(_0x5ba7f2(0x1f9))/0x8+-parseInt(_0x5ba7f2(0x1eb))/0x9*(parseInt(_0x5ba7f2(0x1ef))/0xa)+parseInt(_0x5ba7f2(0x1e5))/0xb;if(_0x16c4b8===_0x11d7ef)break;else _0x4b15bd['push'](_0x4b15bd['shift']());}catch(_0x315cee){_0x4b15bd['push'](_0x4b15bd['shift']());}}}(a44_0x3366,0xea935));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(_0x144db3){const _0x1c039e=a44_0x11a7,_0x1c671d=_0x144db3[_0x1c039e(0x1d2)](_0x1c039e(0x1f4))[_0x1c039e(0x1db)](),_0x490799=_0x144db3[_0x1c039e(0x1d2)](_0x1c039e(0x1d5))['trim'](),_0x296ffe=_0x144db3[_0x1c039e(0x1d2)](_0x1c039e(0x1f2));if(!_0x1c671d||!_0x490799||_0x296ffe!=='personal'&&_0x296ffe!==_0x1c039e(0x1e2))throw CliErrors[_0x1c039e(0x1fc)]('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x1c671d,'version':_0x490799,'scope':_0x296ffe};}async function readDiagramWriteInput(_0x56fc05){const _0x50c186=a44_0x11a7,_0x418345=_0x56fc05[_0x50c186(0x1e7)](_0x50c186(0x1fe)),_0x422463=_0x56fc05[_0x50c186(0x1d2)](_0x50c186(0x1e9))['trim']();if(!Number['isInteger'](_0x418345)||_0x418345<0x0)throw CliErrors[_0x50c186(0x1fc)](_0x50c186(0x1fa));if(!/^sha256:[0-9a-f]{64}$/['test'](_0x422463))throw CliErrors[_0x50c186(0x1fc)]('--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.');return{'expectedDiagramRevision':_0x418345,'sourceFingerprint':_0x422463,'diagram':await readRequiredSkillDiagram(_0x56fc05[_0x50c186(0x1d2)](_0x50c186(0x1de)))};}export const diagramValidateCommand={'service':a44_0x406b7e(0x1d3),'command':a44_0x406b7e(0x1ec),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':a44_0x406b7e(0x1e8),'flags':WRITE_FLAGS,async 'execute'(_0x323d03){const _0x5eae97=a44_0x406b7e,_0x99cd0d=readDiagramTarget(_0x323d03),_0x52c600=await validateRuntimeSkillVersionDiagram(_0x323d03[_0x5eae97(0x1f3)],_0x99cd0d[_0x5eae97(0x1f0)],_0x99cd0d[_0x5eae97(0x1d5)],_0x99cd0d['scope'],await readDiagramWriteInput(_0x323d03));return{'ok':!![],'data':_0x52c600,'message':_0x5eae97(0x1e3)+_0x99cd0d[_0x5eae97(0x1f0)]+'@'+_0x99cd0d[_0x5eae97(0x1d5)]+'.'};}};export const diagramPushCommand={'service':a44_0x406b7e(0x1d3),'command':a44_0x406b7e(0x1f1),'description':a44_0x406b7e(0x1d7),'risk':a44_0x406b7e(0x1d6),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x1c1a56){const _0x30c7bb=a44_0x406b7e,_0x4f1bc1=readDiagramTarget(_0x1c1a56),_0x206946=await putRuntimeSkillVersionDiagram(_0x1c1a56[_0x30c7bb(0x1f3)],_0x4f1bc1[_0x30c7bb(0x1f0)],_0x4f1bc1[_0x30c7bb(0x1d5)],_0x4f1bc1['scope'],await readDiagramWriteInput(_0x1c1a56));return{'ok':!![],'data':_0x206946,'message':_0x206946[_0x30c7bb(0x1e1)]===_0x30c7bb(0x1d4)?_0x30c7bb(0x1f8)+_0x4f1bc1[_0x30c7bb(0x1f0)]+'@'+_0x4f1bc1[_0x30c7bb(0x1d5)]+_0x30c7bb(0x1d9):(_0x206946['action']===_0x30c7bb(0x1fb)?'Created':_0x30c7bb(0x1d8))+_0x30c7bb(0x1dc)+_0x4f1bc1[_0x30c7bb(0x1f0)]+'@'+_0x4f1bc1[_0x30c7bb(0x1d5)]+'.'};}};export const diagramShowCommand={'service':a44_0x406b7e(0x1d3),'command':a44_0x406b7e(0x1fd),'description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':a44_0x406b7e(0x1e8),'flags':TARGET_FLAGS,async 'execute'(_0x9556f1){const _0x3c3f8b=a44_0x406b7e,_0x5f0a3f=readDiagramTarget(_0x9556f1),_0x25dba7=await getRuntimeSkillVersionDiagram(_0x9556f1['appCode'],_0x5f0a3f[_0x3c3f8b(0x1f0)],_0x5f0a3f[_0x3c3f8b(0x1d5)],_0x5f0a3f[_0x3c3f8b(0x1f2)]);return{'ok':!![],'data':_0x25dba7,'message':_0x25dba7[_0x3c3f8b(0x1f6)]?_0x3c3f8b(0x1e4)+_0x5f0a3f[_0x3c3f8b(0x1f0)]+'@'+_0x5f0a3f[_0x3c3f8b(0x1d5)]+';\x20next\x20write\x20expects\x20revision\x20'+_0x25dba7['expectedDiagramRevision']+'.':_0x3c3f8b(0x1e6)+_0x5f0a3f[_0x3c3f8b(0x1f0)]+'@'+_0x5f0a3f['version']+_0x3c3f8b(0x1ee)+_0x25dba7[_0x3c3f8b(0x1f7)]+'.'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a45_0x51d0aa=a45_0x1120;(function(_0x568d0c,_0x4e1dc9){const _0x53599b=a45_0x1120,_0x48aa43=_0x568d0c();while(!![]){try{const _0x176516=parseInt(_0x53599b(0x12b))/0x1*(-parseInt(_0x53599b(0x122))/0x2)+parseInt(_0x53599b(0x139))/0x3+parseInt(_0x53599b(0x137))/0x4*(-parseInt(_0x53599b(0x141))/0x5)+-parseInt(_0x53599b(0x153))/0x6+-parseInt(_0x53599b(0x140))/0x7*(parseInt(_0x53599b(0x13f))/0x8)+-parseInt(_0x53599b(0x131))/0x9+-parseInt(_0x53599b(0x12e))/0xa*(-parseInt(_0x53599b(0x150))/0xb);if(_0x176516===_0x4e1dc9)break;else _0x48aa43['push'](_0x48aa43['shift']());}catch(_0xd34ee3){_0x48aa43['push'](_0x48aa43['shift']());}}}(a45_0x4714,0x51268));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';function a45_0x1120(_0x10eab8,_0x3b60b5){_0x10eab8=_0x10eab8-0x122;const _0x471412=a45_0x4714();let _0x112053=_0x471412[_0x10eab8];return _0x112053;}import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x51d0aa(0x128),'command':a45_0x51d0aa(0x147),'description':a45_0x51d0aa(0x125),'risk':a45_0x51d0aa(0x13c),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x5e5df4){return syncRuntimeSkills(_0x5e5df4);}};async function syncRuntimeSkills(_0x4f4fc7){const _0x44df6e=a45_0x51d0aa,{downloadRuntimeSkillPackage:_0x178da7,listRuntimeSkills:_0x53483e}=await import(_0x44df6e(0x14b)),{linkEffectiveRuntimeSkills:_0x177c66,materializeRuntimeSkill:_0x4f8441,pruneStaleRuntimeSkillCache:_0x3b6298,pruneStaleRuntimeSkillLinks:_0x498439,resolveRuntimeSkillInstallTarget:_0x468749}=await import(_0x44df6e(0x144)),_0x5d1b81=_0x4f4fc7['str'](_0x44df6e(0x13e)),_0x598f90=normalizeSyncScopes(_0x4f4fc7[_0x44df6e(0x14a)](_0x44df6e(0x14c))),_0x124c41=_0x4f4fc7[_0x44df6e(0x14e)]??_0x44df6e(0x138),_0x5e5e04=_0x4f4fc7[_0x44df6e(0x133)],_0x771d83=_0x4f4fc7['bool']('force');if(!_0x5e5e04)throw CliErrors[_0x44df6e(0x152)](_0x44df6e(0x13d));const _0x55d50f=_0x468749(_0x4f4fc7[_0x44df6e(0x130)],_0x4f4fc7['bool'](_0x44df6e(0x12f))?_0x44df6e(0x12f):_0x44df6e(0x12d)),_0x17b477=_0x468749(_0x4f4fc7[_0x44df6e(0x130)],_0x55d50f[_0x44df6e(0x14c)]===_0x44df6e(0x12f)?_0x44df6e(0x12d):'project'),_0x32d89d=await Promise[_0x44df6e(0x129)](_0x598f90[_0x44df6e(0x134)](_0x481ffc=>_0x53483e({'appCode':_0x4f4fc7[_0x44df6e(0x130)],'scope':_0x481ffc,'code':_0x5d1b81[_0x44df6e(0x14f)]()||undefined}))),_0x340699=_0x598f90[_0x44df6e(0x135)]('personal')?_0x32d89d[_0x44df6e(0x145)]((_0x3e25fe,_0x76606f)=>_0x598f90[_0x76606f]===_0x44df6e(0x12a)?_0x3e25fe[_0x44df6e(0x12a)]:[]):[],_0x59ed98=_0x598f90[_0x44df6e(0x135)](_0x44df6e(0x127))?_0x32d89d['flatMap']((_0x57c9a8,_0x291e5e)=>_0x598f90[_0x291e5e]===_0x44df6e(0x127)?_0x57c9a8[_0x44df6e(0x127)]:[]):[],_0x37f931=new Set([..._0x340699['map'](_0x1f2c16=>_0x1f2c16['skillCode']?.[_0x44df6e(0x14f)]())[_0x44df6e(0x143)](_0x4bddb0=>Boolean(_0x4bddb0)),..._0x59ed98[_0x44df6e(0x134)](_0x3a5a27=>_0x3a5a27[_0x44df6e(0x12c)]?.[_0x44df6e(0x14f)]())[_0x44df6e(0x143)](_0x42bc59=>Boolean(_0x42bc59))]),_0x54a722=_0x5d1b81[_0x44df6e(0x14f)]()?[_0x5d1b81['trim']()]:undefined,_0x4b2a72=_0x598f90[_0x44df6e(0x13b)]===0x2&&_0x598f90['includes'](_0x44df6e(0x12a))&&_0x598f90[_0x44df6e(0x135)]('company'),_0x5ce58c=_0x4b2a72?_0x498439(_0x55d50f,_0x37f931,_0x54a722):[],_0x55d21b=_0x3b6298({'env':_0x124c41,'accessKey':_0x5e5e04,'appCode':_0x4f4fc7[_0x44df6e(0x130)],'activeSkillCodes':_0x37f931,'pruneSkillCodes':_0x54a722,'scopes':_0x598f90,'protectedLinkRoots':_0x17b477['skillRoots']}),_0x5a444f=[];for(const _0x3d28c7 of _0x340699){_0x5a444f[_0x44df6e(0x123)](_0x4f8441(_0x3d28c7,_0x44df6e(0x12a),{'env':_0x124c41,'accessKey':_0x5e5e04,'appCode':_0x4f4fc7[_0x44df6e(0x130)],'force':_0x771d83,'packageBytes':await downloadSkillPackage(_0x3d28c7,'personal',_0x4f4fc7['appCode'],_0x178da7)}));}for(const _0x603eeb of _0x59ed98){_0x5a444f[_0x44df6e(0x123)](_0x4f8441(_0x603eeb,_0x44df6e(0x127),{'env':_0x124c41,'accessKey':_0x5e5e04,'appCode':_0x4f4fc7[_0x44df6e(0x130)],'force':_0x771d83,'packageBytes':await downloadSkillPackage(_0x603eeb,_0x44df6e(0x127),_0x4f4fc7[_0x44df6e(0x130)],_0x178da7)}));}const _0x111eea=_0x177c66(_0x5a444f,_0x55d50f),_0x2ab02b=countLinkActions(_0x111eea);return{'ok':!![],'data':{'appCode':_0x4f4fc7[_0x44df6e(0x130)],..._0x55d50f[_0x44df6e(0x14c)]==='project'?{'installTarget':{'scope':_0x55d50f['scope'],'skillRoots':[..._0x55d50f[_0x44df6e(0x142)]]}}:{},'personal':_0x340699[_0x44df6e(0x13b)],'company':_0x59ed98[_0x44df6e(0x13b)],'materialized':_0x5a444f[_0x44df6e(0x13b)],'links':{'total':_0x111eea[_0x44df6e(0x13b)],'created':_0x2ab02b[_0x44df6e(0x151)]??0x0,'updated':_0x2ab02b[_0x44df6e(0x14d)]??0x0,'unchanged':_0x2ab02b[_0x44df6e(0x124)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x5ce58c['filter'](_0x34ccba=>_0x34ccba[_0x44df6e(0x13a)]===_0x44df6e(0x149))[_0x44df6e(0x13b)],'cacheDirs':_0x55d21b[_0x44df6e(0x143)](_0x2afd05=>_0x2afd05['action']===_0x44df6e(0x149))['length'],'skipped':[..._0x5ce58c,..._0x55d21b][_0x44df6e(0x143)](_0x73ec12=>_0x73ec12[_0x44df6e(0x13a)]===_0x44df6e(0x148))['length']},'skills':{'personal':_0x340699[_0x44df6e(0x134)](summarizeRuntimeSkill),'company':_0x59ed98[_0x44df6e(0x134)](summarizeRuntimeSkill)}},'message':_0x44df6e(0x136)+_0x340699['length']+'\x20personal\x20and\x20'+_0x59ed98['length']+_0x44df6e(0x132)};}async function downloadSkillPackage(_0x293741,_0x28a710,_0x2a3488,_0x3d2c32){const _0x323622=a45_0x51d0aa,_0x36a79c=_0x293741[_0x323622(0x146)]?.[_0x323622(0x14f)]();return _0x36a79c?_0x3d2c32(_0x28a710,_0x293741[_0x323622(0x12c)],_0x2a3488,_0x36a79c):_0x3d2c32(_0x28a710,_0x293741[_0x323622(0x12c)],_0x2a3488);}function countLinkActions(_0x5aba43){const _0x2df834=a45_0x51d0aa;return _0x5aba43[_0x2df834(0x126)]((_0x23e1c0,_0x370998)=>{const _0x7376fe=_0x2df834;return _0x23e1c0[_0x370998['action']]=(_0x23e1c0[_0x370998[_0x7376fe(0x13a)]]??0x0)+0x1,_0x23e1c0;},{});}function a45_0x4714(){const _0x534e75=['version','install','skipped','removed','str','../../../core/api-client.js','scope','updated','envName','trim','6334845cQmgKJ','created','authRequired','682884EiQHwL','1880MHruGY','push','unchanged','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','reduce','company','skill','all','personal','530nwLkAX','skillCode','global','20EXxCOK','project','appCode','1278153ABpjxk','\x20company\x20Skill(s).','accessKey','map','includes','Installed\x20','268RSuzOx','production','1544346tRtytq','action','length','read','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','code','14648THNpww','84EKidzs','41655GbESYc','skillRoots','filter','../../../skills/runtime-skill-sync.js','flatMap'];a45_0x4714=function(){return _0x534e75;};return a45_0x4714();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a46_0x2b609e=a46_0x1327;(function(_0x3b5bb7,_0x4d656e){const _0x4fc15c=a46_0x1327,_0x5518e4=_0x3b5bb7();while(!![]){try{const _0x17ae49=parseInt(_0x4fc15c(0x15e))/0x1+-parseInt(_0x4fc15c(0x158))/0x2*(-parseInt(_0x4fc15c(0x164))/0x3)+-parseInt(_0x4fc15c(0x15b))/0x4*(parseInt(_0x4fc15c(0x157))/0x5)+parseInt(_0x4fc15c(0x172))/0x6*(parseInt(_0x4fc15c(0x15a))/0x7)+parseInt(_0x4fc15c(0x167))/0x8+parseInt(_0x4fc15c(0x159))/0x9+-parseInt(_0x4fc15c(0x15f))/0xa*(parseInt(_0x4fc15c(0x16a))/0xb);if(_0x17ae49===_0x4d656e)break;else _0x5518e4['push'](_0x5518e4['shift']());}catch(_0x4bfe2d){_0x5518e4['push'](_0x5518e4['shift']());}}}(a46_0x480b,0x7f172));import{CliErrors}from'../../../errors.js';function a46_0x1327(_0x3c40bc,_0x1acb73){_0x3c40bc=_0x3c40bc-0x153;const _0x480b9e=a46_0x480b();let _0x132707=_0x480b9e[_0x3c40bc];return _0x132707;}import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';function a46_0x480b(){const _0x2b5997=['builtin','company','personal','18GPaVAO','trim','local','code','scope','accessKey','appCode','5JPqHgq','2PNYuvI','3992985jpFYNV','210350BdIKLr','1806884rJSjri','bool','str','209421KzTglr','3842440klZvGU','read','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','Listed\x20','skill','1614930cSrpzV','length','global','6747752flGjMP','map','remote','33FZGtuG','filter','\x20local\x20Skill(s).','../../../core/api-client.js','project'];a46_0x480b=function(){return _0x2b5997;};return a46_0x480b();}import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a46_0x2b609e(0x163),'command':'list','description':a46_0x2b609e(0x161),'risk':a46_0x2b609e(0x160),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x17795a){const _0x47958d=a46_0x2b609e,_0x175e66=_0x17795a['str'](_0x47958d(0x153)),_0x4f275a=normalizeListScope(_0x17795a[_0x47958d(0x15d)](_0x47958d(0x154)));if(_0x17795a[_0x47958d(0x15c)]('local')){const _0x6e29b9=_0x17795a[_0x47958d(0x155)];if(!_0x6e29b9)throw CliErrors['authRequired']();const {listLocalRuntimeSkills:_0x4eed45,resolveRuntimeSkillInstallTarget:_0x1a588b}=await import('../../../skills/runtime-skill-sync.js'),_0x5e46d0=_0x1a588b(_0x17795a['appCode'],_0x17795a[_0x47958d(0x15c)](_0x47958d(0x16e))?_0x47958d(0x16e):_0x47958d(0x166)),_0x7c829a=_0x4eed45({'env':_0x17795a['envName']??'production','accessKey':_0x6e29b9,'appCode':_0x17795a['appCode'],'scopes':listScopeToRuntimeScopes(_0x4f275a),'code':_0x175e66[_0x47958d(0x173)]()||undefined},_0x5e46d0),_0x1fe567=groupLocalRuntimeSkills(_0x7c829a);return{'ok':!![],'data':{'appCode':_0x17795a[_0x47958d(0x156)],'source':_0x47958d(0x174),..._0x5e46d0['scope']===_0x47958d(0x16e)?{'installScope':_0x5e46d0['scope']}:{},'scope':_0x4f275a,'total':_0x7c829a[_0x47958d(0x165)],'personal':_0x1fe567[_0x47958d(0x171)][_0x47958d(0x165)],'company':_0x1fe567[_0x47958d(0x170)][_0x47958d(0x165)],'items':_0x7c829a[_0x47958d(0x168)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x1fe567[_0x47958d(0x171)][_0x47958d(0x168)](summarizeLocalRuntimeSkill),'company':_0x1fe567[_0x47958d(0x170)]['map'](summarizeLocalRuntimeSkill)}},'message':_0x47958d(0x162)+_0x7c829a[_0x47958d(0x165)]+_0x47958d(0x16c)};}const {listRuntimeSkills:_0x58a456}=await import(_0x47958d(0x16d)),_0x40e373=await _0x58a456({'appCode':_0x17795a[_0x47958d(0x156)],'scope':listScopeToRemoteScope(_0x4f275a),'code':_0x175e66[_0x47958d(0x173)]()||undefined}),_0x220fc1=shouldListScope(_0x4f275a,_0x47958d(0x171))?_0x40e373[_0x47958d(0x171)]??[]:[],_0x2e2daf=shouldListScope(_0x4f275a,'company')?_0x40e373[_0x47958d(0x170)]??[]:[],_0x4f2a1e=[..._0x220fc1,..._0x2e2daf];return{'ok':!![],'data':{'appCode':_0x17795a[_0x47958d(0x156)],'source':_0x47958d(0x169),'scope':_0x4f275a,'total':_0x4f2a1e['length'],'personal':_0x220fc1[_0x47958d(0x165)],'company':_0x2e2daf[_0x47958d(0x165)],'items':_0x4f2a1e[_0x47958d(0x168)](summarizeRuntimeSkill),'skills':{'personal':_0x220fc1[_0x47958d(0x168)](summarizeRuntimeSkill),'company':_0x2e2daf[_0x47958d(0x168)](summarizeRuntimeSkill)}},'message':_0x47958d(0x162)+_0x4f2a1e[_0x47958d(0x165)]+'\x20remote\x20Skill(s).'};}};function groupLocalRuntimeSkills(_0x38d621){const _0xf648cd=a46_0x2b609e;return{'personal':_0x38d621[_0xf648cd(0x16b)](_0x3dcb56=>_0x3dcb56[_0xf648cd(0x154)]===_0xf648cd(0x171)),'company':_0x38d621[_0xf648cd(0x16b)](_0x4fa982=>_0x4fa982[_0xf648cd(0x154)]===_0xf648cd(0x170)),'builtin':_0x38d621['filter'](_0x756b5=>_0x756b5[_0xf648cd(0x154)]===_0xf648cd(0x16f))};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a47_0xd66f(_0x3bc96a,_0x451489){_0x3bc96a=_0x3bc96a-0x197;const _0x59654f=a47_0x5965();let _0xd66f3d=_0x59654f[_0x3bc96a];return _0xd66f3d;}const a47_0x3bc5c3=a47_0xd66f;(function(_0x16650d,_0x5ecc4e){const _0x182bd8=a47_0xd66f,_0x5e66fa=_0x16650d();while(!![]){try{const _0x481bab=parseInt(_0x182bd8(0x198))/0x1+-parseInt(_0x182bd8(0x19d))/0x2+parseInt(_0x182bd8(0x1a2))/0x3*(parseInt(_0x182bd8(0x19f))/0x4)+-parseInt(_0x182bd8(0x19c))/0x5+-parseInt(_0x182bd8(0x1a1))/0x6+-parseInt(_0x182bd8(0x197))/0x7*(parseInt(_0x182bd8(0x1a0))/0x8)+parseInt(_0x182bd8(0x19a))/0x9;if(_0x481bab===_0x5ecc4e)break;else _0x5e66fa['push'](_0x5e66fa['shift']());}catch(_0x493220){_0x5e66fa['push'](_0x5e66fa['shift']());}}}(a47_0x5965,0xed0a6));function a47_0x5965(){const _0x17528b=['273fnAqFV','184278BClejA','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','32504643IeLSKi','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','2741930uIoOBy','1814268tzZdRW','push','2442632XKbdIg','310984cCreeB','10112364smgOXd','9qIuMpp'];a47_0x5965=function(){return _0x17528b;};return a47_0x5965();}import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':'skill','command':a47_0x3bc5c3(0x19e),'description':a47_0x3bc5c3(0x199),'risk':'write','confirmationDescription':a47_0x3bc5c3(0x19b),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a48_0x3fcf(){const _0x2ea185=['2010618yMFdiE','skill','495548YhFXCI','validate','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','read','errors','bool','403194rdGYSJ','warnings','str','strict','dir','387164aWAYUk','type','153440AacfJM','8WAfRlJ','1365301aBqhYv','6mTRdRD','1260480VCvQAc','15MJtOdk'];a48_0x3fcf=function(){return _0x2ea185;};return a48_0x3fcf();}const a48_0x5e1cd0=a48_0xc150;(function(_0x41476d,_0x37ba4c){const _0x3a51fb=a48_0xc150,_0x4a2cfd=_0x41476d();while(!![]){try{const _0x1fa5e1=parseInt(_0x3a51fb(0xc1))/0x1+parseInt(_0x3a51fb(0xbf))/0x2+-parseInt(_0x3a51fb(0xc4))/0x3*(parseInt(_0x3a51fb(0xc9))/0x4)+-parseInt(_0x3a51fb(0xc6))/0x5*(-parseInt(_0x3a51fb(0xba))/0x6)+parseInt(_0x3a51fb(0xc3))/0x7*(-parseInt(_0x3a51fb(0xc2))/0x8)+parseInt(_0x3a51fb(0xc7))/0x9+-parseInt(_0x3a51fb(0xc5))/0xa;if(_0x1fa5e1===_0x37ba4c)break;else _0x4a2cfd['push'](_0x4a2cfd['shift']());}catch(_0x473f27){_0x4a2cfd['push'](_0x4a2cfd['shift']());}}}(a48_0x3fcf,0x31994));function a48_0xc150(_0x11b6fc,_0x30ec39){_0x11b6fc=_0x11b6fc-0xb5;const _0x3fcff0=a48_0x3fcf();let _0xc150fe=_0x3fcff0[_0x11b6fc];return _0xc150fe;}import{DIR_FLAG,STRICT_FLAG}from'../flags.js';import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':a48_0x5e1cd0(0xc8),'command':a48_0x5e1cd0(0xb5),'description':a48_0x5e1cd0(0xb6),'risk':a48_0x5e1cd0(0xb7),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x5cc1c0){const _0x49dba0=a48_0x5e1cd0,_0x5b9ed8=_0x5cc1c0[_0x49dba0(0xb9)](_0x49dba0(0xbd)),_0x3fb567=validateSkillDirectory(_0x5cc1c0[_0x49dba0(0xbc)](_0x49dba0(0xbe)),{'strict':_0x5b9ed8});return throwIfSkillValidationFailed(_0x3fb567,_0x5b9ed8),{'ok':!![],'data':{'dir':_0x3fb567[_0x49dba0(0xbe)],'type':_0x3fb567[_0x49dba0(0xc0)],'errors':_0x3fb567[_0x49dba0(0xb8)],'warnings':_0x3fb567[_0x49dba0(0xbb)]},'message':'Skill\x20validation\x20passed.'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a49_0x2398(){const _0x23985a=['17603604XIOiTv','2268618CxkUQJ','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','default','parse','window','isFile','10abnUAx','1IrspmB','utf8','Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','3549805jqfivF','trim','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','Mermaid\x20syntax\x20validation\x20failed.','replace','6436170XnRlke','diagram','mermaid','122162fRZdVz','document','validation','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','247280mokwdF','9894536uzRqEo'];a49_0x2398=function(){return _0x23985a;};return a49_0x2398();}(function(_0x4552ed,_0x58c0d2){const _0x83c7f5=a49_0x1da6,_0x21be07=_0x4552ed();while(!![]){try{const _0x1710d8=-parseInt(_0x83c7f5(0x1cf))/0x1*(parseInt(_0x83c7f5(0x1da))/0x2)+parseInt(_0x83c7f5(0x1c8))/0x3+parseInt(_0x83c7f5(0x1de))/0x4*(-parseInt(_0x83c7f5(0x1ce))/0x5)+-parseInt(_0x83c7f5(0x1d7))/0x6+parseInt(_0x83c7f5(0x1d2))/0x7+-parseInt(_0x83c7f5(0x1df))/0x8+parseInt(_0x83c7f5(0x1c7))/0x9;if(_0x1710d8===_0x58c0d2)break;else _0x21be07['push'](_0x21be07['shift']());}catch(_0x18bd68){_0x21be07['push'](_0x21be07['shift']());}}}(a49_0x2398,0xb1034));import{existsSync,readFileSync,realpathSync,statSync}from'node:fs';function a49_0x1da6(_0x2e541a,_0x4bd13b){_0x2e541a=_0x2e541a-0x1c7;const _0x2398b3=a49_0x2398();let _0x1da691=_0x2398b3[_0x2e541a];return _0x1da691;}import{resolve}from'node:path';import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x28e952){const _0x1b1300=a49_0x1da6;return(await readRequiredSkillDiagramInput(_0x28e952))[_0x1b1300(0x1d8)];}export async function readRequiredSkillDiagramInput(_0xbee3e6){const _0x21f881=a49_0x1da6,_0x5b75e1=_0xbee3e6[_0x21f881(0x1d3)]();if(!_0x5b75e1)throw CliErrors[_0x21f881(0x1dc)]('--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.',_0x21f881(0x1dd));let _0x5c828b,_0x4fb453;if(_0x5b75e1==='-')try{_0x5c828b=readFileSync(0x0,_0x21f881(0x1d0));}catch{throw CliErrors[_0x21f881(0x1dc)](_0x21f881(0x1d4));}else{const _0x238212=resolve(_0x5b75e1);if(!existsSync(_0x238212))throw CliErrors[_0x21f881(0x1dc)](_0x21f881(0x1c9)+_0x238212);if(!statSync(_0x238212)[_0x21f881(0x1cd)]())throw CliErrors['validation'](_0x21f881(0x1d1)+_0x238212);_0x4fb453=realpathSync(_0x238212),_0x5c828b=readFileSync(_0x4fb453,_0x21f881(0x1d0));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x5c828b)},'sourceFilePath':_0x4fb453};}export async function validateAndCanonicalizeMermaid(_0x2f9d04){const _0x54e091=a49_0x1da6,_0x3173d6=_0x2f9d04['replace'](/\r\n/g,'\x0a')[_0x54e091(0x1d6)](/\r/g,'\x0a')['replace'](/\n+$/,'')+'\x0a';try{const _0x52e26d=await loadMermaidApi();await _0x52e26d[_0x54e091(0x1cb)](_0x3173d6);}catch{throw diagramValidationError();}return _0x3173d6;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x89bfc5=a49_0x1da6;if(!(_0x89bfc5(0x1cc)in globalThis)||!('document'in globalThis)){const _0x492077=new JSDOM('');Object['defineProperties'](globalThis,{'window':{'configurable':!![],'value':_0x492077[_0x89bfc5(0x1cc)]},'document':{'configurable':!![],'value':_0x492077['window'][_0x89bfc5(0x1db)]}});}return(await import(_0x89bfc5(0x1d9)))[_0x89bfc5(0x1ca)];})()),mermaidApiPromise;}function diagramValidationError(){const _0x1f7e41=a49_0x1da6;return CliErrors['validation'](_0x1f7e41(0x1d5),'Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.');}
|