@lovrabet/lovrabet-cli 2.3.4 → 2.3.5-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/approval/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/import-excel.d.ts +2 -0
- package/lib/commands/data/import-excel.js +1 -0
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +19 -5
- 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.d.ts +1 -0
- package/lib/errors.js +1 -1
- package/lib/framework/access-error.d.ts +5 -0
- package/lib/framework/access-error.js +1 -0
- 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.d.ts +2 -17
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/services/dataset-import/auto-id-runner.d.ts +25 -0
- package/lib/services/dataset-import/auto-id-runner.js +1 -0
- package/lib/services/dataset-import/excel-reader.d.ts +3 -0
- package/lib/services/dataset-import/excel-reader.js +1 -0
- package/lib/services/dataset-import/metadata.d.ts +2 -0
- package/lib/services/dataset-import/metadata.js +1 -0
- package/lib/services/dataset-import/preview.d.ts +4 -0
- package/lib/services/dataset-import/preview.js +1 -0
- package/lib/services/dataset-import/runner.d.ts +63 -0
- package/lib/services/dataset-import/runner.js +1 -0
- package/lib/services/dataset-import/types.d.ts +33 -0
- package/lib/services/dataset-import/types.js +1 -0
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/positive-safe-integer.js +1 -1
- package/lib/utils/redaction.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 +8 -3
- package/skills/lovrabet/SKILL.md +10 -5
- package/skills/lovrabet/guides/dataset-and-data-workflow.md +4 -2
- package/skills/lovrabet/guides/role-and-permission-workflow.md +14 -0
- package/skills/lovrabet/guides/sql-and-bff-workflow.md +1 -1
- package/skills/lovrabet/guides/troubleshooting.md +7 -1
- package/skills/lovrabet/references/instant-api-workflow.md +6 -2
- package/skills/lovrabet/references/lovrabet-approval-workflow.md +16 -2
- package/skills/lovrabet/references/lovrabet-bff-workflow.md +9 -0
- package/skills/lovrabet/references/lovrabet-db-table-excel-import.md +113 -0
- package/skills/lovrabet/references/lovrabet-excel-import.md +31 -0
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-personal-bff-workflow.md +2 -0
- package/skills/lovrabet.manifest.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a55_0x46966c=a55_0x3204;(function(_0x462e5f,_0x16ece4){const _0x58eddf=a55_0x3204,_0x400226=_0x462e5f();while(!![]){try{const _0x161891=-parseInt(_0x58eddf(0xb0))/0x1+-parseInt(_0x58eddf(0xb8))/0x2+parseInt(_0x58eddf(0xba))/0x3+parseInt(_0x58eddf(0xb1))/0x4+parseInt(_0x58eddf(0xa8))/0x5+-parseInt(_0x58eddf(0xa3))/0x6+parseInt(_0x58eddf(0xbc))/0x7*(-parseInt(_0x58eddf(0x9f))/0x8);if(_0x161891===_0x16ece4)break;else _0x400226['push'](_0x400226['shift']());}catch(_0x17764f){_0x400226['push'](_0x400226['shift']());}}}(a55_0xc803,0xd5f77));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';function a55_0x3204(_0x1104a6,_0x470d52){_0x1104a6=_0x1104a6-0x8b;const _0xc803b4=a55_0xc803();let _0x3204f5=_0xc803b4[_0x1104a6];return _0x3204f5;}import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a55_0x46966c(0xb4),a55_0x46966c(0xa1),a55_0x46966c(0xa0),a55_0x46966c(0xb6)];const BUILTIN_ROLE_TYPES=[a55_0x46966c(0xb4),a55_0x46966c(0xa1),a55_0x46966c(0xa0)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a55_0x46966c(0xaf)};export const ROLE_REF_FLAG={'name':a55_0x46966c(0x9c),'type':a55_0x46966c(0xad),'required':!![],'description':a55_0x46966c(0x93)};export const ROLE_CODE_FLAG={'name':'role-code','type':'string','description':a55_0x46966c(0xa2)};export const USER_ID_FLAG={'name':'user','type':a55_0x46966c(0xad),'required':!![],'description':a55_0x46966c(0x91)};export const EXPECT_USER_COUNT_FLAG={'name':a55_0x46966c(0x90),'type':'number','description':a55_0x46966c(0xaa)};export function isBuiltinRuntimeRole(_0x30a37d){const _0x39a79d=a55_0x46966c;return BUILTIN_ROLE_TYPES[_0x39a79d(0x9d)](_0x30a37d);}export function assertCustomRuntimeRole(_0x40ab21,_0x31532f){const _0xed0467=a55_0x46966c;if(_0x40ab21[_0xed0467(0x9e)]!==_0xed0467(0xb6))throw CliErrors[_0xed0467(0x9a)](_0xed0467(0x95)+_0x31532f+_0xed0467(0xc0)+_0x40ab21['roleName']+'\x20('+_0x40ab21[_0xed0467(0x9e)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x599abd){const _0x49e97e=a55_0x46966c;return{'id':_0x599abd['id'],'roleCode':_0x599abd[_0x49e97e(0xa4)],'roleName':_0x599abd[_0x49e97e(0xac)],'roleType':_0x599abd[_0x49e97e(0x9e)],'remark':_0x599abd[_0x49e97e(0xc4)],'userCount':_0x599abd[_0x49e97e(0x99)]??0x0,'permitCount':_0x599abd[_0x49e97e(0x94)]??0x0,'builtin':isBuiltinRuntimeRole(_0x599abd[_0x49e97e(0x9e)])};}function a55_0xc803(){const _0x1118cc=['flag','CUSTOM','Runtime\x20role\x20','1293008kZAaaj','Pass\x20one\x20role\x20ID:\x20','2453325abUutw','\x20is\x20already\x20in\x20runtime\x20role\x20','63kJGSEJ','totalCount','length','str','\x20built-in\x20runtime\x20role\x20','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','\x20was\x20not\x20found\x20in\x20app\x20','Runtime\x20role\x20name\x20\x22','remark','Runtime\x20role\x20id\x20','--role-code\x20must\x20not\x20be\x20blank.','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','push','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','Runtime\x20user\x20','num','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','paging','applyUserList','map','items','userId','appCode','filter','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','user','expect-user-count','Runtime\x20numeric\x20userId','Pass\x20--role\x20<id|name>.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','permitCount','Cannot\x20','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','userList','User\x20','userCount','validation','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','role','includes','roleType','178168AiYLlx','OWNER','USER','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','816348hAUcSG','roleCode','test','role-code','runtime','5233450bTgGsR','user-add','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','trim','roleName','string','userName','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','602990tqUMcJ','2391732VUfMzH','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','isSafeInteger','ADMIN'];a55_0xc803=function(){return _0x1118cc;};return a55_0xc803();}export function readOptionalRuntimeRoleCode(_0x581b9a){const _0x5aff3e=a55_0x46966c,_0x51e8b6=_0x581b9a[_0x5aff3e(0xb5)](_0x5aff3e(0xa6));if(_0x51e8b6===undefined||_0x51e8b6===null)return undefined;const _0x20ba01=String(_0x51e8b6)[_0x5aff3e(0xab)]();if(!_0x20ba01)throw CliErrors[_0x5aff3e(0x9a)](_0x5aff3e(0xc6));if(_0x20ba01[_0x5aff3e(0xbe)]>0x40)throw CliErrors['validation']('--role-code\x20cannot\x20exceed\x2064\x20characters.');return _0x20ba01;}export async function getRuntimeRoleById(_0x2186c0,_0xc04447){const _0x3df72d=a55_0x46966c;if(!Number[_0x3df72d(0xb3)](_0xc04447)||_0xc04447<=0x0)throw CliErrors['validation'](_0x3df72d(0x9b));const _0x42e919=(await listAllRuntimeRoles(_0x2186c0))[_0x3df72d(0x8c)](_0x344d37=>_0x344d37['id']===_0xc04447&&(!_0x344d37['appCode']||_0x344d37[_0x3df72d(0x8b)]===_0x2186c0));if(_0x42e919[_0x3df72d(0xbe)]!==0x1)throw CliErrors['validation'](_0x3df72d(0xc5)+_0xc04447+_0x3df72d(0xc2)+_0x2186c0+'.',_0x3df72d(0x8e));return _0x42e919[0x0];}export async function listAllRuntimeRoles(_0x4f0df2,_0x496a18={}){const _0x39d1d4=a55_0x46966c,_0x382125=0x64,_0x582951=[];for(let _0x30df3e=0x1;;_0x30df3e+=0x1){const _0x47298f=await listRuntimeAppRoles(_0x4f0df2,{..._0x496a18[_0x39d1d4(0xac)]?{'roleName':_0x496a18[_0x39d1d4(0xac)]}:{},'currentPage':_0x30df3e,'pageSize':_0x382125});_0x582951[_0x39d1d4(0xc8)](..._0x47298f[_0x39d1d4(0xd0)]);if(_0x47298f[_0x39d1d4(0xd0)][_0x39d1d4(0xbe)]<_0x382125||_0x47298f[_0x39d1d4(0xcd)]&&_0x582951[_0x39d1d4(0xbe)]>=_0x47298f[_0x39d1d4(0xcd)][_0x39d1d4(0xbd)])return _0x582951;}}export async function resolveRuntimeRoleRef(_0x2266f2,_0x19146f){const _0x336318=a55_0x46966c,_0x43a5a0=_0x19146f[_0x336318(0xab)]();if(!_0x43a5a0)throw CliErrors[_0x336318(0x9a)]('Missing\x20runtime\x20role\x20reference.',_0x336318(0x92));if(/^\d+$/[_0x336318(0xa5)](_0x43a5a0))return getRuntimeRoleById(_0x2266f2,Number(_0x43a5a0));const _0x1086af=(await listAllRuntimeRoles(_0x2266f2))[_0x336318(0x8c)](_0x10b67a=>_0x10b67a[_0x336318(0xac)]===_0x43a5a0);if(_0x1086af[_0x336318(0xbe)]===0x0)throw CliErrors['validation'](_0x336318(0xc3)+_0x43a5a0+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0x2266f2+'.',_0x336318(0xb2));if(_0x1086af[_0x336318(0xbe)]>0x1)throw CliErrors[_0x336318(0x9a)]('Runtime\x20role\x20name\x20\x22'+_0x43a5a0+'\x22\x20is\x20ambiguous.',_0x336318(0xb9)+_0x1086af['map'](_0x1af1f3=>_0x1af1f3['id'])['join'](',\x20')+'.');return _0x1086af[0x0];}function parseRuntimeUserId(_0x4f905f){const _0x4c36b4=a55_0x46966c,_0x1c42bc=_0x4f905f['trim'](),_0xfc35b2=normalizePositiveSafeInteger(_0x1c42bc);if(_0xfc35b2===undefined)throw CliErrors[_0x4c36b4(0x9a)]('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.');return _0xfc35b2;}export async function prepareRuntimeMemberMutation(_0x237548,_0x40ab25){const _0x187ed8=a55_0x46966c,_0x10f0d2=await resolveRuntimeRoleRef(_0x237548[_0x187ed8(0x8b)],_0x237548[_0x187ed8(0xbf)](_0x187ed8(0x9c)));if(_0x10f0d2[_0x187ed8(0x9e)]===_0x187ed8(0xa0))throw CliErrors[_0x187ed8(0x9a)](_0x187ed8(0xc7),'Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x9fc261=parseRuntimeUserId(_0x237548[_0x187ed8(0xbf)](_0x187ed8(0x8f))),_0x788f73=(await listRuntimeRoleUsers(_0x237548[_0x187ed8(0x8b)]))['map'](_0x4f317f=>({..._0x4f317f,'userList':[..._0x4f317f[_0x187ed8(0x97)]??[]],'applyUserList':[..._0x4f317f[_0x187ed8(0xce)]??[]]})),_0x5e86cd=_0x788f73['find'](_0x23ff75=>_0x23ff75['id']===_0x10f0d2['id']);if(!_0x5e86cd)throw CliErrors[_0x187ed8(0x9a)](_0x187ed8(0xb7)+_0x10f0d2['id']+_0x187ed8(0x8d),_0x187ed8(0xc1));const _0x15937a=_0x5e86cd[_0x187ed8(0x97)][_0x187ed8(0xcf)](_0x2af611=>_0x2af611['userId']),_0xad068a=_0x237548['flag'](_0x187ed8(0x90));if(_0xad068a!==undefined&&_0xad068a!==null&&_0xad068a!==''){const _0x34b56f=_0x237548[_0x187ed8(0xcb)](_0x187ed8(0x90));if(!Number['isSafeInteger'](_0x34b56f)||_0x34b56f<0x0)throw CliErrors[_0x187ed8(0x9a)]('--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.');if(_0x15937a[_0x187ed8(0xbe)]!==_0x34b56f)throw CliErrors[_0x187ed8(0x9a)](_0x187ed8(0x96)+_0x34b56f+',\x20found\x20'+_0x15937a[_0x187ed8(0xbe)]+'.',_0x187ed8(0xc9));}const _0xb4e009=_0x15937a['includes'](_0x9fc261),_0x41ae10=[];let _0x1dbfac=!![];if(_0x40ab25===_0x187ed8(0xa9)){const _0x306b78=await listRuntimeAppUsers(_0x237548[_0x187ed8(0x8b)]),_0x3d891c=_0x306b78[_0x187ed8(0x8c)](_0x2c1535=>Number(_0x2c1535['code'])===_0x9fc261);if(_0x3d891c[_0x187ed8(0xbe)]!==0x1||!_0x3d891c[0x0][_0x187ed8(0xae)]?.[_0x187ed8(0xab)]())throw CliErrors['validation'](_0x187ed8(0xca)+_0x9fc261+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x237548[_0x187ed8(0x8b)]+'.',_0x187ed8(0xcc));_0xb4e009?(_0x1dbfac=![],_0x41ae10[_0x187ed8(0xc8)](_0x187ed8(0x98)+_0x9fc261+_0x187ed8(0xbb)+_0x10f0d2['id']+'.')):_0x5e86cd[_0x187ed8(0x97)][_0x187ed8(0xc8)]({'userId':_0x9fc261,'username':_0x3d891c[0x0]['userName']});}else!_0xb4e009?(_0x1dbfac=![],_0x41ae10[_0x187ed8(0xc8)]('User\x20'+_0x9fc261+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x10f0d2['id']+'.')):_0x5e86cd[_0x187ed8(0x97)]=_0x5e86cd[_0x187ed8(0x97)]['filter'](_0x6281a4=>_0x6281a4[_0x187ed8(0xd1)]!==_0x9fc261);return{'role':_0x10f0d2,'userId':_0x9fc261,'roleList':_0x788f73,'before':{'userIds':_0x15937a},'after':{'userIds':_0x5e86cd[_0x187ed8(0x97)]['map'](_0x59a00=>_0x59a00[_0x187ed8(0xd1)])},'shouldWrite':_0x1dbfac,'warnings':_0x41ae10};}export function runtimeRoleWriteResult(_0x22cced,_0x3d0bdd,_0x2087be,_0x3f473c,_0x1d2336,_0x5d55d1=[]){const _0x29f4c5=a55_0x46966c;return{'operation':_0x22cced,'scope':_0x29f4c5(0xa7),'selector':_0x3d0bdd,'before':_0x2087be,'after':_0x3f473c,'dryRun':![],'backend':_0x1d2336,'warnings':_0x5d55d1};}
|
|
1
|
+
const a56_0x3dc0a6=a56_0x583e;(function(_0x5a6a40,_0x15ad69){const _0x5bbafa=a56_0x583e,_0x52573e=_0x5a6a40();while(!![]){try{const _0x1b1879=parseInt(_0x5bbafa(0x1f0))/0x1*(-parseInt(_0x5bbafa(0x1f5))/0x2)+-parseInt(_0x5bbafa(0x221))/0x3*(parseInt(_0x5bbafa(0x1e8))/0x4)+-parseInt(_0x5bbafa(0x209))/0x5*(-parseInt(_0x5bbafa(0x1e9))/0x6)+-parseInt(_0x5bbafa(0x20d))/0x7+parseInt(_0x5bbafa(0x22d))/0x8+-parseInt(_0x5bbafa(0x212))/0x9+parseInt(_0x5bbafa(0x1ea))/0xa*(parseInt(_0x5bbafa(0x20b))/0xb);if(_0x1b1879===_0x15ad69)break;else _0x52573e['push'](_0x52573e['shift']());}catch(_0x227206){_0x52573e['push'](_0x52573e['shift']());}}}(a56_0x3e19,0x9d75b));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x3dc0a6(0x210),a56_0x3dc0a6(0x206),a56_0x3dc0a6(0x226),a56_0x3dc0a6(0x213)];function a56_0x3e19(){const _0x26a2f2=['number','trim','6748872GCgIiJ','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','user','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','1220vLzTgG','34458avQXms','17020wNCxPc','expect-user-count','\x22\x20was\x20not\x20found\x20in\x20app\x20','Runtime\x20user\x20','string','length','84145jgdkkg','push','test','\x20is\x20not\x20in\x20runtime\x20role\x20','paging','10ghJiUB','remark','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','\x20is\x20already\x20in\x20runtime\x20role\x20','runtime','filter','permitCount','roleName','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','userCount','totalCount','Runtime\x20role\x20','roleType',',\x20found\x20','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','Runtime\x20role\x20name\x20\x22','USER','map','--role-code\x20cannot\x20exceed\x2064\x20characters.','210lXssIk','Runtime\x20role\x20id\x20','10208bXCHPd','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','8165227JGSGAa','appCode','find','ADMIN','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','1366515VslNGa','CUSTOM','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','isSafeInteger','validation','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','Runtime\x20numeric\x20userId','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','user-add','\x20was\x20not\x20found\x20in\x20app\x20','Pass\x20--role\x20<id|name>.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','flag','\x20built-in\x20runtime\x20role\x20','2757UpFviJ','role-code','userList','userId','User\x20','OWNER','roleCode','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','userName'];a56_0x3e19=function(){return _0x26a2f2;};return a56_0x3e19();}const BUILTIN_ROLE_TYPES=[a56_0x3dc0a6(0x210),a56_0x3dc0a6(0x206),'OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a56_0x3dc0a6(0x22b),'required':!![],'description':a56_0x3dc0a6(0x214)};export const ROLE_REF_FLAG={'name':'role','type':'string','required':!![],'description':a56_0x3dc0a6(0x21d)};export const ROLE_CODE_FLAG={'name':a56_0x3dc0a6(0x222),'type':a56_0x3dc0a6(0x1ee),'description':a56_0x3dc0a6(0x1e5)};export const USER_ID_FLAG={'name':a56_0x3dc0a6(0x1e6),'type':a56_0x3dc0a6(0x1ee),'required':!![],'description':a56_0x3dc0a6(0x218)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':a56_0x3dc0a6(0x22b),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x3160db){return BUILTIN_ROLE_TYPES['includes'](_0x3160db);}export function assertCustomRuntimeRole(_0x3afebc,_0x3036e5){const _0x3e1bf7=a56_0x3dc0a6;if(_0x3afebc[_0x3e1bf7(0x202)]!==_0x3e1bf7(0x213))throw CliErrors[_0x3e1bf7(0x216)]('Cannot\x20'+_0x3036e5+_0x3e1bf7(0x220)+_0x3afebc[_0x3e1bf7(0x1fd)]+'\x20('+_0x3afebc[_0x3e1bf7(0x202)]+').',_0x3e1bf7(0x1f7));}export function projectRuntimeRole(_0x244ddb){const _0x1a2fb1=a56_0x3dc0a6;return{'id':_0x244ddb['id'],'roleCode':_0x244ddb[_0x1a2fb1(0x227)],'roleName':_0x244ddb[_0x1a2fb1(0x1fd)],'roleType':_0x244ddb[_0x1a2fb1(0x202)],'remark':_0x244ddb[_0x1a2fb1(0x1f6)],'userCount':_0x244ddb[_0x1a2fb1(0x1ff)]??0x0,'permitCount':_0x244ddb[_0x1a2fb1(0x1fc)]??0x0,'builtin':isBuiltinRuntimeRole(_0x244ddb[_0x1a2fb1(0x202)])};}export function readOptionalRuntimeRoleCode(_0x534157){const _0x583ed5=a56_0x3dc0a6,_0x1d777a=_0x534157[_0x583ed5(0x21f)](_0x583ed5(0x222));if(_0x1d777a===undefined||_0x1d777a===null)return undefined;const _0x1ee4f6=String(_0x1d777a)[_0x583ed5(0x22c)]();if(!_0x1ee4f6)throw CliErrors[_0x583ed5(0x216)]('--role-code\x20must\x20not\x20be\x20blank.');if(_0x1ee4f6[_0x583ed5(0x1ef)]>0x40)throw CliErrors['validation'](_0x583ed5(0x208));return _0x1ee4f6;}function a56_0x583e(_0x24e558,_0x4e15c0){_0x24e558=_0x24e558-0x1e4;const _0x3e19b0=a56_0x3e19();let _0x583ecc=_0x3e19b0[_0x24e558];return _0x583ecc;}export async function getRuntimeRoleById(_0x372dc2,_0x2f1871){const _0x2b28b8=a56_0x3dc0a6;if(!Number[_0x2b28b8(0x215)](_0x2f1871)||_0x2f1871<=0x0)throw CliErrors['validation'](_0x2b28b8(0x1e7));const _0x3b9990=(await listAllRuntimeRoles(_0x372dc2))[_0x2b28b8(0x1fb)](_0xb6be45=>_0xb6be45['id']===_0x2f1871&&(!_0xb6be45[_0x2b28b8(0x20e)]||_0xb6be45[_0x2b28b8(0x20e)]===_0x372dc2));if(_0x3b9990['length']!==0x1)throw CliErrors[_0x2b28b8(0x216)](_0x2b28b8(0x20a)+_0x2f1871+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x372dc2+'.',_0x2b28b8(0x20c));return _0x3b9990[0x0];}export async function listAllRuntimeRoles(_0x40173b,_0x5d6833={}){const _0x3733fc=a56_0x3dc0a6,_0x97f329=0x64,_0x432dfc=[];for(let _0x22f6dc=0x1;;_0x22f6dc+=0x1){const _0x2bbe26=await listRuntimeAppRoles(_0x40173b,{..._0x5d6833[_0x3733fc(0x1fd)]?{'roleName':_0x5d6833[_0x3733fc(0x1fd)]}:{},'currentPage':_0x22f6dc,'pageSize':_0x97f329});_0x432dfc[_0x3733fc(0x1f1)](..._0x2bbe26['items']);if(_0x2bbe26['items']['length']<_0x97f329||_0x2bbe26[_0x3733fc(0x1f4)]&&_0x432dfc['length']>=_0x2bbe26['paging'][_0x3733fc(0x200)])return _0x432dfc;}}export async function resolveRuntimeRoleRef(_0x2d33c3,_0x53b7b9){const _0x201e13=a56_0x3dc0a6,_0x58c018=_0x53b7b9[_0x201e13(0x22c)]();if(!_0x58c018)throw CliErrors[_0x201e13(0x216)]('Missing\x20runtime\x20role\x20reference.',_0x201e13(0x21c));if(/^\d+$/[_0x201e13(0x1f2)](_0x58c018))return getRuntimeRoleById(_0x2d33c3,Number(_0x58c018));const _0x1950f9=(await listAllRuntimeRoles(_0x2d33c3))[_0x201e13(0x1fb)](_0x5012d9=>_0x5012d9[_0x201e13(0x1fd)]===_0x58c018);if(_0x1950f9[_0x201e13(0x1ef)]===0x0)throw CliErrors[_0x201e13(0x216)](_0x201e13(0x205)+_0x58c018+_0x201e13(0x1ec)+_0x2d33c3+'.',_0x201e13(0x219));if(_0x1950f9[_0x201e13(0x1ef)]>0x1)throw CliErrors[_0x201e13(0x216)]('Runtime\x20role\x20name\x20\x22'+_0x58c018+'\x22\x20is\x20ambiguous.','Pass\x20one\x20role\x20ID:\x20'+_0x1950f9[_0x201e13(0x207)](_0x4b063b=>_0x4b063b['id'])['join'](',\x20')+'.');return _0x1950f9[0x0];}function parseRuntimeUserId(_0x9ace22){const _0x5e86c7=a56_0x3dc0a6,_0x4b78bd=_0x9ace22[_0x5e86c7(0x22c)](),_0x51ea5f=normalizePositiveSafeInteger(_0x4b78bd);if(_0x51ea5f===undefined)throw CliErrors['validation'](_0x5e86c7(0x1e4),_0x5e86c7(0x228));return _0x51ea5f;}export async function prepareRuntimeMemberMutation(_0x4e0c77,_0x417dcb){const _0x3b4263=a56_0x3dc0a6,_0x37753c=await resolveRuntimeRoleRef(_0x4e0c77[_0x3b4263(0x20e)],_0x4e0c77['str']('role'));if(_0x37753c[_0x3b4263(0x202)]===_0x3b4263(0x226))throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x211),_0x3b4263(0x204));const _0x4b740a=parseRuntimeUserId(_0x4e0c77['str']('user')),_0xb9907=(await listRuntimeRoleUsers(_0x4e0c77[_0x3b4263(0x20e)]))[_0x3b4263(0x207)](_0x2fe2ca=>({..._0x2fe2ca,'userList':[..._0x2fe2ca[_0x3b4263(0x223)]??[]],'applyUserList':[..._0x2fe2ca['applyUserList']??[]]})),_0x5bde4d=_0xb9907[_0x3b4263(0x20f)](_0x41bb67=>_0x41bb67['id']===_0x37753c['id']);if(!_0x5bde4d)throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x201)+_0x37753c['id']+_0x3b4263(0x229),_0x3b4263(0x1f8));const _0x43a9bd=_0x5bde4d[_0x3b4263(0x223)][_0x3b4263(0x207)](_0x1527a9=>_0x1527a9['userId']),_0x4582b7=_0x4e0c77[_0x3b4263(0x21f)](_0x3b4263(0x1eb));if(_0x4582b7!==undefined&&_0x4582b7!==null&&_0x4582b7!==''){const _0x163de1=_0x4e0c77['num'](_0x3b4263(0x1eb));if(!Number[_0x3b4263(0x215)](_0x163de1)||_0x163de1<0x0)throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x21e));if(_0x43a9bd[_0x3b4263(0x1ef)]!==_0x163de1)throw CliErrors['validation'](_0x3b4263(0x217)+_0x163de1+_0x3b4263(0x203)+_0x43a9bd[_0x3b4263(0x1ef)]+'.',_0x3b4263(0x1fe));}const _0x941394=_0x43a9bd['includes'](_0x4b740a),_0x1e6bb9=[];let _0x356e83=!![];if(_0x417dcb===_0x3b4263(0x21a)){const _0x932e2a=await listRuntimeAppUsers(_0x4e0c77['appCode']),_0x589386=_0x932e2a['filter'](_0xe8e88=>Number(_0xe8e88['code'])===_0x4b740a);if(_0x589386[_0x3b4263(0x1ef)]!==0x1||!_0x589386[0x0][_0x3b4263(0x22a)]?.['trim']())throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x1ed)+_0x4b740a+_0x3b4263(0x21b)+_0x4e0c77['appCode']+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x941394?(_0x356e83=![],_0x1e6bb9[_0x3b4263(0x1f1)](_0x3b4263(0x225)+_0x4b740a+_0x3b4263(0x1f9)+_0x37753c['id']+'.')):_0x5bde4d['userList']['push']({'userId':_0x4b740a,'username':_0x589386[0x0][_0x3b4263(0x22a)]});}else!_0x941394?(_0x356e83=![],_0x1e6bb9[_0x3b4263(0x1f1)](_0x3b4263(0x225)+_0x4b740a+_0x3b4263(0x1f3)+_0x37753c['id']+'.')):_0x5bde4d[_0x3b4263(0x223)]=_0x5bde4d['userList'][_0x3b4263(0x1fb)](_0x520a77=>_0x520a77[_0x3b4263(0x224)]!==_0x4b740a);return{'role':_0x37753c,'userId':_0x4b740a,'roleList':_0xb9907,'before':{'userIds':_0x43a9bd},'after':{'userIds':_0x5bde4d[_0x3b4263(0x223)][_0x3b4263(0x207)](_0x156565=>_0x156565['userId'])},'shouldWrite':_0x356e83,'warnings':_0x1e6bb9};}export function runtimeRoleWriteResult(_0x140cc0,_0x29de40,_0x35e26f,_0x288a3c,_0x4d09e1,_0x5b6db8=[]){const _0x4f2e9c=a56_0x3dc0a6;return{'operation':_0x140cc0,'scope':_0x4f2e9c(0x1fa),'selector':_0x29de40,'before':_0x35e26f,'after':_0x288a3c,'dryRun':![],'backend':_0x4d09e1,'warnings':_0x5b6db8};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a57_0xc21953=a57_0x2b8b;(function(_0x5b2e2c,_0x2c48c4){const _0x1a7c4a=a57_0x2b8b,_0x5e934b=_0x5b2e2c();while(!![]){try{const _0x2459e1=parseInt(_0x1a7c4a(0x12a))/0x1*(parseInt(_0x1a7c4a(0x125))/0x2)+-parseInt(_0x1a7c4a(0x123))/0x3*(-parseInt(_0x1a7c4a(0x137))/0x4)+parseInt(_0x1a7c4a(0x11e))/0x5+-parseInt(_0x1a7c4a(0x11c))/0x6*(-parseInt(_0x1a7c4a(0x11f))/0x7)+parseInt(_0x1a7c4a(0x136))/0x8*(parseInt(_0x1a7c4a(0x134))/0x9)+parseInt(_0x1a7c4a(0x124))/0xa+-parseInt(_0x1a7c4a(0x12e))/0xb;if(_0x2459e1===_0x2c48c4)break;else _0x5e934b['push'](_0x5e934b['shift']());}catch(_0x56b1f5){_0x5e934b['push'](_0x5e934b['shift']());}}}(a57_0x3aef,0x921d9));import{updateRuntimeAppRole}from'../../core/api-client.js';function a57_0x3aef(){const _0x504e0f=['--remark\x20must\x20not\x20be\x20blank.','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','string','20530411YynEXP','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','body','appCode','trim','validation','4166559EbAfmT','high-risk-write','8rMQLBo','472cObILi','name','update','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','role-code','build','num','remark','2461854rRZiGf','New\x20non-empty\x20role\x20remark','2631480WldnLB','7hMhEWT','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','str','flag','4629IhnSfe','2782150salNlH','14tnrkRJ','/client/permit/role/update','New\x20role\x20name','POST','role','86435eCBlzj'];a57_0x3aef=function(){return _0x504e0f;};return a57_0x3aef();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x4a9976){const _0x7b5e08=a57_0x2b8b,_0x48ea82=_0x4a9976['flag'](_0x7b5e08(0x118))!==undefined,_0x4113e7=_0x4a9976[_0x7b5e08(0x122)](_0x7b5e08(0x115))!==undefined,_0x4b71b6=_0x4a9976[_0x7b5e08(0x122)]('remark')!==undefined;if(!_0x48ea82&&!_0x4113e7&&!_0x4b71b6)throw CliErrors[_0x7b5e08(0x133)](_0x7b5e08(0x12f));const _0x32a583=readOptionalRuntimeRoleCode(_0x4a9976),_0x8a55f9=_0x4a9976[_0x7b5e08(0x121)](_0x7b5e08(0x115))[_0x7b5e08(0x132)](),_0x5205d6=_0x4a9976['str']('remark')[_0x7b5e08(0x132)]();if(_0x4113e7&&!_0x8a55f9)throw CliErrors['validation']('--name\x20must\x20not\x20be\x20blank.');if(_0x4b71b6&&!_0x5205d6)throw CliErrors[_0x7b5e08(0x133)](_0x7b5e08(0x12b),_0x7b5e08(0x117));return{..._0x32a583?{'roleCode':_0x32a583}:{},..._0x4113e7?{'roleName':_0x8a55f9}:{},..._0x4b71b6?{'remark':_0x5205d6}:{}};}async function prepare(_0x1ebeb8){const _0xecc680=a57_0x2b8b,_0x1bb999=await getRuntimeRoleById(_0x1ebeb8['appCode'],_0x1ebeb8[_0xecc680(0x11a)]('id'));return assertCustomRuntimeRole(_0x1bb999,'update'),{'role':_0x1bb999,'body':{'id':_0x1bb999['id'],'appCode':_0x1ebeb8[_0xecc680(0x131)],...updateFields(_0x1ebeb8)}};}function a57_0x2b8b(_0x5f27b5,_0x44689f){_0x5f27b5=_0x5f27b5-0x115;const _0x3aefc7=a57_0x3aef();let _0x2b8b89=_0x3aefc7[_0x5f27b5];return _0x2b8b89;}export const roleUpdate={'service':a57_0xc21953(0x129),'command':'update','description':a57_0xc21953(0x120),'risk':a57_0xc21953(0x135),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':'name','type':a57_0xc21953(0x12d),'description':a57_0xc21953(0x127)},{'name':a57_0xc21953(0x11b),'type':a57_0xc21953(0x12d),'description':a57_0xc21953(0x11d)}],async 'validate'(_0x2a09ed){updateFields(_0x2a09ed);},async 'dryRun'(_0xef2495){const _0x32efd0=a57_0xc21953,{body:_0xf3b53e}=await prepare(_0xef2495);return dryRun(_0x32efd0(0x128),_0x32efd0(0x126))[_0x32efd0(0x130)](_0xf3b53e)['description'](_0x32efd0(0x12c))[_0x32efd0(0x119)]();},async 'execute'(_0x393505){const _0x5ac96c=a57_0xc21953,{role:_0xf646e5,body:_0x238cff}=await prepare(_0x393505),_0x4a515e=await updateRuntimeAppRole(_0x238cff);return{'ok':!![],'data':runtimeRoleWriteResult(_0x5ac96c(0x116),{'roleId':_0xf646e5['id']},projectRuntimeRole(_0xf646e5),projectRuntimeRole(_0x4a515e),{'method':_0x5ac96c(0x128),'path':_0x5ac96c(0x126)})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a58_0x3b27(){const _0x23f385=['/client/permit/user-role/update-user-list','build','1729MyPdOl','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','177699ekAqKm','user-add','15208JZxLOM','high-risk-write','2264562uaQhvj','POST','appCode','Preview:\x20add\x20runtime\x20role\x20member','10861236kUQFOc','20hFKGFA','roleList','1170654VdzSKM','userId','shouldWrite','role','warnings','80218lHvHwT','3415304NfanYu','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','description'];a58_0x3b27=function(){return _0x23f385;};return a58_0x3b27();}const a58_0x2597cf=a58_0x17c5;(function(_0x3cd287,_0x493068){const _0x16f5ec=a58_0x17c5,_0x13e4b8=_0x3cd287();while(!![]){try{const _0x2a8ee6=-parseInt(_0x16f5ec(0x9b))/0x1+-parseInt(_0x16f5ec(0x93))/0x2+-parseInt(_0x16f5ec(0x9f))/0x3+-parseInt(_0x16f5ec(0x94))/0x4+parseInt(_0x16f5ec(0xa4))/0x5*(parseInt(_0x16f5ec(0xa6))/0x6)+-parseInt(_0x16f5ec(0x99))/0x7*(-parseInt(_0x16f5ec(0x9d))/0x8)+parseInt(_0x16f5ec(0xa3))/0x9;if(_0x2a8ee6===_0x493068)break;else _0x13e4b8['push'](_0x13e4b8['shift']());}catch(_0x4c18e8){_0x13e4b8['push'](_0x13e4b8['shift']());}}}(a58_0x3b27,0x99e1b));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a58_0x17c5(_0x18f22a,_0x158b74){_0x18f22a=_0x18f22a-0x93;const _0x3b27f5=a58_0x3b27();let _0x17c553=_0x3b27f5[_0x18f22a];return _0x17c553;}export const roleUserAdd={'service':a58_0x2597cf(0xa9),'command':a58_0x2597cf(0x9c),'description':a58_0x2597cf(0x9a),'risk':a58_0x2597cf(0x9e),'confirmationDescription':a58_0x2597cf(0x95),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xff83d9){const _0x34cb84=a58_0x2597cf,_0x340d21=await prepareRuntimeMemberMutation(_0xff83d9,_0x34cb84(0x9c));return dryRun(_0x34cb84(0xa0),_0x34cb84(0x97))['body']({'appCode':_0xff83d9[_0x34cb84(0xa1)],'roleList':_0x340d21[_0x34cb84(0xa5)]})[_0x34cb84(0x96)](_0x340d21[_0x34cb84(0xa8)]?_0x34cb84(0xa2):_0x340d21[_0x34cb84(0xaa)][0x0])[_0x34cb84(0x98)]();},async 'execute'(_0x4218c8){const _0x186f28=a58_0x2597cf,_0x50f925=await prepareRuntimeMemberMutation(_0x4218c8,'user-add');return _0x50f925[_0x186f28(0xa8)]&&await updateRuntimeRoleUsers(_0x4218c8[_0x186f28(0xa1)],_0x50f925[_0x186f28(0xa5)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x186f28(0x9c),{'roleId':_0x50f925['role']['id'],'userId':_0x50f925[_0x186f28(0xa7)]},_0x50f925['before'],_0x50f925['after'],{'method':'POST','path':_0x186f28(0x97)},_0x50f925[_0x186f28(0xaa)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a59_0x462802=a59_0x2e59;(function(_0x1e5e35,_0x43f86a){const _0x2d6cee=a59_0x2e59,_0x359996=_0x1e5e35();while(!![]){try{const _0x303c8b=-parseInt(_0x2d6cee(0x1c0))/0x1+parseInt(_0x2d6cee(0x1ba))/0x2*(-parseInt(_0x2d6cee(0x1b7))/0x3)+parseInt(_0x2d6cee(0x1c1))/0x4+-parseInt(_0x2d6cee(0x1bb))/0x5*(-parseInt(_0x2d6cee(0x1c9))/0x6)+-parseInt(_0x2d6cee(0x1b6))/0x7*(parseInt(_0x2d6cee(0x1c5))/0x8)+-parseInt(_0x2d6cee(0x1b5))/0x9*(-parseInt(_0x2d6cee(0x1b8))/0xa)+parseInt(_0x2d6cee(0x1c7))/0xb*(-parseInt(_0x2d6cee(0x1cc))/0xc);if(_0x303c8b===_0x43f86a)break;else _0x359996['push'](_0x359996['shift']());}catch(_0xd8896){_0x359996['push'](_0x359996['shift']());}}}(a59_0x5d70,0x676ad));function a59_0x5d70(){const _0x5c4503=['high-risk-write','22YMctlr','before','2754BxlrLd','role','warnings','1397652HcPqvg','POST','build','2224593KwmetU','1148rSOYna','108483MhegxH','30soLRUv','appCode','24HJvnWw','4475ZFpUeT','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','shouldWrite','roleList','description','447529AyZsbk','1649584GoCdvg','user-remove','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','/client/permit/user-role/update-user-list','1304dFWjIo'];a59_0x5d70=function(){return _0x5c4503;};return a59_0x5d70();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a59_0x2e59(_0x148454,_0x43331e){_0x148454=_0x148454-0x1b3;const _0x5d700c=a59_0x5d70();let _0x2e595d=_0x5d700c[_0x148454];return _0x2e595d;}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':a59_0x462802(0x1ca),'command':'user-remove','description':a59_0x462802(0x1bc),'risk':a59_0x462802(0x1c6),'confirmationDescription':a59_0x462802(0x1c3),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2d1887){const _0x24e2b7=a59_0x462802,_0x52446a=await prepareRuntimeMemberMutation(_0x2d1887,_0x24e2b7(0x1c2));return dryRun(_0x24e2b7(0x1b3),_0x24e2b7(0x1c4))['body']({'appCode':_0x2d1887['appCode'],'roleList':_0x52446a['roleList']})[_0x24e2b7(0x1bf)](_0x52446a[_0x24e2b7(0x1bd)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x52446a[_0x24e2b7(0x1cb)][0x0])[_0x24e2b7(0x1b4)]();},async 'execute'(_0x23ae57){const _0x445c32=a59_0x462802,_0x375ebf=await prepareRuntimeMemberMutation(_0x23ae57,_0x445c32(0x1c2));return _0x375ebf['shouldWrite']&&await updateRuntimeRoleUsers(_0x23ae57[_0x445c32(0x1b9)],_0x375ebf[_0x445c32(0x1be)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x445c32(0x1c2),{'roleId':_0x375ebf[_0x445c32(0x1ca)]['id'],'userId':_0x375ebf['userId']},_0x375ebf[_0x445c32(0x1c8)],_0x375ebf['after'],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x375ebf[_0x445c32(0x1cb)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a59_0x1dfc5a=a59_0x1650;(function(_0x1cc262,_0x302e0c){const _0x44336d=a59_0x1650,_0x2e6b62=_0x1cc262();while(!![]){try{const _0x44c0e1=-parseInt(_0x44336d(0xe3))/0x1*(-parseInt(_0x44336d(0xe7))/0x2)+-parseInt(_0x44336d(0xa9))/0x3+-parseInt(_0x44336d(0xa5))/0x4*(-parseInt(_0x44336d(0xad))/0x5)+-parseInt(_0x44336d(0xca))/0x6*(parseInt(_0x44336d(0xe2))/0x7)+-parseInt(_0x44336d(0xc8))/0x8+parseInt(_0x44336d(0xeb))/0x9+parseInt(_0x44336d(0xcb))/0xa;if(_0x44c0e1===_0x302e0c)break;else _0x2e6b62['push'](_0x2e6b62['shift']());}catch(_0x3c7fe2){_0x2e6b62['push'](_0x2e6b62['shift']());}}}(a59_0x5fc2,0x3fdc3));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a59_0x5fc2(){const _0x2f5d15=['/api/harness/apps/','1183680yOaEpP','/run','24xjvZTW','4110940lmQJkR','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','scheduled-at','appCode','\x20schedule\x20','DELETE','\x20immediately','schedule-id','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','validate','Show\x20one\x20schedule\x20by\x20schedule\x20ID','schedule','body','kind','/schedules','description','run','list','trim','taskId','prompt','Page\x20size\x20from\x201\x20to\x20100','191086oFiMkU','329597NvupIc','validation','cron','string','2TdNDrY','--title\x20must\x20not\x20be\x20blank.','model','Preview:\x20create\x20an\x20Agent\x20schedule','1101951rKtTdh','deepseek-v4-flash-0731','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Schedule\x20input\x20is\x20valid','num','Queued\x20Task\x20','4oAafBG','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','ONCE','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','1044762jZQCEC','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','create','number','19235AxmfZZ','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','POST','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Deleted\x20schedule\x20','Schedule\x20title','scheduleId','build','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','cursor','length','CRON','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','limit','read','Created\x20','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Preview:\x20delete\x20schedule\x20','delete','\x20from\x20schedule\x20','kimi/k3','UTC','high-risk-write','deepseek-v4-pro-0813','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','str'];a59_0x5fc2=function(){return _0x2f5d15;};return a59_0x5fc2();}import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a59_0x1dfc5a(0xd9),'type':a59_0x1dfc5a(0xe6),'required':!![],'enum':[a59_0x1dfc5a(0xb8),a59_0x1dfc5a(0xa7)],'description':a59_0x1dfc5a(0xb0)},CRON_FLAG={'name':a59_0x1dfc5a(0xe5),'type':a59_0x1dfc5a(0xe6),'description':a59_0x1dfc5a(0xcc)},SCHEDULED_AT_FLAG={'name':a59_0x1dfc5a(0xcd),'type':a59_0x1dfc5a(0xe6),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':'title','type':a59_0x1dfc5a(0xe6),'required':!![],'description':a59_0x1dfc5a(0xb2)},PROMPT_FLAG={'name':a59_0x1dfc5a(0xe0),'type':a59_0x1dfc5a(0xe6),'required':!![],'description':a59_0x1dfc5a(0xd4)},MODEL_FLAG={'name':'model','type':'string','enum':[a59_0x1dfc5a(0xc1),a59_0x1dfc5a(0xec),a59_0x1dfc5a(0xc4)],'default':a59_0x1dfc5a(0xec),'description':a59_0x1dfc5a(0xa6)},SCHEDULE_ID_FLAG={'name':a59_0x1dfc5a(0xd2),'type':'string','required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a59_0x1dfc5a(0xae)}},LIMIT_FLAG={'name':a59_0x1dfc5a(0xba),'type':a59_0x1dfc5a(0xac),'default':0x14,'description':a59_0x1dfc5a(0xe1)},CURSOR_FLAG={'name':'cursor','type':'string','description':a59_0x1dfc5a(0xa8)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x2f5d48){const _0x47b2c8=a59_0x1dfc5a,_0x17a815=_0x2f5d48[_0x47b2c8(0xc6)](_0x47b2c8(0xd9)),_0x3348c3=_0x2f5d48[_0x47b2c8(0xc6)]('title')[_0x47b2c8(0xde)](),_0x521b47=_0x2f5d48[_0x47b2c8(0xc6)](_0x47b2c8(0xe0))[_0x47b2c8(0xde)](),_0x1c0a7c=_0x2f5d48[_0x47b2c8(0xc6)](_0x47b2c8(0xe9)),_0x3fc130=_0x2f5d48[_0x47b2c8(0xc6)](_0x47b2c8(0xe5)),_0x253b8a=_0x2f5d48[_0x47b2c8(0xc6)](_0x47b2c8(0xcd));if(!_0x3348c3)throw CliErrors['validation'](_0x47b2c8(0xe8));if(!_0x521b47)throw CliErrors['validation']('--prompt\x20must\x20not\x20be\x20blank.');if(_0x17a815==='CRON'){if(!_0x3fc130||_0x253b8a)throw CliErrors[_0x47b2c8(0xe4)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x17a815,'timezone':_0x47b2c8(0xc2),'cron':_0x3fc130,'title':_0x3348c3,'prompt':_0x521b47,'model':_0x1c0a7c};}if(_0x17a815==='ONCE'){if(!_0x253b8a||_0x3fc130)throw CliErrors[_0x47b2c8(0xe4)](_0x47b2c8(0xb9));return{'kind':_0x17a815,'timezone':_0x47b2c8(0xc2),'scheduledAt':_0x253b8a,'title':_0x3348c3,'prompt':_0x521b47,'model':_0x1c0a7c};}throw CliErrors['validation']('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x3b1012){const _0x554808=a59_0x1dfc5a;return _0x554808(0xc7)+encodeURIComponent(_0x3b1012)+_0x554808(0xda);}function scheduleItemPath(_0x255ee5,_0x4f8354){return scheduleCollectionPath(_0x255ee5)+'/'+encodeURIComponent(_0x4f8354);}const scheduleValidate={'service':a59_0x1dfc5a(0xd7),'command':a59_0x1dfc5a(0xd5),'description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a59_0x1dfc5a(0xbb),'flags':INPUT_FLAGS,async 'validate'(_0x3b9a17){readScheduleInput(_0x3b9a17);},async 'execute'(_0x2197a1){const _0x40b134=a59_0x1dfc5a,_0x34c789=readScheduleInput(_0x2197a1),_0x1871c8=await validateRuntimeSchedule(_0x2197a1[_0x40b134(0xce)],_0x34c789);return{'ok':!![],'data':_0x1871c8,'message':_0x40b134(0xee)};}},scheduleCreate={'service':a59_0x1dfc5a(0xd7),'command':a59_0x1dfc5a(0xab),'description':a59_0x1dfc5a(0xb5),'risk':a59_0x1dfc5a(0xc3),'confirmationDescription':a59_0x1dfc5a(0xc5),'flags':INPUT_FLAGS,async 'validate'(_0x340b7c){readScheduleInput(_0x340b7c);},async 'execute'(_0x1afc0b){const _0x465b55=a59_0x1dfc5a,_0x3e2ced=readScheduleInput(_0x1afc0b),_0xc967f0=await validateRuntimeSchedule(_0x1afc0b[_0x465b55(0xce)],_0x3e2ced),_0x3de35c=await createRuntimeSchedule(_0x1afc0b[_0x465b55(0xce)],_0xc967f0);return{'ok':!![],'data':_0x3de35c,'message':_0x465b55(0xbc)+_0x3de35c[_0x465b55(0xd9)]+_0x465b55(0xcf)+_0x3de35c[_0x465b55(0xb3)]};},async 'dryRun'(_0x4bf856){const _0x4c708e=a59_0x1dfc5a,_0x13e23f=readScheduleInput(_0x4bf856);return dryRun(_0x4c708e(0xaf),scheduleCollectionPath(_0x4bf856[_0x4c708e(0xce)]))[_0x4c708e(0xd8)](_0x13e23f)[_0x4c708e(0xdb)](_0x4c708e(0xea))['build']();}},scheduleList={'service':a59_0x1dfc5a(0xd7),'command':a59_0x1dfc5a(0xdd),'description':a59_0x1dfc5a(0xed),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3a6b2b){const _0x11257b=a59_0x1dfc5a,_0x3dddf0=_0x3a6b2b['num']('limit');if(!Number['isSafeInteger'](_0x3dddf0)||_0x3dddf0<0x1||_0x3dddf0>0x64)throw CliErrors[_0x11257b(0xe4)](_0x11257b(0xaa));const _0x110cce=_0x3a6b2b['str'](_0x11257b(0xb6));if(_0x110cce&&(_0x110cce[_0x11257b(0xb7)]>0x400||_0x110cce[_0x11257b(0xde)]()!==_0x110cce))throw CliErrors[_0x11257b(0xe4)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x17cafe){const _0x63fb63=a59_0x1dfc5a,_0x2c1043=_0x17cafe[_0x63fb63(0xc6)](_0x63fb63(0xb6)),_0x387705=await listRuntimeSchedules(_0x17cafe[_0x63fb63(0xce)],{'kind':_0x17cafe['str'](_0x63fb63(0xd9)),'limit':_0x17cafe[_0x63fb63(0xa3)](_0x63fb63(0xba)),..._0x2c1043?{'cursor':_0x2c1043}:{}});return{'ok':!![],'data':_0x387705};}},scheduleDetail={'service':a59_0x1dfc5a(0xd7),'command':'detail','description':a59_0x1dfc5a(0xd6),'risk':a59_0x1dfc5a(0xbb),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3903f1){const _0x225060=a59_0x1dfc5a,_0x4fb8f1=await getRuntimeSchedule(_0x3903f1[_0x225060(0xce)],_0x3903f1[_0x225060(0xc6)](_0x225060(0xd2)));return{'ok':!![],'data':_0x4fb8f1};}},scheduleRun={'service':a59_0x1dfc5a(0xd7),'command':a59_0x1dfc5a(0xdc),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a59_0x1dfc5a(0xc3),'confirmationDescription':a59_0x1dfc5a(0xbd),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x155060){const _0x5507f4=a59_0x1dfc5a,_0x5b6807=_0x155060[_0x5507f4(0xc6)](_0x5507f4(0xd2)),_0xbf3804=await runRuntimeSchedule(_0x155060[_0x5507f4(0xce)],_0x5b6807);return{'ok':!![],'data':_0xbf3804,'message':_0x5507f4(0xa4)+_0xbf3804[_0x5507f4(0xdf)]+_0x5507f4(0xc0)+_0x5b6807};},async 'dryRun'(_0x4f97ed){const _0x22d98d=a59_0x1dfc5a,_0x13bdc4=_0x4f97ed[_0x22d98d(0xc6)](_0x22d98d(0xd2));return dryRun('POST',scheduleItemPath(_0x4f97ed[_0x22d98d(0xce)],_0x13bdc4)+_0x22d98d(0xc9))[_0x22d98d(0xdb)]('Preview:\x20run\x20schedule\x20'+_0x13bdc4+_0x22d98d(0xd1))[_0x22d98d(0xb4)]();}},scheduleDelete={'service':a59_0x1dfc5a(0xd7),'command':a59_0x1dfc5a(0xbf),'description':a59_0x1dfc5a(0xd3),'risk':a59_0x1dfc5a(0xc3),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1899bc){const _0x5c8b9b=a59_0x1dfc5a,_0x8b7ae8=_0x1899bc[_0x5c8b9b(0xc6)]('schedule-id'),_0x5adde6=await deleteRuntimeSchedule(_0x1899bc[_0x5c8b9b(0xce)],_0x8b7ae8);return{'ok':!![],'data':_0x5adde6,'message':_0x5c8b9b(0xb1)+_0x8b7ae8};},async 'dryRun'(_0xd73850){const _0x10e21a=a59_0x1dfc5a,_0x88644f=_0xd73850['str']('schedule-id');return dryRun(_0x10e21a(0xd0),scheduleItemPath(_0xd73850[_0x10e21a(0xce)],_0x88644f))['description'](_0x10e21a(0xbe)+_0x88644f)[_0x10e21a(0xb4)]();}};function a59_0x1650(_0x1605b6,_0xd21dc2){_0x1605b6=_0x1605b6-0xa3;const _0x5fc2d=a59_0x5fc2();let _0x16507e=_0x5fc2d[_0x1605b6];return _0x16507e;}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a60_0x45b416=a60_0x3b7f;function a60_0x12a1(){const _0x2ca912=['Schedule\x20kind:\x20CRON\x20or\x20ONCE','schedule','run','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','--prompt\x20must\x20not\x20be\x20blank.','/run','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','scheduled-at','validation','2841126aRiAlv','368823rFXUDf','create','validate','isSafeInteger','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','342mCVZtS','appCode','\x20schedule\x20','cron','kind','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','detail','--title\x20must\x20not\x20be\x20blank.','model','5032PStjDK','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','trim','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20title','/api/harness/apps/','2AGuEig','Created\x20','schedule-id','description','4jCtvVd','819366TKJFWA','num','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','/schedules','list','deepseek-v4-flash-0731','ONCE','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','\x20immediately','Preview:\x20run\x20schedule\x20','str','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','length','130849llcQBG','string','POST','2347030nGSjqI','\x20from\x20schedule\x20','build','Deleted\x20schedule\x20','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','prompt','Schedule\x20UUID','Page\x20size\x20from\x201\x20to\x20100','cursor','13924500KCvqgr','high-risk-write','Show\x20one\x20schedule\x20by\x20schedule\x20ID','CRON','limit','Queued\x20Task\x20','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','taskId','UTC','read'];a60_0x12a1=function(){return _0x2ca912;};return a60_0x12a1();}(function(_0x1991e9,_0x5dda00){const _0x324d32=a60_0x3b7f,_0x4a0404=_0x1991e9();while(!![]){try{const _0x167ec4=parseInt(_0x324d32(0xf4))/0x1+parseInt(_0x324d32(0xe1))/0x2*(-parseInt(_0x324d32(0xe6))/0x3)+-parseInt(_0x324d32(0xe5))/0x4*(parseInt(_0x324d32(0xf7))/0x5)+-parseInt(_0x324d32(0xca))/0x6+-parseInt(_0x324d32(0xcb))/0x7+parseInt(_0x324d32(0xda))/0x8*(parseInt(_0x324d32(0xd0))/0x9)+parseInt(_0x324d32(0x100))/0xa;if(_0x167ec4===_0x5dda00)break;else _0x4a0404['push'](_0x4a0404['shift']());}catch(_0x161507){_0x4a0404['push'](_0x4a0404['shift']());}}}(a60_0x12a1,0x43fbf));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a60_0x45b416(0xd4),'type':a60_0x45b416(0xf5),'required':!![],'enum':[a60_0x45b416(0x103),a60_0x45b416(0xec)],'description':a60_0x45b416(0x10a)},CRON_FLAG={'name':'cron','type':a60_0x45b416(0xf5),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a60_0x45b416(0xc8),'type':'string','description':a60_0x45b416(0xfb)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a60_0x45b416(0xdf)},PROMPT_FLAG={'name':a60_0x45b416(0xfc),'type':'string','required':!![],'description':a60_0x45b416(0xc7)},MODEL_FLAG={'name':a60_0x45b416(0xd9),'type':'string','enum':['kimi/k3','deepseek-v4-flash-0731','deepseek-v4-pro-0813'],'default':a60_0x45b416(0xeb),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a60_0x45b416(0xe3),'type':'string','required':!![],'description':a60_0x45b416(0xfd),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x45b416(0xf2)}},LIMIT_FLAG={'name':'limit','type':'number','default':0x14,'description':a60_0x45b416(0xfe)},CURSOR_FLAG={'name':a60_0x45b416(0xff),'type':a60_0x45b416(0xf5),'description':a60_0x45b416(0xde)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x317c7c){const _0x1277c9=a60_0x45b416,_0x2f47e6=_0x317c7c[_0x1277c9(0xf0)]('kind'),_0xf2d7a5=_0x317c7c[_0x1277c9(0xf0)]('title')['trim'](),_0x283c7b=_0x317c7c['str'](_0x1277c9(0xfc))['trim'](),_0x139065=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xd9)),_0x26da1a=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xd3)),_0x219e99=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xc8));if(!_0xf2d7a5)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xd8));if(!_0x283c7b)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xc5));if(_0x2f47e6===_0x1277c9(0x103)){if(!_0x26da1a||_0x219e99)throw CliErrors['validation'](_0x1277c9(0xdd));return{'kind':_0x2f47e6,'timezone':_0x1277c9(0x108),'cron':_0x26da1a,'title':_0xf2d7a5,'prompt':_0x283c7b,'model':_0x139065};}if(_0x2f47e6===_0x1277c9(0xec)){if(!_0x219e99||_0x26da1a)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xd6));return{'kind':_0x2f47e6,'timezone':_0x1277c9(0x108),'scheduledAt':_0x219e99,'title':_0xf2d7a5,'prompt':_0x283c7b,'model':_0x139065};}throw CliErrors[_0x1277c9(0xc9)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2c3708){const _0x14487b=a60_0x45b416;return _0x14487b(0xe0)+encodeURIComponent(_0x2c3708)+_0x14487b(0xe9);}function scheduleItemPath(_0x2ea928,_0x19a623){return scheduleCollectionPath(_0x2ea928)+'/'+encodeURIComponent(_0x19a623);}function a60_0x3b7f(_0x2b3426,_0x310767){_0x2b3426=_0x2b3426-0xc2;const _0x12a1fc=a60_0x12a1();let _0x3b7f74=_0x12a1fc[_0x2b3426];return _0x3b7f74;}const scheduleValidate={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xcd),'description':a60_0x45b416(0xf1),'risk':a60_0x45b416(0x109),'flags':INPUT_FLAGS,async 'validate'(_0x3c6fe0){readScheduleInput(_0x3c6fe0);},async 'execute'(_0x40d9f3){const _0x44f9de=a60_0x45b416,_0x37cb35=readScheduleInput(_0x40d9f3),_0x196dc9=await validateRuntimeSchedule(_0x40d9f3[_0x44f9de(0xd1)],_0x37cb35);return{'ok':!![],'data':_0x196dc9,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xcc),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a60_0x45b416(0x101),'confirmationDescription':a60_0x45b416(0x106),'flags':INPUT_FLAGS,async 'validate'(_0x4eb273){readScheduleInput(_0x4eb273);},async 'execute'(_0x15e4f0){const _0x40ecef=a60_0x45b416,_0x1b9c4c=readScheduleInput(_0x15e4f0),_0x4581bb=await validateRuntimeSchedule(_0x15e4f0[_0x40ecef(0xd1)],_0x1b9c4c),_0x4cc489=await createRuntimeSchedule(_0x15e4f0[_0x40ecef(0xd1)],_0x4581bb);return{'ok':!![],'data':_0x4cc489,'message':_0x40ecef(0xe2)+_0x4cc489['kind']+_0x40ecef(0xd2)+_0x4cc489['scheduleId']};},async 'dryRun'(_0x470f13){const _0x3bedf7=a60_0x45b416,_0x4a415f=readScheduleInput(_0x470f13);return dryRun(_0x3bedf7(0xf6),scheduleCollectionPath(_0x470f13[_0x3bedf7(0xd1)]))['body'](_0x4a415f)[_0x3bedf7(0xe4)](_0x3bedf7(0xd5))[_0x3bedf7(0xf9)]();}},scheduleList={'service':'schedule','command':a60_0x45b416(0xea),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a60_0x45b416(0x109),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1d9f5c){const _0x1b5539=a60_0x45b416,_0x1edf38=_0x1d9f5c[_0x1b5539(0xe7)](_0x1b5539(0x104));if(!Number[_0x1b5539(0xce)](_0x1edf38)||_0x1edf38<0x1||_0x1edf38>0x64)throw CliErrors[_0x1b5539(0xc9)](_0x1b5539(0xc4));const _0x280f98=_0x1d9f5c[_0x1b5539(0xf0)](_0x1b5539(0xff));if(_0x280f98&&(_0x280f98[_0x1b5539(0xf3)]>0x400||_0x280f98[_0x1b5539(0xdc)]()!==_0x280f98))throw CliErrors['validation'](_0x1b5539(0xcf));},async 'execute'(_0x59f5b2){const _0x10838a=a60_0x45b416,_0x38fc61=_0x59f5b2['str'](_0x10838a(0xff)),_0x2edca9=await listRuntimeSchedules(_0x59f5b2[_0x10838a(0xd1)],{'kind':_0x59f5b2[_0x10838a(0xf0)](_0x10838a(0xd4)),'limit':_0x59f5b2[_0x10838a(0xe7)]('limit'),..._0x38fc61?{'cursor':_0x38fc61}:{}});return{'ok':!![],'data':_0x2edca9};}},scheduleDetail={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xd7),'description':a60_0x45b416(0x102),'risk':a60_0x45b416(0x109),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2f59c5){const _0xa17444=a60_0x45b416,_0x282349=await getRuntimeSchedule(_0x2f59c5[_0xa17444(0xd1)],_0x2f59c5[_0xa17444(0xf0)](_0xa17444(0xe3)));return{'ok':!![],'data':_0x282349};}},scheduleRun={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xc3),'description':a60_0x45b416(0xdb),'risk':a60_0x45b416(0x101),'confirmationDescription':a60_0x45b416(0xe8),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x21c661){const _0x2e25f1=a60_0x45b416,_0x24132d=_0x21c661[_0x2e25f1(0xf0)](_0x2e25f1(0xe3)),_0x474d57=await runRuntimeSchedule(_0x21c661[_0x2e25f1(0xd1)],_0x24132d);return{'ok':!![],'data':_0x474d57,'message':_0x2e25f1(0x105)+_0x474d57[_0x2e25f1(0x107)]+_0x2e25f1(0xf8)+_0x24132d};},async 'dryRun'(_0x3d98a1){const _0x188795=a60_0x45b416,_0x55134e=_0x3d98a1[_0x188795(0xf0)](_0x188795(0xe3));return dryRun(_0x188795(0xf6),scheduleItemPath(_0x3d98a1['appCode'],_0x55134e)+_0x188795(0xc6))[_0x188795(0xe4)](_0x188795(0xef)+_0x55134e+_0x188795(0xee))['build']();}},scheduleDelete={'service':a60_0x45b416(0xc2),'command':'delete','description':a60_0x45b416(0xed),'risk':a60_0x45b416(0x101),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1121c5){const _0x24c2e8=a60_0x45b416,_0x2d698c=_0x1121c5[_0x24c2e8(0xf0)](_0x24c2e8(0xe3)),_0x14a45b=await deleteRuntimeSchedule(_0x1121c5[_0x24c2e8(0xd1)],_0x2d698c);return{'ok':!![],'data':_0x14a45b,'message':_0x24c2e8(0xfa)+_0x2d698c};},async 'dryRun'(_0x4afd29){const _0x26e616=a60_0x45b416,_0x4b21ff=_0x4afd29[_0x26e616(0xf0)](_0x26e616(0xe3));return dryRun('DELETE',scheduleItemPath(_0x4afd29[_0x26e616(0xd1)],_0x4b21ff))[_0x26e616(0xe4)]('Preview:\x20delete\x20schedule\x20'+_0x4b21ff)[_0x26e616(0xf9)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a61_0x1d9792=a61_0x4742;(function(_0x489110,_0x341b42){const _0x4fdd85=a61_0x4742,_0x4fbb25=_0x489110();while(!![]){try{const _0x20c769=-parseInt(_0x4fdd85(0xe7))/0x1*(-parseInt(_0x4fdd85(0xe8))/0x2)+-parseInt(_0x4fdd85(0xe6))/0x3*(-parseInt(_0x4fdd85(0xe5))/0x4)+parseInt(_0x4fdd85(0xdf))/0x5*(parseInt(_0x4fdd85(0xe0))/0x6)+-parseInt(_0x4fdd85(0xe3))/0x7+-parseInt(_0x4fdd85(0xe4))/0x8+parseInt(_0x4fdd85(0xde))/0x9+parseInt(_0x4fdd85(0xdc))/0xa;if(_0x20c769===_0x341b42)break;else _0x4fbb25['push'](_0x4fbb25['shift']());}catch(_0x429d31){_0x4fbb25['push'](_0x4fbb25['shift']());}}}(a61_0xad12,0xe315d));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1712aa){const _0x584a25=await buildSchemaPayload();return{'ok':!![],'data':_0x584a25};}export const schemaDefinition={'service':a61_0x1d9792(0xe2),'command':a61_0x1d9792(0xe1),'description':a61_0x1d9792(0xdb),'risk':a61_0x1d9792(0xdd),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a61_0x4742(_0x1d830b,_0x193cff){_0x1d830b=_0x1d830b-0xdb;const _0xad1249=a61_0xad12();let _0x4742ac=_0xad1249[_0x1d830b];return _0x4742ac;}function a61_0xad12(){const _0x23dde6=['1134cLeLUh','export','schema','12428948taWtGY','8202456YKefAh','608OiEGJC','8499iincfF','2zoGPNT','952492eibRmu','Export\x20machine-readable\x20command\x20schema\x20(JSON)','13279900lfkIBa','read','4537197uUnqby','13645uZqPSa'];a61_0xad12=function(){return _0x23dde6;};return a61_0xad12();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x4fee95,_0x28a8ab){const _0x2eee4e=a61_0x6c6d,_0x4a970e=_0x4fee95();while(!![]){try{const _0x156a93=-parseInt(_0x2eee4e(0x110))/0x1*(parseInt(_0x2eee4e(0x153))/0x2)+-parseInt(_0x2eee4e(0x159))/0x3*(parseInt(_0x2eee4e(0x15e))/0x4)+-parseInt(_0x2eee4e(0x126))/0x5*(parseInt(_0x2eee4e(0x135))/0x6)+parseInt(_0x2eee4e(0x14f))/0x7+parseInt(_0x2eee4e(0x155))/0x8+parseInt(_0x2eee4e(0x11a))/0x9*(-parseInt(_0x2eee4e(0x14c))/0xa)+-parseInt(_0x2eee4e(0xf7))/0xb*(-parseInt(_0x2eee4e(0x131))/0xc);if(_0x156a93===_0x28a8ab)break;else _0x4a970e['push'](_0x4a970e['shift']());}catch(_0xfe52f6){_0x4a970e['push'](_0x4a970e['shift']());}}}(a61_0x4c30,0xbd0c6));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(_0x45162f,_0xe6d129){const _0x55b5b2=a61_0x6c6d,_0x567bb3=listLocalServiceTrees();let _0x1aa52d;for(const _0x3e1eff of _0x567bb3){const _0x10020f=matchServiceTreeCommand(_0x3e1eff,_0x45162f);if(!_0x10020f)continue;(!_0x1aa52d||_0x10020f[_0x55b5b2(0x149)][_0x55b5b2(0x112)]['length']>_0x1aa52d[_0x55b5b2(0x149)][_0x55b5b2(0x112)][_0x55b5b2(0x108)])&&(_0x1aa52d={'tree':_0x3e1eff,'command':_0x10020f[_0x55b5b2(0x149)],'remainingArgs':_0x10020f[_0x55b5b2(0x13d)]});}if(!_0x1aa52d)return undefined;const _0x454195={..._0xe6d129};return applyAppBinding(_0x1aa52d['tree'],_0x1aa52d[_0x55b5b2(0x149)],_0x454195),{'definition':buildDynamicCommandDefinition(_0x1aa52d[_0x55b5b2(0xfd)],_0x1aa52d[_0x55b5b2(0x149)]),'args':_0x1aa52d[_0x55b5b2(0x13d)],'flags':_0x454195,'tree':_0x1aa52d[_0x55b5b2(0xfd)],'command':_0x1aa52d[_0x55b5b2(0x149)]};}export function generateDynamicServiceHelp(_0x547be6){const _0xf4b68b=a61_0x6c6d,_0x324b14=listLocalServiceTrees()[_0xf4b68b(0xfc)](_0x2d6e10=>_0x2d6e10['service']['code']===_0x547be6);if(!_0x324b14)return undefined;const _0x1c84c0=[CLI_BIN_NAME+'\x20'+_0x547be6+_0xf4b68b(0x129),'',_0x324b14[_0xf4b68b(0x105)]['name']||_0x547be6,_0x324b14[_0xf4b68b(0x105)][_0xf4b68b(0x13f)]?'\x20\x20'+_0x324b14[_0xf4b68b(0x105)][_0xf4b68b(0x13f)]:'','',_0xf4b68b(0x104),..._0x324b14['commands'][_0xf4b68b(0x139)](_0xf89d90=>{const _0x5b7679=_0xf4b68b,_0x266ff9=_0xf89d90[_0x5b7679(0x112)][_0x5b7679(0x132)](0x1)['join']('\x20'),_0xdbb112=_0xf89d90[_0x5b7679(0x158)]===_0x5b7679(0x11e)?'':'\x20['+_0xf89d90['risk']+']';return'\x20\x20'+_0x266ff9[_0x5b7679(0x10e)](0x18)+'\x20'+(_0xf89d90['description']||'')+_0xdbb112;}),'',_0xf4b68b(0x15f)+CLI_BIN_NAME+_0xf4b68b(0x10f)+_0x547be6+_0xf4b68b(0x128)][_0xf4b68b(0x121)](Boolean);return _0x1c84c0[_0xf4b68b(0x141)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x104a96=>{const _0x29278d=a61_0x6c6d,_0x330b5b=_0x104a96[_0x29278d(0x116)];return{'service':_0x330b5b['service'][_0x29278d(0xf9)],'label':_0x330b5b[_0x29278d(0x105)][_0x29278d(0x109)]||_0x330b5b['service'][_0x29278d(0xf9)],'commands':_0x330b5b['commands']['map'](_0x21f9a3=>({'command':dynamicCommandName(_0x21f9a3),'description':_0x21f9a3[_0x29278d(0x13f)]||_0x29278d(0x152)+_0x21f9a3[_0x29278d(0x10b)],'tag':riskTag(_0x21f9a3['risk'])}))};});}export function getDynamicServiceEntry(_0x5fe447){const _0x4871e5=a61_0x6c6d;return listDynamicServiceEntries()[_0x4871e5(0xfc)](_0x316924=>_0x316924[_0x4871e5(0x105)]===_0x5fe447);}export function listDynamicServiceDefinitions(_0x1ecb64){const _0x28dd7d=a61_0x6c6d;return listLocalServiceTrees()[_0x28dd7d(0x121)](_0x151133=>!_0x1ecb64||_0x151133[_0x28dd7d(0x105)][_0x28dd7d(0xf9)]===_0x1ecb64)[_0x28dd7d(0x12e)](_0xdce15f=>_0xdce15f['commands'][_0x28dd7d(0x139)](_0x2d0374=>buildDynamicCommandDefinition(_0xdce15f,_0x2d0374)));}export function getDynamicServiceDefinitions(_0x559063){const _0x49df63=listDynamicServiceDefinitions(_0x559063);return _0x49df63['length']>0x0?_0x49df63:undefined;}export function findDynamicServiceDefinition(_0x1abbd6,_0x3f862c){const _0x2d2b02=a61_0x6c6d;return listDynamicServiceDefinitions(_0x1abbd6)['find'](_0xf66768=>_0xf66768[_0x2d2b02(0x149)]===_0x3f862c);}export function buildDynamicCommandDefinition(_0x5c712c,_0x43b36f){const _0x3da1c6=a61_0x6c6d;return{'service':_0x5c712c[_0x3da1c6(0x105)][_0x3da1c6(0xf9)],'command':dynamicCommandName(_0x43b36f),'description':_0x43b36f['description']||_0x3da1c6(0x152)+_0x43b36f[_0x3da1c6(0x10b)],'risk':_0x43b36f[_0x3da1c6(0x158)],..._0x43b36f[_0x3da1c6(0x158)]===_0x3da1c6(0x11e)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x43b36f)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x43b36f[_0x3da1c6(0x119)]['map'](_0x5c85bb=>({'name':_0x5c85bb[_0x3da1c6(0x109)],'description':_0x5c85bb[_0x3da1c6(0x13f)]||_0x5c85bb[_0x3da1c6(0x109)],'required':_0x5c85bb[_0x3da1c6(0x136)]})),'flags':_0x43b36f[_0x3da1c6(0x12f)][_0x3da1c6(0x139)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x43b36f),async 'dryRun'(_0x1ea2bf){const _0x37691e=_0x3da1c6,_0x33e22c=await compilePlan(_0x43b36f,_0x1ea2bf);return{'method':'SERVICE_TREE','url':_0x43b36f[_0x37691e(0x10b)],'body':{'target':targetPreview(_0x33e22c),'params':_0x33e22c[_0x37691e(0x14e)]},'description':_0x37691e(0x102)+_0x43b36f[_0x37691e(0x10b)]};},async 'execute'(_0x4cbc71){const _0x2a2520=_0x3da1c6,_0x588375=await compilePlan(_0x43b36f,_0x4cbc71),_0xc85a11=Date['now'](),_0x2b4aab=await executePlan(_0x588375,_0x43b36f,_0x4cbc71),_0x19f5c2=Date[_0x2a2520(0x12d)]()-_0xc85a11;return{'ok':!![],'data':{'service':_0x5c712c[_0x2a2520(0x105)],'command':_0x43b36f['cliPath'],'target':targetPreview(_0x588375),'result':_0x2b4aab,'elapsed':_0x19f5c2},'message':_0x2a2520(0x13b)+_0x43b36f[_0x2a2520(0x10b)]+_0x2a2520(0xf5)+_0x19f5c2+'ms'};}};}function buildDynamicConfirmationDescription(_0x5bd9c5){const _0x25ebb7=a61_0x6c6d,_0x10382c=_0x5bd9c5[_0x25ebb7(0x13f)]||_0x5bd9c5[_0x25ebb7(0x10b)],_0x1b595f=_0x5bd9c5[_0x25ebb7(0x158)]===_0x25ebb7(0x113)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':_0x25ebb7(0x10c);return _0x25ebb7(0x130)+_0x10382c+_0x25ebb7(0x11b)+_0x1b595f;}function dynamicCommandName(_0x532dd7){const _0x510dd0=a61_0x6c6d;return _0x532dd7[_0x510dd0(0x112)][_0x510dd0(0x132)](0x1)[_0x510dd0(0x141)]('\x20');}function riskTag(_0x21a177){const _0x2924c5=a61_0x6c6d;return _0x21a177==='read'?'':_0x2924c5(0x100)+_0x21a177+']';}function flagToCommandFlag(_0x3c14d8){const _0x3ef5ac=a61_0x6c6d;return{'name':_0x3c14d8[_0x3ef5ac(0x147)],'type':_0x3c14d8['type']==='json'?_0x3ef5ac(0x118):_0x3c14d8[_0x3ef5ac(0x143)],'description':_0x3c14d8[_0x3ef5ac(0x13f)]||_0x3c14d8[_0x3ef5ac(0x109)],'required':_0x3c14d8[_0x3ef5ac(0x136)],'default':isPrimitiveFlagDefault(_0x3c14d8['default'])?_0x3c14d8[_0x3ef5ac(0xff)]:undefined,'enum':_0x3c14d8[_0x3ef5ac(0x101)]};}async function compilePlan(_0x196208,_0x99724f){const _0x2174c6=a61_0x6c6d;return compileServiceTreeCommand(_0x196208,{'flags':_0x99724f[_0x2174c6(0x106)],'args':_0x99724f[_0x2174c6(0x119)],'context':await buildServiceContext(_0x196208,_0x99724f)});}async function buildServiceContext(_0x3cd989,_0x508386){const _0x513ec6=a61_0x6c6d,_0x16de8a={'appCode':_0x508386['appCode'],'env':_0x508386[_0x513ec6(0x114)],'envName':_0x508386[_0x513ec6(0x114)]};if(!usesRuntimeContext(_0x3cd989))return _0x16de8a;const _0x25494e=await getLoginUserInfo(),_0x6a4d1=pickFirst(_0x25494e[_0x513ec6(0x156)],_0x25494e['id']);return{..._0x16de8a,'user':_0x25494e,'userId':_0x6a4d1,'id':_0x25494e['id'],'username':pickFirst(_0x25494e[_0x513ec6(0x154)],_0x25494e[_0x513ec6(0x14d)],_0x25494e[_0x513ec6(0x140)]),'userName':_0x25494e['userName'],'nickname':pickFirst(_0x25494e[_0x513ec6(0x151)],_0x25494e['nickName']),'nickName':_0x25494e['nickName'],'tenantCode':_0x25494e[_0x513ec6(0x162)],'employeeId':_0x25494e[_0x513ec6(0x10d)]};}function usesRuntimeContext(_0x2c206f){const _0x39c48e=a61_0x6c6d;return _0x2c206f[_0x39c48e(0x127)][_0x39c48e(0x12c)](_0x58059f=>typeof _0x58059f[_0x39c48e(0x150)]===_0x39c48e(0x118)&&(_0x58059f['source'][_0x39c48e(0x123)](_0x39c48e(0xf8))||_0x58059f[_0x39c48e(0x150)]['startsWith']('ctx.')));}function pickFirst(..._0x505d9b){return _0x505d9b['find'](_0x5ea45d=>_0x5ea45d!==undefined&&_0x5ea45d!==null);}async function executePlan(_0x297caa,_0x3ab389,_0x48950e){const _0xab586d=a61_0x6c6d;if(_0x297caa[_0xab586d(0x157)]===_0xab586d(0x120)){const _0x2f552d=await resolveDatasetCode(_0x297caa,_0x3ab389,_0x48950e);return executeData(_0x2f552d,_0x297caa[_0xab586d(0x149)],_0x297caa['params']);}if(_0x297caa[_0xab586d(0x157)]===_0xab586d(0x15d)){if(!_0x297caa['sqlCode'])throw CliErrors[_0xab586d(0xfe)](_0xab586d(0x13b)+_0x3ab389[_0xab586d(0x10b)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x297caa[_0xab586d(0x117)],normalizeScalarParams(_0x297caa[_0xab586d(0x14e)]));}if(_0x297caa[_0xab586d(0x157)]===_0xab586d(0x15c)){const _0x496c74=_0x297caa[_0xab586d(0x103)]||_0x297caa[_0xab586d(0xfa)]||(_0x297caa['bffId']==null?'':String(_0x297caa[_0xab586d(0xfb)]));if(!_0x496c74)throw CliErrors[_0xab586d(0xfe)](_0xab586d(0x13b)+_0x3ab389[_0xab586d(0x10b)]+_0xab586d(0x11f));return executeSdkBff(_0x496c74,_0x297caa[_0xab586d(0x14e)]);}throw CliErrors[_0xab586d(0xfe)](_0xab586d(0x138)+_0x297caa[_0xab586d(0x157)]);}async function resolveDatasetCode(_0x36a777,_0x5104d6,_0x504ec3){const _0x78a6c8=a61_0x6c6d;if(_0x36a777[_0x78a6c8(0xf6)])return _0x36a777[_0x78a6c8(0xf6)];if(!_0x36a777['datatable'])throw CliErrors['validation'](_0x78a6c8(0x13b)+_0x5104d6[_0x78a6c8(0x10b)]+_0x78a6c8(0x15a));const _0x5dc6e5=await listDatasets(_0x504ec3[_0x78a6c8(0x137)]),_0x170d03=_0x5dc6e5['find'](_0x375e4f=>_0x375e4f[_0x78a6c8(0x133)]?.[_0x78a6c8(0x107)]===_0x36a777[_0x78a6c8(0x14a)]);if(!_0x170d03?.[_0x78a6c8(0xf9)])throw CliErrors[_0x78a6c8(0xfe)](_0x78a6c8(0x160)+_0x36a777[_0x78a6c8(0x14a)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x504ec3[_0x78a6c8(0x137)]+'.',_0x78a6c8(0x10a));return _0x170d03[_0x78a6c8(0xf9)];}function applyAppBinding(_0x3eb8fc,_0x828a94,_0x1964e0){const _0xca92ce=a61_0x6c6d,_0x1200c2=_0x828a94[_0xca92ce(0x161)]['appRef'];if(!_0x1200c2)return;const _0x238d74=_0x3eb8fc['appBindings'][_0x1200c2];if(!_0x238d74)throw CliErrors['validation']('Unknown\x20appRef\x20\x22'+_0x1200c2+_0xca92ce(0x122)+_0x828a94[_0xca92ce(0x10b)]+'.',_0xca92ce(0x11d));const _0x3b7331=_0x238d74[_0xca92ce(0x13c)]||_0x238d74[_0xca92ce(0x137)];_0x3b7331&&!hasText(_0x1964e0[_0xca92ce(0x13c)])&&(_0x1964e0[_0xca92ce(0x13c)]=_0x3b7331),_0x238d74['app']&&!hasText(_0x1964e0[_0xca92ce(0x163)])&&!hasText(_0x1964e0[_0xca92ce(0x13c)])&&(_0x1964e0[_0xca92ce(0x163)]=_0x238d74['app']),_0x238d74[_0xca92ce(0x12b)]&&!hasText(_0x1964e0['env'])&&(_0x1964e0[_0xca92ce(0x12b)]=_0x238d74[_0xca92ce(0x12b)]);}function a61_0x6c6d(_0x2cd937,_0x14b190){_0x2cd937=_0x2cd937-0xf5;const _0x4c30b8=a61_0x4c30();let _0x6c6d7f=_0x4c30b8[_0x2cd937];return _0x6c6d7f;}function a61_0x4c30(){const _0x435421=['\x20\x20[','enum','Preview\x20dynamic\x20service\x20command:\x20','scriptName','Commands:','service','rawFlags','tableName','length','name','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','cliPath','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','employeeId','padEnd','\x20service\x20detail\x20--service\x20','4057IKKikq','\x20\x20\x20\x20kind:\x20\x20\x20\x20','fullPath','high-risk-write','envName','\x20\x20\x20\x20sqlCode:\x20','normalizedManifest','sqlCode','string','args','25623gDcPgo','\x22.\x20','\x20\x20SERVICE\x20TREE\x20TARGET','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','read','\x20requires\x20target.functionName.','data','filter','\x22\x20in\x20service\x20command\x20','startsWith','trim','entries','5DIMXMe','mapTo','`\x20to\x20inspect\x20the\x20manifest.','\x20<command>\x20[flags]','number','env','some','now','flatMap','flags','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','12PpNKjj','slice','dbtableConfig','appRef','6205398aUyXnG','required','appCode','Unsupported\x20service\x20target\x20kind:\x20','map','\x20\x20\x20\x20functionName:\x20','Service\x20command\x20','appcode','remainingArgs','fromEntries','description','loginName','join','\x20->\x20','type','\x20\x20\x20\x20datatable:\x20','\x20\x20\x20\x20command:\x20','\x20\x20MAP\x20TO','cliName','operator','command','datatable','boolean','3500ATCMUt','userName','params','6342042KnBfXW','source','nickname','Run\x20service\x20command\x20','106PESpcw','username','10584920qXJDFY','userId','kind','risk','45051EThxHz','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','push','bff','sql','180KWhure','Use\x20`','Cannot\x20resolve\x20datatable\x20\x22','target','tenantCode','app','\x20completed\x20in\x20','datasetCode','16133590MCivQm','context.','code','bffCode','bffId','find','tree','validation','default'];a61_0x4c30=function(){return _0x435421;};return a61_0x4c30();}function renderDynamicCommandHelp(_0x33b0e1){const _0x16b443=a61_0x6c6d,_0x11d695=[_0x16b443(0x11c),_0x16b443(0x111)+_0x33b0e1[_0x16b443(0x161)][_0x16b443(0x157)],_0x16b443(0x145)+_0x33b0e1[_0x16b443(0x161)]['command']];if(_0x33b0e1[_0x16b443(0x161)][_0x16b443(0xf6)])_0x11d695[_0x16b443(0x15b)]('\x20\x20\x20\x20datasetCode:\x20'+_0x33b0e1['target'][_0x16b443(0xf6)]);if(_0x33b0e1[_0x16b443(0x161)]['datatable'])_0x11d695[_0x16b443(0x15b)](_0x16b443(0x144)+_0x33b0e1[_0x16b443(0x161)][_0x16b443(0x14a)]);if(_0x33b0e1[_0x16b443(0x161)][_0x16b443(0x117)])_0x11d695['push'](_0x16b443(0x115)+_0x33b0e1[_0x16b443(0x161)][_0x16b443(0x117)]);if(_0x33b0e1[_0x16b443(0x161)]['scriptName'])_0x11d695[_0x16b443(0x15b)](_0x16b443(0x13a)+_0x33b0e1[_0x16b443(0x161)]['scriptName']);if(_0x33b0e1[_0x16b443(0x127)]['length']>0x0){_0x11d695[_0x16b443(0x15b)]('',_0x16b443(0x146));for(const _0x5396e0 of _0x33b0e1[_0x16b443(0x127)]){_0x11d695[_0x16b443(0x15b)]('\x20\x20\x20\x20'+(_0x5396e0['source']||'const')+_0x16b443(0x142)+_0x5396e0[_0x16b443(0x161)]+(_0x5396e0[_0x16b443(0x148)]?'.'+_0x5396e0[_0x16b443(0x148)]:''));}}return _0x11d695[_0x16b443(0x141)]('\x0a');}function targetPreview(_0xffc756){const _0x1b956d=a61_0x6c6d;return{'kind':_0xffc756[_0x1b956d(0x157)],'command':_0xffc756['command'],'appRef':_0xffc756[_0x1b956d(0x134)],'datasetCode':_0xffc756['datasetCode'],'datatable':_0xffc756[_0x1b956d(0x14a)],'sqlCode':_0xffc756[_0x1b956d(0x117)],'bffCode':_0xffc756['bffCode'],'bffId':_0xffc756['bffId'],'functionName':_0xffc756[_0x1b956d(0x103)]};}function normalizeScalarParams(_0xfc737a){const _0x4b0111=a61_0x6c6d;return Object[_0x4b0111(0x13e)](Object[_0x4b0111(0x125)](_0xfc737a)[_0x4b0111(0x121)](([,_0x187850])=>typeof _0x187850==='string'||typeof _0x187850==='number'));}function hasText(_0x3151bb){const _0x38ec71=a61_0x6c6d;return typeof _0x3151bb===_0x38ec71(0x118)&&_0x3151bb[_0x38ec71(0x124)]()[_0x38ec71(0x108)]>0x0;}function isPrimitiveFlagDefault(_0x1240ac){const _0x55e125=a61_0x6c6d;return _0x1240ac===undefined||typeof _0x1240ac==='string'||typeof _0x1240ac===_0x55e125(0x12a)||typeof _0x1240ac===_0x55e125(0x14b);}
|
|
1
|
+
(function(_0xde45f2,_0x1dc565){const _0x1765b0=a62_0x4cc8,_0x232d2b=_0xde45f2();while(!![]){try{const _0x42ee4b=parseInt(_0x1765b0(0x14c))/0x1+-parseInt(_0x1765b0(0x149))/0x2*(-parseInt(_0x1765b0(0x16a))/0x3)+parseInt(_0x1765b0(0x12d))/0x4*(-parseInt(_0x1765b0(0x163))/0x5)+-parseInt(_0x1765b0(0x126))/0x6+parseInt(_0x1765b0(0x140))/0x7*(-parseInt(_0x1765b0(0x129))/0x8)+parseInt(_0x1765b0(0x17b))/0x9+parseInt(_0x1765b0(0x188))/0xa;if(_0x42ee4b===_0x1dc565)break;else _0x232d2b['push'](_0x232d2b['shift']());}catch(_0x350d15){_0x232d2b['push'](_0x232d2b['shift']());}}}(a62_0x37f4,0x90c79));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';function a62_0x4cc8(_0x57d531,_0x469c9b){_0x57d531=_0x57d531-0x123;const _0x37f486=a62_0x37f4();let _0x4cc8fe=_0x37f486[_0x57d531];return _0x4cc8fe;}import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x3a4106,_0x280be5){const _0x322828=a62_0x4cc8,_0x5dc8e9=listLocalServiceTrees();let _0x28ee30;for(const _0x39ad9c of _0x5dc8e9){const _0x5119f7=matchServiceTreeCommand(_0x39ad9c,_0x3a4106);if(!_0x5119f7)continue;(!_0x28ee30||_0x5119f7['command'][_0x322828(0x139)][_0x322828(0x16b)]>_0x28ee30[_0x322828(0x138)]['fullPath'][_0x322828(0x16b)])&&(_0x28ee30={'tree':_0x39ad9c,'command':_0x5119f7['command'],'remainingArgs':_0x5119f7[_0x322828(0x152)]});}if(!_0x28ee30)return undefined;const _0x4361d2={..._0x280be5};return applyAppBinding(_0x28ee30['tree'],_0x28ee30[_0x322828(0x138)],_0x4361d2),{'definition':buildDynamicCommandDefinition(_0x28ee30[_0x322828(0x136)],_0x28ee30[_0x322828(0x138)]),'args':_0x28ee30['remainingArgs'],'flags':_0x4361d2,'tree':_0x28ee30[_0x322828(0x136)],'command':_0x28ee30[_0x322828(0x138)]};}export function generateDynamicServiceHelp(_0x5b0aa3){const _0x3ab3a8=a62_0x4cc8,_0x371cf5=listLocalServiceTrees()[_0x3ab3a8(0x16e)](_0x4be0b5=>_0x4be0b5[_0x3ab3a8(0x176)][_0x3ab3a8(0x172)]===_0x5b0aa3);if(!_0x371cf5)return undefined;const _0x285653=[CLI_BIN_NAME+'\x20'+_0x5b0aa3+_0x3ab3a8(0x161),'',_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x13a)]||_0x5b0aa3,_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x156)]?'\x20\x20'+_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x156)]:'','',_0x3ab3a8(0x144),..._0x371cf5[_0x3ab3a8(0x125)][_0x3ab3a8(0x148)](_0x477468=>{const _0x3083fe=_0x3ab3a8,_0x2a534e=_0x477468['fullPath'][_0x3083fe(0x160)](0x1)[_0x3083fe(0x128)]('\x20'),_0x26bd88=_0x477468['risk']===_0x3083fe(0x168)?'':'\x20['+_0x477468[_0x3083fe(0x12a)]+']';return'\x20\x20'+_0x2a534e[_0x3083fe(0x14e)](0x18)+'\x20'+(_0x477468['description']||'')+_0x26bd88;}),'',_0x3ab3a8(0x133)+CLI_BIN_NAME+_0x3ab3a8(0x14b)+_0x5b0aa3+'`\x20to\x20inspect\x20the\x20manifest.'][_0x3ab3a8(0x143)](Boolean);return _0x285653[_0x3ab3a8(0x128)]('\x0a');}export function listDynamicServiceEntries(){const _0x44d36b=a62_0x4cc8;return listLocalServices()[_0x44d36b(0x148)](_0xf5b787=>{const _0x4a1eaa=_0x44d36b,_0x3d183a=_0xf5b787[_0x4a1eaa(0x169)];return{'service':_0x3d183a[_0x4a1eaa(0x176)][_0x4a1eaa(0x172)],'label':_0x3d183a[_0x4a1eaa(0x176)][_0x4a1eaa(0x13a)]||_0x3d183a['service'][_0x4a1eaa(0x172)],'commands':_0x3d183a[_0x4a1eaa(0x125)][_0x4a1eaa(0x148)](_0x4d5871=>({'command':dynamicCommandName(_0x4d5871),'description':_0x4d5871['description']||_0x4a1eaa(0x13d)+_0x4d5871[_0x4a1eaa(0x16c)],'tag':riskTag(_0x4d5871[_0x4a1eaa(0x12a)])}))};});}export function getDynamicServiceEntry(_0x21c932){const _0x496898=a62_0x4cc8;return listDynamicServiceEntries()[_0x496898(0x16e)](_0x26dc10=>_0x26dc10['service']===_0x21c932);}export function listDynamicServiceDefinitions(_0x334312){const _0x41b826=a62_0x4cc8;return listLocalServiceTrees()['filter'](_0x43a467=>!_0x334312||_0x43a467[_0x41b826(0x176)][_0x41b826(0x172)]===_0x334312)[_0x41b826(0x13c)](_0x5021d4=>_0x5021d4[_0x41b826(0x125)][_0x41b826(0x148)](_0xc14154=>buildDynamicCommandDefinition(_0x5021d4,_0xc14154)));}export function getDynamicServiceDefinitions(_0x4e1231){const _0x577fff=a62_0x4cc8,_0x45f2ed=listDynamicServiceDefinitions(_0x4e1231);return _0x45f2ed[_0x577fff(0x16b)]>0x0?_0x45f2ed:undefined;}export function findDynamicServiceDefinition(_0x41e719,_0x526925){const _0x5ed16e=a62_0x4cc8;return listDynamicServiceDefinitions(_0x41e719)[_0x5ed16e(0x16e)](_0x2dadf4=>_0x2dadf4[_0x5ed16e(0x138)]===_0x526925);}export function buildDynamicCommandDefinition(_0x8758b6,_0x452090){const _0x1ccef9=a62_0x4cc8;return{'service':_0x8758b6['service'][_0x1ccef9(0x172)],'command':dynamicCommandName(_0x452090),'description':_0x452090[_0x1ccef9(0x156)]||_0x1ccef9(0x13d)+_0x452090['cliPath'],'risk':_0x452090[_0x1ccef9(0x12a)],..._0x452090[_0x1ccef9(0x12a)]===_0x1ccef9(0x168)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x452090)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x452090['args'][_0x1ccef9(0x148)](_0x1a9370=>({'name':_0x1a9370['name'],'description':_0x1a9370['description']||_0x1a9370[_0x1ccef9(0x13a)],'required':_0x1a9370[_0x1ccef9(0x17e)]})),'flags':_0x452090[_0x1ccef9(0x12b)][_0x1ccef9(0x148)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x452090),async 'dryRun'(_0x28e80a){const _0x123a45=_0x1ccef9,_0x37e008=await compilePlan(_0x452090,_0x28e80a);return{'method':_0x123a45(0x145),'url':_0x452090[_0x123a45(0x16c)],'body':{'target':targetPreview(_0x37e008),'params':_0x37e008[_0x123a45(0x13e)]},'description':_0x123a45(0x137)+_0x452090['cliPath']};},async 'execute'(_0x36671a){const _0x4e3f13=_0x1ccef9,_0x25c6a9=await compilePlan(_0x452090,_0x36671a),_0x35b92b=Date[_0x4e3f13(0x177)](),_0x4ce442=await executePlan(_0x25c6a9,_0x452090,_0x36671a),_0x498ba3=Date['now']()-_0x35b92b;return{'ok':!![],'data':{'service':_0x8758b6[_0x4e3f13(0x176)],'command':_0x452090[_0x4e3f13(0x16c)],'target':targetPreview(_0x25c6a9),'result':_0x4ce442,'elapsed':_0x498ba3},'message':_0x4e3f13(0x179)+_0x452090[_0x4e3f13(0x16c)]+_0x4e3f13(0x15e)+_0x498ba3+'ms'};}};}function buildDynamicConfirmationDescription(_0x397d9c){const _0x10e31b=a62_0x4cc8,_0xe3b9c=_0x397d9c['description']||_0x397d9c['cliPath'],_0x52493b=_0x397d9c[_0x10e31b(0x12a)]==='high-risk-write'?_0x10e31b(0x185):_0x10e31b(0x147);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0xe3b9c+_0x10e31b(0x14a)+_0x52493b;}function dynamicCommandName(_0x23b1a5){const _0x349882=a62_0x4cc8;return _0x23b1a5[_0x349882(0x139)][_0x349882(0x160)](0x1)[_0x349882(0x128)]('\x20');}function riskTag(_0xc3311b){const _0x3fa393=a62_0x4cc8;return _0xc3311b===_0x3fa393(0x168)?'':_0x3fa393(0x175)+_0xc3311b+']';}function flagToCommandFlag(_0x2fb0b1){const _0x10f02d=a62_0x4cc8;return{'name':_0x2fb0b1['cliName'],'type':_0x2fb0b1['type']===_0x10f02d(0x15f)?'string':_0x2fb0b1[_0x10f02d(0x166)],'description':_0x2fb0b1[_0x10f02d(0x156)]||_0x2fb0b1[_0x10f02d(0x13a)],'required':_0x2fb0b1[_0x10f02d(0x17e)],'default':isPrimitiveFlagDefault(_0x2fb0b1['default'])?_0x2fb0b1[_0x10f02d(0x17a)]:undefined,'enum':_0x2fb0b1[_0x10f02d(0x150)]};}async function compilePlan(_0x3d1029,_0x339241){const _0x4c1441=a62_0x4cc8;return compileServiceTreeCommand(_0x3d1029,{'flags':_0x339241['rawFlags'],'args':_0x339241[_0x4c1441(0x162)],'context':await buildServiceContext(_0x3d1029,_0x339241)});}async function buildServiceContext(_0x5b319d,_0x26296b){const _0x337d99=a62_0x4cc8,_0x350e75={'appCode':_0x26296b[_0x337d99(0x16d)],'env':_0x26296b['envName'],'envName':_0x26296b[_0x337d99(0x15a)]};if(!usesRuntimeContext(_0x5b319d))return _0x350e75;const _0x494113=await getLoginUserInfo(),_0x194dca=pickFirst(_0x494113[_0x337d99(0x184)],_0x494113['id']);return{..._0x350e75,'user':_0x494113,'userId':_0x194dca,'id':_0x494113['id'],'username':pickFirst(_0x494113[_0x337d99(0x158)],_0x494113[_0x337d99(0x134)],_0x494113[_0x337d99(0x187)]),'userName':_0x494113[_0x337d99(0x134)],'nickname':pickFirst(_0x494113['nickname'],_0x494113[_0x337d99(0x132)]),'nickName':_0x494113[_0x337d99(0x132)],'tenantCode':_0x494113['tenantCode'],'employeeId':_0x494113['employeeId']};}function usesRuntimeContext(_0x1eae89){const _0x527fbc=a62_0x4cc8;return _0x1eae89['mapTo'][_0x527fbc(0x155)](_0x2fcb84=>typeof _0x2fcb84[_0x527fbc(0x141)]==='string'&&(_0x2fcb84['source'][_0x527fbc(0x12f)]('context.')||_0x2fcb84['source'][_0x527fbc(0x12f)]('ctx.')));}function pickFirst(..._0x37bfdd){const _0x27b74b=a62_0x4cc8;return _0x37bfdd[_0x27b74b(0x16e)](_0x24cbef=>_0x24cbef!==undefined&&_0x24cbef!==null);}async function executePlan(_0x32051e,_0x58fb12,_0x29105e){const _0x3a2948=a62_0x4cc8;if(_0x32051e[_0x3a2948(0x180)]==='data'){const _0x5b4a50=await resolveDatasetCode(_0x32051e,_0x58fb12,_0x29105e);return executeData(_0x5b4a50,_0x32051e[_0x3a2948(0x138)],_0x32051e[_0x3a2948(0x13e)]);}if(_0x32051e['kind']==='sql'){if(!_0x32051e[_0x3a2948(0x182)])throw CliErrors[_0x3a2948(0x171)](_0x3a2948(0x179)+_0x58fb12[_0x3a2948(0x16c)]+_0x3a2948(0x15b));return executeSdkSql(_0x32051e[_0x3a2948(0x182)],normalizeScalarParams(_0x32051e['params']));}if(_0x32051e['kind']===_0x3a2948(0x167)){const _0x195d35=_0x32051e['scriptName']||_0x32051e['bffCode']||(_0x32051e[_0x3a2948(0x165)]==null?'':String(_0x32051e[_0x3a2948(0x165)]));if(!_0x195d35)throw CliErrors['validation'](_0x3a2948(0x179)+_0x58fb12['cliPath']+_0x3a2948(0x164));return executeSdkBff(_0x195d35,_0x32051e[_0x3a2948(0x13e)]);}throw CliErrors[_0x3a2948(0x171)](_0x3a2948(0x170)+_0x32051e[_0x3a2948(0x180)]);}async function resolveDatasetCode(_0x47b630,_0x3c8dc0,_0x4ab802){const _0x3c6d70=a62_0x4cc8;if(_0x47b630['datasetCode'])return _0x47b630[_0x3c6d70(0x13b)];if(!_0x47b630[_0x3c6d70(0x15c)])throw CliErrors[_0x3c6d70(0x171)](_0x3c6d70(0x179)+_0x3c8dc0[_0x3c6d70(0x16c)]+_0x3c6d70(0x146));const _0x2ba232=await listDatasets(_0x4ab802[_0x3c6d70(0x16d)]),_0x1980ea=_0x2ba232[_0x3c6d70(0x16e)](_0x4668d9=>_0x4668d9['dbtableConfig']?.[_0x3c6d70(0x131)]===_0x47b630[_0x3c6d70(0x15c)]);if(!_0x1980ea?.[_0x3c6d70(0x172)])throw CliErrors[_0x3c6d70(0x171)](_0x3c6d70(0x178)+_0x47b630[_0x3c6d70(0x15c)]+_0x3c6d70(0x17c)+_0x4ab802[_0x3c6d70(0x16d)]+'.',_0x3c6d70(0x123));return _0x1980ea[_0x3c6d70(0x172)];}function applyAppBinding(_0x4a38de,_0x525516,_0x25ed73){const _0x2bbd1b=a62_0x4cc8,_0x40bb32=_0x525516[_0x2bbd1b(0x17d)][_0x2bbd1b(0x127)];if(!_0x40bb32)return;const _0x485cc2=_0x4a38de[_0x2bbd1b(0x17f)][_0x40bb32];if(!_0x485cc2)throw CliErrors[_0x2bbd1b(0x171)]('Unknown\x20appRef\x20\x22'+_0x40bb32+_0x2bbd1b(0x135)+_0x525516[_0x2bbd1b(0x16c)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0xd817e=_0x485cc2[_0x2bbd1b(0x16f)]||_0x485cc2[_0x2bbd1b(0x16d)];_0xd817e&&!hasText(_0x25ed73['appcode'])&&(_0x25ed73[_0x2bbd1b(0x16f)]=_0xd817e),_0x485cc2[_0x2bbd1b(0x12e)]&&!hasText(_0x25ed73[_0x2bbd1b(0x12e)])&&!hasText(_0x25ed73[_0x2bbd1b(0x16f)])&&(_0x25ed73['app']=_0x485cc2[_0x2bbd1b(0x12e)]),_0x485cc2[_0x2bbd1b(0x12c)]&&!hasText(_0x25ed73[_0x2bbd1b(0x12c)])&&(_0x25ed73[_0x2bbd1b(0x12c)]=_0x485cc2[_0x2bbd1b(0x12c)]);}function renderDynamicCommandHelp(_0x5bc849){const _0x263e92=a62_0x4cc8,_0x3b9f91=[_0x263e92(0x124),_0x263e92(0x15d)+_0x5bc849['target'][_0x263e92(0x180)],_0x263e92(0x173)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x138)]];if(_0x5bc849[_0x263e92(0x17d)]['datasetCode'])_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x130)+_0x5bc849['target'][_0x263e92(0x13b)]);if(_0x5bc849['target']['datatable'])_0x3b9f91['push'](_0x263e92(0x174)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x15c)]);if(_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x182)])_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x186)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x182)]);if(_0x5bc849[_0x263e92(0x17d)]['scriptName'])_0x3b9f91[_0x263e92(0x13f)]('\x20\x20\x20\x20functionName:\x20'+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x14d)]);if(_0x5bc849[_0x263e92(0x181)][_0x263e92(0x16b)]>0x0){_0x3b9f91[_0x263e92(0x13f)]('','\x20\x20MAP\x20TO');for(const _0x13d8b1 of _0x5bc849[_0x263e92(0x181)]){_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x157)+(_0x13d8b1[_0x263e92(0x141)]||_0x263e92(0x153))+'\x20->\x20'+_0x13d8b1['target']+(_0x13d8b1[_0x263e92(0x189)]?'.'+_0x13d8b1[_0x263e92(0x189)]:''));}}return _0x3b9f91[_0x263e92(0x128)]('\x0a');}function a62_0x37f4(){const _0x2e85f9=['tree','Preview\x20dynamic\x20service\x20command:\x20','command','fullPath','name','datasetCode','flatMap','Run\x20service\x20command\x20','params','push','5991293SoOUyS','source','boolean','filter','Commands:','SERVICE_TREE','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','map','10oPrtBe','\x22.\x20','\x20service\x20detail\x20--service\x20','250338FlWDwY','scriptName','padEnd','string','enum','entries','remainingArgs','const','trim','some','description','\x20\x20\x20\x20','username','number','envName','\x20requires\x20target.sqlCode.','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20completed\x20in\x20','json','slice','\x20<command>\x20[flags]','args','643475bRoFhr','\x20requires\x20target.functionName.','bffId','type','bff','read','normalizedManifest','258180OGKnST','length','cliPath','appCode','find','appcode','Unsupported\x20service\x20target\x20kind:\x20','validation','code','\x20\x20\x20\x20command:\x20','\x20\x20\x20\x20datatable:\x20','\x20\x20[','service','now','Cannot\x20resolve\x20datatable\x20\x22','Service\x20command\x20','default','758988bdtTUo','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','target','required','appBindings','kind','mapTo','sqlCode','bffCode','userId','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x20\x20\x20\x20sqlCode:\x20','loginName','25798030gUpDmw','operator','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20SERVICE\x20TREE\x20TARGET','commands','5969952bwlISk','appRef','join','8MgZvHH','risk','flags','env','28zYBLGC','app','startsWith','\x20\x20\x20\x20datasetCode:\x20','tableName','nickName','Use\x20`','userName','\x22\x20in\x20service\x20command\x20'];a62_0x37f4=function(){return _0x2e85f9;};return a62_0x37f4();}function targetPreview(_0x452b3f){const _0x4ba091=a62_0x4cc8;return{'kind':_0x452b3f[_0x4ba091(0x180)],'command':_0x452b3f[_0x4ba091(0x138)],'appRef':_0x452b3f[_0x4ba091(0x127)],'datasetCode':_0x452b3f[_0x4ba091(0x13b)],'datatable':_0x452b3f[_0x4ba091(0x15c)],'sqlCode':_0x452b3f['sqlCode'],'bffCode':_0x452b3f[_0x4ba091(0x183)],'bffId':_0x452b3f[_0x4ba091(0x165)],'functionName':_0x452b3f[_0x4ba091(0x14d)]};}function normalizeScalarParams(_0x334cf4){const _0x3d53aa=a62_0x4cc8;return Object['fromEntries'](Object[_0x3d53aa(0x151)](_0x334cf4)['filter'](([,_0x320596])=>typeof _0x320596===_0x3d53aa(0x14f)||typeof _0x320596===_0x3d53aa(0x159)));}function hasText(_0x323612){const _0x104d16=a62_0x4cc8;return typeof _0x323612==='string'&&_0x323612[_0x104d16(0x154)]()[_0x104d16(0x16b)]>0x0;}function isPrimitiveFlagDefault(_0x2f2130){const _0x4786c3=a62_0x4cc8;return _0x2f2130===undefined||typeof _0x2f2130==='string'||typeof _0x2f2130==='number'||typeof _0x2f2130===_0x4786c3(0x142);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a63_0x5d8b(_0xdf2350,_0x2b7824){_0xdf2350=_0xdf2350-0xb0;const _0x2cfe28=a63_0x2cfe();let _0x5d8b4=_0x2cfe28[_0xdf2350];return _0x5d8b4;}(function(_0x13e45c,_0x17b425){const _0x30c15e=a63_0x5d8b,_0x35dfc7=_0x13e45c();while(!![]){try{const _0xa6f3c5=-parseInt(_0x30c15e(0xba))/0x1+parseInt(_0x30c15e(0xb7))/0x2+parseInt(_0x30c15e(0xc8))/0x3+parseInt(_0x30c15e(0xd2))/0x4*(parseInt(_0x30c15e(0xb1))/0x5)+parseInt(_0x30c15e(0xb5))/0x6+parseInt(_0x30c15e(0xd5))/0x7+-parseInt(_0x30c15e(0xb0))/0x8;if(_0xa6f3c5===_0x17b425)break;else _0x35dfc7['push'](_0x35dfc7['shift']());}catch(_0x239dfb){_0x35dfc7['push'](_0x35dfc7['shift']());}}}(a63_0x2cfe,0x52037));export function adaptServiceTreeManifestForLegacyFramework(_0x49119a){const _0x3325ca=a63_0x5d8b,_0x235061=cloneJsonValue(_0x49119a),_0x21cbf1=[];if(!isObjectRecord(_0x235061))return{'manifest':_0x235061,'errors':_0x21cbf1};return Array['isArray'](_0x235061[_0x3325ca(0xbe)])&&_0x235061[_0x3325ca(0xbe)][_0x3325ca(0xc6)]((_0x31ce29,_0x2b5785)=>{const _0x2b72e4=_0x3325ca;if(!isObjectRecord(_0x31ce29))return;adaptBffTarget(_0x31ce29[_0x2b72e4(0xd3)],_0x2b72e4(0xb6)+_0x2b5785+_0x2b72e4(0xcb),_0x21cbf1);}),adaptResources(_0x235061[_0x3325ca(0xc3)],_0x3325ca(0xc2),_0x21cbf1),{'manifest':_0x235061,'errors':_0x21cbf1};}export function toPublicServiceTreeTarget(_0x5dba48){const _0x13e8f5=a63_0x5d8b,{scriptName:_0xbdd8ac,..._0x4e2502}=_0x5dba48;return typeof _0xbdd8ac===_0x13e8f5(0xbd)&&_0xbdd8ac['trim']()&&(_0x4e2502[_0x13e8f5(0xca)]=_0xbdd8ac),_0x4e2502;}export function toPublicNormalizedServiceTree(_0x7c6435){const _0x2bb4d4=a63_0x5d8b;return{..._0x7c6435,'commands':_0x7c6435[_0x2bb4d4(0xbe)][_0x2bb4d4(0xc1)](_0x5dad5c=>({..._0x5dad5c,'target':toPublicServiceTreeTarget(_0x5dad5c[_0x2bb4d4(0xd3)])}))};}function adaptResources(_0x436750,_0x1ba6c1,_0x5e467a){const _0x2e1de0=a63_0x5d8b;if(!isObjectRecord(_0x436750))return;for(const [_0x424d70,_0x102104]of Object[_0x2e1de0(0xb9)](_0x436750)){if(!isObjectRecord(_0x102104))continue;const _0x1e20ce=_0x1ba6c1+'.'+_0x424d70;if(isObjectRecord(_0x102104['actions']))for(const [_0x108161,_0x2ea5c7]of Object[_0x2e1de0(0xb9)](_0x102104[_0x2e1de0(0xc0)])){if(!isObjectRecord(_0x2ea5c7))continue;const _0x1f7a2f=_0x1e20ce+_0x2e1de0(0xd0)+_0x108161,_0x3f7461=isObjectRecord(_0x2ea5c7[_0x2e1de0(0xd3)])&&_0x2ea5c7['target']['kind']===_0x2e1de0(0xc5);adaptBffTarget(_0x2ea5c7[_0x2e1de0(0xd3)],_0x1f7a2f+'.target',_0x5e467a),(_0x3f7461||isBffAction(_0x2ea5c7))&&adaptFunctionNameField(_0x2ea5c7,_0x1f7a2f,_0x5e467a);}adaptResources(_0x102104[_0x2e1de0(0xc3)],_0x1e20ce+_0x2e1de0(0xb2),_0x5e467a);}}function a63_0x2cfe(){const _0xfe837e=['entries','345578PKjlgx','hasOwnProperty','push','string','commands','prototype','actions','map','$.resources','resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','bff','forEach','action','651117mAvjxA','isArray','functionName','].target','trim','bff.exec','.scriptName','fromEntries','.actions.','error','45072WDpoHk','target','scriptName','89453WdhzqG','1446008EjWXqQ','140IVBILO','.resources','call','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','1747062tSQwOC','$.commands[','51514cBlRfj','object'];a63_0x2cfe=function(){return _0xfe837e;};return a63_0x2cfe();}function adaptBffTarget(_0x45e822,_0x5bc2d8,_0x1871af){if(!isObjectRecord(_0x45e822)||_0x45e822['kind']!=='bff')return;adaptFunctionNameField(_0x45e822,_0x5bc2d8,_0x1871af);}function adaptFunctionNameField(_0x209d93,_0x594022,_0x5607b5){const _0x19baaf=a63_0x5d8b;Object[_0x19baaf(0xbf)]['hasOwnProperty'][_0x19baaf(0xb3)](_0x209d93,'scriptName')&&_0x5607b5['push']({'level':_0x19baaf(0xd1),'path':_0x594022+_0x19baaf(0xce),'message':_0x19baaf(0xb4)});if(Object[_0x19baaf(0xbf)][_0x19baaf(0xbb)][_0x19baaf(0xb3)](_0x209d93,_0x19baaf(0xca))){if(typeof _0x209d93[_0x19baaf(0xca)]!==_0x19baaf(0xbd)||!_0x209d93[_0x19baaf(0xca)][_0x19baaf(0xcc)]()){_0x5607b5[_0x19baaf(0xbc)]({'level':_0x19baaf(0xd1),'path':_0x594022+'.functionName','message':_0x19baaf(0xc4)}),delete _0x209d93['functionName'];return;}_0x209d93[_0x19baaf(0xd4)]=_0x209d93[_0x19baaf(0xca)],delete _0x209d93[_0x19baaf(0xca)];}}function isBffAction(_0x18afc4){const _0x19e2d4=a63_0x5d8b;return _0x18afc4['kind']===_0x19e2d4(0xc5)||_0x18afc4[_0x19e2d4(0xc7)]===_0x19e2d4(0xcd)||_0x18afc4[_0x19e2d4(0xd3)]==='bff.exec';}function cloneJsonValue(_0x1b6226){const _0x473cd2=a63_0x5d8b;if(Array['isArray'](_0x1b6226))return _0x1b6226[_0x473cd2(0xc1)](_0x23fc99=>cloneJsonValue(_0x23fc99));if(isObjectRecord(_0x1b6226))return Object[_0x473cd2(0xcf)](Object[_0x473cd2(0xb9)](_0x1b6226)['map'](([_0x2464b9,_0x44adf5])=>[_0x2464b9,cloneJsonValue(_0x44adf5)]));return _0x1b6226;}function isObjectRecord(_0x484b41){const _0x1e3b0c=a63_0x5d8b;return Boolean(_0x484b41)&&typeof _0x484b41===_0x1e3b0c(0xb8)&&!Array[_0x1e3b0c(0xc9)](_0x484b41);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x575cae=a63_0x4b1b;(function(_0x1beec5,_0x4fba52){const _0x2ba729=a63_0x4b1b,_0x231d38=_0x1beec5();while(!![]){try{const _0x354c3d=parseInt(_0x2ba729(0x1ac))/0x1+parseInt(_0x2ba729(0x1a5))/0x2+-parseInt(_0x2ba729(0x174))/0x3*(parseInt(_0x2ba729(0x191))/0x4)+parseInt(_0x2ba729(0x170))/0x5+parseInt(_0x2ba729(0x175))/0x6*(parseInt(_0x2ba729(0x1a6))/0x7)+-parseInt(_0x2ba729(0x19c))/0x8+-parseInt(_0x2ba729(0x1a2))/0x9;if(_0x354c3d===_0x4fba52)break;else _0x231d38['push'](_0x231d38['shift']());}catch(_0x196d4e){_0x231d38['push'](_0x231d38['shift']());}}}(a63_0x3794,0x5d440));function a63_0x4b1b(_0xb2d07e,_0x38932a){_0xb2d07e=_0xb2d07e-0x16b;const _0x3794a8=a63_0x3794();let _0x4b1b94=_0x3794a8[_0xb2d07e];return _0x4b1b94;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a63_0x3794(){const _0x103874=['file','filePath','str','string','export','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','entries','imported','3719544FlJXyO','Updated','registryServiceCode','updated','registryPath','lower\x20kebab-case\x20service\x20code','685782jVvLSh','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','normalizedManifest','189418hbdvZh','14441HOUeCY','WRITE','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','serviceCode','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','manifest','395297ohzbQe','source','serviceCount','read','warnings','length','entry','\x20service(s),\x20updated\x20','2678115cyhzGB','remove','version','target','207483FgEoYB','1110cJnusS','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','commands','\x20service\x20','service','replaced','list','name','Exported\x20service\x20','cliName','write','Imported','import','hash','importedAt','\x20service(s).','manifests','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','report','registry','description','errors','cliPath','Service\x20registry\x20validation\x20passed.','kind','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','map','28gjlmVw','risk','registryIndex'];a63_0x3794=function(){return _0x103874;};return a63_0x3794();}const FILE_FLAG={'name':a63_0x575cae(0x194),'type':a63_0x575cae(0x197),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a63_0x575cae(0x179),'type':a63_0x575cae(0x197),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a63_0x575cae(0x1a1)}};function summarizeService(_0xdd638c){const _0x148c09=a63_0x575cae;return{'serviceCode':_0xdd638c[_0x148c09(0x1a9)],'name':_0xdd638c[_0x148c09(0x1a4)][_0x148c09(0x179)]['name'],'version':_0xdd638c['version'],'importedAt':_0xdd638c[_0x148c09(0x183)],'source':_0xdd638c[_0x148c09(0x1ad)],'commandCount':_0xdd638c[_0x148c09(0x1a4)]['commands'][_0x148c09(0x16d)],'commands':_0xdd638c['normalizedManifest']['commands']['map'](_0x3c0a23=>({'path':_0x3c0a23[_0x148c09(0x18b)],'description':_0x3c0a23[_0x148c09(0x189)],'risk':_0x3c0a23[_0x148c09(0x192)],'target':toPublicServiceTreeTarget(_0x3c0a23['target']),'flags':_0x3c0a23['flags'][_0x148c09(0x190)](_0x21dd0d=>({'name':_0x21dd0d[_0x148c09(0x17c)],'cliName':_0x21dd0d[_0x148c09(0x17e)],'type':_0x21dd0d['type'],'required':_0x21dd0d['required']===!![]}))}))};}function summarizeLoadedManifest(_0x651681){const _0x29af90=a63_0x575cae;return{'service':_0x651681[_0x29af90(0x1a4)]?.[_0x29af90(0x179)],'version':_0x651681[_0x29af90(0x1a4)]?.[_0x29af90(0x172)],'commandCount':_0x651681['normalizedManifest']?.['commands'][_0x29af90(0x16d)]??0x0,'commands':_0x651681['normalizedManifest']?.['commands'][_0x29af90(0x190)](_0x480760=>({'path':_0x480760[_0x29af90(0x18b)],'risk':_0x480760['risk'],'target':toPublicServiceTreeTarget(_0x480760['target'])}))??[],'registryIndex':_0x651681[_0x29af90(0x193)],'registryServiceCode':_0x651681[_0x29af90(0x19e)],'errors':_0x651681[_0x29af90(0x187)][_0x29af90(0x18a)],'warnings':_0x651681[_0x29af90(0x187)][_0x29af90(0x16c)]};}export const serviceDefinitions=[{'service':'service','command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a63_0x575cae(0x16b),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x387d20){const _0x1effd7=a63_0x575cae,_0x5b44d2=loadServiceManifestFromFile(_0x387d20['str'](_0x1effd7(0x194)));if(!_0x5b44d2[_0x1effd7(0x187)]['ok'])return{'ok':![],'data':{'file':_0x5b44d2[_0x1effd7(0x195)],'hash':_0x5b44d2[_0x1effd7(0x182)],'kind':_0x5b44d2[_0x1effd7(0x18d)],'serviceCount':_0x5b44d2[_0x1effd7(0x185)][_0x1effd7(0x16d)],'services':_0x5b44d2[_0x1effd7(0x185)][_0x1effd7(0x190)](summarizeLoadedManifest),'errors':_0x5b44d2[_0x1effd7(0x187)][_0x1effd7(0x18a)],'warnings':_0x5b44d2[_0x1effd7(0x187)][_0x1effd7(0x16c)]},'message':formatValidationFailure(_0x5b44d2[_0x1effd7(0x187)])};if(_0x5b44d2['kind']===_0x1effd7(0x188)||_0x5b44d2['manifests'][_0x1effd7(0x16d)]!==0x1)return{'ok':!![],'data':{'file':_0x5b44d2[_0x1effd7(0x195)],'hash':_0x5b44d2[_0x1effd7(0x182)],'kind':_0x5b44d2[_0x1effd7(0x18d)],'serviceCount':_0x5b44d2[_0x1effd7(0x185)][_0x1effd7(0x16d)],'commandCount':_0x5b44d2[_0x1effd7(0x185)]['reduce']((_0x1dde94,_0x47565a)=>_0x1dde94+(_0x47565a[_0x1effd7(0x1a4)]?.['commands'][_0x1effd7(0x16d)]??0x0),0x0),'services':_0x5b44d2[_0x1effd7(0x185)][_0x1effd7(0x190)](summarizeLoadedManifest),'warnings':_0x5b44d2['report']['warnings']},'message':_0x1effd7(0x18c)};return{'ok':!![],'data':{'file':_0x5b44d2[_0x1effd7(0x195)],'hash':_0x5b44d2['hash'],'kind':_0x5b44d2[_0x1effd7(0x18d)],'service':_0x5b44d2[_0x1effd7(0x1a4)]?.['service'],'version':_0x5b44d2[_0x1effd7(0x1a4)]?.[_0x1effd7(0x172)],'commandCount':_0x5b44d2[_0x1effd7(0x1a4)]?.[_0x1effd7(0x177)]['length']??0x0,'commands':_0x5b44d2[_0x1effd7(0x1a4)]?.[_0x1effd7(0x177)]['map'](_0x3ac0f8=>({'path':_0x3ac0f8[_0x1effd7(0x18b)],'risk':_0x3ac0f8[_0x1effd7(0x192)],'target':toPublicServiceTreeTarget(_0x3ac0f8[_0x1effd7(0x173)])})),'warnings':_0x5b44d2['report'][_0x1effd7(0x16c)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':'service','command':a63_0x575cae(0x181),'description':a63_0x575cae(0x18e),'risk':a63_0x575cae(0x17f),'confirmationDescription':a63_0x575cae(0x1aa),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x479f69){const _0x53a7f0=a63_0x575cae,_0x459cfe=loadServiceManifestFromFile(_0x479f69[_0x53a7f0(0x196)](_0x53a7f0(0x194)));return{'method':_0x53a7f0(0x1a7),'url':getServiceRegistryPath(),'body':{'file':_0x459cfe['filePath'],'hash':_0x459cfe['hash'],'kind':_0x459cfe[_0x53a7f0(0x18d)],'ok':_0x459cfe[_0x53a7f0(0x187)]['ok'],'service':_0x459cfe[_0x53a7f0(0x1a4)]?.['service'],'version':_0x459cfe['normalizedManifest']?.[_0x53a7f0(0x172)],'serviceCount':_0x459cfe[_0x53a7f0(0x185)]['length'],'services':_0x459cfe[_0x53a7f0(0x185)][_0x53a7f0(0x190)](_0x413599=>({'service':_0x413599[_0x53a7f0(0x1a4)]?.[_0x53a7f0(0x179)],'version':_0x413599[_0x53a7f0(0x1a4)]?.[_0x53a7f0(0x172)],'commandCount':_0x413599['normalizedManifest']?.[_0x53a7f0(0x177)][_0x53a7f0(0x16d)]??0x0,'errors':_0x413599[_0x53a7f0(0x187)][_0x53a7f0(0x18a)]})),'errors':_0x459cfe[_0x53a7f0(0x187)][_0x53a7f0(0x18a)],'commandCount':_0x459cfe[_0x53a7f0(0x1a4)]?.[_0x53a7f0(0x177)][_0x53a7f0(0x16d)]??0x0},'description':_0x53a7f0(0x1a8)};},async 'execute'(_0x373fb0){const _0x226b11=a63_0x575cae,_0x36995f=importServiceManifest(_0x373fb0[_0x226b11(0x196)](_0x226b11(0x194)));if(_0x36995f['entries'][_0x226b11(0x16d)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x36995f[_0x226b11(0x1a0)],'imported':_0x36995f[_0x226b11(0x19b)],'updated':_0x36995f['updated'],'serviceCount':_0x36995f['serviceCount'],'services':_0x36995f[_0x226b11(0x19a)][_0x226b11(0x190)](summarizeService)},'message':'Imported\x20'+_0x36995f[_0x226b11(0x19b)]+_0x226b11(0x16f)+_0x36995f['updated']+_0x226b11(0x184)};return{'ok':!![],'data':{'registryPath':_0x36995f[_0x226b11(0x1a0)],'replaced':_0x36995f[_0x226b11(0x17a)],'imported':_0x36995f['imported'],'updated':_0x36995f[_0x226b11(0x19f)],'serviceCount':_0x36995f['serviceCount'],'service':summarizeService(_0x36995f[_0x226b11(0x16e)])},'message':(_0x36995f['replaced']?_0x226b11(0x19d):_0x226b11(0x180))+_0x226b11(0x178)+_0x36995f[_0x226b11(0x16e)][_0x226b11(0x1a9)]+'.'};}},{'service':a63_0x575cae(0x179),'command':a63_0x575cae(0x198),'description':a63_0x575cae(0x18f),'risk':a63_0x575cae(0x17f),'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'(_0x24d6c3){const _0x1121da=a63_0x575cae,_0x492841=getLocalServiceEntry(_0x24d6c3['str'](_0x1121da(0x179)));return{'method':_0x1121da(0x1a7),'url':_0x24d6c3[_0x1121da(0x196)]('file'),'body':{'service':_0x24d6c3[_0x1121da(0x196)](_0x1121da(0x179)),'found':Boolean(_0x492841),'version':_0x492841?.[_0x1121da(0x172)],'source':_0x492841?.[_0x1121da(0x1ad)]},'description':_0x1121da(0x1a3)};},async 'execute'(_0x46248f){const _0x2ce42a=a63_0x575cae,_0x1930ec=exportServiceManifest(_0x46248f[_0x2ce42a(0x196)](_0x2ce42a(0x179)),_0x46248f[_0x2ce42a(0x196)](_0x2ce42a(0x194)));return{'ok':!![],'data':{'registryPath':_0x1930ec[_0x2ce42a(0x1a0)],'file':_0x1930ec[_0x2ce42a(0x195)],'service':summarizeService(_0x1930ec['entry'])},'message':_0x2ce42a(0x17d)+_0x1930ec[_0x2ce42a(0x16e)]['serviceCode']+'.'};}},{'service':a63_0x575cae(0x179),'command':a63_0x575cae(0x17b),'description':a63_0x575cae(0x199),'risk':a63_0x575cae(0x16b),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x4d1e98=a63_0x575cae,_0x2897d0=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2897d0['length'],'services':_0x2897d0[_0x4d1e98(0x190)](summarizeService)}};}},{'service':'service','command':a63_0x575cae(0x171),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a63_0x575cae(0x17f),'confirmationDescription':a63_0x575cae(0x176),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4f9c3b){const _0x15f57c=a63_0x575cae,_0x36a99e=getLocalServiceEntry(_0x4f9c3b[_0x15f57c(0x196)](_0x15f57c(0x179)));return{'method':_0x15f57c(0x1a7),'url':getServiceRegistryPath(),'body':{'service':_0x4f9c3b[_0x15f57c(0x196)](_0x15f57c(0x179)),'found':Boolean(_0x36a99e),'version':_0x36a99e?.['version'],'source':_0x36a99e?.['source']},'description':_0x15f57c(0x186)};},async 'execute'(_0x51da28){const _0x15e896=a63_0x575cae,_0xca03ec=removeServiceManifest(_0x51da28[_0x15e896(0x196)](_0x15e896(0x179)));return{'ok':!![],'data':{'registryPath':_0xca03ec[_0x15e896(0x1a0)],'serviceCount':_0xca03ec[_0x15e896(0x1ae)],'service':summarizeService(_0xca03ec[_0x15e896(0x16e)])},'message':'Removed\x20service\x20'+_0xca03ec[_0x15e896(0x16e)][_0x15e896(0x1a9)]+'.'};}},{'service':'service','command':'detail','description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x64949c){const _0x1cc72e=a63_0x575cae,_0x87693e=getLocalServiceEntry(_0x64949c[_0x1cc72e(0x196)](_0x1cc72e(0x179)));if(!_0x87693e)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x64949c[_0x1cc72e(0x196)](_0x1cc72e(0x179))},'message':'Local\x20service\x20not\x20found:\x20'+_0x64949c['str'](_0x1cc72e(0x179))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x87693e),'manifest':_0x87693e[_0x1cc72e(0x1ab)],'normalizedManifest':toPublicNormalizedServiceTree(_0x87693e[_0x1cc72e(0x1a4)])}};}}];
|
|
1
|
+
const a64_0x3bfc0f=a64_0x4397;(function(_0xf91264,_0x3f7f27){const _0x9b5c37=a64_0x4397,_0x1e7231=_0xf91264();while(!![]){try{const _0x57bb7d=parseInt(_0x9b5c37(0x191))/0x1*(-parseInt(_0x9b5c37(0x18e))/0x2)+-parseInt(_0x9b5c37(0x198))/0x3*(parseInt(_0x9b5c37(0x196))/0x4)+-parseInt(_0x9b5c37(0x17f))/0x5+-parseInt(_0x9b5c37(0x195))/0x6+-parseInt(_0x9b5c37(0x16a))/0x7+parseInt(_0x9b5c37(0x150))/0x8+parseInt(_0x9b5c37(0x181))/0x9;if(_0x57bb7d===_0x3f7f27)break;else _0x1e7231['push'](_0x1e7231['shift']());}catch(_0x27df45){_0x1e7231['push'](_0x1e7231['shift']());}}}(a64_0x5b58,0xde139));function a64_0x5b58(){const _0xb18f0e=['List\x20locally\x20imported\x20Service\x20Tree\x20manifests','errors','target','serviceCode','hash','WRITE','warnings','\x20service\x20','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','lower\x20kebab-case\x20service\x20code','serviceCount','Updated','7651065VbbfnC','risk','43233759mSSFMT','description','updated','remove','read','\x20service(s).','flags','file','version','filePath','import','detail','Imported\x20','4362njjBNR','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.','commands','345MEseST','imported','write','Exported\x20service\x20','10297458WSoVRZ','8QgHJCK','replaced','380127mUhSSt','manifest','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','importedAt','6069000KdSseP','type','entry','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Local\x20service\x20not\x20found:\x20','Local\x20service\x20code,\x20for\x20example\x20crm','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','registryPath','registry','string','kind','name','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','str','Service\x20manifest\x20validation\x20passed.','cliPath','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','cliName','service','manifests','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.','export','entries','length','2803024DZKAvB','normalizedManifest','Removed\x20service\x20','validate','registryServiceCode','source','map','report','list'];a64_0x5b58=function(){return _0xb18f0e;};return a64_0x5b58();}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':a64_0x3bfc0f(0x188),'type':'string','required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a64_0x3bfc0f(0x164),'type':a64_0x3bfc0f(0x159),'required':!![],'description':a64_0x3bfc0f(0x155),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x3bfc0f(0x17c)}};function a64_0x4397(_0x369daa,_0x32299b){_0x369daa=_0x369daa-0x14f;const _0x5b58db=a64_0x5b58();let _0x4397bf=_0x5b58db[_0x369daa];return _0x4397bf;}function summarizeService(_0x2f4afa){const _0xa00fc2=a64_0x3bfc0f;return{'serviceCode':_0x2f4afa['serviceCode'],'name':_0x2f4afa['normalizedManifest'][_0xa00fc2(0x164)][_0xa00fc2(0x15b)],'version':_0x2f4afa[_0xa00fc2(0x189)],'importedAt':_0x2f4afa[_0xa00fc2(0x14f)],'source':_0x2f4afa['source'],'commandCount':_0x2f4afa[_0xa00fc2(0x16b)]['commands']['length'],'commands':_0x2f4afa[_0xa00fc2(0x16b)][_0xa00fc2(0x190)][_0xa00fc2(0x170)](_0x2848d5=>({'path':_0x2848d5[_0xa00fc2(0x160)],'description':_0x2848d5[_0xa00fc2(0x182)],'risk':_0x2848d5['risk'],'target':toPublicServiceTreeTarget(_0x2848d5['target']),'flags':_0x2848d5[_0xa00fc2(0x187)][_0xa00fc2(0x170)](_0x54ff11=>({'name':_0x54ff11[_0xa00fc2(0x15b)],'cliName':_0x54ff11[_0xa00fc2(0x163)],'type':_0x54ff11[_0xa00fc2(0x151)],'required':_0x54ff11['required']===!![]}))}))};}function summarizeLoadedManifest(_0x5c6c62){const _0x3da72d=a64_0x3bfc0f;return{'service':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x164)],'version':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x189)],'commandCount':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x190)][_0x3da72d(0x169)]??0x0,'commands':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x190)][_0x3da72d(0x170)](_0x325b8d=>({'path':_0x325b8d[_0x3da72d(0x160)],'risk':_0x325b8d[_0x3da72d(0x180)],'target':toPublicServiceTreeTarget(_0x325b8d[_0x3da72d(0x175)])}))??[],'registryIndex':_0x5c6c62['registryIndex'],'registryServiceCode':_0x5c6c62[_0x3da72d(0x16e)],'errors':_0x5c6c62['report'][_0x3da72d(0x174)],'warnings':_0x5c6c62[_0x3da72d(0x171)][_0x3da72d(0x179)]};}export const serviceDefinitions=[{'service':'service','command':a64_0x3bfc0f(0x16d),'description':a64_0x3bfc0f(0x15c),'risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x528235){const _0x178502=a64_0x3bfc0f,_0x20fe5f=loadServiceManifestFromFile(_0x528235[_0x178502(0x15e)](_0x178502(0x188)));if(!_0x20fe5f[_0x178502(0x171)]['ok'])return{'ok':![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f['hash'],'kind':_0x20fe5f['kind'],'serviceCount':_0x20fe5f[_0x178502(0x165)]['length'],'services':_0x20fe5f[_0x178502(0x165)][_0x178502(0x170)](summarizeLoadedManifest),'errors':_0x20fe5f[_0x178502(0x171)][_0x178502(0x174)],'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':formatValidationFailure(_0x20fe5f[_0x178502(0x171)])};if(_0x20fe5f['kind']===_0x178502(0x158)||_0x20fe5f[_0x178502(0x165)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f[_0x178502(0x177)],'kind':_0x20fe5f[_0x178502(0x15a)],'serviceCount':_0x20fe5f['manifests']['length'],'commandCount':_0x20fe5f[_0x178502(0x165)]['reduce']((_0x192f35,_0x5b4f49)=>_0x192f35+(_0x5b4f49[_0x178502(0x16b)]?.['commands'][_0x178502(0x169)]??0x0),0x0),'services':_0x20fe5f[_0x178502(0x165)][_0x178502(0x170)](summarizeLoadedManifest),'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f['hash'],'kind':_0x20fe5f[_0x178502(0x15a)],'service':_0x20fe5f['normalizedManifest']?.[_0x178502(0x164)],'version':_0x20fe5f['normalizedManifest']?.['version'],'commandCount':_0x20fe5f[_0x178502(0x16b)]?.[_0x178502(0x190)][_0x178502(0x169)]??0x0,'commands':_0x20fe5f[_0x178502(0x16b)]?.[_0x178502(0x190)][_0x178502(0x170)](_0x211ecd=>({'path':_0x211ecd[_0x178502(0x160)],'risk':_0x211ecd['risk'],'target':toPublicServiceTreeTarget(_0x211ecd[_0x178502(0x175)])})),'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':_0x178502(0x15f)};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x18b),'description':a64_0x3bfc0f(0x17b),'risk':a64_0x3bfc0f(0x193),'confirmationDescription':a64_0x3bfc0f(0x18f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x56991d){const _0x28a9b9=a64_0x3bfc0f,_0x4278a3=loadServiceManifestFromFile(_0x56991d['str'](_0x28a9b9(0x188)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x4278a3['filePath'],'hash':_0x4278a3['hash'],'kind':_0x4278a3[_0x28a9b9(0x15a)],'ok':_0x4278a3[_0x28a9b9(0x171)]['ok'],'service':_0x4278a3[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x164)],'version':_0x4278a3[_0x28a9b9(0x16b)]?.['version'],'serviceCount':_0x4278a3[_0x28a9b9(0x165)][_0x28a9b9(0x169)],'services':_0x4278a3[_0x28a9b9(0x165)][_0x28a9b9(0x170)](_0x37f3ec=>({'service':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x164)],'version':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x189)],'commandCount':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x190)][_0x28a9b9(0x169)]??0x0,'errors':_0x37f3ec['report']['errors']})),'errors':_0x4278a3['report'][_0x28a9b9(0x174)],'commandCount':_0x4278a3[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x190)][_0x28a9b9(0x169)]??0x0},'description':_0x28a9b9(0x162)};},async 'execute'(_0x561b8c){const _0x4abd8b=a64_0x3bfc0f,_0x2b67f0=importServiceManifest(_0x561b8c[_0x4abd8b(0x15e)](_0x4abd8b(0x188)));if(_0x2b67f0[_0x4abd8b(0x168)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x2b67f0[_0x4abd8b(0x157)],'imported':_0x2b67f0[_0x4abd8b(0x192)],'updated':_0x2b67f0[_0x4abd8b(0x183)],'serviceCount':_0x2b67f0[_0x4abd8b(0x17d)],'services':_0x2b67f0[_0x4abd8b(0x168)][_0x4abd8b(0x170)](summarizeService)},'message':_0x4abd8b(0x18d)+_0x2b67f0['imported']+'\x20service(s),\x20updated\x20'+_0x2b67f0['updated']+_0x4abd8b(0x186)};return{'ok':!![],'data':{'registryPath':_0x2b67f0[_0x4abd8b(0x157)],'replaced':_0x2b67f0[_0x4abd8b(0x197)],'imported':_0x2b67f0[_0x4abd8b(0x192)],'updated':_0x2b67f0[_0x4abd8b(0x183)],'serviceCount':_0x2b67f0['serviceCount'],'service':summarizeService(_0x2b67f0[_0x4abd8b(0x152)])},'message':(_0x2b67f0['replaced']?_0x4abd8b(0x17e):'Imported')+_0x4abd8b(0x17a)+_0x2b67f0['entry'][_0x4abd8b(0x176)]+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x167),'description':a64_0x3bfc0f(0x153),'risk':a64_0x3bfc0f(0x193),'confirmationDescription':a64_0x3bfc0f(0x166),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5dcd3c){const _0x24ac63=a64_0x3bfc0f,_0x11f58c=getLocalServiceEntry(_0x5dcd3c[_0x24ac63(0x15e)](_0x24ac63(0x164)));return{'method':'WRITE','url':_0x5dcd3c[_0x24ac63(0x15e)]('file'),'body':{'service':_0x5dcd3c[_0x24ac63(0x15e)]('service'),'found':Boolean(_0x11f58c),'version':_0x11f58c?.[_0x24ac63(0x189)],'source':_0x11f58c?.[_0x24ac63(0x16f)]},'description':_0x24ac63(0x19a)};},async 'execute'(_0x4bffdd){const _0xbbe290=a64_0x3bfc0f,_0x49058f=exportServiceManifest(_0x4bffdd[_0xbbe290(0x15e)](_0xbbe290(0x164)),_0x4bffdd[_0xbbe290(0x15e)]('file'));return{'ok':!![],'data':{'registryPath':_0x49058f['registryPath'],'file':_0x49058f[_0xbbe290(0x18a)],'service':summarizeService(_0x49058f[_0xbbe290(0x152)])},'message':_0xbbe290(0x194)+_0x49058f['entry']['serviceCode']+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x172),'description':a64_0x3bfc0f(0x173),'risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1bfc2a=a64_0x3bfc0f,_0x41f131=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x41f131[_0x1bfc2a(0x169)],'services':_0x41f131[_0x1bfc2a(0x170)](summarizeService)}};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x184),'description':a64_0x3bfc0f(0x15d),'risk':'write','confirmationDescription':a64_0x3bfc0f(0x161),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x21e7d6){const _0x2694ca=a64_0x3bfc0f,_0x3938af=getLocalServiceEntry(_0x21e7d6[_0x2694ca(0x15e)](_0x2694ca(0x164)));return{'method':_0x2694ca(0x178),'url':getServiceRegistryPath(),'body':{'service':_0x21e7d6[_0x2694ca(0x15e)]('service'),'found':Boolean(_0x3938af),'version':_0x3938af?.[_0x2694ca(0x189)],'source':_0x3938af?.['source']},'description':_0x2694ca(0x156)};},async 'execute'(_0x2121c2){const _0x1a3f2c=a64_0x3bfc0f,_0x4ed1b0=removeServiceManifest(_0x2121c2['str'](_0x1a3f2c(0x164)));return{'ok':!![],'data':{'registryPath':_0x4ed1b0['registryPath'],'serviceCount':_0x4ed1b0['serviceCount'],'service':summarizeService(_0x4ed1b0['entry'])},'message':_0x1a3f2c(0x16c)+_0x4ed1b0[_0x1a3f2c(0x152)][_0x1a3f2c(0x176)]+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x18c),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1e400e){const _0x164310=a64_0x3bfc0f,_0x35f5e6=getLocalServiceEntry(_0x1e400e[_0x164310(0x15e)](_0x164310(0x164)));if(!_0x35f5e6)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1e400e['str'](_0x164310(0x164))},'message':_0x164310(0x154)+_0x1e400e['str']('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x35f5e6),'manifest':_0x35f5e6[_0x164310(0x199)],'normalizedManifest':toPublicNormalizedServiceTree(_0x35f5e6[_0x164310(0x16b)])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a64_0x52d5ba=a64_0x388f;(function(_0x9fea27,_0x12386f){const _0x5ed093=a64_0x388f,_0x1678db=_0x9fea27();while(!![]){try{const _0x2c4def=-parseInt(_0x5ed093(0xf0))/0x1*(-parseInt(_0x5ed093(0xec))/0x2)+-parseInt(_0x5ed093(0xfa))/0x3*(parseInt(_0x5ed093(0x116))/0x4)+-parseInt(_0x5ed093(0x103))/0x5*(parseInt(_0x5ed093(0xde))/0x6)+parseInt(_0x5ed093(0x111))/0x7+-parseInt(_0x5ed093(0xe7))/0x8*(-parseInt(_0x5ed093(0xdc))/0x9)+-parseInt(_0x5ed093(0xc3))/0xa*(-parseInt(_0x5ed093(0x105))/0xb)+-parseInt(_0x5ed093(0xd6))/0xc;if(_0x2c4def===_0x12386f)break;else _0x1678db['push'](_0x1678db['shift']());}catch(_0x57f5e4){_0x1678db['push'](_0x1678db['shift']());}}}(a64_0x5576,0x93ad5));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=a64_0x52d5ba(0xc4);export function getServiceRegistryPath(_0x427687={}){const _0x21fbfa=a64_0x52d5ba;return resolve(_0x427687[_0x21fbfa(0xfd)]??homedir(),PRODUCT_CONFIG[_0x21fbfa(0xf5)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}function a64_0x388f(_0x3fc2ca,_0x90ae81){_0x3fc2ca=_0x3fc2ca-0xc3;const _0x557641=a64_0x5576();let _0x388fbf=_0x557641[_0x3fc2ca];return _0x388fbf;}export function readServiceRegistry(_0x31b615={}){const _0xccf5cb=a64_0x52d5ba,_0x20dbba=getServiceRegistryPath(_0x31b615);if(!existsSync(_0x20dbba))return emptyServiceRegistry();try{const _0x4bb051=readFileSync(_0x20dbba,_0xccf5cb(0x117));if(!_0x4bb051['trim']())return emptyServiceRegistry();const _0x3809c3=JSON[_0xccf5cb(0x115)](_0x4bb051);if(_0x3809c3['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0xccf5cb(0xe4)+String(_0x3809c3[_0xccf5cb(0xd4)]),_0xccf5cb(0x109)+_0x20dbba+'.');if(!Array[_0xccf5cb(0xc8)](_0x3809c3['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3809c3['updatedAt'],'services':_0x3809c3['services']};}catch(_0x45e2a5){if(_0x45e2a5 instanceof Error&&_0x45e2a5[_0xccf5cb(0xe9)]==='CliError')throw _0x45e2a5;throw CliErrors[_0xccf5cb(0x112)](_0xccf5cb(0x10c)+_0x20dbba,_0xccf5cb(0xf4));}}function a64_0x5576(){const _0x27daa5=['schemaVersion','Invalid\x20service\x20manifest\x20JSON:\x20','7723200ZegNLL','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','object','service','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','1314MtlAat','stringify','719352pJIuFs','normalizedManifest','errors','localeCompare','slice','version','Unsupported\x20service\x20registry\x20schemaVersion:\x20','registry','reduce','31120kwSRxc','join','name','source','empty','26duQIFb','services\x20must\x20be\x20an\x20array','sha256','splice','13325ZcCaHo','update','report','code','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','homeDirName','services','find','manifests','updatedAt','6NbtVZC','registryIndex','digest','homeDir','length','warnings','message','invalid','file','5hctONH','].manifest.','396nAPKUU','map','push','target','Remove\x20or\x20migrate\x20','$.services[','sourceHash','Invalid\x20service\x20registry\x20JSON:\x20','serviceCode','commandCount','kind','importedAt','3995642uHweSN','validation','].manifest','path','parse','727644bvTcFB','utf8','116730hGTEgu','service.json','description','Service\x20manifest\x20validation\x20failed:\x0a','Service\x20manifest\x20file\x20not\x20found:\x20','isArray','startsWith','manifest','trim','risk','findIndex','flatMap','commands','string','Local\x20service\x20not\x20found:\x20','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','.tmp'];a64_0x5576=function(){return _0x27daa5;};return a64_0x5576();}export function writeServiceRegistry(_0x2ed9a5,_0x40cd6b={}){const _0x281be0=a64_0x52d5ba,_0x4df844=getServiceRegistryPath(_0x40cd6b),_0x81cba=dirname(_0x4df844);!existsSync(_0x81cba)&&mkdirSync(_0x81cba,{'recursive':!![]});const _0x36b663=_0x4df844+_0x281be0(0xd3);try{writeFileSync(_0x36b663,JSON[_0x281be0(0xdd)](_0x2ed9a5,null,0x2)+'\x0a',{'encoding':_0x281be0(0x117),'mode':0x180}),renameSync(_0x36b663,_0x4df844);}catch(_0x552726){try{unlinkSync(_0x36b663);}catch{}if(_0x552726?.['code']==='ENOENT')throw CliErrors[_0x281be0(0x112)]('Cannot\x20write\x20service\x20registry:\x20'+_0x4df844);throw _0x552726;}return _0x4df844;}export function loadServiceManifestFromFile(_0x4085d0){const _0x34435f=a64_0x52d5ba,_0x2cbc38=resolve(_0x4085d0);if(!existsSync(_0x2cbc38))throw CliErrors[_0x34435f(0x112)](_0x34435f(0xc7)+_0x4085d0);let _0x2327ae;const _0x36a718=readFileSync(_0x2cbc38,_0x34435f(0x117));try{_0x2327ae=JSON[_0x34435f(0x115)](_0x36a718);}catch{throw CliErrors[_0x34435f(0x112)](_0x34435f(0xd5)+_0x4085d0,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x535021=sha256(_0x36a718),_0x235e3f=extractLoadedServiceManifests(_0x2327ae,_0x535021),_0x5ea003=aggregateValidationReports(_0x235e3f),_0x4d578b=_0x235e3f[0x0];return{'filePath':_0x2cbc38,'hash':_0x535021,'kind':isServiceRegistryLike(_0x2327ae)?_0x34435f(0xe5):_0x34435f(0xca),'manifest':_0x4d578b?.[_0x34435f(0xca)]??_0x2327ae,'report':_0x5ea003,'normalizedManifest':_0x235e3f[_0x34435f(0xfe)]===0x1?_0x4d578b?.['normalizedManifest']:undefined,'manifests':_0x235e3f};}export function importServiceManifest(_0x5b3256,_0x5976ce={}){const _0x2143c9=a64_0x52d5ba,_0x434ad9=loadServiceManifestFromFile(_0x5b3256);if(!_0x434ad9[_0x2143c9(0xf2)]['ok'])throw CliErrors[_0x2143c9(0x112)](formatValidationFailure(_0x434ad9[_0x2143c9(0xf2)]),_0x2143c9(0xd2));if(_0x434ad9[_0x2143c9(0xf8)]['length']===0x0)throw CliErrors[_0x2143c9(0x112)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x2143c9(0xd7));const _0x41b0a6=readServiceRegistry(_0x5976ce),_0x346bb6=(_0x5976ce['now']??(()=>new Date()))()['toISOString'](),_0x4db555=[];let _0x180262=0x0,_0x3d24e7=0x0;for(const _0x31fd55 of _0x434ad9['manifests']){if(!_0x31fd55[_0x2143c9(0xdf)])continue;const _0x5e58ce=_0x31fd55[_0x2143c9(0xdf)][_0x2143c9(0xda)][_0x2143c9(0xf3)],_0x13e376={'serviceCode':_0x5e58ce,'version':_0x31fd55[_0x2143c9(0xdf)]['version'],'importedAt':_0x346bb6,'source':{'type':_0x2143c9(0x102),'path':_0x434ad9['filePath'],'hash':_0x31fd55[_0x2143c9(0x10b)]},'manifest':_0x31fd55[_0x2143c9(0xca)],'normalizedManifest':_0x31fd55[_0x2143c9(0xdf)]},_0x34f8b6=_0x41b0a6['services']['findIndex'](_0x4fa9dc=>_0x4fa9dc[_0x2143c9(0x10d)]===_0x5e58ce);_0x34f8b6>=0x0?(_0x41b0a6[_0x2143c9(0xf6)][_0x34f8b6]=_0x13e376,_0x3d24e7++):(_0x41b0a6['services']['push'](_0x13e376),_0x180262++),_0x4db555[_0x2143c9(0x107)](_0x13e376);}_0x41b0a6[_0x2143c9(0xf6)]['sort']((_0x121ab5,_0xed71ed)=>_0x121ab5[_0x2143c9(0x10d)][_0x2143c9(0xe1)](_0xed71ed[_0x2143c9(0x10d)])),_0x41b0a6[_0x2143c9(0xf9)]=_0x346bb6;const _0x1ba5ef=writeServiceRegistry(_0x41b0a6,_0x5976ce);return{'registryPath':_0x1ba5ef,'entry':_0x4db555[0x0],'replaced':_0x4db555['length']===0x1?_0x3d24e7===0x1:_0x3d24e7>0x0,'entries':_0x4db555,'imported':_0x180262,'updated':_0x3d24e7,'serviceCount':_0x41b0a6['services'][_0x2143c9(0xfe)]};}export function exportServiceManifest(_0x548fd5,_0x3d9ea9,_0x5656ab={}){const _0xe9b2d9=a64_0x52d5ba,_0x3b4fa6=getServiceRegistryPath(_0x5656ab),_0x5f58a9=getLocalServiceEntry(_0x548fd5,_0x5656ab);if(!_0x5f58a9)throw CliErrors[_0xe9b2d9(0x112)](_0xe9b2d9(0xd1)+_0x548fd5,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x2b9d2e=resolve(_0x3d9ea9),_0x3dc432=dirname(_0x2b9d2e);return!existsSync(_0x3dc432)&&mkdirSync(_0x3dc432,{'recursive':!![]}),writeFileSync(_0x2b9d2e,JSON['stringify'](_0x5f58a9['manifest'],null,0x2)+'\x0a',{'encoding':_0xe9b2d9(0x117),'mode':0x180}),{'registryPath':_0x3b4fa6,'filePath':_0x2b9d2e,'entry':_0x5f58a9};}export function removeServiceManifest(_0x31e664,_0x5ca927={}){const _0x3cdd65=a64_0x52d5ba,_0x5f5dd3=readServiceRegistry(_0x5ca927),_0x32e471=_0x31e664[_0x3cdd65(0xcb)](),_0x83a37b=_0x5f5dd3[_0x3cdd65(0xf6)][_0x3cdd65(0xcd)](_0x9db8b6=>_0x9db8b6[_0x3cdd65(0x10d)]===_0x32e471);if(_0x83a37b<0x0)throw CliErrors['validation'](_0x3cdd65(0xd1)+_0x32e471,_0x3cdd65(0xdb));const [_0x4d4092]=_0x5f5dd3[_0x3cdd65(0xf6)][_0x3cdd65(0xef)](_0x83a37b,0x1),_0x4bd834=(_0x5ca927['now']??(()=>new Date()))()['toISOString']();_0x5f5dd3['updatedAt']=_0x4bd834;const _0x8baf96=writeServiceRegistry(_0x5f5dd3,_0x5ca927);return{'registryPath':_0x8baf96,'entry':_0x4d4092,'serviceCount':_0x5f5dd3[_0x3cdd65(0xf6)][_0x3cdd65(0xfe)]};}export function listLocalServices(_0xf6d331={}){const _0x108ce9=a64_0x52d5ba;return readServiceRegistry(_0xf6d331)[_0x108ce9(0xf6)];}export function getLocalServiceEntry(_0x575cde,_0x359a34={}){const _0x958e5c=a64_0x52d5ba;return readServiceRegistry(_0x359a34)[_0x958e5c(0xf6)][_0x958e5c(0xf7)](_0x1f41e3=>_0x1f41e3[_0x958e5c(0x10d)]===_0x575cde[_0x958e5c(0xcb)]());}export function listLocalServiceTrees(_0x1e0ee0={}){const _0xaa1b36=a64_0x52d5ba;return readServiceRegistry(_0x1e0ee0)[_0xaa1b36(0xf6)][_0xaa1b36(0x106)](_0x36b29b=>_0x36b29b[_0xaa1b36(0xdf)]);}export function inspectServiceRegistry(_0x1148ea={}){const _0x14f91f=a64_0x52d5ba,_0x12d771=getServiceRegistryPath(_0x1148ea);if(!existsSync(_0x12d771))return emptyServiceRegistryInspection(_0x12d771,'missing',![]);try{const _0xbabc25=readFileSync(_0x12d771,_0x14f91f(0x117));if(!_0xbabc25['trim']())return emptyServiceRegistryInspection(_0x12d771,_0x14f91f(0xeb),!![]);const _0x3d9a65=JSON[_0x14f91f(0x115)](_0xbabc25);if(_0x3d9a65[_0x14f91f(0xd4)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x12d771,_0x14f91f(0x101),!![]),'schemaVersion':_0x3d9a65['schemaVersion'],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x3d9a65['schemaVersion'])};if(!Array[_0x14f91f(0xc8)](_0x3d9a65[_0x14f91f(0xf6)]))return{...emptyServiceRegistryInspection(_0x12d771,_0x14f91f(0x101),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3d9a65['updatedAt'],'message':_0x14f91f(0xed)};const _0x3fdd11=_0x3d9a65['services'][_0x14f91f(0x106)](summarizeLocalServiceEntry);return{'registryPath':_0x12d771,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3d9a65['updatedAt'],'serviceCount':_0x3fdd11[_0x14f91f(0xfe)],'commandCount':_0x3fdd11[_0x14f91f(0xe6)]((_0x374320,_0x136eb5)=>_0x374320+_0x136eb5[_0x14f91f(0x10e)],0x0),'services':_0x3fdd11};}catch(_0x470159){return{...emptyServiceRegistryInspection(_0x12d771,_0x14f91f(0x101),!![]),'message':_0x470159 instanceof Error?_0x470159[_0x14f91f(0x100)]:String(_0x470159)};}}export function formatValidationFailure(_0x2a3063){const _0x2dd9a3=a64_0x52d5ba,_0x20ea34=_0x2a3063['errors'][_0x2dd9a3(0x106)](_0x44ab82=>_0x44ab82[_0x2dd9a3(0x114)]+':\x20'+_0x44ab82[_0x2dd9a3(0x100)]);return _0x2dd9a3(0xc6)+_0x20ea34[_0x2dd9a3(0xe8)]('\x0a');}function extractLoadedServiceManifests(_0x9fdd76,_0x354e0a){const _0x33a4d4=a64_0x52d5ba;if(!isServiceRegistryLike(_0x9fdd76)){const _0x10027c=_0x9fdd76,{manifest:_0x3be955,errors:_0x5944d8}=adaptServiceTreeManifestForLegacyFramework(_0x10027c),_0x1f4f3a=validateServiceTreeManifest(_0x3be955),_0x28e6e7=mergeValidationErrors(_0x1f4f3a,_0x5944d8);return[{'manifest':_0x10027c,'report':_0x28e6e7,'normalizedManifest':_0x28e6e7['ok']?normalizeServiceTreeManifest(_0x3be955):undefined,'sourceHash':_0x354e0a}];}return _0x9fdd76[_0x33a4d4(0xf6)][_0x33a4d4(0x106)]((_0x5b594b,_0x19847b)=>{const _0x70c914=_0x33a4d4,_0x2ca2a1=isObjectRecord(_0x5b594b)?_0x5b594b[_0x70c914(0xca)]:undefined,{manifest:_0x124071,errors:_0x1f8592}=adaptServiceTreeManifestForLegacyFramework(_0x2ca2a1),_0x34330f=validateServiceTreeManifest(_0x124071),_0x52e6f0=mergeValidationErrors(_0x34330f,_0x1f8592),_0x1e547d=isObjectRecord(_0x5b594b)&&typeof _0x5b594b[_0x70c914(0x10d)]===_0x70c914(0xd0)?_0x5b594b[_0x70c914(0x10d)]:undefined;return{'manifest':_0x2ca2a1,'report':_0x52e6f0,'normalizedManifest':_0x52e6f0['ok']?normalizeServiceTreeManifest(_0x124071):undefined,'sourceHash':sha256(JSON[_0x70c914(0xdd)](_0x2ca2a1,null,0x2)+'\x0a'),'registryIndex':_0x19847b,'registryServiceCode':_0x1e547d};});}function mergeValidationErrors(_0x5287e0,_0x4851a0){const _0x3eef29=a64_0x52d5ba,_0x369f0d=_0x5287e0['errors'][_0x3eef29(0x106)](_0x23ca01=>_0x23ca01[_0x3eef29(0x100)]===_0x3eef29(0xd8)?{..._0x23ca01,'message':'bff\x20target\x20requires\x20functionName.'}:_0x23ca01),_0x33e3d6=[..._0x4851a0,..._0x369f0d];return{'ok':_0x33e3d6['length']===0x0,'errors':_0x33e3d6,'warnings':_0x5287e0[_0x3eef29(0xff)]};}function aggregateValidationReports(_0x3ee4cc){const _0x53c054=a64_0x52d5ba,_0x5d62b7=_0x3ee4cc[_0x53c054(0xce)](_0x371642=>_0x371642[_0x53c054(0xfb)]===undefined?_0x371642[_0x53c054(0xf2)][_0x53c054(0xe0)]:_0x371642[_0x53c054(0xf2)][_0x53c054(0xe0)][_0x53c054(0x106)](_0x28dbcd=>({..._0x28dbcd,'path':prefixRegistryIssuePath(_0x371642[_0x53c054(0xfb)],_0x28dbcd[_0x53c054(0x114)])}))),_0x311af2=_0x3ee4cc['flatMap'](_0x296a04=>_0x296a04[_0x53c054(0xfb)]===undefined?_0x296a04[_0x53c054(0xf2)][_0x53c054(0xff)]:_0x296a04[_0x53c054(0xf2)][_0x53c054(0xff)][_0x53c054(0x106)](_0x54f00c=>({..._0x54f00c,'path':prefixRegistryIssuePath(_0x296a04[_0x53c054(0xfb)],_0x54f00c[_0x53c054(0x114)])})));return{'ok':_0x5d62b7['length']===0x0,'errors':_0x5d62b7,'warnings':_0x311af2};}function prefixRegistryIssuePath(_0x479af6,_0x142a6c){const _0x45c5e1=a64_0x52d5ba;if(_0x142a6c==='$')return _0x45c5e1(0x10a)+_0x479af6+_0x45c5e1(0x113);if(_0x142a6c[_0x45c5e1(0xc9)]('$.'))return _0x45c5e1(0x10a)+_0x479af6+_0x45c5e1(0x113)+_0x142a6c[_0x45c5e1(0xe2)](0x1);if(_0x142a6c[_0x45c5e1(0xc9)]('$['))return _0x45c5e1(0x10a)+_0x479af6+'].manifest'+_0x142a6c[_0x45c5e1(0xe2)](0x1);return _0x45c5e1(0x10a)+_0x479af6+_0x45c5e1(0x104)+_0x142a6c;}function isServiceRegistryLike(_0x5a14a7){const _0x2eda34=a64_0x52d5ba;return isObjectRecord(_0x5a14a7)&&_0x5a14a7['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2eda34(0xc8)](_0x5a14a7['services']);}function isObjectRecord(_0x494f4a){const _0x22fffb=a64_0x52d5ba;return Boolean(_0x494f4a)&&typeof _0x494f4a===_0x22fffb(0xd9)&&!Array[_0x22fffb(0xc8)](_0x494f4a);}function emptyServiceRegistryInspection(_0x5b25b5,_0x4c4c41,_0x29dc1d){return{'registryPath':_0x5b25b5,'exists':_0x29dc1d,'status':_0x4c4c41,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x444325){const _0x3174e7=a64_0x52d5ba,_0x1c1de5=_0x444325[_0x3174e7(0xdf)],_0xc46aab=_0x1c1de5[_0x3174e7(0xcf)][_0x3174e7(0x106)](_0x1911e7=>({'path':_0x1911e7['cliPath'],'description':_0x1911e7[_0x3174e7(0xc5)],'risk':_0x1911e7[_0x3174e7(0xcc)],'targetKind':_0x1911e7['target'][_0x3174e7(0x10f)],'targetCommand':_0x1911e7[_0x3174e7(0x108)]['command']}));return{'serviceCode':_0x444325[_0x3174e7(0x10d)],'name':_0x1c1de5[_0x3174e7(0xda)][_0x3174e7(0xe9)],'description':_0x1c1de5[_0x3174e7(0xda)]['description'],'version':_0x444325[_0x3174e7(0xe3)],'importedAt':_0x444325[_0x3174e7(0x110)],'source':_0x444325[_0x3174e7(0xea)],'commandCount':_0xc46aab[_0x3174e7(0xfe)],'commands':_0xc46aab};}function sha256(_0x3a2bdc){const _0x5e13fe=a64_0x52d5ba;return createHash(_0x5e13fe(0xee))[_0x5e13fe(0xf1)](_0x3a2bdc)[_0x5e13fe(0xfc)]('hex');}
|
|
1
|
+
function a65_0x5387(_0x400d8d,_0x3c9947){_0x400d8d=_0x400d8d-0x189;const _0x14fd5a=a65_0x14fd();let _0x53879d=_0x14fd5a[_0x400d8d];return _0x53879d;}const a65_0x455dc5=a65_0x5387;(function(_0x2ecf04,_0x537ae3){const _0x200c0d=a65_0x5387,_0x1e65da=_0x2ecf04();while(!![]){try{const _0x30df11=parseInt(_0x200c0d(0x192))/0x1*(parseInt(_0x200c0d(0x1d0))/0x2)+parseInt(_0x200c0d(0x193))/0x3+parseInt(_0x200c0d(0x198))/0x4*(-parseInt(_0x200c0d(0x19c))/0x5)+-parseInt(_0x200c0d(0x1af))/0x6*(parseInt(_0x200c0d(0x1da))/0x7)+-parseInt(_0x200c0d(0x1c8))/0x8*(-parseInt(_0x200c0d(0x1bf))/0x9)+-parseInt(_0x200c0d(0x19a))/0xa*(-parseInt(_0x200c0d(0x18e))/0xb)+-parseInt(_0x200c0d(0x1c0))/0xc;if(_0x30df11===_0x537ae3)break;else _0x1e65da['push'](_0x1e65da['shift']());}catch(_0x59baaf){_0x1e65da['push'](_0x1e65da['shift']());}}}(a65_0x14fd,0xa33dd));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=a65_0x455dc5(0x195);export function getServiceRegistryPath(_0x5db5a0={}){const _0x327f0c=a65_0x455dc5;return resolve(_0x5db5a0['homeDir']??homedir(),PRODUCT_CONFIG[_0x327f0c(0x1a9)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xff6c91={}){const _0x291652=a65_0x455dc5,_0x50874e=getServiceRegistryPath(_0xff6c91);if(!existsSync(_0x50874e))return emptyServiceRegistry();try{const _0x22db11=readFileSync(_0x50874e,_0x291652(0x1b0));if(!_0x22db11['trim']())return emptyServiceRegistry();const _0x15c750=JSON['parse'](_0x22db11);if(_0x15c750[_0x291652(0x1cb)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation']('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x15c750[_0x291652(0x1cb)]),_0x291652(0x1d5)+_0x50874e+'.');if(!Array[_0x291652(0x1d1)](_0x15c750[_0x291652(0x1bc)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x15c750[_0x291652(0x18b)],'services':_0x15c750[_0x291652(0x1bc)]};}catch(_0x2977b5){if(_0x2977b5 instanceof Error&&_0x2977b5['name']===_0x291652(0x1b9))throw _0x2977b5;throw CliErrors[_0x291652(0x191)](_0x291652(0x1ca)+_0x50874e,_0x291652(0x1b5));}}export function writeServiceRegistry(_0x3df8b3,_0x436716={}){const _0x164dbb=a65_0x455dc5,_0x3f1de4=getServiceRegistryPath(_0x436716),_0x1f71cb=dirname(_0x3f1de4);!existsSync(_0x1f71cb)&&mkdirSync(_0x1f71cb,{'recursive':!![]});const _0x31ad96=_0x3f1de4+_0x164dbb(0x19e);try{writeFileSync(_0x31ad96,JSON[_0x164dbb(0x1cf)](_0x3df8b3,null,0x2)+'\x0a',{'encoding':_0x164dbb(0x1b0),'mode':0x180}),renameSync(_0x31ad96,_0x3f1de4);}catch(_0x5091de){try{unlinkSync(_0x31ad96);}catch{}if(_0x5091de?.[_0x164dbb(0x1b7)]===_0x164dbb(0x1a6))throw CliErrors[_0x164dbb(0x191)](_0x164dbb(0x1c7)+_0x3f1de4);throw _0x5091de;}return _0x3f1de4;}export function loadServiceManifestFromFile(_0x501bf1){const _0x4e1741=a65_0x455dc5,_0x329578=resolve(_0x501bf1);if(!existsSync(_0x329578))throw CliErrors[_0x4e1741(0x191)](_0x4e1741(0x1aa)+_0x501bf1);let _0x3ca0ba;const _0xf779b9=readFileSync(_0x329578,_0x4e1741(0x1b0));try{_0x3ca0ba=JSON[_0x4e1741(0x1ad)](_0xf779b9);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x501bf1,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x2b423a=sha256(_0xf779b9),_0x98af76=extractLoadedServiceManifests(_0x3ca0ba,_0x2b423a),_0x4776eb=aggregateValidationReports(_0x98af76),_0x59a0ed=_0x98af76[0x0];return{'filePath':_0x329578,'hash':_0x2b423a,'kind':isServiceRegistryLike(_0x3ca0ba)?_0x4e1741(0x197):_0x4e1741(0x1ce),'manifest':_0x59a0ed?.[_0x4e1741(0x1ce)]??_0x3ca0ba,'report':_0x4776eb,'normalizedManifest':_0x98af76[_0x4e1741(0x1a1)]===0x1?_0x59a0ed?.['normalizedManifest']:undefined,'manifests':_0x98af76};}export function importServiceManifest(_0x1c2ae0,_0x57a74d={}){const _0x41ad8b=a65_0x455dc5,_0x25b795=loadServiceManifestFromFile(_0x1c2ae0);if(!_0x25b795[_0x41ad8b(0x19f)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x25b795[_0x41ad8b(0x19f)]),_0x41ad8b(0x1ae));if(_0x25b795['manifests'][_0x41ad8b(0x1a1)]===0x0)throw CliErrors[_0x41ad8b(0x191)](_0x41ad8b(0x18a),_0x41ad8b(0x1c5));const _0x3bb282=readServiceRegistry(_0x57a74d),_0x5b451a=(_0x57a74d[_0x41ad8b(0x19b)]??(()=>new Date()))()['toISOString'](),_0xba5ab2=[];let _0xb1ca3d=0x0,_0x451527=0x0;for(const _0x3993a4 of _0x25b795['manifests']){if(!_0x3993a4[_0x41ad8b(0x1ac)])continue;const _0x32bb3b=_0x3993a4['normalizedManifest'][_0x41ad8b(0x1d2)][_0x41ad8b(0x1b7)],_0x153a8b={'serviceCode':_0x32bb3b,'version':_0x3993a4[_0x41ad8b(0x1ac)]['version'],'importedAt':_0x5b451a,'source':{'type':_0x41ad8b(0x18d),'path':_0x25b795[_0x41ad8b(0x18f)],'hash':_0x3993a4[_0x41ad8b(0x1a2)]},'manifest':_0x3993a4[_0x41ad8b(0x1ce)],'normalizedManifest':_0x3993a4['normalizedManifest']},_0xad0a59=_0x3bb282['services'][_0x41ad8b(0x1c1)](_0x308624=>_0x308624[_0x41ad8b(0x1dc)]===_0x32bb3b);_0xad0a59>=0x0?(_0x3bb282[_0x41ad8b(0x1bc)][_0xad0a59]=_0x153a8b,_0x451527++):(_0x3bb282[_0x41ad8b(0x1bc)][_0x41ad8b(0x194)](_0x153a8b),_0xb1ca3d++),_0xba5ab2[_0x41ad8b(0x194)](_0x153a8b);}_0x3bb282[_0x41ad8b(0x1bc)][_0x41ad8b(0x1db)]((_0x5b873e,_0x44d843)=>_0x5b873e[_0x41ad8b(0x1dc)][_0x41ad8b(0x1cd)](_0x44d843[_0x41ad8b(0x1dc)])),_0x3bb282['updatedAt']=_0x5b451a;const _0x4e46ee=writeServiceRegistry(_0x3bb282,_0x57a74d);return{'registryPath':_0x4e46ee,'entry':_0xba5ab2[0x0],'replaced':_0xba5ab2[_0x41ad8b(0x1a1)]===0x1?_0x451527===0x1:_0x451527>0x0,'entries':_0xba5ab2,'imported':_0xb1ca3d,'updated':_0x451527,'serviceCount':_0x3bb282[_0x41ad8b(0x1bc)]['length']};}export function exportServiceManifest(_0x19e129,_0x3cb815,_0x1984f4={}){const _0x191ea2=a65_0x455dc5,_0x423be4=getServiceRegistryPath(_0x1984f4),_0x32c37f=getLocalServiceEntry(_0x19e129,_0x1984f4);if(!_0x32c37f)throw CliErrors[_0x191ea2(0x191)](_0x191ea2(0x1d7)+_0x19e129,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x46e5f6=resolve(_0x3cb815),_0x4a55d7=dirname(_0x46e5f6);return!existsSync(_0x4a55d7)&&mkdirSync(_0x4a55d7,{'recursive':!![]}),writeFileSync(_0x46e5f6,JSON[_0x191ea2(0x1cf)](_0x32c37f[_0x191ea2(0x1ce)],null,0x2)+'\x0a',{'encoding':_0x191ea2(0x1b0),'mode':0x180}),{'registryPath':_0x423be4,'filePath':_0x46e5f6,'entry':_0x32c37f};}export function removeServiceManifest(_0x5a5f5e,_0x4460bb={}){const _0x1fe659=a65_0x455dc5,_0x4a2582=readServiceRegistry(_0x4460bb),_0x4c7d5f=_0x5a5f5e[_0x1fe659(0x1d8)](),_0x533e00=_0x4a2582[_0x1fe659(0x1bc)]['findIndex'](_0x365101=>_0x365101[_0x1fe659(0x1dc)]===_0x4c7d5f);if(_0x533e00<0x0)throw CliErrors[_0x1fe659(0x191)](_0x1fe659(0x1d7)+_0x4c7d5f,_0x1fe659(0x1b8));const [_0x487ef8]=_0x4a2582[_0x1fe659(0x1bc)]['splice'](_0x533e00,0x1),_0x457285=(_0x4460bb[_0x1fe659(0x19b)]??(()=>new Date()))()[_0x1fe659(0x1d6)]();_0x4a2582[_0x1fe659(0x18b)]=_0x457285;const _0x59b3a9=writeServiceRegistry(_0x4a2582,_0x4460bb);return{'registryPath':_0x59b3a9,'entry':_0x487ef8,'serviceCount':_0x4a2582[_0x1fe659(0x1bc)][_0x1fe659(0x1a1)]};}export function listLocalServices(_0x2f68d4={}){const _0x222dfc=a65_0x455dc5;return readServiceRegistry(_0x2f68d4)[_0x222dfc(0x1bc)];}export function getLocalServiceEntry(_0x270e24,_0x2bd6f2={}){const _0x4a30db=a65_0x455dc5;return readServiceRegistry(_0x2bd6f2)[_0x4a30db(0x1bc)][_0x4a30db(0x1a7)](_0x57147f=>_0x57147f[_0x4a30db(0x1dc)]===_0x270e24[_0x4a30db(0x1d8)]());}export function listLocalServiceTrees(_0x4a4ec0={}){const _0x537999=a65_0x455dc5;return readServiceRegistry(_0x4a4ec0)[_0x537999(0x1bc)][_0x537999(0x1ba)](_0x309ebc=>_0x309ebc[_0x537999(0x1ac)]);}export function inspectServiceRegistry(_0x46043b={}){const _0x57bcc6=a65_0x455dc5,_0x4c52de=getServiceRegistryPath(_0x46043b);if(!existsSync(_0x4c52de))return emptyServiceRegistryInspection(_0x4c52de,'missing',![]);try{const _0x11fd45=readFileSync(_0x4c52de,_0x57bcc6(0x1b0));if(!_0x11fd45['trim']())return emptyServiceRegistryInspection(_0x4c52de,'empty',!![]);const _0xb1808f=JSON[_0x57bcc6(0x1ad)](_0x11fd45);if(_0xb1808f['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4c52de,_0x57bcc6(0x189),!![]),'schemaVersion':_0xb1808f['schemaVersion'],'message':_0x57bcc6(0x1b3)+String(_0xb1808f[_0x57bcc6(0x1cb)])};if(!Array[_0x57bcc6(0x1d1)](_0xb1808f[_0x57bcc6(0x1bc)]))return{...emptyServiceRegistryInspection(_0x4c52de,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb1808f[_0x57bcc6(0x18b)],'message':_0x57bcc6(0x19d)};const _0x62c035=_0xb1808f['services'][_0x57bcc6(0x1ba)](summarizeLocalServiceEntry);return{'registryPath':_0x4c52de,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb1808f[_0x57bcc6(0x18b)],'serviceCount':_0x62c035[_0x57bcc6(0x1a1)],'commandCount':_0x62c035[_0x57bcc6(0x1a0)]((_0x54f64a,_0x26d5f8)=>_0x54f64a+_0x26d5f8[_0x57bcc6(0x1b2)],0x0),'services':_0x62c035};}catch(_0x360867){return{...emptyServiceRegistryInspection(_0x4c52de,_0x57bcc6(0x189),!![]),'message':_0x360867 instanceof Error?_0x360867[_0x57bcc6(0x1a3)]:String(_0x360867)};}}export function formatValidationFailure(_0x11864f){const _0x28b1a6=a65_0x455dc5,_0x4bf345=_0x11864f[_0x28b1a6(0x1c3)][_0x28b1a6(0x1ba)](_0x5467e2=>_0x5467e2[_0x28b1a6(0x18c)]+':\x20'+_0x5467e2['message']);return _0x28b1a6(0x1c6)+_0x4bf345[_0x28b1a6(0x1be)]('\x0a');}function extractLoadedServiceManifests(_0xc3c781,_0x4871b7){const _0x207925=a65_0x455dc5;if(!isServiceRegistryLike(_0xc3c781)){const _0x5092e1=_0xc3c781,{manifest:_0x260bad,errors:_0x279fcc}=adaptServiceTreeManifestForLegacyFramework(_0x5092e1),_0x1d9c5d=validateServiceTreeManifest(_0x260bad),_0x303681=mergeValidationErrors(_0x1d9c5d,_0x279fcc);return[{'manifest':_0x5092e1,'report':_0x303681,'normalizedManifest':_0x303681['ok']?normalizeServiceTreeManifest(_0x260bad):undefined,'sourceHash':_0x4871b7}];}return _0xc3c781[_0x207925(0x1bc)][_0x207925(0x1ba)]((_0x164e27,_0x4079b8)=>{const _0x4a189f=_0x207925,_0x4d7569=isObjectRecord(_0x164e27)?_0x164e27[_0x4a189f(0x1ce)]:undefined,{manifest:_0x35cff6,errors:_0x1ef7c0}=adaptServiceTreeManifestForLegacyFramework(_0x4d7569),_0xfc0f57=validateServiceTreeManifest(_0x35cff6),_0x2a4f90=mergeValidationErrors(_0xfc0f57,_0x1ef7c0),_0x2b74e8=isObjectRecord(_0x164e27)&&typeof _0x164e27['serviceCode']===_0x4a189f(0x199)?_0x164e27[_0x4a189f(0x1dc)]:undefined;return{'manifest':_0x4d7569,'report':_0x2a4f90,'normalizedManifest':_0x2a4f90['ok']?normalizeServiceTreeManifest(_0x35cff6):undefined,'sourceHash':sha256(JSON[_0x4a189f(0x1cf)](_0x4d7569,null,0x2)+'\x0a'),'registryIndex':_0x4079b8,'registryServiceCode':_0x2b74e8};});}function mergeValidationErrors(_0xb1255e,_0x2d101d){const _0x4cb069=a65_0x455dc5,_0x3b1ee5=_0xb1255e[_0x4cb069(0x1c3)]['map'](_0x4336e4=>_0x4336e4[_0x4cb069(0x1a3)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x4336e4,'message':_0x4cb069(0x1a5)}:_0x4336e4),_0x5f4ce8=[..._0x2d101d,..._0x3b1ee5];return{'ok':_0x5f4ce8[_0x4cb069(0x1a1)]===0x0,'errors':_0x5f4ce8,'warnings':_0xb1255e[_0x4cb069(0x1a4)]};}function aggregateValidationReports(_0x49a907){const _0x53174b=a65_0x455dc5,_0x156e02=_0x49a907[_0x53174b(0x1c2)](_0x3b22b5=>_0x3b22b5[_0x53174b(0x1d4)]===undefined?_0x3b22b5[_0x53174b(0x19f)][_0x53174b(0x1c3)]:_0x3b22b5[_0x53174b(0x19f)]['errors'][_0x53174b(0x1ba)](_0x3ad1db=>({..._0x3ad1db,'path':prefixRegistryIssuePath(_0x3b22b5[_0x53174b(0x1d4)],_0x3ad1db[_0x53174b(0x18c)])}))),_0x1a23d6=_0x49a907[_0x53174b(0x1c2)](_0x4c6b3d=>_0x4c6b3d[_0x53174b(0x1d4)]===undefined?_0x4c6b3d[_0x53174b(0x19f)][_0x53174b(0x1a4)]:_0x4c6b3d[_0x53174b(0x19f)][_0x53174b(0x1a4)]['map'](_0x4ab66d=>({..._0x4ab66d,'path':prefixRegistryIssuePath(_0x4c6b3d['registryIndex'],_0x4ab66d[_0x53174b(0x18c)])})));return{'ok':_0x156e02[_0x53174b(0x1a1)]===0x0,'errors':_0x156e02,'warnings':_0x1a23d6};}function prefixRegistryIssuePath(_0x13513e,_0x55ed73){const _0x597331=a65_0x455dc5;if(_0x55ed73==='$')return'$.services['+_0x13513e+_0x597331(0x1bb);if(_0x55ed73['startsWith']('$.'))return _0x597331(0x1ab)+_0x13513e+_0x597331(0x1bb)+_0x55ed73[_0x597331(0x1a8)](0x1);if(_0x55ed73[_0x597331(0x1b6)]('$['))return _0x597331(0x1ab)+_0x13513e+_0x597331(0x1bb)+_0x55ed73[_0x597331(0x1a8)](0x1);return _0x597331(0x1ab)+_0x13513e+'].manifest.'+_0x55ed73;}function isServiceRegistryLike(_0x54f221){const _0x138fa9=a65_0x455dc5;return isObjectRecord(_0x54f221)&&_0x54f221[_0x138fa9(0x1cb)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x138fa9(0x1d1)](_0x54f221['services']);}function isObjectRecord(_0x3e989f){const _0x132c7c=a65_0x455dc5;return Boolean(_0x3e989f)&&typeof _0x3e989f===_0x132c7c(0x1d9)&&!Array['isArray'](_0x3e989f);}function emptyServiceRegistryInspection(_0x587deb,_0x9fb249,_0x28d871){return{'registryPath':_0x587deb,'exists':_0x28d871,'status':_0x9fb249,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5e9055){const _0x6fc137=a65_0x455dc5,_0x5a03de=_0x5e9055[_0x6fc137(0x1ac)],_0x34347f=_0x5a03de['commands'][_0x6fc137(0x1ba)](_0x48b613=>({'path':_0x48b613[_0x6fc137(0x1bd)],'description':_0x48b613[_0x6fc137(0x1dd)],'risk':_0x48b613[_0x6fc137(0x1cc)],'targetKind':_0x48b613[_0x6fc137(0x196)][_0x6fc137(0x1c4)],'targetCommand':_0x48b613['target']['command']}));return{'serviceCode':_0x5e9055['serviceCode'],'name':_0x5a03de[_0x6fc137(0x1d2)][_0x6fc137(0x1b4)],'description':_0x5a03de[_0x6fc137(0x1d2)][_0x6fc137(0x1dd)],'version':_0x5e9055[_0x6fc137(0x190)],'importedAt':_0x5e9055[_0x6fc137(0x1b1)],'source':_0x5e9055[_0x6fc137(0x1c9)],'commandCount':_0x34347f['length'],'commands':_0x34347f};}function a65_0x14fd(){const _0x2bfa38=['5rDriMF','3346782cWAwRI','push','service.json','target','registry','3028riUISs','string','6060SVQSvv','now','7955tnXDpL','services\x20must\x20be\x20an\x20array','.tmp','report','reduce','length','sourceHash','message','warnings','bff\x20target\x20requires\x20functionName.','ENOENT','find','slice','homeDirName','Service\x20manifest\x20file\x20not\x20found:\x20','$.services[','normalizedManifest','parse','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','352890BUoTAE','utf8','importedAt','commandCount','Unsupported\x20schemaVersion:\x20','name','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','startsWith','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','CliError','map','].manifest','services','cliPath','join','13194lUvWne','13780740GmwPmQ','findIndex','flatMap','errors','kind','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','Cannot\x20write\x20service\x20registry:\x20','4184HKClrX','source','Invalid\x20service\x20registry\x20JSON:\x20','schemaVersion','risk','localeCompare','manifest','stringify','224446mUcJAP','isArray','service','digest','registryIndex','Remove\x20or\x20migrate\x20','toISOString','Local\x20service\x20not\x20found:\x20','trim','object','28wwtQRX','sort','serviceCode','description','invalid','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','updatedAt','path','file','14762HTxpNJ','filePath','version','validation'];a65_0x14fd=function(){return _0x2bfa38;};return a65_0x14fd();}function sha256(_0xd5f0ce){const _0x2e3248=a65_0x455dc5;return createHash('sha256')['update'](_0xd5f0ce)[_0x2e3248(0x1d3)]('hex');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a66_0x56d9c9=a66_0x12e9;(function(_0x4a9888,_0x11468a){const _0x2eef04=a66_0x12e9,_0x4fa228=_0x4a9888();while(!![]){try{const _0xb5ae7a=-parseInt(_0x2eef04(0xf9))/0x1+-parseInt(_0x2eef04(0xd7))/0x2*(parseInt(_0x2eef04(0xe1))/0x3)+-parseInt(_0x2eef04(0xd8))/0x4*(parseInt(_0x2eef04(0xf4))/0x5)+-parseInt(_0x2eef04(0xd9))/0x6+parseInt(_0x2eef04(0xd6))/0x7*(parseInt(_0x2eef04(0xf7))/0x8)+parseInt(_0x2eef04(0xd5))/0x9*(parseInt(_0x2eef04(0xf8))/0xa)+parseInt(_0x2eef04(0xe2))/0xb*(parseInt(_0x2eef04(0xdb))/0xc);if(_0xb5ae7a===_0x11468a)break;else _0x4fa228['push'](_0x4fa228['shift']());}catch(_0x24626d){_0x4fa228['push'](_0x4fa228['shift']());}}}(a66_0x1459,0x2b338));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a66_0x12e9(_0x1d3ef1,_0x3d12c4){_0x1d3ef1=_0x1d3ef1-0xd4;const _0x14593b=a66_0x1459();let _0x12e951=_0x14593b[_0x1d3ef1];return _0x12e951;}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a66_0x1459(){const _0x5daa30=['12xfWQvT','type','rendered','files','target','skillDir','30813VYqXkI','5768455nLWaCT','skill','isSymbolicLink','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Skill\x20directory\x20already\x20exists:\x20','WRITE','isDirectory','Created\x20local\x20Skill\x20draft\x20','force','skillName','map','Refusing\x20to\x20overwrite\x20symlink:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','validation','str','path','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','5yHWudS','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','utf8','1288KCFiOk','1213640WiNvLa','52358lhRHvI','create','9drrDnq','406NTedfr','4NAlxVs','609084HDOQmD','1517904aklQqX','name'];a66_0x1459=function(){return _0x5daa30;};return a66_0x1459();}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a66_0x56d9c9(0xe3),'command':a66_0x56d9c9(0xd4),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x519acd){const _0x1bd48b=a66_0x56d9c9,_0x50dc5a=buildSkillCreatePlan(_0x519acd[_0x1bd48b(0xf0)]('name'),_0x519acd['str']('type'),_0x519acd[_0x1bd48b(0xf0)](_0x1bd48b(0xdf)));return{'method':_0x1bd48b(0xe7),'url':_0x50dc5a[_0x1bd48b(0xe0)],'body':{'skillName':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xeb)],'type':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xdc)],'selfContained':!![],'files':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xde)]['map'](_0x602499=>_0x602499[_0x1bd48b(0xf1)])},'description':_0x1bd48b(0xf5)};},async 'execute'(_0x55759c){const _0x42168d=a66_0x56d9c9,_0x4a1b5d=buildSkillCreatePlan(_0x55759c[_0x42168d(0xf0)](_0x42168d(0xda)),_0x55759c[_0x42168d(0xf0)](_0x42168d(0xdc)),_0x55759c[_0x42168d(0xf0)](_0x42168d(0xdf)));return writeSkillDraft(_0x4a1b5d,_0x55759c['bool'](_0x42168d(0xea))),{'ok':!![],'data':{'skillName':_0x4a1b5d[_0x42168d(0xdd)][_0x42168d(0xeb)],'type':_0x4a1b5d['rendered'][_0x42168d(0xdc)],'dir':_0x4a1b5d[_0x42168d(0xe0)],'files':_0x4a1b5d['rendered'][_0x42168d(0xde)][_0x42168d(0xec)](_0x283975=>_0x283975[_0x42168d(0xf1)])},'message':_0x42168d(0xe9)+_0x4a1b5d[_0x42168d(0xdd)]['skillName']};}};function buildSkillCreatePlan(_0x181cfa,_0x49ec8f,_0x5c5767){const _0x2300dc=a66_0x56d9c9,_0x55e09b=_0x49ec8f['trim'](),_0x447590=renderSkillTemplate({'skillName':_0x181cfa,'type':_0x55e09b});!_0x55e09b&&writeCliSideChannelLine(_0x2300dc(0xf2));const _0x1d06c3=resolve(normalizeSkillTarget(_0x5c5767));return{'rendered':_0x447590,'targetRoot':_0x1d06c3,'skillDir':resolve(_0x1d06c3,_0x447590[_0x2300dc(0xeb)])};}function normalizeSkillTarget(_0x60e08c){return(_0x60e08c||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x428a24,_0xe98993){const _0x433cd0=a66_0x56d9c9;if(existsSync(_0x428a24[_0x433cd0(0xe0)])){const _0x29a27b=lstatSync(_0x428a24[_0x433cd0(0xe0)]);if(!_0x29a27b[_0x433cd0(0xe8)]()||_0x29a27b[_0x433cd0(0xe4)]())throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xe5)+_0x428a24[_0x433cd0(0xe0)]);if(!_0xe98993)throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xe6)+_0x428a24[_0x433cd0(0xe0)],_0x433cd0(0xee));}for(const _0x785306 of _0x428a24['rendered'][_0x433cd0(0xde)]){const _0x18c4b6=resolve(_0x428a24[_0x433cd0(0xe0)],_0x785306[_0x433cd0(0xf1)]),_0x5b4eb9=dirname(_0x18c4b6);mkdirSync(_0x5b4eb9,{'recursive':!![]});if(existsSync(_0x18c4b6)&&lstatSync(_0x18c4b6)['isSymbolicLink']())throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xed)+_0x18c4b6);writeFileSync(_0x18c4b6,_0x785306[_0x433cd0(0xf3)],_0x433cd0(0xf6));}}
|