@lovrabet/lovrabet-cli 2.3.2 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/approval/index.d.ts +15 -0
- package/lib/commands/approval/index.js +1 -0
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +83 -0
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/positive-safe-integer.d.ts +5 -0
- package/lib/utils/positive-safe-integer.js +1 -0
- package/lib/utils/redaction.d.ts +17 -0
- package/lib/utils/redaction.js +1 -0
- 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 +3 -2
- package/skills/lovrabet/references/lovrabet-approval-workflow.md +73 -0
- package/skills/lovrabet.manifest.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a54_0x571c9f=a54_0x2834;(function(_0x3c6f50,_0xdac783){const _0x2afbda=a54_0x2834,_0x5c5966=_0x3c6f50();while(!![]){try{const _0x5b0697=-parseInt(_0x2afbda(0x186))/0x1*(parseInt(_0x2afbda(0x198))/0x2)+parseInt(_0x2afbda(0x18e))/0x3*(parseInt(_0x2afbda(0x189))/0x4)+-parseInt(_0x2afbda(0x17a))/0x5*(-parseInt(_0x2afbda(0x1b1))/0x6)+parseInt(_0x2afbda(0x1b7))/0x7*(parseInt(_0x2afbda(0x187))/0x8)+parseInt(_0x2afbda(0x1ba))/0x9+parseInt(_0x2afbda(0x1b5))/0xa*(-parseInt(_0x2afbda(0x1ad))/0xb)+-parseInt(_0x2afbda(0x1b0))/0xc;if(_0x5b0697===_0xdac783)break;else _0x5c5966['push'](_0x5c5966['shift']());}catch(_0x1569a4){_0x5c5966['push'](_0x5c5966['shift']());}}}(a54_0x4f23,0x8ce80));function a54_0x4f23(){const _0x46ce83=['Runtime\x20role\x20name\x20\x22','Runtime\x20role\x20','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','flag','user','\x22\x20is\x20ambiguous.','code','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','map','Runtime\x20numeric\x20userId','test','isSafeInteger','55JpdLZw','validation','permitCount','2374116WdNTlg','282ziPywL','appCode','totalCount','roleCode','1118210QUtSqC','runtime','7SUpIPh','num','\x20was\x20not\x20found\x20in\x20app\x20','802116FXYnVC','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','Pass\x20--role\x20<id|name>.','User\x20','userId','push','OWNER','ADMIN','CUSTOM','\x20built-in\x20runtime\x20role\x20','87950mPmkKQ','includes','join','\x20is\x20not\x20in\x20runtime\x20role\x20','Runtime\x20role\x20id\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','expect-user-count','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','role-code','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','userName','USER','11333JLypGI','1656576FtTAZg','--role-code\x20must\x20not\x20be\x20blank.','6548jtcCAD','str','\x22\x20was\x20not\x20found\x20in\x20app\x20','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','userCount','657KFqxpm','filter','role','find','length','string','paging','roleName','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','items','26JjEWdp','roleType','applyUserList','userList','Cannot\x20','trim','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.'];a54_0x4f23=function(){return _0x46ce83;};return a54_0x4f23();}import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=['ADMIN',a54_0x571c9f(0x185),'OWNER',a54_0x571c9f(0x178)];const BUILTIN_ROLE_TYPES=[a54_0x571c9f(0x177),a54_0x571c9f(0x185),a54_0x571c9f(0x1c1)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a54_0x571c9f(0x181)};export const ROLE_REF_FLAG={'name':a54_0x571c9f(0x190),'type':'string','required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const ROLE_CODE_FLAG={'name':a54_0x571c9f(0x182),'type':a54_0x571c9f(0x193),'description':a54_0x571c9f(0x1bb)};export const USER_ID_FLAG={'name':'user','type':a54_0x571c9f(0x193),'required':!![],'description':a54_0x571c9f(0x1aa)};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x571c9f(0x180),'type':'number','description':a54_0x571c9f(0x19e)};export function isBuiltinRuntimeRole(_0x4b4399){const _0x1add39=a54_0x571c9f;return BUILTIN_ROLE_TYPES[_0x1add39(0x17b)](_0x4b4399);}function a54_0x2834(_0x3d0c4b,_0x2a2f45){_0x3d0c4b=_0x3d0c4b-0x177;const _0x4f23f8=a54_0x4f23();let _0x283455=_0x4f23f8[_0x3d0c4b];return _0x283455;}export function assertCustomRuntimeRole(_0x4fc23f,_0x2b19f2){const _0x4a4ab0=a54_0x571c9f;if(_0x4fc23f[_0x4a4ab0(0x199)]!==_0x4a4ab0(0x178))throw CliErrors[_0x4a4ab0(0x1ae)](_0x4a4ab0(0x19c)+_0x2b19f2+_0x4a4ab0(0x179)+_0x4fc23f[_0x4a4ab0(0x195)]+'\x20('+_0x4fc23f[_0x4a4ab0(0x199)]+').',_0x4a4ab0(0x1a0));}export function projectRuntimeRole(_0x2e07ad){const _0x2e95de=a54_0x571c9f;return{'id':_0x2e07ad['id'],'roleCode':_0x2e07ad[_0x2e95de(0x1b4)],'roleName':_0x2e07ad[_0x2e95de(0x195)],'roleType':_0x2e07ad['roleType'],'remark':_0x2e07ad['remark'],'userCount':_0x2e07ad[_0x2e95de(0x18d)]??0x0,'permitCount':_0x2e07ad[_0x2e95de(0x1af)]??0x0,'builtin':isBuiltinRuntimeRole(_0x2e07ad[_0x2e95de(0x199)])};}export function readOptionalRuntimeRoleCode(_0x1bca50){const _0x1daf04=a54_0x571c9f,_0x12a48c=_0x1bca50['flag']('role-code');if(_0x12a48c===undefined||_0x12a48c===null)return undefined;const _0x1775c7=String(_0x12a48c)['trim']();if(!_0x1775c7)throw CliErrors['validation'](_0x1daf04(0x188));if(_0x1775c7[_0x1daf04(0x192)]>0x40)throw CliErrors[_0x1daf04(0x1ae)]('--role-code\x20cannot\x20exceed\x2064\x20characters.');return _0x1775c7;}export async function getRuntimeRoleById(_0x180824,_0x4bdba3){const _0x751643=a54_0x571c9f;if(!Number['isSafeInteger'](_0x4bdba3)||_0x4bdba3<=0x0)throw CliErrors[_0x751643(0x1ae)](_0x751643(0x1a3));const _0xbfe6e7=(await listAllRuntimeRoles(_0x180824))['filter'](_0x580509=>_0x580509['id']===_0x4bdba3&&(!_0x580509['appCode']||_0x580509['appCode']===_0x180824));if(_0xbfe6e7[_0x751643(0x192)]!==0x1)throw CliErrors[_0x751643(0x1ae)](_0x751643(0x17e)+_0x4bdba3+_0x751643(0x1b9)+_0x180824+'.','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.');return _0xbfe6e7[0x0];}export async function listAllRuntimeRoles(_0x50a94d,_0x125394={}){const _0x48e195=a54_0x571c9f,_0x42a42d=0x64,_0x322e38=[];for(let _0xcf5202=0x1;;_0xcf5202+=0x1){const _0x3ebe5e=await listRuntimeAppRoles(_0x50a94d,{..._0x125394[_0x48e195(0x195)]?{'roleName':_0x125394[_0x48e195(0x195)]}:{},'currentPage':_0xcf5202,'pageSize':_0x42a42d});_0x322e38[_0x48e195(0x1c0)](..._0x3ebe5e[_0x48e195(0x197)]);if(_0x3ebe5e['items'][_0x48e195(0x192)]<_0x42a42d||_0x3ebe5e[_0x48e195(0x194)]&&_0x322e38['length']>=_0x3ebe5e[_0x48e195(0x194)][_0x48e195(0x1b3)])return _0x322e38;}}export async function resolveRuntimeRoleRef(_0xb1d880,_0xe6b4a6){const _0xe44421=a54_0x571c9f,_0x104059=_0xe6b4a6['trim']();if(!_0x104059)throw CliErrors[_0xe44421(0x1ae)]('Missing\x20runtime\x20role\x20reference.',_0xe44421(0x1bd));if(/^\d+$/[_0xe44421(0x1ab)](_0x104059))return getRuntimeRoleById(_0xb1d880,Number(_0x104059));const _0x22333e=(await listAllRuntimeRoles(_0xb1d880))[_0xe44421(0x18f)](_0x4b57e1=>_0x4b57e1[_0xe44421(0x195)]===_0x104059);if(_0x22333e[_0xe44421(0x192)]===0x0)throw CliErrors[_0xe44421(0x1ae)]('Runtime\x20role\x20name\x20\x22'+_0x104059+_0xe44421(0x18b)+_0xb1d880+'.','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.');if(_0x22333e[_0xe44421(0x192)]>0x1)throw CliErrors[_0xe44421(0x1ae)](_0xe44421(0x1a1)+_0x104059+_0xe44421(0x1a6),'Pass\x20one\x20role\x20ID:\x20'+_0x22333e[_0xe44421(0x1a9)](_0x4dc903=>_0x4dc903['id'])[_0xe44421(0x17c)](',\x20')+'.');return _0x22333e[0x0];}function parseRuntimeUserId(_0x38a4ea){const _0x3a6ac6=a54_0x571c9f,_0x358f1f=_0x38a4ea[_0x3a6ac6(0x19d)]();if(!/^\d+$/['test'](_0x358f1f))throw CliErrors[_0x3a6ac6(0x1ae)](_0x3a6ac6(0x183),_0x3a6ac6(0x1a8));const _0xabbeaa=Number(_0x358f1f);if(!Number[_0x3a6ac6(0x1ac)](_0xabbeaa)||_0xabbeaa<=0x0)throw CliErrors[_0x3a6ac6(0x1ae)](_0x3a6ac6(0x1bc));return _0xabbeaa;}export async function prepareRuntimeMemberMutation(_0x1eb5c5,_0x3e5d71){const _0x3b3189=a54_0x571c9f,_0x256a10=await resolveRuntimeRoleRef(_0x1eb5c5['appCode'],_0x1eb5c5[_0x3b3189(0x18a)](_0x3b3189(0x190)));if(_0x256a10[_0x3b3189(0x199)]===_0x3b3189(0x1c1))throw CliErrors['validation']('OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x5eaa40=parseRuntimeUserId(_0x1eb5c5[_0x3b3189(0x18a)](_0x3b3189(0x1a5))),_0x4e580d=(await listRuntimeRoleUsers(_0x1eb5c5['appCode']))[_0x3b3189(0x1a9)](_0xfa534f=>({..._0xfa534f,'userList':[..._0xfa534f[_0x3b3189(0x19b)]??[]],'applyUserList':[..._0xfa534f[_0x3b3189(0x19a)]??[]]})),_0x3fdafb=_0x4e580d[_0x3b3189(0x191)](_0x1b69ef=>_0x1b69ef['id']===_0x256a10['id']);if(!_0x3fdafb)throw CliErrors[_0x3b3189(0x1ae)](_0x3b3189(0x1a2)+_0x256a10['id']+_0x3b3189(0x196),_0x3b3189(0x19f));const _0x493601=_0x3fdafb[_0x3b3189(0x19b)][_0x3b3189(0x1a9)](_0x4622a4=>_0x4622a4[_0x3b3189(0x1bf)]),_0x594651=_0x1eb5c5[_0x3b3189(0x1a4)]('expect-user-count');if(_0x594651!==undefined&&_0x594651!==null&&_0x594651!==''){const _0x133969=_0x1eb5c5[_0x3b3189(0x1b8)](_0x3b3189(0x180));if(!Number[_0x3b3189(0x1ac)](_0x133969)||_0x133969<0x0)throw CliErrors[_0x3b3189(0x1ae)](_0x3b3189(0x18c));if(_0x493601['length']!==_0x133969)throw CliErrors[_0x3b3189(0x1ae)]('Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20'+_0x133969+',\x20found\x20'+_0x493601[_0x3b3189(0x192)]+'.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.');}const _0x3e0c64=_0x493601[_0x3b3189(0x17b)](_0x5eaa40),_0x18141f=[];let _0x3679f6=!![];if(_0x3e5d71==='user-add'){const _0x816ec5=await listRuntimeAppUsers(_0x1eb5c5[_0x3b3189(0x1b2)]),_0x29aeeb=_0x816ec5[_0x3b3189(0x18f)](_0x4873fc=>Number(_0x4873fc[_0x3b3189(0x1a7)])===_0x5eaa40);if(_0x29aeeb['length']!==0x1||!_0x29aeeb[0x0][_0x3b3189(0x184)]?.[_0x3b3189(0x19d)]())throw CliErrors[_0x3b3189(0x1ae)]('Runtime\x20user\x20'+_0x5eaa40+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x1eb5c5[_0x3b3189(0x1b2)]+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x3e0c64?(_0x3679f6=![],_0x18141f['push']('User\x20'+_0x5eaa40+_0x3b3189(0x17f)+_0x256a10['id']+'.')):_0x3fdafb['userList'][_0x3b3189(0x1c0)]({'userId':_0x5eaa40,'username':_0x29aeeb[0x0][_0x3b3189(0x184)]});}else!_0x3e0c64?(_0x3679f6=![],_0x18141f[_0x3b3189(0x1c0)](_0x3b3189(0x1be)+_0x5eaa40+_0x3b3189(0x17d)+_0x256a10['id']+'.')):_0x3fdafb[_0x3b3189(0x19b)]=_0x3fdafb['userList'][_0x3b3189(0x18f)](_0x5a39bd=>_0x5a39bd[_0x3b3189(0x1bf)]!==_0x5eaa40);return{'role':_0x256a10,'userId':_0x5eaa40,'roleList':_0x4e580d,'before':{'userIds':_0x493601},'after':{'userIds':_0x3fdafb['userList'][_0x3b3189(0x1a9)](_0x38b9ef=>_0x38b9ef[_0x3b3189(0x1bf)])},'shouldWrite':_0x3679f6,'warnings':_0x18141f};}export function runtimeRoleWriteResult(_0x281873,_0x4f7dd3,_0x1e1052,_0x61871d,_0x59e4ae,_0x4d7000=[]){const _0xddd516=a54_0x571c9f;return{'operation':_0x281873,'scope':_0xddd516(0x1b6),'selector':_0x4f7dd3,'before':_0x1e1052,'after':_0x61871d,'dryRun':![],'backend':_0x59e4ae,'warnings':_0x4d7000};}
|
|
1
|
+
const a55_0x5352d3=a55_0x33ac;(function(_0xc97cfa,_0x1ec433){const _0x3b037d=a55_0x33ac,_0x24cc52=_0xc97cfa();while(!![]){try{const _0x523bf5=parseInt(_0x3b037d(0x1d9))/0x1*(parseInt(_0x3b037d(0x1ed))/0x2)+parseInt(_0x3b037d(0x1dc))/0x3*(-parseInt(_0x3b037d(0x203))/0x4)+parseInt(_0x3b037d(0x1eb))/0x5*(parseInt(_0x3b037d(0x1f7))/0x6)+parseInt(_0x3b037d(0x205))/0x7*(parseInt(_0x3b037d(0x1fa))/0x8)+parseInt(_0x3b037d(0x20b))/0x9+-parseInt(_0x3b037d(0x1ff))/0xa*(-parseInt(_0x3b037d(0x1ee))/0xb)+-parseInt(_0x3b037d(0x1fb))/0xc;if(_0x523bf5===_0x1ec433)break;else _0x24cc52['push'](_0x24cc52['shift']());}catch(_0x4711cc){_0x24cc52['push'](_0x24cc52['shift']());}}}(a55_0x450a,0xec489));function a55_0x450a(){const _0x2f3f10=['CUSTOM','includes','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','userCount','length','validation','Runtime\x20numeric\x20userId','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','Runtime\x20role\x20name\x20\x22','userName','expect-user-count','3asqOoQ','applyUserList','flag','2910093cIaNTA','paging','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','\x20was\x20not\x20found\x20in\x20app\x20','\x20is\x20not\x20in\x20runtime\x20role\x20','--role-code\x20cannot\x20exceed\x2064\x20characters.','\x22\x20is\x20ambiguous.','push','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','USER','roleCode','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','permitCount','items','totalCount','35mxWdVg','remark','801336smEGgr','4877642WWlBXW','filter','User\x20','role','Runtime\x20role\x20','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','OWNER','map','appCode','52194POpkam','userId','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','4129480dpGtWw','18372156ADHWsK','join','\x22\x20was\x20not\x20found\x20in\x20app\x20','str','20dPLPQE','code','string','\x20is\x20already\x20in\x20runtime\x20role\x20','4YRDdFg','Runtime\x20role\x20id\x20','14IjUVmZ','find','user','role-code','trim','user-add','2580750RuOyCH','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','Pass\x20one\x20role\x20ID:\x20','ADMIN','num','roleName','roleType','\x20built-in\x20runtime\x20role\x20','userList','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',',\x20found\x20','isSafeInteger','Pass\x20--role\x20<id|name>.','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','number','--role-code\x20must\x20not\x20be\x20blank.','test','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','runtime'];a55_0x450a=function(){return _0x2f3f10;};return a55_0x450a();}import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';function a55_0x33ac(_0x1f7680,_0x166c03){_0x1f7680=_0x1f7680-0x1bf;const _0x450a3c=a55_0x450a();let _0x33ac78=_0x450a3c[_0x1f7680];return _0x33ac78;}export const RUNTIME_ROLE_TYPES=[a55_0x5352d3(0x20e),a55_0x5352d3(0x1e5),a55_0x5352d3(0x1f4),a55_0x5352d3(0x1ce)];const BUILTIN_ROLE_TYPES=[a55_0x5352d3(0x20e),a55_0x5352d3(0x1e5),'OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a55_0x5352d3(0x1c7),'required':!![],'description':a55_0x5352d3(0x1f3)};export const ROLE_REF_FLAG={'name':'role','type':'string','required':!![],'description':a55_0x5352d3(0x1cb)};export const ROLE_CODE_FLAG={'name':a55_0x5352d3(0x208),'type':a55_0x5352d3(0x201),'description':'Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)'};export const USER_ID_FLAG={'name':a55_0x5352d3(0x207),'type':a55_0x5352d3(0x201),'required':!![],'description':a55_0x5352d3(0x1d4)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':'number','description':a55_0x5352d3(0x1de)};export function isBuiltinRuntimeRole(_0xa45ff0){return BUILTIN_ROLE_TYPES['includes'](_0xa45ff0);}export function assertCustomRuntimeRole(_0x435a07,_0x5a31cc){const _0x27d64a=a55_0x5352d3;if(_0x435a07[_0x27d64a(0x1bf)]!==_0x27d64a(0x1ce))throw CliErrors[_0x27d64a(0x1d3)]('Cannot\x20'+_0x5a31cc+_0x27d64a(0x1c0)+_0x435a07['roleName']+'\x20('+_0x435a07[_0x27d64a(0x1bf)]+').',_0x27d64a(0x1c6));}export function projectRuntimeRole(_0x261325){const _0x2f5e60=a55_0x5352d3;return{'id':_0x261325['id'],'roleCode':_0x261325[_0x2f5e60(0x1e6)],'roleName':_0x261325[_0x2f5e60(0x210)],'roleType':_0x261325[_0x2f5e60(0x1bf)],'remark':_0x261325[_0x2f5e60(0x1ec)],'userCount':_0x261325[_0x2f5e60(0x1d1)]??0x0,'permitCount':_0x261325[_0x2f5e60(0x1e8)]??0x0,'builtin':isBuiltinRuntimeRole(_0x261325[_0x2f5e60(0x1bf)])};}export function readOptionalRuntimeRoleCode(_0x3eca00){const _0x1e679f=a55_0x5352d3,_0x22dac4=_0x3eca00[_0x1e679f(0x1db)](_0x1e679f(0x208));if(_0x22dac4===undefined||_0x22dac4===null)return undefined;const _0x37c42d=String(_0x22dac4)[_0x1e679f(0x209)]();if(!_0x37c42d)throw CliErrors[_0x1e679f(0x1d3)](_0x1e679f(0x1c8));if(_0x37c42d['length']>0x40)throw CliErrors[_0x1e679f(0x1d3)](_0x1e679f(0x1e1));return _0x37c42d;}export async function getRuntimeRoleById(_0x465665,_0x3073d2){const _0x3354ed=a55_0x5352d3;if(!Number[_0x3354ed(0x1c4)](_0x3073d2)||_0x3073d2<=0x0)throw CliErrors[_0x3354ed(0x1d3)](_0x3354ed(0x1e7));const _0x330d7d=(await listAllRuntimeRoles(_0x465665))[_0x3354ed(0x1ef)](_0x393e65=>_0x393e65['id']===_0x3073d2&&(!_0x393e65[_0x3354ed(0x1f6)]||_0x393e65[_0x3354ed(0x1f6)]===_0x465665));if(_0x330d7d[_0x3354ed(0x1d2)]!==0x1)throw CliErrors[_0x3354ed(0x1d3)](_0x3354ed(0x204)+_0x3073d2+_0x3354ed(0x1df)+_0x465665+'.',_0x3354ed(0x1cc));return _0x330d7d[0x0];}export async function listAllRuntimeRoles(_0x4778c3,_0x1fddbd={}){const _0x439030=a55_0x5352d3,_0x5a3fbc=0x64,_0x547f91=[];for(let _0x5b219c=0x1;;_0x5b219c+=0x1){const _0x37c25d=await listRuntimeAppRoles(_0x4778c3,{..._0x1fddbd[_0x439030(0x210)]?{'roleName':_0x1fddbd['roleName']}:{},'currentPage':_0x5b219c,'pageSize':_0x5a3fbc});_0x547f91['push'](..._0x37c25d[_0x439030(0x1e9)]);if(_0x37c25d[_0x439030(0x1e9)][_0x439030(0x1d2)]<_0x5a3fbc||_0x37c25d[_0x439030(0x1dd)]&&_0x547f91[_0x439030(0x1d2)]>=_0x37c25d[_0x439030(0x1dd)][_0x439030(0x1ea)])return _0x547f91;}}export async function resolveRuntimeRoleRef(_0x315c25,_0x3c1efc){const _0x184bef=a55_0x5352d3,_0x14aeef=_0x3c1efc[_0x184bef(0x209)]();if(!_0x14aeef)throw CliErrors[_0x184bef(0x1d3)]('Missing\x20runtime\x20role\x20reference.',_0x184bef(0x1c5));if(/^\d+$/[_0x184bef(0x1c9)](_0x14aeef))return getRuntimeRoleById(_0x315c25,Number(_0x14aeef));const _0x2de9eb=(await listAllRuntimeRoles(_0x315c25))['filter'](_0x191022=>_0x191022['roleName']===_0x14aeef);if(_0x2de9eb[_0x184bef(0x1d2)]===0x0)throw CliErrors['validation'](_0x184bef(0x1d6)+_0x14aeef+_0x184bef(0x1fd)+_0x315c25+'.',_0x184bef(0x1d0));if(_0x2de9eb[_0x184bef(0x1d2)]>0x1)throw CliErrors['validation'](_0x184bef(0x1d6)+_0x14aeef+_0x184bef(0x1e2),_0x184bef(0x20d)+_0x2de9eb[_0x184bef(0x1f5)](_0xbb9e97=>_0xbb9e97['id'])[_0x184bef(0x1fc)](',\x20')+'.');return _0x2de9eb[0x0];}function parseRuntimeUserId(_0x3f5d68){const _0x4acab5=a55_0x5352d3,_0x56a6fe=_0x3f5d68[_0x4acab5(0x209)](),_0xc05416=normalizePositiveSafeInteger(_0x56a6fe);if(_0xc05416===undefined)throw CliErrors[_0x4acab5(0x1d3)](_0x4acab5(0x1c2),'Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.');return _0xc05416;}export async function prepareRuntimeMemberMutation(_0x5a3f51,_0x2c70c3){const _0x19dd2b=a55_0x5352d3,_0x465ec5=await resolveRuntimeRoleRef(_0x5a3f51['appCode'],_0x5a3f51[_0x19dd2b(0x1fe)](_0x19dd2b(0x1f1)));if(_0x465ec5[_0x19dd2b(0x1bf)]===_0x19dd2b(0x1f4))throw CliErrors[_0x19dd2b(0x1d3)](_0x19dd2b(0x1ca),_0x19dd2b(0x1e4));const _0x67af69=parseRuntimeUserId(_0x5a3f51['str'](_0x19dd2b(0x207))),_0x4eba03=(await listRuntimeRoleUsers(_0x5a3f51[_0x19dd2b(0x1f6)]))['map'](_0x5e2db7=>({..._0x5e2db7,'userList':[..._0x5e2db7['userList']??[]],'applyUserList':[..._0x5e2db7[_0x19dd2b(0x1da)]??[]]})),_0x83e31a=_0x4eba03[_0x19dd2b(0x206)](_0x49a3a2=>_0x49a3a2['id']===_0x465ec5['id']);if(!_0x83e31a)throw CliErrors[_0x19dd2b(0x1d3)](_0x19dd2b(0x1f2)+_0x465ec5['id']+_0x19dd2b(0x20c),'Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0xef280b=_0x83e31a[_0x19dd2b(0x1c1)][_0x19dd2b(0x1f5)](_0xc4a72=>_0xc4a72[_0x19dd2b(0x1f8)]),_0x21506a=_0x5a3f51[_0x19dd2b(0x1db)](_0x19dd2b(0x1d8));if(_0x21506a!==undefined&&_0x21506a!==null&&_0x21506a!==''){const _0x578434=_0x5a3f51[_0x19dd2b(0x20f)](_0x19dd2b(0x1d8));if(!Number['isSafeInteger'](_0x578434)||_0x578434<0x0)throw CliErrors['validation']('--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.');if(_0xef280b[_0x19dd2b(0x1d2)]!==_0x578434)throw CliErrors[_0x19dd2b(0x1d3)](_0x19dd2b(0x1f9)+_0x578434+_0x19dd2b(0x1c3)+_0xef280b['length']+'.',_0x19dd2b(0x1d5));}const _0x3f4494=_0xef280b[_0x19dd2b(0x1cf)](_0x67af69),_0x4148bb=[];let _0x58015c=!![];if(_0x2c70c3===_0x19dd2b(0x20a)){const _0x2d53e6=await listRuntimeAppUsers(_0x5a3f51[_0x19dd2b(0x1f6)]),_0x214f56=_0x2d53e6[_0x19dd2b(0x1ef)](_0x4ff37d=>Number(_0x4ff37d[_0x19dd2b(0x200)])===_0x67af69);if(_0x214f56[_0x19dd2b(0x1d2)]!==0x1||!_0x214f56[0x0][_0x19dd2b(0x1d7)]?.[_0x19dd2b(0x209)]())throw CliErrors[_0x19dd2b(0x1d3)]('Runtime\x20user\x20'+_0x67af69+_0x19dd2b(0x1df)+_0x5a3f51[_0x19dd2b(0x1f6)]+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x3f4494?(_0x58015c=![],_0x4148bb[_0x19dd2b(0x1e3)](_0x19dd2b(0x1f0)+_0x67af69+_0x19dd2b(0x202)+_0x465ec5['id']+'.')):_0x83e31a[_0x19dd2b(0x1c1)][_0x19dd2b(0x1e3)]({'userId':_0x67af69,'username':_0x214f56[0x0][_0x19dd2b(0x1d7)]});}else!_0x3f4494?(_0x58015c=![],_0x4148bb[_0x19dd2b(0x1e3)](_0x19dd2b(0x1f0)+_0x67af69+_0x19dd2b(0x1e0)+_0x465ec5['id']+'.')):_0x83e31a[_0x19dd2b(0x1c1)]=_0x83e31a['userList'][_0x19dd2b(0x1ef)](_0x45ab46=>_0x45ab46['userId']!==_0x67af69);return{'role':_0x465ec5,'userId':_0x67af69,'roleList':_0x4eba03,'before':{'userIds':_0xef280b},'after':{'userIds':_0x83e31a['userList'][_0x19dd2b(0x1f5)](_0x186f9a=>_0x186f9a[_0x19dd2b(0x1f8)])},'shouldWrite':_0x58015c,'warnings':_0x4148bb};}export function runtimeRoleWriteResult(_0x9866ee,_0x451676,_0x411a01,_0xc561a6,_0x2dfdc2,_0x3ba434=[]){const _0x35c8d9=a55_0x5352d3;return{'operation':_0x9866ee,'scope':_0x35c8d9(0x1cd),'selector':_0x451676,'before':_0x411a01,'after':_0xc561a6,'dryRun':![],'backend':_0x2dfdc2,'warnings':_0x3ba434};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a56_0x4382(_0x4b6b00,_0x4acc61){_0x4b6b00=_0x4b6b00-0x11f;const _0x4cc7e5=a56_0x4cc7();let _0x43829c=_0x4cc7e5[_0x4b6b00];return _0x43829c;}const a56_0x4d4c6d=a56_0x4382;(function(_0x21eef9,_0x2e109a){const _0x2b2e12=a56_0x4382,_0x138382=_0x21eef9();while(!![]){try{const _0xfafe6d=parseInt(_0x2b2e12(0x138))/0x1*(parseInt(_0x2b2e12(0x13a))/0x2)+-parseInt(_0x2b2e12(0x135))/0x3*(parseInt(_0x2b2e12(0x129))/0x4)+parseInt(_0x2b2e12(0x126))/0x5+parseInt(_0x2b2e12(0x120))/0x6+parseInt(_0x2b2e12(0x132))/0x7+parseInt(_0x2b2e12(0x12b))/0x8*(parseInt(_0x2b2e12(0x121))/0x9)+-parseInt(_0x2b2e12(0x131))/0xa*(parseInt(_0x2b2e12(0x128))/0xb);if(_0xfafe6d===_0x2e109a)break;else _0x138382['push'](_0x138382['shift']());}catch(_0x1c06d5){_0x138382['push'](_0x138382['shift']());}}}(a56_0x4cc7,0x1a0f3));function a56_0x4cc7(){const _0x508b45=['trim','5520NQwmFV','remark','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','flag','build','156030qCnoYu','157570Cdbong','string','New\x20non-empty\x20role\x20remark','27knfSKV','update','--name\x20must\x20not\x20be\x20blank.','1giUkXr','New\x20role\x20name','81460dEfoPc','description','role','validation','/client/permit/role/update','POST','name','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','1095744uuKrrY','954vZxvbt','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','str','appCode','--remark\x20must\x20not\x20be\x20blank.','77070oaCDSq','role-code','77IrynMa','52648bgKdZL'];a56_0x4cc7=function(){return _0x508b45;};return a56_0x4cc7();}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 updateFields(_0x21c954){const _0x3383af=a56_0x4382,_0x423e67=_0x21c954['flag'](_0x3383af(0x127))!==undefined,_0x25d2f8=_0x21c954[_0x3383af(0x12f)](_0x3383af(0x140))!==undefined,_0x37a11e=_0x21c954[_0x3383af(0x12f)](_0x3383af(0x12c))!==undefined;if(!_0x423e67&&!_0x25d2f8&&!_0x37a11e)throw CliErrors[_0x3383af(0x13d)](_0x3383af(0x11f));const _0x323d69=readOptionalRuntimeRoleCode(_0x21c954),_0x4954b1=_0x21c954[_0x3383af(0x123)](_0x3383af(0x140))['trim'](),_0x378124=_0x21c954[_0x3383af(0x123)]('remark')[_0x3383af(0x12a)]();if(_0x25d2f8&&!_0x4954b1)throw CliErrors[_0x3383af(0x13d)](_0x3383af(0x137));if(_0x37a11e&&!_0x378124)throw CliErrors[_0x3383af(0x13d)](_0x3383af(0x125),_0x3383af(0x12e));return{..._0x323d69?{'roleCode':_0x323d69}:{},..._0x25d2f8?{'roleName':_0x4954b1}:{},..._0x37a11e?{'remark':_0x378124}:{}};}async function prepare(_0x1b4ea5){const _0x27f8d8=a56_0x4382,_0xa7c26a=await getRuntimeRoleById(_0x1b4ea5[_0x27f8d8(0x124)],_0x1b4ea5['num']('id'));return assertCustomRuntimeRole(_0xa7c26a,_0x27f8d8(0x136)),{'role':_0xa7c26a,'body':{'id':_0xa7c26a['id'],'appCode':_0x1b4ea5['appCode'],...updateFields(_0x1b4ea5)}};}export const roleUpdate={'service':a56_0x4d4c6d(0x13c),'command':'update','description':a56_0x4d4c6d(0x122),'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':a56_0x4d4c6d(0x140),'type':a56_0x4d4c6d(0x133),'description':a56_0x4d4c6d(0x139)},{'name':a56_0x4d4c6d(0x12c),'type':'string','description':a56_0x4d4c6d(0x134)}],async 'validate'(_0x35a4c8){updateFields(_0x35a4c8);},async 'dryRun'(_0x35dd86){const _0x4db11b=a56_0x4d4c6d,{body:_0x4440cd}=await prepare(_0x35dd86);return dryRun('POST',_0x4db11b(0x13e))['body'](_0x4440cd)[_0x4db11b(0x13b)](_0x4db11b(0x12d))[_0x4db11b(0x130)]();},async 'execute'(_0x39fec7){const _0x51cb88=a56_0x4d4c6d,{role:_0x16a47f,body:_0x17c1cc}=await prepare(_0x39fec7),_0x596692=await updateRuntimeAppRole(_0x17c1cc);return{'ok':!![],'data':runtimeRoleWriteResult(_0x51cb88(0x136),{'roleId':_0x16a47f['id']},projectRuntimeRole(_0x16a47f),projectRuntimeRole(_0x596692),{'method':_0x51cb88(0x13f),'path':_0x51cb88(0x13e)})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a57_0x432191=a57_0x4250;(function(_0x4ce50e,_0x217f5e){const _0x2c54ac=a57_0x4250,_0x35ef01=_0x4ce50e();while(!![]){try{const _0x159093=parseInt(_0x2c54ac(0x183))/0x1+parseInt(_0x2c54ac(0x177))/0x2+parseInt(_0x2c54ac(0x17f))/0x3*(-parseInt(_0x2c54ac(0x176))/0x4)+-parseInt(_0x2c54ac(0x16f))/0x5*(parseInt(_0x2c54ac(0x185))/0x6)+parseInt(_0x2c54ac(0x173))/0x7*(-parseInt(_0x2c54ac(0x17d))/0x8)+-parseInt(_0x2c54ac(0x180))/0x9+-parseInt(_0x2c54ac(0x17e))/0xa;if(_0x159093===_0x217f5e)break;else _0x35ef01['push'](_0x35ef01['shift']());}catch(_0x2c2e94){_0x35ef01['push'](_0x35ef01['shift']());}}}(a57_0x36d5,0xc4ce7));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x4250(_0x57b008,_0x3a2b22){_0x57b008=_0x57b008-0x16f;const _0x36d553=a57_0x36d5();let _0x4250e9=_0x36d553[_0x57b008];return _0x4250e9;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a57_0x432191(0x17a),'command':'user-add','description':a57_0x432191(0x170),'risk':a57_0x432191(0x181),'confirmationDescription':a57_0x432191(0x178),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x1001d9){const _0x58dc0b=a57_0x432191,_0x504c4a=await prepareRuntimeMemberMutation(_0x1001d9,_0x58dc0b(0x184));return dryRun(_0x58dc0b(0x17b),'/client/permit/user-role/update-user-list')['body']({'appCode':_0x1001d9['appCode'],'roleList':_0x504c4a[_0x58dc0b(0x175)]})['description'](_0x504c4a[_0x58dc0b(0x174)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x504c4a[_0x58dc0b(0x182)][0x0])[_0x58dc0b(0x172)]();},async 'execute'(_0x4f0c64){const _0x5ec157=a57_0x432191,_0x734ab3=await prepareRuntimeMemberMutation(_0x4f0c64,_0x5ec157(0x184));return _0x734ab3['shouldWrite']&&await updateRuntimeRoleUsers(_0x4f0c64['appCode'],_0x734ab3[_0x5ec157(0x175)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5ec157(0x184),{'roleId':_0x734ab3[_0x5ec157(0x17a)]['id'],'userId':_0x734ab3[_0x5ec157(0x17c)]},_0x734ab3['before'],_0x734ab3[_0x5ec157(0x179)],{'method':_0x5ec157(0x17b),'path':_0x5ec157(0x171)},_0x734ab3['warnings'])};}};function a57_0x36d5(){const _0x1838e9=['888055QmhjMz','user-add','18WbxbrN','1537680dlZeVn','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','/client/permit/user-role/update-user-list','build','602630NUoiyn','shouldWrite','roleList','916QZZUua','3179460vJoVIc','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','after','role','POST','userId','48VNSYTg','471750SBFJix','762dEtPbY','1144593tdvlPq','high-risk-write','warnings'];a57_0x36d5=function(){return _0x1838e9;};return a57_0x36d5();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a58_0xfd7c58=a58_0x3fe3;(function(_0x2be43f,_0x342971){const _0x5eb41b=a58_0x3fe3,_0x1c112e=_0x2be43f();while(!![]){try{const _0x2d545e=parseInt(_0x5eb41b(0x8b))/0x1*(parseInt(_0x5eb41b(0x82))/0x2)+parseInt(_0x5eb41b(0x93))/0x3+parseInt(_0x5eb41b(0x87))/0x4+parseInt(_0x5eb41b(0x92))/0x5+parseInt(_0x5eb41b(0x83))/0x6*(-parseInt(_0x5eb41b(0x7f))/0x7)+parseInt(_0x5eb41b(0x94))/0x8*(parseInt(_0x5eb41b(0x90))/0x9)+-parseInt(_0x5eb41b(0x91))/0xa*(parseInt(_0x5eb41b(0x84))/0xb);if(_0x2d545e===_0x342971)break;else _0x1c112e['push'](_0x1c112e['shift']());}catch(_0x9699d3){_0x1c112e['push'](_0x1c112e['shift']());}}}(a58_0x4fd8,0x638f9));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a58_0x4fd8(){const _0x1e260c=['before','981bzIszR','9470KoJrVp','324835QjgFHf','1379706SqORPs','49272cmSfeV','shouldWrite','POST','315dokfhw','warnings','high-risk-write','7348wRIqRS','5112AyHdXU','18469JkDhmY','build','user-remove','1052544pPJxhW','after','userId','/client/permit/user-role/update-user-list','157wBdDau','Preview:\x20remove\x20runtime\x20role\x20member','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','appCode'];a58_0x4fd8=function(){return _0x1e260c;};return a58_0x4fd8();}function a58_0x3fe3(_0x594f2b,_0x222097){_0x594f2b=_0x594f2b-0x7d;const _0x4fd892=a58_0x4fd8();let _0x3fe370=_0x4fd892[_0x594f2b];return _0x3fe370;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':'role','command':a58_0xfd7c58(0x86),'description':a58_0xfd7c58(0x8d),'risk':a58_0xfd7c58(0x81),'confirmationDescription':'Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x35bb71){const _0x24c32b=a58_0xfd7c58,_0x3ffaa6=await prepareRuntimeMemberMutation(_0x35bb71,_0x24c32b(0x86));return dryRun(_0x24c32b(0x7e),_0x24c32b(0x8a))['body']({'appCode':_0x35bb71[_0x24c32b(0x8e)],'roleList':_0x3ffaa6['roleList']})['description'](_0x3ffaa6[_0x24c32b(0x7d)]?_0x24c32b(0x8c):_0x3ffaa6[_0x24c32b(0x80)][0x0])[_0x24c32b(0x85)]();},async 'execute'(_0x543989){const _0x5b3498=a58_0xfd7c58,_0x5afb22=await prepareRuntimeMemberMutation(_0x543989,_0x5b3498(0x86));return _0x5afb22[_0x5b3498(0x7d)]&&await updateRuntimeRoleUsers(_0x543989['appCode'],_0x5afb22['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0x5b3498(0x86),{'roleId':_0x5afb22['role']['id'],'userId':_0x5afb22[_0x5b3498(0x89)]},_0x5afb22[_0x5b3498(0x8f)],_0x5afb22[_0x5b3498(0x88)],{'method':_0x5b3498(0x7e),'path':_0x5b3498(0x8a)},_0x5afb22[_0x5b3498(0x80)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a58_0x3ac958=a58_0x565f;(function(_0x43e758,_0x488e28){const _0x42410f=a58_0x565f,_0x4a567c=_0x43e758();while(!![]){try{const _0xfd4f9d=-parseInt(_0x42410f(0x1be))/0x1+parseInt(_0x42410f(0x1d0))/0x2*(-parseInt(_0x42410f(0x1ce))/0x3)+parseInt(_0x42410f(0x1b9))/0x4*(-parseInt(_0x42410f(0x19c))/0x5)+-parseInt(_0x42410f(0x1b8))/0x6*(-parseInt(_0x42410f(0x1ae))/0x7)+parseInt(_0x42410f(0x1d3))/0x8*(-parseInt(_0x42410f(0x1da))/0x9)+-parseInt(_0x42410f(0x1ca))/0xa*(parseInt(_0x42410f(0x1d6))/0xb)+parseInt(_0x42410f(0x1a2))/0xc*(parseInt(_0x42410f(0x1b6))/0xd);if(_0xfd4f9d===_0x488e28)break;else _0x4a567c['push'](_0x4a567c['shift']());}catch(_0xcec049){_0x4a567c['push'](_0x4a567c['shift']());}}}(a58_0x10bf,0x80e24));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_0x3ac958(0x1c0),'type':a58_0x3ac958(0x191),'required':!![],'enum':[a58_0x3ac958(0x1bf),a58_0x3ac958(0x18e)],'description':a58_0x3ac958(0x19b)},CRON_FLAG={'name':a58_0x3ac958(0x1d7),'type':a58_0x3ac958(0x191),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x3ac958(0x198),'type':a58_0x3ac958(0x191),'description':a58_0x3ac958(0x19f)},TITLE_FLAG={'name':'title','type':a58_0x3ac958(0x191),'required':!![],'description':a58_0x3ac958(0x1c8)},PROMPT_FLAG={'name':a58_0x3ac958(0x192),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a58_0x3ac958(0x1bd),'type':a58_0x3ac958(0x191),'enum':[a58_0x3ac958(0x19d),a58_0x3ac958(0x1b4),a58_0x3ac958(0x1c9)],'default':'deepseek-v4-flash-0731','description':a58_0x3ac958(0x1ba)},SCHEDULE_ID_FLAG={'name':a58_0x3ac958(0x1c2),'type':a58_0x3ac958(0x191),'required':!![],'description':a58_0x3ac958(0x1d2),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x3ac958(0x199)}},LIMIT_FLAG={'name':a58_0x3ac958(0x19a),'type':a58_0x3ac958(0x1c4),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x3ac958(0x1d5),'type':a58_0x3ac958(0x191),'description':a58_0x3ac958(0x195)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0xa04429){const _0x491d0a=a58_0x3ac958,_0x45b8b6=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x1c0)),_0x8f26af=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x18d))[_0x491d0a(0x18f)](),_0x4fdc2c=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x192))['trim'](),_0x569e9b=_0xa04429[_0x491d0a(0x1ab)]('model'),_0x22c215=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x1d7)),_0x35e977=_0xa04429['str']('scheduled-at');if(!_0x8f26af)throw CliErrors[_0x491d0a(0x1a9)](_0x491d0a(0x19e));if(!_0x4fdc2c)throw CliErrors['validation'](_0x491d0a(0x1a0));if(_0x45b8b6==='CRON'){if(!_0x22c215||_0x35e977)throw CliErrors['validation'](_0x491d0a(0x190));return{'kind':_0x45b8b6,'timezone':_0x491d0a(0x1b0),'cron':_0x22c215,'title':_0x8f26af,'prompt':_0x4fdc2c,'model':_0x569e9b};}if(_0x45b8b6==='ONCE'){if(!_0x35e977||_0x22c215)throw CliErrors[_0x491d0a(0x1a9)](_0x491d0a(0x194));return{'kind':_0x45b8b6,'timezone':_0x491d0a(0x1b0),'scheduledAt':_0x35e977,'title':_0x8f26af,'prompt':_0x4fdc2c,'model':_0x569e9b};}throw CliErrors[_0x491d0a(0x1a9)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function a58_0x565f(_0x561ecf,_0x5bb08c){_0x561ecf=_0x561ecf-0x18b;const _0x10bf4a=a58_0x10bf();let _0x565fae=_0x10bf4a[_0x561ecf];return _0x565fae;}function scheduleCollectionPath(_0x5b2921){const _0x4f3ed1=a58_0x3ac958;return _0x4f3ed1(0x1a8)+encodeURIComponent(_0x5b2921)+_0x4f3ed1(0x1cb);}function a58_0x10bf(){const _0x14de80=['--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','title','ONCE','trim','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','string','prompt','/run','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','list','scheduled-at','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','limit','Schedule\x20kind:\x20CRON\x20or\x20ONCE','240nXLeHn','kimi/k3','--title\x20must\x20not\x20be\x20blank.','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','--prompt\x20must\x20not\x20be\x20blank.','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','701124Fbalqi','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','isSafeInteger','\x20from\x20schedule\x20','\x20schedule\x20','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','/api/harness/apps/','validation','body','str','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Created\x20','147847NdieTc','run','UTC','Schedule\x20input\x20is\x20valid','schedule','build','deepseek-v4-flash-0731','detail','455kRoPyI','description','294cLeDCA','52872pxnAMO','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','read','model','863154hajeyP','CRON','kind','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','schedule-id','Preview:\x20run\x20schedule\x20','number','delete','Deleted\x20schedule\x20','Preview:\x20delete\x20schedule\x20','Schedule\x20title','deepseek-v4-pro-0813','346390QwvjNt','/schedules','validate','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','1266JsPMFH','high-risk-write','4330VCngcw','\x20immediately','Schedule\x20UUID','368EatzgS','POST','cursor','44pakpjl','cron','num','scheduleId','423dfPlAs','appCode'];a58_0x10bf=function(){return _0x14de80;};return a58_0x10bf();}function scheduleItemPath(_0x4d0fff,_0x5ab39f){return scheduleCollectionPath(_0x4d0fff)+'/'+encodeURIComponent(_0x5ab39f);}const scheduleValidate={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1cc),'description':a58_0x3ac958(0x1a7),'risk':a58_0x3ac958(0x1bc),'flags':INPUT_FLAGS,async 'validate'(_0x447801){readScheduleInput(_0x447801);},async 'execute'(_0x2169de){const _0x5899bd=a58_0x3ac958,_0x23a461=readScheduleInput(_0x2169de),_0x238ef9=await validateRuntimeSchedule(_0x2169de[_0x5899bd(0x18b)],_0x23a461);return{'ok':!![],'data':_0x238ef9,'message':_0x5899bd(0x1b1)};}},scheduleCreate={'service':a58_0x3ac958(0x1b2),'command':'create','description':a58_0x3ac958(0x1c1),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':a58_0x3ac958(0x196),'flags':INPUT_FLAGS,async 'validate'(_0x43be78){readScheduleInput(_0x43be78);},async 'execute'(_0xa93362){const _0x32359b=a58_0x3ac958,_0x1b2cd2=readScheduleInput(_0xa93362),_0x10178d=await validateRuntimeSchedule(_0xa93362[_0x32359b(0x18b)],_0x1b2cd2),_0x5bfdff=await createRuntimeSchedule(_0xa93362[_0x32359b(0x18b)],_0x10178d);return{'ok':!![],'data':_0x5bfdff,'message':_0x32359b(0x1ad)+_0x5bfdff[_0x32359b(0x1c0)]+_0x32359b(0x1a6)+_0x5bfdff[_0x32359b(0x1d9)]};},async 'dryRun'(_0x4919e7){const _0x398e95=a58_0x3ac958,_0x1c4053=readScheduleInput(_0x4919e7);return dryRun(_0x398e95(0x1d4),scheduleCollectionPath(_0x4919e7['appCode']))[_0x398e95(0x1aa)](_0x1c4053)[_0x398e95(0x1b7)]('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x398e95(0x1b3)]();}},scheduleList={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x197),'description':a58_0x3ac958(0x1bb),'risk':a58_0x3ac958(0x1bc),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x19e438){const _0x3da083=a58_0x3ac958,_0x3aa66e=_0x19e438[_0x3da083(0x1d8)](_0x3da083(0x19a));if(!Number[_0x3da083(0x1a4)](_0x3aa66e)||_0x3aa66e<0x1||_0x3aa66e>0x64)throw CliErrors[_0x3da083(0x1a9)](_0x3da083(0x1cd));const _0x354ad1=_0x19e438[_0x3da083(0x1ab)](_0x3da083(0x1d5));if(_0x354ad1&&(_0x354ad1['length']>0x400||_0x354ad1[_0x3da083(0x18f)]()!==_0x354ad1))throw CliErrors['validation'](_0x3da083(0x18c));},async 'execute'(_0x45880f){const _0x3a57e6=a58_0x3ac958,_0x3c43d8=_0x45880f[_0x3a57e6(0x1ab)](_0x3a57e6(0x1d5)),_0x2bc553=await listRuntimeSchedules(_0x45880f[_0x3a57e6(0x18b)],{'kind':_0x45880f['str'](_0x3a57e6(0x1c0)),'limit':_0x45880f[_0x3a57e6(0x1d8)](_0x3a57e6(0x19a)),..._0x3c43d8?{'cursor':_0x3c43d8}:{}});return{'ok':!![],'data':_0x2bc553};}},scheduleDetail={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1b5),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x3ac958(0x1bc),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x32657c){const _0x3d2f76=a58_0x3ac958,_0xcaaf26=await getRuntimeSchedule(_0x32657c[_0x3d2f76(0x18b)],_0x32657c[_0x3d2f76(0x1ab)]('schedule-id'));return{'ok':!![],'data':_0xcaaf26};}},scheduleRun={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1af),'description':a58_0x3ac958(0x1a1),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':a58_0x3ac958(0x1ac),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x20430b){const _0x9da15c=a58_0x3ac958,_0x23e20a=_0x20430b[_0x9da15c(0x1ab)](_0x9da15c(0x1c2)),_0x3ccf76=await runRuntimeSchedule(_0x20430b[_0x9da15c(0x18b)],_0x23e20a);return{'ok':!![],'data':_0x3ccf76,'message':'Queued\x20Task\x20'+_0x3ccf76['taskId']+_0x9da15c(0x1a5)+_0x23e20a};},async 'dryRun'(_0x264a80){const _0x9ba161=a58_0x3ac958,_0xaa56e7=_0x264a80[_0x9ba161(0x1ab)](_0x9ba161(0x1c2));return dryRun('POST',scheduleItemPath(_0x264a80[_0x9ba161(0x18b)],_0xaa56e7)+_0x9ba161(0x193))[_0x9ba161(0x1b7)](_0x9ba161(0x1c3)+_0xaa56e7+_0x9ba161(0x1d1))[_0x9ba161(0x1b3)]();}},scheduleDelete={'service':'schedule','command':a58_0x3ac958(0x1c5),'description':a58_0x3ac958(0x1a3),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x257858){const _0x5068bc=a58_0x3ac958,_0xc38156=_0x257858[_0x5068bc(0x1ab)]('schedule-id'),_0xb37f53=await deleteRuntimeSchedule(_0x257858[_0x5068bc(0x18b)],_0xc38156);return{'ok':!![],'data':_0xb37f53,'message':_0x5068bc(0x1c6)+_0xc38156};},async 'dryRun'(_0xf589f5){const _0x14727d=a58_0x3ac958,_0x484e0d=_0xf589f5[_0x14727d(0x1ab)](_0x14727d(0x1c2));return dryRun('DELETE',scheduleItemPath(_0xf589f5[_0x14727d(0x18b)],_0x484e0d))[_0x14727d(0x1b7)](_0x14727d(0x1c7)+_0x484e0d)[_0x14727d(0x1b3)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a59_0x266aa3=a59_0x91b5;(function(_0x2c8b66,_0x26dfcd){const _0x66c3d3=a59_0x91b5,_0x46721b=_0x2c8b66();while(!![]){try{const _0x298b2e=parseInt(_0x66c3d3(0x123))/0x1+parseInt(_0x66c3d3(0x118))/0x2*(parseInt(_0x66c3d3(0x11e))/0x3)+parseInt(_0x66c3d3(0x115))/0x4+parseInt(_0x66c3d3(0x10e))/0x5+-parseInt(_0x66c3d3(0x11b))/0x6+parseInt(_0x66c3d3(0x140))/0x7+-parseInt(_0x66c3d3(0x11d))/0x8;if(_0x298b2e===_0x26dfcd)break;else _0x46721b['push'](_0x46721b['shift']());}catch(_0x168cb2){_0x46721b['push'](_0x46721b['shift']());}}}(a59_0x1d16,0x2b112));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':a59_0x266aa3(0x133),'type':a59_0x266aa3(0x111),'required':!![],'enum':[a59_0x266aa3(0x144),a59_0x266aa3(0x130)],'description':a59_0x266aa3(0x13f)},CRON_FLAG={'name':a59_0x266aa3(0x11c),'type':a59_0x266aa3(0x111),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a59_0x266aa3(0x152),'type':a59_0x266aa3(0x111),'description':a59_0x266aa3(0x149)},TITLE_FLAG={'name':a59_0x266aa3(0x148),'type':a59_0x266aa3(0x111),'required':!![],'description':a59_0x266aa3(0x117)},PROMPT_FLAG={'name':a59_0x266aa3(0x136),'type':a59_0x266aa3(0x111),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a59_0x266aa3(0x143),'type':a59_0x266aa3(0x111),'enum':[a59_0x266aa3(0x154),a59_0x266aa3(0x14d),a59_0x266aa3(0x145)],'default':'deepseek-v4-flash-0731','description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a59_0x266aa3(0x10d),'type':a59_0x266aa3(0x111),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a59_0x266aa3(0x14c),'type':a59_0x266aa3(0x13c),'default':0x14,'description':a59_0x266aa3(0x113)},CURSOR_FLAG={'name':'cursor','type':'string','description':a59_0x266aa3(0x11f)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x128596){const _0x1fb5e4=a59_0x266aa3,_0x16b5ef=_0x128596[_0x1fb5e4(0x112)](_0x1fb5e4(0x133)),_0x1bf44d=_0x128596['str'](_0x1fb5e4(0x148))[_0x1fb5e4(0x141)](),_0xc464fe=_0x128596[_0x1fb5e4(0x112)](_0x1fb5e4(0x136))[_0x1fb5e4(0x141)](),_0x2973ae=_0x128596[_0x1fb5e4(0x112)]('model'),_0x1c22e4=_0x128596['str']('cron'),_0x4efe28=_0x128596[_0x1fb5e4(0x112)](_0x1fb5e4(0x152));if(!_0x1bf44d)throw CliErrors['validation'](_0x1fb5e4(0x139));if(!_0xc464fe)throw CliErrors['validation']('--prompt\x20must\x20not\x20be\x20blank.');if(_0x16b5ef===_0x1fb5e4(0x144)){if(!_0x1c22e4||_0x4efe28)throw CliErrors[_0x1fb5e4(0x11a)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x16b5ef,'timezone':_0x1fb5e4(0x13e),'cron':_0x1c22e4,'title':_0x1bf44d,'prompt':_0xc464fe,'model':_0x2973ae};}if(_0x16b5ef==='ONCE'){if(!_0x4efe28||_0x1c22e4)throw CliErrors['validation'](_0x1fb5e4(0x12f));return{'kind':_0x16b5ef,'timezone':'UTC','scheduledAt':_0x4efe28,'title':_0x1bf44d,'prompt':_0xc464fe,'model':_0x2973ae};}throw CliErrors[_0x1fb5e4(0x11a)](_0x1fb5e4(0x12c));}function scheduleCollectionPath(_0x2570c5){const _0xd59f83=a59_0x266aa3;return _0xd59f83(0x14e)+encodeURIComponent(_0x2570c5)+_0xd59f83(0x124);}function a59_0x91b5(_0x265555,_0x26c255){_0x265555=_0x265555-0x10d;const _0x1d16b6=a59_0x1d16();let _0x91b530=_0x1d16b6[_0x265555];return _0x91b530;}function scheduleItemPath(_0x10f15b,_0x405c12){return scheduleCollectionPath(_0x10f15b)+'/'+encodeURIComponent(_0x405c12);}const scheduleValidate={'service':a59_0x266aa3(0x12e),'command':a59_0x266aa3(0x122),'description':a59_0x266aa3(0x142),'risk':a59_0x266aa3(0x129),'flags':INPUT_FLAGS,async 'validate'(_0x251784){readScheduleInput(_0x251784);},async 'execute'(_0x5608c7){const _0x1202f0=a59_0x266aa3,_0xcc8942=readScheduleInput(_0x5608c7),_0x4e634e=await validateRuntimeSchedule(_0x5608c7[_0x1202f0(0x135)],_0xcc8942);return{'ok':!![],'data':_0x4e634e,'message':_0x1202f0(0x120)};}},scheduleCreate={'service':'schedule','command':a59_0x266aa3(0x146),'description':a59_0x266aa3(0x116),'risk':a59_0x266aa3(0x10f),'confirmationDescription':a59_0x266aa3(0x14b),'flags':INPUT_FLAGS,async 'validate'(_0x7d7511){readScheduleInput(_0x7d7511);},async 'execute'(_0x46fb88){const _0x2de568=a59_0x266aa3,_0x156571=readScheduleInput(_0x46fb88),_0x42b2eb=await validateRuntimeSchedule(_0x46fb88[_0x2de568(0x135)],_0x156571),_0x1c90fa=await createRuntimeSchedule(_0x46fb88[_0x2de568(0x135)],_0x42b2eb);return{'ok':!![],'data':_0x1c90fa,'message':_0x2de568(0x138)+_0x1c90fa[_0x2de568(0x133)]+_0x2de568(0x14a)+_0x1c90fa[_0x2de568(0x147)]};},async 'dryRun'(_0x6cf0cf){const _0x5198f3=a59_0x266aa3,_0x3fb511=readScheduleInput(_0x6cf0cf);return dryRun(_0x5198f3(0x150),scheduleCollectionPath(_0x6cf0cf['appCode']))[_0x5198f3(0x128)](_0x3fb511)[_0x5198f3(0x155)](_0x5198f3(0x12b))[_0x5198f3(0x127)]();}},scheduleList={'service':a59_0x266aa3(0x12e),'command':a59_0x266aa3(0x157),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a59_0x266aa3(0x129),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x45c4ea){const _0x365963=a59_0x266aa3,_0x1eb024=_0x45c4ea[_0x365963(0x110)](_0x365963(0x14c));if(!Number[_0x365963(0x12a)](_0x1eb024)||_0x1eb024<0x1||_0x1eb024>0x64)throw CliErrors['validation'](_0x365963(0x126));const _0x5150a2=_0x45c4ea[_0x365963(0x112)](_0x365963(0x131));if(_0x5150a2&&(_0x5150a2[_0x365963(0x13a)]>0x400||_0x5150a2[_0x365963(0x141)]()!==_0x5150a2))throw CliErrors[_0x365963(0x11a)](_0x365963(0x119));},async 'execute'(_0x14d4c3){const _0x4f2b28=a59_0x266aa3,_0x1e5685=_0x14d4c3['str'](_0x4f2b28(0x131)),_0x545ab3=await listRuntimeSchedules(_0x14d4c3[_0x4f2b28(0x135)],{'kind':_0x14d4c3[_0x4f2b28(0x112)](_0x4f2b28(0x133)),'limit':_0x14d4c3[_0x4f2b28(0x110)]('limit'),..._0x1e5685?{'cursor':_0x1e5685}:{}});return{'ok':!![],'data':_0x545ab3};}},scheduleDetail={'service':a59_0x266aa3(0x12e),'command':'detail','description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2d5d65){const _0x1e3949=a59_0x266aa3,_0x16b8bf=await getRuntimeSchedule(_0x2d5d65['appCode'],_0x2d5d65[_0x1e3949(0x112)]('schedule-id'));return{'ok':!![],'data':_0x16b8bf};}},scheduleRun={'service':a59_0x266aa3(0x12e),'command':a59_0x266aa3(0x12d),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a59_0x266aa3(0x10f),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x639f2){const _0x58e815=a59_0x266aa3,_0x19b6a1=_0x639f2['str']('schedule-id'),_0xc3a4f2=await runRuntimeSchedule(_0x639f2['appCode'],_0x19b6a1);return{'ok':!![],'data':_0xc3a4f2,'message':_0x58e815(0x151)+_0xc3a4f2[_0x58e815(0x114)]+_0x58e815(0x121)+_0x19b6a1};},async 'dryRun'(_0x4f80c5){const _0x569f00=a59_0x266aa3,_0x513951=_0x4f80c5[_0x569f00(0x112)](_0x569f00(0x10d));return dryRun(_0x569f00(0x150),scheduleItemPath(_0x4f80c5['appCode'],_0x513951)+_0x569f00(0x13b))[_0x569f00(0x155)](_0x569f00(0x14f)+_0x513951+_0x569f00(0x132))[_0x569f00(0x127)]();}},scheduleDelete={'service':a59_0x266aa3(0x12e),'command':a59_0x266aa3(0x13d),'description':a59_0x266aa3(0x156),'risk':a59_0x266aa3(0x10f),'confirmationDescription':a59_0x266aa3(0x125),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2de55b){const _0x5c4728=a59_0x266aa3,_0x22f21d=_0x2de55b[_0x5c4728(0x112)]('schedule-id'),_0x2cbfe0=await deleteRuntimeSchedule(_0x2de55b['appCode'],_0x22f21d);return{'ok':!![],'data':_0x2cbfe0,'message':_0x5c4728(0x153)+_0x22f21d};},async 'dryRun'(_0x1152f1){const _0x4ae4fb=a59_0x266aa3,_0x218abe=_0x1152f1[_0x4ae4fb(0x112)]('schedule-id');return dryRun(_0x4ae4fb(0x134),scheduleItemPath(_0x1152f1[_0x4ae4fb(0x135)],_0x218abe))[_0x4ae4fb(0x155)](_0x4ae4fb(0x137)+_0x218abe)[_0x4ae4fb(0x127)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];function a59_0x1d16(){const _0x410714=['Queued\x20Task\x20','scheduled-at','Deleted\x20schedule\x20','kimi/k3','description','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','list','schedule-id','1017470zsesff','high-risk-write','num','string','str','Page\x20size\x20from\x201\x20to\x20100','taskId','363052ksnGzJ','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','Schedule\x20title','2978uDHfrF','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','validation','835584HZRpDf','cron','3439408YXwAYi','66FsIJou','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20input\x20is\x20valid','\x20from\x20schedule\x20','validate','162627eLedYB','/schedules','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','build','body','read','isSafeInteger','Preview:\x20create\x20an\x20Agent\x20schedule','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','run','schedule','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','ONCE','cursor','\x20immediately','kind','DELETE','appCode','prompt','Preview:\x20delete\x20schedule\x20','Created\x20','--title\x20must\x20not\x20be\x20blank.','length','/run','number','delete','UTC','Schedule\x20kind:\x20CRON\x20or\x20ONCE','1791650NwrJZE','trim','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','model','CRON','deepseek-v4-pro-0813','create','scheduleId','title','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','\x20schedule\x20','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','limit','deepseek-v4-flash-0731','/api/harness/apps/','Preview:\x20run\x20schedule\x20','POST'];a59_0x1d16=function(){return _0x410714;};return a59_0x1d16();}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a60_0x9b15d4=a60_0x43e0;function a60_0x567d(){const _0x54a735=['5151555LxhQtz','552622xtFtqO','9691790pvjjzC','72lRqAZF','schema','1851216BsmlZr','3234225ydfCJS','1374087WhpaeM','Export\x20machine-readable\x20command\x20schema\x20(JSON)','export','4rTZbNB','32TSdaHk','1593432RTsszz'];a60_0x567d=function(){return _0x54a735;};return a60_0x567d();}function a60_0x43e0(_0x4d1c66,_0x10cecd){_0x4d1c66=_0x4d1c66-0x1ee;const _0x567db8=a60_0x567d();let _0x43e053=_0x567db8[_0x4d1c66];return _0x43e053;}(function(_0x575783,_0x42fd1c){const _0x2c2edc=a60_0x43e0,_0x35919e=_0x575783();while(!![]){try{const _0xda8f20=-parseInt(_0x2c2edc(0x1f4))/0x1+parseInt(_0x2c2edc(0x1f2))/0x2+-parseInt(_0x2c2edc(0x1f3))/0x3+parseInt(_0x2c2edc(0x1f7))/0x4*(parseInt(_0x2c2edc(0x1fa))/0x5)+parseInt(_0x2c2edc(0x1f0))/0x6*(parseInt(_0x2c2edc(0x1ee))/0x7)+-parseInt(_0x2c2edc(0x1f8))/0x8*(parseInt(_0x2c2edc(0x1f9))/0x9)+parseInt(_0x2c2edc(0x1ef))/0xa;if(_0xda8f20===_0x42fd1c)break;else _0x35919e['push'](_0x35919e['shift']());}catch(_0x441af3){_0x35919e['push'](_0x35919e['shift']());}}}(a60_0x567d,0xadda0));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x18dc6a){const _0x40da20=await buildSchemaPayload();return{'ok':!![],'data':_0x40da20};}export const schemaDefinition={'service':a60_0x9b15d4(0x1f1),'command':a60_0x9b15d4(0x1f6),'description':a60_0x9b15d4(0x1f5),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x23113e,_0x566df8){const _0x118dc3=a60_0x4439,_0x5e46a7=_0x23113e();while(!![]){try{const _0x3cd29b=parseInt(_0x118dc3(0x136))/0x1*(parseInt(_0x118dc3(0x148))/0x2)+-parseInt(_0x118dc3(0x13e))/0x3+-parseInt(_0x118dc3(0x172))/0x4*(parseInt(_0x118dc3(0x109))/0x5)+parseInt(_0x118dc3(0x15f))/0x6*(-parseInt(_0x118dc3(0x127))/0x7)+-parseInt(_0x118dc3(0x16f))/0x8+-parseInt(_0x118dc3(0x121))/0x9+parseInt(_0x118dc3(0x107))/0xa*(parseInt(_0x118dc3(0x105))/0xb);if(_0x3cd29b===_0x566df8)break;else _0x5e46a7['push'](_0x5e46a7['shift']());}catch(_0x265f7e){_0x5e46a7['push'](_0x5e46a7['shift']());}}}(a60_0x4567,0x72517));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(_0x5d91bb,_0xa14498){const _0x34c97e=a60_0x4439,_0x4dcbe1=listLocalServiceTrees();let _0xe4fd91;for(const _0xa95dca of _0x4dcbe1){const _0x546dfe=matchServiceTreeCommand(_0xa95dca,_0x5d91bb);if(!_0x546dfe)continue;(!_0xe4fd91||_0x546dfe[_0x34c97e(0x152)][_0x34c97e(0x156)][_0x34c97e(0x165)]>_0xe4fd91[_0x34c97e(0x152)]['fullPath'][_0x34c97e(0x165)])&&(_0xe4fd91={'tree':_0xa95dca,'command':_0x546dfe['command'],'remainingArgs':_0x546dfe[_0x34c97e(0x14d)]});}if(!_0xe4fd91)return undefined;const _0x33aa1c={..._0xa14498};return applyAppBinding(_0xe4fd91[_0x34c97e(0x11f)],_0xe4fd91[_0x34c97e(0x152)],_0x33aa1c),{'definition':buildDynamicCommandDefinition(_0xe4fd91[_0x34c97e(0x11f)],_0xe4fd91[_0x34c97e(0x152)]),'args':_0xe4fd91['remainingArgs'],'flags':_0x33aa1c,'tree':_0xe4fd91[_0x34c97e(0x11f)],'command':_0xe4fd91[_0x34c97e(0x152)]};}export function generateDynamicServiceHelp(_0x23d6c5){const _0x2dcd0b=a60_0x4439,_0xbd56a9=listLocalServiceTrees()['find'](_0x1f46c2=>_0x1f46c2[_0x2dcd0b(0x159)][_0x2dcd0b(0x162)]===_0x23d6c5);if(!_0xbd56a9)return undefined;const _0x6d0930=[CLI_BIN_NAME+'\x20'+_0x23d6c5+'\x20<command>\x20[flags]','',_0xbd56a9[_0x2dcd0b(0x159)]['name']||_0x23d6c5,_0xbd56a9[_0x2dcd0b(0x159)][_0x2dcd0b(0x168)]?'\x20\x20'+_0xbd56a9[_0x2dcd0b(0x159)][_0x2dcd0b(0x168)]:'','',_0x2dcd0b(0x12e),..._0xbd56a9[_0x2dcd0b(0x13f)][_0x2dcd0b(0x14e)](_0x574c24=>{const _0x20d61d=_0x2dcd0b,_0x1bae59=_0x574c24[_0x20d61d(0x156)]['slice'](0x1)[_0x20d61d(0x16a)]('\x20'),_0x44f4c5=_0x574c24[_0x20d61d(0x119)]==='read'?'':'\x20['+_0x574c24[_0x20d61d(0x119)]+']';return'\x20\x20'+_0x1bae59[_0x20d61d(0x132)](0x18)+'\x20'+(_0x574c24['description']||'')+_0x44f4c5;}),'',_0x2dcd0b(0x173)+CLI_BIN_NAME+_0x2dcd0b(0x11c)+_0x23d6c5+_0x2dcd0b(0x13a)][_0x2dcd0b(0x104)](Boolean);return _0x6d0930[_0x2dcd0b(0x16a)]('\x0a');}export function listDynamicServiceEntries(){const _0x3e6401=a60_0x4439;return listLocalServices()[_0x3e6401(0x14e)](_0x160bed=>{const _0x298040=_0x3e6401,_0xf2225d=_0x160bed[_0x298040(0x10e)];return{'service':_0xf2225d[_0x298040(0x159)]['code'],'label':_0xf2225d[_0x298040(0x159)]['name']||_0xf2225d['service']['code'],'commands':_0xf2225d[_0x298040(0x13f)]['map'](_0x20b617=>({'command':dynamicCommandName(_0x20b617),'description':_0x20b617[_0x298040(0x168)]||'Run\x20service\x20command\x20'+_0x20b617[_0x298040(0x139)],'tag':riskTag(_0x20b617['risk'])}))};});}export function getDynamicServiceEntry(_0x29809a){const _0x44eb7c=a60_0x4439;return listDynamicServiceEntries()[_0x44eb7c(0x142)](_0x15fc73=>_0x15fc73['service']===_0x29809a);}export function listDynamicServiceDefinitions(_0x21891a){const _0x45a475=a60_0x4439;return listLocalServiceTrees()[_0x45a475(0x104)](_0x4bd95e=>!_0x21891a||_0x4bd95e[_0x45a475(0x159)]['code']===_0x21891a)[_0x45a475(0x10c)](_0x6a735f=>_0x6a735f['commands']['map'](_0x2373f3=>buildDynamicCommandDefinition(_0x6a735f,_0x2373f3)));}export function getDynamicServiceDefinitions(_0x5c9699){const _0x7775d6=a60_0x4439,_0x2f1802=listDynamicServiceDefinitions(_0x5c9699);return _0x2f1802[_0x7775d6(0x165)]>0x0?_0x2f1802:undefined;}export function findDynamicServiceDefinition(_0x4edbfe,_0x3726f9){return listDynamicServiceDefinitions(_0x4edbfe)['find'](_0x4e3eee=>_0x4e3eee['command']===_0x3726f9);}export function buildDynamicCommandDefinition(_0x4b5d47,_0x36ba9e){const _0x10daf1=a60_0x4439;return{'service':_0x4b5d47[_0x10daf1(0x159)][_0x10daf1(0x162)],'command':dynamicCommandName(_0x36ba9e),'description':_0x36ba9e[_0x10daf1(0x168)]||_0x10daf1(0x171)+_0x36ba9e[_0x10daf1(0x139)],'risk':_0x36ba9e[_0x10daf1(0x119)],..._0x36ba9e[_0x10daf1(0x119)]===_0x10daf1(0x157)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x36ba9e)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x36ba9e['args'][_0x10daf1(0x14e)](_0x42b10d=>({'name':_0x42b10d[_0x10daf1(0x11d)],'description':_0x42b10d[_0x10daf1(0x168)]||_0x42b10d['name'],'required':_0x42b10d[_0x10daf1(0x116)]})),'flags':_0x36ba9e[_0x10daf1(0x118)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x36ba9e),async 'dryRun'(_0x517c97){const _0x334a85=_0x10daf1,_0x747a15=await compilePlan(_0x36ba9e,_0x517c97);return{'method':_0x334a85(0x138),'url':_0x36ba9e[_0x334a85(0x139)],'body':{'target':targetPreview(_0x747a15),'params':_0x747a15['params']},'description':_0x334a85(0x123)+_0x36ba9e['cliPath']};},async 'execute'(_0x51ab01){const _0x1094ae=_0x10daf1,_0x1d84f8=await compilePlan(_0x36ba9e,_0x51ab01),_0x3d0264=Date[_0x1094ae(0x163)](),_0x896172=await executePlan(_0x1d84f8,_0x36ba9e,_0x51ab01),_0x3f9d23=Date[_0x1094ae(0x163)]()-_0x3d0264;return{'ok':!![],'data':{'service':_0x4b5d47[_0x1094ae(0x159)],'command':_0x36ba9e['cliPath'],'target':targetPreview(_0x1d84f8),'result':_0x896172,'elapsed':_0x3f9d23},'message':_0x1094ae(0x160)+_0x36ba9e[_0x1094ae(0x139)]+_0x1094ae(0x145)+_0x3f9d23+'ms'};}};}function buildDynamicConfirmationDescription(_0x5d8244){const _0x5c8700=a60_0x4439,_0x4d682f=_0x5d8244[_0x5c8700(0x168)]||_0x5d8244[_0x5c8700(0x139)],_0x3c38c8=_0x5d8244[_0x5c8700(0x119)]===_0x5c8700(0x155)?_0x5c8700(0x13b):_0x5c8700(0x12f);return _0x5c8700(0x158)+_0x4d682f+'\x22.\x20'+_0x3c38c8;}function dynamicCommandName(_0x57de6f){const _0x333d80=a60_0x4439;return _0x57de6f[_0x333d80(0x156)][_0x333d80(0x13c)](0x1)[_0x333d80(0x16a)]('\x20');}function riskTag(_0x42dd2c){const _0x4bdc16=a60_0x4439;return _0x42dd2c==='read'?'':_0x4bdc16(0x164)+_0x42dd2c+']';}function flagToCommandFlag(_0x20088d){const _0x157476=a60_0x4439;return{'name':_0x20088d[_0x157476(0x11a)],'type':_0x20088d[_0x157476(0x114)]===_0x157476(0x147)?_0x157476(0x133):_0x20088d[_0x157476(0x114)],'description':_0x20088d[_0x157476(0x168)]||_0x20088d[_0x157476(0x11d)],'required':_0x20088d['required'],'default':isPrimitiveFlagDefault(_0x20088d[_0x157476(0x170)])?_0x20088d[_0x157476(0x170)]:undefined,'enum':_0x20088d[_0x157476(0x14c)]};}async function compilePlan(_0x1113e7,_0x1388bc){const _0x5be40b=a60_0x4439;return compileServiceTreeCommand(_0x1113e7,{'flags':_0x1388bc[_0x5be40b(0x15c)],'args':_0x1388bc[_0x5be40b(0x169)],'context':await buildServiceContext(_0x1113e7,_0x1388bc)});}async function buildServiceContext(_0x24539d,_0x440e3f){const _0x40f962=a60_0x4439,_0x17bd08={'appCode':_0x440e3f['appCode'],'env':_0x440e3f[_0x40f962(0x14a)],'envName':_0x440e3f[_0x40f962(0x14a)]};if(!usesRuntimeContext(_0x24539d))return _0x17bd08;const _0x13bd06=await getLoginUserInfo(),_0x2094f6=pickFirst(_0x13bd06[_0x40f962(0x108)],_0x13bd06['id']);return{..._0x17bd08,'user':_0x13bd06,'userId':_0x2094f6,'id':_0x13bd06['id'],'username':pickFirst(_0x13bd06[_0x40f962(0x134)],_0x13bd06[_0x40f962(0x15d)],_0x13bd06['loginName']),'userName':_0x13bd06[_0x40f962(0x15d)],'nickname':pickFirst(_0x13bd06[_0x40f962(0x130)],_0x13bd06[_0x40f962(0x10d)]),'nickName':_0x13bd06[_0x40f962(0x10d)],'tenantCode':_0x13bd06[_0x40f962(0x12b)],'employeeId':_0x13bd06[_0x40f962(0x141)]};}function usesRuntimeContext(_0x48a56f){const _0x32fcec=a60_0x4439;return _0x48a56f[_0x32fcec(0x131)][_0x32fcec(0x11b)](_0x499e10=>typeof _0x499e10[_0x32fcec(0x166)]===_0x32fcec(0x133)&&(_0x499e10['source'][_0x32fcec(0x13d)]('context.')||_0x499e10[_0x32fcec(0x166)][_0x32fcec(0x13d)](_0x32fcec(0x115))));}function pickFirst(..._0x3d7944){const _0x28be49=a60_0x4439;return _0x3d7944[_0x28be49(0x142)](_0x567d29=>_0x567d29!==undefined&&_0x567d29!==null);}async function executePlan(_0x1bdfd0,_0x4b6793,_0x426d81){const _0x5a7711=a60_0x4439;if(_0x1bdfd0[_0x5a7711(0x15b)]===_0x5a7711(0x151)){const _0x39846c=await resolveDatasetCode(_0x1bdfd0,_0x4b6793,_0x426d81);return executeData(_0x39846c,_0x1bdfd0[_0x5a7711(0x152)],_0x1bdfd0[_0x5a7711(0x16e)]);}if(_0x1bdfd0['kind']===_0x5a7711(0x146)){if(!_0x1bdfd0[_0x5a7711(0x111)])throw CliErrors['validation'](_0x5a7711(0x160)+_0x4b6793['cliPath']+_0x5a7711(0x15e));return executeSdkSql(_0x1bdfd0[_0x5a7711(0x111)],normalizeScalarParams(_0x1bdfd0[_0x5a7711(0x16e)]));}if(_0x1bdfd0[_0x5a7711(0x15b)]==='bff'){const _0x184af8=_0x1bdfd0['scriptName']||_0x1bdfd0[_0x5a7711(0x10b)]||(_0x1bdfd0[_0x5a7711(0x149)]==null?'':String(_0x1bdfd0['bffId']));if(!_0x184af8)throw CliErrors[_0x5a7711(0x137)](_0x5a7711(0x160)+_0x4b6793['cliPath']+_0x5a7711(0x14b));return executeSdkBff(_0x184af8,_0x1bdfd0['params']);}throw CliErrors[_0x5a7711(0x137)](_0x5a7711(0x167)+_0x1bdfd0[_0x5a7711(0x15b)]);}async function resolveDatasetCode(_0x1b44fb,_0x28e437,_0x4e374e){const _0x2a912e=a60_0x4439;if(_0x1b44fb[_0x2a912e(0x120)])return _0x1b44fb[_0x2a912e(0x120)];if(!_0x1b44fb[_0x2a912e(0x135)])throw CliErrors['validation'](_0x2a912e(0x160)+_0x28e437[_0x2a912e(0x139)]+_0x2a912e(0x125));const _0x171632=await listDatasets(_0x4e374e[_0x2a912e(0x106)]),_0x41b10d=_0x171632[_0x2a912e(0x142)](_0x4d042a=>_0x4d042a[_0x2a912e(0x16c)]?.[_0x2a912e(0x144)]===_0x1b44fb[_0x2a912e(0x135)]);if(!_0x41b10d?.['code'])throw CliErrors[_0x2a912e(0x137)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x1b44fb[_0x2a912e(0x135)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x4e374e[_0x2a912e(0x106)]+'.',_0x2a912e(0x12c));return _0x41b10d[_0x2a912e(0x162)];}function applyAppBinding(_0x4db296,_0x3f54f5,_0x118670){const _0x102c8a=a60_0x4439,_0x448c2f=_0x3f54f5[_0x102c8a(0x128)]['appRef'];if(!_0x448c2f)return;const _0x269067=_0x4db296[_0x102c8a(0x14f)][_0x448c2f];if(!_0x269067)throw CliErrors[_0x102c8a(0x137)](_0x102c8a(0x10f)+_0x448c2f+_0x102c8a(0x112)+_0x3f54f5[_0x102c8a(0x139)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x5ebb84=_0x269067[_0x102c8a(0x16b)]||_0x269067[_0x102c8a(0x106)];_0x5ebb84&&!hasText(_0x118670[_0x102c8a(0x16b)])&&(_0x118670[_0x102c8a(0x16b)]=_0x5ebb84),_0x269067[_0x102c8a(0x113)]&&!hasText(_0x118670[_0x102c8a(0x113)])&&!hasText(_0x118670[_0x102c8a(0x16b)])&&(_0x118670[_0x102c8a(0x113)]=_0x269067[_0x102c8a(0x113)]),_0x269067['env']&&!hasText(_0x118670['env'])&&(_0x118670[_0x102c8a(0x124)]=_0x269067['env']);}function renderDynamicCommandHelp(_0x5577b5){const _0x54a3e1=a60_0x4439,_0x3f4fe5=[_0x54a3e1(0x143),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x15b)],_0x54a3e1(0x122)+_0x5577b5['target']['command']];if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x120)])_0x3f4fe5['push'](_0x54a3e1(0x154)+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x120)]);if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x135)])_0x3f4fe5[_0x54a3e1(0x10a)](_0x54a3e1(0x12d)+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x135)]);if(_0x5577b5[_0x54a3e1(0x128)]['sqlCode'])_0x3f4fe5['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x111)]);if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x110)])_0x3f4fe5[_0x54a3e1(0x10a)](_0x54a3e1(0x15a)+_0x5577b5['target']['scriptName']);if(_0x5577b5[_0x54a3e1(0x131)]['length']>0x0){_0x3f4fe5[_0x54a3e1(0x10a)]('',_0x54a3e1(0x140));for(const _0xa9a9d5 of _0x5577b5[_0x54a3e1(0x131)]){_0x3f4fe5['push'](_0x54a3e1(0x117)+(_0xa9a9d5[_0x54a3e1(0x166)]||_0x54a3e1(0x161))+_0x54a3e1(0x129)+_0xa9a9d5['target']+(_0xa9a9d5[_0x54a3e1(0x16d)]?'.'+_0xa9a9d5[_0x54a3e1(0x16d)]:''));}}return _0x3f4fe5[_0x54a3e1(0x16a)]('\x0a');}function targetPreview(_0x373a54){const _0x1f2495=a60_0x4439;return{'kind':_0x373a54['kind'],'command':_0x373a54[_0x1f2495(0x152)],'appRef':_0x373a54[_0x1f2495(0x11e)],'datasetCode':_0x373a54[_0x1f2495(0x120)],'datatable':_0x373a54['datatable'],'sqlCode':_0x373a54[_0x1f2495(0x111)],'bffCode':_0x373a54[_0x1f2495(0x10b)],'bffId':_0x373a54[_0x1f2495(0x149)],'functionName':_0x373a54[_0x1f2495(0x110)]};}function normalizeScalarParams(_0x2d205c){const _0x297444=a60_0x4439;return Object[_0x297444(0x150)](Object['entries'](_0x2d205c)[_0x297444(0x104)](([,_0x12252c])=>typeof _0x12252c===_0x297444(0x133)||typeof _0x12252c===_0x297444(0x12a)));}function hasText(_0x5cdde5){const _0x5482d6=a60_0x4439;return typeof _0x5cdde5==='string'&&_0x5cdde5[_0x5482d6(0x153)]()[_0x5482d6(0x165)]>0x0;}function a60_0x4567(){const _0x4edc0b=['cliPath','`\x20to\x20inspect\x20the\x20manifest.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','slice','startsWith','1707918oQsAnP','commands','\x20\x20MAP\x20TO','employeeId','find','\x20\x20SERVICE\x20TREE\x20TARGET','tableName','\x20completed\x20in\x20','sql','json','761638cVyCgX','bffId','envName','\x20requires\x20target.functionName.','enum','remainingArgs','map','appBindings','fromEntries','data','command','trim','\x20\x20\x20\x20datasetCode:\x20','high-risk-write','fullPath','read','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','service','\x20\x20\x20\x20functionName:\x20','kind','rawFlags','userName','\x20requires\x20target.sqlCode.','1313430sCrRYO','Service\x20command\x20','const','code','now','\x20\x20[','length','source','Unsupported\x20service\x20target\x20kind:\x20','description','args','join','appcode','dbtableConfig','operator','params','1066792etFcuf','default','Run\x20service\x20command\x20','8792syclLz','Use\x20`','filter','429GLjYxX','appCode','264230ZJgdfQ','userId','115mNORAd','push','bffCode','flatMap','nickName','normalizedManifest','Unknown\x20appRef\x20\x22','scriptName','sqlCode','\x22\x20in\x20service\x20command\x20','app','type','ctx.','required','\x20\x20\x20\x20','flags','risk','cliName','some','\x20service\x20detail\x20--service\x20','name','appRef','tree','datasetCode','3165966ZNdnlf','\x20\x20\x20\x20command:\x20','Preview\x20dynamic\x20service\x20command:\x20','env','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','boolean','7EHMlYT','target','\x20->\x20','number','tenantCode','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20datatable:\x20','Commands:','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','nickname','mapTo','padEnd','string','username','datatable','2fDnzVP','validation','SERVICE_TREE'];a60_0x4567=function(){return _0x4edc0b;};return a60_0x4567();}function a60_0x4439(_0x33f0ee,_0x595ad5){_0x33f0ee=_0x33f0ee-0x104;const _0x456760=a60_0x4567();let _0x4439ea=_0x456760[_0x33f0ee];return _0x4439ea;}function isPrimitiveFlagDefault(_0x1f5caa){const _0x1a9140=a60_0x4439;return _0x1f5caa===undefined||typeof _0x1f5caa===_0x1a9140(0x133)||typeof _0x1f5caa===_0x1a9140(0x12a)||typeof _0x1f5caa===_0x1a9140(0x126);}
|
|
1
|
+
(function(_0x45f3dd,_0xef654c){const _0xab6b46=a61_0x416d,_0x21ef8f=_0x45f3dd();while(!![]){try{const _0x95d698=-parseInt(_0xab6b46(0x256))/0x1*(-parseInt(_0xab6b46(0x23b))/0x2)+parseInt(_0xab6b46(0x1fc))/0x3*(-parseInt(_0xab6b46(0x242))/0x4)+-parseInt(_0xab6b46(0x201))/0x5+-parseInt(_0xab6b46(0x206))/0x6*(-parseInt(_0xab6b46(0x23e))/0x7)+parseInt(_0xab6b46(0x1ff))/0x8*(parseInt(_0xab6b46(0x22f))/0x9)+-parseInt(_0xab6b46(0x208))/0xa+parseInt(_0xab6b46(0x251))/0xb;if(_0x95d698===_0xef654c)break;else _0x21ef8f['push'](_0x21ef8f['shift']());}catch(_0x5d4f0f){_0x21ef8f['push'](_0x21ef8f['shift']());}}}(a61_0xdb2c,0x356bd));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';function a61_0x416d(_0xca0920,_0x75cb27){_0xca0920=_0xca0920-0x1eb;const _0xdb2c24=a61_0xdb2c();let _0x416db1=_0xdb2c24[_0xca0920];return _0x416db1;}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x2771c,_0x508903){const _0x5dd89c=a61_0x416d,_0x2de8ff=listLocalServiceTrees();let _0x3e73ee;for(const _0x103f6a of _0x2de8ff){const _0x4a3228=matchServiceTreeCommand(_0x103f6a,_0x2771c);if(!_0x4a3228)continue;(!_0x3e73ee||_0x4a3228[_0x5dd89c(0x204)][_0x5dd89c(0x213)][_0x5dd89c(0x1f8)]>_0x3e73ee[_0x5dd89c(0x204)][_0x5dd89c(0x213)][_0x5dd89c(0x1f8)])&&(_0x3e73ee={'tree':_0x103f6a,'command':_0x4a3228[_0x5dd89c(0x204)],'remainingArgs':_0x4a3228[_0x5dd89c(0x22e)]});}if(!_0x3e73ee)return undefined;const _0x30158d={..._0x508903};return applyAppBinding(_0x3e73ee[_0x5dd89c(0x238)],_0x3e73ee['command'],_0x30158d),{'definition':buildDynamicCommandDefinition(_0x3e73ee[_0x5dd89c(0x238)],_0x3e73ee[_0x5dd89c(0x204)]),'args':_0x3e73ee[_0x5dd89c(0x22e)],'flags':_0x30158d,'tree':_0x3e73ee['tree'],'command':_0x3e73ee['command']};}export function generateDynamicServiceHelp(_0x2fd5d1){const _0xe2bf20=a61_0x416d,_0x16ad02=listLocalServiceTrees()[_0xe2bf20(0x259)](_0x791017=>_0x791017[_0xe2bf20(0x23f)][_0xe2bf20(0x235)]===_0x2fd5d1);if(!_0x16ad02)return undefined;const _0x32b692=[CLI_BIN_NAME+'\x20'+_0x2fd5d1+_0xe2bf20(0x237),'',_0x16ad02['service']['name']||_0x2fd5d1,_0x16ad02[_0xe2bf20(0x23f)][_0xe2bf20(0x214)]?'\x20\x20'+_0x16ad02[_0xe2bf20(0x23f)][_0xe2bf20(0x214)]:'','',_0xe2bf20(0x20a),..._0x16ad02[_0xe2bf20(0x203)][_0xe2bf20(0x21a)](_0x39d7db=>{const _0x2ef9ab=_0xe2bf20,_0x128120=_0x39d7db[_0x2ef9ab(0x213)]['slice'](0x1)[_0x2ef9ab(0x229)]('\x20'),_0x3e5534=_0x39d7db[_0x2ef9ab(0x1f7)]==='read'?'':'\x20['+_0x39d7db[_0x2ef9ab(0x1f7)]+']';return'\x20\x20'+_0x128120['padEnd'](0x18)+'\x20'+(_0x39d7db['description']||'')+_0x3e5534;}),'',_0xe2bf20(0x219)+CLI_BIN_NAME+_0xe2bf20(0x1f1)+_0x2fd5d1+_0xe2bf20(0x255)][_0xe2bf20(0x20d)](Boolean);return _0x32b692[_0xe2bf20(0x229)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x2089ea=>{const _0x2e8e9c=a61_0x416d,_0x237bfa=_0x2089ea[_0x2e8e9c(0x1f6)];return{'service':_0x237bfa[_0x2e8e9c(0x23f)][_0x2e8e9c(0x235)],'label':_0x237bfa[_0x2e8e9c(0x23f)][_0x2e8e9c(0x253)]||_0x237bfa[_0x2e8e9c(0x23f)]['code'],'commands':_0x237bfa[_0x2e8e9c(0x203)][_0x2e8e9c(0x21a)](_0x537369=>({'command':dynamicCommandName(_0x537369),'description':_0x537369[_0x2e8e9c(0x214)]||_0x2e8e9c(0x215)+_0x537369[_0x2e8e9c(0x24c)],'tag':riskTag(_0x537369[_0x2e8e9c(0x1f7)])}))};});}export function getDynamicServiceEntry(_0x212324){const _0x201c64=a61_0x416d;return listDynamicServiceEntries()[_0x201c64(0x259)](_0xc455b=>_0xc455b['service']===_0x212324);}export function listDynamicServiceDefinitions(_0x28acc7){const _0x2382bd=a61_0x416d;return listLocalServiceTrees()[_0x2382bd(0x20d)](_0xd901f6=>!_0x28acc7||_0xd901f6['service'][_0x2382bd(0x235)]===_0x28acc7)['flatMap'](_0xe72d9c=>_0xe72d9c[_0x2382bd(0x203)][_0x2382bd(0x21a)](_0x213979=>buildDynamicCommandDefinition(_0xe72d9c,_0x213979)));}export function getDynamicServiceDefinitions(_0xd15224){const _0x1f1d55=a61_0x416d,_0x359ebd=listDynamicServiceDefinitions(_0xd15224);return _0x359ebd[_0x1f1d55(0x1f8)]>0x0?_0x359ebd:undefined;}export function findDynamicServiceDefinition(_0x1ce793,_0x43cb79){const _0x1c11e7=a61_0x416d;return listDynamicServiceDefinitions(_0x1ce793)['find'](_0x51b6a3=>_0x51b6a3[_0x1c11e7(0x204)]===_0x43cb79);}export function buildDynamicCommandDefinition(_0x23d701,_0x1cf9e8){const _0x37c4ad=a61_0x416d;return{'service':_0x23d701[_0x37c4ad(0x23f)][_0x37c4ad(0x235)],'command':dynamicCommandName(_0x1cf9e8),'description':_0x1cf9e8['description']||_0x37c4ad(0x215)+_0x1cf9e8['cliPath'],'risk':_0x1cf9e8[_0x37c4ad(0x1f7)],..._0x1cf9e8[_0x37c4ad(0x1f7)]===_0x37c4ad(0x247)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1cf9e8)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1cf9e8[_0x37c4ad(0x1f3)][_0x37c4ad(0x21a)](_0x150582=>({'name':_0x150582[_0x37c4ad(0x253)],'description':_0x150582[_0x37c4ad(0x214)]||_0x150582[_0x37c4ad(0x253)],'required':_0x150582['required']})),'flags':_0x1cf9e8[_0x37c4ad(0x221)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1cf9e8),async 'dryRun'(_0x257b34){const _0x4bf9e0=_0x37c4ad,_0x4b20f3=await compilePlan(_0x1cf9e8,_0x257b34);return{'method':_0x4bf9e0(0x205),'url':_0x1cf9e8['cliPath'],'body':{'target':targetPreview(_0x4b20f3),'params':_0x4b20f3[_0x4bf9e0(0x244)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x1cf9e8[_0x4bf9e0(0x24c)]};},async 'execute'(_0x41046d){const _0x5b8477=_0x37c4ad,_0x4effb3=await compilePlan(_0x1cf9e8,_0x41046d),_0x17f7f7=Date['now'](),_0x8a2db4=await executePlan(_0x4effb3,_0x1cf9e8,_0x41046d),_0x49653c=Date[_0x5b8477(0x21b)]()-_0x17f7f7;return{'ok':!![],'data':{'service':_0x23d701[_0x5b8477(0x23f)],'command':_0x1cf9e8['cliPath'],'target':targetPreview(_0x4effb3),'result':_0x8a2db4,'elapsed':_0x49653c},'message':_0x5b8477(0x24b)+_0x1cf9e8['cliPath']+_0x5b8477(0x254)+_0x49653c+'ms'};}};}function buildDynamicConfirmationDescription(_0x36b744){const _0x4eda41=a61_0x416d,_0x8fb8ee=_0x36b744[_0x4eda41(0x214)]||_0x36b744[_0x4eda41(0x24c)],_0x3e8e25=_0x36b744[_0x4eda41(0x1f7)]===_0x4eda41(0x239)?_0x4eda41(0x258):_0x4eda41(0x24f);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x8fb8ee+_0x4eda41(0x1fa)+_0x3e8e25;}function dynamicCommandName(_0x3db6b9){const _0x267481=a61_0x416d;return _0x3db6b9['fullPath'][_0x267481(0x1fb)](0x1)[_0x267481(0x229)]('\x20');}function riskTag(_0x5e85ee){const _0x265cea=a61_0x416d;return _0x5e85ee===_0x265cea(0x247)?'':_0x265cea(0x21c)+_0x5e85ee+']';}function flagToCommandFlag(_0x4b9217){const _0x24244d=a61_0x416d;return{'name':_0x4b9217[_0x24244d(0x245)],'type':_0x4b9217['type']===_0x24244d(0x248)?_0x24244d(0x24e):_0x4b9217[_0x24244d(0x249)],'description':_0x4b9217[_0x24244d(0x214)]||_0x4b9217[_0x24244d(0x253)],'required':_0x4b9217[_0x24244d(0x24a)],'default':isPrimitiveFlagDefault(_0x4b9217[_0x24244d(0x209)])?_0x4b9217[_0x24244d(0x209)]:undefined,'enum':_0x4b9217[_0x24244d(0x230)]};}async function compilePlan(_0x428e4c,_0xb5d4f1){const _0x5cc8c4=a61_0x416d;return compileServiceTreeCommand(_0x428e4c,{'flags':_0xb5d4f1[_0x5cc8c4(0x1f4)],'args':_0xb5d4f1[_0x5cc8c4(0x1f3)],'context':await buildServiceContext(_0x428e4c,_0xb5d4f1)});}async function buildServiceContext(_0x4e7cf5,_0x131b8d){const _0x3ccc68=a61_0x416d,_0xbfde80={'appCode':_0x131b8d[_0x3ccc68(0x218)],'env':_0x131b8d[_0x3ccc68(0x224)],'envName':_0x131b8d[_0x3ccc68(0x224)]};if(!usesRuntimeContext(_0x4e7cf5))return _0xbfde80;const _0x39f1b2=await getLoginUserInfo(),_0x1c6c7b=pickFirst(_0x39f1b2[_0x3ccc68(0x22a)],_0x39f1b2['id']);return{..._0xbfde80,'user':_0x39f1b2,'userId':_0x1c6c7b,'id':_0x39f1b2['id'],'username':pickFirst(_0x39f1b2[_0x3ccc68(0x252)],_0x39f1b2[_0x3ccc68(0x1f2)],_0x39f1b2[_0x3ccc68(0x257)]),'userName':_0x39f1b2[_0x3ccc68(0x1f2)],'nickname':pickFirst(_0x39f1b2['nickname'],_0x39f1b2['nickName']),'nickName':_0x39f1b2['nickName'],'tenantCode':_0x39f1b2[_0x3ccc68(0x246)],'employeeId':_0x39f1b2[_0x3ccc68(0x23c)]};}function usesRuntimeContext(_0x2a825c){const _0x3ad127=a61_0x416d;return _0x2a825c['mapTo']['some'](_0x42b607=>typeof _0x42b607['source']===_0x3ad127(0x24e)&&(_0x42b607[_0x3ad127(0x21e)]['startsWith']('context.')||_0x42b607[_0x3ad127(0x21e)][_0x3ad127(0x24d)](_0x3ad127(0x20b))));}function pickFirst(..._0x532e4d){const _0x5050ce=a61_0x416d;return _0x532e4d[_0x5050ce(0x259)](_0x10152c=>_0x10152c!==undefined&&_0x10152c!==null);}async function executePlan(_0x3a4396,_0x5034ab,_0x4a5657){const _0x5225ea=a61_0x416d;if(_0x3a4396[_0x5225ea(0x22b)]===_0x5225ea(0x1f5)){const _0x153dae=await resolveDatasetCode(_0x3a4396,_0x5034ab,_0x4a5657);return executeData(_0x153dae,_0x3a4396[_0x5225ea(0x204)],_0x3a4396[_0x5225ea(0x244)]);}if(_0x3a4396[_0x5225ea(0x22b)]===_0x5225ea(0x222)){if(!_0x3a4396['sqlCode'])throw CliErrors[_0x5225ea(0x217)](_0x5225ea(0x24b)+_0x5034ab[_0x5225ea(0x24c)]+_0x5225ea(0x223));return executeSdkSql(_0x3a4396[_0x5225ea(0x240)],normalizeScalarParams(_0x3a4396[_0x5225ea(0x244)]));}if(_0x3a4396[_0x5225ea(0x22b)]===_0x5225ea(0x1ef)){const _0xedabfe=_0x3a4396[_0x5225ea(0x1f9)]||_0x3a4396[_0x5225ea(0x210)]||(_0x3a4396[_0x5225ea(0x22c)]==null?'':String(_0x3a4396['bffId']));if(!_0xedabfe)throw CliErrors[_0x5225ea(0x217)](_0x5225ea(0x24b)+_0x5034ab[_0x5225ea(0x24c)]+_0x5225ea(0x1f0));return executeSdkBff(_0xedabfe,_0x3a4396[_0x5225ea(0x244)]);}throw CliErrors[_0x5225ea(0x217)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x3a4396[_0x5225ea(0x22b)]);}async function resolveDatasetCode(_0x134ae3,_0x875b0e,_0x5e8924){const _0x3e8247=a61_0x416d;if(_0x134ae3[_0x3e8247(0x20f)])return _0x134ae3['datasetCode'];if(!_0x134ae3['datatable'])throw CliErrors[_0x3e8247(0x217)](_0x3e8247(0x24b)+_0x875b0e[_0x3e8247(0x24c)]+_0x3e8247(0x216));const _0x257b6e=await listDatasets(_0x5e8924[_0x3e8247(0x218)]),_0x1c7ff3=_0x257b6e[_0x3e8247(0x259)](_0x3ed406=>_0x3ed406[_0x3e8247(0x211)]?.[_0x3e8247(0x228)]===_0x134ae3[_0x3e8247(0x200)]);if(!_0x1c7ff3?.[_0x3e8247(0x235)])throw CliErrors[_0x3e8247(0x217)](_0x3e8247(0x227)+_0x134ae3[_0x3e8247(0x200)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x5e8924[_0x3e8247(0x218)]+'.',_0x3e8247(0x236));return _0x1c7ff3[_0x3e8247(0x235)];}function applyAppBinding(_0x5c6342,_0x124a2a,_0x39e056){const _0x42eb85=a61_0x416d,_0x5b583b=_0x124a2a[_0x42eb85(0x1fe)]['appRef'];if(!_0x5b583b)return;const _0x1bcf80=_0x5c6342[_0x42eb85(0x21d)][_0x5b583b];if(!_0x1bcf80)throw CliErrors['validation'](_0x42eb85(0x226)+_0x5b583b+_0x42eb85(0x202)+_0x124a2a[_0x42eb85(0x24c)]+'.',_0x42eb85(0x21f));const _0x24149e=_0x1bcf80['appcode']||_0x1bcf80['appCode'];_0x24149e&&!hasText(_0x39e056['appcode'])&&(_0x39e056['appcode']=_0x24149e),_0x1bcf80[_0x42eb85(0x243)]&&!hasText(_0x39e056['app'])&&!hasText(_0x39e056[_0x42eb85(0x1fd)])&&(_0x39e056['app']=_0x1bcf80[_0x42eb85(0x243)]),_0x1bcf80[_0x42eb85(0x1ed)]&&!hasText(_0x39e056[_0x42eb85(0x1ed)])&&(_0x39e056[_0x42eb85(0x1ed)]=_0x1bcf80['env']);}function renderDynamicCommandHelp(_0x505112){const _0x13a7c0=a61_0x416d,_0x53093e=[_0x13a7c0(0x232),_0x13a7c0(0x1eb)+_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x22b)],_0x13a7c0(0x22d)+_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x204)]];if(_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x20f)])_0x53093e['push'](_0x13a7c0(0x207)+_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x20f)]);if(_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x200)])_0x53093e[_0x13a7c0(0x1ee)](_0x13a7c0(0x225)+_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x200)]);if(_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x240)])_0x53093e[_0x13a7c0(0x1ee)](_0x13a7c0(0x250)+_0x505112[_0x13a7c0(0x1fe)]['sqlCode']);if(_0x505112[_0x13a7c0(0x1fe)][_0x13a7c0(0x1f9)])_0x53093e[_0x13a7c0(0x1ee)](_0x13a7c0(0x23d)+_0x505112['target'][_0x13a7c0(0x1f9)]);if(_0x505112[_0x13a7c0(0x212)][_0x13a7c0(0x1f8)]>0x0){_0x53093e['push']('',_0x13a7c0(0x23a));for(const _0x2d83a1 of _0x505112['mapTo']){_0x53093e[_0x13a7c0(0x1ee)](_0x13a7c0(0x1ec)+(_0x2d83a1[_0x13a7c0(0x21e)]||_0x13a7c0(0x20c))+_0x13a7c0(0x234)+_0x2d83a1[_0x13a7c0(0x1fe)]+(_0x2d83a1[_0x13a7c0(0x241)]?'.'+_0x2d83a1['operator']:''));}}return _0x53093e['join']('\x0a');}function targetPreview(_0x5b7f03){const _0x4b592b=a61_0x416d;return{'kind':_0x5b7f03[_0x4b592b(0x22b)],'command':_0x5b7f03[_0x4b592b(0x204)],'appRef':_0x5b7f03['appRef'],'datasetCode':_0x5b7f03[_0x4b592b(0x20f)],'datatable':_0x5b7f03[_0x4b592b(0x200)],'sqlCode':_0x5b7f03[_0x4b592b(0x240)],'bffCode':_0x5b7f03[_0x4b592b(0x210)],'bffId':_0x5b7f03[_0x4b592b(0x22c)],'functionName':_0x5b7f03[_0x4b592b(0x1f9)]};}function normalizeScalarParams(_0x32e0d5){const _0x62875=a61_0x416d;return Object[_0x62875(0x220)](Object[_0x62875(0x20e)](_0x32e0d5)[_0x62875(0x20d)](([,_0xe18df5])=>typeof _0xe18df5===_0x62875(0x24e)||typeof _0xe18df5===_0x62875(0x231)));}function hasText(_0x3134a3){const _0x402213=a61_0x416d;return typeof _0x3134a3===_0x402213(0x24e)&&_0x3134a3[_0x402213(0x233)]()['length']>0x0;}function a61_0xdb2c(){const _0x372cb5=['221864vIdOpD','datatable','506345LMhhbB','\x22\x20in\x20service\x20command\x20','commands','command','SERVICE_TREE','48OIPEGY','\x20\x20\x20\x20datasetCode:\x20','3316860OltkKA','default','Commands:','ctx.','const','filter','entries','datasetCode','bffCode','dbtableConfig','mapTo','fullPath','description','Run\x20service\x20command\x20','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','validation','appCode','Use\x20`','map','now','\x20\x20[','appBindings','source','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','fromEntries','flags','sql','\x20requires\x20target.sqlCode.','envName','\x20\x20\x20\x20datatable:\x20','Unknown\x20appRef\x20\x22','Cannot\x20resolve\x20datatable\x20\x22','tableName','join','userId','kind','bffId','\x20\x20\x20\x20command:\x20','remainingArgs','63nqqLHb','enum','number','\x20\x20SERVICE\x20TREE\x20TARGET','trim','\x20->\x20','code','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20<command>\x20[flags]','tree','high-risk-write','\x20\x20MAP\x20TO','22SHEQyg','employeeId','\x20\x20\x20\x20functionName:\x20','72191PWcCiP','service','sqlCode','operator','136SGCFvE','app','params','cliName','tenantCode','read','json','type','required','Service\x20command\x20','cliPath','startsWith','string','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','\x20\x20\x20\x20sqlCode:\x20','1691008VWTnOA','username','name','\x20completed\x20in\x20','`\x20to\x20inspect\x20the\x20manifest.','26393cdzOBk','loginName','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','find','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20\x20\x20','env','push','bff','\x20requires\x20target.functionName.','\x20service\x20detail\x20--service\x20','userName','args','rawFlags','data','normalizedManifest','risk','length','scriptName','\x22.\x20','slice','6081yiezYs','appcode','target'];a61_0xdb2c=function(){return _0x372cb5;};return a61_0xdb2c();}function isPrimitiveFlagDefault(_0x10e2fe){const _0x5201dd=a61_0x416d;return _0x10e2fe===undefined||typeof _0x10e2fe==='string'||typeof _0x10e2fe===_0x5201dd(0x231)||typeof _0x10e2fe==='boolean';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x54ed28,_0x183a40){const _0x137a0a=a62_0x23ba,_0x14605e=_0x54ed28();while(!![]){try{const _0x40b792=parseInt(_0x137a0a(0x1af))/0x1+-parseInt(_0x137a0a(0x1a6))/0x2+-parseInt(_0x137a0a(0x1a9))/0x3+parseInt(_0x137a0a(0x1c4))/0x4+-parseInt(_0x137a0a(0x1bc))/0x5+parseInt(_0x137a0a(0x1a3))/0x6*(parseInt(_0x137a0a(0x1c1))/0x7)+-parseInt(_0x137a0a(0x1c2))/0x8*(-parseInt(_0x137a0a(0x1b1))/0x9);if(_0x40b792===_0x183a40)break;else _0x14605e['push'](_0x14605e['shift']());}catch(_0x49b5e0){_0x14605e['push'](_0x14605e['shift']());}}}(a62_0x1c24,0x609ca));function a62_0x23ba(_0x22176a,_0x1f1106){_0x22176a=_0x22176a-0x19f;const _0x1c24db=a62_0x1c24();let _0x23ba37=_0x1c24db[_0x22176a];return _0x23ba37;}function a62_0x1c24(){const _0x105fe9=['bff.exec','error','kind','isArray','61434dSsDrd','.scriptName','12553479AsQItx','string','.target','map','entries','trim','functionName','bff','call','target','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','3492135WwodaG','push','fromEntries','action','resources','121933dVZlSd','8VxwoHN','actions','2257368JFHzrr','hasOwnProperty','$.resources','prototype','object','].target','6xUKphH','.resources','$.commands[','498406odCeyH','scriptName','functionName\x20must\x20be\x20a\x20non-empty\x20string.','2084022BIOGax','commands'];a62_0x1c24=function(){return _0x105fe9;};return a62_0x1c24();}export function adaptServiceTreeManifestForLegacyFramework(_0x6802b9){const _0xfc472d=a62_0x23ba,_0x49cb4e=cloneJsonValue(_0x6802b9),_0xbff2=[];if(!isObjectRecord(_0x49cb4e))return{'manifest':_0x49cb4e,'errors':_0xbff2};return Array[_0xfc472d(0x1ae)](_0x49cb4e[_0xfc472d(0x1aa)])&&_0x49cb4e['commands']['forEach']((_0x5b299c,_0x206122)=>{const _0x5386a5=_0xfc472d;if(!isObjectRecord(_0x5b299c))return;adaptBffTarget(_0x5b299c[_0x5386a5(0x1ba)],_0x5386a5(0x1a5)+_0x206122+_0x5386a5(0x1a2),_0xbff2);}),adaptResources(_0x49cb4e[_0xfc472d(0x1c0)],_0xfc472d(0x19f),_0xbff2),{'manifest':_0x49cb4e,'errors':_0xbff2};}export function toPublicServiceTreeTarget(_0x5a16fb){const _0x167f70=a62_0x23ba,{scriptName:_0x490e03,..._0x15b6e0}=_0x5a16fb;return typeof _0x490e03===_0x167f70(0x1b2)&&_0x490e03[_0x167f70(0x1b6)]()&&(_0x15b6e0['functionName']=_0x490e03),_0x15b6e0;}export function toPublicNormalizedServiceTree(_0x27e7a2){const _0x1912ca=a62_0x23ba;return{..._0x27e7a2,'commands':_0x27e7a2[_0x1912ca(0x1aa)][_0x1912ca(0x1b4)](_0x184f60=>({..._0x184f60,'target':toPublicServiceTreeTarget(_0x184f60[_0x1912ca(0x1ba)])}))};}function adaptResources(_0x527a58,_0x2a7a5f,_0x344253){const _0x21dd43=a62_0x23ba;if(!isObjectRecord(_0x527a58))return;for(const [_0x407969,_0x22ec7f]of Object[_0x21dd43(0x1b5)](_0x527a58)){if(!isObjectRecord(_0x22ec7f))continue;const _0x52962e=_0x2a7a5f+'.'+_0x407969;if(isObjectRecord(_0x22ec7f[_0x21dd43(0x1c3)]))for(const [_0x1bd641,_0x2ab358]of Object[_0x21dd43(0x1b5)](_0x22ec7f[_0x21dd43(0x1c3)])){if(!isObjectRecord(_0x2ab358))continue;const _0x154460=_0x52962e+'.actions.'+_0x1bd641,_0x420649=isObjectRecord(_0x2ab358['target'])&&_0x2ab358[_0x21dd43(0x1ba)][_0x21dd43(0x1ad)]===_0x21dd43(0x1b8);adaptBffTarget(_0x2ab358[_0x21dd43(0x1ba)],_0x154460+_0x21dd43(0x1b3),_0x344253),(_0x420649||isBffAction(_0x2ab358))&&adaptFunctionNameField(_0x2ab358,_0x154460,_0x344253);}adaptResources(_0x22ec7f[_0x21dd43(0x1c0)],_0x52962e+_0x21dd43(0x1a4),_0x344253);}}function adaptBffTarget(_0x22c5f3,_0x21f0ee,_0x17b463){const _0x15403d=a62_0x23ba;if(!isObjectRecord(_0x22c5f3)||_0x22c5f3[_0x15403d(0x1ad)]!==_0x15403d(0x1b8))return;adaptFunctionNameField(_0x22c5f3,_0x21f0ee,_0x17b463);}function adaptFunctionNameField(_0xa35084,_0x1216a1,_0x34ae95){const _0x3f612d=a62_0x23ba;Object[_0x3f612d(0x1a0)][_0x3f612d(0x1c5)][_0x3f612d(0x1b9)](_0xa35084,_0x3f612d(0x1a7))&&_0x34ae95[_0x3f612d(0x1bd)]({'level':_0x3f612d(0x1ac),'path':_0x1216a1+_0x3f612d(0x1b0),'message':_0x3f612d(0x1bb)});if(Object[_0x3f612d(0x1a0)][_0x3f612d(0x1c5)][_0x3f612d(0x1b9)](_0xa35084,_0x3f612d(0x1b7))){if(typeof _0xa35084[_0x3f612d(0x1b7)]!==_0x3f612d(0x1b2)||!_0xa35084[_0x3f612d(0x1b7)][_0x3f612d(0x1b6)]()){_0x34ae95[_0x3f612d(0x1bd)]({'level':_0x3f612d(0x1ac),'path':_0x1216a1+'.functionName','message':_0x3f612d(0x1a8)}),delete _0xa35084[_0x3f612d(0x1b7)];return;}_0xa35084[_0x3f612d(0x1a7)]=_0xa35084[_0x3f612d(0x1b7)],delete _0xa35084['functionName'];}}function isBffAction(_0x2af6f7){const _0x30e812=a62_0x23ba;return _0x2af6f7[_0x30e812(0x1ad)]===_0x30e812(0x1b8)||_0x2af6f7[_0x30e812(0x1bf)]===_0x30e812(0x1ab)||_0x2af6f7[_0x30e812(0x1ba)]==='bff.exec';}function cloneJsonValue(_0x49f5ad){const _0x1b194c=a62_0x23ba;if(Array[_0x1b194c(0x1ae)](_0x49f5ad))return _0x49f5ad[_0x1b194c(0x1b4)](_0x478987=>cloneJsonValue(_0x478987));if(isObjectRecord(_0x49f5ad))return Object[_0x1b194c(0x1be)](Object[_0x1b194c(0x1b5)](_0x49f5ad)[_0x1b194c(0x1b4)](([_0x492c8e,_0x139efe])=>[_0x492c8e,cloneJsonValue(_0x139efe)]));return _0x49f5ad;}function isObjectRecord(_0x1dc8ee){const _0x42e705=a62_0x23ba;return Boolean(_0x1dc8ee)&&typeof _0x1dc8ee===_0x42e705(0x1a1)&&!Array[_0x42e705(0x1ae)](_0x1dc8ee);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x63ec0=a62_0x5eb3;function a62_0x5eb3(_0x1ff043,_0x40d282){_0x1ff043=_0x1ff043-0x120;const _0x3bbc6a=a62_0x3bbc();let _0x5eb383=_0x3bbc6a[_0x1ff043];return _0x5eb383;}(function(_0x19b672,_0x10c2ca){const _0x102b2c=a62_0x5eb3,_0x142d97=_0x19b672();while(!![]){try{const _0x2040dc=-parseInt(_0x102b2c(0x130))/0x1*(-parseInt(_0x102b2c(0x156))/0x2)+parseInt(_0x102b2c(0x154))/0x3*(parseInt(_0x102b2c(0x12f))/0x4)+parseInt(_0x102b2c(0x149))/0x5+parseInt(_0x102b2c(0x14d))/0x6+parseInt(_0x102b2c(0x123))/0x7+-parseInt(_0x102b2c(0x15c))/0x8+-parseInt(_0x102b2c(0x121))/0x9;if(_0x2040dc===_0x10c2ca)break;else _0x142d97['push'](_0x142d97['shift']());}catch(_0x2c455a){_0x142d97['push'](_0x142d97['shift']());}}}(a62_0x3bbc,0x2e2a8));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_0x63ec0(0x157),'type':a62_0x63ec0(0x12d),'required':!![],'description':a62_0x63ec0(0x165)},SERVICE_FLAG={'name':a62_0x63ec0(0x14b),'type':'string','required':!![],'description':a62_0x63ec0(0x14a),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x63ec0(0x15f)}};function summarizeService(_0x4ae76c){const _0x4b66b4=a62_0x63ec0;return{'serviceCode':_0x4ae76c['serviceCode'],'name':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x14b)][_0x4b66b4(0x161)],'version':_0x4ae76c[_0x4b66b4(0x12b)],'importedAt':_0x4ae76c[_0x4b66b4(0x128)],'source':_0x4ae76c[_0x4b66b4(0x124)],'commandCount':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x13e)][_0x4b66b4(0x153)],'commands':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x13e)][_0x4b66b4(0x131)](_0x5213d3=>({'path':_0x5213d3[_0x4b66b4(0x155)],'description':_0x5213d3['description'],'risk':_0x5213d3[_0x4b66b4(0x15d)],'target':toPublicServiceTreeTarget(_0x5213d3[_0x4b66b4(0x143)]),'flags':_0x5213d3[_0x4b66b4(0x142)][_0x4b66b4(0x131)](_0x24f87b=>({'name':_0x24f87b[_0x4b66b4(0x161)],'cliName':_0x24f87b[_0x4b66b4(0x164)],'type':_0x24f87b['type'],'required':_0x24f87b['required']===!![]}))}))};}function summarizeLoadedManifest(_0x558f25){const _0xd48134=a62_0x63ec0;return{'service':_0x558f25[_0xd48134(0x14e)]?.['service'],'version':_0x558f25[_0xd48134(0x14e)]?.['version'],'commandCount':_0x558f25[_0xd48134(0x14e)]?.[_0xd48134(0x13e)]['length']??0x0,'commands':_0x558f25['normalizedManifest']?.[_0xd48134(0x13e)][_0xd48134(0x131)](_0x20633c=>({'path':_0x20633c['cliPath'],'risk':_0x20633c[_0xd48134(0x15d)],'target':toPublicServiceTreeTarget(_0x20633c[_0xd48134(0x143)])}))??[],'registryIndex':_0x558f25[_0xd48134(0x14f)],'registryServiceCode':_0x558f25[_0xd48134(0x160)],'errors':_0x558f25[_0xd48134(0x137)][_0xd48134(0x145)],'warnings':_0x558f25[_0xd48134(0x137)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x134),'description':a62_0x63ec0(0x140),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x62a3ab){const _0x536536=a62_0x63ec0,_0x365152=loadServiceManifestFromFile(_0x62a3ab[_0x536536(0x158)](_0x536536(0x157)));if(!_0x365152[_0x536536(0x137)]['ok'])return{'ok':![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152['hash'],'kind':_0x365152[_0x536536(0x132)],'serviceCount':_0x365152['manifests'][_0x536536(0x153)],'services':_0x365152['manifests'][_0x536536(0x131)](summarizeLoadedManifest),'errors':_0x365152[_0x536536(0x137)][_0x536536(0x145)],'warnings':_0x365152[_0x536536(0x137)][_0x536536(0x141)]},'message':formatValidationFailure(_0x365152[_0x536536(0x137)])};if(_0x365152['kind']===_0x536536(0x163)||_0x365152[_0x536536(0x120)][_0x536536(0x153)]!==0x1)return{'ok':!![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152['hash'],'kind':_0x365152['kind'],'serviceCount':_0x365152[_0x536536(0x120)][_0x536536(0x153)],'commandCount':_0x365152[_0x536536(0x120)][_0x536536(0x136)]((_0x31dfd0,_0x113216)=>_0x31dfd0+(_0x113216[_0x536536(0x14e)]?.[_0x536536(0x13e)]['length']??0x0),0x0),'services':_0x365152[_0x536536(0x120)][_0x536536(0x131)](summarizeLoadedManifest),'warnings':_0x365152['report'][_0x536536(0x141)]},'message':_0x536536(0x122)};return{'ok':!![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152[_0x536536(0x150)],'kind':_0x365152[_0x536536(0x132)],'service':_0x365152[_0x536536(0x14e)]?.[_0x536536(0x14b)],'version':_0x365152[_0x536536(0x14e)]?.['version'],'commandCount':_0x365152['normalizedManifest']?.[_0x536536(0x13e)]['length']??0x0,'commands':_0x365152[_0x536536(0x14e)]?.[_0x536536(0x13e)]['map'](_0x539529=>({'path':_0x539529[_0x536536(0x155)],'risk':_0x539529[_0x536536(0x15d)],'target':toPublicServiceTreeTarget(_0x539529['target'])})),'warnings':_0x365152[_0x536536(0x137)][_0x536536(0x141)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x146),'description':a62_0x63ec0(0x166),'risk':'write','confirmationDescription':a62_0x63ec0(0x147),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x39a015){const _0x4def23=a62_0x63ec0,_0x4cc3b5=loadServiceManifestFromFile(_0x39a015['str']('file'));return{'method':_0x4def23(0x135),'url':getServiceRegistryPath(),'body':{'file':_0x4cc3b5[_0x4def23(0x15e)],'hash':_0x4cc3b5[_0x4def23(0x150)],'kind':_0x4cc3b5[_0x4def23(0x132)],'ok':_0x4cc3b5[_0x4def23(0x137)]['ok'],'service':_0x4cc3b5[_0x4def23(0x14e)]?.[_0x4def23(0x14b)],'version':_0x4cc3b5['normalizedManifest']?.[_0x4def23(0x12b)],'serviceCount':_0x4cc3b5['manifests'][_0x4def23(0x153)],'services':_0x4cc3b5[_0x4def23(0x120)][_0x4def23(0x131)](_0x1e9667=>({'service':_0x1e9667['normalizedManifest']?.['service'],'version':_0x1e9667['normalizedManifest']?.['version'],'commandCount':_0x1e9667[_0x4def23(0x14e)]?.[_0x4def23(0x13e)][_0x4def23(0x153)]??0x0,'errors':_0x1e9667[_0x4def23(0x137)][_0x4def23(0x145)]})),'errors':_0x4cc3b5[_0x4def23(0x137)][_0x4def23(0x145)],'commandCount':_0x4cc3b5[_0x4def23(0x14e)]?.[_0x4def23(0x13e)][_0x4def23(0x153)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x4af084){const _0x1de25a=a62_0x63ec0,_0x4593f0=importServiceManifest(_0x4af084['str'](_0x1de25a(0x157)));if(_0x4593f0['entries'][_0x1de25a(0x153)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4593f0[_0x1de25a(0x15b)],'imported':_0x4593f0['imported'],'updated':_0x4593f0[_0x1de25a(0x13f)],'serviceCount':_0x4593f0[_0x1de25a(0x13a)],'services':_0x4593f0[_0x1de25a(0x15a)]['map'](summarizeService)},'message':_0x1de25a(0x12a)+_0x4593f0[_0x1de25a(0x138)]+'\x20service(s),\x20updated\x20'+_0x4593f0[_0x1de25a(0x13f)]+_0x1de25a(0x13c)};return{'ok':!![],'data':{'registryPath':_0x4593f0[_0x1de25a(0x15b)],'replaced':_0x4593f0[_0x1de25a(0x133)],'imported':_0x4593f0[_0x1de25a(0x138)],'updated':_0x4593f0[_0x1de25a(0x13f)],'serviceCount':_0x4593f0['serviceCount'],'service':summarizeService(_0x4593f0['entry'])},'message':(_0x4593f0[_0x1de25a(0x133)]?'Updated':_0x1de25a(0x125))+_0x1de25a(0x152)+_0x4593f0['entry']['serviceCode']+'.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x151),'description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a62_0x63ec0(0x159),'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'(_0x774c1e){const _0x1ec636=a62_0x63ec0,_0x41935e=getLocalServiceEntry(_0x774c1e['str']('service'));return{'method':_0x1ec636(0x135),'url':_0x774c1e['str'](_0x1ec636(0x157)),'body':{'service':_0x774c1e[_0x1ec636(0x158)](_0x1ec636(0x14b)),'found':Boolean(_0x41935e),'version':_0x41935e?.[_0x1ec636(0x12b)],'source':_0x41935e?.[_0x1ec636(0x124)]},'description':_0x1ec636(0x12c)};},async 'execute'(_0x52fc9f){const _0x9c1e91=a62_0x63ec0,_0x5afb55=exportServiceManifest(_0x52fc9f[_0x9c1e91(0x158)](_0x9c1e91(0x14b)),_0x52fc9f[_0x9c1e91(0x158)](_0x9c1e91(0x157)));return{'ok':!![],'data':{'registryPath':_0x5afb55[_0x9c1e91(0x15b)],'file':_0x5afb55[_0x9c1e91(0x15e)],'service':summarizeService(_0x5afb55[_0x9c1e91(0x127)])},'message':_0x9c1e91(0x13d)+_0x5afb55[_0x9c1e91(0x127)]['serviceCode']+'.'};}},{'service':'service','command':a62_0x63ec0(0x139),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a62_0x63ec0(0x13b),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x459747=a62_0x63ec0,_0x31d6ed=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x31d6ed[_0x459747(0x153)],'services':_0x31d6ed[_0x459747(0x131)](summarizeService)}};}},{'service':'service','command':a62_0x63ec0(0x144),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a62_0x63ec0(0x159),'confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x5cf143){const _0x562ad7=a62_0x63ec0,_0x16651c=getLocalServiceEntry(_0x5cf143[_0x562ad7(0x158)](_0x562ad7(0x14b)));return{'method':_0x562ad7(0x135),'url':getServiceRegistryPath(),'body':{'service':_0x5cf143['str'](_0x562ad7(0x14b)),'found':Boolean(_0x16651c),'version':_0x16651c?.['version'],'source':_0x16651c?.[_0x562ad7(0x124)]},'description':_0x562ad7(0x129)};},async 'execute'(_0x382d5b){const _0x1e8c57=a62_0x63ec0,_0x564434=removeServiceManifest(_0x382d5b['str'](_0x1e8c57(0x14b)));return{'ok':!![],'data':{'registryPath':_0x564434['registryPath'],'serviceCount':_0x564434[_0x1e8c57(0x13a)],'service':summarizeService(_0x564434['entry'])},'message':'Removed\x20service\x20'+_0x564434['entry'][_0x1e8c57(0x126)]+'.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x14c),'description':a62_0x63ec0(0x12e),'risk':a62_0x63ec0(0x13b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x38e4b7){const _0x894a7d=a62_0x63ec0,_0x567881=getLocalServiceEntry(_0x38e4b7[_0x894a7d(0x158)](_0x894a7d(0x14b)));if(!_0x567881)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x38e4b7['str'](_0x894a7d(0x14b))},'message':_0x894a7d(0x162)+_0x38e4b7[_0x894a7d(0x158)](_0x894a7d(0x14b))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x567881),'manifest':_0x567881[_0x894a7d(0x148)],'normalizedManifest':toPublicNormalizedServiceTree(_0x567881['normalizedManifest'])}};}}];function a62_0x3bbc(){const _0x475ea5=['Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Imported\x20','version','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','string','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','116JFHlTh','5fqzMPl','map','kind','replaced','validate','WRITE','reduce','report','imported','list','serviceCount','read','\x20service(s).','Exported\x20service\x20','commands','updated','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','warnings','flags','target','remove','errors','import','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.','manifest','329285ltJgwJ','Local\x20service\x20code,\x20for\x20example\x20crm','service','detail','458706OBeOpJ','normalizedManifest','registryIndex','hash','export','\x20service\x20','length','33519xvwNhT','cliPath','116806lAbOVD','file','str','write','entries','registryPath','2545752PBwyat','risk','filePath','lower\x20kebab-case\x20service\x20code','registryServiceCode','name','Local\x20service\x20not\x20found:\x20','registry','cliName','Service\x20Tree\x20manifest\x20file\x20path','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','manifests','3409713PPpwMo','Service\x20registry\x20validation\x20passed.','894824NttCYf','source','Imported','serviceCode','entry','importedAt'];a62_0x3bbc=function(){return _0x475ea5;};return a62_0x3bbc();}
|
|
1
|
+
const a63_0x5f54f9=a63_0x4fc3;(function(_0x539128,_0x2be3a9){const _0x178eab=a63_0x4fc3,_0x5c869e=_0x539128();while(!![]){try{const _0x56bb2d=-parseInt(_0x178eab(0x190))/0x1+parseInt(_0x178eab(0x192))/0x2*(parseInt(_0x178eab(0x1bf))/0x3)+-parseInt(_0x178eab(0x1b6))/0x4*(parseInt(_0x178eab(0x1b2))/0x5)+parseInt(_0x178eab(0x197))/0x6*(-parseInt(_0x178eab(0x1c6))/0x7)+-parseInt(_0x178eab(0x1aa))/0x8+parseInt(_0x178eab(0x1b1))/0x9*(parseInt(_0x178eab(0x1d4))/0xa)+parseInt(_0x178eab(0x1b9))/0xb*(parseInt(_0x178eab(0x1b0))/0xc);if(_0x56bb2d===_0x2be3a9)break;else _0x5c869e['push'](_0x5c869e['shift']());}catch(_0x100ad1){_0x5c869e['push'](_0x5c869e['shift']());}}}(a63_0x4300,0xdcbba));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':a63_0x5f54f9(0x19b),'type':a63_0x5f54f9(0x1d2),'required':!![],'description':a63_0x5f54f9(0x1a9)},SERVICE_FLAG={'name':'service','type':a63_0x5f54f9(0x1d2),'required':!![],'description':a63_0x5f54f9(0x19e),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a63_0x5f54f9(0x1a0)}};function summarizeService(_0x5e880e){const _0x2a18d9=a63_0x5f54f9;return{'serviceCode':_0x5e880e[_0x2a18d9(0x1c8)],'name':_0x5e880e[_0x2a18d9(0x199)][_0x2a18d9(0x19f)][_0x2a18d9(0x1a5)],'version':_0x5e880e[_0x2a18d9(0x1d7)],'importedAt':_0x5e880e[_0x2a18d9(0x195)],'source':_0x5e880e[_0x2a18d9(0x198)],'commandCount':_0x5e880e[_0x2a18d9(0x199)]['commands'][_0x2a18d9(0x19d)],'commands':_0x5e880e[_0x2a18d9(0x199)][_0x2a18d9(0x1bc)][_0x2a18d9(0x1d9)](_0x2f25ca=>({'path':_0x2f25ca[_0x2a18d9(0x1d3)],'description':_0x2f25ca[_0x2a18d9(0x1bb)],'risk':_0x2f25ca[_0x2a18d9(0x1b3)],'target':toPublicServiceTreeTarget(_0x2f25ca[_0x2a18d9(0x1a3)]),'flags':_0x2f25ca['flags'][_0x2a18d9(0x1d9)](_0x20c98e=>({'name':_0x20c98e[_0x2a18d9(0x1a5)],'cliName':_0x20c98e[_0x2a18d9(0x1ae)],'type':_0x20c98e['type'],'required':_0x20c98e['required']===!![]}))}))};}function a63_0x4fc3(_0x3c0b60,_0x49edcf){_0x3c0b60=_0x3c0b60-0x190;const _0x4300dc=a63_0x4300();let _0x4fc393=_0x4300dc[_0x3c0b60];return _0x4fc393;}function summarizeLoadedManifest(_0x57ff67){const _0x18af5a=a63_0x5f54f9;return{'service':_0x57ff67[_0x18af5a(0x199)]?.[_0x18af5a(0x19f)],'version':_0x57ff67[_0x18af5a(0x199)]?.[_0x18af5a(0x1d7)],'commandCount':_0x57ff67[_0x18af5a(0x199)]?.['commands'][_0x18af5a(0x19d)]??0x0,'commands':_0x57ff67[_0x18af5a(0x199)]?.[_0x18af5a(0x1bc)]['map'](_0xdf19bd=>({'path':_0xdf19bd[_0x18af5a(0x1d3)],'risk':_0xdf19bd[_0x18af5a(0x1b3)],'target':toPublicServiceTreeTarget(_0xdf19bd['target'])}))??[],'registryIndex':_0x57ff67[_0x18af5a(0x19a)],'registryServiceCode':_0x57ff67['registryServiceCode'],'errors':_0x57ff67['report']['errors'],'warnings':_0x57ff67['report'][_0x18af5a(0x1c4)]};}export const serviceDefinitions=[{'service':'service','command':a63_0x5f54f9(0x1c9),'description':a63_0x5f54f9(0x193),'risk':a63_0x5f54f9(0x1b5),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x4f3f25){const _0xddb1b1=a63_0x5f54f9,_0x329b96=loadServiceManifestFromFile(_0x4f3f25[_0xddb1b1(0x1cf)](_0xddb1b1(0x19b)));if(!_0x329b96[_0xddb1b1(0x196)]['ok'])return{'ok':![],'data':{'file':_0x329b96[_0xddb1b1(0x1d8)],'hash':_0x329b96[_0xddb1b1(0x191)],'kind':_0x329b96['kind'],'serviceCount':_0x329b96[_0xddb1b1(0x1a6)]['length'],'services':_0x329b96[_0xddb1b1(0x1a6)][_0xddb1b1(0x1d9)](summarizeLoadedManifest),'errors':_0x329b96[_0xddb1b1(0x196)][_0xddb1b1(0x19c)],'warnings':_0x329b96[_0xddb1b1(0x196)][_0xddb1b1(0x1c4)]},'message':formatValidationFailure(_0x329b96['report'])};if(_0x329b96['kind']===_0xddb1b1(0x1a2)||_0x329b96[_0xddb1b1(0x1a6)][_0xddb1b1(0x19d)]!==0x1)return{'ok':!![],'data':{'file':_0x329b96[_0xddb1b1(0x1d8)],'hash':_0x329b96[_0xddb1b1(0x191)],'kind':_0x329b96[_0xddb1b1(0x1cb)],'serviceCount':_0x329b96[_0xddb1b1(0x1a6)][_0xddb1b1(0x19d)],'commandCount':_0x329b96[_0xddb1b1(0x1a6)][_0xddb1b1(0x1cc)]((_0x537f4c,_0x1f2363)=>_0x537f4c+(_0x1f2363['normalizedManifest']?.[_0xddb1b1(0x1bc)][_0xddb1b1(0x19d)]??0x0),0x0),'services':_0x329b96[_0xddb1b1(0x1a6)][_0xddb1b1(0x1d9)](summarizeLoadedManifest),'warnings':_0x329b96[_0xddb1b1(0x196)][_0xddb1b1(0x1c4)]},'message':_0xddb1b1(0x1d5)};return{'ok':!![],'data':{'file':_0x329b96[_0xddb1b1(0x1d8)],'hash':_0x329b96['hash'],'kind':_0x329b96[_0xddb1b1(0x1cb)],'service':_0x329b96['normalizedManifest']?.[_0xddb1b1(0x19f)],'version':_0x329b96[_0xddb1b1(0x199)]?.[_0xddb1b1(0x1d7)],'commandCount':_0x329b96[_0xddb1b1(0x199)]?.[_0xddb1b1(0x1bc)][_0xddb1b1(0x19d)]??0x0,'commands':_0x329b96[_0xddb1b1(0x199)]?.['commands'][_0xddb1b1(0x1d9)](_0x939618=>({'path':_0x939618[_0xddb1b1(0x1d3)],'risk':_0x939618['risk'],'target':toPublicServiceTreeTarget(_0x939618[_0xddb1b1(0x1a3)])})),'warnings':_0x329b96[_0xddb1b1(0x196)][_0xddb1b1(0x1c4)]},'message':_0xddb1b1(0x1a1)};}},{'service':'service','command':a63_0x5f54f9(0x1d1),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a63_0x5f54f9(0x194),'confirmationDescription':a63_0x5f54f9(0x1b8),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x278e1d){const _0xfc600c=a63_0x5f54f9,_0x177ee9=loadServiceManifestFromFile(_0x278e1d[_0xfc600c(0x1cf)](_0xfc600c(0x19b)));return{'method':_0xfc600c(0x1be),'url':getServiceRegistryPath(),'body':{'file':_0x177ee9[_0xfc600c(0x1d8)],'hash':_0x177ee9[_0xfc600c(0x191)],'kind':_0x177ee9[_0xfc600c(0x1cb)],'ok':_0x177ee9['report']['ok'],'service':_0x177ee9['normalizedManifest']?.[_0xfc600c(0x19f)],'version':_0x177ee9[_0xfc600c(0x199)]?.['version'],'serviceCount':_0x177ee9[_0xfc600c(0x1a6)][_0xfc600c(0x19d)],'services':_0x177ee9[_0xfc600c(0x1a6)][_0xfc600c(0x1d9)](_0x2e350f=>({'service':_0x2e350f[_0xfc600c(0x199)]?.['service'],'version':_0x2e350f[_0xfc600c(0x199)]?.['version'],'commandCount':_0x2e350f[_0xfc600c(0x199)]?.[_0xfc600c(0x1bc)][_0xfc600c(0x19d)]??0x0,'errors':_0x2e350f[_0xfc600c(0x196)][_0xfc600c(0x19c)]})),'errors':_0x177ee9['report'][_0xfc600c(0x19c)],'commandCount':_0x177ee9['normalizedManifest']?.[_0xfc600c(0x1bc)]['length']??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x59f6eb){const _0xa5a593=a63_0x5f54f9,_0x1befb6=importServiceManifest(_0x59f6eb[_0xa5a593(0x1cf)]('file'));if(_0x1befb6[_0xa5a593(0x1a8)][_0xa5a593(0x19d)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1befb6[_0xa5a593(0x1c7)],'imported':_0x1befb6[_0xa5a593(0x1cd)],'updated':_0x1befb6['updated'],'serviceCount':_0x1befb6[_0xa5a593(0x1c5)],'services':_0x1befb6[_0xa5a593(0x1a8)][_0xa5a593(0x1d9)](summarizeService)},'message':_0xa5a593(0x1c2)+_0x1befb6[_0xa5a593(0x1cd)]+_0xa5a593(0x1af)+_0x1befb6['updated']+_0xa5a593(0x1bd)};return{'ok':!![],'data':{'registryPath':_0x1befb6[_0xa5a593(0x1c7)],'replaced':_0x1befb6[_0xa5a593(0x1a7)],'imported':_0x1befb6[_0xa5a593(0x1cd)],'updated':_0x1befb6[_0xa5a593(0x1c0)],'serviceCount':_0x1befb6[_0xa5a593(0x1c5)],'service':summarizeService(_0x1befb6[_0xa5a593(0x1da)])},'message':(_0x1befb6[_0xa5a593(0x1a7)]?_0xa5a593(0x1c1):_0xa5a593(0x1ca))+'\x20service\x20'+_0x1befb6[_0xa5a593(0x1da)][_0xa5a593(0x1c8)]+'.'};}},{'service':a63_0x5f54f9(0x19f),'command':a63_0x5f54f9(0x1ce),'description':a63_0x5f54f9(0x1d0),'risk':'write','confirmationDescription':a63_0x5f54f9(0x1ab),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x328775){const _0x12b342=a63_0x5f54f9,_0x25f805=getLocalServiceEntry(_0x328775['str'](_0x12b342(0x19f)));return{'method':_0x12b342(0x1be),'url':_0x328775['str'](_0x12b342(0x19b)),'body':{'service':_0x328775[_0x12b342(0x1cf)]('service'),'found':Boolean(_0x25f805),'version':_0x25f805?.['version'],'source':_0x25f805?.[_0x12b342(0x198)]},'description':_0x12b342(0x1ad)};},async 'execute'(_0x4ac3fd){const _0x10437c=a63_0x5f54f9,_0x4e2530=exportServiceManifest(_0x4ac3fd[_0x10437c(0x1cf)](_0x10437c(0x19f)),_0x4ac3fd[_0x10437c(0x1cf)](_0x10437c(0x19b)));return{'ok':!![],'data':{'registryPath':_0x4e2530[_0x10437c(0x1c7)],'file':_0x4e2530[_0x10437c(0x1d8)],'service':summarizeService(_0x4e2530[_0x10437c(0x1da)])},'message':'Exported\x20service\x20'+_0x4e2530[_0x10437c(0x1da)][_0x10437c(0x1c8)]+'.'};}},{'service':'service','command':'list','description':a63_0x5f54f9(0x1b4),'risk':a63_0x5f54f9(0x1b5),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x198a32=a63_0x5f54f9,_0x1b2a41=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1b2a41[_0x198a32(0x19d)],'services':_0x1b2a41['map'](summarizeService)}};}},{'service':a63_0x5f54f9(0x19f),'command':a63_0x5f54f9(0x1d6),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a63_0x5f54f9(0x194),'confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x479561){const _0x2a1ce4=a63_0x5f54f9,_0x503645=getLocalServiceEntry(_0x479561[_0x2a1ce4(0x1cf)](_0x2a1ce4(0x19f)));return{'method':_0x2a1ce4(0x1be),'url':getServiceRegistryPath(),'body':{'service':_0x479561['str'](_0x2a1ce4(0x19f)),'found':Boolean(_0x503645),'version':_0x503645?.['version'],'source':_0x503645?.[_0x2a1ce4(0x198)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x249180){const _0xf8a7ab=a63_0x5f54f9,_0x1a36bf=removeServiceManifest(_0x249180[_0xf8a7ab(0x1cf)](_0xf8a7ab(0x19f)));return{'ok':!![],'data':{'registryPath':_0x1a36bf[_0xf8a7ab(0x1c7)],'serviceCount':_0x1a36bf[_0xf8a7ab(0x1c5)],'service':summarizeService(_0x1a36bf[_0xf8a7ab(0x1da)])},'message':_0xf8a7ab(0x1ac)+_0x1a36bf['entry'][_0xf8a7ab(0x1c8)]+'.'};}},{'service':a63_0x5f54f9(0x19f),'command':a63_0x5f54f9(0x1a4),'description':a63_0x5f54f9(0x1ba),'risk':a63_0x5f54f9(0x1b5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xeefa2a){const _0x1bcd2c=a63_0x5f54f9,_0x2a8889=getLocalServiceEntry(_0xeefa2a['str'](_0x1bcd2c(0x19f)));if(!_0x2a8889)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xeefa2a['str'](_0x1bcd2c(0x19f))},'message':_0x1bcd2c(0x1c3)+_0xeefa2a['str'](_0x1bcd2c(0x19f))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x2a8889),'manifest':_0x2a8889[_0x1bcd2c(0x1b7)],'normalizedManifest':toPublicNormalizedServiceTree(_0x2a8889[_0x1bcd2c(0x199)])}};}}];function a63_0x4300(){const _0x38ecbf=['7191074WRXOsn','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','description','commands','\x20service(s).','WRITE','10326GuMNua','updated','Updated','Imported\x20','Local\x20service\x20not\x20found:\x20','warnings','serviceCount','14287BDgFnP','registryPath','serviceCode','validate','Imported','kind','reduce','imported','export','str','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','import','string','cliPath','15670680BgUvGv','Service\x20registry\x20validation\x20passed.','remove','version','filePath','map','entry','1023980RZniho','hash','626IBJKGC','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','write','importedAt','report','426KhaASx','source','normalizedManifest','registryIndex','file','errors','length','Local\x20service\x20code,\x20for\x20example\x20crm','service','lower\x20kebab-case\x20service\x20code','Service\x20manifest\x20validation\x20passed.','registry','target','detail','name','manifests','replaced','entries','Service\x20Tree\x20manifest\x20file\x20path','4196872JPawsF','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.','Removed\x20service\x20','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','cliName','\x20service(s),\x20updated\x20','12Hommsi','9zmwflj','5TBKNKG','risk','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','read','2802104Qbagjy','manifest','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.'];a63_0x4300=function(){return _0x38ecbf;};return a63_0x4300();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x4b0ef9=a63_0x28dd;(function(_0x1d5bd1,_0x136924){const _0x3de752=a63_0x28dd,_0x47c959=_0x1d5bd1();while(!![]){try{const _0x6032a8=-parseInt(_0x3de752(0x1ff))/0x1+-parseInt(_0x3de752(0x1f7))/0x2+-parseInt(_0x3de752(0x1e8))/0x3*(-parseInt(_0x3de752(0x1de))/0x4)+parseInt(_0x3de752(0x208))/0x5+parseInt(_0x3de752(0x1df))/0x6*(-parseInt(_0x3de752(0x213))/0x7)+-parseInt(_0x3de752(0x1e5))/0x8*(-parseInt(_0x3de752(0x21c))/0x9)+-parseInt(_0x3de752(0x224))/0xa;if(_0x6032a8===_0x136924)break;else _0x47c959['push'](_0x47c959['shift']());}catch(_0x4b501f){_0x47c959['push'](_0x47c959['shift']());}}}(a63_0x3f07,0x51dfb));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a63_0x28dd(_0x1675e1,_0x2a039e){_0x1675e1=_0x1675e1-0x1d5;const _0x3f0790=a63_0x3f07();let _0x28dd7e=_0x3f0790[_0x1675e1];return _0x28dd7e;}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';function a63_0x3f07(){const _0x58ddc7=['normalizedManifest','commands','command','isArray','report','104293WbTlYH','invalid','reduce','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','.tmp','service.json','join','cliPath','utf8','2464940PnszYY','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','].manifest','manifests','Local\x20service\x20not\x20found:\x20','sha256','Service\x20manifest\x20validation\x20failed:\x0a','length','parse','Invalid\x20service\x20manifest\x20JSON:\x20','warnings','77cVAbYv','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','services\x20must\x20be\x20an\x20array','now','version','stringify','object','push','risk','6255pECVgj','Invalid\x20service\x20registry\x20JSON:\x20','slice','path','Unsupported\x20service\x20registry\x20schemaVersion:\x20','findIndex','flatMap','startsWith','5494140tsgxHd','validation','message','name','description','Unsupported\x20schemaVersion:\x20','find','registry','errors','splice','Cannot\x20write\x20service\x20registry:\x20','serviceCode','updatedAt','sort','target','4FSibxA','241446ZYmelR','service','code','registryIndex','toISOString','$.services[','5072cTqFYI','commandCount','].manifest.','1762728kDzKNo','sourceHash','schemaVersion','importedAt','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifest','empty','map','kind','file','missing','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','services','CliError','localeCompare','178962cxjHdJ','Service\x20manifest\x20file\x20not\x20found:\x20','trim'];a63_0x3f07=function(){return _0x58ddc7;};return a63_0x3f07();}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x4b0ef9(0x204);export function getServiceRegistryPath(_0x1e8a1c={}){return resolve(_0x1e8a1c['homeDir']??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x117ac7={}){const _0x2d34e6=a63_0x4b0ef9,_0x1e50c7=getServiceRegistryPath(_0x117ac7);if(!existsSync(_0x1e50c7))return emptyServiceRegistry();try{const _0x2d1f06=readFileSync(_0x1e50c7,_0x2d34e6(0x207));if(!_0x2d1f06['trim']())return emptyServiceRegistry();const _0x42acaf=JSON[_0x2d34e6(0x210)](_0x2d1f06);if(_0x42acaf['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2d34e6(0x225)](_0x2d34e6(0x220)+String(_0x42acaf[_0x2d34e6(0x1ea)]),'Remove\x20or\x20migrate\x20'+_0x1e50c7+'.');if(!Array[_0x2d34e6(0x1fd)](_0x42acaf[_0x2d34e6(0x1f4)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x42acaf[_0x2d34e6(0x1db)],'services':_0x42acaf[_0x2d34e6(0x1f4)]};}catch(_0x311b27){if(_0x311b27 instanceof Error&&_0x311b27['name']===_0x2d34e6(0x1f5))throw _0x311b27;throw CliErrors['validation'](_0x2d34e6(0x21d)+_0x1e50c7,_0x2d34e6(0x209));}}export function writeServiceRegistry(_0x474be4,_0x41e01c={}){const _0x22ae92=a63_0x4b0ef9,_0x4aeb84=getServiceRegistryPath(_0x41e01c),_0x190502=dirname(_0x4aeb84);!existsSync(_0x190502)&&mkdirSync(_0x190502,{'recursive':!![]});const _0x462be5=_0x4aeb84+_0x22ae92(0x203);try{writeFileSync(_0x462be5,JSON[_0x22ae92(0x218)](_0x474be4,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x462be5,_0x4aeb84);}catch(_0x3d0612){try{unlinkSync(_0x462be5);}catch{}if(_0x3d0612?.[_0x22ae92(0x1e1)]==='ENOENT')throw CliErrors['validation'](_0x22ae92(0x1d9)+_0x4aeb84);throw _0x3d0612;}return _0x4aeb84;}export function loadServiceManifestFromFile(_0x257012){const _0xca1aac=a63_0x4b0ef9,_0x5023ec=resolve(_0x257012);if(!existsSync(_0x5023ec))throw CliErrors['validation'](_0xca1aac(0x1f8)+_0x257012);let _0x367cfd;const _0x6d498a=readFileSync(_0x5023ec,'utf8');try{_0x367cfd=JSON[_0xca1aac(0x210)](_0x6d498a);}catch{throw CliErrors[_0xca1aac(0x225)](_0xca1aac(0x211)+_0x257012,_0xca1aac(0x1f3));}const _0xb195=sha256(_0x6d498a),_0x322751=extractLoadedServiceManifests(_0x367cfd,_0xb195),_0x830c5d=aggregateValidationReports(_0x322751),_0x3de326=_0x322751[0x0];return{'filePath':_0x5023ec,'hash':_0xb195,'kind':isServiceRegistryLike(_0x367cfd)?_0xca1aac(0x1d6):_0xca1aac(0x1ed),'manifest':_0x3de326?.[_0xca1aac(0x1ed)]??_0x367cfd,'report':_0x830c5d,'normalizedManifest':_0x322751[_0xca1aac(0x20f)]===0x1?_0x3de326?.[_0xca1aac(0x1fa)]:undefined,'manifests':_0x322751};}export function importServiceManifest(_0x491db4,_0x205254={}){const _0x5581f4=a63_0x4b0ef9,_0x1ed751=loadServiceManifestFromFile(_0x491db4);if(!_0x1ed751[_0x5581f4(0x1fe)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x1ed751[_0x5581f4(0x1fe)]),_0x5581f4(0x202));if(_0x1ed751[_0x5581f4(0x20b)][_0x5581f4(0x20f)]===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5581f4(0x1ec));const _0x2611ba=readServiceRegistry(_0x205254),_0x17fa62=(_0x205254[_0x5581f4(0x216)]??(()=>new Date()))()[_0x5581f4(0x1e3)](),_0x4166b2=[];let _0x370f8f=0x0,_0x25d760=0x0;for(const _0x5c2618 of _0x1ed751[_0x5581f4(0x20b)]){if(!_0x5c2618[_0x5581f4(0x1fa)])continue;const _0x1b023b=_0x5c2618[_0x5581f4(0x1fa)][_0x5581f4(0x1e0)][_0x5581f4(0x1e1)],_0x2c9309={'serviceCode':_0x1b023b,'version':_0x5c2618[_0x5581f4(0x1fa)]['version'],'importedAt':_0x17fa62,'source':{'type':_0x5581f4(0x1f1),'path':_0x1ed751['filePath'],'hash':_0x5c2618[_0x5581f4(0x1e9)]},'manifest':_0x5c2618['manifest'],'normalizedManifest':_0x5c2618[_0x5581f4(0x1fa)]},_0x38f48d=_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x221)](_0x320877=>_0x320877[_0x5581f4(0x1da)]===_0x1b023b);_0x38f48d>=0x0?(_0x2611ba[_0x5581f4(0x1f4)][_0x38f48d]=_0x2c9309,_0x25d760++):(_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x21a)](_0x2c9309),_0x370f8f++),_0x4166b2['push'](_0x2c9309);}_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x1dc)]((_0x27cd62,_0x38705d)=>_0x27cd62['serviceCode'][_0x5581f4(0x1f6)](_0x38705d[_0x5581f4(0x1da)])),_0x2611ba[_0x5581f4(0x1db)]=_0x17fa62;const _0x1ea517=writeServiceRegistry(_0x2611ba,_0x205254);return{'registryPath':_0x1ea517,'entry':_0x4166b2[0x0],'replaced':_0x4166b2[_0x5581f4(0x20f)]===0x1?_0x25d760===0x1:_0x25d760>0x0,'entries':_0x4166b2,'imported':_0x370f8f,'updated':_0x25d760,'serviceCount':_0x2611ba['services'][_0x5581f4(0x20f)]};}export function exportServiceManifest(_0x5db004,_0xf79577,_0x467e07={}){const _0x2dab8a=a63_0x4b0ef9,_0x5de3d3=getServiceRegistryPath(_0x467e07),_0x543ff5=getLocalServiceEntry(_0x5db004,_0x467e07);if(!_0x543ff5)throw CliErrors[_0x2dab8a(0x225)](_0x2dab8a(0x20c)+_0x5db004,_0x2dab8a(0x214));const _0x53dd1c=resolve(_0xf79577),_0x385a6d=dirname(_0x53dd1c);return!existsSync(_0x385a6d)&&mkdirSync(_0x385a6d,{'recursive':!![]}),writeFileSync(_0x53dd1c,JSON['stringify'](_0x543ff5[_0x2dab8a(0x1ed)],null,0x2)+'\x0a',{'encoding':_0x2dab8a(0x207),'mode':0x180}),{'registryPath':_0x5de3d3,'filePath':_0x53dd1c,'entry':_0x543ff5};}export function removeServiceManifest(_0x38b3de,_0xb02f2={}){const _0x2f7194=a63_0x4b0ef9,_0x1318ce=readServiceRegistry(_0xb02f2),_0x3fa0f5=_0x38b3de[_0x2f7194(0x1f9)](),_0x3b69f9=_0x1318ce['services'][_0x2f7194(0x221)](_0x4a49f2=>_0x4a49f2[_0x2f7194(0x1da)]===_0x3fa0f5);if(_0x3b69f9<0x0)throw CliErrors[_0x2f7194(0x225)](_0x2f7194(0x20c)+_0x3fa0f5,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x229246]=_0x1318ce[_0x2f7194(0x1f4)][_0x2f7194(0x1d8)](_0x3b69f9,0x1),_0x5d4208=(_0xb02f2[_0x2f7194(0x216)]??(()=>new Date()))()[_0x2f7194(0x1e3)]();_0x1318ce['updatedAt']=_0x5d4208;const _0x3f365d=writeServiceRegistry(_0x1318ce,_0xb02f2);return{'registryPath':_0x3f365d,'entry':_0x229246,'serviceCount':_0x1318ce[_0x2f7194(0x1f4)][_0x2f7194(0x20f)]};}export function listLocalServices(_0x3f8e47={}){const _0x5c1456=a63_0x4b0ef9;return readServiceRegistry(_0x3f8e47)[_0x5c1456(0x1f4)];}export function getLocalServiceEntry(_0x5bfe1e,_0x5bc4d7={}){const _0x115061=a63_0x4b0ef9;return readServiceRegistry(_0x5bc4d7)['services'][_0x115061(0x1d5)](_0x4f75c1=>_0x4f75c1[_0x115061(0x1da)]===_0x5bfe1e[_0x115061(0x1f9)]());}export function listLocalServiceTrees(_0x52796d={}){const _0x3a0483=a63_0x4b0ef9;return readServiceRegistry(_0x52796d)[_0x3a0483(0x1f4)][_0x3a0483(0x1ef)](_0x35ba06=>_0x35ba06['normalizedManifest']);}export function inspectServiceRegistry(_0x5f0d8a={}){const _0xd9dade=a63_0x4b0ef9,_0x21eff9=getServiceRegistryPath(_0x5f0d8a);if(!existsSync(_0x21eff9))return emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x1f2),![]);try{const _0x206f59=readFileSync(_0x21eff9,_0xd9dade(0x207));if(!_0x206f59[_0xd9dade(0x1f9)]())return emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x1ee),!![]);const _0x5b9f7f=JSON[_0xd9dade(0x210)](_0x206f59);if(_0x5b9f7f[_0xd9dade(0x1ea)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'schemaVersion':_0x5b9f7f[_0xd9dade(0x1ea)],'message':_0xd9dade(0x229)+String(_0x5b9f7f[_0xd9dade(0x1ea)])};if(!Array['isArray'](_0x5b9f7f[_0xd9dade(0x1f4)]))return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5b9f7f[_0xd9dade(0x1db)],'message':_0xd9dade(0x215)};const _0x4dd4ae=_0x5b9f7f['services'][_0xd9dade(0x1ef)](summarizeLocalServiceEntry);return{'registryPath':_0x21eff9,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5b9f7f[_0xd9dade(0x1db)],'serviceCount':_0x4dd4ae[_0xd9dade(0x20f)],'commandCount':_0x4dd4ae[_0xd9dade(0x201)]((_0x3494b0,_0x551324)=>_0x3494b0+_0x551324[_0xd9dade(0x1e6)],0x0),'services':_0x4dd4ae};}catch(_0xa2b056){return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'message':_0xa2b056 instanceof Error?_0xa2b056[_0xd9dade(0x226)]:String(_0xa2b056)};}}export function formatValidationFailure(_0x38c341){const _0x1eb1fa=a63_0x4b0ef9,_0x55974f=_0x38c341[_0x1eb1fa(0x1d7)][_0x1eb1fa(0x1ef)](_0x29a3e6=>_0x29a3e6[_0x1eb1fa(0x21f)]+':\x20'+_0x29a3e6[_0x1eb1fa(0x226)]);return _0x1eb1fa(0x20e)+_0x55974f[_0x1eb1fa(0x205)]('\x0a');}function extractLoadedServiceManifests(_0x4c2b0e,_0xac0df6){const _0x303b0a=a63_0x4b0ef9;if(!isServiceRegistryLike(_0x4c2b0e)){const _0x595dfd=_0x4c2b0e,{manifest:_0x11a4c5,errors:_0x18fd76}=adaptServiceTreeManifestForLegacyFramework(_0x595dfd),_0xaedc71=validateServiceTreeManifest(_0x11a4c5),_0x3d1e37=mergeValidationErrors(_0xaedc71,_0x18fd76);return[{'manifest':_0x595dfd,'report':_0x3d1e37,'normalizedManifest':_0x3d1e37['ok']?normalizeServiceTreeManifest(_0x11a4c5):undefined,'sourceHash':_0xac0df6}];}return _0x4c2b0e[_0x303b0a(0x1f4)][_0x303b0a(0x1ef)]((_0x43f50e,_0x1ba94b)=>{const _0x3b496e=_0x303b0a,_0x4a0d72=isObjectRecord(_0x43f50e)?_0x43f50e[_0x3b496e(0x1ed)]:undefined,{manifest:_0x505d9d,errors:_0x5e40be}=adaptServiceTreeManifestForLegacyFramework(_0x4a0d72),_0x32cf7f=validateServiceTreeManifest(_0x505d9d),_0x4e8d9a=mergeValidationErrors(_0x32cf7f,_0x5e40be),_0x550ff3=isObjectRecord(_0x43f50e)&&typeof _0x43f50e[_0x3b496e(0x1da)]==='string'?_0x43f50e[_0x3b496e(0x1da)]:undefined;return{'manifest':_0x4a0d72,'report':_0x4e8d9a,'normalizedManifest':_0x4e8d9a['ok']?normalizeServiceTreeManifest(_0x505d9d):undefined,'sourceHash':sha256(JSON[_0x3b496e(0x218)](_0x4a0d72,null,0x2)+'\x0a'),'registryIndex':_0x1ba94b,'registryServiceCode':_0x550ff3};});}function mergeValidationErrors(_0x10845e,_0x44be1b){const _0x140807=a63_0x4b0ef9,_0x3da25d=_0x10845e['errors'][_0x140807(0x1ef)](_0x5d0c45=>_0x5d0c45[_0x140807(0x226)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x5d0c45,'message':'bff\x20target\x20requires\x20functionName.'}:_0x5d0c45),_0x473b74=[..._0x44be1b,..._0x3da25d];return{'ok':_0x473b74[_0x140807(0x20f)]===0x0,'errors':_0x473b74,'warnings':_0x10845e[_0x140807(0x212)]};}function aggregateValidationReports(_0xfa66a3){const _0x41152f=a63_0x4b0ef9,_0x244f4e=_0xfa66a3[_0x41152f(0x222)](_0xbb4500=>_0xbb4500['registryIndex']===undefined?_0xbb4500[_0x41152f(0x1fe)][_0x41152f(0x1d7)]:_0xbb4500[_0x41152f(0x1fe)][_0x41152f(0x1d7)]['map'](_0x56d0d0=>({..._0x56d0d0,'path':prefixRegistryIssuePath(_0xbb4500[_0x41152f(0x1e2)],_0x56d0d0[_0x41152f(0x21f)])}))),_0x3860cd=_0xfa66a3[_0x41152f(0x222)](_0x855c25=>_0x855c25[_0x41152f(0x1e2)]===undefined?_0x855c25[_0x41152f(0x1fe)]['warnings']:_0x855c25[_0x41152f(0x1fe)][_0x41152f(0x212)]['map'](_0x571661=>({..._0x571661,'path':prefixRegistryIssuePath(_0x855c25[_0x41152f(0x1e2)],_0x571661[_0x41152f(0x21f)])})));return{'ok':_0x244f4e[_0x41152f(0x20f)]===0x0,'errors':_0x244f4e,'warnings':_0x3860cd};}function prefixRegistryIssuePath(_0x977f09,_0x1ab41a){const _0x181286=a63_0x4b0ef9;if(_0x1ab41a==='$')return'$.services['+_0x977f09+_0x181286(0x20a);if(_0x1ab41a[_0x181286(0x223)]('$.'))return _0x181286(0x1e4)+_0x977f09+'].manifest'+_0x1ab41a[_0x181286(0x21e)](0x1);if(_0x1ab41a[_0x181286(0x223)]('$['))return _0x181286(0x1e4)+_0x977f09+_0x181286(0x20a)+_0x1ab41a[_0x181286(0x21e)](0x1);return _0x181286(0x1e4)+_0x977f09+_0x181286(0x1e7)+_0x1ab41a;}function isServiceRegistryLike(_0x406659){const _0x5e75e5=a63_0x4b0ef9;return isObjectRecord(_0x406659)&&_0x406659[_0x5e75e5(0x1ea)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5e75e5(0x1fd)](_0x406659[_0x5e75e5(0x1f4)]);}function isObjectRecord(_0x22af71){const _0x4ee277=a63_0x4b0ef9;return Boolean(_0x22af71)&&typeof _0x22af71===_0x4ee277(0x219)&&!Array['isArray'](_0x22af71);}function emptyServiceRegistryInspection(_0x6f6971,_0xb3387c,_0x2ff586){return{'registryPath':_0x6f6971,'exists':_0x2ff586,'status':_0xb3387c,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0xabeb4b){const _0xb6f245=a63_0x4b0ef9,_0x5d5637=_0xabeb4b['normalizedManifest'],_0x7d52a4=_0x5d5637[_0xb6f245(0x1fb)][_0xb6f245(0x1ef)](_0x69ae64=>({'path':_0x69ae64[_0xb6f245(0x206)],'description':_0x69ae64['description'],'risk':_0x69ae64[_0xb6f245(0x21b)],'targetKind':_0x69ae64['target'][_0xb6f245(0x1f0)],'targetCommand':_0x69ae64[_0xb6f245(0x1dd)][_0xb6f245(0x1fc)]}));return{'serviceCode':_0xabeb4b[_0xb6f245(0x1da)],'name':_0x5d5637[_0xb6f245(0x1e0)][_0xb6f245(0x227)],'description':_0x5d5637[_0xb6f245(0x1e0)][_0xb6f245(0x228)],'version':_0xabeb4b[_0xb6f245(0x217)],'importedAt':_0xabeb4b[_0xb6f245(0x1eb)],'source':_0xabeb4b['source'],'commandCount':_0x7d52a4[_0xb6f245(0x20f)],'commands':_0x7d52a4};}function sha256(_0x3d2b48){const _0x36831f=a63_0x4b0ef9;return createHash(_0x36831f(0x20d))['update'](_0x3d2b48)['digest']('hex');}
|
|
1
|
+
const a64_0x2674c4=a64_0x10a0;(function(_0x5b2075,_0x4981c3){const _0x3ebde7=a64_0x10a0,_0x28e637=_0x5b2075();while(!![]){try{const _0x50e818=-parseInt(_0x3ebde7(0x16b))/0x1*(parseInt(_0x3ebde7(0x160))/0x2)+-parseInt(_0x3ebde7(0x175))/0x3*(parseInt(_0x3ebde7(0x194))/0x4)+-parseInt(_0x3ebde7(0x19b))/0x5*(parseInt(_0x3ebde7(0x1a0))/0x6)+-parseInt(_0x3ebde7(0x162))/0x7*(-parseInt(_0x3ebde7(0x189))/0x8)+-parseInt(_0x3ebde7(0x15a))/0x9+-parseInt(_0x3ebde7(0x176))/0xa*(-parseInt(_0x3ebde7(0x154))/0xb)+parseInt(_0x3ebde7(0x197))/0xc*(parseInt(_0x3ebde7(0x19a))/0xd);if(_0x50e818===_0x4981c3)break;else _0x28e637['push'](_0x28e637['shift']());}catch(_0x1de0d8){_0x28e637['push'](_0x28e637['shift']());}}}(a64_0x347b,0x2b989));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';function a64_0x10a0(_0x19b339,_0x30c7b4){_0x19b339=_0x19b339-0x14e;const _0x347bc8=a64_0x347b();let _0x10a0b4=_0x347bc8[_0x19b339];return _0x10a0b4;}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a64_0x2674c4(0x19c);export function getServiceRegistryPath(_0x418320={}){const _0xd45f54=a64_0x2674c4;return resolve(_0x418320[_0xd45f54(0x184)]??homedir(),PRODUCT_CONFIG[_0xd45f54(0x172)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x521984={}){const _0x824489=a64_0x2674c4,_0x49724a=getServiceRegistryPath(_0x521984);if(!existsSync(_0x49724a))return emptyServiceRegistry();try{const _0x46f2c9=readFileSync(_0x49724a,'utf8');if(!_0x46f2c9['trim']())return emptyServiceRegistry();const _0xf6c5be=JSON['parse'](_0x46f2c9);if(_0xf6c5be['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x824489(0x18a)+String(_0xf6c5be[_0x824489(0x19f)]),_0x824489(0x166)+_0x49724a+'.');if(!Array[_0x824489(0x15c)](_0xf6c5be[_0x824489(0x180)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xf6c5be[_0x824489(0x1a5)],'services':_0xf6c5be[_0x824489(0x180)]};}catch(_0x25f3a1){if(_0x25f3a1 instanceof Error&&_0x25f3a1[_0x824489(0x173)]===_0x824489(0x17c))throw _0x25f3a1;throw CliErrors['validation']('Invalid\x20service\x20registry\x20JSON:\x20'+_0x49724a,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x130d70,_0x4753da={}){const _0x2a2275=a64_0x2674c4,_0xe60cad=getServiceRegistryPath(_0x4753da),_0x31b8e2=dirname(_0xe60cad);!existsSync(_0x31b8e2)&&mkdirSync(_0x31b8e2,{'recursive':!![]});const _0x259a59=_0xe60cad+_0x2a2275(0x15b);try{writeFileSync(_0x259a59,JSON[_0x2a2275(0x179)](_0x130d70,null,0x2)+'\x0a',{'encoding':_0x2a2275(0x188),'mode':0x180}),renameSync(_0x259a59,_0xe60cad);}catch(_0x1b2753){try{unlinkSync(_0x259a59);}catch{}if(_0x1b2753?.['code']===_0x2a2275(0x16c))throw CliErrors[_0x2a2275(0x17b)](_0x2a2275(0x177)+_0xe60cad);throw _0x1b2753;}return _0xe60cad;}export function loadServiceManifestFromFile(_0x5edbb9){const _0x56a392=a64_0x2674c4,_0x12ca48=resolve(_0x5edbb9);if(!existsSync(_0x12ca48))throw CliErrors[_0x56a392(0x17b)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x5edbb9);let _0x521c11;const _0x398698=readFileSync(_0x12ca48,'utf8');try{_0x521c11=JSON[_0x56a392(0x198)](_0x398698);}catch{throw CliErrors[_0x56a392(0x17b)](_0x56a392(0x14e)+_0x5edbb9,_0x56a392(0x16e));}const _0x579766=sha256(_0x398698),_0x135ce2=extractLoadedServiceManifests(_0x521c11,_0x579766),_0x5e2473=aggregateValidationReports(_0x135ce2),_0x5f284a=_0x135ce2[0x0];return{'filePath':_0x12ca48,'hash':_0x579766,'kind':isServiceRegistryLike(_0x521c11)?_0x56a392(0x164):_0x56a392(0x161),'manifest':_0x5f284a?.[_0x56a392(0x161)]??_0x521c11,'report':_0x5e2473,'normalizedManifest':_0x135ce2['length']===0x1?_0x5f284a?.[_0x56a392(0x151)]:undefined,'manifests':_0x135ce2};}export function importServiceManifest(_0x14c2a6,_0x29fcb5={}){const _0x209c92=a64_0x2674c4,_0x1a7c0f=loadServiceManifestFromFile(_0x14c2a6);if(!_0x1a7c0f[_0x209c92(0x1a1)]['ok'])throw CliErrors[_0x209c92(0x17b)](formatValidationFailure(_0x1a7c0f[_0x209c92(0x1a1)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x1a7c0f['manifests']['length']===0x0)throw CliErrors[_0x209c92(0x17b)](_0x209c92(0x150),_0x209c92(0x19e));const _0x44845c=readServiceRegistry(_0x29fcb5),_0x1afd8b=(_0x29fcb5[_0x209c92(0x153)]??(()=>new Date()))()[_0x209c92(0x186)](),_0x55bccf=[];let _0x198c28=0x0,_0xc50973=0x0;for(const _0xbee601 of _0x1a7c0f[_0x209c92(0x15e)]){if(!_0xbee601[_0x209c92(0x151)])continue;const _0x4e49ba=_0xbee601['normalizedManifest']['service']['code'],_0x1a8514={'serviceCode':_0x4e49ba,'version':_0xbee601['normalizedManifest'][_0x209c92(0x19d)],'importedAt':_0x1afd8b,'source':{'type':'file','path':_0x1a7c0f['filePath'],'hash':_0xbee601[_0x209c92(0x15d)]},'manifest':_0xbee601[_0x209c92(0x161)],'normalizedManifest':_0xbee601[_0x209c92(0x151)]},_0x2d581e=_0x44845c[_0x209c92(0x180)][_0x209c92(0x15f)](_0x79cf29=>_0x79cf29[_0x209c92(0x152)]===_0x4e49ba);_0x2d581e>=0x0?(_0x44845c['services'][_0x2d581e]=_0x1a8514,_0xc50973++):(_0x44845c[_0x209c92(0x180)][_0x209c92(0x156)](_0x1a8514),_0x198c28++),_0x55bccf[_0x209c92(0x156)](_0x1a8514);}_0x44845c[_0x209c92(0x180)][_0x209c92(0x178)]((_0xaf664d,_0x161593)=>_0xaf664d[_0x209c92(0x152)][_0x209c92(0x17e)](_0x161593[_0x209c92(0x152)])),_0x44845c[_0x209c92(0x1a5)]=_0x1afd8b;const _0x4cdfab=writeServiceRegistry(_0x44845c,_0x29fcb5);return{'registryPath':_0x4cdfab,'entry':_0x55bccf[0x0],'replaced':_0x55bccf[_0x209c92(0x181)]===0x1?_0xc50973===0x1:_0xc50973>0x0,'entries':_0x55bccf,'imported':_0x198c28,'updated':_0xc50973,'serviceCount':_0x44845c[_0x209c92(0x180)][_0x209c92(0x181)]};}export function exportServiceManifest(_0x22aeda,_0x9801f3,_0x34b068={}){const _0x21ae75=a64_0x2674c4,_0xf61b83=getServiceRegistryPath(_0x34b068),_0x357687=getLocalServiceEntry(_0x22aeda,_0x34b068);if(!_0x357687)throw CliErrors['validation'](_0x21ae75(0x17a)+_0x22aeda,_0x21ae75(0x157));const _0x24ac2e=resolve(_0x9801f3),_0x3d51be=dirname(_0x24ac2e);return!existsSync(_0x3d51be)&&mkdirSync(_0x3d51be,{'recursive':!![]}),writeFileSync(_0x24ac2e,JSON[_0x21ae75(0x179)](_0x357687[_0x21ae75(0x161)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0xf61b83,'filePath':_0x24ac2e,'entry':_0x357687};}export function removeServiceManifest(_0x5b69f6,_0x57c3ba={}){const _0xd31d1a=a64_0x2674c4,_0x21c9a0=readServiceRegistry(_0x57c3ba),_0x4977f1=_0x5b69f6[_0xd31d1a(0x159)](),_0x146d47=_0x21c9a0[_0xd31d1a(0x180)][_0xd31d1a(0x15f)](_0x392280=>_0x392280['serviceCode']===_0x4977f1);if(_0x146d47<0x0)throw CliErrors[_0xd31d1a(0x17b)](_0xd31d1a(0x17a)+_0x4977f1,_0xd31d1a(0x157));const [_0x46aaef]=_0x21c9a0[_0xd31d1a(0x180)][_0xd31d1a(0x17d)](_0x146d47,0x1),_0x1c7df9=(_0x57c3ba[_0xd31d1a(0x153)]??(()=>new Date()))()['toISOString']();_0x21c9a0[_0xd31d1a(0x1a5)]=_0x1c7df9;const _0x4c22df=writeServiceRegistry(_0x21c9a0,_0x57c3ba);return{'registryPath':_0x4c22df,'entry':_0x46aaef,'serviceCount':_0x21c9a0[_0xd31d1a(0x180)][_0xd31d1a(0x181)]};}export function listLocalServices(_0x105f7d={}){const _0x9f8039=a64_0x2674c4;return readServiceRegistry(_0x105f7d)[_0x9f8039(0x180)];}export function getLocalServiceEntry(_0xe51e4e,_0xeda0e8={}){const _0xecb2d8=a64_0x2674c4;return readServiceRegistry(_0xeda0e8)[_0xecb2d8(0x180)][_0xecb2d8(0x1a4)](_0x4ca93c=>_0x4ca93c[_0xecb2d8(0x152)]===_0xe51e4e['trim']());}export function listLocalServiceTrees(_0x3d9e6b={}){const _0x21f7d1=a64_0x2674c4;return readServiceRegistry(_0x3d9e6b)[_0x21f7d1(0x180)][_0x21f7d1(0x190)](_0x2e53b2=>_0x2e53b2[_0x21f7d1(0x151)]);}export function inspectServiceRegistry(_0x47da41={}){const _0x56aa86=a64_0x2674c4,_0x3afed9=getServiceRegistryPath(_0x47da41);if(!existsSync(_0x3afed9))return emptyServiceRegistryInspection(_0x3afed9,_0x56aa86(0x158),![]);try{const _0x27bd40=readFileSync(_0x3afed9,_0x56aa86(0x188));if(!_0x27bd40[_0x56aa86(0x159)]())return emptyServiceRegistryInspection(_0x3afed9,_0x56aa86(0x18e),!![]);const _0x3da24b=JSON[_0x56aa86(0x198)](_0x27bd40);if(_0x3da24b['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x3afed9,_0x56aa86(0x17f),!![]),'schemaVersion':_0x3da24b[_0x56aa86(0x19f)],'message':_0x56aa86(0x1a6)+String(_0x3da24b[_0x56aa86(0x19f)])};if(!Array[_0x56aa86(0x15c)](_0x3da24b[_0x56aa86(0x180)]))return{...emptyServiceRegistryInspection(_0x3afed9,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3da24b[_0x56aa86(0x1a5)],'message':'services\x20must\x20be\x20an\x20array'};const _0x56b957=_0x3da24b[_0x56aa86(0x180)][_0x56aa86(0x190)](summarizeLocalServiceEntry);return{'registryPath':_0x3afed9,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3da24b[_0x56aa86(0x1a5)],'serviceCount':_0x56b957[_0x56aa86(0x181)],'commandCount':_0x56b957[_0x56aa86(0x16d)]((_0x3c9db1,_0x31eddc)=>_0x3c9db1+_0x31eddc[_0x56aa86(0x167)],0x0),'services':_0x56b957};}catch(_0x1b1083){return{...emptyServiceRegistryInspection(_0x3afed9,_0x56aa86(0x17f),!![]),'message':_0x1b1083 instanceof Error?_0x1b1083[_0x56aa86(0x185)]:String(_0x1b1083)};}}function a64_0x347b(){const _0x2a21f4=['CliError','splice','localeCompare','invalid','services','length','path','risk','homeDir','message','toISOString','source','utf8','681040TGkrjQ','Unsupported\x20service\x20registry\x20schemaVersion:\x20','].manifest.','digest','slice','empty','].manifest','map','hex','registryIndex','bff\x20target\x20requires\x20functionName.','12oVvoID','description','cliPath','20232ULNRUl','parse','importedAt','3679DBPEKe','10555BDIhCj','service.json','version','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','schemaVersion','318BFWIlH','report','startsWith','target','find','updatedAt','Unsupported\x20schemaVersion:\x20','Invalid\x20service\x20manifest\x20JSON:\x20','commands','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','normalizedManifest','serviceCode','now','341FoPpRm','update','push','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','missing','trim','922437EeEpct','.tmp','isArray','sourceHash','manifests','findIndex','1622LknCgs','manifest','14XPcidV','command','registry','$.services[','Remove\x20or\x20migrate\x20','commandCount','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','flatMap','warnings','139psFXnE','ENOENT','reduce','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','service','object','sha256','homeDirName','name','errors','294771RAomPa','49370FXFhdP','Cannot\x20write\x20service\x20registry:\x20','sort','stringify','Local\x20service\x20not\x20found:\x20','validation'];a64_0x347b=function(){return _0x2a21f4;};return a64_0x347b();}export function formatValidationFailure(_0x4b8db8){const _0x3940c0=a64_0x2674c4,_0x21ecc7=_0x4b8db8['errors'][_0x3940c0(0x190)](_0x48d934=>_0x48d934[_0x3940c0(0x182)]+':\x20'+_0x48d934['message']);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x21ecc7['join']('\x0a');}function extractLoadedServiceManifests(_0x50c1a0,_0x317151){const _0x500609=a64_0x2674c4;if(!isServiceRegistryLike(_0x50c1a0)){const _0x4def98=_0x50c1a0,{manifest:_0x56b057,errors:_0x72a0f8}=adaptServiceTreeManifestForLegacyFramework(_0x4def98),_0x4a7172=validateServiceTreeManifest(_0x56b057),_0xc079df=mergeValidationErrors(_0x4a7172,_0x72a0f8);return[{'manifest':_0x4def98,'report':_0xc079df,'normalizedManifest':_0xc079df['ok']?normalizeServiceTreeManifest(_0x56b057):undefined,'sourceHash':_0x317151}];}return _0x50c1a0[_0x500609(0x180)][_0x500609(0x190)]((_0x44082d,_0x209ae8)=>{const _0x38fbd3=_0x500609,_0x57b0fc=isObjectRecord(_0x44082d)?_0x44082d[_0x38fbd3(0x161)]:undefined,{manifest:_0x51a526,errors:_0x4b361a}=adaptServiceTreeManifestForLegacyFramework(_0x57b0fc),_0x467d2d=validateServiceTreeManifest(_0x51a526),_0x346830=mergeValidationErrors(_0x467d2d,_0x4b361a),_0x488adf=isObjectRecord(_0x44082d)&&typeof _0x44082d[_0x38fbd3(0x152)]==='string'?_0x44082d['serviceCode']:undefined;return{'manifest':_0x57b0fc,'report':_0x346830,'normalizedManifest':_0x346830['ok']?normalizeServiceTreeManifest(_0x51a526):undefined,'sourceHash':sha256(JSON[_0x38fbd3(0x179)](_0x57b0fc,null,0x2)+'\x0a'),'registryIndex':_0x209ae8,'registryServiceCode':_0x488adf};});}function mergeValidationErrors(_0x206f9f,_0x4ed141){const _0x517e89=a64_0x2674c4,_0x4fe9ac=_0x206f9f[_0x517e89(0x174)][_0x517e89(0x190)](_0x11a77b=>_0x11a77b[_0x517e89(0x185)]===_0x517e89(0x168)?{..._0x11a77b,'message':_0x517e89(0x193)}:_0x11a77b),_0x1b3f39=[..._0x4ed141,..._0x4fe9ac];return{'ok':_0x1b3f39[_0x517e89(0x181)]===0x0,'errors':_0x1b3f39,'warnings':_0x206f9f['warnings']};}function aggregateValidationReports(_0x2a6f89){const _0x1469b2=a64_0x2674c4,_0x2a20b8=_0x2a6f89[_0x1469b2(0x169)](_0x4aaa92=>_0x4aaa92['registryIndex']===undefined?_0x4aaa92[_0x1469b2(0x1a1)]['errors']:_0x4aaa92[_0x1469b2(0x1a1)][_0x1469b2(0x174)][_0x1469b2(0x190)](_0x35a579=>({..._0x35a579,'path':prefixRegistryIssuePath(_0x4aaa92[_0x1469b2(0x192)],_0x35a579['path'])}))),_0x4dc312=_0x2a6f89[_0x1469b2(0x169)](_0x202db6=>_0x202db6[_0x1469b2(0x192)]===undefined?_0x202db6[_0x1469b2(0x1a1)][_0x1469b2(0x16a)]:_0x202db6[_0x1469b2(0x1a1)][_0x1469b2(0x16a)][_0x1469b2(0x190)](_0x2d24f7=>({..._0x2d24f7,'path':prefixRegistryIssuePath(_0x202db6[_0x1469b2(0x192)],_0x2d24f7['path'])})));return{'ok':_0x2a20b8[_0x1469b2(0x181)]===0x0,'errors':_0x2a20b8,'warnings':_0x4dc312};}function prefixRegistryIssuePath(_0x2b27f7,_0x54e322){const _0x5577db=a64_0x2674c4;if(_0x54e322==='$')return _0x5577db(0x165)+_0x2b27f7+_0x5577db(0x18f);if(_0x54e322[_0x5577db(0x1a2)]('$.'))return _0x5577db(0x165)+_0x2b27f7+_0x5577db(0x18f)+_0x54e322[_0x5577db(0x18d)](0x1);if(_0x54e322['startsWith']('$['))return _0x5577db(0x165)+_0x2b27f7+'].manifest'+_0x54e322[_0x5577db(0x18d)](0x1);return _0x5577db(0x165)+_0x2b27f7+_0x5577db(0x18b)+_0x54e322;}function isServiceRegistryLike(_0x4ccc8a){const _0x31fa94=a64_0x2674c4;return isObjectRecord(_0x4ccc8a)&&_0x4ccc8a[_0x31fa94(0x19f)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x31fa94(0x15c)](_0x4ccc8a[_0x31fa94(0x180)]);}function isObjectRecord(_0x4809f5){const _0x359286=a64_0x2674c4;return Boolean(_0x4809f5)&&typeof _0x4809f5===_0x359286(0x170)&&!Array['isArray'](_0x4809f5);}function emptyServiceRegistryInspection(_0x1df4f9,_0x2b4d94,_0x231771){return{'registryPath':_0x1df4f9,'exists':_0x231771,'status':_0x2b4d94,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5ed256){const _0x15da93=a64_0x2674c4,_0x727ddf=_0x5ed256[_0x15da93(0x151)],_0x1db35b=_0x727ddf[_0x15da93(0x14f)][_0x15da93(0x190)](_0x5e5dca=>({'path':_0x5e5dca[_0x15da93(0x196)],'description':_0x5e5dca[_0x15da93(0x195)],'risk':_0x5e5dca[_0x15da93(0x183)],'targetKind':_0x5e5dca[_0x15da93(0x1a3)]['kind'],'targetCommand':_0x5e5dca[_0x15da93(0x1a3)][_0x15da93(0x163)]}));return{'serviceCode':_0x5ed256[_0x15da93(0x152)],'name':_0x727ddf[_0x15da93(0x16f)][_0x15da93(0x173)],'description':_0x727ddf[_0x15da93(0x16f)]['description'],'version':_0x5ed256[_0x15da93(0x19d)],'importedAt':_0x5ed256[_0x15da93(0x199)],'source':_0x5ed256[_0x15da93(0x187)],'commandCount':_0x1db35b[_0x15da93(0x181)],'commands':_0x1db35b};}function sha256(_0x27a60f){const _0x277250=a64_0x2674c4;return createHash(_0x277250(0x171))[_0x277250(0x155)](_0x27a60f)[_0x277250(0x18c)](_0x277250(0x191));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a65_0x3d35(){const _0x37d9d0=['validation','str','258670fWkNhb','type','skillName','584648fgcUOO','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','1862882RwvcgI','42982PkZqrb','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','read','skill','target','trim','Refusing\x20to\x20overwrite\x20symlink:\x20','4KFamMb','12AtajLx','rendered','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Skill\x20directory\x20already\x20exists:\x20','bool','skillDir','124090GsQlFN','isSymbolicLink','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','map','name','path','force','Created\x20local\x20Skill\x20draft\x20','63yXJCKB','isDirectory','463647jncxJO','2348220jqWmeL','files'];a65_0x3d35=function(){return _0x37d9d0;};return a65_0x3d35();}const a65_0x568da9=a65_0x4f3e;(function(_0x422f75,_0x25e103){const _0x46438a=a65_0x4f3e,_0x42431e=_0x422f75();while(!![]){try{const _0x1dc765=-parseInt(_0x46438a(0x1e3))/0x1*(parseInt(_0x46438a(0x1eb))/0x2)+parseInt(_0x46438a(0x1d8))/0x3*(-parseInt(_0x46438a(0x1ea))/0x4)+-parseInt(_0x46438a(0x1dd))/0x5+parseInt(_0x46438a(0x1d9))/0x6+parseInt(_0x46438a(0x1e2))/0x7+-parseInt(_0x46438a(0x1e0))/0x8+parseInt(_0x46438a(0x1d6))/0x9*(parseInt(_0x46438a(0x1ce))/0xa);if(_0x1dc765===_0x25e103)break;else _0x42431e['push'](_0x42431e['shift']());}catch(_0x3a70f9){_0x42431e['push'](_0x42431e['shift']());}}}(a65_0x3d35,0x328ff));function a65_0x4f3e(_0x4b16bf,_0x5560b8){_0x4b16bf=_0x4b16bf-0x1cd;const _0x3d35be=a65_0x3d35();let _0x4f3e0b=_0x3d35be[_0x4b16bf];return _0x4f3e0b;}import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a65_0x568da9(0x1e6),'command':'create','description':a65_0x568da9(0x1e1),'risk':a65_0x568da9(0x1e5),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3a738d){const _0x4702f5=a65_0x568da9,_0x167aaf=buildSkillCreatePlan(_0x3a738d[_0x4702f5(0x1dc)](_0x4702f5(0x1d2)),_0x3a738d[_0x4702f5(0x1dc)]('type'),_0x3a738d[_0x4702f5(0x1dc)](_0x4702f5(0x1e7)));return{'method':'WRITE','url':_0x167aaf[_0x4702f5(0x1cd)],'body':{'skillName':_0x167aaf[_0x4702f5(0x1ec)][_0x4702f5(0x1df)],'type':_0x167aaf['rendered'][_0x4702f5(0x1de)],'selfContained':!![],'files':_0x167aaf[_0x4702f5(0x1ec)][_0x4702f5(0x1da)][_0x4702f5(0x1d1)](_0x3ee05c=>_0x3ee05c['path'])},'description':_0x4702f5(0x1d0)};},async 'execute'(_0x26e84f){const _0x21ac01=a65_0x568da9,_0x15dceb=buildSkillCreatePlan(_0x26e84f[_0x21ac01(0x1dc)](_0x21ac01(0x1d2)),_0x26e84f[_0x21ac01(0x1dc)]('type'),_0x26e84f['str']('target'));return writeSkillDraft(_0x15dceb,_0x26e84f[_0x21ac01(0x1ef)](_0x21ac01(0x1d4))),{'ok':!![],'data':{'skillName':_0x15dceb[_0x21ac01(0x1ec)][_0x21ac01(0x1df)],'type':_0x15dceb[_0x21ac01(0x1ec)][_0x21ac01(0x1de)],'dir':_0x15dceb[_0x21ac01(0x1cd)],'files':_0x15dceb[_0x21ac01(0x1ec)][_0x21ac01(0x1da)][_0x21ac01(0x1d1)](_0x121607=>_0x121607[_0x21ac01(0x1d3)])},'message':_0x21ac01(0x1d5)+_0x15dceb[_0x21ac01(0x1ec)][_0x21ac01(0x1df)]};}};function buildSkillCreatePlan(_0x2213a7,_0x2dcd11,_0x34432b){const _0x423758=a65_0x568da9,_0x50bb3d=_0x2dcd11[_0x423758(0x1e8)](),_0x56b8e7=renderSkillTemplate({'skillName':_0x2213a7,'type':_0x50bb3d});!_0x50bb3d&&writeCliSideChannelLine(_0x423758(0x1e4));const _0x40ce63=resolve(normalizeSkillTarget(_0x34432b));return{'rendered':_0x56b8e7,'targetRoot':_0x40ce63,'skillDir':resolve(_0x40ce63,_0x56b8e7[_0x423758(0x1df)])};}function normalizeSkillTarget(_0x5e30fe){const _0x10492b=a65_0x568da9;return(_0x5e30fe||DEFAULT_SKILL_TARGET)[_0x10492b(0x1e8)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x5da0e2,_0x2dca4f){const _0x43d695=a65_0x568da9;if(existsSync(_0x5da0e2[_0x43d695(0x1cd)])){const _0x34f88a=lstatSync(_0x5da0e2['skillDir']);if(!_0x34f88a[_0x43d695(0x1d7)]()||_0x34f88a[_0x43d695(0x1cf)]())throw CliErrors['validation']('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x5da0e2['skillDir']);if(!_0x2dca4f)throw CliErrors['validation'](_0x43d695(0x1ee)+_0x5da0e2['skillDir'],_0x43d695(0x1ed));}for(const _0x235ae6 of _0x5da0e2['rendered'][_0x43d695(0x1da)]){const _0x5ac6ca=resolve(_0x5da0e2['skillDir'],_0x235ae6[_0x43d695(0x1d3)]),_0x34530f=dirname(_0x5ac6ca);mkdirSync(_0x34530f,{'recursive':!![]});if(existsSync(_0x5ac6ca)&&lstatSync(_0x5ac6ca)[_0x43d695(0x1cf)]())throw CliErrors[_0x43d695(0x1db)](_0x43d695(0x1e9)+_0x5ac6ca);writeFileSync(_0x5ac6ca,_0x235ae6['content'],'utf8');}}
|