@lovrabet/lovrabet-cli 2.3.4 → 2.3.5-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +21 -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
|
|
1
|
+
function a55_0x2f87(){const _0x3cbcbc=['validation','page','Page\x20size\x20from\x201\x20to\x20100','1071076FrZEWv','role','number','trim','Page\x20number','string','Runtime\x20role\x20type','15530kGiBPC','appCode','runtime','toUpperCase','Fuzzy\x20role-name\x20filter','1610632oPvccP','map','3978216HzhSmt','length','isSafeInteger','Invalid\x20runtime\x20role\x20type:\x20','14uQxUHS','num','read','name','str','552fxnsaN','10403530IJalNM','items','400945vlkHMT','27204fErycj','type','56BEycOK','pagesize'];a55_0x2f87=function(){return _0x3cbcbc;};return a55_0x2f87();}const a55_0x1e427d=a55_0x4001;(function(_0x5b2740,_0x1e542e){const _0x230512=a55_0x4001,_0x10344f=_0x5b2740();while(!![]){try{const _0x5d47d7=parseInt(_0x230512(0x1a7))/0x1+parseInt(_0x230512(0x1af))/0x2+parseInt(_0x230512(0x1a8))/0x3*(parseInt(_0x230512(0x1aa))/0x4)+parseInt(_0x230512(0x194))/0x5*(parseInt(_0x230512(0x1a4))/0x6)+parseInt(_0x230512(0x19f))/0x7*(parseInt(_0x230512(0x199))/0x8)+-parseInt(_0x230512(0x19b))/0x9+-parseInt(_0x230512(0x1a5))/0xa;if(_0x5d47d7===_0x1e542e)break;else _0x10344f['push'](_0x10344f['shift']());}catch(_0x16b741){_0x10344f['push'](_0x10344f['shift']());}}}(a55_0x2f87,0x41c9c));function a55_0x4001(_0x23260c,_0x413ba3){_0x23260c=_0x23260c-0x194;const _0x2f87e4=a55_0x2f87();let _0x4001cc=_0x2f87e4[_0x23260c];return _0x4001cc;}import{listRuntimeAppRoles}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';export const roleList={'service':a55_0x1e427d(0x1b0),'command':'list','description':'List\x20runtime\x20roles\x20for\x20the\x20current\x20app','risk':a55_0x1e427d(0x1a1),'flags':[{'name':a55_0x1e427d(0x1a9),'type':'string','enum':RUNTIME_ROLE_TYPES,'description':a55_0x1e427d(0x1b5)},{'name':a55_0x1e427d(0x1a2),'type':a55_0x1e427d(0x1b4),'description':a55_0x1e427d(0x198)},{'name':a55_0x1e427d(0x1ad),'type':a55_0x1e427d(0x1b1),'default':0x1,'description':a55_0x1e427d(0x1b3)},{'name':'pagesize','type':a55_0x1e427d(0x1b1),'default':0x64,'description':a55_0x1e427d(0x1ae)}],async 'validate'(_0x32f6ac){const _0x31e551=a55_0x1e427d,_0x5c699a=_0x32f6ac['str'](_0x31e551(0x1a9))[_0x31e551(0x197)]();if(_0x5c699a&&!RUNTIME_ROLE_TYPES['includes'](_0x5c699a))throw CliErrors[_0x31e551(0x1ac)](_0x31e551(0x19e)+_0x5c699a+'.');const _0xf1cc2e=_0x32f6ac[_0x31e551(0x1a0)](_0x31e551(0x1ad),0x1),_0x2a66fa=_0x32f6ac[_0x31e551(0x1a0)]('pagesize',0x64);if(!Number[_0x31e551(0x19d)](_0xf1cc2e)||_0xf1cc2e<0x1)throw CliErrors['validation']('--page\x20must\x20be\x20a\x20positive\x20integer.');if(!Number[_0x31e551(0x19d)](_0x2a66fa)||_0x2a66fa<0x1||_0x2a66fa>0x64)throw CliErrors['validation']('--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');},async 'execute'(_0x2ece22){const _0x550e6a=a55_0x1e427d,_0xecd4d9=_0x2ece22[_0x550e6a(0x1a3)](_0x550e6a(0x1a9))[_0x550e6a(0x197)](),_0x32579e=_0x2ece22[_0x550e6a(0x1a3)](_0x550e6a(0x1a2))[_0x550e6a(0x1b2)](),_0x9b5c5a=_0x2ece22[_0x550e6a(0x1a0)]('page',0x1),_0x238082=_0x2ece22[_0x550e6a(0x1a0)](_0x550e6a(0x1ab),0x64);if(_0xecd4d9){const _0x2e8eed=(await listAllRuntimeRoles(_0x2ece22[_0x550e6a(0x195)],{..._0x32579e?{'roleName':_0x32579e}:{}}))['filter'](_0x2bb2c8=>_0x2bb2c8['roleType']===_0xecd4d9),_0x226324=(_0x9b5c5a-0x1)*_0x238082;return{'ok':!![],'data':{'scope':_0x550e6a(0x196),'roles':_0x2e8eed['slice'](_0x226324,_0x226324+_0x238082)[_0x550e6a(0x19a)](projectRuntimeRole),'paging':{'currentPage':_0x9b5c5a,'pageSize':_0x238082,'totalCount':_0x2e8eed[_0x550e6a(0x19c)]}}};}const _0xa4d884=await listRuntimeAppRoles(_0x2ece22[_0x550e6a(0x195)],{..._0x32579e?{'roleName':_0x32579e}:{},'currentPage':_0x9b5c5a,'pageSize':_0x238082});return{'ok':!![],'data':{'scope':_0x550e6a(0x196),'roles':_0xa4d884[_0x550e6a(0x1a6)][_0x550e6a(0x19a)](projectRuntimeRole),'paging':_0xa4d884['paging']}};}};
|
|
@@ -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_0x6121d6=a56_0x596c;(function(_0x28ea53,_0x180ed3){const _0x3ff406=a56_0x596c,_0x290ced=_0x28ea53();while(!![]){try{const _0x22bc62=parseInt(_0x3ff406(0x1d7))/0x1+parseInt(_0x3ff406(0x200))/0x2+parseInt(_0x3ff406(0x20b))/0x3+parseInt(_0x3ff406(0x1de))/0x4*(-parseInt(_0x3ff406(0x1d3))/0x5)+-parseInt(_0x3ff406(0x1ea))/0x6*(parseInt(_0x3ff406(0x1f1))/0x7)+-parseInt(_0x3ff406(0x1f3))/0x8*(parseInt(_0x3ff406(0x20e))/0x9)+parseInt(_0x3ff406(0x1ca))/0xa;if(_0x22bc62===_0x180ed3)break;else _0x290ced['push'](_0x290ced['shift']());}catch(_0x15a02d){_0x290ced['push'](_0x290ced['shift']());}}}(a56_0x21e3,0xb5f99));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a56_0x21e3(){const _0x73b744=['Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','OWNER','Runtime\x20numeric\x20userId',',\x20found\x20','length','num','3161753QGmKJd','permitCount','8mYzAaE','--role-code\x20must\x20not\x20be\x20blank.','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','\x20was\x20not\x20found\x20in\x20app\x20','Runtime\x20role\x20','paging','\x22\x20is\x20ambiguous.','code','appCode','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','validation','927450cJKIbo','string','role','map','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','isSafeInteger','trim','\x20built-in\x20runtime\x20role\x20','remark','Missing\x20runtime\x20role\x20reference.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','138048vmkIKw','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','push','12456621LYzCgV','includes','roleType','--role-code\x20cannot\x20exceed\x2064\x20characters.','\x20is\x20already\x20in\x20runtime\x20role\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','totalCount','Cannot\x20','userList','test','User\x20','26110420RqvNrY','userName','userId','expect-user-count','Runtime\x20user\x20','flag','user','CUSTOM','str','1287110cjskrj','join','find','number','1135958QKKqDK','filter','Runtime\x20role\x20name\x20\x22','ADMIN','applyUserList','user-add','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','12TCBYzp','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','userCount','Pass\x20one\x20role\x20ID:\x20','items','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','role-code','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','roleName','USER','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','18EFYdiz'];a56_0x21e3=function(){return _0x73b744;};return a56_0x21e3();}import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x6121d6(0x1da),a56_0x6121d6(0x1e8),a56_0x6121d6(0x1ec),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a56_0x6121d6(0x1da),a56_0x6121d6(0x1e8),a56_0x6121d6(0x1ec)];export const ROLE_ID_FLAG={'name':'id','type':a56_0x6121d6(0x1d6),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':a56_0x6121d6(0x202),'type':a56_0x6121d6(0x201),'required':!![],'description':a56_0x6121d6(0x1dd)};export const ROLE_CODE_FLAG={'name':a56_0x6121d6(0x1e5),'type':a56_0x6121d6(0x201),'description':a56_0x6121d6(0x20c)};export const USER_ID_FLAG={'name':a56_0x6121d6(0x1d0),'type':a56_0x6121d6(0x201),'required':!![],'description':a56_0x6121d6(0x1ed)};export const EXPECT_USER_COUNT_FLAG={'name':a56_0x6121d6(0x1cd),'type':a56_0x6121d6(0x1d6),'description':a56_0x6121d6(0x204)};function a56_0x596c(_0x479d24,_0xe653f1){_0x479d24=_0x479d24-0x1c5;const _0x21e3ce=a56_0x21e3();let _0x596cbf=_0x21e3ce[_0x479d24];return _0x596cbf;}export function isBuiltinRuntimeRole(_0xac7f5){const _0x36e61c=a56_0x6121d6;return BUILTIN_ROLE_TYPES[_0x36e61c(0x20f)](_0xac7f5);}export function assertCustomRuntimeRole(_0x4f5a02,_0x2784c6){const _0x16808b=a56_0x6121d6;if(_0x4f5a02[_0x16808b(0x210)]!==_0x16808b(0x1d1))throw CliErrors[_0x16808b(0x1ff)](_0x16808b(0x1c6)+_0x2784c6+_0x16808b(0x207)+_0x4f5a02[_0x16808b(0x1e7)]+'\x20('+_0x4f5a02[_0x16808b(0x210)]+').',_0x16808b(0x1f5));}export function projectRuntimeRole(_0x5e25c9){const _0xa45ca9=a56_0x6121d6;return{'id':_0x5e25c9['id'],'roleCode':_0x5e25c9['roleCode'],'roleName':_0x5e25c9['roleName'],'roleType':_0x5e25c9[_0xa45ca9(0x210)],'remark':_0x5e25c9[_0xa45ca9(0x208)],'userCount':_0x5e25c9[_0xa45ca9(0x1e1)]??0x0,'permitCount':_0x5e25c9[_0xa45ca9(0x1f2)]??0x0,'builtin':isBuiltinRuntimeRole(_0x5e25c9[_0xa45ca9(0x210)])};}export function readOptionalRuntimeRoleCode(_0x2f1364){const _0x10a87d=a56_0x6121d6,_0x1bcc16=_0x2f1364[_0x10a87d(0x1cf)]('role-code');if(_0x1bcc16===undefined||_0x1bcc16===null)return undefined;const _0x3ed5f3=String(_0x1bcc16)[_0x10a87d(0x206)]();if(!_0x3ed5f3)throw CliErrors[_0x10a87d(0x1ff)](_0x10a87d(0x1f4));if(_0x3ed5f3[_0x10a87d(0x1ef)]>0x40)throw CliErrors[_0x10a87d(0x1ff)](_0x10a87d(0x211));return _0x3ed5f3;}export async function getRuntimeRoleById(_0x17c164,_0x2b7b30){const _0x384a37=a56_0x6121d6;if(!Number[_0x384a37(0x205)](_0x2b7b30)||_0x2b7b30<=0x0)throw CliErrors[_0x384a37(0x1ff)](_0x384a37(0x1f7));const _0x4fd8f3=(await listAllRuntimeRoles(_0x17c164))[_0x384a37(0x1d8)](_0x17c67b=>_0x17c67b['id']===_0x2b7b30&&(!_0x17c67b[_0x384a37(0x1fd)]||_0x17c67b[_0x384a37(0x1fd)]===_0x17c164));if(_0x4fd8f3[_0x384a37(0x1ef)]!==0x1)throw CliErrors[_0x384a37(0x1ff)]('Runtime\x20role\x20id\x20'+_0x2b7b30+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x17c164+'.',_0x384a37(0x1e9));return _0x4fd8f3[0x0];}export async function listAllRuntimeRoles(_0x13fbc0,_0x39772b={}){const _0x5d0bb3=a56_0x6121d6,_0x57945d=0x64,_0x58c728=[];for(let _0x48d4bf=0x1;;_0x48d4bf+=0x1){const _0x295815=await listRuntimeAppRoles(_0x13fbc0,{..._0x39772b[_0x5d0bb3(0x1e7)]?{'roleName':_0x39772b[_0x5d0bb3(0x1e7)]}:{},'currentPage':_0x48d4bf,'pageSize':_0x57945d});_0x58c728['push'](..._0x295815[_0x5d0bb3(0x1e3)]);if(_0x295815[_0x5d0bb3(0x1e3)][_0x5d0bb3(0x1ef)]<_0x57945d||_0x295815[_0x5d0bb3(0x1fa)]&&_0x58c728[_0x5d0bb3(0x1ef)]>=_0x295815[_0x5d0bb3(0x1fa)][_0x5d0bb3(0x1c5)])return _0x58c728;}}export async function resolveRuntimeRoleRef(_0x3b4c90,_0x5d301f){const _0x3539ee=a56_0x6121d6,_0x3c935a=_0x5d301f[_0x3539ee(0x206)]();if(!_0x3c935a)throw CliErrors[_0x3539ee(0x1ff)](_0x3539ee(0x209),'Pass\x20--role\x20<id|name>.');if(/^\d+$/[_0x3539ee(0x1c8)](_0x3c935a))return getRuntimeRoleById(_0x3b4c90,Number(_0x3c935a));const _0x1e95c5=(await listAllRuntimeRoles(_0x3b4c90))[_0x3539ee(0x1d8)](_0x2eee78=>_0x2eee78[_0x3539ee(0x1e7)]===_0x3c935a);if(_0x1e95c5[_0x3539ee(0x1ef)]===0x0)throw CliErrors[_0x3539ee(0x1ff)](_0x3539ee(0x1d9)+_0x3c935a+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0x3b4c90+'.',_0x3539ee(0x213));if(_0x1e95c5[_0x3539ee(0x1ef)]>0x1)throw CliErrors[_0x3539ee(0x1ff)](_0x3539ee(0x1d9)+_0x3c935a+_0x3539ee(0x1fb),_0x3539ee(0x1e2)+_0x1e95c5[_0x3539ee(0x203)](_0x279822=>_0x279822['id'])[_0x3539ee(0x1d4)](',\x20')+'.');return _0x1e95c5[0x0];}function parseRuntimeUserId(_0x315176){const _0x370cdc=a56_0x6121d6,_0x5d6473=_0x315176[_0x370cdc(0x206)](),_0x5a03f8=normalizePositiveSafeInteger(_0x5d6473);if(_0x5a03f8===undefined)throw CliErrors['validation'](_0x370cdc(0x1f6),'Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.');return _0x5a03f8;}export async function prepareRuntimeMemberMutation(_0x2af86a,_0x2927ad){const _0x12ccf8=a56_0x6121d6,_0xfc393d=await resolveRuntimeRoleRef(_0x2af86a[_0x12ccf8(0x1fd)],_0x2af86a[_0x12ccf8(0x1d2)](_0x12ccf8(0x202)));if(_0xfc393d[_0x12ccf8(0x210)]===_0x12ccf8(0x1ec))throw CliErrors[_0x12ccf8(0x1ff)](_0x12ccf8(0x1df),'Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x15f370=parseRuntimeUserId(_0x2af86a[_0x12ccf8(0x1d2)](_0x12ccf8(0x1d0))),_0x547412=(await listRuntimeRoleUsers(_0x2af86a[_0x12ccf8(0x1fd)]))[_0x12ccf8(0x203)](_0x53b71a=>({..._0x53b71a,'userList':[..._0x53b71a['userList']??[]],'applyUserList':[..._0x53b71a[_0x12ccf8(0x1db)]??[]]})),_0x4300ff=_0x547412[_0x12ccf8(0x1d5)](_0x1a4afc=>_0x1a4afc['id']===_0xfc393d['id']);if(!_0x4300ff)throw CliErrors['validation'](_0x12ccf8(0x1f9)+_0xfc393d['id']+_0x12ccf8(0x20a),_0x12ccf8(0x1e0));const _0x4a79ec=_0x4300ff['userList']['map'](_0xcc490=>_0xcc490[_0x12ccf8(0x1cc)]),_0x2c42a8=_0x2af86a['flag'](_0x12ccf8(0x1cd));if(_0x2c42a8!==undefined&&_0x2c42a8!==null&&_0x2c42a8!==''){const _0x3c1008=_0x2af86a[_0x12ccf8(0x1f0)](_0x12ccf8(0x1cd));if(!Number['isSafeInteger'](_0x3c1008)||_0x3c1008<0x0)throw CliErrors['validation'](_0x12ccf8(0x1e4));if(_0x4a79ec[_0x12ccf8(0x1ef)]!==_0x3c1008)throw CliErrors['validation'](_0x12ccf8(0x1e6)+_0x3c1008+_0x12ccf8(0x1ee)+_0x4a79ec[_0x12ccf8(0x1ef)]+'.',_0x12ccf8(0x1fe));}const _0x5b3acc=_0x4a79ec['includes'](_0x15f370),_0x64669=[];let _0x2ab965=!![];if(_0x2927ad===_0x12ccf8(0x1dc)){const _0x3cd0ee=await listRuntimeAppUsers(_0x2af86a[_0x12ccf8(0x1fd)]),_0x59a8a7=_0x3cd0ee[_0x12ccf8(0x1d8)](_0x5c6cd8=>Number(_0x5c6cd8[_0x12ccf8(0x1fc)])===_0x15f370);if(_0x59a8a7[_0x12ccf8(0x1ef)]!==0x1||!_0x59a8a7[0x0][_0x12ccf8(0x1cb)]?.['trim']())throw CliErrors[_0x12ccf8(0x1ff)](_0x12ccf8(0x1ce)+_0x15f370+_0x12ccf8(0x1f8)+_0x2af86a['appCode']+'.',_0x12ccf8(0x1eb));_0x5b3acc?(_0x2ab965=![],_0x64669[_0x12ccf8(0x20d)](_0x12ccf8(0x1c9)+_0x15f370+_0x12ccf8(0x212)+_0xfc393d['id']+'.')):_0x4300ff[_0x12ccf8(0x1c7)][_0x12ccf8(0x20d)]({'userId':_0x15f370,'username':_0x59a8a7[0x0][_0x12ccf8(0x1cb)]});}else!_0x5b3acc?(_0x2ab965=![],_0x64669[_0x12ccf8(0x20d)](_0x12ccf8(0x1c9)+_0x15f370+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0xfc393d['id']+'.')):_0x4300ff['userList']=_0x4300ff['userList']['filter'](_0x4fc9ac=>_0x4fc9ac[_0x12ccf8(0x1cc)]!==_0x15f370);return{'role':_0xfc393d,'userId':_0x15f370,'roleList':_0x547412,'before':{'userIds':_0x4a79ec},'after':{'userIds':_0x4300ff[_0x12ccf8(0x1c7)][_0x12ccf8(0x203)](_0x21a516=>_0x21a516[_0x12ccf8(0x1cc)])},'shouldWrite':_0x2ab965,'warnings':_0x64669};}export function runtimeRoleWriteResult(_0x33cd94,_0x577a81,_0x3c302c,_0x4e3e8d,_0x145159,_0xd51f37=[]){return{'operation':_0x33cd94,'scope':'runtime','selector':_0x577a81,'before':_0x3c302c,'after':_0x4e3e8d,'dryRun':![],'backend':_0x145159,'warnings':_0xd51f37};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a57_0x5847cd=a57_0x5bb1;function a57_0x3372(){const _0x547cd4=['body','190Azndnw','New\x20role\x20name','2hmDKOo','New\x20non-empty\x20role\x20remark','548340KvpLWj','appCode','POST','1966071asMCRo','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','name','291119gqtyWq','update','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','role-code','description','string','trim','/client/permit/role/update','1897ypVZwN','validation','4824zGUZfl','55hMiBuV','str','5634rqqssX','1094550JwyXZH','remark','120cAgmOm','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','high-risk-write','5994eWbIMk','--remark\x20must\x20not\x20be\x20blank.','--name\x20must\x20not\x20be\x20blank.','29948mNyrWJ','Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','build'];a57_0x3372=function(){return _0x547cd4;};return a57_0x3372();}(function(_0x367e93,_0x42cf9a){const _0x296591=a57_0x5bb1,_0x64cf4f=_0x367e93();while(!![]){try{const _0x2f4b5f=parseInt(_0x296591(0xde))/0x1+parseInt(_0x296591(0xd6))/0x2*(parseInt(_0x296591(0xdb))/0x3)+parseInt(_0x296591(0xd0))/0x4*(-parseInt(_0x296591(0xd4))/0x5)+-parseInt(_0x296591(0xcd))/0x6*(-parseInt(_0x296591(0xe6))/0x7)+parseInt(_0x296591(0xe8))/0x8*(parseInt(_0x296591(0xc6))/0x9)+parseInt(_0x296591(0xc7))/0xa*(-parseInt(_0x296591(0xe9))/0xb)+-parseInt(_0x296591(0xc9))/0xc*(parseInt(_0x296591(0xd8))/0xd);if(_0x2f4b5f===_0x42cf9a)break;else _0x64cf4f['push'](_0x64cf4f['shift']());}catch(_0x5cde8e){_0x64cf4f['push'](_0x64cf4f['shift']());}}}(a57_0x3372,0x5346e));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x5bb1(_0x244c9e,_0x1590ec){_0x244c9e=_0x244c9e-0xc6;const _0x337231=a57_0x3372();let _0x5bb179=_0x337231[_0x244c9e];return _0x5bb179;}import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x2726dc){const _0x409b20=a57_0x5bb1,_0x39f4f4=_0x2726dc['flag'](_0x409b20(0xe1))!==undefined,_0x4fe395=_0x2726dc['flag'](_0x409b20(0xdd))!==undefined,_0x57b9b5=_0x2726dc['flag'](_0x409b20(0xc8))!==undefined;if(!_0x39f4f4&&!_0x4fe395&&!_0x57b9b5)throw CliErrors['validation'](_0x409b20(0xcb));const _0x2c0da6=readOptionalRuntimeRoleCode(_0x2726dc),_0x4e981f=_0x2726dc[_0x409b20(0xea)](_0x409b20(0xdd))[_0x409b20(0xe4)](),_0x534111=_0x2726dc[_0x409b20(0xea)](_0x409b20(0xc8))['trim']();if(_0x4fe395&&!_0x4e981f)throw CliErrors[_0x409b20(0xe7)](_0x409b20(0xcf));if(_0x57b9b5&&!_0x534111)throw CliErrors['validation'](_0x409b20(0xce),_0x409b20(0xdc));return{..._0x2c0da6?{'roleCode':_0x2c0da6}:{},..._0x4fe395?{'roleName':_0x4e981f}:{},..._0x57b9b5?{'remark':_0x534111}:{}};}async function prepare(_0x1dc5bb){const _0x4a0ca0=a57_0x5bb1,_0x105dae=await getRuntimeRoleById(_0x1dc5bb[_0x4a0ca0(0xd9)],_0x1dc5bb['num']('id'));return assertCustomRuntimeRole(_0x105dae,_0x4a0ca0(0xdf)),{'role':_0x105dae,'body':{'id':_0x105dae['id'],'appCode':_0x1dc5bb[_0x4a0ca0(0xd9)],...updateFields(_0x1dc5bb)}};}export const roleUpdate={'service':'role','command':'update','description':a57_0x5847cd(0xe0),'risk':a57_0x5847cd(0xcc),'confirmationDescription':a57_0x5847cd(0xd1),'flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x5847cd(0xdd),'type':a57_0x5847cd(0xe3),'description':a57_0x5847cd(0xd5)},{'name':a57_0x5847cd(0xc8),'type':a57_0x5847cd(0xe3),'description':a57_0x5847cd(0xd7)}],async 'validate'(_0x26c35f){updateFields(_0x26c35f);},async 'dryRun'(_0x85b7fb){const _0xa95c6e=a57_0x5847cd,{body:_0xcb32c2}=await prepare(_0x85b7fb);return dryRun(_0xa95c6e(0xda),'/client/permit/role/update')[_0xa95c6e(0xd3)](_0xcb32c2)[_0xa95c6e(0xe2)](_0xa95c6e(0xca))[_0xa95c6e(0xd2)]();},async 'execute'(_0x5e49a0){const _0x1aa283=a57_0x5847cd,{role:_0x1472f3,body:_0x31ce71}=await prepare(_0x5e49a0),_0x1eb6a9=await updateRuntimeAppRole(_0x31ce71);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1aa283(0xdf),{'roleId':_0x1472f3['id']},projectRuntimeRole(_0x1472f3),projectRuntimeRole(_0x1eb6a9),{'method':_0x1aa283(0xda),'path':_0x1aa283(0xe5)})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a58_0x741e24=a58_0x166b;(function(_0x495395,_0x356d6e){const _0x19b56d=a58_0x166b,_0x2b003a=_0x495395();while(!![]){try{const _0x2aa509=-parseInt(_0x19b56d(0x8a))/0x1+parseInt(_0x19b56d(0x80))/0x2*(-parseInt(_0x19b56d(0x83))/0x3)+-parseInt(_0x19b56d(0x8e))/0x4+parseInt(_0x19b56d(0x8f))/0x5+-parseInt(_0x19b56d(0x84))/0x6+-parseInt(_0x19b56d(0x7f))/0x7+parseInt(_0x19b56d(0x85))/0x8;if(_0x2aa509===_0x356d6e)break;else _0x2b003a['push'](_0x2b003a['shift']());}catch(_0xee5dc){_0x2b003a['push'](_0x2b003a['shift']());}}}(a58_0x527a,0xc9022));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a58_0x527a(){const _0x4de3c1=['user-add','559856OErycb','6985295gHCUML','build','appCode','roleList','warnings','description','Preview:\x20add\x20runtime\x20role\x20member','role','1965670QlejWT','8nGWQfI','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','before','894594TkdssL','9553260hamkBN','22220920pJybbb','body','shouldWrite','/client/permit/user-role/update-user-list','userId','145568mYHmVp','high-risk-write','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.'];a58_0x527a=function(){return _0x4de3c1;};return a58_0x527a();}function a58_0x166b(_0x365ae1,_0x5a96af){_0x365ae1=_0x365ae1-0x7c;const _0x527ae9=a58_0x527a();let _0x166b08=_0x527ae9[_0x365ae1];return _0x166b08;}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a58_0x741e24(0x7e),'command':a58_0x741e24(0x8d),'description':a58_0x741e24(0x81),'risk':a58_0x741e24(0x8b),'confirmationDescription':a58_0x741e24(0x8c),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2b14bc){const _0x247a5d=a58_0x741e24,_0x3ba70b=await prepareRuntimeMemberMutation(_0x2b14bc,_0x247a5d(0x8d));return dryRun('POST',_0x247a5d(0x88))[_0x247a5d(0x86)]({'appCode':_0x2b14bc['appCode'],'roleList':_0x3ba70b['roleList']})[_0x247a5d(0x7c)](_0x3ba70b[_0x247a5d(0x87)]?_0x247a5d(0x7d):_0x3ba70b['warnings'][0x0])[_0x247a5d(0x90)]();},async 'execute'(_0x3858be){const _0xcb8e6f=a58_0x741e24,_0x5dcd75=await prepareRuntimeMemberMutation(_0x3858be,_0xcb8e6f(0x8d));return _0x5dcd75[_0xcb8e6f(0x87)]&&await updateRuntimeRoleUsers(_0x3858be[_0xcb8e6f(0x91)],_0x5dcd75[_0xcb8e6f(0x92)]),{'ok':!![],'data':runtimeRoleWriteResult(_0xcb8e6f(0x8d),{'roleId':_0x5dcd75[_0xcb8e6f(0x7e)]['id'],'userId':_0x5dcd75[_0xcb8e6f(0x89)]},_0x5dcd75[_0xcb8e6f(0x82)],_0x5dcd75['after'],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x5dcd75[_0xcb8e6f(0x93)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a59_0xd45c8=a59_0x242c;(function(_0x105203,_0x1c6e26){const _0x240f48=a59_0x242c,_0x39b85a=_0x105203();while(!![]){try{const _0x3749e2=parseInt(_0x240f48(0x7f))/0x1+-parseInt(_0x240f48(0x6a))/0x2*(-parseInt(_0x240f48(0x6d))/0x3)+parseInt(_0x240f48(0x7e))/0x4*(-parseInt(_0x240f48(0x78))/0x5)+parseInt(_0x240f48(0x72))/0x6+parseInt(_0x240f48(0x6b))/0x7*(parseInt(_0x240f48(0x73))/0x8)+parseInt(_0x240f48(0x71))/0x9+-parseInt(_0x240f48(0x6f))/0xa;if(_0x3749e2===_0x1c6e26)break;else _0x39b85a['push'](_0x39b85a['shift']());}catch(_0x185372){_0x39b85a['push'](_0x39b85a['shift']());}}}(a59_0x217c,0x9fc9f));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a59_0xd45c8(0x74),'command':a59_0xd45c8(0x7d),'description':a59_0xd45c8(0x7b),'risk':a59_0xd45c8(0x6c),'confirmationDescription':a59_0xd45c8(0x70),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x42ecdf){const _0x203f38=a59_0xd45c8,_0x116516=await prepareRuntimeMemberMutation(_0x42ecdf,_0x203f38(0x7d));return dryRun(_0x203f38(0x76),_0x203f38(0x77))[_0x203f38(0x75)]({'appCode':_0x42ecdf[_0x203f38(0x80)],'roleList':_0x116516[_0x203f38(0x6e)]})['description'](_0x116516['shouldWrite']?_0x203f38(0x79):_0x116516[_0x203f38(0x7a)][0x0])[_0x203f38(0x69)]();},async 'execute'(_0xe1b8c2){const _0x11d946=a59_0xd45c8,_0x2e690c=await prepareRuntimeMemberMutation(_0xe1b8c2,_0x11d946(0x7d));return _0x2e690c[_0x11d946(0x82)]&&await updateRuntimeRoleUsers(_0xe1b8c2['appCode'],_0x2e690c[_0x11d946(0x6e)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x11d946(0x7d),{'roleId':_0x2e690c[_0x11d946(0x74)]['id'],'userId':_0x2e690c[_0x11d946(0x7c)]},_0x2e690c[_0x11d946(0x81)],_0x2e690c['after'],{'method':_0x11d946(0x76),'path':_0x11d946(0x77)},_0x2e690c[_0x11d946(0x7a)])};}};function a59_0x242c(_0x33a09d,_0x32b9ef){_0x33a09d=_0x33a09d-0x69;const _0x217c5d=a59_0x217c();let _0x242c57=_0x217c5d[_0x33a09d];return _0x242c57;}function a59_0x217c(){const _0x9d5ae1=['roleList','24799770INYHyt','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','762210iLrdpO','4741590oOfkKm','16RBIjRC','role','body','POST','/client/permit/user-role/update-user-list','1843375JCOJUG','Preview:\x20remove\x20runtime\x20role\x20member','warnings','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','userId','user-remove','4yhmnBg','1013118uYPxZE','appCode','before','shouldWrite','build','2sosNEi','1603952VLtFRV','high-risk-write','3470406ZKnuGl'];a59_0x217c=function(){return _0x9d5ae1;};return a59_0x217c();}
|
|
@@ -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_0x5b07a5=a60_0x11f0;(function(_0x1f0199,_0x286df1){const _0x1897fc=a60_0x11f0,_0xf12a87=_0x1f0199();while(!![]){try{const _0xc4d0a9=parseInt(_0x1897fc(0xb1))/0x1+parseInt(_0x1897fc(0xca))/0x2*(-parseInt(_0x1897fc(0xe5))/0x3)+-parseInt(_0x1897fc(0xbb))/0x4+-parseInt(_0x1897fc(0xe4))/0x5*(parseInt(_0x1897fc(0xae))/0x6)+parseInt(_0x1897fc(0xc4))/0x7+parseInt(_0x1897fc(0xd4))/0x8*(parseInt(_0x1897fc(0xba))/0x9)+parseInt(_0x1897fc(0xcf))/0xa;if(_0xc4d0a9===_0x286df1)break;else _0xf12a87['push'](_0xf12a87['shift']());}catch(_0x38199a){_0xf12a87['push'](_0xf12a87['shift']());}}}(a60_0xd285,0x6d83e));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_0x5b07a5(0xbf),'type':'string','required':!![],'enum':[a60_0x5b07a5(0xc7),a60_0x5b07a5(0xd7)],'description':a60_0x5b07a5(0xe3)},CRON_FLAG={'name':a60_0x5b07a5(0xd8),'type':a60_0x5b07a5(0xdf),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a60_0x5b07a5(0xda),'type':a60_0x5b07a5(0xdf),'description':a60_0x5b07a5(0xde)},TITLE_FLAG={'name':'title','type':a60_0x5b07a5(0xdf),'required':!![],'description':a60_0x5b07a5(0xe9)},PROMPT_FLAG={'name':a60_0x5b07a5(0xa4),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a60_0x5b07a5(0xc1),'type':a60_0x5b07a5(0xdf),'enum':[a60_0x5b07a5(0xe6),'deepseek-v4-flash-0731',a60_0x5b07a5(0xd2)],'default':a60_0x5b07a5(0xe7),'description':a60_0x5b07a5(0xc5)},SCHEDULE_ID_FLAG={'name':a60_0x5b07a5(0xe1),'type':a60_0x5b07a5(0xdf),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x5b07a5(0xd5)}},LIMIT_FLAG={'name':a60_0x5b07a5(0xed),'type':a60_0x5b07a5(0xc2),'default':0x14,'description':a60_0x5b07a5(0xc9)},CURSOR_FLAG={'name':'cursor','type':a60_0x5b07a5(0xdf),'description':a60_0x5b07a5(0xd3)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function a60_0x11f0(_0x2a9c15,_0x197c32){_0x2a9c15=_0x2a9c15-0xa3;const _0xd28551=a60_0xd285();let _0x11f086=_0xd28551[_0x2a9c15];return _0x11f086;}function readScheduleInput(_0x4d899d){const _0x77ab27=a60_0x5b07a5,_0x104989=_0x4d899d[_0x77ab27(0xb3)](_0x77ab27(0xbf)),_0x4b3136=_0x4d899d[_0x77ab27(0xb3)]('title')['trim'](),_0x4b4a83=_0x4d899d['str']('prompt')[_0x77ab27(0xa7)](),_0x45d893=_0x4d899d['str'](_0x77ab27(0xc1)),_0x4f6d64=_0x4d899d[_0x77ab27(0xb3)](_0x77ab27(0xd8)),_0x319dc3=_0x4d899d['str']('scheduled-at');if(!_0x4b3136)throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xdb));if(!_0x4b4a83)throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xd1));if(_0x104989==='CRON'){if(!_0x4f6d64||_0x319dc3)throw CliErrors['validation'](_0x77ab27(0xd6));return{'kind':_0x104989,'timezone':_0x77ab27(0xce),'cron':_0x4f6d64,'title':_0x4b3136,'prompt':_0x4b4a83,'model':_0x45d893};}if(_0x104989===_0x77ab27(0xd7)){if(!_0x319dc3||_0x4f6d64)throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xe0));return{'kind':_0x104989,'timezone':_0x77ab27(0xce),'scheduledAt':_0x319dc3,'title':_0x4b3136,'prompt':_0x4b4a83,'model':_0x45d893};}throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xab));}function a60_0xd285(){const _0x36204a=['Deleted\x20schedule\x20','read','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','UTC','4147420nUhPOH','validation','--prompt\x20must\x20not\x20be\x20blank.','deepseek-v4-pro-0813','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','888ZFinYP','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','ONCE','cron','taskId','scheduled-at','--title\x20must\x20not\x20be\x20blank.','cursor','create','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','string','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','schedule-id','Preview:\x20run\x20schedule\x20','Schedule\x20kind:\x20CRON\x20or\x20ONCE','340phTUuV','4881EQPRjO','kimi/k3','deepseek-v4-flash-0731','Schedule\x20input\x20is\x20valid','Schedule\x20title','\x20immediately','isSafeInteger','high-risk-write','limit','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','prompt','description','/schedules','trim','Created\x20','appCode','schedule','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','POST','/run','66678ZHVoLG','build','num','407612TTOstK','Preview:\x20create\x20an\x20Agent\x20schedule','str','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','run','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','length','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','detail','20241moelAx','1675032GtiXpp','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','\x20from\x20schedule\x20','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','kind','validate','model','number','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','6032460ccLvSR','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Show\x20one\x20schedule\x20by\x20schedule\x20ID','CRON','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Page\x20size\x20from\x201\x20to\x20100','382hcabzd'];a60_0xd285=function(){return _0x36204a;};return a60_0xd285();}function scheduleCollectionPath(_0xbb2e35){const _0x33dd02=a60_0x5b07a5;return'/api/harness/apps/'+encodeURIComponent(_0xbb2e35)+_0x33dd02(0xa6);}function scheduleItemPath(_0x3e2740,_0x5b805f){return scheduleCollectionPath(_0x3e2740)+'/'+encodeURIComponent(_0x5b805f);}const scheduleValidate={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xc0),'description':a60_0x5b07a5(0xb6),'risk':a60_0x5b07a5(0xcc),'flags':INPUT_FLAGS,async 'validate'(_0xdc0181){readScheduleInput(_0xdc0181);},async 'execute'(_0x10004f){const _0x360b07=a60_0x5b07a5,_0x46db3e=readScheduleInput(_0x10004f),_0x143054=await validateRuntimeSchedule(_0x10004f['appCode'],_0x46db3e);return{'ok':!![],'data':_0x143054,'message':_0x360b07(0xe8)};}},scheduleCreate={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xdd),'description':a60_0x5b07a5(0xbe),'risk':a60_0x5b07a5(0xec),'confirmationDescription':a60_0x5b07a5(0xb8),'flags':INPUT_FLAGS,async 'validate'(_0x5daaa1){readScheduleInput(_0x5daaa1);},async 'execute'(_0x3dfadd){const _0x3e984b=a60_0x5b07a5,_0x24eeb7=readScheduleInput(_0x3dfadd),_0x259325=await validateRuntimeSchedule(_0x3dfadd['appCode'],_0x24eeb7),_0xc4a7b8=await createRuntimeSchedule(_0x3dfadd[_0x3e984b(0xa9)],_0x259325);return{'ok':!![],'data':_0xc4a7b8,'message':_0x3e984b(0xa8)+_0xc4a7b8[_0x3e984b(0xbf)]+'\x20schedule\x20'+_0xc4a7b8['scheduleId']};},async 'dryRun'(_0x5093f5){const _0x562c3a=a60_0x5b07a5,_0x1a6fd7=readScheduleInput(_0x5093f5);return dryRun(_0x562c3a(0xac),scheduleCollectionPath(_0x5093f5['appCode']))['body'](_0x1a6fd7)[_0x562c3a(0xa5)](_0x562c3a(0xb2))['build']();}},scheduleList={'service':a60_0x5b07a5(0xaa),'command':'list','description':a60_0x5b07a5(0xc3),'risk':a60_0x5b07a5(0xcc),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1058af){const _0x95a7e3=a60_0x5b07a5,_0x1b2888=_0x1058af[_0x95a7e3(0xb0)](_0x95a7e3(0xed));if(!Number[_0x95a7e3(0xeb)](_0x1b2888)||_0x1b2888<0x1||_0x1b2888>0x64)throw CliErrors[_0x95a7e3(0xd0)](_0x95a7e3(0xcd));const _0x4a6aba=_0x1058af[_0x95a7e3(0xb3)](_0x95a7e3(0xdc));if(_0x4a6aba&&(_0x4a6aba[_0x95a7e3(0xb7)]>0x400||_0x4a6aba[_0x95a7e3(0xa7)]()!==_0x4a6aba))throw CliErrors[_0x95a7e3(0xd0)](_0x95a7e3(0xc8));},async 'execute'(_0x29f19c){const _0x233bf8=a60_0x5b07a5,_0x55ca8e=_0x29f19c[_0x233bf8(0xb3)](_0x233bf8(0xdc)),_0x1f4b23=await listRuntimeSchedules(_0x29f19c['appCode'],{'kind':_0x29f19c[_0x233bf8(0xb3)](_0x233bf8(0xbf)),'limit':_0x29f19c[_0x233bf8(0xb0)](_0x233bf8(0xed)),..._0x55ca8e?{'cursor':_0x55ca8e}:{}});return{'ok':!![],'data':_0x1f4b23};}},scheduleDetail={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xb9),'description':a60_0x5b07a5(0xc6),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xca62ed){const _0x46c5c0=a60_0x5b07a5,_0x304e7e=await getRuntimeSchedule(_0xca62ed['appCode'],_0xca62ed[_0x46c5c0(0xb3)]('schedule-id'));return{'ok':!![],'data':_0x304e7e};}},scheduleRun={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xb5),'description':a60_0x5b07a5(0xbc),'risk':a60_0x5b07a5(0xec),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2700b9){const _0x4fe699=a60_0x5b07a5,_0xeb175c=_0x2700b9['str'](_0x4fe699(0xe1)),_0x24e3cb=await runRuntimeSchedule(_0x2700b9[_0x4fe699(0xa9)],_0xeb175c);return{'ok':!![],'data':_0x24e3cb,'message':'Queued\x20Task\x20'+_0x24e3cb[_0x4fe699(0xd9)]+_0x4fe699(0xbd)+_0xeb175c};},async 'dryRun'(_0x4e81f8){const _0x577027=a60_0x5b07a5,_0x4a8980=_0x4e81f8['str'](_0x577027(0xe1));return dryRun(_0x577027(0xac),scheduleItemPath(_0x4e81f8[_0x577027(0xa9)],_0x4a8980)+_0x577027(0xad))[_0x577027(0xa5)](_0x577027(0xe2)+_0x4a8980+_0x577027(0xea))[_0x577027(0xaf)]();}},scheduleDelete={'service':'schedule','command':'delete','description':a60_0x5b07a5(0xb4),'risk':a60_0x5b07a5(0xec),'confirmationDescription':a60_0x5b07a5(0xa3),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5bdd86){const _0x5d7413=a60_0x5b07a5,_0x143c17=_0x5bdd86[_0x5d7413(0xb3)]('schedule-id'),_0x13a027=await deleteRuntimeSchedule(_0x5bdd86[_0x5d7413(0xa9)],_0x143c17);return{'ok':!![],'data':_0x13a027,'message':_0x5d7413(0xcb)+_0x143c17};},async 'dryRun'(_0x69896b){const _0xd03e63=a60_0x5b07a5,_0x248058=_0x69896b['str'](_0xd03e63(0xe1));return dryRun('DELETE',scheduleItemPath(_0x69896b[_0xd03e63(0xa9)],_0x248058))['description']('Preview:\x20delete\x20schedule\x20'+_0x248058)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a61_0x49cae9=a61_0x6fe0;function a61_0x6fe0(_0x131330,_0x3f36dc){_0x131330=_0x131330-0xa8;const _0x225899=a61_0x2258();let _0x6fe04f=_0x225899[_0x131330];return _0x6fe04f;}(function(_0x37ead9,_0x3921f8){const _0x12c287=a61_0x6fe0,_0x4e7901=_0x37ead9();while(!![]){try{const _0x55da50=-parseInt(_0x12c287(0xb4))/0x1*(-parseInt(_0x12c287(0xaf))/0x2)+parseInt(_0x12c287(0xb0))/0x3+-parseInt(_0x12c287(0xa8))/0x4*(parseInt(_0x12c287(0xab))/0x5)+-parseInt(_0x12c287(0xb5))/0x6*(-parseInt(_0x12c287(0xac))/0x7)+parseInt(_0x12c287(0xad))/0x8+parseInt(_0x12c287(0xb3))/0x9*(parseInt(_0x12c287(0xb2))/0xa)+parseInt(_0x12c287(0xa9))/0xb*(-parseInt(_0x12c287(0xb6))/0xc);if(_0x55da50===_0x3921f8)break;else _0x4e7901['push'](_0x4e7901['shift']());}catch(_0x508ac9){_0x4e7901['push'](_0x4e7901['shift']());}}}(a61_0x2258,0xdd952));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3b2cf4){const _0x486c9d=await buildSchemaPayload();return{'ok':!![],'data':_0x486c9d};}function a61_0x2258(){const _0x22d426=['38240HVxwbA','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2946IEvSuH','2616612hWIUGZ','schema','30NYCJdM','2723778GsCiiX','229IJwqPB','6TEsSmn','84tfXewQ','4qxuZuk','581141ZmSpWs','export','5519070QABLQL','1813042sJECgy'];a61_0x2258=function(){return _0x22d426;};return a61_0x2258();}export const schemaDefinition={'service':a61_0x49cae9(0xb1),'command':a61_0x49cae9(0xaa),'description':a61_0x49cae9(0xae),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -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(_0x28495e,_0x507116){const _0x31c1f9=a62_0xb4f4,_0x2d4427=_0x28495e();while(!![]){try{const _0x5d93ec=-parseInt(_0x31c1f9(0x1f6))/0x1+-parseInt(_0x31c1f9(0x1f3))/0x2*(parseInt(_0x31c1f9(0x1c1))/0x3)+-parseInt(_0x31c1f9(0x204))/0x4*(-parseInt(_0x31c1f9(0x1f5))/0x5)+-parseInt(_0x31c1f9(0x1e6))/0x6+parseInt(_0x31c1f9(0x1ec))/0x7*(-parseInt(_0x31c1f9(0x201))/0x8)+parseInt(_0x31c1f9(0x1b0))/0x9+parseInt(_0x31c1f9(0x1e2))/0xa;if(_0x5d93ec===_0x507116)break;else _0x2d4427['push'](_0x2d4427['shift']());}catch(_0x45e1e6){_0x2d4427['push'](_0x2d4427['shift']());}}}(a62_0x4b7c,0x23993));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(_0x9103bd,_0x12df80){const _0x32d6b5=a62_0xb4f4,_0x37f879=listLocalServiceTrees();let _0x36ac08;for(const _0x154cf0 of _0x37f879){const _0x1f64cd=matchServiceTreeCommand(_0x154cf0,_0x9103bd);if(!_0x1f64cd)continue;(!_0x36ac08||_0x1f64cd[_0x32d6b5(0x1ff)][_0x32d6b5(0x1ef)][_0x32d6b5(0x1da)]>_0x36ac08[_0x32d6b5(0x1ff)][_0x32d6b5(0x1ef)][_0x32d6b5(0x1da)])&&(_0x36ac08={'tree':_0x154cf0,'command':_0x1f64cd[_0x32d6b5(0x1ff)],'remainingArgs':_0x1f64cd['remainingArgs']});}if(!_0x36ac08)return undefined;const _0x386587={..._0x12df80};return applyAppBinding(_0x36ac08['tree'],_0x36ac08['command'],_0x386587),{'definition':buildDynamicCommandDefinition(_0x36ac08[_0x32d6b5(0x202)],_0x36ac08['command']),'args':_0x36ac08[_0x32d6b5(0x1d5)],'flags':_0x386587,'tree':_0x36ac08[_0x32d6b5(0x202)],'command':_0x36ac08[_0x32d6b5(0x1ff)]};}export function generateDynamicServiceHelp(_0x5b8dfa){const _0x18761b=a62_0xb4f4,_0x2d80d6=listLocalServiceTrees()[_0x18761b(0x1c4)](_0x12fea4=>_0x12fea4[_0x18761b(0x1ba)][_0x18761b(0x1b4)]===_0x5b8dfa);if(!_0x2d80d6)return undefined;const _0x2b1152=[CLI_BIN_NAME+'\x20'+_0x5b8dfa+'\x20<command>\x20[flags]','',_0x2d80d6['service'][_0x18761b(0x1b9)]||_0x5b8dfa,_0x2d80d6[_0x18761b(0x1ba)][_0x18761b(0x1fa)]?'\x20\x20'+_0x2d80d6[_0x18761b(0x1ba)][_0x18761b(0x1fa)]:'','',_0x18761b(0x1cb),..._0x2d80d6[_0x18761b(0x1be)]['map'](_0x421472=>{const _0x4024c3=_0x18761b,_0x533109=_0x421472['fullPath'][_0x4024c3(0x1e1)](0x1)[_0x4024c3(0x1c2)]('\x20'),_0x155110=_0x421472[_0x4024c3(0x1e5)]===_0x4024c3(0x1f9)?'':'\x20['+_0x421472[_0x4024c3(0x1e5)]+']';return'\x20\x20'+_0x533109[_0x4024c3(0x1bf)](0x18)+'\x20'+(_0x421472[_0x4024c3(0x1fa)]||'')+_0x155110;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x5b8dfa+_0x18761b(0x1fd)][_0x18761b(0x200)](Boolean);return _0x2b1152[_0x18761b(0x1c2)]('\x0a');}export function listDynamicServiceEntries(){const _0x52cc95=a62_0xb4f4;return listLocalServices()[_0x52cc95(0x1a4)](_0x49f630=>{const _0x834a73=_0x52cc95,_0x566964=_0x49f630['normalizedManifest'];return{'service':_0x566964['service']['code'],'label':_0x566964[_0x834a73(0x1ba)]['name']||_0x566964[_0x834a73(0x1ba)]['code'],'commands':_0x566964[_0x834a73(0x1be)][_0x834a73(0x1a4)](_0x3a09e1=>({'command':dynamicCommandName(_0x3a09e1),'description':_0x3a09e1['description']||'Run\x20service\x20command\x20'+_0x3a09e1[_0x834a73(0x1d4)],'tag':riskTag(_0x3a09e1['risk'])}))};});}export function getDynamicServiceEntry(_0x174aa8){const _0x68814f=a62_0xb4f4;return listDynamicServiceEntries()[_0x68814f(0x1c4)](_0x203503=>_0x203503[_0x68814f(0x1ba)]===_0x174aa8);}export function listDynamicServiceDefinitions(_0x12450e){const _0x2618fb=a62_0xb4f4;return listLocalServiceTrees()[_0x2618fb(0x200)](_0x31f337=>!_0x12450e||_0x31f337[_0x2618fb(0x1ba)][_0x2618fb(0x1b4)]===_0x12450e)[_0x2618fb(0x209)](_0x369ad0=>_0x369ad0[_0x2618fb(0x1be)][_0x2618fb(0x1a4)](_0x409e61=>buildDynamicCommandDefinition(_0x369ad0,_0x409e61)));}export function getDynamicServiceDefinitions(_0x17beb9){const _0x1f1215=a62_0xb4f4,_0xb154e7=listDynamicServiceDefinitions(_0x17beb9);return _0xb154e7[_0x1f1215(0x1da)]>0x0?_0xb154e7:undefined;}export function findDynamicServiceDefinition(_0x4027d3,_0xbbbe2){const _0xe64701=a62_0xb4f4;return listDynamicServiceDefinitions(_0x4027d3)[_0xe64701(0x1c4)](_0x13fd72=>_0x13fd72[_0xe64701(0x1ff)]===_0xbbbe2);}export function buildDynamicCommandDefinition(_0xd998c0,_0x113552){const _0xe56bc6=a62_0xb4f4;return{'service':_0xd998c0['service'][_0xe56bc6(0x1b4)],'command':dynamicCommandName(_0x113552),'description':_0x113552[_0xe56bc6(0x1fa)]||_0xe56bc6(0x1f7)+_0x113552['cliPath'],'risk':_0x113552[_0xe56bc6(0x1e5)],..._0x113552[_0xe56bc6(0x1e5)]===_0xe56bc6(0x1f9)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x113552)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x113552['args'][_0xe56bc6(0x1a4)](_0x2e10b5=>({'name':_0x2e10b5[_0xe56bc6(0x1b9)],'description':_0x2e10b5['description']||_0x2e10b5[_0xe56bc6(0x1b9)],'required':_0x2e10b5['required']})),'flags':_0x113552['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x113552),async 'dryRun'(_0xb44457){const _0x1a78da=_0xe56bc6,_0x330319=await compilePlan(_0x113552,_0xb44457);return{'method':_0x1a78da(0x1f1),'url':_0x113552[_0x1a78da(0x1d4)],'body':{'target':targetPreview(_0x330319),'params':_0x330319[_0x1a78da(0x1c3)]},'description':_0x1a78da(0x1d1)+_0x113552[_0x1a78da(0x1d4)]};},async 'execute'(_0x4c14c6){const _0x48c1af=_0xe56bc6,_0x176675=await compilePlan(_0x113552,_0x4c14c6),_0x4cb385=Date[_0x48c1af(0x1e4)](),_0x18ead7=await executePlan(_0x176675,_0x113552,_0x4c14c6),_0x2766d8=Date[_0x48c1af(0x1e4)]()-_0x4cb385;return{'ok':!![],'data':{'service':_0xd998c0[_0x48c1af(0x1ba)],'command':_0x113552[_0x48c1af(0x1d4)],'target':targetPreview(_0x176675),'result':_0x18ead7,'elapsed':_0x2766d8},'message':'Service\x20command\x20'+_0x113552['cliPath']+_0x48c1af(0x1a9)+_0x2766d8+'ms'};}};}function buildDynamicConfirmationDescription(_0x45de03){const _0x34e618=a62_0xb4f4,_0x3c70ae=_0x45de03[_0x34e618(0x1fa)]||_0x45de03[_0x34e618(0x1d4)],_0x550ab4=_0x45de03[_0x34e618(0x1e5)]===_0x34e618(0x1db)?_0x34e618(0x1c9):_0x34e618(0x1c5);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x3c70ae+'\x22.\x20'+_0x550ab4;}function dynamicCommandName(_0x4f4aa1){const _0x19afeb=a62_0xb4f4;return _0x4f4aa1[_0x19afeb(0x1ef)][_0x19afeb(0x1e1)](0x1)['join']('\x20');}function riskTag(_0x1d6fdf){const _0x427473=a62_0xb4f4;return _0x1d6fdf===_0x427473(0x1f9)?'':_0x427473(0x1ca)+_0x1d6fdf+']';}function a62_0x4b7c(){const _0x1af967=['Preview\x20dynamic\x20service\x20command:\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','target','cliPath','remainingArgs','trim','push','envName','\x20\x20MAP\x20TO','length','high-risk-write','datasetCode','source','datatable','const','kind','slice','4351070wwYvNY','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','now','risk','428886jXvdIz','nickName','\x20\x20\x20\x20functionName:\x20','entries','operator','bff','3647aJhTFA','tenantCode','appcode','fullPath','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','SERVICE_TREE','\x20requires\x20target.sqlCode.','274580yhoiHi','ctx.','995qKpuuQ','185302DDhdSw','Run\x20service\x20command\x20','bffCode','read','description','loginName','validation','`\x20to\x20inspect\x20the\x20manifest.','bffId','command','filter','3032PHSaZp','tree','app','1556eQxAah','appCode','userId','rawFlags','Service\x20command\x20','flatMap','Unsupported\x20service\x20target\x20kind:\x20','string','map','scriptName','\x22\x20in\x20service\x20command\x20','type','default','\x20completed\x20in\x20','\x20\x20\x20\x20datatable:\x20','fromEntries','\x20->\x20','sql','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','data','2023425GAKxgB','enum','some','\x20\x20\x20\x20command:\x20','code','sqlCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','tableName','boolean','name','service','Unknown\x20appRef\x20\x22','userName','env','commands','padEnd','context.','3mlXJdB','join','params','find','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','json','mapTo','required','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x20\x20[','Commands:','\x20\x20SERVICE\x20TREE\x20TARGET','appBindings','number','nickname','cliName'];a62_0x4b7c=function(){return _0x1af967;};return a62_0x4b7c();}function flagToCommandFlag(_0x26a904){const _0x3be176=a62_0xb4f4;return{'name':_0x26a904[_0x3be176(0x1d0)],'type':_0x26a904['type']===_0x3be176(0x1c6)?_0x3be176(0x1a3):_0x26a904[_0x3be176(0x1a7)],'description':_0x26a904[_0x3be176(0x1fa)]||_0x26a904[_0x3be176(0x1b9)],'required':_0x26a904[_0x3be176(0x1c8)],'default':isPrimitiveFlagDefault(_0x26a904[_0x3be176(0x1a8)])?_0x26a904[_0x3be176(0x1a8)]:undefined,'enum':_0x26a904[_0x3be176(0x1b1)]};}async function compilePlan(_0x2d2359,_0x2dad0c){const _0x2f52fa=a62_0xb4f4;return compileServiceTreeCommand(_0x2d2359,{'flags':_0x2dad0c[_0x2f52fa(0x207)],'args':_0x2dad0c['args'],'context':await buildServiceContext(_0x2d2359,_0x2dad0c)});}async function buildServiceContext(_0x59b8c9,_0x4c6023){const _0x549e90=a62_0xb4f4,_0x29639b={'appCode':_0x4c6023[_0x549e90(0x205)],'env':_0x4c6023[_0x549e90(0x1d8)],'envName':_0x4c6023[_0x549e90(0x1d8)]};if(!usesRuntimeContext(_0x59b8c9))return _0x29639b;const _0x31e48d=await getLoginUserInfo(),_0x324810=pickFirst(_0x31e48d[_0x549e90(0x206)],_0x31e48d['id']);return{..._0x29639b,'user':_0x31e48d,'userId':_0x324810,'id':_0x31e48d['id'],'username':pickFirst(_0x31e48d['username'],_0x31e48d[_0x549e90(0x1bc)],_0x31e48d[_0x549e90(0x1fb)]),'userName':_0x31e48d[_0x549e90(0x1bc)],'nickname':pickFirst(_0x31e48d[_0x549e90(0x1cf)],_0x31e48d['nickName']),'nickName':_0x31e48d[_0x549e90(0x1e7)],'tenantCode':_0x31e48d[_0x549e90(0x1ed)],'employeeId':_0x31e48d['employeeId']};}function usesRuntimeContext(_0x102981){const _0x3cfbb2=a62_0xb4f4;return _0x102981['mapTo'][_0x3cfbb2(0x1b2)](_0x1d90b8=>typeof _0x1d90b8[_0x3cfbb2(0x1dd)]===_0x3cfbb2(0x1a3)&&(_0x1d90b8[_0x3cfbb2(0x1dd)]['startsWith'](_0x3cfbb2(0x1c0))||_0x1d90b8[_0x3cfbb2(0x1dd)]['startsWith'](_0x3cfbb2(0x1f4))));}function a62_0xb4f4(_0x3e1c64,_0x72fd97){_0x3e1c64=_0x3e1c64-0x1a2;const _0x4b7cd0=a62_0x4b7c();let _0xb4f4e8=_0x4b7cd0[_0x3e1c64];return _0xb4f4e8;}function pickFirst(..._0x3465bf){return _0x3465bf['find'](_0x37b213=>_0x37b213!==undefined&&_0x37b213!==null);}async function executePlan(_0x3d27f9,_0x39ff5a,_0x40acec){const _0x21ba41=a62_0xb4f4;if(_0x3d27f9['kind']===_0x21ba41(0x1af)){const _0x1562d6=await resolveDatasetCode(_0x3d27f9,_0x39ff5a,_0x40acec);return executeData(_0x1562d6,_0x3d27f9['command'],_0x3d27f9[_0x21ba41(0x1c3)]);}if(_0x3d27f9[_0x21ba41(0x1e0)]===_0x21ba41(0x1ad)){if(!_0x3d27f9['sqlCode'])throw CliErrors[_0x21ba41(0x1fc)](_0x21ba41(0x208)+_0x39ff5a[_0x21ba41(0x1d4)]+_0x21ba41(0x1f2));return executeSdkSql(_0x3d27f9[_0x21ba41(0x1b5)],normalizeScalarParams(_0x3d27f9['params']));}if(_0x3d27f9[_0x21ba41(0x1e0)]===_0x21ba41(0x1eb)){const _0x128ad7=_0x3d27f9['scriptName']||_0x3d27f9[_0x21ba41(0x1f8)]||(_0x3d27f9['bffId']==null?'':String(_0x3d27f9[_0x21ba41(0x1fe)]));if(!_0x128ad7)throw CliErrors[_0x21ba41(0x1fc)](_0x21ba41(0x208)+_0x39ff5a['cliPath']+'\x20requires\x20target.functionName.');return executeSdkBff(_0x128ad7,_0x3d27f9[_0x21ba41(0x1c3)]);}throw CliErrors[_0x21ba41(0x1fc)](_0x21ba41(0x1a2)+_0x3d27f9[_0x21ba41(0x1e0)]);}async function resolveDatasetCode(_0x29d863,_0x165554,_0x556439){const _0x1159fb=a62_0xb4f4;if(_0x29d863['datasetCode'])return _0x29d863[_0x1159fb(0x1dc)];if(!_0x29d863['datatable'])throw CliErrors[_0x1159fb(0x1fc)](_0x1159fb(0x208)+_0x165554[_0x1159fb(0x1d4)]+_0x1159fb(0x1e3));const _0x1621b8=await listDatasets(_0x556439[_0x1159fb(0x205)]),_0x48cb97=_0x1621b8['find'](_0x738645=>_0x738645['dbtableConfig']?.[_0x1159fb(0x1b7)]===_0x29d863['datatable']);if(!_0x48cb97?.[_0x1159fb(0x1b4)])throw CliErrors[_0x1159fb(0x1fc)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x29d863['datatable']+_0x1159fb(0x1b6)+_0x556439['appCode']+'.',_0x1159fb(0x1f0));return _0x48cb97['code'];}function applyAppBinding(_0x68bbe3,_0x2925b7,_0x821e0c){const _0x17687a=a62_0xb4f4,_0x1bc5ef=_0x2925b7[_0x17687a(0x1d3)]['appRef'];if(!_0x1bc5ef)return;const _0x344790=_0x68bbe3[_0x17687a(0x1cd)][_0x1bc5ef];if(!_0x344790)throw CliErrors[_0x17687a(0x1fc)](_0x17687a(0x1bb)+_0x1bc5ef+_0x17687a(0x1a6)+_0x2925b7['cliPath']+'.',_0x17687a(0x1ae));const _0x2c7f99=_0x344790[_0x17687a(0x1ee)]||_0x344790[_0x17687a(0x205)];_0x2c7f99&&!hasText(_0x821e0c[_0x17687a(0x1ee)])&&(_0x821e0c[_0x17687a(0x1ee)]=_0x2c7f99),_0x344790['app']&&!hasText(_0x821e0c[_0x17687a(0x203)])&&!hasText(_0x821e0c[_0x17687a(0x1ee)])&&(_0x821e0c[_0x17687a(0x203)]=_0x344790[_0x17687a(0x203)]),_0x344790['env']&&!hasText(_0x821e0c[_0x17687a(0x1bd)])&&(_0x821e0c['env']=_0x344790[_0x17687a(0x1bd)]);}function renderDynamicCommandHelp(_0x57bbeb){const _0x4578bb=a62_0xb4f4,_0x3dba6d=[_0x4578bb(0x1cc),_0x4578bb(0x1d2)+_0x57bbeb['target'][_0x4578bb(0x1e0)],_0x4578bb(0x1b3)+_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1ff)]];if(_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1dc)])_0x3dba6d['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x57bbeb['target']['datasetCode']);if(_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1de)])_0x3dba6d[_0x4578bb(0x1d7)](_0x4578bb(0x1aa)+_0x57bbeb['target']['datatable']);if(_0x57bbeb[_0x4578bb(0x1d3)]['sqlCode'])_0x3dba6d['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x57bbeb['target'][_0x4578bb(0x1b5)]);if(_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1a5)])_0x3dba6d[_0x4578bb(0x1d7)](_0x4578bb(0x1e8)+_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1a5)]);if(_0x57bbeb[_0x4578bb(0x1c7)]['length']>0x0){_0x3dba6d[_0x4578bb(0x1d7)]('',_0x4578bb(0x1d9));for(const _0x431eee of _0x57bbeb[_0x4578bb(0x1c7)]){_0x3dba6d[_0x4578bb(0x1d7)]('\x20\x20\x20\x20'+(_0x431eee[_0x4578bb(0x1dd)]||_0x4578bb(0x1df))+_0x4578bb(0x1ac)+_0x431eee[_0x4578bb(0x1d3)]+(_0x431eee[_0x4578bb(0x1ea)]?'.'+_0x431eee[_0x4578bb(0x1ea)]:''));}}return _0x3dba6d[_0x4578bb(0x1c2)]('\x0a');}function targetPreview(_0x13b086){const _0x190a48=a62_0xb4f4;return{'kind':_0x13b086['kind'],'command':_0x13b086[_0x190a48(0x1ff)],'appRef':_0x13b086['appRef'],'datasetCode':_0x13b086[_0x190a48(0x1dc)],'datatable':_0x13b086[_0x190a48(0x1de)],'sqlCode':_0x13b086[_0x190a48(0x1b5)],'bffCode':_0x13b086['bffCode'],'bffId':_0x13b086[_0x190a48(0x1fe)],'functionName':_0x13b086[_0x190a48(0x1a5)]};}function normalizeScalarParams(_0x454006){const _0x5de9af=a62_0xb4f4;return Object[_0x5de9af(0x1ab)](Object[_0x5de9af(0x1e9)](_0x454006)[_0x5de9af(0x200)](([,_0x5ba127])=>typeof _0x5ba127===_0x5de9af(0x1a3)||typeof _0x5ba127===_0x5de9af(0x1ce)));}function hasText(_0x11af4b){const _0x5d459b=a62_0xb4f4;return typeof _0x11af4b==='string'&&_0x11af4b[_0x5d459b(0x1d6)]()[_0x5d459b(0x1da)]>0x0;}function isPrimitiveFlagDefault(_0x3ae72a){const _0x1ca6f0=a62_0xb4f4;return _0x3ae72a===undefined||typeof _0x3ae72a===_0x1ca6f0(0x1a3)||typeof _0x3ae72a===_0x1ca6f0(0x1ce)||typeof _0x3ae72a===_0x1ca6f0(0x1b8);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x225c06,_0x1444ff){const _0x5e0f72=a63_0x2891,_0x2e1e1f=_0x225c06();while(!![]){try{const _0xd806b0=parseInt(_0x5e0f72(0x1a2))/0x1+-parseInt(_0x5e0f72(0x1ad))/0x2*(parseInt(_0x5e0f72(0x198))/0x3)+parseInt(_0x5e0f72(0x1a0))/0x4*(-parseInt(_0x5e0f72(0x1b7))/0x5)+parseInt(_0x5e0f72(0x197))/0x6*(-parseInt(_0x5e0f72(0x1aa))/0x7)+-parseInt(_0x5e0f72(0x1b5))/0x8+parseInt(_0x5e0f72(0x1b1))/0x9+parseInt(_0x5e0f72(0x1af))/0xa;if(_0xd806b0===_0x1444ff)break;else _0x2e1e1f['push'](_0x2e1e1f['shift']());}catch(_0x152bc7){_0x2e1e1f['push'](_0x2e1e1f['shift']());}}}(a63_0x2f04,0x9de1d));export function adaptServiceTreeManifestForLegacyFramework(_0x3cc120){const _0x2b6a43=a63_0x2891,_0x1c2327=cloneJsonValue(_0x3cc120),_0x41803f=[];if(!isObjectRecord(_0x1c2327))return{'manifest':_0x1c2327,'errors':_0x41803f};return Array[_0x2b6a43(0x19c)](_0x1c2327['commands'])&&_0x1c2327[_0x2b6a43(0x19e)]['forEach']((_0x471ba7,_0x1b3352)=>{const _0x3614c3=_0x2b6a43;if(!isObjectRecord(_0x471ba7))return;adaptBffTarget(_0x471ba7[_0x3614c3(0x19b)],_0x3614c3(0x1a4)+_0x1b3352+'].target',_0x41803f);}),adaptResources(_0x1c2327[_0x2b6a43(0x19f)],_0x2b6a43(0x1ae),_0x41803f),{'manifest':_0x1c2327,'errors':_0x41803f};}export function toPublicServiceTreeTarget(_0x392e8d){const _0x5e9b40=a63_0x2891,{scriptName:_0x22d479,..._0x1b785c}=_0x392e8d;return typeof _0x22d479===_0x5e9b40(0x1b3)&&_0x22d479[_0x5e9b40(0x19d)]()&&(_0x1b785c['functionName']=_0x22d479),_0x1b785c;}export function toPublicNormalizedServiceTree(_0x245350){const _0xcf9274=a63_0x2891;return{..._0x245350,'commands':_0x245350[_0xcf9274(0x19e)][_0xcf9274(0x1b8)](_0x3a7d23=>({..._0x3a7d23,'target':toPublicServiceTreeTarget(_0x3a7d23[_0xcf9274(0x19b)])}))};}function a63_0x2f04(){const _0x9fcb0=['kind','1650wViLCt','3339861WHamSE','actions','entries','target','isArray','trim','commands','resources','4VwXWwd','action','1179402DmBAcd','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','$.commands[','functionName','.scriptName','bff.exec','fromEntries','push','23597oBLOeu','prototype','functionName\x20must\x20be\x20a\x20non-empty\x20string.','2zGKrJF','$.resources','6307560vvJfGC','hasOwnProperty','10905768vWUdvc','call','string','.target','247600pIxwXK','bff','1519815UbzZKb','map'];a63_0x2f04=function(){return _0x9fcb0;};return a63_0x2f04();}function adaptResources(_0x5dfd48,_0x1127ba,_0x43f264){const _0x55ed7c=a63_0x2891;if(!isObjectRecord(_0x5dfd48))return;for(const [_0x5eda59,_0x242bd1]of Object['entries'](_0x5dfd48)){if(!isObjectRecord(_0x242bd1))continue;const _0x36a17d=_0x1127ba+'.'+_0x5eda59;if(isObjectRecord(_0x242bd1['actions']))for(const [_0x4afcd5,_0x247e21]of Object[_0x55ed7c(0x19a)](_0x242bd1[_0x55ed7c(0x199)])){if(!isObjectRecord(_0x247e21))continue;const _0x54c5eb=_0x36a17d+'.actions.'+_0x4afcd5,_0x5121a8=isObjectRecord(_0x247e21[_0x55ed7c(0x19b)])&&_0x247e21['target'][_0x55ed7c(0x1b9)]===_0x55ed7c(0x1b6);adaptBffTarget(_0x247e21[_0x55ed7c(0x19b)],_0x54c5eb+_0x55ed7c(0x1b4),_0x43f264),(_0x5121a8||isBffAction(_0x247e21))&&adaptFunctionNameField(_0x247e21,_0x54c5eb,_0x43f264);}adaptResources(_0x242bd1['resources'],_0x36a17d+'.resources',_0x43f264);}}function a63_0x2891(_0x3750e2,_0x287559){_0x3750e2=_0x3750e2-0x197;const _0x2f0428=a63_0x2f04();let _0x2891b1=_0x2f0428[_0x3750e2];return _0x2891b1;}function adaptBffTarget(_0x3f1cee,_0xc93cb,_0x2f9b46){const _0x406946=a63_0x2891;if(!isObjectRecord(_0x3f1cee)||_0x3f1cee[_0x406946(0x1b9)]!==_0x406946(0x1b6))return;adaptFunctionNameField(_0x3f1cee,_0xc93cb,_0x2f9b46);}function adaptFunctionNameField(_0x5842f8,_0x444e13,_0x5cce81){const _0x24e452=a63_0x2891;Object[_0x24e452(0x1ab)][_0x24e452(0x1b0)][_0x24e452(0x1b2)](_0x5842f8,'scriptName')&&_0x5cce81[_0x24e452(0x1a9)]({'level':'error','path':_0x444e13+_0x24e452(0x1a6),'message':_0x24e452(0x1a3)});if(Object[_0x24e452(0x1ab)]['hasOwnProperty'][_0x24e452(0x1b2)](_0x5842f8,_0x24e452(0x1a5))){if(typeof _0x5842f8[_0x24e452(0x1a5)]!==_0x24e452(0x1b3)||!_0x5842f8['functionName'][_0x24e452(0x19d)]()){_0x5cce81['push']({'level':'error','path':_0x444e13+'.functionName','message':_0x24e452(0x1ac)}),delete _0x5842f8[_0x24e452(0x1a5)];return;}_0x5842f8['scriptName']=_0x5842f8[_0x24e452(0x1a5)],delete _0x5842f8[_0x24e452(0x1a5)];}}function isBffAction(_0x100841){const _0x46a73d=a63_0x2891;return _0x100841[_0x46a73d(0x1b9)]===_0x46a73d(0x1b6)||_0x100841[_0x46a73d(0x1a1)]===_0x46a73d(0x1a7)||_0x100841[_0x46a73d(0x19b)]===_0x46a73d(0x1a7);}function cloneJsonValue(_0x4b1d77){const _0x2dea34=a63_0x2891;if(Array[_0x2dea34(0x19c)](_0x4b1d77))return _0x4b1d77[_0x2dea34(0x1b8)](_0x87f238=>cloneJsonValue(_0x87f238));if(isObjectRecord(_0x4b1d77))return Object[_0x2dea34(0x1a8)](Object['entries'](_0x4b1d77)[_0x2dea34(0x1b8)](([_0x5ee251,_0x3c9a60])=>[_0x5ee251,cloneJsonValue(_0x3c9a60)]));return _0x4b1d77;}function isObjectRecord(_0x58cbe8){return Boolean(_0x58cbe8)&&typeof _0x58cbe8==='object'&&!Array['isArray'](_0x58cbe8);}
|
|
@@ -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_0xe2b4ee=a64_0x4cfb;(function(_0x5e6b09,_0x175c65){const _0x158d04=a64_0x4cfb,_0xa77c91=_0x5e6b09();while(!![]){try{const _0x43ad37=-parseInt(_0x158d04(0x1ee))/0x1*(parseInt(_0x158d04(0x1d2))/0x2)+parseInt(_0x158d04(0x1d0))/0x3+parseInt(_0x158d04(0x1de))/0x4*(parseInt(_0x158d04(0x1e5))/0x5)+-parseInt(_0x158d04(0x1da))/0x6+parseInt(_0x158d04(0x1fa))/0x7+parseInt(_0x158d04(0x1ea))/0x8*(-parseInt(_0x158d04(0x1cb))/0x9)+parseInt(_0x158d04(0x1cd))/0xa;if(_0x43ad37===_0x175c65)break;else _0xa77c91['push'](_0xa77c91['shift']());}catch(_0x179ae0){_0xa77c91['push'](_0xa77c91['shift']());}}}(a64_0x5652,0x23ab7));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_0xe2b4ee(0x1ec),'type':a64_0xe2b4ee(0x1eb),'required':!![],'description':a64_0xe2b4ee(0x1d3)},SERVICE_FLAG={'name':'service','type':a64_0xe2b4ee(0x1eb),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x243478){const _0x28d3af=a64_0xe2b4ee;return{'serviceCode':_0x243478[_0x28d3af(0x1df)],'name':_0x243478[_0x28d3af(0x1c7)]['service'][_0x28d3af(0x1fb)],'version':_0x243478['version'],'importedAt':_0x243478['importedAt'],'source':_0x243478[_0x28d3af(0x1f3)],'commandCount':_0x243478[_0x28d3af(0x1c7)][_0x28d3af(0x1f1)][_0x28d3af(0x1c3)],'commands':_0x243478[_0x28d3af(0x1c7)]['commands'][_0x28d3af(0x1ff)](_0x5cbc57=>({'path':_0x5cbc57[_0x28d3af(0x1e1)],'description':_0x5cbc57[_0x28d3af(0x1c4)],'risk':_0x5cbc57['risk'],'target':toPublicServiceTreeTarget(_0x5cbc57[_0x28d3af(0x1d9)]),'flags':_0x5cbc57[_0x28d3af(0x1fd)][_0x28d3af(0x1ff)](_0x13b819=>({'name':_0x13b819['name'],'cliName':_0x13b819['cliName'],'type':_0x13b819[_0x28d3af(0x1f0)],'required':_0x13b819['required']===!![]}))}))};}function summarizeLoadedManifest(_0x4aa47c){const _0x15e0eb=a64_0xe2b4ee;return{'service':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1cc)],'version':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1d8)],'commandCount':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1f1)][_0x15e0eb(0x1c3)]??0x0,'commands':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1f1)][_0x15e0eb(0x1ff)](_0x2a2ae5=>({'path':_0x2a2ae5['cliPath'],'risk':_0x2a2ae5[_0x15e0eb(0x1c8)],'target':toPublicServiceTreeTarget(_0x2a2ae5['target'])}))??[],'registryIndex':_0x4aa47c[_0x15e0eb(0x1f6)],'registryServiceCode':_0x4aa47c['registryServiceCode'],'errors':_0x4aa47c['report'][_0x15e0eb(0x1d4)],'warnings':_0x4aa47c[_0x15e0eb(0x1e8)]['warnings']};}function a64_0x4cfb(_0x420eaf,_0x33970b){_0x420eaf=_0x420eaf-0x1be;const _0x5652b0=a64_0x5652();let _0x4cfb40=_0x5652b0[_0x420eaf];return _0x4cfb40;}function a64_0x5652(){const _0x57bcab=['cliPath','Exported\x20service\x20','detail','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','10JeyRoK','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','write','report','manifests','1044984InpDUv','string','file','list','1yrlOwP','Service\x20registry\x20validation\x20passed.','type','commands','entry','source','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','registryIndex','reduce','\x20service(s),\x20updated\x20','serviceCount','1056160FnvNPL','name','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','flags','Removed\x20service\x20','map','read','Updated','remove','Imported','str','\x20service(s).','entries','hash','length','description','kind','filePath','normalizedManifest','risk','imported','Imported\x20','9GoYMBK','service','1924680vrFTxN','warnings','registryPath','842559lIVwTC','WRITE','559978NAWYyx','Service\x20Tree\x20manifest\x20file\x20path','errors','Local\x20service\x20not\x20found:\x20','replaced','Service\x20manifest\x20validation\x20passed.','version','target','1281144XDuneE','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','import','292076WYDCgQ','serviceCode','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.'];a64_0x5652=function(){return _0x57bcab;};return a64_0x5652();}export const serviceDefinitions=[{'service':a64_0xe2b4ee(0x1cc),'command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x36ad9a){const _0x3850d1=a64_0xe2b4ee,_0x4ac038=loadServiceManifestFromFile(_0x36ad9a['str'](_0x3850d1(0x1ec)));if(!_0x4ac038['report']['ok'])return{'ok':![],'data':{'file':_0x4ac038[_0x3850d1(0x1c6)],'hash':_0x4ac038[_0x3850d1(0x1c2)],'kind':_0x4ac038[_0x3850d1(0x1c5)],'serviceCount':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1c3)],'services':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1ff)](summarizeLoadedManifest),'errors':_0x4ac038[_0x3850d1(0x1e8)][_0x3850d1(0x1d4)],'warnings':_0x4ac038[_0x3850d1(0x1e8)][_0x3850d1(0x1ce)]},'message':formatValidationFailure(_0x4ac038[_0x3850d1(0x1e8)])};if(_0x4ac038[_0x3850d1(0x1c5)]==='registry'||_0x4ac038['manifests'][_0x3850d1(0x1c3)]!==0x1)return{'ok':!![],'data':{'file':_0x4ac038[_0x3850d1(0x1c6)],'hash':_0x4ac038[_0x3850d1(0x1c2)],'kind':_0x4ac038[_0x3850d1(0x1c5)],'serviceCount':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1c3)],'commandCount':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1f7)]((_0x5dc4c2,_0x1c2e5a)=>_0x5dc4c2+(_0x1c2e5a[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1f1)][_0x3850d1(0x1c3)]??0x0),0x0),'services':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1ff)](summarizeLoadedManifest),'warnings':_0x4ac038['report']['warnings']},'message':_0x3850d1(0x1ef)};return{'ok':!![],'data':{'file':_0x4ac038[_0x3850d1(0x1c6)],'hash':_0x4ac038[_0x3850d1(0x1c2)],'kind':_0x4ac038[_0x3850d1(0x1c5)],'service':_0x4ac038[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1cc)],'version':_0x4ac038[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1d8)],'commandCount':_0x4ac038[_0x3850d1(0x1c7)]?.['commands']['length']??0x0,'commands':_0x4ac038[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1f1)][_0x3850d1(0x1ff)](_0x89a55f=>({'path':_0x89a55f[_0x3850d1(0x1e1)],'risk':_0x89a55f['risk'],'target':toPublicServiceTreeTarget(_0x89a55f[_0x3850d1(0x1d9)])})),'warnings':_0x4ac038[_0x3850d1(0x1e8)][_0x3850d1(0x1ce)]},'message':_0x3850d1(0x1d7)};}},{'service':a64_0xe2b4ee(0x1cc),'command':a64_0xe2b4ee(0x1dd),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a64_0xe2b4ee(0x1e7),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5716f8){const _0x11864a=a64_0xe2b4ee,_0x1c195a=loadServiceManifestFromFile(_0x5716f8[_0x11864a(0x1bf)]('file'));return{'method':_0x11864a(0x1d1),'url':getServiceRegistryPath(),'body':{'file':_0x1c195a['filePath'],'hash':_0x1c195a[_0x11864a(0x1c2)],'kind':_0x1c195a[_0x11864a(0x1c5)],'ok':_0x1c195a[_0x11864a(0x1e8)]['ok'],'service':_0x1c195a['normalizedManifest']?.['service'],'version':_0x1c195a['normalizedManifest']?.[_0x11864a(0x1d8)],'serviceCount':_0x1c195a[_0x11864a(0x1e9)][_0x11864a(0x1c3)],'services':_0x1c195a['manifests'][_0x11864a(0x1ff)](_0xa5c5cc=>({'service':_0xa5c5cc[_0x11864a(0x1c7)]?.[_0x11864a(0x1cc)],'version':_0xa5c5cc[_0x11864a(0x1c7)]?.[_0x11864a(0x1d8)],'commandCount':_0xa5c5cc[_0x11864a(0x1c7)]?.[_0x11864a(0x1f1)]['length']??0x0,'errors':_0xa5c5cc[_0x11864a(0x1e8)][_0x11864a(0x1d4)]})),'errors':_0x1c195a['report'][_0x11864a(0x1d4)],'commandCount':_0x1c195a[_0x11864a(0x1c7)]?.[_0x11864a(0x1f1)][_0x11864a(0x1c3)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x377a83){const _0x45440b=a64_0xe2b4ee,_0x3dd288=importServiceManifest(_0x377a83[_0x45440b(0x1bf)](_0x45440b(0x1ec)));if(_0x3dd288[_0x45440b(0x1c1)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x3dd288[_0x45440b(0x1cf)],'imported':_0x3dd288[_0x45440b(0x1c9)],'updated':_0x3dd288['updated'],'serviceCount':_0x3dd288[_0x45440b(0x1f9)],'services':_0x3dd288[_0x45440b(0x1c1)][_0x45440b(0x1ff)](summarizeService)},'message':_0x45440b(0x1ca)+_0x3dd288['imported']+_0x45440b(0x1f8)+_0x3dd288['updated']+_0x45440b(0x1c0)};return{'ok':!![],'data':{'registryPath':_0x3dd288[_0x45440b(0x1cf)],'replaced':_0x3dd288[_0x45440b(0x1d6)],'imported':_0x3dd288[_0x45440b(0x1c9)],'updated':_0x3dd288['updated'],'serviceCount':_0x3dd288[_0x45440b(0x1f9)],'service':summarizeService(_0x3dd288[_0x45440b(0x1f2)])},'message':(_0x3dd288[_0x45440b(0x1d6)]?_0x45440b(0x201):_0x45440b(0x1be))+'\x20service\x20'+_0x3dd288[_0x45440b(0x1f2)][_0x45440b(0x1df)]+'.'};}},{'service':'service','command':'export','description':a64_0xe2b4ee(0x1f5),'risk':a64_0xe2b4ee(0x1e7),'confirmationDescription':a64_0xe2b4ee(0x1e0),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3b7a98){const _0x4d9a12=a64_0xe2b4ee,_0x5cbf32=getLocalServiceEntry(_0x3b7a98[_0x4d9a12(0x1bf)](_0x4d9a12(0x1cc)));return{'method':_0x4d9a12(0x1d1),'url':_0x3b7a98[_0x4d9a12(0x1bf)](_0x4d9a12(0x1ec)),'body':{'service':_0x3b7a98[_0x4d9a12(0x1bf)]('service'),'found':Boolean(_0x5cbf32),'version':_0x5cbf32?.['version'],'source':_0x5cbf32?.['source']},'description':_0x4d9a12(0x1f4)};},async 'execute'(_0x5144b4){const _0x460070=a64_0xe2b4ee,_0x52a297=exportServiceManifest(_0x5144b4[_0x460070(0x1bf)]('service'),_0x5144b4[_0x460070(0x1bf)]('file'));return{'ok':!![],'data':{'registryPath':_0x52a297[_0x460070(0x1cf)],'file':_0x52a297[_0x460070(0x1c6)],'service':summarizeService(_0x52a297['entry'])},'message':_0x460070(0x1e2)+_0x52a297[_0x460070(0x1f2)]['serviceCode']+'.'};}},{'service':a64_0xe2b4ee(0x1cc),'command':a64_0xe2b4ee(0x1ed),'description':a64_0xe2b4ee(0x1e4),'risk':a64_0xe2b4ee(0x200),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x3515a5=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3515a5['length'],'services':_0x3515a5['map'](summarizeService)}};}},{'service':a64_0xe2b4ee(0x1cc),'command':a64_0xe2b4ee(0x202),'description':a64_0xe2b4ee(0x1dc),'risk':a64_0xe2b4ee(0x1e7),'confirmationDescription':a64_0xe2b4ee(0x1e6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4fd991){const _0x36cdef=a64_0xe2b4ee,_0x20a753=getLocalServiceEntry(_0x4fd991[_0x36cdef(0x1bf)]('service'));return{'method':_0x36cdef(0x1d1),'url':getServiceRegistryPath(),'body':{'service':_0x4fd991[_0x36cdef(0x1bf)](_0x36cdef(0x1cc)),'found':Boolean(_0x20a753),'version':_0x20a753?.[_0x36cdef(0x1d8)],'source':_0x20a753?.[_0x36cdef(0x1f3)]},'description':_0x36cdef(0x1db)};},async 'execute'(_0x4044ec){const _0x523f1c=a64_0xe2b4ee,_0x193f43=removeServiceManifest(_0x4044ec['str']('service'));return{'ok':!![],'data':{'registryPath':_0x193f43[_0x523f1c(0x1cf)],'serviceCount':_0x193f43[_0x523f1c(0x1f9)],'service':summarizeService(_0x193f43['entry'])},'message':_0x523f1c(0x1fe)+_0x193f43[_0x523f1c(0x1f2)][_0x523f1c(0x1df)]+'.'};}},{'service':'service','command':a64_0xe2b4ee(0x1e3),'description':a64_0xe2b4ee(0x1fc),'risk':a64_0xe2b4ee(0x200),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x240272){const _0x2907c9=a64_0xe2b4ee,_0x4025b4=getLocalServiceEntry(_0x240272[_0x2907c9(0x1bf)]('service'));if(!_0x4025b4)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x240272[_0x2907c9(0x1bf)]('service')},'message':_0x2907c9(0x1d5)+_0x240272[_0x2907c9(0x1bf)](_0x2907c9(0x1cc))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4025b4),'manifest':_0x4025b4['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x4025b4[_0x2907c9(0x1c7)])}};}}];
|
|
@@ -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
|
+
const a65_0x4dd8a3=a65_0xa07e;(function(_0x45192e,_0xfb3373){const _0x5e5e2a=a65_0xa07e,_0x274c3c=_0x45192e();while(!![]){try{const _0x565de9=parseInt(_0x5e5e2a(0xc4))/0x1*(parseInt(_0x5e5e2a(0x82))/0x2)+parseInt(_0x5e5e2a(0x7e))/0x3*(parseInt(_0x5e5e2a(0xba))/0x4)+-parseInt(_0x5e5e2a(0x78))/0x5+-parseInt(_0x5e5e2a(0x87))/0x6*(-parseInt(_0x5e5e2a(0xbf))/0x7)+-parseInt(_0x5e5e2a(0x91))/0x8*(-parseInt(_0x5e5e2a(0x81))/0x9)+-parseInt(_0x5e5e2a(0xaa))/0xa+parseInt(_0x5e5e2a(0x79))/0xb*(-parseInt(_0x5e5e2a(0xbe))/0xc);if(_0x565de9===_0xfb3373)break;else _0x274c3c['push'](_0x274c3c['shift']());}catch(_0x274ed0){_0x274c3c['push'](_0x274c3c['shift']());}}}(a65_0x1e9f,0x6496e));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_0x4dd8a3(0x8c);export function getServiceRegistryPath(_0x4de6e0={}){const _0x50f61f=a65_0x4dd8a3;return resolve(_0x4de6e0[_0x50f61f(0xa8)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3fe26d={}){const _0x476add=a65_0x4dd8a3,_0x769da7=getServiceRegistryPath(_0x3fe26d);if(!existsSync(_0x769da7))return emptyServiceRegistry();try{const _0x26aaab=readFileSync(_0x769da7,_0x476add(0xbb));if(!_0x26aaab['trim']())return emptyServiceRegistry();const _0x5ad7aa=JSON[_0x476add(0x83)](_0x26aaab);if(_0x5ad7aa[_0x476add(0x8f)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x476add(0xc7)+String(_0x5ad7aa[_0x476add(0x8f)]),'Remove\x20or\x20migrate\x20'+_0x769da7+'.');if(!Array[_0x476add(0xa3)](_0x5ad7aa[_0x476add(0x7a)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5ad7aa[_0x476add(0xa9)],'services':_0x5ad7aa['services']};}catch(_0x15c5ad){if(_0x15c5ad instanceof Error&&_0x15c5ad[_0x476add(0xa7)]===_0x476add(0xb6))throw _0x15c5ad;throw CliErrors['validation'](_0x476add(0xac)+_0x769da7,_0x476add(0x95));}}export function writeServiceRegistry(_0xe9a11d,_0x53dd02={}){const _0x4561a1=a65_0x4dd8a3,_0x1a308c=getServiceRegistryPath(_0x53dd02),_0x47e003=dirname(_0x1a308c);!existsSync(_0x47e003)&&mkdirSync(_0x47e003,{'recursive':!![]});const _0x3dd66d=_0x1a308c+'.tmp';try{writeFileSync(_0x3dd66d,JSON[_0x4561a1(0x7b)](_0xe9a11d,null,0x2)+'\x0a',{'encoding':_0x4561a1(0xbb),'mode':0x180}),renameSync(_0x3dd66d,_0x1a308c);}catch(_0x71bf40){try{unlinkSync(_0x3dd66d);}catch{}if(_0x71bf40?.[_0x4561a1(0xa2)]===_0x4561a1(0xb8))throw CliErrors[_0x4561a1(0x7c)](_0x4561a1(0x9c)+_0x1a308c);throw _0x71bf40;}return _0x1a308c;}function a65_0xa07e(_0x4d5482,_0x5cfc48){_0x4d5482=_0x4d5482-0x77;const _0x1e9f8c=a65_0x1e9f();let _0xa07e5b=_0x1e9f8c[_0x4d5482];return _0xa07e5b;}export function loadServiceManifestFromFile(_0x14f952){const _0x169e81=a65_0x4dd8a3,_0x14adde=resolve(_0x14f952);if(!existsSync(_0x14adde))throw CliErrors[_0x169e81(0x7c)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x14f952);let _0x565f48;const _0x20696b=readFileSync(_0x14adde,_0x169e81(0xbb));try{_0x565f48=JSON[_0x169e81(0x83)](_0x20696b);}catch{throw CliErrors[_0x169e81(0x7c)](_0x169e81(0xa4)+_0x14f952,_0x169e81(0x85));}const _0x57544f=sha256(_0x20696b),_0x3a3694=extractLoadedServiceManifests(_0x565f48,_0x57544f),_0x341419=aggregateValidationReports(_0x3a3694),_0x3b42ee=_0x3a3694[0x0];return{'filePath':_0x14adde,'hash':_0x57544f,'kind':isServiceRegistryLike(_0x565f48)?_0x169e81(0x9a):_0x169e81(0x77),'manifest':_0x3b42ee?.['manifest']??_0x565f48,'report':_0x341419,'normalizedManifest':_0x3a3694[_0x169e81(0x8e)]===0x1?_0x3b42ee?.['normalizedManifest']:undefined,'manifests':_0x3a3694};}export function importServiceManifest(_0x5b53bd,_0x533052={}){const _0x88805f=a65_0x4dd8a3,_0x4a89ca=loadServiceManifestFromFile(_0x5b53bd);if(!_0x4a89ca[_0x88805f(0xb0)]['ok'])throw CliErrors[_0x88805f(0x7c)](formatValidationFailure(_0x4a89ca[_0x88805f(0xb0)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x4a89ca[_0x88805f(0xc2)]['length']===0x0)throw CliErrors[_0x88805f(0x7c)](_0x88805f(0xa0),_0x88805f(0x8b));const _0x3abb11=readServiceRegistry(_0x533052),_0x179067=(_0x533052[_0x88805f(0x90)]??(()=>new Date()))()[_0x88805f(0x98)](),_0x483d16=[];let _0x1796a8=0x0,_0x36ff51=0x0;for(const _0x5b428a of _0x4a89ca[_0x88805f(0xc2)]){if(!_0x5b428a[_0x88805f(0xb2)])continue;const _0x3179b5=_0x5b428a['normalizedManifest'][_0x88805f(0x89)][_0x88805f(0xa2)],_0x1639f6={'serviceCode':_0x3179b5,'version':_0x5b428a[_0x88805f(0xb2)][_0x88805f(0xc0)],'importedAt':_0x179067,'source':{'type':'file','path':_0x4a89ca[_0x88805f(0xc1)],'hash':_0x5b428a['sourceHash']},'manifest':_0x5b428a[_0x88805f(0x77)],'normalizedManifest':_0x5b428a[_0x88805f(0xb2)]},_0x75f378=_0x3abb11[_0x88805f(0x7a)]['findIndex'](_0x283669=>_0x283669[_0x88805f(0xae)]===_0x3179b5);_0x75f378>=0x0?(_0x3abb11['services'][_0x75f378]=_0x1639f6,_0x36ff51++):(_0x3abb11[_0x88805f(0x7a)]['push'](_0x1639f6),_0x1796a8++),_0x483d16[_0x88805f(0xa5)](_0x1639f6);}_0x3abb11['services']['sort']((_0x4034d9,_0x29b0af)=>_0x4034d9[_0x88805f(0xae)]['localeCompare'](_0x29b0af[_0x88805f(0xae)])),_0x3abb11[_0x88805f(0xa9)]=_0x179067;const _0x2075f9=writeServiceRegistry(_0x3abb11,_0x533052);return{'registryPath':_0x2075f9,'entry':_0x483d16[0x0],'replaced':_0x483d16['length']===0x1?_0x36ff51===0x1:_0x36ff51>0x0,'entries':_0x483d16,'imported':_0x1796a8,'updated':_0x36ff51,'serviceCount':_0x3abb11[_0x88805f(0x7a)][_0x88805f(0x8e)]};}export function exportServiceManifest(_0x49e3b4,_0x1b26e3,_0x17aa4b={}){const _0x3e5093=a65_0x4dd8a3,_0x4ff55a=getServiceRegistryPath(_0x17aa4b),_0x54a6d0=getLocalServiceEntry(_0x49e3b4,_0x17aa4b);if(!_0x54a6d0)throw CliErrors[_0x3e5093(0x7c)]('Local\x20service\x20not\x20found:\x20'+_0x49e3b4,_0x3e5093(0xc5));const _0x3e705d=resolve(_0x1b26e3),_0x32bac3=dirname(_0x3e705d);return!existsSync(_0x32bac3)&&mkdirSync(_0x32bac3,{'recursive':!![]}),writeFileSync(_0x3e705d,JSON[_0x3e5093(0x7b)](_0x54a6d0[_0x3e5093(0x77)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x4ff55a,'filePath':_0x3e705d,'entry':_0x54a6d0};}export function removeServiceManifest(_0x2dda8f,_0x4b674b={}){const _0x488f5f=a65_0x4dd8a3,_0x164564=readServiceRegistry(_0x4b674b),_0x34df62=_0x2dda8f['trim'](),_0x20b0a8=_0x164564['services'][_0x488f5f(0x94)](_0xf182da=>_0xf182da['serviceCode']===_0x34df62);if(_0x20b0a8<0x0)throw CliErrors['validation'](_0x488f5f(0x9b)+_0x34df62,_0x488f5f(0xc5));const [_0x2d3605]=_0x164564['services']['splice'](_0x20b0a8,0x1),_0x1154ff=(_0x4b674b[_0x488f5f(0x90)]??(()=>new Date()))()[_0x488f5f(0x98)]();_0x164564['updatedAt']=_0x1154ff;const _0xfedaae=writeServiceRegistry(_0x164564,_0x4b674b);return{'registryPath':_0xfedaae,'entry':_0x2d3605,'serviceCount':_0x164564['services']['length']};}export function listLocalServices(_0x4d0849={}){const _0x3748b8=a65_0x4dd8a3;return readServiceRegistry(_0x4d0849)[_0x3748b8(0x7a)];}export function getLocalServiceEntry(_0x305f9e,_0x5c49ea={}){const _0x14d1f8=a65_0x4dd8a3;return readServiceRegistry(_0x5c49ea)['services'][_0x14d1f8(0x9d)](_0x3e8c43=>_0x3e8c43['serviceCode']===_0x305f9e['trim']());}export function listLocalServiceTrees(_0x92eb29={}){const _0x30210e=a65_0x4dd8a3;return readServiceRegistry(_0x92eb29)[_0x30210e(0x7a)]['map'](_0x54829e=>_0x54829e[_0x30210e(0xb2)]);}function a65_0x1e9f(){const _0x2b8023=['service.json','Service\x20manifest\x20validation\x20failed:\x0a','length','schemaVersion','now','16kaOYfh','services\x20must\x20be\x20an\x20array','object','findIndex','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','commandCount','message','toISOString','target','registry','Local\x20service\x20not\x20found:\x20','Cannot\x20write\x20service\x20registry:\x20','find','update','string','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','$.services[','code','isArray','Invalid\x20service\x20manifest\x20JSON:\x20','push','].manifest','name','homeDir','updatedAt','409720hudMPu','slice','Invalid\x20service\x20registry\x20JSON:\x20','errors','serviceCode','Unsupported\x20schemaVersion:\x20','report','commands','normalizedManifest','cliPath','path','reduce','CliError','join','ENOENT','kind','361820HmxBGX','utf8','startsWith','hex','12vXqbQF','42uzWwqL','version','filePath','manifests','invalid','298LkusMp','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','warnings','Unsupported\x20service\x20registry\x20schemaVersion:\x20','trim','manifest','3692440dAikpV','3902569lhCwFp','services','stringify','validation','risk','3GLivyK','map','source','428589JOWDVT','4846UfdHFN','parse','bff\x20target\x20requires\x20functionName.','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','flatMap','638502QytAqT','missing','service','registryIndex','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.'];a65_0x1e9f=function(){return _0x2b8023;};return a65_0x1e9f();}export function inspectServiceRegistry(_0x4472bf={}){const _0x272c64=a65_0x4dd8a3,_0x5276eb=getServiceRegistryPath(_0x4472bf);if(!existsSync(_0x5276eb))return emptyServiceRegistryInspection(_0x5276eb,_0x272c64(0x88),![]);try{const _0x2f122c=readFileSync(_0x5276eb,'utf8');if(!_0x2f122c[_0x272c64(0xc8)]())return emptyServiceRegistryInspection(_0x5276eb,'empty',!![]);const _0x2965e8=JSON[_0x272c64(0x83)](_0x2f122c);if(_0x2965e8[_0x272c64(0x8f)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5276eb,_0x272c64(0xc3),!![]),'schemaVersion':_0x2965e8[_0x272c64(0x8f)],'message':_0x272c64(0xaf)+String(_0x2965e8['schemaVersion'])};if(!Array[_0x272c64(0xa3)](_0x2965e8[_0x272c64(0x7a)]))return{...emptyServiceRegistryInspection(_0x5276eb,_0x272c64(0xc3),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2965e8['updatedAt'],'message':_0x272c64(0x92)};const _0xcdf049=_0x2965e8['services'][_0x272c64(0x7f)](summarizeLocalServiceEntry);return{'registryPath':_0x5276eb,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2965e8[_0x272c64(0xa9)],'serviceCount':_0xcdf049[_0x272c64(0x8e)],'commandCount':_0xcdf049[_0x272c64(0xb5)]((_0x47724b,_0x4cc678)=>_0x47724b+_0x4cc678[_0x272c64(0x96)],0x0),'services':_0xcdf049};}catch(_0x3a6c7d){return{...emptyServiceRegistryInspection(_0x5276eb,'invalid',!![]),'message':_0x3a6c7d instanceof Error?_0x3a6c7d[_0x272c64(0x97)]:String(_0x3a6c7d)};}}export function formatValidationFailure(_0x4536db){const _0x49cdf4=a65_0x4dd8a3,_0x600a96=_0x4536db[_0x49cdf4(0xad)][_0x49cdf4(0x7f)](_0x578572=>_0x578572[_0x49cdf4(0xb4)]+':\x20'+_0x578572['message']);return _0x49cdf4(0x8d)+_0x600a96[_0x49cdf4(0xb7)]('\x0a');}function extractLoadedServiceManifests(_0x384194,_0x10fa17){const _0x17b3dd=a65_0x4dd8a3;if(!isServiceRegistryLike(_0x384194)){const _0x3f4562=_0x384194,{manifest:_0x2614e4,errors:_0x389661}=adaptServiceTreeManifestForLegacyFramework(_0x3f4562),_0x590f0a=validateServiceTreeManifest(_0x2614e4),_0x1a412b=mergeValidationErrors(_0x590f0a,_0x389661);return[{'manifest':_0x3f4562,'report':_0x1a412b,'normalizedManifest':_0x1a412b['ok']?normalizeServiceTreeManifest(_0x2614e4):undefined,'sourceHash':_0x10fa17}];}return _0x384194[_0x17b3dd(0x7a)][_0x17b3dd(0x7f)]((_0x4203b9,_0x206b8c)=>{const _0x229ab6=_0x17b3dd,_0x381308=isObjectRecord(_0x4203b9)?_0x4203b9[_0x229ab6(0x77)]:undefined,{manifest:_0x17af59,errors:_0x1ea1ff}=adaptServiceTreeManifestForLegacyFramework(_0x381308),_0x5f1503=validateServiceTreeManifest(_0x17af59),_0x228121=mergeValidationErrors(_0x5f1503,_0x1ea1ff),_0x1e86a8=isObjectRecord(_0x4203b9)&&typeof _0x4203b9[_0x229ab6(0xae)]===_0x229ab6(0x9f)?_0x4203b9['serviceCode']:undefined;return{'manifest':_0x381308,'report':_0x228121,'normalizedManifest':_0x228121['ok']?normalizeServiceTreeManifest(_0x17af59):undefined,'sourceHash':sha256(JSON['stringify'](_0x381308,null,0x2)+'\x0a'),'registryIndex':_0x206b8c,'registryServiceCode':_0x1e86a8};});}function mergeValidationErrors(_0x281261,_0x1188c4){const _0x591f97=a65_0x4dd8a3,_0x4c7cd5=_0x281261[_0x591f97(0xad)][_0x591f97(0x7f)](_0x1252b6=>_0x1252b6[_0x591f97(0x97)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x1252b6,'message':_0x591f97(0x84)}:_0x1252b6),_0x35950b=[..._0x1188c4,..._0x4c7cd5];return{'ok':_0x35950b[_0x591f97(0x8e)]===0x0,'errors':_0x35950b,'warnings':_0x281261['warnings']};}function aggregateValidationReports(_0x3df166){const _0xddc0d7=a65_0x4dd8a3,_0x5e5a68=_0x3df166[_0xddc0d7(0x86)](_0xc08f98=>_0xc08f98[_0xddc0d7(0x8a)]===undefined?_0xc08f98['report'][_0xddc0d7(0xad)]:_0xc08f98[_0xddc0d7(0xb0)]['errors'][_0xddc0d7(0x7f)](_0x50ebd1=>({..._0x50ebd1,'path':prefixRegistryIssuePath(_0xc08f98['registryIndex'],_0x50ebd1[_0xddc0d7(0xb4)])}))),_0x4b4ccd=_0x3df166[_0xddc0d7(0x86)](_0x147348=>_0x147348[_0xddc0d7(0x8a)]===undefined?_0x147348['report'][_0xddc0d7(0xc6)]:_0x147348['report'][_0xddc0d7(0xc6)]['map'](_0xba089d=>({..._0xba089d,'path':prefixRegistryIssuePath(_0x147348[_0xddc0d7(0x8a)],_0xba089d[_0xddc0d7(0xb4)])})));return{'ok':_0x5e5a68['length']===0x0,'errors':_0x5e5a68,'warnings':_0x4b4ccd};}function prefixRegistryIssuePath(_0x15d6ae,_0x47e4e){const _0x5301b8=a65_0x4dd8a3;if(_0x47e4e==='$')return'$.services['+_0x15d6ae+_0x5301b8(0xa6);if(_0x47e4e['startsWith']('$.'))return _0x5301b8(0xa1)+_0x15d6ae+_0x5301b8(0xa6)+_0x47e4e['slice'](0x1);if(_0x47e4e[_0x5301b8(0xbc)]('$['))return'$.services['+_0x15d6ae+_0x5301b8(0xa6)+_0x47e4e[_0x5301b8(0xab)](0x1);return _0x5301b8(0xa1)+_0x15d6ae+'].manifest.'+_0x47e4e;}function isServiceRegistryLike(_0x3e7b9a){const _0x5707f5=a65_0x4dd8a3;return isObjectRecord(_0x3e7b9a)&&_0x3e7b9a[_0x5707f5(0x8f)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x3e7b9a['services']);}function isObjectRecord(_0x959e8d){const _0x2f6c6f=a65_0x4dd8a3;return Boolean(_0x959e8d)&&typeof _0x959e8d===_0x2f6c6f(0x93)&&!Array[_0x2f6c6f(0xa3)](_0x959e8d);}function emptyServiceRegistryInspection(_0x1d11a4,_0x6a08a8,_0x269870){return{'registryPath':_0x1d11a4,'exists':_0x269870,'status':_0x6a08a8,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x36cd1b){const _0x2ce788=a65_0x4dd8a3,_0x5920eb=_0x36cd1b[_0x2ce788(0xb2)],_0x1830e9=_0x5920eb[_0x2ce788(0xb1)][_0x2ce788(0x7f)](_0x5d87a9=>({'path':_0x5d87a9[_0x2ce788(0xb3)],'description':_0x5d87a9['description'],'risk':_0x5d87a9[_0x2ce788(0x7d)],'targetKind':_0x5d87a9['target'][_0x2ce788(0xb9)],'targetCommand':_0x5d87a9[_0x2ce788(0x99)]['command']}));return{'serviceCode':_0x36cd1b[_0x2ce788(0xae)],'name':_0x5920eb[_0x2ce788(0x89)]['name'],'description':_0x5920eb[_0x2ce788(0x89)]['description'],'version':_0x36cd1b[_0x2ce788(0xc0)],'importedAt':_0x36cd1b['importedAt'],'source':_0x36cd1b[_0x2ce788(0x80)],'commandCount':_0x1830e9[_0x2ce788(0x8e)],'commands':_0x1830e9};}function sha256(_0x4fa1d4){const _0x3917c6=a65_0x4dd8a3;return createHash('sha256')[_0x3917c6(0x9e)](_0x4fa1d4)['digest'](_0x3917c6(0xbd));}
|