@lovrabet/lovrabet-cli 2.3.2-beta.1 → 2.3.2-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/init.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/domain-config.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/region.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/kb-search-client.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/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.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/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.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/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 +2 -1
- package/skills/lovrabet/SKILL.md +1 -1
- package/skills/lovrabet.manifest.json +3 -3
- package/lib/utils/platform.d.ts +0 -17
- package/lib/utils/platform.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a57_0x632e26=a57_0x5a78;(function(_0x4e3dd5,_0x58485b){const _0x2ff503=a57_0x5a78,_0x37e9b8=_0x4e3dd5();while(!![]){try{const _0x5b4f06=-parseInt(_0x2ff503(0xbb))/0x1*(parseInt(_0x2ff503(0xb2))/0x2)+parseInt(_0x2ff503(0xbd))/0x3+parseInt(_0x2ff503(0xad))/0x4+parseInt(_0x2ff503(0xaf))/0x5+-parseInt(_0x2ff503(0xc1))/0x6*(parseInt(_0x2ff503(0xb1))/0x7)+-parseInt(_0x2ff503(0xb6))/0x8*(parseInt(_0x2ff503(0xbc))/0x9)+-parseInt(_0x2ff503(0xb0))/0xa*(-parseInt(_0x2ff503(0xc3))/0xb);if(_0x5b4f06===_0x58485b)break;else _0x37e9b8['push'](_0x37e9b8['shift']());}catch(_0x1060c4){_0x37e9b8['push'](_0x37e9b8['shift']());}}}(a57_0x2dfa,0x63359));function a57_0x5a78(_0x57e143,_0x2275c7){_0x57e143=_0x57e143-0xab;const _0x2dfa73=a57_0x2dfa();let _0x5a78d7=_0x2dfa73[_0x57e143];return _0x5a78d7;}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x2dfa(){const _0x567264=['appCode','319mKLJsk','build','before','warnings','after','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','1090384WPhurO','POST','3840215LrYTbW','178340HegWaI','21eXpaXi','12776LkhnvH','user-remove','roleList','/client/permit/user-role/update-user-list','944184cULuRn','role','shouldWrite','body','userId','4ArZrTF','54NlsXxB','820566NOVdBP','Preview:\x20remove\x20runtime\x20role\x20member','description','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','1382592LMvYcC'];a57_0x2dfa=function(){return _0x567264;};return a57_0x2dfa();}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a57_0x632e26(0xb7),'command':a57_0x632e26(0xb3),'description':a57_0x632e26(0xac),'risk':'high-risk-write','confirmationDescription':a57_0x632e26(0xc0),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x5d67eb){const _0x3e301e=a57_0x632e26,_0x173c13=await prepareRuntimeMemberMutation(_0x5d67eb,_0x3e301e(0xb3));return dryRun(_0x3e301e(0xae),_0x3e301e(0xb5))[_0x3e301e(0xb9)]({'appCode':_0x5d67eb[_0x3e301e(0xc2)],'roleList':_0x173c13['roleList']})[_0x3e301e(0xbf)](_0x173c13[_0x3e301e(0xb8)]?_0x3e301e(0xbe):_0x173c13['warnings'][0x0])[_0x3e301e(0xc4)]();},async 'execute'(_0x2f58e9){const _0x5c7f05=a57_0x632e26,_0x3148ad=await prepareRuntimeMemberMutation(_0x2f58e9,_0x5c7f05(0xb3));return _0x3148ad[_0x5c7f05(0xb8)]&&await updateRuntimeRoleUsers(_0x2f58e9[_0x5c7f05(0xc2)],_0x3148ad[_0x5c7f05(0xb4)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5c7f05(0xb3),{'roleId':_0x3148ad['role']['id'],'userId':_0x3148ad[_0x5c7f05(0xba)]},_0x3148ad[_0x5c7f05(0xc5)],_0x3148ad[_0x5c7f05(0xab)],{'method':_0x5c7f05(0xae),'path':'/client/permit/user-role/update-user-list'},_0x3148ad[_0x5c7f05(0xc6)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a58_0x3b2c06=a58_0x38db;(function(_0x794a89,_0x4da6f1){const _0x28b0b6=a58_0x38db,_0x2b4dd3=_0x794a89();while(!![]){try{const _0x5ceeee=-parseInt(_0x28b0b6(0x15b))/0x1+parseInt(_0x28b0b6(0x11b))/0x2+-parseInt(_0x28b0b6(0x12e))/0x3*(-parseInt(_0x28b0b6(0x12f))/0x4)+parseInt(_0x28b0b6(0x126))/0x5*(-parseInt(_0x28b0b6(0x151))/0x6)+parseInt(_0x28b0b6(0x153))/0x7*(-parseInt(_0x28b0b6(0x132))/0x8)+parseInt(_0x28b0b6(0x12c))/0x9+-parseInt(_0x28b0b6(0x14f))/0xa;if(_0x5ceeee===_0x4da6f1)break;else _0x2b4dd3['push'](_0x2b4dd3['shift']());}catch(_0x37acd9){_0x2b4dd3['push'](_0x2b4dd3['shift']());}}}(a58_0x244f,0x6657c));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';function a58_0x244f(){const _0x5e5c10=['UTC','7iNeryL','length','scheduleId','create','build','limit','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Deleted\x20schedule\x20','782967IBEepa','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','prompt','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','--prompt\x20must\x20not\x20be\x20blank.','\x20immediately','trim','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','scheduled-at','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','ONCE','1401294ynmMOK','deepseek-v4-flash-0731','high-risk-write','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','Preview:\x20delete\x20schedule\x20','taskId','run','Preview:\x20run\x20schedule\x20','title','CRON','POST','130gPTadw','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','appCode','/run','Schedule\x20input\x20is\x20valid','validation','6965487vzwCob','cron','143061vpvENW','68oNNBhZ','kind','DELETE','876952HLNoUg','Schedule\x20title','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Schedule\x20UUID','deepseek-v4-pro-0813','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Queued\x20Task\x20','schedule','Created\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','description','cursor','\x20schedule\x20','/schedules','delete','num','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Preview:\x20create\x20an\x20Agent\x20schedule','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','string','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','--title\x20must\x20not\x20be\x20blank.','validate','list','kimi/k3','str','detail','read','body','9532850gBZogH','schedule-id','4662glKrkB'];a58_0x244f=function(){return _0x5e5c10;};return a58_0x244f();}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':a58_0x3b2c06(0x145),'required':!![],'enum':[a58_0x3b2c06(0x124),a58_0x3b2c06(0x11a)],'description':a58_0x3b2c06(0x142)},CRON_FLAG={'name':a58_0x3b2c06(0x12d),'type':a58_0x3b2c06(0x145),'description':a58_0x3b2c06(0x116)},SCHEDULED_AT_FLAG={'name':a58_0x3b2c06(0x117),'type':a58_0x3b2c06(0x145),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x3b2c06(0x123),'type':'string','required':!![],'description':a58_0x3b2c06(0x133)},PROMPT_FLAG={'name':a58_0x3b2c06(0x111),'type':a58_0x3b2c06(0x145),'required':!![],'description':a58_0x3b2c06(0x127)},MODEL_FLAG={'name':'model','type':a58_0x3b2c06(0x145),'enum':[a58_0x3b2c06(0x14a),a58_0x3b2c06(0x11c),a58_0x3b2c06(0x136)],'default':'deepseek-v4-flash-0731','description':a58_0x3b2c06(0x110)},SCHEDULE_ID_FLAG={'name':a58_0x3b2c06(0x150),'type':a58_0x3b2c06(0x145),'required':!![],'description':a58_0x3b2c06(0x135),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x3b2c06(0x159)}},LIMIT_FLAG={'name':'limit','type':'number','default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x3b2c06(0x13d),'type':a58_0x3b2c06(0x145),'description':a58_0x3b2c06(0x13b)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x49b075){const _0x110445=a58_0x3b2c06,_0x484964=_0x49b075['str'](_0x110445(0x130)),_0x5ddb6a=_0x49b075[_0x110445(0x14b)]('title')['trim'](),_0x471ff2=_0x49b075['str']('prompt')['trim'](),_0x412fa7=_0x49b075[_0x110445(0x14b)]('model'),_0x53c6c4=_0x49b075['str'](_0x110445(0x12d)),_0x5a0a93=_0x49b075[_0x110445(0x14b)]('scheduled-at');if(!_0x5ddb6a)throw CliErrors[_0x110445(0x12b)](_0x110445(0x147));if(!_0x471ff2)throw CliErrors[_0x110445(0x12b)](_0x110445(0x113));if(_0x484964===_0x110445(0x124)){if(!_0x53c6c4||_0x5a0a93)throw CliErrors[_0x110445(0x12b)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x484964,'timezone':_0x110445(0x152),'cron':_0x53c6c4,'title':_0x5ddb6a,'prompt':_0x471ff2,'model':_0x412fa7};}if(_0x484964===_0x110445(0x11a)){if(!_0x5a0a93||_0x53c6c4)throw CliErrors['validation'](_0x110445(0x146));return{'kind':_0x484964,'timezone':_0x110445(0x152),'scheduledAt':_0x5a0a93,'title':_0x5ddb6a,'prompt':_0x471ff2,'model':_0x412fa7};}throw CliErrors['validation'](_0x110445(0x11e));}function a58_0x38db(_0x3eeb99,_0x239af7){_0x3eeb99=_0x3eeb99-0x110;const _0x244f1b=a58_0x244f();let _0x38db0e=_0x244f1b[_0x3eeb99];return _0x38db0e;}function scheduleCollectionPath(_0x4e891c){const _0x1ed1d3=a58_0x3b2c06;return'/api/harness/apps/'+encodeURIComponent(_0x4e891c)+_0x1ed1d3(0x13f);}function scheduleItemPath(_0x1a26bb,_0x5257ed){return scheduleCollectionPath(_0x1a26bb)+'/'+encodeURIComponent(_0x5257ed);}const scheduleValidate={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x148),'description':a58_0x3b2c06(0x137),'risk':a58_0x3b2c06(0x14d),'flags':INPUT_FLAGS,async 'validate'(_0x1f543a){readScheduleInput(_0x1f543a);},async 'execute'(_0x585abc){const _0x26a98d=a58_0x3b2c06,_0x3f3d78=readScheduleInput(_0x585abc),_0x193677=await validateRuntimeSchedule(_0x585abc[_0x26a98d(0x128)],_0x3f3d78);return{'ok':!![],'data':_0x193677,'message':_0x26a98d(0x12a)};}},scheduleCreate={'service':'schedule','command':a58_0x3b2c06(0x156),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a58_0x3b2c06(0x11d),'confirmationDescription':a58_0x3b2c06(0x134),'flags':INPUT_FLAGS,async 'validate'(_0x4344e1){readScheduleInput(_0x4344e1);},async 'execute'(_0x18f179){const _0x44dc21=a58_0x3b2c06,_0xb333b0=readScheduleInput(_0x18f179),_0x85b7e7=await validateRuntimeSchedule(_0x18f179['appCode'],_0xb333b0),_0x33e65e=await createRuntimeSchedule(_0x18f179[_0x44dc21(0x128)],_0x85b7e7);return{'ok':!![],'data':_0x33e65e,'message':_0x44dc21(0x13a)+_0x33e65e[_0x44dc21(0x130)]+_0x44dc21(0x13e)+_0x33e65e[_0x44dc21(0x155)]};},async 'dryRun'(_0xe81603){const _0x3904e6=a58_0x3b2c06,_0x3c044d=readScheduleInput(_0xe81603);return dryRun(_0x3904e6(0x125),scheduleCollectionPath(_0xe81603[_0x3904e6(0x128)]))[_0x3904e6(0x14e)](_0x3c044d)['description'](_0x3904e6(0x143))[_0x3904e6(0x157)]();}},scheduleList={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x149),'description':a58_0x3b2c06(0x118),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x5b41a8){const _0x369d16=a58_0x3b2c06,_0x459cd4=_0x5b41a8[_0x369d16(0x141)](_0x369d16(0x158));if(!Number['isSafeInteger'](_0x459cd4)||_0x459cd4<0x1||_0x459cd4>0x64)throw CliErrors[_0x369d16(0x12b)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x3b7f14=_0x5b41a8[_0x369d16(0x14b)](_0x369d16(0x13d));if(_0x3b7f14&&(_0x3b7f14[_0x369d16(0x154)]>0x400||_0x3b7f14[_0x369d16(0x115)]()!==_0x3b7f14))throw CliErrors[_0x369d16(0x12b)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x432b71){const _0x8e8fff=a58_0x3b2c06,_0x4e87f7=_0x432b71[_0x8e8fff(0x14b)]('cursor'),_0x2c671b=await listRuntimeSchedules(_0x432b71[_0x8e8fff(0x128)],{'kind':_0x432b71[_0x8e8fff(0x14b)]('kind'),'limit':_0x432b71[_0x8e8fff(0x141)](_0x8e8fff(0x158)),..._0x4e87f7?{'cursor':_0x4e87f7}:{}});return{'ok':!![],'data':_0x2c671b};}},scheduleDetail={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x14c),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x3b2c06(0x14d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x54f113){const _0x36724a=a58_0x3b2c06,_0x2fe2c4=await getRuntimeSchedule(_0x54f113[_0x36724a(0x128)],_0x54f113[_0x36724a(0x14b)]('schedule-id'));return{'ok':!![],'data':_0x2fe2c4};}},scheduleRun={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x121),'description':a58_0x3b2c06(0x144),'risk':a58_0x3b2c06(0x11d),'confirmationDescription':a58_0x3b2c06(0x119),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5b426d){const _0x5cc0a1=a58_0x3b2c06,_0x3cab74=_0x5b426d['str'](_0x5cc0a1(0x150)),_0x4a7303=await runRuntimeSchedule(_0x5b426d[_0x5cc0a1(0x128)],_0x3cab74);return{'ok':!![],'data':_0x4a7303,'message':_0x5cc0a1(0x138)+_0x4a7303[_0x5cc0a1(0x120)]+'\x20from\x20schedule\x20'+_0x3cab74};},async 'dryRun'(_0x206d33){const _0x40a586=a58_0x3b2c06,_0xc75d26=_0x206d33[_0x40a586(0x14b)](_0x40a586(0x150));return dryRun(_0x40a586(0x125),scheduleItemPath(_0x206d33[_0x40a586(0x128)],_0xc75d26)+_0x40a586(0x129))[_0x40a586(0x13c)](_0x40a586(0x122)+_0xc75d26+_0x40a586(0x114))[_0x40a586(0x157)]();}},scheduleDelete={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x140),'description':a58_0x3b2c06(0x112),'risk':a58_0x3b2c06(0x11d),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2cbdd3){const _0x44a27d=a58_0x3b2c06,_0x438814=_0x2cbdd3[_0x44a27d(0x14b)](_0x44a27d(0x150)),_0x456d81=await deleteRuntimeSchedule(_0x2cbdd3[_0x44a27d(0x128)],_0x438814);return{'ok':!![],'data':_0x456d81,'message':_0x44a27d(0x15a)+_0x438814};},async 'dryRun'(_0x236e64){const _0x293eb4=a58_0x3b2c06,_0x433a56=_0x236e64[_0x293eb4(0x14b)](_0x293eb4(0x150));return dryRun(_0x293eb4(0x131),scheduleItemPath(_0x236e64[_0x293eb4(0x128)],_0x433a56))[_0x293eb4(0x13c)](_0x293eb4(0x11f)+_0x433a56)[_0x293eb4(0x157)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a58_0x8ea6ef=a58_0x39bc;(function(_0x5df6b3,_0x3a2cff){const _0x56c18c=a58_0x39bc,_0x2e249c=_0x5df6b3();while(!![]){try{const _0x3021c3=parseInt(_0x56c18c(0x164))/0x1+-parseInt(_0x56c18c(0x1a2))/0x2+parseInt(_0x56c18c(0x199))/0x3+-parseInt(_0x56c18c(0x178))/0x4+-parseInt(_0x56c18c(0x1a0))/0x5*(parseInt(_0x56c18c(0x197))/0x6)+-parseInt(_0x56c18c(0x19f))/0x7+parseInt(_0x56c18c(0x19b))/0x8*(parseInt(_0x56c18c(0x15d))/0x9);if(_0x3021c3===_0x3a2cff)break;else _0x2e249c['push'](_0x2e249c['shift']());}catch(_0x111262){_0x2e249c['push'](_0x2e249c['shift']());}}}(a58_0x1825,0x55506));function a58_0x1825(){const _0x2ee764=['detail','Preview:\x20run\x20schedule\x20','18kfkJfL','Page\x20size\x20from\x201\x20to\x20100','990093PDAVjS','cursor','2715112Onpppv','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','1389878YYQHcS','797315kVLKmn','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','228230PDSXAC','model','run','POST','high-risk-write','9YrDFOJ','Deleted\x20schedule\x20','read','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','/run','UTC','591721VrCNqm','isSafeInteger','/schedules','taskId','str','Show\x20one\x20schedule\x20by\x20schedule\x20ID','delete','Created\x20','appCode','prompt','cron','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','CRON','create','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','description','validation','Preview:\x20delete\x20schedule\x20','schedule-id','kind','482548UOEZTK','scheduleId','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','Queued\x20Task\x20','ONCE','limit','build','Schedule\x20input\x20is\x20valid','schedule','body','trim','validate','Preview:\x20create\x20an\x20Agent\x20schedule','/api/harness/apps/','Schedule\x20UUID','\x20from\x20schedule\x20','\x20schedule\x20','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','deepseek-v4-flash-0731','scheduled-at','string','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','DELETE','deepseek-v4-pro-0813','--title\x20must\x20not\x20be\x20blank.','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','number','Schedule\x20kind:\x20CRON\x20or\x20ONCE'];a58_0x1825=function(){return _0x2ee764;};return a58_0x1825();}import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a58_0x39bc(_0x585bb5,_0x2bf706){_0x585bb5=_0x585bb5-0x15b;const _0x1825f4=a58_0x1825();let _0x39bc5e=_0x1825f4[_0x585bb5];return _0x39bc5e;}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':a58_0x8ea6ef(0x177),'type':a58_0x8ea6ef(0x18c),'required':!![],'enum':['CRON',a58_0x8ea6ef(0x17c)],'description':a58_0x8ea6ef(0x194)},CRON_FLAG={'name':a58_0x8ea6ef(0x16e),'type':a58_0x8ea6ef(0x18c),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x8ea6ef(0x18b),'type':a58_0x8ea6ef(0x18c),'description':a58_0x8ea6ef(0x189)},TITLE_FLAG={'name':'title','type':a58_0x8ea6ef(0x18c),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':a58_0x8ea6ef(0x16d),'type':'string','required':!![],'description':a58_0x8ea6ef(0x18e)},MODEL_FLAG={'name':a58_0x8ea6ef(0x1a3),'type':a58_0x8ea6ef(0x18c),'enum':['kimi/k3',a58_0x8ea6ef(0x18a),a58_0x8ea6ef(0x190)],'default':a58_0x8ea6ef(0x18a),'description':a58_0x8ea6ef(0x19d)},SCHEDULE_ID_FLAG={'name':a58_0x8ea6ef(0x176),'type':'string','required':!![],'description':a58_0x8ea6ef(0x186),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x8ea6ef(0x19c)}},LIMIT_FLAG={'name':a58_0x8ea6ef(0x17d),'type':a58_0x8ea6ef(0x193),'default':0x14,'description':a58_0x8ea6ef(0x198)},CURSOR_FLAG={'name':a58_0x8ea6ef(0x19a),'type':a58_0x8ea6ef(0x18c),'description':a58_0x8ea6ef(0x160)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3e8a27){const _0xf1ff07=a58_0x8ea6ef,_0x36beb4=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x177)),_0x164a65=_0x3e8a27['str']('title')[_0xf1ff07(0x182)](),_0x142347=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x16d))[_0xf1ff07(0x182)](),_0x1c5d24=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x1a3)),_0x10b0f2=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x16e)),_0x293976=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x18b));if(!_0x164a65)throw CliErrors[_0xf1ff07(0x174)](_0xf1ff07(0x191));if(!_0x142347)throw CliErrors[_0xf1ff07(0x174)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x36beb4===_0xf1ff07(0x170)){if(!_0x10b0f2||_0x293976)throw CliErrors['validation'](_0xf1ff07(0x172));return{'kind':_0x36beb4,'timezone':'UTC','cron':_0x10b0f2,'title':_0x164a65,'prompt':_0x142347,'model':_0x1c5d24};}if(_0x36beb4===_0xf1ff07(0x17c)){if(!_0x293976||_0x10b0f2)throw CliErrors['validation'](_0xf1ff07(0x192));return{'kind':_0x36beb4,'timezone':_0xf1ff07(0x163),'scheduledAt':_0x293976,'title':_0x164a65,'prompt':_0x142347,'model':_0x1c5d24};}throw CliErrors[_0xf1ff07(0x174)](_0xf1ff07(0x17a));}function scheduleCollectionPath(_0x4589be){const _0x1a8145=a58_0x8ea6ef;return _0x1a8145(0x185)+encodeURIComponent(_0x4589be)+_0x1a8145(0x166);}function scheduleItemPath(_0x2adb6d,_0x1034b4){return scheduleCollectionPath(_0x2adb6d)+'/'+encodeURIComponent(_0x1034b4);}const scheduleValidate={'service':'schedule','command':a58_0x8ea6ef(0x183),'description':a58_0x8ea6ef(0x18d),'risk':a58_0x8ea6ef(0x15f),'flags':INPUT_FLAGS,async 'validate'(_0x5c7d29){readScheduleInput(_0x5c7d29);},async 'execute'(_0x340121){const _0x538964=a58_0x8ea6ef,_0x3fe397=readScheduleInput(_0x340121),_0x536e5f=await validateRuntimeSchedule(_0x340121[_0x538964(0x16c)],_0x3fe397);return{'ok':!![],'data':_0x536e5f,'message':_0x538964(0x17f)};}},scheduleCreate={'service':a58_0x8ea6ef(0x180),'command':a58_0x8ea6ef(0x171),'description':a58_0x8ea6ef(0x161),'risk':a58_0x8ea6ef(0x15c),'confirmationDescription':a58_0x8ea6ef(0x19e),'flags':INPUT_FLAGS,async 'validate'(_0x148cfd){readScheduleInput(_0x148cfd);},async 'execute'(_0x394553){const _0x536556=a58_0x8ea6ef,_0x13c2b8=readScheduleInput(_0x394553),_0x35d641=await validateRuntimeSchedule(_0x394553[_0x536556(0x16c)],_0x13c2b8),_0x4088d5=await createRuntimeSchedule(_0x394553[_0x536556(0x16c)],_0x35d641);return{'ok':!![],'data':_0x4088d5,'message':_0x536556(0x16b)+_0x4088d5[_0x536556(0x177)]+_0x536556(0x188)+_0x4088d5[_0x536556(0x179)]};},async 'dryRun'(_0xfa1242){const _0x3e51f5=a58_0x8ea6ef,_0x41d856=readScheduleInput(_0xfa1242);return dryRun(_0x3e51f5(0x15b),scheduleCollectionPath(_0xfa1242['appCode']))[_0x3e51f5(0x181)](_0x41d856)[_0x3e51f5(0x173)](_0x3e51f5(0x184))['build']();}},scheduleList={'service':a58_0x8ea6ef(0x180),'command':'list','description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a58_0x8ea6ef(0x15f),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x5e308c){const _0x346748=a58_0x8ea6ef,_0x21a610=_0x5e308c['num'](_0x346748(0x17d));if(!Number[_0x346748(0x165)](_0x21a610)||_0x21a610<0x1||_0x21a610>0x64)throw CliErrors[_0x346748(0x174)](_0x346748(0x16f));const _0xc7aaa3=_0x5e308c[_0x346748(0x168)]('cursor');if(_0xc7aaa3&&(_0xc7aaa3['length']>0x400||_0xc7aaa3[_0x346748(0x182)]()!==_0xc7aaa3))throw CliErrors[_0x346748(0x174)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x4adb71){const _0x456da7=a58_0x8ea6ef,_0x38cdd3=_0x4adb71[_0x456da7(0x168)](_0x456da7(0x19a)),_0x57e506=await listRuntimeSchedules(_0x4adb71[_0x456da7(0x16c)],{'kind':_0x4adb71[_0x456da7(0x168)](_0x456da7(0x177)),'limit':_0x4adb71['num'](_0x456da7(0x17d)),..._0x38cdd3?{'cursor':_0x38cdd3}:{}});return{'ok':!![],'data':_0x57e506};}},scheduleDetail={'service':'schedule','command':a58_0x8ea6ef(0x195),'description':a58_0x8ea6ef(0x169),'risk':a58_0x8ea6ef(0x15f),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2d3288){const _0x53fa3c=a58_0x8ea6ef,_0x469ca3=await getRuntimeSchedule(_0x2d3288['appCode'],_0x2d3288[_0x53fa3c(0x168)]('schedule-id'));return{'ok':!![],'data':_0x469ca3};}},scheduleRun={'service':a58_0x8ea6ef(0x180),'command':a58_0x8ea6ef(0x1a4),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0x8ea6ef(0x15c),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x35dec0){const _0x513917=a58_0x8ea6ef,_0x1e8c8b=_0x35dec0[_0x513917(0x168)]('schedule-id'),_0x40e478=await runRuntimeSchedule(_0x35dec0[_0x513917(0x16c)],_0x1e8c8b);return{'ok':!![],'data':_0x40e478,'message':_0x513917(0x17b)+_0x40e478[_0x513917(0x167)]+_0x513917(0x187)+_0x1e8c8b};},async 'dryRun'(_0x27df8f){const _0x3e642e=a58_0x8ea6ef,_0x495251=_0x27df8f[_0x3e642e(0x168)]('schedule-id');return dryRun('POST',scheduleItemPath(_0x27df8f[_0x3e642e(0x16c)],_0x495251)+_0x3e642e(0x162))[_0x3e642e(0x173)](_0x3e642e(0x196)+_0x495251+'\x20immediately')[_0x3e642e(0x17e)]();}},scheduleDelete={'service':a58_0x8ea6ef(0x180),'command':a58_0x8ea6ef(0x16a),'description':a58_0x8ea6ef(0x1a1),'risk':'high-risk-write','confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xee65e){const _0x84bde2=a58_0x8ea6ef,_0x5000df=_0xee65e['str'](_0x84bde2(0x176)),_0x4f497d=await deleteRuntimeSchedule(_0xee65e[_0x84bde2(0x16c)],_0x5000df);return{'ok':!![],'data':_0x4f497d,'message':_0x84bde2(0x15e)+_0x5000df};},async 'dryRun'(_0x4606ef){const _0xaa0736=a58_0x8ea6ef,_0x39f3c8=_0x4606ef['str']('schedule-id');return dryRun(_0xaa0736(0x18f),scheduleItemPath(_0x4606ef['appCode'],_0x39f3c8))['description'](_0xaa0736(0x175)+_0x39f3c8)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a59_0x4c3364=a59_0x59e8;function a59_0x14f0(){const _0x3021d7=['Export\x20machine-readable\x20command\x20schema\x20(JSON)','254042CyeWlW','1569325aBKMNo','184dHQHFq','2290878fFnCyN','336447NLhRhU','export','2hwPIeD','2206773SrJazw','65737qVqnYQ','schema','535236tZaDFV'];a59_0x14f0=function(){return _0x3021d7;};return a59_0x14f0();}function a59_0x59e8(_0x3b404f,_0x2750c2){_0x3b404f=_0x3b404f-0xb9;const _0x14f06e=a59_0x14f0();let _0x59e85f=_0x14f06e[_0x3b404f];return _0x59e85f;}(function(_0x24d296,_0x3abd57){const _0x24ce12=a59_0x59e8,_0x11f803=_0x24d296();while(!![]){try{const _0x50fb44=-parseInt(_0x24ce12(0xc3))/0x1*(parseInt(_0x24ce12(0xbd))/0x2)+parseInt(_0x24ce12(0xc1))/0x3+-parseInt(_0x24ce12(0xbb))/0x4+-parseInt(_0x24ce12(0xbe))/0x5+parseInt(_0x24ce12(0xc0))/0x6+-parseInt(_0x24ce12(0xb9))/0x7*(-parseInt(_0x24ce12(0xbf))/0x8)+parseInt(_0x24ce12(0xc4))/0x9;if(_0x50fb44===_0x3abd57)break;else _0x11f803['push'](_0x11f803['shift']());}catch(_0xd95391){_0x11f803['push'](_0x11f803['shift']());}}}(a59_0x14f0,0x3ddfc));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1b7e81){const _0x85cfc8=await buildSchemaPayload();return{'ok':!![],'data':_0x85cfc8};}export const schemaDefinition={'service':a59_0x4c3364(0xba),'command':a59_0x4c3364(0xc2),'description':a59_0x4c3364(0xbc),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x2eb26d,_0x7e024a){const _0x2c18b9=a60_0x49db,_0xe3543f=_0x2eb26d();while(!![]){try{const _0xd805b0=parseInt(_0x2c18b9(0x163))/0x1*(parseInt(_0x2c18b9(0x13a))/0x2)+parseInt(_0x2c18b9(0x12a))/0x3*(-parseInt(_0x2c18b9(0x150))/0x4)+parseInt(_0x2c18b9(0x12e))/0x5+parseInt(_0x2c18b9(0x146))/0x6+-parseInt(_0x2c18b9(0x145))/0x7*(parseInt(_0x2c18b9(0x138))/0x8)+-parseInt(_0x2c18b9(0x170))/0x9*(-parseInt(_0x2c18b9(0x15e))/0xa)+parseInt(_0x2c18b9(0x15a))/0xb*(-parseInt(_0x2c18b9(0x15c))/0xc);if(_0xd805b0===_0x7e024a)break;else _0xe3543f['push'](_0xe3543f['shift']());}catch(_0x46ed90){_0xe3543f['push'](_0xe3543f['shift']());}}}(a60_0x17e4,0x63be9));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(_0x9d8fc8,_0x19a47f){const _0x107111=a60_0x49db,_0x1d901e=listLocalServiceTrees();let _0x1e2b97;for(const _0x24d5c4 of _0x1d901e){const _0x55afcf=matchServiceTreeCommand(_0x24d5c4,_0x9d8fc8);if(!_0x55afcf)continue;(!_0x1e2b97||_0x55afcf[_0x107111(0x14e)][_0x107111(0x148)][_0x107111(0x13e)]>_0x1e2b97[_0x107111(0x14e)][_0x107111(0x148)]['length'])&&(_0x1e2b97={'tree':_0x24d5c4,'command':_0x55afcf[_0x107111(0x14e)],'remainingArgs':_0x55afcf[_0x107111(0x12d)]});}if(!_0x1e2b97)return undefined;const _0x4f1a8e={..._0x19a47f};return applyAppBinding(_0x1e2b97[_0x107111(0x133)],_0x1e2b97[_0x107111(0x14e)],_0x4f1a8e),{'definition':buildDynamicCommandDefinition(_0x1e2b97[_0x107111(0x133)],_0x1e2b97[_0x107111(0x14e)]),'args':_0x1e2b97[_0x107111(0x12d)],'flags':_0x4f1a8e,'tree':_0x1e2b97[_0x107111(0x133)],'command':_0x1e2b97[_0x107111(0x14e)]};}export function generateDynamicServiceHelp(_0x4ca65f){const _0x4b8de3=a60_0x49db,_0x288977=listLocalServiceTrees()[_0x4b8de3(0x16d)](_0x1db919=>_0x1db919[_0x4b8de3(0x16c)][_0x4b8de3(0x169)]===_0x4ca65f);if(!_0x288977)return undefined;const _0x18a082=[CLI_BIN_NAME+'\x20'+_0x4ca65f+_0x4b8de3(0x15d),'',_0x288977[_0x4b8de3(0x16c)][_0x4b8de3(0x13f)]||_0x4ca65f,_0x288977[_0x4b8de3(0x16c)][_0x4b8de3(0x17c)]?'\x20\x20'+_0x288977[_0x4b8de3(0x16c)]['description']:'','',_0x4b8de3(0x13b),..._0x288977[_0x4b8de3(0x186)][_0x4b8de3(0x18e)](_0x14e033=>{const _0x57b7bb=_0x4b8de3,_0xc1c4ea=_0x14e033[_0x57b7bb(0x148)][_0x57b7bb(0x128)](0x1)['join']('\x20'),_0x48a5b3=_0x14e033[_0x57b7bb(0x17e)]===_0x57b7bb(0x14c)?'':'\x20['+_0x14e033[_0x57b7bb(0x17e)]+']';return'\x20\x20'+_0xc1c4ea[_0x57b7bb(0x174)](0x18)+'\x20'+(_0x14e033[_0x57b7bb(0x17c)]||'')+_0x48a5b3;}),'',_0x4b8de3(0x17d)+CLI_BIN_NAME+_0x4b8de3(0x18c)+_0x4ca65f+_0x4b8de3(0x16f)][_0x4b8de3(0x154)](Boolean);return _0x18a082[_0x4b8de3(0x139)]('\x0a');}function a60_0x17e4(){const _0x4734f4=['risk','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20[','dbtableConfig','startsWith','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','validation','app','commands','username','\x20\x20\x20\x20kind:\x20\x20\x20\x20','Run\x20service\x20command\x20','data','cliPath','\x20service\x20detail\x20--service\x20','normalizedManifest','map','\x20completed\x20in\x20','\x20\x20\x20\x20sqlCode:\x20','some','args','slice','fromEntries','78lIfHen','scriptName','tenantCode','remainingArgs','1692935QyBAOR','datatable','\x22\x20in\x20service\x20command\x20','string','push','tree','\x20requires\x20target.sqlCode.','target','Service\x20command\x20','envName','2617304rFEWQJ','join','2AsIJcE','Commands:','Preview\x20dynamic\x20service\x20command:\x20','loginName','length','name','\x20\x20\x20\x20functionName:\x20','boolean','source','bffCode','required','7QwBuzD','1706850IkbrJb','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','fullPath','env','Unknown\x20appRef\x20\x22','sql','read','bffId','command','\x20requires\x20target.functionName.','64588VYcEZW','sqlCode','appBindings','appRef','filter','tableName','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','appcode','nickName','flags','22caOsSd','datasetCode','3833628WHfWdE','\x20<command>\x20[flags]','6699310qqlvAI','json','\x20\x20MAP\x20TO','\x20\x20\x20\x20','\x20->\x20','501483HKWrgP','high-risk-write','SERVICE_TREE','\x20\x20\x20\x20datasetCode:\x20','trim','\x22.\x20','code','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','enum','service','find','mapTo','`\x20to\x20inspect\x20the\x20manifest.','9hjcQJx','type','params','\x20\x20\x20\x20datatable:\x20','padEnd','context.','userName','now','operator','appCode','kind','number','description','Use\x20`'];a60_0x17e4=function(){return _0x4734f4;};return a60_0x17e4();}export function listDynamicServiceEntries(){const _0x319a00=a60_0x49db;return listLocalServices()[_0x319a00(0x18e)](_0x136a8a=>{const _0x403260=_0x319a00,_0x11c17d=_0x136a8a[_0x403260(0x18d)];return{'service':_0x11c17d['service'][_0x403260(0x169)],'label':_0x11c17d[_0x403260(0x16c)][_0x403260(0x13f)]||_0x11c17d[_0x403260(0x16c)]['code'],'commands':_0x11c17d[_0x403260(0x186)][_0x403260(0x18e)](_0x5b891e=>({'command':dynamicCommandName(_0x5b891e),'description':_0x5b891e[_0x403260(0x17c)]||_0x403260(0x189)+_0x5b891e['cliPath'],'tag':riskTag(_0x5b891e['risk'])}))};});}export function getDynamicServiceEntry(_0x2975e6){const _0x217bf7=a60_0x49db;return listDynamicServiceEntries()[_0x217bf7(0x16d)](_0x41efc9=>_0x41efc9[_0x217bf7(0x16c)]===_0x2975e6);}function a60_0x49db(_0x1675c4,_0x23c86){_0x1675c4=_0x1675c4-0x127;const _0x17e406=a60_0x17e4();let _0x49db60=_0x17e406[_0x1675c4];return _0x49db60;}export function listDynamicServiceDefinitions(_0x4cf504){const _0x47fe45=a60_0x49db;return listLocalServiceTrees()[_0x47fe45(0x154)](_0x21b4a6=>!_0x4cf504||_0x21b4a6[_0x47fe45(0x16c)][_0x47fe45(0x169)]===_0x4cf504)['flatMap'](_0x517f35=>_0x517f35[_0x47fe45(0x186)][_0x47fe45(0x18e)](_0x36467f=>buildDynamicCommandDefinition(_0x517f35,_0x36467f)));}export function getDynamicServiceDefinitions(_0x5c2729){const _0x509a1f=a60_0x49db,_0x1f989b=listDynamicServiceDefinitions(_0x5c2729);return _0x1f989b[_0x509a1f(0x13e)]>0x0?_0x1f989b:undefined;}export function findDynamicServiceDefinition(_0x4646e5,_0x5eb367){const _0x15a8d4=a60_0x49db;return listDynamicServiceDefinitions(_0x4646e5)['find'](_0x462663=>_0x462663[_0x15a8d4(0x14e)]===_0x5eb367);}export function buildDynamicCommandDefinition(_0x4e1cef,_0x1e9e08){const _0x195d45=a60_0x49db;return{'service':_0x4e1cef[_0x195d45(0x16c)][_0x195d45(0x169)],'command':dynamicCommandName(_0x1e9e08),'description':_0x1e9e08[_0x195d45(0x17c)]||'Run\x20service\x20command\x20'+_0x1e9e08['cliPath'],'risk':_0x1e9e08[_0x195d45(0x17e)],..._0x1e9e08[_0x195d45(0x17e)]===_0x195d45(0x14c)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1e9e08)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1e9e08[_0x195d45(0x127)][_0x195d45(0x18e)](_0x1654c8=>({'name':_0x1654c8[_0x195d45(0x13f)],'description':_0x1654c8[_0x195d45(0x17c)]||_0x1654c8[_0x195d45(0x13f)],'required':_0x1654c8[_0x195d45(0x144)]})),'flags':_0x1e9e08[_0x195d45(0x159)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1e9e08),async 'dryRun'(_0x307bed){const _0x369c1e=_0x195d45,_0x42f0b7=await compilePlan(_0x1e9e08,_0x307bed);return{'method':_0x369c1e(0x165),'url':_0x1e9e08['cliPath'],'body':{'target':targetPreview(_0x42f0b7),'params':_0x42f0b7['params']},'description':_0x369c1e(0x13c)+_0x1e9e08[_0x369c1e(0x18b)]};},async 'execute'(_0x5b2363){const _0x39047f=_0x195d45,_0x2e3bc2=await compilePlan(_0x1e9e08,_0x5b2363),_0xb4e7ce=Date[_0x39047f(0x177)](),_0xe5b763=await executePlan(_0x2e3bc2,_0x1e9e08,_0x5b2363),_0x56eb6f=Date['now']()-_0xb4e7ce;return{'ok':!![],'data':{'service':_0x4e1cef[_0x39047f(0x16c)],'command':_0x1e9e08[_0x39047f(0x18b)],'target':targetPreview(_0x2e3bc2),'result':_0xe5b763,'elapsed':_0x56eb6f},'message':_0x39047f(0x136)+_0x1e9e08[_0x39047f(0x18b)]+_0x39047f(0x18f)+_0x56eb6f+'ms'};}};}function buildDynamicConfirmationDescription(_0x136e3e){const _0x6d6aef=a60_0x49db,_0xba089c=_0x136e3e[_0x6d6aef(0x17c)]||_0x136e3e[_0x6d6aef(0x18b)],_0x4ef11d=_0x136e3e[_0x6d6aef(0x17e)]===_0x6d6aef(0x164)?_0x6d6aef(0x147):_0x6d6aef(0x156);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0xba089c+_0x6d6aef(0x168)+_0x4ef11d;}function dynamicCommandName(_0x16e745){const _0x41bbfb=a60_0x49db;return _0x16e745[_0x41bbfb(0x148)][_0x41bbfb(0x128)](0x1)['join']('\x20');}function riskTag(_0x4a6947){const _0x16dbef=a60_0x49db;return _0x4a6947===_0x16dbef(0x14c)?'':_0x16dbef(0x180)+_0x4a6947+']';}function flagToCommandFlag(_0x110e7c){const _0x322571=a60_0x49db;return{'name':_0x110e7c['cliName'],'type':_0x110e7c['type']===_0x322571(0x15f)?_0x322571(0x131):_0x110e7c[_0x322571(0x171)],'description':_0x110e7c[_0x322571(0x17c)]||_0x110e7c[_0x322571(0x13f)],'required':_0x110e7c[_0x322571(0x144)],'default':isPrimitiveFlagDefault(_0x110e7c['default'])?_0x110e7c['default']:undefined,'enum':_0x110e7c[_0x322571(0x16b)]};}async function compilePlan(_0x2cd648,_0x582351){const _0x24abac=a60_0x49db;return compileServiceTreeCommand(_0x2cd648,{'flags':_0x582351['rawFlags'],'args':_0x582351[_0x24abac(0x127)],'context':await buildServiceContext(_0x2cd648,_0x582351)});}async function buildServiceContext(_0x855bef,_0x37425c){const _0x3e4484=a60_0x49db,_0x2ddf23={'appCode':_0x37425c[_0x3e4484(0x179)],'env':_0x37425c[_0x3e4484(0x137)],'envName':_0x37425c[_0x3e4484(0x137)]};if(!usesRuntimeContext(_0x855bef))return _0x2ddf23;const _0x30f852=await getLoginUserInfo(),_0x3d71ca=pickFirst(_0x30f852['userId'],_0x30f852['id']);return{..._0x2ddf23,'user':_0x30f852,'userId':_0x3d71ca,'id':_0x30f852['id'],'username':pickFirst(_0x30f852[_0x3e4484(0x187)],_0x30f852[_0x3e4484(0x176)],_0x30f852[_0x3e4484(0x13d)]),'userName':_0x30f852[_0x3e4484(0x176)],'nickname':pickFirst(_0x30f852['nickname'],_0x30f852[_0x3e4484(0x158)]),'nickName':_0x30f852[_0x3e4484(0x158)],'tenantCode':_0x30f852[_0x3e4484(0x12c)],'employeeId':_0x30f852['employeeId']};}function usesRuntimeContext(_0x13750a){const _0xad540d=a60_0x49db;return _0x13750a[_0xad540d(0x16e)][_0xad540d(0x191)](_0x1d85f2=>typeof _0x1d85f2['source']===_0xad540d(0x131)&&(_0x1d85f2[_0xad540d(0x142)][_0xad540d(0x182)](_0xad540d(0x175))||_0x1d85f2[_0xad540d(0x142)][_0xad540d(0x182)]('ctx.')));}function pickFirst(..._0x28c50c){return _0x28c50c['find'](_0x446340=>_0x446340!==undefined&&_0x446340!==null);}async function executePlan(_0x48b21b,_0x2edb39,_0x6c86b1){const _0x572486=a60_0x49db;if(_0x48b21b[_0x572486(0x17a)]===_0x572486(0x18a)){const _0x450132=await resolveDatasetCode(_0x48b21b,_0x2edb39,_0x6c86b1);return executeData(_0x450132,_0x48b21b[_0x572486(0x14e)],_0x48b21b[_0x572486(0x172)]);}if(_0x48b21b[_0x572486(0x17a)]===_0x572486(0x14b)){if(!_0x48b21b[_0x572486(0x151)])throw CliErrors[_0x572486(0x184)](_0x572486(0x136)+_0x2edb39[_0x572486(0x18b)]+_0x572486(0x134));return executeSdkSql(_0x48b21b[_0x572486(0x151)],normalizeScalarParams(_0x48b21b[_0x572486(0x172)]));}if(_0x48b21b[_0x572486(0x17a)]==='bff'){const _0x445c1e=_0x48b21b[_0x572486(0x12b)]||_0x48b21b[_0x572486(0x143)]||(_0x48b21b[_0x572486(0x14d)]==null?'':String(_0x48b21b['bffId']));if(!_0x445c1e)throw CliErrors['validation']('Service\x20command\x20'+_0x2edb39['cliPath']+_0x572486(0x14f));return executeSdkBff(_0x445c1e,_0x48b21b[_0x572486(0x172)]);}throw CliErrors[_0x572486(0x184)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x48b21b[_0x572486(0x17a)]);}async function resolveDatasetCode(_0x41b87f,_0x13c4de,_0x1a128b){const _0x2278da=a60_0x49db;if(_0x41b87f[_0x2278da(0x15b)])return _0x41b87f[_0x2278da(0x15b)];if(!_0x41b87f[_0x2278da(0x12f)])throw CliErrors[_0x2278da(0x184)](_0x2278da(0x136)+_0x13c4de[_0x2278da(0x18b)]+_0x2278da(0x183));const _0x2e1674=await listDatasets(_0x1a128b['appCode']),_0x3e900e=_0x2e1674[_0x2278da(0x16d)](_0x56a73e=>_0x56a73e[_0x2278da(0x181)]?.[_0x2278da(0x155)]===_0x41b87f[_0x2278da(0x12f)]);if(!_0x3e900e?.['code'])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x41b87f['datatable']+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x1a128b[_0x2278da(0x179)]+'.',_0x2278da(0x17f));return _0x3e900e[_0x2278da(0x169)];}function applyAppBinding(_0x43a463,_0x3545dc,_0x1aea50){const _0x1601bc=a60_0x49db,_0xbe8346=_0x3545dc['target'][_0x1601bc(0x153)];if(!_0xbe8346)return;const _0x13e64b=_0x43a463[_0x1601bc(0x152)][_0xbe8346];if(!_0x13e64b)throw CliErrors[_0x1601bc(0x184)](_0x1601bc(0x14a)+_0xbe8346+_0x1601bc(0x130)+_0x3545dc[_0x1601bc(0x18b)]+'.',_0x1601bc(0x16a));const _0x2f467a=_0x13e64b[_0x1601bc(0x157)]||_0x13e64b[_0x1601bc(0x179)];_0x2f467a&&!hasText(_0x1aea50[_0x1601bc(0x157)])&&(_0x1aea50[_0x1601bc(0x157)]=_0x2f467a),_0x13e64b[_0x1601bc(0x185)]&&!hasText(_0x1aea50[_0x1601bc(0x185)])&&!hasText(_0x1aea50[_0x1601bc(0x157)])&&(_0x1aea50[_0x1601bc(0x185)]=_0x13e64b[_0x1601bc(0x185)]),_0x13e64b['env']&&!hasText(_0x1aea50['env'])&&(_0x1aea50['env']=_0x13e64b[_0x1601bc(0x149)]);}function renderDynamicCommandHelp(_0x832cf2){const _0x485e21=a60_0x49db,_0x52e83a=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x485e21(0x188)+_0x832cf2['target'][_0x485e21(0x17a)],'\x20\x20\x20\x20command:\x20'+_0x832cf2[_0x485e21(0x135)]['command']];if(_0x832cf2[_0x485e21(0x135)][_0x485e21(0x15b)])_0x52e83a['push'](_0x485e21(0x166)+_0x832cf2['target'][_0x485e21(0x15b)]);if(_0x832cf2[_0x485e21(0x135)]['datatable'])_0x52e83a['push'](_0x485e21(0x173)+_0x832cf2[_0x485e21(0x135)][_0x485e21(0x12f)]);if(_0x832cf2['target'][_0x485e21(0x151)])_0x52e83a[_0x485e21(0x132)](_0x485e21(0x190)+_0x832cf2['target'][_0x485e21(0x151)]);if(_0x832cf2[_0x485e21(0x135)][_0x485e21(0x12b)])_0x52e83a['push'](_0x485e21(0x140)+_0x832cf2['target'][_0x485e21(0x12b)]);if(_0x832cf2[_0x485e21(0x16e)][_0x485e21(0x13e)]>0x0){_0x52e83a['push']('',_0x485e21(0x160));for(const _0x37ef0f of _0x832cf2[_0x485e21(0x16e)]){_0x52e83a[_0x485e21(0x132)](_0x485e21(0x161)+(_0x37ef0f['source']||'const')+_0x485e21(0x162)+_0x37ef0f['target']+(_0x37ef0f[_0x485e21(0x178)]?'.'+_0x37ef0f[_0x485e21(0x178)]:''));}}return _0x52e83a[_0x485e21(0x139)]('\x0a');}function targetPreview(_0x565c51){const _0x18f17f=a60_0x49db;return{'kind':_0x565c51['kind'],'command':_0x565c51['command'],'appRef':_0x565c51[_0x18f17f(0x153)],'datasetCode':_0x565c51['datasetCode'],'datatable':_0x565c51[_0x18f17f(0x12f)],'sqlCode':_0x565c51['sqlCode'],'bffCode':_0x565c51[_0x18f17f(0x143)],'bffId':_0x565c51[_0x18f17f(0x14d)],'functionName':_0x565c51['scriptName']};}function normalizeScalarParams(_0x2d4a17){const _0x526d76=a60_0x49db;return Object[_0x526d76(0x129)](Object['entries'](_0x2d4a17)['filter'](([,_0x37aa7d])=>typeof _0x37aa7d===_0x526d76(0x131)||typeof _0x37aa7d===_0x526d76(0x17b)));}function hasText(_0x2e1cba){const _0x466bce=a60_0x49db;return typeof _0x2e1cba===_0x466bce(0x131)&&_0x2e1cba[_0x466bce(0x167)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x2fa1a2){const _0x65f6d0=a60_0x49db;return _0x2fa1a2===undefined||typeof _0x2fa1a2===_0x65f6d0(0x131)||typeof _0x2fa1a2===_0x65f6d0(0x17b)||typeof _0x2fa1a2===_0x65f6d0(0x141);}
|
|
1
|
+
(function(_0x5ccff1,_0x4d2f61){const _0x50bfad=a60_0x1eb2,_0x4967dd=_0x5ccff1();while(!![]){try{const _0x197142=-parseInt(_0x50bfad(0x1ad))/0x1+parseInt(_0x50bfad(0x1c0))/0x2*(parseInt(_0x50bfad(0x1f7))/0x3)+-parseInt(_0x50bfad(0x1df))/0x4+-parseInt(_0x50bfad(0x1d0))/0x5*(parseInt(_0x50bfad(0x1a6))/0x6)+parseInt(_0x50bfad(0x1c4))/0x7*(parseInt(_0x50bfad(0x1d4))/0x8)+parseInt(_0x50bfad(0x1de))/0x9*(-parseInt(_0x50bfad(0x1a2))/0xa)+parseInt(_0x50bfad(0x1c1))/0xb;if(_0x197142===_0x4d2f61)break;else _0x4967dd['push'](_0x4967dd['shift']());}catch(_0xd78a0f){_0x4967dd['push'](_0x4967dd['shift']());}}}(a60_0x5016,0x514a0));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(_0x1b090a,_0x15c9cf){const _0x2f3344=a60_0x1eb2,_0x33fabf=listLocalServiceTrees();let _0xe310b9;for(const _0x1ec4cc of _0x33fabf){const _0x2cfc40=matchServiceTreeCommand(_0x1ec4cc,_0x1b090a);if(!_0x2cfc40)continue;(!_0xe310b9||_0x2cfc40[_0x2f3344(0x1c3)][_0x2f3344(0x1c8)]['length']>_0xe310b9[_0x2f3344(0x1c3)][_0x2f3344(0x1c8)]['length'])&&(_0xe310b9={'tree':_0x1ec4cc,'command':_0x2cfc40['command'],'remainingArgs':_0x2cfc40[_0x2f3344(0x1e1)]});}if(!_0xe310b9)return undefined;const _0x2f255c={..._0x15c9cf};return applyAppBinding(_0xe310b9[_0x2f3344(0x1e0)],_0xe310b9[_0x2f3344(0x1c3)],_0x2f255c),{'definition':buildDynamicCommandDefinition(_0xe310b9[_0x2f3344(0x1e0)],_0xe310b9[_0x2f3344(0x1c3)]),'args':_0xe310b9[_0x2f3344(0x1e1)],'flags':_0x2f255c,'tree':_0xe310b9[_0x2f3344(0x1e0)],'command':_0xe310b9[_0x2f3344(0x1c3)]};}export function generateDynamicServiceHelp(_0x3b4efb){const _0x529bde=a60_0x1eb2,_0x202d2f=listLocalServiceTrees()[_0x529bde(0x1e9)](_0x26d4c9=>_0x26d4c9[_0x529bde(0x1d1)]['code']===_0x3b4efb);if(!_0x202d2f)return undefined;const _0x1e0c5a=[CLI_BIN_NAME+'\x20'+_0x3b4efb+_0x529bde(0x1c6),'',_0x202d2f[_0x529bde(0x1d1)]['name']||_0x3b4efb,_0x202d2f['service'][_0x529bde(0x1b5)]?'\x20\x20'+_0x202d2f[_0x529bde(0x1d1)]['description']:'','','Commands:',..._0x202d2f[_0x529bde(0x198)]['map'](_0x5a458e=>{const _0x5a16b0=_0x529bde,_0x3803f7=_0x5a458e[_0x5a16b0(0x1c8)][_0x5a16b0(0x1e5)](0x1)['join']('\x20'),_0x3b0a03=_0x5a458e['risk']===_0x5a16b0(0x1bc)?'':'\x20['+_0x5a458e[_0x5a16b0(0x1ee)]+']';return'\x20\x20'+_0x3803f7[_0x5a16b0(0x1f0)](0x18)+'\x20'+(_0x5a458e['description']||'')+_0x3b0a03;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x3b4efb+_0x529bde(0x1c9)][_0x529bde(0x1ae)](Boolean);return _0x1e0c5a[_0x529bde(0x19b)]('\x0a');}export function listDynamicServiceEntries(){const _0x2b303d=a60_0x1eb2;return listLocalServices()[_0x2b303d(0x1d7)](_0x2107de=>{const _0x20b691=_0x2b303d,_0x223078=_0x2107de['normalizedManifest'];return{'service':_0x223078[_0x20b691(0x1d1)][_0x20b691(0x1cc)],'label':_0x223078['service']['name']||_0x223078[_0x20b691(0x1d1)]['code'],'commands':_0x223078[_0x20b691(0x198)][_0x20b691(0x1d7)](_0x54f6f1=>({'command':dynamicCommandName(_0x54f6f1),'description':_0x54f6f1[_0x20b691(0x1b5)]||_0x20b691(0x1d8)+_0x54f6f1['cliPath'],'tag':riskTag(_0x54f6f1[_0x20b691(0x1ee)])}))};});}export function getDynamicServiceEntry(_0x129454){const _0x2b3080=a60_0x1eb2;return listDynamicServiceEntries()['find'](_0x53844f=>_0x53844f[_0x2b3080(0x1d1)]===_0x129454);}export function listDynamicServiceDefinitions(_0x228fba){const _0xc9d8b6=a60_0x1eb2;return listLocalServiceTrees()['filter'](_0x13dcd2=>!_0x228fba||_0x13dcd2[_0xc9d8b6(0x1d1)][_0xc9d8b6(0x1cc)]===_0x228fba)[_0xc9d8b6(0x1d3)](_0x4e1bd3=>_0x4e1bd3[_0xc9d8b6(0x198)][_0xc9d8b6(0x1d7)](_0x650806=>buildDynamicCommandDefinition(_0x4e1bd3,_0x650806)));}export function getDynamicServiceDefinitions(_0x29ea63){const _0x3a7e1a=a60_0x1eb2,_0x235ec4=listDynamicServiceDefinitions(_0x29ea63);return _0x235ec4[_0x3a7e1a(0x1e4)]>0x0?_0x235ec4:undefined;}export function findDynamicServiceDefinition(_0x3b5e9c,_0x37d958){const _0x17eb0a=a60_0x1eb2;return listDynamicServiceDefinitions(_0x3b5e9c)[_0x17eb0a(0x1e9)](_0x1b58de=>_0x1b58de[_0x17eb0a(0x1c3)]===_0x37d958);}export function buildDynamicCommandDefinition(_0x1967cf,_0x564ca0){const _0x47e62e=a60_0x1eb2;return{'service':_0x1967cf[_0x47e62e(0x1d1)]['code'],'command':dynamicCommandName(_0x564ca0),'description':_0x564ca0['description']||_0x47e62e(0x1d8)+_0x564ca0[_0x47e62e(0x19a)],'risk':_0x564ca0['risk'],..._0x564ca0[_0x47e62e(0x1ee)]===_0x47e62e(0x1bc)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x564ca0)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x564ca0[_0x47e62e(0x1fb)]['map'](_0x35ca8a=>({'name':_0x35ca8a[_0x47e62e(0x1ca)],'description':_0x35ca8a[_0x47e62e(0x1b5)]||_0x35ca8a[_0x47e62e(0x1ca)],'required':_0x35ca8a[_0x47e62e(0x1ce)]})),'flags':_0x564ca0['flags'][_0x47e62e(0x1d7)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x564ca0),async 'dryRun'(_0x54f342){const _0xa076b=_0x47e62e,_0x2c3200=await compilePlan(_0x564ca0,_0x54f342);return{'method':'SERVICE_TREE','url':_0x564ca0[_0xa076b(0x19a)],'body':{'target':targetPreview(_0x2c3200),'params':_0x2c3200['params']},'description':_0xa076b(0x1f1)+_0x564ca0[_0xa076b(0x19a)]};},async 'execute'(_0x6df5e8){const _0x3b245b=_0x47e62e,_0x3502d2=await compilePlan(_0x564ca0,_0x6df5e8),_0x3fe7d5=Date[_0x3b245b(0x1d5)](),_0x108938=await executePlan(_0x3502d2,_0x564ca0,_0x6df5e8),_0xc9aefe=Date[_0x3b245b(0x1d5)]()-_0x3fe7d5;return{'ok':!![],'data':{'service':_0x1967cf[_0x3b245b(0x1d1)],'command':_0x564ca0[_0x3b245b(0x19a)],'target':targetPreview(_0x3502d2),'result':_0x108938,'elapsed':_0xc9aefe},'message':_0x3b245b(0x1f2)+_0x564ca0[_0x3b245b(0x19a)]+_0x3b245b(0x1d2)+_0xc9aefe+'ms'};}};}function buildDynamicConfirmationDescription(_0x3eb6b1){const _0x5dbccc=a60_0x1eb2,_0x23a7d9=_0x3eb6b1['description']||_0x3eb6b1[_0x5dbccc(0x19a)],_0x2a202e=_0x3eb6b1[_0x5dbccc(0x1ee)]===_0x5dbccc(0x1aa)?_0x5dbccc(0x1eb):_0x5dbccc(0x1b7);return _0x5dbccc(0x1a8)+_0x23a7d9+_0x5dbccc(0x1a4)+_0x2a202e;}function a60_0x5016(){const _0x3688b2=['64LKZdyU','now','cliName','map','Run\x20service\x20command\x20','enum','trim','appcode','string','fromEntries','5460201pEgMsG','2189240LSwWgS','tree','remainingArgs','scriptName','bff','length','slice','appRef','\x20\x20\x20\x20datasetCode:\x20','kind','find','json','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','params','employeeId','risk','target','padEnd','Preview\x20dynamic\x20service\x20command:\x20','Service\x20command\x20','sqlCode','\x20requires\x20target.functionName.','validation','userId','1641rayRMu','Cannot\x20resolve\x20datatable\x20\x22','userName','boolean','args','nickName','appCode','number','tableName','source','commands','app','cliPath','join','rawFlags','Unknown\x20appRef\x20\x22','\x20\x20SERVICE\x20TREE\x20TARGET','tenantCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','push','10MGLGsE','data','\x22.\x20','some','1289982AVZYuR','sql','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','type','high-risk-write','\x20\x20\x20\x20','Unsupported\x20service\x20target\x20kind:\x20','536671DOcNAZ','filter','ctx.','username','env','nickname','envName','bffCode','description','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','bffId','context.','entries','datasetCode','read','default','\x20\x20\x20\x20functionName:\x20','datatable','1778sybaQX','17289360NXrWos','operator','command','158011vJjLwG','\x20\x20\x20\x20sqlCode:\x20','\x20<command>\x20[flags]','\x20\x20\x20\x20datatable:\x20','fullPath','`\x20to\x20inspect\x20the\x20manifest.','name','startsWith','code','mapTo','required','dbtableConfig','5hYyZwN','service','\x20completed\x20in\x20','flatMap'];a60_0x5016=function(){return _0x3688b2;};return a60_0x5016();}function dynamicCommandName(_0x2017a4){const _0x36b016=a60_0x1eb2;return _0x2017a4[_0x36b016(0x1c8)][_0x36b016(0x1e5)](0x1)[_0x36b016(0x19b)]('\x20');}function riskTag(_0x5ce970){const _0x2ef1b1=a60_0x1eb2;return _0x5ce970===_0x2ef1b1(0x1bc)?'':'\x20\x20['+_0x5ce970+']';}function flagToCommandFlag(_0x4c9742){const _0x1a8333=a60_0x1eb2;return{'name':_0x4c9742[_0x1a8333(0x1d6)],'type':_0x4c9742[_0x1a8333(0x1a9)]===_0x1a8333(0x1ea)?_0x1a8333(0x1dc):_0x4c9742['type'],'description':_0x4c9742[_0x1a8333(0x1b5)]||_0x4c9742[_0x1a8333(0x1ca)],'required':_0x4c9742['required'],'default':isPrimitiveFlagDefault(_0x4c9742[_0x1a8333(0x1bd)])?_0x4c9742[_0x1a8333(0x1bd)]:undefined,'enum':_0x4c9742[_0x1a8333(0x1d9)]};}async function compilePlan(_0x23b828,_0x34c8d8){const _0xb947ad=a60_0x1eb2;return compileServiceTreeCommand(_0x23b828,{'flags':_0x34c8d8[_0xb947ad(0x19c)],'args':_0x34c8d8['args'],'context':await buildServiceContext(_0x23b828,_0x34c8d8)});}async function buildServiceContext(_0xaa5e55,_0x580af2){const _0x361e4e=a60_0x1eb2,_0xd01f84={'appCode':_0x580af2[_0x361e4e(0x194)],'env':_0x580af2[_0x361e4e(0x1b3)],'envName':_0x580af2[_0x361e4e(0x1b3)]};if(!usesRuntimeContext(_0xaa5e55))return _0xd01f84;const _0x3648af=await getLoginUserInfo(),_0x3553b3=pickFirst(_0x3648af[_0x361e4e(0x1f6)],_0x3648af['id']);return{..._0xd01f84,'user':_0x3648af,'userId':_0x3553b3,'id':_0x3648af['id'],'username':pickFirst(_0x3648af[_0x361e4e(0x1b0)],_0x3648af['userName'],_0x3648af['loginName']),'userName':_0x3648af[_0x361e4e(0x1f9)],'nickname':pickFirst(_0x3648af[_0x361e4e(0x1b2)],_0x3648af['nickName']),'nickName':_0x3648af[_0x361e4e(0x1fc)],'tenantCode':_0x3648af[_0x361e4e(0x19f)],'employeeId':_0x3648af[_0x361e4e(0x1ed)]};}function usesRuntimeContext(_0x5e1f67){const _0x1b06be=a60_0x1eb2;return _0x5e1f67[_0x1b06be(0x1cd)][_0x1b06be(0x1a5)](_0x5b8bbc=>typeof _0x5b8bbc['source']===_0x1b06be(0x1dc)&&(_0x5b8bbc['source'][_0x1b06be(0x1cb)](_0x1b06be(0x1b9))||_0x5b8bbc[_0x1b06be(0x197)][_0x1b06be(0x1cb)](_0x1b06be(0x1af))));}function pickFirst(..._0x24efa8){return _0x24efa8['find'](_0x510120=>_0x510120!==undefined&&_0x510120!==null);}async function executePlan(_0x27c58f,_0xa94b1f,_0x59d268){const _0x5f51ff=a60_0x1eb2;if(_0x27c58f[_0x5f51ff(0x1e8)]===_0x5f51ff(0x1a3)){const _0x3a8e0a=await resolveDatasetCode(_0x27c58f,_0xa94b1f,_0x59d268);return executeData(_0x3a8e0a,_0x27c58f[_0x5f51ff(0x1c3)],_0x27c58f[_0x5f51ff(0x1ec)]);}if(_0x27c58f[_0x5f51ff(0x1e8)]===_0x5f51ff(0x1a7)){if(!_0x27c58f[_0x5f51ff(0x1f3)])throw CliErrors['validation'](_0x5f51ff(0x1f2)+_0xa94b1f[_0x5f51ff(0x19a)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x27c58f[_0x5f51ff(0x1f3)],normalizeScalarParams(_0x27c58f[_0x5f51ff(0x1ec)]));}if(_0x27c58f[_0x5f51ff(0x1e8)]===_0x5f51ff(0x1e3)){const _0x185c3e=_0x27c58f[_0x5f51ff(0x1e2)]||_0x27c58f[_0x5f51ff(0x1b4)]||(_0x27c58f[_0x5f51ff(0x1b8)]==null?'':String(_0x27c58f[_0x5f51ff(0x1b8)]));if(!_0x185c3e)throw CliErrors[_0x5f51ff(0x1f5)]('Service\x20command\x20'+_0xa94b1f[_0x5f51ff(0x19a)]+_0x5f51ff(0x1f4));return executeSdkBff(_0x185c3e,_0x27c58f[_0x5f51ff(0x1ec)]);}throw CliErrors[_0x5f51ff(0x1f5)](_0x5f51ff(0x1ac)+_0x27c58f[_0x5f51ff(0x1e8)]);}async function resolveDatasetCode(_0x5365d5,_0x4bd7df,_0x3e12be){const _0x381275=a60_0x1eb2;if(_0x5365d5[_0x381275(0x1bb)])return _0x5365d5['datasetCode'];if(!_0x5365d5[_0x381275(0x1bf)])throw CliErrors[_0x381275(0x1f5)](_0x381275(0x1f2)+_0x4bd7df[_0x381275(0x19a)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x1f0b31=await listDatasets(_0x3e12be[_0x381275(0x194)]),_0x4b3382=_0x1f0b31[_0x381275(0x1e9)](_0x3ec853=>_0x3ec853[_0x381275(0x1cf)]?.[_0x381275(0x196)]===_0x5365d5[_0x381275(0x1bf)]);if(!_0x4b3382?.[_0x381275(0x1cc)])throw CliErrors[_0x381275(0x1f5)](_0x381275(0x1f8)+_0x5365d5['datatable']+_0x381275(0x1a0)+_0x3e12be[_0x381275(0x194)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x4b3382[_0x381275(0x1cc)];}function a60_0x1eb2(_0x4b67d2,_0x2e93e2){_0x4b67d2=_0x4b67d2-0x194;const _0x501623=a60_0x5016();let _0x1eb20d=_0x501623[_0x4b67d2];return _0x1eb20d;}function applyAppBinding(_0x444d92,_0x3d4400,_0x1d00f8){const _0x2a4538=a60_0x1eb2,_0x1fd2f5=_0x3d4400['target']['appRef'];if(!_0x1fd2f5)return;const _0x17336b=_0x444d92['appBindings'][_0x1fd2f5];if(!_0x17336b)throw CliErrors[_0x2a4538(0x1f5)](_0x2a4538(0x19d)+_0x1fd2f5+'\x22\x20in\x20service\x20command\x20'+_0x3d4400[_0x2a4538(0x19a)]+'.',_0x2a4538(0x1b6));const _0x10dbbf=_0x17336b[_0x2a4538(0x1db)]||_0x17336b[_0x2a4538(0x194)];_0x10dbbf&&!hasText(_0x1d00f8[_0x2a4538(0x1db)])&&(_0x1d00f8[_0x2a4538(0x1db)]=_0x10dbbf),_0x17336b['app']&&!hasText(_0x1d00f8[_0x2a4538(0x199)])&&!hasText(_0x1d00f8[_0x2a4538(0x1db)])&&(_0x1d00f8[_0x2a4538(0x199)]=_0x17336b[_0x2a4538(0x199)]),_0x17336b['env']&&!hasText(_0x1d00f8[_0x2a4538(0x1b1)])&&(_0x1d00f8['env']=_0x17336b[_0x2a4538(0x1b1)]);}function renderDynamicCommandHelp(_0x51e3d4){const _0x4ba8c7=a60_0x1eb2,_0x521485=[_0x4ba8c7(0x19e),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1e8)],'\x20\x20\x20\x20command:\x20'+_0x51e3d4['target'][_0x4ba8c7(0x1c3)]];if(_0x51e3d4[_0x4ba8c7(0x1ef)]['datasetCode'])_0x521485['push'](_0x4ba8c7(0x1e7)+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1bb)]);if(_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1bf)])_0x521485[_0x4ba8c7(0x1a1)](_0x4ba8c7(0x1c7)+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1bf)]);if(_0x51e3d4['target'][_0x4ba8c7(0x1f3)])_0x521485[_0x4ba8c7(0x1a1)](_0x4ba8c7(0x1c5)+_0x51e3d4['target'][_0x4ba8c7(0x1f3)]);if(_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1e2)])_0x521485['push'](_0x4ba8c7(0x1be)+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1e2)]);if(_0x51e3d4[_0x4ba8c7(0x1cd)][_0x4ba8c7(0x1e4)]>0x0){_0x521485['push']('','\x20\x20MAP\x20TO');for(const _0x34da40 of _0x51e3d4[_0x4ba8c7(0x1cd)]){_0x521485[_0x4ba8c7(0x1a1)](_0x4ba8c7(0x1ab)+(_0x34da40['source']||'const')+'\x20->\x20'+_0x34da40['target']+(_0x34da40[_0x4ba8c7(0x1c2)]?'.'+_0x34da40[_0x4ba8c7(0x1c2)]:''));}}return _0x521485[_0x4ba8c7(0x19b)]('\x0a');}function targetPreview(_0x11ad3d){const _0x1340dd=a60_0x1eb2;return{'kind':_0x11ad3d[_0x1340dd(0x1e8)],'command':_0x11ad3d[_0x1340dd(0x1c3)],'appRef':_0x11ad3d[_0x1340dd(0x1e6)],'datasetCode':_0x11ad3d[_0x1340dd(0x1bb)],'datatable':_0x11ad3d[_0x1340dd(0x1bf)],'sqlCode':_0x11ad3d[_0x1340dd(0x1f3)],'bffCode':_0x11ad3d[_0x1340dd(0x1b4)],'bffId':_0x11ad3d[_0x1340dd(0x1b8)],'functionName':_0x11ad3d[_0x1340dd(0x1e2)]};}function normalizeScalarParams(_0x22ea30){const _0x1e12fd=a60_0x1eb2;return Object[_0x1e12fd(0x1dd)](Object[_0x1e12fd(0x1ba)](_0x22ea30)[_0x1e12fd(0x1ae)](([,_0x5b8153])=>typeof _0x5b8153===_0x1e12fd(0x1dc)||typeof _0x5b8153===_0x1e12fd(0x195)));}function hasText(_0x2144ae){const _0x5219bd=a60_0x1eb2;return typeof _0x2144ae==='string'&&_0x2144ae[_0x5219bd(0x1da)]()[_0x5219bd(0x1e4)]>0x0;}function isPrimitiveFlagDefault(_0x4e9b20){const _0x17fdf4=a60_0x1eb2;return _0x4e9b20===undefined||typeof _0x4e9b20===_0x17fdf4(0x1dc)||typeof _0x4e9b20===_0x17fdf4(0x195)||typeof _0x4e9b20===_0x17fdf4(0x1fa);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4df6e9,_0x43de19){const _0xe3ee77=a61_0x5f27,_0x252a9d=_0x4df6e9();while(!![]){try{const _0x314072=parseInt(_0xe3ee77(0xd3))/0x1+-parseInt(_0xe3ee77(0xc3))/0x2+parseInt(_0xe3ee77(0xd1))/0x3+-parseInt(_0xe3ee77(0xb9))/0x4+-parseInt(_0xe3ee77(0xc2))/0x5*(parseInt(_0xe3ee77(0xd4))/0x6)+-parseInt(_0xe3ee77(0xc1))/0x7*(-parseInt(_0xe3ee77(0xd6))/0x8)+parseInt(_0xe3ee77(0xce))/0x9;if(_0x314072===_0x43de19)break;else _0x252a9d['push'](_0x252a9d['shift']());}catch(_0x869c65){_0x252a9d['push'](_0x252a9d['shift']());}}}(a61_0x4ec5,0x28f2a));export function adaptServiceTreeManifestForLegacyFramework(_0x3024d0){const _0x402fcf=a61_0x5f27,_0x48fd19=cloneJsonValue(_0x3024d0),_0x3dfa23=[];if(!isObjectRecord(_0x48fd19))return{'manifest':_0x48fd19,'errors':_0x3dfa23};return Array[_0x402fcf(0xd5)](_0x48fd19[_0x402fcf(0xc0)])&&_0x48fd19['commands'][_0x402fcf(0xd7)]((_0xc0c946,_0xce0ec3)=>{const _0x5b9430=_0x402fcf;if(!isObjectRecord(_0xc0c946))return;adaptBffTarget(_0xc0c946[_0x5b9430(0xcb)],_0x5b9430(0xbc)+_0xce0ec3+'].target',_0x3dfa23);}),adaptResources(_0x48fd19[_0x402fcf(0xdc)],_0x402fcf(0xc5),_0x3dfa23),{'manifest':_0x48fd19,'errors':_0x3dfa23};}export function toPublicServiceTreeTarget(_0x1a1e06){const _0x42219c=a61_0x5f27,{scriptName:_0x2b85ec,..._0x513f74}=_0x1a1e06;return typeof _0x2b85ec===_0x42219c(0xc7)&&_0x2b85ec[_0x42219c(0xda)]()&&(_0x513f74[_0x42219c(0xcc)]=_0x2b85ec),_0x513f74;}function a61_0x4ec5(){const _0x560be7=['forEach','kind','.scriptName','trim','bff.exec','resources','bff','action','340764GIicMo','error','scriptName','$.commands[','.resources','call','.functionName','commands','49iNYBFP','275OsTgPe','173554FOkcAJ','.target','$.resources','object','string','hasOwnProperty','push','entries','target','functionName','prototype','428022WquESM','.actions.','actions','534546yFzBgV','map','328169TKAPnS','34872CjrMFs','isArray','120504cvtSem'];a61_0x4ec5=function(){return _0x560be7;};return a61_0x4ec5();}export function toPublicNormalizedServiceTree(_0x3a47d1){const _0x21f43d=a61_0x5f27;return{..._0x3a47d1,'commands':_0x3a47d1[_0x21f43d(0xc0)][_0x21f43d(0xd2)](_0xe4323c=>({..._0xe4323c,'target':toPublicServiceTreeTarget(_0xe4323c['target'])}))};}function adaptResources(_0x28970b,_0x497500,_0x4de1b3){const _0x350689=a61_0x5f27;if(!isObjectRecord(_0x28970b))return;for(const [_0x18a957,_0x156085]of Object['entries'](_0x28970b)){if(!isObjectRecord(_0x156085))continue;const _0x4ed69f=_0x497500+'.'+_0x18a957;if(isObjectRecord(_0x156085[_0x350689(0xd0)]))for(const [_0x363a8f,_0x46fa9b]of Object[_0x350689(0xca)](_0x156085['actions'])){if(!isObjectRecord(_0x46fa9b))continue;const _0x2ebc0a=_0x4ed69f+_0x350689(0xcf)+_0x363a8f,_0x268be2=isObjectRecord(_0x46fa9b[_0x350689(0xcb)])&&_0x46fa9b[_0x350689(0xcb)]['kind']===_0x350689(0xdd);adaptBffTarget(_0x46fa9b[_0x350689(0xcb)],_0x2ebc0a+_0x350689(0xc4),_0x4de1b3),(_0x268be2||isBffAction(_0x46fa9b))&&adaptFunctionNameField(_0x46fa9b,_0x2ebc0a,_0x4de1b3);}adaptResources(_0x156085[_0x350689(0xdc)],_0x4ed69f+_0x350689(0xbd),_0x4de1b3);}}function a61_0x5f27(_0x431be7,_0x7e1744){_0x431be7=_0x431be7-0xb8;const _0x4ec533=a61_0x4ec5();let _0x5f27e1=_0x4ec533[_0x431be7];return _0x5f27e1;}function adaptBffTarget(_0x363478,_0x567d32,_0x3230a6){const _0x2a9780=a61_0x5f27;if(!isObjectRecord(_0x363478)||_0x363478['kind']!==_0x2a9780(0xdd))return;adaptFunctionNameField(_0x363478,_0x567d32,_0x3230a6);}function adaptFunctionNameField(_0x260e15,_0x19277e,_0x436568){const _0x574e60=a61_0x5f27;Object['prototype'][_0x574e60(0xc8)][_0x574e60(0xbe)](_0x260e15,_0x574e60(0xbb))&&_0x436568[_0x574e60(0xc9)]({'level':'error','path':_0x19277e+_0x574e60(0xd9),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x574e60(0xcd)][_0x574e60(0xc8)][_0x574e60(0xbe)](_0x260e15,_0x574e60(0xcc))){if(typeof _0x260e15[_0x574e60(0xcc)]!==_0x574e60(0xc7)||!_0x260e15[_0x574e60(0xcc)]['trim']()){_0x436568[_0x574e60(0xc9)]({'level':_0x574e60(0xba),'path':_0x19277e+_0x574e60(0xbf),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x260e15[_0x574e60(0xcc)];return;}_0x260e15['scriptName']=_0x260e15['functionName'],delete _0x260e15[_0x574e60(0xcc)];}}function isBffAction(_0x5d8df5){const _0x306904=a61_0x5f27;return _0x5d8df5[_0x306904(0xd8)]===_0x306904(0xdd)||_0x5d8df5[_0x306904(0xb8)]===_0x306904(0xdb)||_0x5d8df5[_0x306904(0xcb)]===_0x306904(0xdb);}function cloneJsonValue(_0x4dbd81){const _0x551c04=a61_0x5f27;if(Array[_0x551c04(0xd5)](_0x4dbd81))return _0x4dbd81['map'](_0x467ec0=>cloneJsonValue(_0x467ec0));if(isObjectRecord(_0x4dbd81))return Object['fromEntries'](Object[_0x551c04(0xca)](_0x4dbd81)[_0x551c04(0xd2)](([_0x273553,_0x383412])=>[_0x273553,cloneJsonValue(_0x383412)]));return _0x4dbd81;}function isObjectRecord(_0x315cce){const _0x1d68cf=a61_0x5f27;return Boolean(_0x315cce)&&typeof _0x315cce===_0x1d68cf(0xc6)&&!Array[_0x1d68cf(0xd5)](_0x315cce);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x10a89d=a62_0x132a;function a62_0xdd8d(){const _0x97690=['cliName','entry','errors','source','\x20service(s).','warnings','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','replaced','cliPath','1379440riVzZS','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','risk','\x20service\x20','length','type','Imported\x20','manifest','filePath','Imported','\x20service(s),\x20updated\x20','59751Gpgnvj','normalizedManifest','updated','kind','version','695835RyWBwl','entries','334580QymWNS','importedAt','6fvZqks','str','1132632gUaFRZ','detail','write','map','export','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Exported\x20service\x20','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryPath','description','registryIndex','Local\x20service\x20not\x20found:\x20','546POtGQt','import','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','string','imported','WRITE','name','1142PzLRHh','commands','service','file','hash','target','serviceCode','registryServiceCode','report','562142bXMqmT','Removed\x20service\x20','Service\x20manifest\x20validation\x20passed.','serviceCount','manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','read'];a62_0xdd8d=function(){return _0x97690;};return a62_0xdd8d();}(function(_0x596d9c,_0x22718b){const _0x6359f4=a62_0x132a,_0x2db831=_0x596d9c();while(!![]){try{const _0x5907c5=parseInt(_0x6359f4(0xfd))/0x1+-parseInt(_0x6359f4(0xd6))/0x2*(-parseInt(_0x6359f4(0xcf))/0x3)+parseInt(_0x6359f4(0x104))/0x4+parseInt(_0x6359f4(0xf1))/0x5+-parseInt(_0x6359f4(0x106))/0x6*(parseInt(_0x6359f4(0xdf))/0x7)+-parseInt(_0x6359f4(0x108))/0x8+-parseInt(_0x6359f4(0x102))/0x9;if(_0x5907c5===_0x22718b)break;else _0x2db831['push'](_0x2db831['shift']());}catch(_0x4c4437){_0x2db831['push'](_0x2db831['shift']());}}}(a62_0xdd8d,0x36b06));function a62_0x132a(_0x4206b8,_0x470456){_0x4206b8=_0x4206b8-0xc6;const _0xdd8d79=a62_0xdd8d();let _0x132a7a=_0xdd8d79[_0x4206b8];return _0x132a7a;}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':a62_0x10a89d(0xd9),'type':a62_0x10a89d(0xd2),'required':!![],'description':a62_0x10a89d(0xf3)},SERVICE_FLAG={'name':'service','type':a62_0x10a89d(0xd2),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x4f479b){const _0x819eb4=a62_0x10a89d;return{'serviceCode':_0x4f479b['serviceCode'],'name':_0x4f479b['normalizedManifest'][_0x819eb4(0xd8)]['name'],'version':_0x4f479b[_0x819eb4(0x101)],'importedAt':_0x4f479b[_0x819eb4(0x105)],'source':_0x4f479b[_0x819eb4(0xeb)],'commandCount':_0x4f479b[_0x819eb4(0xfe)][_0x819eb4(0xd7)]['length'],'commands':_0x4f479b[_0x819eb4(0xfe)][_0x819eb4(0xd7)][_0x819eb4(0xc6)](_0x5a7fdf=>({'path':_0x5a7fdf[_0x819eb4(0xf0)],'description':_0x5a7fdf[_0x819eb4(0xcc)],'risk':_0x5a7fdf[_0x819eb4(0xf4)],'target':toPublicServiceTreeTarget(_0x5a7fdf[_0x819eb4(0xdb)]),'flags':_0x5a7fdf['flags'][_0x819eb4(0xc6)](_0x247170=>({'name':_0x247170[_0x819eb4(0xd5)],'cliName':_0x247170[_0x819eb4(0xe8)],'type':_0x247170[_0x819eb4(0xf7)],'required':_0x247170['required']===!![]}))}))};}function summarizeLoadedManifest(_0xb4c80f){const _0x128ad1=a62_0x10a89d;return{'service':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0xd8)],'version':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0x101)],'commandCount':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0xd7)][_0x128ad1(0xf6)]??0x0,'commands':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0xd7)][_0x128ad1(0xc6)](_0x292382=>({'path':_0x292382[_0x128ad1(0xf0)],'risk':_0x292382[_0x128ad1(0xf4)],'target':toPublicServiceTreeTarget(_0x292382[_0x128ad1(0xdb)])}))??[],'registryIndex':_0xb4c80f[_0x128ad1(0xcd)],'registryServiceCode':_0xb4c80f[_0x128ad1(0xdd)],'errors':_0xb4c80f[_0x128ad1(0xde)][_0x128ad1(0xea)],'warnings':_0xb4c80f[_0x128ad1(0xde)][_0x128ad1(0xed)]};}export const serviceDefinitions=[{'service':a62_0x10a89d(0xd8),'command':'validate','description':a62_0x10a89d(0xe4),'risk':a62_0x10a89d(0xe7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xc0644b){const _0x3b7eda=a62_0x10a89d,_0x14e526=loadServiceManifestFromFile(_0xc0644b['str']('file'));if(!_0x14e526[_0x3b7eda(0xde)]['ok'])return{'ok':![],'data':{'file':_0x14e526['filePath'],'hash':_0x14e526['hash'],'kind':_0x14e526['kind'],'serviceCount':_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xf6)],'services':_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xc6)](summarizeLoadedManifest),'errors':_0x14e526[_0x3b7eda(0xde)]['errors'],'warnings':_0x14e526[_0x3b7eda(0xde)]['warnings']},'message':formatValidationFailure(_0x14e526['report'])};if(_0x14e526[_0x3b7eda(0x100)]==='registry'||_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xf6)]!==0x1)return{'ok':!![],'data':{'file':_0x14e526['filePath'],'hash':_0x14e526['hash'],'kind':_0x14e526[_0x3b7eda(0x100)],'serviceCount':_0x14e526[_0x3b7eda(0xe3)]['length'],'commandCount':_0x14e526['manifests']['reduce']((_0x17f0f5,_0x205537)=>_0x17f0f5+(_0x205537[_0x3b7eda(0xfe)]?.[_0x3b7eda(0xd7)]['length']??0x0),0x0),'services':_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xc6)](summarizeLoadedManifest),'warnings':_0x14e526[_0x3b7eda(0xde)][_0x3b7eda(0xed)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x14e526[_0x3b7eda(0xfa)],'hash':_0x14e526[_0x3b7eda(0xda)],'kind':_0x14e526['kind'],'service':_0x14e526[_0x3b7eda(0xfe)]?.[_0x3b7eda(0xd8)],'version':_0x14e526[_0x3b7eda(0xfe)]?.[_0x3b7eda(0x101)],'commandCount':_0x14e526['normalizedManifest']?.[_0x3b7eda(0xd7)]['length']??0x0,'commands':_0x14e526[_0x3b7eda(0xfe)]?.[_0x3b7eda(0xd7)][_0x3b7eda(0xc6)](_0x1dc656=>({'path':_0x1dc656['cliPath'],'risk':_0x1dc656[_0x3b7eda(0xf4)],'target':toPublicServiceTreeTarget(_0x1dc656['target'])})),'warnings':_0x14e526[_0x3b7eda(0xde)]['warnings']},'message':_0x3b7eda(0xe1)};}},{'service':a62_0x10a89d(0xd8),'command':a62_0x10a89d(0xd0),'description':a62_0x10a89d(0xca),'risk':a62_0x10a89d(0x10a),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1bbfda){const _0xec6d01=a62_0x10a89d,_0x5fe599=loadServiceManifestFromFile(_0x1bbfda['str'](_0xec6d01(0xd9)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x5fe599[_0xec6d01(0xfa)],'hash':_0x5fe599[_0xec6d01(0xda)],'kind':_0x5fe599[_0xec6d01(0x100)],'ok':_0x5fe599[_0xec6d01(0xde)]['ok'],'service':_0x5fe599[_0xec6d01(0xfe)]?.['service'],'version':_0x5fe599[_0xec6d01(0xfe)]?.[_0xec6d01(0x101)],'serviceCount':_0x5fe599[_0xec6d01(0xe3)][_0xec6d01(0xf6)],'services':_0x5fe599['manifests'][_0xec6d01(0xc6)](_0xfecc32=>({'service':_0xfecc32[_0xec6d01(0xfe)]?.[_0xec6d01(0xd8)],'version':_0xfecc32[_0xec6d01(0xfe)]?.[_0xec6d01(0x101)],'commandCount':_0xfecc32['normalizedManifest']?.['commands'][_0xec6d01(0xf6)]??0x0,'errors':_0xfecc32[_0xec6d01(0xde)]['errors']})),'errors':_0x5fe599[_0xec6d01(0xde)][_0xec6d01(0xea)],'commandCount':_0x5fe599[_0xec6d01(0xfe)]?.[_0xec6d01(0xd7)][_0xec6d01(0xf6)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x360e2e){const _0x231894=a62_0x10a89d,_0x1ea5be=importServiceManifest(_0x360e2e[_0x231894(0x107)](_0x231894(0xd9)));if(_0x1ea5be[_0x231894(0x103)][_0x231894(0xf6)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1ea5be[_0x231894(0xcb)],'imported':_0x1ea5be[_0x231894(0xd3)],'updated':_0x1ea5be['updated'],'serviceCount':_0x1ea5be[_0x231894(0xe2)],'services':_0x1ea5be['entries'][_0x231894(0xc6)](summarizeService)},'message':_0x231894(0xf8)+_0x1ea5be[_0x231894(0xd3)]+_0x231894(0xfc)+_0x1ea5be[_0x231894(0xff)]+_0x231894(0xec)};return{'ok':!![],'data':{'registryPath':_0x1ea5be[_0x231894(0xcb)],'replaced':_0x1ea5be[_0x231894(0xef)],'imported':_0x1ea5be['imported'],'updated':_0x1ea5be[_0x231894(0xff)],'serviceCount':_0x1ea5be['serviceCount'],'service':summarizeService(_0x1ea5be['entry'])},'message':(_0x1ea5be['replaced']?'Updated':_0x231894(0xfb))+_0x231894(0xf5)+_0x1ea5be[_0x231894(0xe9)][_0x231894(0xdc)]+'.'};}},{'service':a62_0x10a89d(0xd8),'command':a62_0x10a89d(0xc7),'description':a62_0x10a89d(0xc8),'risk':a62_0x10a89d(0x10a),'confirmationDescription':'Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4f2bec){const _0x3ec2d7=a62_0x10a89d,_0x19651d=getLocalServiceEntry(_0x4f2bec[_0x3ec2d7(0x107)]('service'));return{'method':_0x3ec2d7(0xd4),'url':_0x4f2bec[_0x3ec2d7(0x107)](_0x3ec2d7(0xd9)),'body':{'service':_0x4f2bec['str'](_0x3ec2d7(0xd8)),'found':Boolean(_0x19651d),'version':_0x19651d?.['version'],'source':_0x19651d?.[_0x3ec2d7(0xeb)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x39cb3c){const _0xc96060=a62_0x10a89d,_0x4e501a=exportServiceManifest(_0x39cb3c['str'](_0xc96060(0xd8)),_0x39cb3c[_0xc96060(0x107)]('file'));return{'ok':!![],'data':{'registryPath':_0x4e501a['registryPath'],'file':_0x4e501a['filePath'],'service':summarizeService(_0x4e501a['entry'])},'message':_0xc96060(0xc9)+_0x4e501a[_0xc96060(0xe9)][_0xc96060(0xdc)]+'.'};}},{'service':a62_0x10a89d(0xd8),'command':'list','description':a62_0x10a89d(0xd1),'risk':a62_0x10a89d(0xe7),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x211dc1=a62_0x10a89d,_0x22c0da=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x22c0da['length'],'services':_0x22c0da[_0x211dc1(0xc6)](summarizeService)}};}},{'service':a62_0x10a89d(0xd8),'command':'remove','description':a62_0x10a89d(0xe5),'risk':a62_0x10a89d(0x10a),'confirmationDescription':a62_0x10a89d(0xe6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x54a94c){const _0x29229b=a62_0x10a89d,_0x128687=getLocalServiceEntry(_0x54a94c[_0x29229b(0x107)]('service'));return{'method':_0x29229b(0xd4),'url':getServiceRegistryPath(),'body':{'service':_0x54a94c[_0x29229b(0x107)](_0x29229b(0xd8)),'found':Boolean(_0x128687),'version':_0x128687?.[_0x29229b(0x101)],'source':_0x128687?.[_0x29229b(0xeb)]},'description':_0x29229b(0xf2)};},async 'execute'(_0x1140db){const _0xccdd79=a62_0x10a89d,_0x137ff8=removeServiceManifest(_0x1140db[_0xccdd79(0x107)](_0xccdd79(0xd8)));return{'ok':!![],'data':{'registryPath':_0x137ff8[_0xccdd79(0xcb)],'serviceCount':_0x137ff8[_0xccdd79(0xe2)],'service':summarizeService(_0x137ff8['entry'])},'message':_0xccdd79(0xe0)+_0x137ff8[_0xccdd79(0xe9)][_0xccdd79(0xdc)]+'.'};}},{'service':a62_0x10a89d(0xd8),'command':a62_0x10a89d(0x109),'description':a62_0x10a89d(0xee),'risk':a62_0x10a89d(0xe7),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x5d374b){const _0x21a060=a62_0x10a89d,_0x9f33c5=getLocalServiceEntry(_0x5d374b[_0x21a060(0x107)](_0x21a060(0xd8)));if(!_0x9f33c5)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x5d374b[_0x21a060(0x107)](_0x21a060(0xd8))},'message':_0x21a060(0xce)+_0x5d374b[_0x21a060(0x107)](_0x21a060(0xd8))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x9f33c5),'manifest':_0x9f33c5[_0x21a060(0xf9)],'normalizedManifest':toPublicNormalizedServiceTree(_0x9f33c5[_0x21a060(0xfe)])}};}}];
|
|
1
|
+
const a62_0x49e01e=a62_0xaaa5;function a62_0x34d3(){const _0x5ab5fc=['registryIndex','map','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','registry','updated','errors','manifests','read','replaced','service','manifest','serviceCount','entries','validate','4389912CuMCqx','target','str','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','version','Updated','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','kind','registryPath','import','Service\x20manifest\x20validation\x20passed.','24bhvbom','60MTmtHd','serviceCode','240680danucF','Service\x20Tree\x20manifest\x20file\x20path','43546GfNFlF','Local\x20service\x20not\x20found:\x20','importedAt','report','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','source','commands','Exported\x20service\x20','detail','length','824292pSVYwh','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','write','normalizedManifest','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryServiceCode','export','entry','string','type','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','WRITE','name','hash','\x20service(s).','176250QqbrFQ','43SKardB','reduce','remove','\x20service(s),\x20updated\x20','warnings','description','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','4311180rtqRXo','imported','cliName','3023025DttvMW','\x20service\x20','Imported','Local\x20service\x20code,\x20for\x20example\x20crm','risk','Removed\x20service\x20','required','file','filePath','list','24jofBTV'];a62_0x34d3=function(){return _0x5ab5fc;};return a62_0x34d3();}(function(_0x17921e,_0x1153df){const _0x4f4d8e=a62_0xaaa5,_0x341b44=_0x17921e();while(!![]){try{const _0x4609b7=-parseInt(_0x4f4d8e(0xc7))/0x1*(-parseInt(_0x4f4d8e(0xfa))/0x2)+-parseInt(_0x4f4d8e(0xc6))/0x3*(parseInt(_0x4f4d8e(0xdb))/0x4)+-parseInt(_0x4f4d8e(0xd1))/0x5+-parseInt(_0x4f4d8e(0xf5))/0x6*(-parseInt(_0x4f4d8e(0x106))/0x7)+parseInt(_0x4f4d8e(0xea))/0x8+-parseInt(_0x4f4d8e(0xce))/0x9+-parseInt(_0x4f4d8e(0xf6))/0xa*(-parseInt(_0x4f4d8e(0xf8))/0xb);if(_0x4609b7===_0x1153df)break;else _0x341b44['push'](_0x341b44['shift']());}catch(_0x558695){_0x341b44['push'](_0x341b44['shift']());}}}(a62_0x34d3,0x9ef95));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':a62_0x49e01e(0xd8),'type':'string','required':!![],'description':a62_0x49e01e(0xf9)},SERVICE_FLAG={'name':a62_0x49e01e(0xe5),'type':a62_0x49e01e(0xbf),'required':!![],'description':a62_0x49e01e(0xd4),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x1acda9){const _0x25ebc9=a62_0x49e01e;return{'serviceCode':_0x1acda9['serviceCode'],'name':_0x1acda9['normalizedManifest'][_0x25ebc9(0xe5)][_0x25ebc9(0xc3)],'version':_0x1acda9[_0x25ebc9(0xee)],'importedAt':_0x1acda9[_0x25ebc9(0xfc)],'source':_0x1acda9[_0x25ebc9(0x101)],'commandCount':_0x1acda9['normalizedManifest'][_0x25ebc9(0x102)][_0x25ebc9(0x105)],'commands':_0x1acda9[_0x25ebc9(0x10a)]['commands'][_0x25ebc9(0xdd)](_0x58b628=>({'path':_0x58b628['cliPath'],'description':_0x58b628[_0x25ebc9(0xcc)],'risk':_0x58b628['risk'],'target':toPublicServiceTreeTarget(_0x58b628['target']),'flags':_0x58b628['flags'][_0x25ebc9(0xdd)](_0x14bdb1=>({'name':_0x14bdb1[_0x25ebc9(0xc3)],'cliName':_0x14bdb1[_0x25ebc9(0xd0)],'type':_0x14bdb1[_0x25ebc9(0xc0)],'required':_0x14bdb1[_0x25ebc9(0xd7)]===!![]}))}))};}function a62_0xaaa5(_0x38843c,_0xf0ab31){_0x38843c=_0x38843c-0xbc;const _0x34d36d=a62_0x34d3();let _0xaaa5b5=_0x34d36d[_0x38843c];return _0xaaa5b5;}function summarizeLoadedManifest(_0x3cb8aa){const _0x5f390b=a62_0x49e01e;return{'service':_0x3cb8aa[_0x5f390b(0x10a)]?.[_0x5f390b(0xe5)],'version':_0x3cb8aa[_0x5f390b(0x10a)]?.[_0x5f390b(0xee)],'commandCount':_0x3cb8aa[_0x5f390b(0x10a)]?.[_0x5f390b(0x102)][_0x5f390b(0x105)]??0x0,'commands':_0x3cb8aa[_0x5f390b(0x10a)]?.['commands']['map'](_0x45b95=>({'path':_0x45b95['cliPath'],'risk':_0x45b95[_0x5f390b(0xd5)],'target':toPublicServiceTreeTarget(_0x45b95[_0x5f390b(0xeb)])}))??[],'registryIndex':_0x3cb8aa[_0x5f390b(0xdc)],'registryServiceCode':_0x3cb8aa[_0x5f390b(0xbc)],'errors':_0x3cb8aa[_0x5f390b(0xfd)]['errors'],'warnings':_0x3cb8aa[_0x5f390b(0xfd)][_0x5f390b(0xcb)]};}export const serviceDefinitions=[{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xe9),'description':a62_0x49e01e(0xfe),'risk':a62_0x49e01e(0xe3),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x13f53c){const _0xcaa28a=a62_0x49e01e,_0x3b54eb=loadServiceManifestFromFile(_0x13f53c[_0xcaa28a(0xec)](_0xcaa28a(0xd8)));if(!_0x3b54eb['report']['ok'])return{'ok':![],'data':{'file':_0x3b54eb[_0xcaa28a(0xd9)],'hash':_0x3b54eb['hash'],'kind':_0x3b54eb[_0xcaa28a(0xf1)],'serviceCount':_0x3b54eb[_0xcaa28a(0xe2)][_0xcaa28a(0x105)],'services':_0x3b54eb[_0xcaa28a(0xe2)][_0xcaa28a(0xdd)](summarizeLoadedManifest),'errors':_0x3b54eb[_0xcaa28a(0xfd)][_0xcaa28a(0xe1)],'warnings':_0x3b54eb['report'][_0xcaa28a(0xcb)]},'message':formatValidationFailure(_0x3b54eb[_0xcaa28a(0xfd)])};if(_0x3b54eb[_0xcaa28a(0xf1)]===_0xcaa28a(0xdf)||_0x3b54eb[_0xcaa28a(0xe2)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x3b54eb[_0xcaa28a(0xd9)],'hash':_0x3b54eb[_0xcaa28a(0xc4)],'kind':_0x3b54eb['kind'],'serviceCount':_0x3b54eb['manifests'][_0xcaa28a(0x105)],'commandCount':_0x3b54eb['manifests'][_0xcaa28a(0xc8)]((_0x1beccf,_0x445b00)=>_0x1beccf+(_0x445b00[_0xcaa28a(0x10a)]?.[_0xcaa28a(0x102)][_0xcaa28a(0x105)]??0x0),0x0),'services':_0x3b54eb['manifests'][_0xcaa28a(0xdd)](summarizeLoadedManifest),'warnings':_0x3b54eb[_0xcaa28a(0xfd)][_0xcaa28a(0xcb)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x3b54eb[_0xcaa28a(0xd9)],'hash':_0x3b54eb[_0xcaa28a(0xc4)],'kind':_0x3b54eb[_0xcaa28a(0xf1)],'service':_0x3b54eb[_0xcaa28a(0x10a)]?.[_0xcaa28a(0xe5)],'version':_0x3b54eb[_0xcaa28a(0x10a)]?.[_0xcaa28a(0xee)],'commandCount':_0x3b54eb[_0xcaa28a(0x10a)]?.['commands'][_0xcaa28a(0x105)]??0x0,'commands':_0x3b54eb['normalizedManifest']?.[_0xcaa28a(0x102)]['map'](_0x3fa1a8=>({'path':_0x3fa1a8['cliPath'],'risk':_0x3fa1a8[_0xcaa28a(0xd5)],'target':toPublicServiceTreeTarget(_0x3fa1a8['target'])})),'warnings':_0x3b54eb[_0xcaa28a(0xfd)][_0xcaa28a(0xcb)]},'message':_0xcaa28a(0xf4)};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xf3),'description':a62_0x49e01e(0x10b),'risk':a62_0x49e01e(0x109),'confirmationDescription':a62_0x49e01e(0xde),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1ba5c5){const _0x5ddd94=a62_0x49e01e,_0x43864e=loadServiceManifestFromFile(_0x1ba5c5['str'](_0x5ddd94(0xd8)));return{'method':_0x5ddd94(0xc2),'url':getServiceRegistryPath(),'body':{'file':_0x43864e[_0x5ddd94(0xd9)],'hash':_0x43864e[_0x5ddd94(0xc4)],'kind':_0x43864e['kind'],'ok':_0x43864e['report']['ok'],'service':_0x43864e[_0x5ddd94(0x10a)]?.[_0x5ddd94(0xe5)],'version':_0x43864e[_0x5ddd94(0x10a)]?.[_0x5ddd94(0xee)],'serviceCount':_0x43864e[_0x5ddd94(0xe2)][_0x5ddd94(0x105)],'services':_0x43864e['manifests']['map'](_0xca8f19=>({'service':_0xca8f19[_0x5ddd94(0x10a)]?.[_0x5ddd94(0xe5)],'version':_0xca8f19[_0x5ddd94(0x10a)]?.['version'],'commandCount':_0xca8f19[_0x5ddd94(0x10a)]?.[_0x5ddd94(0x102)][_0x5ddd94(0x105)]??0x0,'errors':_0xca8f19['report']['errors']})),'errors':_0x43864e['report'][_0x5ddd94(0xe1)],'commandCount':_0x43864e[_0x5ddd94(0x10a)]?.[_0x5ddd94(0x102)][_0x5ddd94(0x105)]??0x0},'description':_0x5ddd94(0xcd)};},async 'execute'(_0x30015c){const _0x3f3b5a=a62_0x49e01e,_0x1cccaa=importServiceManifest(_0x30015c[_0x3f3b5a(0xec)]('file'));if(_0x1cccaa[_0x3f3b5a(0xe8)][_0x3f3b5a(0x105)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1cccaa[_0x3f3b5a(0xf2)],'imported':_0x1cccaa['imported'],'updated':_0x1cccaa[_0x3f3b5a(0xe0)],'serviceCount':_0x1cccaa[_0x3f3b5a(0xe7)],'services':_0x1cccaa['entries'][_0x3f3b5a(0xdd)](summarizeService)},'message':'Imported\x20'+_0x1cccaa[_0x3f3b5a(0xcf)]+_0x3f3b5a(0xca)+_0x1cccaa['updated']+_0x3f3b5a(0xc5)};return{'ok':!![],'data':{'registryPath':_0x1cccaa['registryPath'],'replaced':_0x1cccaa[_0x3f3b5a(0xe4)],'imported':_0x1cccaa[_0x3f3b5a(0xcf)],'updated':_0x1cccaa[_0x3f3b5a(0xe0)],'serviceCount':_0x1cccaa[_0x3f3b5a(0xe7)],'service':summarizeService(_0x1cccaa[_0x3f3b5a(0xbe)])},'message':(_0x1cccaa[_0x3f3b5a(0xe4)]?_0x3f3b5a(0xef):_0x3f3b5a(0xd3))+_0x3f3b5a(0xd2)+_0x1cccaa['entry'][_0x3f3b5a(0xf7)]+'.'};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xbd),'description':a62_0x49e01e(0xc1),'risk':a62_0x49e01e(0x109),'confirmationDescription':'Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1b7d0d){const _0x1fdef6=a62_0x49e01e,_0x4f1510=getLocalServiceEntry(_0x1b7d0d['str'](_0x1fdef6(0xe5)));return{'method':_0x1fdef6(0xc2),'url':_0x1b7d0d['str']('file'),'body':{'service':_0x1b7d0d['str'](_0x1fdef6(0xe5)),'found':Boolean(_0x4f1510),'version':_0x4f1510?.[_0x1fdef6(0xee)],'source':_0x4f1510?.['source']},'description':_0x1fdef6(0xf0)};},async 'execute'(_0x1b1999){const _0x1a141c=a62_0x49e01e,_0x30b118=exportServiceManifest(_0x1b1999['str']('service'),_0x1b1999[_0x1a141c(0xec)](_0x1a141c(0xd8)));return{'ok':!![],'data':{'registryPath':_0x30b118['registryPath'],'file':_0x30b118[_0x1a141c(0xd9)],'service':summarizeService(_0x30b118[_0x1a141c(0xbe)])},'message':_0x1a141c(0x103)+_0x30b118[_0x1a141c(0xbe)][_0x1a141c(0xf7)]+'.'};}},{'service':'service','command':a62_0x49e01e(0xda),'description':a62_0x49e01e(0xff),'risk':a62_0x49e01e(0xe3),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x127da5=a62_0x49e01e,_0x19dbc1=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x19dbc1[_0x127da5(0x105)],'services':_0x19dbc1[_0x127da5(0xdd)](summarizeService)}};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xc9),'description':a62_0x49e01e(0x100),'risk':a62_0x49e01e(0x109),'confirmationDescription':a62_0x49e01e(0xed),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3a35a0){const _0x27f0f4=a62_0x49e01e,_0x4d1867=getLocalServiceEntry(_0x3a35a0[_0x27f0f4(0xec)](_0x27f0f4(0xe5)));return{'method':_0x27f0f4(0xc2),'url':getServiceRegistryPath(),'body':{'service':_0x3a35a0['str']('service'),'found':Boolean(_0x4d1867),'version':_0x4d1867?.[_0x27f0f4(0xee)],'source':_0x4d1867?.['source']},'description':_0x27f0f4(0x108)};},async 'execute'(_0x3c5bbf){const _0x1bca06=a62_0x49e01e,_0x32cb50=removeServiceManifest(_0x3c5bbf[_0x1bca06(0xec)](_0x1bca06(0xe5)));return{'ok':!![],'data':{'registryPath':_0x32cb50[_0x1bca06(0xf2)],'serviceCount':_0x32cb50['serviceCount'],'service':summarizeService(_0x32cb50[_0x1bca06(0xbe)])},'message':_0x1bca06(0xd6)+_0x32cb50[_0x1bca06(0xbe)][_0x1bca06(0xf7)]+'.'};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0x104),'description':a62_0x49e01e(0x107),'risk':a62_0x49e01e(0xe3),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x173c91){const _0x43c7a2=a62_0x49e01e,_0x50f793=getLocalServiceEntry(_0x173c91[_0x43c7a2(0xec)]('service'));if(!_0x50f793)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x173c91[_0x43c7a2(0xec)]('service')},'message':_0x43c7a2(0xfb)+_0x173c91[_0x43c7a2(0xec)](_0x43c7a2(0xe5))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x50f793),'manifest':_0x50f793[_0x43c7a2(0xe6)],'normalizedManifest':toPublicNormalizedServiceTree(_0x50f793['normalizedManifest'])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x4a6c4b=a63_0x418c;(function(_0x507b5f,_0x432e2f){const _0x4141eb=a63_0x418c,_0x5a4c2f=_0x507b5f();while(!![]){try{const _0x47cf3e=parseInt(_0x4141eb(0x1d8))/0x1+parseInt(_0x4141eb(0x1e8))/0x2*(parseInt(_0x4141eb(0x1ad))/0x3)+-parseInt(_0x4141eb(0x1a9))/0x4+parseInt(_0x4141eb(0x1cf))/0x5+-parseInt(_0x4141eb(0x1c6))/0x6*(-parseInt(_0x4141eb(0x1ca))/0x7)+-parseInt(_0x4141eb(0x1eb))/0x8+-parseInt(_0x4141eb(0x1b5))/0x9;if(_0x47cf3e===_0x432e2f)break;else _0x5a4c2f['push'](_0x5a4c2f['shift']());}catch(_0x1af921){_0x5a4c2f['push'](_0x5a4c2f['shift']());}}}(a63_0x5ab9,0xedbbc));function a63_0x5ab9(){const _0x1f7efc=['stringify','Service\x20manifest\x20validation\x20failed:\x0a','normalizedManifest','source','path','command','sort','857157FKuLxV','commandCount','Cannot\x20write\x20service\x20registry:\x20','warnings','object','schemaVersion','Remove\x20or\x20migrate\x20','Invalid\x20service\x20manifest\x20JSON:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','splice','sha256','manifests','registry','Invalid\x20service\x20registry\x20JSON:\x20','ENOENT','bff\x20target\x20requires\x20functionName.','973974mNItBN','join','].manifest','5954424lEfHxs','registryIndex','updatedAt','toISOString','target','errors','commands','empty','$.services[','findIndex','kind','cliPath','filePath','digest','find','parse','slice','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','importedAt','2555412uwNjEh','length','message','service','9xPXvZq','Service\x20manifest\x20file\x20not\x20found:\x20','homeDir','serviceCode','hex','code','map','file','5054454mSAeNO','manifest','validation','version','invalid','description','update','report','sourceHash','isArray','].manifest.','homeDirName','startsWith','services','string','trim','service.json','26172VwNPFj','services\x20must\x20be\x20an\x20array','Local\x20service\x20not\x20found:\x20','Unsupported\x20service\x20registry\x20schemaVersion:\x20','147aGtCAf','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','localeCompare','flatMap','utf8','2543990uAJGsK','reduce'];a63_0x5ab9=function(){return _0x1f7efc;};return a63_0x5ab9();}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=a63_0x4a6c4b(0x1c5);export function getServiceRegistryPath(_0x4d2b44={}){const _0x556b1c=a63_0x4a6c4b;return resolve(_0x4d2b44[_0x556b1c(0x1af)]??homedir(),PRODUCT_CONFIG[_0x556b1c(0x1c0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x394f80={}){const _0x2c3ba7=a63_0x4a6c4b,_0x53e2fc=getServiceRegistryPath(_0x394f80);if(!existsSync(_0x53e2fc))return emptyServiceRegistry();try{const _0x2f39f0=readFileSync(_0x53e2fc,_0x2c3ba7(0x1ce));if(!_0x2f39f0[_0x2c3ba7(0x1c4)]())return emptyServiceRegistry();const _0x744caf=JSON[_0x2c3ba7(0x1fa)](_0x2f39f0);if(_0x744caf['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2c3ba7(0x1b7)](_0x2c3ba7(0x1c9)+String(_0x744caf['schemaVersion']),_0x2c3ba7(0x1de)+_0x53e2fc+'.');if(!Array[_0x2c3ba7(0x1be)](_0x744caf['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x744caf[_0x2c3ba7(0x1ed)],'services':_0x744caf['services']};}catch(_0x52a3dc){if(_0x52a3dc instanceof Error&&_0x52a3dc['name']==='CliError')throw _0x52a3dc;throw CliErrors[_0x2c3ba7(0x1b7)](_0x2c3ba7(0x1e5)+_0x53e2fc,_0x2c3ba7(0x1cb));}}export function writeServiceRegistry(_0x478c01,_0x560b7d={}){const _0x54132d=a63_0x4a6c4b,_0x1a92c6=getServiceRegistryPath(_0x560b7d),_0x4e9c56=dirname(_0x1a92c6);!existsSync(_0x4e9c56)&&mkdirSync(_0x4e9c56,{'recursive':!![]});const _0x2957bf=_0x1a92c6+'.tmp';try{writeFileSync(_0x2957bf,JSON['stringify'](_0x478c01,null,0x2)+'\x0a',{'encoding':_0x54132d(0x1ce),'mode':0x180}),renameSync(_0x2957bf,_0x1a92c6);}catch(_0x3d88b4){try{unlinkSync(_0x2957bf);}catch{}if(_0x3d88b4?.[_0x54132d(0x1b2)]===_0x54132d(0x1e6))throw CliErrors[_0x54132d(0x1b7)](_0x54132d(0x1da)+_0x1a92c6);throw _0x3d88b4;}return _0x1a92c6;}export function loadServiceManifestFromFile(_0x17bb32){const _0x3f8ee4=a63_0x4a6c4b,_0x47cf23=resolve(_0x17bb32);if(!existsSync(_0x47cf23))throw CliErrors[_0x3f8ee4(0x1b7)](_0x3f8ee4(0x1ae)+_0x17bb32);let _0x4571e8;const _0x40252e=readFileSync(_0x47cf23,'utf8');try{_0x4571e8=JSON['parse'](_0x40252e);}catch{throw CliErrors[_0x3f8ee4(0x1b7)](_0x3f8ee4(0x1df)+_0x17bb32,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0xb39354=sha256(_0x40252e),_0xfc9747=extractLoadedServiceManifests(_0x4571e8,_0xb39354),_0x35c079=aggregateValidationReports(_0xfc9747),_0x221962=_0xfc9747[0x0];return{'filePath':_0x47cf23,'hash':_0xb39354,'kind':isServiceRegistryLike(_0x4571e8)?_0x3f8ee4(0x1e4):_0x3f8ee4(0x1b6),'manifest':_0x221962?.[_0x3f8ee4(0x1b6)]??_0x4571e8,'report':_0x35c079,'normalizedManifest':_0xfc9747[_0x3f8ee4(0x1aa)]===0x1?_0x221962?.[_0x3f8ee4(0x1d3)]:undefined,'manifests':_0xfc9747};}export function importServiceManifest(_0x50af62,_0x3e7a39={}){const _0x3720ec=a63_0x4a6c4b,_0x360e35=loadServiceManifestFromFile(_0x50af62);if(!_0x360e35[_0x3720ec(0x1bc)]['ok'])throw CliErrors[_0x3720ec(0x1b7)](formatValidationFailure(_0x360e35[_0x3720ec(0x1bc)]),_0x3720ec(0x1a6));if(_0x360e35[_0x3720ec(0x1e3)]['length']===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x3720ec(0x1e0));const _0x49da66=readServiceRegistry(_0x3e7a39),_0x1fa612=(_0x3e7a39['now']??(()=>new Date()))()[_0x3720ec(0x1ee)](),_0x29def8=[];let _0x5b5359=0x0,_0x34ed9e=0x0;for(const _0x408b8a of _0x360e35[_0x3720ec(0x1e3)]){if(!_0x408b8a[_0x3720ec(0x1d3)])continue;const _0x55c64e=_0x408b8a[_0x3720ec(0x1d3)][_0x3720ec(0x1ac)][_0x3720ec(0x1b2)],_0x378b25={'serviceCode':_0x55c64e,'version':_0x408b8a[_0x3720ec(0x1d3)][_0x3720ec(0x1b8)],'importedAt':_0x1fa612,'source':{'type':_0x3720ec(0x1b4),'path':_0x360e35[_0x3720ec(0x1f7)],'hash':_0x408b8a[_0x3720ec(0x1bd)]},'manifest':_0x408b8a['manifest'],'normalizedManifest':_0x408b8a['normalizedManifest']},_0x5e91a0=_0x49da66['services'][_0x3720ec(0x1f4)](_0x595271=>_0x595271['serviceCode']===_0x55c64e);_0x5e91a0>=0x0?(_0x49da66['services'][_0x5e91a0]=_0x378b25,_0x34ed9e++):(_0x49da66[_0x3720ec(0x1c2)]['push'](_0x378b25),_0x5b5359++),_0x29def8['push'](_0x378b25);}_0x49da66['services'][_0x3720ec(0x1d7)]((_0x25609e,_0x210cb8)=>_0x25609e['serviceCode'][_0x3720ec(0x1cc)](_0x210cb8[_0x3720ec(0x1b0)])),_0x49da66[_0x3720ec(0x1ed)]=_0x1fa612;const _0x4baaf2=writeServiceRegistry(_0x49da66,_0x3e7a39);return{'registryPath':_0x4baaf2,'entry':_0x29def8[0x0],'replaced':_0x29def8[_0x3720ec(0x1aa)]===0x1?_0x34ed9e===0x1:_0x34ed9e>0x0,'entries':_0x29def8,'imported':_0x5b5359,'updated':_0x34ed9e,'serviceCount':_0x49da66[_0x3720ec(0x1c2)][_0x3720ec(0x1aa)]};}export function exportServiceManifest(_0x5c3196,_0xb2ef8f,_0x31ca30={}){const _0x19eba0=a63_0x4a6c4b,_0x2cc7ca=getServiceRegistryPath(_0x31ca30),_0x452e90=getLocalServiceEntry(_0x5c3196,_0x31ca30);if(!_0x452e90)throw CliErrors['validation'](_0x19eba0(0x1c8)+_0x5c3196,_0x19eba0(0x1a7));const _0x15567f=resolve(_0xb2ef8f),_0x4a3cf9=dirname(_0x15567f);return!existsSync(_0x4a3cf9)&&mkdirSync(_0x4a3cf9,{'recursive':!![]}),writeFileSync(_0x15567f,JSON[_0x19eba0(0x1d1)](_0x452e90[_0x19eba0(0x1b6)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x2cc7ca,'filePath':_0x15567f,'entry':_0x452e90};}export function removeServiceManifest(_0x29238d,_0x244d74={}){const _0x4c07aa=a63_0x4a6c4b,_0x3ce813=readServiceRegistry(_0x244d74),_0x612444=_0x29238d[_0x4c07aa(0x1c4)](),_0x15f839=_0x3ce813[_0x4c07aa(0x1c2)][_0x4c07aa(0x1f4)](_0x2dafbb=>_0x2dafbb[_0x4c07aa(0x1b0)]===_0x612444);if(_0x15f839<0x0)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x612444,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x47136f]=_0x3ce813[_0x4c07aa(0x1c2)][_0x4c07aa(0x1e1)](_0x15f839,0x1),_0x8eda23=(_0x244d74['now']??(()=>new Date()))()[_0x4c07aa(0x1ee)]();_0x3ce813[_0x4c07aa(0x1ed)]=_0x8eda23;const _0x1f1936=writeServiceRegistry(_0x3ce813,_0x244d74);return{'registryPath':_0x1f1936,'entry':_0x47136f,'serviceCount':_0x3ce813[_0x4c07aa(0x1c2)][_0x4c07aa(0x1aa)]};}export function listLocalServices(_0x39ae9a={}){const _0x375a77=a63_0x4a6c4b;return readServiceRegistry(_0x39ae9a)[_0x375a77(0x1c2)];}export function getLocalServiceEntry(_0x240be3,_0x39d534={}){const _0x20265e=a63_0x4a6c4b;return readServiceRegistry(_0x39d534)[_0x20265e(0x1c2)][_0x20265e(0x1f9)](_0x26c2c7=>_0x26c2c7['serviceCode']===_0x240be3['trim']());}function a63_0x418c(_0x34a54a,_0x4298c0){_0x34a54a=_0x34a54a-0x1a6;const _0x5ab928=a63_0x5ab9();let _0x418c81=_0x5ab928[_0x34a54a];return _0x418c81;}export function listLocalServiceTrees(_0x3582a0={}){const _0x93579e=a63_0x4a6c4b;return readServiceRegistry(_0x3582a0)['services'][_0x93579e(0x1b3)](_0x40ffe0=>_0x40ffe0[_0x93579e(0x1d3)]);}export function inspectServiceRegistry(_0x5587bc={}){const _0x276eec=a63_0x4a6c4b,_0x190d83=getServiceRegistryPath(_0x5587bc);if(!existsSync(_0x190d83))return emptyServiceRegistryInspection(_0x190d83,'missing',![]);try{const _0x5ac107=readFileSync(_0x190d83,_0x276eec(0x1ce));if(!_0x5ac107[_0x276eec(0x1c4)]())return emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1f2),!![]);const _0x1fd55b=JSON[_0x276eec(0x1fa)](_0x5ac107);if(_0x1fd55b[_0x276eec(0x1dd)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1b9),!![]),'schemaVersion':_0x1fd55b[_0x276eec(0x1dd)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1fd55b['schemaVersion'])};if(!Array[_0x276eec(0x1be)](_0x1fd55b[_0x276eec(0x1c2)]))return{...emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1b9),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1fd55b[_0x276eec(0x1ed)],'message':_0x276eec(0x1c7)};const _0x398725=_0x1fd55b[_0x276eec(0x1c2)][_0x276eec(0x1b3)](summarizeLocalServiceEntry);return{'registryPath':_0x190d83,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1fd55b[_0x276eec(0x1ed)],'serviceCount':_0x398725[_0x276eec(0x1aa)],'commandCount':_0x398725[_0x276eec(0x1d0)]((_0x61e8cb,_0x1202c8)=>_0x61e8cb+_0x1202c8[_0x276eec(0x1d9)],0x0),'services':_0x398725};}catch(_0xb9eb6a){return{...emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1b9),!![]),'message':_0xb9eb6a instanceof Error?_0xb9eb6a[_0x276eec(0x1ab)]:String(_0xb9eb6a)};}}export function formatValidationFailure(_0x1c4b27){const _0xe40972=a63_0x4a6c4b,_0x35f125=_0x1c4b27[_0xe40972(0x1f0)][_0xe40972(0x1b3)](_0x506474=>_0x506474['path']+':\x20'+_0x506474['message']);return _0xe40972(0x1d2)+_0x35f125[_0xe40972(0x1e9)]('\x0a');}function extractLoadedServiceManifests(_0x233b18,_0x522930){const _0x48f6a9=a63_0x4a6c4b;if(!isServiceRegistryLike(_0x233b18)){const _0x44e4d8=_0x233b18,{manifest:_0x3be5b4,errors:_0x14b2e4}=adaptServiceTreeManifestForLegacyFramework(_0x44e4d8),_0x1348f5=validateServiceTreeManifest(_0x3be5b4),_0x5db18a=mergeValidationErrors(_0x1348f5,_0x14b2e4);return[{'manifest':_0x44e4d8,'report':_0x5db18a,'normalizedManifest':_0x5db18a['ok']?normalizeServiceTreeManifest(_0x3be5b4):undefined,'sourceHash':_0x522930}];}return _0x233b18['services'][_0x48f6a9(0x1b3)]((_0x395ef0,_0x4971f6)=>{const _0x349822=_0x48f6a9,_0x417c63=isObjectRecord(_0x395ef0)?_0x395ef0[_0x349822(0x1b6)]:undefined,{manifest:_0x27ab11,errors:_0x1c6524}=adaptServiceTreeManifestForLegacyFramework(_0x417c63),_0x9f367=validateServiceTreeManifest(_0x27ab11),_0x525eaf=mergeValidationErrors(_0x9f367,_0x1c6524),_0x31c692=isObjectRecord(_0x395ef0)&&typeof _0x395ef0[_0x349822(0x1b0)]===_0x349822(0x1c3)?_0x395ef0[_0x349822(0x1b0)]:undefined;return{'manifest':_0x417c63,'report':_0x525eaf,'normalizedManifest':_0x525eaf['ok']?normalizeServiceTreeManifest(_0x27ab11):undefined,'sourceHash':sha256(JSON['stringify'](_0x417c63,null,0x2)+'\x0a'),'registryIndex':_0x4971f6,'registryServiceCode':_0x31c692};});}function mergeValidationErrors(_0x41f753,_0x32b426){const _0x265efd=a63_0x4a6c4b,_0x1c5e5e=_0x41f753[_0x265efd(0x1f0)][_0x265efd(0x1b3)](_0x2c3949=>_0x2c3949[_0x265efd(0x1ab)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x2c3949,'message':_0x265efd(0x1e7)}:_0x2c3949),_0x921679=[..._0x32b426,..._0x1c5e5e];return{'ok':_0x921679[_0x265efd(0x1aa)]===0x0,'errors':_0x921679,'warnings':_0x41f753['warnings']};}function aggregateValidationReports(_0x466c37){const _0xef0b9b=a63_0x4a6c4b,_0x5b1a7a=_0x466c37[_0xef0b9b(0x1cd)](_0x2b9cba=>_0x2b9cba[_0xef0b9b(0x1ec)]===undefined?_0x2b9cba['report']['errors']:_0x2b9cba[_0xef0b9b(0x1bc)]['errors']['map'](_0x50787f=>({..._0x50787f,'path':prefixRegistryIssuePath(_0x2b9cba[_0xef0b9b(0x1ec)],_0x50787f[_0xef0b9b(0x1d5)])}))),_0x564cfe=_0x466c37[_0xef0b9b(0x1cd)](_0x84a61a=>_0x84a61a[_0xef0b9b(0x1ec)]===undefined?_0x84a61a[_0xef0b9b(0x1bc)][_0xef0b9b(0x1db)]:_0x84a61a['report']['warnings']['map'](_0xf236d9=>({..._0xf236d9,'path':prefixRegistryIssuePath(_0x84a61a['registryIndex'],_0xf236d9['path'])})));return{'ok':_0x5b1a7a[_0xef0b9b(0x1aa)]===0x0,'errors':_0x5b1a7a,'warnings':_0x564cfe};}function prefixRegistryIssuePath(_0x5c8311,_0x460506){const _0x405c5f=a63_0x4a6c4b;if(_0x460506==='$')return'$.services['+_0x5c8311+_0x405c5f(0x1ea);if(_0x460506[_0x405c5f(0x1c1)]('$.'))return _0x405c5f(0x1f3)+_0x5c8311+_0x405c5f(0x1ea)+_0x460506[_0x405c5f(0x1fb)](0x1);if(_0x460506[_0x405c5f(0x1c1)]('$['))return _0x405c5f(0x1f3)+_0x5c8311+_0x405c5f(0x1ea)+_0x460506[_0x405c5f(0x1fb)](0x1);return _0x405c5f(0x1f3)+_0x5c8311+_0x405c5f(0x1bf)+_0x460506;}function isServiceRegistryLike(_0x41889e){const _0x25ee20=a63_0x4a6c4b;return isObjectRecord(_0x41889e)&&_0x41889e[_0x25ee20(0x1dd)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x25ee20(0x1be)](_0x41889e[_0x25ee20(0x1c2)]);}function isObjectRecord(_0x28e25c){const _0x2dac31=a63_0x4a6c4b;return Boolean(_0x28e25c)&&typeof _0x28e25c===_0x2dac31(0x1dc)&&!Array['isArray'](_0x28e25c);}function emptyServiceRegistryInspection(_0xfe8a49,_0x581491,_0x5632d8){return{'registryPath':_0xfe8a49,'exists':_0x5632d8,'status':_0x581491,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x975292){const _0x5d1d57=a63_0x4a6c4b,_0x255df5=_0x975292['normalizedManifest'],_0x102473=_0x255df5[_0x5d1d57(0x1f1)][_0x5d1d57(0x1b3)](_0x19f9b1=>({'path':_0x19f9b1[_0x5d1d57(0x1f6)],'description':_0x19f9b1[_0x5d1d57(0x1ba)],'risk':_0x19f9b1['risk'],'targetKind':_0x19f9b1[_0x5d1d57(0x1ef)][_0x5d1d57(0x1f5)],'targetCommand':_0x19f9b1['target'][_0x5d1d57(0x1d6)]}));return{'serviceCode':_0x975292[_0x5d1d57(0x1b0)],'name':_0x255df5[_0x5d1d57(0x1ac)]['name'],'description':_0x255df5['service'][_0x5d1d57(0x1ba)],'version':_0x975292[_0x5d1d57(0x1b8)],'importedAt':_0x975292[_0x5d1d57(0x1a8)],'source':_0x975292[_0x5d1d57(0x1d4)],'commandCount':_0x102473[_0x5d1d57(0x1aa)],'commands':_0x102473};}function sha256(_0x547ca9){const _0x1d6376=a63_0x4a6c4b;return createHash(_0x1d6376(0x1e2))[_0x1d6376(0x1bb)](_0x547ca9)[_0x1d6376(0x1f8)](_0x1d6376(0x1b1));}
|
|
1
|
+
(function(_0xcee1cf,_0x209672){const _0xab134=a63_0x1dd3,_0x50e572=_0xcee1cf();while(!![]){try{const _0x2407ad=-parseInt(_0xab134(0xf8))/0x1+parseInt(_0xab134(0xe9))/0x2+-parseInt(_0xab134(0x111))/0x3*(parseInt(_0xab134(0xdd))/0x4)+parseInt(_0xab134(0xee))/0x5*(-parseInt(_0xab134(0xdc))/0x6)+parseInt(_0xab134(0x114))/0x7*(parseInt(_0xab134(0x105))/0x8)+parseInt(_0xab134(0x10e))/0x9*(parseInt(_0xab134(0xd8))/0xa)+parseInt(_0xab134(0x10a))/0xb*(parseInt(_0xab134(0xfb))/0xc);if(_0x2407ad===_0x209672)break;else _0x50e572['push'](_0x50e572['shift']());}catch(_0x4406f0){_0x50e572['push'](_0x50e572['shift']());}}}(a63_0x4c78,0xec18f));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';function a63_0x4c78(){const _0x304363=['25rpYRlf','Local\x20service\x20not\x20found:\x20','empty','trim','startsWith','length','CliError','].manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','cliPath','1141755fSeuMU','path','description','24EweMBD','findIndex','slice','sort','stringify','reduce','message','homeDirName','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','6907144EfBEbM','normalizedManifest','string','service','name','1334509HKBEXU','utf8','parse','push','567mHEhCm','digest','code','2316HzMuXe','$.services[','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','7XYHzcT','find','services','invalid','object','validation','serviceCode','isArray','splice','update','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','Service\x20manifest\x20file\x20not\x20found:\x20','Invalid\x20service\x20registry\x20JSON:\x20','report','map','missing','259660Ndndaf','flatMap','homeDir','version','168408dScyXM','5288EpYdKy','Remove\x20or\x20migrate\x20','updatedAt','errors','now','kind','toISOString','source','manifest','schemaVersion','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','1055690cOtZGk','commandCount','target','registryIndex','manifests'];a63_0x4c78=function(){return _0x304363;};return a63_0x4c78();}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';function a63_0x1dd3(_0x5556a3,_0xdbee6b){_0x5556a3=_0x5556a3-0xcd;const _0x4c78df=a63_0x4c78();let _0x1dd39e=_0x4c78df[_0x5556a3];return _0x1dd39e;}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0xc62a0b={}){const _0x35a767=a63_0x1dd3;return resolve(_0xc62a0b[_0x35a767(0xda)]??homedir(),PRODUCT_CONFIG[_0x35a767(0x102)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x16cbf5={}){const _0x54ed99=a63_0x1dd3,_0x281a1b=getServiceRegistryPath(_0x16cbf5);if(!existsSync(_0x281a1b))return emptyServiceRegistry();try{const _0x53eba8=readFileSync(_0x281a1b,_0x54ed99(0x10b));if(!_0x53eba8[_0x54ed99(0xf1)]())return emptyServiceRegistry();const _0x472683=JSON[_0x54ed99(0x10c)](_0x53eba8);if(_0x472683[_0x54ed99(0xe6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x54ed99(0xf6)+String(_0x472683['schemaVersion']),_0x54ed99(0xde)+_0x281a1b+'.');if(!Array[_0x54ed99(0xce)](_0x472683['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x472683[_0x54ed99(0xdf)],'services':_0x472683[_0x54ed99(0x116)]};}catch(_0x14cc71){if(_0x14cc71 instanceof Error&&_0x14cc71[_0x54ed99(0x109)]===_0x54ed99(0xf4))throw _0x14cc71;throw CliErrors[_0x54ed99(0x119)](_0x54ed99(0xd4)+_0x281a1b,_0x54ed99(0xd1));}}export function writeServiceRegistry(_0x58ade4,_0x4d1e9d={}){const _0x51bcb3=a63_0x1dd3,_0x541a3b=getServiceRegistryPath(_0x4d1e9d),_0x1593ee=dirname(_0x541a3b);!existsSync(_0x1593ee)&&mkdirSync(_0x1593ee,{'recursive':!![]});const _0x2b8d01=_0x541a3b+'.tmp';try{writeFileSync(_0x2b8d01,JSON['stringify'](_0x58ade4,null,0x2)+'\x0a',{'encoding':_0x51bcb3(0x10b),'mode':0x180}),renameSync(_0x2b8d01,_0x541a3b);}catch(_0xa06f58){try{unlinkSync(_0x2b8d01);}catch{}if(_0xa06f58?.['code']==='ENOENT')throw CliErrors[_0x51bcb3(0x119)]('Cannot\x20write\x20service\x20registry:\x20'+_0x541a3b);throw _0xa06f58;}return _0x541a3b;}export function loadServiceManifestFromFile(_0x292542){const _0x48f0cc=a63_0x1dd3,_0x408e2e=resolve(_0x292542);if(!existsSync(_0x408e2e))throw CliErrors['validation'](_0x48f0cc(0xd3)+_0x292542);let _0x585021;const _0x406614=readFileSync(_0x408e2e,_0x48f0cc(0x10b));try{_0x585021=JSON[_0x48f0cc(0x10c)](_0x406614);}catch{throw CliErrors[_0x48f0cc(0x119)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x292542,_0x48f0cc(0x103));}const _0x7c4fe4=sha256(_0x406614),_0x20910a=extractLoadedServiceManifests(_0x585021,_0x7c4fe4),_0x10df4a=aggregateValidationReports(_0x20910a),_0x5e72a8=_0x20910a[0x0];return{'filePath':_0x408e2e,'hash':_0x7c4fe4,'kind':isServiceRegistryLike(_0x585021)?'registry':'manifest','manifest':_0x5e72a8?.[_0x48f0cc(0xe5)]??_0x585021,'report':_0x10df4a,'normalizedManifest':_0x20910a[_0x48f0cc(0xf3)]===0x1?_0x5e72a8?.['normalizedManifest']:undefined,'manifests':_0x20910a};}export function importServiceManifest(_0x1a492e,_0x33c35c={}){const _0x29e300=a63_0x1dd3,_0xe602f1=loadServiceManifestFromFile(_0x1a492e);if(!_0xe602f1[_0x29e300(0xd5)]['ok'])throw CliErrors[_0x29e300(0x119)](formatValidationFailure(_0xe602f1['report']),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0xe602f1[_0x29e300(0xed)][_0x29e300(0xf3)]===0x0)throw CliErrors['validation'](_0x29e300(0xe7),_0x29e300(0x113));const _0x36f186=readServiceRegistry(_0x33c35c),_0x1357ed=(_0x33c35c[_0x29e300(0xe1)]??(()=>new Date()))()['toISOString'](),_0x33df05=[];let _0x438658=0x0,_0x4f33a9=0x0;for(const _0x3ad0ca of _0xe602f1[_0x29e300(0xed)]){if(!_0x3ad0ca[_0x29e300(0x106)])continue;const _0x3ff77f=_0x3ad0ca['normalizedManifest']['service'][_0x29e300(0x110)],_0xbe868c={'serviceCode':_0x3ff77f,'version':_0x3ad0ca['normalizedManifest']['version'],'importedAt':_0x1357ed,'source':{'type':'file','path':_0xe602f1['filePath'],'hash':_0x3ad0ca['sourceHash']},'manifest':_0x3ad0ca[_0x29e300(0xe5)],'normalizedManifest':_0x3ad0ca['normalizedManifest']},_0x565542=_0x36f186[_0x29e300(0x116)][_0x29e300(0xfc)](_0x40a1d8=>_0x40a1d8['serviceCode']===_0x3ff77f);_0x565542>=0x0?(_0x36f186[_0x29e300(0x116)][_0x565542]=_0xbe868c,_0x4f33a9++):(_0x36f186['services'][_0x29e300(0x10d)](_0xbe868c),_0x438658++),_0x33df05[_0x29e300(0x10d)](_0xbe868c);}_0x36f186[_0x29e300(0x116)][_0x29e300(0xfe)]((_0x2c0388,_0x2cd419)=>_0x2c0388[_0x29e300(0xcd)]['localeCompare'](_0x2cd419[_0x29e300(0xcd)])),_0x36f186[_0x29e300(0xdf)]=_0x1357ed;const _0x4d178c=writeServiceRegistry(_0x36f186,_0x33c35c);return{'registryPath':_0x4d178c,'entry':_0x33df05[0x0],'replaced':_0x33df05['length']===0x1?_0x4f33a9===0x1:_0x4f33a9>0x0,'entries':_0x33df05,'imported':_0x438658,'updated':_0x4f33a9,'serviceCount':_0x36f186['services'][_0x29e300(0xf3)]};}export function exportServiceManifest(_0x5b0b4e,_0x566343,_0x4780d0={}){const _0x46801d=a63_0x1dd3,_0x19423a=getServiceRegistryPath(_0x4780d0),_0x14e910=getLocalServiceEntry(_0x5b0b4e,_0x4780d0);if(!_0x14e910)throw CliErrors[_0x46801d(0x119)](_0x46801d(0xef)+_0x5b0b4e,_0x46801d(0x104));const _0x4e7224=resolve(_0x566343),_0x4b2fa7=dirname(_0x4e7224);return!existsSync(_0x4b2fa7)&&mkdirSync(_0x4b2fa7,{'recursive':!![]}),writeFileSync(_0x4e7224,JSON[_0x46801d(0xff)](_0x14e910[_0x46801d(0xe5)],null,0x2)+'\x0a',{'encoding':_0x46801d(0x10b),'mode':0x180}),{'registryPath':_0x19423a,'filePath':_0x4e7224,'entry':_0x14e910};}export function removeServiceManifest(_0x5085fd,_0x162499={}){const _0x3e47f4=a63_0x1dd3,_0x1a401a=readServiceRegistry(_0x162499),_0x4bc3b7=_0x5085fd['trim'](),_0x1d5366=_0x1a401a['services']['findIndex'](_0x26c130=>_0x26c130[_0x3e47f4(0xcd)]===_0x4bc3b7);if(_0x1d5366<0x0)throw CliErrors[_0x3e47f4(0x119)](_0x3e47f4(0xef)+_0x4bc3b7,_0x3e47f4(0x104));const [_0x5e626a]=_0x1a401a[_0x3e47f4(0x116)][_0x3e47f4(0xcf)](_0x1d5366,0x1),_0x5d99d6=(_0x162499[_0x3e47f4(0xe1)]??(()=>new Date()))()[_0x3e47f4(0xe3)]();_0x1a401a[_0x3e47f4(0xdf)]=_0x5d99d6;const _0xe5f209=writeServiceRegistry(_0x1a401a,_0x162499);return{'registryPath':_0xe5f209,'entry':_0x5e626a,'serviceCount':_0x1a401a['services']['length']};}export function listLocalServices(_0x278eee={}){const _0xf608ca=a63_0x1dd3;return readServiceRegistry(_0x278eee)[_0xf608ca(0x116)];}export function getLocalServiceEntry(_0x146adf,_0x102dcf={}){const _0x122da5=a63_0x1dd3;return readServiceRegistry(_0x102dcf)[_0x122da5(0x116)][_0x122da5(0x115)](_0x73b5f2=>_0x73b5f2[_0x122da5(0xcd)]===_0x146adf[_0x122da5(0xf1)]());}export function listLocalServiceTrees(_0xe90520={}){const _0x5de59a=a63_0x1dd3;return readServiceRegistry(_0xe90520)[_0x5de59a(0x116)][_0x5de59a(0xd6)](_0x5efe1d=>_0x5efe1d[_0x5de59a(0x106)]);}export function inspectServiceRegistry(_0x54ba3d={}){const _0x4dccec=a63_0x1dd3,_0x379048=getServiceRegistryPath(_0x54ba3d);if(!existsSync(_0x379048))return emptyServiceRegistryInspection(_0x379048,_0x4dccec(0xd7),![]);try{const _0x3c1087=readFileSync(_0x379048,_0x4dccec(0x10b));if(!_0x3c1087[_0x4dccec(0xf1)]())return emptyServiceRegistryInspection(_0x379048,_0x4dccec(0xf0),!![]);const _0x2df91c=JSON['parse'](_0x3c1087);if(_0x2df91c[_0x4dccec(0xe6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x379048,_0x4dccec(0x117),!![]),'schemaVersion':_0x2df91c[_0x4dccec(0xe6)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x2df91c['schemaVersion'])};if(!Array[_0x4dccec(0xce)](_0x2df91c[_0x4dccec(0x116)]))return{...emptyServiceRegistryInspection(_0x379048,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2df91c['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0x3c372d=_0x2df91c['services'][_0x4dccec(0xd6)](summarizeLocalServiceEntry);return{'registryPath':_0x379048,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2df91c[_0x4dccec(0xdf)],'serviceCount':_0x3c372d['length'],'commandCount':_0x3c372d[_0x4dccec(0x100)]((_0x4da529,_0x2d4b92)=>_0x4da529+_0x2d4b92[_0x4dccec(0xea)],0x0),'services':_0x3c372d};}catch(_0x501e2a){return{...emptyServiceRegistryInspection(_0x379048,'invalid',!![]),'message':_0x501e2a instanceof Error?_0x501e2a[_0x4dccec(0x101)]:String(_0x501e2a)};}}export function formatValidationFailure(_0x462e44){const _0x500728=a63_0x1dd3,_0x2bee7a=_0x462e44['errors'][_0x500728(0xd6)](_0x390e81=>_0x390e81[_0x500728(0xf9)]+':\x20'+_0x390e81[_0x500728(0x101)]);return _0x500728(0xd2)+_0x2bee7a['join']('\x0a');}function extractLoadedServiceManifests(_0x25846b,_0xdfc14a){const _0x526bff=a63_0x1dd3;if(!isServiceRegistryLike(_0x25846b)){const _0x51caa7=_0x25846b,{manifest:_0x18bb0d,errors:_0x26cab5}=adaptServiceTreeManifestForLegacyFramework(_0x51caa7),_0x5696e0=validateServiceTreeManifest(_0x18bb0d),_0x2990ef=mergeValidationErrors(_0x5696e0,_0x26cab5);return[{'manifest':_0x51caa7,'report':_0x2990ef,'normalizedManifest':_0x2990ef['ok']?normalizeServiceTreeManifest(_0x18bb0d):undefined,'sourceHash':_0xdfc14a}];}return _0x25846b[_0x526bff(0x116)]['map']((_0x48d99c,_0x5dac6f)=>{const _0x264e2f=_0x526bff,_0xc71b7a=isObjectRecord(_0x48d99c)?_0x48d99c[_0x264e2f(0xe5)]:undefined,{manifest:_0x3243de,errors:_0x51271e}=adaptServiceTreeManifestForLegacyFramework(_0xc71b7a),_0x2aeb09=validateServiceTreeManifest(_0x3243de),_0xdbd27c=mergeValidationErrors(_0x2aeb09,_0x51271e),_0x68ccc=isObjectRecord(_0x48d99c)&&typeof _0x48d99c[_0x264e2f(0xcd)]===_0x264e2f(0x107)?_0x48d99c[_0x264e2f(0xcd)]:undefined;return{'manifest':_0xc71b7a,'report':_0xdbd27c,'normalizedManifest':_0xdbd27c['ok']?normalizeServiceTreeManifest(_0x3243de):undefined,'sourceHash':sha256(JSON[_0x264e2f(0xff)](_0xc71b7a,null,0x2)+'\x0a'),'registryIndex':_0x5dac6f,'registryServiceCode':_0x68ccc};});}function mergeValidationErrors(_0x12e252,_0x10c168){const _0x24c702=a63_0x1dd3,_0x27e7e4=_0x12e252[_0x24c702(0xe0)]['map'](_0x4ab168=>_0x4ab168[_0x24c702(0x101)]===_0x24c702(0xe8)?{..._0x4ab168,'message':'bff\x20target\x20requires\x20functionName.'}:_0x4ab168),_0x125f64=[..._0x10c168,..._0x27e7e4];return{'ok':_0x125f64['length']===0x0,'errors':_0x125f64,'warnings':_0x12e252['warnings']};}function aggregateValidationReports(_0x4436d1){const _0x5f1ddf=a63_0x1dd3,_0xe6690b=_0x4436d1['flatMap'](_0x331db8=>_0x331db8[_0x5f1ddf(0xec)]===undefined?_0x331db8['report'][_0x5f1ddf(0xe0)]:_0x331db8['report'][_0x5f1ddf(0xe0)][_0x5f1ddf(0xd6)](_0x555595=>({..._0x555595,'path':prefixRegistryIssuePath(_0x331db8['registryIndex'],_0x555595[_0x5f1ddf(0xf9)])}))),_0x291a2d=_0x4436d1[_0x5f1ddf(0xd9)](_0x101ec6=>_0x101ec6[_0x5f1ddf(0xec)]===undefined?_0x101ec6[_0x5f1ddf(0xd5)]['warnings']:_0x101ec6[_0x5f1ddf(0xd5)]['warnings'][_0x5f1ddf(0xd6)](_0x30e350=>({..._0x30e350,'path':prefixRegistryIssuePath(_0x101ec6[_0x5f1ddf(0xec)],_0x30e350[_0x5f1ddf(0xf9)])})));return{'ok':_0xe6690b[_0x5f1ddf(0xf3)]===0x0,'errors':_0xe6690b,'warnings':_0x291a2d};}function prefixRegistryIssuePath(_0x563298,_0x528bdc){const _0x3c940c=a63_0x1dd3;if(_0x528bdc==='$')return _0x3c940c(0x112)+_0x563298+_0x3c940c(0xf5);if(_0x528bdc['startsWith']('$.'))return'$.services['+_0x563298+_0x3c940c(0xf5)+_0x528bdc[_0x3c940c(0xfd)](0x1);if(_0x528bdc[_0x3c940c(0xf2)]('$['))return _0x3c940c(0x112)+_0x563298+_0x3c940c(0xf5)+_0x528bdc[_0x3c940c(0xfd)](0x1);return'$.services['+_0x563298+'].manifest.'+_0x528bdc;}function isServiceRegistryLike(_0x549fcf){const _0x18aab5=a63_0x1dd3;return isObjectRecord(_0x549fcf)&&_0x549fcf['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x18aab5(0xce)](_0x549fcf[_0x18aab5(0x116)]);}function isObjectRecord(_0x9fbdc5){const _0x31a2b3=a63_0x1dd3;return Boolean(_0x9fbdc5)&&typeof _0x9fbdc5===_0x31a2b3(0x118)&&!Array[_0x31a2b3(0xce)](_0x9fbdc5);}function emptyServiceRegistryInspection(_0x44a51f,_0x3fb250,_0x134a76){return{'registryPath':_0x44a51f,'exists':_0x134a76,'status':_0x3fb250,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x30a9d7){const _0x2c6566=a63_0x1dd3,_0x572d62=_0x30a9d7[_0x2c6566(0x106)],_0x5c2c28=_0x572d62['commands'][_0x2c6566(0xd6)](_0x69e054=>({'path':_0x69e054[_0x2c6566(0xf7)],'description':_0x69e054[_0x2c6566(0xfa)],'risk':_0x69e054['risk'],'targetKind':_0x69e054[_0x2c6566(0xeb)][_0x2c6566(0xe2)],'targetCommand':_0x69e054[_0x2c6566(0xeb)]['command']}));return{'serviceCode':_0x30a9d7[_0x2c6566(0xcd)],'name':_0x572d62['service'][_0x2c6566(0x109)],'description':_0x572d62[_0x2c6566(0x108)][_0x2c6566(0xfa)],'version':_0x30a9d7[_0x2c6566(0xdb)],'importedAt':_0x30a9d7['importedAt'],'source':_0x30a9d7[_0x2c6566(0xe4)],'commandCount':_0x5c2c28['length'],'commands':_0x5c2c28};}function sha256(_0x2c5bc4){const _0x48bf50=a63_0x1dd3;return createHash('sha256')[_0x48bf50(0xd0)](_0x2c5bc4)[_0x48bf50(0x10f)]('hex');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a64_0x160dd0=a64_0x43c8;(function(_0xa10ea6,_0xf72199){const _0x5dcdb1=a64_0x43c8,_0xa5789a=_0xa10ea6();while(!![]){try{const _0x2008e4=parseInt(_0x5dcdb1(0xe1))/0x1*(parseInt(_0x5dcdb1(0xf2))/0x2)+-parseInt(_0x5dcdb1(0xdb))/0x3+-parseInt(_0x5dcdb1(0xee))/0x4*(parseInt(_0x5dcdb1(0xe8))/0x5)+parseInt(_0x5dcdb1(0xe0))/0x6+-parseInt(_0x5dcdb1(0xe3))/0x7*(-parseInt(_0x5dcdb1(0xec))/0x8)+parseInt(_0x5dcdb1(0xf1))/0x9+parseInt(_0x5dcdb1(0xf7))/0xa*(parseInt(_0x5dcdb1(0xf6))/0xb);if(_0x2008e4===_0xf72199)break;else _0xa5789a['push'](_0xa5789a['shift']());}catch(_0x16af21){_0xa5789a['push'](_0xa5789a['shift']());}}}(a64_0x6a76,0x54dc0));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a64_0x6a76(){const _0x403dbb=['384723fdfJnM','2lelAAQ','read','target','isDirectory','2703503sWDtRS','10JRXHhZ','skillName','skillDir','rendered','name','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','validation','path','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','1474785WRalob','create','str','type','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','3068814REuPoO','53610THbkeR','utf8','711277zzCEgt','isSymbolicLink','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','force','580155lAUVnr','skill','files','trim','8KjjgdZ','Skill\x20directory\x20already\x20exists:\x20','4vRdGqP','Refusing\x20to\x20overwrite\x20symlink:\x20','map'];a64_0x6a76=function(){return _0x403dbb;};return a64_0x6a76();}import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a64_0x43c8(_0x14563c,_0x55a166){_0x14563c=_0x14563c-0xd3;const _0x6a763e=a64_0x6a76();let _0x43c87b=_0x6a763e[_0x14563c];return _0x43c87b;}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a64_0x160dd0(0xe9),'command':a64_0x160dd0(0xdc),'description':a64_0x160dd0(0xda),'risk':a64_0x160dd0(0xf3),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4c262f){const _0x5aa15a=a64_0x160dd0,_0x238f3c=buildSkillCreatePlan(_0x4c262f[_0x5aa15a(0xdd)](_0x5aa15a(0xd5)),_0x4c262f[_0x5aa15a(0xdd)](_0x5aa15a(0xde)),_0x4c262f[_0x5aa15a(0xdd)](_0x5aa15a(0xf4)));return{'method':'WRITE','url':_0x238f3c[_0x5aa15a(0xd3)],'body':{'skillName':_0x238f3c[_0x5aa15a(0xd4)][_0x5aa15a(0xf8)],'type':_0x238f3c[_0x5aa15a(0xd4)][_0x5aa15a(0xde)],'selfContained':!![],'files':_0x238f3c[_0x5aa15a(0xd4)]['files'][_0x5aa15a(0xf0)](_0x43faf2=>_0x43faf2['path'])},'description':_0x5aa15a(0xdf)};},async 'execute'(_0x2193db){const _0x3acf3a=a64_0x160dd0,_0x4a3c94=buildSkillCreatePlan(_0x2193db[_0x3acf3a(0xdd)](_0x3acf3a(0xd5)),_0x2193db[_0x3acf3a(0xdd)]('type'),_0x2193db[_0x3acf3a(0xdd)](_0x3acf3a(0xf4)));return writeSkillDraft(_0x4a3c94,_0x2193db['bool'](_0x3acf3a(0xe7))),{'ok':!![],'data':{'skillName':_0x4a3c94[_0x3acf3a(0xd4)][_0x3acf3a(0xf8)],'type':_0x4a3c94[_0x3acf3a(0xd4)][_0x3acf3a(0xde)],'dir':_0x4a3c94[_0x3acf3a(0xd3)],'files':_0x4a3c94[_0x3acf3a(0xd4)][_0x3acf3a(0xea)][_0x3acf3a(0xf0)](_0x2628aa=>_0x2628aa[_0x3acf3a(0xd9)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x4a3c94['rendered'][_0x3acf3a(0xf8)]};}};function buildSkillCreatePlan(_0x2e9f35,_0x11c187,_0x54ada2){const _0x5a9556=a64_0x160dd0,_0x595084=_0x11c187[_0x5a9556(0xeb)](),_0x2e946d=renderSkillTemplate({'skillName':_0x2e9f35,'type':_0x595084});!_0x595084&&writeCliSideChannelLine(_0x5a9556(0xe5));const _0x32fdff=resolve(normalizeSkillTarget(_0x54ada2));return{'rendered':_0x2e946d,'targetRoot':_0x32fdff,'skillDir':resolve(_0x32fdff,_0x2e946d[_0x5a9556(0xf8)])};}function normalizeSkillTarget(_0x132083){return(_0x132083||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x47c18e,_0x4bcc96){const _0x5a55b2=a64_0x160dd0;if(existsSync(_0x47c18e[_0x5a55b2(0xd3)])){const _0x51c930=lstatSync(_0x47c18e['skillDir']);if(!_0x51c930[_0x5a55b2(0xf5)]()||_0x51c930[_0x5a55b2(0xe4)]())throw CliErrors[_0x5a55b2(0xd8)](_0x5a55b2(0xd7)+_0x47c18e[_0x5a55b2(0xd3)]);if(!_0x4bcc96)throw CliErrors[_0x5a55b2(0xd8)](_0x5a55b2(0xed)+_0x47c18e['skillDir'],_0x5a55b2(0xd6));}for(const _0x35e6b6 of _0x47c18e[_0x5a55b2(0xd4)][_0x5a55b2(0xea)]){const _0x18db35=resolve(_0x47c18e[_0x5a55b2(0xd3)],_0x35e6b6['path']),_0xdb9feb=dirname(_0x18db35);mkdirSync(_0xdb9feb,{'recursive':!![]});if(existsSync(_0x18db35)&&lstatSync(_0x18db35)[_0x5a55b2(0xe4)]())throw CliErrors[_0x5a55b2(0xd8)](_0x5a55b2(0xef)+_0x18db35);writeFileSync(_0x18db35,_0x35e6b6[_0x5a55b2(0xe6)],_0x5a55b2(0xe2));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a65_0x5a0a11=a65_0x1d04;(function(_0x3af51c,_0x354bd5){const _0x5b0fe3=a65_0x1d04,_0x23d091=_0x3af51c();while(!![]){try{const _0x47b904=parseInt(_0x5b0fe3(0x171))/0x1+parseInt(_0x5b0fe3(0x160))/0x2+-parseInt(_0x5b0fe3(0x177))/0x3+parseInt(_0x5b0fe3(0x16b))/0x4*(-parseInt(_0x5b0fe3(0x157))/0x5)+parseInt(_0x5b0fe3(0x170))/0x6*(parseInt(_0x5b0fe3(0x166))/0x7)+-parseInt(_0x5b0fe3(0x16a))/0x8+-parseInt(_0x5b0fe3(0x153))/0x9;if(_0x47b904===_0x354bd5)break;else _0x23d091['push'](_0x23d091['shift']());}catch(_0xc26592){_0x23d091['push'](_0x23d091['shift']());}}}(a65_0xf682,0x7615f));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';function a65_0xf682(){const _0x2489cc=['--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','Skill\x20diagram\x20for\x20','Updated','678YoARMu','856483MfzWNG','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','scope','skillCode','validation','1545210DOQqkO','write','skill','diagram-file','Skill\x20diagram\x20validation\x20passed\x20for\x20','action','expectedDiagramRevision','source-fingerprint','3227445XPRQDU','\x20Skill\x20diagram\x20for\x20','diagram-show','str','5tFRGna',';\x20next\x20write\x20expects\x20revision\x20','trim','read','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','Found\x20Skill\x20diagram\x20for\x20','unchanged','version','diagram-push','802752nRcbcg','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','test','appCode','diagram-validate','created','56077DFBXCN','isInteger','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','Created','5507432rKhBOT','469276yFMqRB','found'];a65_0xf682=function(){return _0x2489cc;};return a65_0xf682();}import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';function a65_0x1d04(_0x4664a5,_0x3a54a9){_0x4664a5=_0x4664a5-0x14d;const _0xf68234=a65_0xf682();let _0x1d0447=_0xf68234[_0x4664a5];return _0x1d0447;}import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x356688){const _0x258cc4=a65_0x1d04,_0x5c697a=_0x356688[_0x258cc4(0x156)]('skill-code')[_0x258cc4(0x159)](),_0x11faa4=_0x356688[_0x258cc4(0x156)](_0x258cc4(0x15e))[_0x258cc4(0x159)](),_0x26f5b6=_0x356688[_0x258cc4(0x156)](_0x258cc4(0x174));if(!_0x5c697a||!_0x11faa4||_0x26f5b6!=='personal'&&_0x26f5b6!=='company')throw CliErrors['validation'](_0x258cc4(0x161));return{'skillCode':_0x5c697a,'version':_0x11faa4,'scope':_0x26f5b6};}async function readDiagramWriteInput(_0x370ae7){const _0x46de7a=a65_0x1d04,_0x3826de=_0x370ae7['num']('expected-diagram-revision'),_0x1a46b8=_0x370ae7[_0x46de7a(0x156)](_0x46de7a(0x152))[_0x46de7a(0x159)]();if(!Number[_0x46de7a(0x167)](_0x3826de)||_0x3826de<0x0)throw CliErrors[_0x46de7a(0x176)](_0x46de7a(0x16d));if(!/^sha256:[0-9a-f]{64}$/[_0x46de7a(0x162)](_0x1a46b8))throw CliErrors['validation'](_0x46de7a(0x173));return{'expectedDiagramRevision':_0x3826de,'sourceFingerprint':_0x1a46b8,'diagram':await readRequiredSkillDiagram(_0x370ae7[_0x46de7a(0x156)](_0x46de7a(0x14e)))};}export const diagramValidateCommand={'service':a65_0x5a0a11(0x14d),'command':a65_0x5a0a11(0x164),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':a65_0x5a0a11(0x15a),'flags':WRITE_FLAGS,async 'execute'(_0x36dbd1){const _0x4c16b0=a65_0x5a0a11,_0x4f38b7=readDiagramTarget(_0x36dbd1),_0xe5e4ce=await validateRuntimeSkillVersionDiagram(_0x36dbd1[_0x4c16b0(0x163)],_0x4f38b7[_0x4c16b0(0x175)],_0x4f38b7[_0x4c16b0(0x15e)],_0x4f38b7[_0x4c16b0(0x174)],await readDiagramWriteInput(_0x36dbd1));return{'ok':!![],'data':_0xe5e4ce,'message':_0x4c16b0(0x14f)+_0x4f38b7[_0x4c16b0(0x175)]+'@'+_0x4f38b7[_0x4c16b0(0x15e)]+'.'};}};export const diagramPushCommand={'service':a65_0x5a0a11(0x14d),'command':a65_0x5a0a11(0x15f),'description':a65_0x5a0a11(0x15b),'risk':a65_0x5a0a11(0x178),'confirmationDescription':'Creates\x20or\x20replaces\x20a\x20Mermaid\x20diagram\x20for\x20an\x20exact\x20Skill\x20version.\x20The\x20write\x20is\x20rejected\x20if\x20the\x20server\x20version\x20has\x20changed.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20the\x20diagram\x20body.','flags':WRITE_FLAGS,async 'execute'(_0xd9efa8){const _0x31ff04=a65_0x5a0a11,_0x28b157=readDiagramTarget(_0xd9efa8),_0x14a19f=await putRuntimeSkillVersionDiagram(_0xd9efa8[_0x31ff04(0x163)],_0x28b157[_0x31ff04(0x175)],_0x28b157[_0x31ff04(0x15e)],_0x28b157[_0x31ff04(0x174)],await readDiagramWriteInput(_0xd9efa8));return{'ok':!![],'data':_0x14a19f,'message':_0x14a19f[_0x31ff04(0x150)]===_0x31ff04(0x15d)?_0x31ff04(0x16e)+_0x28b157[_0x31ff04(0x175)]+'@'+_0x28b157[_0x31ff04(0x15e)]+'\x20is\x20unchanged.':(_0x14a19f[_0x31ff04(0x150)]===_0x31ff04(0x165)?_0x31ff04(0x169):_0x31ff04(0x16f))+_0x31ff04(0x154)+_0x28b157[_0x31ff04(0x175)]+'@'+_0x28b157['version']+'.'};}};export const diagramShowCommand={'service':'skill','command':a65_0x5a0a11(0x155),'description':a65_0x5a0a11(0x172),'risk':'read','flags':TARGET_FLAGS,async 'execute'(_0xb6f254){const _0xc3e49b=a65_0x5a0a11,_0x103987=readDiagramTarget(_0xb6f254),_0x11b417=await getRuntimeSkillVersionDiagram(_0xb6f254[_0xc3e49b(0x163)],_0x103987[_0xc3e49b(0x175)],_0x103987[_0xc3e49b(0x15e)],_0x103987['scope']);return{'ok':!![],'data':_0x11b417,'message':_0x11b417[_0xc3e49b(0x16c)]?_0xc3e49b(0x15c)+_0x103987[_0xc3e49b(0x175)]+'@'+_0x103987[_0xc3e49b(0x15e)]+_0xc3e49b(0x158)+_0x11b417[_0xc3e49b(0x151)]+'.':_0xc3e49b(0x168)+_0x103987[_0xc3e49b(0x175)]+'@'+_0x103987['version']+';\x20first\x20write\x20expects\x20revision\x20'+_0x11b417[_0xc3e49b(0x151)]+'.'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a66_0x2d0034=a66_0x309a;function a66_0x4072(){const _0x58ec60=['47746jdPBLq','5476735Knpcge','created','6LdTdsf','unchanged','scope','../../../skills/runtime-skill-sync.js','from','18YCaXAX','code','bool','map','personal','str','action','4221064MNCRBX','company','trim','skillCode','skill','length','29677230meVfDt','4897506ErIIZS','\x20personal\x20and\x20','removed','project','1413881TTaJRk','envName','skipped','3598536DCSIYP','skillRoots','52ZUlHfO','Installed\x20','updated','global','filter','appCode','all','install','includes','\x20company\x20Skill(s).','production','../../../core/api-client.js','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.'];a66_0x4072=function(){return _0x58ec60;};return a66_0x4072();}(function(_0x43b91f,_0xe73ee7){const _0x2084a5=a66_0x309a,_0x512eae=_0x43b91f();while(!![]){try{const _0x5974d0=parseInt(_0x2084a5(0x162))/0x1*(-parseInt(_0x2084a5(0x181))/0x2)+parseInt(_0x2084a5(0x165))/0x3*(-parseInt(_0x2084a5(0x17f))/0x4)+-parseInt(_0x2084a5(0x163))/0x5+parseInt(_0x2084a5(0x178))/0x6+parseInt(_0x2084a5(0x17c))/0x7+parseInt(_0x2084a5(0x171))/0x8*(parseInt(_0x2084a5(0x16a))/0x9)+parseInt(_0x2084a5(0x177))/0xa;if(_0x5974d0===_0xe73ee7)break;else _0x512eae['push'](_0x512eae['shift']());}catch(_0x465a27){_0x512eae['push'](_0x512eae['shift']());}}}(a66_0x4072,0xdcffc));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':a66_0x2d0034(0x175),'command':a66_0x2d0034(0x188),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x123b93){return syncRuntimeSkills(_0x123b93);}};async function syncRuntimeSkills(_0x5585f0){const _0x3f35f7=a66_0x2d0034,{downloadRuntimeSkillPackage:_0x29311f,listRuntimeSkills:_0x2930b6}=await import(_0x3f35f7(0x160)),{linkEffectiveRuntimeSkills:_0x343381,materializeRuntimeSkill:_0x49d665,pruneStaleRuntimeSkillCache:_0x44f3b2,pruneStaleRuntimeSkillLinks:_0x36e65a,resolveRuntimeSkillInstallTarget:_0x251006,reuseMaterializedRuntimeSkill:_0x3eacef}=await import(_0x3f35f7(0x168)),_0x1a2104=_0x5585f0[_0x3f35f7(0x16f)](_0x3f35f7(0x16b)),_0x24e35d=normalizeSyncScopes(_0x5585f0[_0x3f35f7(0x16f)](_0x3f35f7(0x167))),_0x37ef09=_0x5585f0[_0x3f35f7(0x17d)]??_0x3f35f7(0x15f),_0x5c1f76=_0x5585f0['accessKey'],_0x276c0b=_0x5585f0[_0x3f35f7(0x16c)]('force');if(!_0x5c1f76)throw CliErrors['authRequired'](_0x3f35f7(0x161));const _0x2f44cd=_0x251006(_0x5585f0[_0x3f35f7(0x186)],_0x5585f0[_0x3f35f7(0x16c)](_0x3f35f7(0x17b))?_0x3f35f7(0x17b):_0x3f35f7(0x184)),_0x16c2cb=_0x251006(_0x5585f0[_0x3f35f7(0x186)],_0x2f44cd['scope']===_0x3f35f7(0x17b)?_0x3f35f7(0x184):_0x3f35f7(0x17b)),_0x4ceb4f=await _0x2930b6({'appCode':_0x5585f0[_0x3f35f7(0x186)],'scope':_0x24e35d[_0x3f35f7(0x176)]===0x1?_0x24e35d[0x0]:'all','code':_0x1a2104[_0x3f35f7(0x173)]()||undefined}),_0x114755=_0x24e35d['includes']('personal')?_0x4ceb4f[_0x3f35f7(0x16e)]:[],_0x6fa1fb=_0x24e35d[_0x3f35f7(0x15d)](_0x3f35f7(0x172))?_0x4ceb4f[_0x3f35f7(0x172)]:[],_0x2bb1fe=new Set([..._0x114755[_0x3f35f7(0x16d)](_0x57c3dd=>_0x57c3dd[_0x3f35f7(0x174)]?.[_0x3f35f7(0x173)]())[_0x3f35f7(0x185)](_0x5ae2f8=>Boolean(_0x5ae2f8)),..._0x6fa1fb[_0x3f35f7(0x16d)](_0x185267=>_0x185267[_0x3f35f7(0x174)]?.['trim']())[_0x3f35f7(0x185)](_0x4339af=>Boolean(_0x4339af))]),_0x46ec6a=_0x1a2104[_0x3f35f7(0x173)]()?[_0x1a2104[_0x3f35f7(0x173)]()]:undefined,_0x4d714a=_0x24e35d[_0x3f35f7(0x176)]===0x2&&_0x24e35d['includes'](_0x3f35f7(0x16e))&&_0x24e35d[_0x3f35f7(0x15d)](_0x3f35f7(0x172)),_0x42076f=_0x4d714a?_0x36e65a(_0x2f44cd,_0x2bb1fe,_0x46ec6a):[],_0x76a6c=_0x44f3b2({'env':_0x37ef09,'accessKey':_0x5c1f76,'appCode':_0x5585f0[_0x3f35f7(0x186)],'activeSkillCodes':_0x2bb1fe,'pruneSkillCodes':_0x46ec6a,'scopes':_0x24e35d,'protectedLinkRoots':_0x16c2cb[_0x3f35f7(0x180)]}),_0x1b0899=[..._0x114755[_0x3f35f7(0x16d)](_0x2ec2cd=>({'skill':_0x2ec2cd,'scope':_0x3f35f7(0x16e)})),..._0x6fa1fb[_0x3f35f7(0x16d)](_0x20b3b0=>({'skill':_0x20b3b0,'scope':_0x3f35f7(0x172)}))],_0x372631=await mapConcurrent(_0x1b0899,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x23b1d4,scope:_0x260ab0})=>{const _0x4b84ef=_0x3f35f7,_0xa2f97b=_0x3eacef(_0x23b1d4,_0x260ab0,{'env':_0x37ef09,'accessKey':_0x5c1f76,'appCode':_0x5585f0[_0x4b84ef(0x186)]});if(_0xa2f97b)return _0xa2f97b;return _0x49d665(_0x23b1d4,_0x260ab0,{'env':_0x37ef09,'accessKey':_0x5c1f76,'appCode':_0x5585f0[_0x4b84ef(0x186)],'force':_0x276c0b,'packageBytes':await downloadSkillPackage(_0x23b1d4,_0x260ab0,_0x5585f0[_0x4b84ef(0x186)],_0x29311f)});}),_0x41d3ac=_0x343381(_0x372631,_0x2f44cd),_0x598d72=countLinkActions(_0x41d3ac);return{'ok':!![],'data':{'appCode':_0x5585f0['appCode'],..._0x2f44cd[_0x3f35f7(0x167)]==='project'?{'installTarget':{'scope':_0x2f44cd[_0x3f35f7(0x167)],'skillRoots':[..._0x2f44cd['skillRoots']]}}:{},'personal':_0x114755[_0x3f35f7(0x176)],'company':_0x6fa1fb['length'],'materialized':_0x372631['length'],'links':{'total':_0x41d3ac[_0x3f35f7(0x176)],'created':_0x598d72[_0x3f35f7(0x164)]??0x0,'updated':_0x598d72[_0x3f35f7(0x183)]??0x0,'unchanged':_0x598d72[_0x3f35f7(0x166)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x42076f[_0x3f35f7(0x185)](_0x4d18ec=>_0x4d18ec[_0x3f35f7(0x170)]===_0x3f35f7(0x17a))[_0x3f35f7(0x176)],'cacheDirs':_0x76a6c[_0x3f35f7(0x185)](_0x4920b9=>_0x4920b9[_0x3f35f7(0x170)]===_0x3f35f7(0x17a))[_0x3f35f7(0x176)],'skipped':[..._0x42076f,..._0x76a6c][_0x3f35f7(0x185)](_0x341e3c=>_0x341e3c[_0x3f35f7(0x170)]===_0x3f35f7(0x17e))['length']},'skills':{'personal':_0x114755[_0x3f35f7(0x16d)](summarizeRuntimeSkill),'company':_0x6fa1fb[_0x3f35f7(0x16d)](summarizeRuntimeSkill)}},'message':_0x3f35f7(0x182)+_0x114755[_0x3f35f7(0x176)]+_0x3f35f7(0x179)+_0x6fa1fb[_0x3f35f7(0x176)]+_0x3f35f7(0x15e)};}async function mapConcurrent(_0x4e16c2,_0x3f43f1,_0x507cfb){const _0x79be1f=a66_0x2d0034,_0x59b502=new Array(_0x4e16c2[_0x79be1f(0x176)]);let _0x59a7ab=0x0;const _0xec70c3=Array[_0x79be1f(0x169)]({'length':Math['min'](_0x3f43f1,_0x4e16c2[_0x79be1f(0x176)])},async()=>{const _0x5b18d6=_0x79be1f;while(_0x59a7ab<_0x4e16c2[_0x5b18d6(0x176)]){const _0x1e44be=_0x59a7ab;_0x59a7ab+=0x1,_0x59b502[_0x1e44be]=await _0x507cfb(_0x4e16c2[_0x1e44be]);}});return await Promise[_0x79be1f(0x187)](_0xec70c3),_0x59b502;}function a66_0x309a(_0x263c7b,_0x2d8e35){_0x263c7b=_0x263c7b-0x15d;const _0x4072ff=a66_0x4072();let _0x309a6f=_0x4072ff[_0x263c7b];return _0x309a6f;}async function downloadSkillPackage(_0x574571,_0x128706,_0x17a36a,_0x402785){const _0x588dda=a66_0x2d0034,_0xab193a=_0x574571['version']?.[_0x588dda(0x173)]();return _0xab193a?_0x402785(_0x128706,_0x574571[_0x588dda(0x174)],_0x17a36a,_0xab193a):_0x402785(_0x128706,_0x574571[_0x588dda(0x174)],_0x17a36a);}function countLinkActions(_0x16ba11){return _0x16ba11['reduce']((_0x40627a,_0x55e1f3)=>{const _0x3f2b69=a66_0x309a;return _0x40627a[_0x55e1f3[_0x3f2b69(0x170)]]=(_0x40627a[_0x55e1f3[_0x3f2b69(0x170)]]??0x0)+0x1,_0x40627a;},{});}
|