@lovrabet/lovrabet-cli 2.2.5-beta.1 → 2.2.5-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/lovrabet/SKILL.md +1 -1
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a57_0x5c8dd7=a57_0x6322;(function(_0x45d110,_0x4e28d4){const _0x4560d9=a57_0x6322,_0x4299bc=_0x45d110();while(!![]){try{const _0x13f924=parseInt(_0x4560d9(0xfb))/0x1*(-parseInt(_0x4560d9(0x12c))/0x2)+parseInt(_0x4560d9(0x126))/0x3*(-parseInt(_0x4560d9(0xfc))/0x4)+parseInt(_0x4560d9(0x145))/0x5*(-parseInt(_0x4560d9(0x140))/0x6)+-parseInt(_0x4560d9(0x122))/0x7*(-parseInt(_0x4560d9(0x10c))/0x8)+-parseInt(_0x4560d9(0x131))/0x9*(parseInt(_0x4560d9(0x137))/0xa)+-parseInt(_0x4560d9(0x12b))/0xb*(parseInt(_0x4560d9(0x117))/0xc)+-parseInt(_0x4560d9(0xf7))/0xd*(-parseInt(_0x4560d9(0x13f))/0xe);if(_0x13f924===_0x4e28d4)break;else _0x4299bc['push'](_0x4299bc['shift']());}catch(_0x509669){_0x4299bc['push'](_0x4299bc['shift']());}}}(a57_0x332d,0x887e6));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':a57_0x5c8dd7(0x134),'type':a57_0x5c8dd7(0x143),'required':!![],'enum':['CRON',a57_0x5c8dd7(0x104)],'description':a57_0x5c8dd7(0x11a)},CRON_FLAG={'name':a57_0x5c8dd7(0x109),'type':'string','description':a57_0x5c8dd7(0x11c)},SCHEDULED_AT_FLAG={'name':a57_0x5c8dd7(0x13d),'type':a57_0x5c8dd7(0x143),'description':a57_0x5c8dd7(0x120)},TITLE_FLAG={'name':a57_0x5c8dd7(0x133),'type':'string','required':!![],'description':a57_0x5c8dd7(0x10f)},PROMPT_FLAG={'name':a57_0x5c8dd7(0x12f),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},CHANNEL_FLAG={'name':a57_0x5c8dd7(0x141),'type':a57_0x5c8dd7(0x143),'enum':[a57_0x5c8dd7(0x11f),'premium'],'default':a57_0x5c8dd7(0x132),'description':a57_0x5c8dd7(0x115)},SCHEDULE_ID_FLAG={'name':a57_0x5c8dd7(0x144),'type':'string','required':!![],'description':a57_0x5c8dd7(0x142),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a57_0x5c8dd7(0x118),'type':a57_0x5c8dd7(0x11d),'default':0x14,'description':a57_0x5c8dd7(0x108)},CURSOR_FLAG={'name':'cursor','type':a57_0x5c8dd7(0x143),'description':a57_0x5c8dd7(0x102)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,CHANNEL_FLAG];function readScheduleInput(_0x1c5f39){const _0x31d4c3=a57_0x5c8dd7,_0x3673bc=_0x1c5f39[_0x31d4c3(0x12d)]('kind'),_0x22578f=_0x1c5f39['str'](_0x31d4c3(0x133))[_0x31d4c3(0x116)](),_0x22940b=_0x1c5f39[_0x31d4c3(0x12d)]('prompt')['trim'](),_0x2a31e1=_0x1c5f39[_0x31d4c3(0x12d)]('channel'),_0x1f07d7=_0x1c5f39[_0x31d4c3(0x12d)](_0x31d4c3(0x109)),_0x597752=_0x1c5f39[_0x31d4c3(0x12d)](_0x31d4c3(0x13d));if(!_0x22578f)throw CliErrors[_0x31d4c3(0x128)](_0x31d4c3(0x13b));if(!_0x22940b)throw CliErrors['validation'](_0x31d4c3(0x105));if(_0x3673bc===_0x31d4c3(0x125)){if(!_0x1f07d7||_0x597752)throw CliErrors[_0x31d4c3(0x128)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x3673bc,'timezone':_0x31d4c3(0x11b),'cron':_0x1f07d7,'title':_0x22578f,'prompt':_0x22940b,'channel':_0x2a31e1};}if(_0x3673bc===_0x31d4c3(0x104)){if(!_0x597752||_0x1f07d7)throw CliErrors[_0x31d4c3(0x128)](_0x31d4c3(0x13e));return{'kind':_0x3673bc,'timezone':_0x31d4c3(0x11b),'scheduledAt':_0x597752,'title':_0x22578f,'prompt':_0x22940b,'channel':_0x2a31e1};}throw CliErrors['validation'](_0x31d4c3(0xfd));}function scheduleCollectionPath(_0x3f020c){const _0x407689=a57_0x5c8dd7;return'/api/harness/apps/'+encodeURIComponent(_0x3f020c)+_0x407689(0x113);}function scheduleItemPath(_0x91f0ef,_0x3d41bb){return scheduleCollectionPath(_0x91f0ef)+'/'+encodeURIComponent(_0x3d41bb);}function a57_0x6322(_0x39c6ad,_0x4f37ee){_0x39c6ad=_0x39c6ad-0xf6;const _0x332da5=a57_0x332d();let _0x6322f0=_0x332da5[_0x39c6ad];return _0x6322f0;}const scheduleValidate={'service':'schedule','command':a57_0x5c8dd7(0x10d),'description':a57_0x5c8dd7(0x119),'risk':a57_0x5c8dd7(0x127),'flags':INPUT_FLAGS,async 'validate'(_0x476074){readScheduleInput(_0x476074);},async 'execute'(_0x2afe30){const _0x3fcaa3=a57_0x5c8dd7,_0x4d49e3=readScheduleInput(_0x2afe30),_0x3c8942=await validateRuntimeSchedule(_0x2afe30[_0x3fcaa3(0x111)],_0x4d49e3);return{'ok':!![],'data':_0x3c8942,'message':_0x3fcaa3(0x13a)};}},scheduleCreate={'service':a57_0x5c8dd7(0x12e),'command':a57_0x5c8dd7(0x138),'description':a57_0x5c8dd7(0x121),'risk':'high-risk-write','confirmationDescription':a57_0x5c8dd7(0x106),'flags':INPUT_FLAGS,async 'validate'(_0x1a64f8){readScheduleInput(_0x1a64f8);},async 'execute'(_0x301eec){const _0x3d3253=a57_0x5c8dd7,_0xfa9eed=readScheduleInput(_0x301eec),_0x28d198=await validateRuntimeSchedule(_0x301eec[_0x3d3253(0x111)],_0xfa9eed),_0x30b832=await createRuntimeSchedule(_0x301eec[_0x3d3253(0x111)],_0x28d198);return{'ok':!![],'data':_0x30b832,'message':_0x3d3253(0x12a)+_0x30b832[_0x3d3253(0x134)]+_0x3d3253(0x146)+_0x30b832[_0x3d3253(0x13c)]};},async 'dryRun'(_0x599fbb){const _0x1f914d=a57_0x5c8dd7,_0x52fb8a=readScheduleInput(_0x599fbb);return dryRun(_0x1f914d(0x10e),scheduleCollectionPath(_0x599fbb['appCode']))[_0x1f914d(0x10b)](_0x52fb8a)[_0x1f914d(0xf9)](_0x1f914d(0xff))[_0x1f914d(0x147)]();}},scheduleList={'service':a57_0x5c8dd7(0x12e),'command':a57_0x5c8dd7(0x124),'description':a57_0x5c8dd7(0xf6),'risk':a57_0x5c8dd7(0x127),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0xd38a1a){const _0x2c3114=a57_0x5c8dd7,_0x558abd=_0xd38a1a[_0x2c3114(0x114)](_0x2c3114(0x118));if(!Number[_0x2c3114(0x130)](_0x558abd)||_0x558abd<0x1||_0x558abd>0x64)throw CliErrors[_0x2c3114(0x128)](_0x2c3114(0x103));const _0x2dd60e=_0xd38a1a['str'](_0x2c3114(0x135));if(_0x2dd60e&&(_0x2dd60e[_0x2c3114(0x112)]>0x400||_0x2dd60e['trim']()!==_0x2dd60e))throw CliErrors[_0x2c3114(0x128)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x1ea7ac){const _0x4c8e34=a57_0x5c8dd7,_0x480a16=_0x1ea7ac[_0x4c8e34(0x12d)](_0x4c8e34(0x135)),_0x1c57c3=await listRuntimeSchedules(_0x1ea7ac[_0x4c8e34(0x111)],{'kind':_0x1ea7ac[_0x4c8e34(0x12d)](_0x4c8e34(0x134)),'limit':_0x1ea7ac[_0x4c8e34(0x114)](_0x4c8e34(0x118)),..._0x480a16?{'cursor':_0x480a16}:{}});return{'ok':!![],'data':_0x1c57c3};}},scheduleDetail={'service':a57_0x5c8dd7(0x12e),'command':a57_0x5c8dd7(0x10a),'description':a57_0x5c8dd7(0x100),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2ca5ea){const _0x544eb6=a57_0x5c8dd7,_0x1ced44=await getRuntimeSchedule(_0x2ca5ea[_0x544eb6(0x111)],_0x2ca5ea[_0x544eb6(0x12d)](_0x544eb6(0x144)));return{'ok':!![],'data':_0x1ced44};}},scheduleRun={'service':'schedule','command':'run','description':a57_0x5c8dd7(0x11e),'risk':a57_0x5c8dd7(0x107),'confirmationDescription':a57_0x5c8dd7(0x101),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1aaaf7){const _0x4b304b=a57_0x5c8dd7,_0x4035d5=_0x1aaaf7[_0x4b304b(0x12d)]('schedule-id'),_0x18cde0=await runRuntimeSchedule(_0x1aaaf7[_0x4b304b(0x111)],_0x4035d5);return{'ok':!![],'data':_0x18cde0,'message':_0x4b304b(0x129)+_0x18cde0['taskId']+'\x20from\x20schedule\x20'+_0x4035d5};},async 'dryRun'(_0x586018){const _0x72d493=a57_0x5c8dd7,_0x4d1df8=_0x586018[_0x72d493(0x12d)](_0x72d493(0x144));return dryRun('POST',scheduleItemPath(_0x586018[_0x72d493(0x111)],_0x4d1df8)+_0x72d493(0xf8))[_0x72d493(0xf9)](_0x72d493(0x123)+_0x4d1df8+'\x20immediately')[_0x72d493(0x147)]();}},scheduleDelete={'service':a57_0x5c8dd7(0x12e),'command':a57_0x5c8dd7(0x139),'description':a57_0x5c8dd7(0xfe),'risk':a57_0x5c8dd7(0x107),'confirmationDescription':a57_0x5c8dd7(0xfa),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2268cb){const _0x58cc27=a57_0x5c8dd7,_0x313b8d=_0x2268cb['str']('schedule-id'),_0x1a1992=await deleteRuntimeSchedule(_0x2268cb[_0x58cc27(0x111)],_0x313b8d);return{'ok':!![],'data':_0x1a1992,'message':'Deleted\x20schedule\x20'+_0x313b8d};},async 'dryRun'(_0x4d2dc6){const _0x1c0ccf=a57_0x5c8dd7,_0x39dcbf=_0x4d2dc6[_0x1c0ccf(0x12d)]('schedule-id');return dryRun(_0x1c0ccf(0x110),scheduleItemPath(_0x4d2dc6[_0x1c0ccf(0x111)],_0x39dcbf))['description'](_0x1c0ccf(0x136)+_0x39dcbf)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];function a57_0x332d(){const _0x488a5d=['auto','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','创建周期性或单次执行的\x20Agent\x20定时任务','28rvEKDX','Preview:\x20run\x20schedule\x20','list','CRON','9LCcnAs','read','validation','Queued\x20Task\x20','Created\x20','5379xKstUp','2FiJnIH','str','schedule','prompt','isSafeInteger','18VQFWxf','premium','title','kind','cursor','Preview:\x20delete\x20schedule\x20','143230flwUyU','create','delete','Schedule\x20input\x20is\x20valid','--title\x20must\x20not\x20be\x20blank.','scheduleId','scheduled-at','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','18124330zEoKSW','18xURcfA','channel','Schedule\x20UUID','string','schedule-id','955610RFiNgt','\x20schedule\x20','build','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','26sJPfRx','/run','description','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','429643gDHDCL','129764aDhRYl','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','删除定时任务并停止其后续触发','Preview:\x20create\x20an\x20Agent\x20schedule','Show\x20one\x20schedule\x20by\x20schedule\x20ID','将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','ONCE','--prompt\x20must\x20not\x20be\x20blank.','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','high-risk-write','Page\x20size\x20from\x201\x20to\x20100','cron','detail','body','230016HqMrem','validate','POST','Schedule\x20title','DELETE','appCode','length','/schedules','num','Task\x20channel:\x20auto\x20or\x20premium','trim','24936ylMdIY','limit','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Schedule\x20kind:\x20CRON\x20or\x20ONCE','UTC','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','number','立即运行一次定时任务并创建\x20Task'];a57_0x332d=function(){return _0x488a5d;};return a57_0x332d();}
|
|
1
|
+
const a57_0x24483f=a57_0x8522;(function(_0x8fd8e,_0x24ce48){const _0x5c23e5=a57_0x8522,_0x4d8210=_0x8fd8e();while(!![]){try{const _0x3dd06b=parseInt(_0x5c23e5(0x78))/0x1+-parseInt(_0x5c23e5(0xa7))/0x2*(parseInt(_0x5c23e5(0x95))/0x3)+parseInt(_0x5c23e5(0x8c))/0x4+-parseInt(_0x5c23e5(0x85))/0x5*(parseInt(_0x5c23e5(0x7b))/0x6)+parseInt(_0x5c23e5(0x7f))/0x7+-parseInt(_0x5c23e5(0xad))/0x8*(-parseInt(_0x5c23e5(0x96))/0x9)+-parseInt(_0x5c23e5(0x91))/0xa;if(_0x3dd06b===_0x24ce48)break;else _0x4d8210['push'](_0x4d8210['shift']());}catch(_0x27e9d7){_0x4d8210['push'](_0x4d8210['shift']());}}}(a57_0x2103,0x579a5));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':a57_0x24483f(0x74),'required':!![],'enum':[a57_0x24483f(0x9f),a57_0x24483f(0x71)],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':a57_0x24483f(0x82),'type':'string','description':a57_0x24483f(0x6d)},SCHEDULED_AT_FLAG={'name':a57_0x24483f(0x7a),'type':a57_0x24483f(0x74),'description':a57_0x24483f(0x90)},TITLE_FLAG={'name':a57_0x24483f(0x9a),'type':'string','required':!![],'description':a57_0x24483f(0x84)},PROMPT_FLAG={'name':a57_0x24483f(0xaf),'type':a57_0x24483f(0x74),'required':!![],'description':a57_0x24483f(0x8f)},CHANNEL_FLAG={'name':a57_0x24483f(0xaa),'type':a57_0x24483f(0x74),'enum':[a57_0x24483f(0x93),'premium'],'default':'premium','description':'Task\x20channel:\x20auto\x20or\x20premium'},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a57_0x24483f(0x74),'required':!![],'description':a57_0x24483f(0x98),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a57_0x24483f(0x8d),'type':'number','default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a57_0x24483f(0x9e),'type':a57_0x24483f(0x74),'description':a57_0x24483f(0x88)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,CHANNEL_FLAG];function readScheduleInput(_0x15788c){const _0x43b7b2=a57_0x24483f,_0x1ef776=_0x15788c[_0x43b7b2(0x7e)](_0x43b7b2(0x7d)),_0x32e60f=_0x15788c['str'](_0x43b7b2(0x9a))[_0x43b7b2(0x83)](),_0x58c910=_0x15788c['str'](_0x43b7b2(0xaf))[_0x43b7b2(0x83)](),_0x241a46=_0x15788c[_0x43b7b2(0x7e)](_0x43b7b2(0xaa)),_0x1b18d0=_0x15788c[_0x43b7b2(0x7e)](_0x43b7b2(0x82)),_0x2c8ae0=_0x15788c['str'](_0x43b7b2(0x7a));if(!_0x32e60f)throw CliErrors['validation'](_0x43b7b2(0xa0));if(!_0x58c910)throw CliErrors[_0x43b7b2(0x94)](_0x43b7b2(0x8b));if(_0x1ef776==='CRON'){if(!_0x1b18d0||_0x2c8ae0)throw CliErrors[_0x43b7b2(0x94)](_0x43b7b2(0x6c));return{'kind':_0x1ef776,'timezone':'UTC','cron':_0x1b18d0,'title':_0x32e60f,'prompt':_0x58c910,'channel':_0x241a46};}if(_0x1ef776===_0x43b7b2(0x71)){if(!_0x2c8ae0||_0x1b18d0)throw CliErrors[_0x43b7b2(0x94)](_0x43b7b2(0xa4));return{'kind':_0x1ef776,'timezone':'UTC','scheduledAt':_0x2c8ae0,'title':_0x32e60f,'prompt':_0x58c910,'channel':_0x241a46};}throw CliErrors[_0x43b7b2(0x94)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0xfd8e32){const _0x3f68de=a57_0x24483f;return _0x3f68de(0x73)+encodeURIComponent(_0xfd8e32)+_0x3f68de(0x6b);}function a57_0x2103(){const _0xf48554=['Created\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','build','--prompt\x20must\x20not\x20be\x20blank.','420272sSXrxv','limit','schedule-id','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','4460350rhOwkf','validate','auto','validation','139701AXCZQc','296991daWzcY','scheduleId','Schedule\x20UUID','Preview:\x20run\x20schedule\x20','title','run','创建周期性或单次执行的\x20Agent\x20定时任务','num','cursor','CRON','--title\x20must\x20not\x20be\x20blank.','Deleted\x20schedule\x20','list','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','立即运行一次定时任务并创建\x20Task','schedule','12tpwhzw','read','将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','channel','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','description','144YFmyWj','Preview:\x20create\x20an\x20Agent\x20schedule','prompt','isSafeInteger','/schedules','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','delete','create','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','ONCE','Queued\x20Task\x20','/api/harness/apps/','string','Schedule\x20input\x20is\x20valid','POST','appCode','457239iQoytx','high-risk-write','scheduled-at','12ldgRHM','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','kind','str','2056481sJjYyp','DELETE','Show\x20one\x20schedule\x20by\x20schedule\x20ID','cron','trim','Schedule\x20title','914535vABkpp','删除定时任务并停止其后续触发'];a57_0x2103=function(){return _0xf48554;};return a57_0x2103();}function scheduleItemPath(_0x5162f1,_0x36c5cb){return scheduleCollectionPath(_0x5162f1)+'/'+encodeURIComponent(_0x36c5cb);}function a57_0x8522(_0x19a2e2,_0x32a27d){_0x19a2e2=_0x19a2e2-0x6a;const _0x210358=a57_0x2103();let _0x8522f2=_0x210358[_0x19a2e2];return _0x8522f2;}const scheduleValidate={'service':a57_0x24483f(0xa6),'command':a57_0x24483f(0x92),'description':a57_0x24483f(0x7c),'risk':a57_0x24483f(0xa8),'flags':INPUT_FLAGS,async 'validate'(_0x323ea9){readScheduleInput(_0x323ea9);},async 'execute'(_0x1331db){const _0x5259a1=a57_0x24483f,_0x4a97bf=readScheduleInput(_0x1331db),_0x59ad4c=await validateRuntimeSchedule(_0x1331db[_0x5259a1(0x77)],_0x4a97bf);return{'ok':!![],'data':_0x59ad4c,'message':_0x5259a1(0x75)};}},scheduleCreate={'service':a57_0x24483f(0xa6),'command':a57_0x24483f(0x6f),'description':a57_0x24483f(0x9c),'risk':a57_0x24483f(0x79),'confirmationDescription':a57_0x24483f(0x89),'flags':INPUT_FLAGS,async 'validate'(_0x4e1ab4){readScheduleInput(_0x4e1ab4);},async 'execute'(_0x17b75d){const _0xaba125=a57_0x24483f,_0x1168a7=readScheduleInput(_0x17b75d),_0x59b941=await validateRuntimeSchedule(_0x17b75d['appCode'],_0x1168a7),_0x13f7ec=await createRuntimeSchedule(_0x17b75d[_0xaba125(0x77)],_0x59b941);return{'ok':!![],'data':_0x13f7ec,'message':_0xaba125(0x87)+_0x13f7ec[_0xaba125(0x7d)]+'\x20schedule\x20'+_0x13f7ec[_0xaba125(0x97)]};},async 'dryRun'(_0x4c8ffd){const _0x215f46=a57_0x24483f,_0x3913df=readScheduleInput(_0x4c8ffd);return dryRun('POST',scheduleCollectionPath(_0x4c8ffd['appCode']))['body'](_0x3913df)[_0x215f46(0xac)](_0x215f46(0xae))[_0x215f46(0x8a)]();}},scheduleList={'service':a57_0x24483f(0xa6),'command':a57_0x24483f(0xa2),'description':a57_0x24483f(0xa3),'risk':a57_0x24483f(0xa8),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x126406){const _0x21fe65=a57_0x24483f,_0x2527bc=_0x126406[_0x21fe65(0x9d)]('limit');if(!Number[_0x21fe65(0x6a)](_0x2527bc)||_0x2527bc<0x1||_0x2527bc>0x64)throw CliErrors[_0x21fe65(0x94)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x503d60=_0x126406['str'](_0x21fe65(0x9e));if(_0x503d60&&(_0x503d60['length']>0x400||_0x503d60[_0x21fe65(0x83)]()!==_0x503d60))throw CliErrors[_0x21fe65(0x94)](_0x21fe65(0x70));},async 'execute'(_0x825fcf){const _0x2dca4=a57_0x24483f,_0x35ba3c=_0x825fcf[_0x2dca4(0x7e)](_0x2dca4(0x9e)),_0x383355=await listRuntimeSchedules(_0x825fcf[_0x2dca4(0x77)],{'kind':_0x825fcf[_0x2dca4(0x7e)](_0x2dca4(0x7d)),'limit':_0x825fcf[_0x2dca4(0x9d)](_0x2dca4(0x8d)),..._0x35ba3c?{'cursor':_0x35ba3c}:{}});return{'ok':!![],'data':_0x383355};}},scheduleDetail={'service':'schedule','command':'detail','description':a57_0x24483f(0x81),'risk':a57_0x24483f(0xa8),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x144e3b){const _0x4aac06=a57_0x24483f,_0x4faa27=await getRuntimeSchedule(_0x144e3b[_0x4aac06(0x77)],_0x144e3b[_0x4aac06(0x7e)]('schedule-id'));return{'ok':!![],'data':_0x4faa27};}},scheduleRun={'service':'schedule','command':a57_0x24483f(0x9b),'description':a57_0x24483f(0xa5),'risk':'high-risk-write','confirmationDescription':a57_0x24483f(0xa9),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x512aba){const _0x23bde1=a57_0x24483f,_0x3cede6=_0x512aba[_0x23bde1(0x7e)]('schedule-id'),_0x320b8e=await runRuntimeSchedule(_0x512aba[_0x23bde1(0x77)],_0x3cede6);return{'ok':!![],'data':_0x320b8e,'message':_0x23bde1(0x72)+_0x320b8e['taskId']+'\x20from\x20schedule\x20'+_0x3cede6};},async 'dryRun'(_0x1127e3){const _0x58687c=a57_0x24483f,_0x13f3e3=_0x1127e3[_0x58687c(0x7e)](_0x58687c(0x8e));return dryRun(_0x58687c(0x76),scheduleItemPath(_0x1127e3[_0x58687c(0x77)],_0x13f3e3)+'/run')[_0x58687c(0xac)](_0x58687c(0x99)+_0x13f3e3+'\x20immediately')[_0x58687c(0x8a)]();}},scheduleDelete={'service':a57_0x24483f(0xa6),'command':a57_0x24483f(0x6e),'description':a57_0x24483f(0x86),'risk':'high-risk-write','confirmationDescription':a57_0x24483f(0xab),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x72f4df){const _0x2b4ef5=a57_0x24483f,_0x2681c4=_0x72f4df['str']('schedule-id'),_0x38c06b=await deleteRuntimeSchedule(_0x72f4df[_0x2b4ef5(0x77)],_0x2681c4);return{'ok':!![],'data':_0x38c06b,'message':_0x2b4ef5(0xa1)+_0x2681c4};},async 'dryRun'(_0x52f60c){const _0x18951a=a57_0x24483f,_0x4798f7=_0x52f60c[_0x18951a(0x7e)](_0x18951a(0x8e));return dryRun(_0x18951a(0x80),scheduleItemPath(_0x52f60c['appCode'],_0x4798f7))[_0x18951a(0xac)]('Preview:\x20delete\x20schedule\x20'+_0x4798f7)[_0x18951a(0x8a)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a58_0x27f88c=a58_0x1ee4;function a58_0x13ed(){const _0x23f4bc=['2264wGPMSy','660072CFJHJz','schema','1178922OqWtgr','296950rcPsVX','4643472rTsHUe','3mvKoKb','5bweNDh','33VIqpKx','7Xnzwqd','read','697184qUVDpo','104xXKxNn','160650OfIIkI'];a58_0x13ed=function(){return _0x23f4bc;};return a58_0x13ed();}(function(_0x4183df,_0x1d31ef){const _0x103d5a=a58_0x1ee4,_0x232662=_0x4183df();while(!![]){try{const _0x533759=parseInt(_0x103d5a(0x1d9))/0x1*(parseInt(_0x103d5a(0x1db))/0x2)+-parseInt(_0x103d5a(0x1d3))/0x3*(-parseInt(_0x103d5a(0x1dc))/0x4)+-parseInt(_0x103d5a(0x1d4))/0x5*(parseInt(_0x103d5a(0x1de))/0x6)+parseInt(_0x103d5a(0x1d6))/0x7*(-parseInt(_0x103d5a(0x1d8))/0x8)+-parseInt(_0x103d5a(0x1da))/0x9+-parseInt(_0x103d5a(0x1df))/0xa*(parseInt(_0x103d5a(0x1d5))/0xb)+parseInt(_0x103d5a(0x1d2))/0xc;if(_0x533759===_0x1d31ef)break;else _0x232662['push'](_0x232662['shift']());}catch(_0x2edc4e){_0x232662['push'](_0x232662['shift']());}}}(a58_0x13ed,0x4425c));import{buildSchemaPayload}from'../framework/schema-export.js';function a58_0x1ee4(_0x1f0f5c,_0x18c889){_0x1f0f5c=_0x1f0f5c-0x1d2;const _0x13edff=a58_0x13ed();let _0x1ee4d1=_0x13edff[_0x1f0f5c];return _0x1ee4d1;}async function execute(_0x4ecb01){const _0x2b8ef0=await buildSchemaPayload();return{'ok':!![],'data':_0x2b8ef0};}export const schemaDefinition={'service':a58_0x27f88c(0x1dd),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a58_0x27f88c(0x1d7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x5717f2,_0x273f89){const _0x50a958=a59_0x64bd,_0xad183=_0x5717f2();while(!![]){try{const _0x4f3845=parseInt(_0x50a958(0x1af))/0x1+-parseInt(_0x50a958(0x1b5))/0x2+-parseInt(_0x50a958(0x181))/0x3*(-parseInt(_0x50a958(0x1a5))/0x4)+parseInt(_0x50a958(0x172))/0x5*(parseInt(_0x50a958(0x18c))/0x6)+-parseInt(_0x50a958(0x199))/0x7+parseInt(_0x50a958(0x176))/0x8+-parseInt(_0x50a958(0x1a0))/0x9;if(_0x4f3845===_0x273f89)break;else _0xad183['push'](_0xad183['shift']());}catch(_0xf26a58){_0xad183['push'](_0xad183['shift']());}}}(a59_0x15ad,0x6e74b));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(_0x25f535,_0x53fbf8){const _0x5e0fea=a59_0x64bd,_0x5f2dd7=listLocalServiceTrees();let _0x2af9c1;for(const _0x31eb57 of _0x5f2dd7){const _0xd311a2=matchServiceTreeCommand(_0x31eb57,_0x25f535);if(!_0xd311a2)continue;(!_0x2af9c1||_0xd311a2[_0x5e0fea(0x19c)]['fullPath'][_0x5e0fea(0x188)]>_0x2af9c1[_0x5e0fea(0x19c)]['fullPath'][_0x5e0fea(0x188)])&&(_0x2af9c1={'tree':_0x31eb57,'command':_0xd311a2[_0x5e0fea(0x19c)],'remainingArgs':_0xd311a2['remainingArgs']});}if(!_0x2af9c1)return undefined;const _0x5de8bf={..._0x53fbf8};return applyAppBinding(_0x2af9c1[_0x5e0fea(0x179)],_0x2af9c1[_0x5e0fea(0x19c)],_0x5de8bf),{'definition':buildDynamicCommandDefinition(_0x2af9c1['tree'],_0x2af9c1['command']),'args':_0x2af9c1[_0x5e0fea(0x18a)],'flags':_0x5de8bf,'tree':_0x2af9c1['tree'],'command':_0x2af9c1[_0x5e0fea(0x19c)]};}export function generateDynamicServiceHelp(_0x3854e9){const _0x41bd44=a59_0x64bd,_0x42305a=listLocalServiceTrees()[_0x41bd44(0x174)](_0x123dcb=>_0x123dcb[_0x41bd44(0x1b4)][_0x41bd44(0x17c)]===_0x3854e9);if(!_0x42305a)return undefined;const _0x415961=[CLI_BIN_NAME+'\x20'+_0x3854e9+'\x20<command>\x20[flags]','',_0x42305a[_0x41bd44(0x1b4)][_0x41bd44(0x1ab)]||_0x3854e9,_0x42305a[_0x41bd44(0x1b4)]['description']?'\x20\x20'+_0x42305a['service'][_0x41bd44(0x18e)]:'','','Commands:',..._0x42305a[_0x41bd44(0x186)]['map'](_0x2ac4c6=>{const _0x9c9d92=_0x41bd44,_0x50b5e2=_0x2ac4c6[_0x9c9d92(0x15c)][_0x9c9d92(0x18b)](0x1)['join']('\x20'),_0x469138=_0x2ac4c6[_0x9c9d92(0x1b8)]==='read'?'':'\x20['+_0x2ac4c6[_0x9c9d92(0x1b8)]+']';return'\x20\x20'+_0x50b5e2[_0x9c9d92(0x17a)](0x18)+'\x20'+(_0x2ac4c6['description']||'')+_0x469138;}),'',_0x41bd44(0x1aa)+CLI_BIN_NAME+_0x41bd44(0x1b1)+_0x3854e9+_0x41bd44(0x1b0)][_0x41bd44(0x19d)](Boolean);return _0x415961['join']('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x46434e=>{const _0x427cd1=a59_0x64bd,_0x1f20ab=_0x46434e[_0x427cd1(0x1b7)];return{'service':_0x1f20ab['service'][_0x427cd1(0x17c)],'label':_0x1f20ab[_0x427cd1(0x1b4)][_0x427cd1(0x1ab)]||_0x1f20ab[_0x427cd1(0x1b4)][_0x427cd1(0x17c)],'commands':_0x1f20ab[_0x427cd1(0x186)][_0x427cd1(0x15e)](_0x590109=>({'command':dynamicCommandName(_0x590109),'description':_0x590109[_0x427cd1(0x18e)]||_0x427cd1(0x18f)+_0x590109['cliPath'],'tag':riskTag(_0x590109['risk'])}))};});}export function getDynamicServiceEntry(_0x37a297){const _0x3baea1=a59_0x64bd;return listDynamicServiceEntries()[_0x3baea1(0x174)](_0x2ac6ac=>_0x2ac6ac['service']===_0x37a297);}export function listDynamicServiceDefinitions(_0x3f5313){const _0x3d5334=a59_0x64bd;return listLocalServiceTrees()[_0x3d5334(0x19d)](_0x43b739=>!_0x3f5313||_0x43b739['service']['code']===_0x3f5313)['flatMap'](_0x50a1f5=>_0x50a1f5[_0x3d5334(0x186)][_0x3d5334(0x15e)](_0x1e92d2=>buildDynamicCommandDefinition(_0x50a1f5,_0x1e92d2)));}function a59_0x64bd(_0x283e92,_0x235b36){_0x283e92=_0x283e92-0x15a;const _0x15adbf=a59_0x15ad();let _0x64bd7a=_0x15adbf[_0x283e92];return _0x64bd7a;}export function getDynamicServiceDefinitions(_0x3815c7){const _0x38d193=a59_0x64bd,_0x3d04eb=listDynamicServiceDefinitions(_0x3815c7);return _0x3d04eb[_0x38d193(0x188)]>0x0?_0x3d04eb:undefined;}export function findDynamicServiceDefinition(_0xe6b0ae,_0x2ce826){const _0x566a6e=a59_0x64bd;return listDynamicServiceDefinitions(_0xe6b0ae)[_0x566a6e(0x174)](_0xa286f0=>_0xa286f0[_0x566a6e(0x19c)]===_0x2ce826);}export function buildDynamicCommandDefinition(_0x13cbb0,_0x2d56d9){const _0x31f6aa=a59_0x64bd;return{'service':_0x13cbb0[_0x31f6aa(0x1b4)]['code'],'command':dynamicCommandName(_0x2d56d9),'description':_0x2d56d9[_0x31f6aa(0x18e)]||'Run\x20service\x20command\x20'+_0x2d56d9['cliPath'],'risk':_0x2d56d9[_0x31f6aa(0x1b8)],..._0x2d56d9['risk']===_0x31f6aa(0x1a1)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x2d56d9)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x2d56d9[_0x31f6aa(0x15b)]['map'](_0x3fbdc8=>({'name':_0x3fbdc8['name'],'description':_0x3fbdc8[_0x31f6aa(0x18e)]||_0x3fbdc8[_0x31f6aa(0x1ab)],'required':_0x3fbdc8[_0x31f6aa(0x173)]})),'flags':_0x2d56d9[_0x31f6aa(0x177)][_0x31f6aa(0x15e)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x2d56d9),async 'dryRun'(_0x5bf4dc){const _0x4e050c=_0x31f6aa,_0x50b651=await compilePlan(_0x2d56d9,_0x5bf4dc);return{'method':'SERVICE_TREE','url':_0x2d56d9[_0x4e050c(0x1ac)],'body':{'target':targetPreview(_0x50b651),'params':_0x50b651[_0x4e050c(0x197)]},'description':_0x4e050c(0x183)+_0x2d56d9['cliPath']};},async 'execute'(_0x52936b){const _0x4b44f2=_0x31f6aa,_0xcff51d=await compilePlan(_0x2d56d9,_0x52936b),_0x44730e=Date['now'](),_0x393bb9=await executePlan(_0xcff51d,_0x2d56d9,_0x52936b),_0x3f0dd0=Date[_0x4b44f2(0x17d)]()-_0x44730e;return{'ok':!![],'data':{'service':_0x13cbb0[_0x4b44f2(0x1b4)],'command':_0x2d56d9[_0x4b44f2(0x1ac)],'target':targetPreview(_0xcff51d),'result':_0x393bb9,'elapsed':_0x3f0dd0},'message':_0x4b44f2(0x1a8)+_0x2d56d9[_0x4b44f2(0x1ac)]+'\x20completed\x20in\x20'+_0x3f0dd0+'ms'};}};}function buildDynamicConfirmationDescription(_0x371ce2){const _0x1c6dd7=a59_0x64bd,_0x34bde1=_0x371ce2[_0x1c6dd7(0x18e)]||_0x371ce2[_0x1c6dd7(0x1ac)],_0x1f1dd7=_0x371ce2[_0x1c6dd7(0x1b8)]===_0x1c6dd7(0x16e)?'该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。':_0x1c6dd7(0x170);return _0x1c6dd7(0x185)+_0x34bde1+'”。'+_0x1f1dd7;}function dynamicCommandName(_0x429c81){const _0x55482a=a59_0x64bd;return _0x429c81['fullPath'][_0x55482a(0x18b)](0x1)['join']('\x20');}function a59_0x15ad(){const _0x24082f=['required','find','kind','652336BTdZML','flags','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','tree','padEnd','username','code','now','fromEntries','mapTo','target','119037ehrpWh','Cannot\x20resolve\x20datatable\x20\x22','Preview\x20dynamic\x20service\x20command:\x20','json','将通过\x20Service\x20Tree\x20执行“','commands','entries','length','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','remainingArgs','slice','3340554vqOcCc','nickName','description','Run\x20service\x20command\x20','appcode','\x20\x20\x20\x20datasetCode:\x20','sql','sqlCode','envName','startsWith','type','params','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','1325597uovvIb','\x20\x20\x20\x20command:\x20','dbtableConfig','command','filter','bffId','\x20\x20\x20\x20','5247738BqmhJA','read','string','scriptName','push','68cBFHWQ','validation','some','Service\x20command\x20','Unknown\x20appRef\x20\x22','Use\x20`','name','cliPath','enum','\x20->\x20','70775QiBXon','`\x20to\x20inspect\x20the\x20manifest.','\x20service\x20detail\x20--service\x20','datasetCode','env','service','317478vHrBBR','loginName','normalizedManifest','risk','source','args','fullPath','appRef','map','number','userName','join','app','boolean','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x22\x20in\x20service\x20command\x20','default','nickname','\x20\x20\x20\x20datatable:\x20','Unsupported\x20service\x20target\x20kind:\x20','appCode','bffCode','tenantCode','employeeId','high-risk-write','datatable','该命令被清单标记为写入,可能修改业务数据或服务状态。','\x20\x20\x20\x20functionName:\x20','5uMoOuu'];a59_0x15ad=function(){return _0x24082f;};return a59_0x15ad();}function riskTag(_0x365caa){const _0x137fd1=a59_0x64bd;return _0x365caa===_0x137fd1(0x1a1)?'':'\x20\x20['+_0x365caa+']';}function flagToCommandFlag(_0xfe34f3){const _0x5f16a4=a59_0x64bd;return{'name':_0xfe34f3['cliName'],'type':_0xfe34f3[_0x5f16a4(0x196)]===_0x5f16a4(0x184)?_0x5f16a4(0x1a2):_0xfe34f3['type'],'description':_0xfe34f3[_0x5f16a4(0x18e)]||_0xfe34f3['name'],'required':_0xfe34f3['required'],'default':isPrimitiveFlagDefault(_0xfe34f3['default'])?_0xfe34f3[_0x5f16a4(0x166)]:undefined,'enum':_0xfe34f3[_0x5f16a4(0x1ad)]};}async function compilePlan(_0x2565b2,_0x4b2fc0){const _0x4ec3d8=a59_0x64bd;return compileServiceTreeCommand(_0x2565b2,{'flags':_0x4b2fc0['rawFlags'],'args':_0x4b2fc0[_0x4ec3d8(0x15b)],'context':await buildServiceContext(_0x2565b2,_0x4b2fc0)});}async function buildServiceContext(_0x5c4487,_0x72d201){const _0xfad925=a59_0x64bd,_0x461206={'appCode':_0x72d201['appCode'],'env':_0x72d201['envName'],'envName':_0x72d201[_0xfad925(0x194)]};if(!usesRuntimeContext(_0x5c4487))return _0x461206;const _0x36f0da=await getLoginUserInfo(),_0x565fab=pickFirst(_0x36f0da['userId'],_0x36f0da['id']);return{..._0x461206,'user':_0x36f0da,'userId':_0x565fab,'id':_0x36f0da['id'],'username':pickFirst(_0x36f0da[_0xfad925(0x17b)],_0x36f0da[_0xfad925(0x160)],_0x36f0da[_0xfad925(0x1b6)]),'userName':_0x36f0da['userName'],'nickname':pickFirst(_0x36f0da[_0xfad925(0x167)],_0x36f0da[_0xfad925(0x18d)]),'nickName':_0x36f0da['nickName'],'tenantCode':_0x36f0da[_0xfad925(0x16c)],'employeeId':_0x36f0da[_0xfad925(0x16d)]};}function usesRuntimeContext(_0x3380e3){const _0x17fb6b=a59_0x64bd;return _0x3380e3[_0x17fb6b(0x17f)][_0x17fb6b(0x1a7)](_0x540f6c=>typeof _0x540f6c[_0x17fb6b(0x15a)]===_0x17fb6b(0x1a2)&&(_0x540f6c[_0x17fb6b(0x15a)]['startsWith']('context.')||_0x540f6c[_0x17fb6b(0x15a)][_0x17fb6b(0x195)]('ctx.')));}function pickFirst(..._0x493ee1){return _0x493ee1['find'](_0x477431=>_0x477431!==undefined&&_0x477431!==null);}async function executePlan(_0x2df4a5,_0x1bd89f,_0x2ee79e){const _0x5070f6=a59_0x64bd;if(_0x2df4a5['kind']==='data'){const _0x2624e7=await resolveDatasetCode(_0x2df4a5,_0x1bd89f,_0x2ee79e);return executeData(_0x2624e7,_0x2df4a5['command'],_0x2df4a5[_0x5070f6(0x197)]);}if(_0x2df4a5[_0x5070f6(0x175)]===_0x5070f6(0x192)){if(!_0x2df4a5['sqlCode'])throw CliErrors[_0x5070f6(0x1a6)](_0x5070f6(0x1a8)+_0x1bd89f['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x2df4a5[_0x5070f6(0x193)],normalizeScalarParams(_0x2df4a5[_0x5070f6(0x197)]));}if(_0x2df4a5['kind']==='bff'){const _0xb8f974=_0x2df4a5[_0x5070f6(0x1a3)]||_0x2df4a5[_0x5070f6(0x16b)]||(_0x2df4a5[_0x5070f6(0x19e)]==null?'':String(_0x2df4a5[_0x5070f6(0x19e)]));if(!_0xb8f974)throw CliErrors[_0x5070f6(0x1a6)](_0x5070f6(0x1a8)+_0x1bd89f[_0x5070f6(0x1ac)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0xb8f974,_0x2df4a5[_0x5070f6(0x197)]);}throw CliErrors[_0x5070f6(0x1a6)](_0x5070f6(0x169)+_0x2df4a5['kind']);}async function resolveDatasetCode(_0x1a4a38,_0x3b721a,_0x3ad32d){const _0x4d626f=a59_0x64bd;if(_0x1a4a38[_0x4d626f(0x1b2)])return _0x1a4a38[_0x4d626f(0x1b2)];if(!_0x1a4a38['datatable'])throw CliErrors[_0x4d626f(0x1a6)]('Service\x20command\x20'+_0x3b721a[_0x4d626f(0x1ac)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x275552=await listDatasets(_0x3ad32d[_0x4d626f(0x16a)]),_0x56c812=_0x275552[_0x4d626f(0x174)](_0x2f5f98=>_0x2f5f98[_0x4d626f(0x19b)]?.['tableName']===_0x1a4a38[_0x4d626f(0x16f)]);if(!_0x56c812?.['code'])throw CliErrors['validation'](_0x4d626f(0x182)+_0x1a4a38[_0x4d626f(0x16f)]+_0x4d626f(0x178)+_0x3ad32d[_0x4d626f(0x16a)]+'.',_0x4d626f(0x198));return _0x56c812[_0x4d626f(0x17c)];}function applyAppBinding(_0x1c7f0b,_0x2341b6,_0x249754){const _0x2a4779=a59_0x64bd,_0x45d4bb=_0x2341b6[_0x2a4779(0x180)][_0x2a4779(0x15d)];if(!_0x45d4bb)return;const _0x17f8f3=_0x1c7f0b['appBindings'][_0x45d4bb];if(!_0x17f8f3)throw CliErrors[_0x2a4779(0x1a6)](_0x2a4779(0x1a9)+_0x45d4bb+_0x2a4779(0x165)+_0x2341b6[_0x2a4779(0x1ac)]+'.',_0x2a4779(0x189));const _0x82dd3f=_0x17f8f3[_0x2a4779(0x190)]||_0x17f8f3[_0x2a4779(0x16a)];_0x82dd3f&&!hasText(_0x249754['appcode'])&&(_0x249754[_0x2a4779(0x190)]=_0x82dd3f),_0x17f8f3[_0x2a4779(0x162)]&&!hasText(_0x249754[_0x2a4779(0x162)])&&!hasText(_0x249754[_0x2a4779(0x190)])&&(_0x249754[_0x2a4779(0x162)]=_0x17f8f3['app']),_0x17f8f3[_0x2a4779(0x1b3)]&&!hasText(_0x249754['env'])&&(_0x249754[_0x2a4779(0x1b3)]=_0x17f8f3['env']);}function renderDynamicCommandHelp(_0x3a342e){const _0x154441=a59_0x64bd,_0x386583=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x154441(0x164)+_0x3a342e[_0x154441(0x180)][_0x154441(0x175)],_0x154441(0x19a)+_0x3a342e[_0x154441(0x180)]['command']];if(_0x3a342e['target']['datasetCode'])_0x386583[_0x154441(0x1a4)](_0x154441(0x191)+_0x3a342e['target']['datasetCode']);if(_0x3a342e[_0x154441(0x180)][_0x154441(0x16f)])_0x386583[_0x154441(0x1a4)](_0x154441(0x168)+_0x3a342e[_0x154441(0x180)][_0x154441(0x16f)]);if(_0x3a342e[_0x154441(0x180)][_0x154441(0x193)])_0x386583[_0x154441(0x1a4)]('\x20\x20\x20\x20sqlCode:\x20'+_0x3a342e['target'][_0x154441(0x193)]);if(_0x3a342e[_0x154441(0x180)][_0x154441(0x1a3)])_0x386583[_0x154441(0x1a4)](_0x154441(0x171)+_0x3a342e[_0x154441(0x180)][_0x154441(0x1a3)]);if(_0x3a342e[_0x154441(0x17f)]['length']>0x0){_0x386583[_0x154441(0x1a4)]('','\x20\x20MAP\x20TO');for(const _0x1087ad of _0x3a342e[_0x154441(0x17f)]){_0x386583['push'](_0x154441(0x19f)+(_0x1087ad[_0x154441(0x15a)]||'const')+_0x154441(0x1ae)+_0x1087ad['target']+(_0x1087ad['operator']?'.'+_0x1087ad['operator']:''));}}return _0x386583[_0x154441(0x161)]('\x0a');}function targetPreview(_0x314f61){const _0x1b283c=a59_0x64bd;return{'kind':_0x314f61[_0x1b283c(0x175)],'command':_0x314f61[_0x1b283c(0x19c)],'appRef':_0x314f61[_0x1b283c(0x15d)],'datasetCode':_0x314f61['datasetCode'],'datatable':_0x314f61[_0x1b283c(0x16f)],'sqlCode':_0x314f61[_0x1b283c(0x193)],'bffCode':_0x314f61[_0x1b283c(0x16b)],'bffId':_0x314f61[_0x1b283c(0x19e)],'functionName':_0x314f61[_0x1b283c(0x1a3)]};}function normalizeScalarParams(_0x5a0ebd){const _0x40792f=a59_0x64bd;return Object[_0x40792f(0x17e)](Object[_0x40792f(0x187)](_0x5a0ebd)[_0x40792f(0x19d)](([,_0x18ad95])=>typeof _0x18ad95===_0x40792f(0x1a2)||typeof _0x18ad95==='number'));}function hasText(_0x16abe1){const _0xe29844=a59_0x64bd;return typeof _0x16abe1===_0xe29844(0x1a2)&&_0x16abe1['trim']()[_0xe29844(0x188)]>0x0;}function isPrimitiveFlagDefault(_0x108f0a){const _0x191fd7=a59_0x64bd;return _0x108f0a===undefined||typeof _0x108f0a==='string'||typeof _0x108f0a===_0x191fd7(0x15f)||typeof _0x108f0a===_0x191fd7(0x163);}
|
|
1
|
+
(function(_0x282cec,_0x30353e){const _0x4860f4=a59_0x19d0,_0x2fc269=_0x282cec();while(!![]){try{const _0x30ac88=parseInt(_0x4860f4(0x107))/0x1*(parseInt(_0x4860f4(0x101))/0x2)+parseInt(_0x4860f4(0x13a))/0x3+-parseInt(_0x4860f4(0x12a))/0x4+-parseInt(_0x4860f4(0x10d))/0x5+parseInt(_0x4860f4(0x11e))/0x6*(-parseInt(_0x4860f4(0x109))/0x7)+-parseInt(_0x4860f4(0x154))/0x8+parseInt(_0x4860f4(0x14f))/0x9;if(_0x30ac88===_0x30353e)break;else _0x2fc269['push'](_0x2fc269['shift']());}catch(_0x585ecf){_0x2fc269['push'](_0x2fc269['shift']());}}}(a59_0x59c5,0x8aafc));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';function a59_0x19d0(_0x3a2128,_0x44fa1c){_0x3a2128=_0x3a2128-0xfb;const _0x59c5b9=a59_0x59c5();let _0x19d0fb=_0x59c5b9[_0x3a2128];return _0x19d0fb;}import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';function a59_0x59c5(){const _0x2a4459=['validation','type','3756480QPYujb','source','trim','enum','rawFlags','const','scriptName','mapTo','\x20\x20[','Cannot\x20resolve\x20datatable\x20\x22','high-risk-write','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','\x20\x20\x20\x20','将通过\x20Service\x20Tree\x20执行“','boolean','\x20\x20\x20\x20command:\x20','\x20requires\x20target.functionName.','550782STEgbk','command','code','startsWith','\x20<command>\x20[flags]','bff','Preview\x20dynamic\x20service\x20command:\x20','normalizedManifest','\x20\x20\x20\x20functionName:\x20','service','string','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','1826080DWkKiX','name','appRef','sqlCode','slice','Service\x20command\x20','map','some','appcode','\x20\x20MAP\x20TO','flags','json','filter','Unknown\x20appRef\x20\x22','userName','entries','2810862mAOnMP','\x20\x20\x20\x20datatable:\x20','cliPath','app','required','appCode','Run\x20service\x20command\x20','kind','description','length','Commands:','tableName','tenantCode','tree','dbtableConfig','fullPath','datatable','args','risk','该命令被清单标记为写入,可能修改业务数据或服务状态。','\x20\x20\x20\x20datasetCode:\x20','7651584ymcXni','envName','\x20\x20\x20\x20kind:\x20\x20\x20\x20','nickName','bffCode','1040776YWAPla','datasetCode','\x20\x20SERVICE\x20TREE\x20TARGET','appBindings','number','target','loginName','Use\x20`','remainingArgs','flatMap','padEnd','push','commands','params','find','data','env','join','\x20requires\x20target.sqlCode.','105320yNGgpG','bffId','\x20\x20\x20\x20sqlCode:\x20','`\x20to\x20inspect\x20the\x20manifest.','default','operator','4NZXKbn','employeeId','7DFibHN','Unsupported\x20service\x20target\x20kind:\x20'];a59_0x59c5=function(){return _0x2a4459;};return a59_0x59c5();}import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x48d437,_0x5e19be){const _0x2e7fd8=a59_0x19d0,_0x319321=listLocalServiceTrees();let _0x583c8e;for(const _0x2bfbe4 of _0x319321){const _0x20f00e=matchServiceTreeCommand(_0x2bfbe4,_0x48d437);if(!_0x20f00e)continue;(!_0x583c8e||_0x20f00e['command'][_0x2e7fd8(0x149)][_0x2e7fd8(0x143)]>_0x583c8e[_0x2e7fd8(0x11f)]['fullPath'][_0x2e7fd8(0x143)])&&(_0x583c8e={'tree':_0x2bfbe4,'command':_0x20f00e[_0x2e7fd8(0x11f)],'remainingArgs':_0x20f00e[_0x2e7fd8(0x15c)]});}if(!_0x583c8e)return undefined;const _0x4a2cf1={..._0x5e19be};return applyAppBinding(_0x583c8e[_0x2e7fd8(0x147)],_0x583c8e['command'],_0x4a2cf1),{'definition':buildDynamicCommandDefinition(_0x583c8e[_0x2e7fd8(0x147)],_0x583c8e[_0x2e7fd8(0x11f)]),'args':_0x583c8e['remainingArgs'],'flags':_0x4a2cf1,'tree':_0x583c8e[_0x2e7fd8(0x147)],'command':_0x583c8e['command']};}export function generateDynamicServiceHelp(_0x7156d3){const _0x5a2fb4=a59_0x19d0,_0x5306dd=listLocalServiceTrees()[_0x5a2fb4(0xfc)](_0x360510=>_0x360510[_0x5a2fb4(0x127)][_0x5a2fb4(0x120)]===_0x7156d3);if(!_0x5306dd)return undefined;const _0x4e40c4=[CLI_BIN_NAME+'\x20'+_0x7156d3+_0x5a2fb4(0x122),'',_0x5306dd[_0x5a2fb4(0x127)][_0x5a2fb4(0x12b)]||_0x7156d3,_0x5306dd[_0x5a2fb4(0x127)][_0x5a2fb4(0x142)]?'\x20\x20'+_0x5306dd[_0x5a2fb4(0x127)][_0x5a2fb4(0x142)]:'','',_0x5a2fb4(0x144),..._0x5306dd['commands'][_0x5a2fb4(0x130)](_0x43f1ac=>{const _0x2b6a8c=_0x5a2fb4,_0x48f8d8=_0x43f1ac[_0x2b6a8c(0x149)][_0x2b6a8c(0x12e)](0x1)[_0x2b6a8c(0xff)]('\x20'),_0x82522e=_0x43f1ac[_0x2b6a8c(0x14c)]==='read'?'':'\x20['+_0x43f1ac['risk']+']';return'\x20\x20'+_0x48f8d8[_0x2b6a8c(0x15e)](0x18)+'\x20'+(_0x43f1ac[_0x2b6a8c(0x142)]||'')+_0x82522e;}),'',_0x5a2fb4(0x15b)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x7156d3+_0x5a2fb4(0x104)][_0x5a2fb4(0x136)](Boolean);return _0x4e40c4[_0x5a2fb4(0xff)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x50467d=>{const _0x47a59d=a59_0x19d0,_0x835e39=_0x50467d[_0x47a59d(0x125)];return{'service':_0x835e39[_0x47a59d(0x127)][_0x47a59d(0x120)],'label':_0x835e39['service'][_0x47a59d(0x12b)]||_0x835e39[_0x47a59d(0x127)][_0x47a59d(0x120)],'commands':_0x835e39[_0x47a59d(0x160)][_0x47a59d(0x130)](_0x3c4e0e=>({'command':dynamicCommandName(_0x3c4e0e),'description':_0x3c4e0e[_0x47a59d(0x142)]||_0x47a59d(0x140)+_0x3c4e0e[_0x47a59d(0x13c)],'tag':riskTag(_0x3c4e0e['risk'])}))};});}export function getDynamicServiceEntry(_0x522ca9){const _0x57510d=a59_0x19d0;return listDynamicServiceEntries()[_0x57510d(0xfc)](_0x1d9f64=>_0x1d9f64[_0x57510d(0x127)]===_0x522ca9);}export function listDynamicServiceDefinitions(_0x9f161d){const _0x55320c=a59_0x19d0;return listLocalServiceTrees()[_0x55320c(0x136)](_0x3d756c=>!_0x9f161d||_0x3d756c[_0x55320c(0x127)][_0x55320c(0x120)]===_0x9f161d)[_0x55320c(0x15d)](_0x3491ee=>_0x3491ee[_0x55320c(0x160)]['map'](_0x5a81be=>buildDynamicCommandDefinition(_0x3491ee,_0x5a81be)));}export function getDynamicServiceDefinitions(_0x2cac74){const _0x31edef=a59_0x19d0,_0x484bbb=listDynamicServiceDefinitions(_0x2cac74);return _0x484bbb[_0x31edef(0x143)]>0x0?_0x484bbb:undefined;}export function findDynamicServiceDefinition(_0x4643fa,_0x548bb1){const _0x45494a=a59_0x19d0;return listDynamicServiceDefinitions(_0x4643fa)[_0x45494a(0xfc)](_0x5cfe49=>_0x5cfe49['command']===_0x548bb1);}export function buildDynamicCommandDefinition(_0x56b772,_0x28f4ba){const _0x207bc6=a59_0x19d0;return{'service':_0x56b772['service'][_0x207bc6(0x120)],'command':dynamicCommandName(_0x28f4ba),'description':_0x28f4ba['description']||'Run\x20service\x20command\x20'+_0x28f4ba[_0x207bc6(0x13c)],'risk':_0x28f4ba[_0x207bc6(0x14c)],..._0x28f4ba[_0x207bc6(0x14c)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x28f4ba)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x28f4ba[_0x207bc6(0x14b)][_0x207bc6(0x130)](_0x36cf96=>({'name':_0x36cf96[_0x207bc6(0x12b)],'description':_0x36cf96[_0x207bc6(0x142)]||_0x36cf96['name'],'required':_0x36cf96[_0x207bc6(0x13e)]})),'flags':_0x28f4ba[_0x207bc6(0x134)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x28f4ba),async 'dryRun'(_0x1c0573){const _0x16d873=_0x207bc6,_0x87f14c=await compilePlan(_0x28f4ba,_0x1c0573);return{'method':'SERVICE_TREE','url':_0x28f4ba[_0x16d873(0x13c)],'body':{'target':targetPreview(_0x87f14c),'params':_0x87f14c['params']},'description':_0x16d873(0x124)+_0x28f4ba[_0x16d873(0x13c)]};},async 'execute'(_0x25e857){const _0xf7a281=_0x207bc6,_0x74ec99=await compilePlan(_0x28f4ba,_0x25e857),_0x360361=Date['now'](),_0x52239f=await executePlan(_0x74ec99,_0x28f4ba,_0x25e857),_0x3ffd09=Date['now']()-_0x360361;return{'ok':!![],'data':{'service':_0x56b772[_0xf7a281(0x127)],'command':_0x28f4ba[_0xf7a281(0x13c)],'target':targetPreview(_0x74ec99),'result':_0x52239f,'elapsed':_0x3ffd09},'message':'Service\x20command\x20'+_0x28f4ba[_0xf7a281(0x13c)]+'\x20completed\x20in\x20'+_0x3ffd09+'ms'};}};}function buildDynamicConfirmationDescription(_0x2e38b9){const _0x1778db=a59_0x19d0,_0x286c1d=_0x2e38b9[_0x1778db(0x142)]||_0x2e38b9[_0x1778db(0x13c)],_0x3070cb=_0x2e38b9[_0x1778db(0x14c)]===_0x1778db(0x117)?_0x1778db(0x129):_0x1778db(0x14d);return _0x1778db(0x11a)+_0x286c1d+'”。'+_0x3070cb;}function dynamicCommandName(_0x3fd8a0){const _0x4dfa32=a59_0x19d0;return _0x3fd8a0[_0x4dfa32(0x149)][_0x4dfa32(0x12e)](0x1)[_0x4dfa32(0xff)]('\x20');}function riskTag(_0x445258){const _0x4da61b=a59_0x19d0;return _0x445258==='read'?'':_0x4da61b(0x115)+_0x445258+']';}function flagToCommandFlag(_0xf9c829){const _0x301ab7=a59_0x19d0;return{'name':_0xf9c829['cliName'],'type':_0xf9c829['type']===_0x301ab7(0x135)?'string':_0xf9c829[_0x301ab7(0x10c)],'description':_0xf9c829[_0x301ab7(0x142)]||_0xf9c829[_0x301ab7(0x12b)],'required':_0xf9c829[_0x301ab7(0x13e)],'default':isPrimitiveFlagDefault(_0xf9c829[_0x301ab7(0x105)])?_0xf9c829[_0x301ab7(0x105)]:undefined,'enum':_0xf9c829[_0x301ab7(0x110)]};}async function compilePlan(_0x26b566,_0x4b692b){const _0x5b23be=a59_0x19d0;return compileServiceTreeCommand(_0x26b566,{'flags':_0x4b692b[_0x5b23be(0x111)],'args':_0x4b692b[_0x5b23be(0x14b)],'context':await buildServiceContext(_0x26b566,_0x4b692b)});}async function buildServiceContext(_0x2fcb8f,_0x22f730){const _0x1f6ace=a59_0x19d0,_0x3432e2={'appCode':_0x22f730[_0x1f6ace(0x13f)],'env':_0x22f730[_0x1f6ace(0x150)],'envName':_0x22f730['envName']};if(!usesRuntimeContext(_0x2fcb8f))return _0x3432e2;const _0x9e0543=await getLoginUserInfo(),_0x7cf24c=pickFirst(_0x9e0543['userId'],_0x9e0543['id']);return{..._0x3432e2,'user':_0x9e0543,'userId':_0x7cf24c,'id':_0x9e0543['id'],'username':pickFirst(_0x9e0543['username'],_0x9e0543[_0x1f6ace(0x138)],_0x9e0543[_0x1f6ace(0x15a)]),'userName':_0x9e0543[_0x1f6ace(0x138)],'nickname':pickFirst(_0x9e0543['nickname'],_0x9e0543[_0x1f6ace(0x152)]),'nickName':_0x9e0543['nickName'],'tenantCode':_0x9e0543[_0x1f6ace(0x146)],'employeeId':_0x9e0543[_0x1f6ace(0x108)]};}function usesRuntimeContext(_0x388af9){const _0x4c240e=a59_0x19d0;return _0x388af9[_0x4c240e(0x114)][_0x4c240e(0x131)](_0x4e5e80=>typeof _0x4e5e80[_0x4c240e(0x10e)]==='string'&&(_0x4e5e80[_0x4c240e(0x10e)][_0x4c240e(0x121)]('context.')||_0x4e5e80['source'][_0x4c240e(0x121)]('ctx.')));}function pickFirst(..._0x195df1){return _0x195df1['find'](_0x1b2fa7=>_0x1b2fa7!==undefined&&_0x1b2fa7!==null);}async function executePlan(_0x42fd3f,_0x5e34c8,_0x378c92){const _0x4be622=a59_0x19d0;if(_0x42fd3f[_0x4be622(0x141)]===_0x4be622(0xfd)){const _0x22f738=await resolveDatasetCode(_0x42fd3f,_0x5e34c8,_0x378c92);return executeData(_0x22f738,_0x42fd3f[_0x4be622(0x11f)],_0x42fd3f[_0x4be622(0xfb)]);}if(_0x42fd3f[_0x4be622(0x141)]==='sql'){if(!_0x42fd3f[_0x4be622(0x12d)])throw CliErrors[_0x4be622(0x10b)]('Service\x20command\x20'+_0x5e34c8['cliPath']+_0x4be622(0x100));return executeSdkSql(_0x42fd3f[_0x4be622(0x12d)],normalizeScalarParams(_0x42fd3f[_0x4be622(0xfb)]));}if(_0x42fd3f['kind']===_0x4be622(0x123)){const _0x4bb165=_0x42fd3f[_0x4be622(0x113)]||_0x42fd3f[_0x4be622(0x153)]||(_0x42fd3f[_0x4be622(0x102)]==null?'':String(_0x42fd3f[_0x4be622(0x102)]));if(!_0x4bb165)throw CliErrors[_0x4be622(0x10b)]('Service\x20command\x20'+_0x5e34c8[_0x4be622(0x13c)]+_0x4be622(0x11d));return executeSdkBff(_0x4bb165,_0x42fd3f[_0x4be622(0xfb)]);}throw CliErrors[_0x4be622(0x10b)](_0x4be622(0x10a)+_0x42fd3f[_0x4be622(0x141)]);}async function resolveDatasetCode(_0x292fa7,_0x517260,_0x203794){const _0x3237b3=a59_0x19d0;if(_0x292fa7['datasetCode'])return _0x292fa7[_0x3237b3(0x155)];if(!_0x292fa7[_0x3237b3(0x14a)])throw CliErrors[_0x3237b3(0x10b)](_0x3237b3(0x12f)+_0x517260['cliPath']+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x79c8be=await listDatasets(_0x203794[_0x3237b3(0x13f)]),_0x526d03=_0x79c8be[_0x3237b3(0xfc)](_0x5f0781=>_0x5f0781[_0x3237b3(0x148)]?.[_0x3237b3(0x145)]===_0x292fa7[_0x3237b3(0x14a)]);if(!_0x526d03?.[_0x3237b3(0x120)])throw CliErrors[_0x3237b3(0x10b)](_0x3237b3(0x116)+_0x292fa7[_0x3237b3(0x14a)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x203794[_0x3237b3(0x13f)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x526d03[_0x3237b3(0x120)];}function applyAppBinding(_0x526881,_0x2c896c,_0x5a1382){const _0x3c48d5=a59_0x19d0,_0x5bbd79=_0x2c896c[_0x3c48d5(0x159)]['appRef'];if(!_0x5bbd79)return;const _0x4204dc=_0x526881[_0x3c48d5(0x157)][_0x5bbd79];if(!_0x4204dc)throw CliErrors['validation'](_0x3c48d5(0x137)+_0x5bbd79+'\x22\x20in\x20service\x20command\x20'+_0x2c896c[_0x3c48d5(0x13c)]+'.',_0x3c48d5(0x118));const _0x3405ed=_0x4204dc[_0x3c48d5(0x132)]||_0x4204dc['appCode'];_0x3405ed&&!hasText(_0x5a1382[_0x3c48d5(0x132)])&&(_0x5a1382[_0x3c48d5(0x132)]=_0x3405ed),_0x4204dc[_0x3c48d5(0x13d)]&&!hasText(_0x5a1382[_0x3c48d5(0x13d)])&&!hasText(_0x5a1382[_0x3c48d5(0x132)])&&(_0x5a1382[_0x3c48d5(0x13d)]=_0x4204dc['app']),_0x4204dc[_0x3c48d5(0xfe)]&&!hasText(_0x5a1382[_0x3c48d5(0xfe)])&&(_0x5a1382[_0x3c48d5(0xfe)]=_0x4204dc[_0x3c48d5(0xfe)]);}function renderDynamicCommandHelp(_0x2d2819){const _0x390b19=a59_0x19d0,_0x1ae4c3=[_0x390b19(0x156),_0x390b19(0x151)+_0x2d2819[_0x390b19(0x159)][_0x390b19(0x141)],_0x390b19(0x11c)+_0x2d2819[_0x390b19(0x159)][_0x390b19(0x11f)]];if(_0x2d2819[_0x390b19(0x159)]['datasetCode'])_0x1ae4c3[_0x390b19(0x15f)](_0x390b19(0x14e)+_0x2d2819['target'][_0x390b19(0x155)]);if(_0x2d2819[_0x390b19(0x159)][_0x390b19(0x14a)])_0x1ae4c3[_0x390b19(0x15f)](_0x390b19(0x13b)+_0x2d2819[_0x390b19(0x159)]['datatable']);if(_0x2d2819['target']['sqlCode'])_0x1ae4c3['push'](_0x390b19(0x103)+_0x2d2819[_0x390b19(0x159)][_0x390b19(0x12d)]);if(_0x2d2819[_0x390b19(0x159)][_0x390b19(0x113)])_0x1ae4c3['push'](_0x390b19(0x126)+_0x2d2819[_0x390b19(0x159)]['scriptName']);if(_0x2d2819[_0x390b19(0x114)]['length']>0x0){_0x1ae4c3['push']('',_0x390b19(0x133));for(const _0x5e399b of _0x2d2819[_0x390b19(0x114)]){_0x1ae4c3['push'](_0x390b19(0x119)+(_0x5e399b[_0x390b19(0x10e)]||_0x390b19(0x112))+'\x20->\x20'+_0x5e399b[_0x390b19(0x159)]+(_0x5e399b[_0x390b19(0x106)]?'.'+_0x5e399b[_0x390b19(0x106)]:''));}}return _0x1ae4c3[_0x390b19(0xff)]('\x0a');}function targetPreview(_0x5f3578){const _0x10d798=a59_0x19d0;return{'kind':_0x5f3578[_0x10d798(0x141)],'command':_0x5f3578[_0x10d798(0x11f)],'appRef':_0x5f3578[_0x10d798(0x12c)],'datasetCode':_0x5f3578[_0x10d798(0x155)],'datatable':_0x5f3578[_0x10d798(0x14a)],'sqlCode':_0x5f3578[_0x10d798(0x12d)],'bffCode':_0x5f3578[_0x10d798(0x153)],'bffId':_0x5f3578[_0x10d798(0x102)],'functionName':_0x5f3578[_0x10d798(0x113)]};}function normalizeScalarParams(_0x137f93){const _0x485555=a59_0x19d0;return Object['fromEntries'](Object[_0x485555(0x139)](_0x137f93)['filter'](([,_0x23834a])=>typeof _0x23834a===_0x485555(0x128)||typeof _0x23834a===_0x485555(0x158)));}function hasText(_0x584de3){const _0x570ec9=a59_0x19d0;return typeof _0x584de3===_0x570ec9(0x128)&&_0x584de3[_0x570ec9(0x10f)]()[_0x570ec9(0x143)]>0x0;}function isPrimitiveFlagDefault(_0x38d9a1){const _0x12a417=a59_0x19d0;return _0x38d9a1===undefined||typeof _0x38d9a1===_0x12a417(0x128)||typeof _0x38d9a1===_0x12a417(0x158)||typeof _0x38d9a1===_0x12a417(0x11b);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x8445f9,_0x2d8523){const _0x59c53c=a60_0x31c8,_0x558b19=_0x8445f9();while(!![]){try{const _0x52c3fb=parseInt(_0x59c53c(0x1ca))/0x1+-parseInt(_0x59c53c(0x1c4))/0x2*(parseInt(_0x59c53c(0x1bd))/0x3)+parseInt(_0x59c53c(0x1b4))/0x4+-parseInt(_0x59c53c(0x1be))/0x5+-parseInt(_0x59c53c(0x1b3))/0x6*(parseInt(_0x59c53c(0x1ab))/0x7)+parseInt(_0x59c53c(0x1c6))/0x8*(-parseInt(_0x59c53c(0x1ae))/0x9)+parseInt(_0x59c53c(0x1b2))/0xa;if(_0x52c3fb===_0x2d8523)break;else _0x558b19['push'](_0x558b19['shift']());}catch(_0x10b636){_0x558b19['push'](_0x558b19['shift']());}}}(a60_0x9558,0xd90bd));export function adaptServiceTreeManifestForLegacyFramework(_0x552bdb){const _0x2d3477=a60_0x31c8,_0x2e51e6=cloneJsonValue(_0x552bdb),_0x32a15f=[];if(!isObjectRecord(_0x2e51e6))return{'manifest':_0x2e51e6,'errors':_0x32a15f};return Array[_0x2d3477(0x1c8)](_0x2e51e6['commands'])&&_0x2e51e6[_0x2d3477(0x1b9)][_0x2d3477(0x1b1)]((_0x1d469f,_0x46f558)=>{if(!isObjectRecord(_0x1d469f))return;adaptBffTarget(_0x1d469f['target'],'$.commands['+_0x46f558+'].target',_0x32a15f);}),adaptResources(_0x2e51e6['resources'],_0x2d3477(0x1b6),_0x32a15f),{'manifest':_0x2e51e6,'errors':_0x32a15f};}export function toPublicServiceTreeTarget(_0xac80d1){const _0xf852dd=a60_0x31c8,{scriptName:_0x118198,..._0x1cf4c6}=_0xac80d1;return typeof _0x118198===_0xf852dd(0x1b8)&&_0x118198['trim']()&&(_0x1cf4c6[_0xf852dd(0x1ba)]=_0x118198),_0x1cf4c6;}function a60_0x31c8(_0x3227ec,_0x10a745){_0x3227ec=_0x3227ec-0x1a8;const _0x95582f=a60_0x9558();let _0x31c8ae=_0x95582f[_0x3227ec];return _0x31c8ae;}export function toPublicNormalizedServiceTree(_0xf0b63f){const _0x3778e9=a60_0x31c8;return{..._0xf0b63f,'commands':_0xf0b63f[_0x3778e9(0x1b9)][_0x3778e9(0x1b5)](_0x28101f=>({..._0x28101f,'target':toPublicServiceTreeTarget(_0x28101f[_0x3778e9(0x1b0)])}))};}function adaptResources(_0x46aabc,_0x1c3cee,_0x1474e3){const _0x2a453b=a60_0x31c8;if(!isObjectRecord(_0x46aabc))return;for(const [_0x59bd46,_0x53dc96]of Object[_0x2a453b(0x1b7)](_0x46aabc)){if(!isObjectRecord(_0x53dc96))continue;const _0x1bfb87=_0x1c3cee+'.'+_0x59bd46;if(isObjectRecord(_0x53dc96['actions']))for(const [_0x383e40,_0x491b7a]of Object[_0x2a453b(0x1b7)](_0x53dc96[_0x2a453b(0x1c3)])){if(!isObjectRecord(_0x491b7a))continue;const _0x12a29b=_0x1bfb87+_0x2a453b(0x1c7)+_0x383e40,_0x2eb9ce=isObjectRecord(_0x491b7a[_0x2a453b(0x1b0)])&&_0x491b7a['target'][_0x2a453b(0x1ad)]===_0x2a453b(0x1a8);adaptBffTarget(_0x491b7a[_0x2a453b(0x1b0)],_0x12a29b+'.target',_0x1474e3),(_0x2eb9ce||isBffAction(_0x491b7a))&&adaptFunctionNameField(_0x491b7a,_0x12a29b,_0x1474e3);}adaptResources(_0x53dc96['resources'],_0x1bfb87+_0x2a453b(0x1cb),_0x1474e3);}}function adaptBffTarget(_0x455a04,_0x1f4ec8,_0x31942c){const _0x3a8a6d=a60_0x31c8;if(!isObjectRecord(_0x455a04)||_0x455a04[_0x3a8a6d(0x1ad)]!==_0x3a8a6d(0x1a8))return;adaptFunctionNameField(_0x455a04,_0x1f4ec8,_0x31942c);}function adaptFunctionNameField(_0x3a42e8,_0x427244,_0x48c0a9){const _0x2a895d=a60_0x31c8;Object[_0x2a895d(0x1c9)][_0x2a895d(0x1ac)][_0x2a895d(0x1bb)](_0x3a42e8,_0x2a895d(0x1bc))&&_0x48c0a9[_0x2a895d(0x1c1)]({'level':_0x2a895d(0x1bf),'path':_0x427244+'.scriptName','message':_0x2a895d(0x1c0)});if(Object[_0x2a895d(0x1c9)][_0x2a895d(0x1ac)]['call'](_0x3a42e8,_0x2a895d(0x1ba))){if(typeof _0x3a42e8['functionName']!==_0x2a895d(0x1b8)||!_0x3a42e8[_0x2a895d(0x1ba)][_0x2a895d(0x1c2)]()){_0x48c0a9[_0x2a895d(0x1c1)]({'level':_0x2a895d(0x1bf),'path':_0x427244+_0x2a895d(0x1aa),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x3a42e8[_0x2a895d(0x1ba)];return;}_0x3a42e8[_0x2a895d(0x1bc)]=_0x3a42e8['functionName'],delete _0x3a42e8[_0x2a895d(0x1ba)];}}function a60_0x9558(){const _0x383057=['.functionName','10157wsUtoJ','hasOwnProperty','kind','774135stbcuY','fromEntries','target','forEach','27042710PvQitE','954WfhNgy','1348648tUEEGB','map','$.resources','entries','string','commands','functionName','call','scriptName','50403tSlAwL','6287370jQcSJg','error','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','push','trim','actions','194PDdJui','object','32iqRIfN','.actions.','isArray','prototype','1309528WIsGbA','.resources','action','bff','bff.exec'];a60_0x9558=function(){return _0x383057;};return a60_0x9558();}function isBffAction(_0x415508){const _0x39e3dc=a60_0x31c8;return _0x415508[_0x39e3dc(0x1ad)]==='bff'||_0x415508[_0x39e3dc(0x1cc)]===_0x39e3dc(0x1a9)||_0x415508[_0x39e3dc(0x1b0)]===_0x39e3dc(0x1a9);}function cloneJsonValue(_0x6f322d){const _0x21b98b=a60_0x31c8;if(Array[_0x21b98b(0x1c8)](_0x6f322d))return _0x6f322d['map'](_0x1197f2=>cloneJsonValue(_0x1197f2));if(isObjectRecord(_0x6f322d))return Object[_0x21b98b(0x1af)](Object[_0x21b98b(0x1b7)](_0x6f322d)[_0x21b98b(0x1b5)](([_0x416404,_0x3b4183])=>[_0x416404,cloneJsonValue(_0x3b4183)]));return _0x6f322d;}function isObjectRecord(_0x5af6b6){const _0x578dc7=a60_0x31c8;return Boolean(_0x5af6b6)&&typeof _0x5af6b6===_0x578dc7(0x1c5)&&!Array['isArray'](_0x5af6b6);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a61_0x34b3ae=a61_0x43ff;(function(_0x1319ac,_0x183e08){const _0x160436=a61_0x43ff,_0x4e2930=_0x1319ac();while(!![]){try{const _0x161711=-parseInt(_0x160436(0x14d))/0x1+parseInt(_0x160436(0x142))/0x2+parseInt(_0x160436(0x11d))/0x3+-parseInt(_0x160436(0x157))/0x4*(parseInt(_0x160436(0x152))/0x5)+parseInt(_0x160436(0x124))/0x6*(parseInt(_0x160436(0x13b))/0x7)+parseInt(_0x160436(0x139))/0x8+-parseInt(_0x160436(0x138))/0x9;if(_0x161711===_0x183e08)break;else _0x4e2930['push'](_0x4e2930['shift']());}catch(_0x19b438){_0x4e2930['push'](_0x4e2930['shift']());}}}(a61_0xb115,0xbf7b3));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':'file','type':'string','required':!![],'description':a61_0x34b3ae(0x121)},SERVICE_FLAG={'name':a61_0x34b3ae(0x14a),'type':a61_0x34b3ae(0x129),'required':!![],'description':a61_0x34b3ae(0x155),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a61_0x34b3ae(0x15c)}};function summarizeService(_0x1971e5){const _0x168856=a61_0x34b3ae;return{'serviceCode':_0x1971e5[_0x168856(0x12a)],'name':_0x1971e5[_0x168856(0x144)]['service'][_0x168856(0x117)],'version':_0x1971e5[_0x168856(0x159)],'importedAt':_0x1971e5[_0x168856(0x12e)],'source':_0x1971e5['source'],'commandCount':_0x1971e5['normalizedManifest'][_0x168856(0x143)][_0x168856(0x11e)],'commands':_0x1971e5[_0x168856(0x144)]['commands'][_0x168856(0x11f)](_0x23608d=>({'path':_0x23608d[_0x168856(0x15e)],'description':_0x23608d[_0x168856(0x14b)],'risk':_0x23608d[_0x168856(0x14c)],'target':toPublicServiceTreeTarget(_0x23608d[_0x168856(0x15d)]),'flags':_0x23608d[_0x168856(0x12b)]['map'](_0x5d233d=>({'name':_0x5d233d[_0x168856(0x117)],'cliName':_0x5d233d['cliName'],'type':_0x5d233d[_0x168856(0x14e)],'required':_0x5d233d[_0x168856(0x128)]===!![]}))}))};}function a61_0xb115(){const _0x32baf4=['kind','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','registryServiceCode','1332836sjDtfg','commands','normalizedManifest','Service\x20registry\x20validation\x20passed.','entry','detail','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','hash','service','description','risk','324105HHEQHK','type','WRITE','errors','从本地运行态注册表移除\x20Service\x20Tree\x20清单','5760470MJhoul','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','file','Local\x20service\x20code,\x20for\x20example\x20crm','str','4PUcYRg','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','version','reduce','write','lower\x20kebab-case\x20service\x20code','target','cliPath','filePath','Exported\x20service\x20','name','replaced','export','manifests','\x20service\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','151671gwQrBc','length','map','list','Service\x20Tree\x20manifest\x20file\x20path','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','serviceCount','148266KAuDef','Removed\x20service\x20','Local\x20service\x20not\x20found:\x20','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','required','string','serviceCode','flags','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','imported','importedAt','warnings','read','manifest','registryPath','updated','\x20service(s),\x20updated\x20','source','Imported','validate','341433uyUJdC','5337288GicrIN','registry','259AuqEMk','report','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','import'];a61_0xb115=function(){return _0x32baf4;};return a61_0xb115();}function summarizeLoadedManifest(_0x2c180c){const _0x4fde7f=a61_0x34b3ae;return{'service':_0x2c180c[_0x4fde7f(0x144)]?.[_0x4fde7f(0x14a)],'version':_0x2c180c[_0x4fde7f(0x144)]?.['version'],'commandCount':_0x2c180c[_0x4fde7f(0x144)]?.[_0x4fde7f(0x143)]['length']??0x0,'commands':_0x2c180c['normalizedManifest']?.[_0x4fde7f(0x143)][_0x4fde7f(0x11f)](_0x131127=>({'path':_0x131127[_0x4fde7f(0x15e)],'risk':_0x131127['risk'],'target':toPublicServiceTreeTarget(_0x131127['target'])}))??[],'registryIndex':_0x2c180c['registryIndex'],'registryServiceCode':_0x2c180c[_0x4fde7f(0x141)],'errors':_0x2c180c[_0x4fde7f(0x13c)][_0x4fde7f(0x150)],'warnings':_0x2c180c['report'][_0x4fde7f(0x12f)]};}function a61_0x43ff(_0x14551c,_0x36d3ca){_0x14551c=_0x14551c-0x116;const _0xb115c6=a61_0xb115();let _0x43ff95=_0xb115c6[_0x14551c];return _0x43ff95;}export const serviceDefinitions=[{'service':'service','command':a61_0x34b3ae(0x137),'description':a61_0x34b3ae(0x127),'risk':a61_0x34b3ae(0x130),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2cc6e5){const _0x347096=a61_0x34b3ae,_0xd1e2d0=loadServiceManifestFromFile(_0x2cc6e5[_0x347096(0x156)](_0x347096(0x154)));if(!_0xd1e2d0[_0x347096(0x13c)]['ok'])return{'ok':![],'data':{'file':_0xd1e2d0[_0x347096(0x15f)],'hash':_0xd1e2d0[_0x347096(0x149)],'kind':_0xd1e2d0[_0x347096(0x13f)],'serviceCount':_0xd1e2d0['manifests']['length'],'services':_0xd1e2d0[_0x347096(0x11a)][_0x347096(0x11f)](summarizeLoadedManifest),'errors':_0xd1e2d0[_0x347096(0x13c)][_0x347096(0x150)],'warnings':_0xd1e2d0['report'][_0x347096(0x12f)]},'message':formatValidationFailure(_0xd1e2d0[_0x347096(0x13c)])};if(_0xd1e2d0[_0x347096(0x13f)]===_0x347096(0x13a)||_0xd1e2d0[_0x347096(0x11a)]['length']!==0x1)return{'ok':!![],'data':{'file':_0xd1e2d0[_0x347096(0x15f)],'hash':_0xd1e2d0[_0x347096(0x149)],'kind':_0xd1e2d0[_0x347096(0x13f)],'serviceCount':_0xd1e2d0[_0x347096(0x11a)]['length'],'commandCount':_0xd1e2d0['manifests'][_0x347096(0x15a)]((_0x3aaecd,_0x7653ca)=>_0x3aaecd+(_0x7653ca['normalizedManifest']?.[_0x347096(0x143)][_0x347096(0x11e)]??0x0),0x0),'services':_0xd1e2d0[_0x347096(0x11a)][_0x347096(0x11f)](summarizeLoadedManifest),'warnings':_0xd1e2d0[_0x347096(0x13c)][_0x347096(0x12f)]},'message':_0x347096(0x145)};return{'ok':!![],'data':{'file':_0xd1e2d0[_0x347096(0x15f)],'hash':_0xd1e2d0[_0x347096(0x149)],'kind':_0xd1e2d0[_0x347096(0x13f)],'service':_0xd1e2d0['normalizedManifest']?.['service'],'version':_0xd1e2d0[_0x347096(0x144)]?.['version'],'commandCount':_0xd1e2d0[_0x347096(0x144)]?.[_0x347096(0x143)][_0x347096(0x11e)]??0x0,'commands':_0xd1e2d0[_0x347096(0x144)]?.['commands'][_0x347096(0x11f)](_0x97b1ec=>({'path':_0x97b1ec[_0x347096(0x15e)],'risk':_0x97b1ec[_0x347096(0x14c)],'target':toPublicServiceTreeTarget(_0x97b1ec[_0x347096(0x15d)])})),'warnings':_0xd1e2d0['report'][_0x347096(0x12f)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a61_0x34b3ae(0x14a),'command':a61_0x34b3ae(0x13e),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':a61_0x34b3ae(0x15b),'confirmationDescription':a61_0x34b3ae(0x12c),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x265408){const _0x2ef3b3=a61_0x34b3ae,_0x544c2d=loadServiceManifestFromFile(_0x265408[_0x2ef3b3(0x156)](_0x2ef3b3(0x154)));return{'method':_0x2ef3b3(0x14f),'url':getServiceRegistryPath(),'body':{'file':_0x544c2d[_0x2ef3b3(0x15f)],'hash':_0x544c2d[_0x2ef3b3(0x149)],'kind':_0x544c2d[_0x2ef3b3(0x13f)],'ok':_0x544c2d[_0x2ef3b3(0x13c)]['ok'],'service':_0x544c2d[_0x2ef3b3(0x144)]?.[_0x2ef3b3(0x14a)],'version':_0x544c2d[_0x2ef3b3(0x144)]?.[_0x2ef3b3(0x159)],'serviceCount':_0x544c2d['manifests']['length'],'services':_0x544c2d['manifests'][_0x2ef3b3(0x11f)](_0x2a6e41=>({'service':_0x2a6e41[_0x2ef3b3(0x144)]?.[_0x2ef3b3(0x14a)],'version':_0x2a6e41[_0x2ef3b3(0x144)]?.['version'],'commandCount':_0x2a6e41[_0x2ef3b3(0x144)]?.[_0x2ef3b3(0x143)][_0x2ef3b3(0x11e)]??0x0,'errors':_0x2a6e41[_0x2ef3b3(0x13c)][_0x2ef3b3(0x150)]})),'errors':_0x544c2d['report']['errors'],'commandCount':_0x544c2d[_0x2ef3b3(0x144)]?.[_0x2ef3b3(0x143)][_0x2ef3b3(0x11e)]??0x0},'description':_0x2ef3b3(0x140)};},async 'execute'(_0x56f854){const _0x253fd7=a61_0x34b3ae,_0x338cd0=importServiceManifest(_0x56f854[_0x253fd7(0x156)](_0x253fd7(0x154)));if(_0x338cd0['entries'][_0x253fd7(0x11e)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x338cd0[_0x253fd7(0x132)],'imported':_0x338cd0[_0x253fd7(0x12d)],'updated':_0x338cd0[_0x253fd7(0x133)],'serviceCount':_0x338cd0[_0x253fd7(0x123)],'services':_0x338cd0['entries'][_0x253fd7(0x11f)](summarizeService)},'message':'Imported\x20'+_0x338cd0[_0x253fd7(0x12d)]+_0x253fd7(0x134)+_0x338cd0[_0x253fd7(0x133)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x338cd0[_0x253fd7(0x132)],'replaced':_0x338cd0[_0x253fd7(0x118)],'imported':_0x338cd0[_0x253fd7(0x12d)],'updated':_0x338cd0[_0x253fd7(0x133)],'serviceCount':_0x338cd0['serviceCount'],'service':summarizeService(_0x338cd0[_0x253fd7(0x146)])},'message':(_0x338cd0[_0x253fd7(0x118)]?'Updated':_0x253fd7(0x136))+_0x253fd7(0x11b)+_0x338cd0[_0x253fd7(0x146)][_0x253fd7(0x12a)]+'.'};}},{'service':'service','command':a61_0x34b3ae(0x119),'description':a61_0x34b3ae(0x13d),'risk':a61_0x34b3ae(0x15b),'confirmationDescription':a61_0x34b3ae(0x122),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x494019){const _0x59db3f=a61_0x34b3ae,_0x30e6b4=getLocalServiceEntry(_0x494019['str'](_0x59db3f(0x14a)));return{'method':_0x59db3f(0x14f),'url':_0x494019[_0x59db3f(0x156)]('file'),'body':{'service':_0x494019[_0x59db3f(0x156)](_0x59db3f(0x14a)),'found':Boolean(_0x30e6b4),'version':_0x30e6b4?.[_0x59db3f(0x159)],'source':_0x30e6b4?.[_0x59db3f(0x135)]},'description':_0x59db3f(0x148)};},async 'execute'(_0x359b49){const _0x1fc95d=a61_0x34b3ae,_0x8292ea=exportServiceManifest(_0x359b49['str'](_0x1fc95d(0x14a)),_0x359b49[_0x1fc95d(0x156)]('file'));return{'ok':!![],'data':{'registryPath':_0x8292ea[_0x1fc95d(0x132)],'file':_0x8292ea['filePath'],'service':summarizeService(_0x8292ea[_0x1fc95d(0x146)])},'message':_0x1fc95d(0x116)+_0x8292ea[_0x1fc95d(0x146)][_0x1fc95d(0x12a)]+'.'};}},{'service':a61_0x34b3ae(0x14a),'command':a61_0x34b3ae(0x120),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a61_0x34b3ae(0x130),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xc23f5d=a61_0x34b3ae,_0x338135=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x338135['length'],'services':_0x338135[_0xc23f5d(0x11f)](summarizeService)}};}},{'service':a61_0x34b3ae(0x14a),'command':'remove','description':a61_0x34b3ae(0x151),'risk':'write','confirmationDescription':a61_0x34b3ae(0x153),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1c8e6b){const _0x462347=a61_0x34b3ae,_0x2fcb95=getLocalServiceEntry(_0x1c8e6b['str'](_0x462347(0x14a)));return{'method':_0x462347(0x14f),'url':getServiceRegistryPath(),'body':{'service':_0x1c8e6b[_0x462347(0x156)](_0x462347(0x14a)),'found':Boolean(_0x2fcb95),'version':_0x2fcb95?.[_0x462347(0x159)],'source':_0x2fcb95?.[_0x462347(0x135)]},'description':_0x462347(0x158)};},async 'execute'(_0x298b4f){const _0x23a9e7=a61_0x34b3ae,_0x49a82f=removeServiceManifest(_0x298b4f[_0x23a9e7(0x156)](_0x23a9e7(0x14a)));return{'ok':!![],'data':{'registryPath':_0x49a82f[_0x23a9e7(0x132)],'serviceCount':_0x49a82f['serviceCount'],'service':summarizeService(_0x49a82f[_0x23a9e7(0x146)])},'message':_0x23a9e7(0x125)+_0x49a82f[_0x23a9e7(0x146)][_0x23a9e7(0x12a)]+'.'};}},{'service':'service','command':a61_0x34b3ae(0x147),'description':a61_0x34b3ae(0x11c),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1c02d7){const _0x5addcb=a61_0x34b3ae,_0x3cee3d=getLocalServiceEntry(_0x1c02d7['str']('service'));if(!_0x3cee3d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1c02d7['str'](_0x5addcb(0x14a))},'message':_0x5addcb(0x126)+_0x1c02d7[_0x5addcb(0x156)](_0x5addcb(0x14a))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3cee3d),'manifest':_0x3cee3d[_0x5addcb(0x131)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3cee3d[_0x5addcb(0x144)])}};}}];
|
|
1
|
+
function a61_0x3179(_0x2424d7,_0x4095d4){_0x2424d7=_0x2424d7-0x1e0;const _0x20b34f=a61_0x20b3();let _0x317985=_0x20b34f[_0x2424d7];return _0x317985;}const a61_0xa9ab1e=a61_0x3179;(function(_0x426508,_0x3d5119){const _0xcb6111=a61_0x3179,_0x1687f2=_0x426508();while(!![]){try{const _0x4ced23=-parseInt(_0xcb6111(0x21a))/0x1+parseInt(_0xcb6111(0x219))/0x2*(-parseInt(_0xcb6111(0x220))/0x3)+-parseInt(_0xcb6111(0x1e5))/0x4*(-parseInt(_0xcb6111(0x1f2))/0x5)+parseInt(_0xcb6111(0x20d))/0x6*(-parseInt(_0xcb6111(0x207))/0x7)+-parseInt(_0xcb6111(0x204))/0x8+parseInt(_0xcb6111(0x208))/0x9*(-parseInt(_0xcb6111(0x1fb))/0xa)+-parseInt(_0xcb6111(0x1f6))/0xb*(-parseInt(_0xcb6111(0x1e8))/0xc);if(_0x4ced23===_0x3d5119)break;else _0x1687f2['push'](_0x1687f2['shift']());}catch(_0x50370b){_0x1687f2['push'](_0x1687f2['shift']());}}}(a61_0x20b3,0x499ee));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a61_0x20b3(){const _0x1d076e=['kind','source','hash','entries','file','Service\x20registry\x20validation\x20passed.','lower\x20kebab-case\x20service\x20code','Updated','1467080XwCJRv','reduce','commands','16947zAwEar','4167TevWrA','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','string','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk','198UsnjZz','normalizedManifest','report','description','registryServiceCode','name','cliName','map','replaced','registryPath','WRITE','Imported','1048pMMVzm','503318hPespA','detail','length','\x20service(s),\x20updated\x20','target','从本地运行态注册表移除\x20Service\x20Tree\x20清单','1119ebbhdi','import','manifest','updated','manifests','将\x20Service\x20Tree\x20清单导入本地运行态注册表','Local\x20service\x20not\x20found:\x20','str','\x20service(s).','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','registry','Local\x20service\x20code,\x20for\x20example\x20crm','filePath','serviceCount','707908RoNyHo','importedAt','write','96WGPTRa','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','Imported\x20','service','cliPath','warnings','registryIndex','flags','serviceCode','entry','10ETSJhW','read','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','1431562BuyVjL','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','imported','version','list','2840BOWjeq'];a61_0x20b3=function(){return _0x1d076e;};return a61_0x20b3();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':'file','type':'string','required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a61_0xa9ab1e(0x1eb),'type':a61_0xa9ab1e(0x20a),'required':!![],'description':a61_0xa9ab1e(0x1e2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a61_0xa9ab1e(0x202)}};function summarizeService(_0x51b0a0){const _0x49040d=a61_0xa9ab1e;return{'serviceCode':_0x51b0a0[_0x49040d(0x1f0)],'name':_0x51b0a0[_0x49040d(0x20e)]['service']['name'],'version':_0x51b0a0[_0x49040d(0x1f9)],'importedAt':_0x51b0a0[_0x49040d(0x1e6)],'source':_0x51b0a0[_0x49040d(0x1fd)],'commandCount':_0x51b0a0[_0x49040d(0x20e)][_0x49040d(0x206)]['length'],'commands':_0x51b0a0[_0x49040d(0x20e)][_0x49040d(0x206)][_0x49040d(0x214)](_0x4bed4f=>({'path':_0x4bed4f[_0x49040d(0x1ec)],'description':_0x4bed4f[_0x49040d(0x210)],'risk':_0x4bed4f[_0x49040d(0x20c)],'target':toPublicServiceTreeTarget(_0x4bed4f[_0x49040d(0x21e)]),'flags':_0x4bed4f[_0x49040d(0x1ef)][_0x49040d(0x214)](_0x4ce179=>({'name':_0x4ce179[_0x49040d(0x212)],'cliName':_0x4ce179[_0x49040d(0x213)],'type':_0x4ce179['type'],'required':_0x4ce179['required']===!![]}))}))};}function summarizeLoadedManifest(_0x5f5daa){const _0x23209a=a61_0xa9ab1e;return{'service':_0x5f5daa[_0x23209a(0x20e)]?.['service'],'version':_0x5f5daa[_0x23209a(0x20e)]?.[_0x23209a(0x1f9)],'commandCount':_0x5f5daa[_0x23209a(0x20e)]?.[_0x23209a(0x206)]['length']??0x0,'commands':_0x5f5daa[_0x23209a(0x20e)]?.[_0x23209a(0x206)][_0x23209a(0x214)](_0xead8ee=>({'path':_0xead8ee['cliPath'],'risk':_0xead8ee[_0x23209a(0x20c)],'target':toPublicServiceTreeTarget(_0xead8ee[_0x23209a(0x21e)])}))??[],'registryIndex':_0x5f5daa[_0x23209a(0x1ee)],'registryServiceCode':_0x5f5daa[_0x23209a(0x211)],'errors':_0x5f5daa[_0x23209a(0x20f)]['errors'],'warnings':_0x5f5daa[_0x23209a(0x20f)][_0x23209a(0x1ed)]};}export const serviceDefinitions=[{'service':a61_0xa9ab1e(0x1eb),'command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a61_0xa9ab1e(0x1f3),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xa9295d){const _0x134d5e=a61_0xa9ab1e,_0x41050f=loadServiceManifestFromFile(_0xa9295d[_0x134d5e(0x227)](_0x134d5e(0x200)));if(!_0x41050f[_0x134d5e(0x20f)]['ok'])return{'ok':![],'data':{'file':_0x41050f[_0x134d5e(0x1e3)],'hash':_0x41050f[_0x134d5e(0x1fe)],'kind':_0x41050f[_0x134d5e(0x1fc)],'serviceCount':_0x41050f['manifests'][_0x134d5e(0x21c)],'services':_0x41050f[_0x134d5e(0x224)][_0x134d5e(0x214)](summarizeLoadedManifest),'errors':_0x41050f[_0x134d5e(0x20f)]['errors'],'warnings':_0x41050f[_0x134d5e(0x20f)][_0x134d5e(0x1ed)]},'message':formatValidationFailure(_0x41050f['report'])};if(_0x41050f[_0x134d5e(0x1fc)]===_0x134d5e(0x1e1)||_0x41050f[_0x134d5e(0x224)][_0x134d5e(0x21c)]!==0x1)return{'ok':!![],'data':{'file':_0x41050f['filePath'],'hash':_0x41050f[_0x134d5e(0x1fe)],'kind':_0x41050f[_0x134d5e(0x1fc)],'serviceCount':_0x41050f[_0x134d5e(0x224)]['length'],'commandCount':_0x41050f['manifests'][_0x134d5e(0x205)]((_0x25216b,_0x5a9703)=>_0x25216b+(_0x5a9703[_0x134d5e(0x20e)]?.[_0x134d5e(0x206)]['length']??0x0),0x0),'services':_0x41050f[_0x134d5e(0x224)][_0x134d5e(0x214)](summarizeLoadedManifest),'warnings':_0x41050f[_0x134d5e(0x20f)][_0x134d5e(0x1ed)]},'message':_0x134d5e(0x201)};return{'ok':!![],'data':{'file':_0x41050f[_0x134d5e(0x1e3)],'hash':_0x41050f[_0x134d5e(0x1fe)],'kind':_0x41050f['kind'],'service':_0x41050f[_0x134d5e(0x20e)]?.['service'],'version':_0x41050f['normalizedManifest']?.[_0x134d5e(0x1f9)],'commandCount':_0x41050f['normalizedManifest']?.[_0x134d5e(0x206)][_0x134d5e(0x21c)]??0x0,'commands':_0x41050f[_0x134d5e(0x20e)]?.[_0x134d5e(0x206)][_0x134d5e(0x214)](_0x4330e0=>({'path':_0x4330e0[_0x134d5e(0x1ec)],'risk':_0x4330e0['risk'],'target':toPublicServiceTreeTarget(_0x4330e0[_0x134d5e(0x21e)])})),'warnings':_0x41050f[_0x134d5e(0x20f)]['warnings']},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a61_0xa9ab1e(0x1eb),'command':a61_0xa9ab1e(0x221),'description':a61_0xa9ab1e(0x225),'risk':'write','confirmationDescription':a61_0xa9ab1e(0x1e9),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5a6201){const _0x129437=a61_0xa9ab1e,_0x2117df=loadServiceManifestFromFile(_0x5a6201['str'](_0x129437(0x200)));return{'method':_0x129437(0x217),'url':getServiceRegistryPath(),'body':{'file':_0x2117df[_0x129437(0x1e3)],'hash':_0x2117df['hash'],'kind':_0x2117df['kind'],'ok':_0x2117df[_0x129437(0x20f)]['ok'],'service':_0x2117df[_0x129437(0x20e)]?.[_0x129437(0x1eb)],'version':_0x2117df[_0x129437(0x20e)]?.[_0x129437(0x1f9)],'serviceCount':_0x2117df[_0x129437(0x224)][_0x129437(0x21c)],'services':_0x2117df[_0x129437(0x224)]['map'](_0x35db18=>({'service':_0x35db18['normalizedManifest']?.['service'],'version':_0x35db18['normalizedManifest']?.[_0x129437(0x1f9)],'commandCount':_0x35db18['normalizedManifest']?.[_0x129437(0x206)][_0x129437(0x21c)]??0x0,'errors':_0x35db18['report']['errors']})),'errors':_0x2117df[_0x129437(0x20f)]['errors'],'commandCount':_0x2117df['normalizedManifest']?.['commands'][_0x129437(0x21c)]??0x0},'description':_0x129437(0x1e0)};},async 'execute'(_0x27382a){const _0x5162f7=a61_0xa9ab1e,_0x4e5a1d=importServiceManifest(_0x27382a[_0x5162f7(0x227)](_0x5162f7(0x200)));if(_0x4e5a1d['entries']['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x4e5a1d['registryPath'],'imported':_0x4e5a1d['imported'],'updated':_0x4e5a1d[_0x5162f7(0x223)],'serviceCount':_0x4e5a1d[_0x5162f7(0x1e4)],'services':_0x4e5a1d[_0x5162f7(0x1ff)]['map'](summarizeService)},'message':_0x5162f7(0x1ea)+_0x4e5a1d[_0x5162f7(0x1f8)]+_0x5162f7(0x21d)+_0x4e5a1d[_0x5162f7(0x223)]+_0x5162f7(0x228)};return{'ok':!![],'data':{'registryPath':_0x4e5a1d['registryPath'],'replaced':_0x4e5a1d['replaced'],'imported':_0x4e5a1d[_0x5162f7(0x1f8)],'updated':_0x4e5a1d['updated'],'serviceCount':_0x4e5a1d['serviceCount'],'service':summarizeService(_0x4e5a1d[_0x5162f7(0x1f1)])},'message':(_0x4e5a1d[_0x5162f7(0x215)]?_0x5162f7(0x203):_0x5162f7(0x218))+'\x20service\x20'+_0x4e5a1d[_0x5162f7(0x1f1)][_0x5162f7(0x1f0)]+'.'};}},{'service':a61_0xa9ab1e(0x1eb),'command':'export','description':a61_0xa9ab1e(0x209),'risk':a61_0xa9ab1e(0x1e7),'confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1972a7){const _0x3be7d9=a61_0xa9ab1e,_0x4996d4=getLocalServiceEntry(_0x1972a7['str'](_0x3be7d9(0x1eb)));return{'method':_0x3be7d9(0x217),'url':_0x1972a7[_0x3be7d9(0x227)]('file'),'body':{'service':_0x1972a7['str'](_0x3be7d9(0x1eb)),'found':Boolean(_0x4996d4),'version':_0x4996d4?.[_0x3be7d9(0x1f9)],'source':_0x4996d4?.[_0x3be7d9(0x1fd)]},'description':_0x3be7d9(0x1f4)};},async 'execute'(_0xc6f694){const _0x5077ad=a61_0xa9ab1e,_0x5d81df=exportServiceManifest(_0xc6f694['str'](_0x5077ad(0x1eb)),_0xc6f694[_0x5077ad(0x227)](_0x5077ad(0x200)));return{'ok':!![],'data':{'registryPath':_0x5d81df[_0x5077ad(0x216)],'file':_0x5d81df[_0x5077ad(0x1e3)],'service':summarizeService(_0x5d81df[_0x5077ad(0x1f1)])},'message':'Exported\x20service\x20'+_0x5d81df[_0x5077ad(0x1f1)][_0x5077ad(0x1f0)]+'.'};}},{'service':a61_0xa9ab1e(0x1eb),'command':a61_0xa9ab1e(0x1fa),'description':a61_0xa9ab1e(0x20b),'risk':a61_0xa9ab1e(0x1f3),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x16ceb1=a61_0xa9ab1e,_0x4b7308=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x4b7308[_0x16ceb1(0x21c)],'services':_0x4b7308[_0x16ceb1(0x214)](summarizeService)}};}},{'service':a61_0xa9ab1e(0x1eb),'command':'remove','description':a61_0xa9ab1e(0x21f),'risk':a61_0xa9ab1e(0x1e7),'confirmationDescription':'将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x326f3b){const _0x3fbde7=a61_0xa9ab1e,_0x552421=getLocalServiceEntry(_0x326f3b[_0x3fbde7(0x227)](_0x3fbde7(0x1eb)));return{'method':_0x3fbde7(0x217),'url':getServiceRegistryPath(),'body':{'service':_0x326f3b[_0x3fbde7(0x227)](_0x3fbde7(0x1eb)),'found':Boolean(_0x552421),'version':_0x552421?.[_0x3fbde7(0x1f9)],'source':_0x552421?.[_0x3fbde7(0x1fd)]},'description':_0x3fbde7(0x1f7)};},async 'execute'(_0x31fb10){const _0x24e964=a61_0xa9ab1e,_0xdfec2d=removeServiceManifest(_0x31fb10[_0x24e964(0x227)](_0x24e964(0x1eb)));return{'ok':!![],'data':{'registryPath':_0xdfec2d[_0x24e964(0x216)],'serviceCount':_0xdfec2d['serviceCount'],'service':summarizeService(_0xdfec2d[_0x24e964(0x1f1)])},'message':'Removed\x20service\x20'+_0xdfec2d[_0x24e964(0x1f1)][_0x24e964(0x1f0)]+'.'};}},{'service':a61_0xa9ab1e(0x1eb),'command':a61_0xa9ab1e(0x21b),'description':a61_0xa9ab1e(0x1f5),'risk':a61_0xa9ab1e(0x1f3),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x336f8d){const _0x5f259d=a61_0xa9ab1e,_0x25ffc4=getLocalServiceEntry(_0x336f8d['str'](_0x5f259d(0x1eb)));if(!_0x25ffc4)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x336f8d[_0x5f259d(0x227)](_0x5f259d(0x1eb))},'message':_0x5f259d(0x226)+_0x336f8d[_0x5f259d(0x227)](_0x5f259d(0x1eb))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x25ffc4),'manifest':_0x25ffc4[_0x5f259d(0x222)],'normalizedManifest':toPublicNormalizedServiceTree(_0x25ffc4[_0x5f259d(0x20e)])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x3f808c=a62_0x3f95;(function(_0x1c53a7,_0x7057d5){const _0x135ae9=a62_0x3f95,_0x2c916a=_0x1c53a7();while(!![]){try{const _0x254df9=-parseInt(_0x135ae9(0x192))/0x1*(-parseInt(_0x135ae9(0x1c6))/0x2)+parseInt(_0x135ae9(0x1a4))/0x3*(-parseInt(_0x135ae9(0x1aa))/0x4)+-parseInt(_0x135ae9(0x1b2))/0x5*(-parseInt(_0x135ae9(0x1c4))/0x6)+-parseInt(_0x135ae9(0x1a6))/0x7*(-parseInt(_0x135ae9(0x184))/0x8)+parseInt(_0x135ae9(0x1bf))/0x9*(parseInt(_0x135ae9(0x1c5))/0xa)+-parseInt(_0x135ae9(0x1ca))/0xb+-parseInt(_0x135ae9(0x1a5))/0xc*(parseInt(_0x135ae9(0x172))/0xd);if(_0x254df9===_0x7057d5)break;else _0x2c916a['push'](_0x2c916a['shift']());}catch(_0x29c1b2){_0x2c916a['push'](_0x2c916a['shift']());}}}(a62_0x2175,0xade66));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a62_0x3f808c(0x170);export function getServiceRegistryPath(_0x1fff27={}){const _0x27434a=a62_0x3f808c;return resolve(_0x1fff27[_0x27434a(0x189)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x2fa873={}){const _0x367418=a62_0x3f808c,_0x449ae9=getServiceRegistryPath(_0x2fa873);if(!existsSync(_0x449ae9))return emptyServiceRegistry();try{const _0x27a550=readFileSync(_0x449ae9,_0x367418(0x180));if(!_0x27a550[_0x367418(0x1ba)]())return emptyServiceRegistry();const _0x23d6fd=JSON[_0x367418(0x1b8)](_0x27a550);if(_0x23d6fd[_0x367418(0x188)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x367418(0x1c8)+String(_0x23d6fd['schemaVersion']),_0x367418(0x19a)+_0x449ae9+'.');if(!Array[_0x367418(0x182)](_0x23d6fd[_0x367418(0x190)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x23d6fd[_0x367418(0x1ac)],'services':_0x23d6fd[_0x367418(0x190)]};}catch(_0x30348d){if(_0x30348d instanceof Error&&_0x30348d[_0x367418(0x1b1)]===_0x367418(0x1ae))throw _0x30348d;throw CliErrors[_0x367418(0x178)](_0x367418(0x196)+_0x449ae9,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x10c643,_0x4ea9ec={}){const _0xeccd81=a62_0x3f808c,_0x3260d5=getServiceRegistryPath(_0x4ea9ec),_0x52de02=dirname(_0x3260d5);!existsSync(_0x52de02)&&mkdirSync(_0x52de02,{'recursive':!![]});const _0x2f07bc=_0x3260d5+_0xeccd81(0x176);try{writeFileSync(_0x2f07bc,JSON[_0xeccd81(0x195)](_0x10c643,null,0x2)+'\x0a',{'encoding':_0xeccd81(0x180),'mode':0x180}),renameSync(_0x2f07bc,_0x3260d5);}catch(_0x47bc99){try{unlinkSync(_0x2f07bc);}catch{}if(_0x47bc99?.[_0xeccd81(0x174)]===_0xeccd81(0x193))throw CliErrors[_0xeccd81(0x178)](_0xeccd81(0x179)+_0x3260d5);throw _0x47bc99;}return _0x3260d5;}export function loadServiceManifestFromFile(_0x52f2d2){const _0x5b62a2=a62_0x3f808c,_0x23430e=resolve(_0x52f2d2);if(!existsSync(_0x23430e))throw CliErrors['validation'](_0x5b62a2(0x19b)+_0x52f2d2);let _0x36425c;const _0x4042ed=readFileSync(_0x23430e,_0x5b62a2(0x180));try{_0x36425c=JSON[_0x5b62a2(0x1b8)](_0x4042ed);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x52f2d2,_0x5b62a2(0x1a1));}const _0x5e5dfc=sha256(_0x4042ed),_0x417b06=extractLoadedServiceManifests(_0x36425c,_0x5e5dfc),_0x31ec97=aggregateValidationReports(_0x417b06),_0x2e628e=_0x417b06[0x0];return{'filePath':_0x23430e,'hash':_0x5e5dfc,'kind':isServiceRegistryLike(_0x36425c)?'registry':_0x5b62a2(0x1a8),'manifest':_0x2e628e?.[_0x5b62a2(0x1a8)]??_0x36425c,'report':_0x31ec97,'normalizedManifest':_0x417b06[_0x5b62a2(0x186)]===0x1?_0x2e628e?.[_0x5b62a2(0x19e)]:undefined,'manifests':_0x417b06};}export function importServiceManifest(_0x36d52a,_0x4e8583={}){const _0xc9bdd=a62_0x3f808c,_0xb83ed6=loadServiceManifestFromFile(_0x36d52a);if(!_0xb83ed6[_0xc9bdd(0x1b7)]['ok'])throw CliErrors[_0xc9bdd(0x178)](formatValidationFailure(_0xb83ed6[_0xc9bdd(0x1b7)]),_0xc9bdd(0x1a3));if(_0xb83ed6[_0xc9bdd(0x19d)][_0xc9bdd(0x186)]===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0xc9bdd(0x1a9));const _0x56ac6a=readServiceRegistry(_0x4e8583),_0x495b7d=(_0x4e8583[_0xc9bdd(0x1bd)]??(()=>new Date()))()[_0xc9bdd(0x1c2)](),_0x11e1f1=[];let _0x2a0cfd=0x0,_0x5e96dc=0x0;for(const _0xd13877 of _0xb83ed6[_0xc9bdd(0x19d)]){if(!_0xd13877[_0xc9bdd(0x19e)])continue;const _0xc7e25b=_0xd13877['normalizedManifest'][_0xc9bdd(0x18e)][_0xc9bdd(0x174)],_0x46572f={'serviceCode':_0xc7e25b,'version':_0xd13877[_0xc9bdd(0x19e)]['version'],'importedAt':_0x495b7d,'source':{'type':_0xc9bdd(0x1bc),'path':_0xb83ed6[_0xc9bdd(0x1bb)],'hash':_0xd13877[_0xc9bdd(0x17a)]},'manifest':_0xd13877[_0xc9bdd(0x1a8)],'normalizedManifest':_0xd13877[_0xc9bdd(0x19e)]},_0xebc3d6=_0x56ac6a[_0xc9bdd(0x190)][_0xc9bdd(0x175)](_0xdb5392=>_0xdb5392[_0xc9bdd(0x17c)]===_0xc7e25b);_0xebc3d6>=0x0?(_0x56ac6a[_0xc9bdd(0x190)][_0xebc3d6]=_0x46572f,_0x5e96dc++):(_0x56ac6a[_0xc9bdd(0x190)][_0xc9bdd(0x199)](_0x46572f),_0x2a0cfd++),_0x11e1f1[_0xc9bdd(0x199)](_0x46572f);}_0x56ac6a['services'][_0xc9bdd(0x18b)]((_0xfee4a,_0xd0ca22)=>_0xfee4a[_0xc9bdd(0x17c)]['localeCompare'](_0xd0ca22['serviceCode'])),_0x56ac6a[_0xc9bdd(0x1ac)]=_0x495b7d;const _0x2a9860=writeServiceRegistry(_0x56ac6a,_0x4e8583);return{'registryPath':_0x2a9860,'entry':_0x11e1f1[0x0],'replaced':_0x11e1f1[_0xc9bdd(0x186)]===0x1?_0x5e96dc===0x1:_0x5e96dc>0x0,'entries':_0x11e1f1,'imported':_0x2a0cfd,'updated':_0x5e96dc,'serviceCount':_0x56ac6a['services'][_0xc9bdd(0x186)]};}export function exportServiceManifest(_0x2403a9,_0x1d5fdf,_0x39131a={}){const _0x37b592=a62_0x3f808c,_0x580522=getServiceRegistryPath(_0x39131a),_0x43a265=getLocalServiceEntry(_0x2403a9,_0x39131a);if(!_0x43a265)throw CliErrors[_0x37b592(0x178)](_0x37b592(0x1be)+_0x2403a9,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x2f7cb1=resolve(_0x1d5fdf),_0x44f0ae=dirname(_0x2f7cb1);return!existsSync(_0x44f0ae)&&mkdirSync(_0x44f0ae,{'recursive':!![]}),writeFileSync(_0x2f7cb1,JSON['stringify'](_0x43a265[_0x37b592(0x1a8)],null,0x2)+'\x0a',{'encoding':_0x37b592(0x180),'mode':0x180}),{'registryPath':_0x580522,'filePath':_0x2f7cb1,'entry':_0x43a265};}export function removeServiceManifest(_0x26e3c1,_0x37ef60={}){const _0x2b27c5=a62_0x3f808c,_0x32a03a=readServiceRegistry(_0x37ef60),_0x2b9035=_0x26e3c1['trim'](),_0x45aee5=_0x32a03a['services'][_0x2b27c5(0x175)](_0x2e3410=>_0x2e3410[_0x2b27c5(0x17c)]===_0x2b9035);if(_0x45aee5<0x0)throw CliErrors[_0x2b27c5(0x178)]('Local\x20service\x20not\x20found:\x20'+_0x2b9035,_0x2b27c5(0x1c9));const [_0x365f5b]=_0x32a03a['services'][_0x2b27c5(0x19c)](_0x45aee5,0x1),_0x2da03e=(_0x37ef60[_0x2b27c5(0x1bd)]??(()=>new Date()))()[_0x2b27c5(0x1c2)]();_0x32a03a['updatedAt']=_0x2da03e;const _0x38ec36=writeServiceRegistry(_0x32a03a,_0x37ef60);return{'registryPath':_0x38ec36,'entry':_0x365f5b,'serviceCount':_0x32a03a['services']['length']};}export function listLocalServices(_0x11fd54={}){return readServiceRegistry(_0x11fd54)['services'];}export function getLocalServiceEntry(_0x369191,_0x22f115={}){const _0x33adf6=a62_0x3f808c;return readServiceRegistry(_0x22f115)[_0x33adf6(0x190)][_0x33adf6(0x1cb)](_0x3acf4e=>_0x3acf4e['serviceCode']===_0x369191['trim']());}export function listLocalServiceTrees(_0x3b327c={}){const _0x167cf7=a62_0x3f808c;return readServiceRegistry(_0x3b327c)[_0x167cf7(0x190)][_0x167cf7(0x1b6)](_0x596824=>_0x596824[_0x167cf7(0x19e)]);}function a62_0x2175(){const _0x429d2c=['kind','2EglOnk','ENOENT','startsWith','stringify','Invalid\x20service\x20registry\x20JSON:\x20','Service\x20manifest\x20validation\x20failed:\x0a','message','push','Remove\x20or\x20migrate\x20','Service\x20manifest\x20file\x20not\x20found:\x20','splice','manifests','normalizedManifest','sha256','flatMap','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','warnings','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','3tXiDXB','48Lzqxdr','49HVtFyP','digest','manifest','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','5158684TjiGQF','object','updatedAt','string','CliError','invalid','hex','name','3166535YqxnSM','description','].manifest','Unsupported\x20schemaVersion:\x20','map','report','parse','target','trim','filePath','file','now','Local\x20service\x20not\x20found:\x20','847881YqrXrW','version','reduce','toISOString','services\x20must\x20be\x20an\x20array','12tMbUMq','20aqwsws','358962kGDffc','source','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','3875047pOkBxY','find','service.json','path','2649959hkeunM','importedAt','code','findIndex','.tmp','commands','validation','Cannot\x20write\x20service\x20registry:\x20','sourceHash','slice','serviceCode','registryIndex','join','cliPath','utf8','command','isArray','errors','1549280yBvNma','].manifest.','length','missing','schemaVersion','homeDir','commandCount','sort','$.services[','empty','service','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','services'];a62_0x2175=function(){return _0x429d2c;};return a62_0x2175();}export function inspectServiceRegistry(_0x2281cb={}){const _0x48d2bd=a62_0x3f808c,_0xb405ed=getServiceRegistryPath(_0x2281cb);if(!existsSync(_0xb405ed))return emptyServiceRegistryInspection(_0xb405ed,_0x48d2bd(0x187),![]);try{const _0xad6672=readFileSync(_0xb405ed,_0x48d2bd(0x180));if(!_0xad6672[_0x48d2bd(0x1ba)]())return emptyServiceRegistryInspection(_0xb405ed,_0x48d2bd(0x18d),!![]);const _0x48fcc0=JSON[_0x48d2bd(0x1b8)](_0xad6672);if(_0x48fcc0[_0x48d2bd(0x188)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0xb405ed,_0x48d2bd(0x1af),!![]),'schemaVersion':_0x48fcc0[_0x48d2bd(0x188)],'message':_0x48d2bd(0x1b5)+String(_0x48fcc0[_0x48d2bd(0x188)])};if(!Array[_0x48d2bd(0x182)](_0x48fcc0[_0x48d2bd(0x190)]))return{...emptyServiceRegistryInspection(_0xb405ed,_0x48d2bd(0x1af),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x48fcc0['updatedAt'],'message':_0x48d2bd(0x1c3)};const _0x32cb85=_0x48fcc0['services']['map'](summarizeLocalServiceEntry);return{'registryPath':_0xb405ed,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x48fcc0[_0x48d2bd(0x1ac)],'serviceCount':_0x32cb85[_0x48d2bd(0x186)],'commandCount':_0x32cb85[_0x48d2bd(0x1c1)]((_0x2fa622,_0x2c6458)=>_0x2fa622+_0x2c6458[_0x48d2bd(0x18a)],0x0),'services':_0x32cb85};}catch(_0x2f4825){return{...emptyServiceRegistryInspection(_0xb405ed,_0x48d2bd(0x1af),!![]),'message':_0x2f4825 instanceof Error?_0x2f4825[_0x48d2bd(0x198)]:String(_0x2f4825)};}}export function formatValidationFailure(_0x1e5d70){const _0x30b34c=a62_0x3f808c,_0x47291e=_0x1e5d70['errors']['map'](_0x2d6086=>_0x2d6086['path']+':\x20'+_0x2d6086[_0x30b34c(0x198)]);return _0x30b34c(0x197)+_0x47291e[_0x30b34c(0x17e)]('\x0a');}function extractLoadedServiceManifests(_0x123069,_0x560e9a){const _0xf4ffd9=a62_0x3f808c;if(!isServiceRegistryLike(_0x123069)){const _0x33600a=_0x123069,{manifest:_0x45aefa,errors:_0x460eed}=adaptServiceTreeManifestForLegacyFramework(_0x33600a),_0x3cc3b2=validateServiceTreeManifest(_0x45aefa),_0x1d34ba=mergeValidationErrors(_0x3cc3b2,_0x460eed);return[{'manifest':_0x33600a,'report':_0x1d34ba,'normalizedManifest':_0x1d34ba['ok']?normalizeServiceTreeManifest(_0x45aefa):undefined,'sourceHash':_0x560e9a}];}return _0x123069[_0xf4ffd9(0x190)][_0xf4ffd9(0x1b6)]((_0x48e97b,_0x1892f1)=>{const _0x31c3c5=_0xf4ffd9,_0x730309=isObjectRecord(_0x48e97b)?_0x48e97b[_0x31c3c5(0x1a8)]:undefined,{manifest:_0x4f7f5d,errors:_0xe9c787}=adaptServiceTreeManifestForLegacyFramework(_0x730309),_0x1cc58e=validateServiceTreeManifest(_0x4f7f5d),_0x1bd9a6=mergeValidationErrors(_0x1cc58e,_0xe9c787),_0x531dd6=isObjectRecord(_0x48e97b)&&typeof _0x48e97b[_0x31c3c5(0x17c)]===_0x31c3c5(0x1ad)?_0x48e97b[_0x31c3c5(0x17c)]:undefined;return{'manifest':_0x730309,'report':_0x1bd9a6,'normalizedManifest':_0x1bd9a6['ok']?normalizeServiceTreeManifest(_0x4f7f5d):undefined,'sourceHash':sha256(JSON[_0x31c3c5(0x195)](_0x730309,null,0x2)+'\x0a'),'registryIndex':_0x1892f1,'registryServiceCode':_0x531dd6};});}function mergeValidationErrors(_0x38bbc5,_0x2dcd18){const _0xdcfa9=a62_0x3f808c,_0x124fb9=_0x38bbc5[_0xdcfa9(0x183)][_0xdcfa9(0x1b6)](_0x565f23=>_0x565f23[_0xdcfa9(0x198)]===_0xdcfa9(0x18f)?{..._0x565f23,'message':'bff\x20target\x20requires\x20functionName.'}:_0x565f23),_0x2a5c74=[..._0x2dcd18,..._0x124fb9];return{'ok':_0x2a5c74[_0xdcfa9(0x186)]===0x0,'errors':_0x2a5c74,'warnings':_0x38bbc5[_0xdcfa9(0x1a2)]};}function aggregateValidationReports(_0x1ee233){const _0x5b4a5a=a62_0x3f808c,_0x135946=_0x1ee233[_0x5b4a5a(0x1a0)](_0x5858d7=>_0x5858d7[_0x5b4a5a(0x17d)]===undefined?_0x5858d7[_0x5b4a5a(0x1b7)][_0x5b4a5a(0x183)]:_0x5858d7[_0x5b4a5a(0x1b7)]['errors'][_0x5b4a5a(0x1b6)](_0x20974f=>({..._0x20974f,'path':prefixRegistryIssuePath(_0x5858d7['registryIndex'],_0x20974f['path'])}))),_0x3b8dd6=_0x1ee233[_0x5b4a5a(0x1a0)](_0x111258=>_0x111258[_0x5b4a5a(0x17d)]===undefined?_0x111258['report'][_0x5b4a5a(0x1a2)]:_0x111258[_0x5b4a5a(0x1b7)]['warnings'][_0x5b4a5a(0x1b6)](_0x53504f=>({..._0x53504f,'path':prefixRegistryIssuePath(_0x111258[_0x5b4a5a(0x17d)],_0x53504f[_0x5b4a5a(0x171)])})));return{'ok':_0x135946[_0x5b4a5a(0x186)]===0x0,'errors':_0x135946,'warnings':_0x3b8dd6};}function prefixRegistryIssuePath(_0x85edd1,_0x51bd82){const _0x25d8b6=a62_0x3f808c;if(_0x51bd82==='$')return _0x25d8b6(0x18c)+_0x85edd1+_0x25d8b6(0x1b4);if(_0x51bd82[_0x25d8b6(0x194)]('$.'))return _0x25d8b6(0x18c)+_0x85edd1+_0x25d8b6(0x1b4)+_0x51bd82['slice'](0x1);if(_0x51bd82[_0x25d8b6(0x194)]('$['))return _0x25d8b6(0x18c)+_0x85edd1+'].manifest'+_0x51bd82[_0x25d8b6(0x17b)](0x1);return _0x25d8b6(0x18c)+_0x85edd1+_0x25d8b6(0x185)+_0x51bd82;}function isServiceRegistryLike(_0x47abcc){const _0x6d2aba=a62_0x3f808c;return isObjectRecord(_0x47abcc)&&_0x47abcc['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x6d2aba(0x182)](_0x47abcc[_0x6d2aba(0x190)]);}function isObjectRecord(_0x446523){const _0x368436=a62_0x3f808c;return Boolean(_0x446523)&&typeof _0x446523===_0x368436(0x1ab)&&!Array[_0x368436(0x182)](_0x446523);}function emptyServiceRegistryInspection(_0xcbb946,_0x10bfc7,_0xb4c85c){return{'registryPath':_0xcbb946,'exists':_0xb4c85c,'status':_0x10bfc7,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5426a1){const _0x44e389=a62_0x3f808c,_0x36f86c=_0x5426a1[_0x44e389(0x19e)],_0x5a1fce=_0x36f86c[_0x44e389(0x177)][_0x44e389(0x1b6)](_0x4110e2=>({'path':_0x4110e2[_0x44e389(0x17f)],'description':_0x4110e2[_0x44e389(0x1b3)],'risk':_0x4110e2['risk'],'targetKind':_0x4110e2[_0x44e389(0x1b9)][_0x44e389(0x191)],'targetCommand':_0x4110e2['target'][_0x44e389(0x181)]}));return{'serviceCode':_0x5426a1[_0x44e389(0x17c)],'name':_0x36f86c['service']['name'],'description':_0x36f86c[_0x44e389(0x18e)][_0x44e389(0x1b3)],'version':_0x5426a1[_0x44e389(0x1c0)],'importedAt':_0x5426a1[_0x44e389(0x173)],'source':_0x5426a1[_0x44e389(0x1c7)],'commandCount':_0x5a1fce['length'],'commands':_0x5a1fce};}function a62_0x3f95(_0x96793c,_0x4049f7){_0x96793c=_0x96793c-0x170;const _0x217552=a62_0x2175();let _0x3f9599=_0x217552[_0x96793c];return _0x3f9599;}function sha256(_0x27e85a){const _0x33547b=a62_0x3f808c;return createHash(_0x33547b(0x19f))['update'](_0x27e85a)[_0x33547b(0x1a7)](_0x33547b(0x1b0));}
|
|
1
|
+
const a62_0x36d7fb=a62_0x324e;(function(_0x43a204,_0x21cbbd){const _0x3cc907=a62_0x324e,_0x4ab8da=_0x43a204();while(!![]){try{const _0x59ab4f=-parseInt(_0x3cc907(0x110))/0x1*(parseInt(_0x3cc907(0xf1))/0x2)+parseInt(_0x3cc907(0xfb))/0x3+parseInt(_0x3cc907(0xee))/0x4+-parseInt(_0x3cc907(0xf3))/0x5+parseInt(_0x3cc907(0x11f))/0x6*(-parseInt(_0x3cc907(0x11c))/0x7)+-parseInt(_0x3cc907(0x100))/0x8*(-parseInt(_0x3cc907(0x11a))/0x9)+parseInt(_0x3cc907(0xe2))/0xa*(-parseInt(_0x3cc907(0xdc))/0xb);if(_0x59ab4f===_0x21cbbd)break;else _0x4ab8da['push'](_0x4ab8da['shift']());}catch(_0x1a9ac8){_0x4ab8da['push'](_0x4ab8da['shift']());}}}(a62_0x138c,0xb1ade));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';function a62_0x324e(_0x430d66,_0x5042ba){_0x430d66=_0x430d66-0xd5;const _0x138c8b=a62_0x138c();let _0x324ea6=_0x138c8b[_0x430d66];return _0x324ea6;}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=a62_0x36d7fb(0xe3);export function getServiceRegistryPath(_0x19f79f={}){const _0x1ef458=a62_0x36d7fb;return resolve(_0x19f79f[_0x1ef458(0xff)]??homedir(),PRODUCT_CONFIG[_0x1ef458(0x101)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x223461={}){const _0x3e8b1f=a62_0x36d7fb,_0x2b9ade=getServiceRegistryPath(_0x223461);if(!existsSync(_0x2b9ade))return emptyServiceRegistry();try{const _0x31b696=readFileSync(_0x2b9ade,_0x3e8b1f(0x113));if(!_0x31b696[_0x3e8b1f(0xd6)]())return emptyServiceRegistry();const _0x2bd954=JSON[_0x3e8b1f(0x112)](_0x31b696);if(_0x2bd954['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x3e8b1f(0xf6)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x2bd954[_0x3e8b1f(0x10d)]),_0x3e8b1f(0xfe)+_0x2b9ade+'.');if(!Array[_0x3e8b1f(0x122)](_0x2bd954['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2bd954['updatedAt'],'services':_0x2bd954[_0x3e8b1f(0x121)]};}catch(_0x3362d6){if(_0x3362d6 instanceof Error&&_0x3362d6[_0x3e8b1f(0xfa)]===_0x3e8b1f(0xef))throw _0x3362d6;throw CliErrors[_0x3e8b1f(0xf6)](_0x3e8b1f(0xe5)+_0x2b9ade,_0x3e8b1f(0x11d));}}export function writeServiceRegistry(_0x42df66,_0x45a698={}){const _0x41893d=a62_0x36d7fb,_0x4b5b43=getServiceRegistryPath(_0x45a698),_0x5bc07b=dirname(_0x4b5b43);!existsSync(_0x5bc07b)&&mkdirSync(_0x5bc07b,{'recursive':!![]});const _0x285cf6=_0x4b5b43+'.tmp';try{writeFileSync(_0x285cf6,JSON[_0x41893d(0x123)](_0x42df66,null,0x2)+'\x0a',{'encoding':_0x41893d(0x113),'mode':0x180}),renameSync(_0x285cf6,_0x4b5b43);}catch(_0x53face){try{unlinkSync(_0x285cf6);}catch{}if(_0x53face?.['code']===_0x41893d(0xde))throw CliErrors['validation'](_0x41893d(0xd9)+_0x4b5b43);throw _0x53face;}return _0x4b5b43;}export function loadServiceManifestFromFile(_0x22163f){const _0x1ec062=a62_0x36d7fb,_0x496c93=resolve(_0x22163f);if(!existsSync(_0x496c93))throw CliErrors[_0x1ec062(0xf6)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x22163f);let _0x38fcff;const _0xdf179e=readFileSync(_0x496c93,_0x1ec062(0x113));try{_0x38fcff=JSON[_0x1ec062(0x112)](_0xdf179e);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x22163f,_0x1ec062(0xdf));}const _0x2a040d=sha256(_0xdf179e),_0x1b127d=extractLoadedServiceManifests(_0x38fcff,_0x2a040d),_0x456919=aggregateValidationReports(_0x1b127d),_0x3abfe1=_0x1b127d[0x0];return{'filePath':_0x496c93,'hash':_0x2a040d,'kind':isServiceRegistryLike(_0x38fcff)?'registry':_0x1ec062(0x11b),'manifest':_0x3abfe1?.[_0x1ec062(0x11b)]??_0x38fcff,'report':_0x456919,'normalizedManifest':_0x1b127d[_0x1ec062(0x126)]===0x1?_0x3abfe1?.['normalizedManifest']:undefined,'manifests':_0x1b127d};}export function importServiceManifest(_0x302b3c,_0x14acd1={}){const _0x4a9fc3=a62_0x36d7fb,_0x3a0638=loadServiceManifestFromFile(_0x302b3c);if(!_0x3a0638[_0x4a9fc3(0x115)]['ok'])throw CliErrors[_0x4a9fc3(0xf6)](formatValidationFailure(_0x3a0638['report']),_0x4a9fc3(0xf7));if(_0x3a0638[_0x4a9fc3(0x10e)]['length']===0x0)throw CliErrors[_0x4a9fc3(0xf6)](_0x4a9fc3(0xfc),_0x4a9fc3(0x12b));const _0x3d0a9d=readServiceRegistry(_0x14acd1),_0x40ae95=(_0x14acd1[_0x4a9fc3(0x127)]??(()=>new Date()))()[_0x4a9fc3(0xdb)](),_0x25c431=[];let _0x3caaa3=0x0,_0x2ac024=0x0;for(const _0x35dd01 of _0x3a0638['manifests']){if(!_0x35dd01[_0x4a9fc3(0xed)])continue;const _0x171f3a=_0x35dd01[_0x4a9fc3(0xed)][_0x4a9fc3(0x11e)][_0x4a9fc3(0xf4)],_0x3300dd={'serviceCode':_0x171f3a,'version':_0x35dd01['normalizedManifest'][_0x4a9fc3(0x129)],'importedAt':_0x40ae95,'source':{'type':_0x4a9fc3(0xe8),'path':_0x3a0638[_0x4a9fc3(0x12a)],'hash':_0x35dd01[_0x4a9fc3(0x107)]},'manifest':_0x35dd01[_0x4a9fc3(0x11b)],'normalizedManifest':_0x35dd01[_0x4a9fc3(0xed)]},_0x2ea743=_0x3d0a9d[_0x4a9fc3(0x121)][_0x4a9fc3(0xf5)](_0xbfcc0d=>_0xbfcc0d[_0x4a9fc3(0xf9)]===_0x171f3a);_0x2ea743>=0x0?(_0x3d0a9d[_0x4a9fc3(0x121)][_0x2ea743]=_0x3300dd,_0x2ac024++):(_0x3d0a9d[_0x4a9fc3(0x121)][_0x4a9fc3(0x114)](_0x3300dd),_0x3caaa3++),_0x25c431[_0x4a9fc3(0x114)](_0x3300dd);}_0x3d0a9d[_0x4a9fc3(0x121)][_0x4a9fc3(0xe9)]((_0x1cc325,_0x138e10)=>_0x1cc325['serviceCode'][_0x4a9fc3(0x103)](_0x138e10[_0x4a9fc3(0xf9)])),_0x3d0a9d[_0x4a9fc3(0x128)]=_0x40ae95;const _0x42e1a9=writeServiceRegistry(_0x3d0a9d,_0x14acd1);return{'registryPath':_0x42e1a9,'entry':_0x25c431[0x0],'replaced':_0x25c431[_0x4a9fc3(0x126)]===0x1?_0x2ac024===0x1:_0x2ac024>0x0,'entries':_0x25c431,'imported':_0x3caaa3,'updated':_0x2ac024,'serviceCount':_0x3d0a9d[_0x4a9fc3(0x121)][_0x4a9fc3(0x126)]};}export function exportServiceManifest(_0x21000b,_0x205a53,_0x5bc817={}){const _0x2eb375=a62_0x36d7fb,_0xa4654e=getServiceRegistryPath(_0x5bc817),_0x164881=getLocalServiceEntry(_0x21000b,_0x5bc817);if(!_0x164881)throw CliErrors[_0x2eb375(0xf6)](_0x2eb375(0xd5)+_0x21000b,_0x2eb375(0x116));const _0x1e22ec=resolve(_0x205a53),_0x26b99e=dirname(_0x1e22ec);return!existsSync(_0x26b99e)&&mkdirSync(_0x26b99e,{'recursive':!![]}),writeFileSync(_0x1e22ec,JSON['stringify'](_0x164881[_0x2eb375(0x11b)],null,0x2)+'\x0a',{'encoding':_0x2eb375(0x113),'mode':0x180}),{'registryPath':_0xa4654e,'filePath':_0x1e22ec,'entry':_0x164881};}export function removeServiceManifest(_0x3834c3,_0x525279={}){const _0x3ad19a=a62_0x36d7fb,_0x1dcdb1=readServiceRegistry(_0x525279),_0xade82b=_0x3834c3[_0x3ad19a(0xd6)](),_0x23a683=_0x1dcdb1[_0x3ad19a(0x121)][_0x3ad19a(0xf5)](_0x7cc7c3=>_0x7cc7c3[_0x3ad19a(0xf9)]===_0xade82b);if(_0x23a683<0x0)throw CliErrors[_0x3ad19a(0xf6)](_0x3ad19a(0xd5)+_0xade82b,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x22c798]=_0x1dcdb1[_0x3ad19a(0x121)]['splice'](_0x23a683,0x1),_0x2c9d05=(_0x525279['now']??(()=>new Date()))()['toISOString']();_0x1dcdb1['updatedAt']=_0x2c9d05;const _0x393ee5=writeServiceRegistry(_0x1dcdb1,_0x525279);return{'registryPath':_0x393ee5,'entry':_0x22c798,'serviceCount':_0x1dcdb1[_0x3ad19a(0x121)][_0x3ad19a(0x126)]};}function a62_0x138c(){const _0x3093ff=['now','updatedAt','version','filePath','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','source','Local\x20service\x20not\x20found:\x20','trim','digest','].manifest','Cannot\x20write\x20service\x20registry:\x20','Service\x20manifest\x20validation\x20failed:\x0a','toISOString','508673ZfOBGX','commands','ENOENT','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','startsWith','$.services[','230gXARsB','service.json','cliPath','Invalid\x20service\x20registry\x20JSON:\x20','find','bff\x20target\x20requires\x20functionName.','file','sort','reduce','importedAt','command','normalizedManifest','5160364CokAVt','CliError','hex','6MBalvl','risk','2238005OYCzSX','code','findIndex','validation','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','map','serviceCode','name','2628690lHeYns','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','commandCount','Remove\x20or\x20migrate\x20','homeDir','3212560qazkqS','homeDirName','empty','localeCompare','kind','warnings','services\x20must\x20be\x20an\x20array','sourceHash','slice','path','message','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','invalid','schemaVersion','manifests','sha256','337139ApRaRQ','description','parse','utf8','push','report','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','missing','target','object','27QDJGzM','manifest','35EQwJXL','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','service','144780fQtjzx','flatMap','services','isArray','stringify','errors','registryIndex','length'];a62_0x138c=function(){return _0x3093ff;};return a62_0x138c();}export function listLocalServices(_0x34ce2e={}){const _0xe40dec=a62_0x36d7fb;return readServiceRegistry(_0x34ce2e)[_0xe40dec(0x121)];}export function getLocalServiceEntry(_0x37f521,_0x1431e6={}){const _0x5c0b36=a62_0x36d7fb;return readServiceRegistry(_0x1431e6)[_0x5c0b36(0x121)][_0x5c0b36(0xe6)](_0xb129e=>_0xb129e[_0x5c0b36(0xf9)]===_0x37f521[_0x5c0b36(0xd6)]());}export function listLocalServiceTrees(_0x1f379e={}){const _0x5460d3=a62_0x36d7fb;return readServiceRegistry(_0x1f379e)[_0x5460d3(0x121)]['map'](_0x2cdbcf=>_0x2cdbcf['normalizedManifest']);}export function inspectServiceRegistry(_0x9c80d={}){const _0x44a03f=a62_0x36d7fb,_0x5e1e70=getServiceRegistryPath(_0x9c80d);if(!existsSync(_0x5e1e70))return emptyServiceRegistryInspection(_0x5e1e70,_0x44a03f(0x117),![]);try{const _0x4adbdd=readFileSync(_0x5e1e70,_0x44a03f(0x113));if(!_0x4adbdd[_0x44a03f(0xd6)]())return emptyServiceRegistryInspection(_0x5e1e70,_0x44a03f(0x102),!![]);const _0x1ba134=JSON[_0x44a03f(0x112)](_0x4adbdd);if(_0x1ba134['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5e1e70,_0x44a03f(0x10c),!![]),'schemaVersion':_0x1ba134[_0x44a03f(0x10d)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1ba134['schemaVersion'])};if(!Array['isArray'](_0x1ba134['services']))return{...emptyServiceRegistryInspection(_0x5e1e70,_0x44a03f(0x10c),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1ba134[_0x44a03f(0x128)],'message':_0x44a03f(0x106)};const _0x273994=_0x1ba134[_0x44a03f(0x121)][_0x44a03f(0xf8)](summarizeLocalServiceEntry);return{'registryPath':_0x5e1e70,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1ba134['updatedAt'],'serviceCount':_0x273994[_0x44a03f(0x126)],'commandCount':_0x273994[_0x44a03f(0xea)]((_0x472cf7,_0x231f01)=>_0x472cf7+_0x231f01[_0x44a03f(0xfd)],0x0),'services':_0x273994};}catch(_0x5846d1){return{...emptyServiceRegistryInspection(_0x5e1e70,_0x44a03f(0x10c),!![]),'message':_0x5846d1 instanceof Error?_0x5846d1['message']:String(_0x5846d1)};}}export function formatValidationFailure(_0x277309){const _0x249147=a62_0x36d7fb,_0xd92f7f=_0x277309[_0x249147(0x124)][_0x249147(0xf8)](_0x28d646=>_0x28d646['path']+':\x20'+_0x28d646['message']);return _0x249147(0xda)+_0xd92f7f['join']('\x0a');}function extractLoadedServiceManifests(_0x113064,_0x122991){const _0x56a0c5=a62_0x36d7fb;if(!isServiceRegistryLike(_0x113064)){const _0x6c296f=_0x113064,{manifest:_0x3db066,errors:_0x4000b9}=adaptServiceTreeManifestForLegacyFramework(_0x6c296f),_0x443ca3=validateServiceTreeManifest(_0x3db066),_0x18edb2=mergeValidationErrors(_0x443ca3,_0x4000b9);return[{'manifest':_0x6c296f,'report':_0x18edb2,'normalizedManifest':_0x18edb2['ok']?normalizeServiceTreeManifest(_0x3db066):undefined,'sourceHash':_0x122991}];}return _0x113064['services'][_0x56a0c5(0xf8)]((_0x8c79c8,_0x39b774)=>{const _0x12145d=_0x56a0c5,_0x131769=isObjectRecord(_0x8c79c8)?_0x8c79c8[_0x12145d(0x11b)]:undefined,{manifest:_0x517899,errors:_0x106139}=adaptServiceTreeManifestForLegacyFramework(_0x131769),_0x4f2517=validateServiceTreeManifest(_0x517899),_0x8998b8=mergeValidationErrors(_0x4f2517,_0x106139),_0x489c8f=isObjectRecord(_0x8c79c8)&&typeof _0x8c79c8[_0x12145d(0xf9)]==='string'?_0x8c79c8[_0x12145d(0xf9)]:undefined;return{'manifest':_0x131769,'report':_0x8998b8,'normalizedManifest':_0x8998b8['ok']?normalizeServiceTreeManifest(_0x517899):undefined,'sourceHash':sha256(JSON[_0x12145d(0x123)](_0x131769,null,0x2)+'\x0a'),'registryIndex':_0x39b774,'registryServiceCode':_0x489c8f};});}function mergeValidationErrors(_0x4b68c3,_0x51f52d){const _0x271e6a=a62_0x36d7fb,_0x38f715=_0x4b68c3[_0x271e6a(0x124)][_0x271e6a(0xf8)](_0x31155a=>_0x31155a[_0x271e6a(0x10a)]===_0x271e6a(0x10b)?{..._0x31155a,'message':_0x271e6a(0xe7)}:_0x31155a),_0x24eb63=[..._0x51f52d,..._0x38f715];return{'ok':_0x24eb63['length']===0x0,'errors':_0x24eb63,'warnings':_0x4b68c3[_0x271e6a(0x105)]};}function aggregateValidationReports(_0x3f534){const _0x3ba7d8=a62_0x36d7fb,_0x21e043=_0x3f534[_0x3ba7d8(0x120)](_0x2f6b3c=>_0x2f6b3c[_0x3ba7d8(0x125)]===undefined?_0x2f6b3c['report'][_0x3ba7d8(0x124)]:_0x2f6b3c[_0x3ba7d8(0x115)]['errors'][_0x3ba7d8(0xf8)](_0x5aa15d=>({..._0x5aa15d,'path':prefixRegistryIssuePath(_0x2f6b3c[_0x3ba7d8(0x125)],_0x5aa15d[_0x3ba7d8(0x109)])}))),_0x49a6ac=_0x3f534['flatMap'](_0x39d373=>_0x39d373[_0x3ba7d8(0x125)]===undefined?_0x39d373[_0x3ba7d8(0x115)]['warnings']:_0x39d373['report'][_0x3ba7d8(0x105)][_0x3ba7d8(0xf8)](_0x120b1b=>({..._0x120b1b,'path':prefixRegistryIssuePath(_0x39d373[_0x3ba7d8(0x125)],_0x120b1b[_0x3ba7d8(0x109)])})));return{'ok':_0x21e043[_0x3ba7d8(0x126)]===0x0,'errors':_0x21e043,'warnings':_0x49a6ac};}function prefixRegistryIssuePath(_0x455e91,_0x3d3e83){const _0x206b1a=a62_0x36d7fb;if(_0x3d3e83==='$')return _0x206b1a(0xe1)+_0x455e91+'].manifest';if(_0x3d3e83[_0x206b1a(0xe0)]('$.'))return _0x206b1a(0xe1)+_0x455e91+_0x206b1a(0xd8)+_0x3d3e83[_0x206b1a(0x108)](0x1);if(_0x3d3e83[_0x206b1a(0xe0)]('$['))return _0x206b1a(0xe1)+_0x455e91+'].manifest'+_0x3d3e83[_0x206b1a(0x108)](0x1);return'$.services['+_0x455e91+'].manifest.'+_0x3d3e83;}function isServiceRegistryLike(_0x4c594f){const _0x35e75a=a62_0x36d7fb;return isObjectRecord(_0x4c594f)&&_0x4c594f[_0x35e75a(0x10d)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x4c594f['services']);}function isObjectRecord(_0x2f7f52){const _0x3ef2b7=a62_0x36d7fb;return Boolean(_0x2f7f52)&&typeof _0x2f7f52===_0x3ef2b7(0x119)&&!Array[_0x3ef2b7(0x122)](_0x2f7f52);}function emptyServiceRegistryInspection(_0x43317f,_0x3e0cf1,_0x3e23bf){return{'registryPath':_0x43317f,'exists':_0x3e23bf,'status':_0x3e0cf1,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x23e66a){const _0x57a486=a62_0x36d7fb,_0x1c7347=_0x23e66a[_0x57a486(0xed)],_0x9343cd=_0x1c7347[_0x57a486(0xdd)][_0x57a486(0xf8)](_0x303f7d=>({'path':_0x303f7d[_0x57a486(0xe4)],'description':_0x303f7d[_0x57a486(0x111)],'risk':_0x303f7d[_0x57a486(0xf2)],'targetKind':_0x303f7d[_0x57a486(0x118)][_0x57a486(0x104)],'targetCommand':_0x303f7d[_0x57a486(0x118)][_0x57a486(0xec)]}));return{'serviceCode':_0x23e66a['serviceCode'],'name':_0x1c7347[_0x57a486(0x11e)]['name'],'description':_0x1c7347[_0x57a486(0x11e)][_0x57a486(0x111)],'version':_0x23e66a[_0x57a486(0x129)],'importedAt':_0x23e66a[_0x57a486(0xeb)],'source':_0x23e66a[_0x57a486(0x12c)],'commandCount':_0x9343cd[_0x57a486(0x126)],'commands':_0x9343cd};}function sha256(_0x18151b){const _0x5b8162=a62_0x36d7fb;return createHash(_0x5b8162(0x10f))['update'](_0x18151b)[_0x5b8162(0xd7)](_0x5b8162(0xf0));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a63_0x2762f3=a63_0x85b3;(function(_0x45cf1a,_0x5cd60a){const _0x38a6b5=a63_0x85b3,_0x481129=_0x45cf1a();while(!![]){try{const _0x1030a2=-parseInt(_0x38a6b5(0x11b))/0x1+-parseInt(_0x38a6b5(0x10f))/0x2*(-parseInt(_0x38a6b5(0x126))/0x3)+parseInt(_0x38a6b5(0x11a))/0x4+parseInt(_0x38a6b5(0x111))/0x5+-parseInt(_0x38a6b5(0x10b))/0x6+-parseInt(_0x38a6b5(0x128))/0x7*(parseInt(_0x38a6b5(0x12c))/0x8)+-parseInt(_0x38a6b5(0x116))/0x9*(-parseInt(_0x38a6b5(0x119))/0xa);if(_0x1030a2===_0x5cd60a)break;else _0x481129['push'](_0x481129['shift']());}catch(_0x469484){_0x481129['push'](_0x481129['shift']());}}}(a63_0x5da0,0x712fe));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';function a63_0x85b3(_0x398ae6,_0x5087b9){_0x398ae6=_0x398ae6-0x10b;const _0x5da0d1=a63_0x5da0();let _0x85b3aa=_0x5da0d1[_0x398ae6];return _0x85b3aa;}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':a63_0x2762f3(0x114),'command':a63_0x2762f3(0x12d),'description':'创建本地自包含的运行态\x20Skill\x20草稿','risk':a63_0x2762f3(0x12a),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x40dd4b){const _0x3eaaca=a63_0x2762f3,_0x4493cb=buildSkillCreatePlan(_0x40dd4b[_0x3eaaca(0x127)](_0x3eaaca(0x118)),_0x40dd4b[_0x3eaaca(0x127)](_0x3eaaca(0x122)),_0x40dd4b[_0x3eaaca(0x127)]('target'));return{'method':'WRITE','url':_0x4493cb['skillDir'],'body':{'skillName':_0x4493cb[_0x3eaaca(0x129)][_0x3eaaca(0x123)],'type':_0x4493cb[_0x3eaaca(0x129)][_0x3eaaca(0x122)],'selfContained':!![],'files':_0x4493cb['rendered'][_0x3eaaca(0x120)][_0x3eaaca(0x10e)](_0xa04f3b=>_0xa04f3b['path'])},'description':_0x3eaaca(0x110)};},async 'execute'(_0x4a633f){const _0xb548a9=a63_0x2762f3,_0x318647=buildSkillCreatePlan(_0x4a633f[_0xb548a9(0x127)](_0xb548a9(0x118)),_0x4a633f[_0xb548a9(0x127)](_0xb548a9(0x122)),_0x4a633f[_0xb548a9(0x127)](_0xb548a9(0x11c)));return writeSkillDraft(_0x318647,_0x4a633f[_0xb548a9(0x112)](_0xb548a9(0x125))),{'ok':!![],'data':{'skillName':_0x318647[_0xb548a9(0x129)][_0xb548a9(0x123)],'type':_0x318647[_0xb548a9(0x129)]['type'],'dir':_0x318647[_0xb548a9(0x113)],'files':_0x318647[_0xb548a9(0x129)][_0xb548a9(0x120)]['map'](_0x154034=>_0x154034[_0xb548a9(0x115)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x318647[_0xb548a9(0x129)]['skillName']};}};function buildSkillCreatePlan(_0x5a9f23,_0x53048c,_0x398080){const _0x434d0c=a63_0x2762f3,_0x3c88ac=_0x53048c[_0x434d0c(0x117)](),_0x2e8c05=renderSkillTemplate({'skillName':_0x5a9f23,'type':_0x3c88ac});!_0x3c88ac&&writeCliSideChannelLine(_0x434d0c(0x11e));const _0x3f9291=resolve(normalizeSkillTarget(_0x398080));return{'rendered':_0x2e8c05,'targetRoot':_0x3f9291,'skillDir':resolve(_0x3f9291,_0x2e8c05['skillName'])};}function a63_0x5da0(){const _0xa877ae=['utf8','type','skillName','validation','force','9993jmvQEx','str','3406109esCpba','rendered','read','content','8iGkwqd','create','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','2251098XvpUXY','isDirectory','Skill\x20directory\x20already\x20exists:\x20','map','262lxIuLD','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','87250vZnXgy','bool','skillDir','skill','path','84006vaOHCx','trim','name','1490ukVXfr','1455580NVPVsp','883088MKBnDx','target','isSymbolicLink','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','files'];a63_0x5da0=function(){return _0xa877ae;};return a63_0x5da0();}function normalizeSkillTarget(_0x49402f){const _0x34e744=a63_0x2762f3;return(_0x49402f||DEFAULT_SKILL_TARGET)[_0x34e744(0x117)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x4d0909,_0x4da4fb){const _0x2ccdc=a63_0x2762f3;if(existsSync(_0x4d0909[_0x2ccdc(0x113)])){const _0x5e4241=lstatSync(_0x4d0909[_0x2ccdc(0x113)]);if(!_0x5e4241[_0x2ccdc(0x10c)]()||_0x5e4241['isSymbolicLink']())throw CliErrors['validation'](_0x2ccdc(0x11f)+_0x4d0909[_0x2ccdc(0x113)]);if(!_0x4da4fb)throw CliErrors['validation'](_0x2ccdc(0x10d)+_0x4d0909[_0x2ccdc(0x113)],_0x2ccdc(0x12e));}for(const _0x1b1799 of _0x4d0909['rendered'][_0x2ccdc(0x120)]){const _0x2bf509=resolve(_0x4d0909[_0x2ccdc(0x113)],_0x1b1799[_0x2ccdc(0x115)]),_0x52d2b4=dirname(_0x2bf509);mkdirSync(_0x52d2b4,{'recursive':!![]});if(existsSync(_0x2bf509)&&lstatSync(_0x2bf509)[_0x2ccdc(0x11d)]())throw CliErrors[_0x2ccdc(0x124)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x2bf509);writeFileSync(_0x2bf509,_0x1b1799[_0x2ccdc(0x12b)],_0x2ccdc(0x121));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a64_0x202a53=a64_0x1428;(function(_0x36497a,_0x282c9a){const _0x393154=a64_0x1428,_0x1f13f1=_0x36497a();while(!![]){try{const _0x2c5286=-parseInt(_0x393154(0x154))/0x1+-parseInt(_0x393154(0x14c))/0x2*(-parseInt(_0x393154(0x15f))/0x3)+parseInt(_0x393154(0x152))/0x4*(-parseInt(_0x393154(0x16a))/0x5)+-parseInt(_0x393154(0x151))/0x6+-parseInt(_0x393154(0x141))/0x7*(parseInt(_0x393154(0x156))/0x8)+-parseInt(_0x393154(0x162))/0x9*(-parseInt(_0x393154(0x15e))/0xa)+parseInt(_0x393154(0x153))/0xb;if(_0x2c5286===_0x282c9a)break;else _0x1f13f1['push'](_0x1f13f1['shift']());}catch(_0x49dfab){_0x1f13f1['push'](_0x1f13f1['shift']());}}}(a64_0x1eb0,0xa5645));function a64_0x1eb0(){const _0x3ee259=['\x20Skill\x20diagram\x20for\x20','found','Updated','917ICXPSq','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','trim','diagram-file','version','company','\x20is\x20unchanged.','diagram-show','str','validation','Skill\x20diagram\x20for\x20','2433502PRRrpM','appCode','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','write','isInteger','310758UNTOMh','24xQmfBU','3472887JWTotg','666737WXYAzm','unchanged','36224XrQvsb',';\x20next\x20write\x20expects\x20revision\x20','read','personal','expected-diagram-revision','action',';\x20first\x20write\x20expects\x20revision\x20','skill','30sRJhts','3RMTEre','Skill\x20diagram\x20validation\x20passed\x20for\x20','created','1974357WAwzbj','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','scope','expectedDiagramRevision','Found\x20Skill\x20diagram\x20for\x20','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','skill-code','skillCode','167870bAqyWh'];a64_0x1eb0=function(){return _0x3ee259;};return a64_0x1eb0();}import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function a64_0x1428(_0x2bfd5,_0x5b745d){_0x2bfd5=_0x2bfd5-0x13f;const _0x1eb078=a64_0x1eb0();let _0x1428c2=_0x1eb078[_0x2bfd5];return _0x1428c2;}function readDiagramTarget(_0x13d9a1){const _0x4ccd41=a64_0x1428,_0x58c158=_0x13d9a1[_0x4ccd41(0x149)](_0x4ccd41(0x168))[_0x4ccd41(0x143)](),_0x56dbbb=_0x13d9a1[_0x4ccd41(0x149)](_0x4ccd41(0x145))[_0x4ccd41(0x143)](),_0x3660ef=_0x13d9a1[_0x4ccd41(0x149)]('scope');if(!_0x58c158||!_0x56dbbb||_0x3660ef!==_0x4ccd41(0x159)&&_0x3660ef!==_0x4ccd41(0x146))throw CliErrors[_0x4ccd41(0x14a)](_0x4ccd41(0x167));return{'skillCode':_0x58c158,'version':_0x56dbbb,'scope':_0x3660ef};}async function readDiagramWriteInput(_0x2ef745){const _0x27c8cf=a64_0x1428,_0x28d95e=_0x2ef745['num'](_0x27c8cf(0x15a)),_0x6c7858=_0x2ef745[_0x27c8cf(0x149)]('source-fingerprint')[_0x27c8cf(0x143)]();if(!Number[_0x27c8cf(0x150)](_0x28d95e)||_0x28d95e<0x0)throw CliErrors['validation'](_0x27c8cf(0x163));if(!/^sha256:[0-9a-f]{64}$/['test'](_0x6c7858))throw CliErrors[_0x27c8cf(0x14a)]('--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.');return{'expectedDiagramRevision':_0x28d95e,'sourceFingerprint':_0x6c7858,'diagram':await readRequiredSkillDiagram(_0x2ef745['str'](_0x27c8cf(0x144)))};}export const diagramValidateCommand={'service':a64_0x202a53(0x15d),'command':'diagram-validate','description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':a64_0x202a53(0x158),'flags':WRITE_FLAGS,async 'execute'(_0x8eacc2){const _0x202a5a=a64_0x202a53,_0x42dce6=readDiagramTarget(_0x8eacc2),_0x40724c=await validateRuntimeSkillVersionDiagram(_0x8eacc2[_0x202a5a(0x14d)],_0x42dce6[_0x202a5a(0x169)],_0x42dce6[_0x202a5a(0x145)],_0x42dce6[_0x202a5a(0x164)],await readDiagramWriteInput(_0x8eacc2));return{'ok':!![],'data':_0x40724c,'message':_0x202a5a(0x160)+_0x42dce6[_0x202a5a(0x169)]+'@'+_0x42dce6['version']+'.'};}};export const diagramPushCommand={'service':'skill','command':'diagram-push','description':a64_0x202a53(0x14e),'risk':a64_0x202a53(0x14f),'confirmationDescription':a64_0x202a53(0x142),'flags':WRITE_FLAGS,async 'execute'(_0x566c19){const _0x17c228=a64_0x202a53,_0x328809=readDiagramTarget(_0x566c19),_0x50d157=await putRuntimeSkillVersionDiagram(_0x566c19[_0x17c228(0x14d)],_0x328809['skillCode'],_0x328809[_0x17c228(0x145)],_0x328809[_0x17c228(0x164)],await readDiagramWriteInput(_0x566c19));return{'ok':!![],'data':_0x50d157,'message':_0x50d157['action']===_0x17c228(0x155)?_0x17c228(0x14b)+_0x328809[_0x17c228(0x169)]+'@'+_0x328809[_0x17c228(0x145)]+_0x17c228(0x147):(_0x50d157[_0x17c228(0x15b)]===_0x17c228(0x161)?'Created':_0x17c228(0x140))+_0x17c228(0x16b)+_0x328809[_0x17c228(0x169)]+'@'+_0x328809[_0x17c228(0x145)]+'.'};}};export const diagramShowCommand={'service':a64_0x202a53(0x15d),'command':a64_0x202a53(0x148),'description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x1b1f29){const _0x3c4a31=a64_0x202a53,_0x23bce9=readDiagramTarget(_0x1b1f29),_0x187597=await getRuntimeSkillVersionDiagram(_0x1b1f29[_0x3c4a31(0x14d)],_0x23bce9['skillCode'],_0x23bce9[_0x3c4a31(0x145)],_0x23bce9[_0x3c4a31(0x164)]);return{'ok':!![],'data':_0x187597,'message':_0x187597[_0x3c4a31(0x13f)]?_0x3c4a31(0x166)+_0x23bce9[_0x3c4a31(0x169)]+'@'+_0x23bce9[_0x3c4a31(0x145)]+_0x3c4a31(0x157)+_0x187597[_0x3c4a31(0x165)]+'.':'No\x20Skill\x20diagram\x20is\x20stored\x20for\x20'+_0x23bce9['skillCode']+'@'+_0x23bce9[_0x3c4a31(0x145)]+_0x3c4a31(0x15c)+_0x187597[_0x3c4a31(0x165)]+'.'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a65_0x4836f9=a65_0x4592;function a65_0x4592(_0x3ac908,_0x5aced2){_0x3ac908=_0x3ac908-0x6c;const _0x99c3cf=a65_0x99c3();let _0x459214=_0x99c3cf[_0x3ac908];return _0x459214;}(function(_0x16103a,_0x25f58c){const _0x4426a6=a65_0x4592,_0x4463eb=_0x16103a();while(!![]){try{const _0x284bb2=-parseInt(_0x4426a6(0x71))/0x1+parseInt(_0x4426a6(0x74))/0x2*(-parseInt(_0x4426a6(0x8e))/0x3)+-parseInt(_0x4426a6(0x92))/0x4*(-parseInt(_0x4426a6(0x6e))/0x5)+-parseInt(_0x4426a6(0x73))/0x6+parseInt(_0x4426a6(0x6c))/0x7*(-parseInt(_0x4426a6(0x6f))/0x8)+parseInt(_0x4426a6(0x8f))/0x9+parseInt(_0x4426a6(0x8d))/0xa;if(_0x284bb2===_0x25f58c)break;else _0x4463eb['push'](_0x4463eb['shift']());}catch(_0x527cd0){_0x4463eb['push'](_0x4463eb['shift']());}}}(a65_0x99c3,0x54c92));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':'skill','command':'install','description':a65_0x4836f9(0x6d),'risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x4d0e8d){return syncRuntimeSkills(_0x4d0e8d);}};async function syncRuntimeSkills(_0x3aa682){const _0x457656=a65_0x4836f9,{downloadRuntimeSkillPackage:_0x20f36e,listRuntimeSkills:_0xe65b0a}=await import(_0x457656(0x7d)),{linkEffectiveRuntimeSkills:_0x51ec65,materializeRuntimeSkill:_0x5cd35b,pruneStaleRuntimeSkillCache:_0x34a6dc,pruneStaleRuntimeSkillLinks:_0x510480,resolveRuntimeSkillInstallTarget:_0x43f3f3,reuseMaterializedRuntimeSkill:_0x5a9ab9}=await import(_0x457656(0x98)),_0x32ae08=_0x3aa682[_0x457656(0x8a)](_0x457656(0x77)),_0x4f5a77=normalizeSyncScopes(_0x3aa682[_0x457656(0x8a)]('scope')),_0x3c8b72=_0x3aa682[_0x457656(0x96)]??_0x457656(0x86),_0x317134=_0x3aa682[_0x457656(0x87)],_0x4d55bf=_0x3aa682[_0x457656(0x95)](_0x457656(0x99));if(!_0x317134)throw CliErrors[_0x457656(0x79)](_0x457656(0x82));const _0x3112d5=_0x43f3f3(_0x3aa682[_0x457656(0x7b)],_0x3aa682[_0x457656(0x95)](_0x457656(0x85))?_0x457656(0x85):_0x457656(0x84)),_0x17fb25=_0x43f3f3(_0x3aa682[_0x457656(0x7b)],_0x3112d5[_0x457656(0x97)]===_0x457656(0x85)?_0x457656(0x84):'project'),_0x5576da=await _0xe65b0a({'appCode':_0x3aa682[_0x457656(0x7b)],'scope':_0x4f5a77[_0x457656(0x70)]===0x1?_0x4f5a77[0x0]:_0x457656(0x83),'code':_0x32ae08[_0x457656(0x81)]()||undefined}),_0x5c3f47=_0x4f5a77[_0x457656(0x88)](_0x457656(0x91))?_0x5576da[_0x457656(0x91)]:[],_0xcbc49d=_0x4f5a77['includes']('company')?_0x5576da[_0x457656(0x7f)]:[],_0x493a64=new Set([..._0x5c3f47[_0x457656(0x7a)](_0x1ac947=>_0x1ac947[_0x457656(0x72)]?.['trim']())[_0x457656(0x8b)](_0x2460e7=>Boolean(_0x2460e7)),..._0xcbc49d[_0x457656(0x7a)](_0x14a527=>_0x14a527[_0x457656(0x72)]?.[_0x457656(0x81)]())['filter'](_0x27914b=>Boolean(_0x27914b))]),_0x377b70=_0x32ae08[_0x457656(0x81)]()?[_0x32ae08[_0x457656(0x81)]()]:undefined,_0x39e59b=_0x4f5a77[_0x457656(0x70)]===0x2&&_0x4f5a77[_0x457656(0x88)]('personal')&&_0x4f5a77[_0x457656(0x88)]('company'),_0x2fa8c0=_0x39e59b?_0x510480(_0x3112d5,_0x493a64,_0x377b70):[],_0x32cba3=_0x34a6dc({'env':_0x3c8b72,'accessKey':_0x317134,'appCode':_0x3aa682[_0x457656(0x7b)],'activeSkillCodes':_0x493a64,'pruneSkillCodes':_0x377b70,'scopes':_0x4f5a77,'protectedLinkRoots':_0x17fb25[_0x457656(0x78)]}),_0x145471=[..._0x5c3f47[_0x457656(0x7a)](_0x270629=>({'skill':_0x270629,'scope':_0x457656(0x91)})),..._0xcbc49d[_0x457656(0x7a)](_0x8b4229=>({'skill':_0x8b4229,'scope':'company'}))],_0x300a3c=await mapConcurrent(_0x145471,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x2ea676,scope:_0x9ac0c6})=>{const _0x57a505=_0x457656,_0xf2c3fc=_0x5a9ab9(_0x2ea676,_0x9ac0c6,{'env':_0x3c8b72,'accessKey':_0x317134,'appCode':_0x3aa682[_0x57a505(0x7b)]});if(_0xf2c3fc)return _0xf2c3fc;return _0x5cd35b(_0x2ea676,_0x9ac0c6,{'env':_0x3c8b72,'accessKey':_0x317134,'appCode':_0x3aa682[_0x57a505(0x7b)],'force':_0x4d55bf,'packageBytes':await downloadSkillPackage(_0x2ea676,_0x9ac0c6,_0x3aa682['appCode'],_0x20f36e)});}),_0x176208=_0x51ec65(_0x300a3c,_0x3112d5),_0x237496=countLinkActions(_0x176208);return{'ok':!![],'data':{'appCode':_0x3aa682[_0x457656(0x7b)],..._0x3112d5[_0x457656(0x97)]==='project'?{'installTarget':{'scope':_0x3112d5[_0x457656(0x97)],'skillRoots':[..._0x3112d5[_0x457656(0x78)]]}}:{},'personal':_0x5c3f47[_0x457656(0x70)],'company':_0xcbc49d[_0x457656(0x70)],'materialized':_0x300a3c[_0x457656(0x70)],'links':{'total':_0x176208[_0x457656(0x70)],'created':_0x237496[_0x457656(0x94)]??0x0,'updated':_0x237496[_0x457656(0x8c)]??0x0,'unchanged':_0x237496[_0x457656(0x90)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x2fa8c0[_0x457656(0x8b)](_0x278755=>_0x278755['action']===_0x457656(0x75))[_0x457656(0x70)],'cacheDirs':_0x32cba3[_0x457656(0x8b)](_0x49464b=>_0x49464b[_0x457656(0x7c)]===_0x457656(0x75))['length'],'skipped':[..._0x2fa8c0,..._0x32cba3][_0x457656(0x8b)](_0x293a7e=>_0x293a7e[_0x457656(0x7c)]===_0x457656(0x7e))[_0x457656(0x70)]},'skills':{'personal':_0x5c3f47['map'](summarizeRuntimeSkill),'company':_0xcbc49d[_0x457656(0x7a)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0x5c3f47['length']+'\x20personal\x20and\x20'+_0xcbc49d['length']+_0x457656(0x89)};}async function mapConcurrent(_0xcbb483,_0x496ac5,_0x1ef893){const _0x59f49e=a65_0x4836f9,_0x31a0b1=new Array(_0xcbb483['length']);let _0x3f7e2f=0x0;const _0x43f32c=Array['from']({'length':Math[_0x59f49e(0x93)](_0x496ac5,_0xcbb483[_0x59f49e(0x70)])},async()=>{const _0x55edee=_0x59f49e;while(_0x3f7e2f<_0xcbb483[_0x55edee(0x70)]){const _0x1a911b=_0x3f7e2f;_0x3f7e2f+=0x1,_0x31a0b1[_0x1a911b]=await _0x1ef893(_0xcbb483[_0x1a911b]);}});return await Promise['all'](_0x43f32c),_0x31a0b1;}async function downloadSkillPackage(_0x375214,_0x4496b2,_0x497f73,_0x36cf18){const _0x58ac6f=a65_0x4836f9,_0x22ac72=_0x375214[_0x58ac6f(0x80)]?.[_0x58ac6f(0x81)]();return _0x22ac72?_0x36cf18(_0x4496b2,_0x375214['skillCode'],_0x497f73,_0x22ac72):_0x36cf18(_0x4496b2,_0x375214['skillCode'],_0x497f73);}function a65_0x99c3(){const _0x5445ea=['envName','scope','../../../skills/runtime-skill-sync.js','force','2393657nmdkNF','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','265zUMpmp','16ydyFTx','length','347790dUmhAW','skillCode','32988MtrPes','46IlwnaW','removed','reduce','code','skillRoots','authRequired','map','appCode','action','../../../core/api-client.js','skipped','company','version','trim','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','all','global','project','production','accessKey','includes','\x20company\x20Skill(s).','str','filter','updated','11154780JNRBBi','83823DybyFo','5425254QLUXSe','unchanged','personal','23308VxMVWY','min','created','bool'];a65_0x99c3=function(){return _0x5445ea;};return a65_0x99c3();}function countLinkActions(_0x20b399){const _0x3ac3c4=a65_0x4836f9;return _0x20b399[_0x3ac3c4(0x76)]((_0x44a592,_0x1f337d)=>{const _0x48b6e8=_0x3ac3c4;return _0x44a592[_0x1f337d[_0x48b6e8(0x7c)]]=(_0x44a592[_0x1f337d[_0x48b6e8(0x7c)]]??0x0)+0x1,_0x44a592;},{});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x490b2b,_0x47f307){const _0x1c997d=a66_0xad40,_0x2dd187=_0x490b2b();while(!![]){try{const _0x225462=parseInt(_0x1c997d(0x1f8))/0x1*(parseInt(_0x1c997d(0x1f4))/0x2)+-parseInt(_0x1c997d(0x1f1))/0x3+parseInt(_0x1c997d(0x1e9))/0x4+-parseInt(_0x1c997d(0x1ff))/0x5*(parseInt(_0x1c997d(0x1e7))/0x6)+-parseInt(_0x1c997d(0x204))/0x7+-parseInt(_0x1c997d(0x1eb))/0x8+parseInt(_0x1c997d(0x1f2))/0x9;if(_0x225462===_0x47f307)break;else _0x2dd187['push'](_0x2dd187['shift']());}catch(_0x487a4b){_0x2dd187['push'](_0x2dd187['shift']());}}}(a66_0x18fe,0xdb35a));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';function a66_0x18fe(){const _0x506662=['production','10609123gNFYSR','6FncPBe','appCode','4854496DynLEV','filter','4529648TPLiue','global','str','map','length','../../../skills/runtime-skill-sync.js','4748352lEwkVP','29952630YaFHrr','local','435430XbVPEq','authRequired','\x20local\x20Skill(s).','accessKey','6FlVuSI','scope','../../../core/api-client.js','personal','trim','company','Listed\x20','6427615ZhuAhz','project','bool','remote'];a66_0x18fe=function(){return _0x506662;};return a66_0x18fe();}function a66_0xad40(_0x313e07,_0x54d4e3){_0x313e07=_0x313e07-0x1e7;const _0x18fe5d=a66_0x18fe();let _0xad4033=_0x18fe5d[_0x313e07];return _0xad4033;}export const listCommand={'service':'skill','command':'list','description':'List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x308ee2){const _0x220d89=a66_0xad40,_0x135296=_0x308ee2[_0x220d89(0x1ed)]('code'),_0x5c118c=normalizeListScope(_0x308ee2[_0x220d89(0x1ed)](_0x220d89(0x1f9)));if(_0x308ee2[_0x220d89(0x201)](_0x220d89(0x1f3))){const _0x3fd1df=_0x308ee2[_0x220d89(0x1f7)];if(!_0x3fd1df)throw CliErrors[_0x220d89(0x1f5)]();const {listLocalRuntimeSkills:_0x48365b,resolveRuntimeSkillInstallTarget:_0x3e0e00}=await import(_0x220d89(0x1f0)),_0x3421c7=_0x3e0e00(_0x308ee2[_0x220d89(0x1e8)],_0x308ee2[_0x220d89(0x201)](_0x220d89(0x200))?_0x220d89(0x200):_0x220d89(0x1ec)),_0x2b8dc0=_0x48365b({'env':_0x308ee2['envName']??_0x220d89(0x203),'accessKey':_0x3fd1df,'appCode':_0x308ee2[_0x220d89(0x1e8)],'scopes':listScopeToRuntimeScopes(_0x5c118c),'code':_0x135296[_0x220d89(0x1fc)]()||undefined},_0x3421c7),_0x506c24=groupLocalRuntimeSkills(_0x2b8dc0);return{'ok':!![],'data':{'appCode':_0x308ee2[_0x220d89(0x1e8)],'source':_0x220d89(0x1f3),..._0x3421c7['scope']===_0x220d89(0x200)?{'installScope':_0x3421c7[_0x220d89(0x1f9)]}:{},'scope':_0x5c118c,'total':_0x2b8dc0[_0x220d89(0x1ef)],'personal':_0x506c24[_0x220d89(0x1fb)]['length'],'company':_0x506c24[_0x220d89(0x1fd)][_0x220d89(0x1ef)],'items':_0x2b8dc0[_0x220d89(0x1ee)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x506c24[_0x220d89(0x1fb)][_0x220d89(0x1ee)](summarizeLocalRuntimeSkill),'company':_0x506c24[_0x220d89(0x1fd)][_0x220d89(0x1ee)](summarizeLocalRuntimeSkill)}},'message':_0x220d89(0x1fe)+_0x2b8dc0[_0x220d89(0x1ef)]+_0x220d89(0x1f6)};}const {listRuntimeSkills:_0x2abdb3}=await import(_0x220d89(0x1fa)),_0xfe03e3=await _0x2abdb3({'appCode':_0x308ee2[_0x220d89(0x1e8)],'scope':listScopeToRemoteScope(_0x5c118c),'code':_0x135296[_0x220d89(0x1fc)]()||undefined}),_0xffca76=shouldListScope(_0x5c118c,_0x220d89(0x1fb))?_0xfe03e3[_0x220d89(0x1fb)]??[]:[],_0x390b2d=shouldListScope(_0x5c118c,'company')?_0xfe03e3[_0x220d89(0x1fd)]??[]:[],_0x41300c=[..._0xffca76,..._0x390b2d];return{'ok':!![],'data':{'appCode':_0x308ee2[_0x220d89(0x1e8)],'source':_0x220d89(0x202),'scope':_0x5c118c,'total':_0x41300c[_0x220d89(0x1ef)],'personal':_0xffca76[_0x220d89(0x1ef)],'company':_0x390b2d[_0x220d89(0x1ef)],'items':_0x41300c[_0x220d89(0x1ee)](summarizeRuntimeSkill),'skills':{'personal':_0xffca76[_0x220d89(0x1ee)](summarizeRuntimeSkill),'company':_0x390b2d[_0x220d89(0x1ee)](summarizeRuntimeSkill)}},'message':_0x220d89(0x1fe)+_0x41300c[_0x220d89(0x1ef)]+'\x20remote\x20Skill(s).'};}};function groupLocalRuntimeSkills(_0x5495df){const _0x1fcdee=a66_0xad40;return{'personal':_0x5495df['filter'](_0x27a545=>_0x27a545[_0x1fcdee(0x1f9)]===_0x1fcdee(0x1fb)),'company':_0x5495df[_0x1fcdee(0x1ea)](_0x397a0a=>_0x397a0a[_0x1fcdee(0x1f9)]===_0x1fcdee(0x1fd)),'builtin':_0x5495df[_0x1fcdee(0x1ea)](_0x232a19=>_0x232a19[_0x1fcdee(0x1f9)]==='builtin')};}
|