@lovrabet/lovrabet-cli 2.3.1-beta.4 → 2.3.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -8
- 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.d.ts +1 -2
- 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.d.ts +0 -3
- 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.d.ts +2 -0
- 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.d.ts +6 -14
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.d.ts +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.d.ts +0 -3
- 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.d.ts +5 -10
- 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.d.ts +1 -5
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.d.ts +3 -7
- 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/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/lovrabet/SKILL.md +4 -4
- package/skills/lovrabet/guides/role-and-permission-workflow.md +6 -4
- package/skills/lovrabet/references/lovrabet-config-commands.md +7 -11
- package/skills/lovrabet/references/lovrabet-config.md +2 -3
- package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-notification-config-list.md +2 -8
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a54_0x4cac13=a54_0x1dbb;(function(_0x252681,_0x583d8f){const _0x447dc6=a54_0x1dbb,_0x442e4f=_0x252681();while(!![]){try{const _0x5c6709=-parseInt(_0x447dc6(0xda))/0x1+-parseInt(_0x447dc6(0xcc))/0x2*(-parseInt(_0x447dc6(0xd8))/0x3)+parseInt(_0x447dc6(0xd6))/0x4+parseInt(_0x447dc6(0xe6))/0x5+parseInt(_0x447dc6(0xe0))/0x6+parseInt(_0x447dc6(0xea))/0x7*(-parseInt(_0x447dc6(0xed))/0x8)+-parseInt(_0x447dc6(0xdc))/0x9;if(_0x5c6709===_0x583d8f)break;else _0x442e4f['push'](_0x442e4f['shift']());}catch(_0x122b3d){_0x442e4f['push'](_0x442e4f['shift']());}}}(a54_0x74fe,0x5e9b8));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=['ADMIN',a54_0x4cac13(0xc7),'OWNER','CUSTOM'];function a54_0x74fe(){const _0x45d9b7=['num','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','Runtime\x20role\x20id\x20','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','flag','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','Runtime\x20numeric\x20userId','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','\x20built-in\x20runtime\x20role\x20','filter','validation','roleName','join','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','role','User\x20',',\x20found\x20','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','remark','OWNER','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','includes','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','Runtime\x20role\x20','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','applyUserList','CUSTOM','Runtime\x20user\x20','items','userName','push','USER','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','user','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','2TwLtjK','str','totalCount','expect-user-count','code','roleType','user-add','map','trim','length','1918812ChKCqj','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','537399OFQybp','number','12054EHkKsi','\x20was\x20not\x20found\x20in\x20app\x20','2742039mkzJHU','\x20is\x20not\x20in\x20runtime\x20role\x20','string','find','1975230lErumx','\x22\x20is\x20ambiguous.','\x22\x20was\x20not\x20found\x20in\x20app\x20','isSafeInteger','Runtime\x20role\x20name\x20\x22','userList','170300WZKSth','paging','permitCount','appCode','28wYptMr','Pass\x20--role\x20<id|name>.','Pass\x20one\x20role\x20ID:\x20','635728CvixXz','Cannot\x20','test'];a54_0x74fe=function(){return _0x45d9b7;};return a54_0x74fe();}const BUILTIN_ROLE_TYPES=['ADMIN',a54_0x4cac13(0xc7),a54_0x4cac13(0x106)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x4cac13(0xd9),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':'role','type':a54_0x4cac13(0xde),'required':!![],'description':a54_0x4cac13(0xf2)};export const USER_ID_FLAG={'name':a54_0x4cac13(0xca),'type':a54_0x4cac13(0xde),'required':!![],'description':a54_0x4cac13(0xf7)};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x4cac13(0xcf),'type':'number','description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x8689f6){const _0x3562cc=a54_0x4cac13;return BUILTIN_ROLE_TYPES[_0x3562cc(0x108)](_0x8689f6);}export function assertCustomRuntimeRole(_0xb0f5a7,_0x29942b){const _0xe01478=a54_0x4cac13;if(_0xb0f5a7[_0xe01478(0xd1)]!==_0xe01478(0x10d))throw CliErrors['validation'](_0xe01478(0xee)+_0x29942b+_0xe01478(0xf9)+_0xb0f5a7[_0xe01478(0xfc)]+'\x20('+_0xb0f5a7[_0xe01478(0xd1)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x596e63){const _0x1ee66e=a54_0x4cac13;return{'id':_0x596e63['id'],'roleName':_0x596e63[_0x1ee66e(0xfc)],'roleType':_0x596e63[_0x1ee66e(0xd1)],'remark':_0x596e63[_0x1ee66e(0x105)],'userCount':_0x596e63['userCount']??0x0,'permitCount':_0x596e63[_0x1ee66e(0xe8)]??0x0,'builtin':isBuiltinRuntimeRole(_0x596e63['roleType'])};}export async function getRuntimeRoleById(_0x1cfc40,_0x26035d){const _0x21e7f5=a54_0x4cac13;if(!Number[_0x21e7f5(0xe3)](_0x26035d)||_0x26035d<=0x0)throw CliErrors[_0x21e7f5(0xfb)](_0x21e7f5(0x10b));const _0x53d3ac=(await listAllRuntimeRoles(_0x1cfc40))[_0x21e7f5(0xfa)](_0x1d02be=>_0x1d02be['id']===_0x26035d&&(!_0x1d02be[_0x21e7f5(0xe9)]||_0x1d02be['appCode']===_0x1cfc40));if(_0x53d3ac[_0x21e7f5(0xd5)]!==0x1)throw CliErrors[_0x21e7f5(0xfb)](_0x21e7f5(0xf3)+_0x26035d+_0x21e7f5(0xdb)+_0x1cfc40+'.',_0x21e7f5(0x107));return _0x53d3ac[0x0];}export async function listAllRuntimeRoles(_0xdb456c,_0x260653={}){const _0x34a80c=a54_0x4cac13,_0x129e7f=0x64,_0x4352d8=[];for(let _0x1e0bf3=0x1;;_0x1e0bf3+=0x1){const _0x38e7d3=await listRuntimeAppRoles(_0xdb456c,{..._0x260653[_0x34a80c(0xfc)]?{'roleName':_0x260653['roleName']}:{},'currentPage':_0x1e0bf3,'pageSize':_0x129e7f});_0x4352d8[_0x34a80c(0xc6)](..._0x38e7d3[_0x34a80c(0xc4)]);if(_0x38e7d3[_0x34a80c(0xc4)][_0x34a80c(0xd5)]<_0x129e7f||_0x38e7d3['paging']&&_0x4352d8['length']>=_0x38e7d3[_0x34a80c(0xe7)][_0x34a80c(0xce)])return _0x4352d8;}}function a54_0x1dbb(_0x3c9934,_0x16c12d){_0x3c9934=_0x3c9934-0xc4;const _0x74fec6=a54_0x74fe();let _0x1dbb58=_0x74fec6[_0x3c9934];return _0x1dbb58;}export async function resolveRuntimeRoleRef(_0x5c8f94,_0xb34242){const _0x1f61f5=a54_0x4cac13,_0x2bd4aa=_0xb34242[_0x1f61f5(0xd4)]();if(!_0x2bd4aa)throw CliErrors[_0x1f61f5(0xfb)]('Missing\x20runtime\x20role\x20reference.',_0x1f61f5(0xeb));if(/^\d+$/[_0x1f61f5(0xef)](_0x2bd4aa))return getRuntimeRoleById(_0x5c8f94,Number(_0x2bd4aa));const _0x100051=(await listAllRuntimeRoles(_0x5c8f94))['filter'](_0xfdd9bb=>_0xfdd9bb[_0x1f61f5(0xfc)]===_0x2bd4aa);if(_0x100051[_0x1f61f5(0xd5)]===0x0)throw CliErrors['validation'](_0x1f61f5(0xe4)+_0x2bd4aa+_0x1f61f5(0xe2)+_0x5c8f94+'.',_0x1f61f5(0xf1));if(_0x100051[_0x1f61f5(0xd5)]>0x1)throw CliErrors['validation']('Runtime\x20role\x20name\x20\x22'+_0x2bd4aa+_0x1f61f5(0xe1),_0x1f61f5(0xec)+_0x100051[_0x1f61f5(0xd3)](_0x593b16=>_0x593b16['id'])[_0x1f61f5(0xfd)](',\x20')+'.');return _0x100051[0x0];}function parseRuntimeUserId(_0x14632c){const _0x189b6c=a54_0x4cac13,_0x449792=_0x14632c[_0x189b6c(0xd4)]();if(!/^\d+$/[_0x189b6c(0xef)](_0x449792))throw CliErrors[_0x189b6c(0xfb)](_0x189b6c(0xf8),_0x189b6c(0xc9));const _0x4ca047=Number(_0x449792);if(!Number['isSafeInteger'](_0x4ca047)||_0x4ca047<=0x0)throw CliErrors[_0x189b6c(0xfb)](_0x189b6c(0xfe));return _0x4ca047;}export async function prepareRuntimeMemberMutation(_0x4c7bd3,_0x4f6fa8){const _0x861a8e=a54_0x4cac13,_0x4e4d9f=await resolveRuntimeRoleRef(_0x4c7bd3[_0x861a8e(0xe9)],_0x4c7bd3['str'](_0x861a8e(0x101)));if(_0x4e4d9f[_0x861a8e(0xd1)]==='OWNER')throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0xc8),_0x861a8e(0x109));const _0x104a27=parseRuntimeUserId(_0x4c7bd3[_0x861a8e(0xcd)](_0x861a8e(0xca))),_0x1f025e=(await listRuntimeRoleUsers(_0x4c7bd3[_0x861a8e(0xe9)]))[_0x861a8e(0xd3)](_0x37627b=>({..._0x37627b,'userList':[..._0x37627b['userList']??[]],'applyUserList':[..._0x37627b[_0x861a8e(0x10c)]??[]]})),_0x40945c=_0x1f025e[_0x861a8e(0xdf)](_0x5adf16=>_0x5adf16['id']===_0x4e4d9f['id']);if(!_0x40945c)throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0x10a)+_0x4e4d9f['id']+_0x861a8e(0x104),_0x861a8e(0xf4));const _0x1abda8=_0x40945c['userList'][_0x861a8e(0xd3)](_0x5217ff=>_0x5217ff['userId']),_0x4e6609=_0x4c7bd3[_0x861a8e(0xf5)](_0x861a8e(0xcf));if(_0x4e6609!==undefined&&_0x4e6609!==null&&_0x4e6609!==''){const _0x56aa91=_0x4c7bd3[_0x861a8e(0xf0)](_0x861a8e(0xcf));if(!Number[_0x861a8e(0xe3)](_0x56aa91)||_0x56aa91<0x0)throw CliErrors['validation'](_0x861a8e(0xf6));if(_0x1abda8[_0x861a8e(0xd5)]!==_0x56aa91)throw CliErrors['validation'](_0x861a8e(0xff)+_0x56aa91+_0x861a8e(0x103)+_0x1abda8[_0x861a8e(0xd5)]+'.',_0x861a8e(0xcb));}const _0x1bdeb3=_0x1abda8[_0x861a8e(0x108)](_0x104a27),_0x666ef6=[];let _0x30afb4=!![];if(_0x4f6fa8===_0x861a8e(0xd2)){const _0x2632ce=await listRuntimeAppUsers(_0x4c7bd3[_0x861a8e(0xe9)]),_0x569eea=_0x2632ce[_0x861a8e(0xfa)](_0x3f110f=>Number(_0x3f110f[_0x861a8e(0xd0)])===_0x104a27);if(_0x569eea[_0x861a8e(0xd5)]!==0x1||!_0x569eea[0x0]['userName']?.['trim']())throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0x10e)+_0x104a27+_0x861a8e(0xdb)+_0x4c7bd3[_0x861a8e(0xe9)]+'.',_0x861a8e(0xd7));_0x1bdeb3?(_0x30afb4=![],_0x666ef6['push'](_0x861a8e(0x102)+_0x104a27+_0x861a8e(0x100)+_0x4e4d9f['id']+'.')):_0x40945c[_0x861a8e(0xe5)][_0x861a8e(0xc6)]({'userId':_0x104a27,'username':_0x569eea[0x0][_0x861a8e(0xc5)]});}else!_0x1bdeb3?(_0x30afb4=![],_0x666ef6['push'](_0x861a8e(0x102)+_0x104a27+_0x861a8e(0xdd)+_0x4e4d9f['id']+'.')):_0x40945c['userList']=_0x40945c[_0x861a8e(0xe5)][_0x861a8e(0xfa)](_0xc64485=>_0xc64485['userId']!==_0x104a27);return{'role':_0x4e4d9f,'userId':_0x104a27,'roleList':_0x1f025e,'before':{'userIds':_0x1abda8},'after':{'userIds':_0x40945c['userList'][_0x861a8e(0xd3)](_0xcda91b=>_0xcda91b['userId'])},'shouldWrite':_0x30afb4,'warnings':_0x666ef6};}export function runtimeRoleWriteResult(_0x6ccb2d,_0x31c574,_0x2a97a5,_0x3fa4b5,_0x36cb18,_0x4cde50=[]){return{'operation':_0x6ccb2d,'scope':'runtime','selector':_0x31c574,'before':_0x2a97a5,'after':_0x3fa4b5,'dryRun':![],'backend':_0x36cb18,'warnings':_0x4cde50};}
|
|
1
|
+
const a54_0x53114c=a54_0x1877;(function(_0x1e4c89,_0x810171){const _0x1634ee=a54_0x1877,_0x14c015=_0x1e4c89();while(!![]){try{const _0x234eb0=parseInt(_0x1634ee(0xbf))/0x1*(-parseInt(_0x1634ee(0x96))/0x2)+-parseInt(_0x1634ee(0x88))/0x3*(-parseInt(_0x1634ee(0x8f))/0x4)+parseInt(_0x1634ee(0xb4))/0x5*(parseInt(_0x1634ee(0x8c))/0x6)+-parseInt(_0x1634ee(0xa7))/0x7+parseInt(_0x1634ee(0xbe))/0x8+-parseInt(_0x1634ee(0x89))/0x9+parseInt(_0x1634ee(0xae))/0xa;if(_0x234eb0===_0x810171)break;else _0x14c015['push'](_0x14c015['shift']());}catch(_0x41d4f1){_0x14c015['push'](_0x14c015['shift']());}}}(a54_0x1bff,0x8de5f));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=['ADMIN','USER',a54_0x53114c(0x91),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a54_0x53114c(0xba),a54_0x53114c(0x9f),a54_0x53114c(0x91)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':a54_0x53114c(0xa3),'type':a54_0x53114c(0xb5),'required':!![],'description':a54_0x53114c(0x98)};export const ROLE_CODE_FLAG={'name':a54_0x53114c(0xa8),'type':'string','description':a54_0x53114c(0xca)};export const USER_ID_FLAG={'name':a54_0x53114c(0x9d),'type':a54_0x53114c(0xb5),'required':!![],'description':a54_0x53114c(0xa6)};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x53114c(0xb1),'type':a54_0x53114c(0xbb),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};function a54_0x1877(_0x443c40,_0x448c71){_0x443c40=_0x443c40-0x7c;const _0x1bff34=a54_0x1bff();let _0x1877cd=_0x1bff34[_0x443c40];return _0x1877cd;}export function isBuiltinRuntimeRole(_0x5d563a){const _0x38dd15=a54_0x53114c;return BUILTIN_ROLE_TYPES[_0x38dd15(0x95)](_0x5d563a);}export function assertCustomRuntimeRole(_0x7c2a71,_0x222227){const _0x4d0748=a54_0x53114c;if(_0x7c2a71['roleType']!==_0x4d0748(0x93))throw CliErrors[_0x4d0748(0x99)](_0x4d0748(0x84)+_0x222227+_0x4d0748(0xc9)+_0x7c2a71[_0x4d0748(0x90)]+'\x20('+_0x7c2a71[_0x4d0748(0x8a)]+').',_0x4d0748(0xb2));}export function projectRuntimeRole(_0x434a19){const _0x4d6f03=a54_0x53114c;return{'id':_0x434a19['id'],'roleCode':_0x434a19[_0x4d6f03(0x86)],'roleName':_0x434a19['roleName'],'roleType':_0x434a19[_0x4d6f03(0x8a)],'remark':_0x434a19['remark'],'userCount':_0x434a19[_0x4d6f03(0xb6)]??0x0,'permitCount':_0x434a19[_0x4d6f03(0xc5)]??0x0,'builtin':isBuiltinRuntimeRole(_0x434a19[_0x4d6f03(0x8a)])};}function a54_0x1bff(){const _0x230f12=['appCode','\x22\x20is\x20ambiguous.','\x20built-in\x20runtime\x20role\x20','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Runtime\x20user\x20','Runtime\x20role\x20','userId','applyUserList','Pass\x20one\x20role\x20ID:\x20','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','Cannot\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','roleCode','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','678033IUqRqB','3341403obYJPw','roleType','userList','6plTwEI','\x22\x20was\x20not\x20found\x20in\x20app\x20','items','12kXtnOD','roleName','OWNER','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','CUSTOM','userName','includes','1168406hBjHOC','num','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','validation','filter','Runtime\x20role\x20id\x20','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','user','Runtime\x20role\x20name\x20\x22','USER','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','str','--role-code\x20must\x20not\x20be\x20blank.','role','paging','\x20is\x20not\x20in\x20runtime\x20role\x20','Runtime\x20numeric\x20userId','7138173bHCukX','role-code','map','Missing\x20runtime\x20role\x20reference.','user-add','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','isSafeInteger','11164200tgxnnH','--role-code\x20cannot\x20exceed\x2064\x20characters.','totalCount','expect-user-count','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','1558945MzkCLZ','string','userCount','length','trim','find','ADMIN','number','User\x20','push','3601456SCVwlE','1UdJEuG','Pass\x20--role\x20<id|name>.','flag','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','test','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','permitCount','runtime'];a54_0x1bff=function(){return _0x230f12;};return a54_0x1bff();}export function readOptionalRuntimeRoleCode(_0x2b4feb){const _0x2ea8a4=a54_0x53114c,_0x38252f=_0x2b4feb[_0x2ea8a4(0xc1)](_0x2ea8a4(0xa8));if(_0x38252f===undefined||_0x38252f===null)return undefined;const _0xab2a74=String(_0x38252f)[_0x2ea8a4(0xb8)]();if(!_0xab2a74)throw CliErrors[_0x2ea8a4(0x99)](_0x2ea8a4(0xa2));if(_0xab2a74['length']>0x40)throw CliErrors[_0x2ea8a4(0x99)](_0x2ea8a4(0xaf));return _0xab2a74;}export async function getRuntimeRoleById(_0x50d28c,_0x4a7d2d){const _0x6f15ed=a54_0x53114c;if(!Number[_0x6f15ed(0xad)](_0x4a7d2d)||_0x4a7d2d<=0x0)throw CliErrors['validation'](_0x6f15ed(0x92));const _0x5c7cee=(await listAllRuntimeRoles(_0x50d28c))[_0x6f15ed(0x9a)](_0x26464d=>_0x26464d['id']===_0x4a7d2d&&(!_0x26464d[_0x6f15ed(0xc7)]||_0x26464d[_0x6f15ed(0xc7)]===_0x50d28c));if(_0x5c7cee['length']!==0x1)throw CliErrors[_0x6f15ed(0x99)](_0x6f15ed(0x9b)+_0x4a7d2d+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x50d28c+'.',_0x6f15ed(0xa0));return _0x5c7cee[0x0];}export async function listAllRuntimeRoles(_0x27bdfa,_0x4a441c={}){const _0x1f2ac0=a54_0x53114c,_0x2f2bc3=0x64,_0x59aa20=[];for(let _0x5ddc71=0x1;;_0x5ddc71+=0x1){const _0x12787f=await listRuntimeAppRoles(_0x27bdfa,{..._0x4a441c[_0x1f2ac0(0x90)]?{'roleName':_0x4a441c[_0x1f2ac0(0x90)]}:{},'currentPage':_0x5ddc71,'pageSize':_0x2f2bc3});_0x59aa20[_0x1f2ac0(0xbd)](..._0x12787f[_0x1f2ac0(0x8e)]);if(_0x12787f['items']['length']<_0x2f2bc3||_0x12787f[_0x1f2ac0(0xa4)]&&_0x59aa20[_0x1f2ac0(0xb7)]>=_0x12787f['paging'][_0x1f2ac0(0xb0)])return _0x59aa20;}}export async function resolveRuntimeRoleRef(_0x4a8faf,_0x19b8ba){const _0x1a7be4=a54_0x53114c,_0x2faab2=_0x19b8ba['trim']();if(!_0x2faab2)throw CliErrors[_0x1a7be4(0x99)](_0x1a7be4(0xaa),_0x1a7be4(0xc0));if(/^\d+$/[_0x1a7be4(0xc3)](_0x2faab2))return getRuntimeRoleById(_0x4a8faf,Number(_0x2faab2));const _0x41a290=(await listAllRuntimeRoles(_0x4a8faf))[_0x1a7be4(0x9a)](_0x3a08c7=>_0x3a08c7[_0x1a7be4(0x90)]===_0x2faab2);if(_0x41a290['length']===0x0)throw CliErrors[_0x1a7be4(0x99)](_0x1a7be4(0x9e)+_0x2faab2+_0x1a7be4(0x8d)+_0x4a8faf+'.',_0x1a7be4(0xc2));if(_0x41a290[_0x1a7be4(0xb7)]>0x1)throw CliErrors['validation'](_0x1a7be4(0x9e)+_0x2faab2+_0x1a7be4(0xc8),_0x1a7be4(0x80)+_0x41a290[_0x1a7be4(0xa9)](_0x34bdaf=>_0x34bdaf['id'])['join'](',\x20')+'.');return _0x41a290[0x0];}function parseRuntimeUserId(_0x341c9b){const _0xf2e164=a54_0x53114c,_0x52cefd=_0x341c9b[_0xf2e164(0xb8)]();if(!/^\d+$/[_0xf2e164(0xc3)](_0x52cefd))throw CliErrors['validation'](_0xf2e164(0xcb),_0xf2e164(0xc4));const _0x4d94f6=Number(_0x52cefd);if(!Number['isSafeInteger'](_0x4d94f6)||_0x4d94f6<=0x0)throw CliErrors[_0xf2e164(0x99)](_0xf2e164(0x83));return _0x4d94f6;}export async function prepareRuntimeMemberMutation(_0x575070,_0x261dc6){const _0x41b161=a54_0x53114c,_0x22cf41=await resolveRuntimeRoleRef(_0x575070['appCode'],_0x575070[_0x41b161(0xa1)](_0x41b161(0xa3)));if(_0x22cf41[_0x41b161(0x8a)]===_0x41b161(0x91))throw CliErrors['validation'](_0x41b161(0x81),_0x41b161(0x9c));const _0x48704d=parseRuntimeUserId(_0x575070[_0x41b161(0xa1)]('user')),_0xff9059=(await listRuntimeRoleUsers(_0x575070[_0x41b161(0xc7)]))[_0x41b161(0xa9)](_0x18d8dc=>({..._0x18d8dc,'userList':[..._0x18d8dc[_0x41b161(0x8b)]??[]],'applyUserList':[..._0x18d8dc[_0x41b161(0x7f)]??[]]})),_0x3c1fb5=_0xff9059[_0x41b161(0xb9)](_0x25b1db=>_0x25b1db['id']===_0x22cf41['id']);if(!_0x3c1fb5)throw CliErrors[_0x41b161(0x99)](_0x41b161(0x7d)+_0x22cf41['id']+_0x41b161(0xb3),_0x41b161(0xac));const _0x170f91=_0x3c1fb5[_0x41b161(0x8b)][_0x41b161(0xa9)](_0x50a7fd=>_0x50a7fd[_0x41b161(0x7e)]),_0x2a98d6=_0x575070[_0x41b161(0xc1)](_0x41b161(0xb1));if(_0x2a98d6!==undefined&&_0x2a98d6!==null&&_0x2a98d6!==''){const _0xc6900c=_0x575070[_0x41b161(0x97)](_0x41b161(0xb1));if(!Number[_0x41b161(0xad)](_0xc6900c)||_0xc6900c<0x0)throw CliErrors[_0x41b161(0x99)]('--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.');if(_0x170f91['length']!==_0xc6900c)throw CliErrors[_0x41b161(0x99)](_0x41b161(0x87)+_0xc6900c+',\x20found\x20'+_0x170f91[_0x41b161(0xb7)]+'.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.');}const _0x5bdbb6=_0x170f91[_0x41b161(0x95)](_0x48704d),_0x25c2ec=[];let _0xc44ebc=!![];if(_0x261dc6===_0x41b161(0xab)){const _0x53b797=await listRuntimeAppUsers(_0x575070[_0x41b161(0xc7)]),_0x4d0694=_0x53b797[_0x41b161(0x9a)](_0x218592=>Number(_0x218592['code'])===_0x48704d);if(_0x4d0694[_0x41b161(0xb7)]!==0x1||!_0x4d0694[0x0][_0x41b161(0x94)]?.[_0x41b161(0xb8)]())throw CliErrors[_0x41b161(0x99)](_0x41b161(0x7c)+_0x48704d+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x575070['appCode']+'.',_0x41b161(0x82));_0x5bdbb6?(_0xc44ebc=![],_0x25c2ec[_0x41b161(0xbd)](_0x41b161(0xbc)+_0x48704d+_0x41b161(0x85)+_0x22cf41['id']+'.')):_0x3c1fb5[_0x41b161(0x8b)][_0x41b161(0xbd)]({'userId':_0x48704d,'username':_0x4d0694[0x0][_0x41b161(0x94)]});}else!_0x5bdbb6?(_0xc44ebc=![],_0x25c2ec['push'](_0x41b161(0xbc)+_0x48704d+_0x41b161(0xa5)+_0x22cf41['id']+'.')):_0x3c1fb5[_0x41b161(0x8b)]=_0x3c1fb5[_0x41b161(0x8b)]['filter'](_0x31c025=>_0x31c025[_0x41b161(0x7e)]!==_0x48704d);return{'role':_0x22cf41,'userId':_0x48704d,'roleList':_0xff9059,'before':{'userIds':_0x170f91},'after':{'userIds':_0x3c1fb5['userList'][_0x41b161(0xa9)](_0x16b662=>_0x16b662[_0x41b161(0x7e)])},'shouldWrite':_0xc44ebc,'warnings':_0x25c2ec};}export function runtimeRoleWriteResult(_0x58fbfd,_0xa39ab6,_0x25f33e,_0x4174f3,_0x174816,_0xd5c8c0=[]){const _0x1b8581=a54_0x53114c;return{'operation':_0x58fbfd,'scope':_0x1b8581(0xc6),'selector':_0xa39ab6,'before':_0x25f33e,'after':_0x4174f3,'dryRun':![],'backend':_0x174816,'warnings':_0xd5c8c0};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a55_0x5600ea=a55_0x13e4;(function(_0x31f685,_0x33d229){const _0x48289c=a55_0x13e4,_0x57067a=_0x31f685();while(!![]){try{const _0x50ac26=-parseInt(_0x48289c(0x119))/0x1*(-parseInt(_0x48289c(0x11d))/0x2)+-parseInt(_0x48289c(0x112))/0x3+-parseInt(_0x48289c(0x113))/0x4*(-parseInt(_0x48289c(0x120))/0x5)+-parseInt(_0x48289c(0x125))/0x6+parseInt(_0x48289c(0x115))/0x7*(parseInt(_0x48289c(0x11c))/0x8)+-parseInt(_0x48289c(0x11a))/0x9*(parseInt(_0x48289c(0x109))/0xa)+parseInt(_0x48289c(0x116))/0xb*(parseInt(_0x48289c(0x110))/0xc);if(_0x50ac26===_0x33d229)break;else _0x57067a['push'](_0x57067a['shift']());}catch(_0x3ba25e){_0x57067a['push'](_0x57067a['shift']());}}}(a55_0x2c63,0xd9559));function a55_0x13e4(_0x417167,_0x5d260b){_0x417167=_0x417167-0x108;const _0x2c63e7=a55_0x2c63();let _0x13e464=_0x2c63e7[_0x417167];return _0x13e464;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function a55_0x2c63(){const _0x1c5beb=['891620XcyBmn','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','New\x20non-empty\x20role\x20remark','/client/permit/role/update','role','appCode','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','1638372pztoce','POST','1911000fyYhgP','69868zLdNoT','--name\x20must\x20not\x20be\x20blank.','1635928hZYXoI','77jvjenM','str','body','3LYBOmv','9cHVrJE','trim','32yeLMjD','414574glowcS','num','flag','50NsLnxf','name','role-code','--remark\x20must\x20not\x20be\x20blank.','validation','6424206MjtSUK','update'];a55_0x2c63=function(){return _0x1c5beb;};return a55_0x2c63();}function updateFields(_0x15a988){const _0x202111=a55_0x13e4,_0x3be44b=_0x15a988['flag'](_0x202111(0x122))!==undefined,_0x6c8264=_0x15a988[_0x202111(0x11f)](_0x202111(0x121))!==undefined,_0xe9f8f3=_0x15a988[_0x202111(0x11f)]('remark')!==undefined;if(!_0x3be44b&&!_0x6c8264&&!_0xe9f8f3)throw CliErrors[_0x202111(0x124)]('Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.');const _0x38e4da=readOptionalRuntimeRoleCode(_0x15a988),_0x2c2349=_0x15a988[_0x202111(0x117)]('name')[_0x202111(0x11b)](),_0x458eae=_0x15a988['str']('remark')[_0x202111(0x11b)]();if(_0x6c8264&&!_0x2c2349)throw CliErrors[_0x202111(0x124)](_0x202111(0x114));if(_0xe9f8f3&&!_0x458eae)throw CliErrors[_0x202111(0x124)](_0x202111(0x123),_0x202111(0x10f));return{..._0x38e4da?{'roleCode':_0x38e4da}:{},..._0x6c8264?{'roleName':_0x2c2349}:{},..._0xe9f8f3?{'remark':_0x458eae}:{}};}async function prepare(_0x1ede2c){const _0x282b45=a55_0x13e4,_0x21247f=await getRuntimeRoleById(_0x1ede2c[_0x282b45(0x10e)],_0x1ede2c[_0x282b45(0x11e)]('id'));return assertCustomRuntimeRole(_0x21247f,_0x282b45(0x108)),{'role':_0x21247f,'body':{'id':_0x21247f['id'],'appCode':_0x1ede2c[_0x282b45(0x10e)],...updateFields(_0x1ede2c)}};}export const roleUpdate={'service':a55_0x5600ea(0x10d),'command':a55_0x5600ea(0x108),'description':a55_0x5600ea(0x10a),'risk':'high-risk-write','confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':'name','type':'string','description':'New\x20role\x20name'},{'name':'remark','type':'string','description':a55_0x5600ea(0x10b)}],async 'validate'(_0x3442a4){updateFields(_0x3442a4);},async 'dryRun'(_0x2c53d0){const _0x459e15=a55_0x5600ea,{body:_0x4aad65}=await prepare(_0x2c53d0);return dryRun('POST',_0x459e15(0x10c))[_0x459e15(0x118)](_0x4aad65)['description']('Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role')['build']();},async 'execute'(_0x2ca47d){const _0x413c90=a55_0x5600ea,{role:_0x220d0e,body:_0x482d5e}=await prepare(_0x2ca47d),_0x5ad9af=await updateRuntimeAppRole(_0x482d5e);return{'ok':!![],'data':runtimeRoleWriteResult('update',{'roleId':_0x220d0e['id']},projectRuntimeRole(_0x220d0e),projectRuntimeRole(_0x5ad9af),{'method':_0x413c90(0x111),'path':_0x413c90(0x10c)})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a56_0x38c756=a56_0x161c;(function(_0x3610ce,_0x2fea0a){const _0x3c4a9b=a56_0x161c,_0x2cf533=_0x3610ce();while(!![]){try{const _0x16ad1=-parseInt(_0x3c4a9b(0x13d))/0x1*(parseInt(_0x3c4a9b(0x136))/0x2)+parseInt(_0x3c4a9b(0x14a))/0x3+parseInt(_0x3c4a9b(0x143))/0x4+parseInt(_0x3c4a9b(0x135))/0x5+-parseInt(_0x3c4a9b(0x149))/0x6+-parseInt(_0x3c4a9b(0x144))/0x7*(-parseInt(_0x3c4a9b(0x147))/0x8)+-parseInt(_0x3c4a9b(0x146))/0x9;if(_0x16ad1===_0x2fea0a)break;else _0x2cf533['push'](_0x2cf533['shift']());}catch(_0x5473c9){_0x2cf533['push'](_0x2cf533['shift']());}}}(a56_0x62a2,0x97d3d));import{updateRuntimeRoleUsers}from'../../core/api-client.js';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 roleUserAdd={'service':a56_0x38c756(0x13a),'command':a56_0x38c756(0x139),'description':'Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','risk':a56_0x38c756(0x141),'confirmationDescription':a56_0x38c756(0x14c),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x6ad013){const _0x595903=a56_0x38c756,_0x2e7c86=await prepareRuntimeMemberMutation(_0x6ad013,_0x595903(0x139));return dryRun(_0x595903(0x137),_0x595903(0x145))[_0x595903(0x13b)]({'appCode':_0x6ad013[_0x595903(0x13f)],'roleList':_0x2e7c86[_0x595903(0x142)]})[_0x595903(0x138)](_0x2e7c86[_0x595903(0x148)]?_0x595903(0x134):_0x2e7c86[_0x595903(0x13e)][0x0])[_0x595903(0x13c)]();},async 'execute'(_0x26221c){const _0x4f81f1=a56_0x38c756,_0x3699ee=await prepareRuntimeMemberMutation(_0x26221c,_0x4f81f1(0x139));return _0x3699ee['shouldWrite']&&await updateRuntimeRoleUsers(_0x26221c[_0x4f81f1(0x13f)],_0x3699ee[_0x4f81f1(0x142)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x3699ee['role']['id'],'userId':_0x3699ee[_0x4f81f1(0x140)]},_0x3699ee[_0x4f81f1(0x14b)],_0x3699ee[_0x4f81f1(0x14d)],{'method':_0x4f81f1(0x137),'path':_0x4f81f1(0x145)},_0x3699ee['warnings'])};}};function a56_0x161c(_0x237139,_0x5c9235){_0x237139=_0x237139-0x134;const _0x62a2f2=a56_0x62a2();let _0x161ce4=_0x62a2f2[_0x237139];return _0x161ce4;}function a56_0x62a2(){const _0x162df1=['8vnWpgv','shouldWrite','5417688wRUTMP','938985vKsHGF','before','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','after','Preview:\x20add\x20runtime\x20role\x20member','4349040GJmbDa','55566CjiYGJ','POST','description','user-add','role','body','build','26eOwNWa','warnings','appCode','userId','high-risk-write','roleList','3991096dJVIsQ','7062230wJzjRq','/client/permit/user-role/update-user-list','8480484ZkrlCi'];a56_0x62a2=function(){return _0x162df1;};return a56_0x62a2();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a57_0x1f0e(_0x3e9fc2,_0x1cf611){_0x3e9fc2=_0x3e9fc2-0x1c6;const _0x48249d=a57_0x4824();let _0x1f0e61=_0x48249d[_0x3e9fc2];return _0x1f0e61;}const a57_0x3248f2=a57_0x1f0e;(function(_0x14227d,_0x3a4527){const _0x120533=a57_0x1f0e,_0x5ba545=_0x14227d();while(!![]){try{const _0x1dd7ce=-parseInt(_0x120533(0x1cf))/0x1+-parseInt(_0x120533(0x1de))/0x2*(parseInt(_0x120533(0x1c7))/0x3)+parseInt(_0x120533(0x1d7))/0x4*(-parseInt(_0x120533(0x1cb))/0x5)+-parseInt(_0x120533(0x1cd))/0x6*(parseInt(_0x120533(0x1c8))/0x7)+-parseInt(_0x120533(0x1ca))/0x8*(parseInt(_0x120533(0x1d1))/0x9)+parseInt(_0x120533(0x1d8))/0xa*(parseInt(_0x120533(0x1dc))/0xb)+parseInt(_0x120533(0x1c9))/0xc;if(_0x1dd7ce===_0x3a4527)break;else _0x5ba545['push'](_0x5ba545['shift']());}catch(_0x3df00c){_0x5ba545['push'](_0x5ba545['shift']());}}}(a57_0x4824,0x3215b));import{updateRuntimeRoleUsers}from'../../core/api-client.js';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':'role','command':a57_0x3248f2(0x1d0),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':'high-risk-write','confirmationDescription':a57_0x3248f2(0x1ce),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x487fe5){const _0x2f073a=a57_0x3248f2,_0x36a94a=await prepareRuntimeMemberMutation(_0x487fe5,_0x2f073a(0x1d0));return dryRun(_0x2f073a(0x1db),'/client/permit/user-role/update-user-list')[_0x2f073a(0x1df)]({'appCode':_0x487fe5['appCode'],'roleList':_0x36a94a[_0x2f073a(0x1d4)]})[_0x2f073a(0x1c6)](_0x36a94a[_0x2f073a(0x1d9)]?_0x2f073a(0x1d5):_0x36a94a[_0x2f073a(0x1da)][0x0])[_0x2f073a(0x1dd)]();},async 'execute'(_0x35b5bf){const _0x19ea82=a57_0x3248f2,_0x591b57=await prepareRuntimeMemberMutation(_0x35b5bf,_0x19ea82(0x1d0));return _0x591b57[_0x19ea82(0x1d9)]&&await updateRuntimeRoleUsers(_0x35b5bf['appCode'],_0x591b57['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0x19ea82(0x1d0),{'roleId':_0x591b57['role']['id'],'userId':_0x591b57[_0x19ea82(0x1d6)]},_0x591b57[_0x19ea82(0x1cc)],_0x591b57[_0x19ea82(0x1d3)],{'method':_0x19ea82(0x1db),'path':_0x19ea82(0x1d2)},_0x591b57[_0x19ea82(0x1da)])};}};function a57_0x4824(){const _0x17f3c0=['8436120eAftWE','3728eYsPzZ','248135QLztmm','before','1728vfYSHt','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','196550mlDXeE','user-remove','6606vAcrXs','/client/permit/user-role/update-user-list','after','roleList','Preview:\x20remove\x20runtime\x20role\x20member','userId','4FegIJD','1419380Ippvez','shouldWrite','warnings','POST','11qOjvxA','build','11528WsgYbS','body','description','21RQNDBp','273IOCLIv'];a57_0x4824=function(){return _0x17f3c0;};return a57_0x4824();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a58_0x19ff61=a58_0x4514;(function(_0x137411,_0x8db248){const _0x3c8d68=a58_0x4514,_0x7ab612=_0x137411();while(!![]){try{const _0x26a537=-parseInt(_0x3c8d68(0xb8))/0x1+parseInt(_0x3c8d68(0xb3))/0x2*(-parseInt(_0x3c8d68(0xaf))/0x3)+parseInt(_0x3c8d68(0xe2))/0x4*(parseInt(_0x3c8d68(0xb2))/0x5)+-parseInt(_0x3c8d68(0xb4))/0x6+-parseInt(_0x3c8d68(0xab))/0x7+parseInt(_0x3c8d68(0xd2))/0x8+parseInt(_0x3c8d68(0xe1))/0x9;if(_0x26a537===_0x8db248)break;else _0x7ab612['push'](_0x7ab612['shift']());}catch(_0x20a711){_0x7ab612['push'](_0x7ab612['shift']());}}}(a58_0x10f6,0x2835f));function a58_0x10f6(){const _0x1fde7b=['high-risk-write','Schedule\x20kind:\x20CRON\x20or\x20ONCE','body','limit','create','2832705hlfNnB','115480HKtlrI','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','cron','kimi/k3','trim','Schedule\x20input\x20is\x20valid','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','UTC','Preview:\x20run\x20schedule\x20','Page\x20size\x20from\x201\x20to\x20100','CRON','build','description','1418536xbzuLr','/schedules','deepseek-v4-flash-0731','ONCE','4938mPgiXB','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','Preview:\x20delete\x20schedule\x20','40fcxISB','118bmOSPU','216924Aoyxbm','str','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Schedule\x20title','252982urFUzk','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','list','read','title','string','POST','kind','--prompt\x20must\x20not\x20be\x20blank.','Deleted\x20schedule\x20','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','--title\x20must\x20not\x20be\x20blank.','/run','DELETE','prompt','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','length','cursor','num','appCode','validation','validate','schedule-id','\x20immediately','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','scheduleId','1663168nAoYla','\x20from\x20schedule\x20','schedule','detail','Queued\x20Task\x20','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','taskId','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'];a58_0x10f6=function(){return _0x1fde7b;};return a58_0x10f6();}import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x19ff61(0xbf),'type':a58_0x19ff61(0xbd),'required':!![],'enum':[a58_0x19ff61(0xa8),a58_0x19ff61(0xae)],'description':a58_0x19ff61(0xdd)},CRON_FLAG={'name':'cron','type':a58_0x19ff61(0xbd),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a58_0x19ff61(0xbd),'description':a58_0x19ff61(0xa4)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a58_0x19ff61(0xb7)},PROMPT_FLAG={'name':a58_0x19ff61(0xc6),'type':a58_0x19ff61(0xbd),'required':!![],'description':a58_0x19ff61(0xdb)},MODEL_FLAG={'name':'model','type':'string','enum':[a58_0x19ff61(0xe6),a58_0x19ff61(0xad),'deepseek-v4-pro-0813'],'default':a58_0x19ff61(0xad),'description':a58_0x19ff61(0xe3)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a58_0x19ff61(0xbd),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x19ff61(0xda)}},LIMIT_FLAG={'name':a58_0x19ff61(0xdf),'type':'number','default':0x14,'description':a58_0x19ff61(0xa7)},CURSOR_FLAG={'name':a58_0x19ff61(0xc9),'type':a58_0x19ff61(0xbd),'description':a58_0x19ff61(0xd9)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3ccb23){const _0x5a5976=a58_0x19ff61,_0x252302=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xbf)),_0x325689=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xbc))[_0x5a5976(0xe7)](),_0x1d6d49=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xc6))[_0x5a5976(0xe7)](),_0x4a7c54=_0x3ccb23['str']('model'),_0x3c7f1b=_0x3ccb23['str'](_0x5a5976(0xe5)),_0x3657c4=_0x3ccb23[_0x5a5976(0xb5)]('scheduled-at');if(!_0x325689)throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xc3));if(!_0x1d6d49)throw CliErrors['validation'](_0x5a5976(0xc0));if(_0x252302===_0x5a5976(0xa8)){if(!_0x3c7f1b||_0x3657c4)throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xb6));return{'kind':_0x252302,'timezone':_0x5a5976(0xa5),'cron':_0x3c7f1b,'title':_0x325689,'prompt':_0x1d6d49,'model':_0x4a7c54};}if(_0x252302===_0x5a5976(0xae)){if(!_0x3657c4||_0x3c7f1b)throw CliErrors['validation']('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x252302,'timezone':_0x5a5976(0xa5),'scheduledAt':_0x3657c4,'title':_0x325689,'prompt':_0x1d6d49,'model':_0x4a7c54};}throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xb0));}function scheduleCollectionPath(_0xc75d0d){const _0x3ad5ed=a58_0x19ff61;return'/api/harness/apps/'+encodeURIComponent(_0xc75d0d)+_0x3ad5ed(0xac);}function scheduleItemPath(_0x1d68ce,_0x5ced9b){return scheduleCollectionPath(_0x1d68ce)+'/'+encodeURIComponent(_0x5ced9b);}const scheduleValidate={'service':'schedule','command':a58_0x19ff61(0xcd),'description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a58_0x19ff61(0xbb),'flags':INPUT_FLAGS,async 'validate'(_0x16d160){readScheduleInput(_0x16d160);},async 'execute'(_0x171d3d){const _0x16e8c5=a58_0x19ff61,_0x4c6a25=readScheduleInput(_0x171d3d),_0x3ded96=await validateRuntimeSchedule(_0x171d3d[_0x16e8c5(0xcb)],_0x4c6a25);return{'ok':!![],'data':_0x3ded96,'message':_0x16e8c5(0xe8)};}},scheduleCreate={'service':'schedule','command':a58_0x19ff61(0xe0),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xd0),'flags':INPUT_FLAGS,async 'validate'(_0x3a6b22){readScheduleInput(_0x3a6b22);},async 'execute'(_0xc5b0dd){const _0x43509f=a58_0x19ff61,_0x506dd2=readScheduleInput(_0xc5b0dd),_0x34aff1=await validateRuntimeSchedule(_0xc5b0dd[_0x43509f(0xcb)],_0x506dd2),_0x181a82=await createRuntimeSchedule(_0xc5b0dd[_0x43509f(0xcb)],_0x34aff1);return{'ok':!![],'data':_0x181a82,'message':'Created\x20'+_0x181a82[_0x43509f(0xbf)]+'\x20schedule\x20'+_0x181a82[_0x43509f(0xd1)]};},async 'dryRun'(_0xc56842){const _0x2187dd=a58_0x19ff61,_0x349670=readScheduleInput(_0xc56842);return dryRun(_0x2187dd(0xbe),scheduleCollectionPath(_0xc56842[_0x2187dd(0xcb)]))[_0x2187dd(0xde)](_0x349670)[_0x2187dd(0xaa)]('Preview:\x20create\x20an\x20Agent\x20schedule')['build']();}},scheduleList={'service':a58_0x19ff61(0xd4),'command':a58_0x19ff61(0xba),'description':a58_0x19ff61(0xe4),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1dc3fb){const _0x471722=a58_0x19ff61,_0x575272=_0x1dc3fb[_0x471722(0xca)]('limit');if(!Number['isSafeInteger'](_0x575272)||_0x575272<0x1||_0x575272>0x64)throw CliErrors[_0x471722(0xcc)](_0x471722(0xb9));const _0x550929=_0x1dc3fb[_0x471722(0xb5)](_0x471722(0xc9));if(_0x550929&&(_0x550929[_0x471722(0xc8)]>0x400||_0x550929['trim']()!==_0x550929))throw CliErrors[_0x471722(0xcc)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x3f607b){const _0x55755a=a58_0x19ff61,_0x257d8a=_0x3f607b[_0x55755a(0xb5)](_0x55755a(0xc9)),_0x26dfdc=await listRuntimeSchedules(_0x3f607b[_0x55755a(0xcb)],{'kind':_0x3f607b[_0x55755a(0xb5)](_0x55755a(0xbf)),'limit':_0x3f607b[_0x55755a(0xca)]('limit'),..._0x257d8a?{'cursor':_0x257d8a}:{}});return{'ok':!![],'data':_0x26dfdc};}},scheduleDetail={'service':a58_0x19ff61(0xd4),'command':a58_0x19ff61(0xd5),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x19ff61(0xbb),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x502aef){const _0x27e7dc=a58_0x19ff61,_0xbca519=await getRuntimeSchedule(_0x502aef['appCode'],_0x502aef[_0x27e7dc(0xb5)](_0x27e7dc(0xce)));return{'ok':!![],'data':_0xbca519};}},scheduleRun={'service':'schedule','command':'run','description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xc2),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xd7b05d){const _0x29e81f=a58_0x19ff61,_0x122ba9=_0xd7b05d['str'](_0x29e81f(0xce)),_0x45918f=await runRuntimeSchedule(_0xd7b05d['appCode'],_0x122ba9);return{'ok':!![],'data':_0x45918f,'message':_0x29e81f(0xd6)+_0x45918f[_0x29e81f(0xd8)]+_0x29e81f(0xd3)+_0x122ba9};},async 'dryRun'(_0x2c69a5){const _0x17767b=a58_0x19ff61,_0x4983af=_0x2c69a5[_0x17767b(0xb5)](_0x17767b(0xce));return dryRun(_0x17767b(0xbe),scheduleItemPath(_0x2c69a5['appCode'],_0x4983af)+_0x17767b(0xc4))[_0x17767b(0xaa)](_0x17767b(0xa6)+_0x4983af+_0x17767b(0xcf))[_0x17767b(0xa9)]();}},scheduleDelete={'service':a58_0x19ff61(0xd4),'command':'delete','description':a58_0x19ff61(0xc7),'risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xd7),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5c4029){const _0xc0b334=a58_0x19ff61,_0x323f44=_0x5c4029[_0xc0b334(0xb5)](_0xc0b334(0xce)),_0x4a80f8=await deleteRuntimeSchedule(_0x5c4029[_0xc0b334(0xcb)],_0x323f44);return{'ok':!![],'data':_0x4a80f8,'message':_0xc0b334(0xc1)+_0x323f44};},async 'dryRun'(_0x57450e){const _0x489f60=a58_0x19ff61,_0x400368=_0x57450e[_0x489f60(0xb5)](_0x489f60(0xce));return dryRun(_0x489f60(0xc5),scheduleItemPath(_0x57450e[_0x489f60(0xcb)],_0x400368))[_0x489f60(0xaa)](_0x489f60(0xb1)+_0x400368)[_0x489f60(0xa9)]();}};function a58_0x4514(_0x297289,_0x40d7d0){_0x297289=_0x297289-0xa4;const _0x10f61d=a58_0x10f6();let _0x4514b7=_0x10f61d[_0x297289];return _0x4514b7;}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
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];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a59_0x481d3a=a59_0x5c00;(function(_0x3af3e,_0x31bac6){const _0x105cba=a59_0x5c00,_0xe7dfd3=_0x3af3e();while(!![]){try{const _0x35bb45=parseInt(_0x105cba(0xeb))/0x1*(parseInt(_0x105cba(0xea))/0x2)+-parseInt(_0x105cba(0xe0))/0x3*(parseInt(_0x105cba(0xe3))/0x4)+-parseInt(_0x105cba(0xe8))/0x5*(parseInt(_0x105cba(0xdd))/0x6)+parseInt(_0x105cba(0xdf))/0x7+-parseInt(_0x105cba(0xe5))/0x8*(parseInt(_0x105cba(0xe6))/0x9)+-parseInt(_0x105cba(0xe1))/0xa+parseInt(_0x105cba(0xe2))/0xb;if(_0x35bb45===_0x31bac6)break;else _0xe7dfd3['push'](_0xe7dfd3['shift']());}catch(_0x22ca19){_0xe7dfd3['push'](_0xe7dfd3['shift']());}}}(a59_0x58d4,0x1f3d7));import{buildSchemaPayload}from'../framework/schema-export.js';function a59_0x58d4(){const _0x2193ec=['4858601oPmBMf','104sUtUlc','schema','191960CxuAtD','18fuGcMN','export','3055oWVzQJ','read','94yySyOf','3466nkgrwp','1146ZcusUt','Export\x20machine-readable\x20command\x20schema\x20(JSON)','602490KEYPYH','28263ShQucx','1530670BvAYYs'];a59_0x58d4=function(){return _0x2193ec;};return a59_0x58d4();}function a59_0x5c00(_0x18db51,_0x3cc808){_0x18db51=_0x18db51-0xdd;const _0x58d49a=a59_0x58d4();let _0x5c0052=_0x58d49a[_0x18db51];return _0x5c0052;}async function execute(_0x4a6b7a){const _0x2896dc=await buildSchemaPayload();return{'ok':!![],'data':_0x2896dc};}export const schemaDefinition={'service':a59_0x481d3a(0xe4),'command':a59_0x481d3a(0xe7),'description':a59_0x481d3a(0xde),'risk':a59_0x481d3a(0xe9),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0xae5ba8,_0x176630){const _0x549870=a60_0x481b,_0x41d920=_0xae5ba8();while(!![]){try{const _0x35840a=-parseInt(_0x549870(0x17e))/0x1+parseInt(_0x549870(0x18e))/0x2*(parseInt(_0x549870(0x161))/0x3)+-parseInt(_0x549870(0x1a2))/0x4+-parseInt(_0x549870(0x178))/0x5*(-parseInt(_0x549870(0x1a3))/0x6)+-parseInt(_0x549870(0x180))/0x7*(-parseInt(_0x549870(0x19a))/0x8)+parseInt(_0x549870(0x15b))/0x9*(parseInt(_0x549870(0x169))/0xa)+parseInt(_0x549870(0x185))/0xb*(-parseInt(_0x549870(0x176))/0xc);if(_0x35840a===_0x176630)break;else _0x41d920['push'](_0x41d920['shift']());}catch(_0x74d19){_0x41d920['push'](_0x41d920['shift']());}}}(a60_0x5b53,0xb1356));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(_0x25716a,_0x25dfd3){const _0x59fcac=a60_0x481b,_0x1b539c=listLocalServiceTrees();let _0x4fd831;for(const _0x3bda03 of _0x1b539c){const _0x216059=matchServiceTreeCommand(_0x3bda03,_0x25716a);if(!_0x216059)continue;(!_0x4fd831||_0x216059[_0x59fcac(0x184)]['fullPath'][_0x59fcac(0x168)]>_0x4fd831[_0x59fcac(0x184)][_0x59fcac(0x18c)]['length'])&&(_0x4fd831={'tree':_0x3bda03,'command':_0x216059['command'],'remainingArgs':_0x216059['remainingArgs']});}if(!_0x4fd831)return undefined;const _0xf18f27={..._0x25dfd3};return applyAppBinding(_0x4fd831[_0x59fcac(0x1ab)],_0x4fd831['command'],_0xf18f27),{'definition':buildDynamicCommandDefinition(_0x4fd831[_0x59fcac(0x1ab)],_0x4fd831[_0x59fcac(0x184)]),'args':_0x4fd831[_0x59fcac(0x154)],'flags':_0xf18f27,'tree':_0x4fd831[_0x59fcac(0x1ab)],'command':_0x4fd831[_0x59fcac(0x184)]};}export function generateDynamicServiceHelp(_0x34319f){const _0x62018f=a60_0x481b,_0x1f8d4d=listLocalServiceTrees()[_0x62018f(0x151)](_0x3e9a62=>_0x3e9a62[_0x62018f(0x160)][_0x62018f(0x1a9)]===_0x34319f);if(!_0x1f8d4d)return undefined;const _0x3394f9=[CLI_BIN_NAME+'\x20'+_0x34319f+_0x62018f(0x17a),'',_0x1f8d4d[_0x62018f(0x160)]['name']||_0x34319f,_0x1f8d4d[_0x62018f(0x160)][_0x62018f(0x195)]?'\x20\x20'+_0x1f8d4d[_0x62018f(0x160)][_0x62018f(0x195)]:'','',_0x62018f(0x162),..._0x1f8d4d['commands'][_0x62018f(0x198)](_0x28203c=>{const _0x364c8e=_0x62018f,_0x208be6=_0x28203c[_0x364c8e(0x18c)]['slice'](0x1)['join']('\x20'),_0x1ce24c=_0x28203c[_0x364c8e(0x167)]==='read'?'':'\x20['+_0x28203c[_0x364c8e(0x167)]+']';return'\x20\x20'+_0x208be6['padEnd'](0x18)+'\x20'+(_0x28203c[_0x364c8e(0x195)]||'')+_0x1ce24c;}),'',_0x62018f(0x1b0)+CLI_BIN_NAME+_0x62018f(0x1a0)+_0x34319f+_0x62018f(0x148)]['filter'](Boolean);return _0x3394f9[_0x62018f(0x1a5)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x42ca3c=>{const _0x235cd0=a60_0x481b,_0x1563ea=_0x42ca3c[_0x235cd0(0x181)];return{'service':_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x1a9)],'label':_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x149)]||_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x1a9)],'commands':_0x1563ea[_0x235cd0(0x187)][_0x235cd0(0x198)](_0x44447d=>({'command':dynamicCommandName(_0x44447d),'description':_0x44447d['description']||_0x235cd0(0x153)+_0x44447d[_0x235cd0(0x17d)],'tag':riskTag(_0x44447d[_0x235cd0(0x167)])}))};});}export function getDynamicServiceEntry(_0x4891ff){const _0xc06c9c=a60_0x481b;return listDynamicServiceEntries()[_0xc06c9c(0x151)](_0x521eb7=>_0x521eb7['service']===_0x4891ff);}export function listDynamicServiceDefinitions(_0x1f8862){const _0x2d1956=a60_0x481b;return listLocalServiceTrees()[_0x2d1956(0x188)](_0x55bc8a=>!_0x1f8862||_0x55bc8a[_0x2d1956(0x160)][_0x2d1956(0x1a9)]===_0x1f8862)['flatMap'](_0x29d42f=>_0x29d42f['commands']['map'](_0x2aba25=>buildDynamicCommandDefinition(_0x29d42f,_0x2aba25)));}export function getDynamicServiceDefinitions(_0x4ae948){const _0x11464b=listDynamicServiceDefinitions(_0x4ae948);return _0x11464b['length']>0x0?_0x11464b:undefined;}export function findDynamicServiceDefinition(_0x45c8c0,_0x1d33fd){const _0x12f07b=a60_0x481b;return listDynamicServiceDefinitions(_0x45c8c0)['find'](_0x5782b8=>_0x5782b8[_0x12f07b(0x184)]===_0x1d33fd);}export function buildDynamicCommandDefinition(_0x15093c,_0x20b067){const _0x42e5db=a60_0x481b;return{'service':_0x15093c[_0x42e5db(0x160)][_0x42e5db(0x1a9)],'command':dynamicCommandName(_0x20b067),'description':_0x20b067[_0x42e5db(0x195)]||'Run\x20service\x20command\x20'+_0x20b067['cliPath'],'risk':_0x20b067[_0x42e5db(0x167)],..._0x20b067[_0x42e5db(0x167)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x20b067)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x20b067[_0x42e5db(0x1a8)]['map'](_0x2be766=>({'name':_0x2be766[_0x42e5db(0x149)],'description':_0x2be766['description']||_0x2be766[_0x42e5db(0x149)],'required':_0x2be766['required']})),'flags':_0x20b067['flags'][_0x42e5db(0x198)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x20b067),async 'dryRun'(_0x4ebc48){const _0x5b13ad=_0x42e5db,_0x5ab143=await compilePlan(_0x20b067,_0x4ebc48);return{'method':_0x5b13ad(0x16e),'url':_0x20b067[_0x5b13ad(0x17d)],'body':{'target':targetPreview(_0x5ab143),'params':_0x5ab143[_0x5b13ad(0x15d)]},'description':_0x5b13ad(0x14e)+_0x20b067[_0x5b13ad(0x17d)]};},async 'execute'(_0x1cdfd9){const _0x1f0df5=_0x42e5db,_0x19ef9a=await compilePlan(_0x20b067,_0x1cdfd9),_0x1cba85=Date['now'](),_0x8735ab=await executePlan(_0x19ef9a,_0x20b067,_0x1cdfd9),_0xe01a14=Date[_0x1f0df5(0x182)]()-_0x1cba85;return{'ok':!![],'data':{'service':_0x15093c[_0x1f0df5(0x160)],'command':_0x20b067[_0x1f0df5(0x17d)],'target':targetPreview(_0x19ef9a),'result':_0x8735ab,'elapsed':_0xe01a14},'message':_0x1f0df5(0x14d)+_0x20b067['cliPath']+_0x1f0df5(0x15c)+_0xe01a14+'ms'};}};}function buildDynamicConfirmationDescription(_0x4b842a){const _0x56e383=a60_0x481b,_0x4198f3=_0x4b842a[_0x56e383(0x195)]||_0x4b842a['cliPath'],_0x44df30=_0x4b842a[_0x56e383(0x167)]===_0x56e383(0x18f)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x56e383(0x173)+_0x4198f3+_0x56e383(0x150)+_0x44df30;}function dynamicCommandName(_0x26fbc4){const _0xf10600=a60_0x481b;return _0x26fbc4[_0xf10600(0x18c)][_0xf10600(0x16b)](0x1)[_0xf10600(0x1a5)]('\x20');}function riskTag(_0x27c9fc){const _0x10a2b8=a60_0x481b;return _0x27c9fc===_0x10a2b8(0x15f)?'':_0x10a2b8(0x17b)+_0x27c9fc+']';}function flagToCommandFlag(_0x2c375c){const _0x45909a=a60_0x481b;return{'name':_0x2c375c[_0x45909a(0x15a)],'type':_0x2c375c[_0x45909a(0x159)]==='json'?'string':_0x2c375c[_0x45909a(0x159)],'description':_0x2c375c[_0x45909a(0x195)]||_0x2c375c[_0x45909a(0x149)],'required':_0x2c375c[_0x45909a(0x196)],'default':isPrimitiveFlagDefault(_0x2c375c['default'])?_0x2c375c['default']:undefined,'enum':_0x2c375c[_0x45909a(0x1a6)]};}function a60_0x481b(_0x4a7b3c,_0x7d9438){_0x4a7b3c=_0x4a7b3c-0x148;const _0x5b5365=a60_0x5b53();let _0x481ba0=_0x5b5365[_0x4a7b3c];return _0x481ba0;}async function compilePlan(_0x265bfe,_0x23ec41){const _0x199296=a60_0x481b;return compileServiceTreeCommand(_0x265bfe,{'flags':_0x23ec41[_0x199296(0x16a)],'args':_0x23ec41['args'],'context':await buildServiceContext(_0x265bfe,_0x23ec41)});}async function buildServiceContext(_0x1d32b8,_0x1745f6){const _0x1aafb2=a60_0x481b,_0x3a07a6={'appCode':_0x1745f6[_0x1aafb2(0x1b1)],'env':_0x1745f6[_0x1aafb2(0x158)],'envName':_0x1745f6[_0x1aafb2(0x158)]};if(!usesRuntimeContext(_0x1d32b8))return _0x3a07a6;const _0x1f18d0=await getLoginUserInfo(),_0x415313=pickFirst(_0x1f18d0[_0x1aafb2(0x1b3)],_0x1f18d0['id']);return{..._0x3a07a6,'user':_0x1f18d0,'userId':_0x415313,'id':_0x1f18d0['id'],'username':pickFirst(_0x1f18d0['username'],_0x1f18d0[_0x1aafb2(0x156)],_0x1f18d0['loginName']),'userName':_0x1f18d0[_0x1aafb2(0x156)],'nickname':pickFirst(_0x1f18d0[_0x1aafb2(0x16d)],_0x1f18d0[_0x1aafb2(0x19f)]),'nickName':_0x1f18d0[_0x1aafb2(0x19f)],'tenantCode':_0x1f18d0['tenantCode'],'employeeId':_0x1f18d0[_0x1aafb2(0x183)]};}function usesRuntimeContext(_0x2bd49c){const _0x22f91a=a60_0x481b;return _0x2bd49c[_0x22f91a(0x15e)]['some'](_0x4b19be=>typeof _0x4b19be['source']===_0x22f91a(0x174)&&(_0x4b19be[_0x22f91a(0x1af)][_0x22f91a(0x16f)](_0x22f91a(0x186))||_0x4b19be[_0x22f91a(0x1af)][_0x22f91a(0x16f)](_0x22f91a(0x166))));}function a60_0x5b53(){const _0x1787cf=['name','\x20\x20\x20\x20datatable:\x20','Unsupported\x20service\x20target\x20kind:\x20','\x20\x20MAP\x20TO','Service\x20command\x20','Preview\x20dynamic\x20service\x20command:\x20','boolean','\x22.\x20','find','bffCode','Run\x20service\x20command\x20','remainingArgs','scriptName','userName','appRef','envName','type','cliName','9FVXcZf','\x20completed\x20in\x20','params','mapTo','read','service','1402374OhdWsZ','Commands:','appBindings','entries','\x20\x20\x20\x20datasetCode:\x20','ctx.','risk','length','4727250RwhiTj','rawFlags','slice','number','nickname','SERVICE_TREE','startsWith','\x20\x20\x20\x20sqlCode:\x20','data','\x20->\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','string','\x20requires\x20target.functionName.','1343256FSVDof','kind','15SbISFQ','push','\x20<command>\x20[flags]','\x20\x20[','datasetCode','cliPath','294758spoJiH','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','2232818adPaio','normalizedManifest','now','employeeId','command','66zSfdGX','context.','commands','filter','validation','env','target','fullPath','\x22\x20in\x20service\x20command\x20','2UmcuIc','high-risk-write','\x20\x20\x20\x20functionName:\x20','fromEntries','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','bff','datatable','description','required','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','map','\x20requires\x20target.sqlCode.','8ihomIc','dbtableConfig','tableName','operator','appcode','nickName','\x20service\x20detail\x20--service\x20','\x20\x20SERVICE\x20TREE\x20TARGET','2613416JsdXNl','2172858IyShzX','bffId','join','enum','\x20\x20\x20\x20','args','code','sql','tree','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','app','Cannot\x20resolve\x20datatable\x20\x22','source','Use\x20`','appCode','sqlCode','userId','`\x20to\x20inspect\x20the\x20manifest.'];a60_0x5b53=function(){return _0x1787cf;};return a60_0x5b53();}function pickFirst(..._0x234ab6){const _0x271683=a60_0x481b;return _0x234ab6[_0x271683(0x151)](_0x17c809=>_0x17c809!==undefined&&_0x17c809!==null);}async function executePlan(_0x425518,_0x50a59a,_0x20f8db){const _0x1b3cc1=a60_0x481b;if(_0x425518[_0x1b3cc1(0x177)]===_0x1b3cc1(0x171)){const _0x3346cc=await resolveDatasetCode(_0x425518,_0x50a59a,_0x20f8db);return executeData(_0x3346cc,_0x425518['command'],_0x425518[_0x1b3cc1(0x15d)]);}if(_0x425518['kind']===_0x1b3cc1(0x1aa)){if(!_0x425518['sqlCode'])throw CliErrors['validation']('Service\x20command\x20'+_0x50a59a[_0x1b3cc1(0x17d)]+_0x1b3cc1(0x199));return executeSdkSql(_0x425518[_0x1b3cc1(0x1b2)],normalizeScalarParams(_0x425518[_0x1b3cc1(0x15d)]));}if(_0x425518[_0x1b3cc1(0x177)]===_0x1b3cc1(0x193)){const _0x1507cf=_0x425518[_0x1b3cc1(0x155)]||_0x425518[_0x1b3cc1(0x152)]||(_0x425518[_0x1b3cc1(0x1a4)]==null?'':String(_0x425518['bffId']));if(!_0x1507cf)throw CliErrors['validation'](_0x1b3cc1(0x14d)+_0x50a59a[_0x1b3cc1(0x17d)]+_0x1b3cc1(0x175));return executeSdkBff(_0x1507cf,_0x425518['params']);}throw CliErrors[_0x1b3cc1(0x189)](_0x1b3cc1(0x14b)+_0x425518[_0x1b3cc1(0x177)]);}async function resolveDatasetCode(_0x30eed2,_0x41f653,_0x46a382){const _0xe91e4e=a60_0x481b;if(_0x30eed2[_0xe91e4e(0x17c)])return _0x30eed2['datasetCode'];if(!_0x30eed2[_0xe91e4e(0x194)])throw CliErrors[_0xe91e4e(0x189)](_0xe91e4e(0x14d)+_0x41f653[_0xe91e4e(0x17d)]+_0xe91e4e(0x17f));const _0x4bd4e5=await listDatasets(_0x46a382['appCode']),_0x49f739=_0x4bd4e5[_0xe91e4e(0x151)](_0x54c6ae=>_0x54c6ae[_0xe91e4e(0x19b)]?.[_0xe91e4e(0x19c)]===_0x30eed2[_0xe91e4e(0x194)]);if(!_0x49f739?.['code'])throw CliErrors[_0xe91e4e(0x189)](_0xe91e4e(0x1ae)+_0x30eed2['datatable']+_0xe91e4e(0x1ac)+_0x46a382[_0xe91e4e(0x1b1)]+'.',_0xe91e4e(0x192));return _0x49f739['code'];}function applyAppBinding(_0x4cfbf0,_0x561daf,_0x1b5cf3){const _0x3dde1d=a60_0x481b,_0x57f32b=_0x561daf[_0x3dde1d(0x18b)][_0x3dde1d(0x157)];if(!_0x57f32b)return;const _0x3be328=_0x4cfbf0[_0x3dde1d(0x163)][_0x57f32b];if(!_0x3be328)throw CliErrors[_0x3dde1d(0x189)]('Unknown\x20appRef\x20\x22'+_0x57f32b+_0x3dde1d(0x18d)+_0x561daf[_0x3dde1d(0x17d)]+'.',_0x3dde1d(0x197));const _0x185c1b=_0x3be328[_0x3dde1d(0x19e)]||_0x3be328['appCode'];_0x185c1b&&!hasText(_0x1b5cf3[_0x3dde1d(0x19e)])&&(_0x1b5cf3[_0x3dde1d(0x19e)]=_0x185c1b),_0x3be328[_0x3dde1d(0x1ad)]&&!hasText(_0x1b5cf3['app'])&&!hasText(_0x1b5cf3[_0x3dde1d(0x19e)])&&(_0x1b5cf3[_0x3dde1d(0x1ad)]=_0x3be328[_0x3dde1d(0x1ad)]),_0x3be328[_0x3dde1d(0x18a)]&&!hasText(_0x1b5cf3[_0x3dde1d(0x18a)])&&(_0x1b5cf3[_0x3dde1d(0x18a)]=_0x3be328[_0x3dde1d(0x18a)]);}function renderDynamicCommandHelp(_0x45b790){const _0x11966b=a60_0x481b,_0x25f43a=[_0x11966b(0x1a1),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x177)],'\x20\x20\x20\x20command:\x20'+_0x45b790['target'][_0x11966b(0x184)]];if(_0x45b790['target'][_0x11966b(0x17c)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x165)+_0x45b790[_0x11966b(0x18b)]['datasetCode']);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x194)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x14a)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x194)]);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x1b2)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x170)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x1b2)]);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x155)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x190)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x155)]);if(_0x45b790['mapTo'][_0x11966b(0x168)]>0x0){_0x25f43a[_0x11966b(0x179)]('',_0x11966b(0x14c));for(const _0x354540 of _0x45b790[_0x11966b(0x15e)]){_0x25f43a[_0x11966b(0x179)](_0x11966b(0x1a7)+(_0x354540['source']||'const')+_0x11966b(0x172)+_0x354540['target']+(_0x354540[_0x11966b(0x19d)]?'.'+_0x354540[_0x11966b(0x19d)]:''));}}return _0x25f43a[_0x11966b(0x1a5)]('\x0a');}function targetPreview(_0x504ddc){const _0x428c5f=a60_0x481b;return{'kind':_0x504ddc[_0x428c5f(0x177)],'command':_0x504ddc[_0x428c5f(0x184)],'appRef':_0x504ddc['appRef'],'datasetCode':_0x504ddc[_0x428c5f(0x17c)],'datatable':_0x504ddc['datatable'],'sqlCode':_0x504ddc[_0x428c5f(0x1b2)],'bffCode':_0x504ddc[_0x428c5f(0x152)],'bffId':_0x504ddc[_0x428c5f(0x1a4)],'functionName':_0x504ddc[_0x428c5f(0x155)]};}function normalizeScalarParams(_0xcbdfe2){const _0x51a73c=a60_0x481b;return Object[_0x51a73c(0x191)](Object[_0x51a73c(0x164)](_0xcbdfe2)['filter'](([,_0x7c20dd])=>typeof _0x7c20dd===_0x51a73c(0x174)||typeof _0x7c20dd===_0x51a73c(0x16c)));}function hasText(_0x1f205b){const _0x20c702=a60_0x481b;return typeof _0x1f205b===_0x20c702(0x174)&&_0x1f205b['trim']()[_0x20c702(0x168)]>0x0;}function isPrimitiveFlagDefault(_0x2755f9){const _0x3fad1f=a60_0x481b;return _0x2755f9===undefined||typeof _0x2755f9==='string'||typeof _0x2755f9===_0x3fad1f(0x16c)||typeof _0x2755f9===_0x3fad1f(0x14f);}
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xa9ad04,_0x307f90){const _0x1be330=a61_0x5426,_0xad42c6=_0xa9ad04();while(!![]){try{const _0x5df809=-parseInt(_0x1be330(0x1f3))/0x1+-parseInt(_0x1be330(0x1fd))/0x2*(parseInt(_0x1be330(0x1f9))/0x3)+-parseInt(_0x1be330(0x1ff))/0x4*(parseInt(_0x1be330(0x1f7))/0x5)+parseInt(_0x1be330(0x1fe))/0x6*(parseInt(_0x1be330(0x1f4))/0x7)+parseInt(_0x1be330(0x1f0))/0x8*(-parseInt(_0x1be330(0x1fa))/0x9)+-parseInt(_0x1be330(0x215))/0xa*(parseInt(_0x1be330(0x217))/0xb)+parseInt(_0x1be330(0x1f2))/0xc;if(_0x5df809===_0x307f90)break;else _0xad42c6['push'](_0xad42c6['shift']());}catch(_0x5af3cc){_0xad42c6['push'](_0xad42c6['shift']());}}}(a61_0x1c11,0xbe50c));export function adaptServiceTreeManifestForLegacyFramework(_0x1c6bde){const _0x201e41=a61_0x5426,_0x3ed6d7=cloneJsonValue(_0x1c6bde),_0x13a85e=[];if(!isObjectRecord(_0x3ed6d7))return{'manifest':_0x3ed6d7,'errors':_0x13a85e};return Array[_0x201e41(0x210)](_0x3ed6d7[_0x201e41(0x212)])&&_0x3ed6d7[_0x201e41(0x212)][_0x201e41(0x203)]((_0xbf9141,_0x85a2fb)=>{const _0x25e1b1=_0x201e41;if(!isObjectRecord(_0xbf9141))return;adaptBffTarget(_0xbf9141[_0x25e1b1(0x209)],'$.commands['+_0x85a2fb+_0x25e1b1(0x20e),_0x13a85e);}),adaptResources(_0x3ed6d7[_0x201e41(0x201)],_0x201e41(0x20d),_0x13a85e),{'manifest':_0x3ed6d7,'errors':_0x13a85e};}export function toPublicServiceTreeTarget(_0x3dbfa3){const _0x3d458d=a61_0x5426,{scriptName:_0x49f180,..._0x4e567a}=_0x3dbfa3;return typeof _0x49f180===_0x3d458d(0x1f1)&&_0x49f180['trim']()&&(_0x4e567a[_0x3d458d(0x214)]=_0x49f180),_0x4e567a;}function a61_0x1c11(){const _0x1647d2=['fromEntries','resources','.actions.','forEach','entries','map','push','.scriptName','bff','target','kind','scriptName','error','$.resources','].target','prototype','isArray','hasOwnProperty','commands','call','functionName','10AnNczY','bff.exec','703670JPrhgJ','actions','trim','753208EornUm','string','36110208IiGdhV','877176XHOWWt','28WYUnIx','.target','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','357345UDxSgi','.functionName','4059447fXKtuj','9jABStd','.resources','action','2Nlehkc','1310226AflsaE','40LUaEqq'];a61_0x1c11=function(){return _0x1647d2;};return a61_0x1c11();}export function toPublicNormalizedServiceTree(_0x392179){const _0x54f7ad=a61_0x5426;return{..._0x392179,'commands':_0x392179[_0x54f7ad(0x212)][_0x54f7ad(0x205)](_0x259b62=>({..._0x259b62,'target':toPublicServiceTreeTarget(_0x259b62[_0x54f7ad(0x209)])}))};}function adaptResources(_0x3696f3,_0x49a0a2,_0x18ff39){const _0x5936fd=a61_0x5426;if(!isObjectRecord(_0x3696f3))return;for(const [_0x235f22,_0x3bfbee]of Object['entries'](_0x3696f3)){if(!isObjectRecord(_0x3bfbee))continue;const _0x3a474e=_0x49a0a2+'.'+_0x235f22;if(isObjectRecord(_0x3bfbee[_0x5936fd(0x1ee)]))for(const [_0x40db54,_0x39e8e1]of Object['entries'](_0x3bfbee[_0x5936fd(0x1ee)])){if(!isObjectRecord(_0x39e8e1))continue;const _0x1ad6f4=_0x3a474e+_0x5936fd(0x202)+_0x40db54,_0x19d87d=isObjectRecord(_0x39e8e1[_0x5936fd(0x209)])&&_0x39e8e1[_0x5936fd(0x209)]['kind']==='bff';adaptBffTarget(_0x39e8e1[_0x5936fd(0x209)],_0x1ad6f4+_0x5936fd(0x1f5),_0x18ff39),(_0x19d87d||isBffAction(_0x39e8e1))&&adaptFunctionNameField(_0x39e8e1,_0x1ad6f4,_0x18ff39);}adaptResources(_0x3bfbee[_0x5936fd(0x201)],_0x3a474e+_0x5936fd(0x1fb),_0x18ff39);}}function adaptBffTarget(_0x33749c,_0x5cb127,_0x51fda2){const _0x597b42=a61_0x5426;if(!isObjectRecord(_0x33749c)||_0x33749c[_0x597b42(0x20a)]!==_0x597b42(0x208))return;adaptFunctionNameField(_0x33749c,_0x5cb127,_0x51fda2);}function adaptFunctionNameField(_0x367310,_0x1a6be4,_0x24296e){const _0xdbd32d=a61_0x5426;Object[_0xdbd32d(0x20f)][_0xdbd32d(0x211)][_0xdbd32d(0x213)](_0x367310,_0xdbd32d(0x20b))&&_0x24296e[_0xdbd32d(0x206)]({'level':_0xdbd32d(0x20c),'path':_0x1a6be4+_0xdbd32d(0x207),'message':_0xdbd32d(0x1f6)});if(Object['prototype']['hasOwnProperty']['call'](_0x367310,'functionName')){if(typeof _0x367310[_0xdbd32d(0x214)]!==_0xdbd32d(0x1f1)||!_0x367310['functionName'][_0xdbd32d(0x1ef)]()){_0x24296e[_0xdbd32d(0x206)]({'level':_0xdbd32d(0x20c),'path':_0x1a6be4+_0xdbd32d(0x1f8),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x367310[_0xdbd32d(0x214)];return;}_0x367310[_0xdbd32d(0x20b)]=_0x367310[_0xdbd32d(0x214)],delete _0x367310['functionName'];}}function isBffAction(_0x310ac9){const _0x33dfa2=a61_0x5426;return _0x310ac9[_0x33dfa2(0x20a)]===_0x33dfa2(0x208)||_0x310ac9[_0x33dfa2(0x1fc)]===_0x33dfa2(0x216)||_0x310ac9[_0x33dfa2(0x209)]===_0x33dfa2(0x216);}function a61_0x5426(_0x4d2209,_0x15d5de){_0x4d2209=_0x4d2209-0x1ee;const _0x1c1148=a61_0x1c11();let _0x5426dc=_0x1c1148[_0x4d2209];return _0x5426dc;}function cloneJsonValue(_0x290415){const _0x359e1a=a61_0x5426;if(Array['isArray'](_0x290415))return _0x290415[_0x359e1a(0x205)](_0x1e8abc=>cloneJsonValue(_0x1e8abc));if(isObjectRecord(_0x290415))return Object[_0x359e1a(0x200)](Object[_0x359e1a(0x204)](_0x290415)[_0x359e1a(0x205)](([_0x3b25f5,_0x5a3ed7])=>[_0x3b25f5,cloneJsonValue(_0x5a3ed7)]));return _0x290415;}function isObjectRecord(_0x4efb04){const _0x594ffa=a61_0x5426;return Boolean(_0x4efb04)&&typeof _0x4efb04==='object'&&!Array[_0x594ffa(0x210)](_0x4efb04);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x259ac9=a62_0x583a;(function(_0x3e23c1,_0x19e89e){const _0x4eb4bd=a62_0x583a,_0x1edfa9=_0x3e23c1();while(!![]){try{const _0x4039bd=parseInt(_0x4eb4bd(0x13a))/0x1*(-parseInt(_0x4eb4bd(0x15e))/0x2)+-parseInt(_0x4eb4bd(0x15a))/0x3*(parseInt(_0x4eb4bd(0x12c))/0x4)+-parseInt(_0x4eb4bd(0x12e))/0x5*(-parseInt(_0x4eb4bd(0x161))/0x6)+parseInt(_0x4eb4bd(0x129))/0x7+-parseInt(_0x4eb4bd(0x14e))/0x8+-parseInt(_0x4eb4bd(0x13d))/0x9*(-parseInt(_0x4eb4bd(0x152))/0xa)+-parseInt(_0x4eb4bd(0x126))/0xb;if(_0x4039bd===_0x19e89e)break;else _0x1edfa9['push'](_0x1edfa9['shift']());}catch(_0x45d5b4){_0x1edfa9['push'](_0x1edfa9['shift']());}}}(a62_0x37e5,0x87e78));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a62_0x37e5(){const _0x27a668=['map','10peFXqr','report','remove','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','type','registryPath','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.','Local\x20service\x20code,\x20for\x20example\x20crm','errors','read','updated','length','715783eigOZw','file','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.','1017FbSGhI','\x20service(s).','filePath','serviceCode','registry','entries','name','warnings','list','Exported\x20service\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','hash','imported','flags','WRITE','target','kind','453000FHNjDW','cliPath','lower\x20kebab-case\x20service\x20code','write','21970ejaQOB','commands','Updated','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','service','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Local\x20service\x20not\x20found:\x20','importedAt','11292FUesJt','source','\x20service\x20','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','2sXVoyM','registryServiceCode','str','1654314hCPLef','risk','normalizedManifest','detail','\x20service(s),\x20updated\x20','export','Service\x20Tree\x20manifest\x20file\x20path','Service\x20manifest\x20validation\x20passed.','replaced','version','entry','335698FNxfId','manifests','manifest','4656981WfeAlg','reduce','serviceCount','112XZUXKY'];a62_0x37e5=function(){return _0x27a668;};return a62_0x37e5();}const FILE_FLAG={'name':a62_0x259ac9(0x13b),'type':'string','required':!![],'description':a62_0x259ac9(0x167)},SERVICE_FLAG={'name':a62_0x259ac9(0x156),'type':'string','required':!![],'description':a62_0x259ac9(0x135),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x259ac9(0x150)}};function summarizeService(_0x2b3944){const _0x429df7=a62_0x259ac9;return{'serviceCode':_0x2b3944[_0x429df7(0x140)],'name':_0x2b3944['normalizedManifest'][_0x429df7(0x156)][_0x429df7(0x143)],'version':_0x2b3944['version'],'importedAt':_0x2b3944[_0x429df7(0x159)],'source':_0x2b3944['source'],'commandCount':_0x2b3944['normalizedManifest'][_0x429df7(0x153)][_0x429df7(0x139)],'commands':_0x2b3944[_0x429df7(0x163)]['commands']['map'](_0x473ba9=>({'path':_0x473ba9[_0x429df7(0x14f)],'description':_0x473ba9['description'],'risk':_0x473ba9['risk'],'target':toPublicServiceTreeTarget(_0x473ba9[_0x429df7(0x14c)]),'flags':_0x473ba9[_0x429df7(0x14a)][_0x429df7(0x12d)](_0x4c4b00=>({'name':_0x4c4b00[_0x429df7(0x143)],'cliName':_0x4c4b00['cliName'],'type':_0x4c4b00[_0x429df7(0x132)],'required':_0x4c4b00['required']===!![]}))}))};}function summarizeLoadedManifest(_0x1b8523){const _0xda4018=a62_0x259ac9;return{'service':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x156)],'version':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x16a)],'commandCount':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x153)]['length']??0x0,'commands':_0x1b8523[_0xda4018(0x163)]?.['commands']['map'](_0x25322b=>({'path':_0x25322b[_0xda4018(0x14f)],'risk':_0x25322b['risk'],'target':toPublicServiceTreeTarget(_0x25322b[_0xda4018(0x14c)])}))??[],'registryIndex':_0x1b8523['registryIndex'],'registryServiceCode':_0x1b8523[_0xda4018(0x15f)],'errors':_0x1b8523[_0xda4018(0x12f)][_0xda4018(0x136)],'warnings':_0x1b8523['report'][_0xda4018(0x144)]};}function a62_0x583a(_0x5d9eba,_0x39a0b0){_0x5d9eba=_0x5d9eba-0x126;const _0x37e521=a62_0x37e5();let _0x583a4e=_0x37e521[_0x5d9eba];return _0x583a4e;}export const serviceDefinitions=[{'service':a62_0x259ac9(0x156),'command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a62_0x259ac9(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x38e656){const _0x43d826=a62_0x259ac9,_0x7234c6=loadServiceManifestFromFile(_0x38e656[_0x43d826(0x160)](_0x43d826(0x13b)));if(!_0x7234c6['report']['ok'])return{'ok':![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6[_0x43d826(0x14d)],'serviceCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)],'services':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x12d)](summarizeLoadedManifest),'errors':_0x7234c6[_0x43d826(0x12f)][_0x43d826(0x136)],'warnings':_0x7234c6[_0x43d826(0x12f)]['warnings']},'message':formatValidationFailure(_0x7234c6[_0x43d826(0x12f)])};if(_0x7234c6[_0x43d826(0x14d)]===_0x43d826(0x141)||_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)]!==0x1)return{'ok':!![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6['kind'],'serviceCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)],'commandCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x12a)]((_0x770db9,_0x24a29f)=>_0x770db9+(_0x24a29f[_0x43d826(0x163)]?.['commands']['length']??0x0),0x0),'services':_0x7234c6[_0x43d826(0x127)]['map'](summarizeLoadedManifest),'warnings':_0x7234c6[_0x43d826(0x12f)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6[_0x43d826(0x14d)],'service':_0x7234c6['normalizedManifest']?.[_0x43d826(0x156)],'version':_0x7234c6['normalizedManifest']?.[_0x43d826(0x16a)],'commandCount':_0x7234c6[_0x43d826(0x163)]?.[_0x43d826(0x153)][_0x43d826(0x139)]??0x0,'commands':_0x7234c6[_0x43d826(0x163)]?.[_0x43d826(0x153)][_0x43d826(0x12d)](_0x581728=>({'path':_0x581728[_0x43d826(0x14f)],'risk':_0x581728[_0x43d826(0x162)],'target':toPublicServiceTreeTarget(_0x581728[_0x43d826(0x14c)])})),'warnings':_0x7234c6[_0x43d826(0x12f)][_0x43d826(0x144)]},'message':_0x43d826(0x168)};}},{'service':a62_0x259ac9(0x156),'command':'import','description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5beead){const _0x30055f=a62_0x259ac9,_0x210f6a=loadServiceManifestFromFile(_0x5beead[_0x30055f(0x160)](_0x30055f(0x13b)));return{'method':_0x30055f(0x14b),'url':getServiceRegistryPath(),'body':{'file':_0x210f6a['filePath'],'hash':_0x210f6a[_0x30055f(0x148)],'kind':_0x210f6a[_0x30055f(0x14d)],'ok':_0x210f6a['report']['ok'],'service':_0x210f6a[_0x30055f(0x163)]?.['service'],'version':_0x210f6a[_0x30055f(0x163)]?.[_0x30055f(0x16a)],'serviceCount':_0x210f6a['manifests']['length'],'services':_0x210f6a['manifests'][_0x30055f(0x12d)](_0x1dabd1=>({'service':_0x1dabd1[_0x30055f(0x163)]?.[_0x30055f(0x156)],'version':_0x1dabd1[_0x30055f(0x163)]?.['version'],'commandCount':_0x1dabd1['normalizedManifest']?.[_0x30055f(0x153)]['length']??0x0,'errors':_0x1dabd1[_0x30055f(0x12f)]['errors']})),'errors':_0x210f6a[_0x30055f(0x12f)]['errors'],'commandCount':_0x210f6a[_0x30055f(0x163)]?.[_0x30055f(0x153)][_0x30055f(0x139)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x11474b){const _0x33470c=a62_0x259ac9,_0x3268b2=importServiceManifest(_0x11474b[_0x33470c(0x160)](_0x33470c(0x13b)));if(_0x3268b2[_0x33470c(0x142)][_0x33470c(0x139)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3268b2['registryPath'],'imported':_0x3268b2[_0x33470c(0x149)],'updated':_0x3268b2[_0x33470c(0x138)],'serviceCount':_0x3268b2[_0x33470c(0x12b)],'services':_0x3268b2['entries']['map'](summarizeService)},'message':'Imported\x20'+_0x3268b2[_0x33470c(0x149)]+_0x33470c(0x165)+_0x3268b2[_0x33470c(0x138)]+_0x33470c(0x13e)};return{'ok':!![],'data':{'registryPath':_0x3268b2['registryPath'],'replaced':_0x3268b2[_0x33470c(0x169)],'imported':_0x3268b2[_0x33470c(0x149)],'updated':_0x3268b2['updated'],'serviceCount':_0x3268b2[_0x33470c(0x12b)],'service':summarizeService(_0x3268b2['entry'])},'message':(_0x3268b2[_0x33470c(0x169)]?_0x33470c(0x154):'Imported')+_0x33470c(0x15c)+_0x3268b2[_0x33470c(0x16b)][_0x33470c(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x166),'description':a62_0x259ac9(0x131),'risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x134),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1c185a){const _0x508939=a62_0x259ac9,_0x55082f=getLocalServiceEntry(_0x1c185a[_0x508939(0x160)](_0x508939(0x156)));return{'method':_0x508939(0x14b),'url':_0x1c185a[_0x508939(0x160)](_0x508939(0x13b)),'body':{'service':_0x1c185a['str'](_0x508939(0x156)),'found':Boolean(_0x55082f),'version':_0x55082f?.['version'],'source':_0x55082f?.[_0x508939(0x15b)]},'description':_0x508939(0x155)};},async 'execute'(_0x3e054d){const _0x5b4f61=a62_0x259ac9,_0x29d455=exportServiceManifest(_0x3e054d[_0x5b4f61(0x160)](_0x5b4f61(0x156)),_0x3e054d['str'](_0x5b4f61(0x13b)));return{'ok':!![],'data':{'registryPath':_0x29d455[_0x5b4f61(0x133)],'file':_0x29d455[_0x5b4f61(0x13f)],'service':summarizeService(_0x29d455[_0x5b4f61(0x16b)])},'message':_0x5b4f61(0x146)+_0x29d455[_0x5b4f61(0x16b)][_0x5b4f61(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x145),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xfbdcb4=a62_0x259ac9,_0x3e7588=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3e7588[_0xfbdcb4(0x139)],'services':_0x3e7588[_0xfbdcb4(0x12d)](summarizeService)}};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x130),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x15d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x58e497){const _0x1e2370=a62_0x259ac9,_0x1810e7=getLocalServiceEntry(_0x58e497[_0x1e2370(0x160)](_0x1e2370(0x156)));return{'method':_0x1e2370(0x14b),'url':getServiceRegistryPath(),'body':{'service':_0x58e497[_0x1e2370(0x160)](_0x1e2370(0x156)),'found':Boolean(_0x1810e7),'version':_0x1810e7?.[_0x1e2370(0x16a)],'source':_0x1810e7?.['source']},'description':_0x1e2370(0x157)};},async 'execute'(_0x5ef80b){const _0x1dfd3e=a62_0x259ac9,_0x5b279f=removeServiceManifest(_0x5ef80b[_0x1dfd3e(0x160)](_0x1dfd3e(0x156)));return{'ok':!![],'data':{'registryPath':_0x5b279f[_0x1dfd3e(0x133)],'serviceCount':_0x5b279f[_0x1dfd3e(0x12b)],'service':summarizeService(_0x5b279f[_0x1dfd3e(0x16b)])},'message':'Removed\x20service\x20'+_0x5b279f['entry'][_0x1dfd3e(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x164),'description':a62_0x259ac9(0x147),'risk':a62_0x259ac9(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x375447){const _0x2b9f1f=a62_0x259ac9,_0x3b2433=getLocalServiceEntry(_0x375447[_0x2b9f1f(0x160)]('service'));if(!_0x3b2433)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x375447[_0x2b9f1f(0x160)]('service')},'message':_0x2b9f1f(0x158)+_0x375447[_0x2b9f1f(0x160)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3b2433),'manifest':_0x3b2433[_0x2b9f1f(0x128)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3b2433[_0x2b9f1f(0x163)])}};}}];
|
|
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 +1 @@
|
|
|
1
|
-
(function(_0x49e1d3,_0x3ce2d3){const _0x47cc35=a63_0x33f7,_0x4e0c15=_0x49e1d3();while(!![]){try{const _0x1e3310=parseInt(_0x47cc35(0x177))/0x1*(parseInt(_0x47cc35(0x16d))/0x2)+-parseInt(_0x47cc35(0x135))/0x3+parseInt(_0x47cc35(0x167))/0x4+parseInt(_0x47cc35(0x155))/0x5*(parseInt(_0x47cc35(0x168))/0x6)+parseInt(_0x47cc35(0x15b))/0x7+-parseInt(_0x47cc35(0x160))/0x8+-parseInt(_0x47cc35(0x162))/0x9*(-parseInt(_0x47cc35(0x157))/0xa);if(_0x1e3310===_0x3ce2d3)break;else _0x4e0c15['push'](_0x4e0c15['shift']());}catch(_0x1a710a){_0x4e0c15['push'](_0x4e0c15['shift']());}}}(a63_0xe65b,0xb721f));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';function a63_0xe65b(){const _0x3e7809=['command','join','Cannot\x20write\x20service\x20registry:\x20','homeDirName','report','length','4066266GHeJgp','Invalid\x20service\x20manifest\x20JSON:\x20','services','startsWith','Remove\x20or\x20migrate\x20','hex','errors','object','bff\x20target\x20requires\x20functionName.','Invalid\x20service\x20registry\x20JSON:\x20','sort','manifests','update','code','splice','Service\x20manifest\x20validation\x20failed:\x0a','manifest','slice','Local\x20service\x20not\x20found:\x20','Unsupported\x20schemaVersion:\x20','services\x20must\x20be\x20an\x20array','sourceHash','toISOString','updatedAt','stringify','now','Service\x20manifest\x20file\x20not\x20found:\x20','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','service','risk','schemaVersion','warnings','25nochGQ','find','10EjEMcm','path','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','8603707tcceQW','].manifest','invalid','kind','trim','10822176VPIduo','message','1422072mlDCDr','commandCount','target','normalizedManifest','.tmp','3605744MqerHg','491574YiqyjI','file','name','utf8','importedAt','304046UfvGvP','map','validation','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','missing','findIndex','cliPath','isArray','description','digest','5IzUSjK','parse','version','commands','serviceCode','ENOENT','$.services[','push','empty','registryIndex'];a63_0xe65b=function(){return _0x3e7809;};return a63_0xe65b();}import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x125dfe={}){const _0x177735=a63_0x33f7;return resolve(_0x125dfe['homeDir']??homedir(),PRODUCT_CONFIG[_0x177735(0x132)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xcc343a={}){const _0x511fa1=a63_0x33f7,_0x5d38eb=getServiceRegistryPath(_0xcc343a);if(!existsSync(_0x5d38eb))return emptyServiceRegistry();try{const _0x2d7877=readFileSync(_0x5d38eb,_0x511fa1(0x16b));if(!_0x2d7877[_0x511fa1(0x15f)]())return emptyServiceRegistry();const _0x460009=JSON[_0x511fa1(0x178)](_0x2d7877);if(_0x460009[_0x511fa1(0x153)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x511fa1(0x16f)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x460009[_0x511fa1(0x153)]),_0x511fa1(0x139)+_0x5d38eb+'.');if(!Array[_0x511fa1(0x174)](_0x460009[_0x511fa1(0x137)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x460009[_0x511fa1(0x14c)],'services':_0x460009[_0x511fa1(0x137)]};}catch(_0xbe0a00){if(_0xbe0a00 instanceof Error&&_0xbe0a00[_0x511fa1(0x16a)]==='CliError')throw _0xbe0a00;throw CliErrors[_0x511fa1(0x16f)](_0x511fa1(0x13e)+_0x5d38eb,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x13ef2d,_0x146b8b={}){const _0x113951=a63_0x33f7,_0xb54d48=getServiceRegistryPath(_0x146b8b),_0x2db1c8=dirname(_0xb54d48);!existsSync(_0x2db1c8)&&mkdirSync(_0x2db1c8,{'recursive':!![]});const _0x5dfd9e=_0xb54d48+_0x113951(0x166);try{writeFileSync(_0x5dfd9e,JSON['stringify'](_0x13ef2d,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x5dfd9e,_0xb54d48);}catch(_0x31b5b4){try{unlinkSync(_0x5dfd9e);}catch{}if(_0x31b5b4?.[_0x113951(0x142)]===_0x113951(0x17c))throw CliErrors[_0x113951(0x16f)](_0x113951(0x131)+_0xb54d48);throw _0x31b5b4;}return _0xb54d48;}export function loadServiceManifestFromFile(_0x5a0cf5){const _0x3a8f13=a63_0x33f7,_0x1f0b70=resolve(_0x5a0cf5);if(!existsSync(_0x1f0b70))throw CliErrors[_0x3a8f13(0x16f)](_0x3a8f13(0x14f)+_0x5a0cf5);let _0x1a10f7;const _0xc905ca=readFileSync(_0x1f0b70,_0x3a8f13(0x16b));try{_0x1a10f7=JSON[_0x3a8f13(0x178)](_0xc905ca);}catch{throw CliErrors['validation'](_0x3a8f13(0x136)+_0x5a0cf5,_0x3a8f13(0x159));}const _0x43f95a=sha256(_0xc905ca),_0x2b02e6=extractLoadedServiceManifests(_0x1a10f7,_0x43f95a),_0x54000a=aggregateValidationReports(_0x2b02e6),_0x1f3bcc=_0x2b02e6[0x0];return{'filePath':_0x1f0b70,'hash':_0x43f95a,'kind':isServiceRegistryLike(_0x1a10f7)?'registry':_0x3a8f13(0x145),'manifest':_0x1f3bcc?.[_0x3a8f13(0x145)]??_0x1a10f7,'report':_0x54000a,'normalizedManifest':_0x2b02e6[_0x3a8f13(0x134)]===0x1?_0x1f3bcc?.[_0x3a8f13(0x165)]:undefined,'manifests':_0x2b02e6};}export function importServiceManifest(_0x39e946,_0x35ba6f={}){const _0xd81f59=a63_0x33f7,_0x463ae1=loadServiceManifestFromFile(_0x39e946);if(!_0x463ae1[_0xd81f59(0x133)]['ok'])throw CliErrors[_0xd81f59(0x16f)](formatValidationFailure(_0x463ae1[_0xd81f59(0x133)]),_0xd81f59(0x15a));if(_0x463ae1[_0xd81f59(0x140)][_0xd81f59(0x134)]===0x0)throw CliErrors[_0xd81f59(0x16f)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0xd81f59(0x170));const _0xf1ee82=readServiceRegistry(_0x35ba6f),_0x22bc2d=(_0x35ba6f[_0xd81f59(0x14e)]??(()=>new Date()))()[_0xd81f59(0x14b)](),_0x201707=[];let _0x39d9f8=0x0,_0x4f8244=0x0;for(const _0x1dcf4e of _0x463ae1[_0xd81f59(0x140)]){if(!_0x1dcf4e[_0xd81f59(0x165)])continue;const _0x47e318=_0x1dcf4e['normalizedManifest'][_0xd81f59(0x151)]['code'],_0x1c95fb={'serviceCode':_0x47e318,'version':_0x1dcf4e[_0xd81f59(0x165)][_0xd81f59(0x179)],'importedAt':_0x22bc2d,'source':{'type':_0xd81f59(0x169),'path':_0x463ae1['filePath'],'hash':_0x1dcf4e[_0xd81f59(0x14a)]},'manifest':_0x1dcf4e['manifest'],'normalizedManifest':_0x1dcf4e['normalizedManifest']},_0x125ae1=_0xf1ee82[_0xd81f59(0x137)]['findIndex'](_0xf3f51a=>_0xf3f51a[_0xd81f59(0x17b)]===_0x47e318);_0x125ae1>=0x0?(_0xf1ee82[_0xd81f59(0x137)][_0x125ae1]=_0x1c95fb,_0x4f8244++):(_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x17e)](_0x1c95fb),_0x39d9f8++),_0x201707[_0xd81f59(0x17e)](_0x1c95fb);}_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x13f)]((_0x1e5cae,_0x529638)=>_0x1e5cae[_0xd81f59(0x17b)]['localeCompare'](_0x529638[_0xd81f59(0x17b)])),_0xf1ee82['updatedAt']=_0x22bc2d;const _0x3a0106=writeServiceRegistry(_0xf1ee82,_0x35ba6f);return{'registryPath':_0x3a0106,'entry':_0x201707[0x0],'replaced':_0x201707[_0xd81f59(0x134)]===0x1?_0x4f8244===0x1:_0x4f8244>0x0,'entries':_0x201707,'imported':_0x39d9f8,'updated':_0x4f8244,'serviceCount':_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x134)]};}export function exportServiceManifest(_0x259cd7,_0x32472c,_0x3174fb={}){const _0x25d66c=a63_0x33f7,_0x386676=getServiceRegistryPath(_0x3174fb),_0x492bb6=getLocalServiceEntry(_0x259cd7,_0x3174fb);if(!_0x492bb6)throw CliErrors['validation'](_0x25d66c(0x147)+_0x259cd7,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x23ae42=resolve(_0x32472c),_0x4a0eed=dirname(_0x23ae42);return!existsSync(_0x4a0eed)&&mkdirSync(_0x4a0eed,{'recursive':!![]}),writeFileSync(_0x23ae42,JSON['stringify'](_0x492bb6[_0x25d66c(0x145)],null,0x2)+'\x0a',{'encoding':_0x25d66c(0x16b),'mode':0x180}),{'registryPath':_0x386676,'filePath':_0x23ae42,'entry':_0x492bb6};}export function removeServiceManifest(_0x1c57e1,_0x2ebae0={}){const _0x2071a9=a63_0x33f7,_0xb79078=readServiceRegistry(_0x2ebae0),_0x1f4664=_0x1c57e1[_0x2071a9(0x15f)](),_0x125049=_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x172)](_0x4a3b72=>_0x4a3b72[_0x2071a9(0x17b)]===_0x1f4664);if(_0x125049<0x0)throw CliErrors[_0x2071a9(0x16f)](_0x2071a9(0x147)+_0x1f4664,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x323b58]=_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x143)](_0x125049,0x1),_0x494c7a=(_0x2ebae0[_0x2071a9(0x14e)]??(()=>new Date()))()[_0x2071a9(0x14b)]();_0xb79078[_0x2071a9(0x14c)]=_0x494c7a;const _0x25904f=writeServiceRegistry(_0xb79078,_0x2ebae0);return{'registryPath':_0x25904f,'entry':_0x323b58,'serviceCount':_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x134)]};}export function listLocalServices(_0x5e89fc={}){const _0x5d180e=a63_0x33f7;return readServiceRegistry(_0x5e89fc)[_0x5d180e(0x137)];}export function getLocalServiceEntry(_0x3bb5d6,_0x2bbb3b={}){const _0x2a804a=a63_0x33f7;return readServiceRegistry(_0x2bbb3b)[_0x2a804a(0x137)][_0x2a804a(0x156)](_0x510b01=>_0x510b01[_0x2a804a(0x17b)]===_0x3bb5d6[_0x2a804a(0x15f)]());}export function listLocalServiceTrees(_0x3d38cd={}){return readServiceRegistry(_0x3d38cd)['services']['map'](_0x46f27b=>_0x46f27b['normalizedManifest']);}export function inspectServiceRegistry(_0x5b9aa9={}){const _0x537b45=a63_0x33f7,_0x42cc34=getServiceRegistryPath(_0x5b9aa9);if(!existsSync(_0x42cc34))return emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x171),![]);try{const _0x10f6d0=readFileSync(_0x42cc34,_0x537b45(0x16b));if(!_0x10f6d0[_0x537b45(0x15f)]())return emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x17f),!![]);const _0x2fbd89=JSON[_0x537b45(0x178)](_0x10f6d0);if(_0x2fbd89['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x42cc34,'invalid',!![]),'schemaVersion':_0x2fbd89[_0x537b45(0x153)],'message':_0x537b45(0x148)+String(_0x2fbd89[_0x537b45(0x153)])};if(!Array[_0x537b45(0x174)](_0x2fbd89['services']))return{...emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x15d),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fbd89[_0x537b45(0x14c)],'message':_0x537b45(0x149)};const _0x355c59=_0x2fbd89[_0x537b45(0x137)][_0x537b45(0x16e)](summarizeLocalServiceEntry);return{'registryPath':_0x42cc34,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fbd89[_0x537b45(0x14c)],'serviceCount':_0x355c59['length'],'commandCount':_0x355c59['reduce']((_0x14e270,_0x27e181)=>_0x14e270+_0x27e181[_0x537b45(0x163)],0x0),'services':_0x355c59};}catch(_0x3d8323){return{...emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x15d),!![]),'message':_0x3d8323 instanceof Error?_0x3d8323[_0x537b45(0x161)]:String(_0x3d8323)};}}export function formatValidationFailure(_0x47754f){const _0x260003=a63_0x33f7,_0x888b87=_0x47754f[_0x260003(0x13b)][_0x260003(0x16e)](_0x28595c=>_0x28595c[_0x260003(0x158)]+':\x20'+_0x28595c[_0x260003(0x161)]);return _0x260003(0x144)+_0x888b87[_0x260003(0x130)]('\x0a');}function extractLoadedServiceManifests(_0x1e0102,_0x5dcb28){const _0x1662c5=a63_0x33f7;if(!isServiceRegistryLike(_0x1e0102)){const _0x35a341=_0x1e0102,{manifest:_0x3f7d8a,errors:_0x33f86b}=adaptServiceTreeManifestForLegacyFramework(_0x35a341),_0x45a184=validateServiceTreeManifest(_0x3f7d8a),_0x280ad3=mergeValidationErrors(_0x45a184,_0x33f86b);return[{'manifest':_0x35a341,'report':_0x280ad3,'normalizedManifest':_0x280ad3['ok']?normalizeServiceTreeManifest(_0x3f7d8a):undefined,'sourceHash':_0x5dcb28}];}return _0x1e0102[_0x1662c5(0x137)][_0x1662c5(0x16e)]((_0x2670bd,_0x3fb16e)=>{const _0x4165b4=_0x1662c5,_0x11da2d=isObjectRecord(_0x2670bd)?_0x2670bd['manifest']:undefined,{manifest:_0x46c36a,errors:_0x3103e5}=adaptServiceTreeManifestForLegacyFramework(_0x11da2d),_0x3ebf64=validateServiceTreeManifest(_0x46c36a),_0x453f2d=mergeValidationErrors(_0x3ebf64,_0x3103e5),_0x357e0b=isObjectRecord(_0x2670bd)&&typeof _0x2670bd[_0x4165b4(0x17b)]==='string'?_0x2670bd[_0x4165b4(0x17b)]:undefined;return{'manifest':_0x11da2d,'report':_0x453f2d,'normalizedManifest':_0x453f2d['ok']?normalizeServiceTreeManifest(_0x46c36a):undefined,'sourceHash':sha256(JSON[_0x4165b4(0x14d)](_0x11da2d,null,0x2)+'\x0a'),'registryIndex':_0x3fb16e,'registryServiceCode':_0x357e0b};});}function mergeValidationErrors(_0x5158ba,_0x2e6e97){const _0x4c6f65=a63_0x33f7,_0x3e8509=_0x5158ba['errors']['map'](_0x5173b4=>_0x5173b4[_0x4c6f65(0x161)]===_0x4c6f65(0x150)?{..._0x5173b4,'message':_0x4c6f65(0x13d)}:_0x5173b4),_0x55f422=[..._0x2e6e97,..._0x3e8509];return{'ok':_0x55f422[_0x4c6f65(0x134)]===0x0,'errors':_0x55f422,'warnings':_0x5158ba[_0x4c6f65(0x154)]};}function aggregateValidationReports(_0x2dc8cd){const _0xcb0cde=a63_0x33f7,_0x279e69=_0x2dc8cd['flatMap'](_0x251dde=>_0x251dde[_0xcb0cde(0x180)]===undefined?_0x251dde['report'][_0xcb0cde(0x13b)]:_0x251dde[_0xcb0cde(0x133)][_0xcb0cde(0x13b)]['map'](_0x2e4a76=>({..._0x2e4a76,'path':prefixRegistryIssuePath(_0x251dde[_0xcb0cde(0x180)],_0x2e4a76[_0xcb0cde(0x158)])}))),_0x4eaf53=_0x2dc8cd['flatMap'](_0x55914a=>_0x55914a[_0xcb0cde(0x180)]===undefined?_0x55914a[_0xcb0cde(0x133)][_0xcb0cde(0x154)]:_0x55914a[_0xcb0cde(0x133)]['warnings']['map'](_0x2daf5b=>({..._0x2daf5b,'path':prefixRegistryIssuePath(_0x55914a[_0xcb0cde(0x180)],_0x2daf5b['path'])})));return{'ok':_0x279e69[_0xcb0cde(0x134)]===0x0,'errors':_0x279e69,'warnings':_0x4eaf53};}function prefixRegistryIssuePath(_0x2ec56a,_0x7a0081){const _0x26d298=a63_0x33f7;if(_0x7a0081==='$')return _0x26d298(0x17d)+_0x2ec56a+_0x26d298(0x15c);if(_0x7a0081[_0x26d298(0x138)]('$.'))return _0x26d298(0x17d)+_0x2ec56a+_0x26d298(0x15c)+_0x7a0081[_0x26d298(0x146)](0x1);if(_0x7a0081['startsWith']('$['))return'$.services['+_0x2ec56a+_0x26d298(0x15c)+_0x7a0081[_0x26d298(0x146)](0x1);return _0x26d298(0x17d)+_0x2ec56a+'].manifest.'+_0x7a0081;}function a63_0x33f7(_0x511db3,_0x2e6ebd){_0x511db3=_0x511db3-0x130;const _0xe65b09=a63_0xe65b();let _0x33f723=_0xe65b09[_0x511db3];return _0x33f723;}function isServiceRegistryLike(_0x32449d){const _0x5e381d=a63_0x33f7;return isObjectRecord(_0x32449d)&&_0x32449d[_0x5e381d(0x153)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5e381d(0x174)](_0x32449d['services']);}function isObjectRecord(_0x333d73){const _0x12da82=a63_0x33f7;return Boolean(_0x333d73)&&typeof _0x333d73===_0x12da82(0x13c)&&!Array[_0x12da82(0x174)](_0x333d73);}function emptyServiceRegistryInspection(_0x1e8b22,_0x2c637b,_0x4869d0){return{'registryPath':_0x1e8b22,'exists':_0x4869d0,'status':_0x2c637b,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1aca3e){const _0x515bad=a63_0x33f7,_0x847b06=_0x1aca3e[_0x515bad(0x165)],_0x33b0fd=_0x847b06[_0x515bad(0x17a)]['map'](_0x5f233b=>({'path':_0x5f233b[_0x515bad(0x173)],'description':_0x5f233b['description'],'risk':_0x5f233b[_0x515bad(0x152)],'targetKind':_0x5f233b[_0x515bad(0x164)][_0x515bad(0x15e)],'targetCommand':_0x5f233b[_0x515bad(0x164)][_0x515bad(0x181)]}));return{'serviceCode':_0x1aca3e[_0x515bad(0x17b)],'name':_0x847b06[_0x515bad(0x151)]['name'],'description':_0x847b06[_0x515bad(0x151)][_0x515bad(0x175)],'version':_0x1aca3e[_0x515bad(0x179)],'importedAt':_0x1aca3e[_0x515bad(0x16c)],'source':_0x1aca3e['source'],'commandCount':_0x33b0fd[_0x515bad(0x134)],'commands':_0x33b0fd};}function sha256(_0x47d786){const _0x1b7a7b=a63_0x33f7;return createHash('sha256')[_0x1b7a7b(0x141)](_0x47d786)[_0x1b7a7b(0x176)](_0x1b7a7b(0x13a));}
|
|
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 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a64_0x167113=a64_0xfd7d;(function(_0x2c839a,_0xc713f9){const _0x3b4261=a64_0xfd7d,_0x582559=_0x2c839a();while(!![]){try{const _0x595818=-parseInt(_0x3b4261(0xfb))/0x1*(-parseInt(_0x3b4261(0xeb))/0x2)+parseInt(_0x3b4261(0xf9))/0x3*(parseInt(_0x3b4261(0xee))/0x4)+-parseInt(_0x3b4261(0xf1))/0x5*(parseInt(_0x3b4261(0xdc))/0x6)+-parseInt(_0x3b4261(0xde))/0x7+-parseInt(_0x3b4261(0xf0))/0x8+parseInt(_0x3b4261(0xe3))/0x9*(-parseInt(_0x3b4261(0xe9))/0xa)+parseInt(_0x3b4261(0xf5))/0xb;if(_0x595818===_0xc713f9)break;else _0x582559['push'](_0x582559['shift']());}catch(_0x5083aa){_0x582559['push'](_0x582559['shift']());}}}(a64_0x1fe7,0xbbad5));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a64_0xfd7d(_0x5a08a6,_0x652a11){_0x5a08a6=_0x5a08a6-0xdb;const _0x1fe7cc=a64_0x1fe7();let _0xfd7d86=_0x1fe7cc[_0x5a08a6];return _0xfd7d86;}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':'skill','command':'create','description':a64_0x167113(0xea),'risk':a64_0x167113(0xe2),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x2a2f0a){const _0x527d5a=a64_0x167113,_0x2c7721=buildSkillCreatePlan(_0x2a2f0a[_0x527d5a(0xfc)](_0x527d5a(0xf3)),_0x2a2f0a[_0x527d5a(0xfc)]('type'),_0x2a2f0a['str'](_0x527d5a(0xec)));return{'method':_0x527d5a(0xe7),'url':_0x2c7721['skillDir'],'body':{'skillName':_0x2c7721['rendered'][_0x527d5a(0xfa)],'type':_0x2c7721['rendered'][_0x527d5a(0xdf)],'selfContained':!![],'files':_0x2c7721['rendered'][_0x527d5a(0xe6)][_0x527d5a(0xdd)](_0x8185e4=>_0x8185e4['path'])},'description':_0x527d5a(0xe0)};},async 'execute'(_0x326614){const _0x249153=a64_0x167113,_0x378708=buildSkillCreatePlan(_0x326614[_0x249153(0xfc)](_0x249153(0xf3)),_0x326614[_0x249153(0xfc)]('type'),_0x326614[_0x249153(0xfc)](_0x249153(0xec)));return writeSkillDraft(_0x378708,_0x326614[_0x249153(0xf4)]('force')),{'ok':!![],'data':{'skillName':_0x378708[_0x249153(0xef)][_0x249153(0xfa)],'type':_0x378708[_0x249153(0xef)][_0x249153(0xdf)],'dir':_0x378708['skillDir'],'files':_0x378708[_0x249153(0xef)][_0x249153(0xe6)][_0x249153(0xdd)](_0x5eece5=>_0x5eece5[_0x249153(0xe8)])},'message':_0x249153(0xf6)+_0x378708[_0x249153(0xef)][_0x249153(0xfa)]};}};function buildSkillCreatePlan(_0x9817a9,_0x8e957e,_0x308b19){const _0x5d46e6=a64_0x167113,_0x443e40=_0x8e957e[_0x5d46e6(0xe1)](),_0x7784ef=renderSkillTemplate({'skillName':_0x9817a9,'type':_0x443e40});!_0x443e40&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x2e400f=resolve(normalizeSkillTarget(_0x308b19));return{'rendered':_0x7784ef,'targetRoot':_0x2e400f,'skillDir':resolve(_0x2e400f,_0x7784ef[_0x5d46e6(0xfa)])};}function normalizeSkillTarget(_0x442d24){const _0x56dae2=a64_0x167113;return(_0x442d24||DEFAULT_SKILL_TARGET)[_0x56dae2(0xe1)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x5805a0,_0x1e975e){const _0x11cedf=a64_0x167113;if(existsSync(_0x5805a0[_0x11cedf(0xe4)])){const _0xc8a727=lstatSync(_0x5805a0[_0x11cedf(0xe4)]);if(!_0xc8a727['isDirectory']()||_0xc8a727[_0x11cedf(0xe5)]())throw CliErrors[_0x11cedf(0xed)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x5805a0['skillDir']);if(!_0x1e975e)throw CliErrors[_0x11cedf(0xed)](_0x11cedf(0xdb)+_0x5805a0[_0x11cedf(0xe4)],_0x11cedf(0xf7));}for(const _0x1ded4f of _0x5805a0[_0x11cedf(0xef)][_0x11cedf(0xe6)]){const _0xc0d086=resolve(_0x5805a0[_0x11cedf(0xe4)],_0x1ded4f[_0x11cedf(0xe8)]),_0x266866=dirname(_0xc0d086);mkdirSync(_0x266866,{'recursive':!![]});if(existsSync(_0xc0d086)&&lstatSync(_0xc0d086)[_0x11cedf(0xe5)]())throw CliErrors[_0x11cedf(0xed)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0xc0d086);writeFileSync(_0xc0d086,_0x1ded4f[_0x11cedf(0xf8)],_0x11cedf(0xf2));}}function a64_0x1fe7(){const _0xc4dc22=['5561088PYWhWd','165yVGtKL','utf8','name','bool','39811464LUjNYL','Created\x20local\x20Skill\x20draft\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','content','30762tfEzNI','skillName','2sbuNWI','str','Skill\x20directory\x20already\x20exists:\x20','265134tyxyIV','map','6398868dSqldO','type','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','trim','read','3031146GNeIHJ','skillDir','isSymbolicLink','files','WRITE','path','10ydGanQ','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','153886bLZbFV','target','validation','156yeXJHd','rendered'];a64_0x1fe7=function(){return _0xc4dc22;};return a64_0x1fe7();}
|