@lovrabet/lovrabet-cli 2.1.23-beta.3 → 2.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.d.ts +2 -8
- 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.d.ts +6 -0
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/npx-skills-add.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.d.ts +4 -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.d.ts +1 -0
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a37_0x20b9(_0x2cabcc,_0x3ab083){_0x2cabcc=_0x2cabcc-0x129;const _0x53a23a=a37_0x53a2();let _0x20b97b=_0x53a23a[_0x2cabcc];return _0x20b97b;}const a37_0x5a482e=a37_0x20b9;(function(_0x575c09,_0x128577){const _0x31bab3=a37_0x20b9,_0x3906dc=_0x575c09();while(!![]){try{const _0x5949c3=parseInt(_0x31bab3(0x159))/0x1+parseInt(_0x31bab3(0x136))/0x2+-parseInt(_0x31bab3(0x12a))/0x3*(-parseInt(_0x31bab3(0x129))/0x4)+-parseInt(_0x31bab3(0x165))/0x5+-parseInt(_0x31bab3(0x135))/0x6*(-parseInt(_0x31bab3(0x149))/0x7)+parseInt(_0x31bab3(0x12c))/0x8*(-parseInt(_0x31bab3(0x162))/0x9)+parseInt(_0x31bab3(0x14f))/0xa*(-parseInt(_0x31bab3(0x14c))/0xb);if(_0x5949c3===_0x128577)break;else _0x3906dc['push'](_0x3906dc['shift']());}catch(_0x2d218f){_0x3906dc['push'](_0x3906dc['shift']());}}}(a37_0x53a2,0x9ed01));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':'kind','type':'string','required':!![],'enum':[a37_0x5a482e(0x12f),a37_0x5a482e(0x143)],'description':a37_0x5a482e(0x130)},CRON_FLAG={'name':a37_0x5a482e(0x14b),'type':a37_0x5a482e(0x142),'description':a37_0x5a482e(0x156)},SCHEDULED_AT_FLAG={'name':a37_0x5a482e(0x164),'type':a37_0x5a482e(0x142),'description':a37_0x5a482e(0x141)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a37_0x5a482e(0x151)},PROMPT_FLAG={'name':'prompt','type':a37_0x5a482e(0x142),'required':!![],'description':a37_0x5a482e(0x15f)},CHANNEL_FLAG={'name':'channel','type':a37_0x5a482e(0x142),'enum':[a37_0x5a482e(0x12b),a37_0x5a482e(0x12e)],'default':a37_0x5a482e(0x12e),'description':a37_0x5a482e(0x150)},SCHEDULE_ID_FLAG={'name':a37_0x5a482e(0x13c),'type':a37_0x5a482e(0x142),'required':!![],'description':a37_0x5a482e(0x163),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a37_0x5a482e(0x15e)}},LIMIT_FLAG={'name':a37_0x5a482e(0x131),'type':a37_0x5a482e(0x16c),'default':0x14,'description':a37_0x5a482e(0x13b)},CURSOR_FLAG={'name':a37_0x5a482e(0x169),'type':a37_0x5a482e(0x142),'description':'Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call'},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,CHANNEL_FLAG];function readScheduleInput(_0x1d6bed){const _0x40cddb=a37_0x5a482e,_0x4b2c13=_0x1d6bed[_0x40cddb(0x16f)](_0x40cddb(0x146)),_0x4f9e54=_0x1d6bed[_0x40cddb(0x16f)]('title')[_0x40cddb(0x138)](),_0x21d5ba=_0x1d6bed[_0x40cddb(0x16f)]('prompt')[_0x40cddb(0x138)](),_0x461915=_0x1d6bed['str'](_0x40cddb(0x139)),_0x45a1ec=_0x1d6bed['str'](_0x40cddb(0x14b)),_0x13d793=_0x1d6bed[_0x40cddb(0x16f)]('scheduled-at');if(!_0x4f9e54)throw CliErrors[_0x40cddb(0x15a)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x21d5ba)throw CliErrors[_0x40cddb(0x15a)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x4b2c13===_0x40cddb(0x12f)){if(!_0x45a1ec||_0x13d793)throw CliErrors[_0x40cddb(0x15a)](_0x40cddb(0x137));return{'kind':_0x4b2c13,'timezone':_0x40cddb(0x14d),'cron':_0x45a1ec,'title':_0x4f9e54,'prompt':_0x21d5ba,'channel':_0x461915};}if(_0x4b2c13===_0x40cddb(0x143)){if(!_0x13d793||_0x45a1ec)throw CliErrors[_0x40cddb(0x15a)](_0x40cddb(0x13e));return{'kind':_0x4b2c13,'timezone':'UTC','scheduledAt':_0x13d793,'title':_0x4f9e54,'prompt':_0x21d5ba,'channel':_0x461915};}throw CliErrors[_0x40cddb(0x15a)](_0x40cddb(0x13d));}function scheduleCollectionPath(_0x4ec018){const _0x52b209=a37_0x5a482e;return _0x52b209(0x12d)+encodeURIComponent(_0x4ec018)+_0x52b209(0x13a);}function a37_0x53a2(){const _0x1772f7=['ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','num','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','string','ONCE','Preview:\x20create\x20an\x20Agent\x20schedule','description','kind','POST','build','14aVICOM','Preview:\x20delete\x20schedule\x20','cron','3777070itYzJf','UTC','appCode','10UaBXUA','Task\x20channel:\x20auto\x20or\x20premium','Schedule\x20title','high-risk-write','立即运行一次定时任务并创建\x20Task','length','Preview:\x20run\x20schedule\x20','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','\x20immediately','run','965527BSJbWS','validation','将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','schedule','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','read','创建周期性或单次执行的\x20Agent\x20定时任务','603UCOLku','Schedule\x20UUID','scheduled-at','5737300mEziip','/run','Created\x20','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','cursor','taskId','body','number','删除定时任务并停止其后续触发','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','str','4CZQgSA','2330274pfAoOz','auto','33576ODdYel','/api/harness/apps/','premium','CRON','Schedule\x20kind:\x20CRON\x20or\x20ONCE','limit','Schedule\x20input\x20is\x20valid','list','Show\x20one\x20schedule\x20by\x20schedule\x20ID','1110954EfeABH','619846AwxFve','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','trim','channel','/schedules','Page\x20size\x20from\x201\x20to\x20100','schedule-id','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.'];a37_0x53a2=function(){return _0x1772f7;};return a37_0x53a2();}function scheduleItemPath(_0x1094d4,_0x5ee803){return scheduleCollectionPath(_0x1094d4)+'/'+encodeURIComponent(_0x5ee803);}const scheduleValidate={'service':a37_0x5a482e(0x15d),'command':'validate','description':a37_0x5a482e(0x168),'risk':a37_0x5a482e(0x160),'flags':INPUT_FLAGS,async 'validate'(_0x3ff9b8){readScheduleInput(_0x3ff9b8);},async 'execute'(_0x4553c3){const _0x660746=a37_0x5a482e,_0x370713=readScheduleInput(_0x4553c3),_0x58ceaa=await validateRuntimeSchedule(_0x4553c3[_0x660746(0x14e)],_0x370713);return{'ok':!![],'data':_0x58ceaa,'message':_0x660746(0x132)};}},scheduleCreate={'service':'schedule','command':'create','description':a37_0x5a482e(0x161),'risk':a37_0x5a482e(0x152),'confirmationDescription':'将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','flags':INPUT_FLAGS,async 'validate'(_0x3022b3){readScheduleInput(_0x3022b3);},async 'execute'(_0x3182d3){const _0x8a911b=a37_0x5a482e,_0x2544b9=readScheduleInput(_0x3182d3),_0x45687a=await validateRuntimeSchedule(_0x3182d3[_0x8a911b(0x14e)],_0x2544b9),_0x5cc58b=await createRuntimeSchedule(_0x3182d3[_0x8a911b(0x14e)],_0x45687a);return{'ok':!![],'data':_0x5cc58b,'message':_0x8a911b(0x167)+_0x5cc58b[_0x8a911b(0x146)]+'\x20schedule\x20'+_0x5cc58b['scheduleId']};},async 'dryRun'(_0x18a144){const _0x4ae6d7=a37_0x5a482e,_0x5d45cf=readScheduleInput(_0x18a144);return dryRun(_0x4ae6d7(0x147),scheduleCollectionPath(_0x18a144[_0x4ae6d7(0x14e)]))[_0x4ae6d7(0x16b)](_0x5d45cf)['description'](_0x4ae6d7(0x144))[_0x4ae6d7(0x148)]();}},scheduleList={'service':'schedule','command':a37_0x5a482e(0x133),'description':a37_0x5a482e(0x15c),'risk':a37_0x5a482e(0x160),'flags':[LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x301735){const _0x42b61b=a37_0x5a482e,_0x29278c=_0x301735[_0x42b61b(0x140)]('limit');if(!Number['isSafeInteger'](_0x29278c)||_0x29278c<0x1||_0x29278c>0x64)throw CliErrors[_0x42b61b(0x15a)](_0x42b61b(0x13f));const _0x4c2e90=_0x301735['str'](_0x42b61b(0x169));if(_0x4c2e90&&(_0x4c2e90[_0x42b61b(0x154)]>0x400||_0x4c2e90['trim']()!==_0x4c2e90))throw CliErrors['validation'](_0x42b61b(0x16e));},async 'execute'(_0x51b725){const _0x1cf486=a37_0x5a482e,_0x13d9d7=_0x51b725[_0x1cf486(0x16f)](_0x1cf486(0x169)),_0x42671f=await listRuntimeSchedules(_0x51b725[_0x1cf486(0x14e)],{'limit':_0x51b725[_0x1cf486(0x140)](_0x1cf486(0x131)),..._0x13d9d7?{'cursor':_0x13d9d7}:{}});return{'ok':!![],'data':_0x42671f};}},scheduleDetail={'service':'schedule','command':'detail','description':a37_0x5a482e(0x134),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1382fd){const _0x1ade7f=a37_0x5a482e,_0x5d98e3=await getRuntimeSchedule(_0x1382fd[_0x1ade7f(0x14e)],_0x1382fd[_0x1ade7f(0x16f)](_0x1ade7f(0x13c)));return{'ok':!![],'data':_0x5d98e3};}},scheduleRun={'service':a37_0x5a482e(0x15d),'command':a37_0x5a482e(0x158),'description':a37_0x5a482e(0x153),'risk':'high-risk-write','confirmationDescription':a37_0x5a482e(0x15b),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3e6146){const _0x5a25b9=a37_0x5a482e,_0x555bbd=_0x3e6146['str'](_0x5a25b9(0x13c)),_0x38be76=await runRuntimeSchedule(_0x3e6146[_0x5a25b9(0x14e)],_0x555bbd);return{'ok':!![],'data':_0x38be76,'message':'Queued\x20Task\x20'+_0x38be76[_0x5a25b9(0x16a)]+'\x20from\x20schedule\x20'+_0x555bbd};},async 'dryRun'(_0x427295){const _0x4c0a61=a37_0x5a482e,_0x2d057f=_0x427295['str'](_0x4c0a61(0x13c));return dryRun('POST',scheduleItemPath(_0x427295[_0x4c0a61(0x14e)],_0x2d057f)+_0x4c0a61(0x166))['description'](_0x4c0a61(0x155)+_0x2d057f+_0x4c0a61(0x157))['build']();}},scheduleDelete={'service':a37_0x5a482e(0x15d),'command':'delete','description':a37_0x5a482e(0x16d),'risk':'high-risk-write','confirmationDescription':'将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x14e0fd){const _0x84b05e=a37_0x5a482e,_0x7acd1=_0x14e0fd[_0x84b05e(0x16f)](_0x84b05e(0x13c)),_0x2685fc=await deleteRuntimeSchedule(_0x14e0fd[_0x84b05e(0x14e)],_0x7acd1);return{'ok':!![],'data':_0x2685fc,'message':'Deleted\x20schedule\x20'+_0x7acd1};},async 'dryRun'(_0xe79d41){const _0x4f7cf8=a37_0x5a482e,_0x2604ba=_0xe79d41[_0x4f7cf8(0x16f)](_0x4f7cf8(0x13c));return dryRun('DELETE',scheduleItemPath(_0xe79d41[_0x4f7cf8(0x14e)],_0x2604ba))[_0x4f7cf8(0x145)](_0x4f7cf8(0x14a)+_0x2604ba)[_0x4f7cf8(0x148)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a38_0x234c33=a38_0x690c;function a38_0x690c(_0x520730,_0x5ea89b){_0x520730=_0x520730-0x146;const _0x205e98=a38_0x205e();let _0x690cdf=_0x205e98[_0x520730];return _0x690cdf;}function a38_0x205e(){const _0x55e346=['18WaFYtE','71921DsaHZi','4uHDirX','270318TTzwJV','Export\x20machine-readable\x20command\x20schema\x20(JSON)','12GiXvft','1985886lLRaOn','read','283688qJbqdm','5351360RhTJBw','1365156qewtJG','schema','966804jKtqKP','110YHwJbn','export','5FoQfeL'];a38_0x205e=function(){return _0x55e346;};return a38_0x205e();}(function(_0x118161,_0x35c971){const _0x46c2ce=a38_0x690c,_0x213338=_0x118161();while(!![]){try{const _0xf95445=-parseInt(_0x46c2ce(0x14b))/0x1+-parseInt(_0x46c2ce(0x14c))/0x2*(parseInt(_0x46c2ce(0x14d))/0x3)+parseInt(_0x46c2ce(0x154))/0x4*(parseInt(_0x46c2ce(0x149))/0x5)+-parseInt(_0x46c2ce(0x14f))/0x6*(-parseInt(_0x46c2ce(0x150))/0x7)+-parseInt(_0x46c2ce(0x152))/0x8*(parseInt(_0x46c2ce(0x14a))/0x9)+parseInt(_0x46c2ce(0x153))/0xa+parseInt(_0x46c2ce(0x147))/0xb*(-parseInt(_0x46c2ce(0x146))/0xc);if(_0xf95445===_0x35c971)break;else _0x213338['push'](_0x213338['shift']());}catch(_0x2c8ea5){_0x213338['push'](_0x213338['shift']());}}}(a38_0x205e,0x4ced8));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x2986ec){const _0x1507dd=await buildSchemaPayload();return{'ok':!![],'data':_0x1507dd};}export const schemaDefinition={'service':a38_0x234c33(0x155),'command':a38_0x234c33(0x148),'description':a38_0x234c33(0x14e),'risk':a38_0x234c33(0x151),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x379f9e,_0x59d6cf){const _0x562d0b=a39_0x1bc4,_0x227606=_0x379f9e();while(!![]){try{const _0x66b74=-parseInt(_0x562d0b(0x1ba))/0x1*(-parseInt(_0x562d0b(0x1d8))/0x2)+parseInt(_0x562d0b(0x185))/0x3+-parseInt(_0x562d0b(0x1ca))/0x4+-parseInt(_0x562d0b(0x1c9))/0x5+-parseInt(_0x562d0b(0x1e1))/0x6+-parseInt(_0x562d0b(0x1ae))/0x7*(-parseInt(_0x562d0b(0x199))/0x8)+-parseInt(_0x562d0b(0x1dc))/0x9*(-parseInt(_0x562d0b(0x1ad))/0xa);if(_0x66b74===_0x59d6cf)break;else _0x227606['push'](_0x227606['shift']());}catch(_0x7f5456){_0x227606['push'](_0x227606['shift']());}}}(a39_0x217a,0xe30d9));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';function a39_0x217a(){const _0x1c6d51=['read','cliPath','context.','\x20\x20SERVICE\x20TREE\x20TARGET','join','default','code','scriptName','high-risk-write','args','startsWith','\x20\x20[','sql','7140zsMIJQ','35SzoZse','some','datatable','\x20\x20\x20\x20sqlCode:\x20','tree','dbtableConfig','fromEntries','find','app','\x22\x20in\x20service\x20command\x20','required','\x20\x20MAP\x20TO','15821dElSEi','filter','json','remainingArgs','now','appcode','name','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','service','\x20requires\x20target.functionName.','\x20requires\x20target.sqlCode.','params','\x20\x20\x20\x20datasetCode:\x20','validation','\x20->\x20','3337460jxyVRE','733332wvjaDb','\x20service\x20detail\x20--service\x20','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','nickName','tenantCode','appCode','enum','bffCode','Commands:','\x20\x20\x20\x20functionName:\x20','target','sqlCode','nickname','Service\x20command\x20','166HBKIif','command','env','appRef','8136ZsaSLq','Unknown\x20appRef\x20\x22','flatMap','Run\x20service\x20command\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','7584078wtMclI','SERVICE_TREE','Use\x20`','\x20<command>\x20[flags]','fullPath','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','rawFlags','commands','operator','flags','number','Cannot\x20resolve\x20datatable\x20\x22','normalizedManifest','username','boolean','risk','employeeId','kind','2393154bTdEzi','string','datasetCode','envName','entries','source','bff','map','push','loginName','将通过\x20Service\x20Tree\x20执行“','type','`\x20to\x20inspect\x20the\x20manifest.','userName','mapTo','tableName','userId','slice','data','bffId','461648uBBXBh','appBindings','description','\x20\x20\x20\x20','cliName','length','\x20\x20\x20\x20kind:\x20\x20\x20\x20'];a39_0x217a=function(){return _0x1c6d51;};return a39_0x217a();}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x3efeca,_0x487ccd){const _0x15825e=a39_0x1bc4,_0x422067=listLocalServiceTrees();let _0x4b4b7c;for(const _0x10f960 of _0x422067){const _0x950a84=matchServiceTreeCommand(_0x10f960,_0x3efeca);if(!_0x950a84)continue;(!_0x4b4b7c||_0x950a84[_0x15825e(0x1d9)][_0x15825e(0x176)][_0x15825e(0x19e)]>_0x4b4b7c[_0x15825e(0x1d9)][_0x15825e(0x176)][_0x15825e(0x19e)])&&(_0x4b4b7c={'tree':_0x10f960,'command':_0x950a84[_0x15825e(0x1d9)],'remainingArgs':_0x950a84[_0x15825e(0x1bd)]});}if(!_0x4b4b7c)return undefined;const _0x214ca6={..._0x487ccd};return applyAppBinding(_0x4b4b7c[_0x15825e(0x1b2)],_0x4b4b7c[_0x15825e(0x1d9)],_0x214ca6),{'definition':buildDynamicCommandDefinition(_0x4b4b7c[_0x15825e(0x1b2)],_0x4b4b7c[_0x15825e(0x1d9)]),'args':_0x4b4b7c[_0x15825e(0x1bd)],'flags':_0x214ca6,'tree':_0x4b4b7c[_0x15825e(0x1b2)],'command':_0x4b4b7c[_0x15825e(0x1d9)]};}export function generateDynamicServiceHelp(_0x129a34){const _0x328c62=a39_0x1bc4,_0x5bc098=listLocalServiceTrees()[_0x328c62(0x1b5)](_0x34425e=>_0x34425e[_0x328c62(0x1c2)][_0x328c62(0x1a6)]===_0x129a34);if(!_0x5bc098)return undefined;const _0x4c6ecf=[CLI_BIN_NAME+'\x20'+_0x129a34+_0x328c62(0x175),'',_0x5bc098['service'][_0x328c62(0x1c0)]||_0x129a34,_0x5bc098[_0x328c62(0x1c2)][_0x328c62(0x19b)]?'\x20\x20'+_0x5bc098['service']['description']:'','',_0x328c62(0x1d2),..._0x5bc098[_0x328c62(0x17a)][_0x328c62(0x18c)](_0x572914=>{const _0x44077e=_0x328c62,_0x3ec1c8=_0x572914[_0x44077e(0x176)]['slice'](0x1)['join']('\x20'),_0x4e67b5=_0x572914['risk']===_0x44077e(0x1a0)?'':'\x20['+_0x572914['risk']+']';return'\x20\x20'+_0x3ec1c8['padEnd'](0x18)+'\x20'+(_0x572914['description']||'')+_0x4e67b5;}),'',_0x328c62(0x174)+CLI_BIN_NAME+_0x328c62(0x1cb)+_0x129a34+_0x328c62(0x191)][_0x328c62(0x1bb)](Boolean);return _0x4c6ecf[_0x328c62(0x1a4)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x5321b0=>{const _0x454e05=a39_0x1bc4,_0x1f3301=_0x5321b0[_0x454e05(0x17f)];return{'service':_0x1f3301[_0x454e05(0x1c2)][_0x454e05(0x1a6)],'label':_0x1f3301['service'][_0x454e05(0x1c0)]||_0x1f3301[_0x454e05(0x1c2)][_0x454e05(0x1a6)],'commands':_0x1f3301[_0x454e05(0x17a)]['map'](_0xc1771b=>({'command':dynamicCommandName(_0xc1771b),'description':_0xc1771b[_0x454e05(0x19b)]||_0x454e05(0x1df)+_0xc1771b[_0x454e05(0x1a1)],'tag':riskTag(_0xc1771b[_0x454e05(0x182)])}))};});}export function getDynamicServiceEntry(_0xdb2d80){const _0x4dac90=a39_0x1bc4;return listDynamicServiceEntries()[_0x4dac90(0x1b5)](_0x2b7c1b=>_0x2b7c1b[_0x4dac90(0x1c2)]===_0xdb2d80);}export function listDynamicServiceDefinitions(_0x593808){const _0x596dd0=a39_0x1bc4;return listLocalServiceTrees()[_0x596dd0(0x1bb)](_0x2c959d=>!_0x593808||_0x2c959d[_0x596dd0(0x1c2)][_0x596dd0(0x1a6)]===_0x593808)[_0x596dd0(0x1de)](_0x21ce8a=>_0x21ce8a[_0x596dd0(0x17a)][_0x596dd0(0x18c)](_0x3975ea=>buildDynamicCommandDefinition(_0x21ce8a,_0x3975ea)));}export function getDynamicServiceDefinitions(_0x557545){const _0x33001e=listDynamicServiceDefinitions(_0x557545);return _0x33001e['length']>0x0?_0x33001e:undefined;}export function findDynamicServiceDefinition(_0x5bb1f1,_0x13fc8e){const _0x1e9cbf=a39_0x1bc4;return listDynamicServiceDefinitions(_0x5bb1f1)[_0x1e9cbf(0x1b5)](_0x1805db=>_0x1805db[_0x1e9cbf(0x1d9)]===_0x13fc8e);}export function buildDynamicCommandDefinition(_0x6caa1a,_0x4b0f9c){const _0x25d24c=a39_0x1bc4;return{'service':_0x6caa1a[_0x25d24c(0x1c2)][_0x25d24c(0x1a6)],'command':dynamicCommandName(_0x4b0f9c),'description':_0x4b0f9c[_0x25d24c(0x19b)]||'Run\x20service\x20command\x20'+_0x4b0f9c['cliPath'],'risk':_0x4b0f9c['risk'],..._0x4b0f9c['risk']===_0x25d24c(0x1a0)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x4b0f9c)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x4b0f9c[_0x25d24c(0x1a9)][_0x25d24c(0x18c)](_0x1b36bb=>({'name':_0x1b36bb['name'],'description':_0x1b36bb[_0x25d24c(0x19b)]||_0x1b36bb[_0x25d24c(0x1c0)],'required':_0x1b36bb[_0x25d24c(0x1b8)]})),'flags':_0x4b0f9c[_0x25d24c(0x17c)][_0x25d24c(0x18c)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x4b0f9c),async 'dryRun'(_0x2b89fb){const _0x346fd2=_0x25d24c,_0x3e8b70=await compilePlan(_0x4b0f9c,_0x2b89fb);return{'method':_0x346fd2(0x173),'url':_0x4b0f9c[_0x346fd2(0x1a1)],'body':{'target':targetPreview(_0x3e8b70),'params':_0x3e8b70[_0x346fd2(0x1c5)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x4b0f9c[_0x346fd2(0x1a1)]};},async 'execute'(_0x5b1e6a){const _0x214fda=_0x25d24c,_0x52d66c=await compilePlan(_0x4b0f9c,_0x5b1e6a),_0x161dc0=Date[_0x214fda(0x1be)](),_0x28ed2b=await executePlan(_0x52d66c,_0x4b0f9c,_0x5b1e6a),_0x519a36=Date[_0x214fda(0x1be)]()-_0x161dc0;return{'ok':!![],'data':{'service':_0x6caa1a[_0x214fda(0x1c2)],'command':_0x4b0f9c[_0x214fda(0x1a1)],'target':targetPreview(_0x52d66c),'result':_0x28ed2b,'elapsed':_0x519a36},'message':_0x214fda(0x1d7)+_0x4b0f9c[_0x214fda(0x1a1)]+'\x20completed\x20in\x20'+_0x519a36+'ms'};}};}function buildDynamicConfirmationDescription(_0x37d8da){const _0x4dfd89=a39_0x1bc4,_0x55dd59=_0x37d8da['description']||_0x37d8da[_0x4dfd89(0x1a1)],_0x29f835=_0x37d8da['risk']===_0x4dfd89(0x1a8)?_0x4dfd89(0x1cc):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return _0x4dfd89(0x18f)+_0x55dd59+'”。'+_0x29f835;}function a39_0x1bc4(_0x18bd15,_0xcecf6e){_0x18bd15=_0x18bd15-0x173;const _0x217a06=a39_0x217a();let _0x1bc4e8=_0x217a06[_0x18bd15];return _0x1bc4e8;}function dynamicCommandName(_0x2fbb36){const _0x3a4707=a39_0x1bc4;return _0x2fbb36[_0x3a4707(0x176)][_0x3a4707(0x196)](0x1)[_0x3a4707(0x1a4)]('\x20');}function riskTag(_0x6d311e){const _0x49f43a=a39_0x1bc4;return _0x6d311e===_0x49f43a(0x1a0)?'':_0x49f43a(0x1ab)+_0x6d311e+']';}function flagToCommandFlag(_0x3d33d0){const _0xbe8a77=a39_0x1bc4;return{'name':_0x3d33d0[_0xbe8a77(0x19d)],'type':_0x3d33d0[_0xbe8a77(0x190)]===_0xbe8a77(0x1bc)?'string':_0x3d33d0[_0xbe8a77(0x190)],'description':_0x3d33d0[_0xbe8a77(0x19b)]||_0x3d33d0[_0xbe8a77(0x1c0)],'required':_0x3d33d0[_0xbe8a77(0x1b8)],'default':isPrimitiveFlagDefault(_0x3d33d0['default'])?_0x3d33d0[_0xbe8a77(0x1a5)]:undefined,'enum':_0x3d33d0[_0xbe8a77(0x1d0)]};}async function compilePlan(_0x3b7ce7,_0x45aa6d){const _0x208cdc=a39_0x1bc4;return compileServiceTreeCommand(_0x3b7ce7,{'flags':_0x45aa6d[_0x208cdc(0x179)],'args':_0x45aa6d[_0x208cdc(0x1a9)],'context':await buildServiceContext(_0x3b7ce7,_0x45aa6d)});}async function buildServiceContext(_0x5de472,_0x11cab6){const _0x2d2ffb=a39_0x1bc4,_0x3f5fd3={'appCode':_0x11cab6[_0x2d2ffb(0x1cf)],'env':_0x11cab6['envName'],'envName':_0x11cab6[_0x2d2ffb(0x188)]};if(!usesRuntimeContext(_0x5de472))return _0x3f5fd3;const _0x2825f4=await getLoginUserInfo(),_0x63f443=pickFirst(_0x2825f4[_0x2d2ffb(0x195)],_0x2825f4['id']);return{..._0x3f5fd3,'user':_0x2825f4,'userId':_0x63f443,'id':_0x2825f4['id'],'username':pickFirst(_0x2825f4[_0x2d2ffb(0x180)],_0x2825f4[_0x2d2ffb(0x192)],_0x2825f4[_0x2d2ffb(0x18e)]),'userName':_0x2825f4[_0x2d2ffb(0x192)],'nickname':pickFirst(_0x2825f4[_0x2d2ffb(0x1d6)],_0x2825f4[_0x2d2ffb(0x1cd)]),'nickName':_0x2825f4[_0x2d2ffb(0x1cd)],'tenantCode':_0x2825f4[_0x2d2ffb(0x1ce)],'employeeId':_0x2825f4[_0x2d2ffb(0x183)]};}function usesRuntimeContext(_0x13a294){const _0x54c278=a39_0x1bc4;return _0x13a294['mapTo'][_0x54c278(0x1af)](_0x20493f=>typeof _0x20493f['source']===_0x54c278(0x186)&&(_0x20493f[_0x54c278(0x18a)]['startsWith'](_0x54c278(0x1a2))||_0x20493f[_0x54c278(0x18a)][_0x54c278(0x1aa)]('ctx.')));}function pickFirst(..._0x185a6f){const _0x2d2fdc=a39_0x1bc4;return _0x185a6f[_0x2d2fdc(0x1b5)](_0x34e781=>_0x34e781!==undefined&&_0x34e781!==null);}async function executePlan(_0x4eabf5,_0x5a38f8,_0x555c21){const _0xa843fb=a39_0x1bc4;if(_0x4eabf5[_0xa843fb(0x184)]===_0xa843fb(0x197)){const _0x1b0eee=await resolveDatasetCode(_0x4eabf5,_0x5a38f8,_0x555c21);return executeData(_0x1b0eee,_0x4eabf5['command'],_0x4eabf5['params']);}if(_0x4eabf5[_0xa843fb(0x184)]===_0xa843fb(0x1ac)){if(!_0x4eabf5[_0xa843fb(0x1d5)])throw CliErrors['validation'](_0xa843fb(0x1d7)+_0x5a38f8[_0xa843fb(0x1a1)]+_0xa843fb(0x1c4));return executeSdkSql(_0x4eabf5[_0xa843fb(0x1d5)],normalizeScalarParams(_0x4eabf5['params']));}if(_0x4eabf5[_0xa843fb(0x184)]===_0xa843fb(0x18b)){const _0x96c081=_0x4eabf5['scriptName']||_0x4eabf5[_0xa843fb(0x1d1)]||(_0x4eabf5[_0xa843fb(0x198)]==null?'':String(_0x4eabf5[_0xa843fb(0x198)]));if(!_0x96c081)throw CliErrors[_0xa843fb(0x1c7)](_0xa843fb(0x1d7)+_0x5a38f8['cliPath']+_0xa843fb(0x1c3));return executeSdkBff(_0x96c081,_0x4eabf5[_0xa843fb(0x1c5)]);}throw CliErrors[_0xa843fb(0x1c7)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x4eabf5[_0xa843fb(0x184)]);}async function resolveDatasetCode(_0x5d4f98,_0x420ecf,_0x21c04b){const _0x540403=a39_0x1bc4;if(_0x5d4f98[_0x540403(0x187)])return _0x5d4f98[_0x540403(0x187)];if(!_0x5d4f98[_0x540403(0x1b0)])throw CliErrors['validation'](_0x540403(0x1d7)+_0x420ecf[_0x540403(0x1a1)]+_0x540403(0x177));const _0x2e3ec5=await listDatasets(_0x21c04b[_0x540403(0x1cf)]),_0x307e4b=_0x2e3ec5['find'](_0x39520e=>_0x39520e[_0x540403(0x1b3)]?.[_0x540403(0x194)]===_0x5d4f98[_0x540403(0x1b0)]);if(!_0x307e4b?.[_0x540403(0x1a6)])throw CliErrors[_0x540403(0x1c7)](_0x540403(0x17e)+_0x5d4f98[_0x540403(0x1b0)]+_0x540403(0x1e0)+_0x21c04b[_0x540403(0x1cf)]+'.',_0x540403(0x178));return _0x307e4b[_0x540403(0x1a6)];}function applyAppBinding(_0x443908,_0x3318ec,_0x253f07){const _0x448671=a39_0x1bc4,_0x18e3eb=_0x3318ec['target'][_0x448671(0x1db)];if(!_0x18e3eb)return;const _0x3d81af=_0x443908[_0x448671(0x19a)][_0x18e3eb];if(!_0x3d81af)throw CliErrors[_0x448671(0x1c7)](_0x448671(0x1dd)+_0x18e3eb+_0x448671(0x1b7)+_0x3318ec[_0x448671(0x1a1)]+'.',_0x448671(0x1c1));const _0x1518fb=_0x3d81af['appcode']||_0x3d81af['appCode'];_0x1518fb&&!hasText(_0x253f07[_0x448671(0x1bf)])&&(_0x253f07[_0x448671(0x1bf)]=_0x1518fb),_0x3d81af[_0x448671(0x1b6)]&&!hasText(_0x253f07[_0x448671(0x1b6)])&&!hasText(_0x253f07[_0x448671(0x1bf)])&&(_0x253f07[_0x448671(0x1b6)]=_0x3d81af['app']),_0x3d81af[_0x448671(0x1da)]&&!hasText(_0x253f07[_0x448671(0x1da)])&&(_0x253f07[_0x448671(0x1da)]=_0x3d81af['env']);}function renderDynamicCommandHelp(_0x4513ec){const _0x173a71=a39_0x1bc4,_0x380e60=[_0x173a71(0x1a3),_0x173a71(0x19f)+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x184)],'\x20\x20\x20\x20command:\x20'+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1d9)]];if(_0x4513ec[_0x173a71(0x1d4)]['datasetCode'])_0x380e60[_0x173a71(0x18d)](_0x173a71(0x1c6)+_0x4513ec[_0x173a71(0x1d4)]['datasetCode']);if(_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1b0)])_0x380e60[_0x173a71(0x18d)]('\x20\x20\x20\x20datatable:\x20'+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1b0)]);if(_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1d5)])_0x380e60['push'](_0x173a71(0x1b1)+_0x4513ec['target'][_0x173a71(0x1d5)]);if(_0x4513ec[_0x173a71(0x1d4)]['scriptName'])_0x380e60['push'](_0x173a71(0x1d3)+_0x4513ec[_0x173a71(0x1d4)][_0x173a71(0x1a7)]);if(_0x4513ec[_0x173a71(0x193)][_0x173a71(0x19e)]>0x0){_0x380e60[_0x173a71(0x18d)]('',_0x173a71(0x1b9));for(const _0x2242d5 of _0x4513ec[_0x173a71(0x193)]){_0x380e60[_0x173a71(0x18d)](_0x173a71(0x19c)+(_0x2242d5[_0x173a71(0x18a)]||'const')+_0x173a71(0x1c8)+_0x2242d5[_0x173a71(0x1d4)]+(_0x2242d5[_0x173a71(0x17b)]?'.'+_0x2242d5[_0x173a71(0x17b)]:''));}}return _0x380e60[_0x173a71(0x1a4)]('\x0a');}function targetPreview(_0xc044a6){const _0x37ed43=a39_0x1bc4;return{'kind':_0xc044a6[_0x37ed43(0x184)],'command':_0xc044a6[_0x37ed43(0x1d9)],'appRef':_0xc044a6['appRef'],'datasetCode':_0xc044a6[_0x37ed43(0x187)],'datatable':_0xc044a6[_0x37ed43(0x1b0)],'sqlCode':_0xc044a6[_0x37ed43(0x1d5)],'bffCode':_0xc044a6[_0x37ed43(0x1d1)],'bffId':_0xc044a6['bffId'],'functionName':_0xc044a6[_0x37ed43(0x1a7)]};}function normalizeScalarParams(_0x3f3ef7){const _0x319bf9=a39_0x1bc4;return Object[_0x319bf9(0x1b4)](Object[_0x319bf9(0x189)](_0x3f3ef7)['filter'](([,_0x2bc810])=>typeof _0x2bc810==='string'||typeof _0x2bc810===_0x319bf9(0x17d)));}function hasText(_0x2b0cff){const _0x340fda=a39_0x1bc4;return typeof _0x2b0cff===_0x340fda(0x186)&&_0x2b0cff['trim']()[_0x340fda(0x19e)]>0x0;}function isPrimitiveFlagDefault(_0x389ae0){const _0x43e105=a39_0x1bc4;return _0x389ae0===undefined||typeof _0x389ae0===_0x43e105(0x186)||typeof _0x389ae0===_0x43e105(0x17d)||typeof _0x389ae0===_0x43e105(0x181);}
|
|
1
|
+
(function(_0x2a7b6a,_0x1edad7){const _0x9417e8=a39_0x2190,_0x247fa5=_0x2a7b6a();while(!![]){try{const _0x17915e=parseInt(_0x9417e8(0x182))/0x1*(parseInt(_0x9417e8(0x14b))/0x2)+parseInt(_0x9417e8(0x17e))/0x3*(parseInt(_0x9417e8(0x14e))/0x4)+-parseInt(_0x9417e8(0x14c))/0x5+parseInt(_0x9417e8(0x14d))/0x6+parseInt(_0x9417e8(0x18f))/0x7+-parseInt(_0x9417e8(0x153))/0x8+-parseInt(_0x9417e8(0x1a4))/0x9;if(_0x17915e===_0x1edad7)break;else _0x247fa5['push'](_0x247fa5['shift']());}catch(_0x53501a){_0x247fa5['push'](_0x247fa5['shift']());}}}(a39_0x29f5,0x38e68));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(_0x2e0420,_0x55af71){const _0x47b3c4=a39_0x2190,_0x36ad50=listLocalServiceTrees();let _0x247753;for(const _0x3231cd of _0x36ad50){const _0xb2d06b=matchServiceTreeCommand(_0x3231cd,_0x2e0420);if(!_0xb2d06b)continue;(!_0x247753||_0xb2d06b[_0x47b3c4(0x15e)][_0x47b3c4(0x19b)]['length']>_0x247753[_0x47b3c4(0x15e)][_0x47b3c4(0x19b)][_0x47b3c4(0x1a2)])&&(_0x247753={'tree':_0x3231cd,'command':_0xb2d06b[_0x47b3c4(0x15e)],'remainingArgs':_0xb2d06b['remainingArgs']});}if(!_0x247753)return undefined;const _0x40390c={..._0x55af71};return applyAppBinding(_0x247753[_0x47b3c4(0x187)],_0x247753[_0x47b3c4(0x15e)],_0x40390c),{'definition':buildDynamicCommandDefinition(_0x247753[_0x47b3c4(0x187)],_0x247753[_0x47b3c4(0x15e)]),'args':_0x247753[_0x47b3c4(0x164)],'flags':_0x40390c,'tree':_0x247753[_0x47b3c4(0x187)],'command':_0x247753[_0x47b3c4(0x15e)]};}export function generateDynamicServiceHelp(_0x4759a4){const _0x19af62=a39_0x2190,_0xf3db1=listLocalServiceTrees()[_0x19af62(0x18b)](_0x3904c8=>_0x3904c8['service'][_0x19af62(0x19f)]===_0x4759a4);if(!_0xf3db1)return undefined;const _0x572408=[CLI_BIN_NAME+'\x20'+_0x4759a4+_0x19af62(0x157),'',_0xf3db1[_0x19af62(0x172)][_0x19af62(0x162)]||_0x4759a4,_0xf3db1['service'][_0x19af62(0x1ad)]?'\x20\x20'+_0xf3db1[_0x19af62(0x172)][_0x19af62(0x1ad)]:'','',_0x19af62(0x18e),..._0xf3db1[_0x19af62(0x1a8)]['map'](_0x352e77=>{const _0x40cf1a=_0x19af62,_0x2990e8=_0x352e77[_0x40cf1a(0x19b)][_0x40cf1a(0x19a)](0x1)[_0x40cf1a(0x18c)]('\x20'),_0x4a6e76=_0x352e77[_0x40cf1a(0x173)]===_0x40cf1a(0x170)?'':'\x20['+_0x352e77[_0x40cf1a(0x173)]+']';return'\x20\x20'+_0x2990e8[_0x40cf1a(0x14f)](0x18)+'\x20'+(_0x352e77[_0x40cf1a(0x1ad)]||'')+_0x4a6e76;}),'',_0x19af62(0x181)+CLI_BIN_NAME+_0x19af62(0x1a6)+_0x4759a4+_0x19af62(0x1a7)][_0x19af62(0x179)](Boolean);return _0x572408['join']('\x0a');}export function listDynamicServiceEntries(){const _0x3fd618=a39_0x2190;return listLocalServices()[_0x3fd618(0x18d)](_0x28626b=>{const _0x4a12fc=_0x3fd618,_0x245427=_0x28626b['normalizedManifest'];return{'service':_0x245427[_0x4a12fc(0x172)]['code'],'label':_0x245427[_0x4a12fc(0x172)][_0x4a12fc(0x162)]||_0x245427[_0x4a12fc(0x172)]['code'],'commands':_0x245427[_0x4a12fc(0x1a8)][_0x4a12fc(0x18d)](_0x4df866=>({'command':dynamicCommandName(_0x4df866),'description':_0x4df866['description']||_0x4a12fc(0x148)+_0x4df866[_0x4a12fc(0x195)],'tag':riskTag(_0x4df866['risk'])}))};});}export function getDynamicServiceEntry(_0x33f68f){const _0x25037a=a39_0x2190;return listDynamicServiceEntries()['find'](_0x3b364a=>_0x3b364a[_0x25037a(0x172)]===_0x33f68f);}export function listDynamicServiceDefinitions(_0x4bb146){const _0x52da2a=a39_0x2190;return listLocalServiceTrees()[_0x52da2a(0x179)](_0x138436=>!_0x4bb146||_0x138436[_0x52da2a(0x172)][_0x52da2a(0x19f)]===_0x4bb146)['flatMap'](_0x450b60=>_0x450b60[_0x52da2a(0x1a8)]['map'](_0x3a7ed9=>buildDynamicCommandDefinition(_0x450b60,_0x3a7ed9)));}export function getDynamicServiceDefinitions(_0x393cab){const _0x431e8b=a39_0x2190,_0x738b3d=listDynamicServiceDefinitions(_0x393cab);return _0x738b3d[_0x431e8b(0x1a2)]>0x0?_0x738b3d:undefined;}export function findDynamicServiceDefinition(_0x1164de,_0x5edbb4){const _0x2b4d4f=a39_0x2190;return listDynamicServiceDefinitions(_0x1164de)[_0x2b4d4f(0x18b)](_0x2dfd54=>_0x2dfd54['command']===_0x5edbb4);}export function buildDynamicCommandDefinition(_0x1ad484,_0x127bf7){const _0x4c0d59=a39_0x2190;return{'service':_0x1ad484[_0x4c0d59(0x172)]['code'],'command':dynamicCommandName(_0x127bf7),'description':_0x127bf7[_0x4c0d59(0x1ad)]||'Run\x20service\x20command\x20'+_0x127bf7[_0x4c0d59(0x195)],'risk':_0x127bf7[_0x4c0d59(0x173)],..._0x127bf7['risk']===_0x4c0d59(0x170)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x127bf7)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x127bf7['args']['map'](_0x2d74bf=>({'name':_0x2d74bf[_0x4c0d59(0x162)],'description':_0x2d74bf['description']||_0x2d74bf[_0x4c0d59(0x162)],'required':_0x2d74bf[_0x4c0d59(0x165)]})),'flags':_0x127bf7[_0x4c0d59(0x184)][_0x4c0d59(0x18d)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x127bf7),async 'dryRun'(_0x5122f4){const _0x41bcfa=_0x4c0d59,_0x381e7d=await compilePlan(_0x127bf7,_0x5122f4);return{'method':'SERVICE_TREE','url':_0x127bf7[_0x41bcfa(0x195)],'body':{'target':targetPreview(_0x381e7d),'params':_0x381e7d[_0x41bcfa(0x190)]},'description':_0x41bcfa(0x199)+_0x127bf7[_0x41bcfa(0x195)]};},async 'execute'(_0x174b99){const _0x5ac65d=_0x4c0d59,_0x1f7862=await compilePlan(_0x127bf7,_0x174b99),_0x29bb70=Date[_0x5ac65d(0x193)](),_0x545102=await executePlan(_0x1f7862,_0x127bf7,_0x174b99),_0xbf26c8=Date[_0x5ac65d(0x193)]()-_0x29bb70;return{'ok':!![],'data':{'service':_0x1ad484[_0x5ac65d(0x172)],'command':_0x127bf7[_0x5ac65d(0x195)],'target':targetPreview(_0x1f7862),'result':_0x545102,'elapsed':_0xbf26c8},'message':'Service\x20command\x20'+_0x127bf7['cliPath']+_0x5ac65d(0x176)+_0xbf26c8+'ms'};}};}function buildDynamicConfirmationDescription(_0x134e4c){const _0x30c84b=a39_0x2190,_0x358065=_0x134e4c[_0x30c84b(0x1ad)]||_0x134e4c[_0x30c84b(0x195)],_0xc3bc02=_0x134e4c[_0x30c84b(0x173)]==='high-risk-write'?_0x30c84b(0x1ac):_0x30c84b(0x152);return _0x30c84b(0x161)+_0x358065+'”。'+_0xc3bc02;}function dynamicCommandName(_0x29ab24){const _0x27fab9=a39_0x2190;return _0x29ab24[_0x27fab9(0x19b)][_0x27fab9(0x19a)](0x1)[_0x27fab9(0x18c)]('\x20');}function a39_0x2190(_0x1fbd29,_0x379c31){_0x1fbd29=_0x1fbd29-0x147;const _0x29f5ac=a39_0x29f5();let _0x2190c7=_0x29f5ac[_0x1fbd29];return _0x2190c7;}function riskTag(_0x484932){const _0x1601c2=a39_0x2190;return _0x484932===_0x1601c2(0x170)?'':_0x1601c2(0x159)+_0x484932+']';}function flagToCommandFlag(_0x4d6df2){const _0x18093b=a39_0x2190;return{'name':_0x4d6df2[_0x18093b(0x15f)],'type':_0x4d6df2[_0x18093b(0x1aa)]===_0x18093b(0x16d)?'string':_0x4d6df2[_0x18093b(0x1aa)],'description':_0x4d6df2[_0x18093b(0x1ad)]||_0x4d6df2['name'],'required':_0x4d6df2[_0x18093b(0x165)],'default':isPrimitiveFlagDefault(_0x4d6df2[_0x18093b(0x15c)])?_0x4d6df2['default']:undefined,'enum':_0x4d6df2[_0x18093b(0x186)]};}async function compilePlan(_0x2fb7b6,_0x524c72){const _0x58279d=a39_0x2190;return compileServiceTreeCommand(_0x2fb7b6,{'flags':_0x524c72[_0x58279d(0x1a1)],'args':_0x524c72[_0x58279d(0x147)],'context':await buildServiceContext(_0x2fb7b6,_0x524c72)});}async function buildServiceContext(_0x28fbba,_0x32e64e){const _0x451723=a39_0x2190,_0x86c90d={'appCode':_0x32e64e['appCode'],'env':_0x32e64e[_0x451723(0x166)],'envName':_0x32e64e['envName']};if(!usesRuntimeContext(_0x28fbba))return _0x86c90d;const _0x14c2c6=await getLoginUserInfo(),_0x396d93=pickFirst(_0x14c2c6['userId'],_0x14c2c6['id']);return{..._0x86c90d,'user':_0x14c2c6,'userId':_0x396d93,'id':_0x14c2c6['id'],'username':pickFirst(_0x14c2c6[_0x451723(0x15d)],_0x14c2c6[_0x451723(0x178)],_0x14c2c6['loginName']),'userName':_0x14c2c6[_0x451723(0x178)],'nickname':pickFirst(_0x14c2c6[_0x451723(0x17b)],_0x14c2c6[_0x451723(0x16e)]),'nickName':_0x14c2c6[_0x451723(0x16e)],'tenantCode':_0x14c2c6[_0x451723(0x17d)],'employeeId':_0x14c2c6['employeeId']};}function a39_0x29f5(){const _0x473311=['\x20requires\x20target.functionName.','\x20->\x20','Use\x20`','3088kLLNdT','fromEntries','flags','mapTo','enum','tree','\x20\x20\x20\x20command:\x20','push','bffCode','find','join','map','Commands:','2806209QVPuAx','params','some','Cannot\x20resolve\x20datatable\x20\x22','now','sqlCode','cliPath','scriptName','target','bffId','Preview\x20dynamic\x20service\x20command:\x20','slice','fullPath','sql','number','env','code','Service\x20command\x20','rawFlags','length','Unsupported\x20service\x20target\x20kind:\x20','6789663KmwPFd','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','\x20service\x20detail\x20--service\x20','`\x20to\x20inspect\x20the\x20manifest.','commands','context.','type','source','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','description','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20SERVICE\x20TREE\x20TARGET','startsWith','args','Run\x20service\x20command\x20','datasetCode','Unknown\x20appRef\x20\x22','146iWiZma','708710zGzTpF','1486518PoAWVK','13796xtjORt','padEnd','string','kind','该命令被清单标记为写入,可能修改业务数据或服务状态。','745600LTCeSc','\x20\x20\x20\x20kind:\x20\x20\x20\x20','datatable','dbtableConfig','\x20<command>\x20[flags]','appBindings','\x20\x20[','appCode','validation','default','username','command','cliName','const','将通过\x20Service\x20Tree\x20执行“','name','\x20\x20\x20\x20datatable:\x20','remainingArgs','required','envName','tableName','\x20\x20\x20\x20functionName:\x20','appRef','app','boolean','trim','json','nickName','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','read','appcode','service','risk','bff','operator','\x20completed\x20in\x20','ctx.','userName','filter','data','nickname','\x20\x20MAP\x20TO','tenantCode','303OrGllF'];a39_0x29f5=function(){return _0x473311;};return a39_0x29f5();}function usesRuntimeContext(_0x1b1d3e){const _0x383c93=a39_0x2190;return _0x1b1d3e[_0x383c93(0x185)][_0x383c93(0x191)](_0x51454a=>typeof _0x51454a[_0x383c93(0x1ab)]===_0x383c93(0x150)&&(_0x51454a[_0x383c93(0x1ab)][_0x383c93(0x1b0)](_0x383c93(0x1a9))||_0x51454a[_0x383c93(0x1ab)][_0x383c93(0x1b0)](_0x383c93(0x177))));}function pickFirst(..._0x7e2e7c){return _0x7e2e7c['find'](_0x4e0a18=>_0x4e0a18!==undefined&&_0x4e0a18!==null);}async function executePlan(_0x474723,_0x1dfc75,_0x1d2a53){const _0x3a6bd7=a39_0x2190;if(_0x474723['kind']===_0x3a6bd7(0x17a)){const _0x4816f3=await resolveDatasetCode(_0x474723,_0x1dfc75,_0x1d2a53);return executeData(_0x4816f3,_0x474723[_0x3a6bd7(0x15e)],_0x474723[_0x3a6bd7(0x190)]);}if(_0x474723[_0x3a6bd7(0x151)]===_0x3a6bd7(0x19c)){if(!_0x474723['sqlCode'])throw CliErrors[_0x3a6bd7(0x15b)]('Service\x20command\x20'+_0x1dfc75['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x474723[_0x3a6bd7(0x194)],normalizeScalarParams(_0x474723['params']));}if(_0x474723['kind']===_0x3a6bd7(0x174)){const _0x1e6e35=_0x474723[_0x3a6bd7(0x196)]||_0x474723[_0x3a6bd7(0x18a)]||(_0x474723[_0x3a6bd7(0x198)]==null?'':String(_0x474723[_0x3a6bd7(0x198)]));if(!_0x1e6e35)throw CliErrors[_0x3a6bd7(0x15b)](_0x3a6bd7(0x1a0)+_0x1dfc75[_0x3a6bd7(0x195)]+_0x3a6bd7(0x17f));return executeSdkBff(_0x1e6e35,_0x474723[_0x3a6bd7(0x190)]);}throw CliErrors['validation'](_0x3a6bd7(0x1a3)+_0x474723[_0x3a6bd7(0x151)]);}async function resolveDatasetCode(_0x2b904a,_0x119e23,_0x4f559b){const _0x3909b8=a39_0x2190;if(_0x2b904a['datasetCode'])return _0x2b904a['datasetCode'];if(!_0x2b904a['datatable'])throw CliErrors[_0x3909b8(0x15b)](_0x3909b8(0x1a0)+_0x119e23[_0x3909b8(0x195)]+_0x3909b8(0x1ae));const _0x62302=await listDatasets(_0x4f559b['appCode']),_0x4467aa=_0x62302[_0x3909b8(0x18b)](_0x492cc1=>_0x492cc1[_0x3909b8(0x156)]?.[_0x3909b8(0x167)]===_0x2b904a[_0x3909b8(0x155)]);if(!_0x4467aa?.[_0x3909b8(0x19f)])throw CliErrors['validation'](_0x3909b8(0x192)+_0x2b904a[_0x3909b8(0x155)]+_0x3909b8(0x16f)+_0x4f559b[_0x3909b8(0x15a)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x4467aa[_0x3909b8(0x19f)];}function applyAppBinding(_0x49a2d6,_0x3ddb85,_0x34d690){const _0x3c88b4=a39_0x2190,_0x1f69af=_0x3ddb85[_0x3c88b4(0x197)][_0x3c88b4(0x169)];if(!_0x1f69af)return;const _0x45b23b=_0x49a2d6[_0x3c88b4(0x158)][_0x1f69af];if(!_0x45b23b)throw CliErrors[_0x3c88b4(0x15b)](_0x3c88b4(0x14a)+_0x1f69af+'\x22\x20in\x20service\x20command\x20'+_0x3ddb85[_0x3c88b4(0x195)]+'.',_0x3c88b4(0x1a5));const _0x47d1ab=_0x45b23b[_0x3c88b4(0x171)]||_0x45b23b[_0x3c88b4(0x15a)];_0x47d1ab&&!hasText(_0x34d690['appcode'])&&(_0x34d690[_0x3c88b4(0x171)]=_0x47d1ab),_0x45b23b[_0x3c88b4(0x16a)]&&!hasText(_0x34d690[_0x3c88b4(0x16a)])&&!hasText(_0x34d690['appcode'])&&(_0x34d690[_0x3c88b4(0x16a)]=_0x45b23b[_0x3c88b4(0x16a)]),_0x45b23b['env']&&!hasText(_0x34d690[_0x3c88b4(0x19e)])&&(_0x34d690['env']=_0x45b23b[_0x3c88b4(0x19e)]);}function renderDynamicCommandHelp(_0x19a86b){const _0x3c5de8=a39_0x2190,_0x2bf22c=[_0x3c5de8(0x1af),_0x3c5de8(0x154)+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x151)],_0x3c5de8(0x188)+_0x19a86b['target'][_0x3c5de8(0x15e)]];if(_0x19a86b['target'][_0x3c5de8(0x149)])_0x2bf22c[_0x3c5de8(0x189)]('\x20\x20\x20\x20datasetCode:\x20'+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x149)]);if(_0x19a86b['target'][_0x3c5de8(0x155)])_0x2bf22c[_0x3c5de8(0x189)](_0x3c5de8(0x163)+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x155)]);if(_0x19a86b[_0x3c5de8(0x197)]['sqlCode'])_0x2bf22c[_0x3c5de8(0x189)]('\x20\x20\x20\x20sqlCode:\x20'+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x194)]);if(_0x19a86b[_0x3c5de8(0x197)]['scriptName'])_0x2bf22c['push'](_0x3c5de8(0x168)+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x196)]);if(_0x19a86b[_0x3c5de8(0x185)][_0x3c5de8(0x1a2)]>0x0){_0x2bf22c['push']('',_0x3c5de8(0x17c));for(const _0x4a3836 of _0x19a86b[_0x3c5de8(0x185)]){_0x2bf22c['push']('\x20\x20\x20\x20'+(_0x4a3836['source']||_0x3c5de8(0x160))+_0x3c5de8(0x180)+_0x4a3836[_0x3c5de8(0x197)]+(_0x4a3836[_0x3c5de8(0x175)]?'.'+_0x4a3836[_0x3c5de8(0x175)]:''));}}return _0x2bf22c[_0x3c5de8(0x18c)]('\x0a');}function targetPreview(_0x330077){const _0x15bf50=a39_0x2190;return{'kind':_0x330077[_0x15bf50(0x151)],'command':_0x330077[_0x15bf50(0x15e)],'appRef':_0x330077[_0x15bf50(0x169)],'datasetCode':_0x330077[_0x15bf50(0x149)],'datatable':_0x330077['datatable'],'sqlCode':_0x330077[_0x15bf50(0x194)],'bffCode':_0x330077['bffCode'],'bffId':_0x330077['bffId'],'functionName':_0x330077[_0x15bf50(0x196)]};}function normalizeScalarParams(_0xbc3ac9){const _0x46ea46=a39_0x2190;return Object[_0x46ea46(0x183)](Object['entries'](_0xbc3ac9)[_0x46ea46(0x179)](([,_0x33f968])=>typeof _0x33f968===_0x46ea46(0x150)||typeof _0x33f968===_0x46ea46(0x19d)));}function hasText(_0x2d947d){const _0x1d2c8b=a39_0x2190;return typeof _0x2d947d===_0x1d2c8b(0x150)&&_0x2d947d[_0x1d2c8b(0x16c)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x46d586){const _0x1e77c5=a39_0x2190;return _0x46d586===undefined||typeof _0x46d586===_0x1e77c5(0x150)||typeof _0x46d586===_0x1e77c5(0x19d)||typeof _0x46d586===_0x1e77c5(0x16b);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x168b9f,_0x13f83b){const _0x56bf32=a40_0x5aa2,_0x458c17=_0x168b9f();while(!![]){try{const _0x284a7d=parseInt(_0x56bf32(0x82))/0x1+parseInt(_0x56bf32(0x6f))/0x2+parseInt(_0x56bf32(0x80))/0x3*(parseInt(_0x56bf32(0x78))/0x4)+-parseInt(_0x56bf32(0x7a))/0x5+-parseInt(_0x56bf32(0x88))/0x6+parseInt(_0x56bf32(0x74))/0x7+-parseInt(_0x56bf32(0x8b))/0x8;if(_0x284a7d===_0x13f83b)break;else _0x458c17['push'](_0x458c17['shift']());}catch(_0x26789e){_0x458c17['push'](_0x458c17['shift']());}}}(a40_0x2d4b,0xb581d));export function adaptServiceTreeManifestForLegacyFramework(_0x5b6beb){const _0x2d77a1=a40_0x5aa2,_0x10b343=cloneJsonValue(_0x5b6beb),_0x28833a=[];if(!isObjectRecord(_0x10b343))return{'manifest':_0x10b343,'errors':_0x28833a};return Array[_0x2d77a1(0x84)](_0x10b343[_0x2d77a1(0x81)])&&_0x10b343['commands'][_0x2d77a1(0x73)]((_0xad64f4,_0x24084d)=>{const _0x5db6e4=_0x2d77a1;if(!isObjectRecord(_0xad64f4))return;adaptBffTarget(_0xad64f4[_0x5db6e4(0x8f)],_0x5db6e4(0x92)+_0x24084d+_0x5db6e4(0x8c),_0x28833a);}),adaptResources(_0x10b343[_0x2d77a1(0x8d)],_0x2d77a1(0x7d),_0x28833a),{'manifest':_0x10b343,'errors':_0x28833a};}export function toPublicServiceTreeTarget(_0x5dd03b){const _0x318086=a40_0x5aa2,{scriptName:_0x413987,..._0x497e51}=_0x5dd03b;return typeof _0x413987===_0x318086(0x83)&&_0x413987[_0x318086(0x85)]()&&(_0x497e51[_0x318086(0x7c)]=_0x413987),_0x497e51;}export function toPublicNormalizedServiceTree(_0x19e883){const _0x52e33f=a40_0x5aa2;return{..._0x19e883,'commands':_0x19e883[_0x52e33f(0x81)][_0x52e33f(0x89)](_0x59e779=>({..._0x59e779,'target':toPublicServiceTreeTarget(_0x59e779[_0x52e33f(0x8f)])}))};}function adaptResources(_0x5814ae,_0xf64dba,_0x30cb5f){const _0x376c0b=a40_0x5aa2;if(!isObjectRecord(_0x5814ae))return;for(const [_0x2be88c,_0x2240f9]of Object['entries'](_0x5814ae)){if(!isObjectRecord(_0x2240f9))continue;const _0x5d86a2=_0xf64dba+'.'+_0x2be88c;if(isObjectRecord(_0x2240f9['actions']))for(const [_0x25358a,_0x15ac45]of Object['entries'](_0x2240f9[_0x376c0b(0x6e)])){if(!isObjectRecord(_0x15ac45))continue;const _0x1edd10=_0x5d86a2+_0x376c0b(0x91)+_0x25358a,_0x1230f4=isObjectRecord(_0x15ac45['target'])&&_0x15ac45[_0x376c0b(0x8f)][_0x376c0b(0x8a)]===_0x376c0b(0x70);adaptBffTarget(_0x15ac45[_0x376c0b(0x8f)],_0x1edd10+_0x376c0b(0x77),_0x30cb5f),(_0x1230f4||isBffAction(_0x15ac45))&&adaptFunctionNameField(_0x15ac45,_0x1edd10,_0x30cb5f);}adaptResources(_0x2240f9['resources'],_0x5d86a2+_0x376c0b(0x7f),_0x30cb5f);}}function adaptBffTarget(_0x56dc47,_0x5e0b25,_0x132cc9){const _0x10a7dc=a40_0x5aa2;if(!isObjectRecord(_0x56dc47)||_0x56dc47[_0x10a7dc(0x8a)]!==_0x10a7dc(0x70))return;adaptFunctionNameField(_0x56dc47,_0x5e0b25,_0x132cc9);}function a40_0x5aa2(_0x1ce88b,_0x13769a){_0x1ce88b=_0x1ce88b-0x6e;const _0x2d4b55=a40_0x2d4b();let _0x5aa266=_0x2d4b55[_0x1ce88b];return _0x5aa266;}function a40_0x2d4b(){const _0x2fa555=['map','kind','3620440DCqmDN','].target','resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','target','push','.actions.','$.commands[','actions','297106BlHmDD','bff','call','.scriptName','forEach','2066589TwgOLk','scriptName','action','.target','60ZEaOaB','bff.exec','595990kxDvUk','entries','functionName','$.resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','.resources','251001mMEexw','commands','169527JlAUjq','string','isArray','trim','error','prototype','3318636StmkRI'];a40_0x2d4b=function(){return _0x2fa555;};return a40_0x2d4b();}function adaptFunctionNameField(_0x21d09b,_0x5b6716,_0x525a8f){const _0x1ee6a3=a40_0x5aa2;Object[_0x1ee6a3(0x87)]['hasOwnProperty'][_0x1ee6a3(0x71)](_0x21d09b,_0x1ee6a3(0x75))&&_0x525a8f[_0x1ee6a3(0x90)]({'level':_0x1ee6a3(0x86),'path':_0x5b6716+_0x1ee6a3(0x72),'message':_0x1ee6a3(0x8e)});if(Object['prototype']['hasOwnProperty']['call'](_0x21d09b,_0x1ee6a3(0x7c))){if(typeof _0x21d09b['functionName']!==_0x1ee6a3(0x83)||!_0x21d09b[_0x1ee6a3(0x7c)][_0x1ee6a3(0x85)]()){_0x525a8f[_0x1ee6a3(0x90)]({'level':'error','path':_0x5b6716+'.functionName','message':_0x1ee6a3(0x7e)}),delete _0x21d09b['functionName'];return;}_0x21d09b[_0x1ee6a3(0x75)]=_0x21d09b[_0x1ee6a3(0x7c)],delete _0x21d09b[_0x1ee6a3(0x7c)];}}function isBffAction(_0x102549){const _0x5af158=a40_0x5aa2;return _0x102549['kind']==='bff'||_0x102549[_0x5af158(0x76)]===_0x5af158(0x79)||_0x102549[_0x5af158(0x8f)]===_0x5af158(0x79);}function cloneJsonValue(_0x29ad12){const _0x388dec=a40_0x5aa2;if(Array['isArray'](_0x29ad12))return _0x29ad12[_0x388dec(0x89)](_0x146eb2=>cloneJsonValue(_0x146eb2));if(isObjectRecord(_0x29ad12))return Object['fromEntries'](Object[_0x388dec(0x7b)](_0x29ad12)[_0x388dec(0x89)](([_0x224dd3,_0x1eb487])=>[_0x224dd3,cloneJsonValue(_0x1eb487)]));return _0x29ad12;}function isObjectRecord(_0x136887){return Boolean(_0x136887)&&typeof _0x136887==='object'&&!Array['isArray'](_0x136887);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a41_0x176963=a41_0x40d1;function a41_0x40d1(_0x2fb60a,_0x389242){_0x2fb60a=_0x2fb60a-0x1c8;const _0x44a6d0=a41_0x44a6();let _0x40d1e9=_0x44a6d0[_0x2fb60a];return _0x40d1e9;}function a41_0x44a6(){const _0x5be92a=['Local\x20service\x20not\x20found:\x20','44vUrAbs','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','Removed\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','updated','Service\x20registry\x20validation\x20passed.','35pCvujt','8886951LizZHu','length','entries','risk','registryServiceCode','111GyYekq','Local\x20service\x20code,\x20for\x20example\x20crm','hash','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','write','map','version','registry','Service\x20Tree\x20manifest\x20file\x20path','import','485944AWcKYY','11EiVSLk','lower\x20kebab-case\x20service\x20code','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','str','serviceCount','errors','cliPath','filePath','normalizedManifest','9208930wxDfPc','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','export','reduce','source','list','36021CoaHUg','remove','read','file','service','flags','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','replaced','detail','将\x20Service\x20Tree\x20清单导入本地运行态注册表','name','warnings','entry','string','186OfzcfI','importedAt','\x20service\x20','50701260dLRIFJ','165625iATYCi','type','kind','WRITE','Imported','cliName','14856vFsfhC','target','manifests','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','\x20service(s),\x20updated\x20','required','registryPath','report','serviceCode','description','Exported\x20service\x20','从本地运行态注册表移除\x20Service\x20Tree\x20清单','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','imported','commands','registryIndex'];a41_0x44a6=function(){return _0x5be92a;};return a41_0x44a6();}(function(_0x552d63,_0x31f1ba){const _0x581330=a41_0x40d1,_0x2fbf34=_0x552d63();while(!![]){try{const _0x2b1db9=parseInt(_0x581330(0x1f1))/0x1*(-parseInt(_0x581330(0x1d4))/0x2)+parseInt(_0x581330(0x20b))/0x3*(-parseInt(_0x581330(0x1e5))/0x4)+-parseInt(_0x581330(0x1ce))/0x5*(parseInt(_0x581330(0x1ca))/0x6)+-parseInt(_0x581330(0x1eb))/0x7*(-parseInt(_0x581330(0x1fb))/0x8)+-parseInt(_0x581330(0x1ec))/0x9+-parseInt(_0x581330(0x205))/0xa*(parseInt(_0x581330(0x1fc))/0xb)+parseInt(_0x581330(0x1cd))/0xc;if(_0x2b1db9===_0x31f1ba)break;else _0x2fbf34['push'](_0x2fbf34['shift']());}catch(_0x3f1919){_0x2fbf34['push'](_0x2fbf34['shift']());}}}(a41_0x44a6,0x9b864));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x176963(0x20e),'type':a41_0x176963(0x1c9),'required':!![],'description':a41_0x176963(0x1f9)},SERVICE_FLAG={'name':a41_0x176963(0x20f),'type':a41_0x176963(0x1c9),'required':!![],'description':a41_0x176963(0x1f2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x176963(0x1fd)}};function summarizeService(_0x567263){const _0x4457e8=a41_0x176963;return{'serviceCode':_0x567263['serviceCode'],'name':_0x567263[_0x4457e8(0x204)][_0x4457e8(0x20f)][_0x4457e8(0x215)],'version':_0x567263[_0x4457e8(0x1f7)],'importedAt':_0x567263[_0x4457e8(0x1cb)],'source':_0x567263['source'],'commandCount':_0x567263['normalizedManifest'][_0x4457e8(0x1e2)][_0x4457e8(0x1ed)],'commands':_0x567263[_0x4457e8(0x204)][_0x4457e8(0x1e2)]['map'](_0x3feffe=>({'path':_0x3feffe['cliPath'],'description':_0x3feffe[_0x4457e8(0x1dd)],'risk':_0x3feffe[_0x4457e8(0x1ef)],'target':toPublicServiceTreeTarget(_0x3feffe[_0x4457e8(0x1d5)]),'flags':_0x3feffe[_0x4457e8(0x210)]['map'](_0x4910bb=>({'name':_0x4910bb[_0x4457e8(0x215)],'cliName':_0x4910bb[_0x4457e8(0x1d3)],'type':_0x4910bb[_0x4457e8(0x1cf)],'required':_0x4910bb[_0x4457e8(0x1d9)]===!![]}))}))};}function summarizeLoadedManifest(_0x96f6ae){const _0x3d9203=a41_0x176963;return{'service':_0x96f6ae['normalizedManifest']?.[_0x3d9203(0x20f)],'version':_0x96f6ae[_0x3d9203(0x204)]?.['version'],'commandCount':_0x96f6ae[_0x3d9203(0x204)]?.['commands'][_0x3d9203(0x1ed)]??0x0,'commands':_0x96f6ae[_0x3d9203(0x204)]?.['commands'][_0x3d9203(0x1f6)](_0x52f7c7=>({'path':_0x52f7c7[_0x3d9203(0x202)],'risk':_0x52f7c7[_0x3d9203(0x1ef)],'target':toPublicServiceTreeTarget(_0x52f7c7['target'])}))??[],'registryIndex':_0x96f6ae[_0x3d9203(0x1e3)],'registryServiceCode':_0x96f6ae[_0x3d9203(0x1f0)],'errors':_0x96f6ae[_0x3d9203(0x1db)]['errors'],'warnings':_0x96f6ae[_0x3d9203(0x1db)][_0x3d9203(0x216)]};}export const serviceDefinitions=[{'service':'service','command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x176963(0x20d),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x1ade9d){const _0x16766b=a41_0x176963,_0x2b0728=loadServiceManifestFromFile(_0x1ade9d['str']('file'));if(!_0x2b0728[_0x16766b(0x1db)]['ok'])return{'ok':![],'data':{'file':_0x2b0728['filePath'],'hash':_0x2b0728[_0x16766b(0x1f3)],'kind':_0x2b0728[_0x16766b(0x1d0)],'serviceCount':_0x2b0728[_0x16766b(0x1d6)]['length'],'services':_0x2b0728[_0x16766b(0x1d6)][_0x16766b(0x1f6)](summarizeLoadedManifest),'errors':_0x2b0728[_0x16766b(0x1db)][_0x16766b(0x201)],'warnings':_0x2b0728[_0x16766b(0x1db)][_0x16766b(0x216)]},'message':formatValidationFailure(_0x2b0728['report'])};if(_0x2b0728['kind']===_0x16766b(0x1f8)||_0x2b0728['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x2b0728[_0x16766b(0x203)],'hash':_0x2b0728[_0x16766b(0x1f3)],'kind':_0x2b0728[_0x16766b(0x1d0)],'serviceCount':_0x2b0728[_0x16766b(0x1d6)][_0x16766b(0x1ed)],'commandCount':_0x2b0728['manifests'][_0x16766b(0x208)]((_0x490e30,_0x585c63)=>_0x490e30+(_0x585c63[_0x16766b(0x204)]?.['commands'][_0x16766b(0x1ed)]??0x0),0x0),'services':_0x2b0728[_0x16766b(0x1d6)][_0x16766b(0x1f6)](summarizeLoadedManifest),'warnings':_0x2b0728[_0x16766b(0x1db)][_0x16766b(0x216)]},'message':_0x16766b(0x1ea)};return{'ok':!![],'data':{'file':_0x2b0728[_0x16766b(0x203)],'hash':_0x2b0728[_0x16766b(0x1f3)],'kind':_0x2b0728[_0x16766b(0x1d0)],'service':_0x2b0728[_0x16766b(0x204)]?.[_0x16766b(0x20f)],'version':_0x2b0728[_0x16766b(0x204)]?.[_0x16766b(0x1f7)],'commandCount':_0x2b0728[_0x16766b(0x204)]?.[_0x16766b(0x1e2)][_0x16766b(0x1ed)]??0x0,'commands':_0x2b0728[_0x16766b(0x204)]?.['commands'][_0x16766b(0x1f6)](_0x303a3d=>({'path':_0x303a3d[_0x16766b(0x202)],'risk':_0x303a3d[_0x16766b(0x1ef)],'target':toPublicServiceTreeTarget(_0x303a3d['target'])})),'warnings':_0x2b0728['report'][_0x16766b(0x216)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x1fa),'description':a41_0x176963(0x214),'risk':a41_0x176963(0x1f5),'confirmationDescription':a41_0x176963(0x1e6),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2a4108){const _0x297da2=a41_0x176963,_0x465ff4=loadServiceManifestFromFile(_0x2a4108[_0x297da2(0x1ff)](_0x297da2(0x20e)));return{'method':_0x297da2(0x1d1),'url':getServiceRegistryPath(),'body':{'file':_0x465ff4[_0x297da2(0x203)],'hash':_0x465ff4[_0x297da2(0x1f3)],'kind':_0x465ff4[_0x297da2(0x1d0)],'ok':_0x465ff4[_0x297da2(0x1db)]['ok'],'service':_0x465ff4[_0x297da2(0x204)]?.['service'],'version':_0x465ff4[_0x297da2(0x204)]?.[_0x297da2(0x1f7)],'serviceCount':_0x465ff4[_0x297da2(0x1d6)][_0x297da2(0x1ed)],'services':_0x465ff4[_0x297da2(0x1d6)][_0x297da2(0x1f6)](_0x55e502=>({'service':_0x55e502['normalizedManifest']?.[_0x297da2(0x20f)],'version':_0x55e502['normalizedManifest']?.[_0x297da2(0x1f7)],'commandCount':_0x55e502[_0x297da2(0x204)]?.[_0x297da2(0x1e2)]['length']??0x0,'errors':_0x55e502[_0x297da2(0x1db)][_0x297da2(0x201)]})),'errors':_0x465ff4[_0x297da2(0x1db)]['errors'],'commandCount':_0x465ff4[_0x297da2(0x204)]?.[_0x297da2(0x1e2)][_0x297da2(0x1ed)]??0x0},'description':_0x297da2(0x1d7)};},async 'execute'(_0x201518){const _0x14003d=a41_0x176963,_0x3260fa=importServiceManifest(_0x201518[_0x14003d(0x1ff)](_0x14003d(0x20e)));if(_0x3260fa[_0x14003d(0x1ee)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x3260fa[_0x14003d(0x1da)],'imported':_0x3260fa[_0x14003d(0x1e1)],'updated':_0x3260fa['updated'],'serviceCount':_0x3260fa[_0x14003d(0x200)],'services':_0x3260fa[_0x14003d(0x1ee)]['map'](summarizeService)},'message':'Imported\x20'+_0x3260fa[_0x14003d(0x1e1)]+_0x14003d(0x1d8)+_0x3260fa[_0x14003d(0x1e9)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x3260fa['registryPath'],'replaced':_0x3260fa[_0x14003d(0x212)],'imported':_0x3260fa[_0x14003d(0x1e1)],'updated':_0x3260fa[_0x14003d(0x1e9)],'serviceCount':_0x3260fa['serviceCount'],'service':summarizeService(_0x3260fa[_0x14003d(0x1c8)])},'message':(_0x3260fa['replaced']?'Updated':_0x14003d(0x1d2))+_0x14003d(0x1cc)+_0x3260fa[_0x14003d(0x1c8)][_0x14003d(0x1dc)]+'.'};}},{'service':'service','command':a41_0x176963(0x207),'description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':a41_0x176963(0x1f5),'confirmationDescription':a41_0x176963(0x206),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3cbbbc){const _0x5a5107=a41_0x176963,_0x22a280=getLocalServiceEntry(_0x3cbbbc[_0x5a5107(0x1ff)](_0x5a5107(0x20f)));return{'method':_0x5a5107(0x1d1),'url':_0x3cbbbc[_0x5a5107(0x1ff)](_0x5a5107(0x20e)),'body':{'service':_0x3cbbbc[_0x5a5107(0x1ff)](_0x5a5107(0x20f)),'found':Boolean(_0x22a280),'version':_0x22a280?.[_0x5a5107(0x1f7)],'source':_0x22a280?.['source']},'description':_0x5a5107(0x211)};},async 'execute'(_0x1fe0ea){const _0x5d67ae=a41_0x176963,_0x39a5c9=exportServiceManifest(_0x1fe0ea[_0x5d67ae(0x1ff)](_0x5d67ae(0x20f)),_0x1fe0ea[_0x5d67ae(0x1ff)](_0x5d67ae(0x20e)));return{'ok':!![],'data':{'registryPath':_0x39a5c9[_0x5d67ae(0x1da)],'file':_0x39a5c9['filePath'],'service':summarizeService(_0x39a5c9[_0x5d67ae(0x1c8)])},'message':_0x5d67ae(0x1de)+_0x39a5c9[_0x5d67ae(0x1c8)]['serviceCode']+'.'};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x20a),'description':a41_0x176963(0x1e8),'risk':a41_0x176963(0x20d),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x59be7b=a41_0x176963,_0x3dfb13=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3dfb13[_0x59be7b(0x1ed)],'services':_0x3dfb13[_0x59be7b(0x1f6)](summarizeService)}};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x20c),'description':a41_0x176963(0x1df),'risk':a41_0x176963(0x1f5),'confirmationDescription':a41_0x176963(0x1e0),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x7cdd39){const _0x7d75ab=a41_0x176963,_0x59ceb7=getLocalServiceEntry(_0x7cdd39[_0x7d75ab(0x1ff)](_0x7d75ab(0x20f)));return{'method':_0x7d75ab(0x1d1),'url':getServiceRegistryPath(),'body':{'service':_0x7cdd39['str']('service'),'found':Boolean(_0x59ceb7),'version':_0x59ceb7?.[_0x7d75ab(0x1f7)],'source':_0x59ceb7?.[_0x7d75ab(0x209)]},'description':_0x7d75ab(0x1fe)};},async 'execute'(_0x2e8cb6){const _0x1559dc=a41_0x176963,_0x1a19cb=removeServiceManifest(_0x2e8cb6[_0x1559dc(0x1ff)](_0x1559dc(0x20f)));return{'ok':!![],'data':{'registryPath':_0x1a19cb[_0x1559dc(0x1da)],'serviceCount':_0x1a19cb[_0x1559dc(0x200)],'service':summarizeService(_0x1a19cb['entry'])},'message':_0x1559dc(0x1e7)+_0x1a19cb[_0x1559dc(0x1c8)][_0x1559dc(0x1dc)]+'.'};}},{'service':a41_0x176963(0x20f),'command':a41_0x176963(0x213),'description':a41_0x176963(0x1f4),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1ea5ab){const _0x5b50ca=a41_0x176963,_0x3eb6e4=getLocalServiceEntry(_0x1ea5ab[_0x5b50ca(0x1ff)](_0x5b50ca(0x20f)));if(!_0x3eb6e4)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1ea5ab[_0x5b50ca(0x1ff)](_0x5b50ca(0x20f))},'message':_0x5b50ca(0x1e4)+_0x1ea5ab[_0x5b50ca(0x1ff)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3eb6e4),'manifest':_0x3eb6e4['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x3eb6e4[_0x5b50ca(0x204)])}};}}];
|
|
1
|
+
const a41_0x3f2c2e=a41_0x3931;(function(_0x589659,_0x32bd6c){const _0x521eee=a41_0x3931,_0x4ed8be=_0x589659();while(!![]){try{const _0x2ec08a=parseInt(_0x521eee(0x7d))/0x1+-parseInt(_0x521eee(0xb4))/0x2*(parseInt(_0x521eee(0x9b))/0x3)+-parseInt(_0x521eee(0x98))/0x4+parseInt(_0x521eee(0xaa))/0x5+-parseInt(_0x521eee(0xb2))/0x6+parseInt(_0x521eee(0x76))/0x7+-parseInt(_0x521eee(0x89))/0x8;if(_0x2ec08a===_0x32bd6c)break;else _0x4ed8be['push'](_0x4ed8be['shift']());}catch(_0x4be5ef){_0x4ed8be['push'](_0x4ed8be['shift']());}}}(a41_0x494e,0xe408c));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x494e(){const _0x434cc8=['\x20service\x20','452700jHcYBQ','registryServiceCode','4RugxqS','entries','serviceCode','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','str','errors','registryIndex','write','service','cliPath','2206589WEfHrB','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','map','imported','filePath','serviceCount','commands','246731aeTiek','source','read','reduce','kind','manifest','report','validate','required','description','WRITE','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','2115704tkacNs','从本地运行态注册表移除\x20Service\x20Tree\x20清单','cliName','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','detail','target','entry','type','replaced','manifests','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','updated','export','version','将\x20Service\x20Tree\x20清单导入本地运行态注册表','12572oxfecq','Service\x20manifest\x20validation\x20passed.','importedAt','1528971LbuYnw','registryPath','Removed\x20service\x20','risk','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','list','string','Exported\x20service\x20','import','Local\x20service\x20not\x20found:\x20','warnings','registry','flags','hash','Imported\x20','8672200aYSrHt','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','file','normalizedManifest','Updated','length'];a41_0x494e=function(){return _0x434cc8;};return a41_0x494e();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x3f2c2e(0xad),'type':a41_0x3f2c2e(0xa1),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a41_0x3f2c2e(0x74),'type':a41_0x3f2c2e(0xa1),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x1816d3){const _0x355527=a41_0x3f2c2e;return{'serviceCode':_0x1816d3[_0x355527(0xb6)],'name':_0x1816d3[_0x355527(0xae)][_0x355527(0x74)]['name'],'version':_0x1816d3[_0x355527(0x96)],'importedAt':_0x1816d3[_0x355527(0x9a)],'source':_0x1816d3[_0x355527(0x7e)],'commandCount':_0x1816d3[_0x355527(0xae)][_0x355527(0x7c)][_0x355527(0xb0)],'commands':_0x1816d3[_0x355527(0xae)][_0x355527(0x7c)][_0x355527(0x78)](_0x4a06ff=>({'path':_0x4a06ff[_0x355527(0x75)],'description':_0x4a06ff[_0x355527(0x86)],'risk':_0x4a06ff[_0x355527(0x9e)],'target':toPublicServiceTreeTarget(_0x4a06ff[_0x355527(0x8e)]),'flags':_0x4a06ff[_0x355527(0xa7)]['map'](_0x16dcb7=>({'name':_0x16dcb7['name'],'cliName':_0x16dcb7[_0x355527(0x8b)],'type':_0x16dcb7[_0x355527(0x90)],'required':_0x16dcb7[_0x355527(0x85)]===!![]}))}))};}function summarizeLoadedManifest(_0x2c829d){const _0x2da0c5=a41_0x3f2c2e;return{'service':_0x2c829d[_0x2da0c5(0xae)]?.[_0x2da0c5(0x74)],'version':_0x2c829d['normalizedManifest']?.[_0x2da0c5(0x96)],'commandCount':_0x2c829d[_0x2da0c5(0xae)]?.[_0x2da0c5(0x7c)][_0x2da0c5(0xb0)]??0x0,'commands':_0x2c829d[_0x2da0c5(0xae)]?.['commands'][_0x2da0c5(0x78)](_0x394d92=>({'path':_0x394d92[_0x2da0c5(0x75)],'risk':_0x394d92[_0x2da0c5(0x9e)],'target':toPublicServiceTreeTarget(_0x394d92['target'])}))??[],'registryIndex':_0x2c829d[_0x2da0c5(0xbb)],'registryServiceCode':_0x2c829d[_0x2da0c5(0xb3)],'errors':_0x2c829d['report']['errors'],'warnings':_0x2c829d[_0x2da0c5(0x83)][_0x2da0c5(0xa5)]};}function a41_0x3931(_0x4b745d,_0x2a4d34){_0x4b745d=_0x4b745d-0x73;const _0x494e3a=a41_0x494e();let _0x393120=_0x494e3a[_0x4b745d];return _0x393120;}export const serviceDefinitions=[{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0x84),'description':a41_0x3f2c2e(0x9f),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x620fb5){const _0x59b7f0=a41_0x3f2c2e,_0x8822bb=loadServiceManifestFromFile(_0x620fb5['str'](_0x59b7f0(0xad)));if(!_0x8822bb[_0x59b7f0(0x83)]['ok'])return{'ok':![],'data':{'file':_0x8822bb['filePath'],'hash':_0x8822bb[_0x59b7f0(0xa8)],'kind':_0x8822bb['kind'],'serviceCount':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0xb0)],'services':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0x78)](summarizeLoadedManifest),'errors':_0x8822bb[_0x59b7f0(0x83)][_0x59b7f0(0xba)],'warnings':_0x8822bb[_0x59b7f0(0x83)][_0x59b7f0(0xa5)]},'message':formatValidationFailure(_0x8822bb['report'])};if(_0x8822bb[_0x59b7f0(0x81)]===_0x59b7f0(0xa6)||_0x8822bb[_0x59b7f0(0x92)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x8822bb[_0x59b7f0(0x7a)],'hash':_0x8822bb['hash'],'kind':_0x8822bb['kind'],'serviceCount':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0xb0)],'commandCount':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0x80)]((_0x4dcd83,_0x306d9d)=>_0x4dcd83+(_0x306d9d[_0x59b7f0(0xae)]?.[_0x59b7f0(0x7c)][_0x59b7f0(0xb0)]??0x0),0x0),'services':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0x78)](summarizeLoadedManifest),'warnings':_0x8822bb[_0x59b7f0(0x83)][_0x59b7f0(0xa5)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x8822bb[_0x59b7f0(0x7a)],'hash':_0x8822bb[_0x59b7f0(0xa8)],'kind':_0x8822bb[_0x59b7f0(0x81)],'service':_0x8822bb[_0x59b7f0(0xae)]?.['service'],'version':_0x8822bb[_0x59b7f0(0xae)]?.[_0x59b7f0(0x96)],'commandCount':_0x8822bb[_0x59b7f0(0xae)]?.[_0x59b7f0(0x7c)][_0x59b7f0(0xb0)]??0x0,'commands':_0x8822bb[_0x59b7f0(0xae)]?.[_0x59b7f0(0x7c)][_0x59b7f0(0x78)](_0x28ec82=>({'path':_0x28ec82[_0x59b7f0(0x75)],'risk':_0x28ec82['risk'],'target':toPublicServiceTreeTarget(_0x28ec82[_0x59b7f0(0x8e)])})),'warnings':_0x8822bb[_0x59b7f0(0x83)]['warnings']},'message':_0x59b7f0(0x99)};}},{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0xa3),'description':a41_0x3f2c2e(0x97),'risk':a41_0x3f2c2e(0x73),'confirmationDescription':a41_0x3f2c2e(0x8c),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0xc9b5d9){const _0x22a742=a41_0x3f2c2e,_0x43e90f=loadServiceManifestFromFile(_0xc9b5d9[_0x22a742(0xb9)](_0x22a742(0xad)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x43e90f[_0x22a742(0x7a)],'hash':_0x43e90f[_0x22a742(0xa8)],'kind':_0x43e90f[_0x22a742(0x81)],'ok':_0x43e90f[_0x22a742(0x83)]['ok'],'service':_0x43e90f[_0x22a742(0xae)]?.[_0x22a742(0x74)],'version':_0x43e90f[_0x22a742(0xae)]?.[_0x22a742(0x96)],'serviceCount':_0x43e90f[_0x22a742(0x92)][_0x22a742(0xb0)],'services':_0x43e90f['manifests'][_0x22a742(0x78)](_0x4e4aba=>({'service':_0x4e4aba[_0x22a742(0xae)]?.[_0x22a742(0x74)],'version':_0x4e4aba[_0x22a742(0xae)]?.[_0x22a742(0x96)],'commandCount':_0x4e4aba[_0x22a742(0xae)]?.[_0x22a742(0x7c)][_0x22a742(0xb0)]??0x0,'errors':_0x4e4aba[_0x22a742(0x83)][_0x22a742(0xba)]})),'errors':_0x43e90f['report']['errors'],'commandCount':_0x43e90f[_0x22a742(0xae)]?.[_0x22a742(0x7c)]['length']??0x0},'description':_0x22a742(0x93)};},async 'execute'(_0x19e281){const _0x32557c=a41_0x3f2c2e,_0x1bf6d9=importServiceManifest(_0x19e281[_0x32557c(0xb9)](_0x32557c(0xad)));if(_0x1bf6d9['entries'][_0x32557c(0xb0)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1bf6d9[_0x32557c(0x9c)],'imported':_0x1bf6d9[_0x32557c(0x79)],'updated':_0x1bf6d9[_0x32557c(0x94)],'serviceCount':_0x1bf6d9[_0x32557c(0x7b)],'services':_0x1bf6d9[_0x32557c(0xb5)][_0x32557c(0x78)](summarizeService)},'message':_0x32557c(0xa9)+_0x1bf6d9[_0x32557c(0x79)]+'\x20service(s),\x20updated\x20'+_0x1bf6d9['updated']+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1bf6d9['registryPath'],'replaced':_0x1bf6d9[_0x32557c(0x91)],'imported':_0x1bf6d9['imported'],'updated':_0x1bf6d9['updated'],'serviceCount':_0x1bf6d9['serviceCount'],'service':summarizeService(_0x1bf6d9[_0x32557c(0x8f)])},'message':(_0x1bf6d9[_0x32557c(0x91)]?_0x32557c(0xaf):'Imported')+_0x32557c(0xb1)+_0x1bf6d9[_0x32557c(0x8f)][_0x32557c(0xb6)]+'.'};}},{'service':'service','command':a41_0x3f2c2e(0x95),'description':a41_0x3f2c2e(0xb7),'risk':'write','confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0xf2831d){const _0x5a7413=a41_0x3f2c2e,_0x44c9bd=getLocalServiceEntry(_0xf2831d[_0x5a7413(0xb9)](_0x5a7413(0x74)));return{'method':_0x5a7413(0x87),'url':_0xf2831d[_0x5a7413(0xb9)](_0x5a7413(0xad)),'body':{'service':_0xf2831d[_0x5a7413(0xb9)]('service'),'found':Boolean(_0x44c9bd),'version':_0x44c9bd?.[_0x5a7413(0x96)],'source':_0x44c9bd?.[_0x5a7413(0x7e)]},'description':_0x5a7413(0xb8)};},async 'execute'(_0x56b561){const _0xa7b085=a41_0x3f2c2e,_0x363160=exportServiceManifest(_0x56b561['str'](_0xa7b085(0x74)),_0x56b561['str'](_0xa7b085(0xad)));return{'ok':!![],'data':{'registryPath':_0x363160[_0xa7b085(0x9c)],'file':_0x363160[_0xa7b085(0x7a)],'service':summarizeService(_0x363160['entry'])},'message':_0xa7b085(0xa2)+_0x363160[_0xa7b085(0x8f)][_0xa7b085(0xb6)]+'.'};}},{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0xa0),'description':a41_0x3f2c2e(0xab),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x570c4e=a41_0x3f2c2e,_0x2952c2=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2952c2[_0x570c4e(0xb0)],'services':_0x2952c2['map'](summarizeService)}};}},{'service':a41_0x3f2c2e(0x74),'command':'remove','description':a41_0x3f2c2e(0x8a),'risk':'write','confirmationDescription':a41_0x3f2c2e(0x77),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4ac7fb){const _0x485d1f=a41_0x3f2c2e,_0x446b5d=getLocalServiceEntry(_0x4ac7fb[_0x485d1f(0xb9)]('service'));return{'method':_0x485d1f(0x87),'url':getServiceRegistryPath(),'body':{'service':_0x4ac7fb['str'](_0x485d1f(0x74)),'found':Boolean(_0x446b5d),'version':_0x446b5d?.['version'],'source':_0x446b5d?.['source']},'description':_0x485d1f(0xac)};},async 'execute'(_0x4c7f88){const _0x4f09f4=a41_0x3f2c2e,_0x537c0c=removeServiceManifest(_0x4c7f88[_0x4f09f4(0xb9)](_0x4f09f4(0x74)));return{'ok':!![],'data':{'registryPath':_0x537c0c[_0x4f09f4(0x9c)],'serviceCount':_0x537c0c[_0x4f09f4(0x7b)],'service':summarizeService(_0x537c0c[_0x4f09f4(0x8f)])},'message':_0x4f09f4(0x9d)+_0x537c0c[_0x4f09f4(0x8f)][_0x4f09f4(0xb6)]+'.'};}},{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0x8d),'description':a41_0x3f2c2e(0x88),'risk':a41_0x3f2c2e(0x7f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x149f19){const _0x5a1cfc=a41_0x3f2c2e,_0xd672b3=getLocalServiceEntry(_0x149f19['str'](_0x5a1cfc(0x74)));if(!_0xd672b3)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x149f19[_0x5a1cfc(0xb9)](_0x5a1cfc(0x74))},'message':_0x5a1cfc(0xa4)+_0x149f19[_0x5a1cfc(0xb9)](_0x5a1cfc(0x74))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0xd672b3),'manifest':_0xd672b3[_0x5a1cfc(0x82)],'normalizedManifest':toPublicNormalizedServiceTree(_0xd672b3['normalizedManifest'])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a42_0xb180(){const _0x29d778=['join','flatMap','errors','Invalid\x20service\x20registry\x20JSON:\x20','$.services[','object','target','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','isArray','service.json','1219810syxvqP','localeCompare','invalid','schemaVersion','Unsupported\x20schemaVersion:\x20','string','map','36kdCyDc','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','filePath','registry','command','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Service\x20manifest\x20validation\x20failed:\x0a','slice','empty','utf8','validation','2880yURIpd','].manifest','stringify','parse','bff\x20target\x20requires\x20functionName.','CliError','Local\x20service\x20not\x20found:\x20','normalizedManifest','now','780086GUaYKj','Remove\x20or\x20migrate\x20','path','risk','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','code','homeDir','133206DdBWAS','15274ctQWMP','hex','].manifest.','reduce','commands','toISOString','manifest','Invalid\x20service\x20manifest\x20JSON:\x20','importedAt','Service\x20manifest\x20file\x20not\x20found:\x20','findIndex','description','commandCount','splice','length','version','startsWith','serviceCode','push','107811QVWyCE','3632zghHuA','source','services','missing','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','1344820oDLpHL','warnings','20FaKumQ','report','message','service','manifests','Cannot\x20write\x20service\x20registry:\x20','file','3aMTcnn','1950537kEuGmC','registryIndex','updatedAt','ENOENT','trim'];a42_0xb180=function(){return _0x29d778;};return a42_0xb180();}const a42_0x421b80=a42_0x2673;(function(_0xa8454b,_0x2b1755){const _0x15468a=a42_0x2673,_0x518bb0=_0xa8454b();while(!![]){try{const _0x151812=-parseInt(_0x15468a(0x160))/0x1*(parseInt(_0x15468a(0x136))/0x2)+parseInt(_0x15468a(0x161))/0x3+parseInt(_0x15468a(0x157))/0x4+parseInt(_0x15468a(0x159))/0x5*(-parseInt(_0x15468a(0x13d))/0x6)+-parseInt(_0x15468a(0x13e))/0x7*(parseInt(_0x15468a(0x152))/0x8)+parseInt(_0x15468a(0x122))/0x9*(-parseInt(_0x15468a(0x11b))/0xa)+parseInt(_0x15468a(0x151))/0xb*(parseInt(_0x15468a(0x12d))/0xc);if(_0x151812===_0x2b1755)break;else _0x518bb0['push'](_0x518bb0['shift']());}catch(_0x32e416){_0x518bb0['push'](_0x518bb0['shift']());}}}(a42_0xb180,0x92c33));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';function a42_0x2673(_0x4d4840,_0x4154d5){_0x4d4840=_0x4d4840-0x11a;const _0xb18017=a42_0xb180();let _0x2673dd=_0xb18017[_0x4d4840];return _0x2673dd;}import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x421b80(0x11a);export function getServiceRegistryPath(_0x4cf21a={}){const _0x5ece57=a42_0x421b80;return resolve(_0x4cf21a[_0x5ece57(0x13c)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x5b1ace={}){const _0x408947=a42_0x421b80,_0x216464=getServiceRegistryPath(_0x5b1ace);if(!existsSync(_0x216464))return emptyServiceRegistry();try{const _0x2a856c=readFileSync(_0x216464,_0x408947(0x12b));if(!_0x2a856c[_0x408947(0x165)]())return emptyServiceRegistry();const _0x2a71a6=JSON[_0x408947(0x130)](_0x2a856c);if(_0x2a71a6[_0x408947(0x11e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x408947(0x127)+String(_0x2a71a6['schemaVersion']),_0x408947(0x137)+_0x216464+'.');if(!Array['isArray'](_0x2a71a6[_0x408947(0x154)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2a71a6['updatedAt'],'services':_0x2a71a6['services']};}catch(_0x223c91){if(_0x223c91 instanceof Error&&_0x223c91['name']===_0x408947(0x132))throw _0x223c91;throw CliErrors[_0x408947(0x12c)](_0x408947(0x169)+_0x216464,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x7298f6,_0x285d21={}){const _0x14df56=a42_0x421b80,_0xa8e39f=getServiceRegistryPath(_0x285d21),_0x335599=dirname(_0xa8e39f);!existsSync(_0x335599)&&mkdirSync(_0x335599,{'recursive':!![]});const _0x59a3a5=_0xa8e39f+'.tmp';try{writeFileSync(_0x59a3a5,JSON[_0x14df56(0x12f)](_0x7298f6,null,0x2)+'\x0a',{'encoding':_0x14df56(0x12b),'mode':0x180}),renameSync(_0x59a3a5,_0xa8e39f);}catch(_0x31d8b8){try{unlinkSync(_0x59a3a5);}catch{}if(_0x31d8b8?.['code']===_0x14df56(0x164))throw CliErrors[_0x14df56(0x12c)](_0x14df56(0x15e)+_0xa8e39f);throw _0x31d8b8;}return _0xa8e39f;}export function loadServiceManifestFromFile(_0x3267f7){const _0xff6121=a42_0x421b80,_0x145c3f=resolve(_0x3267f7);if(!existsSync(_0x145c3f))throw CliErrors['validation'](_0xff6121(0x147)+_0x3267f7);let _0x33fb47;const _0x4d8472=readFileSync(_0x145c3f,_0xff6121(0x12b));try{_0x33fb47=JSON[_0xff6121(0x130)](_0x4d8472);}catch{throw CliErrors['validation'](_0xff6121(0x145)+_0x3267f7,_0xff6121(0x13a));}const _0x59009a=sha256(_0x4d8472),_0xdcf1b9=extractLoadedServiceManifests(_0x33fb47,_0x59009a),_0x362605=aggregateValidationReports(_0xdcf1b9),_0x2bde3e=_0xdcf1b9[0x0];return{'filePath':_0x145c3f,'hash':_0x59009a,'kind':isServiceRegistryLike(_0x33fb47)?_0xff6121(0x125):_0xff6121(0x144),'manifest':_0x2bde3e?.[_0xff6121(0x144)]??_0x33fb47,'report':_0x362605,'normalizedManifest':_0xdcf1b9[_0xff6121(0x14c)]===0x1?_0x2bde3e?.[_0xff6121(0x134)]:undefined,'manifests':_0xdcf1b9};}export function importServiceManifest(_0x404481,_0x5e057c={}){const _0x2c0329=a42_0x421b80,_0x487703=loadServiceManifestFromFile(_0x404481);if(!_0x487703['report']['ok'])throw CliErrors[_0x2c0329(0x12c)](formatValidationFailure(_0x487703['report']),_0x2c0329(0x16d));if(_0x487703['manifests'][_0x2c0329(0x14c)]===0x0)throw CliErrors[_0x2c0329(0x12c)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x360c1f=readServiceRegistry(_0x5e057c),_0x4a5341=(_0x5e057c[_0x2c0329(0x135)]??(()=>new Date()))()[_0x2c0329(0x143)](),_0x174cee=[];let _0x3cad49=0x0,_0x57316d=0x0;for(const _0x176cb7 of _0x487703[_0x2c0329(0x15d)]){if(!_0x176cb7['normalizedManifest'])continue;const _0x2c6eab=_0x176cb7['normalizedManifest']['service'][_0x2c0329(0x13b)],_0x52f5d3={'serviceCode':_0x2c6eab,'version':_0x176cb7['normalizedManifest']['version'],'importedAt':_0x4a5341,'source':{'type':_0x2c0329(0x15f),'path':_0x487703[_0x2c0329(0x124)],'hash':_0x176cb7['sourceHash']},'manifest':_0x176cb7[_0x2c0329(0x144)],'normalizedManifest':_0x176cb7['normalizedManifest']},_0x1cf00d=_0x360c1f[_0x2c0329(0x154)][_0x2c0329(0x148)](_0x35f4bb=>_0x35f4bb['serviceCode']===_0x2c6eab);_0x1cf00d>=0x0?(_0x360c1f[_0x2c0329(0x154)][_0x1cf00d]=_0x52f5d3,_0x57316d++):(_0x360c1f[_0x2c0329(0x154)]['push'](_0x52f5d3),_0x3cad49++),_0x174cee[_0x2c0329(0x150)](_0x52f5d3);}_0x360c1f[_0x2c0329(0x154)]['sort']((_0x25d342,_0x1190ab)=>_0x25d342['serviceCode'][_0x2c0329(0x11c)](_0x1190ab[_0x2c0329(0x14f)])),_0x360c1f[_0x2c0329(0x163)]=_0x4a5341;const _0x5873cb=writeServiceRegistry(_0x360c1f,_0x5e057c);return{'registryPath':_0x5873cb,'entry':_0x174cee[0x0],'replaced':_0x174cee[_0x2c0329(0x14c)]===0x1?_0x57316d===0x1:_0x57316d>0x0,'entries':_0x174cee,'imported':_0x3cad49,'updated':_0x57316d,'serviceCount':_0x360c1f[_0x2c0329(0x154)][_0x2c0329(0x14c)]};}export function exportServiceManifest(_0x2ef706,_0x22f442,_0x33239c={}){const _0x4eb905=a42_0x421b80,_0x118e05=getServiceRegistryPath(_0x33239c),_0x3ffd3e=getLocalServiceEntry(_0x2ef706,_0x33239c);if(!_0x3ffd3e)throw CliErrors[_0x4eb905(0x12c)](_0x4eb905(0x133)+_0x2ef706,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x26691d=resolve(_0x22f442),_0x321925=dirname(_0x26691d);return!existsSync(_0x321925)&&mkdirSync(_0x321925,{'recursive':!![]}),writeFileSync(_0x26691d,JSON[_0x4eb905(0x12f)](_0x3ffd3e['manifest'],null,0x2)+'\x0a',{'encoding':_0x4eb905(0x12b),'mode':0x180}),{'registryPath':_0x118e05,'filePath':_0x26691d,'entry':_0x3ffd3e};}export function removeServiceManifest(_0x41d908,_0x2c8581={}){const _0x23af79=a42_0x421b80,_0x458d2f=readServiceRegistry(_0x2c8581),_0x589c92=_0x41d908['trim'](),_0x344437=_0x458d2f[_0x23af79(0x154)][_0x23af79(0x148)](_0x19622d=>_0x19622d['serviceCode']===_0x589c92);if(_0x344437<0x0)throw CliErrors[_0x23af79(0x12c)]('Local\x20service\x20not\x20found:\x20'+_0x589c92,_0x23af79(0x123));const [_0xc71358]=_0x458d2f[_0x23af79(0x154)][_0x23af79(0x14b)](_0x344437,0x1),_0x149cbb=(_0x2c8581[_0x23af79(0x135)]??(()=>new Date()))()[_0x23af79(0x143)]();_0x458d2f[_0x23af79(0x163)]=_0x149cbb;const _0x4678d6=writeServiceRegistry(_0x458d2f,_0x2c8581);return{'registryPath':_0x4678d6,'entry':_0xc71358,'serviceCount':_0x458d2f['services']['length']};}export function listLocalServices(_0x215ed4={}){const _0x3141b8=a42_0x421b80;return readServiceRegistry(_0x215ed4)[_0x3141b8(0x154)];}export function getLocalServiceEntry(_0x305c85,_0x89cef4={}){const _0x3da124=a42_0x421b80;return readServiceRegistry(_0x89cef4)[_0x3da124(0x154)]['find'](_0x3e890c=>_0x3e890c['serviceCode']===_0x305c85[_0x3da124(0x165)]());}export function listLocalServiceTrees(_0x1098b7={}){const _0x15d2a0=a42_0x421b80;return readServiceRegistry(_0x1098b7)[_0x15d2a0(0x154)][_0x15d2a0(0x121)](_0x26dd29=>_0x26dd29[_0x15d2a0(0x134)]);}export function inspectServiceRegistry(_0x19f483={}){const _0x31e8e0=a42_0x421b80,_0x255192=getServiceRegistryPath(_0x19f483);if(!existsSync(_0x255192))return emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x155),![]);try{const _0x435fb2=readFileSync(_0x255192,'utf8');if(!_0x435fb2[_0x31e8e0(0x165)]())return emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x12a),!![]);const _0x925e44=JSON[_0x31e8e0(0x130)](_0x435fb2);if(_0x925e44[_0x31e8e0(0x11e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x11d),!![]),'schemaVersion':_0x925e44['schemaVersion'],'message':_0x31e8e0(0x11f)+String(_0x925e44[_0x31e8e0(0x11e)])};if(!Array['isArray'](_0x925e44['services']))return{...emptyServiceRegistryInspection(_0x255192,_0x31e8e0(0x11d),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x925e44[_0x31e8e0(0x163)],'message':'services\x20must\x20be\x20an\x20array'};const _0x266c0e=_0x925e44[_0x31e8e0(0x154)][_0x31e8e0(0x121)](summarizeLocalServiceEntry);return{'registryPath':_0x255192,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x925e44['updatedAt'],'serviceCount':_0x266c0e[_0x31e8e0(0x14c)],'commandCount':_0x266c0e[_0x31e8e0(0x141)]((_0x1eb009,_0x40d088)=>_0x1eb009+_0x40d088[_0x31e8e0(0x14a)],0x0),'services':_0x266c0e};}catch(_0x36518b){return{...emptyServiceRegistryInspection(_0x255192,'invalid',!![]),'message':_0x36518b instanceof Error?_0x36518b[_0x31e8e0(0x15b)]:String(_0x36518b)};}}export function formatValidationFailure(_0x53fe0d){const _0x487268=a42_0x421b80,_0x2d26ab=_0x53fe0d[_0x487268(0x168)][_0x487268(0x121)](_0x2e1729=>_0x2e1729['path']+':\x20'+_0x2e1729['message']);return _0x487268(0x128)+_0x2d26ab[_0x487268(0x166)]('\x0a');}function extractLoadedServiceManifests(_0x243306,_0x87324f){const _0xd6a3b5=a42_0x421b80;if(!isServiceRegistryLike(_0x243306)){const _0x4fe574=_0x243306,{manifest:_0x118580,errors:_0x307f8f}=adaptServiceTreeManifestForLegacyFramework(_0x4fe574),_0x36ef43=validateServiceTreeManifest(_0x118580),_0x2063f3=mergeValidationErrors(_0x36ef43,_0x307f8f);return[{'manifest':_0x4fe574,'report':_0x2063f3,'normalizedManifest':_0x2063f3['ok']?normalizeServiceTreeManifest(_0x118580):undefined,'sourceHash':_0x87324f}];}return _0x243306['services'][_0xd6a3b5(0x121)]((_0x179e93,_0x11eb33)=>{const _0x5ce00e=_0xd6a3b5,_0x286e8a=isObjectRecord(_0x179e93)?_0x179e93[_0x5ce00e(0x144)]:undefined,{manifest:_0x5c4ea3,errors:_0x52432b}=adaptServiceTreeManifestForLegacyFramework(_0x286e8a),_0xa96448=validateServiceTreeManifest(_0x5c4ea3),_0x5ad020=mergeValidationErrors(_0xa96448,_0x52432b),_0x2b44a4=isObjectRecord(_0x179e93)&&typeof _0x179e93[_0x5ce00e(0x14f)]===_0x5ce00e(0x120)?_0x179e93[_0x5ce00e(0x14f)]:undefined;return{'manifest':_0x286e8a,'report':_0x5ad020,'normalizedManifest':_0x5ad020['ok']?normalizeServiceTreeManifest(_0x5c4ea3):undefined,'sourceHash':sha256(JSON['stringify'](_0x286e8a,null,0x2)+'\x0a'),'registryIndex':_0x11eb33,'registryServiceCode':_0x2b44a4};});}function mergeValidationErrors(_0x142419,_0x341dc5){const _0x361dcc=a42_0x421b80,_0x2eb3a2=_0x142419[_0x361dcc(0x168)][_0x361dcc(0x121)](_0x48c80e=>_0x48c80e[_0x361dcc(0x15b)]===_0x361dcc(0x156)?{..._0x48c80e,'message':_0x361dcc(0x131)}:_0x48c80e),_0x280158=[..._0x341dc5,..._0x2eb3a2];return{'ok':_0x280158['length']===0x0,'errors':_0x280158,'warnings':_0x142419[_0x361dcc(0x158)]};}function aggregateValidationReports(_0x3a4776){const _0x327f52=a42_0x421b80,_0x4b70db=_0x3a4776[_0x327f52(0x167)](_0x3a8e6a=>_0x3a8e6a['registryIndex']===undefined?_0x3a8e6a['report'][_0x327f52(0x168)]:_0x3a8e6a[_0x327f52(0x15a)]['errors'][_0x327f52(0x121)](_0x4e78b4=>({..._0x4e78b4,'path':prefixRegistryIssuePath(_0x3a8e6a[_0x327f52(0x162)],_0x4e78b4[_0x327f52(0x138)])}))),_0x1fe8fd=_0x3a4776[_0x327f52(0x167)](_0x3227d8=>_0x3227d8['registryIndex']===undefined?_0x3227d8[_0x327f52(0x15a)][_0x327f52(0x158)]:_0x3227d8['report'][_0x327f52(0x158)]['map'](_0x462574=>({..._0x462574,'path':prefixRegistryIssuePath(_0x3227d8[_0x327f52(0x162)],_0x462574[_0x327f52(0x138)])})));return{'ok':_0x4b70db[_0x327f52(0x14c)]===0x0,'errors':_0x4b70db,'warnings':_0x1fe8fd};}function prefixRegistryIssuePath(_0x13bdb9,_0x1f0a46){const _0x4325b3=a42_0x421b80;if(_0x1f0a46==='$')return _0x4325b3(0x16a)+_0x13bdb9+_0x4325b3(0x12e);if(_0x1f0a46[_0x4325b3(0x14e)]('$.'))return'$.services['+_0x13bdb9+_0x4325b3(0x12e)+_0x1f0a46[_0x4325b3(0x129)](0x1);if(_0x1f0a46[_0x4325b3(0x14e)]('$['))return _0x4325b3(0x16a)+_0x13bdb9+_0x4325b3(0x12e)+_0x1f0a46[_0x4325b3(0x129)](0x1);return _0x4325b3(0x16a)+_0x13bdb9+_0x4325b3(0x140)+_0x1f0a46;}function isServiceRegistryLike(_0x3a44da){const _0x1d3050=a42_0x421b80;return isObjectRecord(_0x3a44da)&&_0x3a44da[_0x1d3050(0x11e)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x1d3050(0x16e)](_0x3a44da['services']);}function isObjectRecord(_0x4e8d13){const _0x288b53=a42_0x421b80;return Boolean(_0x4e8d13)&&typeof _0x4e8d13===_0x288b53(0x16b)&&!Array[_0x288b53(0x16e)](_0x4e8d13);}function emptyServiceRegistryInspection(_0x15538c,_0x27a2da,_0xfdd1b7){return{'registryPath':_0x15538c,'exists':_0xfdd1b7,'status':_0x27a2da,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x2f7c17){const _0x2a6a28=a42_0x421b80,_0x337968=_0x2f7c17[_0x2a6a28(0x134)],_0x88faac=_0x337968[_0x2a6a28(0x142)][_0x2a6a28(0x121)](_0x433079=>({'path':_0x433079['cliPath'],'description':_0x433079[_0x2a6a28(0x149)],'risk':_0x433079[_0x2a6a28(0x139)],'targetKind':_0x433079['target']['kind'],'targetCommand':_0x433079[_0x2a6a28(0x16c)][_0x2a6a28(0x126)]}));return{'serviceCode':_0x2f7c17['serviceCode'],'name':_0x337968[_0x2a6a28(0x15c)]['name'],'description':_0x337968['service']['description'],'version':_0x2f7c17[_0x2a6a28(0x14d)],'importedAt':_0x2f7c17[_0x2a6a28(0x146)],'source':_0x2f7c17[_0x2a6a28(0x153)],'commandCount':_0x88faac[_0x2a6a28(0x14c)],'commands':_0x88faac};}function sha256(_0x3aad90){const _0x1a2904=a42_0x421b80;return createHash('sha256')['update'](_0x3aad90)['digest'](_0x1a2904(0x13f));}
|
|
1
|
+
const a42_0x355a1f=a42_0x41c9;(function(_0x497f4a,_0x4b0bf5){const _0x1bea82=a42_0x41c9,_0x234643=_0x497f4a();while(!![]){try{const _0x391c3a=parseInt(_0x1bea82(0xc1))/0x1*(-parseInt(_0x1bea82(0xae))/0x2)+-parseInt(_0x1bea82(0x89))/0x3*(-parseInt(_0x1bea82(0xd7))/0x4)+parseInt(_0x1bea82(0xa2))/0x5*(-parseInt(_0x1bea82(0xb4))/0x6)+-parseInt(_0x1bea82(0xcc))/0x7*(-parseInt(_0x1bea82(0xd2))/0x8)+-parseInt(_0x1bea82(0xc0))/0x9*(-parseInt(_0x1bea82(0xa6))/0xa)+parseInt(_0x1bea82(0x92))/0xb+-parseInt(_0x1bea82(0xbc))/0xc;if(_0x391c3a===_0x4b0bf5)break;else _0x234643['push'](_0x234643['shift']());}catch(_0x27cf2a){_0x234643['push'](_0x234643['shift']());}}}(a42_0x3104,0x1f960));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a42_0x41c9(_0x164305,_0x1650e4){_0x164305=_0x164305-0x81;const _0x3104c0=a42_0x3104();let _0x41c976=_0x3104c0[_0x164305];return _0x41c976;}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_0x355a1f(0xa9);export function getServiceRegistryPath(_0x210ae6={}){const _0x544475=a42_0x355a1f;return resolve(_0x210ae6[_0x544475(0x90)]??homedir(),PRODUCT_CONFIG[_0x544475(0x84)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x274337={}){const _0x1d8f5b=a42_0x355a1f,_0x31b6f1=getServiceRegistryPath(_0x274337);if(!existsSync(_0x31b6f1))return emptyServiceRegistry();try{const _0x213a73=readFileSync(_0x31b6f1,_0x1d8f5b(0xa3));if(!_0x213a73[_0x1d8f5b(0xd8)]())return emptyServiceRegistry();const _0x473f94=JSON[_0x1d8f5b(0x8c)](_0x213a73);if(_0x473f94[_0x1d8f5b(0xcf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x1d8f5b(0xc6)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x473f94[_0x1d8f5b(0xcf)]),_0x1d8f5b(0xaf)+_0x31b6f1+'.');if(!Array[_0x1d8f5b(0xc7)](_0x473f94['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x473f94[_0x1d8f5b(0x86)],'services':_0x473f94['services']};}catch(_0x322616){if(_0x322616 instanceof Error&&_0x322616['name']===_0x1d8f5b(0xc4))throw _0x322616;throw CliErrors[_0x1d8f5b(0xc6)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x31b6f1,_0x1d8f5b(0xa8));}}export function writeServiceRegistry(_0x1bb565,_0x50def1={}){const _0x2df7f2=a42_0x355a1f,_0x557f31=getServiceRegistryPath(_0x50def1),_0x4153a6=dirname(_0x557f31);!existsSync(_0x4153a6)&&mkdirSync(_0x4153a6,{'recursive':!![]});const _0x2b4325=_0x557f31+_0x2df7f2(0x97);try{writeFileSync(_0x2b4325,JSON[_0x2df7f2(0xc8)](_0x1bb565,null,0x2)+'\x0a',{'encoding':_0x2df7f2(0xa3),'mode':0x180}),renameSync(_0x2b4325,_0x557f31);}catch(_0x49fbf2){try{unlinkSync(_0x2b4325);}catch{}if(_0x49fbf2?.[_0x2df7f2(0x9d)]===_0x2df7f2(0xc2))throw CliErrors[_0x2df7f2(0xc6)](_0x2df7f2(0x98)+_0x557f31);throw _0x49fbf2;}return _0x557f31;}export function loadServiceManifestFromFile(_0x9d8779){const _0x1d9f6d=a42_0x355a1f,_0x5989d7=resolve(_0x9d8779);if(!existsSync(_0x5989d7))throw CliErrors['validation'](_0x1d9f6d(0x9e)+_0x9d8779);let _0x853b85;const _0x11a191=readFileSync(_0x5989d7,_0x1d9f6d(0xa3));try{_0x853b85=JSON[_0x1d9f6d(0x8c)](_0x11a191);}catch{throw CliErrors[_0x1d9f6d(0xc6)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x9d8779,_0x1d9f6d(0x8a));}const _0x4a1148=sha256(_0x11a191),_0x399928=extractLoadedServiceManifests(_0x853b85,_0x4a1148),_0x287fcd=aggregateValidationReports(_0x399928),_0xbbb4d5=_0x399928[0x0];return{'filePath':_0x5989d7,'hash':_0x4a1148,'kind':isServiceRegistryLike(_0x853b85)?_0x1d9f6d(0x88):'manifest','manifest':_0xbbb4d5?.[_0x1d9f6d(0xa4)]??_0x853b85,'report':_0x287fcd,'normalizedManifest':_0x399928['length']===0x1?_0xbbb4d5?.['normalizedManifest']:undefined,'manifests':_0x399928};}export function importServiceManifest(_0x5aa3a9,_0x1a123b={}){const _0x36b6ef=a42_0x355a1f,_0x5bb0f1=loadServiceManifestFromFile(_0x5aa3a9);if(!_0x5bb0f1[_0x36b6ef(0xb0)]['ok'])throw CliErrors[_0x36b6ef(0xc6)](formatValidationFailure(_0x5bb0f1[_0x36b6ef(0xb0)]),_0x36b6ef(0xb6));if(_0x5bb0f1[_0x36b6ef(0x96)][_0x36b6ef(0x93)]===0x0)throw CliErrors[_0x36b6ef(0xc6)](_0x36b6ef(0xce),_0x36b6ef(0x95));const _0x4c2c75=readServiceRegistry(_0x1a123b),_0x3d490c=(_0x1a123b[_0x36b6ef(0x81)]??(()=>new Date()))()[_0x36b6ef(0xc5)](),_0x27a4bc=[];let _0x4a25f5=0x0,_0x1a5991=0x0;for(const _0x3d74f5 of _0x5bb0f1['manifests']){if(!_0x3d74f5['normalizedManifest'])continue;const _0x111b59=_0x3d74f5[_0x36b6ef(0xc3)][_0x36b6ef(0x82)][_0x36b6ef(0x9d)],_0x5a9ceb={'serviceCode':_0x111b59,'version':_0x3d74f5[_0x36b6ef(0xc3)][_0x36b6ef(0xc9)],'importedAt':_0x3d490c,'source':{'type':_0x36b6ef(0xca),'path':_0x5bb0f1[_0x36b6ef(0xb9)],'hash':_0x3d74f5[_0x36b6ef(0xab)]},'manifest':_0x3d74f5[_0x36b6ef(0xa4)],'normalizedManifest':_0x3d74f5[_0x36b6ef(0xc3)]},_0x7c0e3=_0x4c2c75[_0x36b6ef(0xbf)][_0x36b6ef(0xcb)](_0x51edec=>_0x51edec[_0x36b6ef(0x99)]===_0x111b59);_0x7c0e3>=0x0?(_0x4c2c75[_0x36b6ef(0xbf)][_0x7c0e3]=_0x5a9ceb,_0x1a5991++):(_0x4c2c75[_0x36b6ef(0xbf)][_0x36b6ef(0xbe)](_0x5a9ceb),_0x4a25f5++),_0x27a4bc[_0x36b6ef(0xbe)](_0x5a9ceb);}_0x4c2c75[_0x36b6ef(0xbf)][_0x36b6ef(0xbb)]((_0x1a185c,_0x1bce02)=>_0x1a185c[_0x36b6ef(0x99)][_0x36b6ef(0x8b)](_0x1bce02[_0x36b6ef(0x99)])),_0x4c2c75[_0x36b6ef(0x86)]=_0x3d490c;const _0x511619=writeServiceRegistry(_0x4c2c75,_0x1a123b);return{'registryPath':_0x511619,'entry':_0x27a4bc[0x0],'replaced':_0x27a4bc[_0x36b6ef(0x93)]===0x1?_0x1a5991===0x1:_0x1a5991>0x0,'entries':_0x27a4bc,'imported':_0x4a25f5,'updated':_0x1a5991,'serviceCount':_0x4c2c75['services']['length']};}export function exportServiceManifest(_0x37acb5,_0xe4641d,_0x714bb6={}){const _0x568e5d=a42_0x355a1f,_0x5cda3b=getServiceRegistryPath(_0x714bb6),_0x3fad18=getLocalServiceEntry(_0x37acb5,_0x714bb6);if(!_0x3fad18)throw CliErrors[_0x568e5d(0xc6)](_0x568e5d(0x83)+_0x37acb5,_0x568e5d(0xa5));const _0x56eb80=resolve(_0xe4641d),_0x349b85=dirname(_0x56eb80);return!existsSync(_0x349b85)&&mkdirSync(_0x349b85,{'recursive':!![]}),writeFileSync(_0x56eb80,JSON[_0x568e5d(0xc8)](_0x3fad18['manifest'],null,0x2)+'\x0a',{'encoding':_0x568e5d(0xa3),'mode':0x180}),{'registryPath':_0x5cda3b,'filePath':_0x56eb80,'entry':_0x3fad18};}export function removeServiceManifest(_0x38c411,_0x46d927={}){const _0x1948a9=a42_0x355a1f,_0x5d31a0=readServiceRegistry(_0x46d927),_0x540c7b=_0x38c411[_0x1948a9(0xd8)](),_0x52fbb0=_0x5d31a0[_0x1948a9(0xbf)][_0x1948a9(0xcb)](_0x56da72=>_0x56da72[_0x1948a9(0x99)]===_0x540c7b);if(_0x52fbb0<0x0)throw CliErrors[_0x1948a9(0xc6)]('Local\x20service\x20not\x20found:\x20'+_0x540c7b,_0x1948a9(0xa5));const [_0x4b10e1]=_0x5d31a0[_0x1948a9(0xbf)]['splice'](_0x52fbb0,0x1),_0x1300c1=(_0x46d927['now']??(()=>new Date()))()[_0x1948a9(0xc5)]();_0x5d31a0['updatedAt']=_0x1300c1;const _0xa565f0=writeServiceRegistry(_0x5d31a0,_0x46d927);return{'registryPath':_0xa565f0,'entry':_0x4b10e1,'serviceCount':_0x5d31a0[_0x1948a9(0xbf)]['length']};}export function listLocalServices(_0x1e6bc3={}){const _0x187771=a42_0x355a1f;return readServiceRegistry(_0x1e6bc3)[_0x187771(0xbf)];}export function getLocalServiceEntry(_0xfce9e9,_0x178440={}){const _0x3be18f=a42_0x355a1f;return readServiceRegistry(_0x178440)[_0x3be18f(0xbf)][_0x3be18f(0xa0)](_0x24710e=>_0x24710e[_0x3be18f(0x99)]===_0xfce9e9[_0x3be18f(0xd8)]());}export function listLocalServiceTrees(_0x20a46b={}){const _0x313ba8=a42_0x355a1f;return readServiceRegistry(_0x20a46b)[_0x313ba8(0xbf)][_0x313ba8(0x85)](_0x17c8f7=>_0x17c8f7[_0x313ba8(0xc3)]);}export function inspectServiceRegistry(_0x574fe1={}){const _0x5019ad=a42_0x355a1f,_0x23f30e=getServiceRegistryPath(_0x574fe1);if(!existsSync(_0x23f30e))return emptyServiceRegistryInspection(_0x23f30e,'missing',![]);try{const _0x490433=readFileSync(_0x23f30e,_0x5019ad(0xa3));if(!_0x490433[_0x5019ad(0xd8)]())return emptyServiceRegistryInspection(_0x23f30e,_0x5019ad(0xd4),!![]);const _0x176d8b=JSON['parse'](_0x490433);if(_0x176d8b[_0x5019ad(0xcf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x23f30e,'invalid',!![]),'schemaVersion':_0x176d8b[_0x5019ad(0xcf)],'message':_0x5019ad(0xbd)+String(_0x176d8b[_0x5019ad(0xcf)])};if(!Array[_0x5019ad(0xc7)](_0x176d8b['services']))return{...emptyServiceRegistryInspection(_0x23f30e,_0x5019ad(0xb8),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x176d8b['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0x10b162=_0x176d8b[_0x5019ad(0xbf)][_0x5019ad(0x85)](summarizeLocalServiceEntry);return{'registryPath':_0x23f30e,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x176d8b[_0x5019ad(0x86)],'serviceCount':_0x10b162[_0x5019ad(0x93)],'commandCount':_0x10b162[_0x5019ad(0x8e)]((_0x2f1222,_0x11fefa)=>_0x2f1222+_0x11fefa[_0x5019ad(0xb7)],0x0),'services':_0x10b162};}catch(_0x5a2ba8){return{...emptyServiceRegistryInspection(_0x23f30e,'invalid',!![]),'message':_0x5a2ba8 instanceof Error?_0x5a2ba8['message']:String(_0x5a2ba8)};}}export function formatValidationFailure(_0x200ee0){const _0x2a7b94=a42_0x355a1f,_0x5d4faf=_0x200ee0[_0x2a7b94(0x8d)][_0x2a7b94(0x85)](_0x6c0b8d=>_0x6c0b8d[_0x2a7b94(0xba)]+':\x20'+_0x6c0b8d[_0x2a7b94(0xcd)]);return _0x2a7b94(0xd1)+_0x5d4faf[_0x2a7b94(0x9f)]('\x0a');}function extractLoadedServiceManifests(_0x494826,_0x1e0f24){const _0x43eb49=a42_0x355a1f;if(!isServiceRegistryLike(_0x494826)){const _0x5a495e=_0x494826,{manifest:_0x4c91b5,errors:_0x1cc2b6}=adaptServiceTreeManifestForLegacyFramework(_0x5a495e),_0x3b5b63=validateServiceTreeManifest(_0x4c91b5),_0x23d897=mergeValidationErrors(_0x3b5b63,_0x1cc2b6);return[{'manifest':_0x5a495e,'report':_0x23d897,'normalizedManifest':_0x23d897['ok']?normalizeServiceTreeManifest(_0x4c91b5):undefined,'sourceHash':_0x1e0f24}];}return _0x494826[_0x43eb49(0xbf)][_0x43eb49(0x85)]((_0x5da62d,_0x1d1dad)=>{const _0x250936=_0x43eb49,_0x2146af=isObjectRecord(_0x5da62d)?_0x5da62d[_0x250936(0xa4)]:undefined,{manifest:_0x18cfa4,errors:_0x46c773}=adaptServiceTreeManifestForLegacyFramework(_0x2146af),_0x438c5e=validateServiceTreeManifest(_0x18cfa4),_0x1d3c16=mergeValidationErrors(_0x438c5e,_0x46c773),_0x32899e=isObjectRecord(_0x5da62d)&&typeof _0x5da62d[_0x250936(0x99)]==='string'?_0x5da62d[_0x250936(0x99)]:undefined;return{'manifest':_0x2146af,'report':_0x1d3c16,'normalizedManifest':_0x1d3c16['ok']?normalizeServiceTreeManifest(_0x18cfa4):undefined,'sourceHash':sha256(JSON['stringify'](_0x2146af,null,0x2)+'\x0a'),'registryIndex':_0x1d1dad,'registryServiceCode':_0x32899e};});}function mergeValidationErrors(_0x2133e3,_0x70e39d){const _0x32f42b=a42_0x355a1f,_0x5df8f3=_0x2133e3[_0x32f42b(0x8d)][_0x32f42b(0x85)](_0xaf5299=>_0xaf5299[_0x32f42b(0xcd)]===_0x32f42b(0xaa)?{..._0xaf5299,'message':_0x32f42b(0xb3)}:_0xaf5299),_0x6a53c7=[..._0x70e39d,..._0x5df8f3];return{'ok':_0x6a53c7['length']===0x0,'errors':_0x6a53c7,'warnings':_0x2133e3[_0x32f42b(0xd5)]};}function aggregateValidationReports(_0x37d680){const _0x5d2c7c=a42_0x355a1f,_0xdfb329=_0x37d680[_0x5d2c7c(0x87)](_0x2ea3a4=>_0x2ea3a4[_0x5d2c7c(0x9c)]===undefined?_0x2ea3a4[_0x5d2c7c(0xb0)][_0x5d2c7c(0x8d)]:_0x2ea3a4[_0x5d2c7c(0xb0)][_0x5d2c7c(0x8d)][_0x5d2c7c(0x85)](_0x3fad86=>({..._0x3fad86,'path':prefixRegistryIssuePath(_0x2ea3a4[_0x5d2c7c(0x9c)],_0x3fad86[_0x5d2c7c(0xba)])}))),_0x7ee28=_0x37d680['flatMap'](_0x5fe6df=>_0x5fe6df[_0x5d2c7c(0x9c)]===undefined?_0x5fe6df[_0x5d2c7c(0xb0)]['warnings']:_0x5fe6df['report'][_0x5d2c7c(0xd5)][_0x5d2c7c(0x85)](_0x26b144=>({..._0x26b144,'path':prefixRegistryIssuePath(_0x5fe6df[_0x5d2c7c(0x9c)],_0x26b144[_0x5d2c7c(0xba)])})));return{'ok':_0xdfb329['length']===0x0,'errors':_0xdfb329,'warnings':_0x7ee28};}function a42_0x3104(){const _0x36a26d=['startsWith','homeDir','importedAt','1449525WRHyVK','length','risk','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifests','.tmp','Cannot\x20write\x20service\x20registry:\x20','serviceCode','command','].manifest.','registryIndex','code','Service\x20manifest\x20file\x20not\x20found:\x20','join','find','target','1113935KlqUZW','utf8','manifest','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','1280NOeRHK','description','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','service.json','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','sourceHash','].manifest','update','9202aPGiDr','Remove\x20or\x20migrate\x20','report','$.services[','object','bff\x20target\x20requires\x20functionName.','6hDYDgt','sha256','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','commandCount','invalid','filePath','path','sort','2106168uSxjQw','Unsupported\x20schemaVersion:\x20','push','services','16641tUHyBV','49iAeihp','ENOENT','normalizedManifest','CliError','toISOString','validation','isArray','stringify','version','file','findIndex','154vcTAIl','message','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','schemaVersion','digest','Service\x20manifest\x20validation\x20failed:\x0a','56096bgzzfB','slice','empty','warnings','name','20DKCvli','trim','now','service','Local\x20service\x20not\x20found:\x20','homeDirName','map','updatedAt','flatMap','registry','138249JFjJGS','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','localeCompare','parse','errors','reduce'];a42_0x3104=function(){return _0x36a26d;};return a42_0x3104();}function prefixRegistryIssuePath(_0x21e786,_0x2f05c4){const _0x2d987c=a42_0x355a1f;if(_0x2f05c4==='$')return'$.services['+_0x21e786+_0x2d987c(0xac);if(_0x2f05c4[_0x2d987c(0x8f)]('$.'))return'$.services['+_0x21e786+_0x2d987c(0xac)+_0x2f05c4['slice'](0x1);if(_0x2f05c4[_0x2d987c(0x8f)]('$['))return _0x2d987c(0xb1)+_0x21e786+_0x2d987c(0xac)+_0x2f05c4[_0x2d987c(0xd3)](0x1);return _0x2d987c(0xb1)+_0x21e786+_0x2d987c(0x9b)+_0x2f05c4;}function isServiceRegistryLike(_0x33724b){const _0x29c2e3=a42_0x355a1f;return isObjectRecord(_0x33724b)&&_0x33724b['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x29c2e3(0xc7)](_0x33724b[_0x29c2e3(0xbf)]);}function isObjectRecord(_0x38be87){const _0x393784=a42_0x355a1f;return Boolean(_0x38be87)&&typeof _0x38be87===_0x393784(0xb2)&&!Array[_0x393784(0xc7)](_0x38be87);}function emptyServiceRegistryInspection(_0x3780f8,_0x507af5,_0x5b7103){return{'registryPath':_0x3780f8,'exists':_0x5b7103,'status':_0x507af5,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x23d25a){const _0x5b3e8f=a42_0x355a1f,_0x204432=_0x23d25a[_0x5b3e8f(0xc3)],_0x1c196a=_0x204432['commands'][_0x5b3e8f(0x85)](_0x30d155=>({'path':_0x30d155['cliPath'],'description':_0x30d155[_0x5b3e8f(0xa7)],'risk':_0x30d155[_0x5b3e8f(0x94)],'targetKind':_0x30d155[_0x5b3e8f(0xa1)]['kind'],'targetCommand':_0x30d155['target'][_0x5b3e8f(0x9a)]}));return{'serviceCode':_0x23d25a[_0x5b3e8f(0x99)],'name':_0x204432[_0x5b3e8f(0x82)][_0x5b3e8f(0xd6)],'description':_0x204432[_0x5b3e8f(0x82)][_0x5b3e8f(0xa7)],'version':_0x23d25a[_0x5b3e8f(0xc9)],'importedAt':_0x23d25a[_0x5b3e8f(0x91)],'source':_0x23d25a['source'],'commandCount':_0x1c196a[_0x5b3e8f(0x93)],'commands':_0x1c196a};}function sha256(_0xa38ed5){const _0x25c478=a42_0x355a1f;return createHash(_0x25c478(0xb5))[_0x25c478(0xad)](_0xa38ed5)[_0x25c478(0xd0)]('hex');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a43_0x5745f2=a43_0x23c6;function a43_0x1d7b(){const _0x29ab75=['path','Created\x20local\x20Skill\x20draft\x20','Refusing\x20to\x20overwrite\x20symlink:\x20','skill','skillName','skillDir','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','48501AWDSmK','target','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','2045193FaLtsj','validation','创建本地自包含的运行态\x20Skill\x20草稿','read','4017461trmWeI','files','2420RPlOhd','2020SNDfJi','force','trim','type','2226FZRQLM','3354140MPxxfc','199574fWzeqJ','WRITE','str','isSymbolicLink','bool','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','name','rendered','15IGqPgN','map','836752WKkrNu','create'];a43_0x1d7b=function(){return _0x29ab75;};return a43_0x1d7b();}(function(_0x452871,_0x4f8799){const _0x579b03=a43_0x23c6,_0x386a1b=_0x452871();while(!![]){try{const _0x4df172=-parseInt(_0x579b03(0x172))/0x1*(-parseInt(_0x579b03(0x16a))/0x2)+-parseInt(_0x579b03(0x15d))/0x3+-parseInt(_0x579b03(0x169))/0x4+parseInt(_0x579b03(0x163))/0x5*(parseInt(_0x579b03(0x168))/0x6)+-parseInt(_0x579b03(0x161))/0x7+parseInt(_0x579b03(0x174))/0x8+-parseInt(_0x579b03(0x15a))/0x9*(-parseInt(_0x579b03(0x164))/0xa);if(_0x4df172===_0x4f8799)break;else _0x386a1b['push'](_0x386a1b['shift']());}catch(_0x362a88){_0x386a1b['push'](_0x386a1b['shift']());}}}(a43_0x1d7b,0xbd4b8));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x5745f2(0x179),'command':a43_0x5745f2(0x175),'description':a43_0x5745f2(0x15f),'risk':a43_0x5745f2(0x160),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4f2df4){const _0xac97e3=a43_0x5745f2,_0x33cbc5=buildSkillCreatePlan(_0x4f2df4['str']('name'),_0x4f2df4['str'](_0xac97e3(0x167)),_0x4f2df4['str'](_0xac97e3(0x15b)));return{'method':_0xac97e3(0x16b),'url':_0x33cbc5[_0xac97e3(0x158)],'body':{'skillName':_0x33cbc5[_0xac97e3(0x171)][_0xac97e3(0x157)],'type':_0x33cbc5[_0xac97e3(0x171)]['type'],'selfContained':!![],'files':_0x33cbc5[_0xac97e3(0x171)][_0xac97e3(0x162)][_0xac97e3(0x173)](_0x5220dd=>_0x5220dd[_0xac97e3(0x176)])},'description':_0xac97e3(0x15c)};},async 'execute'(_0x223f3e){const _0x1f5008=a43_0x5745f2,_0x24264e=buildSkillCreatePlan(_0x223f3e['str'](_0x1f5008(0x170)),_0x223f3e[_0x1f5008(0x16c)](_0x1f5008(0x167)),_0x223f3e[_0x1f5008(0x16c)](_0x1f5008(0x15b)));return writeSkillDraft(_0x24264e,_0x223f3e[_0x1f5008(0x16e)](_0x1f5008(0x165))),{'ok':!![],'data':{'skillName':_0x24264e[_0x1f5008(0x171)][_0x1f5008(0x157)],'type':_0x24264e[_0x1f5008(0x171)]['type'],'dir':_0x24264e[_0x1f5008(0x158)],'files':_0x24264e[_0x1f5008(0x171)][_0x1f5008(0x162)][_0x1f5008(0x173)](_0x47c02a=>_0x47c02a[_0x1f5008(0x176)])},'message':_0x1f5008(0x177)+_0x24264e[_0x1f5008(0x171)]['skillName']};}};function buildSkillCreatePlan(_0xe259c3,_0x3038db,_0x26515b){const _0x4656a3=a43_0x5745f2,_0x5309eb=_0x3038db[_0x4656a3(0x166)](),_0x30b3de=renderSkillTemplate({'skillName':_0xe259c3,'type':_0x5309eb});!_0x5309eb&&writeCliSideChannelLine(_0x4656a3(0x159));const _0x3e7cbf=resolve(normalizeSkillTarget(_0x26515b));return{'rendered':_0x30b3de,'targetRoot':_0x3e7cbf,'skillDir':resolve(_0x3e7cbf,_0x30b3de[_0x4656a3(0x157)])};}function a43_0x23c6(_0x1a5137,_0x5d4712){_0x1a5137=_0x1a5137-0x157;const _0x1d7b4d=a43_0x1d7b();let _0x23c648=_0x1d7b4d[_0x1a5137];return _0x23c648;}function normalizeSkillTarget(_0x1ff972){const _0x38c01a=a43_0x5745f2;return(_0x1ff972||DEFAULT_SKILL_TARGET)[_0x38c01a(0x166)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x37e359,_0x4b6b02){const _0x42e30e=a43_0x5745f2;if(existsSync(_0x37e359[_0x42e30e(0x158)])){const _0x244b02=lstatSync(_0x37e359['skillDir']);if(!_0x244b02['isDirectory']()||_0x244b02[_0x42e30e(0x16d)]())throw CliErrors[_0x42e30e(0x15e)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x37e359[_0x42e30e(0x158)]);if(!_0x4b6b02)throw CliErrors[_0x42e30e(0x15e)]('Skill\x20directory\x20already\x20exists:\x20'+_0x37e359['skillDir'],_0x42e30e(0x16f));}for(const _0x304368 of _0x37e359[_0x42e30e(0x171)][_0x42e30e(0x162)]){const _0x1adca3=resolve(_0x37e359['skillDir'],_0x304368[_0x42e30e(0x176)]),_0x4b88b9=dirname(_0x1adca3);mkdirSync(_0x4b88b9,{'recursive':!![]});if(existsSync(_0x1adca3)&&lstatSync(_0x1adca3)['isSymbolicLink']())throw CliErrors[_0x42e30e(0x15e)](_0x42e30e(0x178)+_0x1adca3);writeFileSync(_0x1adca3,_0x304368['content'],'utf8');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a44_0x25fd45=a44_0x49b5;(function(_0x2ae274,_0x260c6b){const _0x990c0f=a44_0x49b5,_0x4cd81d=_0x2ae274();while(!![]){try{const _0x40f220=parseInt(_0x990c0f(0x13b))/0x1*(parseInt(_0x990c0f(0x113))/0x2)+parseInt(_0x990c0f(0x11f))/0x3*(-parseInt(_0x990c0f(0x134))/0x4)+-parseInt(_0x990c0f(0x10a))/0x5*(-parseInt(_0x990c0f(0x121))/0x6)+-parseInt(_0x990c0f(0x12a))/0x7+parseInt(_0x990c0f(0x114))/0x8*(parseInt(_0x990c0f(0x11e))/0x9)+parseInt(_0x990c0f(0x119))/0xa*(-parseInt(_0x990c0f(0x120))/0xb)+parseInt(_0x990c0f(0x10e))/0xc*(parseInt(_0x990c0f(0x11d))/0xd);if(_0x40f220===_0x260c6b)break;else _0x4cd81d['push'](_0x4cd81d['shift']());}catch(_0x1b3458){_0x4cd81d['push'](_0x4cd81d['shift']());}}}(a44_0x2c8f,0xb7d0f));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';function a44_0x49b5(_0x3422cf,_0x56e29d){_0x3422cf=_0x3422cf-0x108;const _0x2c8f9a=a44_0x2c8f();let _0x49b5b3=_0x2c8f9a[_0x3422cf];return _0x49b5b3;}function a44_0x2c8f(){const _0x3ca72b=['appCode','38839nPGaTu','created','read','30wGdEtO','diagram-file','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','skill','1356FXbkfu','str','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','company','skillCode','10ABsTky','4756408lGezqw','source-fingerprint','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','version','diagram-push','36070OuzlLA','expectedDiagramRevision','found','personal','204971CTgFVi','9xvUkpA','1131690QfpNaF','1089vejxga','1101036ihPQWc','unchanged','Created','\x20is\x20unchanged.','expected-diagram-revision','isInteger','scope','skill-code','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','10008313hPQruo','action','Updated','validation',';\x20next\x20write\x20expects\x20revision\x20','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','write','\x20Skill\x20diagram\x20for\x20','trim',';\x20first\x20write\x20expects\x20revision\x20','12AhmpVS','diagram-validate','Skill\x20diagram\x20for\x20','Skill\x20diagram\x20validation\x20passed\x20for\x20','Found\x20Skill\x20diagram\x20for\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.'];a44_0x2c8f=function(){return _0x3ca72b;};return a44_0x2c8f();}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(_0x37cac8){const _0x3923bf=a44_0x49b5,_0x42b0d1=_0x37cac8[_0x3923bf(0x10f)](_0x3923bf(0x128))[_0x3923bf(0x132)](),_0x28f153=_0x37cac8[_0x3923bf(0x10f)]('version')[_0x3923bf(0x132)](),_0x4f6692=_0x37cac8[_0x3923bf(0x10f)](_0x3923bf(0x127));if(!_0x42b0d1||!_0x28f153||_0x4f6692!==_0x3923bf(0x11c)&&_0x4f6692!==_0x3923bf(0x111))throw CliErrors[_0x3923bf(0x12d)]('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x42b0d1,'version':_0x28f153,'scope':_0x4f6692};}async function readDiagramWriteInput(_0x49acc5){const _0x21dae5=a44_0x49b5,_0x333a6d=_0x49acc5['num'](_0x21dae5(0x125)),_0x4d2841=_0x49acc5['str'](_0x21dae5(0x115))[_0x21dae5(0x132)]();if(!Number[_0x21dae5(0x126)](_0x333a6d)||_0x333a6d<0x0)throw CliErrors['validation']('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/['test'](_0x4d2841))throw CliErrors[_0x21dae5(0x12d)](_0x21dae5(0x139));return{'expectedDiagramRevision':_0x333a6d,'sourceFingerprint':_0x4d2841,'diagram':await readRequiredSkillDiagram(_0x49acc5[_0x21dae5(0x10f)](_0x21dae5(0x10b)))};}export const diagramValidateCommand={'service':a44_0x25fd45(0x10d),'command':a44_0x25fd45(0x135),'description':a44_0x25fd45(0x110),'risk':a44_0x25fd45(0x109),'flags':WRITE_FLAGS,async 'execute'(_0x2fbdbe){const _0x1343af=a44_0x25fd45,_0x5770f9=readDiagramTarget(_0x2fbdbe),_0x44edf7=await validateRuntimeSkillVersionDiagram(_0x2fbdbe[_0x1343af(0x13a)],_0x5770f9[_0x1343af(0x112)],_0x5770f9['version'],_0x5770f9['scope'],await readDiagramWriteInput(_0x2fbdbe));return{'ok':!![],'data':_0x44edf7,'message':_0x1343af(0x137)+_0x5770f9[_0x1343af(0x112)]+'@'+_0x5770f9[_0x1343af(0x117)]+'.'};}};export const diagramPushCommand={'service':a44_0x25fd45(0x10d),'command':a44_0x25fd45(0x118),'description':a44_0x25fd45(0x116),'risk':a44_0x25fd45(0x130),'confirmationDescription':a44_0x25fd45(0x129),'flags':WRITE_FLAGS,async 'execute'(_0x46d391){const _0x17e117=a44_0x25fd45,_0x499a46=readDiagramTarget(_0x46d391),_0x35e75c=await putRuntimeSkillVersionDiagram(_0x46d391['appCode'],_0x499a46[_0x17e117(0x112)],_0x499a46['version'],_0x499a46[_0x17e117(0x127)],await readDiagramWriteInput(_0x46d391));return{'ok':!![],'data':_0x35e75c,'message':_0x35e75c[_0x17e117(0x12b)]===_0x17e117(0x122)?_0x17e117(0x136)+_0x499a46[_0x17e117(0x112)]+'@'+_0x499a46['version']+_0x17e117(0x124):(_0x35e75c[_0x17e117(0x12b)]===_0x17e117(0x108)?_0x17e117(0x123):_0x17e117(0x12c))+_0x17e117(0x131)+_0x499a46[_0x17e117(0x112)]+'@'+_0x499a46[_0x17e117(0x117)]+'.'};}};export const diagramShowCommand={'service':'skill','command':'diagram-show','description':a44_0x25fd45(0x12f),'risk':a44_0x25fd45(0x109),'flags':TARGET_FLAGS,async 'execute'(_0x674027){const _0x419dfc=a44_0x25fd45,_0x311b09=readDiagramTarget(_0x674027),_0x1b1e45=await getRuntimeSkillVersionDiagram(_0x674027[_0x419dfc(0x13a)],_0x311b09[_0x419dfc(0x112)],_0x311b09[_0x419dfc(0x117)],_0x311b09[_0x419dfc(0x127)]);return{'ok':!![],'data':_0x1b1e45,'message':_0x1b1e45[_0x419dfc(0x11b)]?_0x419dfc(0x138)+_0x311b09[_0x419dfc(0x112)]+'@'+_0x311b09[_0x419dfc(0x117)]+_0x419dfc(0x12e)+_0x1b1e45['expectedDiagramRevision']+'.':_0x419dfc(0x10c)+_0x311b09[_0x419dfc(0x112)]+'@'+_0x311b09[_0x419dfc(0x117)]+_0x419dfc(0x133)+_0x1b1e45[_0x419dfc(0x11a)]+'.'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a45_0x2a64b8=a45_0x31b4;(function(_0x13e566,_0x57cf25){const _0x8694cd=a45_0x31b4,_0x51b92a=_0x13e566();while(!![]){try{const _0x5b8533=parseInt(_0x8694cd(0x8d))/0x1*(parseInt(_0x8694cd(0x7c))/0x2)+-parseInt(_0x8694cd(0x68))/0x3*(-parseInt(_0x8694cd(0x81))/0x4)+parseInt(_0x8694cd(0x8f))/0x5+parseInt(_0x8694cd(0x80))/0x6+-parseInt(_0x8694cd(0x65))/0x7+-parseInt(_0x8694cd(0x7d))/0x8+parseInt(_0x8694cd(0x69))/0x9*(parseInt(_0x8694cd(0x79))/0xa);if(_0x5b8533===_0x57cf25)break;else _0x51b92a['push'](_0x51b92a['shift']());}catch(_0x2684ab){_0x51b92a['push'](_0x51b92a['shift']());}}}(a45_0x1a5f,0xbb876));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';function a45_0x1a5f(){const _0x2dfd46=['Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','company','\x20personal\x20and\x20','skillCode','scope','unchanged','trim','version','read','push','62910ZoEVin','\x20company\x20Skill(s).','606180dXrgAP','all','reduce','code','../../../skills/runtime-skill-sync.js','10378970eslYsw','project','action','1791szIpiP','1864170OEnvBS','length','accessKey','created','updated','skillRoots','bool','includes','install','flatMap','map','str','personal','envName','global','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','50fzwHvC','filter','appCode','10HDmmYR','9253112ItZIwZ','force','Installed\x20','2929836JUYpaO','9700apvtPt','skipped'];a45_0x1a5f=function(){return _0x2dfd46;};return a45_0x1a5f();}function a45_0x31b4(_0xaf786,_0x9db806){_0xaf786=_0xaf786-0x65;const _0x1a5f90=a45_0x1a5f();let _0x31b424=_0x1a5f90[_0xaf786];return _0x31b424;}import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':'skill','command':a45_0x2a64b8(0x71),'description':a45_0x2a64b8(0x78),'risk':a45_0x2a64b8(0x8b),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x16a3b2){return syncRuntimeSkills(_0x16a3b2);}};async function syncRuntimeSkills(_0x70a832){const _0x3c8ee2=a45_0x2a64b8,{downloadRuntimeSkillPackage:_0x4efe49,listRuntimeSkills:_0x16e34e}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0xf9cffa,materializeRuntimeSkill:_0x34cca7,pruneStaleRuntimeSkillCache:_0xfed17f,pruneStaleRuntimeSkillLinks:_0x5c4c25,resolveRuntimeSkillInstallTarget:_0x303e70}=await import(_0x3c8ee2(0x93)),_0x3c5d38=_0x70a832[_0x3c8ee2(0x74)](_0x3c8ee2(0x92)),_0x25540c=normalizeSyncScopes(_0x70a832[_0x3c8ee2(0x74)]('scope')),_0x55dd9f=_0x70a832[_0x3c8ee2(0x76)]??'production',_0x5050fa=_0x70a832[_0x3c8ee2(0x6b)],_0x131af3=_0x70a832[_0x3c8ee2(0x6f)](_0x3c8ee2(0x7e));if(!_0x5050fa)throw CliErrors['authRequired'](_0x3c8ee2(0x83));const _0x2f08e0=_0x303e70(_0x70a832['appCode'],_0x70a832[_0x3c8ee2(0x6f)](_0x3c8ee2(0x66))?_0x3c8ee2(0x66):_0x3c8ee2(0x77)),_0xc065af=_0x303e70(_0x70a832[_0x3c8ee2(0x7b)],_0x2f08e0[_0x3c8ee2(0x87)]===_0x3c8ee2(0x66)?_0x3c8ee2(0x77):'project'),_0x4b6b58=await Promise[_0x3c8ee2(0x90)](_0x25540c[_0x3c8ee2(0x73)](_0x597218=>_0x16e34e({'appCode':_0x70a832[_0x3c8ee2(0x7b)],'scope':_0x597218,'code':_0x3c5d38[_0x3c8ee2(0x89)]()||undefined}))),_0x286183=_0x25540c[_0x3c8ee2(0x70)](_0x3c8ee2(0x75))?_0x4b6b58['flatMap']((_0x2d16bb,_0x94419e)=>_0x25540c[_0x94419e]===_0x3c8ee2(0x75)?_0x2d16bb['personal']:[]):[],_0x3ae431=_0x25540c[_0x3c8ee2(0x70)](_0x3c8ee2(0x84))?_0x4b6b58[_0x3c8ee2(0x72)]((_0x38d9c0,_0x4e213c)=>_0x25540c[_0x4e213c]==='company'?_0x38d9c0[_0x3c8ee2(0x84)]:[]):[],_0xc81d11=new Set([..._0x286183[_0x3c8ee2(0x73)](_0xfcee8c=>_0xfcee8c[_0x3c8ee2(0x86)]?.['trim']())[_0x3c8ee2(0x7a)](_0x5867fd=>Boolean(_0x5867fd)),..._0x3ae431[_0x3c8ee2(0x73)](_0xee3840=>_0xee3840[_0x3c8ee2(0x86)]?.[_0x3c8ee2(0x89)]())[_0x3c8ee2(0x7a)](_0x49e7e3=>Boolean(_0x49e7e3))]),_0x292b4c=_0x3c5d38['trim']()?[_0x3c5d38['trim']()]:undefined,_0xc2ee0a=_0x25540c[_0x3c8ee2(0x6a)]===0x2&&_0x25540c[_0x3c8ee2(0x70)](_0x3c8ee2(0x75))&&_0x25540c[_0x3c8ee2(0x70)]('company'),_0x4c58c7=_0xc2ee0a?_0x5c4c25(_0x2f08e0,_0xc81d11,_0x292b4c):[],_0x56f727=_0xfed17f({'env':_0x55dd9f,'accessKey':_0x5050fa,'appCode':_0x70a832[_0x3c8ee2(0x7b)],'activeSkillCodes':_0xc81d11,'pruneSkillCodes':_0x292b4c,'scopes':_0x25540c,'protectedLinkRoots':_0xc065af['skillRoots']}),_0x5ca198=[];for(const _0x23afbd of _0x286183){_0x5ca198[_0x3c8ee2(0x8c)](_0x34cca7(_0x23afbd,'personal',{'env':_0x55dd9f,'accessKey':_0x5050fa,'appCode':_0x70a832[_0x3c8ee2(0x7b)],'force':_0x131af3,'packageBytes':await downloadSkillPackage(_0x23afbd,_0x3c8ee2(0x75),_0x70a832[_0x3c8ee2(0x7b)],_0x4efe49)}));}for(const _0x3d760c of _0x3ae431){_0x5ca198[_0x3c8ee2(0x8c)](_0x34cca7(_0x3d760c,_0x3c8ee2(0x84),{'env':_0x55dd9f,'accessKey':_0x5050fa,'appCode':_0x70a832['appCode'],'force':_0x131af3,'packageBytes':await downloadSkillPackage(_0x3d760c,'company',_0x70a832[_0x3c8ee2(0x7b)],_0x4efe49)}));}const _0x4bbf1f=_0xf9cffa(_0x5ca198,_0x2f08e0),_0x2bc5d1=countLinkActions(_0x4bbf1f);return{'ok':!![],'data':{'appCode':_0x70a832[_0x3c8ee2(0x7b)],..._0x2f08e0[_0x3c8ee2(0x87)]===_0x3c8ee2(0x66)?{'installTarget':{'scope':_0x2f08e0[_0x3c8ee2(0x87)],'skillRoots':[..._0x2f08e0[_0x3c8ee2(0x6e)]]}}:{},'personal':_0x286183[_0x3c8ee2(0x6a)],'company':_0x3ae431['length'],'materialized':_0x5ca198[_0x3c8ee2(0x6a)],'links':{'total':_0x4bbf1f[_0x3c8ee2(0x6a)],'created':_0x2bc5d1[_0x3c8ee2(0x6c)]??0x0,'updated':_0x2bc5d1[_0x3c8ee2(0x6d)]??0x0,'unchanged':_0x2bc5d1[_0x3c8ee2(0x88)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x4c58c7[_0x3c8ee2(0x7a)](_0x12442b=>_0x12442b[_0x3c8ee2(0x67)]==='removed')[_0x3c8ee2(0x6a)],'cacheDirs':_0x56f727[_0x3c8ee2(0x7a)](_0x4c8c38=>_0x4c8c38[_0x3c8ee2(0x67)]==='removed')[_0x3c8ee2(0x6a)],'skipped':[..._0x4c58c7,..._0x56f727][_0x3c8ee2(0x7a)](_0x5cbdd5=>_0x5cbdd5[_0x3c8ee2(0x67)]===_0x3c8ee2(0x82))['length']},'skills':{'personal':_0x286183['map'](summarizeRuntimeSkill),'company':_0x3ae431['map'](summarizeRuntimeSkill)}},'message':_0x3c8ee2(0x7f)+_0x286183['length']+_0x3c8ee2(0x85)+_0x3ae431[_0x3c8ee2(0x6a)]+_0x3c8ee2(0x8e)};}async function downloadSkillPackage(_0x175da6,_0x2b6387,_0x5f3fb9,_0x4c0c43){const _0x4c705c=a45_0x2a64b8,_0xc07b0b=_0x175da6[_0x4c705c(0x8a)]?.[_0x4c705c(0x89)]();return _0xc07b0b?_0x4c0c43(_0x2b6387,_0x175da6['skillCode'],_0x5f3fb9,_0xc07b0b):_0x4c0c43(_0x2b6387,_0x175da6['skillCode'],_0x5f3fb9);}function countLinkActions(_0x1170df){const _0x1f675f=a45_0x2a64b8;return _0x1170df[_0x1f675f(0x91)]((_0x12f99c,_0x40d4ef)=>{const _0x11dd1e=_0x1f675f;return _0x12f99c[_0x40d4ef[_0x11dd1e(0x67)]]=(_0x12f99c[_0x40d4ef[_0x11dd1e(0x67)]]??0x0)+0x1,_0x12f99c;},{});}
|