@lovrabet/lovrabet-cli 2.3.1 → 2.3.2-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -8
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/init.d.ts +1 -2
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.d.ts +0 -3
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.d.ts +2 -0
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/domain-config.d.ts +6 -14
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.d.ts +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.d.ts +0 -3
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +5 -10
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.d.ts +1 -5
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.d.ts +3 -7
- package/lib/generated/routing-contract.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -1
- package/skills/lovrabet/SKILL.md +4 -4
- package/skills/lovrabet/guides/role-and-permission-workflow.md +6 -4
- package/skills/lovrabet/references/lovrabet-config-commands.md +7 -11
- package/skills/lovrabet/references/lovrabet-config.md +2 -3
- package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-notification-config-list.md +2 -8
- package/skills/lovrabet.manifest.json +3 -3
- package/lib/utils/platform.d.ts +0 -17
- package/lib/utils/platform.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a54_0xc45eb2=a54_0x2f28;(function(_0x1856c2,_0x150c85){const _0x5cc5ba=a54_0x2f28,_0x53697c=_0x1856c2();while(!![]){try{const _0x48409a=parseInt(_0x5cc5ba(0x149))/0x1*(-parseInt(_0x5cc5ba(0x117))/0x2)+parseInt(_0x5cc5ba(0x13d))/0x3*(parseInt(_0x5cc5ba(0x109))/0x4)+-parseInt(_0x5cc5ba(0x155))/0x5*(parseInt(_0x5cc5ba(0x135))/0x6)+parseInt(_0x5cc5ba(0x112))/0x7+parseInt(_0x5cc5ba(0x12d))/0x8*(parseInt(_0x5cc5ba(0x14e))/0x9)+-parseInt(_0x5cc5ba(0x121))/0xa+parseInt(_0x5cc5ba(0x124))/0xb*(parseInt(_0x5cc5ba(0x10f))/0xc);if(_0x48409a===_0x150c85)break;else _0x53697c['push'](_0x53697c['shift']());}catch(_0x3973a3){_0x53697c['push'](_0x53697c['shift']());}}}(a54_0x1738,0x5ee83));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a54_0xc45eb2(0x115),a54_0xc45eb2(0x13b),a54_0xc45eb2(0x125),a54_0xc45eb2(0x12e)];function a54_0x1738(){const _0x2a5eb0=['1KIByMk','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','filter','length','user-add','95220BEsjRZ','\x22\x20is\x20ambiguous.','Runtime\x20role\x20name\x20\x22','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','roleType','Cannot\x20','5hmqZlp','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','trim','803008KRJyhA','number','join','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','items','Runtime\x20user\x20','288qmMiDA','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','userName','3390590zUvcwv','str','userId','ADMIN','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','1016614qtSdrl','Missing\x20runtime\x20role\x20reference.','runtime',',\x20found\x20','applyUserList','appCode','num','User\x20','expect-user-count','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','5823850BfPkZp','role','validation','422774HSYeNe','OWNER','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','push','Pass\x20one\x20role\x20ID:\x20','remark','Runtime\x20role\x20id\x20','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Pass\x20--role\x20<id|name>.','264akthkI','CUSTOM','\x20was\x20not\x20found\x20in\x20app\x20','string','includes','roleName','find','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','4067994VlDdqu','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','paging','code','flag','totalCount','USER','Runtime\x20role\x20','6FztSyA','userCount','\x20built-in\x20runtime\x20role\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','map','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','userList','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','permitCount','isSafeInteger','user','test'];a54_0x1738=function(){return _0x2a5eb0;};return a54_0x1738();}const BUILTIN_ROLE_TYPES=[a54_0xc45eb2(0x115),a54_0xc45eb2(0x13b),a54_0xc45eb2(0x125)];export const ROLE_ID_FLAG={'name':'id','type':a54_0xc45eb2(0x10a),'required':!![],'description':a54_0xc45eb2(0x110)};export const ROLE_REF_FLAG={'name':a54_0xc45eb2(0x122),'type':'string','required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const USER_ID_FLAG={'name':a54_0xc45eb2(0x147),'type':a54_0xc45eb2(0x130),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a54_0xc45eb2(0x11f),'type':a54_0xc45eb2(0x10a),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x55256a){return BUILTIN_ROLE_TYPES['includes'](_0x55256a);}export function assertCustomRuntimeRole(_0x3440cb,_0x5f4a64){const _0x58d7a7=a54_0xc45eb2;if(_0x3440cb[_0x58d7a7(0x153)]!==_0x58d7a7(0x12e))throw CliErrors[_0x58d7a7(0x123)](_0x58d7a7(0x154)+_0x5f4a64+_0x58d7a7(0x13f)+_0x3440cb[_0x58d7a7(0x132)]+'\x20('+_0x3440cb[_0x58d7a7(0x153)]+').',_0x58d7a7(0x14a));}export function projectRuntimeRole(_0x320041){const _0xcf7064=a54_0xc45eb2;return{'id':_0x320041['id'],'roleName':_0x320041[_0xcf7064(0x132)],'roleType':_0x320041[_0xcf7064(0x153)],'remark':_0x320041[_0xcf7064(0x129)],'userCount':_0x320041[_0xcf7064(0x13e)]??0x0,'permitCount':_0x320041[_0xcf7064(0x145)]??0x0,'builtin':isBuiltinRuntimeRole(_0x320041['roleType'])};}export async function getRuntimeRoleById(_0x2460ba,_0x48ccff){const _0x276b9f=a54_0xc45eb2;if(!Number[_0x276b9f(0x146)](_0x48ccff)||_0x48ccff<=0x0)throw CliErrors[_0x276b9f(0x123)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x3674b6=(await listAllRuntimeRoles(_0x2460ba))[_0x276b9f(0x14b)](_0x3c551a=>_0x3c551a['id']===_0x48ccff&&(!_0x3c551a[_0x276b9f(0x11c)]||_0x3c551a[_0x276b9f(0x11c)]===_0x2460ba));if(_0x3674b6[_0x276b9f(0x14c)]!==0x1)throw CliErrors[_0x276b9f(0x123)](_0x276b9f(0x12a)+_0x48ccff+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x2460ba+'.',_0x276b9f(0x116));return _0x3674b6[0x0];}export async function listAllRuntimeRoles(_0x2fe751,_0xf32af9={}){const _0x47d78d=a54_0xc45eb2,_0x34d21b=0x64,_0x46a59d=[];for(let _0x58885b=0x1;;_0x58885b+=0x1){const _0x1ee2fc=await listRuntimeAppRoles(_0x2fe751,{..._0xf32af9[_0x47d78d(0x132)]?{'roleName':_0xf32af9[_0x47d78d(0x132)]}:{},'currentPage':_0x58885b,'pageSize':_0x34d21b});_0x46a59d[_0x47d78d(0x127)](..._0x1ee2fc[_0x47d78d(0x10d)]);if(_0x1ee2fc[_0x47d78d(0x10d)]['length']<_0x34d21b||_0x1ee2fc['paging']&&_0x46a59d[_0x47d78d(0x14c)]>=_0x1ee2fc[_0x47d78d(0x137)][_0x47d78d(0x13a)])return _0x46a59d;}}export async function resolveRuntimeRoleRef(_0x2057e4,_0x28e4e6){const _0x1b54c5=a54_0xc45eb2,_0x5c82dd=_0x28e4e6[_0x1b54c5(0x108)]();if(!_0x5c82dd)throw CliErrors[_0x1b54c5(0x123)](_0x1b54c5(0x118),_0x1b54c5(0x12c));if(/^\d+$/[_0x1b54c5(0x148)](_0x5c82dd))return getRuntimeRoleById(_0x2057e4,Number(_0x5c82dd));const _0x30687a=(await listAllRuntimeRoles(_0x2057e4))[_0x1b54c5(0x14b)](_0x7a7b78=>_0x7a7b78[_0x1b54c5(0x132)]===_0x5c82dd);if(_0x30687a[_0x1b54c5(0x14c)]===0x0)throw CliErrors['validation'](_0x1b54c5(0x150)+_0x5c82dd+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0x2057e4+'.',_0x1b54c5(0x151));if(_0x30687a['length']>0x1)throw CliErrors[_0x1b54c5(0x123)](_0x1b54c5(0x150)+_0x5c82dd+_0x1b54c5(0x14f),_0x1b54c5(0x128)+_0x30687a[_0x1b54c5(0x141)](_0x1de68e=>_0x1de68e['id'])[_0x1b54c5(0x10b)](',\x20')+'.');return _0x30687a[0x0];}function parseRuntimeUserId(_0x2e73c9){const _0x18f1b7=a54_0xc45eb2,_0x37cc6e=_0x2e73c9[_0x18f1b7(0x108)]();if(!/^\d+$/['test'](_0x37cc6e))throw CliErrors[_0x18f1b7(0x123)]('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',_0x18f1b7(0x10c));const _0xf1c0bb=Number(_0x37cc6e);if(!Number['isSafeInteger'](_0xf1c0bb)||_0xf1c0bb<=0x0)throw CliErrors[_0x18f1b7(0x123)](_0x18f1b7(0x134));return _0xf1c0bb;}export async function prepareRuntimeMemberMutation(_0x383679,_0x3f4300){const _0x4da6d9=a54_0xc45eb2,_0x5aae51=await resolveRuntimeRoleRef(_0x383679[_0x4da6d9(0x11c)],_0x383679[_0x4da6d9(0x113)](_0x4da6d9(0x122)));if(_0x5aae51['roleType']===_0x4da6d9(0x125))throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x126),_0x4da6d9(0x120));const _0x5afaf3=parseRuntimeUserId(_0x383679[_0x4da6d9(0x113)](_0x4da6d9(0x147))),_0x51019d=(await listRuntimeRoleUsers(_0x383679['appCode']))['map'](_0x1db663=>({..._0x1db663,'userList':[..._0x1db663['userList']??[]],'applyUserList':[..._0x1db663[_0x4da6d9(0x11b)]??[]]})),_0x567930=_0x51019d[_0x4da6d9(0x133)](_0x119775=>_0x119775['id']===_0x5aae51['id']);if(!_0x567930)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x13c)+_0x5aae51['id']+_0x4da6d9(0x156),_0x4da6d9(0x12b));const _0x159c64=_0x567930['userList'][_0x4da6d9(0x141)](_0x529faf=>_0x529faf[_0x4da6d9(0x114)]),_0x3e7787=_0x383679[_0x4da6d9(0x139)]('expect-user-count');if(_0x3e7787!==undefined&&_0x3e7787!==null&&_0x3e7787!==''){const _0x4e1169=_0x383679[_0x4da6d9(0x11d)](_0x4da6d9(0x11f));if(!Number[_0x4da6d9(0x146)](_0x4e1169)||_0x4e1169<0x0)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x152));if(_0x159c64[_0x4da6d9(0x14c)]!==_0x4e1169)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x142)+_0x4e1169+_0x4da6d9(0x11a)+_0x159c64['length']+'.',_0x4da6d9(0x136));}const _0x1fcfde=_0x159c64[_0x4da6d9(0x131)](_0x5afaf3),_0x820bf0=[];let _0x25f732=!![];if(_0x3f4300===_0x4da6d9(0x14d)){const _0x37186f=await listRuntimeAppUsers(_0x383679[_0x4da6d9(0x11c)]),_0xa2be24=_0x37186f[_0x4da6d9(0x14b)](_0x46e0e4=>Number(_0x46e0e4[_0x4da6d9(0x138)])===_0x5afaf3);if(_0xa2be24['length']!==0x1||!_0xa2be24[0x0][_0x4da6d9(0x111)]?.['trim']())throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x10e)+_0x5afaf3+_0x4da6d9(0x12f)+_0x383679['appCode']+'.',_0x4da6d9(0x144));_0x1fcfde?(_0x25f732=![],_0x820bf0[_0x4da6d9(0x127)](_0x4da6d9(0x11e)+_0x5afaf3+_0x4da6d9(0x140)+_0x5aae51['id']+'.')):_0x567930[_0x4da6d9(0x143)][_0x4da6d9(0x127)]({'userId':_0x5afaf3,'username':_0xa2be24[0x0][_0x4da6d9(0x111)]});}else!_0x1fcfde?(_0x25f732=![],_0x820bf0[_0x4da6d9(0x127)](_0x4da6d9(0x11e)+_0x5afaf3+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x5aae51['id']+'.')):_0x567930['userList']=_0x567930[_0x4da6d9(0x143)][_0x4da6d9(0x14b)](_0x4b714d=>_0x4b714d[_0x4da6d9(0x114)]!==_0x5afaf3);return{'role':_0x5aae51,'userId':_0x5afaf3,'roleList':_0x51019d,'before':{'userIds':_0x159c64},'after':{'userIds':_0x567930['userList'][_0x4da6d9(0x141)](_0x41f42c=>_0x41f42c[_0x4da6d9(0x114)])},'shouldWrite':_0x25f732,'warnings':_0x820bf0};}function a54_0x2f28(_0x35980c,_0x5e84cc){_0x35980c=_0x35980c-0x108;const _0x173881=a54_0x1738();let _0x2f28f0=_0x173881[_0x35980c];return _0x2f28f0;}export function runtimeRoleWriteResult(_0x1ebe16,_0x5c09ce,_0x58f347,_0x36af9f,_0xc89c4,_0x2b9933=[]){const _0x57a8fd=a54_0xc45eb2;return{'operation':_0x1ebe16,'scope':_0x57a8fd(0x119),'selector':_0x5c09ce,'before':_0x58f347,'after':_0x36af9f,'dryRun':![],'backend':_0xc89c4,'warnings':_0x2b9933};}
|
|
1
|
+
const a54_0x355a98=a54_0x355f;(function(_0x45f984,_0x5f48c1){const _0x34ae50=a54_0x355f,_0x122922=_0x45f984();while(!![]){try{const _0x3e3a7e=parseInt(_0x34ae50(0x13a))/0x1+parseInt(_0x34ae50(0x16c))/0x2+-parseInt(_0x34ae50(0x130))/0x3*(parseInt(_0x34ae50(0x146))/0x4)+parseInt(_0x34ae50(0x14e))/0x5*(parseInt(_0x34ae50(0x149))/0x6)+-parseInt(_0x34ae50(0x178))/0x7+-parseInt(_0x34ae50(0x16d))/0x8+parseInt(_0x34ae50(0x144))/0x9;if(_0x3e3a7e===_0x5f48c1)break;else _0x122922['push'](_0x122922['shift']());}catch(_0x3712e2){_0x122922['push'](_0x122922['shift']());}}}(a54_0x3f69,0x7af07));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a54_0x355f(_0x4c3b74,_0x2fcd00){_0x4c3b74=_0x4c3b74-0x130;const _0x3f69a0=a54_0x3f69();let _0x355fe8=_0x3f69a0[_0x4c3b74];return _0x355fe8;}export const RUNTIME_ROLE_TYPES=[a54_0x355a98(0x165),a54_0x355a98(0x169),a54_0x355a98(0x140),a54_0x355a98(0x164)];const BUILTIN_ROLE_TYPES=[a54_0x355a98(0x165),'USER','OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a54_0x355a98(0x138),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':'role','type':a54_0x355a98(0x14a),'required':!![],'description':a54_0x355a98(0x175)};export const ROLE_CODE_FLAG={'name':'role-code','type':'string','description':a54_0x355a98(0x163)};export const USER_ID_FLAG={'name':'user','type':a54_0x355a98(0x14a),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x355a98(0x168),'type':a54_0x355a98(0x138),'description':a54_0x355a98(0x179)};export function isBuiltinRuntimeRole(_0x15a47a){const _0x120d51=a54_0x355a98;return BUILTIN_ROLE_TYPES[_0x120d51(0x170)](_0x15a47a);}export function assertCustomRuntimeRole(_0x423377,_0x3ec723){const _0x4f2d8d=a54_0x355a98;if(_0x423377[_0x4f2d8d(0x14b)]!==_0x4f2d8d(0x164))throw CliErrors[_0x4f2d8d(0x148)](_0x4f2d8d(0x16e)+_0x3ec723+_0x4f2d8d(0x15d)+_0x423377[_0x4f2d8d(0x13f)]+'\x20('+_0x423377[_0x4f2d8d(0x14b)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x5ba71c){const _0x35c912=a54_0x355a98;return{'id':_0x5ba71c['id'],'roleCode':_0x5ba71c[_0x35c912(0x143)],'roleName':_0x5ba71c[_0x35c912(0x13f)],'roleType':_0x5ba71c['roleType'],'remark':_0x5ba71c[_0x35c912(0x160)],'userCount':_0x5ba71c[_0x35c912(0x156)]??0x0,'permitCount':_0x5ba71c[_0x35c912(0x152)]??0x0,'builtin':isBuiltinRuntimeRole(_0x5ba71c[_0x35c912(0x14b)])};}export function readOptionalRuntimeRoleCode(_0x5b5760){const _0x3a88ac=a54_0x355a98,_0x44960b=_0x5b5760[_0x3a88ac(0x171)](_0x3a88ac(0x13d));if(_0x44960b===undefined||_0x44960b===null)return undefined;const _0xa00f56=String(_0x44960b)[_0x3a88ac(0x141)]();if(!_0xa00f56)throw CliErrors[_0x3a88ac(0x148)]('--role-code\x20must\x20not\x20be\x20blank.');if(_0xa00f56['length']>0x40)throw CliErrors['validation']('--role-code\x20cannot\x20exceed\x2064\x20characters.');return _0xa00f56;}export async function getRuntimeRoleById(_0x2056b9,_0x1a2dfc){const _0x5585b3=a54_0x355a98;if(!Number[_0x5585b3(0x17a)](_0x1a2dfc)||_0x1a2dfc<=0x0)throw CliErrors[_0x5585b3(0x148)](_0x5585b3(0x137));const _0x219526=(await listAllRuntimeRoles(_0x2056b9))['filter'](_0x2cbefa=>_0x2cbefa['id']===_0x1a2dfc&&(!_0x2cbefa['appCode']||_0x2cbefa[_0x5585b3(0x134)]===_0x2056b9));if(_0x219526['length']!==0x1)throw CliErrors[_0x5585b3(0x148)](_0x5585b3(0x136)+_0x1a2dfc+_0x5585b3(0x15a)+_0x2056b9+'.',_0x5585b3(0x153));return _0x219526[0x0];}function a54_0x3f69(){const _0x27d170=['length','appCode','userList','Runtime\x20role\x20id\x20','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','number','paging','446091kpCjHS','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','find','role-code','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','roleName','OWNER','trim','filter','roleCode','7152093JBOWEJ','Runtime\x20user\x20','170468qyeqAZ','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','validation','6zUxWgC','string','roleType','totalCount','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','89570DsSZaQ','\x20is\x20not\x20in\x20runtime\x20role\x20','user','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','permitCount','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','Pass\x20one\x20role\x20ID:\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','userCount','map','userName','Missing\x20runtime\x20role\x20reference.','\x20was\x20not\x20found\x20in\x20app\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','User\x20','\x20built-in\x20runtime\x20role\x20','items','user-add','remark','str','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','CUSTOM','ADMIN','userId','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','expect-user-count','USER',',\x20found\x20','applyUserList','659690gVHJJJ','7139984SYNpYF','Cannot\x20','Runtime\x20role\x20','includes','flag','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','Runtime\x20role\x20name\x20\x22','join','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','role','code','750652pWdCXV','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','isSafeInteger','\x22\x20is\x20ambiguous.','6bjMhIF','\x22\x20was\x20not\x20found\x20in\x20app\x20','push'];a54_0x3f69=function(){return _0x27d170;};return a54_0x3f69();}export async function listAllRuntimeRoles(_0x3ae6d8,_0x32af66={}){const _0x2341be=a54_0x355a98,_0x2f15ba=0x64,_0x4f7a69=[];for(let _0x15339f=0x1;;_0x15339f+=0x1){const _0x666bc6=await listRuntimeAppRoles(_0x3ae6d8,{..._0x32af66[_0x2341be(0x13f)]?{'roleName':_0x32af66[_0x2341be(0x13f)]}:{},'currentPage':_0x15339f,'pageSize':_0x2f15ba});_0x4f7a69[_0x2341be(0x132)](..._0x666bc6[_0x2341be(0x15e)]);if(_0x666bc6[_0x2341be(0x15e)][_0x2341be(0x133)]<_0x2f15ba||_0x666bc6[_0x2341be(0x139)]&&_0x4f7a69[_0x2341be(0x133)]>=_0x666bc6[_0x2341be(0x139)][_0x2341be(0x14c)])return _0x4f7a69;}}export async function resolveRuntimeRoleRef(_0x49892d,_0x3a5a9d){const _0x4ba63c=a54_0x355a98,_0x15a99e=_0x3a5a9d['trim']();if(!_0x15a99e)throw CliErrors[_0x4ba63c(0x148)](_0x4ba63c(0x159),'Pass\x20--role\x20<id|name>.');if(/^\d+$/['test'](_0x15a99e))return getRuntimeRoleById(_0x49892d,Number(_0x15a99e));const _0x197581=(await listAllRuntimeRoles(_0x49892d))['filter'](_0x5d411c=>_0x5d411c[_0x4ba63c(0x13f)]===_0x15a99e);if(_0x197581[_0x4ba63c(0x133)]===0x0)throw CliErrors[_0x4ba63c(0x148)](_0x4ba63c(0x173)+_0x15a99e+_0x4ba63c(0x131)+_0x49892d+'.',_0x4ba63c(0x155));if(_0x197581[_0x4ba63c(0x133)]>0x1)throw CliErrors[_0x4ba63c(0x148)](_0x4ba63c(0x173)+_0x15a99e+_0x4ba63c(0x17b),_0x4ba63c(0x154)+_0x197581[_0x4ba63c(0x157)](_0x3868a9=>_0x3868a9['id'])[_0x4ba63c(0x174)](',\x20')+'.');return _0x197581[0x0];}function parseRuntimeUserId(_0x324721){const _0x2fce30=a54_0x355a98,_0x153ba9=_0x324721[_0x2fce30(0x141)]();if(!/^\d+$/['test'](_0x153ba9))throw CliErrors['validation']('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',_0x2fce30(0x14d));const _0x292e87=Number(_0x153ba9);if(!Number[_0x2fce30(0x17a)](_0x292e87)||_0x292e87<=0x0)throw CliErrors[_0x2fce30(0x148)](_0x2fce30(0x147));return _0x292e87;}export async function prepareRuntimeMemberMutation(_0x2663f2,_0x3ccc1d){const _0x52e4a4=a54_0x355a98,_0x9d7531=await resolveRuntimeRoleRef(_0x2663f2['appCode'],_0x2663f2[_0x52e4a4(0x161)](_0x52e4a4(0x176)));if(_0x9d7531[_0x52e4a4(0x14b)]===_0x52e4a4(0x140))throw CliErrors[_0x52e4a4(0x148)]('OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.',_0x52e4a4(0x167));const _0x2f893f=parseRuntimeUserId(_0x2663f2[_0x52e4a4(0x161)](_0x52e4a4(0x150))),_0x2ec3f4=(await listRuntimeRoleUsers(_0x2663f2[_0x52e4a4(0x134)]))[_0x52e4a4(0x157)](_0x4c5daa=>({..._0x4c5daa,'userList':[..._0x4c5daa[_0x52e4a4(0x135)]??[]],'applyUserList':[..._0x4c5daa[_0x52e4a4(0x16b)]??[]]})),_0x1bd542=_0x2ec3f4[_0x52e4a4(0x13c)](_0x36b2c5=>_0x36b2c5['id']===_0x9d7531['id']);if(!_0x1bd542)throw CliErrors[_0x52e4a4(0x148)](_0x52e4a4(0x16f)+_0x9d7531['id']+_0x52e4a4(0x13b),_0x52e4a4(0x13e));const _0x5c7c5d=_0x1bd542[_0x52e4a4(0x135)]['map'](_0xd2620d=>_0xd2620d[_0x52e4a4(0x166)]),_0x308f94=_0x2663f2[_0x52e4a4(0x171)](_0x52e4a4(0x168));if(_0x308f94!==undefined&&_0x308f94!==null&&_0x308f94!==''){const _0x26cbdc=_0x2663f2['num']('expect-user-count');if(!Number[_0x52e4a4(0x17a)](_0x26cbdc)||_0x26cbdc<0x0)throw CliErrors[_0x52e4a4(0x148)](_0x52e4a4(0x172));if(_0x5c7c5d[_0x52e4a4(0x133)]!==_0x26cbdc)throw CliErrors[_0x52e4a4(0x148)](_0x52e4a4(0x162)+_0x26cbdc+_0x52e4a4(0x16a)+_0x5c7c5d['length']+'.',_0x52e4a4(0x151));}const _0x54f926=_0x5c7c5d['includes'](_0x2f893f),_0x72a910=[];let _0x1cb059=!![];if(_0x3ccc1d===_0x52e4a4(0x15f)){const _0x48524f=await listRuntimeAppUsers(_0x2663f2[_0x52e4a4(0x134)]),_0x4064f6=_0x48524f['filter'](_0x18ffdc=>Number(_0x18ffdc[_0x52e4a4(0x177)])===_0x2f893f);if(_0x4064f6[_0x52e4a4(0x133)]!==0x1||!_0x4064f6[0x0][_0x52e4a4(0x158)]?.['trim']())throw CliErrors[_0x52e4a4(0x148)](_0x52e4a4(0x145)+_0x2f893f+_0x52e4a4(0x15a)+_0x2663f2['appCode']+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x54f926?(_0x1cb059=![],_0x72a910[_0x52e4a4(0x132)](_0x52e4a4(0x15c)+_0x2f893f+_0x52e4a4(0x15b)+_0x9d7531['id']+'.')):_0x1bd542[_0x52e4a4(0x135)][_0x52e4a4(0x132)]({'userId':_0x2f893f,'username':_0x4064f6[0x0][_0x52e4a4(0x158)]});}else!_0x54f926?(_0x1cb059=![],_0x72a910['push']('User\x20'+_0x2f893f+_0x52e4a4(0x14f)+_0x9d7531['id']+'.')):_0x1bd542[_0x52e4a4(0x135)]=_0x1bd542['userList'][_0x52e4a4(0x142)](_0x4ed4f8=>_0x4ed4f8[_0x52e4a4(0x166)]!==_0x2f893f);return{'role':_0x9d7531,'userId':_0x2f893f,'roleList':_0x2ec3f4,'before':{'userIds':_0x5c7c5d},'after':{'userIds':_0x1bd542[_0x52e4a4(0x135)][_0x52e4a4(0x157)](_0x502e6c=>_0x502e6c['userId'])},'shouldWrite':_0x1cb059,'warnings':_0x72a910};}export function runtimeRoleWriteResult(_0x30899a,_0x2659eb,_0xdfbab7,_0x4b9a2d,_0x3209a2,_0x3c4452=[]){return{'operation':_0x30899a,'scope':'runtime','selector':_0x2659eb,'before':_0xdfbab7,'after':_0x4b9a2d,'dryRun':![],'backend':_0x3209a2,'warnings':_0x3c4452};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a55_0x51cf13=a55_0x2960;(function(_0x3bc4b9,_0x5e2789){const _0x4a0fed=a55_0x2960,_0x5bb927=_0x3bc4b9();while(!![]){try{const _0x236102=-parseInt(_0x4a0fed(0x19f))/0x1*(-parseInt(_0x4a0fed(0x19a))/0x2)+parseInt(_0x4a0fed(0x1a4))/0x3*(-parseInt(_0x4a0fed(0x1a2))/0x4)+parseInt(_0x4a0fed(0x193))/0x5+parseInt(_0x4a0fed(0x1a0))/0x6+-parseInt(_0x4a0fed(0x1a9))/0x7*(parseInt(_0x4a0fed(0x1aa))/0x8)+-parseInt(_0x4a0fed(0x19c))/0x9*(parseInt(_0x4a0fed(0x1a3))/0xa)+parseInt(_0x4a0fed(0x1a7))/0xb*(parseInt(_0x4a0fed(0x1ab))/0xc);if(_0x236102===_0x5e2789)break;else _0x5bb927['push'](_0x5bb927['shift']());}catch(_0x4ff131){_0x5bb927['push'](_0x5bb927['shift']());}}}(a55_0x4abc,0xed0f7));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a55_0x2960(_0x18acb5,_0x455180){_0x18acb5=_0x18acb5-0x192;const _0x4abca5=a55_0x4abc();let _0x29604d=_0x4abca5[_0x18acb5];return _0x29604d;}import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function a55_0x4abc(){const _0x18469c=['5577945YvTcAo','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','New\x20role\x20name','/client/permit/role/update','New\x20non-empty\x20role\x20remark','remark','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','1200QbFzwk','appCode','863370pUTpvz','str','flag','3165eJpDDd','5034000hreWnK','trim','7659272loUvRD','110Ldqrwr','3SUjoTq','high-risk-write','string','11ROCxrg','role-code','7ekaNrg','6770056QrDCLh','11204580rhHquD','Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','body','update','validation','name','role','--name\x20must\x20not\x20be\x20blank.'];a55_0x4abc=function(){return _0x18469c;};return a55_0x4abc();}function updateFields(_0xa2b3c2){const _0x261d94=a55_0x2960,_0x8b2f26=_0xa2b3c2['flag'](_0x261d94(0x1a8))!==undefined,_0x6145ea=_0xa2b3c2['flag']('name')!==undefined,_0x12d7d3=_0xa2b3c2[_0x261d94(0x19e)](_0x261d94(0x198))!==undefined;if(!_0x8b2f26&&!_0x6145ea&&!_0x12d7d3)throw CliErrors[_0x261d94(0x1af)](_0x261d94(0x194));const _0x265ea4=readOptionalRuntimeRoleCode(_0xa2b3c2),_0x733c7f=_0xa2b3c2[_0x261d94(0x19d)](_0x261d94(0x1b0))[_0x261d94(0x1a1)](),_0x542a0=_0xa2b3c2[_0x261d94(0x19d)]('remark')[_0x261d94(0x1a1)]();if(_0x6145ea&&!_0x733c7f)throw CliErrors[_0x261d94(0x1af)](_0x261d94(0x192));if(_0x12d7d3&&!_0x542a0)throw CliErrors[_0x261d94(0x1af)]('--remark\x20must\x20not\x20be\x20blank.','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.');return{..._0x265ea4?{'roleCode':_0x265ea4}:{},..._0x6145ea?{'roleName':_0x733c7f}:{},..._0x12d7d3?{'remark':_0x542a0}:{}};}async function prepare(_0x3f5b44){const _0x1c0e30=a55_0x2960,_0x576d82=await getRuntimeRoleById(_0x3f5b44[_0x1c0e30(0x19b)],_0x3f5b44['num']('id'));return assertCustomRuntimeRole(_0x576d82,'update'),{'role':_0x576d82,'body':{'id':_0x576d82['id'],'appCode':_0x3f5b44[_0x1c0e30(0x19b)],...updateFields(_0x3f5b44)}};}export const roleUpdate={'service':a55_0x51cf13(0x1b1),'command':a55_0x51cf13(0x1ae),'description':a55_0x51cf13(0x199),'risk':a55_0x51cf13(0x1a5),'confirmationDescription':a55_0x51cf13(0x1ac),'flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a55_0x51cf13(0x1b0),'type':a55_0x51cf13(0x1a6),'description':a55_0x51cf13(0x195)},{'name':a55_0x51cf13(0x198),'type':a55_0x51cf13(0x1a6),'description':a55_0x51cf13(0x197)}],async 'validate'(_0x38deed){updateFields(_0x38deed);},async 'dryRun'(_0x560fd5){const _0x5e9814=a55_0x51cf13,{body:_0x56ed78}=await prepare(_0x560fd5);return dryRun('POST',_0x5e9814(0x196))[_0x5e9814(0x1ad)](_0x56ed78)['description']('Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role')['build']();},async 'execute'(_0x24b05b){const _0x2c9d3e=a55_0x51cf13,{role:_0x54c613,body:_0x1959eb}=await prepare(_0x24b05b),_0x290226=await updateRuntimeAppRole(_0x1959eb);return{'ok':!![],'data':runtimeRoleWriteResult(_0x2c9d3e(0x1ae),{'roleId':_0x54c613['id']},projectRuntimeRole(_0x54c613),projectRuntimeRole(_0x290226),{'method':'POST','path':'/client/permit/role/update'})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a56_0x5b4786=a56_0x382f;(function(_0x6e3dbe,_0x4e9545){const _0x422751=a56_0x382f,_0xb62df4=_0x6e3dbe();while(!![]){try{const _0x3a5665=parseInt(_0x422751(0x1dd))/0x1*(parseInt(_0x422751(0x1d7))/0x2)+parseInt(_0x422751(0x1cf))/0x3+parseInt(_0x422751(0x1dc))/0x4+parseInt(_0x422751(0x1cd))/0x5+-parseInt(_0x422751(0x1de))/0x6+-parseInt(_0x422751(0x1d3))/0x7+-parseInt(_0x422751(0x1cb))/0x8*(parseInt(_0x422751(0x1d1))/0x9);if(_0x3a5665===_0x4e9545)break;else _0xb62df4['push'](_0xb62df4['shift']());}catch(_0x2683d3){_0xb62df4['push'](_0xb62df4['shift']());}}}(a56_0x504e,0x3d663));function a56_0x382f(_0x264e68,_0xa6ba08){_0x264e68=_0x264e68-0x1c9;const _0x504e2e=a56_0x504e();let _0x382f4b=_0x504e2e[_0x264e68];return _0x382f4b;}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a56_0x504e(){const _0x2cceab=['high-risk-write','1234600eiemTF','POST','1546310euHOOE','body','782757MdLmTM','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','63CSWJGY','user-add','385728vEBMNx','shouldWrite','appCode','/client/permit/user-role/update-user-list','2PIeBTj','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','build','warnings','role','1951544zAzQsD','445493vtfnuw','700140ntjgPv','before','roleList'];a56_0x504e=function(){return _0x2cceab;};return a56_0x504e();}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x5b4786(0x1db),'command':a56_0x5b4786(0x1d2),'description':a56_0x5b4786(0x1d8),'risk':a56_0x5b4786(0x1ca),'confirmationDescription':a56_0x5b4786(0x1d0),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x107e3a){const _0x35240f=a56_0x5b4786,_0x122c4a=await prepareRuntimeMemberMutation(_0x107e3a,'user-add');return dryRun(_0x35240f(0x1cc),_0x35240f(0x1d6))[_0x35240f(0x1ce)]({'appCode':_0x107e3a[_0x35240f(0x1d5)],'roleList':_0x122c4a['roleList']})['description'](_0x122c4a[_0x35240f(0x1d4)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x122c4a[_0x35240f(0x1da)][0x0])[_0x35240f(0x1d9)]();},async 'execute'(_0x194b2b){const _0x3db2b1=a56_0x5b4786,_0x197f17=await prepareRuntimeMemberMutation(_0x194b2b,_0x3db2b1(0x1d2));return _0x197f17[_0x3db2b1(0x1d4)]&&await updateRuntimeRoleUsers(_0x194b2b[_0x3db2b1(0x1d5)],_0x197f17[_0x3db2b1(0x1c9)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x3db2b1(0x1d2),{'roleId':_0x197f17[_0x3db2b1(0x1db)]['id'],'userId':_0x197f17['userId']},_0x197f17[_0x3db2b1(0x1df)],_0x197f17['after'],{'method':'POST','path':_0x3db2b1(0x1d6)},_0x197f17[_0x3db2b1(0x1da)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a57_0x632e26=a57_0x5a78;(function(_0x4e3dd5,_0x58485b){const _0x2ff503=a57_0x5a78,_0x37e9b8=_0x4e3dd5();while(!![]){try{const _0x5b4f06=-parseInt(_0x2ff503(0xbb))/0x1*(parseInt(_0x2ff503(0xb2))/0x2)+parseInt(_0x2ff503(0xbd))/0x3+parseInt(_0x2ff503(0xad))/0x4+parseInt(_0x2ff503(0xaf))/0x5+-parseInt(_0x2ff503(0xc1))/0x6*(parseInt(_0x2ff503(0xb1))/0x7)+-parseInt(_0x2ff503(0xb6))/0x8*(parseInt(_0x2ff503(0xbc))/0x9)+-parseInt(_0x2ff503(0xb0))/0xa*(-parseInt(_0x2ff503(0xc3))/0xb);if(_0x5b4f06===_0x58485b)break;else _0x37e9b8['push'](_0x37e9b8['shift']());}catch(_0x1060c4){_0x37e9b8['push'](_0x37e9b8['shift']());}}}(a57_0x2dfa,0x63359));function a57_0x5a78(_0x57e143,_0x2275c7){_0x57e143=_0x57e143-0xab;const _0x2dfa73=a57_0x2dfa();let _0x5a78d7=_0x2dfa73[_0x57e143];return _0x5a78d7;}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x2dfa(){const _0x567264=['appCode','319mKLJsk','build','before','warnings','after','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','1090384WPhurO','POST','3840215LrYTbW','178340HegWaI','21eXpaXi','12776LkhnvH','user-remove','roleList','/client/permit/user-role/update-user-list','944184cULuRn','role','shouldWrite','body','userId','4ArZrTF','54NlsXxB','820566NOVdBP','Preview:\x20remove\x20runtime\x20role\x20member','description','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','1382592LMvYcC'];a57_0x2dfa=function(){return _0x567264;};return a57_0x2dfa();}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a57_0x632e26(0xb7),'command':a57_0x632e26(0xb3),'description':a57_0x632e26(0xac),'risk':'high-risk-write','confirmationDescription':a57_0x632e26(0xc0),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x5d67eb){const _0x3e301e=a57_0x632e26,_0x173c13=await prepareRuntimeMemberMutation(_0x5d67eb,_0x3e301e(0xb3));return dryRun(_0x3e301e(0xae),_0x3e301e(0xb5))[_0x3e301e(0xb9)]({'appCode':_0x5d67eb[_0x3e301e(0xc2)],'roleList':_0x173c13['roleList']})[_0x3e301e(0xbf)](_0x173c13[_0x3e301e(0xb8)]?_0x3e301e(0xbe):_0x173c13['warnings'][0x0])[_0x3e301e(0xc4)]();},async 'execute'(_0x2f58e9){const _0x5c7f05=a57_0x632e26,_0x3148ad=await prepareRuntimeMemberMutation(_0x2f58e9,_0x5c7f05(0xb3));return _0x3148ad[_0x5c7f05(0xb8)]&&await updateRuntimeRoleUsers(_0x2f58e9[_0x5c7f05(0xc2)],_0x3148ad[_0x5c7f05(0xb4)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5c7f05(0xb3),{'roleId':_0x3148ad['role']['id'],'userId':_0x3148ad[_0x5c7f05(0xba)]},_0x3148ad[_0x5c7f05(0xc5)],_0x3148ad[_0x5c7f05(0xab)],{'method':_0x5c7f05(0xae),'path':'/client/permit/user-role/update-user-list'},_0x3148ad[_0x5c7f05(0xc6)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a58_0x4b2b1a=a58_0x29ae;function a58_0x1969(){const _0x40a6e8=['length','346824EkPaOu','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','list','appCode','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','delete','cursor','deepseek-v4-flash-0731','prompt','POST','ONCE','read','validation','cron','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','str','3003MhuwoY','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','description','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','28SsBXsU','1722987nGoefV','225185XLjyeW','title','\x20schedule\x20','build','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','detail','Preview:\x20run\x20schedule\x20','Preview:\x20delete\x20schedule\x20','high-risk-write','kimi/k3','DELETE','1194952VBPrzE','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','27665ACaUMw','scheduled-at','create','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','114NDWdmB','kind','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','deepseek-v4-pro-0813','num','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','/run','schedule-id','40zmSvaU','Schedule\x20UUID','validate','98ziqnbz','schedule','limit','Preview:\x20create\x20an\x20Agent\x20schedule','Created\x20','number','UTC','string','Queued\x20Task\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20input\x20is\x20valid','CRON','Deleted\x20schedule\x20','40590cdZKac','body','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','trim'];a58_0x1969=function(){return _0x40a6e8;};return a58_0x1969();}(function(_0x33352d,_0x1c56ca){const _0x81cb11=a58_0x29ae,_0x46caa6=_0x33352d();while(!![]){try{const _0x57700b=-parseInt(_0x81cb11(0x11d))/0x1+parseInt(_0x81cb11(0x121))/0x2*(-parseInt(_0x81cb11(0x108))/0x3)+-parseInt(_0x81cb11(0x10d))/0x4*(parseInt(_0x81cb11(0x10f))/0x5)+-parseInt(_0x81cb11(0x139))/0x6*(parseInt(_0x81cb11(0x12c))/0x7)+parseInt(_0x81cb11(0x13f))/0x8+parseInt(_0x81cb11(0x10e))/0x9+-parseInt(_0x81cb11(0x129))/0xa*(-parseInt(_0x81cb11(0x11a))/0xb);if(_0x57700b===_0x1c56ca)break;else _0x46caa6['push'](_0x46caa6['shift']());}catch(_0x4a76f3){_0x46caa6['push'](_0x46caa6['shift']());}}}(a58_0x1969,0x2aa29));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a58_0x29ae(_0x3b5c90,_0xc847a5){_0x3b5c90=_0x3b5c90-0x107;const _0x1969e7=a58_0x1969();let _0x29ae57=_0x1969e7[_0x3b5c90];return _0x29ae57;}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_0x4b2b1a(0x122),'type':'string','required':!![],'enum':['CRON',a58_0x4b2b1a(0x149)],'description':a58_0x4b2b1a(0x11c)},CRON_FLAG={'name':a58_0x4b2b1a(0x14c),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x10c)},SCHEDULED_AT_FLAG={'name':a58_0x4b2b1a(0x11e),'type':a58_0x4b2b1a(0x133),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x4b2b1a(0x110),'type':a58_0x4b2b1a(0x133),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x126)},MODEL_FLAG={'name':'model','type':a58_0x4b2b1a(0x133),'enum':[a58_0x4b2b1a(0x118),a58_0x4b2b1a(0x146),a58_0x4b2b1a(0x124)],'default':a58_0x4b2b1a(0x146),'description':a58_0x4b2b1a(0x123)},SCHEDULE_ID_FLAG={'name':a58_0x4b2b1a(0x128),'type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x12a),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':'limit','type':a58_0x4b2b1a(0x131),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x4b2b1a(0x145),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x135)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3a1d7c){const _0x408fed=a58_0x4b2b1a,_0x18fd2b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x122)),_0x3e892c=_0x3a1d7c[_0x408fed(0x107)]('title')[_0x408fed(0x13d)](),_0x587229=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x147))[_0x408fed(0x13d)](),_0xf29f82=_0x3a1d7c[_0x408fed(0x107)]('model'),_0x495d3c=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x14c)),_0x58721b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x11e));if(!_0x3e892c)throw CliErrors[_0x408fed(0x14b)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x587229)throw CliErrors['validation']('--prompt\x20must\x20not\x20be\x20blank.');if(_0x18fd2b===_0x408fed(0x137)){if(!_0x495d3c||_0x58721b)throw CliErrors[_0x408fed(0x14b)](_0x408fed(0x120));return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'cron':_0x495d3c,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}if(_0x18fd2b===_0x408fed(0x149)){if(!_0x58721b||_0x495d3c)throw CliErrors['validation']('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'scheduledAt':_0x58721b,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}throw CliErrors[_0x408fed(0x14b)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2c1c92){return'/api/harness/apps/'+encodeURIComponent(_0x2c1c92)+'/schedules';}function scheduleItemPath(_0x592791,_0x2c8336){return scheduleCollectionPath(_0x592791)+'/'+encodeURIComponent(_0x2c8336);}const scheduleValidate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x12b),'description':a58_0x4b2b1a(0x109),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x1ed191){readScheduleInput(_0x1ed191);},async 'execute'(_0x4ecb77){const _0x50ac40=a58_0x4b2b1a,_0x4fef6d=readScheduleInput(_0x4ecb77),_0x51e060=await validateRuntimeSchedule(_0x4ecb77[_0x50ac40(0x142)],_0x4fef6d);return{'ok':!![],'data':_0x51e060,'message':_0x50ac40(0x136)};}},scheduleCreate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x11f),'description':a58_0x4b2b1a(0x13c),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x11b),'flags':INPUT_FLAGS,async 'validate'(_0x3b085a){readScheduleInput(_0x3b085a);},async 'execute'(_0x201d32){const _0x130321=a58_0x4b2b1a,_0x5e6a0b=readScheduleInput(_0x201d32),_0x4b5eaf=await validateRuntimeSchedule(_0x201d32['appCode'],_0x5e6a0b),_0xe77a11=await createRuntimeSchedule(_0x201d32[_0x130321(0x142)],_0x4b5eaf);return{'ok':!![],'data':_0xe77a11,'message':_0x130321(0x130)+_0xe77a11[_0x130321(0x122)]+_0x130321(0x111)+_0xe77a11['scheduleId']};},async 'dryRun'(_0x115a12){const _0x5732c1=a58_0x4b2b1a,_0x34739c=readScheduleInput(_0x115a12);return dryRun(_0x5732c1(0x148),scheduleCollectionPath(_0x115a12[_0x5732c1(0x142)]))[_0x5732c1(0x13a)](_0x34739c)['description'](_0x5732c1(0x12f))[_0x5732c1(0x112)]();}},scheduleList={'service':'schedule','command':a58_0x4b2b1a(0x141),'description':a58_0x4b2b1a(0x13b),'risk':a58_0x4b2b1a(0x14a),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x333010){const _0x4b2a28=a58_0x4b2b1a,_0x3a3887=_0x333010['num'](_0x4b2a28(0x12e));if(!Number['isSafeInteger'](_0x3a3887)||_0x3a3887<0x1||_0x3a3887>0x64)throw CliErrors[_0x4b2a28(0x14b)](_0x4b2a28(0x113));const _0x3dbf36=_0x333010['str'](_0x4b2a28(0x145));if(_0x3dbf36&&(_0x3dbf36[_0x4b2a28(0x13e)]>0x400||_0x3dbf36[_0x4b2a28(0x13d)]()!==_0x3dbf36))throw CliErrors[_0x4b2a28(0x14b)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0xc56d5){const _0x30243c=a58_0x4b2b1a,_0x515d4b=_0xc56d5[_0x30243c(0x107)](_0x30243c(0x145)),_0x394bfc=await listRuntimeSchedules(_0xc56d5[_0x30243c(0x142)],{'kind':_0xc56d5['str'](_0x30243c(0x122)),'limit':_0xc56d5[_0x30243c(0x125)](_0x30243c(0x12e)),..._0x515d4b?{'cursor':_0x515d4b}:{}});return{'ok':!![],'data':_0x394bfc};}},scheduleDetail={'service':'schedule','command':a58_0x4b2b1a(0x114),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x4b2b1a(0x14a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x19fb39){const _0x2e4439=a58_0x4b2b1a,_0x1f9f7b=await getRuntimeSchedule(_0x19fb39[_0x2e4439(0x142)],_0x19fb39['str'](_0x2e4439(0x128)));return{'ok':!![],'data':_0x1f9f7b};}},scheduleRun={'service':a58_0x4b2b1a(0x12d),'command':'run','description':a58_0x4b2b1a(0x140),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x14d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3865f6){const _0x41cc7f=a58_0x4b2b1a,_0x158124=_0x3865f6[_0x41cc7f(0x107)](_0x41cc7f(0x128)),_0x5efb45=await runRuntimeSchedule(_0x3865f6[_0x41cc7f(0x142)],_0x158124);return{'ok':!![],'data':_0x5efb45,'message':_0x41cc7f(0x134)+_0x5efb45['taskId']+'\x20from\x20schedule\x20'+_0x158124};},async 'dryRun'(_0xca6f2){const _0x56b728=a58_0x4b2b1a,_0x3462c3=_0xca6f2[_0x56b728(0x107)](_0x56b728(0x128));return dryRun(_0x56b728(0x148),scheduleItemPath(_0xca6f2[_0x56b728(0x142)],_0x3462c3)+_0x56b728(0x127))[_0x56b728(0x10b)](_0x56b728(0x115)+_0x3462c3+'\x20immediately')['build']();}},scheduleDelete={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x144),'description':a58_0x4b2b1a(0x143),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x10a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x375681){const _0x2b37da=a58_0x4b2b1a,_0x131685=_0x375681['str'](_0x2b37da(0x128)),_0x4617c3=await deleteRuntimeSchedule(_0x375681[_0x2b37da(0x142)],_0x131685);return{'ok':!![],'data':_0x4617c3,'message':_0x2b37da(0x138)+_0x131685};},async 'dryRun'(_0x399785){const _0x32ad61=a58_0x4b2b1a,_0x5797db=_0x399785[_0x32ad61(0x107)](_0x32ad61(0x128));return dryRun(_0x32ad61(0x119),scheduleItemPath(_0x399785[_0x32ad61(0x142)],_0x5797db))['description'](_0x32ad61(0x116)+_0x5797db)[_0x32ad61(0x112)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a58_0x8ea6ef=a58_0x39bc;(function(_0x5df6b3,_0x3a2cff){const _0x56c18c=a58_0x39bc,_0x2e249c=_0x5df6b3();while(!![]){try{const _0x3021c3=parseInt(_0x56c18c(0x164))/0x1+-parseInt(_0x56c18c(0x1a2))/0x2+parseInt(_0x56c18c(0x199))/0x3+-parseInt(_0x56c18c(0x178))/0x4+-parseInt(_0x56c18c(0x1a0))/0x5*(parseInt(_0x56c18c(0x197))/0x6)+-parseInt(_0x56c18c(0x19f))/0x7+parseInt(_0x56c18c(0x19b))/0x8*(parseInt(_0x56c18c(0x15d))/0x9);if(_0x3021c3===_0x3a2cff)break;else _0x2e249c['push'](_0x2e249c['shift']());}catch(_0x111262){_0x2e249c['push'](_0x2e249c['shift']());}}}(a58_0x1825,0x55506));function a58_0x1825(){const _0x2ee764=['detail','Preview:\x20run\x20schedule\x20','18kfkJfL','Page\x20size\x20from\x201\x20to\x20100','990093PDAVjS','cursor','2715112Onpppv','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','1389878YYQHcS','797315kVLKmn','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','228230PDSXAC','model','run','POST','high-risk-write','9YrDFOJ','Deleted\x20schedule\x20','read','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','/run','UTC','591721VrCNqm','isSafeInteger','/schedules','taskId','str','Show\x20one\x20schedule\x20by\x20schedule\x20ID','delete','Created\x20','appCode','prompt','cron','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','CRON','create','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','description','validation','Preview:\x20delete\x20schedule\x20','schedule-id','kind','482548UOEZTK','scheduleId','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','Queued\x20Task\x20','ONCE','limit','build','Schedule\x20input\x20is\x20valid','schedule','body','trim','validate','Preview:\x20create\x20an\x20Agent\x20schedule','/api/harness/apps/','Schedule\x20UUID','\x20from\x20schedule\x20','\x20schedule\x20','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','deepseek-v4-flash-0731','scheduled-at','string','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','DELETE','deepseek-v4-pro-0813','--title\x20must\x20not\x20be\x20blank.','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','number','Schedule\x20kind:\x20CRON\x20or\x20ONCE'];a58_0x1825=function(){return _0x2ee764;};return a58_0x1825();}import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a58_0x39bc(_0x585bb5,_0x2bf706){_0x585bb5=_0x585bb5-0x15b;const _0x1825f4=a58_0x1825();let _0x39bc5e=_0x1825f4[_0x585bb5];return _0x39bc5e;}import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x8ea6ef(0x177),'type':a58_0x8ea6ef(0x18c),'required':!![],'enum':['CRON',a58_0x8ea6ef(0x17c)],'description':a58_0x8ea6ef(0x194)},CRON_FLAG={'name':a58_0x8ea6ef(0x16e),'type':a58_0x8ea6ef(0x18c),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x8ea6ef(0x18b),'type':a58_0x8ea6ef(0x18c),'description':a58_0x8ea6ef(0x189)},TITLE_FLAG={'name':'title','type':a58_0x8ea6ef(0x18c),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':a58_0x8ea6ef(0x16d),'type':'string','required':!![],'description':a58_0x8ea6ef(0x18e)},MODEL_FLAG={'name':a58_0x8ea6ef(0x1a3),'type':a58_0x8ea6ef(0x18c),'enum':['kimi/k3',a58_0x8ea6ef(0x18a),a58_0x8ea6ef(0x190)],'default':a58_0x8ea6ef(0x18a),'description':a58_0x8ea6ef(0x19d)},SCHEDULE_ID_FLAG={'name':a58_0x8ea6ef(0x176),'type':'string','required':!![],'description':a58_0x8ea6ef(0x186),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x8ea6ef(0x19c)}},LIMIT_FLAG={'name':a58_0x8ea6ef(0x17d),'type':a58_0x8ea6ef(0x193),'default':0x14,'description':a58_0x8ea6ef(0x198)},CURSOR_FLAG={'name':a58_0x8ea6ef(0x19a),'type':a58_0x8ea6ef(0x18c),'description':a58_0x8ea6ef(0x160)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3e8a27){const _0xf1ff07=a58_0x8ea6ef,_0x36beb4=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x177)),_0x164a65=_0x3e8a27['str']('title')[_0xf1ff07(0x182)](),_0x142347=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x16d))[_0xf1ff07(0x182)](),_0x1c5d24=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x1a3)),_0x10b0f2=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x16e)),_0x293976=_0x3e8a27[_0xf1ff07(0x168)](_0xf1ff07(0x18b));if(!_0x164a65)throw CliErrors[_0xf1ff07(0x174)](_0xf1ff07(0x191));if(!_0x142347)throw CliErrors[_0xf1ff07(0x174)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x36beb4===_0xf1ff07(0x170)){if(!_0x10b0f2||_0x293976)throw CliErrors['validation'](_0xf1ff07(0x172));return{'kind':_0x36beb4,'timezone':'UTC','cron':_0x10b0f2,'title':_0x164a65,'prompt':_0x142347,'model':_0x1c5d24};}if(_0x36beb4===_0xf1ff07(0x17c)){if(!_0x293976||_0x10b0f2)throw CliErrors['validation'](_0xf1ff07(0x192));return{'kind':_0x36beb4,'timezone':_0xf1ff07(0x163),'scheduledAt':_0x293976,'title':_0x164a65,'prompt':_0x142347,'model':_0x1c5d24};}throw CliErrors[_0xf1ff07(0x174)](_0xf1ff07(0x17a));}function scheduleCollectionPath(_0x4589be){const _0x1a8145=a58_0x8ea6ef;return _0x1a8145(0x185)+encodeURIComponent(_0x4589be)+_0x1a8145(0x166);}function scheduleItemPath(_0x2adb6d,_0x1034b4){return scheduleCollectionPath(_0x2adb6d)+'/'+encodeURIComponent(_0x1034b4);}const scheduleValidate={'service':'schedule','command':a58_0x8ea6ef(0x183),'description':a58_0x8ea6ef(0x18d),'risk':a58_0x8ea6ef(0x15f),'flags':INPUT_FLAGS,async 'validate'(_0x5c7d29){readScheduleInput(_0x5c7d29);},async 'execute'(_0x340121){const _0x538964=a58_0x8ea6ef,_0x3fe397=readScheduleInput(_0x340121),_0x536e5f=await validateRuntimeSchedule(_0x340121[_0x538964(0x16c)],_0x3fe397);return{'ok':!![],'data':_0x536e5f,'message':_0x538964(0x17f)};}},scheduleCreate={'service':a58_0x8ea6ef(0x180),'command':a58_0x8ea6ef(0x171),'description':a58_0x8ea6ef(0x161),'risk':a58_0x8ea6ef(0x15c),'confirmationDescription':a58_0x8ea6ef(0x19e),'flags':INPUT_FLAGS,async 'validate'(_0x148cfd){readScheduleInput(_0x148cfd);},async 'execute'(_0x394553){const _0x536556=a58_0x8ea6ef,_0x13c2b8=readScheduleInput(_0x394553),_0x35d641=await validateRuntimeSchedule(_0x394553[_0x536556(0x16c)],_0x13c2b8),_0x4088d5=await createRuntimeSchedule(_0x394553[_0x536556(0x16c)],_0x35d641);return{'ok':!![],'data':_0x4088d5,'message':_0x536556(0x16b)+_0x4088d5[_0x536556(0x177)]+_0x536556(0x188)+_0x4088d5[_0x536556(0x179)]};},async 'dryRun'(_0xfa1242){const _0x3e51f5=a58_0x8ea6ef,_0x41d856=readScheduleInput(_0xfa1242);return dryRun(_0x3e51f5(0x15b),scheduleCollectionPath(_0xfa1242['appCode']))[_0x3e51f5(0x181)](_0x41d856)[_0x3e51f5(0x173)](_0x3e51f5(0x184))['build']();}},scheduleList={'service':a58_0x8ea6ef(0x180),'command':'list','description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a58_0x8ea6ef(0x15f),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x5e308c){const _0x346748=a58_0x8ea6ef,_0x21a610=_0x5e308c['num'](_0x346748(0x17d));if(!Number[_0x346748(0x165)](_0x21a610)||_0x21a610<0x1||_0x21a610>0x64)throw CliErrors[_0x346748(0x174)](_0x346748(0x16f));const _0xc7aaa3=_0x5e308c[_0x346748(0x168)]('cursor');if(_0xc7aaa3&&(_0xc7aaa3['length']>0x400||_0xc7aaa3[_0x346748(0x182)]()!==_0xc7aaa3))throw CliErrors[_0x346748(0x174)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x4adb71){const _0x456da7=a58_0x8ea6ef,_0x38cdd3=_0x4adb71[_0x456da7(0x168)](_0x456da7(0x19a)),_0x57e506=await listRuntimeSchedules(_0x4adb71[_0x456da7(0x16c)],{'kind':_0x4adb71[_0x456da7(0x168)](_0x456da7(0x177)),'limit':_0x4adb71['num'](_0x456da7(0x17d)),..._0x38cdd3?{'cursor':_0x38cdd3}:{}});return{'ok':!![],'data':_0x57e506};}},scheduleDetail={'service':'schedule','command':a58_0x8ea6ef(0x195),'description':a58_0x8ea6ef(0x169),'risk':a58_0x8ea6ef(0x15f),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2d3288){const _0x53fa3c=a58_0x8ea6ef,_0x469ca3=await getRuntimeSchedule(_0x2d3288['appCode'],_0x2d3288[_0x53fa3c(0x168)]('schedule-id'));return{'ok':!![],'data':_0x469ca3};}},scheduleRun={'service':a58_0x8ea6ef(0x180),'command':a58_0x8ea6ef(0x1a4),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0x8ea6ef(0x15c),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x35dec0){const _0x513917=a58_0x8ea6ef,_0x1e8c8b=_0x35dec0[_0x513917(0x168)]('schedule-id'),_0x40e478=await runRuntimeSchedule(_0x35dec0[_0x513917(0x16c)],_0x1e8c8b);return{'ok':!![],'data':_0x40e478,'message':_0x513917(0x17b)+_0x40e478[_0x513917(0x167)]+_0x513917(0x187)+_0x1e8c8b};},async 'dryRun'(_0x27df8f){const _0x3e642e=a58_0x8ea6ef,_0x495251=_0x27df8f[_0x3e642e(0x168)]('schedule-id');return dryRun('POST',scheduleItemPath(_0x27df8f[_0x3e642e(0x16c)],_0x495251)+_0x3e642e(0x162))[_0x3e642e(0x173)](_0x3e642e(0x196)+_0x495251+'\x20immediately')[_0x3e642e(0x17e)]();}},scheduleDelete={'service':a58_0x8ea6ef(0x180),'command':a58_0x8ea6ef(0x16a),'description':a58_0x8ea6ef(0x1a1),'risk':'high-risk-write','confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xee65e){const _0x84bde2=a58_0x8ea6ef,_0x5000df=_0xee65e['str'](_0x84bde2(0x176)),_0x4f497d=await deleteRuntimeSchedule(_0xee65e[_0x84bde2(0x16c)],_0x5000df);return{'ok':!![],'data':_0x4f497d,'message':_0x84bde2(0x15e)+_0x5000df};},async 'dryRun'(_0x4606ef){const _0xaa0736=a58_0x8ea6ef,_0x39f3c8=_0x4606ef['str']('schedule-id');return dryRun(_0xaa0736(0x18f),scheduleItemPath(_0x4606ef['appCode'],_0x39f3c8))['description'](_0xaa0736(0x175)+_0x39f3c8)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a59_0x4c3364=a59_0x59e8;function a59_0x14f0(){const _0x3021d7=['Export\x20machine-readable\x20command\x20schema\x20(JSON)','254042CyeWlW','1569325aBKMNo','184dHQHFq','2290878fFnCyN','336447NLhRhU','export','2hwPIeD','2206773SrJazw','65737qVqnYQ','schema','535236tZaDFV'];a59_0x14f0=function(){return _0x3021d7;};return a59_0x14f0();}function a59_0x59e8(_0x3b404f,_0x2750c2){_0x3b404f=_0x3b404f-0xb9;const _0x14f06e=a59_0x14f0();let _0x59e85f=_0x14f06e[_0x3b404f];return _0x59e85f;}(function(_0x24d296,_0x3abd57){const _0x24ce12=a59_0x59e8,_0x11f803=_0x24d296();while(!![]){try{const _0x50fb44=-parseInt(_0x24ce12(0xc3))/0x1*(parseInt(_0x24ce12(0xbd))/0x2)+parseInt(_0x24ce12(0xc1))/0x3+-parseInt(_0x24ce12(0xbb))/0x4+-parseInt(_0x24ce12(0xbe))/0x5+parseInt(_0x24ce12(0xc0))/0x6+-parseInt(_0x24ce12(0xb9))/0x7*(-parseInt(_0x24ce12(0xbf))/0x8)+parseInt(_0x24ce12(0xc4))/0x9;if(_0x50fb44===_0x3abd57)break;else _0x11f803['push'](_0x11f803['shift']());}catch(_0xd95391){_0x11f803['push'](_0x11f803['shift']());}}}(a59_0x14f0,0x3ddfc));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1b7e81){const _0x85cfc8=await buildSchemaPayload();return{'ok':!![],'data':_0x85cfc8};}export const schemaDefinition={'service':a59_0x4c3364(0xba),'command':a59_0x4c3364(0xc2),'description':a59_0x4c3364(0xbc),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x5cd103,_0x283901){const _0x286ede=a60_0x6f84,_0x1f97ad=_0x5cd103();while(!![]){try{const _0xc445ce=-parseInt(_0x286ede(0xcf))/0x1*(parseInt(_0x286ede(0x111))/0x2)+-parseInt(_0x286ede(0xe2))/0x3+parseInt(_0x286ede(0xca))/0x4+-parseInt(_0x286ede(0xd1))/0x5*(parseInt(_0x286ede(0x102))/0x6)+parseInt(_0x286ede(0xc3))/0x7+parseInt(_0x286ede(0xf7))/0x8+-parseInt(_0x286ede(0xeb))/0x9*(parseInt(_0x286ede(0xc1))/0xa);if(_0xc445ce===_0x283901)break;else _0x1f97ad['push'](_0x1f97ad['shift']());}catch(_0x5af803){_0x1f97ad['push'](_0x1f97ad['shift']());}}}(a60_0x4076,0xe85e7));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(_0xb91f84,_0x4af0ac){const _0x4090e6=a60_0x6f84,_0x381879=listLocalServiceTrees();let _0x50417b;for(const _0x58dcf2 of _0x381879){const _0x4d31aa=matchServiceTreeCommand(_0x58dcf2,_0xb91f84);if(!_0x4d31aa)continue;(!_0x50417b||_0x4d31aa[_0x4090e6(0xf8)][_0x4090e6(0x115)]['length']>_0x50417b[_0x4090e6(0xf8)][_0x4090e6(0x115)][_0x4090e6(0x104)])&&(_0x50417b={'tree':_0x58dcf2,'command':_0x4d31aa['command'],'remainingArgs':_0x4d31aa['remainingArgs']});}if(!_0x50417b)return undefined;const _0x5e617e={..._0x4af0ac};return applyAppBinding(_0x50417b['tree'],_0x50417b['command'],_0x5e617e),{'definition':buildDynamicCommandDefinition(_0x50417b[_0x4090e6(0xd0)],_0x50417b['command']),'args':_0x50417b[_0x4090e6(0xd6)],'flags':_0x5e617e,'tree':_0x50417b[_0x4090e6(0xd0)],'command':_0x50417b['command']};}function a60_0x6f84(_0x43de1c,_0x3bf723){_0x43de1c=_0x43de1c-0xb9;const _0x40761a=a60_0x4076();let _0x6f84c2=_0x40761a[_0x43de1c];return _0x6f84c2;}export function generateDynamicServiceHelp(_0x308659){const _0x22b364=a60_0x6f84,_0x3834a7=listLocalServiceTrees()[_0x22b364(0x105)](_0x2ba9a2=>_0x2ba9a2[_0x22b364(0xf0)][_0x22b364(0xe8)]===_0x308659);if(!_0x3834a7)return undefined;const _0x47dbcf=[CLI_BIN_NAME+'\x20'+_0x308659+_0x22b364(0xf9),'',_0x3834a7[_0x22b364(0xf0)][_0x22b364(0xee)]||_0x308659,_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]?'\x20\x20'+_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]:'','',_0x22b364(0xe7),..._0x3834a7[_0x22b364(0xf3)][_0x22b364(0x103)](_0x59aee4=>{const _0x13ceca=_0x22b364,_0x18c616=_0x59aee4[_0x13ceca(0x115)][_0x13ceca(0xfa)](0x1)[_0x13ceca(0x116)]('\x20'),_0x2abc0e=_0x59aee4[_0x13ceca(0x109)]===_0x13ceca(0x108)?'':'\x20['+_0x59aee4[_0x13ceca(0x109)]+']';return'\x20\x20'+_0x18c616[_0x13ceca(0x10b)](0x18)+'\x20'+(_0x59aee4[_0x13ceca(0x126)]||'')+_0x2abc0e;}),'','Use\x20`'+CLI_BIN_NAME+_0x22b364(0xe1)+_0x308659+_0x22b364(0x11e)][_0x22b364(0xe0)](Boolean);return _0x47dbcf[_0x22b364(0x116)]('\x0a');}export function listDynamicServiceEntries(){const _0x10fe8f=a60_0x6f84;return listLocalServices()[_0x10fe8f(0x103)](_0x538e29=>{const _0x888f9e=_0x10fe8f,_0x4504c8=_0x538e29[_0x888f9e(0xd5)];return{'service':_0x4504c8['service']['code'],'label':_0x4504c8['service'][_0x888f9e(0xee)]||_0x4504c8[_0x888f9e(0xf0)][_0x888f9e(0xe8)],'commands':_0x4504c8['commands']['map'](_0x58968b=>({'command':dynamicCommandName(_0x58968b),'description':_0x58968b[_0x888f9e(0x126)]||_0x888f9e(0xef)+_0x58968b[_0x888f9e(0xec)],'tag':riskTag(_0x58968b['risk'])}))};});}export function getDynamicServiceEntry(_0x2e6f7a){const _0x4e5e36=a60_0x6f84;return listDynamicServiceEntries()[_0x4e5e36(0x105)](_0xd1d7fa=>_0xd1d7fa[_0x4e5e36(0xf0)]===_0x2e6f7a);}export function listDynamicServiceDefinitions(_0x13abf1){const _0x4b52f=a60_0x6f84;return listLocalServiceTrees()['filter'](_0x4c10e3=>!_0x13abf1||_0x4c10e3[_0x4b52f(0xf0)][_0x4b52f(0xe8)]===_0x13abf1)[_0x4b52f(0xc4)](_0x51b7c1=>_0x51b7c1['commands'][_0x4b52f(0x103)](_0x43e686=>buildDynamicCommandDefinition(_0x51b7c1,_0x43e686)));}export function getDynamicServiceDefinitions(_0x34b34e){const _0x1c4739=listDynamicServiceDefinitions(_0x34b34e);return _0x1c4739['length']>0x0?_0x1c4739:undefined;}export function findDynamicServiceDefinition(_0x36b463,_0x5655e1){const _0x55d61a=a60_0x6f84;return listDynamicServiceDefinitions(_0x36b463)['find'](_0x5741d9=>_0x5741d9[_0x55d61a(0xf8)]===_0x5655e1);}export function buildDynamicCommandDefinition(_0x300bf8,_0x28cbc2){const _0x39c5fe=a60_0x6f84;return{'service':_0x300bf8[_0x39c5fe(0xf0)][_0x39c5fe(0xe8)],'command':dynamicCommandName(_0x28cbc2),'description':_0x28cbc2['description']||_0x39c5fe(0xef)+_0x28cbc2['cliPath'],'risk':_0x28cbc2[_0x39c5fe(0x109)],..._0x28cbc2[_0x39c5fe(0x109)]===_0x39c5fe(0x108)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x28cbc2)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x28cbc2[_0x39c5fe(0x121)]['map'](_0x5e1cca=>({'name':_0x5e1cca[_0x39c5fe(0xee)],'description':_0x5e1cca[_0x39c5fe(0x126)]||_0x5e1cca[_0x39c5fe(0xee)],'required':_0x5e1cca[_0x39c5fe(0xbc)]})),'flags':_0x28cbc2['flags'][_0x39c5fe(0x103)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x28cbc2),async 'dryRun'(_0x24939a){const _0x1d0fab=_0x39c5fe,_0x2b4e60=await compilePlan(_0x28cbc2,_0x24939a);return{'method':_0x1d0fab(0xd8),'url':_0x28cbc2['cliPath'],'body':{'target':targetPreview(_0x2b4e60),'params':_0x2b4e60[_0x1d0fab(0xc5)]},'description':_0x1d0fab(0x10a)+_0x28cbc2[_0x1d0fab(0xec)]};},async 'execute'(_0x3274ad){const _0x4429ab=_0x39c5fe,_0x832d3a=await compilePlan(_0x28cbc2,_0x3274ad),_0x198df2=Date[_0x4429ab(0xe3)](),_0x14f784=await executePlan(_0x832d3a,_0x28cbc2,_0x3274ad),_0x3f1ca9=Date[_0x4429ab(0xe3)]()-_0x198df2;return{'ok':!![],'data':{'service':_0x300bf8['service'],'command':_0x28cbc2[_0x4429ab(0xec)],'target':targetPreview(_0x832d3a),'result':_0x14f784,'elapsed':_0x3f1ca9},'message':_0x4429ab(0xf6)+_0x28cbc2['cliPath']+_0x4429ab(0xce)+_0x3f1ca9+'ms'};}};}function buildDynamicConfirmationDescription(_0x3bd1c4){const _0x1e4141=a60_0x6f84,_0x5b09cf=_0x3bd1c4['description']||_0x3bd1c4['cliPath'],_0x42cfd7=_0x3bd1c4[_0x1e4141(0x109)]===_0x1e4141(0xdb)?_0x1e4141(0x107):_0x1e4141(0xe9);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x5b09cf+_0x1e4141(0xed)+_0x42cfd7;}function dynamicCommandName(_0x26271d){const _0x1c349e=a60_0x6f84;return _0x26271d['fullPath']['slice'](0x1)[_0x1c349e(0x116)]('\x20');}function riskTag(_0x547514){const _0x4d05d9=a60_0x6f84;return _0x547514===_0x4d05d9(0x108)?'':'\x20\x20['+_0x547514+']';}function flagToCommandFlag(_0x3ff5f3){const _0x364e8b=a60_0x6f84;return{'name':_0x3ff5f3[_0x364e8b(0x113)],'type':_0x3ff5f3[_0x364e8b(0xd4)]===_0x364e8b(0xff)?'string':_0x3ff5f3[_0x364e8b(0xd4)],'description':_0x3ff5f3['description']||_0x3ff5f3[_0x364e8b(0xee)],'required':_0x3ff5f3[_0x364e8b(0xbc)],'default':isPrimitiveFlagDefault(_0x3ff5f3[_0x364e8b(0x10d)])?_0x3ff5f3['default']:undefined,'enum':_0x3ff5f3[_0x364e8b(0xe4)]};}async function compilePlan(_0x5c9188,_0x2456b1){const _0x3fd0a8=a60_0x6f84;return compileServiceTreeCommand(_0x5c9188,{'flags':_0x2456b1[_0x3fd0a8(0xdf)],'args':_0x2456b1['args'],'context':await buildServiceContext(_0x5c9188,_0x2456b1)});}async function buildServiceContext(_0x2823a9,_0x5c4fe9){const _0x3e070b=a60_0x6f84,_0x460799={'appCode':_0x5c4fe9['appCode'],'env':_0x5c4fe9[_0x3e070b(0x119)],'envName':_0x5c4fe9[_0x3e070b(0x119)]};if(!usesRuntimeContext(_0x2823a9))return _0x460799;const _0x10d9ee=await getLoginUserInfo(),_0x587f22=pickFirst(_0x10d9ee[_0x3e070b(0x100)],_0x10d9ee['id']);return{..._0x460799,'user':_0x10d9ee,'userId':_0x587f22,'id':_0x10d9ee['id'],'username':pickFirst(_0x10d9ee[_0x3e070b(0x10c)],_0x10d9ee[_0x3e070b(0xbf)],_0x10d9ee[_0x3e070b(0xde)]),'userName':_0x10d9ee[_0x3e070b(0xbf)],'nickname':pickFirst(_0x10d9ee[_0x3e070b(0xc9)],_0x10d9ee[_0x3e070b(0xc0)]),'nickName':_0x10d9ee[_0x3e070b(0xc0)],'tenantCode':_0x10d9ee[_0x3e070b(0xfd)],'employeeId':_0x10d9ee[_0x3e070b(0x101)]};}function usesRuntimeContext(_0x580598){const _0x28acfc=a60_0x6f84;return _0x580598[_0x28acfc(0xbd)][_0x28acfc(0x114)](_0x3f966d=>typeof _0x3f966d[_0x28acfc(0xc7)]==='string'&&(_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xc2))||_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xf2))));}function pickFirst(..._0x1b9754){return _0x1b9754['find'](_0x4c28bf=>_0x4c28bf!==undefined&&_0x4c28bf!==null);}function a60_0x4076(){const _0x25788e=['14327024DRHTTm','command','\x20<command>\x20[flags]','slice','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','dbtableConfig','tenantCode','tableName','json','userId','employeeId','3054NWUYKT','map','length','find','datasetCode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','read','risk','Preview\x20dynamic\x20service\x20command:\x20','padEnd','username','default','bff','\x20->\x20','Unknown\x20appRef\x20\x22','3541944PPqBno','\x20requires\x20target.sqlCode.','cliName','some','fullPath','join','kind','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','envName','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20SERVICE\x20TREE\x20TARGET','sqlCode','\x20\x20\x20\x20','`\x20to\x20inspect\x20the\x20manifest.','operator','appRef','args','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','env','appBindings','appcode','description','push','\x20\x20\x20\x20datasetCode:\x20','\x20\x20MAP\x20TO','required','mapTo','Cannot\x20resolve\x20datatable\x20\x22','userName','nickName','4282210aTChfp','context.','9009308DAXGnM','flatMap','params','sql','source','validation','nickname','3737596FgLMWo','string','appCode','\x20requires\x20target.functionName.','\x20completed\x20in\x20','1DpyoiZ','tree','3285BGKvOG','bffId','scriptName','type','normalizedManifest','remainingArgs','\x20\x20\x20\x20datatable:\x20','SERVICE_TREE','entries','app','high-risk-write','\x20\x20\x20\x20sqlCode:\x20','bffCode','loginName','rawFlags','filter','\x20service\x20detail\x20--service\x20','296133PSNcjA','now','enum','number','const','Commands:','code','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','target','18htucIl','cliPath','\x22.\x20','name','Run\x20service\x20command\x20','service','\x20\x20\x20\x20functionName:\x20','ctx.','commands','boolean','datatable','Service\x20command\x20'];a60_0x4076=function(){return _0x25788e;};return a60_0x4076();}async function executePlan(_0x1db91e,_0x3fdbed,_0x430d34){const _0x7fc571=a60_0x6f84;if(_0x1db91e[_0x7fc571(0x117)]==='data'){const _0x24ba0e=await resolveDatasetCode(_0x1db91e,_0x3fdbed,_0x430d34);return executeData(_0x24ba0e,_0x1db91e[_0x7fc571(0xf8)],_0x1db91e['params']);}if(_0x1db91e['kind']===_0x7fc571(0xc6)){if(!_0x1db91e[_0x7fc571(0x11c)])throw CliErrors['validation']('Service\x20command\x20'+_0x3fdbed['cliPath']+_0x7fc571(0x112));return executeSdkSql(_0x1db91e[_0x7fc571(0x11c)],normalizeScalarParams(_0x1db91e[_0x7fc571(0xc5)]));}if(_0x1db91e[_0x7fc571(0x117)]===_0x7fc571(0x10e)){const _0x219e35=_0x1db91e[_0x7fc571(0xd3)]||_0x1db91e[_0x7fc571(0xdd)]||(_0x1db91e['bffId']==null?'':String(_0x1db91e['bffId']));if(!_0x219e35)throw CliErrors['validation'](_0x7fc571(0xf6)+_0x3fdbed['cliPath']+_0x7fc571(0xcd));return executeSdkBff(_0x219e35,_0x1db91e[_0x7fc571(0xc5)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x1db91e[_0x7fc571(0x117)]);}async function resolveDatasetCode(_0x35990c,_0x390449,_0x16883c){const _0x2b8bcd=a60_0x6f84;if(_0x35990c[_0x2b8bcd(0x106)])return _0x35990c[_0x2b8bcd(0x106)];if(!_0x35990c[_0x2b8bcd(0xf5)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xf6)+_0x390449['cliPath']+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0xaf6851=await listDatasets(_0x16883c['appCode']),_0x1a63b7=_0xaf6851['find'](_0x232430=>_0x232430[_0x2b8bcd(0xfc)]?.[_0x2b8bcd(0xfe)]===_0x35990c[_0x2b8bcd(0xf5)]);if(!_0x1a63b7?.[_0x2b8bcd(0xe8)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xbe)+_0x35990c['datatable']+_0x2b8bcd(0x122)+_0x16883c[_0x2b8bcd(0xcc)]+'.',_0x2b8bcd(0x118));return _0x1a63b7[_0x2b8bcd(0xe8)];}function applyAppBinding(_0x69e9a4,_0x500afb,_0x5d5c40){const _0x3bc08e=a60_0x6f84,_0x2ff94d=_0x500afb[_0x3bc08e(0xea)][_0x3bc08e(0x120)];if(!_0x2ff94d)return;const _0x3c69d3=_0x69e9a4[_0x3bc08e(0x124)][_0x2ff94d];if(!_0x3c69d3)throw CliErrors[_0x3bc08e(0xc8)](_0x3bc08e(0x110)+_0x2ff94d+'\x22\x20in\x20service\x20command\x20'+_0x500afb[_0x3bc08e(0xec)]+'.',_0x3bc08e(0xfb));const _0x4cda1e=_0x3c69d3[_0x3bc08e(0x125)]||_0x3c69d3[_0x3bc08e(0xcc)];_0x4cda1e&&!hasText(_0x5d5c40[_0x3bc08e(0x125)])&&(_0x5d5c40[_0x3bc08e(0x125)]=_0x4cda1e),_0x3c69d3['app']&&!hasText(_0x5d5c40[_0x3bc08e(0xda)])&&!hasText(_0x5d5c40['appcode'])&&(_0x5d5c40[_0x3bc08e(0xda)]=_0x3c69d3[_0x3bc08e(0xda)]),_0x3c69d3['env']&&!hasText(_0x5d5c40['env'])&&(_0x5d5c40[_0x3bc08e(0x123)]=_0x3c69d3['env']);}function renderDynamicCommandHelp(_0x5d3533){const _0x1e2c96=a60_0x6f84,_0x3e4aaf=[_0x1e2c96(0x11b),_0x1e2c96(0x11a)+_0x5d3533['target'][_0x1e2c96(0x117)],'\x20\x20\x20\x20command:\x20'+_0x5d3533[_0x1e2c96(0xea)]['command']];if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xba)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)]);if(_0x5d3533['target'][_0x1e2c96(0xf5)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xd7)+_0x5d3533['target'][_0x1e2c96(0xf5)]);if(_0x5d3533[_0x1e2c96(0xea)]['sqlCode'])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xdc)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x11c)]);if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xf1)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)]);if(_0x5d3533[_0x1e2c96(0xbd)][_0x1e2c96(0x104)]>0x0){_0x3e4aaf[_0x1e2c96(0xb9)]('',_0x1e2c96(0xbb));for(const _0x5d5168 of _0x5d3533[_0x1e2c96(0xbd)]){_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0x11d)+(_0x5d5168['source']||_0x1e2c96(0xe6))+_0x1e2c96(0x10f)+_0x5d5168[_0x1e2c96(0xea)]+(_0x5d5168[_0x1e2c96(0x11f)]?'.'+_0x5d5168[_0x1e2c96(0x11f)]:''));}}return _0x3e4aaf[_0x1e2c96(0x116)]('\x0a');}function targetPreview(_0x1da5ce){const _0x2b7229=a60_0x6f84;return{'kind':_0x1da5ce[_0x2b7229(0x117)],'command':_0x1da5ce[_0x2b7229(0xf8)],'appRef':_0x1da5ce[_0x2b7229(0x120)],'datasetCode':_0x1da5ce[_0x2b7229(0x106)],'datatable':_0x1da5ce[_0x2b7229(0xf5)],'sqlCode':_0x1da5ce[_0x2b7229(0x11c)],'bffCode':_0x1da5ce[_0x2b7229(0xdd)],'bffId':_0x1da5ce[_0x2b7229(0xd2)],'functionName':_0x1da5ce[_0x2b7229(0xd3)]};}function normalizeScalarParams(_0x38a0c1){const _0x1ed9c5=a60_0x6f84;return Object['fromEntries'](Object[_0x1ed9c5(0xd9)](_0x38a0c1)['filter'](([,_0x3fdf11])=>typeof _0x3fdf11==='string'||typeof _0x3fdf11===_0x1ed9c5(0xe5)));}function hasText(_0x335d54){return typeof _0x335d54==='string'&&_0x335d54['trim']()['length']>0x0;}function isPrimitiveFlagDefault(_0x5a291b){const _0x243cd8=a60_0x6f84;return _0x5a291b===undefined||typeof _0x5a291b===_0x243cd8(0xcb)||typeof _0x5a291b===_0x243cd8(0xe5)||typeof _0x5a291b===_0x243cd8(0xf4);}
|
|
1
|
+
(function(_0x5ccff1,_0x4d2f61){const _0x50bfad=a60_0x1eb2,_0x4967dd=_0x5ccff1();while(!![]){try{const _0x197142=-parseInt(_0x50bfad(0x1ad))/0x1+parseInt(_0x50bfad(0x1c0))/0x2*(parseInt(_0x50bfad(0x1f7))/0x3)+-parseInt(_0x50bfad(0x1df))/0x4+-parseInt(_0x50bfad(0x1d0))/0x5*(parseInt(_0x50bfad(0x1a6))/0x6)+parseInt(_0x50bfad(0x1c4))/0x7*(parseInt(_0x50bfad(0x1d4))/0x8)+parseInt(_0x50bfad(0x1de))/0x9*(-parseInt(_0x50bfad(0x1a2))/0xa)+parseInt(_0x50bfad(0x1c1))/0xb;if(_0x197142===_0x4d2f61)break;else _0x4967dd['push'](_0x4967dd['shift']());}catch(_0xd78a0f){_0x4967dd['push'](_0x4967dd['shift']());}}}(a60_0x5016,0x514a0));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x1b090a,_0x15c9cf){const _0x2f3344=a60_0x1eb2,_0x33fabf=listLocalServiceTrees();let _0xe310b9;for(const _0x1ec4cc of _0x33fabf){const _0x2cfc40=matchServiceTreeCommand(_0x1ec4cc,_0x1b090a);if(!_0x2cfc40)continue;(!_0xe310b9||_0x2cfc40[_0x2f3344(0x1c3)][_0x2f3344(0x1c8)]['length']>_0xe310b9[_0x2f3344(0x1c3)][_0x2f3344(0x1c8)]['length'])&&(_0xe310b9={'tree':_0x1ec4cc,'command':_0x2cfc40['command'],'remainingArgs':_0x2cfc40[_0x2f3344(0x1e1)]});}if(!_0xe310b9)return undefined;const _0x2f255c={..._0x15c9cf};return applyAppBinding(_0xe310b9[_0x2f3344(0x1e0)],_0xe310b9[_0x2f3344(0x1c3)],_0x2f255c),{'definition':buildDynamicCommandDefinition(_0xe310b9[_0x2f3344(0x1e0)],_0xe310b9[_0x2f3344(0x1c3)]),'args':_0xe310b9[_0x2f3344(0x1e1)],'flags':_0x2f255c,'tree':_0xe310b9[_0x2f3344(0x1e0)],'command':_0xe310b9[_0x2f3344(0x1c3)]};}export function generateDynamicServiceHelp(_0x3b4efb){const _0x529bde=a60_0x1eb2,_0x202d2f=listLocalServiceTrees()[_0x529bde(0x1e9)](_0x26d4c9=>_0x26d4c9[_0x529bde(0x1d1)]['code']===_0x3b4efb);if(!_0x202d2f)return undefined;const _0x1e0c5a=[CLI_BIN_NAME+'\x20'+_0x3b4efb+_0x529bde(0x1c6),'',_0x202d2f[_0x529bde(0x1d1)]['name']||_0x3b4efb,_0x202d2f['service'][_0x529bde(0x1b5)]?'\x20\x20'+_0x202d2f[_0x529bde(0x1d1)]['description']:'','','Commands:',..._0x202d2f[_0x529bde(0x198)]['map'](_0x5a458e=>{const _0x5a16b0=_0x529bde,_0x3803f7=_0x5a458e[_0x5a16b0(0x1c8)][_0x5a16b0(0x1e5)](0x1)['join']('\x20'),_0x3b0a03=_0x5a458e['risk']===_0x5a16b0(0x1bc)?'':'\x20['+_0x5a458e[_0x5a16b0(0x1ee)]+']';return'\x20\x20'+_0x3803f7[_0x5a16b0(0x1f0)](0x18)+'\x20'+(_0x5a458e['description']||'')+_0x3b0a03;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x3b4efb+_0x529bde(0x1c9)][_0x529bde(0x1ae)](Boolean);return _0x1e0c5a[_0x529bde(0x19b)]('\x0a');}export function listDynamicServiceEntries(){const _0x2b303d=a60_0x1eb2;return listLocalServices()[_0x2b303d(0x1d7)](_0x2107de=>{const _0x20b691=_0x2b303d,_0x223078=_0x2107de['normalizedManifest'];return{'service':_0x223078[_0x20b691(0x1d1)][_0x20b691(0x1cc)],'label':_0x223078['service']['name']||_0x223078[_0x20b691(0x1d1)]['code'],'commands':_0x223078[_0x20b691(0x198)][_0x20b691(0x1d7)](_0x54f6f1=>({'command':dynamicCommandName(_0x54f6f1),'description':_0x54f6f1[_0x20b691(0x1b5)]||_0x20b691(0x1d8)+_0x54f6f1['cliPath'],'tag':riskTag(_0x54f6f1[_0x20b691(0x1ee)])}))};});}export function getDynamicServiceEntry(_0x129454){const _0x2b3080=a60_0x1eb2;return listDynamicServiceEntries()['find'](_0x53844f=>_0x53844f[_0x2b3080(0x1d1)]===_0x129454);}export function listDynamicServiceDefinitions(_0x228fba){const _0xc9d8b6=a60_0x1eb2;return listLocalServiceTrees()['filter'](_0x13dcd2=>!_0x228fba||_0x13dcd2[_0xc9d8b6(0x1d1)][_0xc9d8b6(0x1cc)]===_0x228fba)[_0xc9d8b6(0x1d3)](_0x4e1bd3=>_0x4e1bd3[_0xc9d8b6(0x198)][_0xc9d8b6(0x1d7)](_0x650806=>buildDynamicCommandDefinition(_0x4e1bd3,_0x650806)));}export function getDynamicServiceDefinitions(_0x29ea63){const _0x3a7e1a=a60_0x1eb2,_0x235ec4=listDynamicServiceDefinitions(_0x29ea63);return _0x235ec4[_0x3a7e1a(0x1e4)]>0x0?_0x235ec4:undefined;}export function findDynamicServiceDefinition(_0x3b5e9c,_0x37d958){const _0x17eb0a=a60_0x1eb2;return listDynamicServiceDefinitions(_0x3b5e9c)[_0x17eb0a(0x1e9)](_0x1b58de=>_0x1b58de[_0x17eb0a(0x1c3)]===_0x37d958);}export function buildDynamicCommandDefinition(_0x1967cf,_0x564ca0){const _0x47e62e=a60_0x1eb2;return{'service':_0x1967cf[_0x47e62e(0x1d1)]['code'],'command':dynamicCommandName(_0x564ca0),'description':_0x564ca0['description']||_0x47e62e(0x1d8)+_0x564ca0[_0x47e62e(0x19a)],'risk':_0x564ca0['risk'],..._0x564ca0[_0x47e62e(0x1ee)]===_0x47e62e(0x1bc)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x564ca0)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x564ca0[_0x47e62e(0x1fb)]['map'](_0x35ca8a=>({'name':_0x35ca8a[_0x47e62e(0x1ca)],'description':_0x35ca8a[_0x47e62e(0x1b5)]||_0x35ca8a[_0x47e62e(0x1ca)],'required':_0x35ca8a[_0x47e62e(0x1ce)]})),'flags':_0x564ca0['flags'][_0x47e62e(0x1d7)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x564ca0),async 'dryRun'(_0x54f342){const _0xa076b=_0x47e62e,_0x2c3200=await compilePlan(_0x564ca0,_0x54f342);return{'method':'SERVICE_TREE','url':_0x564ca0[_0xa076b(0x19a)],'body':{'target':targetPreview(_0x2c3200),'params':_0x2c3200['params']},'description':_0xa076b(0x1f1)+_0x564ca0[_0xa076b(0x19a)]};},async 'execute'(_0x6df5e8){const _0x3b245b=_0x47e62e,_0x3502d2=await compilePlan(_0x564ca0,_0x6df5e8),_0x3fe7d5=Date[_0x3b245b(0x1d5)](),_0x108938=await executePlan(_0x3502d2,_0x564ca0,_0x6df5e8),_0xc9aefe=Date[_0x3b245b(0x1d5)]()-_0x3fe7d5;return{'ok':!![],'data':{'service':_0x1967cf[_0x3b245b(0x1d1)],'command':_0x564ca0[_0x3b245b(0x19a)],'target':targetPreview(_0x3502d2),'result':_0x108938,'elapsed':_0xc9aefe},'message':_0x3b245b(0x1f2)+_0x564ca0[_0x3b245b(0x19a)]+_0x3b245b(0x1d2)+_0xc9aefe+'ms'};}};}function buildDynamicConfirmationDescription(_0x3eb6b1){const _0x5dbccc=a60_0x1eb2,_0x23a7d9=_0x3eb6b1['description']||_0x3eb6b1[_0x5dbccc(0x19a)],_0x2a202e=_0x3eb6b1[_0x5dbccc(0x1ee)]===_0x5dbccc(0x1aa)?_0x5dbccc(0x1eb):_0x5dbccc(0x1b7);return _0x5dbccc(0x1a8)+_0x23a7d9+_0x5dbccc(0x1a4)+_0x2a202e;}function a60_0x5016(){const _0x3688b2=['64LKZdyU','now','cliName','map','Run\x20service\x20command\x20','enum','trim','appcode','string','fromEntries','5460201pEgMsG','2189240LSwWgS','tree','remainingArgs','scriptName','bff','length','slice','appRef','\x20\x20\x20\x20datasetCode:\x20','kind','find','json','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','params','employeeId','risk','target','padEnd','Preview\x20dynamic\x20service\x20command:\x20','Service\x20command\x20','sqlCode','\x20requires\x20target.functionName.','validation','userId','1641rayRMu','Cannot\x20resolve\x20datatable\x20\x22','userName','boolean','args','nickName','appCode','number','tableName','source','commands','app','cliPath','join','rawFlags','Unknown\x20appRef\x20\x22','\x20\x20SERVICE\x20TREE\x20TARGET','tenantCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','push','10MGLGsE','data','\x22.\x20','some','1289982AVZYuR','sql','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','type','high-risk-write','\x20\x20\x20\x20','Unsupported\x20service\x20target\x20kind:\x20','536671DOcNAZ','filter','ctx.','username','env','nickname','envName','bffCode','description','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','bffId','context.','entries','datasetCode','read','default','\x20\x20\x20\x20functionName:\x20','datatable','1778sybaQX','17289360NXrWos','operator','command','158011vJjLwG','\x20\x20\x20\x20sqlCode:\x20','\x20<command>\x20[flags]','\x20\x20\x20\x20datatable:\x20','fullPath','`\x20to\x20inspect\x20the\x20manifest.','name','startsWith','code','mapTo','required','dbtableConfig','5hYyZwN','service','\x20completed\x20in\x20','flatMap'];a60_0x5016=function(){return _0x3688b2;};return a60_0x5016();}function dynamicCommandName(_0x2017a4){const _0x36b016=a60_0x1eb2;return _0x2017a4[_0x36b016(0x1c8)][_0x36b016(0x1e5)](0x1)[_0x36b016(0x19b)]('\x20');}function riskTag(_0x5ce970){const _0x2ef1b1=a60_0x1eb2;return _0x5ce970===_0x2ef1b1(0x1bc)?'':'\x20\x20['+_0x5ce970+']';}function flagToCommandFlag(_0x4c9742){const _0x1a8333=a60_0x1eb2;return{'name':_0x4c9742[_0x1a8333(0x1d6)],'type':_0x4c9742[_0x1a8333(0x1a9)]===_0x1a8333(0x1ea)?_0x1a8333(0x1dc):_0x4c9742['type'],'description':_0x4c9742[_0x1a8333(0x1b5)]||_0x4c9742[_0x1a8333(0x1ca)],'required':_0x4c9742['required'],'default':isPrimitiveFlagDefault(_0x4c9742[_0x1a8333(0x1bd)])?_0x4c9742[_0x1a8333(0x1bd)]:undefined,'enum':_0x4c9742[_0x1a8333(0x1d9)]};}async function compilePlan(_0x23b828,_0x34c8d8){const _0xb947ad=a60_0x1eb2;return compileServiceTreeCommand(_0x23b828,{'flags':_0x34c8d8[_0xb947ad(0x19c)],'args':_0x34c8d8['args'],'context':await buildServiceContext(_0x23b828,_0x34c8d8)});}async function buildServiceContext(_0xaa5e55,_0x580af2){const _0x361e4e=a60_0x1eb2,_0xd01f84={'appCode':_0x580af2[_0x361e4e(0x194)],'env':_0x580af2[_0x361e4e(0x1b3)],'envName':_0x580af2[_0x361e4e(0x1b3)]};if(!usesRuntimeContext(_0xaa5e55))return _0xd01f84;const _0x3648af=await getLoginUserInfo(),_0x3553b3=pickFirst(_0x3648af[_0x361e4e(0x1f6)],_0x3648af['id']);return{..._0xd01f84,'user':_0x3648af,'userId':_0x3553b3,'id':_0x3648af['id'],'username':pickFirst(_0x3648af[_0x361e4e(0x1b0)],_0x3648af['userName'],_0x3648af['loginName']),'userName':_0x3648af[_0x361e4e(0x1f9)],'nickname':pickFirst(_0x3648af[_0x361e4e(0x1b2)],_0x3648af['nickName']),'nickName':_0x3648af[_0x361e4e(0x1fc)],'tenantCode':_0x3648af[_0x361e4e(0x19f)],'employeeId':_0x3648af[_0x361e4e(0x1ed)]};}function usesRuntimeContext(_0x5e1f67){const _0x1b06be=a60_0x1eb2;return _0x5e1f67[_0x1b06be(0x1cd)][_0x1b06be(0x1a5)](_0x5b8bbc=>typeof _0x5b8bbc['source']===_0x1b06be(0x1dc)&&(_0x5b8bbc['source'][_0x1b06be(0x1cb)](_0x1b06be(0x1b9))||_0x5b8bbc[_0x1b06be(0x197)][_0x1b06be(0x1cb)](_0x1b06be(0x1af))));}function pickFirst(..._0x24efa8){return _0x24efa8['find'](_0x510120=>_0x510120!==undefined&&_0x510120!==null);}async function executePlan(_0x27c58f,_0xa94b1f,_0x59d268){const _0x5f51ff=a60_0x1eb2;if(_0x27c58f[_0x5f51ff(0x1e8)]===_0x5f51ff(0x1a3)){const _0x3a8e0a=await resolveDatasetCode(_0x27c58f,_0xa94b1f,_0x59d268);return executeData(_0x3a8e0a,_0x27c58f[_0x5f51ff(0x1c3)],_0x27c58f[_0x5f51ff(0x1ec)]);}if(_0x27c58f[_0x5f51ff(0x1e8)]===_0x5f51ff(0x1a7)){if(!_0x27c58f[_0x5f51ff(0x1f3)])throw CliErrors['validation'](_0x5f51ff(0x1f2)+_0xa94b1f[_0x5f51ff(0x19a)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x27c58f[_0x5f51ff(0x1f3)],normalizeScalarParams(_0x27c58f[_0x5f51ff(0x1ec)]));}if(_0x27c58f[_0x5f51ff(0x1e8)]===_0x5f51ff(0x1e3)){const _0x185c3e=_0x27c58f[_0x5f51ff(0x1e2)]||_0x27c58f[_0x5f51ff(0x1b4)]||(_0x27c58f[_0x5f51ff(0x1b8)]==null?'':String(_0x27c58f[_0x5f51ff(0x1b8)]));if(!_0x185c3e)throw CliErrors[_0x5f51ff(0x1f5)]('Service\x20command\x20'+_0xa94b1f[_0x5f51ff(0x19a)]+_0x5f51ff(0x1f4));return executeSdkBff(_0x185c3e,_0x27c58f[_0x5f51ff(0x1ec)]);}throw CliErrors[_0x5f51ff(0x1f5)](_0x5f51ff(0x1ac)+_0x27c58f[_0x5f51ff(0x1e8)]);}async function resolveDatasetCode(_0x5365d5,_0x4bd7df,_0x3e12be){const _0x381275=a60_0x1eb2;if(_0x5365d5[_0x381275(0x1bb)])return _0x5365d5['datasetCode'];if(!_0x5365d5[_0x381275(0x1bf)])throw CliErrors[_0x381275(0x1f5)](_0x381275(0x1f2)+_0x4bd7df[_0x381275(0x19a)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x1f0b31=await listDatasets(_0x3e12be[_0x381275(0x194)]),_0x4b3382=_0x1f0b31[_0x381275(0x1e9)](_0x3ec853=>_0x3ec853[_0x381275(0x1cf)]?.[_0x381275(0x196)]===_0x5365d5[_0x381275(0x1bf)]);if(!_0x4b3382?.[_0x381275(0x1cc)])throw CliErrors[_0x381275(0x1f5)](_0x381275(0x1f8)+_0x5365d5['datatable']+_0x381275(0x1a0)+_0x3e12be[_0x381275(0x194)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x4b3382[_0x381275(0x1cc)];}function a60_0x1eb2(_0x4b67d2,_0x2e93e2){_0x4b67d2=_0x4b67d2-0x194;const _0x501623=a60_0x5016();let _0x1eb20d=_0x501623[_0x4b67d2];return _0x1eb20d;}function applyAppBinding(_0x444d92,_0x3d4400,_0x1d00f8){const _0x2a4538=a60_0x1eb2,_0x1fd2f5=_0x3d4400['target']['appRef'];if(!_0x1fd2f5)return;const _0x17336b=_0x444d92['appBindings'][_0x1fd2f5];if(!_0x17336b)throw CliErrors[_0x2a4538(0x1f5)](_0x2a4538(0x19d)+_0x1fd2f5+'\x22\x20in\x20service\x20command\x20'+_0x3d4400[_0x2a4538(0x19a)]+'.',_0x2a4538(0x1b6));const _0x10dbbf=_0x17336b[_0x2a4538(0x1db)]||_0x17336b[_0x2a4538(0x194)];_0x10dbbf&&!hasText(_0x1d00f8[_0x2a4538(0x1db)])&&(_0x1d00f8[_0x2a4538(0x1db)]=_0x10dbbf),_0x17336b['app']&&!hasText(_0x1d00f8[_0x2a4538(0x199)])&&!hasText(_0x1d00f8[_0x2a4538(0x1db)])&&(_0x1d00f8[_0x2a4538(0x199)]=_0x17336b[_0x2a4538(0x199)]),_0x17336b['env']&&!hasText(_0x1d00f8[_0x2a4538(0x1b1)])&&(_0x1d00f8['env']=_0x17336b[_0x2a4538(0x1b1)]);}function renderDynamicCommandHelp(_0x51e3d4){const _0x4ba8c7=a60_0x1eb2,_0x521485=[_0x4ba8c7(0x19e),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1e8)],'\x20\x20\x20\x20command:\x20'+_0x51e3d4['target'][_0x4ba8c7(0x1c3)]];if(_0x51e3d4[_0x4ba8c7(0x1ef)]['datasetCode'])_0x521485['push'](_0x4ba8c7(0x1e7)+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1bb)]);if(_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1bf)])_0x521485[_0x4ba8c7(0x1a1)](_0x4ba8c7(0x1c7)+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1bf)]);if(_0x51e3d4['target'][_0x4ba8c7(0x1f3)])_0x521485[_0x4ba8c7(0x1a1)](_0x4ba8c7(0x1c5)+_0x51e3d4['target'][_0x4ba8c7(0x1f3)]);if(_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1e2)])_0x521485['push'](_0x4ba8c7(0x1be)+_0x51e3d4[_0x4ba8c7(0x1ef)][_0x4ba8c7(0x1e2)]);if(_0x51e3d4[_0x4ba8c7(0x1cd)][_0x4ba8c7(0x1e4)]>0x0){_0x521485['push']('','\x20\x20MAP\x20TO');for(const _0x34da40 of _0x51e3d4[_0x4ba8c7(0x1cd)]){_0x521485[_0x4ba8c7(0x1a1)](_0x4ba8c7(0x1ab)+(_0x34da40['source']||'const')+'\x20->\x20'+_0x34da40['target']+(_0x34da40[_0x4ba8c7(0x1c2)]?'.'+_0x34da40[_0x4ba8c7(0x1c2)]:''));}}return _0x521485[_0x4ba8c7(0x19b)]('\x0a');}function targetPreview(_0x11ad3d){const _0x1340dd=a60_0x1eb2;return{'kind':_0x11ad3d[_0x1340dd(0x1e8)],'command':_0x11ad3d[_0x1340dd(0x1c3)],'appRef':_0x11ad3d[_0x1340dd(0x1e6)],'datasetCode':_0x11ad3d[_0x1340dd(0x1bb)],'datatable':_0x11ad3d[_0x1340dd(0x1bf)],'sqlCode':_0x11ad3d[_0x1340dd(0x1f3)],'bffCode':_0x11ad3d[_0x1340dd(0x1b4)],'bffId':_0x11ad3d[_0x1340dd(0x1b8)],'functionName':_0x11ad3d[_0x1340dd(0x1e2)]};}function normalizeScalarParams(_0x22ea30){const _0x1e12fd=a60_0x1eb2;return Object[_0x1e12fd(0x1dd)](Object[_0x1e12fd(0x1ba)](_0x22ea30)[_0x1e12fd(0x1ae)](([,_0x5b8153])=>typeof _0x5b8153===_0x1e12fd(0x1dc)||typeof _0x5b8153===_0x1e12fd(0x195)));}function hasText(_0x2144ae){const _0x5219bd=a60_0x1eb2;return typeof _0x2144ae==='string'&&_0x2144ae[_0x5219bd(0x1da)]()[_0x5219bd(0x1e4)]>0x0;}function isPrimitiveFlagDefault(_0x4e9b20){const _0x17fdf4=a60_0x1eb2;return _0x4e9b20===undefined||typeof _0x4e9b20===_0x17fdf4(0x1dc)||typeof _0x4e9b20===_0x17fdf4(0x195)||typeof _0x4e9b20===_0x17fdf4(0x1fa);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4df6e9,_0x43de19){const _0xe3ee77=a61_0x5f27,_0x252a9d=_0x4df6e9();while(!![]){try{const _0x314072=parseInt(_0xe3ee77(0xd3))/0x1+-parseInt(_0xe3ee77(0xc3))/0x2+parseInt(_0xe3ee77(0xd1))/0x3+-parseInt(_0xe3ee77(0xb9))/0x4+-parseInt(_0xe3ee77(0xc2))/0x5*(parseInt(_0xe3ee77(0xd4))/0x6)+-parseInt(_0xe3ee77(0xc1))/0x7*(-parseInt(_0xe3ee77(0xd6))/0x8)+parseInt(_0xe3ee77(0xce))/0x9;if(_0x314072===_0x43de19)break;else _0x252a9d['push'](_0x252a9d['shift']());}catch(_0x869c65){_0x252a9d['push'](_0x252a9d['shift']());}}}(a61_0x4ec5,0x28f2a));export function adaptServiceTreeManifestForLegacyFramework(_0x3024d0){const _0x402fcf=a61_0x5f27,_0x48fd19=cloneJsonValue(_0x3024d0),_0x3dfa23=[];if(!isObjectRecord(_0x48fd19))return{'manifest':_0x48fd19,'errors':_0x3dfa23};return Array[_0x402fcf(0xd5)](_0x48fd19[_0x402fcf(0xc0)])&&_0x48fd19['commands'][_0x402fcf(0xd7)]((_0xc0c946,_0xce0ec3)=>{const _0x5b9430=_0x402fcf;if(!isObjectRecord(_0xc0c946))return;adaptBffTarget(_0xc0c946[_0x5b9430(0xcb)],_0x5b9430(0xbc)+_0xce0ec3+'].target',_0x3dfa23);}),adaptResources(_0x48fd19[_0x402fcf(0xdc)],_0x402fcf(0xc5),_0x3dfa23),{'manifest':_0x48fd19,'errors':_0x3dfa23};}export function toPublicServiceTreeTarget(_0x1a1e06){const _0x42219c=a61_0x5f27,{scriptName:_0x2b85ec,..._0x513f74}=_0x1a1e06;return typeof _0x2b85ec===_0x42219c(0xc7)&&_0x2b85ec[_0x42219c(0xda)]()&&(_0x513f74[_0x42219c(0xcc)]=_0x2b85ec),_0x513f74;}function a61_0x4ec5(){const _0x560be7=['forEach','kind','.scriptName','trim','bff.exec','resources','bff','action','340764GIicMo','error','scriptName','$.commands[','.resources','call','.functionName','commands','49iNYBFP','275OsTgPe','173554FOkcAJ','.target','$.resources','object','string','hasOwnProperty','push','entries','target','functionName','prototype','428022WquESM','.actions.','actions','534546yFzBgV','map','328169TKAPnS','34872CjrMFs','isArray','120504cvtSem'];a61_0x4ec5=function(){return _0x560be7;};return a61_0x4ec5();}export function toPublicNormalizedServiceTree(_0x3a47d1){const _0x21f43d=a61_0x5f27;return{..._0x3a47d1,'commands':_0x3a47d1[_0x21f43d(0xc0)][_0x21f43d(0xd2)](_0xe4323c=>({..._0xe4323c,'target':toPublicServiceTreeTarget(_0xe4323c['target'])}))};}function adaptResources(_0x28970b,_0x497500,_0x4de1b3){const _0x350689=a61_0x5f27;if(!isObjectRecord(_0x28970b))return;for(const [_0x18a957,_0x156085]of Object['entries'](_0x28970b)){if(!isObjectRecord(_0x156085))continue;const _0x4ed69f=_0x497500+'.'+_0x18a957;if(isObjectRecord(_0x156085[_0x350689(0xd0)]))for(const [_0x363a8f,_0x46fa9b]of Object[_0x350689(0xca)](_0x156085['actions'])){if(!isObjectRecord(_0x46fa9b))continue;const _0x2ebc0a=_0x4ed69f+_0x350689(0xcf)+_0x363a8f,_0x268be2=isObjectRecord(_0x46fa9b[_0x350689(0xcb)])&&_0x46fa9b[_0x350689(0xcb)]['kind']===_0x350689(0xdd);adaptBffTarget(_0x46fa9b[_0x350689(0xcb)],_0x2ebc0a+_0x350689(0xc4),_0x4de1b3),(_0x268be2||isBffAction(_0x46fa9b))&&adaptFunctionNameField(_0x46fa9b,_0x2ebc0a,_0x4de1b3);}adaptResources(_0x156085[_0x350689(0xdc)],_0x4ed69f+_0x350689(0xbd),_0x4de1b3);}}function a61_0x5f27(_0x431be7,_0x7e1744){_0x431be7=_0x431be7-0xb8;const _0x4ec533=a61_0x4ec5();let _0x5f27e1=_0x4ec533[_0x431be7];return _0x5f27e1;}function adaptBffTarget(_0x363478,_0x567d32,_0x3230a6){const _0x2a9780=a61_0x5f27;if(!isObjectRecord(_0x363478)||_0x363478['kind']!==_0x2a9780(0xdd))return;adaptFunctionNameField(_0x363478,_0x567d32,_0x3230a6);}function adaptFunctionNameField(_0x260e15,_0x19277e,_0x436568){const _0x574e60=a61_0x5f27;Object['prototype'][_0x574e60(0xc8)][_0x574e60(0xbe)](_0x260e15,_0x574e60(0xbb))&&_0x436568[_0x574e60(0xc9)]({'level':'error','path':_0x19277e+_0x574e60(0xd9),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x574e60(0xcd)][_0x574e60(0xc8)][_0x574e60(0xbe)](_0x260e15,_0x574e60(0xcc))){if(typeof _0x260e15[_0x574e60(0xcc)]!==_0x574e60(0xc7)||!_0x260e15[_0x574e60(0xcc)]['trim']()){_0x436568[_0x574e60(0xc9)]({'level':_0x574e60(0xba),'path':_0x19277e+_0x574e60(0xbf),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x260e15[_0x574e60(0xcc)];return;}_0x260e15['scriptName']=_0x260e15['functionName'],delete _0x260e15[_0x574e60(0xcc)];}}function isBffAction(_0x5d8df5){const _0x306904=a61_0x5f27;return _0x5d8df5[_0x306904(0xd8)]===_0x306904(0xdd)||_0x5d8df5[_0x306904(0xb8)]===_0x306904(0xdb)||_0x5d8df5[_0x306904(0xcb)]===_0x306904(0xdb);}function cloneJsonValue(_0x4dbd81){const _0x551c04=a61_0x5f27;if(Array[_0x551c04(0xd5)](_0x4dbd81))return _0x4dbd81['map'](_0x467ec0=>cloneJsonValue(_0x467ec0));if(isObjectRecord(_0x4dbd81))return Object['fromEntries'](Object[_0x551c04(0xca)](_0x4dbd81)[_0x551c04(0xd2)](([_0x273553,_0x383412])=>[_0x273553,cloneJsonValue(_0x383412)]));return _0x4dbd81;}function isObjectRecord(_0x315cce){const _0x1d68cf=a61_0x5f27;return Boolean(_0x315cce)&&typeof _0x315cce===_0x1d68cf(0xc6)&&!Array[_0x1d68cf(0xd5)](_0x315cce);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x5216c9=a62_0x46cd;function a62_0x56e2(){const _0x597a5d=['8OFfUKp','57870aPhCsF','list','1009617bGFlDU','registry','\x20service(s),\x20updated\x20','import','name','required','remove','length','lower\x20kebab-case\x20service\x20code','service','flags','730885UinsJB','Local\x20service\x20code,\x20for\x20example\x20crm','write','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','kind','validate','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','type','Service\x20Tree\x20manifest\x20file\x20path','registryIndex','registryServiceCode','manifest','Imported','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.','Exported\x20service\x20','hash','1195438YncrEB','version','reduce','serviceCount','read','Imported\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','normalizedManifest','target','file','entry','source','3931014qVBfkS','12wdinbL','entries','description','imported','string','str','export','updated','4122643YAhoBe','cliPath','report','errors','WRITE','Updated','manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','filePath','cliName','registryPath','1051585EXwOIb','importedAt','serviceCode','commands','warnings','Service\x20manifest\x20validation\x20passed.','map','\x20service\x20','Service\x20registry\x20validation\x20passed.','Removed\x20service\x20','risk','replaced'];a62_0x56e2=function(){return _0x597a5d;};return a62_0x56e2();}function a62_0x46cd(_0xfe6874,_0x778575){_0xfe6874=_0xfe6874-0xaa;const _0x56e294=a62_0x56e2();let _0x46cdc0=_0x56e294[_0xfe6874];return _0x46cdc0;}(function(_0x252812,_0x47c1dd){const _0x19b32f=a62_0x46cd,_0xe1c1c5=_0x252812();while(!![]){try{const _0x747fa8=parseInt(_0x19b32f(0xee))/0x1+-parseInt(_0x19b32f(0xb4))/0x2+-parseInt(_0x19b32f(0xe3))/0x3+parseInt(_0x19b32f(0xc1))/0x4*(-parseInt(_0x19b32f(0xd4))/0x5)+parseInt(_0x19b32f(0xc0))/0x6+-parseInt(_0x19b32f(0xc9))/0x7*(-parseInt(_0x19b32f(0xe0))/0x8)+parseInt(_0x19b32f(0xe1))/0x9;if(_0x747fa8===_0x47c1dd)break;else _0xe1c1c5['push'](_0xe1c1c5['shift']());}catch(_0xe36c80){_0xe1c1c5['push'](_0xe1c1c5['shift']());}}}(a62_0x56e2,0x659e0));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_0x5216c9(0xbd),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xac)},SERVICE_FLAG={'name':a62_0x5216c9(0xec),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xef),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x5216c9(0xeb)}};function summarizeService(_0x4410af){const _0x3d735e=a62_0x5216c9;return{'serviceCode':_0x4410af[_0x3d735e(0xd6)],'name':_0x4410af[_0x3d735e(0xbb)]['service'][_0x3d735e(0xe7)],'version':_0x4410af[_0x3d735e(0xb5)],'importedAt':_0x4410af[_0x3d735e(0xd5)],'source':_0x4410af['source'],'commandCount':_0x4410af[_0x3d735e(0xbb)][_0x3d735e(0xd7)][_0x3d735e(0xea)],'commands':_0x4410af['normalizedManifest'][_0x3d735e(0xd7)][_0x3d735e(0xda)](_0x9079bd=>({'path':_0x9079bd['cliPath'],'description':_0x9079bd[_0x3d735e(0xc3)],'risk':_0x9079bd[_0x3d735e(0xde)],'target':toPublicServiceTreeTarget(_0x9079bd[_0x3d735e(0xbc)]),'flags':_0x9079bd[_0x3d735e(0xed)][_0x3d735e(0xda)](_0x30c06d=>({'name':_0x30c06d[_0x3d735e(0xe7)],'cliName':_0x30c06d[_0x3d735e(0xd2)],'type':_0x30c06d[_0x3d735e(0xab)],'required':_0x30c06d[_0x3d735e(0xe8)]===!![]}))}))};}function summarizeLoadedManifest(_0x30fe86){const _0x409c0d=a62_0x5216c9;return{'service':_0x30fe86['normalizedManifest']?.['service'],'version':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xb5)],'commandCount':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xea)]??0x0,'commands':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xda)](_0x140d8f=>({'path':_0x140d8f['cliPath'],'risk':_0x140d8f[_0x409c0d(0xde)],'target':toPublicServiceTreeTarget(_0x140d8f[_0x409c0d(0xbc)])}))??[],'registryIndex':_0x30fe86[_0x409c0d(0xad)],'registryServiceCode':_0x30fe86[_0x409c0d(0xae)],'errors':_0x30fe86[_0x409c0d(0xcb)][_0x409c0d(0xcc)],'warnings':_0x30fe86[_0x409c0d(0xcb)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xf3),'description':a62_0x5216c9(0xd0),'risk':a62_0x5216c9(0xb8),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xca8a37){const _0x958f72=a62_0x5216c9,_0x9c3643=loadServiceManifestFromFile(_0xca8a37[_0x958f72(0xc6)](_0x958f72(0xbd)));if(!_0x9c3643[_0x958f72(0xcb)]['ok'])return{'ok':![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643['manifests'][_0x958f72(0xea)],'services':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xda)](summarizeLoadedManifest),'errors':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xcc)],'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':formatValidationFailure(_0x9c3643[_0x958f72(0xcb)])};if(_0x9c3643[_0x958f72(0xf2)]===_0x958f72(0xe4)||_0x9c3643['manifests'][_0x958f72(0xea)]!==0x1)return{'ok':!![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643[_0x958f72(0xcf)]['length'],'commandCount':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xb6)]((_0x5bd8bf,_0x291242)=>_0x5bd8bf+(_0x291242[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0),0x0),'services':_0x9c3643[_0x958f72(0xcf)]['map'](summarizeLoadedManifest),'warnings':_0x9c3643[_0x958f72(0xcb)]['warnings']},'message':_0x958f72(0xdc)};return{'ok':!![],'data':{'file':_0x9c3643['filePath'],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643[_0x958f72(0xf2)],'service':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xec)],'version':_0x9c3643[_0x958f72(0xbb)]?.['version'],'commandCount':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0,'commands':_0x9c3643[_0x958f72(0xbb)]?.['commands'][_0x958f72(0xda)](_0x6f5a1e=>({'path':_0x6f5a1e[_0x958f72(0xca)],'risk':_0x6f5a1e['risk'],'target':toPublicServiceTreeTarget(_0x6f5a1e['target'])})),'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':_0x958f72(0xd9)};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe6),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x5216c9(0xf0),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2fc7f7){const _0x3177a0=a62_0x5216c9,_0x2b57fd=loadServiceManifestFromFile(_0x2fc7f7['str'](_0x3177a0(0xbd)));return{'method':_0x3177a0(0xcd),'url':getServiceRegistryPath(),'body':{'file':_0x2b57fd[_0x3177a0(0xd1)],'hash':_0x2b57fd['hash'],'kind':_0x2b57fd[_0x3177a0(0xf2)],'ok':_0x2b57fd[_0x3177a0(0xcb)]['ok'],'service':_0x2b57fd[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xb5)],'serviceCount':_0x2b57fd['manifests']['length'],'services':_0x2b57fd[_0x3177a0(0xcf)][_0x3177a0(0xda)](_0xf91761=>({'service':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xb5)],'commandCount':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0,'errors':_0xf91761[_0x3177a0(0xcb)][_0x3177a0(0xcc)]})),'errors':_0x2b57fd['report'][_0x3177a0(0xcc)],'commandCount':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x50aa88){const _0x510d54=a62_0x5216c9,_0x5ad74c=importServiceManifest(_0x50aa88[_0x510d54(0xc6)]('file'));if(_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xea)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5ad74c['registryPath'],'imported':_0x5ad74c[_0x510d54(0xc4)],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'services':_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xda)](summarizeService)},'message':_0x510d54(0xb9)+_0x5ad74c['imported']+_0x510d54(0xe5)+_0x5ad74c[_0x510d54(0xc8)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x5ad74c[_0x510d54(0xd3)],'replaced':_0x5ad74c[_0x510d54(0xdf)],'imported':_0x5ad74c['imported'],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'service':summarizeService(_0x5ad74c[_0x510d54(0xbe)])},'message':(_0x5ad74c[_0x510d54(0xdf)]?_0x510d54(0xce):_0x510d54(0xb0))+_0x510d54(0xdb)+_0x5ad74c[_0x510d54(0xbe)][_0x510d54(0xd6)]+'.'};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xc7),'description':a62_0x5216c9(0xf4),'risk':'write','confirmationDescription':a62_0x5216c9(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4fd724){const _0x150834=a62_0x5216c9,_0x4279ff=getLocalServiceEntry(_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)));return{'method':_0x150834(0xcd),'url':_0x4fd724[_0x150834(0xc6)](_0x150834(0xbd)),'body':{'service':_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)),'found':Boolean(_0x4279ff),'version':_0x4279ff?.['version'],'source':_0x4279ff?.[_0x150834(0xbf)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xf8bb73){const _0xb7457e=a62_0x5216c9,_0x360fee=exportServiceManifest(_0xf8bb73[_0xb7457e(0xc6)](_0xb7457e(0xec)),_0xf8bb73[_0xb7457e(0xc6)]('file'));return{'ok':!![],'data':{'registryPath':_0x360fee[_0xb7457e(0xd3)],'file':_0x360fee[_0xb7457e(0xd1)],'service':summarizeService(_0x360fee[_0xb7457e(0xbe)])},'message':_0xb7457e(0xb2)+_0x360fee[_0xb7457e(0xbe)][_0xb7457e(0xd6)]+'.'};}},{'service':'service','command':a62_0x5216c9(0xe2),'description':a62_0x5216c9(0xba),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x57a66d=a62_0x5216c9,_0x1e2876=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1e2876[_0x57a66d(0xea)],'services':_0x1e2876['map'](summarizeService)}};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe9),'description':a62_0x5216c9(0xaa),'risk':a62_0x5216c9(0xf0),'confirmationDescription':a62_0x5216c9(0xf1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x208046){const _0x263a0f=a62_0x5216c9,_0x4431ab=getLocalServiceEntry(_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)),'found':Boolean(_0x4431ab),'version':_0x4431ab?.[_0x263a0f(0xb5)],'source':_0x4431ab?.[_0x263a0f(0xbf)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x13b534){const _0x325705=a62_0x5216c9,_0x3d63b9=removeServiceManifest(_0x13b534[_0x325705(0xc6)](_0x325705(0xec)));return{'ok':!![],'data':{'registryPath':_0x3d63b9[_0x325705(0xd3)],'serviceCount':_0x3d63b9[_0x325705(0xb7)],'service':summarizeService(_0x3d63b9[_0x325705(0xbe)])},'message':_0x325705(0xdd)+_0x3d63b9[_0x325705(0xbe)][_0x325705(0xd6)]+'.'};}},{'service':'service','command':'detail','description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x8dfe3b){const _0x5129c7=a62_0x5216c9,_0x30ed5d=getLocalServiceEntry(_0x8dfe3b[_0x5129c7(0xc6)](_0x5129c7(0xec)));if(!_0x30ed5d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x8dfe3b[_0x5129c7(0xc6)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x8dfe3b[_0x5129c7(0xc6)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x30ed5d),'manifest':_0x30ed5d[_0x5129c7(0xaf)],'normalizedManifest':toPublicNormalizedServiceTree(_0x30ed5d[_0x5129c7(0xbb)])}};}}];
|
|
1
|
+
const a62_0x49e01e=a62_0xaaa5;function a62_0x34d3(){const _0x5ab5fc=['registryIndex','map','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','registry','updated','errors','manifests','read','replaced','service','manifest','serviceCount','entries','validate','4389912CuMCqx','target','str','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','version','Updated','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','kind','registryPath','import','Service\x20manifest\x20validation\x20passed.','24bhvbom','60MTmtHd','serviceCode','240680danucF','Service\x20Tree\x20manifest\x20file\x20path','43546GfNFlF','Local\x20service\x20not\x20found:\x20','importedAt','report','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','source','commands','Exported\x20service\x20','detail','length','824292pSVYwh','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','write','normalizedManifest','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryServiceCode','export','entry','string','type','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','WRITE','name','hash','\x20service(s).','176250QqbrFQ','43SKardB','reduce','remove','\x20service(s),\x20updated\x20','warnings','description','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','4311180rtqRXo','imported','cliName','3023025DttvMW','\x20service\x20','Imported','Local\x20service\x20code,\x20for\x20example\x20crm','risk','Removed\x20service\x20','required','file','filePath','list','24jofBTV'];a62_0x34d3=function(){return _0x5ab5fc;};return a62_0x34d3();}(function(_0x17921e,_0x1153df){const _0x4f4d8e=a62_0xaaa5,_0x341b44=_0x17921e();while(!![]){try{const _0x4609b7=-parseInt(_0x4f4d8e(0xc7))/0x1*(-parseInt(_0x4f4d8e(0xfa))/0x2)+-parseInt(_0x4f4d8e(0xc6))/0x3*(parseInt(_0x4f4d8e(0xdb))/0x4)+-parseInt(_0x4f4d8e(0xd1))/0x5+-parseInt(_0x4f4d8e(0xf5))/0x6*(-parseInt(_0x4f4d8e(0x106))/0x7)+parseInt(_0x4f4d8e(0xea))/0x8+-parseInt(_0x4f4d8e(0xce))/0x9+-parseInt(_0x4f4d8e(0xf6))/0xa*(-parseInt(_0x4f4d8e(0xf8))/0xb);if(_0x4609b7===_0x1153df)break;else _0x341b44['push'](_0x341b44['shift']());}catch(_0x558695){_0x341b44['push'](_0x341b44['shift']());}}}(a62_0x34d3,0x9ef95));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0x49e01e(0xd8),'type':'string','required':!![],'description':a62_0x49e01e(0xf9)},SERVICE_FLAG={'name':a62_0x49e01e(0xe5),'type':a62_0x49e01e(0xbf),'required':!![],'description':a62_0x49e01e(0xd4),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x1acda9){const _0x25ebc9=a62_0x49e01e;return{'serviceCode':_0x1acda9['serviceCode'],'name':_0x1acda9['normalizedManifest'][_0x25ebc9(0xe5)][_0x25ebc9(0xc3)],'version':_0x1acda9[_0x25ebc9(0xee)],'importedAt':_0x1acda9[_0x25ebc9(0xfc)],'source':_0x1acda9[_0x25ebc9(0x101)],'commandCount':_0x1acda9['normalizedManifest'][_0x25ebc9(0x102)][_0x25ebc9(0x105)],'commands':_0x1acda9[_0x25ebc9(0x10a)]['commands'][_0x25ebc9(0xdd)](_0x58b628=>({'path':_0x58b628['cliPath'],'description':_0x58b628[_0x25ebc9(0xcc)],'risk':_0x58b628['risk'],'target':toPublicServiceTreeTarget(_0x58b628['target']),'flags':_0x58b628['flags'][_0x25ebc9(0xdd)](_0x14bdb1=>({'name':_0x14bdb1[_0x25ebc9(0xc3)],'cliName':_0x14bdb1[_0x25ebc9(0xd0)],'type':_0x14bdb1[_0x25ebc9(0xc0)],'required':_0x14bdb1[_0x25ebc9(0xd7)]===!![]}))}))};}function a62_0xaaa5(_0x38843c,_0xf0ab31){_0x38843c=_0x38843c-0xbc;const _0x34d36d=a62_0x34d3();let _0xaaa5b5=_0x34d36d[_0x38843c];return _0xaaa5b5;}function summarizeLoadedManifest(_0x3cb8aa){const _0x5f390b=a62_0x49e01e;return{'service':_0x3cb8aa[_0x5f390b(0x10a)]?.[_0x5f390b(0xe5)],'version':_0x3cb8aa[_0x5f390b(0x10a)]?.[_0x5f390b(0xee)],'commandCount':_0x3cb8aa[_0x5f390b(0x10a)]?.[_0x5f390b(0x102)][_0x5f390b(0x105)]??0x0,'commands':_0x3cb8aa[_0x5f390b(0x10a)]?.['commands']['map'](_0x45b95=>({'path':_0x45b95['cliPath'],'risk':_0x45b95[_0x5f390b(0xd5)],'target':toPublicServiceTreeTarget(_0x45b95[_0x5f390b(0xeb)])}))??[],'registryIndex':_0x3cb8aa[_0x5f390b(0xdc)],'registryServiceCode':_0x3cb8aa[_0x5f390b(0xbc)],'errors':_0x3cb8aa[_0x5f390b(0xfd)]['errors'],'warnings':_0x3cb8aa[_0x5f390b(0xfd)][_0x5f390b(0xcb)]};}export const serviceDefinitions=[{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xe9),'description':a62_0x49e01e(0xfe),'risk':a62_0x49e01e(0xe3),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x13f53c){const _0xcaa28a=a62_0x49e01e,_0x3b54eb=loadServiceManifestFromFile(_0x13f53c[_0xcaa28a(0xec)](_0xcaa28a(0xd8)));if(!_0x3b54eb['report']['ok'])return{'ok':![],'data':{'file':_0x3b54eb[_0xcaa28a(0xd9)],'hash':_0x3b54eb['hash'],'kind':_0x3b54eb[_0xcaa28a(0xf1)],'serviceCount':_0x3b54eb[_0xcaa28a(0xe2)][_0xcaa28a(0x105)],'services':_0x3b54eb[_0xcaa28a(0xe2)][_0xcaa28a(0xdd)](summarizeLoadedManifest),'errors':_0x3b54eb[_0xcaa28a(0xfd)][_0xcaa28a(0xe1)],'warnings':_0x3b54eb['report'][_0xcaa28a(0xcb)]},'message':formatValidationFailure(_0x3b54eb[_0xcaa28a(0xfd)])};if(_0x3b54eb[_0xcaa28a(0xf1)]===_0xcaa28a(0xdf)||_0x3b54eb[_0xcaa28a(0xe2)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x3b54eb[_0xcaa28a(0xd9)],'hash':_0x3b54eb[_0xcaa28a(0xc4)],'kind':_0x3b54eb['kind'],'serviceCount':_0x3b54eb['manifests'][_0xcaa28a(0x105)],'commandCount':_0x3b54eb['manifests'][_0xcaa28a(0xc8)]((_0x1beccf,_0x445b00)=>_0x1beccf+(_0x445b00[_0xcaa28a(0x10a)]?.[_0xcaa28a(0x102)][_0xcaa28a(0x105)]??0x0),0x0),'services':_0x3b54eb['manifests'][_0xcaa28a(0xdd)](summarizeLoadedManifest),'warnings':_0x3b54eb[_0xcaa28a(0xfd)][_0xcaa28a(0xcb)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x3b54eb[_0xcaa28a(0xd9)],'hash':_0x3b54eb[_0xcaa28a(0xc4)],'kind':_0x3b54eb[_0xcaa28a(0xf1)],'service':_0x3b54eb[_0xcaa28a(0x10a)]?.[_0xcaa28a(0xe5)],'version':_0x3b54eb[_0xcaa28a(0x10a)]?.[_0xcaa28a(0xee)],'commandCount':_0x3b54eb[_0xcaa28a(0x10a)]?.['commands'][_0xcaa28a(0x105)]??0x0,'commands':_0x3b54eb['normalizedManifest']?.[_0xcaa28a(0x102)]['map'](_0x3fa1a8=>({'path':_0x3fa1a8['cliPath'],'risk':_0x3fa1a8[_0xcaa28a(0xd5)],'target':toPublicServiceTreeTarget(_0x3fa1a8['target'])})),'warnings':_0x3b54eb[_0xcaa28a(0xfd)][_0xcaa28a(0xcb)]},'message':_0xcaa28a(0xf4)};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xf3),'description':a62_0x49e01e(0x10b),'risk':a62_0x49e01e(0x109),'confirmationDescription':a62_0x49e01e(0xde),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1ba5c5){const _0x5ddd94=a62_0x49e01e,_0x43864e=loadServiceManifestFromFile(_0x1ba5c5['str'](_0x5ddd94(0xd8)));return{'method':_0x5ddd94(0xc2),'url':getServiceRegistryPath(),'body':{'file':_0x43864e[_0x5ddd94(0xd9)],'hash':_0x43864e[_0x5ddd94(0xc4)],'kind':_0x43864e['kind'],'ok':_0x43864e['report']['ok'],'service':_0x43864e[_0x5ddd94(0x10a)]?.[_0x5ddd94(0xe5)],'version':_0x43864e[_0x5ddd94(0x10a)]?.[_0x5ddd94(0xee)],'serviceCount':_0x43864e[_0x5ddd94(0xe2)][_0x5ddd94(0x105)],'services':_0x43864e['manifests']['map'](_0xca8f19=>({'service':_0xca8f19[_0x5ddd94(0x10a)]?.[_0x5ddd94(0xe5)],'version':_0xca8f19[_0x5ddd94(0x10a)]?.['version'],'commandCount':_0xca8f19[_0x5ddd94(0x10a)]?.[_0x5ddd94(0x102)][_0x5ddd94(0x105)]??0x0,'errors':_0xca8f19['report']['errors']})),'errors':_0x43864e['report'][_0x5ddd94(0xe1)],'commandCount':_0x43864e[_0x5ddd94(0x10a)]?.[_0x5ddd94(0x102)][_0x5ddd94(0x105)]??0x0},'description':_0x5ddd94(0xcd)};},async 'execute'(_0x30015c){const _0x3f3b5a=a62_0x49e01e,_0x1cccaa=importServiceManifest(_0x30015c[_0x3f3b5a(0xec)]('file'));if(_0x1cccaa[_0x3f3b5a(0xe8)][_0x3f3b5a(0x105)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1cccaa[_0x3f3b5a(0xf2)],'imported':_0x1cccaa['imported'],'updated':_0x1cccaa[_0x3f3b5a(0xe0)],'serviceCount':_0x1cccaa[_0x3f3b5a(0xe7)],'services':_0x1cccaa['entries'][_0x3f3b5a(0xdd)](summarizeService)},'message':'Imported\x20'+_0x1cccaa[_0x3f3b5a(0xcf)]+_0x3f3b5a(0xca)+_0x1cccaa['updated']+_0x3f3b5a(0xc5)};return{'ok':!![],'data':{'registryPath':_0x1cccaa['registryPath'],'replaced':_0x1cccaa[_0x3f3b5a(0xe4)],'imported':_0x1cccaa[_0x3f3b5a(0xcf)],'updated':_0x1cccaa[_0x3f3b5a(0xe0)],'serviceCount':_0x1cccaa[_0x3f3b5a(0xe7)],'service':summarizeService(_0x1cccaa[_0x3f3b5a(0xbe)])},'message':(_0x1cccaa[_0x3f3b5a(0xe4)]?_0x3f3b5a(0xef):_0x3f3b5a(0xd3))+_0x3f3b5a(0xd2)+_0x1cccaa['entry'][_0x3f3b5a(0xf7)]+'.'};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xbd),'description':a62_0x49e01e(0xc1),'risk':a62_0x49e01e(0x109),'confirmationDescription':'Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1b7d0d){const _0x1fdef6=a62_0x49e01e,_0x4f1510=getLocalServiceEntry(_0x1b7d0d['str'](_0x1fdef6(0xe5)));return{'method':_0x1fdef6(0xc2),'url':_0x1b7d0d['str']('file'),'body':{'service':_0x1b7d0d['str'](_0x1fdef6(0xe5)),'found':Boolean(_0x4f1510),'version':_0x4f1510?.[_0x1fdef6(0xee)],'source':_0x4f1510?.['source']},'description':_0x1fdef6(0xf0)};},async 'execute'(_0x1b1999){const _0x1a141c=a62_0x49e01e,_0x30b118=exportServiceManifest(_0x1b1999['str']('service'),_0x1b1999[_0x1a141c(0xec)](_0x1a141c(0xd8)));return{'ok':!![],'data':{'registryPath':_0x30b118['registryPath'],'file':_0x30b118[_0x1a141c(0xd9)],'service':summarizeService(_0x30b118[_0x1a141c(0xbe)])},'message':_0x1a141c(0x103)+_0x30b118[_0x1a141c(0xbe)][_0x1a141c(0xf7)]+'.'};}},{'service':'service','command':a62_0x49e01e(0xda),'description':a62_0x49e01e(0xff),'risk':a62_0x49e01e(0xe3),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x127da5=a62_0x49e01e,_0x19dbc1=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x19dbc1[_0x127da5(0x105)],'services':_0x19dbc1[_0x127da5(0xdd)](summarizeService)}};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0xc9),'description':a62_0x49e01e(0x100),'risk':a62_0x49e01e(0x109),'confirmationDescription':a62_0x49e01e(0xed),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3a35a0){const _0x27f0f4=a62_0x49e01e,_0x4d1867=getLocalServiceEntry(_0x3a35a0[_0x27f0f4(0xec)](_0x27f0f4(0xe5)));return{'method':_0x27f0f4(0xc2),'url':getServiceRegistryPath(),'body':{'service':_0x3a35a0['str']('service'),'found':Boolean(_0x4d1867),'version':_0x4d1867?.[_0x27f0f4(0xee)],'source':_0x4d1867?.['source']},'description':_0x27f0f4(0x108)};},async 'execute'(_0x3c5bbf){const _0x1bca06=a62_0x49e01e,_0x32cb50=removeServiceManifest(_0x3c5bbf[_0x1bca06(0xec)](_0x1bca06(0xe5)));return{'ok':!![],'data':{'registryPath':_0x32cb50[_0x1bca06(0xf2)],'serviceCount':_0x32cb50['serviceCount'],'service':summarizeService(_0x32cb50[_0x1bca06(0xbe)])},'message':_0x1bca06(0xd6)+_0x32cb50[_0x1bca06(0xbe)][_0x1bca06(0xf7)]+'.'};}},{'service':a62_0x49e01e(0xe5),'command':a62_0x49e01e(0x104),'description':a62_0x49e01e(0x107),'risk':a62_0x49e01e(0xe3),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x173c91){const _0x43c7a2=a62_0x49e01e,_0x50f793=getLocalServiceEntry(_0x173c91[_0x43c7a2(0xec)]('service'));if(!_0x50f793)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x173c91[_0x43c7a2(0xec)]('service')},'message':_0x43c7a2(0xfb)+_0x173c91[_0x43c7a2(0xec)](_0x43c7a2(0xe5))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x50f793),'manifest':_0x50f793[_0x43c7a2(0xe6)],'normalizedManifest':toPublicNormalizedServiceTree(_0x50f793['normalizedManifest'])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x552bce=a63_0x88d6;(function(_0x8d79a2,_0x4a1d9d){const _0x42db1a=a63_0x88d6,_0x5da85c=_0x8d79a2();while(!![]){try{const _0x3ef536=parseInt(_0x42db1a(0x1d4))/0x1*(parseInt(_0x42db1a(0x1e7))/0x2)+parseInt(_0x42db1a(0x1f7))/0x3*(-parseInt(_0x42db1a(0x1f1))/0x4)+-parseInt(_0x42db1a(0x223))/0x5+parseInt(_0x42db1a(0x1d8))/0x6*(-parseInt(_0x42db1a(0x1db))/0x7)+-parseInt(_0x42db1a(0x1e4))/0x8*(-parseInt(_0x42db1a(0x211))/0x9)+-parseInt(_0x42db1a(0x1f3))/0xa+parseInt(_0x42db1a(0x20a))/0xb*(parseInt(_0x42db1a(0x1d3))/0xc);if(_0x3ef536===_0x4a1d9d)break;else _0x5da85c['push'](_0x5da85c['shift']());}catch(_0x1fc095){_0x5da85c['push'](_0x5da85c['shift']());}}}(a63_0x58b3,0x1ef33));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x552bce(0x1d7);export function getServiceRegistryPath(_0x527487={}){const _0x237cd2=a63_0x552bce;return resolve(_0x527487[_0x237cd2(0x1f6)]??homedir(),PRODUCT_CONFIG[_0x237cd2(0x21f)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1fc125={}){const _0x5958c2=a63_0x552bce,_0x4cc93c=getServiceRegistryPath(_0x1fc125);if(!existsSync(_0x4cc93c))return emptyServiceRegistry();try{const _0x5a2e17=readFileSync(_0x4cc93c,'utf8');if(!_0x5a2e17[_0x5958c2(0x215)]())return emptyServiceRegistry();const _0x55a953=JSON[_0x5958c2(0x204)](_0x5a2e17);if(_0x55a953[_0x5958c2(0x203)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1e6)+String(_0x55a953['schemaVersion']),_0x5958c2(0x21d)+_0x4cc93c+'.');if(!Array[_0x5958c2(0x206)](_0x55a953['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x55a953[_0x5958c2(0x1ea)],'services':_0x55a953['services']};}catch(_0x27eb2d){if(_0x27eb2d instanceof Error&&_0x27eb2d[_0x5958c2(0x210)]===_0x5958c2(0x201))throw _0x27eb2d;throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1f0)+_0x4cc93c,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x116b17,_0x7b9149={}){const _0x36ad12=a63_0x552bce,_0x169bfa=getServiceRegistryPath(_0x7b9149),_0xbcb753=dirname(_0x169bfa);!existsSync(_0xbcb753)&&mkdirSync(_0xbcb753,{'recursive':!![]});const _0x14620c=_0x169bfa+_0x36ad12(0x1ee);try{writeFileSync(_0x14620c,JSON[_0x36ad12(0x1ed)](_0x116b17,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x14620c,_0x169bfa);}catch(_0x492041){try{unlinkSync(_0x14620c);}catch{}if(_0x492041?.[_0x36ad12(0x200)]===_0x36ad12(0x213))throw CliErrors[_0x36ad12(0x1da)](_0x36ad12(0x1e2)+_0x169bfa);throw _0x492041;}return _0x169bfa;}export function loadServiceManifestFromFile(_0x279c33){const _0x89c459=a63_0x552bce,_0x2d8c7e=resolve(_0x279c33);if(!existsSync(_0x2d8c7e))throw CliErrors['validation'](_0x89c459(0x1e0)+_0x279c33);let _0x1a8931;const _0xd36ca8=readFileSync(_0x2d8c7e,_0x89c459(0x21b));try{_0x1a8931=JSON[_0x89c459(0x204)](_0xd36ca8);}catch{throw CliErrors[_0x89c459(0x1da)](_0x89c459(0x1d6)+_0x279c33,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x136c93=sha256(_0xd36ca8),_0x35ff13=extractLoadedServiceManifests(_0x1a8931,_0x136c93),_0x22ef48=aggregateValidationReports(_0x35ff13),_0x5ba952=_0x35ff13[0x0];return{'filePath':_0x2d8c7e,'hash':_0x136c93,'kind':isServiceRegistryLike(_0x1a8931)?_0x89c459(0x1fb):_0x89c459(0x1ff),'manifest':_0x5ba952?.[_0x89c459(0x1ff)]??_0x1a8931,'report':_0x22ef48,'normalizedManifest':_0x35ff13[_0x89c459(0x20e)]===0x1?_0x5ba952?.[_0x89c459(0x1f8)]:undefined,'manifests':_0x35ff13};}export function importServiceManifest(_0x5cc6f6,_0xf3978a={}){const _0x24c017=a63_0x552bce,_0x4397f1=loadServiceManifestFromFile(_0x5cc6f6);if(!_0x4397f1[_0x24c017(0x207)]['ok'])throw CliErrors[_0x24c017(0x1da)](formatValidationFailure(_0x4397f1[_0x24c017(0x207)]),_0x24c017(0x1dc));if(_0x4397f1[_0x24c017(0x1d1)][_0x24c017(0x20e)]===0x0)throw CliErrors[_0x24c017(0x1da)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x24c017(0x1d0));const _0x3d16c2=readServiceRegistry(_0xf3978a),_0x4781a6=(_0xf3978a[_0x24c017(0x1e8)]??(()=>new Date()))()['toISOString'](),_0x427247=[];let _0x2e0826=0x0,_0x2632d4=0x0;for(const _0x3234b1 of _0x4397f1[_0x24c017(0x1d1)]){if(!_0x3234b1[_0x24c017(0x1f8)])continue;const _0x59fb0a=_0x3234b1[_0x24c017(0x1f8)][_0x24c017(0x1ec)][_0x24c017(0x200)],_0x5383fb={'serviceCode':_0x59fb0a,'version':_0x3234b1[_0x24c017(0x1f8)]['version'],'importedAt':_0x4781a6,'source':{'type':'file','path':_0x4397f1[_0x24c017(0x216)],'hash':_0x3234b1[_0x24c017(0x20c)]},'manifest':_0x3234b1[_0x24c017(0x1ff)],'normalizedManifest':_0x3234b1[_0x24c017(0x1f8)]},_0x394d4d=_0x3d16c2['services']['findIndex'](_0x20c424=>_0x20c424['serviceCode']===_0x59fb0a);_0x394d4d>=0x0?(_0x3d16c2['services'][_0x394d4d]=_0x5383fb,_0x2632d4++):(_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x1de)](_0x5383fb),_0x2e0826++),_0x427247['push'](_0x5383fb);}_0x3d16c2['services'][_0x24c017(0x221)]((_0x444858,_0x6343b7)=>_0x444858[_0x24c017(0x212)][_0x24c017(0x21e)](_0x6343b7[_0x24c017(0x212)])),_0x3d16c2['updatedAt']=_0x4781a6;const _0x3033e4=writeServiceRegistry(_0x3d16c2,_0xf3978a);return{'registryPath':_0x3033e4,'entry':_0x427247[0x0],'replaced':_0x427247['length']===0x1?_0x2632d4===0x1:_0x2632d4>0x0,'entries':_0x427247,'imported':_0x2e0826,'updated':_0x2632d4,'serviceCount':_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x20e)]};}export function exportServiceManifest(_0x32ec9a,_0x233144,_0x506396={}){const _0x21bfe7=a63_0x552bce,_0xa071e3=getServiceRegistryPath(_0x506396),_0x285a78=getLocalServiceEntry(_0x32ec9a,_0x506396);if(!_0x285a78)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x32ec9a,_0x21bfe7(0x214));const _0x3e8a4a=resolve(_0x233144),_0x3e2051=dirname(_0x3e8a4a);return!existsSync(_0x3e2051)&&mkdirSync(_0x3e2051,{'recursive':!![]}),writeFileSync(_0x3e8a4a,JSON[_0x21bfe7(0x1ed)](_0x285a78[_0x21bfe7(0x1ff)],null,0x2)+'\x0a',{'encoding':_0x21bfe7(0x21b),'mode':0x180}),{'registryPath':_0xa071e3,'filePath':_0x3e8a4a,'entry':_0x285a78};}export function removeServiceManifest(_0x13754a,_0x4c3cd0={}){const _0x28bd43=a63_0x552bce,_0x4be2da=readServiceRegistry(_0x4c3cd0),_0x3a5869=_0x13754a[_0x28bd43(0x215)](),_0x3cae05=_0x4be2da['services'][_0x28bd43(0x1f2)](_0x5c80f8=>_0x5c80f8[_0x28bd43(0x212)]===_0x3a5869);if(_0x3cae05<0x0)throw CliErrors[_0x28bd43(0x1da)](_0x28bd43(0x1f4)+_0x3a5869,_0x28bd43(0x214));const [_0x30e616]=_0x4be2da[_0x28bd43(0x1eb)]['splice'](_0x3cae05,0x1),_0x261973=(_0x4c3cd0['now']??(()=>new Date()))()[_0x28bd43(0x1e5)]();_0x4be2da[_0x28bd43(0x1ea)]=_0x261973;const _0x30b238=writeServiceRegistry(_0x4be2da,_0x4c3cd0);return{'registryPath':_0x30b238,'entry':_0x30e616,'serviceCount':_0x4be2da[_0x28bd43(0x1eb)][_0x28bd43(0x20e)]};}export function listLocalServices(_0x3fe082={}){const _0x40c0b3=a63_0x552bce;return readServiceRegistry(_0x3fe082)[_0x40c0b3(0x1eb)];}export function getLocalServiceEntry(_0x13687f,_0x3f714e={}){const _0x3d71ee=a63_0x552bce;return readServiceRegistry(_0x3f714e)[_0x3d71ee(0x1eb)][_0x3d71ee(0x1fc)](_0x4e926f=>_0x4e926f[_0x3d71ee(0x212)]===_0x13687f[_0x3d71ee(0x215)]());}export function listLocalServiceTrees(_0x15017c={}){const _0x106024=a63_0x552bce;return readServiceRegistry(_0x15017c)['services'][_0x106024(0x217)](_0x21c1ea=>_0x21c1ea[_0x106024(0x1f8)]);}export function inspectServiceRegistry(_0x578dc3={}){const _0x3e6d82=a63_0x552bce,_0x5bec86=getServiceRegistryPath(_0x578dc3);if(!existsSync(_0x5bec86))return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x209),![]);try{const _0x551037=readFileSync(_0x5bec86,'utf8');if(!_0x551037['trim']())return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1ef),!![]);const _0x6e7bae=JSON['parse'](_0x551037);if(_0x6e7bae['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'schemaVersion':_0x6e7bae[_0x3e6d82(0x203)],'message':_0x3e6d82(0x20d)+String(_0x6e7bae['schemaVersion'])};if(!Array[_0x3e6d82(0x206)](_0x6e7bae[_0x3e6d82(0x1eb)]))return{...emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1cc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'message':_0x3e6d82(0x220)};const _0x105605=_0x6e7bae[_0x3e6d82(0x1eb)][_0x3e6d82(0x217)](summarizeLocalServiceEntry);return{'registryPath':_0x5bec86,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'serviceCount':_0x105605['length'],'commandCount':_0x105605['reduce']((_0x27a310,_0xaa3a79)=>_0x27a310+_0xaa3a79[_0x3e6d82(0x1e9)],0x0),'services':_0x105605};}catch(_0x444c4c){return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'message':_0x444c4c instanceof Error?_0x444c4c[_0x3e6d82(0x21c)]:String(_0x444c4c)};}}function a63_0x88d6(_0x13dbed,_0x7cb6bc){_0x13dbed=_0x13dbed-0x1cb;const _0x58b387=a63_0x58b3();let _0x88d68=_0x58b387[_0x13dbed];return _0x88d68;}function a63_0x58b3(){const _0x49db4a=['target','homeDir','287853ISwkqA','normalizedManifest','update','errors','registry','find','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','command','manifest','code','CliError','bff\x20target\x20requires\x20functionName.','schemaVersion','parse','].manifest','isArray','report','risk','missing','11Yjnlgq','join','sourceHash','Unsupported\x20schemaVersion:\x20','length','sha256','name','18OLNHma','serviceCode','ENOENT','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','trim','filePath','map','kind','slice','Service\x20manifest\x20validation\x20failed:\x0a','utf8','message','Remove\x20or\x20migrate\x20','localeCompare','homeDirName','services\x20must\x20be\x20an\x20array','sort','object','917490mbqKFD','$.services[','invalid','hex','warnings','flatMap','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifests','description','4254084pxKeGf','100502anbkQT','startsWith','Invalid\x20service\x20manifest\x20JSON:\x20','service.json','174684VhhaBJ','registryIndex','validation','35rnqLRT','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','path','push','version','Service\x20manifest\x20file\x20not\x20found:\x20','commands','Cannot\x20write\x20service\x20registry:\x20','digest','981600uSyZjV','toISOString','Unsupported\x20service\x20registry\x20schemaVersion:\x20','4XpmLxJ','now','commandCount','updatedAt','services','service','stringify','.tmp','empty','Invalid\x20service\x20registry\x20JSON:\x20','4nnrYXn','findIndex','2491210eAzrqG','Local\x20service\x20not\x20found:\x20'];a63_0x58b3=function(){return _0x49db4a;};return a63_0x58b3();}export function formatValidationFailure(_0x4a77ca){const _0x4b98f4=a63_0x552bce,_0x124159=_0x4a77ca[_0x4b98f4(0x1fa)][_0x4b98f4(0x217)](_0x456895=>_0x456895[_0x4b98f4(0x1dd)]+':\x20'+_0x456895[_0x4b98f4(0x21c)]);return _0x4b98f4(0x21a)+_0x124159[_0x4b98f4(0x20b)]('\x0a');}function extractLoadedServiceManifests(_0x573e5a,_0x2613bb){const _0x29ffb1=a63_0x552bce;if(!isServiceRegistryLike(_0x573e5a)){const _0x265b95=_0x573e5a,{manifest:_0x32444d,errors:_0x5e639a}=adaptServiceTreeManifestForLegacyFramework(_0x265b95),_0x1bfe58=validateServiceTreeManifest(_0x32444d),_0x33c570=mergeValidationErrors(_0x1bfe58,_0x5e639a);return[{'manifest':_0x265b95,'report':_0x33c570,'normalizedManifest':_0x33c570['ok']?normalizeServiceTreeManifest(_0x32444d):undefined,'sourceHash':_0x2613bb}];}return _0x573e5a[_0x29ffb1(0x1eb)][_0x29ffb1(0x217)]((_0x48ee12,_0x12372b)=>{const _0x25072a=_0x29ffb1,_0x7082a8=isObjectRecord(_0x48ee12)?_0x48ee12[_0x25072a(0x1ff)]:undefined,{manifest:_0x1063ed,errors:_0x54db59}=adaptServiceTreeManifestForLegacyFramework(_0x7082a8),_0x3540f5=validateServiceTreeManifest(_0x1063ed),_0x23680d=mergeValidationErrors(_0x3540f5,_0x54db59),_0x2e0a1e=isObjectRecord(_0x48ee12)&&typeof _0x48ee12['serviceCode']==='string'?_0x48ee12[_0x25072a(0x212)]:undefined;return{'manifest':_0x7082a8,'report':_0x23680d,'normalizedManifest':_0x23680d['ok']?normalizeServiceTreeManifest(_0x1063ed):undefined,'sourceHash':sha256(JSON[_0x25072a(0x1ed)](_0x7082a8,null,0x2)+'\x0a'),'registryIndex':_0x12372b,'registryServiceCode':_0x2e0a1e};});}function mergeValidationErrors(_0x33318d,_0x20b717){const _0x577eb9=a63_0x552bce,_0x1996c1=_0x33318d[_0x577eb9(0x1fa)][_0x577eb9(0x217)](_0x54386d=>_0x54386d[_0x577eb9(0x21c)]===_0x577eb9(0x1fd)?{..._0x54386d,'message':_0x577eb9(0x202)}:_0x54386d),_0x25b855=[..._0x20b717,..._0x1996c1];return{'ok':_0x25b855[_0x577eb9(0x20e)]===0x0,'errors':_0x25b855,'warnings':_0x33318d[_0x577eb9(0x1ce)]};}function aggregateValidationReports(_0x33d8f0){const _0x49c60d=a63_0x552bce,_0x249776=_0x33d8f0[_0x49c60d(0x1cf)](_0x3ae2e2=>_0x3ae2e2[_0x49c60d(0x1d9)]===undefined?_0x3ae2e2['report']['errors']:_0x3ae2e2['report']['errors']['map'](_0xfde8a=>({..._0xfde8a,'path':prefixRegistryIssuePath(_0x3ae2e2[_0x49c60d(0x1d9)],_0xfde8a[_0x49c60d(0x1dd)])}))),_0x43bbd4=_0x33d8f0[_0x49c60d(0x1cf)](_0x116fb2=>_0x116fb2[_0x49c60d(0x1d9)]===undefined?_0x116fb2[_0x49c60d(0x207)][_0x49c60d(0x1ce)]:_0x116fb2['report']['warnings'][_0x49c60d(0x217)](_0xd31cf8=>({..._0xd31cf8,'path':prefixRegistryIssuePath(_0x116fb2[_0x49c60d(0x1d9)],_0xd31cf8['path'])})));return{'ok':_0x249776[_0x49c60d(0x20e)]===0x0,'errors':_0x249776,'warnings':_0x43bbd4};}function prefixRegistryIssuePath(_0x17a0b1,_0x2151f7){const _0x1c2765=a63_0x552bce;if(_0x2151f7==='$')return'$.services['+_0x17a0b1+_0x1c2765(0x205);if(_0x2151f7[_0x1c2765(0x1d5)]('$.'))return _0x1c2765(0x1cb)+_0x17a0b1+_0x1c2765(0x205)+_0x2151f7[_0x1c2765(0x219)](0x1);if(_0x2151f7['startsWith']('$['))return'$.services['+_0x17a0b1+'].manifest'+_0x2151f7[_0x1c2765(0x219)](0x1);return _0x1c2765(0x1cb)+_0x17a0b1+'].manifest.'+_0x2151f7;}function isServiceRegistryLike(_0x27c5ac){const _0x2cd26d=a63_0x552bce;return isObjectRecord(_0x27c5ac)&&_0x27c5ac[_0x2cd26d(0x203)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2cd26d(0x206)](_0x27c5ac[_0x2cd26d(0x1eb)]);}function isObjectRecord(_0x2b15d2){const _0x557713=a63_0x552bce;return Boolean(_0x2b15d2)&&typeof _0x2b15d2===_0x557713(0x222)&&!Array['isArray'](_0x2b15d2);}function emptyServiceRegistryInspection(_0x4df0a8,_0x364c08,_0x5703fa){return{'registryPath':_0x4df0a8,'exists':_0x5703fa,'status':_0x364c08,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1c7200){const _0x1092bc=a63_0x552bce,_0x717393=_0x1c7200[_0x1092bc(0x1f8)],_0x421875=_0x717393[_0x1092bc(0x1e1)][_0x1092bc(0x217)](_0x498da9=>({'path':_0x498da9['cliPath'],'description':_0x498da9[_0x1092bc(0x1d2)],'risk':_0x498da9[_0x1092bc(0x208)],'targetKind':_0x498da9['target'][_0x1092bc(0x218)],'targetCommand':_0x498da9[_0x1092bc(0x1f5)][_0x1092bc(0x1fe)]}));return{'serviceCode':_0x1c7200[_0x1092bc(0x212)],'name':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x210)],'description':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x1d2)],'version':_0x1c7200[_0x1092bc(0x1df)],'importedAt':_0x1c7200['importedAt'],'source':_0x1c7200['source'],'commandCount':_0x421875[_0x1092bc(0x20e)],'commands':_0x421875};}function sha256(_0x1fa521){const _0x334665=a63_0x552bce;return createHash(_0x334665(0x20f))[_0x334665(0x1f9)](_0x1fa521)[_0x334665(0x1e3)](_0x334665(0x1cd));}
|
|
1
|
+
(function(_0xcee1cf,_0x209672){const _0xab134=a63_0x1dd3,_0x50e572=_0xcee1cf();while(!![]){try{const _0x2407ad=-parseInt(_0xab134(0xf8))/0x1+parseInt(_0xab134(0xe9))/0x2+-parseInt(_0xab134(0x111))/0x3*(parseInt(_0xab134(0xdd))/0x4)+parseInt(_0xab134(0xee))/0x5*(-parseInt(_0xab134(0xdc))/0x6)+parseInt(_0xab134(0x114))/0x7*(parseInt(_0xab134(0x105))/0x8)+parseInt(_0xab134(0x10e))/0x9*(parseInt(_0xab134(0xd8))/0xa)+parseInt(_0xab134(0x10a))/0xb*(parseInt(_0xab134(0xfb))/0xc);if(_0x2407ad===_0x209672)break;else _0x50e572['push'](_0x50e572['shift']());}catch(_0x4406f0){_0x50e572['push'](_0x50e572['shift']());}}}(a63_0x4c78,0xec18f));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';function a63_0x4c78(){const _0x304363=['25rpYRlf','Local\x20service\x20not\x20found:\x20','empty','trim','startsWith','length','CliError','].manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','cliPath','1141755fSeuMU','path','description','24EweMBD','findIndex','slice','sort','stringify','reduce','message','homeDirName','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','6907144EfBEbM','normalizedManifest','string','service','name','1334509HKBEXU','utf8','parse','push','567mHEhCm','digest','code','2316HzMuXe','$.services[','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','7XYHzcT','find','services','invalid','object','validation','serviceCode','isArray','splice','update','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','Service\x20manifest\x20file\x20not\x20found:\x20','Invalid\x20service\x20registry\x20JSON:\x20','report','map','missing','259660Ndndaf','flatMap','homeDir','version','168408dScyXM','5288EpYdKy','Remove\x20or\x20migrate\x20','updatedAt','errors','now','kind','toISOString','source','manifest','schemaVersion','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','1055690cOtZGk','commandCount','target','registryIndex','manifests'];a63_0x4c78=function(){return _0x304363;};return a63_0x4c78();}import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';function a63_0x1dd3(_0x5556a3,_0xdbee6b){_0x5556a3=_0x5556a3-0xcd;const _0x4c78df=a63_0x4c78();let _0x1dd39e=_0x4c78df[_0x5556a3];return _0x1dd39e;}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0xc62a0b={}){const _0x35a767=a63_0x1dd3;return resolve(_0xc62a0b[_0x35a767(0xda)]??homedir(),PRODUCT_CONFIG[_0x35a767(0x102)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x16cbf5={}){const _0x54ed99=a63_0x1dd3,_0x281a1b=getServiceRegistryPath(_0x16cbf5);if(!existsSync(_0x281a1b))return emptyServiceRegistry();try{const _0x53eba8=readFileSync(_0x281a1b,_0x54ed99(0x10b));if(!_0x53eba8[_0x54ed99(0xf1)]())return emptyServiceRegistry();const _0x472683=JSON[_0x54ed99(0x10c)](_0x53eba8);if(_0x472683[_0x54ed99(0xe6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x54ed99(0xf6)+String(_0x472683['schemaVersion']),_0x54ed99(0xde)+_0x281a1b+'.');if(!Array[_0x54ed99(0xce)](_0x472683['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x472683[_0x54ed99(0xdf)],'services':_0x472683[_0x54ed99(0x116)]};}catch(_0x14cc71){if(_0x14cc71 instanceof Error&&_0x14cc71[_0x54ed99(0x109)]===_0x54ed99(0xf4))throw _0x14cc71;throw CliErrors[_0x54ed99(0x119)](_0x54ed99(0xd4)+_0x281a1b,_0x54ed99(0xd1));}}export function writeServiceRegistry(_0x58ade4,_0x4d1e9d={}){const _0x51bcb3=a63_0x1dd3,_0x541a3b=getServiceRegistryPath(_0x4d1e9d),_0x1593ee=dirname(_0x541a3b);!existsSync(_0x1593ee)&&mkdirSync(_0x1593ee,{'recursive':!![]});const _0x2b8d01=_0x541a3b+'.tmp';try{writeFileSync(_0x2b8d01,JSON['stringify'](_0x58ade4,null,0x2)+'\x0a',{'encoding':_0x51bcb3(0x10b),'mode':0x180}),renameSync(_0x2b8d01,_0x541a3b);}catch(_0xa06f58){try{unlinkSync(_0x2b8d01);}catch{}if(_0xa06f58?.['code']==='ENOENT')throw CliErrors[_0x51bcb3(0x119)]('Cannot\x20write\x20service\x20registry:\x20'+_0x541a3b);throw _0xa06f58;}return _0x541a3b;}export function loadServiceManifestFromFile(_0x292542){const _0x48f0cc=a63_0x1dd3,_0x408e2e=resolve(_0x292542);if(!existsSync(_0x408e2e))throw CliErrors['validation'](_0x48f0cc(0xd3)+_0x292542);let _0x585021;const _0x406614=readFileSync(_0x408e2e,_0x48f0cc(0x10b));try{_0x585021=JSON[_0x48f0cc(0x10c)](_0x406614);}catch{throw CliErrors[_0x48f0cc(0x119)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x292542,_0x48f0cc(0x103));}const _0x7c4fe4=sha256(_0x406614),_0x20910a=extractLoadedServiceManifests(_0x585021,_0x7c4fe4),_0x10df4a=aggregateValidationReports(_0x20910a),_0x5e72a8=_0x20910a[0x0];return{'filePath':_0x408e2e,'hash':_0x7c4fe4,'kind':isServiceRegistryLike(_0x585021)?'registry':'manifest','manifest':_0x5e72a8?.[_0x48f0cc(0xe5)]??_0x585021,'report':_0x10df4a,'normalizedManifest':_0x20910a[_0x48f0cc(0xf3)]===0x1?_0x5e72a8?.['normalizedManifest']:undefined,'manifests':_0x20910a};}export function importServiceManifest(_0x1a492e,_0x33c35c={}){const _0x29e300=a63_0x1dd3,_0xe602f1=loadServiceManifestFromFile(_0x1a492e);if(!_0xe602f1[_0x29e300(0xd5)]['ok'])throw CliErrors[_0x29e300(0x119)](formatValidationFailure(_0xe602f1['report']),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0xe602f1[_0x29e300(0xed)][_0x29e300(0xf3)]===0x0)throw CliErrors['validation'](_0x29e300(0xe7),_0x29e300(0x113));const _0x36f186=readServiceRegistry(_0x33c35c),_0x1357ed=(_0x33c35c[_0x29e300(0xe1)]??(()=>new Date()))()['toISOString'](),_0x33df05=[];let _0x438658=0x0,_0x4f33a9=0x0;for(const _0x3ad0ca of _0xe602f1[_0x29e300(0xed)]){if(!_0x3ad0ca[_0x29e300(0x106)])continue;const _0x3ff77f=_0x3ad0ca['normalizedManifest']['service'][_0x29e300(0x110)],_0xbe868c={'serviceCode':_0x3ff77f,'version':_0x3ad0ca['normalizedManifest']['version'],'importedAt':_0x1357ed,'source':{'type':'file','path':_0xe602f1['filePath'],'hash':_0x3ad0ca['sourceHash']},'manifest':_0x3ad0ca[_0x29e300(0xe5)],'normalizedManifest':_0x3ad0ca['normalizedManifest']},_0x565542=_0x36f186[_0x29e300(0x116)][_0x29e300(0xfc)](_0x40a1d8=>_0x40a1d8['serviceCode']===_0x3ff77f);_0x565542>=0x0?(_0x36f186[_0x29e300(0x116)][_0x565542]=_0xbe868c,_0x4f33a9++):(_0x36f186['services'][_0x29e300(0x10d)](_0xbe868c),_0x438658++),_0x33df05[_0x29e300(0x10d)](_0xbe868c);}_0x36f186[_0x29e300(0x116)][_0x29e300(0xfe)]((_0x2c0388,_0x2cd419)=>_0x2c0388[_0x29e300(0xcd)]['localeCompare'](_0x2cd419[_0x29e300(0xcd)])),_0x36f186[_0x29e300(0xdf)]=_0x1357ed;const _0x4d178c=writeServiceRegistry(_0x36f186,_0x33c35c);return{'registryPath':_0x4d178c,'entry':_0x33df05[0x0],'replaced':_0x33df05['length']===0x1?_0x4f33a9===0x1:_0x4f33a9>0x0,'entries':_0x33df05,'imported':_0x438658,'updated':_0x4f33a9,'serviceCount':_0x36f186['services'][_0x29e300(0xf3)]};}export function exportServiceManifest(_0x5b0b4e,_0x566343,_0x4780d0={}){const _0x46801d=a63_0x1dd3,_0x19423a=getServiceRegistryPath(_0x4780d0),_0x14e910=getLocalServiceEntry(_0x5b0b4e,_0x4780d0);if(!_0x14e910)throw CliErrors[_0x46801d(0x119)](_0x46801d(0xef)+_0x5b0b4e,_0x46801d(0x104));const _0x4e7224=resolve(_0x566343),_0x4b2fa7=dirname(_0x4e7224);return!existsSync(_0x4b2fa7)&&mkdirSync(_0x4b2fa7,{'recursive':!![]}),writeFileSync(_0x4e7224,JSON[_0x46801d(0xff)](_0x14e910[_0x46801d(0xe5)],null,0x2)+'\x0a',{'encoding':_0x46801d(0x10b),'mode':0x180}),{'registryPath':_0x19423a,'filePath':_0x4e7224,'entry':_0x14e910};}export function removeServiceManifest(_0x5085fd,_0x162499={}){const _0x3e47f4=a63_0x1dd3,_0x1a401a=readServiceRegistry(_0x162499),_0x4bc3b7=_0x5085fd['trim'](),_0x1d5366=_0x1a401a['services']['findIndex'](_0x26c130=>_0x26c130[_0x3e47f4(0xcd)]===_0x4bc3b7);if(_0x1d5366<0x0)throw CliErrors[_0x3e47f4(0x119)](_0x3e47f4(0xef)+_0x4bc3b7,_0x3e47f4(0x104));const [_0x5e626a]=_0x1a401a[_0x3e47f4(0x116)][_0x3e47f4(0xcf)](_0x1d5366,0x1),_0x5d99d6=(_0x162499[_0x3e47f4(0xe1)]??(()=>new Date()))()[_0x3e47f4(0xe3)]();_0x1a401a[_0x3e47f4(0xdf)]=_0x5d99d6;const _0xe5f209=writeServiceRegistry(_0x1a401a,_0x162499);return{'registryPath':_0xe5f209,'entry':_0x5e626a,'serviceCount':_0x1a401a['services']['length']};}export function listLocalServices(_0x278eee={}){const _0xf608ca=a63_0x1dd3;return readServiceRegistry(_0x278eee)[_0xf608ca(0x116)];}export function getLocalServiceEntry(_0x146adf,_0x102dcf={}){const _0x122da5=a63_0x1dd3;return readServiceRegistry(_0x102dcf)[_0x122da5(0x116)][_0x122da5(0x115)](_0x73b5f2=>_0x73b5f2[_0x122da5(0xcd)]===_0x146adf[_0x122da5(0xf1)]());}export function listLocalServiceTrees(_0xe90520={}){const _0x5de59a=a63_0x1dd3;return readServiceRegistry(_0xe90520)[_0x5de59a(0x116)][_0x5de59a(0xd6)](_0x5efe1d=>_0x5efe1d[_0x5de59a(0x106)]);}export function inspectServiceRegistry(_0x54ba3d={}){const _0x4dccec=a63_0x1dd3,_0x379048=getServiceRegistryPath(_0x54ba3d);if(!existsSync(_0x379048))return emptyServiceRegistryInspection(_0x379048,_0x4dccec(0xd7),![]);try{const _0x3c1087=readFileSync(_0x379048,_0x4dccec(0x10b));if(!_0x3c1087[_0x4dccec(0xf1)]())return emptyServiceRegistryInspection(_0x379048,_0x4dccec(0xf0),!![]);const _0x2df91c=JSON['parse'](_0x3c1087);if(_0x2df91c[_0x4dccec(0xe6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x379048,_0x4dccec(0x117),!![]),'schemaVersion':_0x2df91c[_0x4dccec(0xe6)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x2df91c['schemaVersion'])};if(!Array[_0x4dccec(0xce)](_0x2df91c[_0x4dccec(0x116)]))return{...emptyServiceRegistryInspection(_0x379048,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2df91c['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0x3c372d=_0x2df91c['services'][_0x4dccec(0xd6)](summarizeLocalServiceEntry);return{'registryPath':_0x379048,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2df91c[_0x4dccec(0xdf)],'serviceCount':_0x3c372d['length'],'commandCount':_0x3c372d[_0x4dccec(0x100)]((_0x4da529,_0x2d4b92)=>_0x4da529+_0x2d4b92[_0x4dccec(0xea)],0x0),'services':_0x3c372d};}catch(_0x501e2a){return{...emptyServiceRegistryInspection(_0x379048,'invalid',!![]),'message':_0x501e2a instanceof Error?_0x501e2a[_0x4dccec(0x101)]:String(_0x501e2a)};}}export function formatValidationFailure(_0x462e44){const _0x500728=a63_0x1dd3,_0x2bee7a=_0x462e44['errors'][_0x500728(0xd6)](_0x390e81=>_0x390e81[_0x500728(0xf9)]+':\x20'+_0x390e81[_0x500728(0x101)]);return _0x500728(0xd2)+_0x2bee7a['join']('\x0a');}function extractLoadedServiceManifests(_0x25846b,_0xdfc14a){const _0x526bff=a63_0x1dd3;if(!isServiceRegistryLike(_0x25846b)){const _0x51caa7=_0x25846b,{manifest:_0x18bb0d,errors:_0x26cab5}=adaptServiceTreeManifestForLegacyFramework(_0x51caa7),_0x5696e0=validateServiceTreeManifest(_0x18bb0d),_0x2990ef=mergeValidationErrors(_0x5696e0,_0x26cab5);return[{'manifest':_0x51caa7,'report':_0x2990ef,'normalizedManifest':_0x2990ef['ok']?normalizeServiceTreeManifest(_0x18bb0d):undefined,'sourceHash':_0xdfc14a}];}return _0x25846b[_0x526bff(0x116)]['map']((_0x48d99c,_0x5dac6f)=>{const _0x264e2f=_0x526bff,_0xc71b7a=isObjectRecord(_0x48d99c)?_0x48d99c[_0x264e2f(0xe5)]:undefined,{manifest:_0x3243de,errors:_0x51271e}=adaptServiceTreeManifestForLegacyFramework(_0xc71b7a),_0x2aeb09=validateServiceTreeManifest(_0x3243de),_0xdbd27c=mergeValidationErrors(_0x2aeb09,_0x51271e),_0x68ccc=isObjectRecord(_0x48d99c)&&typeof _0x48d99c[_0x264e2f(0xcd)]===_0x264e2f(0x107)?_0x48d99c[_0x264e2f(0xcd)]:undefined;return{'manifest':_0xc71b7a,'report':_0xdbd27c,'normalizedManifest':_0xdbd27c['ok']?normalizeServiceTreeManifest(_0x3243de):undefined,'sourceHash':sha256(JSON[_0x264e2f(0xff)](_0xc71b7a,null,0x2)+'\x0a'),'registryIndex':_0x5dac6f,'registryServiceCode':_0x68ccc};});}function mergeValidationErrors(_0x12e252,_0x10c168){const _0x24c702=a63_0x1dd3,_0x27e7e4=_0x12e252[_0x24c702(0xe0)]['map'](_0x4ab168=>_0x4ab168[_0x24c702(0x101)]===_0x24c702(0xe8)?{..._0x4ab168,'message':'bff\x20target\x20requires\x20functionName.'}:_0x4ab168),_0x125f64=[..._0x10c168,..._0x27e7e4];return{'ok':_0x125f64['length']===0x0,'errors':_0x125f64,'warnings':_0x12e252['warnings']};}function aggregateValidationReports(_0x4436d1){const _0x5f1ddf=a63_0x1dd3,_0xe6690b=_0x4436d1['flatMap'](_0x331db8=>_0x331db8[_0x5f1ddf(0xec)]===undefined?_0x331db8['report'][_0x5f1ddf(0xe0)]:_0x331db8['report'][_0x5f1ddf(0xe0)][_0x5f1ddf(0xd6)](_0x555595=>({..._0x555595,'path':prefixRegistryIssuePath(_0x331db8['registryIndex'],_0x555595[_0x5f1ddf(0xf9)])}))),_0x291a2d=_0x4436d1[_0x5f1ddf(0xd9)](_0x101ec6=>_0x101ec6[_0x5f1ddf(0xec)]===undefined?_0x101ec6[_0x5f1ddf(0xd5)]['warnings']:_0x101ec6[_0x5f1ddf(0xd5)]['warnings'][_0x5f1ddf(0xd6)](_0x30e350=>({..._0x30e350,'path':prefixRegistryIssuePath(_0x101ec6[_0x5f1ddf(0xec)],_0x30e350[_0x5f1ddf(0xf9)])})));return{'ok':_0xe6690b[_0x5f1ddf(0xf3)]===0x0,'errors':_0xe6690b,'warnings':_0x291a2d};}function prefixRegistryIssuePath(_0x563298,_0x528bdc){const _0x3c940c=a63_0x1dd3;if(_0x528bdc==='$')return _0x3c940c(0x112)+_0x563298+_0x3c940c(0xf5);if(_0x528bdc['startsWith']('$.'))return'$.services['+_0x563298+_0x3c940c(0xf5)+_0x528bdc[_0x3c940c(0xfd)](0x1);if(_0x528bdc[_0x3c940c(0xf2)]('$['))return _0x3c940c(0x112)+_0x563298+_0x3c940c(0xf5)+_0x528bdc[_0x3c940c(0xfd)](0x1);return'$.services['+_0x563298+'].manifest.'+_0x528bdc;}function isServiceRegistryLike(_0x549fcf){const _0x18aab5=a63_0x1dd3;return isObjectRecord(_0x549fcf)&&_0x549fcf['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x18aab5(0xce)](_0x549fcf[_0x18aab5(0x116)]);}function isObjectRecord(_0x9fbdc5){const _0x31a2b3=a63_0x1dd3;return Boolean(_0x9fbdc5)&&typeof _0x9fbdc5===_0x31a2b3(0x118)&&!Array[_0x31a2b3(0xce)](_0x9fbdc5);}function emptyServiceRegistryInspection(_0x44a51f,_0x3fb250,_0x134a76){return{'registryPath':_0x44a51f,'exists':_0x134a76,'status':_0x3fb250,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x30a9d7){const _0x2c6566=a63_0x1dd3,_0x572d62=_0x30a9d7[_0x2c6566(0x106)],_0x5c2c28=_0x572d62['commands'][_0x2c6566(0xd6)](_0x69e054=>({'path':_0x69e054[_0x2c6566(0xf7)],'description':_0x69e054[_0x2c6566(0xfa)],'risk':_0x69e054['risk'],'targetKind':_0x69e054[_0x2c6566(0xeb)][_0x2c6566(0xe2)],'targetCommand':_0x69e054[_0x2c6566(0xeb)]['command']}));return{'serviceCode':_0x30a9d7[_0x2c6566(0xcd)],'name':_0x572d62['service'][_0x2c6566(0x109)],'description':_0x572d62[_0x2c6566(0x108)][_0x2c6566(0xfa)],'version':_0x30a9d7[_0x2c6566(0xdb)],'importedAt':_0x30a9d7['importedAt'],'source':_0x30a9d7[_0x2c6566(0xe4)],'commandCount':_0x5c2c28['length'],'commands':_0x5c2c28};}function sha256(_0x2c5bc4){const _0x48bf50=a63_0x1dd3;return createHash('sha256')[_0x48bf50(0xd0)](_0x2c5bc4)[_0x48bf50(0x10f)]('hex');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a64_0x160dd0=a64_0x43c8;(function(_0xa10ea6,_0xf72199){const _0x5dcdb1=a64_0x43c8,_0xa5789a=_0xa10ea6();while(!![]){try{const _0x2008e4=parseInt(_0x5dcdb1(0xe1))/0x1*(parseInt(_0x5dcdb1(0xf2))/0x2)+-parseInt(_0x5dcdb1(0xdb))/0x3+-parseInt(_0x5dcdb1(0xee))/0x4*(parseInt(_0x5dcdb1(0xe8))/0x5)+parseInt(_0x5dcdb1(0xe0))/0x6+-parseInt(_0x5dcdb1(0xe3))/0x7*(-parseInt(_0x5dcdb1(0xec))/0x8)+parseInt(_0x5dcdb1(0xf1))/0x9+parseInt(_0x5dcdb1(0xf7))/0xa*(parseInt(_0x5dcdb1(0xf6))/0xb);if(_0x2008e4===_0xf72199)break;else _0xa5789a['push'](_0xa5789a['shift']());}catch(_0x16af21){_0xa5789a['push'](_0xa5789a['shift']());}}}(a64_0x6a76,0x54dc0));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a64_0x6a76(){const _0x403dbb=['384723fdfJnM','2lelAAQ','read','target','isDirectory','2703503sWDtRS','10JRXHhZ','skillName','skillDir','rendered','name','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','validation','path','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','1474785WRalob','create','str','type','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','3068814REuPoO','53610THbkeR','utf8','711277zzCEgt','isSymbolicLink','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','force','580155lAUVnr','skill','files','trim','8KjjgdZ','Skill\x20directory\x20already\x20exists:\x20','4vRdGqP','Refusing\x20to\x20overwrite\x20symlink:\x20','map'];a64_0x6a76=function(){return _0x403dbb;};return a64_0x6a76();}import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a64_0x43c8(_0x14563c,_0x55a166){_0x14563c=_0x14563c-0xd3;const _0x6a763e=a64_0x6a76();let _0x43c87b=_0x6a763e[_0x14563c];return _0x43c87b;}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a64_0x160dd0(0xe9),'command':a64_0x160dd0(0xdc),'description':a64_0x160dd0(0xda),'risk':a64_0x160dd0(0xf3),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4c262f){const _0x5aa15a=a64_0x160dd0,_0x238f3c=buildSkillCreatePlan(_0x4c262f[_0x5aa15a(0xdd)](_0x5aa15a(0xd5)),_0x4c262f[_0x5aa15a(0xdd)](_0x5aa15a(0xde)),_0x4c262f[_0x5aa15a(0xdd)](_0x5aa15a(0xf4)));return{'method':'WRITE','url':_0x238f3c[_0x5aa15a(0xd3)],'body':{'skillName':_0x238f3c[_0x5aa15a(0xd4)][_0x5aa15a(0xf8)],'type':_0x238f3c[_0x5aa15a(0xd4)][_0x5aa15a(0xde)],'selfContained':!![],'files':_0x238f3c[_0x5aa15a(0xd4)]['files'][_0x5aa15a(0xf0)](_0x43faf2=>_0x43faf2['path'])},'description':_0x5aa15a(0xdf)};},async 'execute'(_0x2193db){const _0x3acf3a=a64_0x160dd0,_0x4a3c94=buildSkillCreatePlan(_0x2193db[_0x3acf3a(0xdd)](_0x3acf3a(0xd5)),_0x2193db[_0x3acf3a(0xdd)]('type'),_0x2193db[_0x3acf3a(0xdd)](_0x3acf3a(0xf4)));return writeSkillDraft(_0x4a3c94,_0x2193db['bool'](_0x3acf3a(0xe7))),{'ok':!![],'data':{'skillName':_0x4a3c94[_0x3acf3a(0xd4)][_0x3acf3a(0xf8)],'type':_0x4a3c94[_0x3acf3a(0xd4)][_0x3acf3a(0xde)],'dir':_0x4a3c94[_0x3acf3a(0xd3)],'files':_0x4a3c94[_0x3acf3a(0xd4)][_0x3acf3a(0xea)][_0x3acf3a(0xf0)](_0x2628aa=>_0x2628aa[_0x3acf3a(0xd9)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x4a3c94['rendered'][_0x3acf3a(0xf8)]};}};function buildSkillCreatePlan(_0x2e9f35,_0x11c187,_0x54ada2){const _0x5a9556=a64_0x160dd0,_0x595084=_0x11c187[_0x5a9556(0xeb)](),_0x2e946d=renderSkillTemplate({'skillName':_0x2e9f35,'type':_0x595084});!_0x595084&&writeCliSideChannelLine(_0x5a9556(0xe5));const _0x32fdff=resolve(normalizeSkillTarget(_0x54ada2));return{'rendered':_0x2e946d,'targetRoot':_0x32fdff,'skillDir':resolve(_0x32fdff,_0x2e946d[_0x5a9556(0xf8)])};}function normalizeSkillTarget(_0x132083){return(_0x132083||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x47c18e,_0x4bcc96){const _0x5a55b2=a64_0x160dd0;if(existsSync(_0x47c18e[_0x5a55b2(0xd3)])){const _0x51c930=lstatSync(_0x47c18e['skillDir']);if(!_0x51c930[_0x5a55b2(0xf5)]()||_0x51c930[_0x5a55b2(0xe4)]())throw CliErrors[_0x5a55b2(0xd8)](_0x5a55b2(0xd7)+_0x47c18e[_0x5a55b2(0xd3)]);if(!_0x4bcc96)throw CliErrors[_0x5a55b2(0xd8)](_0x5a55b2(0xed)+_0x47c18e['skillDir'],_0x5a55b2(0xd6));}for(const _0x35e6b6 of _0x47c18e[_0x5a55b2(0xd4)][_0x5a55b2(0xea)]){const _0x18db35=resolve(_0x47c18e[_0x5a55b2(0xd3)],_0x35e6b6['path']),_0xdb9feb=dirname(_0x18db35);mkdirSync(_0xdb9feb,{'recursive':!![]});if(existsSync(_0x18db35)&&lstatSync(_0x18db35)[_0x5a55b2(0xe4)]())throw CliErrors[_0x5a55b2(0xd8)](_0x5a55b2(0xef)+_0x18db35);writeFileSync(_0x18db35,_0x35e6b6[_0x5a55b2(0xe6)],_0x5a55b2(0xe2));}}
|