@lovrabet/lovrabet-cli 2.1.23-beta.4 → 2.2.0
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 +13 -10
- 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.d.ts +2 -2
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/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.d.ts +2 -0
- package/lib/postinstall.js +1 -0
- 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.d.ts +37 -0
- package/lib/skills/builtin-skill.js +1 -0
- package/lib/skills/npx-skills-add.d.ts +3 -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 +14 -3
- package/scripts/postinstall.mjs +24 -0
- package/skills/lovrabet/SKILL.md +702 -0
- package/skills/lovrabet/guides/app-resolution.md +165 -0
- package/skills/lovrabet/guides/dataset-and-data-workflow.md +170 -0
- package/skills/lovrabet/guides/sql-and-bff-workflow.md +132 -0
- package/skills/lovrabet/guides/troubleshooting.md +91 -0
- package/skills/lovrabet/references/dataset-discovery-workflow.md +160 -0
- package/skills/lovrabet/references/instant-api-workflow.md +259 -0
- package/skills/lovrabet/references/lovrabet-app-config.md +51 -0
- package/skills/lovrabet/references/lovrabet-app.md +113 -0
- package/skills/lovrabet/references/lovrabet-auth.md +136 -0
- package/skills/lovrabet/references/lovrabet-bff-workflow.md +139 -0
- package/skills/lovrabet/references/lovrabet-config-commands.md +104 -0
- package/skills/lovrabet/references/lovrabet-config.md +124 -0
- package/skills/lovrabet/references/lovrabet-doctor.md +26 -0
- package/skills/lovrabet/references/lovrabet-file-workflow.md +62 -0
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +78 -0
- package/skills/lovrabet/references/lovrabet-logs.md +19 -0
- package/skills/lovrabet/references/lovrabet-ocr-workflow.md +83 -0
- package/skills/lovrabet/references/lovrabet-output-format-jq.md +40 -0
- package/skills/lovrabet/references/lovrabet-personal-bff-workflow.md +108 -0
- package/skills/lovrabet/references/lovrabet-schedule-workflow.md +175 -0
- package/skills/lovrabet/references/lovrabet-service-tree.md +279 -0
- package/skills/lovrabet/references/lovrabet-skill-authoring.md +128 -0
- package/skills/lovrabet/references/lovrabet-skill-install.md +34 -0
- package/skills/lovrabet/references/lovrabet-skill-sync.md +146 -0
- package/skills/lovrabet/references/lovrabet-sql-workflow.md +111 -0
- package/skills/lovrabet/references/lovrabet-update.md +34 -0
- package/skills/lovrabet/references/lovrabet-workspace.md +82 -0
- package/skills/lovrabet.manifest.json +38 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x1a7551,_0x572f66){const _0x1e28d8=a39_0x8bbe,_0x32de88=_0x1a7551();while(!![]){try{const _0x37cb9d=-parseInt(_0x1e28d8(0xda))/0x1+-parseInt(_0x1e28d8(0xe3))/0x2*(parseInt(_0x1e28d8(0xc4))/0x3)+-parseInt(_0x1e28d8(0xd7))/0x4*(-parseInt(_0x1e28d8(0xd6))/0x5)+-parseInt(_0x1e28d8(0xcc))/0x6*(-parseInt(_0x1e28d8(0xf4))/0x7)+parseInt(_0x1e28d8(0xb9))/0x8+parseInt(_0x1e28d8(0xf0))/0x9*(parseInt(_0x1e28d8(0xec))/0xa)+-parseInt(_0x1e28d8(0xc1))/0xb;if(_0x37cb9d===_0x572f66)break;else _0x32de88['push'](_0x32de88['shift']());}catch(_0x17297a){_0x32de88['push'](_0x32de88['shift']());}}}(a39_0x2ec4,0x63cac));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';function a39_0x8bbe(_0x3f2705,_0x18fa91){_0x3f2705=_0x3f2705-0x8e;const _0x2ec4e1=a39_0x2ec4();let _0x8bbe89=_0x2ec4e1[_0x3f2705];return _0x8bbe89;}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x25d339,_0x22d074){const _0x8317ea=a39_0x8bbe,_0x70d381=listLocalServiceTrees();let _0x434dd9;for(const _0x14a203 of _0x70d381){const _0x124ab1=matchServiceTreeCommand(_0x14a203,_0x25d339);if(!_0x124ab1)continue;(!_0x434dd9||_0x124ab1[_0x8317ea(0xaa)][_0x8317ea(0xa7)][_0x8317ea(0x98)]>_0x434dd9['command'][_0x8317ea(0xa7)][_0x8317ea(0x98)])&&(_0x434dd9={'tree':_0x14a203,'command':_0x124ab1[_0x8317ea(0xaa)],'remainingArgs':_0x124ab1[_0x8317ea(0xac)]});}if(!_0x434dd9)return undefined;const _0x1d009={..._0x22d074};return applyAppBinding(_0x434dd9[_0x8317ea(0x9a)],_0x434dd9[_0x8317ea(0xaa)],_0x1d009),{'definition':buildDynamicCommandDefinition(_0x434dd9[_0x8317ea(0x9a)],_0x434dd9[_0x8317ea(0xaa)]),'args':_0x434dd9[_0x8317ea(0xac)],'flags':_0x1d009,'tree':_0x434dd9[_0x8317ea(0x9a)],'command':_0x434dd9[_0x8317ea(0xaa)]};}export function generateDynamicServiceHelp(_0x363103){const _0x20e7be=a39_0x8bbe,_0x411f4d=listLocalServiceTrees()[_0x20e7be(0xf5)](_0x214d55=>_0x214d55['service'][_0x20e7be(0x95)]===_0x363103);if(!_0x411f4d)return undefined;const _0x319fa6=[CLI_BIN_NAME+'\x20'+_0x363103+_0x20e7be(0xd0),'',_0x411f4d[_0x20e7be(0xc7)][_0x20e7be(0xf7)]||_0x363103,_0x411f4d['service'][_0x20e7be(0xe5)]?'\x20\x20'+_0x411f4d[_0x20e7be(0xc7)][_0x20e7be(0xe5)]:'','','Commands:',..._0x411f4d['commands'][_0x20e7be(0xf3)](_0x1694b5=>{const _0x117fd4=_0x20e7be,_0x1fb0b0=_0x1694b5[_0x117fd4(0xa7)]['slice'](0x1)[_0x117fd4(0xc8)]('\x20'),_0x17a8b8=_0x1694b5[_0x117fd4(0xf2)]==='read'?'':'\x20['+_0x1694b5[_0x117fd4(0xf2)]+']';return'\x20\x20'+_0x1fb0b0[_0x117fd4(0xbb)](0x18)+'\x20'+(_0x1694b5['description']||'')+_0x17a8b8;}),'','Use\x20`'+CLI_BIN_NAME+_0x20e7be(0x97)+_0x363103+_0x20e7be(0xa2)][_0x20e7be(0xa8)](Boolean);return _0x319fa6[_0x20e7be(0xc8)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0xf54fc0=>{const _0x292eb9=a39_0x8bbe,_0x2eff23=_0xf54fc0[_0x292eb9(0xc3)];return{'service':_0x2eff23[_0x292eb9(0xc7)][_0x292eb9(0x95)],'label':_0x2eff23['service'][_0x292eb9(0xf7)]||_0x2eff23[_0x292eb9(0xc7)][_0x292eb9(0x95)],'commands':_0x2eff23[_0x292eb9(0xe4)][_0x292eb9(0xf3)](_0x20b7b8=>({'command':dynamicCommandName(_0x20b7b8),'description':_0x20b7b8[_0x292eb9(0xe5)]||_0x292eb9(0xe0)+_0x20b7b8[_0x292eb9(0xb7)],'tag':riskTag(_0x20b7b8[_0x292eb9(0xf2)])}))};});}export function getDynamicServiceEntry(_0x20e25b){const _0x4b6943=a39_0x8bbe;return listDynamicServiceEntries()['find'](_0x3db5ac=>_0x3db5ac[_0x4b6943(0xc7)]===_0x20e25b);}export function listDynamicServiceDefinitions(_0x26a007){const _0x1bdf02=a39_0x8bbe;return listLocalServiceTrees()[_0x1bdf02(0xa8)](_0x1699e5=>!_0x26a007||_0x1699e5[_0x1bdf02(0xc7)][_0x1bdf02(0x95)]===_0x26a007)[_0x1bdf02(0xc0)](_0x425f9b=>_0x425f9b['commands'][_0x1bdf02(0xf3)](_0x45122b=>buildDynamicCommandDefinition(_0x425f9b,_0x45122b)));}export function getDynamicServiceDefinitions(_0x1f958d){const _0x42fb90=listDynamicServiceDefinitions(_0x1f958d);return _0x42fb90['length']>0x0?_0x42fb90:undefined;}export function findDynamicServiceDefinition(_0x1e3372,_0x28561a){const _0x109afd=a39_0x8bbe;return listDynamicServiceDefinitions(_0x1e3372)['find'](_0x196b60=>_0x196b60[_0x109afd(0xaa)]===_0x28561a);}export function buildDynamicCommandDefinition(_0x30e590,_0xf6ff44){const _0x50ddad=a39_0x8bbe;return{'service':_0x30e590['service'][_0x50ddad(0x95)],'command':dynamicCommandName(_0xf6ff44),'description':_0xf6ff44[_0x50ddad(0xe5)]||_0x50ddad(0xe0)+_0xf6ff44[_0x50ddad(0xb7)],'risk':_0xf6ff44[_0x50ddad(0xf2)],..._0xf6ff44[_0x50ddad(0xf2)]===_0x50ddad(0xfa)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0xf6ff44)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0xf6ff44[_0x50ddad(0x9f)][_0x50ddad(0xf3)](_0x4734cc=>({'name':_0x4734cc['name'],'description':_0x4734cc['description']||_0x4734cc[_0x50ddad(0xf7)],'required':_0x4734cc[_0x50ddad(0x9b)]})),'flags':_0xf6ff44[_0x50ddad(0xd2)][_0x50ddad(0xf3)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xf6ff44),async 'dryRun'(_0xe1a15f){const _0x83c75b=_0x50ddad,_0x7539f=await compilePlan(_0xf6ff44,_0xe1a15f);return{'method':_0x83c75b(0xc2),'url':_0xf6ff44['cliPath'],'body':{'target':targetPreview(_0x7539f),'params':_0x7539f[_0x83c75b(0xc9)]},'description':_0x83c75b(0xca)+_0xf6ff44[_0x83c75b(0xb7)]};},async 'execute'(_0x461cdb){const _0x3269e5=_0x50ddad,_0x13a07b=await compilePlan(_0xf6ff44,_0x461cdb),_0x4e6667=Date[_0x3269e5(0xb3)](),_0x1a49c1=await executePlan(_0x13a07b,_0xf6ff44,_0x461cdb),_0x26dd97=Date['now']()-_0x4e6667;return{'ok':!![],'data':{'service':_0x30e590[_0x3269e5(0xc7)],'command':_0xf6ff44['cliPath'],'target':targetPreview(_0x13a07b),'result':_0x1a49c1,'elapsed':_0x26dd97},'message':_0x3269e5(0xba)+_0xf6ff44[_0x3269e5(0xb7)]+_0x3269e5(0xeb)+_0x26dd97+'ms'};}};}function buildDynamicConfirmationDescription(_0x1673a8){const _0x27df2b=a39_0x8bbe,_0x3058a9=_0x1673a8[_0x27df2b(0xe5)]||_0x1673a8[_0x27df2b(0xb7)],_0x294ad1=_0x1673a8[_0x27df2b(0xf2)]===_0x27df2b(0x8f)?'该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。':_0x27df2b(0xdc);return _0x27df2b(0xce)+_0x3058a9+'”。'+_0x294ad1;}function dynamicCommandName(_0x345362){const _0x1cad5b=a39_0x8bbe;return _0x345362[_0x1cad5b(0xa7)][_0x1cad5b(0xa3)](0x1)[_0x1cad5b(0xc8)]('\x20');}function riskTag(_0xda5f37){const _0x313dfc=a39_0x8bbe;return _0xda5f37===_0x313dfc(0xfa)?'':_0x313dfc(0xe9)+_0xda5f37+']';}function flagToCommandFlag(_0x4b5de5){const _0x307925=a39_0x8bbe;return{'name':_0x4b5de5[_0x307925(0xa4)],'type':_0x4b5de5[_0x307925(0xde)]===_0x307925(0x93)?_0x307925(0x9c):_0x4b5de5[_0x307925(0xde)],'description':_0x4b5de5[_0x307925(0xe5)]||_0x4b5de5[_0x307925(0xf7)],'required':_0x4b5de5[_0x307925(0x9b)],'default':isPrimitiveFlagDefault(_0x4b5de5[_0x307925(0xb2)])?_0x4b5de5[_0x307925(0xb2)]:undefined,'enum':_0x4b5de5[_0x307925(0xdd)]};}async function compilePlan(_0x18ceba,_0x52963c){const _0x21ef5f=a39_0x8bbe;return compileServiceTreeCommand(_0x18ceba,{'flags':_0x52963c[_0x21ef5f(0xa1)],'args':_0x52963c[_0x21ef5f(0x9f)],'context':await buildServiceContext(_0x18ceba,_0x52963c)});}function a39_0x2ec4(){const _0xfc1330=['name','\x20\x20\x20\x20datasetCode:\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','read','source','datatable','high-risk-write','\x20\x20MAP\x20TO','nickName','Unsupported\x20service\x20target\x20kind:\x20','json','dbtableConfig','code','Unknown\x20appRef\x20\x22','\x20service\x20detail\x20--service\x20','length','appcode','tree','required','string','sql','\x20->\x20','args','\x20requires\x20target.sqlCode.','rawFlags','`\x20to\x20inspect\x20the\x20manifest.','slice','cliName','\x20\x20\x20\x20sqlCode:\x20','envName','fullPath','filter','\x22\x20in\x20service\x20command\x20','command','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','remainingArgs','push','\x20\x20\x20\x20command:\x20','username','some','scriptName','default','now','datasetCode','\x20requires\x20target.functionName.','userId','cliPath','number','409496zJVagw','Service\x20command\x20','padEnd','appBindings','ctx.','data','\x20\x20\x20\x20','flatMap','6667760cGrQVo','SERVICE_TREE','normalizedManifest','2022JLvfaC','appRef','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','service','join','params','Preview\x20dynamic\x20service\x20command:\x20','employeeId','61062nMWUeD','bffCode','将通过\x20Service\x20Tree\x20执行“','env','\x20<command>\x20[flags]','entries','flags','userName','mapTo','nickname','2618890NmkZFA','4RiXUpS','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','operator','133867xjncmh','trim','该命令被清单标记为写入,可能修改业务数据或服务状态。','enum','type','\x20\x20\x20\x20functionName:\x20','Run\x20service\x20command\x20','validation','loginName','1866MmKZHV','commands','description','app','\x20\x20SERVICE\x20TREE\x20TARGET','target','\x20\x20[','bffId','\x20completed\x20in\x20','1210wEldod','kind','appCode','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','31167xVodCS','sqlCode','risk','map','539VkkrFy','find','startsWith'];a39_0x2ec4=function(){return _0xfc1330;};return a39_0x2ec4();}async function buildServiceContext(_0x3a44af,_0x456322){const _0x336cda=a39_0x8bbe,_0x31dc1b={'appCode':_0x456322[_0x336cda(0xee)],'env':_0x456322[_0x336cda(0xa6)],'envName':_0x456322[_0x336cda(0xa6)]};if(!usesRuntimeContext(_0x3a44af))return _0x31dc1b;const _0x5c363e=await getLoginUserInfo(),_0x2b6efb=pickFirst(_0x5c363e[_0x336cda(0xb6)],_0x5c363e['id']);return{..._0x31dc1b,'user':_0x5c363e,'userId':_0x2b6efb,'id':_0x5c363e['id'],'username':pickFirst(_0x5c363e[_0x336cda(0xaf)],_0x5c363e[_0x336cda(0xd3)],_0x5c363e[_0x336cda(0xe2)]),'userName':_0x5c363e['userName'],'nickname':pickFirst(_0x5c363e[_0x336cda(0xd5)],_0x5c363e[_0x336cda(0x91)]),'nickName':_0x5c363e[_0x336cda(0x91)],'tenantCode':_0x5c363e['tenantCode'],'employeeId':_0x5c363e[_0x336cda(0xcb)]};}function usesRuntimeContext(_0x4cba60){const _0x3592fe=a39_0x8bbe;return _0x4cba60['mapTo'][_0x3592fe(0xb0)](_0x40aa96=>typeof _0x40aa96[_0x3592fe(0xfb)]===_0x3592fe(0x9c)&&(_0x40aa96[_0x3592fe(0xfb)][_0x3592fe(0xf6)]('context.')||_0x40aa96[_0x3592fe(0xfb)][_0x3592fe(0xf6)](_0x3592fe(0xbd))));}function pickFirst(..._0x5a1695){const _0x5dadf1=a39_0x8bbe;return _0x5a1695[_0x5dadf1(0xf5)](_0x218bcd=>_0x218bcd!==undefined&&_0x218bcd!==null);}async function executePlan(_0x3f1843,_0x21c80a,_0xe51457){const _0x3ba810=a39_0x8bbe;if(_0x3f1843['kind']===_0x3ba810(0xbe)){const _0xc172ba=await resolveDatasetCode(_0x3f1843,_0x21c80a,_0xe51457);return executeData(_0xc172ba,_0x3f1843['command'],_0x3f1843['params']);}if(_0x3f1843[_0x3ba810(0xed)]===_0x3ba810(0x9d)){if(!_0x3f1843['sqlCode'])throw CliErrors[_0x3ba810(0xe1)](_0x3ba810(0xba)+_0x21c80a[_0x3ba810(0xb7)]+_0x3ba810(0xa0));return executeSdkSql(_0x3f1843[_0x3ba810(0xf1)],normalizeScalarParams(_0x3f1843[_0x3ba810(0xc9)]));}if(_0x3f1843['kind']==='bff'){const _0x3110dc=_0x3f1843[_0x3ba810(0xb1)]||_0x3f1843[_0x3ba810(0xcd)]||(_0x3f1843[_0x3ba810(0xea)]==null?'':String(_0x3f1843[_0x3ba810(0xea)]));if(!_0x3110dc)throw CliErrors[_0x3ba810(0xe1)](_0x3ba810(0xba)+_0x21c80a['cliPath']+_0x3ba810(0xb5));return executeSdkBff(_0x3110dc,_0x3f1843[_0x3ba810(0xc9)]);}throw CliErrors[_0x3ba810(0xe1)](_0x3ba810(0x92)+_0x3f1843[_0x3ba810(0xed)]);}async function resolveDatasetCode(_0x48548c,_0x5bbc1c,_0x24c27c){const _0x3e9fb4=a39_0x8bbe;if(_0x48548c[_0x3e9fb4(0xb4)])return _0x48548c['datasetCode'];if(!_0x48548c[_0x3e9fb4(0x8e)])throw CliErrors[_0x3e9fb4(0xe1)](_0x3e9fb4(0xba)+_0x5bbc1c['cliPath']+_0x3e9fb4(0xab));const _0x26d2b1=await listDatasets(_0x24c27c['appCode']),_0x31f383=_0x26d2b1[_0x3e9fb4(0xf5)](_0x4e6a5c=>_0x4e6a5c[_0x3e9fb4(0x94)]?.['tableName']===_0x48548c[_0x3e9fb4(0x8e)]);if(!_0x31f383?.[_0x3e9fb4(0x95)])throw CliErrors[_0x3e9fb4(0xe1)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x48548c[_0x3e9fb4(0x8e)]+_0x3e9fb4(0xd8)+_0x24c27c[_0x3e9fb4(0xee)]+'.',_0x3e9fb4(0xc6));return _0x31f383[_0x3e9fb4(0x95)];}function applyAppBinding(_0x4575d6,_0x3174fa,_0x2d8fa4){const _0x119458=a39_0x8bbe,_0x420a45=_0x3174fa[_0x119458(0xe8)][_0x119458(0xc5)];if(!_0x420a45)return;const _0x134bb5=_0x4575d6[_0x119458(0xbc)][_0x420a45];if(!_0x134bb5)throw CliErrors[_0x119458(0xe1)](_0x119458(0x96)+_0x420a45+_0x119458(0xa9)+_0x3174fa['cliPath']+'.',_0x119458(0xef));const _0x4a19b2=_0x134bb5['appcode']||_0x134bb5[_0x119458(0xee)];_0x4a19b2&&!hasText(_0x2d8fa4[_0x119458(0x99)])&&(_0x2d8fa4[_0x119458(0x99)]=_0x4a19b2),_0x134bb5[_0x119458(0xe6)]&&!hasText(_0x2d8fa4['app'])&&!hasText(_0x2d8fa4['appcode'])&&(_0x2d8fa4[_0x119458(0xe6)]=_0x134bb5[_0x119458(0xe6)]),_0x134bb5['env']&&!hasText(_0x2d8fa4[_0x119458(0xcf)])&&(_0x2d8fa4['env']=_0x134bb5[_0x119458(0xcf)]);}function renderDynamicCommandHelp(_0x41d72f){const _0x1b5474=a39_0x8bbe,_0x44545c=[_0x1b5474(0xe7),_0x1b5474(0xf9)+_0x41d72f['target'][_0x1b5474(0xed)],_0x1b5474(0xae)+_0x41d72f['target'][_0x1b5474(0xaa)]];if(_0x41d72f[_0x1b5474(0xe8)][_0x1b5474(0xb4)])_0x44545c['push'](_0x1b5474(0xf8)+_0x41d72f[_0x1b5474(0xe8)]['datasetCode']);if(_0x41d72f[_0x1b5474(0xe8)]['datatable'])_0x44545c['push']('\x20\x20\x20\x20datatable:\x20'+_0x41d72f[_0x1b5474(0xe8)][_0x1b5474(0x8e)]);if(_0x41d72f[_0x1b5474(0xe8)][_0x1b5474(0xf1)])_0x44545c[_0x1b5474(0xad)](_0x1b5474(0xa5)+_0x41d72f[_0x1b5474(0xe8)]['sqlCode']);if(_0x41d72f[_0x1b5474(0xe8)][_0x1b5474(0xb1)])_0x44545c[_0x1b5474(0xad)](_0x1b5474(0xdf)+_0x41d72f[_0x1b5474(0xe8)][_0x1b5474(0xb1)]);if(_0x41d72f['mapTo'][_0x1b5474(0x98)]>0x0){_0x44545c[_0x1b5474(0xad)]('',_0x1b5474(0x90));for(const _0x52c3da of _0x41d72f[_0x1b5474(0xd4)]){_0x44545c[_0x1b5474(0xad)](_0x1b5474(0xbf)+(_0x52c3da['source']||'const')+_0x1b5474(0x9e)+_0x52c3da[_0x1b5474(0xe8)]+(_0x52c3da['operator']?'.'+_0x52c3da[_0x1b5474(0xd9)]:''));}}return _0x44545c[_0x1b5474(0xc8)]('\x0a');}function targetPreview(_0x418c33){const _0x3af3ff=a39_0x8bbe;return{'kind':_0x418c33[_0x3af3ff(0xed)],'command':_0x418c33[_0x3af3ff(0xaa)],'appRef':_0x418c33['appRef'],'datasetCode':_0x418c33['datasetCode'],'datatable':_0x418c33[_0x3af3ff(0x8e)],'sqlCode':_0x418c33[_0x3af3ff(0xf1)],'bffCode':_0x418c33['bffCode'],'bffId':_0x418c33[_0x3af3ff(0xea)],'functionName':_0x418c33[_0x3af3ff(0xb1)]};}function normalizeScalarParams(_0x24b393){const _0x16e5e1=a39_0x8bbe;return Object['fromEntries'](Object[_0x16e5e1(0xd1)](_0x24b393)[_0x16e5e1(0xa8)](([,_0x60854b])=>typeof _0x60854b==='string'||typeof _0x60854b===_0x16e5e1(0xb8)));}function hasText(_0x3984da){const _0x1c3ba9=a39_0x8bbe;return typeof _0x3984da===_0x1c3ba9(0x9c)&&_0x3984da[_0x1c3ba9(0xdb)]()[_0x1c3ba9(0x98)]>0x0;}function isPrimitiveFlagDefault(_0x2620dd){const _0x586211=a39_0x8bbe;return _0x2620dd===undefined||typeof _0x2620dd==='string'||typeof _0x2620dd===_0x586211(0xb8)||typeof _0x2620dd==='boolean';}
|
|
1
|
+
(function(_0x1735c1,_0x1c87b1){const _0x25e708=a39_0x28d6,_0x4b88ba=_0x1735c1();while(!![]){try{const _0x42e2b7=-parseInt(_0x25e708(0x204))/0x1*(-parseInt(_0x25e708(0x1f1))/0x2)+-parseInt(_0x25e708(0x1b4))/0x3*(parseInt(_0x25e708(0x214))/0x4)+-parseInt(_0x25e708(0x1db))/0x5+parseInt(_0x25e708(0x215))/0x6*(-parseInt(_0x25e708(0x216))/0x7)+parseInt(_0x25e708(0x20b))/0x8+parseInt(_0x25e708(0x1fc))/0x9+parseInt(_0x25e708(0x1d3))/0xa;if(_0x42e2b7===_0x1c87b1)break;else _0x4b88ba['push'](_0x4b88ba['shift']());}catch(_0x3e06b4){_0x4b88ba['push'](_0x4b88ba['shift']());}}}(a39_0x472c,0xd2aa1));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(_0x166bea,_0x532cac){const _0x560768=a39_0x28d6,_0x5f2a05=listLocalServiceTrees();let _0xcddb7c;for(const _0x164387 of _0x5f2a05){const _0x14a2a0=matchServiceTreeCommand(_0x164387,_0x166bea);if(!_0x14a2a0)continue;(!_0xcddb7c||_0x14a2a0[_0x560768(0x201)][_0x560768(0x1ba)][_0x560768(0x213)]>_0xcddb7c[_0x560768(0x201)][_0x560768(0x1ba)][_0x560768(0x213)])&&(_0xcddb7c={'tree':_0x164387,'command':_0x14a2a0[_0x560768(0x201)],'remainingArgs':_0x14a2a0['remainingArgs']});}if(!_0xcddb7c)return undefined;const _0x3a3fd0={..._0x532cac};return applyAppBinding(_0xcddb7c[_0x560768(0x1c4)],_0xcddb7c[_0x560768(0x201)],_0x3a3fd0),{'definition':buildDynamicCommandDefinition(_0xcddb7c[_0x560768(0x1c4)],_0xcddb7c[_0x560768(0x201)]),'args':_0xcddb7c[_0x560768(0x219)],'flags':_0x3a3fd0,'tree':_0xcddb7c[_0x560768(0x1c4)],'command':_0xcddb7c['command']};}export function generateDynamicServiceHelp(_0x56781b){const _0x49600d=a39_0x28d6,_0x2deb51=listLocalServiceTrees()['find'](_0x5cc10b=>_0x5cc10b[_0x49600d(0x21a)][_0x49600d(0x1e1)]===_0x56781b);if(!_0x2deb51)return undefined;const _0x2aa8b0=[CLI_BIN_NAME+'\x20'+_0x56781b+_0x49600d(0x1bd),'',_0x2deb51[_0x49600d(0x21a)]['name']||_0x56781b,_0x2deb51['service'][_0x49600d(0x1e5)]?'\x20\x20'+_0x2deb51[_0x49600d(0x21a)][_0x49600d(0x1e5)]:'','',_0x49600d(0x1e3),..._0x2deb51['commands'][_0x49600d(0x1bf)](_0x1ea813=>{const _0x540420=_0x49600d,_0x529aee=_0x1ea813[_0x540420(0x1ba)][_0x540420(0x217)](0x1)['join']('\x20'),_0x23b664=_0x1ea813[_0x540420(0x1cb)]==='read'?'':'\x20['+_0x1ea813[_0x540420(0x1cb)]+']';return'\x20\x20'+_0x529aee[_0x540420(0x1df)](0x18)+'\x20'+(_0x1ea813['description']||'')+_0x23b664;}),'',_0x49600d(0x1fa)+CLI_BIN_NAME+_0x49600d(0x1d1)+_0x56781b+'`\x20to\x20inspect\x20the\x20manifest.'][_0x49600d(0x1d0)](Boolean);return _0x2aa8b0[_0x49600d(0x1e0)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x1b2e92=>{const _0x562117=a39_0x28d6,_0xff1a1=_0x1b2e92[_0x562117(0x1b0)];return{'service':_0xff1a1['service'][_0x562117(0x1e1)],'label':_0xff1a1[_0x562117(0x21a)][_0x562117(0x1fb)]||_0xff1a1[_0x562117(0x21a)][_0x562117(0x1e1)],'commands':_0xff1a1['commands'][_0x562117(0x1bf)](_0x39c43f=>({'command':dynamicCommandName(_0x39c43f),'description':_0x39c43f[_0x562117(0x1e5)]||'Run\x20service\x20command\x20'+_0x39c43f[_0x562117(0x20c)],'tag':riskTag(_0x39c43f[_0x562117(0x1cb)])}))};});}export function getDynamicServiceEntry(_0x4f21f8){const _0x21e866=a39_0x28d6;return listDynamicServiceEntries()[_0x21e866(0x1ce)](_0x2158ac=>_0x2158ac[_0x21e866(0x21a)]===_0x4f21f8);}export function listDynamicServiceDefinitions(_0x53649a){const _0x25513d=a39_0x28d6;return listLocalServiceTrees()[_0x25513d(0x1d0)](_0x171ac6=>!_0x53649a||_0x171ac6[_0x25513d(0x21a)][_0x25513d(0x1e1)]===_0x53649a)[_0x25513d(0x1bb)](_0x27480c=>_0x27480c['commands']['map'](_0x3f0e4c=>buildDynamicCommandDefinition(_0x27480c,_0x3f0e4c)));}export function getDynamicServiceDefinitions(_0x1187f5){const _0x3a3b79=listDynamicServiceDefinitions(_0x1187f5);return _0x3a3b79['length']>0x0?_0x3a3b79:undefined;}export function findDynamicServiceDefinition(_0x7b5d8d,_0x3da34b){const _0x2f3770=a39_0x28d6;return listDynamicServiceDefinitions(_0x7b5d8d)[_0x2f3770(0x1ce)](_0x1938a5=>_0x1938a5[_0x2f3770(0x201)]===_0x3da34b);}export function buildDynamicCommandDefinition(_0x2fb29e,_0x49d274){const _0x593319=a39_0x28d6;return{'service':_0x2fb29e[_0x593319(0x21a)][_0x593319(0x1e1)],'command':dynamicCommandName(_0x49d274),'description':_0x49d274['description']||_0x593319(0x1eb)+_0x49d274[_0x593319(0x20c)],'risk':_0x49d274[_0x593319(0x1cb)],..._0x49d274[_0x593319(0x1cb)]===_0x593319(0x1bc)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x49d274)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x49d274[_0x593319(0x1fe)][_0x593319(0x1bf)](_0x294c38=>({'name':_0x294c38[_0x593319(0x1fb)],'description':_0x294c38['description']||_0x294c38[_0x593319(0x1fb)],'required':_0x294c38[_0x593319(0x1b6)]})),'flags':_0x49d274['flags'][_0x593319(0x1bf)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x49d274),async 'dryRun'(_0x216e74){const _0x23c0ee=_0x593319,_0x151ca8=await compilePlan(_0x49d274,_0x216e74);return{'method':_0x23c0ee(0x208),'url':_0x49d274[_0x23c0ee(0x20c)],'body':{'target':targetPreview(_0x151ca8),'params':_0x151ca8[_0x23c0ee(0x1c6)]},'description':_0x23c0ee(0x1ff)+_0x49d274[_0x23c0ee(0x20c)]};},async 'execute'(_0x123b70){const _0x5d41de=_0x593319,_0x463e03=await compilePlan(_0x49d274,_0x123b70),_0x5f0a72=Date[_0x5d41de(0x200)](),_0x42e28f=await executePlan(_0x463e03,_0x49d274,_0x123b70),_0x1f3abb=Date[_0x5d41de(0x200)]()-_0x5f0a72;return{'ok':!![],'data':{'service':_0x2fb29e[_0x5d41de(0x21a)],'command':_0x49d274[_0x5d41de(0x20c)],'target':targetPreview(_0x463e03),'result':_0x42e28f,'elapsed':_0x1f3abb},'message':_0x5d41de(0x1e6)+_0x49d274[_0x5d41de(0x20c)]+_0x5d41de(0x20f)+_0x1f3abb+'ms'};}};}function buildDynamicConfirmationDescription(_0x4162cb){const _0x42915=a39_0x28d6,_0x3e59fb=_0x4162cb[_0x42915(0x1e5)]||_0x4162cb[_0x42915(0x20c)],_0x2f16a4=_0x4162cb[_0x42915(0x1cb)]===_0x42915(0x1f6)?_0x42915(0x205):_0x42915(0x1d6);return _0x42915(0x1e9)+_0x3e59fb+'”。'+_0x2f16a4;}function dynamicCommandName(_0x1e6d44){const _0x42875c=a39_0x28d6;return _0x1e6d44[_0x42875c(0x1ba)][_0x42875c(0x217)](0x1)[_0x42875c(0x1e0)]('\x20');}function riskTag(_0x5a6e08){return _0x5a6e08==='read'?'':'\x20\x20['+_0x5a6e08+']';}function flagToCommandFlag(_0x24102a){const _0x15cd9f=a39_0x28d6;return{'name':_0x24102a[_0x15cd9f(0x1c3)],'type':_0x24102a[_0x15cd9f(0x1b1)]===_0x15cd9f(0x1c7)?_0x15cd9f(0x1e2):_0x24102a['type'],'description':_0x24102a[_0x15cd9f(0x1e5)]||_0x24102a['name'],'required':_0x24102a[_0x15cd9f(0x1b6)],'default':isPrimitiveFlagDefault(_0x24102a[_0x15cd9f(0x1b8)])?_0x24102a[_0x15cd9f(0x1b8)]:undefined,'enum':_0x24102a[_0x15cd9f(0x1d2)]};}async function compilePlan(_0x12368d,_0x3a710d){const _0x112817=a39_0x28d6;return compileServiceTreeCommand(_0x12368d,{'flags':_0x3a710d['rawFlags'],'args':_0x3a710d[_0x112817(0x1fe)],'context':await buildServiceContext(_0x12368d,_0x3a710d)});}async function buildServiceContext(_0x13dd8c,_0x345c6b){const _0x25ee28=a39_0x28d6,_0x3c9bf8={'appCode':_0x345c6b[_0x25ee28(0x203)],'env':_0x345c6b['envName'],'envName':_0x345c6b[_0x25ee28(0x1b3)]};if(!usesRuntimeContext(_0x13dd8c))return _0x3c9bf8;const _0x42cbc9=await getLoginUserInfo(),_0x2cda82=pickFirst(_0x42cbc9[_0x25ee28(0x1fd)],_0x42cbc9['id']);return{..._0x3c9bf8,'user':_0x42cbc9,'userId':_0x2cda82,'id':_0x42cbc9['id'],'username':pickFirst(_0x42cbc9[_0x25ee28(0x209)],_0x42cbc9[_0x25ee28(0x1ef)],_0x42cbc9[_0x25ee28(0x211)]),'userName':_0x42cbc9[_0x25ee28(0x1ef)],'nickname':pickFirst(_0x42cbc9[_0x25ee28(0x210)],_0x42cbc9[_0x25ee28(0x1ca)]),'nickName':_0x42cbc9[_0x25ee28(0x1ca)],'tenantCode':_0x42cbc9[_0x25ee28(0x218)],'employeeId':_0x42cbc9['employeeId']};}function a39_0x472c(){const _0x15a503=['SERVICE_TREE','username','source','3667632PEpjQV','cliPath','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','validation','\x20completed\x20in\x20','nickname','loginName','app','length','1590152GqMHJw','326982qDSRTJ','98SEyfLs','slice','tenantCode','remainingArgs','service','push','normalizedManifest','type','trim','envName','12XPpuUy','\x20\x20\x20\x20','required','\x20\x20SERVICE\x20TREE\x20TARGET','default','\x22\x20in\x20service\x20command\x20','fullPath','flatMap','read','\x20<command>\x20[flags]','datatable','map','boolean','data','\x20\x20\x20\x20kind:\x20\x20\x20\x20','cliName','tree','ctx.','params','json','startsWith','operator','nickName','risk','bffId','const','find','bff','filter','\x20service\x20detail\x20--service\x20','enum','22593200nhPuSS','\x20->\x20','sqlCode','该命令被清单标记为写入,可能修改业务数据或服务状态。','dbtableConfig','appcode','\x20\x20\x20\x20datasetCode:\x20','kind','3414425GlbFiX','some','tableName','\x20\x20\x20\x20sqlCode:\x20','padEnd','join','code','string','Commands:','Cannot\x20resolve\x20datatable\x20\x22','description','Service\x20command\x20','Unknown\x20appRef\x20\x22','scriptName','将通过\x20Service\x20Tree\x20执行“','\x20requires\x20target.sqlCode.','Run\x20service\x20command\x20','datasetCode','appBindings','fromEntries','userName','\x20\x20\x20\x20command:\x20','4922cjiDlh','bffCode','context.','number','Unsupported\x20service\x20target\x20kind:\x20','high-risk-write','\x20\x20\x20\x20functionName:\x20','\x20\x20\x20\x20datatable:\x20','appRef','Use\x20`','name','9721809zBfpxf','userId','args','Preview\x20dynamic\x20service\x20command:\x20','now','command','target','appCode','41HiBGNE','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','env','mapTo'];a39_0x472c=function(){return _0x15a503;};return a39_0x472c();}function a39_0x28d6(_0x50b84c,_0x3fad92){_0x50b84c=_0x50b84c-0x1b0;const _0x472c8f=a39_0x472c();let _0x28d606=_0x472c8f[_0x50b84c];return _0x28d606;}function usesRuntimeContext(_0x2c7dfb){const _0x2ad4ab=a39_0x28d6;return _0x2c7dfb[_0x2ad4ab(0x207)][_0x2ad4ab(0x1dc)](_0x37d8c1=>typeof _0x37d8c1[_0x2ad4ab(0x20a)]===_0x2ad4ab(0x1e2)&&(_0x37d8c1['source'][_0x2ad4ab(0x1c8)](_0x2ad4ab(0x1f3))||_0x37d8c1[_0x2ad4ab(0x20a)][_0x2ad4ab(0x1c8)](_0x2ad4ab(0x1c5))));}function pickFirst(..._0x1bd7d7){return _0x1bd7d7['find'](_0x4eec5e=>_0x4eec5e!==undefined&&_0x4eec5e!==null);}async function executePlan(_0x525cfa,_0xe3d6dc,_0x5abbe4){const _0x43d6c9=a39_0x28d6;if(_0x525cfa[_0x43d6c9(0x1da)]===_0x43d6c9(0x1c1)){const _0x116743=await resolveDatasetCode(_0x525cfa,_0xe3d6dc,_0x5abbe4);return executeData(_0x116743,_0x525cfa[_0x43d6c9(0x201)],_0x525cfa[_0x43d6c9(0x1c6)]);}if(_0x525cfa[_0x43d6c9(0x1da)]==='sql'){if(!_0x525cfa[_0x43d6c9(0x1d5)])throw CliErrors[_0x43d6c9(0x20e)](_0x43d6c9(0x1e6)+_0xe3d6dc[_0x43d6c9(0x20c)]+_0x43d6c9(0x1ea));return executeSdkSql(_0x525cfa[_0x43d6c9(0x1d5)],normalizeScalarParams(_0x525cfa[_0x43d6c9(0x1c6)]));}if(_0x525cfa[_0x43d6c9(0x1da)]===_0x43d6c9(0x1cf)){const _0x443a0f=_0x525cfa['scriptName']||_0x525cfa[_0x43d6c9(0x1f2)]||(_0x525cfa[_0x43d6c9(0x1cc)]==null?'':String(_0x525cfa[_0x43d6c9(0x1cc)]));if(!_0x443a0f)throw CliErrors[_0x43d6c9(0x20e)](_0x43d6c9(0x1e6)+_0xe3d6dc[_0x43d6c9(0x20c)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x443a0f,_0x525cfa['params']);}throw CliErrors[_0x43d6c9(0x20e)](_0x43d6c9(0x1f5)+_0x525cfa[_0x43d6c9(0x1da)]);}async function resolveDatasetCode(_0x114a48,_0x5753b0,_0x3a5976){const _0x12ee24=a39_0x28d6;if(_0x114a48[_0x12ee24(0x1ec)])return _0x114a48['datasetCode'];if(!_0x114a48[_0x12ee24(0x1be)])throw CliErrors[_0x12ee24(0x20e)](_0x12ee24(0x1e6)+_0x5753b0[_0x12ee24(0x20c)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x4b2325=await listDatasets(_0x3a5976[_0x12ee24(0x203)]),_0x1604ff=_0x4b2325[_0x12ee24(0x1ce)](_0x193ff6=>_0x193ff6[_0x12ee24(0x1d7)]?.[_0x12ee24(0x1dd)]===_0x114a48[_0x12ee24(0x1be)]);if(!_0x1604ff?.[_0x12ee24(0x1e1)])throw CliErrors['validation'](_0x12ee24(0x1e4)+_0x114a48[_0x12ee24(0x1be)]+_0x12ee24(0x20d)+_0x3a5976['appCode']+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x1604ff['code'];}function applyAppBinding(_0x2c946a,_0x326394,_0x56c7e5){const _0xdd351b=a39_0x28d6,_0x235c15=_0x326394[_0xdd351b(0x202)][_0xdd351b(0x1f9)];if(!_0x235c15)return;const _0x16b468=_0x2c946a[_0xdd351b(0x1ed)][_0x235c15];if(!_0x16b468)throw CliErrors['validation'](_0xdd351b(0x1e7)+_0x235c15+_0xdd351b(0x1b9)+_0x326394[_0xdd351b(0x20c)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x1f710b=_0x16b468[_0xdd351b(0x1d8)]||_0x16b468[_0xdd351b(0x203)];_0x1f710b&&!hasText(_0x56c7e5[_0xdd351b(0x1d8)])&&(_0x56c7e5[_0xdd351b(0x1d8)]=_0x1f710b),_0x16b468[_0xdd351b(0x212)]&&!hasText(_0x56c7e5['app'])&&!hasText(_0x56c7e5[_0xdd351b(0x1d8)])&&(_0x56c7e5[_0xdd351b(0x212)]=_0x16b468[_0xdd351b(0x212)]),_0x16b468[_0xdd351b(0x206)]&&!hasText(_0x56c7e5[_0xdd351b(0x206)])&&(_0x56c7e5[_0xdd351b(0x206)]=_0x16b468['env']);}function renderDynamicCommandHelp(_0x3bdff8){const _0xceff32=a39_0x28d6,_0x3807dc=[_0xceff32(0x1b7),_0xceff32(0x1c2)+_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1da)],_0xceff32(0x1f0)+_0x3bdff8[_0xceff32(0x202)]['command']];if(_0x3bdff8['target']['datasetCode'])_0x3807dc['push'](_0xceff32(0x1d9)+_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1ec)]);if(_0x3bdff8['target'][_0xceff32(0x1be)])_0x3807dc['push'](_0xceff32(0x1f8)+_0x3bdff8['target'][_0xceff32(0x1be)]);if(_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1d5)])_0x3807dc[_0xceff32(0x21b)](_0xceff32(0x1de)+_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1d5)]);if(_0x3bdff8['target']['scriptName'])_0x3807dc['push'](_0xceff32(0x1f7)+_0x3bdff8[_0xceff32(0x202)]['scriptName']);if(_0x3bdff8['mapTo']['length']>0x0){_0x3807dc['push']('','\x20\x20MAP\x20TO');for(const _0x116e59 of _0x3bdff8[_0xceff32(0x207)]){_0x3807dc[_0xceff32(0x21b)](_0xceff32(0x1b5)+(_0x116e59['source']||_0xceff32(0x1cd))+_0xceff32(0x1d4)+_0x116e59[_0xceff32(0x202)]+(_0x116e59[_0xceff32(0x1c9)]?'.'+_0x116e59[_0xceff32(0x1c9)]:''));}}return _0x3807dc[_0xceff32(0x1e0)]('\x0a');}function targetPreview(_0x14c909){const _0x189205=a39_0x28d6;return{'kind':_0x14c909['kind'],'command':_0x14c909[_0x189205(0x201)],'appRef':_0x14c909['appRef'],'datasetCode':_0x14c909['datasetCode'],'datatable':_0x14c909[_0x189205(0x1be)],'sqlCode':_0x14c909[_0x189205(0x1d5)],'bffCode':_0x14c909[_0x189205(0x1f2)],'bffId':_0x14c909['bffId'],'functionName':_0x14c909[_0x189205(0x1e8)]};}function normalizeScalarParams(_0x4cd8b4){const _0x338d61=a39_0x28d6;return Object[_0x338d61(0x1ee)](Object['entries'](_0x4cd8b4)[_0x338d61(0x1d0)](([,_0x1550cb])=>typeof _0x1550cb===_0x338d61(0x1e2)||typeof _0x1550cb===_0x338d61(0x1f4)));}function hasText(_0xd53dc4){const _0x3098ec=a39_0x28d6;return typeof _0xd53dc4===_0x3098ec(0x1e2)&&_0xd53dc4[_0x3098ec(0x1b2)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x21559d){const _0x14189e=a39_0x28d6;return _0x21559d===undefined||typeof _0x21559d==='string'||typeof _0x21559d==='number'||typeof _0x21559d===_0x14189e(0x1c0);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x578e73,_0x20e3f9){const _0x411019=a40_0x8279,_0x3a7a31=_0x578e73();while(!![]){try{const _0x4c3760=parseInt(_0x411019(0x16b))/0x1+-parseInt(_0x411019(0x15f))/0x2+parseInt(_0x411019(0x14e))/0x3+-parseInt(_0x411019(0x167))/0x4+parseInt(_0x411019(0x168))/0x5*(-parseInt(_0x411019(0x160))/0x6)+parseInt(_0x411019(0x157))/0x7+parseInt(_0x411019(0x164))/0x8*(parseInt(_0x411019(0x156))/0x9);if(_0x4c3760===_0x20e3f9)break;else _0x3a7a31['push'](_0x3a7a31['shift']());}catch(_0x5a008d){_0x3a7a31['push'](_0x3a7a31['shift']());}}}(a40_0x4e42,0xa26b9));export function adaptServiceTreeManifestForLegacyFramework(_0x27168e){const _0x23c1dc=a40_0x8279,_0x189df8=cloneJsonValue(_0x27168e),_0x3d784c=[];if(!isObjectRecord(_0x189df8))return{'manifest':_0x189df8,'errors':_0x3d784c};return Array[_0x23c1dc(0x15c)](_0x189df8[_0x23c1dc(0x16a)])&&_0x189df8['commands'][_0x23c1dc(0x165)]((_0x50efc6,_0x2fb6d9)=>{const _0x57d592=_0x23c1dc;if(!isObjectRecord(_0x50efc6))return;adaptBffTarget(_0x50efc6[_0x57d592(0x170)],_0x57d592(0x15d)+_0x2fb6d9+'].target',_0x3d784c);}),adaptResources(_0x189df8[_0x23c1dc(0x16d)],_0x23c1dc(0x150),_0x3d784c),{'manifest':_0x189df8,'errors':_0x3d784c};}export function toPublicServiceTreeTarget(_0x48e1bb){const _0x145058=a40_0x8279,{scriptName:_0x5570e9,..._0x4abaef}=_0x48e1bb;return typeof _0x5570e9===_0x145058(0x15a)&&_0x5570e9['trim']()&&(_0x4abaef[_0x145058(0x154)]=_0x5570e9),_0x4abaef;}export function toPublicNormalizedServiceTree(_0x30b0e6){const _0x3c90b6=a40_0x8279;return{..._0x30b0e6,'commands':_0x30b0e6[_0x3c90b6(0x16a)][_0x3c90b6(0x14d)](_0x28373e=>({..._0x28373e,'target':toPublicServiceTreeTarget(_0x28373e[_0x3c90b6(0x170)])}))};}function adaptResources(_0xce9e1,_0x161eb7,_0x38f55d){const _0x22831e=a40_0x8279;if(!isObjectRecord(_0xce9e1))return;for(const [_0x2614b4,_0x5b801f]of Object['entries'](_0xce9e1)){if(!isObjectRecord(_0x5b801f))continue;const _0x30b5a8=_0x161eb7+'.'+_0x2614b4;if(isObjectRecord(_0x5b801f[_0x22831e(0x16c)]))for(const [_0x481774,_0x2856c8]of Object[_0x22831e(0x14f)](_0x5b801f[_0x22831e(0x16c)])){if(!isObjectRecord(_0x2856c8))continue;const _0x55ceeb=_0x30b5a8+_0x22831e(0x153)+_0x481774,_0x1c1554=isObjectRecord(_0x2856c8[_0x22831e(0x170)])&&_0x2856c8[_0x22831e(0x170)][_0x22831e(0x152)]==='bff';adaptBffTarget(_0x2856c8['target'],_0x55ceeb+_0x22831e(0x166),_0x38f55d),(_0x1c1554||isBffAction(_0x2856c8))&&adaptFunctionNameField(_0x2856c8,_0x55ceeb,_0x38f55d);}adaptResources(_0x5b801f[_0x22831e(0x16d)],_0x30b5a8+_0x22831e(0x163),_0x38f55d);}}function adaptBffTarget(_0x5baf56,_0x1e03c9,_0x320b2b){const _0x180c11=a40_0x8279;if(!isObjectRecord(_0x5baf56)||_0x5baf56[_0x180c11(0x152)]!==_0x180c11(0x161))return;adaptFunctionNameField(_0x5baf56,_0x1e03c9,_0x320b2b);}function adaptFunctionNameField(_0x5030e9,_0x8ed62f,_0xbe2a8d){const _0x5ddabd=a40_0x8279;Object[_0x5ddabd(0x15b)][_0x5ddabd(0x162)]['call'](_0x5030e9,_0x5ddabd(0x16f))&&_0xbe2a8d['push']({'level':_0x5ddabd(0x159),'path':_0x8ed62f+_0x5ddabd(0x155),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x5ddabd(0x15b)][_0x5ddabd(0x162)][_0x5ddabd(0x151)](_0x5030e9,_0x5ddabd(0x154))){if(typeof _0x5030e9['functionName']!==_0x5ddabd(0x15a)||!_0x5030e9[_0x5ddabd(0x154)]['trim']()){_0xbe2a8d['push']({'level':_0x5ddabd(0x159),'path':_0x8ed62f+'.functionName','message':_0x5ddabd(0x169)}),delete _0x5030e9['functionName'];return;}_0x5030e9['scriptName']=_0x5030e9['functionName'],delete _0x5030e9['functionName'];}}function isBffAction(_0x49f09b){const _0x334e30=a40_0x8279;return _0x49f09b[_0x334e30(0x152)]===_0x334e30(0x161)||_0x49f09b['action']===_0x334e30(0x158)||_0x49f09b['target']==='bff.exec';}function cloneJsonValue(_0x39f2bb){const _0xa2bcc1=a40_0x8279;if(Array[_0xa2bcc1(0x15c)](_0x39f2bb))return _0x39f2bb[_0xa2bcc1(0x14d)](_0x4793c4=>cloneJsonValue(_0x4793c4));if(isObjectRecord(_0x39f2bb))return Object[_0xa2bcc1(0x16e)](Object[_0xa2bcc1(0x14f)](_0x39f2bb)[_0xa2bcc1(0x14d)](([_0x16c128,_0x3d6e90])=>[_0x16c128,cloneJsonValue(_0x3d6e90)]));return _0x39f2bb;}function a40_0x4e42(){const _0x503f37=['call','kind','.actions.','functionName','.scriptName','1335393zcmZQS','2568566teUbED','bff.exec','error','string','prototype','isArray','$.commands[','object','252398XvJOCq','198672ZgGpQb','bff','hasOwnProperty','.resources','16PQcFAM','forEach','.target','485244UgtxlQ','65CdkiJA','functionName\x20must\x20be\x20a\x20non-empty\x20string.','commands','207871vmZlWW','actions','resources','fromEntries','scriptName','target','map','1415028anPscb','entries','$.resources'];a40_0x4e42=function(){return _0x503f37;};return a40_0x4e42();}function a40_0x8279(_0xb426b6,_0x1b5858){_0xb426b6=_0xb426b6-0x14d;const _0x4e4241=a40_0x4e42();let _0x827905=_0x4e4241[_0xb426b6];return _0x827905;}function isObjectRecord(_0x22e118){const _0x3b4941=a40_0x8279;return Boolean(_0x22e118)&&typeof _0x22e118===_0x3b4941(0x15e)&&!Array['isArray'](_0x22e118);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a41_0x5ae8(_0x510e66,_0x28c91b){_0x510e66=_0x510e66-0xe6;const _0x328dea=a41_0x328d();let _0x5ae809=_0x328dea[_0x510e66];return _0x5ae809;}const a41_0x40692f=a41_0x5ae8;(function(_0x45cae6,_0x54c7be){const _0x78c968=a41_0x5ae8,_0x5e1626=_0x45cae6();while(!![]){try{const _0xf9d760=parseInt(_0x78c968(0x117))/0x1+parseInt(_0x78c968(0x11e))/0x2+-parseInt(_0x78c968(0x12c))/0x3*(-parseInt(_0x78c968(0x10d))/0x4)+-parseInt(_0x78c968(0xf7))/0x5+parseInt(_0x78c968(0x10c))/0x6+parseInt(_0x78c968(0x11a))/0x7+-parseInt(_0x78c968(0xe7))/0x8*(parseInt(_0x78c968(0x11c))/0x9);if(_0xf9d760===_0x54c7be)break;else _0x5e1626['push'](_0x5e1626['shift']());}catch(_0x2c1e8a){_0x5e1626['push'](_0x5e1626['shift']());}}}(a41_0x328d,0xf08b3));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x328d(){const _0x1549ae=['risk','registryPath','9128915SnTgCx','entry','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','import','hash','commands','Service\x20manifest\x20validation\x20passed.','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','name','write','cliName','flags','Imported','list','target','str','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','filePath','Service\x20registry\x20validation\x20passed.','validate','\x20service(s).','10954512eMSsuO','844108QWrAAh','Imported\x20','remove','Service\x20Tree\x20manifest\x20file\x20path','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Local\x20service\x20not\x20found:\x20','cliPath','updated','manifests','1461410GQJbIc','Exported\x20service\x20','\x20service\x20','8494654ExNNjN','serviceCount','4333482qrbEne','report','1976654Zguyyr','Updated','registry','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','registryServiceCode','entries','source','normalizedManifest','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','type','WRITE','importedAt','read','将\x20Service\x20Tree\x20清单导入本地运行态注册表','3VnTjgM','kind','description','map','export','length','warnings','detail','errors','48WbrBdO','string','serviceCode','reduce','lower\x20kebab-case\x20service\x20code','version','\x20service(s),\x20updated\x20','replaced','manifest','service','file','imported','从本地运行态注册表移除\x20Service\x20Tree\x20清单','registryIndex'];a41_0x328d=function(){return _0x1549ae;};return a41_0x328d();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x40692f(0xf1),'type':a41_0x40692f(0xe8),'required':!![],'description':a41_0x40692f(0x110)},SERVICE_FLAG={'name':a41_0x40692f(0xf0),'type':'string','required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x40692f(0xeb)}};function summarizeService(_0x1171e7){const _0x26e121=a41_0x40692f;return{'serviceCode':_0x1171e7['serviceCode'],'name':_0x1171e7[_0x26e121(0x125)][_0x26e121(0xf0)][_0x26e121(0xff)],'version':_0x1171e7['version'],'importedAt':_0x1171e7[_0x26e121(0x129)],'source':_0x1171e7['source'],'commandCount':_0x1171e7[_0x26e121(0x125)][_0x26e121(0xfc)][_0x26e121(0x131)],'commands':_0x1171e7['normalizedManifest'][_0x26e121(0xfc)]['map'](_0x33b798=>({'path':_0x33b798[_0x26e121(0x114)],'description':_0x33b798[_0x26e121(0x12e)],'risk':_0x33b798[_0x26e121(0xf5)],'target':toPublicServiceTreeTarget(_0x33b798[_0x26e121(0x105)]),'flags':_0x33b798[_0x26e121(0x102)][_0x26e121(0x12f)](_0x699d72=>({'name':_0x699d72['name'],'cliName':_0x699d72[_0x26e121(0x101)],'type':_0x699d72[_0x26e121(0x127)],'required':_0x699d72['required']===!![]}))}))};}function summarizeLoadedManifest(_0x5f336f){const _0x4ea216=a41_0x40692f;return{'service':_0x5f336f[_0x4ea216(0x125)]?.[_0x4ea216(0xf0)],'version':_0x5f336f[_0x4ea216(0x125)]?.[_0x4ea216(0xec)],'commandCount':_0x5f336f[_0x4ea216(0x125)]?.['commands'][_0x4ea216(0x131)]??0x0,'commands':_0x5f336f[_0x4ea216(0x125)]?.[_0x4ea216(0xfc)][_0x4ea216(0x12f)](_0xcf2598=>({'path':_0xcf2598[_0x4ea216(0x114)],'risk':_0xcf2598[_0x4ea216(0xf5)],'target':toPublicServiceTreeTarget(_0xcf2598[_0x4ea216(0x105)])}))??[],'registryIndex':_0x5f336f[_0x4ea216(0xf4)],'registryServiceCode':_0x5f336f[_0x4ea216(0x122)],'errors':_0x5f336f['report'][_0x4ea216(0xe6)],'warnings':_0x5f336f[_0x4ea216(0x11d)][_0x4ea216(0x132)]};}export const serviceDefinitions=[{'service':a41_0x40692f(0xf0),'command':a41_0x40692f(0x10a),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x40692f(0x12a),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x18de77){const _0x23e37a=a41_0x40692f,_0x56e070=loadServiceManifestFromFile(_0x18de77['str'](_0x23e37a(0xf1)));if(!_0x56e070[_0x23e37a(0x11d)]['ok'])return{'ok':![],'data':{'file':_0x56e070[_0x23e37a(0x108)],'hash':_0x56e070[_0x23e37a(0xfb)],'kind':_0x56e070[_0x23e37a(0x12d)],'serviceCount':_0x56e070[_0x23e37a(0x116)]['length'],'services':_0x56e070[_0x23e37a(0x116)][_0x23e37a(0x12f)](summarizeLoadedManifest),'errors':_0x56e070[_0x23e37a(0x11d)]['errors'],'warnings':_0x56e070['report']['warnings']},'message':formatValidationFailure(_0x56e070[_0x23e37a(0x11d)])};if(_0x56e070[_0x23e37a(0x12d)]===_0x23e37a(0x120)||_0x56e070[_0x23e37a(0x116)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x56e070[_0x23e37a(0x108)],'hash':_0x56e070[_0x23e37a(0xfb)],'kind':_0x56e070[_0x23e37a(0x12d)],'serviceCount':_0x56e070['manifests'][_0x23e37a(0x131)],'commandCount':_0x56e070['manifests'][_0x23e37a(0xea)]((_0x5f9c56,_0x28798a)=>_0x5f9c56+(_0x28798a[_0x23e37a(0x125)]?.['commands']['length']??0x0),0x0),'services':_0x56e070[_0x23e37a(0x116)][_0x23e37a(0x12f)](summarizeLoadedManifest),'warnings':_0x56e070[_0x23e37a(0x11d)][_0x23e37a(0x132)]},'message':_0x23e37a(0x109)};return{'ok':!![],'data':{'file':_0x56e070[_0x23e37a(0x108)],'hash':_0x56e070[_0x23e37a(0xfb)],'kind':_0x56e070[_0x23e37a(0x12d)],'service':_0x56e070[_0x23e37a(0x125)]?.[_0x23e37a(0xf0)],'version':_0x56e070[_0x23e37a(0x125)]?.['version'],'commandCount':_0x56e070[_0x23e37a(0x125)]?.[_0x23e37a(0xfc)]['length']??0x0,'commands':_0x56e070['normalizedManifest']?.[_0x23e37a(0xfc)][_0x23e37a(0x12f)](_0x10d789=>({'path':_0x10d789['cliPath'],'risk':_0x10d789['risk'],'target':toPublicServiceTreeTarget(_0x10d789['target'])})),'warnings':_0x56e070['report']['warnings']},'message':_0x23e37a(0xfd)};}},{'service':'service','command':a41_0x40692f(0xfa),'description':a41_0x40692f(0x12b),'risk':a41_0x40692f(0x100),'confirmationDescription':'将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x266c79){const _0x10b227=a41_0x40692f,_0x263b44=loadServiceManifestFromFile(_0x266c79[_0x10b227(0x106)](_0x10b227(0xf1)));return{'method':_0x10b227(0x128),'url':getServiceRegistryPath(),'body':{'file':_0x263b44[_0x10b227(0x108)],'hash':_0x263b44[_0x10b227(0xfb)],'kind':_0x263b44[_0x10b227(0x12d)],'ok':_0x263b44[_0x10b227(0x11d)]['ok'],'service':_0x263b44['normalizedManifest']?.[_0x10b227(0xf0)],'version':_0x263b44[_0x10b227(0x125)]?.['version'],'serviceCount':_0x263b44[_0x10b227(0x116)]['length'],'services':_0x263b44[_0x10b227(0x116)][_0x10b227(0x12f)](_0x265bff=>({'service':_0x265bff['normalizedManifest']?.[_0x10b227(0xf0)],'version':_0x265bff[_0x10b227(0x125)]?.['version'],'commandCount':_0x265bff[_0x10b227(0x125)]?.[_0x10b227(0xfc)]['length']??0x0,'errors':_0x265bff[_0x10b227(0x11d)][_0x10b227(0xe6)]})),'errors':_0x263b44[_0x10b227(0x11d)][_0x10b227(0xe6)],'commandCount':_0x263b44[_0x10b227(0x125)]?.['commands'][_0x10b227(0x131)]??0x0},'description':_0x10b227(0x107)};},async 'execute'(_0x304b55){const _0x5c9ed1=a41_0x40692f,_0x4f2e17=importServiceManifest(_0x304b55[_0x5c9ed1(0x106)](_0x5c9ed1(0xf1)));if(_0x4f2e17[_0x5c9ed1(0x123)][_0x5c9ed1(0x131)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4f2e17[_0x5c9ed1(0xf6)],'imported':_0x4f2e17[_0x5c9ed1(0xf2)],'updated':_0x4f2e17['updated'],'serviceCount':_0x4f2e17[_0x5c9ed1(0x11b)],'services':_0x4f2e17[_0x5c9ed1(0x123)]['map'](summarizeService)},'message':_0x5c9ed1(0x10e)+_0x4f2e17[_0x5c9ed1(0xf2)]+_0x5c9ed1(0xed)+_0x4f2e17['updated']+_0x5c9ed1(0x10b)};return{'ok':!![],'data':{'registryPath':_0x4f2e17[_0x5c9ed1(0xf6)],'replaced':_0x4f2e17[_0x5c9ed1(0xee)],'imported':_0x4f2e17[_0x5c9ed1(0xf2)],'updated':_0x4f2e17[_0x5c9ed1(0x115)],'serviceCount':_0x4f2e17[_0x5c9ed1(0x11b)],'service':summarizeService(_0x4f2e17['entry'])},'message':(_0x4f2e17[_0x5c9ed1(0xee)]?_0x5c9ed1(0x11f):_0x5c9ed1(0x103))+_0x5c9ed1(0x119)+_0x4f2e17['entry'][_0x5c9ed1(0xe9)]+'.'};}},{'service':'service','command':a41_0x40692f(0x130),'description':a41_0x40692f(0x111),'risk':a41_0x40692f(0x100),'confirmationDescription':a41_0x40692f(0xf9),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x35a971){const _0x46e318=a41_0x40692f,_0x29a920=getLocalServiceEntry(_0x35a971[_0x46e318(0x106)](_0x46e318(0xf0)));return{'method':_0x46e318(0x128),'url':_0x35a971[_0x46e318(0x106)]('file'),'body':{'service':_0x35a971[_0x46e318(0x106)](_0x46e318(0xf0)),'found':Boolean(_0x29a920),'version':_0x29a920?.[_0x46e318(0xec)],'source':_0x29a920?.[_0x46e318(0x124)]},'description':_0x46e318(0xfe)};},async 'execute'(_0x3ece1c){const _0x3f76af=a41_0x40692f,_0x5bbee5=exportServiceManifest(_0x3ece1c[_0x3f76af(0x106)]('service'),_0x3ece1c[_0x3f76af(0x106)]('file'));return{'ok':!![],'data':{'registryPath':_0x5bbee5['registryPath'],'file':_0x5bbee5[_0x3f76af(0x108)],'service':summarizeService(_0x5bbee5['entry'])},'message':_0x3f76af(0x118)+_0x5bbee5[_0x3f76af(0xf8)][_0x3f76af(0xe9)]+'.'};}},{'service':'service','command':a41_0x40692f(0x104),'description':a41_0x40692f(0x112),'risk':a41_0x40692f(0x12a),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x226dbe=a41_0x40692f,_0x3aaa57=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3aaa57[_0x226dbe(0x131)],'services':_0x3aaa57[_0x226dbe(0x12f)](summarizeService)}};}},{'service':'service','command':a41_0x40692f(0x10f),'description':a41_0x40692f(0xf3),'risk':'write','confirmationDescription':'将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3a4695){const _0xfafe71=a41_0x40692f,_0x194644=getLocalServiceEntry(_0x3a4695[_0xfafe71(0x106)](_0xfafe71(0xf0)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x3a4695[_0xfafe71(0x106)]('service'),'found':Boolean(_0x194644),'version':_0x194644?.[_0xfafe71(0xec)],'source':_0x194644?.[_0xfafe71(0x124)]},'description':_0xfafe71(0x121)};},async 'execute'(_0x3be13f){const _0x48eeaf=a41_0x40692f,_0x156cd9=removeServiceManifest(_0x3be13f['str'](_0x48eeaf(0xf0)));return{'ok':!![],'data':{'registryPath':_0x156cd9[_0x48eeaf(0xf6)],'serviceCount':_0x156cd9[_0x48eeaf(0x11b)],'service':summarizeService(_0x156cd9[_0x48eeaf(0xf8)])},'message':'Removed\x20service\x20'+_0x156cd9[_0x48eeaf(0xf8)][_0x48eeaf(0xe9)]+'.'};}},{'service':'service','command':a41_0x40692f(0x133),'description':a41_0x40692f(0x126),'risk':a41_0x40692f(0x12a),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x186cac){const _0x1395a7=a41_0x40692f,_0x25d816=getLocalServiceEntry(_0x186cac[_0x1395a7(0x106)](_0x1395a7(0xf0)));if(!_0x25d816)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x186cac[_0x1395a7(0x106)](_0x1395a7(0xf0))},'message':_0x1395a7(0x113)+_0x186cac[_0x1395a7(0x106)](_0x1395a7(0xf0))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x25d816),'manifest':_0x25d816[_0x1395a7(0xef)],'normalizedManifest':toPublicNormalizedServiceTree(_0x25d816['normalizedManifest'])}};}}];
|
|
1
|
+
const a41_0x28f2c1=a41_0x65a0;(function(_0x1aa4d8,_0x455fe1){const _0x5bbdf9=a41_0x65a0,_0x1e66bd=_0x1aa4d8();while(!![]){try{const _0x440b19=-parseInt(_0x5bbdf9(0x12a))/0x1*(parseInt(_0x5bbdf9(0x146))/0x2)+-parseInt(_0x5bbdf9(0x151))/0x3*(-parseInt(_0x5bbdf9(0x150))/0x4)+-parseInt(_0x5bbdf9(0x13d))/0x5*(-parseInt(_0x5bbdf9(0x10b))/0x6)+-parseInt(_0x5bbdf9(0x14b))/0x7*(parseInt(_0x5bbdf9(0x121))/0x8)+parseInt(_0x5bbdf9(0x129))/0x9*(parseInt(_0x5bbdf9(0x14d))/0xa)+-parseInt(_0x5bbdf9(0x13a))/0xb+-parseInt(_0x5bbdf9(0x138))/0xc;if(_0x440b19===_0x455fe1)break;else _0x1e66bd['push'](_0x1e66bd['shift']());}catch(_0x182bca){_0x1e66bd['push'](_0x1e66bd['shift']());}}}(a41_0x2574,0xbcb0e));function a41_0x2574(){const _0x345d18=['filePath','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','warnings','cliName','map','1716FWQiZD','lower\x20kebab-case\x20service\x20code','str','import','length','21938FamvEV','write','940LXspOy','detail','Imported\x20','100GpmSnS','176298MboGZB','type','service','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','replaced','8472DeLlpH','file','remove','flags','hash','Imported','\x20service(s),\x20updated\x20','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','Service\x20Tree\x20manifest\x20file\x20path','risk','Exported\x20service\x20','report','manifests','name','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','entries','errors','kind','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','read','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','从本地运行态注册表移除\x20Service\x20Tree\x20清单','728KKmgru','entry','string','target','normalizedManifest','imported','registry','commands','99738RxyiPj','116YVRzIK','Service\x20manifest\x20validation\x20passed.','registryIndex','registryPath','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','importedAt','Removed\x20service\x20','validate','export','updated','serviceCode','serviceCount','version','Local\x20service\x20code,\x20for\x20example\x20crm','19933416LjMETv','WRITE','7874240ztgtWZ','source','cliPath','3625SpPqfY','Local\x20service\x20not\x20found:\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','将\x20Service\x20Tree\x20清单导入本地运行态注册表'];a41_0x2574=function(){return _0x345d18;};return a41_0x2574();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a41_0x65a0(_0x1d3d59,_0x1a2bf6){_0x1d3d59=_0x1d3d59-0x109;const _0x2574d1=a41_0x2574();let _0x65a00a=_0x2574d1[_0x1d3d59];return _0x65a00a;}const FILE_FLAG={'name':a41_0x28f2c1(0x10c),'type':a41_0x28f2c1(0x123),'required':!![],'description':a41_0x28f2c1(0x113)},SERVICE_FLAG={'name':a41_0x28f2c1(0x153),'type':a41_0x28f2c1(0x123),'required':!![],'description':a41_0x28f2c1(0x137),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x28f2c1(0x147)}};function summarizeService(_0xb24c58){const _0x3e3d0d=a41_0x28f2c1;return{'serviceCode':_0xb24c58[_0x3e3d0d(0x134)],'name':_0xb24c58[_0x3e3d0d(0x125)][_0x3e3d0d(0x153)][_0x3e3d0d(0x118)],'version':_0xb24c58[_0x3e3d0d(0x136)],'importedAt':_0xb24c58[_0x3e3d0d(0x12f)],'source':_0xb24c58['source'],'commandCount':_0xb24c58[_0x3e3d0d(0x125)][_0x3e3d0d(0x128)][_0x3e3d0d(0x14a)],'commands':_0xb24c58[_0x3e3d0d(0x125)][_0x3e3d0d(0x128)][_0x3e3d0d(0x145)](_0x261ad8=>({'path':_0x261ad8['cliPath'],'description':_0x261ad8['description'],'risk':_0x261ad8['risk'],'target':toPublicServiceTreeTarget(_0x261ad8[_0x3e3d0d(0x124)]),'flags':_0x261ad8[_0x3e3d0d(0x10e)][_0x3e3d0d(0x145)](_0x60a351=>({'name':_0x60a351[_0x3e3d0d(0x118)],'cliName':_0x60a351[_0x3e3d0d(0x144)],'type':_0x60a351[_0x3e3d0d(0x152)],'required':_0x60a351['required']===!![]}))}))};}function summarizeLoadedManifest(_0x4741a0){const _0x217186=a41_0x28f2c1;return{'service':_0x4741a0[_0x217186(0x125)]?.[_0x217186(0x153)],'version':_0x4741a0[_0x217186(0x125)]?.['version'],'commandCount':_0x4741a0['normalizedManifest']?.[_0x217186(0x128)][_0x217186(0x14a)]??0x0,'commands':_0x4741a0['normalizedManifest']?.[_0x217186(0x128)][_0x217186(0x145)](_0xcb6bc4=>({'path':_0xcb6bc4[_0x217186(0x13c)],'risk':_0xcb6bc4[_0x217186(0x114)],'target':toPublicServiceTreeTarget(_0xcb6bc4[_0x217186(0x124)])}))??[],'registryIndex':_0x4741a0[_0x217186(0x12c)],'registryServiceCode':_0x4741a0['registryServiceCode'],'errors':_0x4741a0[_0x217186(0x116)][_0x217186(0x11b)],'warnings':_0x4741a0[_0x217186(0x116)][_0x217186(0x143)]};}export const serviceDefinitions=[{'service':'service','command':a41_0x28f2c1(0x131),'description':a41_0x28f2c1(0x12e),'risk':a41_0x28f2c1(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3e8595){const _0x349437=a41_0x28f2c1,_0x5f3505=loadServiceManifestFromFile(_0x3e8595[_0x349437(0x148)](_0x349437(0x10c)));if(!_0x5f3505[_0x349437(0x116)]['ok'])return{'ok':![],'data':{'file':_0x5f3505['filePath'],'hash':_0x5f3505[_0x349437(0x10f)],'kind':_0x5f3505[_0x349437(0x11c)],'serviceCount':_0x5f3505['manifests'][_0x349437(0x14a)],'services':_0x5f3505['manifests'][_0x349437(0x145)](summarizeLoadedManifest),'errors':_0x5f3505[_0x349437(0x116)][_0x349437(0x11b)],'warnings':_0x5f3505[_0x349437(0x116)][_0x349437(0x143)]},'message':formatValidationFailure(_0x5f3505[_0x349437(0x116)])};if(_0x5f3505['kind']===_0x349437(0x127)||_0x5f3505[_0x349437(0x117)][_0x349437(0x14a)]!==0x1)return{'ok':!![],'data':{'file':_0x5f3505[_0x349437(0x141)],'hash':_0x5f3505[_0x349437(0x10f)],'kind':_0x5f3505['kind'],'serviceCount':_0x5f3505[_0x349437(0x117)][_0x349437(0x14a)],'commandCount':_0x5f3505[_0x349437(0x117)]['reduce']((_0x4266c7,_0x16193f)=>_0x4266c7+(_0x16193f['normalizedManifest']?.['commands'][_0x349437(0x14a)]??0x0),0x0),'services':_0x5f3505[_0x349437(0x117)][_0x349437(0x145)](summarizeLoadedManifest),'warnings':_0x5f3505[_0x349437(0x116)][_0x349437(0x143)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x5f3505['filePath'],'hash':_0x5f3505[_0x349437(0x10f)],'kind':_0x5f3505[_0x349437(0x11c)],'service':_0x5f3505[_0x349437(0x125)]?.[_0x349437(0x153)],'version':_0x5f3505[_0x349437(0x125)]?.['version'],'commandCount':_0x5f3505['normalizedManifest']?.[_0x349437(0x128)][_0x349437(0x14a)]??0x0,'commands':_0x5f3505[_0x349437(0x125)]?.[_0x349437(0x128)][_0x349437(0x145)](_0x2db1e1=>({'path':_0x2db1e1['cliPath'],'risk':_0x2db1e1['risk'],'target':toPublicServiceTreeTarget(_0x2db1e1[_0x349437(0x124)])})),'warnings':_0x5f3505[_0x349437(0x116)][_0x349437(0x143)]},'message':_0x349437(0x12b)};}},{'service':a41_0x28f2c1(0x153),'command':a41_0x28f2c1(0x149),'description':a41_0x28f2c1(0x140),'risk':a41_0x28f2c1(0x14c),'confirmationDescription':a41_0x28f2c1(0x119),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x35723f){const _0x5bcec6=a41_0x28f2c1,_0x5e6ca7=loadServiceManifestFromFile(_0x35723f['str'](_0x5bcec6(0x10c)));return{'method':_0x5bcec6(0x139),'url':getServiceRegistryPath(),'body':{'file':_0x5e6ca7[_0x5bcec6(0x141)],'hash':_0x5e6ca7[_0x5bcec6(0x10f)],'kind':_0x5e6ca7[_0x5bcec6(0x11c)],'ok':_0x5e6ca7[_0x5bcec6(0x116)]['ok'],'service':_0x5e6ca7[_0x5bcec6(0x125)]?.[_0x5bcec6(0x153)],'version':_0x5e6ca7[_0x5bcec6(0x125)]?.['version'],'serviceCount':_0x5e6ca7[_0x5bcec6(0x117)][_0x5bcec6(0x14a)],'services':_0x5e6ca7[_0x5bcec6(0x117)][_0x5bcec6(0x145)](_0x246ce1=>({'service':_0x246ce1[_0x5bcec6(0x125)]?.[_0x5bcec6(0x153)],'version':_0x246ce1['normalizedManifest']?.[_0x5bcec6(0x136)],'commandCount':_0x246ce1[_0x5bcec6(0x125)]?.[_0x5bcec6(0x128)][_0x5bcec6(0x14a)]??0x0,'errors':_0x246ce1[_0x5bcec6(0x116)][_0x5bcec6(0x11b)]})),'errors':_0x5e6ca7[_0x5bcec6(0x116)][_0x5bcec6(0x11b)],'commandCount':_0x5e6ca7[_0x5bcec6(0x125)]?.[_0x5bcec6(0x128)][_0x5bcec6(0x14a)]??0x0},'description':_0x5bcec6(0x11f)};},async 'execute'(_0x480184){const _0x2c18c7=a41_0x28f2c1,_0x4dbc9d=importServiceManifest(_0x480184['str'](_0x2c18c7(0x10c)));if(_0x4dbc9d['entries'][_0x2c18c7(0x14a)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4dbc9d['registryPath'],'imported':_0x4dbc9d['imported'],'updated':_0x4dbc9d[_0x2c18c7(0x133)],'serviceCount':_0x4dbc9d[_0x2c18c7(0x135)],'services':_0x4dbc9d[_0x2c18c7(0x11a)][_0x2c18c7(0x145)](summarizeService)},'message':_0x2c18c7(0x14f)+_0x4dbc9d['imported']+_0x2c18c7(0x111)+_0x4dbc9d[_0x2c18c7(0x133)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x4dbc9d[_0x2c18c7(0x12d)],'replaced':_0x4dbc9d[_0x2c18c7(0x10a)],'imported':_0x4dbc9d[_0x2c18c7(0x126)],'updated':_0x4dbc9d[_0x2c18c7(0x133)],'serviceCount':_0x4dbc9d[_0x2c18c7(0x135)],'service':summarizeService(_0x4dbc9d[_0x2c18c7(0x122)])},'message':(_0x4dbc9d['replaced']?'Updated':_0x2c18c7(0x110))+'\x20service\x20'+_0x4dbc9d['entry'][_0x2c18c7(0x134)]+'.'};}},{'service':'service','command':a41_0x28f2c1(0x132),'description':a41_0x28f2c1(0x112),'risk':a41_0x28f2c1(0x14c),'confirmationDescription':a41_0x28f2c1(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x451da8){const _0x16fafd=a41_0x28f2c1,_0x1e7060=getLocalServiceEntry(_0x451da8['str']('service'));return{'method':_0x16fafd(0x139),'url':_0x451da8[_0x16fafd(0x148)]('file'),'body':{'service':_0x451da8[_0x16fafd(0x148)](_0x16fafd(0x153)),'found':Boolean(_0x1e7060),'version':_0x1e7060?.['version'],'source':_0x1e7060?.[_0x16fafd(0x13b)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x4178e4){const _0x3adf3c=a41_0x28f2c1,_0x318dcd=exportServiceManifest(_0x4178e4[_0x3adf3c(0x148)]('service'),_0x4178e4[_0x3adf3c(0x148)](_0x3adf3c(0x10c)));return{'ok':!![],'data':{'registryPath':_0x318dcd[_0x3adf3c(0x12d)],'file':_0x318dcd[_0x3adf3c(0x141)],'service':summarizeService(_0x318dcd[_0x3adf3c(0x122)])},'message':_0x3adf3c(0x115)+_0x318dcd[_0x3adf3c(0x122)][_0x3adf3c(0x134)]+'.'};}},{'service':'service','command':'list','description':a41_0x28f2c1(0x13f),'risk':a41_0x28f2c1(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x2742c9=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2742c9['length'],'services':_0x2742c9['map'](summarizeService)}};}},{'service':a41_0x28f2c1(0x153),'command':a41_0x28f2c1(0x10d),'description':a41_0x28f2c1(0x120),'risk':a41_0x28f2c1(0x14c),'confirmationDescription':a41_0x28f2c1(0x11d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x2544ba){const _0x1472b9=a41_0x28f2c1,_0x25f679=getLocalServiceEntry(_0x2544ba['str'](_0x1472b9(0x153)));return{'method':_0x1472b9(0x139),'url':getServiceRegistryPath(),'body':{'service':_0x2544ba[_0x1472b9(0x148)]('service'),'found':Boolean(_0x25f679),'version':_0x25f679?.[_0x1472b9(0x136)],'source':_0x25f679?.[_0x1472b9(0x13b)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xea61a7){const _0x37ada6=a41_0x28f2c1,_0x4b9509=removeServiceManifest(_0xea61a7[_0x37ada6(0x148)](_0x37ada6(0x153)));return{'ok':!![],'data':{'registryPath':_0x4b9509[_0x37ada6(0x12d)],'serviceCount':_0x4b9509[_0x37ada6(0x135)],'service':summarizeService(_0x4b9509[_0x37ada6(0x122)])},'message':_0x37ada6(0x130)+_0x4b9509[_0x37ada6(0x122)][_0x37ada6(0x134)]+'.'};}},{'service':a41_0x28f2c1(0x153),'command':a41_0x28f2c1(0x14e),'description':a41_0x28f2c1(0x109),'risk':a41_0x28f2c1(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x23cc6d){const _0x5cdb0e=a41_0x28f2c1,_0x142b89=getLocalServiceEntry(_0x23cc6d[_0x5cdb0e(0x148)](_0x5cdb0e(0x153)));if(!_0x142b89)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x23cc6d['str'](_0x5cdb0e(0x153))},'message':_0x5cdb0e(0x13e)+_0x23cc6d[_0x5cdb0e(0x148)](_0x5cdb0e(0x153))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x142b89),'manifest':_0x142b89['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x142b89[_0x5cdb0e(0x125)])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a42_0x207e09=a42_0x44cd;(function(_0x4fdd01,_0x4b6ff8){const _0x170239=a42_0x44cd,_0x525ad5=_0x4fdd01();while(!![]){try{const _0x12a353=-parseInt(_0x170239(0x1f4))/0x1+-parseInt(_0x170239(0x1f9))/0x2+-parseInt(_0x170239(0x1eb))/0x3*(parseInt(_0x170239(0x1fa))/0x4)+parseInt(_0x170239(0x1c6))/0x5*(-parseInt(_0x170239(0x1b5))/0x6)+parseInt(_0x170239(0x1da))/0x7+parseInt(_0x170239(0x1df))/0x8*(-parseInt(_0x170239(0x1f6))/0x9)+parseInt(_0x170239(0x1dd))/0xa*(parseInt(_0x170239(0x1ed))/0xb);if(_0x12a353===_0x4b6ff8)break;else _0x525ad5['push'](_0x525ad5['shift']());}catch(_0x1712cd){_0x525ad5['push'](_0x525ad5['shift']());}}}(a42_0x4592,0x72e10));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x207e09(0x1fb);export function getServiceRegistryPath(_0x3409a2={}){const _0x4966f4=a42_0x207e09;return resolve(_0x3409a2['homeDir']??homedir(),PRODUCT_CONFIG[_0x4966f4(0x1e4)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x556846={}){const _0x160d48=a42_0x207e09,_0x4ecb0f=getServiceRegistryPath(_0x556846);if(!existsSync(_0x4ecb0f))return emptyServiceRegistry();try{const _0x321a82=readFileSync(_0x4ecb0f,_0x160d48(0x1f3));if(!_0x321a82[_0x160d48(0x1f1)]())return emptyServiceRegistry();const _0x5d58b5=JSON[_0x160d48(0x1ca)](_0x321a82);if(_0x5d58b5[_0x160d48(0x1ec)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x160d48(0x1cc)](_0x160d48(0x1d2)+String(_0x5d58b5[_0x160d48(0x1ec)]),_0x160d48(0x1d1)+_0x4ecb0f+'.');if(!Array['isArray'](_0x5d58b5[_0x160d48(0x1dc)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5d58b5[_0x160d48(0x1b2)],'services':_0x5d58b5[_0x160d48(0x1dc)]};}catch(_0x17a3d0){if(_0x17a3d0 instanceof Error&&_0x17a3d0['name']===_0x160d48(0x1f8))throw _0x17a3d0;throw CliErrors[_0x160d48(0x1cc)](_0x160d48(0x1d7)+_0x4ecb0f,_0x160d48(0x1e9));}}export function writeServiceRegistry(_0x535288,_0x573245={}){const _0x1e3be3=a42_0x207e09,_0x15ce75=getServiceRegistryPath(_0x573245),_0x15f85b=dirname(_0x15ce75);!existsSync(_0x15f85b)&&mkdirSync(_0x15f85b,{'recursive':!![]});const _0x228bf9=_0x15ce75+'.tmp';try{writeFileSync(_0x228bf9,JSON[_0x1e3be3(0x1bd)](_0x535288,null,0x2)+'\x0a',{'encoding':_0x1e3be3(0x1f3),'mode':0x180}),renameSync(_0x228bf9,_0x15ce75);}catch(_0x2c28ea){try{unlinkSync(_0x228bf9);}catch{}if(_0x2c28ea?.['code']===_0x1e3be3(0x1d0))throw CliErrors[_0x1e3be3(0x1cc)](_0x1e3be3(0x1c4)+_0x15ce75);throw _0x2c28ea;}return _0x15ce75;}export function loadServiceManifestFromFile(_0x120a65){const _0x52a667=a42_0x207e09,_0x14f374=resolve(_0x120a65);if(!existsSync(_0x14f374))throw CliErrors[_0x52a667(0x1cc)](_0x52a667(0x1ee)+_0x120a65);let _0x317169;const _0x1b6a41=readFileSync(_0x14f374,_0x52a667(0x1f3));try{_0x317169=JSON['parse'](_0x1b6a41);}catch{throw CliErrors['validation'](_0x52a667(0x1b8)+_0x120a65,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x14c6a4=sha256(_0x1b6a41),_0x5de6e8=extractLoadedServiceManifests(_0x317169,_0x14c6a4),_0x3a22e1=aggregateValidationReports(_0x5de6e8),_0x5818b5=_0x5de6e8[0x0];return{'filePath':_0x14f374,'hash':_0x14c6a4,'kind':isServiceRegistryLike(_0x317169)?_0x52a667(0x1b6):_0x52a667(0x1bf),'manifest':_0x5818b5?.[_0x52a667(0x1bf)]??_0x317169,'report':_0x3a22e1,'normalizedManifest':_0x5de6e8['length']===0x1?_0x5818b5?.[_0x52a667(0x1ea)]:undefined,'manifests':_0x5de6e8};}export function importServiceManifest(_0x1f151f,_0x36eba9={}){const _0x23d2a1=a42_0x207e09,_0x2f1efe=loadServiceManifestFromFile(_0x1f151f);if(!_0x2f1efe[_0x23d2a1(0x1cf)]['ok'])throw CliErrors[_0x23d2a1(0x1cc)](formatValidationFailure(_0x2f1efe[_0x23d2a1(0x1cf)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x2f1efe[_0x23d2a1(0x1d4)][_0x23d2a1(0x1e8)]===0x0)throw CliErrors[_0x23d2a1(0x1cc)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x23d2a1(0x1c8));const _0x319595=readServiceRegistry(_0x36eba9),_0x1ea20a=(_0x36eba9[_0x23d2a1(0x1fd)]??(()=>new Date()))()[_0x23d2a1(0x1e7)](),_0x27dbf0=[];let _0x2887ed=0x0,_0x8d5169=0x0;for(const _0x4ac90e of _0x2f1efe[_0x23d2a1(0x1d4)]){if(!_0x4ac90e['normalizedManifest'])continue;const _0x3fbbb5=_0x4ac90e[_0x23d2a1(0x1ea)]['service']['code'],_0x2501bf={'serviceCode':_0x3fbbb5,'version':_0x4ac90e['normalizedManifest'][_0x23d2a1(0x1d5)],'importedAt':_0x1ea20a,'source':{'type':_0x23d2a1(0x1b1),'path':_0x2f1efe['filePath'],'hash':_0x4ac90e[_0x23d2a1(0x1f0)]},'manifest':_0x4ac90e[_0x23d2a1(0x1bf)],'normalizedManifest':_0x4ac90e[_0x23d2a1(0x1ea)]},_0x2d15e8=_0x319595[_0x23d2a1(0x1dc)][_0x23d2a1(0x1ff)](_0x216851=>_0x216851['serviceCode']===_0x3fbbb5);_0x2d15e8>=0x0?(_0x319595[_0x23d2a1(0x1dc)][_0x2d15e8]=_0x2501bf,_0x8d5169++):(_0x319595[_0x23d2a1(0x1dc)][_0x23d2a1(0x1f2)](_0x2501bf),_0x2887ed++),_0x27dbf0[_0x23d2a1(0x1f2)](_0x2501bf);}_0x319595[_0x23d2a1(0x1dc)][_0x23d2a1(0x1ac)]((_0x803430,_0x2f6999)=>_0x803430[_0x23d2a1(0x1ba)][_0x23d2a1(0x1ef)](_0x2f6999[_0x23d2a1(0x1ba)])),_0x319595[_0x23d2a1(0x1b2)]=_0x1ea20a;const _0xe11dab=writeServiceRegistry(_0x319595,_0x36eba9);return{'registryPath':_0xe11dab,'entry':_0x27dbf0[0x0],'replaced':_0x27dbf0['length']===0x1?_0x8d5169===0x1:_0x8d5169>0x0,'entries':_0x27dbf0,'imported':_0x2887ed,'updated':_0x8d5169,'serviceCount':_0x319595[_0x23d2a1(0x1dc)]['length']};}export function exportServiceManifest(_0x17f43f,_0x75f4c2,_0x537efd={}){const _0x3afb3d=a42_0x207e09,_0x2c9e36=getServiceRegistryPath(_0x537efd),_0x33a2cc=getLocalServiceEntry(_0x17f43f,_0x537efd);if(!_0x33a2cc)throw CliErrors[_0x3afb3d(0x1cc)](_0x3afb3d(0x1d9)+_0x17f43f,_0x3afb3d(0x202));const _0x32c64a=resolve(_0x75f4c2),_0x533df9=dirname(_0x32c64a);return!existsSync(_0x533df9)&&mkdirSync(_0x533df9,{'recursive':!![]}),writeFileSync(_0x32c64a,JSON['stringify'](_0x33a2cc[_0x3afb3d(0x1bf)],null,0x2)+'\x0a',{'encoding':_0x3afb3d(0x1f3),'mode':0x180}),{'registryPath':_0x2c9e36,'filePath':_0x32c64a,'entry':_0x33a2cc};}export function removeServiceManifest(_0x43a529,_0x4366f5={}){const _0xe67592=a42_0x207e09,_0x5733e1=readServiceRegistry(_0x4366f5),_0x2bf726=_0x43a529[_0xe67592(0x1f1)](),_0x716536=_0x5733e1['services'][_0xe67592(0x1ff)](_0x5439d1=>_0x5439d1[_0xe67592(0x1ba)]===_0x2bf726);if(_0x716536<0x0)throw CliErrors[_0xe67592(0x1cc)](_0xe67592(0x1d9)+_0x2bf726,_0xe67592(0x202));const [_0x7f8424]=_0x5733e1[_0xe67592(0x1dc)][_0xe67592(0x1be)](_0x716536,0x1),_0x165b06=(_0x4366f5[_0xe67592(0x1fd)]??(()=>new Date()))()['toISOString']();_0x5733e1[_0xe67592(0x1b2)]=_0x165b06;const _0x53782f=writeServiceRegistry(_0x5733e1,_0x4366f5);return{'registryPath':_0x53782f,'entry':_0x7f8424,'serviceCount':_0x5733e1[_0xe67592(0x1dc)][_0xe67592(0x1e8)]};}export function listLocalServices(_0xbe1730={}){const _0x34f0fd=a42_0x207e09;return readServiceRegistry(_0xbe1730)[_0x34f0fd(0x1dc)];}export function getLocalServiceEntry(_0x365058,_0x4c30fb={}){const _0x1e86c0=a42_0x207e09;return readServiceRegistry(_0x4c30fb)[_0x1e86c0(0x1dc)][_0x1e86c0(0x1db)](_0x1e524b=>_0x1e524b[_0x1e86c0(0x1ba)]===_0x365058['trim']());}export function listLocalServiceTrees(_0x3985b2={}){const _0x349f27=a42_0x207e09;return readServiceRegistry(_0x3985b2)[_0x349f27(0x1dc)]['map'](_0x5119e1=>_0x5119e1['normalizedManifest']);}export function inspectServiceRegistry(_0x16dd7a={}){const _0x2d4e28=a42_0x207e09,_0x306430=getServiceRegistryPath(_0x16dd7a);if(!existsSync(_0x306430))return emptyServiceRegistryInspection(_0x306430,'missing',![]);try{const _0x26dc92=readFileSync(_0x306430,_0x2d4e28(0x1f3));if(!_0x26dc92[_0x2d4e28(0x1f1)]())return emptyServiceRegistryInspection(_0x306430,'empty',!![]);const _0x159e58=JSON['parse'](_0x26dc92);if(_0x159e58['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x306430,_0x2d4e28(0x1ae),!![]),'schemaVersion':_0x159e58['schemaVersion'],'message':_0x2d4e28(0x1cd)+String(_0x159e58[_0x2d4e28(0x1ec)])};if(!Array[_0x2d4e28(0x1ad)](_0x159e58[_0x2d4e28(0x1dc)]))return{...emptyServiceRegistryInspection(_0x306430,_0x2d4e28(0x1ae),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x159e58[_0x2d4e28(0x1b2)],'message':_0x2d4e28(0x1f5)};const _0x35317f=_0x159e58[_0x2d4e28(0x1dc)][_0x2d4e28(0x1b4)](summarizeLocalServiceEntry);return{'registryPath':_0x306430,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x159e58[_0x2d4e28(0x1b2)],'serviceCount':_0x35317f[_0x2d4e28(0x1e8)],'commandCount':_0x35317f[_0x2d4e28(0x1ce)]((_0x2cbe75,_0x5121a2)=>_0x2cbe75+_0x5121a2[_0x2d4e28(0x1b0)],0x0),'services':_0x35317f};}catch(_0x409929){return{...emptyServiceRegistryInspection(_0x306430,_0x2d4e28(0x1ae),!![]),'message':_0x409929 instanceof Error?_0x409929[_0x2d4e28(0x1fe)]:String(_0x409929)};}}export function formatValidationFailure(_0x2d24ad){const _0x3a40e9=a42_0x207e09,_0x4659ea=_0x2d24ad[_0x3a40e9(0x1af)][_0x3a40e9(0x1b4)](_0xefa655=>_0xefa655[_0x3a40e9(0x1c2)]+':\x20'+_0xefa655[_0x3a40e9(0x1fe)]);return _0x3a40e9(0x201)+_0x4659ea[_0x3a40e9(0x1e0)]('\x0a');}function extractLoadedServiceManifests(_0xcf1e7a,_0x3bc4fe){const _0x35a95f=a42_0x207e09;if(!isServiceRegistryLike(_0xcf1e7a)){const _0x3db1de=_0xcf1e7a,{manifest:_0xd05778,errors:_0x1eb572}=adaptServiceTreeManifestForLegacyFramework(_0x3db1de),_0x32b797=validateServiceTreeManifest(_0xd05778),_0x22e58c=mergeValidationErrors(_0x32b797,_0x1eb572);return[{'manifest':_0x3db1de,'report':_0x22e58c,'normalizedManifest':_0x22e58c['ok']?normalizeServiceTreeManifest(_0xd05778):undefined,'sourceHash':_0x3bc4fe}];}return _0xcf1e7a[_0x35a95f(0x1dc)][_0x35a95f(0x1b4)]((_0x49b856,_0x24a3e9)=>{const _0x349f3d=_0x35a95f,_0x228df6=isObjectRecord(_0x49b856)?_0x49b856[_0x349f3d(0x1bf)]:undefined,{manifest:_0x10a396,errors:_0x9044d3}=adaptServiceTreeManifestForLegacyFramework(_0x228df6),_0x300d2d=validateServiceTreeManifest(_0x10a396),_0x5dca37=mergeValidationErrors(_0x300d2d,_0x9044d3),_0x1910c0=isObjectRecord(_0x49b856)&&typeof _0x49b856[_0x349f3d(0x1ba)]==='string'?_0x49b856[_0x349f3d(0x1ba)]:undefined;return{'manifest':_0x228df6,'report':_0x5dca37,'normalizedManifest':_0x5dca37['ok']?normalizeServiceTreeManifest(_0x10a396):undefined,'sourceHash':sha256(JSON[_0x349f3d(0x1bd)](_0x228df6,null,0x2)+'\x0a'),'registryIndex':_0x24a3e9,'registryServiceCode':_0x1910c0};});}function a42_0x44cd(_0x3c5b6d,_0x35deee){_0x3c5b6d=_0x3c5b6d-0x1ac;const _0x45929d=a42_0x4592();let _0x44cdc7=_0x45929d[_0x3c5b6d];return _0x44cdc7;}function mergeValidationErrors(_0x2476ff,_0x454d9e){const _0x2c475d=a42_0x207e09,_0x498a25=_0x2476ff[_0x2c475d(0x1af)][_0x2c475d(0x1b4)](_0x1efe23=>_0x1efe23[_0x2c475d(0x1fe)]===_0x2c475d(0x1de)?{..._0x1efe23,'message':'bff\x20target\x20requires\x20functionName.'}:_0x1efe23),_0x5456a7=[..._0x454d9e,..._0x498a25];return{'ok':_0x5456a7[_0x2c475d(0x1e8)]===0x0,'errors':_0x5456a7,'warnings':_0x2476ff[_0x2c475d(0x200)]};}function a42_0x4592(){const _0x2705e8=['8gNDJvj','service.json','].manifest.','now','message','findIndex','warnings','Service\x20manifest\x20validation\x20failed:\x0a','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','sort','isArray','invalid','errors','commandCount','file','updatedAt','hex','map','342rcrthb','registry','kind','Invalid\x20service\x20manifest\x20JSON:\x20','].manifest','serviceCode','digest','registryIndex','stringify','splice','manifest','commands','importedAt','path','service','Cannot\x20write\x20service\x20registry:\x20','update','29835FmfNzX','target','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','flatMap','parse','description','validation','Unsupported\x20schemaVersion:\x20','reduce','report','ENOENT','Remove\x20or\x20migrate\x20','Unsupported\x20service\x20registry\x20schemaVersion:\x20','command','manifests','version','name','Invalid\x20service\x20registry\x20JSON:\x20','cliPath','Local\x20service\x20not\x20found:\x20','267519ExipbE','find','services','2990fMcbEc','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','3758008GBIsbN','join','sha256','risk','$.services[','homeDirName','slice','startsWith','toISOString','length','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','normalizedManifest','403617JWNVSx','schemaVersion','112651EjwlVB','Service\x20manifest\x20file\x20not\x20found:\x20','localeCompare','sourceHash','trim','push','utf8','725830LTsBsM','services\x20must\x20be\x20an\x20array','9RdcJCF','source','CliError','1649908juKKVW'];a42_0x4592=function(){return _0x2705e8;};return a42_0x4592();}function aggregateValidationReports(_0x37026a){const _0x503aef=a42_0x207e09,_0x27cc8e=_0x37026a[_0x503aef(0x1c9)](_0x3445c4=>_0x3445c4[_0x503aef(0x1bc)]===undefined?_0x3445c4[_0x503aef(0x1cf)][_0x503aef(0x1af)]:_0x3445c4[_0x503aef(0x1cf)][_0x503aef(0x1af)][_0x503aef(0x1b4)](_0x37ad26=>({..._0x37ad26,'path':prefixRegistryIssuePath(_0x3445c4[_0x503aef(0x1bc)],_0x37ad26[_0x503aef(0x1c2)])}))),_0x40b9a8=_0x37026a[_0x503aef(0x1c9)](_0x58a81e=>_0x58a81e[_0x503aef(0x1bc)]===undefined?_0x58a81e[_0x503aef(0x1cf)][_0x503aef(0x200)]:_0x58a81e[_0x503aef(0x1cf)][_0x503aef(0x200)][_0x503aef(0x1b4)](_0x1861d4=>({..._0x1861d4,'path':prefixRegistryIssuePath(_0x58a81e[_0x503aef(0x1bc)],_0x1861d4['path'])})));return{'ok':_0x27cc8e[_0x503aef(0x1e8)]===0x0,'errors':_0x27cc8e,'warnings':_0x40b9a8};}function prefixRegistryIssuePath(_0x374a2e,_0x154899){const _0x52a275=a42_0x207e09;if(_0x154899==='$')return _0x52a275(0x1e3)+_0x374a2e+'].manifest';if(_0x154899[_0x52a275(0x1e6)]('$.'))return _0x52a275(0x1e3)+_0x374a2e+'].manifest'+_0x154899[_0x52a275(0x1e5)](0x1);if(_0x154899[_0x52a275(0x1e6)]('$['))return _0x52a275(0x1e3)+_0x374a2e+_0x52a275(0x1b9)+_0x154899['slice'](0x1);return _0x52a275(0x1e3)+_0x374a2e+_0x52a275(0x1fc)+_0x154899;}function isServiceRegistryLike(_0x408970){const _0x5d9bdd=a42_0x207e09;return isObjectRecord(_0x408970)&&_0x408970[_0x5d9bdd(0x1ec)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5d9bdd(0x1ad)](_0x408970[_0x5d9bdd(0x1dc)]);}function isObjectRecord(_0x362038){const _0xbad60f=a42_0x207e09;return Boolean(_0x362038)&&typeof _0x362038==='object'&&!Array[_0xbad60f(0x1ad)](_0x362038);}function emptyServiceRegistryInspection(_0x5db121,_0x339f3b,_0x100e3f){return{'registryPath':_0x5db121,'exists':_0x100e3f,'status':_0x339f3b,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x4512d4){const _0x446b08=a42_0x207e09,_0x1cfe44=_0x4512d4[_0x446b08(0x1ea)],_0xfef81a=_0x1cfe44[_0x446b08(0x1c0)][_0x446b08(0x1b4)](_0x484f6c=>({'path':_0x484f6c[_0x446b08(0x1d8)],'description':_0x484f6c[_0x446b08(0x1cb)],'risk':_0x484f6c[_0x446b08(0x1e2)],'targetKind':_0x484f6c[_0x446b08(0x1c7)][_0x446b08(0x1b7)],'targetCommand':_0x484f6c['target'][_0x446b08(0x1d3)]}));return{'serviceCode':_0x4512d4[_0x446b08(0x1ba)],'name':_0x1cfe44[_0x446b08(0x1c3)][_0x446b08(0x1d6)],'description':_0x1cfe44[_0x446b08(0x1c3)][_0x446b08(0x1cb)],'version':_0x4512d4['version'],'importedAt':_0x4512d4[_0x446b08(0x1c1)],'source':_0x4512d4[_0x446b08(0x1f7)],'commandCount':_0xfef81a[_0x446b08(0x1e8)],'commands':_0xfef81a};}function sha256(_0xb9fcdb){const _0x4a2ea5=a42_0x207e09;return createHash(_0x4a2ea5(0x1e1))[_0x4a2ea5(0x1c5)](_0xb9fcdb)[_0x4a2ea5(0x1bb)](_0x4a2ea5(0x1b3));}
|
|
1
|
+
const a42_0x396d6c=a42_0x14e6;(function(_0x4170af,_0x2c1618){const _0x4fc1a9=a42_0x14e6,_0x1b82f2=_0x4170af();while(!![]){try{const _0x20da6f=-parseInt(_0x4fc1a9(0x1b9))/0x1*(parseInt(_0x4fc1a9(0x1e9))/0x2)+-parseInt(_0x4fc1a9(0x1bf))/0x3+parseInt(_0x4fc1a9(0x1ad))/0x4*(-parseInt(_0x4fc1a9(0x1b4))/0x5)+parseInt(_0x4fc1a9(0x1bc))/0x6*(-parseInt(_0x4fc1a9(0x1c5))/0x7)+-parseInt(_0x4fc1a9(0x1ab))/0x8*(-parseInt(_0x4fc1a9(0x1f0))/0x9)+-parseInt(_0x4fc1a9(0x1bb))/0xa*(-parseInt(_0x4fc1a9(0x1a3))/0xb)+-parseInt(_0x4fc1a9(0x1d5))/0xc*(-parseInt(_0x4fc1a9(0x1c8))/0xd);if(_0x20da6f===_0x2c1618)break;else _0x1b82f2['push'](_0x1b82f2['shift']());}catch(_0x5c500c){_0x1b82f2['push'](_0x1b82f2['shift']());}}}(a42_0xb23e,0xc045a));import{createHash}from'node:crypto';function a42_0x14e6(_0x1eb823,_0x2d9c9f){_0x1eb823=_0x1eb823-0x19f;const _0xb23ef=a42_0xb23e();let _0x14e67d=_0xb23ef[_0x1eb823];return _0x14e67d;}import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x396d6c(0x1a8);export function getServiceRegistryPath(_0x5b95a2={}){const _0x1e9764=a42_0x396d6c;return resolve(_0x5b95a2['homeDir']??homedir(),PRODUCT_CONFIG[_0x1e9764(0x1c4)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x2259ab={}){const _0x2c5eda=a42_0x396d6c,_0x155973=getServiceRegistryPath(_0x2259ab);if(!existsSync(_0x155973))return emptyServiceRegistry();try{const _0x3eb660=readFileSync(_0x155973,_0x2c5eda(0x1c7));if(!_0x3eb660[_0x2c5eda(0x1df)]())return emptyServiceRegistry();const _0x486222=JSON[_0x2c5eda(0x1d7)](_0x3eb660);if(_0x486222[_0x2c5eda(0x1f1)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x2c5eda(0x1d4)+String(_0x486222['schemaVersion']),_0x2c5eda(0x1bd)+_0x155973+'.');if(!Array[_0x2c5eda(0x1b1)](_0x486222[_0x2c5eda(0x1ea)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x486222[_0x2c5eda(0x19f)],'services':_0x486222[_0x2c5eda(0x1ea)]};}catch(_0x4ec042){if(_0x4ec042 instanceof Error&&_0x4ec042[_0x2c5eda(0x1d3)]===_0x2c5eda(0x1eb))throw _0x4ec042;throw CliErrors[_0x2c5eda(0x1f5)](_0x2c5eda(0x1e6)+_0x155973,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x2c2777,_0x2a8503={}){const _0x63c0f0=a42_0x396d6c,_0x17fcbb=getServiceRegistryPath(_0x2a8503),_0x4641b2=dirname(_0x17fcbb);!existsSync(_0x4641b2)&&mkdirSync(_0x4641b2,{'recursive':!![]});const _0x4de232=_0x17fcbb+_0x63c0f0(0x1cd);try{writeFileSync(_0x4de232,JSON[_0x63c0f0(0x1d8)](_0x2c2777,null,0x2)+'\x0a',{'encoding':_0x63c0f0(0x1c7),'mode':0x180}),renameSync(_0x4de232,_0x17fcbb);}catch(_0x59055e){try{unlinkSync(_0x4de232);}catch{}if(_0x59055e?.[_0x63c0f0(0x1b7)]===_0x63c0f0(0x1cc))throw CliErrors['validation'](_0x63c0f0(0x1b0)+_0x17fcbb);throw _0x59055e;}return _0x17fcbb;}export function loadServiceManifestFromFile(_0x2cdf2c){const _0x4c4da4=a42_0x396d6c,_0x38d6bd=resolve(_0x2cdf2c);if(!existsSync(_0x38d6bd))throw CliErrors['validation'](_0x4c4da4(0x1d9)+_0x2cdf2c);let _0x3a7916;const _0x1f2911=readFileSync(_0x38d6bd,'utf8');try{_0x3a7916=JSON[_0x4c4da4(0x1d7)](_0x1f2911);}catch{throw CliErrors[_0x4c4da4(0x1f5)](_0x4c4da4(0x1c3)+_0x2cdf2c,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0xe6d6e9=sha256(_0x1f2911),_0x59f778=extractLoadedServiceManifests(_0x3a7916,_0xe6d6e9),_0x40229c=aggregateValidationReports(_0x59f778),_0x3e5af1=_0x59f778[0x0];return{'filePath':_0x38d6bd,'hash':_0xe6d6e9,'kind':isServiceRegistryLike(_0x3a7916)?_0x4c4da4(0x1a6):'manifest','manifest':_0x3e5af1?.['manifest']??_0x3a7916,'report':_0x40229c,'normalizedManifest':_0x59f778['length']===0x1?_0x3e5af1?.[_0x4c4da4(0x1db)]:undefined,'manifests':_0x59f778};}export function importServiceManifest(_0x1d5174,_0x4cc452={}){const _0x1ff964=a42_0x396d6c,_0x1152fc=loadServiceManifestFromFile(_0x1d5174);if(!_0x1152fc['report']['ok'])throw CliErrors[_0x1ff964(0x1f5)](formatValidationFailure(_0x1152fc[_0x1ff964(0x1e4)]),_0x1ff964(0x1cf));if(_0x1152fc['manifests'][_0x1ff964(0x1a5)]===0x0)throw CliErrors[_0x1ff964(0x1f5)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x1ff964(0x1a1));const _0xfeab=readServiceRegistry(_0x4cc452),_0x1a3d42=(_0x4cc452[_0x1ff964(0x1a4)]??(()=>new Date()))()[_0x1ff964(0x1aa)](),_0x13f702=[];let _0x46a7fb=0x0,_0x63cca0=0x0;for(const _0x5b09f1 of _0x1152fc[_0x1ff964(0x1d2)]){if(!_0x5b09f1[_0x1ff964(0x1db)])continue;const _0x100846=_0x5b09f1[_0x1ff964(0x1db)][_0x1ff964(0x1c0)][_0x1ff964(0x1b7)],_0x39bd1c={'serviceCode':_0x100846,'version':_0x5b09f1[_0x1ff964(0x1db)][_0x1ff964(0x1ba)],'importedAt':_0x1a3d42,'source':{'type':_0x1ff964(0x1e8),'path':_0x1152fc[_0x1ff964(0x1a2)],'hash':_0x5b09f1['sourceHash']},'manifest':_0x5b09f1['manifest'],'normalizedManifest':_0x5b09f1[_0x1ff964(0x1db)]},_0x5b3848=_0xfeab[_0x1ff964(0x1ea)]['findIndex'](_0x4e1b80=>_0x4e1b80['serviceCode']===_0x100846);_0x5b3848>=0x0?(_0xfeab[_0x1ff964(0x1ea)][_0x5b3848]=_0x39bd1c,_0x63cca0++):(_0xfeab[_0x1ff964(0x1ea)][_0x1ff964(0x1c9)](_0x39bd1c),_0x46a7fb++),_0x13f702[_0x1ff964(0x1c9)](_0x39bd1c);}_0xfeab[_0x1ff964(0x1ea)][_0x1ff964(0x1f3)]((_0xeaa279,_0x413cfd)=>_0xeaa279[_0x1ff964(0x1f6)][_0x1ff964(0x1de)](_0x413cfd['serviceCode'])),_0xfeab[_0x1ff964(0x19f)]=_0x1a3d42;const _0x3d37e8=writeServiceRegistry(_0xfeab,_0x4cc452);return{'registryPath':_0x3d37e8,'entry':_0x13f702[0x0],'replaced':_0x13f702[_0x1ff964(0x1a5)]===0x1?_0x63cca0===0x1:_0x63cca0>0x0,'entries':_0x13f702,'imported':_0x46a7fb,'updated':_0x63cca0,'serviceCount':_0xfeab['services']['length']};}export function exportServiceManifest(_0x20c0d0,_0x3c0682,_0xfbc136={}){const _0x3c3646=a42_0x396d6c,_0x38cea4=getServiceRegistryPath(_0xfbc136),_0x39862f=getLocalServiceEntry(_0x20c0d0,_0xfbc136);if(!_0x39862f)throw CliErrors[_0x3c3646(0x1f5)](_0x3c3646(0x1ef)+_0x20c0d0,_0x3c3646(0x1a0));const _0x3ed786=resolve(_0x3c0682),_0x5f5ab3=dirname(_0x3ed786);return!existsSync(_0x5f5ab3)&&mkdirSync(_0x5f5ab3,{'recursive':!![]}),writeFileSync(_0x3ed786,JSON['stringify'](_0x39862f[_0x3c3646(0x1c6)],null,0x2)+'\x0a',{'encoding':_0x3c3646(0x1c7),'mode':0x180}),{'registryPath':_0x38cea4,'filePath':_0x3ed786,'entry':_0x39862f};}export function removeServiceManifest(_0x2c2f6d,_0x17fa87={}){const _0x37dcf7=a42_0x396d6c,_0x7b921e=readServiceRegistry(_0x17fa87),_0x4747d9=_0x2c2f6d['trim'](),_0x4cbc3b=_0x7b921e[_0x37dcf7(0x1ea)][_0x37dcf7(0x1ae)](_0x102942=>_0x102942[_0x37dcf7(0x1f6)]===_0x4747d9);if(_0x4cbc3b<0x0)throw CliErrors[_0x37dcf7(0x1f5)](_0x37dcf7(0x1ef)+_0x4747d9,_0x37dcf7(0x1a0));const [_0x5ca032]=_0x7b921e['services'][_0x37dcf7(0x1da)](_0x4cbc3b,0x1),_0x3ae495=(_0x17fa87[_0x37dcf7(0x1a4)]??(()=>new Date()))()[_0x37dcf7(0x1aa)]();_0x7b921e[_0x37dcf7(0x19f)]=_0x3ae495;const _0x14d757=writeServiceRegistry(_0x7b921e,_0x17fa87);return{'registryPath':_0x14d757,'entry':_0x5ca032,'serviceCount':_0x7b921e['services'][_0x37dcf7(0x1a5)]};}export function listLocalServices(_0x1b3e24={}){return readServiceRegistry(_0x1b3e24)['services'];}export function getLocalServiceEntry(_0x3f6e0f,_0x2fb1d8={}){const _0xf65316=a42_0x396d6c;return readServiceRegistry(_0x2fb1d8)[_0xf65316(0x1ea)][_0xf65316(0x1ca)](_0x211f65=>_0x211f65[_0xf65316(0x1f6)]===_0x3f6e0f[_0xf65316(0x1df)]());}export function listLocalServiceTrees(_0x3bb1c5={}){const _0x22037e=a42_0x396d6c;return readServiceRegistry(_0x3bb1c5)[_0x22037e(0x1ea)]['map'](_0x398ea9=>_0x398ea9[_0x22037e(0x1db)]);}export function inspectServiceRegistry(_0x5ee139={}){const _0x52b55f=a42_0x396d6c,_0x414bda=getServiceRegistryPath(_0x5ee139);if(!existsSync(_0x414bda))return emptyServiceRegistryInspection(_0x414bda,_0x52b55f(0x1c2),![]);try{const _0x87588c=readFileSync(_0x414bda,_0x52b55f(0x1c7));if(!_0x87588c[_0x52b55f(0x1df)]())return emptyServiceRegistryInspection(_0x414bda,'empty',!![]);const _0x2066d2=JSON[_0x52b55f(0x1d7)](_0x87588c);if(_0x2066d2[_0x52b55f(0x1f1)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x414bda,_0x52b55f(0x1ac),!![]),'schemaVersion':_0x2066d2[_0x52b55f(0x1f1)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x2066d2[_0x52b55f(0x1f1)])};if(!Array[_0x52b55f(0x1b1)](_0x2066d2[_0x52b55f(0x1ea)]))return{...emptyServiceRegistryInspection(_0x414bda,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2066d2[_0x52b55f(0x19f)],'message':_0x52b55f(0x1d1)};const _0xbc5f94=_0x2066d2['services'][_0x52b55f(0x1ed)](summarizeLocalServiceEntry);return{'registryPath':_0x414bda,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2066d2[_0x52b55f(0x19f)],'serviceCount':_0xbc5f94[_0x52b55f(0x1a5)],'commandCount':_0xbc5f94[_0x52b55f(0x1e3)]((_0x43e88e,_0xb92d7d)=>_0x43e88e+_0xb92d7d['commandCount'],0x0),'services':_0xbc5f94};}catch(_0x5dfb5f){return{...emptyServiceRegistryInspection(_0x414bda,_0x52b55f(0x1ac),!![]),'message':_0x5dfb5f instanceof Error?_0x5dfb5f['message']:String(_0x5dfb5f)};}}export function formatValidationFailure(_0x2524a2){const _0x1a1146=a42_0x396d6c,_0x281513=_0x2524a2[_0x1a1146(0x1f4)]['map'](_0xbb113e=>_0xbb113e[_0x1a1146(0x1e2)]+':\x20'+_0xbb113e[_0x1a1146(0x1e7)]);return _0x1a1146(0x1c1)+_0x281513[_0x1a1146(0x1ee)]('\x0a');}function extractLoadedServiceManifests(_0x15bb61,_0x12e73e){const _0x1c40d3=a42_0x396d6c;if(!isServiceRegistryLike(_0x15bb61)){const _0x52d7b8=_0x15bb61,{manifest:_0x3e3911,errors:_0x43f634}=adaptServiceTreeManifestForLegacyFramework(_0x52d7b8),_0x49d891=validateServiceTreeManifest(_0x3e3911),_0x5274eb=mergeValidationErrors(_0x49d891,_0x43f634);return[{'manifest':_0x52d7b8,'report':_0x5274eb,'normalizedManifest':_0x5274eb['ok']?normalizeServiceTreeManifest(_0x3e3911):undefined,'sourceHash':_0x12e73e}];}return _0x15bb61[_0x1c40d3(0x1ea)]['map']((_0x476978,_0x46bbcf)=>{const _0x2063ae=_0x1c40d3,_0x3ba492=isObjectRecord(_0x476978)?_0x476978[_0x2063ae(0x1c6)]:undefined,{manifest:_0x192a83,errors:_0x5558b9}=adaptServiceTreeManifestForLegacyFramework(_0x3ba492),_0x50bffa=validateServiceTreeManifest(_0x192a83),_0x4289a8=mergeValidationErrors(_0x50bffa,_0x5558b9),_0x6e72=isObjectRecord(_0x476978)&&typeof _0x476978[_0x2063ae(0x1f6)]===_0x2063ae(0x1dd)?_0x476978[_0x2063ae(0x1f6)]:undefined;return{'manifest':_0x3ba492,'report':_0x4289a8,'normalizedManifest':_0x4289a8['ok']?normalizeServiceTreeManifest(_0x192a83):undefined,'sourceHash':sha256(JSON[_0x2063ae(0x1d8)](_0x3ba492,null,0x2)+'\x0a'),'registryIndex':_0x46bbcf,'registryServiceCode':_0x6e72};});}function mergeValidationErrors(_0x47c5b2,_0x1754ba){const _0x4137f3=a42_0x396d6c,_0x15f7cd=_0x47c5b2[_0x4137f3(0x1f4)]['map'](_0x440750=>_0x440750[_0x4137f3(0x1e7)]===_0x4137f3(0x1e0)?{..._0x440750,'message':_0x4137f3(0x1dc)}:_0x440750),_0x136943=[..._0x1754ba,..._0x15f7cd];return{'ok':_0x136943[_0x4137f3(0x1a5)]===0x0,'errors':_0x136943,'warnings':_0x47c5b2[_0x4137f3(0x1a9)]};}function aggregateValidationReports(_0x48b19d){const _0x28b632=a42_0x396d6c,_0x5248ee=_0x48b19d[_0x28b632(0x1b5)](_0x1c5aef=>_0x1c5aef[_0x28b632(0x1d0)]===undefined?_0x1c5aef['report'][_0x28b632(0x1f4)]:_0x1c5aef[_0x28b632(0x1e4)][_0x28b632(0x1f4)][_0x28b632(0x1ed)](_0x126820=>({..._0x126820,'path':prefixRegistryIssuePath(_0x1c5aef['registryIndex'],_0x126820[_0x28b632(0x1e2)])}))),_0x9d7022=_0x48b19d[_0x28b632(0x1b5)](_0x50740e=>_0x50740e['registryIndex']===undefined?_0x50740e['report'][_0x28b632(0x1a9)]:_0x50740e[_0x28b632(0x1e4)][_0x28b632(0x1a9)][_0x28b632(0x1ed)](_0x4a2bd9=>({..._0x4a2bd9,'path':prefixRegistryIssuePath(_0x50740e['registryIndex'],_0x4a2bd9[_0x28b632(0x1e2)])})));return{'ok':_0x5248ee['length']===0x0,'errors':_0x5248ee,'warnings':_0x9d7022};}function prefixRegistryIssuePath(_0x3cbb90,_0x455a52){const _0x15f7f9=a42_0x396d6c;if(_0x455a52==='$')return _0x15f7f9(0x1ec)+_0x3cbb90+_0x15f7f9(0x1f2);if(_0x455a52[_0x15f7f9(0x1b2)]('$.'))return _0x15f7f9(0x1ec)+_0x3cbb90+_0x15f7f9(0x1f2)+_0x455a52[_0x15f7f9(0x1d6)](0x1);if(_0x455a52['startsWith']('$['))return _0x15f7f9(0x1ec)+_0x3cbb90+_0x15f7f9(0x1f2)+_0x455a52[_0x15f7f9(0x1d6)](0x1);return _0x15f7f9(0x1ec)+_0x3cbb90+'].manifest.'+_0x455a52;}function isServiceRegistryLike(_0x4cb75d){const _0x10f04e=a42_0x396d6c;return isObjectRecord(_0x4cb75d)&&_0x4cb75d[_0x10f04e(0x1f1)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x10f04e(0x1b1)](_0x4cb75d[_0x10f04e(0x1ea)]);}function isObjectRecord(_0x5deaeb){const _0x42de77=a42_0x396d6c;return Boolean(_0x5deaeb)&&typeof _0x5deaeb===_0x42de77(0x1af)&&!Array[_0x42de77(0x1b1)](_0x5deaeb);}function emptyServiceRegistryInspection(_0x2b4cc1,_0x27bcf6,_0x394458){return{'registryPath':_0x2b4cc1,'exists':_0x394458,'status':_0x27bcf6,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x175f0b){const _0x44367d=a42_0x396d6c,_0x86ce53=_0x175f0b[_0x44367d(0x1db)],_0x42a55e=_0x86ce53[_0x44367d(0x1e5)]['map'](_0x1c9fa4=>({'path':_0x1c9fa4[_0x44367d(0x1ce)],'description':_0x1c9fa4[_0x44367d(0x1e1)],'risk':_0x1c9fa4['risk'],'targetKind':_0x1c9fa4[_0x44367d(0x1b6)]['kind'],'targetCommand':_0x1c9fa4[_0x44367d(0x1b6)][_0x44367d(0x1b8)]}));return{'serviceCode':_0x175f0b[_0x44367d(0x1f6)],'name':_0x86ce53[_0x44367d(0x1c0)][_0x44367d(0x1d3)],'description':_0x86ce53[_0x44367d(0x1c0)][_0x44367d(0x1e1)],'version':_0x175f0b[_0x44367d(0x1ba)],'importedAt':_0x175f0b[_0x44367d(0x1a7)],'source':_0x175f0b[_0x44367d(0x1be)],'commandCount':_0x42a55e['length'],'commands':_0x42a55e};}function a42_0xb23e(){const _0x1856c6=['splice','normalizedManifest','bff\x20target\x20requires\x20functionName.','string','localeCompare','trim','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','description','path','reduce','report','commands','Invalid\x20service\x20registry\x20JSON:\x20','message','file','4LISGTk','services','CliError','$.services[','map','join','Local\x20service\x20not\x20found:\x20','9WsIHcu','schemaVersion','].manifest','sort','errors','validation','serviceCode','updatedAt','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','filePath','37972halDtO','now','length','registry','importedAt','service.json','warnings','toISOString','286176YAurEb','invalid','52148okhZCp','findIndex','object','Cannot\x20write\x20service\x20registry:\x20','isArray','startsWith','hex','430dNJCQU','flatMap','target','code','command','499633FthCYC','version','2020PqrwYN','41706IJueXI','Remove\x20or\x20migrate\x20','source','1637847MvVFby','service','Service\x20manifest\x20validation\x20failed:\x0a','missing','Invalid\x20service\x20manifest\x20JSON:\x20','homeDirName','826ROlypD','manifest','utf8','481PavZGU','push','find','sha256','ENOENT','.tmp','cliPath','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','registryIndex','services\x20must\x20be\x20an\x20array','manifests','name','Unsupported\x20service\x20registry\x20schemaVersion:\x20','1148460yYELuy','slice','parse','stringify','Service\x20manifest\x20file\x20not\x20found:\x20'];a42_0xb23e=function(){return _0x1856c6;};return a42_0xb23e();}function sha256(_0x20661a){const _0x5fee7d=a42_0x396d6c;return createHash(_0x5fee7d(0x1cb))['update'](_0x20661a)['digest'](_0x5fee7d(0x1b3));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a43_0x4116a5=a43_0x20f0;function a43_0x20f0(_0x5e7bff,_0x1f133e){_0x5e7bff=_0x5e7bff-0xe1;const _0x47047e=a43_0x4704();let _0x20f0dd=_0x47047e[_0x5e7bff];return _0x20f0dd;}(function(_0x2be82b,_0x4e6499){const _0x10581f=a43_0x20f0,_0xeb29e6=_0x2be82b();while(!![]){try{const _0x1c9ff7=-parseInt(_0x10581f(0xf9))/0x1+parseInt(_0x10581f(0xe8))/0x2*(-parseInt(_0x10581f(0xf4))/0x3)+parseInt(_0x10581f(0xea))/0x4+-parseInt(_0x10581f(0xfa))/0x5+parseInt(_0x10581f(0xf0))/0x6+parseInt(_0x10581f(0xf1))/0x7*(parseInt(_0x10581f(0xf3))/0x8)+parseInt(_0x10581f(0xe5))/0x9;if(_0x1c9ff7===_0x4e6499)break;else _0xeb29e6['push'](_0xeb29e6['shift']());}catch(_0x1fe9a9){_0xeb29e6['push'](_0xeb29e6['shift']());}}}(a43_0x4704,0xae6e2));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';function a43_0x4704(){const _0x8a1ab2=['rendered','isDirectory','Skill\x20directory\x20already\x20exists:\x20','isSymbolicLink','12930813FrCwRc','Refusing\x20to\x20overwrite\x20symlink:\x20','path','150MgFbrG','map','2782948VMdQzy','str','创建本地自包含的运行态\x20Skill\x20草稿','trim','files','validation','7987512iIVhPM','70MXTnfy','name','197528BhKaEJ','23514BaNPOA','WRITE','force','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','1381204vKQRin','5135680dyaRGc','create','utf8','target','content','read','bool','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','skillDir','skill','type','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','skillName'];a43_0x4704=function(){return _0x8a1ab2;};return a43_0x4704();}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_0x4116a5(0x103),'command':a43_0x4116a5(0xfb),'description':a43_0x4116a5(0xec),'risk':a43_0x4116a5(0xff),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x420e2a){const _0x572f10=a43_0x4116a5,_0x9001c=buildSkillCreatePlan(_0x420e2a['str'](_0x572f10(0xf2)),_0x420e2a[_0x572f10(0xeb)](_0x572f10(0x104)),_0x420e2a[_0x572f10(0xeb)](_0x572f10(0xfd)));return{'method':_0x572f10(0xf5),'url':_0x9001c[_0x572f10(0x102)],'body':{'skillName':_0x9001c[_0x572f10(0xe1)]['skillName'],'type':_0x9001c[_0x572f10(0xe1)][_0x572f10(0x104)],'selfContained':!![],'files':_0x9001c[_0x572f10(0xe1)][_0x572f10(0xee)][_0x572f10(0xe9)](_0x2799b0=>_0x2799b0[_0x572f10(0xe7)])},'description':_0x572f10(0xf7)};},async 'execute'(_0x179f42){const _0x546e9a=a43_0x4116a5,_0x13aed5=buildSkillCreatePlan(_0x179f42[_0x546e9a(0xeb)](_0x546e9a(0xf2)),_0x179f42[_0x546e9a(0xeb)](_0x546e9a(0x104)),_0x179f42['str'](_0x546e9a(0xfd)));return writeSkillDraft(_0x13aed5,_0x179f42[_0x546e9a(0x100)](_0x546e9a(0xf6))),{'ok':!![],'data':{'skillName':_0x13aed5[_0x546e9a(0xe1)][_0x546e9a(0x106)],'type':_0x13aed5[_0x546e9a(0xe1)][_0x546e9a(0x104)],'dir':_0x13aed5[_0x546e9a(0x102)],'files':_0x13aed5[_0x546e9a(0xe1)]['files'][_0x546e9a(0xe9)](_0x2de122=>_0x2de122[_0x546e9a(0xe7)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x13aed5[_0x546e9a(0xe1)][_0x546e9a(0x106)]};}};function buildSkillCreatePlan(_0x5b3c3f,_0xdea71,_0xe58dff){const _0x11cef3=a43_0x4116a5,_0x3f8265=_0xdea71['trim'](),_0x2a5b6a=renderSkillTemplate({'skillName':_0x5b3c3f,'type':_0x3f8265});!_0x3f8265&&writeCliSideChannelLine(_0x11cef3(0x101));const _0x491655=resolve(normalizeSkillTarget(_0xe58dff));return{'rendered':_0x2a5b6a,'targetRoot':_0x491655,'skillDir':resolve(_0x491655,_0x2a5b6a[_0x11cef3(0x106)])};}function normalizeSkillTarget(_0x4af42e){const _0x27f8ec=a43_0x4116a5;return(_0x4af42e||DEFAULT_SKILL_TARGET)[_0x27f8ec(0xed)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x2e7576,_0x5eafca){const _0x319e05=a43_0x4116a5;if(existsSync(_0x2e7576[_0x319e05(0x102)])){const _0x8ae8b6=lstatSync(_0x2e7576[_0x319e05(0x102)]);if(!_0x8ae8b6[_0x319e05(0xe2)]()||_0x8ae8b6['isSymbolicLink']())throw CliErrors[_0x319e05(0xef)](_0x319e05(0xf8)+_0x2e7576[_0x319e05(0x102)]);if(!_0x5eafca)throw CliErrors[_0x319e05(0xef)](_0x319e05(0xe3)+_0x2e7576[_0x319e05(0x102)],_0x319e05(0x105));}for(const _0x416845 of _0x2e7576['rendered'][_0x319e05(0xee)]){const _0x9a2e93=resolve(_0x2e7576['skillDir'],_0x416845[_0x319e05(0xe7)]),_0x528c22=dirname(_0x9a2e93);mkdirSync(_0x528c22,{'recursive':!![]});if(existsSync(_0x9a2e93)&&lstatSync(_0x9a2e93)[_0x319e05(0xe4)]())throw CliErrors[_0x319e05(0xef)](_0x319e05(0xe6)+_0x9a2e93);writeFileSync(_0x9a2e93,_0x416845[_0x319e05(0xfe)],_0x319e05(0xfc));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a44_0x4ad64e=a44_0x13ae;(function(_0x28b59c,_0x2cbf70){const _0x39bcba=a44_0x13ae,_0x471b5c=_0x28b59c();while(!![]){try{const _0x59e49f=parseInt(_0x39bcba(0x1ba))/0x1+parseInt(_0x39bcba(0x1b6))/0x2*(parseInt(_0x39bcba(0x1cd))/0x3)+parseInt(_0x39bcba(0x1bc))/0x4+parseInt(_0x39bcba(0x1c7))/0x5+parseInt(_0x39bcba(0x1bb))/0x6*(-parseInt(_0x39bcba(0x1ca))/0x7)+parseInt(_0x39bcba(0x1bd))/0x8+-parseInt(_0x39bcba(0x1c9))/0x9;if(_0x59e49f===_0x2cbf70)break;else _0x471b5c['push'](_0x471b5c['shift']());}catch(_0x4e5487){_0x471b5c['push'](_0x471b5c['shift']());}}}(a44_0x1f6b,0xcdf66));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';function a44_0x13ae(_0x2a4951,_0x1cd8c7){_0x2a4951=_0x2a4951-0x1a4;const _0x1f6bf9=a44_0x1f6b();let _0x13ae27=_0x1f6bf9[_0x2a4951];return _0x13ae27;}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(_0x57c6d1){const _0x417208=a44_0x13ae,_0x30c7b8=_0x57c6d1[_0x417208(0x1b5)]('skill-code')[_0x417208(0x1a8)](),_0x5a8057=_0x57c6d1[_0x417208(0x1b5)]('version')[_0x417208(0x1a8)](),_0x1d3983=_0x57c6d1[_0x417208(0x1b5)](_0x417208(0x1b4));if(!_0x30c7b8||!_0x5a8057||_0x1d3983!==_0x417208(0x1b8)&&_0x1d3983!=='company')throw CliErrors['validation'](_0x417208(0x1cb));return{'skillCode':_0x30c7b8,'version':_0x5a8057,'scope':_0x1d3983};}async function readDiagramWriteInput(_0x55ee22){const _0x2660a5=a44_0x13ae,_0x3c8697=_0x55ee22[_0x2660a5(0x1c4)]('expected-diagram-revision'),_0xaed545=_0x55ee22[_0x2660a5(0x1b5)](_0x2660a5(0x1b3))['trim']();if(!Number[_0x2660a5(0x1cc)](_0x3c8697)||_0x3c8697<0x0)throw CliErrors[_0x2660a5(0x1cf)](_0x2660a5(0x1a4));if(!/^sha256:[0-9a-f]{64}$/[_0x2660a5(0x1c8)](_0xaed545))throw CliErrors[_0x2660a5(0x1cf)](_0x2660a5(0x1ce));return{'expectedDiagramRevision':_0x3c8697,'sourceFingerprint':_0xaed545,'diagram':await readRequiredSkillDiagram(_0x55ee22[_0x2660a5(0x1b5)](_0x2660a5(0x1c2)))};}function a44_0x1f6b(){const _0x543963=['scope','str','70EZUYEi',';\x20first\x20write\x20expects\x20revision\x20','personal','Created','907706NkdiWq','57366ViFHdB','1157888yOGlWg','1728200GAxVxj','\x20Skill\x20diagram\x20for\x20','Found\x20Skill\x20diagram\x20for\x20','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','unchanged','diagram-file','skill','num','write','diagram-show','1938340iBUaHD','test','9632853CELDoS','714fMFrhW','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','isInteger','93282dUDFWJ','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','validation','created','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.',';\x20next\x20write\x20expects\x20revision\x20','diagram-validate','skillCode','trim','expectedDiagramRevision','found','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','appCode','read','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','version','Skill\x20diagram\x20validation\x20passed\x20for\x20','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','action','source-fingerprint'];a44_0x1f6b=function(){return _0x543963;};return a44_0x1f6b();}export const diagramValidateCommand={'service':a44_0x4ad64e(0x1c3),'command':a44_0x4ad64e(0x1a6),'description':a44_0x4ad64e(0x1b1),'risk':a44_0x4ad64e(0x1ad),'flags':WRITE_FLAGS,async 'execute'(_0x4b5efe){const _0x57b23e=a44_0x4ad64e,_0x33ba16=readDiagramTarget(_0x4b5efe),_0xdfae0f=await validateRuntimeSkillVersionDiagram(_0x4b5efe[_0x57b23e(0x1ac)],_0x33ba16[_0x57b23e(0x1a7)],_0x33ba16['version'],_0x33ba16['scope'],await readDiagramWriteInput(_0x4b5efe));return{'ok':!![],'data':_0xdfae0f,'message':_0x57b23e(0x1b0)+_0x33ba16[_0x57b23e(0x1a7)]+'@'+_0x33ba16[_0x57b23e(0x1af)]+'.'};}};export const diagramPushCommand={'service':a44_0x4ad64e(0x1c3),'command':'diagram-push','description':a44_0x4ad64e(0x1ae),'risk':a44_0x4ad64e(0x1c5),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x58da01){const _0x2f6ef6=a44_0x4ad64e,_0x2eb375=readDiagramTarget(_0x58da01),_0x280fc4=await putRuntimeSkillVersionDiagram(_0x58da01[_0x2f6ef6(0x1ac)],_0x2eb375['skillCode'],_0x2eb375[_0x2f6ef6(0x1af)],_0x2eb375[_0x2f6ef6(0x1b4)],await readDiagramWriteInput(_0x58da01));return{'ok':!![],'data':_0x280fc4,'message':_0x280fc4[_0x2f6ef6(0x1b2)]===_0x2f6ef6(0x1c1)?'Skill\x20diagram\x20for\x20'+_0x2eb375['skillCode']+'@'+_0x2eb375[_0x2f6ef6(0x1af)]+'\x20is\x20unchanged.':(_0x280fc4[_0x2f6ef6(0x1b2)]===_0x2f6ef6(0x1d0)?_0x2f6ef6(0x1b9):'Updated')+_0x2f6ef6(0x1be)+_0x2eb375[_0x2f6ef6(0x1a7)]+'@'+_0x2eb375['version']+'.'};}};export const diagramShowCommand={'service':a44_0x4ad64e(0x1c3),'command':a44_0x4ad64e(0x1c6),'description':a44_0x4ad64e(0x1c0),'risk':a44_0x4ad64e(0x1ad),'flags':TARGET_FLAGS,async 'execute'(_0x395565){const _0x972eca=a44_0x4ad64e,_0x33412c=readDiagramTarget(_0x395565),_0x587901=await getRuntimeSkillVersionDiagram(_0x395565[_0x972eca(0x1ac)],_0x33412c[_0x972eca(0x1a7)],_0x33412c[_0x972eca(0x1af)],_0x33412c['scope']);return{'ok':!![],'data':_0x587901,'message':_0x587901[_0x972eca(0x1aa)]?_0x972eca(0x1bf)+_0x33412c[_0x972eca(0x1a7)]+'@'+_0x33412c[_0x972eca(0x1af)]+_0x972eca(0x1a5)+_0x587901[_0x972eca(0x1a9)]+'.':_0x972eca(0x1ab)+_0x33412c['skillCode']+'@'+_0x33412c['version']+_0x972eca(0x1b7)+_0x587901[_0x972eca(0x1a9)]+'.'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a45_0x5df074=a45_0x26f9;(function(_0x70979f,_0x2502a4){const _0x269c81=a45_0x26f9,_0x3c7390=_0x70979f();while(!![]){try{const _0x17c5a5=parseInt(_0x269c81(0x12e))/0x1*(-parseInt(_0x269c81(0x12c))/0x2)+parseInt(_0x269c81(0x133))/0x3+-parseInt(_0x269c81(0x126))/0x4+parseInt(_0x269c81(0x134))/0x5*(parseInt(_0x269c81(0x132))/0x6)+parseInt(_0x269c81(0x13a))/0x7+-parseInt(_0x269c81(0x12a))/0x8*(-parseInt(_0x269c81(0x128))/0x9)+parseInt(_0x269c81(0x131))/0xa;if(_0x17c5a5===_0x2502a4)break;else _0x3c7390['push'](_0x3c7390['shift']());}catch(_0x336fd4){_0x3c7390['push'](_0x3c7390['shift']());}}}(a45_0x18c8,0x9abb6));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a45_0x26f9(_0xdc52a,_0x1771ec){_0xdc52a=_0xdc52a-0x114;const _0x18c8a6=a45_0x18c8();let _0x26f95d=_0x18c8a6[_0xdc52a];return _0x26f95d;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x5df074(0x13f),'command':'install','description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a45_0x5df074(0x139),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x1773b4){return syncRuntimeSkills(_0x1773b4);}};async function syncRuntimeSkills(_0x1ee368){const _0x7bf78b=a45_0x5df074,{downloadRuntimeSkillPackage:_0x4308d9,listRuntimeSkills:_0x135746}=await import(_0x7bf78b(0x12b)),{linkEffectiveRuntimeSkills:_0x54592f,materializeRuntimeSkill:_0x4f352,pruneStaleRuntimeSkillCache:_0xd608e4,pruneStaleRuntimeSkillLinks:_0x3444d1,resolveRuntimeSkillInstallTarget:_0x11c18b}=await import('../../../skills/runtime-skill-sync.js'),_0x104c5=_0x1ee368[_0x7bf78b(0x11f)](_0x7bf78b(0x141)),_0x3e87fc=normalizeSyncScopes(_0x1ee368[_0x7bf78b(0x11f)](_0x7bf78b(0x13e))),_0xba9dad=_0x1ee368[_0x7bf78b(0x123)]??_0x7bf78b(0x114),_0x11b3c7=_0x1ee368[_0x7bf78b(0x122)],_0x3c962b=_0x1ee368['bool'](_0x7bf78b(0x119));if(!_0x11b3c7)throw CliErrors[_0x7bf78b(0x11a)](_0x7bf78b(0x120));const _0x3c4534=_0x11c18b(_0x1ee368[_0x7bf78b(0x127)],_0x1ee368['bool'](_0x7bf78b(0x12d))?_0x7bf78b(0x12d):_0x7bf78b(0x13c)),_0x5567f9=_0x11c18b(_0x1ee368[_0x7bf78b(0x127)],_0x3c4534[_0x7bf78b(0x13e)]===_0x7bf78b(0x12d)?_0x7bf78b(0x13c):_0x7bf78b(0x12d)),_0x1a243b=await Promise[_0x7bf78b(0x115)](_0x3e87fc[_0x7bf78b(0x130)](_0x5489f4=>_0x135746({'appCode':_0x1ee368[_0x7bf78b(0x127)],'scope':_0x5489f4,'code':_0x104c5['trim']()||undefined}))),_0x2334b7=_0x3e87fc[_0x7bf78b(0x116)]('personal')?_0x1a243b['flatMap']((_0x216b89,_0x509403)=>_0x3e87fc[_0x509403]===_0x7bf78b(0x140)?_0x216b89[_0x7bf78b(0x140)]:[]):[],_0x1da4f8=_0x3e87fc[_0x7bf78b(0x116)]('company')?_0x1a243b[_0x7bf78b(0x135)]((_0x455339,_0x4afc0e)=>_0x3e87fc[_0x4afc0e]===_0x7bf78b(0x117)?_0x455339[_0x7bf78b(0x117)]:[]):[],_0x41732f=new Set([..._0x2334b7[_0x7bf78b(0x130)](_0x4cb504=>_0x4cb504['skillCode']?.[_0x7bf78b(0x13b)]())[_0x7bf78b(0x121)](_0x53b822=>Boolean(_0x53b822)),..._0x1da4f8[_0x7bf78b(0x130)](_0x16997b=>_0x16997b['skillCode']?.[_0x7bf78b(0x13b)]())[_0x7bf78b(0x121)](_0x11e9ad=>Boolean(_0x11e9ad))]),_0x666f41=_0x104c5[_0x7bf78b(0x13b)]()?[_0x104c5[_0x7bf78b(0x13b)]()]:undefined,_0x4a7f88=_0x3e87fc[_0x7bf78b(0x11c)]===0x2&&_0x3e87fc['includes']('personal')&&_0x3e87fc[_0x7bf78b(0x116)](_0x7bf78b(0x117)),_0x646a0c=_0x4a7f88?_0x3444d1(_0x3c4534,_0x41732f,_0x666f41):[],_0x540b8a=_0xd608e4({'env':_0xba9dad,'accessKey':_0x11b3c7,'appCode':_0x1ee368[_0x7bf78b(0x127)],'activeSkillCodes':_0x41732f,'pruneSkillCodes':_0x666f41,'scopes':_0x3e87fc,'protectedLinkRoots':_0x5567f9['skillRoots']}),_0x1c637d=[];for(const _0x2a4c6a of _0x2334b7){_0x1c637d[_0x7bf78b(0x124)](_0x4f352(_0x2a4c6a,_0x7bf78b(0x140),{'env':_0xba9dad,'accessKey':_0x11b3c7,'appCode':_0x1ee368[_0x7bf78b(0x127)],'force':_0x3c962b,'packageBytes':await downloadSkillPackage(_0x2a4c6a,_0x7bf78b(0x140),_0x1ee368[_0x7bf78b(0x127)],_0x4308d9)}));}for(const _0x3bb11a of _0x1da4f8){_0x1c637d[_0x7bf78b(0x124)](_0x4f352(_0x3bb11a,'company',{'env':_0xba9dad,'accessKey':_0x11b3c7,'appCode':_0x1ee368[_0x7bf78b(0x127)],'force':_0x3c962b,'packageBytes':await downloadSkillPackage(_0x3bb11a,_0x7bf78b(0x117),_0x1ee368[_0x7bf78b(0x127)],_0x4308d9)}));}const _0x53b834=_0x54592f(_0x1c637d,_0x3c4534),_0x1f7337=countLinkActions(_0x53b834);return{'ok':!![],'data':{'appCode':_0x1ee368[_0x7bf78b(0x127)],..._0x3c4534[_0x7bf78b(0x13e)]===_0x7bf78b(0x12d)?{'installTarget':{'scope':_0x3c4534['scope'],'skillRoots':[..._0x3c4534['skillRoots']]}}:{},'personal':_0x2334b7['length'],'company':_0x1da4f8[_0x7bf78b(0x11c)],'materialized':_0x1c637d[_0x7bf78b(0x11c)],'links':{'total':_0x53b834[_0x7bf78b(0x11c)],'created':_0x1f7337[_0x7bf78b(0x118)]??0x0,'updated':_0x1f7337[_0x7bf78b(0x137)]??0x0,'unchanged':_0x1f7337['unchanged']??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x646a0c['filter'](_0x458e7c=>_0x458e7c[_0x7bf78b(0x12f)]===_0x7bf78b(0x11d))[_0x7bf78b(0x11c)],'cacheDirs':_0x540b8a[_0x7bf78b(0x121)](_0x17d4f7=>_0x17d4f7['action']===_0x7bf78b(0x11d))[_0x7bf78b(0x11c)],'skipped':[..._0x646a0c,..._0x540b8a][_0x7bf78b(0x121)](_0x32160f=>_0x32160f[_0x7bf78b(0x12f)]===_0x7bf78b(0x129))[_0x7bf78b(0x11c)]},'skills':{'personal':_0x2334b7[_0x7bf78b(0x130)](summarizeRuntimeSkill),'company':_0x1da4f8[_0x7bf78b(0x130)](summarizeRuntimeSkill)}},'message':_0x7bf78b(0x138)+_0x2334b7[_0x7bf78b(0x11c)]+_0x7bf78b(0x13d)+_0x1da4f8[_0x7bf78b(0x11c)]+_0x7bf78b(0x11e)};}function a45_0x18c8(){const _0x6cead8=['version','length','removed','\x20company\x20Skill(s).','str','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','filter','accessKey','envName','push','reduce','4973216IDCNGO','appCode','431460nmtoYr','skipped','104oDMHuc','../../../core/api-client.js','38344qrMqRm','project','7BFAPHV','action','map','4655220DKyrdZ','18rbMDCp','285423vnAhua','714995tGuAPb','flatMap','skillCode','updated','Installed\x20','read','2788870ojRebD','trim','global','\x20personal\x20and\x20','scope','skill','personal','code','production','all','includes','company','created','force','authRequired'];a45_0x18c8=function(){return _0x6cead8;};return a45_0x18c8();}async function downloadSkillPackage(_0x52cc78,_0x472a25,_0x50fbc9,_0x33b8c1){const _0x40e0e3=a45_0x5df074,_0xbfaaf1=_0x52cc78[_0x40e0e3(0x11b)]?.[_0x40e0e3(0x13b)]();return _0xbfaaf1?_0x33b8c1(_0x472a25,_0x52cc78[_0x40e0e3(0x136)],_0x50fbc9,_0xbfaaf1):_0x33b8c1(_0x472a25,_0x52cc78['skillCode'],_0x50fbc9);}function countLinkActions(_0x2687f1){const _0xd09d15=a45_0x5df074;return _0x2687f1[_0xd09d15(0x125)]((_0x1281fa,_0x5b98a0)=>{const _0x58aafd=_0xd09d15;return _0x1281fa[_0x5b98a0[_0x58aafd(0x12f)]]=(_0x1281fa[_0x5b98a0[_0x58aafd(0x12f)]]??0x0)+0x1,_0x1281fa;},{});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a46_0x445ce6=a46_0x2873;(function(_0x7ce7d6,_0x344a59){const _0x519b4e=a46_0x2873,_0x3f97e4=_0x7ce7d6();while(!![]){try{const _0x19e927=-parseInt(_0x519b4e(0x192))/0x1+-parseInt(_0x519b4e(0x19c))/0x2+-parseInt(_0x519b4e(0x196))/0x3+-parseInt(_0x519b4e(0x19e))/0x4*(-parseInt(_0x519b4e(0x187))/0x5)+-parseInt(_0x519b4e(0x19b))/0x6+parseInt(_0x519b4e(0x18a))/0x7*(-parseInt(_0x519b4e(0x18c))/0x8)+parseInt(_0x519b4e(0x189))/0x9*(parseInt(_0x519b4e(0x18e))/0xa);if(_0x19e927===_0x344a59)break;else _0x3f97e4['push'](_0x3f97e4['shift']());}catch(_0x4db714){_0x3f97e4['push'](_0x3f97e4['shift']());}}}(a46_0x6f5c,0x62b33));function a46_0x2873(_0x400556,_0x550244){_0x400556=_0x400556-0x182;const _0x6f5c91=a46_0x6f5c();let _0x2873d4=_0x6f5c91[_0x400556];return _0x2873d4;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':'skill','command':a46_0x445ce6(0x18f),'description':a46_0x445ce6(0x183),'risk':a46_0x445ce6(0x195),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x6db728){const _0x22d803=a46_0x445ce6,_0x33ef3b=_0x6db728['str']('code'),_0x1d6f59=normalizeListScope(_0x6db728['str'](_0x22d803(0x191)));if(_0x6db728[_0x22d803(0x19f)]('local')){const _0x1c2374=_0x6db728[_0x22d803(0x190)];if(!_0x1c2374)throw CliErrors[_0x22d803(0x19a)]();const {listLocalRuntimeSkills:_0x36122a,resolveRuntimeSkillInstallTarget:_0x2a76e5}=await import('../../../skills/runtime-skill-sync.js'),_0x1c5171=_0x2a76e5(_0x6db728['appCode'],_0x6db728[_0x22d803(0x19f)]('project')?_0x22d803(0x193):_0x22d803(0x199)),_0xb2d11e=_0x36122a({'env':_0x6db728[_0x22d803(0x1a1)]??_0x22d803(0x194),'accessKey':_0x1c2374,'appCode':_0x6db728['appCode'],'scopes':listScopeToRuntimeScopes(_0x1d6f59),'code':_0x33ef3b['trim']()||undefined},_0x1c5171),_0x4e986b=groupLocalRuntimeSkills(_0xb2d11e);return{'ok':!![],'data':{'appCode':_0x6db728[_0x22d803(0x18d)],'source':'local',..._0x1c5171['scope']===_0x22d803(0x193)?{'installScope':_0x1c5171[_0x22d803(0x191)]}:{},'scope':_0x1d6f59,'total':_0xb2d11e[_0x22d803(0x19d)],'personal':_0x4e986b[_0x22d803(0x185)][_0x22d803(0x19d)],'company':_0x4e986b[_0x22d803(0x1a0)][_0x22d803(0x19d)],'items':_0xb2d11e[_0x22d803(0x188)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x4e986b[_0x22d803(0x185)][_0x22d803(0x188)](summarizeLocalRuntimeSkill),'company':_0x4e986b[_0x22d803(0x1a0)][_0x22d803(0x188)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0xb2d11e[_0x22d803(0x19d)]+_0x22d803(0x186)};}const {listRuntimeSkills:_0x3523d3}=await import(_0x22d803(0x184)),_0x40b50d=await _0x3523d3({'appCode':_0x6db728['appCode'],'scope':listScopeToRemoteScope(_0x1d6f59),'code':_0x33ef3b[_0x22d803(0x1a2)]()||undefined}),_0x1b7dd0=shouldListScope(_0x1d6f59,_0x22d803(0x185))?_0x40b50d[_0x22d803(0x185)]??[]:[],_0x15fb43=shouldListScope(_0x1d6f59,_0x22d803(0x1a0))?_0x40b50d['company']??[]:[],_0x37ca9e=[..._0x1b7dd0,..._0x15fb43];return{'ok':!![],'data':{'appCode':_0x6db728[_0x22d803(0x18d)],'source':'remote','scope':_0x1d6f59,'total':_0x37ca9e['length'],'personal':_0x1b7dd0[_0x22d803(0x19d)],'company':_0x15fb43[_0x22d803(0x19d)],'items':_0x37ca9e[_0x22d803(0x188)](summarizeRuntimeSkill),'skills':{'personal':_0x1b7dd0[_0x22d803(0x188)](summarizeRuntimeSkill),'company':_0x15fb43[_0x22d803(0x188)](summarizeRuntimeSkill)}},'message':_0x22d803(0x197)+_0x37ca9e[_0x22d803(0x19d)]+_0x22d803(0x182)};}};function a46_0x6f5c(){const _0x410bf7=['production','read','2247294OeJopJ','Listed\x20','filter','global','authRequired','4653600OkceuS','1073114wxwNfO','length','276652CNCXhO','bool','company','envName','trim','\x20remote\x20Skill(s).','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','../../../core/api-client.js','personal','\x20local\x20Skill(s).','15ZnvRKD','map','918306DSqyeY','370601tZQFrU','builtin','64NrWDtY','appCode','290TuuJPd','list','accessKey','scope','277401lndNLD','project'];a46_0x6f5c=function(){return _0x410bf7;};return a46_0x6f5c();}function groupLocalRuntimeSkills(_0x322681){const _0x210d45=a46_0x445ce6;return{'personal':_0x322681[_0x210d45(0x198)](_0x525da7=>_0x525da7[_0x210d45(0x191)]==='personal'),'company':_0x322681[_0x210d45(0x198)](_0x4ccbd1=>_0x4ccbd1[_0x210d45(0x191)]===_0x210d45(0x1a0)),'builtin':_0x322681[_0x210d45(0x198)](_0x56a30a=>_0x56a30a[_0x210d45(0x191)]===_0x210d45(0x18b))};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a47_0x526717=a47_0x3532;function a47_0x3532(_0x2f54d6,_0x21738a){_0x2f54d6=_0x2f54d6-0x115;const _0xff1fd3=a47_0xff1f();let _0x35320a=_0xff1fd3[_0x2f54d6];return _0x35320a;}(function(_0x5d8f53,_0x4be201){const _0x564542=a47_0x3532,_0x606042=_0x5d8f53();while(!![]){try{const _0x1338ec=parseInt(_0x564542(0x117))/0x1+-parseInt(_0x564542(0x119))/0x2+parseInt(_0x564542(0x11c))/0x3*(-parseInt(_0x564542(0x11f))/0x4)+parseInt(_0x564542(0x11b))/0x5*(parseInt(_0x564542(0x115))/0x6)+parseInt(_0x564542(0x11d))/0x7+-parseInt(_0x564542(0x11e))/0x8+-parseInt(_0x564542(0x118))/0x9;if(_0x1338ec===_0x4be201)break;else _0x606042['push'](_0x606042['shift']());}catch(_0x3b96e6){_0x606042['push'](_0x606042['shift']());}}}(a47_0xff1f,0x86120));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a47_0xff1f(){const _0x38193a=['将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','2538385OHkLNW','207156VPoyZV','5698854yTTvhL','2734496peMhZl','60pmJjnY','push','write','12lbPRXf','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','1017635bqMKQZ','6545115vqdNQI','386264kZxxAT'];a47_0xff1f=function(){return _0x38193a;};return a47_0xff1f();}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':'skill','command':a47_0x526717(0x120),'description':a47_0x526717(0x11a),'risk':a47_0x526717(0x121),'confirmationDescription':a47_0x526717(0x116),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a48_0x1c2699=a48_0x2d94;(function(_0x334755,_0x203c53){const _0x11e151=a48_0x2d94,_0x4f80bb=_0x334755();while(!![]){try{const _0x230c27=-parseInt(_0x11e151(0x103))/0x1+-parseInt(_0x11e151(0x10a))/0x2*(parseInt(_0x11e151(0x101))/0x3)+parseInt(_0x11e151(0x102))/0x4+parseInt(_0x11e151(0xff))/0x5*(parseInt(_0x11e151(0xfe))/0x6)+parseInt(_0x11e151(0x10b))/0x7*(parseInt(_0x11e151(0x108))/0x8)+parseInt(_0x11e151(0xfc))/0x9+-parseInt(_0x11e151(0xfb))/0xa;if(_0x230c27===_0x203c53)break;else _0x4f80bb['push'](_0x4f80bb['shift']());}catch(_0x515680){_0x4f80bb['push'](_0x4f80bb['shift']());}}}(a48_0x15d7,0x71abe));function a48_0x15d7(){const _0x457c42=['2326636KfOFqn','238172jLaIIk','bool','Skill\x20validation\x20passed.','type','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','2026600JbZNoU','read','4jdIUtU','7NOSRTD','str','strict','1083830VaTqYN','2694168VaBfan','validate','126dannBN','97675YbIoEt','warnings','1098627oJZGcP'];a48_0x15d7=function(){return _0x457c42;};return a48_0x15d7();}import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a48_0x2d94(_0x2dde8d,_0x4391bf){_0x2dde8d=_0x2dde8d-0xfa;const _0x15d724=a48_0x15d7();let _0x2d9408=_0x15d724[_0x2dde8d];return _0x2d9408;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':'skill','command':a48_0x1c2699(0xfd),'description':a48_0x1c2699(0x107),'risk':a48_0x1c2699(0x109),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x4772ae){const _0x1208f3=a48_0x1c2699,_0x5bff80=_0x4772ae[_0x1208f3(0x104)](_0x1208f3(0xfa)),_0x452718=validateSkillDirectory(_0x4772ae[_0x1208f3(0x10c)]('dir'),{'strict':_0x5bff80});return throwIfSkillValidationFailed(_0x452718,_0x5bff80),{'ok':!![],'data':{'dir':_0x452718['dir'],'type':_0x452718[_0x1208f3(0x106)],'errors':_0x452718['errors'],'warnings':_0x452718[_0x1208f3(0x100)]},'message':_0x1208f3(0x105)};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a49_0x1289(_0x1a6934,_0x3e06ca){_0x1a6934=_0x1a6934-0x121;const _0x5c31c6=a49_0x5c31();let _0x128943=_0x5c31c6[_0x1a6934];return _0x128943;}(function(_0x338f17,_0x40c16c){const _0x1c3273=a49_0x1289,_0x49995c=_0x338f17();while(!![]){try{const _0x193772=parseInt(_0x1c3273(0x12b))/0x1*(parseInt(_0x1c3273(0x126))/0x2)+parseInt(_0x1c3273(0x137))/0x3*(parseInt(_0x1c3273(0x13a))/0x4)+-parseInt(_0x1c3273(0x123))/0x5*(parseInt(_0x1c3273(0x12f))/0x6)+-parseInt(_0x1c3273(0x124))/0x7*(parseInt(_0x1c3273(0x125))/0x8)+-parseInt(_0x1c3273(0x12d))/0x9+parseInt(_0x1c3273(0x12c))/0xa+-parseInt(_0x1c3273(0x12e))/0xb*(-parseInt(_0x1c3273(0x139))/0xc);if(_0x193772===_0x40c16c)break;else _0x49995c['push'](_0x49995c['shift']());}catch(_0x2e82b9){_0x49995c['push'](_0x49995c['shift']());}}}(a49_0x5c31,0x5d4ee));import{existsSync,readFileSync,realpathSync,statSync}from'node:fs';import{resolve}from'node:path';import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0xc54f57){const _0x3a7b47=a49_0x1289;return(await readRequiredSkillDiagramInput(_0xc54f57))[_0x3a7b47(0x122)];}function a49_0x5c31(){const _0x55d19c=['114712SSLjOR','4670VQklET','parse','Mermaid\x20syntax\x20validation\x20failed.','trim','document','65IagoRg','5839460hEmbex','4037454ggaiaw','44WnXPHz','766638KLOsdd','window','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','isFile','replace','validation','22989dMkTCr','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','2205312sxWGmU','32lufxnD','mermaid','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','diagram','5yfigTd','280PVtKiK'];a49_0x5c31=function(){return _0x55d19c;};return a49_0x5c31();}export async function readRequiredSkillDiagramInput(_0x23acb0){const _0x14f464=a49_0x1289,_0x33a9b6=_0x23acb0[_0x14f464(0x129)]();if(!_0x33a9b6)throw CliErrors[_0x14f464(0x136)](_0x14f464(0x132),_0x14f464(0x133));let _0x182ab5,_0x56c763;if(_0x33a9b6==='-')try{_0x182ab5=readFileSync(0x0,'utf8');}catch{throw CliErrors[_0x14f464(0x136)](_0x14f464(0x131));}else{const _0x3e8541=resolve(_0x33a9b6);if(!existsSync(_0x3e8541))throw CliErrors[_0x14f464(0x136)](_0x14f464(0x121)+_0x3e8541);if(!statSync(_0x3e8541)[_0x14f464(0x134)]())throw CliErrors[_0x14f464(0x136)]('Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x3e8541);_0x56c763=realpathSync(_0x3e8541),_0x182ab5=readFileSync(_0x56c763,'utf8');}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x182ab5)},'sourceFilePath':_0x56c763};}export async function validateAndCanonicalizeMermaid(_0x1e41db){const _0x3f821f=a49_0x1289,_0x54bbf1=_0x1e41db['replace'](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')[_0x3f821f(0x135)](/\n+$/,'')+'\x0a';try{const _0x20b0c8=await loadMermaidApi();await _0x20b0c8[_0x3f821f(0x127)](_0x54bbf1);}catch{throw diagramValidationError();}return _0x54bbf1;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x14a3bb=a49_0x1289;if(!(_0x14a3bb(0x130)in globalThis)||!('document'in globalThis)){const _0x280360=new JSDOM('');Object['defineProperties'](globalThis,{'window':{'configurable':!![],'value':_0x280360[_0x14a3bb(0x130)]},'document':{'configurable':!![],'value':_0x280360[_0x14a3bb(0x130)][_0x14a3bb(0x12a)]}});}return(await import(_0x14a3bb(0x13b)))['default'];})()),mermaidApiPromise;}function diagramValidationError(){const _0x31fe1a=a49_0x1289;return CliErrors[_0x31fe1a(0x136)](_0x31fe1a(0x128),_0x31fe1a(0x138));}
|