@lovrabet/lovrabet-cli 2.3.6-beta.1 → 2.3.6-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -2
- 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.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.d.ts +3 -3
- 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 +7 -6
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-management-client.d.ts +17 -0
- package/lib/core/kb-management-client.js +1 -0
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/access-error.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/services/dataset-import/auto-id-runner.js +1 -1
- package/lib/services/dataset-import/excel-reader.js +1 -1
- package/lib/services/dataset-import/image-bytes.js +1 -1
- package/lib/services/dataset-import/image-ooxml.js +1 -1
- package/lib/services/dataset-import/image-runner.js +1 -1
- package/lib/services/dataset-import/metadata.js +1 -1
- package/lib/services/dataset-import/preview.js +1 -1
- package/lib/services/dataset-import/runner.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/positive-safe-integer.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 +1 -1
- package/skills/lovrabet/SKILL.md +5 -3
- package/skills/lovrabet/guides/app-resolution.md +2 -0
- package/skills/lovrabet/guides/dataset-and-data-workflow.md +10 -1
- package/skills/lovrabet/references/dataset-discovery-workflow.md +14 -1
- package/skills/lovrabet/references/instant-api-workflow.md +2 -0
- package/skills/lovrabet/references/lovrabet-app.md +2 -0
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +7 -3
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a55_0x5c5499=a55_0xc13e;(function(_0x648205,_0x59b6cd){const _0x43adc2=a55_0xc13e,_0x41f134=_0x648205();while(!![]){try{const _0x233e80=parseInt(_0x43adc2(0x13f))/0x1*(-parseInt(_0x43adc2(0x13c))/0x2)+-parseInt(_0x43adc2(0x14c))/0x3+parseInt(_0x43adc2(0x14d))/0x4*(parseInt(_0x43adc2(0x141))/0x5)+-parseInt(_0x43adc2(0x155))/0x6+-parseInt(_0x43adc2(0x138))/0x7+-parseInt(_0x43adc2(0x13d))/0x8*(parseInt(_0x43adc2(0x14e))/0x9)+-parseInt(_0x43adc2(0x139))/0xa*(-parseInt(_0x43adc2(0x152))/0xb);if(_0x233e80===_0x59b6cd)break;else _0x41f134['push'](_0x41f134['shift']());}catch(_0x312d91){_0x41f134['push'](_0x41f134['shift']());}}}(a55_0x5871,0x18bb2));import{listRuntimeAppRoles}from'../../core/api-client.js';function a55_0x5871(){const _0x408402=['177288HJnhgM','Invalid\x20runtime\x20role\x20type:\x20','Fuzzy\x20role-name\x20filter','num','Page\x20number','filter','number','paging','571865rrGHnx','410WqBQrz','runtime','toUpperCase','2bIvtwK','549352iMgKaC','Page\x20size\x20from\x201\x20to\x20100','195382QBZhBu','role','5nRThkL','appCode','roleType','validation','--page\x20must\x20be\x20a\x20positive\x20integer.','isSafeInteger','items','read','string','list','name','340080NVfiZI','498244chSLib','9xYmbid','str','pagesize','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','124861NWhWjv','slice','page'];a55_0x5871=function(){return _0x408402;};return a55_0x5871();}import{CliErrors}from'../../errors.js';import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';function a55_0xc13e(_0x71f321,_0x5c822b){_0x71f321=_0x71f321-0x137;const _0x587106=a55_0x5871();let _0xc13e32=_0x587106[_0x71f321];return _0xc13e32;}export const roleList={'service':a55_0x5c5499(0x140),'command':a55_0x5c5499(0x14a),'description':'List\x20runtime\x20roles\x20for\x20the\x20current\x20app','risk':a55_0x5c5499(0x148),'flags':[{'name':'type','type':'string','enum':RUNTIME_ROLE_TYPES,'description':'Runtime\x20role\x20type'},{'name':a55_0x5c5499(0x14b),'type':a55_0x5c5499(0x149),'description':a55_0x5c5499(0x157)},{'name':a55_0x5c5499(0x154),'type':a55_0x5c5499(0x15b),'default':0x1,'description':a55_0x5c5499(0x159)},{'name':a55_0x5c5499(0x150),'type':'number','default':0x64,'description':a55_0x5c5499(0x13e)}],async 'validate'(_0x336f14){const _0x1184bb=a55_0x5c5499,_0x204ad2=_0x336f14[_0x1184bb(0x14f)]('type')[_0x1184bb(0x13b)]();if(_0x204ad2&&!RUNTIME_ROLE_TYPES['includes'](_0x204ad2))throw CliErrors[_0x1184bb(0x144)](_0x1184bb(0x156)+_0x204ad2+'.');const _0x139040=_0x336f14['num'](_0x1184bb(0x154),0x1),_0x2c5608=_0x336f14['num']('pagesize',0x64);if(!Number[_0x1184bb(0x146)](_0x139040)||_0x139040<0x1)throw CliErrors[_0x1184bb(0x144)](_0x1184bb(0x145));if(!Number[_0x1184bb(0x146)](_0x2c5608)||_0x2c5608<0x1||_0x2c5608>0x64)throw CliErrors['validation'](_0x1184bb(0x151));},async 'execute'(_0x1ecba5){const _0x2cfeb3=a55_0x5c5499,_0x592d05=_0x1ecba5['str']('type')['toUpperCase'](),_0x2b15c8=_0x1ecba5[_0x2cfeb3(0x14f)]('name')['trim'](),_0x2eb75c=_0x1ecba5[_0x2cfeb3(0x158)]('page',0x1),_0x1c2603=_0x1ecba5[_0x2cfeb3(0x158)](_0x2cfeb3(0x150),0x64);if(_0x592d05){const _0x4c314d=(await listAllRuntimeRoles(_0x1ecba5[_0x2cfeb3(0x142)],{..._0x2b15c8?{'roleName':_0x2b15c8}:{}}))[_0x2cfeb3(0x15a)](_0x378d81=>_0x378d81[_0x2cfeb3(0x143)]===_0x592d05),_0x2ebf03=(_0x2eb75c-0x1)*_0x1c2603;return{'ok':!![],'data':{'scope':'runtime','roles':_0x4c314d[_0x2cfeb3(0x153)](_0x2ebf03,_0x2ebf03+_0x1c2603)['map'](projectRuntimeRole),'paging':{'currentPage':_0x2eb75c,'pageSize':_0x1c2603,'totalCount':_0x4c314d['length']}}};}const _0x18bb96=await listRuntimeAppRoles(_0x1ecba5[_0x2cfeb3(0x142)],{..._0x2b15c8?{'roleName':_0x2b15c8}:{},'currentPage':_0x2eb75c,'pageSize':_0x1c2603});return{'ok':!![],'data':{'scope':_0x2cfeb3(0x13a),'roles':_0x18bb96[_0x2cfeb3(0x147)]['map'](projectRuntimeRole),'paging':_0x18bb96[_0x2cfeb3(0x137)]}};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a56_0x31f84a=a56_0x2acc;(function(_0x5a08b0,_0x3b3320){const _0x5568ac=a56_0x2acc,_0x6d798a=_0x5a08b0();while(!![]){try{const _0x3de01d=parseInt(_0x5568ac(0x1c9))/0x1+parseInt(_0x5568ac(0x1e0))/0x2+-parseInt(_0x5568ac(0x1c3))/0x3+-parseInt(_0x5568ac(0x1f0))/0x4*(parseInt(_0x5568ac(0x1b5))/0x5)+-parseInt(_0x5568ac(0x1b6))/0x6*(parseInt(_0x5568ac(0x1bb))/0x7)+-parseInt(_0x5568ac(0x1de))/0x8*(-parseInt(_0x5568ac(0x1b9))/0x9)+parseInt(_0x5568ac(0x1b7))/0xa;if(_0x3de01d===_0x3b3320)break;else _0x6d798a['push'](_0x6d798a['shift']());}catch(_0x3ce331){_0x6d798a['push'](_0x6d798a['shift']());}}}(a56_0x5d6a,0x1ed54));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=['ADMIN',a56_0x31f84a(0x1e2),a56_0x31f84a(0x1ee),a56_0x31f84a(0x1cd)];const BUILTIN_ROLE_TYPES=[a56_0x31f84a(0x1d5),'USER',a56_0x31f84a(0x1ee)];export const ROLE_ID_FLAG={'name':'id','type':a56_0x31f84a(0x1f8),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':a56_0x31f84a(0x1cb),'type':'string','required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};function a56_0x2acc(_0x112d67,_0x53a801){_0x112d67=_0x112d67-0x1b4;const _0x5d6ad1=a56_0x5d6a();let _0x2acc50=_0x5d6ad1[_0x112d67];return _0x2acc50;}export const ROLE_CODE_FLAG={'name':'role-code','type':'string','description':a56_0x31f84a(0x1c6)};export const USER_ID_FLAG={'name':a56_0x31f84a(0x1f5),'type':a56_0x31f84a(0x1f6),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a56_0x31f84a(0x1db),'type':a56_0x31f84a(0x1f8),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x2c4b14){const _0x37c3f0=a56_0x31f84a;return BUILTIN_ROLE_TYPES[_0x37c3f0(0x1e3)](_0x2c4b14);}export function assertCustomRuntimeRole(_0x3cca00,_0x2e7d59){const _0x19e760=a56_0x31f84a;if(_0x3cca00[_0x19e760(0x1e8)]!==_0x19e760(0x1cd))throw CliErrors[_0x19e760(0x1ea)](_0x19e760(0x1f9)+_0x2e7d59+_0x19e760(0x1be)+_0x3cca00['roleName']+'\x20('+_0x3cca00[_0x19e760(0x1e8)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x484fa0){const _0x594098=a56_0x31f84a;return{'id':_0x484fa0['id'],'roleCode':_0x484fa0[_0x594098(0x1cf)],'roleName':_0x484fa0[_0x594098(0x1da)],'roleType':_0x484fa0[_0x594098(0x1e8)],'remark':_0x484fa0[_0x594098(0x1fa)],'userCount':_0x484fa0[_0x594098(0x1ca)]??0x0,'permitCount':_0x484fa0[_0x594098(0x1eb)]??0x0,'builtin':isBuiltinRuntimeRole(_0x484fa0['roleType'])};}function a56_0x5d6a(){const _0x59f66e=['--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','\x22\x20was\x20not\x20found\x20in\x20app\x20','applyUserList','roleName','expect-user-count','Runtime\x20role\x20name\x20\x22','flag','789648XksvwB','\x20is\x20already\x20in\x20runtime\x20role\x20','267032FmCrKx','find','USER','includes','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','code','items','role-code','roleType','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','validation','permitCount','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','OWNER','filter','12308fHVjUQ','appCode','userName','map','Runtime\x20user\x20','user','string','\x22\x20is\x20ambiguous.','number','Cannot\x20','remark','push','Runtime\x20role\x20','User\x20','400FaQAzz','186pyhNvc','1986100RAIncT','user-add','9HJsemM','trim','15008KZRZyc','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','--role-code\x20must\x20not\x20be\x20blank.','\x20built-in\x20runtime\x20role\x20','\x20is\x20not\x20in\x20runtime\x20role\x20','Runtime\x20role\x20id\x20','--role-code\x20cannot\x20exceed\x2064\x20characters.','userId','488046QfRiHd','str','userList','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','Pass\x20one\x20role\x20ID:\x20','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','170766sUQxWI','userCount','role','test','CUSTOM','length','roleCode','Missing\x20runtime\x20role\x20reference.','isSafeInteger',',\x20found\x20','paging','join','ADMIN','totalCount'];a56_0x5d6a=function(){return _0x59f66e;};return a56_0x5d6a();}export function readOptionalRuntimeRoleCode(_0xbb0d35){const _0x4cc189=a56_0x31f84a,_0x2b1368=_0xbb0d35[_0x4cc189(0x1dd)](_0x4cc189(0x1e7));if(_0x2b1368===undefined||_0x2b1368===null)return undefined;const _0x1ff1c6=String(_0x2b1368)['trim']();if(!_0x1ff1c6)throw CliErrors[_0x4cc189(0x1ea)](_0x4cc189(0x1bd));if(_0x1ff1c6[_0x4cc189(0x1ce)]>0x40)throw CliErrors[_0x4cc189(0x1ea)](_0x4cc189(0x1c1));return _0x1ff1c6;}export async function getRuntimeRoleById(_0x7d5e4e,_0x26af90){const _0x3e07bd=a56_0x31f84a;if(!Number[_0x3e07bd(0x1d1)](_0x26af90)||_0x26af90<=0x0)throw CliErrors[_0x3e07bd(0x1ea)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x44bdd9=(await listAllRuntimeRoles(_0x7d5e4e))[_0x3e07bd(0x1ef)](_0x39d2cc=>_0x39d2cc['id']===_0x26af90&&(!_0x39d2cc['appCode']||_0x39d2cc[_0x3e07bd(0x1f1)]===_0x7d5e4e));if(_0x44bdd9[_0x3e07bd(0x1ce)]!==0x1)throw CliErrors[_0x3e07bd(0x1ea)](_0x3e07bd(0x1c0)+_0x26af90+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x7d5e4e+'.',_0x3e07bd(0x1e9));return _0x44bdd9[0x0];}export async function listAllRuntimeRoles(_0x513d3c,_0x4c16a8={}){const _0x33c415=a56_0x31f84a,_0x430dce=0x64,_0x4c4d86=[];for(let _0x10f383=0x1;;_0x10f383+=0x1){const _0x1a1cf3=await listRuntimeAppRoles(_0x513d3c,{..._0x4c16a8[_0x33c415(0x1da)]?{'roleName':_0x4c16a8[_0x33c415(0x1da)]}:{},'currentPage':_0x10f383,'pageSize':_0x430dce});_0x4c4d86[_0x33c415(0x1fb)](..._0x1a1cf3[_0x33c415(0x1e6)]);if(_0x1a1cf3['items'][_0x33c415(0x1ce)]<_0x430dce||_0x1a1cf3[_0x33c415(0x1d3)]&&_0x4c4d86[_0x33c415(0x1ce)]>=_0x1a1cf3[_0x33c415(0x1d3)][_0x33c415(0x1d6)])return _0x4c4d86;}}export async function resolveRuntimeRoleRef(_0x116d77,_0x21c436){const _0x32d578=a56_0x31f84a,_0x4a5112=_0x21c436[_0x32d578(0x1ba)]();if(!_0x4a5112)throw CliErrors[_0x32d578(0x1ea)](_0x32d578(0x1d0),'Pass\x20--role\x20<id|name>.');if(/^\d+$/[_0x32d578(0x1cc)](_0x4a5112))return getRuntimeRoleById(_0x116d77,Number(_0x4a5112));const _0x2efe33=(await listAllRuntimeRoles(_0x116d77))[_0x32d578(0x1ef)](_0x345c19=>_0x345c19[_0x32d578(0x1da)]===_0x4a5112);if(_0x2efe33[_0x32d578(0x1ce)]===0x0)throw CliErrors[_0x32d578(0x1ea)]('Runtime\x20role\x20name\x20\x22'+_0x4a5112+_0x32d578(0x1d8)+_0x116d77+'.',_0x32d578(0x1bc));if(_0x2efe33['length']>0x1)throw CliErrors[_0x32d578(0x1ea)](_0x32d578(0x1dc)+_0x4a5112+_0x32d578(0x1f7),_0x32d578(0x1c7)+_0x2efe33[_0x32d578(0x1f3)](_0x15544e=>_0x15544e['id'])[_0x32d578(0x1d4)](',\x20')+'.');return _0x2efe33[0x0];}function parseRuntimeUserId(_0x1bf6cd){const _0xf6387a=a56_0x31f84a,_0x49c10c=_0x1bf6cd[_0xf6387a(0x1ba)](),_0x3c3720=normalizePositiveSafeInteger(_0x49c10c);if(_0x3c3720===undefined)throw CliErrors[_0xf6387a(0x1ea)]('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',_0xf6387a(0x1e4));return _0x3c3720;}export async function prepareRuntimeMemberMutation(_0x35c16f,_0x202a5a){const _0x35bf35=a56_0x31f84a,_0x13fb5f=await resolveRuntimeRoleRef(_0x35c16f[_0x35bf35(0x1f1)],_0x35c16f['str']('role'));if(_0x13fb5f[_0x35bf35(0x1e8)]===_0x35bf35(0x1ee))throw CliErrors[_0x35bf35(0x1ea)]('OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x13f5b3=parseRuntimeUserId(_0x35c16f[_0x35bf35(0x1c4)](_0x35bf35(0x1f5))),_0x286f9e=(await listRuntimeRoleUsers(_0x35c16f['appCode']))[_0x35bf35(0x1f3)](_0x2e63cb=>({..._0x2e63cb,'userList':[..._0x2e63cb[_0x35bf35(0x1c5)]??[]],'applyUserList':[..._0x2e63cb[_0x35bf35(0x1d9)]??[]]})),_0x47cb01=_0x286f9e[_0x35bf35(0x1e1)](_0x1ae717=>_0x1ae717['id']===_0x13fb5f['id']);if(!_0x47cb01)throw CliErrors[_0x35bf35(0x1ea)](_0x35bf35(0x1fc)+_0x13fb5f['id']+'\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.',_0x35bf35(0x1ec));const _0x152476=_0x47cb01['userList'][_0x35bf35(0x1f3)](_0x8ef30c=>_0x8ef30c[_0x35bf35(0x1c2)]),_0x3e5314=_0x35c16f[_0x35bf35(0x1dd)](_0x35bf35(0x1db));if(_0x3e5314!==undefined&&_0x3e5314!==null&&_0x3e5314!==''){const _0x5ba67e=_0x35c16f['num'](_0x35bf35(0x1db));if(!Number[_0x35bf35(0x1d1)](_0x5ba67e)||_0x5ba67e<0x0)throw CliErrors[_0x35bf35(0x1ea)](_0x35bf35(0x1d7));if(_0x152476[_0x35bf35(0x1ce)]!==_0x5ba67e)throw CliErrors[_0x35bf35(0x1ea)]('Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20'+_0x5ba67e+_0x35bf35(0x1d2)+_0x152476[_0x35bf35(0x1ce)]+'.',_0x35bf35(0x1ed));}const _0x529dde=_0x152476['includes'](_0x13f5b3),_0x4d2c2=[];let _0x96c5d8=!![];if(_0x202a5a===_0x35bf35(0x1b8)){const _0x538ca3=await listRuntimeAppUsers(_0x35c16f[_0x35bf35(0x1f1)]),_0x498ca4=_0x538ca3[_0x35bf35(0x1ef)](_0x4599ee=>Number(_0x4599ee[_0x35bf35(0x1e5)])===_0x13f5b3);if(_0x498ca4[_0x35bf35(0x1ce)]!==0x1||!_0x498ca4[0x0]['userName']?.[_0x35bf35(0x1ba)]())throw CliErrors[_0x35bf35(0x1ea)](_0x35bf35(0x1f4)+_0x13f5b3+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x35c16f[_0x35bf35(0x1f1)]+'.',_0x35bf35(0x1c8));_0x529dde?(_0x96c5d8=![],_0x4d2c2['push'](_0x35bf35(0x1b4)+_0x13f5b3+_0x35bf35(0x1df)+_0x13fb5f['id']+'.')):_0x47cb01[_0x35bf35(0x1c5)]['push']({'userId':_0x13f5b3,'username':_0x498ca4[0x0][_0x35bf35(0x1f2)]});}else!_0x529dde?(_0x96c5d8=![],_0x4d2c2[_0x35bf35(0x1fb)]('User\x20'+_0x13f5b3+_0x35bf35(0x1bf)+_0x13fb5f['id']+'.')):_0x47cb01[_0x35bf35(0x1c5)]=_0x47cb01[_0x35bf35(0x1c5)]['filter'](_0x3dcfe7=>_0x3dcfe7[_0x35bf35(0x1c2)]!==_0x13f5b3);return{'role':_0x13fb5f,'userId':_0x13f5b3,'roleList':_0x286f9e,'before':{'userIds':_0x152476},'after':{'userIds':_0x47cb01[_0x35bf35(0x1c5)]['map'](_0x5d270e=>_0x5d270e['userId'])},'shouldWrite':_0x96c5d8,'warnings':_0x4d2c2};}export function runtimeRoleWriteResult(_0x43b8c8,_0xf1324c,_0x3626bc,_0x315631,_0x536ba9,_0x43c9df=[]){return{'operation':_0x43b8c8,'scope':'runtime','selector':_0xf1324c,'before':_0x3626bc,'after':_0x315631,'dryRun':![],'backend':_0x536ba9,'warnings':_0x43c9df};}
|
|
1
|
+
const a56_0x1d6628=a56_0x10cd;(function(_0x947cca,_0x50e754){const _0x1058ab=a56_0x10cd,_0x234211=_0x947cca();while(!![]){try{const _0x3ca3f4=parseInt(_0x1058ab(0x186))/0x1*(-parseInt(_0x1058ab(0x17c))/0x2)+-parseInt(_0x1058ab(0x155))/0x3+-parseInt(_0x1058ab(0x17a))/0x4*(-parseInt(_0x1058ab(0x167))/0x5)+parseInt(_0x1058ab(0x151))/0x6*(parseInt(_0x1058ab(0x18e))/0x7)+-parseInt(_0x1058ab(0x16f))/0x8+parseInt(_0x1058ab(0x159))/0x9*(-parseInt(_0x1058ab(0x153))/0xa)+parseInt(_0x1058ab(0x17d))/0xb*(parseInt(_0x1058ab(0x16c))/0xc);if(_0x3ca3f4===_0x50e754)break;else _0x234211['push'](_0x234211['shift']());}catch(_0xd478b7){_0x234211['push'](_0x234211['shift']());}}}(a56_0x26bf,0xc919f));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x1d6628(0x181),a56_0x1d6628(0x171),'OWNER',a56_0x1d6628(0x18f)];const BUILTIN_ROLE_TYPES=['ADMIN',a56_0x1d6628(0x171),a56_0x1d6628(0x161)];export const ROLE_ID_FLAG={'name':'id','type':a56_0x1d6628(0x16b),'required':!![],'description':a56_0x1d6628(0x174)};export const ROLE_REF_FLAG={'name':'role','type':a56_0x1d6628(0x15b),'required':!![],'description':a56_0x1d6628(0x163)};export const ROLE_CODE_FLAG={'name':a56_0x1d6628(0x17f),'type':a56_0x1d6628(0x15b),'description':a56_0x1d6628(0x162)};export const USER_ID_FLAG={'name':a56_0x1d6628(0x170),'type':a56_0x1d6628(0x15b),'required':!![],'description':'Runtime\x20numeric\x20userId'};function a56_0x10cd(_0x2291eb,_0x23ada3){_0x2291eb=_0x2291eb-0x151;const _0x26bfb2=a56_0x26bf();let _0x10cddc=_0x26bfb2[_0x2291eb];return _0x10cddc;}export const EXPECT_USER_COUNT_FLAG={'name':a56_0x1d6628(0x16e),'type':a56_0x1d6628(0x16b),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x2c21a8){const _0x1b5ad4=a56_0x1d6628;return BUILTIN_ROLE_TYPES[_0x1b5ad4(0x15f)](_0x2c21a8);}export function assertCustomRuntimeRole(_0x527e23,_0x5b1c3a){const _0x5d544a=a56_0x1d6628;if(_0x527e23[_0x5d544a(0x166)]!=='CUSTOM')throw CliErrors[_0x5d544a(0x172)](_0x5d544a(0x193)+_0x5b1c3a+_0x5d544a(0x180)+_0x527e23[_0x5d544a(0x15e)]+'\x20('+_0x527e23['roleType']+').',_0x5d544a(0x18d));}export function projectRuntimeRole(_0x4ed694){const _0x3e2b69=a56_0x1d6628;return{'id':_0x4ed694['id'],'roleCode':_0x4ed694[_0x3e2b69(0x157)],'roleName':_0x4ed694['roleName'],'roleType':_0x4ed694[_0x3e2b69(0x166)],'remark':_0x4ed694['remark'],'userCount':_0x4ed694[_0x3e2b69(0x17e)]??0x0,'permitCount':_0x4ed694[_0x3e2b69(0x178)]??0x0,'builtin':isBuiltinRuntimeRole(_0x4ed694[_0x3e2b69(0x166)])};}export function readOptionalRuntimeRoleCode(_0x1c81d9){const _0x510363=a56_0x1d6628,_0x1e5555=_0x1c81d9[_0x510363(0x165)](_0x510363(0x17f));if(_0x1e5555===undefined||_0x1e5555===null)return undefined;const _0x49b818=String(_0x1e5555)['trim']();if(!_0x49b818)throw CliErrors[_0x510363(0x172)](_0x510363(0x15c));if(_0x49b818['length']>0x40)throw CliErrors[_0x510363(0x172)](_0x510363(0x164));return _0x49b818;}export async function getRuntimeRoleById(_0x24fd0b,_0x3e0381){const _0x2f41f0=a56_0x1d6628;if(!Number[_0x2f41f0(0x19a)](_0x3e0381)||_0x3e0381<=0x0)throw CliErrors[_0x2f41f0(0x172)](_0x2f41f0(0x192));const _0x5a047a=(await listAllRuntimeRoles(_0x24fd0b))[_0x2f41f0(0x154)](_0x4ec925=>_0x4ec925['id']===_0x3e0381&&(!_0x4ec925['appCode']||_0x4ec925[_0x2f41f0(0x152)]===_0x24fd0b));if(_0x5a047a['length']!==0x1)throw CliErrors['validation'](_0x2f41f0(0x158)+_0x3e0381+_0x2f41f0(0x189)+_0x24fd0b+'.',_0x2f41f0(0x177));return _0x5a047a[0x0];}export async function listAllRuntimeRoles(_0x32c68c,_0x2a27fd={}){const _0x8caea7=a56_0x1d6628,_0x16d55d=0x64,_0x1f3e7f=[];for(let _0x271caf=0x1;;_0x271caf+=0x1){const _0x3e35ea=await listRuntimeAppRoles(_0x32c68c,{..._0x2a27fd[_0x8caea7(0x15e)]?{'roleName':_0x2a27fd['roleName']}:{},'currentPage':_0x271caf,'pageSize':_0x16d55d});_0x1f3e7f[_0x8caea7(0x16d)](..._0x3e35ea[_0x8caea7(0x182)]);if(_0x3e35ea[_0x8caea7(0x182)][_0x8caea7(0x15a)]<_0x16d55d||_0x3e35ea[_0x8caea7(0x190)]&&_0x1f3e7f['length']>=_0x3e35ea[_0x8caea7(0x190)][_0x8caea7(0x195)])return _0x1f3e7f;}}export async function resolveRuntimeRoleRef(_0x25f43b,_0x31d6ae){const _0x198f17=a56_0x1d6628,_0x124fc3=_0x31d6ae[_0x198f17(0x173)]();if(!_0x124fc3)throw CliErrors[_0x198f17(0x172)]('Missing\x20runtime\x20role\x20reference.',_0x198f17(0x18a));if(/^\d+$/[_0x198f17(0x175)](_0x124fc3))return getRuntimeRoleById(_0x25f43b,Number(_0x124fc3));const _0x2cc314=(await listAllRuntimeRoles(_0x25f43b))[_0x198f17(0x154)](_0x579e1b=>_0x579e1b[_0x198f17(0x15e)]===_0x124fc3);if(_0x2cc314[_0x198f17(0x15a)]===0x0)throw CliErrors[_0x198f17(0x172)]('Runtime\x20role\x20name\x20\x22'+_0x124fc3+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0x25f43b+'.',_0x198f17(0x176));if(_0x2cc314['length']>0x1)throw CliErrors[_0x198f17(0x172)](_0x198f17(0x17b)+_0x124fc3+'\x22\x20is\x20ambiguous.',_0x198f17(0x196)+_0x2cc314[_0x198f17(0x184)](_0x1a52ef=>_0x1a52ef['id'])[_0x198f17(0x183)](',\x20')+'.');return _0x2cc314[0x0];}function parseRuntimeUserId(_0x255793){const _0x39ea9c=a56_0x1d6628,_0x136ede=_0x255793[_0x39ea9c(0x173)](),_0x5ba6c9=normalizePositiveSafeInteger(_0x136ede);if(_0x5ba6c9===undefined)throw CliErrors[_0x39ea9c(0x172)]('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',_0x39ea9c(0x156));return _0x5ba6c9;}export async function prepareRuntimeMemberMutation(_0x2ddfbc,_0x4a7949){const _0x3dba7c=a56_0x1d6628,_0x53af69=await resolveRuntimeRoleRef(_0x2ddfbc['appCode'],_0x2ddfbc[_0x3dba7c(0x188)]('role'));if(_0x53af69['roleType']===_0x3dba7c(0x161))throw CliErrors[_0x3dba7c(0x172)](_0x3dba7c(0x15d),_0x3dba7c(0x169));const _0x110452=parseRuntimeUserId(_0x2ddfbc['str'](_0x3dba7c(0x170))),_0x591565=(await listRuntimeRoleUsers(_0x2ddfbc[_0x3dba7c(0x152)]))[_0x3dba7c(0x184)](_0x1b9335=>({..._0x1b9335,'userList':[..._0x1b9335[_0x3dba7c(0x199)]??[]],'applyUserList':[..._0x1b9335[_0x3dba7c(0x160)]??[]]})),_0x172727=_0x591565[_0x3dba7c(0x194)](_0x33c11e=>_0x33c11e['id']===_0x53af69['id']);if(!_0x172727)throw CliErrors['validation'](_0x3dba7c(0x198)+_0x53af69['id']+_0x3dba7c(0x197),'Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0x547924=_0x172727[_0x3dba7c(0x199)][_0x3dba7c(0x184)](_0x328365=>_0x328365[_0x3dba7c(0x18b)]),_0x28a698=_0x2ddfbc[_0x3dba7c(0x165)](_0x3dba7c(0x16e));if(_0x28a698!==undefined&&_0x28a698!==null&&_0x28a698!==''){const _0xe268e4=_0x2ddfbc['num']('expect-user-count');if(!Number['isSafeInteger'](_0xe268e4)||_0xe268e4<0x0)throw CliErrors[_0x3dba7c(0x172)](_0x3dba7c(0x187));if(_0x547924[_0x3dba7c(0x15a)]!==_0xe268e4)throw CliErrors[_0x3dba7c(0x172)](_0x3dba7c(0x16a)+_0xe268e4+',\x20found\x20'+_0x547924[_0x3dba7c(0x15a)]+'.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.');}const _0x1c566a=_0x547924[_0x3dba7c(0x15f)](_0x110452),_0x70f688=[];let _0x3e697a=!![];if(_0x4a7949==='user-add'){const _0x3c569e=await listRuntimeAppUsers(_0x2ddfbc[_0x3dba7c(0x152)]),_0x18856a=_0x3c569e['filter'](_0x1f82d6=>Number(_0x1f82d6[_0x3dba7c(0x18c)])===_0x110452);if(_0x18856a[_0x3dba7c(0x15a)]!==0x1||!_0x18856a[0x0][_0x3dba7c(0x168)]?.['trim']())throw CliErrors[_0x3dba7c(0x172)]('Runtime\x20user\x20'+_0x110452+_0x3dba7c(0x189)+_0x2ddfbc[_0x3dba7c(0x152)]+'.',_0x3dba7c(0x185));_0x1c566a?(_0x3e697a=![],_0x70f688['push'](_0x3dba7c(0x179)+_0x110452+'\x20is\x20already\x20in\x20runtime\x20role\x20'+_0x53af69['id']+'.')):_0x172727[_0x3dba7c(0x199)][_0x3dba7c(0x16d)]({'userId':_0x110452,'username':_0x18856a[0x0][_0x3dba7c(0x168)]});}else!_0x1c566a?(_0x3e697a=![],_0x70f688['push'](_0x3dba7c(0x179)+_0x110452+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x53af69['id']+'.')):_0x172727[_0x3dba7c(0x199)]=_0x172727[_0x3dba7c(0x199)][_0x3dba7c(0x154)](_0x32606a=>_0x32606a[_0x3dba7c(0x18b)]!==_0x110452);return{'role':_0x53af69,'userId':_0x110452,'roleList':_0x591565,'before':{'userIds':_0x547924},'after':{'userIds':_0x172727[_0x3dba7c(0x199)][_0x3dba7c(0x184)](_0x52225d=>_0x52225d[_0x3dba7c(0x18b)])},'shouldWrite':_0x3e697a,'warnings':_0x70f688};}function a56_0x26bf(){const _0x2cf97a=['isSafeInteger','66lyYYTK','appCode','455450DcdarA','filter','1748055NgAjHP','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','roleCode','Runtime\x20role\x20id\x20','135IMPfMZ','length','string','--role-code\x20must\x20not\x20be\x20blank.','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','roleName','includes','applyUserList','OWNER','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','--role-code\x20cannot\x20exceed\x2064\x20characters.','flag','roleType','5lGKHXh','userName','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','number','804JqkfWL','push','expect-user-count','11838312QPrsJt','user','USER','validation','trim','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','test','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','permitCount','User\x20','5586492RHHckK','Runtime\x20role\x20name\x20\x22','8026hcOBhD','408936rdEjsh','userCount','role-code','\x20built-in\x20runtime\x20role\x20','ADMIN','items','join','map','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','269qmUeVs','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','str','\x20was\x20not\x20found\x20in\x20app\x20','Pass\x20--role\x20<id|name>.','userId','code','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','484554UfBPLu','CUSTOM','paging','runtime','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','Cannot\x20','find','totalCount','Pass\x20one\x20role\x20ID:\x20','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','Runtime\x20role\x20','userList'];a56_0x26bf=function(){return _0x2cf97a;};return a56_0x26bf();}export function runtimeRoleWriteResult(_0x3dfc2c,_0x471a8c,_0x1ac21e,_0x40b76e,_0x5f0dc1,_0x51fce2=[]){const _0x58dc1c=a56_0x1d6628;return{'operation':_0x3dfc2c,'scope':_0x58dc1c(0x191),'selector':_0x471a8c,'before':_0x1ac21e,'after':_0x40b76e,'dryRun':![],'backend':_0x5f0dc1,'warnings':_0x51fce2};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a57_0x1b9beb=a57_0x51e7;(function(_0x492a3e,_0xabc1a0){const _0x4e8b2d=a57_0x51e7,_0x2934bf=_0x492a3e();while(!![]){try{const _0x23a4eb=parseInt(_0x4e8b2d(0x1de))/0x1*(parseInt(_0x4e8b2d(0x1bf))/0x2)+parseInt(_0x4e8b2d(0x1d6))/0x3*(parseInt(_0x4e8b2d(0x1c9))/0x4)+-parseInt(_0x4e8b2d(0x1d0))/0x5+-parseInt(_0x4e8b2d(0x1c4))/0x6+parseInt(_0x4e8b2d(0x1e0))/0x7+-parseInt(_0x4e8b2d(0x1c2))/0x8+parseInt(_0x4e8b2d(0x1da))/0x9*(-parseInt(_0x4e8b2d(0x1cf))/0xa);if(_0x23a4eb===_0xabc1a0)break;else _0x2934bf['push'](_0x2934bf['shift']());}catch(_0x2fc73){_0x2934bf['push'](_0x2934bf['shift']());}}}(a57_0xecc0,0x3d69c));import{updateRuntimeAppRole}from'../../core/api-client.js';function a57_0xecc0(){const _0x51bd22=['appCode','str','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','117ClVmyo','role-code','high-risk-write','role','1VQFObJ','POST','975723VBVinQ','New\x20role\x20name','/client/permit/role/update','571046HePkXy','validation','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','539720vBfRSL','string','1576128aNgIDD','build','remark','--name\x20must\x20not\x20be\x20blank.','trim','1403616fbscxg','flag','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','New\x20non-empty\x20role\x20remark','Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','3440ndpHTh','948215VZEsWU','update','description','name','--remark\x20must\x20not\x20be\x20blank.','num','3eSojoo'];a57_0xecc0=function(){return _0x51bd22;};return a57_0xecc0();}import{CliErrors}from'../../errors.js';function a57_0x51e7(_0x5c1857,_0x32e18d){_0x5c1857=_0x5c1857-0x1be;const _0xecc039=a57_0xecc0();let _0x51e777=_0xecc039[_0x5c1857];return _0x51e777;}import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x1b945){const _0x5d6d0d=a57_0x51e7,_0x4f682b=_0x1b945[_0x5d6d0d(0x1ca)](_0x5d6d0d(0x1db))!==undefined,_0x5409c6=_0x1b945[_0x5d6d0d(0x1ca)]('name')!==undefined,_0x15c288=_0x1b945[_0x5d6d0d(0x1ca)](_0x5d6d0d(0x1c6))!==undefined;if(!_0x4f682b&&!_0x5409c6&&!_0x15c288)throw CliErrors[_0x5d6d0d(0x1c0)](_0x5d6d0d(0x1cb));const _0x2878ee=readOptionalRuntimeRoleCode(_0x1b945),_0xfaf5a1=_0x1b945[_0x5d6d0d(0x1d8)](_0x5d6d0d(0x1d3))[_0x5d6d0d(0x1c8)](),_0x59ed5c=_0x1b945['str'](_0x5d6d0d(0x1c6))['trim']();if(_0x5409c6&&!_0xfaf5a1)throw CliErrors[_0x5d6d0d(0x1c0)](_0x5d6d0d(0x1c7));if(_0x15c288&&!_0x59ed5c)throw CliErrors[_0x5d6d0d(0x1c0)](_0x5d6d0d(0x1d4),_0x5d6d0d(0x1d9));return{..._0x2878ee?{'roleCode':_0x2878ee}:{},..._0x5409c6?{'roleName':_0xfaf5a1}:{},..._0x15c288?{'remark':_0x59ed5c}:{}};}async function prepare(_0x152c94){const _0xf6df2e=a57_0x51e7,_0x5e6ad3=await getRuntimeRoleById(_0x152c94[_0xf6df2e(0x1d7)],_0x152c94[_0xf6df2e(0x1d5)]('id'));return assertCustomRuntimeRole(_0x5e6ad3,_0xf6df2e(0x1d1)),{'role':_0x5e6ad3,'body':{'id':_0x5e6ad3['id'],'appCode':_0x152c94[_0xf6df2e(0x1d7)],...updateFields(_0x152c94)}};}export const roleUpdate={'service':a57_0x1b9beb(0x1dd),'command':a57_0x1b9beb(0x1d1),'description':a57_0x1b9beb(0x1ce),'risk':a57_0x1b9beb(0x1dc),'confirmationDescription':a57_0x1b9beb(0x1cd),'flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':'name','type':a57_0x1b9beb(0x1c3),'description':a57_0x1b9beb(0x1e1)},{'name':a57_0x1b9beb(0x1c6),'type':a57_0x1b9beb(0x1c3),'description':a57_0x1b9beb(0x1cc)}],async 'validate'(_0x3ceb16){updateFields(_0x3ceb16);},async 'dryRun'(_0x526e49){const _0x2be18e=a57_0x1b9beb,{body:_0x392580}=await prepare(_0x526e49);return dryRun(_0x2be18e(0x1df),_0x2be18e(0x1be))['body'](_0x392580)[_0x2be18e(0x1d2)](_0x2be18e(0x1c1))[_0x2be18e(0x1c5)]();},async 'execute'(_0x692afe){const _0x26964c=a57_0x1b9beb,{role:_0x7353f3,body:_0x5503b6}=await prepare(_0x692afe),_0x29a9b1=await updateRuntimeAppRole(_0x5503b6);return{'ok':!![],'data':runtimeRoleWriteResult('update',{'roleId':_0x7353f3['id']},projectRuntimeRole(_0x7353f3),projectRuntimeRole(_0x29a9b1),{'method':'POST','path':_0x26964c(0x1be)})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a58_0x32b053=a58_0x342c;(function(_0x5c8fa4,_0xd204fe){const _0x56ae1d=a58_0x342c,_0x8bf75d=_0x5c8fa4();while(!![]){try{const _0x5ebf0a=-parseInt(_0x56ae1d(0x1c1))/0x1+parseInt(_0x56ae1d(0x1cb))/0x2+parseInt(_0x56ae1d(0x1c7))/0x3+-parseInt(_0x56ae1d(0x1c6))/0x4+-parseInt(_0x56ae1d(0x1bb))/0x5+parseInt(_0x56ae1d(0x1c2))/0x6*(parseInt(_0x56ae1d(0x1cd))/0x7)+-parseInt(_0x56ae1d(0x1c3))/0x8*(parseInt(_0x56ae1d(0x1ba))/0x9);if(_0x5ebf0a===_0xd204fe)break;else _0x8bf75d['push'](_0x8bf75d['shift']());}catch(_0x822776){_0x8bf75d['push'](_0x8bf75d['shift']());}}}(a58_0x2d15,0xba0f6));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a58_0x342c(_0x234d68,_0x36e7da){_0x234d68=_0x234d68-0x1b7;const _0x2d1581=a58_0x2d15();let _0x342c14=_0x2d1581[_0x234d68];return _0x342c14;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a58_0x2d15(){const _0x264809=['490GbZRWW','user-add','role','roleList','warnings','38061ptLrPh','4488120kKgIAP','before','build','high-risk-write','/client/permit/user-role/update-user-list','userId','1133867JfmzBj','93192FjkouH','48XlmjLY','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','appCode','3189348eYolEM','3325539zQBheU','POST','shouldWrite','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','2841102VdsyQb','body'];a58_0x2d15=function(){return _0x264809;};return a58_0x2d15();}export const roleUserAdd={'service':'role','command':a58_0x32b053(0x1ce),'description':a58_0x32b053(0x1c4),'risk':a58_0x32b053(0x1be),'confirmationDescription':a58_0x32b053(0x1ca),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x3224c0){const _0x2104b9=a58_0x32b053,_0x3c8074=await prepareRuntimeMemberMutation(_0x3224c0,_0x2104b9(0x1ce));return dryRun(_0x2104b9(0x1c8),_0x2104b9(0x1bf))[_0x2104b9(0x1cc)]({'appCode':_0x3224c0[_0x2104b9(0x1c5)],'roleList':_0x3c8074[_0x2104b9(0x1b8)]})['description'](_0x3c8074[_0x2104b9(0x1c9)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x3c8074[_0x2104b9(0x1b9)][0x0])[_0x2104b9(0x1bd)]();},async 'execute'(_0xc08057){const _0x5295ed=a58_0x32b053,_0x9703ae=await prepareRuntimeMemberMutation(_0xc08057,_0x5295ed(0x1ce));return _0x9703ae['shouldWrite']&&await updateRuntimeRoleUsers(_0xc08057[_0x5295ed(0x1c5)],_0x9703ae[_0x5295ed(0x1b8)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5295ed(0x1ce),{'roleId':_0x9703ae[_0x5295ed(0x1b7)]['id'],'userId':_0x9703ae[_0x5295ed(0x1c0)]},_0x9703ae[_0x5295ed(0x1bc)],_0x9703ae['after'],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x9703ae[_0x5295ed(0x1b9)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a59_0x16b1(_0x5238d8,_0x117ef2){_0x5238d8=_0x5238d8-0x103;const _0x1ea99a=a59_0x1ea9();let _0x16b1e9=_0x1ea99a[_0x5238d8];return _0x16b1e9;}const a59_0x2c68a5=a59_0x16b1;function a59_0x1ea9(){const _0x1b56e9=['POST','body','warnings','roleList','10YBRyby','3208SoDRlv','4405311wNeyYO','2955534SKWcRp','1149860KxnJjf','10186297IzCoRe','2079BcRLKA','/client/permit/user-role/update-user-list','Preview:\x20remove\x20runtime\x20role\x20member','20GDzFWd','role','2016540btQKIT','before','1254335OrWPDG','user-remove','high-risk-write','description','2FspLBy','appCode'];a59_0x1ea9=function(){return _0x1b56e9;};return a59_0x1ea9();}(function(_0x44e514,_0x3ba5c2){const _0x54e1d7=a59_0x16b1,_0x28b62d=_0x44e514();while(!![]){try{const _0x3c3440=parseInt(_0x54e1d7(0x10c))/0x1+-parseInt(_0x54e1d7(0x119))/0x2*(-parseInt(_0x54e1d7(0x113))/0x3)+parseInt(_0x54e1d7(0x111))/0x4*(-parseInt(_0x54e1d7(0x115))/0x5)+-parseInt(_0x54e1d7(0x10b))/0x6+-parseInt(_0x54e1d7(0x10e))/0x7*(-parseInt(_0x54e1d7(0x109))/0x8)+-parseInt(_0x54e1d7(0x10a))/0x9*(parseInt(_0x54e1d7(0x108))/0xa)+parseInt(_0x54e1d7(0x10d))/0xb;if(_0x3c3440===_0x3ba5c2)break;else _0x28b62d['push'](_0x28b62d['shift']());}catch(_0x147b17){_0x28b62d['push'](_0x28b62d['shift']());}}}(a59_0x1ea9,0x99fe9));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_0x2c68a5(0x112),'command':a59_0x2c68a5(0x116),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':a59_0x2c68a5(0x117),'confirmationDescription':'Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x5e04b3){const _0x79958f=a59_0x2c68a5,_0x21a30b=await prepareRuntimeMemberMutation(_0x5e04b3,'user-remove');return dryRun('POST',_0x79958f(0x10f))[_0x79958f(0x105)]({'appCode':_0x5e04b3[_0x79958f(0x103)],'roleList':_0x21a30b[_0x79958f(0x107)]})[_0x79958f(0x118)](_0x21a30b['shouldWrite']?_0x79958f(0x110):_0x21a30b['warnings'][0x0])['build']();},async 'execute'(_0x1caa3a){const _0x3cb673=a59_0x2c68a5,_0x557d32=await prepareRuntimeMemberMutation(_0x1caa3a,_0x3cb673(0x116));return _0x557d32['shouldWrite']&&await updateRuntimeRoleUsers(_0x1caa3a[_0x3cb673(0x103)],_0x557d32[_0x3cb673(0x107)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x3cb673(0x116),{'roleId':_0x557d32['role']['id'],'userId':_0x557d32['userId']},_0x557d32[_0x3cb673(0x114)],_0x557d32['after'],{'method':_0x3cb673(0x104),'path':_0x3cb673(0x10f)},_0x557d32[_0x3cb673(0x106)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a60_0x1723(){const _0xeb434=['cursor','411612CnHKrw','Preview:\x20run\x20schedule\x20','POST','/run','model','deepseek-v4-flash-0731','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','Preview:\x20delete\x20schedule\x20','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','713412aPwYMd','Schedule\x20kind:\x20CRON\x20or\x20ONCE','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','detail','ONCE','--prompt\x20must\x20not\x20be\x20blank.','validation','isSafeInteger','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','prompt','UTC','read','body','3lbLwDM','num','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','high-risk-write','build','1771qrWBKN','appCode','DELETE','/schedules','schedule','370AEcGGq','description','limit','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','string','Schedule\x20UUID','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','trim','596600kYCmdL','Page\x20size\x20from\x201\x20to\x20100','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','validate','/api/harness/apps/','Schedule\x20title','Created\x20','schedule-id','--title\x20must\x20not\x20be\x20blank.','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','kimi/k3','title','scheduleId','cron','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','delete','28252GZdcgS','Deleted\x20schedule\x20','5FJMFDL','list','\x20from\x20schedule\x20','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','str','Show\x20one\x20schedule\x20by\x20schedule\x20ID','4333rFeKHT','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','number','run','deepseek-v4-pro-0813','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','Queued\x20Task\x20','21537oWhybg','CRON','\x20immediately','Schedule\x20input\x20is\x20valid','kind'];a60_0x1723=function(){return _0xeb434;};return a60_0x1723();}function a60_0xaa00(_0x125779,_0x2d611b){_0x125779=_0x125779-0x6d;const _0x172350=a60_0x1723();let _0xaa0098=_0x172350[_0x125779];return _0xaa0098;}const a60_0xb7b196=a60_0xaa00;(function(_0x25d82a,_0x1a944f){const _0x525010=a60_0xaa00,_0x1f4437=_0x25d82a();while(!![]){try{const _0x4ded7c=-parseInt(_0x525010(0x8b))/0x1+-parseInt(_0x525010(0xab))/0x2*(parseInt(_0x525010(0x86))/0x3)+parseInt(_0x525010(0x6f))/0x4*(parseInt(_0x525010(0xad))/0x5)+-parseInt(_0x525010(0x78))/0x6+parseInt(_0x525010(0xb4))/0x7+parseInt(_0x525010(0x98))/0x8+-parseInt(_0x525010(0xbb))/0x9*(-parseInt(_0x525010(0x90))/0xa);if(_0x4ded7c===_0x1a944f)break;else _0x1f4437['push'](_0x1f4437['shift']());}catch(_0x28e416){_0x1f4437['push'](_0x1f4437['shift']());}}}(a60_0x1723,0x202ff));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':'kind','type':a60_0xb7b196(0x94),'required':!![],'enum':['CRON',a60_0xb7b196(0x7d)],'description':a60_0xb7b196(0x79)},CRON_FLAG={'name':a60_0xb7b196(0xa5),'type':a60_0xb7b196(0x94),'description':a60_0xb7b196(0x9a)},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a60_0xb7b196(0x94),'description':a60_0xb7b196(0xb9)},TITLE_FLAG={'name':'title','type':a60_0xb7b196(0x94),'required':!![],'description':a60_0xb7b196(0x9d)},PROMPT_FLAG={'name':a60_0xb7b196(0x82),'type':a60_0xb7b196(0x94),'required':!![],'description':a60_0xb7b196(0x77)},MODEL_FLAG={'name':a60_0xb7b196(0x73),'type':'string','enum':[a60_0xb7b196(0xa2),a60_0xb7b196(0x74),a60_0xb7b196(0xb8)],'default':'deepseek-v4-flash-0731','description':a60_0xb7b196(0xa7)},SCHEDULE_ID_FLAG={'name':a60_0xb7b196(0x9f),'type':a60_0xb7b196(0x94),'required':!![],'description':a60_0xb7b196(0x95),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0xb7b196(0x7a)}},LIMIT_FLAG={'name':'limit','type':a60_0xb7b196(0xb6),'default':0x14,'description':a60_0xb7b196(0x99)},CURSOR_FLAG={'name':'cursor','type':a60_0xb7b196(0x94),'description':a60_0xb7b196(0x7b)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x43c0ed){const _0x45bf70=a60_0xb7b196,_0x494a41=_0x43c0ed[_0x45bf70(0xb2)](_0x45bf70(0x6d)),_0x35a4bf=_0x43c0ed[_0x45bf70(0xb2)](_0x45bf70(0xa3))[_0x45bf70(0x97)](),_0x35b0dc=_0x43c0ed['str'](_0x45bf70(0x82))[_0x45bf70(0x97)](),_0x2ebe6f=_0x43c0ed[_0x45bf70(0xb2)](_0x45bf70(0x73)),_0x1b2e76=_0x43c0ed[_0x45bf70(0xb2)](_0x45bf70(0xa5)),_0x453331=_0x43c0ed[_0x45bf70(0xb2)]('scheduled-at');if(!_0x35a4bf)throw CliErrors[_0x45bf70(0x7f)](_0x45bf70(0xa0));if(!_0x35b0dc)throw CliErrors['validation'](_0x45bf70(0x7e));if(_0x494a41===_0x45bf70(0xbc)){if(!_0x1b2e76||_0x453331)throw CliErrors['validation'](_0x45bf70(0x81));return{'kind':_0x494a41,'timezone':'UTC','cron':_0x1b2e76,'title':_0x35a4bf,'prompt':_0x35b0dc,'model':_0x2ebe6f};}if(_0x494a41===_0x45bf70(0x7d)){if(!_0x453331||_0x1b2e76)throw CliErrors[_0x45bf70(0x7f)](_0x45bf70(0xb1));return{'kind':_0x494a41,'timezone':_0x45bf70(0x83),'scheduledAt':_0x453331,'title':_0x35a4bf,'prompt':_0x35b0dc,'model':_0x2ebe6f};}throw CliErrors[_0x45bf70(0x7f)](_0x45bf70(0x88));}function scheduleCollectionPath(_0x6d71c9){const _0x33b8a8=a60_0xb7b196;return _0x33b8a8(0x9c)+encodeURIComponent(_0x6d71c9)+_0x33b8a8(0x8e);}function scheduleItemPath(_0x1bd0e1,_0x16561e){return scheduleCollectionPath(_0x1bd0e1)+'/'+encodeURIComponent(_0x16561e);}const scheduleValidate={'service':'schedule','command':a60_0xb7b196(0x9b),'description':a60_0xb7b196(0xa9),'risk':a60_0xb7b196(0x84),'flags':INPUT_FLAGS,async 'validate'(_0x3fd4e6){readScheduleInput(_0x3fd4e6);},async 'execute'(_0x4d4d73){const _0x25eb7b=a60_0xb7b196,_0x33d890=readScheduleInput(_0x4d4d73),_0x4b7f21=await validateRuntimeSchedule(_0x4d4d73[_0x25eb7b(0x8c)],_0x33d890);return{'ok':!![],'data':_0x4b7f21,'message':_0x25eb7b(0xbe)};}},scheduleCreate={'service':a60_0xb7b196(0x8f),'command':'create','description':a60_0xb7b196(0x75),'risk':a60_0xb7b196(0x89),'confirmationDescription':a60_0xb7b196(0xb5),'flags':INPUT_FLAGS,async 'validate'(_0x2437b8){readScheduleInput(_0x2437b8);},async 'execute'(_0x31376e){const _0x28416f=a60_0xb7b196,_0x4e830d=readScheduleInput(_0x31376e),_0x485c6d=await validateRuntimeSchedule(_0x31376e[_0x28416f(0x8c)],_0x4e830d),_0x1777ba=await createRuntimeSchedule(_0x31376e[_0x28416f(0x8c)],_0x485c6d);return{'ok':!![],'data':_0x1777ba,'message':_0x28416f(0x9e)+_0x1777ba[_0x28416f(0x6d)]+'\x20schedule\x20'+_0x1777ba[_0x28416f(0xa4)]};},async 'dryRun'(_0x440add){const _0x5afa22=a60_0xb7b196,_0x5cd145=readScheduleInput(_0x440add);return dryRun('POST',scheduleCollectionPath(_0x440add[_0x5afa22(0x8c)]))[_0x5afa22(0x85)](_0x5cd145)['description'](_0x5afa22(0xb0))[_0x5afa22(0x8a)]();}},scheduleList={'service':a60_0xb7b196(0x8f),'command':a60_0xb7b196(0xae),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a60_0xb7b196(0x84),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x59a1d7){const _0x40980f=a60_0xb7b196,_0x5a0ced=_0x59a1d7[_0x40980f(0x87)](_0x40980f(0x92));if(!Number[_0x40980f(0x80)](_0x5a0ced)||_0x5a0ced<0x1||_0x5a0ced>0x64)throw CliErrors[_0x40980f(0x7f)](_0x40980f(0x96));const _0xe315f9=_0x59a1d7['str'](_0x40980f(0x6e));if(_0xe315f9&&(_0xe315f9['length']>0x400||_0xe315f9['trim']()!==_0xe315f9))throw CliErrors[_0x40980f(0x7f)](_0x40980f(0xa1));},async 'execute'(_0x59bf14){const _0x2f00b1=a60_0xb7b196,_0x2d5b76=_0x59bf14[_0x2f00b1(0xb2)](_0x2f00b1(0x6e)),_0x4a8892=await listRuntimeSchedules(_0x59bf14[_0x2f00b1(0x8c)],{'kind':_0x59bf14['str']('kind'),'limit':_0x59bf14[_0x2f00b1(0x87)]('limit'),..._0x2d5b76?{'cursor':_0x2d5b76}:{}});return{'ok':!![],'data':_0x4a8892};}},scheduleDetail={'service':'schedule','command':a60_0xb7b196(0x7c),'description':a60_0xb7b196(0xb3),'risk':a60_0xb7b196(0x84),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1bf018){const _0x38fc8c=a60_0xb7b196,_0x3351af=await getRuntimeSchedule(_0x1bf018[_0x38fc8c(0x8c)],_0x1bf018[_0x38fc8c(0xb2)](_0x38fc8c(0x9f)));return{'ok':!![],'data':_0x3351af};}},scheduleRun={'service':'schedule','command':a60_0xb7b196(0xb7),'description':a60_0xb7b196(0xa8),'risk':a60_0xb7b196(0x89),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x286852){const _0x122ebc=a60_0xb7b196,_0x2f2346=_0x286852[_0x122ebc(0xb2)](_0x122ebc(0x9f)),_0x2091d5=await runRuntimeSchedule(_0x286852['appCode'],_0x2f2346);return{'ok':!![],'data':_0x2091d5,'message':_0x122ebc(0xba)+_0x2091d5['taskId']+_0x122ebc(0xaf)+_0x2f2346};},async 'dryRun'(_0x12a0e8){const _0xb4366=a60_0xb7b196,_0x38b15d=_0x12a0e8[_0xb4366(0xb2)](_0xb4366(0x9f));return dryRun(_0xb4366(0x71),scheduleItemPath(_0x12a0e8[_0xb4366(0x8c)],_0x38b15d)+_0xb4366(0x72))['description'](_0xb4366(0x70)+_0x38b15d+_0xb4366(0xbd))[_0xb4366(0x8a)]();}},scheduleDelete={'service':'schedule','command':a60_0xb7b196(0xaa),'description':a60_0xb7b196(0x93),'risk':a60_0xb7b196(0x89),'confirmationDescription':a60_0xb7b196(0xa6),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2bf4c7){const _0xae4fa=a60_0xb7b196,_0x87fcca=_0x2bf4c7[_0xae4fa(0xb2)](_0xae4fa(0x9f)),_0x16561a=await deleteRuntimeSchedule(_0x2bf4c7['appCode'],_0x87fcca);return{'ok':!![],'data':_0x16561a,'message':_0xae4fa(0xac)+_0x87fcca};},async 'dryRun'(_0xdc00e2){const _0x288ddf=a60_0xb7b196,_0x5a2466=_0xdc00e2[_0x288ddf(0xb2)](_0x288ddf(0x9f));return dryRun(_0x288ddf(0x8d),scheduleItemPath(_0xdc00e2[_0x288ddf(0x8c)],_0x5a2466))[_0x288ddf(0x91)](_0x288ddf(0x76)+_0x5a2466)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a60_0x478f92=a60_0x3e4c;(function(_0x4401dd,_0x34ce22){const _0x52d7f6=a60_0x3e4c,_0x21cda5=_0x4401dd();while(!![]){try{const _0x2b5df2=-parseInt(_0x52d7f6(0x107))/0x1*(parseInt(_0x52d7f6(0x111))/0x2)+-parseInt(_0x52d7f6(0xf2))/0x3+parseInt(_0x52d7f6(0x10d))/0x4+parseInt(_0x52d7f6(0xfb))/0x5+-parseInt(_0x52d7f6(0xea))/0x6*(-parseInt(_0x52d7f6(0xe1))/0x7)+-parseInt(_0x52d7f6(0xf8))/0x8+-parseInt(_0x52d7f6(0xe7))/0x9;if(_0x2b5df2===_0x34ce22)break;else _0x21cda5['push'](_0x21cda5['shift']());}catch(_0x835fe9){_0x21cda5['push'](_0x21cda5['shift']());}}}(a60_0xf5a5,0xc35ea));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a60_0xf5a5(){const _0x3db628=['appCode','Preview:\x20delete\x20schedule\x20','deepseek-v4-flash-0731','validation','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','93053bTummM','trim','detail','schedule-id','cursor','schedule','5081156oyWkSF','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Schedule\x20UUID','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','34blrMqp','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','high-risk-write','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','UTC','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','string','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','limit','--title\x20must\x20not\x20be\x20blank.','\x20immediately','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','taskId','scheduleId','isSafeInteger','Queued\x20Task\x20','CRON','kind','list','49RKiRHU','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','/schedules','build','kimi/k3','title','4228470yQCFkE','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','POST','653244DitWYR','/api/harness/apps/','--prompt\x20must\x20not\x20be\x20blank.','\x20from\x20schedule\x20','run','ONCE','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','prompt','1001433dGJlix','Page\x20size\x20from\x201\x20to\x20100','description','read','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Schedule\x20title','2132896gwdevZ','/run','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','7099905VHSxdF','str','body','cron','model','length','scheduled-at'];a60_0xf5a5=function(){return _0x3db628;};return a60_0xf5a5();}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_0x478f92(0xdf),'type':a60_0x478f92(0x119),'required':!![],'enum':[a60_0x478f92(0xde),a60_0x478f92(0xef)],'description':a60_0x478f92(0x10e)},CRON_FLAG={'name':a60_0x478f92(0xfe),'type':'string','description':a60_0x478f92(0xf6)},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':'string','description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a60_0x478f92(0xe6),'type':'string','required':!![],'description':a60_0x478f92(0xf7)},PROMPT_FLAG={'name':a60_0x478f92(0xf1),'type':'string','required':!![],'description':a60_0x478f92(0x117)},MODEL_FLAG={'name':a60_0x478f92(0xff),'type':a60_0x478f92(0x119),'enum':[a60_0x478f92(0xe5),a60_0x478f92(0x104),'deepseek-v4-pro-0813'],'default':a60_0x478f92(0x104),'description':a60_0x478f92(0x106)},SCHEDULE_ID_FLAG={'name':a60_0x478f92(0x10a),'type':a60_0x478f92(0x119),'required':!![],'description':a60_0x478f92(0x10f),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a60_0x478f92(0x11b),'type':'number','default':0x14,'description':a60_0x478f92(0xf3)},CURSOR_FLAG={'name':a60_0x478f92(0x10b),'type':'string','description':a60_0x478f92(0x114)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3e5966){const _0x23816e=a60_0x478f92,_0x1a4776=_0x3e5966[_0x23816e(0xfc)](_0x23816e(0xdf)),_0x3636b2=_0x3e5966[_0x23816e(0xfc)]('title')[_0x23816e(0x108)](),_0x32f009=_0x3e5966[_0x23816e(0xfc)]('prompt')['trim'](),_0x42068b=_0x3e5966[_0x23816e(0xfc)](_0x23816e(0xff)),_0x4a3596=_0x3e5966[_0x23816e(0xfc)](_0x23816e(0xfe)),_0x185f34=_0x3e5966[_0x23816e(0xfc)](_0x23816e(0x101));if(!_0x3636b2)throw CliErrors[_0x23816e(0x105)](_0x23816e(0x11c));if(!_0x32f009)throw CliErrors[_0x23816e(0x105)](_0x23816e(0xec));if(_0x1a4776===_0x23816e(0xde)){if(!_0x4a3596||_0x185f34)throw CliErrors['validation']('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x1a4776,'timezone':'UTC','cron':_0x4a3596,'title':_0x3636b2,'prompt':_0x32f009,'model':_0x42068b};}if(_0x1a4776===_0x23816e(0xef)){if(!_0x185f34||_0x4a3596)throw CliErrors[_0x23816e(0x105)](_0x23816e(0xd9));return{'kind':_0x1a4776,'timezone':_0x23816e(0x116),'scheduledAt':_0x185f34,'title':_0x3636b2,'prompt':_0x32f009,'model':_0x42068b};}throw CliErrors[_0x23816e(0x105)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function a60_0x3e4c(_0x712715,_0x4d1c08){_0x712715=_0x712715-0xd8;const _0xf5a545=a60_0xf5a5();let _0x3e4c9d=_0xf5a545[_0x712715];return _0x3e4c9d;}function scheduleCollectionPath(_0x2a1bf4){const _0x50fde2=a60_0x478f92;return _0x50fde2(0xeb)+encodeURIComponent(_0x2a1bf4)+_0x50fde2(0xe3);}function scheduleItemPath(_0x4a4907,_0xbfa189){return scheduleCollectionPath(_0x4a4907)+'/'+encodeURIComponent(_0xbfa189);}const scheduleValidate={'service':a60_0x478f92(0x10c),'command':'validate','description':a60_0x478f92(0xe2),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x6c6b5d){readScheduleInput(_0x6c6b5d);},async 'execute'(_0x16aee5){const _0x19bdd0=readScheduleInput(_0x16aee5),_0xc248b9=await validateRuntimeSchedule(_0x16aee5['appCode'],_0x19bdd0);return{'ok':!![],'data':_0xc248b9,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a60_0x478f92(0x10c),'command':'create','description':a60_0x478f92(0x110),'risk':a60_0x478f92(0x113),'confirmationDescription':a60_0x478f92(0xf0),'flags':INPUT_FLAGS,async 'validate'(_0x571a4b){readScheduleInput(_0x571a4b);},async 'execute'(_0x214c92){const _0x122c82=a60_0x478f92,_0x54904e=readScheduleInput(_0x214c92),_0x20c657=await validateRuntimeSchedule(_0x214c92[_0x122c82(0x102)],_0x54904e),_0x22a417=await createRuntimeSchedule(_0x214c92[_0x122c82(0x102)],_0x20c657);return{'ok':!![],'data':_0x22a417,'message':'Created\x20'+_0x22a417['kind']+'\x20schedule\x20'+_0x22a417[_0x122c82(0xdb)]};},async 'dryRun'(_0x482ad6){const _0x534ceb=a60_0x478f92,_0x471438=readScheduleInput(_0x482ad6);return dryRun(_0x534ceb(0xe9),scheduleCollectionPath(_0x482ad6[_0x534ceb(0x102)]))[_0x534ceb(0xfd)](_0x471438)[_0x534ceb(0xf4)]('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x534ceb(0xe4)]();}},scheduleList={'service':a60_0x478f92(0x10c),'command':a60_0x478f92(0xe0),'description':a60_0x478f92(0xe8),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x55fd83){const _0x3e1f41=a60_0x478f92,_0x36c682=_0x55fd83['num'](_0x3e1f41(0x11b));if(!Number[_0x3e1f41(0xdc)](_0x36c682)||_0x36c682<0x1||_0x36c682>0x64)throw CliErrors[_0x3e1f41(0x105)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x4ed6ef=_0x55fd83['str'](_0x3e1f41(0x10b));if(_0x4ed6ef&&(_0x4ed6ef[_0x3e1f41(0x100)]>0x400||_0x4ed6ef[_0x3e1f41(0x108)]()!==_0x4ed6ef))throw CliErrors[_0x3e1f41(0x105)](_0x3e1f41(0x118));},async 'execute'(_0x1bf19c){const _0x5871ba=a60_0x478f92,_0x296b39=_0x1bf19c[_0x5871ba(0xfc)](_0x5871ba(0x10b)),_0x11b734=await listRuntimeSchedules(_0x1bf19c[_0x5871ba(0x102)],{'kind':_0x1bf19c[_0x5871ba(0xfc)](_0x5871ba(0xdf)),'limit':_0x1bf19c['num'](_0x5871ba(0x11b)),..._0x296b39?{'cursor':_0x296b39}:{}});return{'ok':!![],'data':_0x11b734};}},scheduleDetail={'service':a60_0x478f92(0x10c),'command':a60_0x478f92(0x109),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a60_0x478f92(0xf5),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x28ed52){const _0x24ed4a=a60_0x478f92,_0x4b83df=await getRuntimeSchedule(_0x28ed52['appCode'],_0x28ed52[_0x24ed4a(0xfc)](_0x24ed4a(0x10a)));return{'ok':!![],'data':_0x4b83df};}},scheduleRun={'service':'schedule','command':a60_0x478f92(0xee),'description':a60_0x478f92(0x112),'risk':a60_0x478f92(0x113),'confirmationDescription':a60_0x478f92(0x11a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x6b5933){const _0x256c73=a60_0x478f92,_0xda5235=_0x6b5933[_0x256c73(0xfc)](_0x256c73(0x10a)),_0x45a890=await runRuntimeSchedule(_0x6b5933[_0x256c73(0x102)],_0xda5235);return{'ok':!![],'data':_0x45a890,'message':_0x256c73(0xdd)+_0x45a890[_0x256c73(0xda)]+_0x256c73(0xed)+_0xda5235};},async 'dryRun'(_0x6f723a){const _0x157c54=a60_0x478f92,_0x17abc7=_0x6f723a[_0x157c54(0xfc)]('schedule-id');return dryRun(_0x157c54(0xe9),scheduleItemPath(_0x6f723a[_0x157c54(0x102)],_0x17abc7)+_0x157c54(0xf9))[_0x157c54(0xf4)]('Preview:\x20run\x20schedule\x20'+_0x17abc7+_0x157c54(0xd8))[_0x157c54(0xe4)]();}},scheduleDelete={'service':a60_0x478f92(0x10c),'command':'delete','description':a60_0x478f92(0xfa),'risk':a60_0x478f92(0x113),'confirmationDescription':a60_0x478f92(0x115),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5d91b7){const _0x52acb6=a60_0x478f92,_0x254948=_0x5d91b7[_0x52acb6(0xfc)](_0x52acb6(0x10a)),_0x510592=await deleteRuntimeSchedule(_0x5d91b7[_0x52acb6(0x102)],_0x254948);return{'ok':!![],'data':_0x510592,'message':'Deleted\x20schedule\x20'+_0x254948};},async 'dryRun'(_0x5aff8b){const _0x152290=a60_0x478f92,_0x3817ea=_0x5aff8b[_0x152290(0xfc)]('schedule-id');return dryRun('DELETE',scheduleItemPath(_0x5aff8b[_0x152290(0x102)],_0x3817ea))[_0x152290(0xf4)](_0x152290(0x103)+_0x3817ea)[_0x152290(0xe4)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a61_0x5e7138=a61_0x39f9;(function(_0x1a4c08,_0x2e4121){const _0x382ff7=a61_0x39f9,_0x52038b=_0x1a4c08();while(!![]){try{const _0x48a0ac=parseInt(_0x382ff7(0x19e))/0x1*(parseInt(_0x382ff7(0x19a))/0x2)+-parseInt(_0x382ff7(0x1a1))/0x3+parseInt(_0x382ff7(0x19f))/0x4*(parseInt(_0x382ff7(0x1a0))/0x5)+-parseInt(_0x382ff7(0x19b))/0x6+-parseInt(_0x382ff7(0x19d))/0x7+parseInt(_0x382ff7(0x1a3))/0x8*(-parseInt(_0x382ff7(0x1a2))/0x9)+-parseInt(_0x382ff7(0x199))/0xa;if(_0x48a0ac===_0x2e4121)break;else _0x52038b['push'](_0x52038b['shift']());}catch(_0x1ce01f){_0x52038b['push'](_0x52038b['shift']());}}}(a61_0x1f17,0xbe16d));function a61_0x39f9(_0xb7d30e,_0x30fd79){_0xb7d30e=_0xb7d30e-0x199;const _0x1f1722=a61_0x1f17();let _0x39f96c=_0x1f1722[_0xb7d30e];return _0x39f96c;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x2fee58){const _0x3dc5b9=await buildSchemaPayload();return{'ok':!![],'data':_0x3dc5b9};}export const schemaDefinition={'service':'schema','command':'export','description':a61_0x5e7138(0x19c),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a61_0x1f17(){const _0x326ec0=['1658890eHrtNA','2CxeMRd','930288mbbPCq','Export\x20machine-readable\x20command\x20schema\x20(JSON)','3236310IvdzPC','1456258IVAFKZ','4135660gNtlhI','5aNDiim','861801Jcmuqp','1458qTnbGl','31656GrTYzn'];a61_0x1f17=function(){return _0x326ec0;};return a61_0x1f17();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0xd91b86,_0x5e1962){const _0xbd5f61=a62_0x50fa,_0x2faf91=_0xd91b86();while(!![]){try{const _0x5314ef=parseInt(_0xbd5f61(0x18b))/0x1*(parseInt(_0xbd5f61(0x198))/0x2)+parseInt(_0xbd5f61(0x194))/0x3+parseInt(_0xbd5f61(0x1c1))/0x4*(-parseInt(_0xbd5f61(0x16d))/0x5)+parseInt(_0xbd5f61(0x1c3))/0x6+parseInt(_0xbd5f61(0x1d5))/0x7+parseInt(_0xbd5f61(0x16f))/0x8+-parseInt(_0xbd5f61(0x1a7))/0x9;if(_0x5314ef===_0x5e1962)break;else _0x2faf91['push'](_0x2faf91['shift']());}catch(_0x5b4374){_0x2faf91['push'](_0x2faf91['shift']());}}}(a62_0xaf64,0x88509));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';function a62_0xaf64(){const _0x1e2ec3=['bff','target','appcode','json','normalizedManifest','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','Cannot\x20resolve\x20datatable\x20\x22','risk','fullPath','20uarrzx','\x20\x20\x20\x20command:\x20','4890882BMdPlG','args','envName','env','datasetCode','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','loginName','name','Preview\x20dynamic\x20service\x20command:\x20','\x20<command>\x20[flags]','Service\x20command\x20','commands','`\x20to\x20inspect\x20the\x20manifest.','number','startsWith','map','\x20service\x20detail\x20--service\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','6043464htkUaf','\x20->\x20','required','1047035SzcwhP','\x20\x20\x20\x20datasetCode:\x20','8267320ehLBhT','boolean','code','now','datatable','tree','params','type','\x20\x20\x20\x20sqlCode:\x20','bffId','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','userName','kind','slice','trim','appBindings','service','\x20completed\x20in\x20','scriptName','default','find','bffCode','push','description','some','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','length','flatMap','439xSaKmE','filter','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20[','app','validation','\x20requires\x20target.functionName.','\x20\x20SERVICE\x20TREE\x20TARGET','enum','592050aAuzPs','join','nickName','appRef','2162hcUpxT','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','nickname','\x20\x20\x20\x20datatable:\x20','padEnd','Commands:','operator','SERVICE_TREE','data','\x20\x20\x20\x20','ctx.','command','Unsupported\x20service\x20target\x20kind:\x20','userId','context.','16005987paNzlM','string','cliName','mapTo','tenantCode','appCode','Use\x20`','read','cliPath','tableName','sqlCode','Unknown\x20appRef\x20\x22','Run\x20service\x20command\x20','source','remainingArgs','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','dbtableConfig'];a62_0xaf64=function(){return _0x1e2ec3;};return a62_0xaf64();}import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0xfe3d0e,_0x37597f){const _0x5ebf21=a62_0x50fa,_0x10097b=listLocalServiceTrees();let _0x54ec50;for(const _0x31fd01 of _0x10097b){const _0x4abd39=matchServiceTreeCommand(_0x31fd01,_0xfe3d0e);if(!_0x4abd39)continue;(!_0x54ec50||_0x4abd39['command']['fullPath'][_0x5ebf21(0x189)]>_0x54ec50[_0x5ebf21(0x1a3)][_0x5ebf21(0x1c0)][_0x5ebf21(0x189)])&&(_0x54ec50={'tree':_0x31fd01,'command':_0x4abd39[_0x5ebf21(0x1a3)],'remainingArgs':_0x4abd39[_0x5ebf21(0x1b5)]});}if(!_0x54ec50)return undefined;const _0x241c36={..._0x37597f};return applyAppBinding(_0x54ec50[_0x5ebf21(0x174)],_0x54ec50[_0x5ebf21(0x1a3)],_0x241c36),{'definition':buildDynamicCommandDefinition(_0x54ec50[_0x5ebf21(0x174)],_0x54ec50[_0x5ebf21(0x1a3)]),'args':_0x54ec50[_0x5ebf21(0x1b5)],'flags':_0x241c36,'tree':_0x54ec50[_0x5ebf21(0x174)],'command':_0x54ec50[_0x5ebf21(0x1a3)]};}export function generateDynamicServiceHelp(_0x402c01){const _0x418e09=a62_0x50fa,_0x344948=listLocalServiceTrees()[_0x418e09(0x183)](_0x220659=>_0x220659[_0x418e09(0x17f)][_0x418e09(0x171)]===_0x402c01);if(!_0x344948)return undefined;const _0x221722=[CLI_BIN_NAME+'\x20'+_0x402c01+_0x418e09(0x1cc),'',_0x344948[_0x418e09(0x17f)][_0x418e09(0x1ca)]||_0x402c01,_0x344948[_0x418e09(0x17f)]['description']?'\x20\x20'+_0x344948[_0x418e09(0x17f)][_0x418e09(0x186)]:'','',_0x418e09(0x19d),..._0x344948[_0x418e09(0x1ce)]['map'](_0x5b58c5=>{const _0x1346a2=_0x418e09,_0x3cc0e7=_0x5b58c5['fullPath'][_0x1346a2(0x17c)](0x1)[_0x1346a2(0x195)]('\x20'),_0x49e082=_0x5b58c5[_0x1346a2(0x1bf)]==='read'?'':'\x20['+_0x5b58c5['risk']+']';return'\x20\x20'+_0x3cc0e7[_0x1346a2(0x19c)](0x18)+'\x20'+(_0x5b58c5['description']||'')+_0x49e082;}),'',_0x418e09(0x1ad)+CLI_BIN_NAME+_0x418e09(0x1d3)+_0x402c01+_0x418e09(0x1cf)][_0x418e09(0x18c)](Boolean);return _0x221722[_0x418e09(0x195)]('\x0a');}export function listDynamicServiceEntries(){const _0x3e5e6e=a62_0x50fa;return listLocalServices()[_0x3e5e6e(0x1d2)](_0xa17754=>{const _0x276e37=_0x3e5e6e,_0x3b665b=_0xa17754[_0x276e37(0x1bc)];return{'service':_0x3b665b[_0x276e37(0x17f)][_0x276e37(0x171)],'label':_0x3b665b[_0x276e37(0x17f)][_0x276e37(0x1ca)]||_0x3b665b[_0x276e37(0x17f)][_0x276e37(0x171)],'commands':_0x3b665b[_0x276e37(0x1ce)][_0x276e37(0x1d2)](_0x3bf469=>({'command':dynamicCommandName(_0x3bf469),'description':_0x3bf469[_0x276e37(0x186)]||'Run\x20service\x20command\x20'+_0x3bf469[_0x276e37(0x1af)],'tag':riskTag(_0x3bf469[_0x276e37(0x1bf)])}))};});}export function getDynamicServiceEntry(_0x5e0993){const _0x35b073=a62_0x50fa;return listDynamicServiceEntries()['find'](_0x29be58=>_0x29be58[_0x35b073(0x17f)]===_0x5e0993);}function a62_0x50fa(_0x344966,_0x22f832){_0x344966=_0x344966-0x16b;const _0xaf649d=a62_0xaf64();let _0x50fab2=_0xaf649d[_0x344966];return _0x50fab2;}export function listDynamicServiceDefinitions(_0x438270){const _0x34e89b=a62_0x50fa;return listLocalServiceTrees()['filter'](_0x3f7a41=>!_0x438270||_0x3f7a41[_0x34e89b(0x17f)][_0x34e89b(0x171)]===_0x438270)[_0x34e89b(0x18a)](_0xb10ff8=>_0xb10ff8[_0x34e89b(0x1ce)][_0x34e89b(0x1d2)](_0x498d85=>buildDynamicCommandDefinition(_0xb10ff8,_0x498d85)));}export function getDynamicServiceDefinitions(_0x45dce9){const _0x31926e=a62_0x50fa,_0x5d217e=listDynamicServiceDefinitions(_0x45dce9);return _0x5d217e[_0x31926e(0x189)]>0x0?_0x5d217e:undefined;}export function findDynamicServiceDefinition(_0x88c73c,_0x356d24){const _0x331e8d=a62_0x50fa;return listDynamicServiceDefinitions(_0x88c73c)[_0x331e8d(0x183)](_0x1b9093=>_0x1b9093[_0x331e8d(0x1a3)]===_0x356d24);}export function buildDynamicCommandDefinition(_0x174663,_0x435863){const _0x40b996=a62_0x50fa;return{'service':_0x174663[_0x40b996(0x17f)][_0x40b996(0x171)],'command':dynamicCommandName(_0x435863),'description':_0x435863['description']||_0x40b996(0x1b3)+_0x435863[_0x40b996(0x1af)],'risk':_0x435863[_0x40b996(0x1bf)],..._0x435863['risk']===_0x40b996(0x1ae)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x435863)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x435863[_0x40b996(0x1c4)][_0x40b996(0x1d2)](_0x193abe=>({'name':_0x193abe['name'],'description':_0x193abe['description']||_0x193abe[_0x40b996(0x1ca)],'required':_0x193abe[_0x40b996(0x16c)]})),'flags':_0x435863['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x435863),async 'dryRun'(_0x45ddbb){const _0x16bb56=_0x40b996,_0x14a537=await compilePlan(_0x435863,_0x45ddbb);return{'method':_0x16bb56(0x19f),'url':_0x435863['cliPath'],'body':{'target':targetPreview(_0x14a537),'params':_0x14a537[_0x16bb56(0x175)]},'description':_0x16bb56(0x1cb)+_0x435863['cliPath']};},async 'execute'(_0x3e2297){const _0x41330e=_0x40b996,_0x3234e3=await compilePlan(_0x435863,_0x3e2297),_0x99cf5a=Date['now'](),_0x4ec764=await executePlan(_0x3234e3,_0x435863,_0x3e2297),_0xaa7850=Date[_0x41330e(0x172)]()-_0x99cf5a;return{'ok':!![],'data':{'service':_0x174663[_0x41330e(0x17f)],'command':_0x435863[_0x41330e(0x1af)],'target':targetPreview(_0x3234e3),'result':_0x4ec764,'elapsed':_0xaa7850},'message':_0x41330e(0x1cd)+_0x435863['cliPath']+_0x41330e(0x180)+_0xaa7850+'ms'};}};}function buildDynamicConfirmationDescription(_0x2541be){const _0x11067a=a62_0x50fa,_0x4a80a9=_0x2541be['description']||_0x2541be[_0x11067a(0x1af)],_0x11e941=_0x2541be[_0x11067a(0x1bf)]==='high-risk-write'?_0x11067a(0x1b6):_0x11067a(0x1bd);return _0x11067a(0x1d4)+_0x4a80a9+'\x22.\x20'+_0x11e941;}function dynamicCommandName(_0x134b36){const _0x38243c=a62_0x50fa;return _0x134b36['fullPath']['slice'](0x1)[_0x38243c(0x195)]('\x20');}function riskTag(_0x5e7c0d){const _0x40b6c6=a62_0x50fa;return _0x5e7c0d===_0x40b6c6(0x1ae)?'':_0x40b6c6(0x18e)+_0x5e7c0d+']';}function flagToCommandFlag(_0x4061bc){const _0x57a6f3=a62_0x50fa;return{'name':_0x4061bc[_0x57a6f3(0x1a9)],'type':_0x4061bc[_0x57a6f3(0x176)]===_0x57a6f3(0x1bb)?_0x57a6f3(0x1a8):_0x4061bc[_0x57a6f3(0x176)],'description':_0x4061bc[_0x57a6f3(0x186)]||_0x4061bc[_0x57a6f3(0x1ca)],'required':_0x4061bc[_0x57a6f3(0x16c)],'default':isPrimitiveFlagDefault(_0x4061bc['default'])?_0x4061bc[_0x57a6f3(0x182)]:undefined,'enum':_0x4061bc[_0x57a6f3(0x193)]};}async function compilePlan(_0x7bd3d7,_0x598ac1){const _0x145a8c=a62_0x50fa;return compileServiceTreeCommand(_0x7bd3d7,{'flags':_0x598ac1['rawFlags'],'args':_0x598ac1[_0x145a8c(0x1c4)],'context':await buildServiceContext(_0x7bd3d7,_0x598ac1)});}async function buildServiceContext(_0x2eb391,_0x50d6ac){const _0x276374=a62_0x50fa,_0x42d237={'appCode':_0x50d6ac[_0x276374(0x1ac)],'env':_0x50d6ac[_0x276374(0x1c5)],'envName':_0x50d6ac[_0x276374(0x1c5)]};if(!usesRuntimeContext(_0x2eb391))return _0x42d237;const _0x5cc2ab=await getLoginUserInfo(),_0x28a338=pickFirst(_0x5cc2ab[_0x276374(0x1a5)],_0x5cc2ab['id']);return{..._0x42d237,'user':_0x5cc2ab,'userId':_0x28a338,'id':_0x5cc2ab['id'],'username':pickFirst(_0x5cc2ab['username'],_0x5cc2ab[_0x276374(0x17a)],_0x5cc2ab[_0x276374(0x1c9)]),'userName':_0x5cc2ab[_0x276374(0x17a)],'nickname':pickFirst(_0x5cc2ab[_0x276374(0x19a)],_0x5cc2ab['nickName']),'nickName':_0x5cc2ab[_0x276374(0x196)],'tenantCode':_0x5cc2ab[_0x276374(0x1ab)],'employeeId':_0x5cc2ab['employeeId']};}function usesRuntimeContext(_0x518a9b){const _0x5ed287=a62_0x50fa;return _0x518a9b[_0x5ed287(0x1aa)][_0x5ed287(0x187)](_0x1f516f=>typeof _0x1f516f[_0x5ed287(0x1b4)]===_0x5ed287(0x1a8)&&(_0x1f516f['source'][_0x5ed287(0x1d1)](_0x5ed287(0x1a6))||_0x1f516f['source']['startsWith'](_0x5ed287(0x1a2))));}function pickFirst(..._0x270325){const _0x10f93c=a62_0x50fa;return _0x270325[_0x10f93c(0x183)](_0xaddd49=>_0xaddd49!==undefined&&_0xaddd49!==null);}async function executePlan(_0x37d917,_0x10eefe,_0x2a964b){const _0x58c77d=a62_0x50fa;if(_0x37d917['kind']===_0x58c77d(0x1a0)){const _0x464296=await resolveDatasetCode(_0x37d917,_0x10eefe,_0x2a964b);return executeData(_0x464296,_0x37d917['command'],_0x37d917[_0x58c77d(0x175)]);}if(_0x37d917[_0x58c77d(0x17b)]==='sql'){if(!_0x37d917[_0x58c77d(0x1b1)])throw CliErrors[_0x58c77d(0x190)](_0x58c77d(0x1cd)+_0x10eefe['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x37d917[_0x58c77d(0x1b1)],normalizeScalarParams(_0x37d917[_0x58c77d(0x175)]));}if(_0x37d917[_0x58c77d(0x17b)]===_0x58c77d(0x1b8)){const _0x2bc443=_0x37d917[_0x58c77d(0x181)]||_0x37d917[_0x58c77d(0x184)]||(_0x37d917[_0x58c77d(0x178)]==null?'':String(_0x37d917[_0x58c77d(0x178)]));if(!_0x2bc443)throw CliErrors['validation'](_0x58c77d(0x1cd)+_0x10eefe['cliPath']+_0x58c77d(0x191));return executeSdkBff(_0x2bc443,_0x37d917[_0x58c77d(0x175)]);}throw CliErrors[_0x58c77d(0x190)](_0x58c77d(0x1a4)+_0x37d917[_0x58c77d(0x17b)]);}async function resolveDatasetCode(_0x2ed2c,_0x241903,_0x5916b2){const _0x4c7cf8=a62_0x50fa;if(_0x2ed2c['datasetCode'])return _0x2ed2c[_0x4c7cf8(0x1c7)];if(!_0x2ed2c[_0x4c7cf8(0x173)])throw CliErrors['validation'](_0x4c7cf8(0x1cd)+_0x241903[_0x4c7cf8(0x1af)]+_0x4c7cf8(0x1c8));const _0x5afe07=await listDatasets(_0x5916b2[_0x4c7cf8(0x1ac)]),_0x5c7526=_0x5afe07[_0x4c7cf8(0x183)](_0x5dd0d7=>_0x5dd0d7[_0x4c7cf8(0x1b7)]?.[_0x4c7cf8(0x1b0)]===_0x2ed2c[_0x4c7cf8(0x173)]);if(!_0x5c7526?.[_0x4c7cf8(0x171)])throw CliErrors['validation'](_0x4c7cf8(0x1be)+_0x2ed2c[_0x4c7cf8(0x173)]+_0x4c7cf8(0x199)+_0x5916b2['appCode']+'.',_0x4c7cf8(0x188));return _0x5c7526['code'];}function applyAppBinding(_0x476382,_0x4b4c5f,_0xe11486){const _0x2bc445=a62_0x50fa,_0x56f894=_0x4b4c5f['target'][_0x2bc445(0x197)];if(!_0x56f894)return;const _0x379594=_0x476382[_0x2bc445(0x17e)][_0x56f894];if(!_0x379594)throw CliErrors[_0x2bc445(0x190)](_0x2bc445(0x1b2)+_0x56f894+'\x22\x20in\x20service\x20command\x20'+_0x4b4c5f['cliPath']+'.',_0x2bc445(0x179));const _0x256f20=_0x379594[_0x2bc445(0x1ba)]||_0x379594[_0x2bc445(0x1ac)];_0x256f20&&!hasText(_0xe11486[_0x2bc445(0x1ba)])&&(_0xe11486[_0x2bc445(0x1ba)]=_0x256f20),_0x379594[_0x2bc445(0x18f)]&&!hasText(_0xe11486[_0x2bc445(0x18f)])&&!hasText(_0xe11486['appcode'])&&(_0xe11486[_0x2bc445(0x18f)]=_0x379594[_0x2bc445(0x18f)]),_0x379594[_0x2bc445(0x1c6)]&&!hasText(_0xe11486[_0x2bc445(0x1c6)])&&(_0xe11486[_0x2bc445(0x1c6)]=_0x379594['env']);}function renderDynamicCommandHelp(_0x3483c5){const _0x34bc12=a62_0x50fa,_0xa6deb=[_0x34bc12(0x192),_0x34bc12(0x18d)+_0x3483c5['target'][_0x34bc12(0x17b)],_0x34bc12(0x1c2)+_0x3483c5['target'][_0x34bc12(0x1a3)]];if(_0x3483c5['target'][_0x34bc12(0x1c7)])_0xa6deb['push'](_0x34bc12(0x16e)+_0x3483c5[_0x34bc12(0x1b9)][_0x34bc12(0x1c7)]);if(_0x3483c5[_0x34bc12(0x1b9)]['datatable'])_0xa6deb[_0x34bc12(0x185)](_0x34bc12(0x19b)+_0x3483c5['target'][_0x34bc12(0x173)]);if(_0x3483c5[_0x34bc12(0x1b9)][_0x34bc12(0x1b1)])_0xa6deb['push'](_0x34bc12(0x177)+_0x3483c5[_0x34bc12(0x1b9)][_0x34bc12(0x1b1)]);if(_0x3483c5['target'][_0x34bc12(0x181)])_0xa6deb[_0x34bc12(0x185)]('\x20\x20\x20\x20functionName:\x20'+_0x3483c5[_0x34bc12(0x1b9)]['scriptName']);if(_0x3483c5[_0x34bc12(0x1aa)][_0x34bc12(0x189)]>0x0){_0xa6deb['push']('','\x20\x20MAP\x20TO');for(const _0x568ba1 of _0x3483c5[_0x34bc12(0x1aa)]){_0xa6deb[_0x34bc12(0x185)](_0x34bc12(0x1a1)+(_0x568ba1[_0x34bc12(0x1b4)]||'const')+_0x34bc12(0x16b)+_0x568ba1[_0x34bc12(0x1b9)]+(_0x568ba1['operator']?'.'+_0x568ba1[_0x34bc12(0x19e)]:''));}}return _0xa6deb[_0x34bc12(0x195)]('\x0a');}function targetPreview(_0x2482bd){const _0x1749bd=a62_0x50fa;return{'kind':_0x2482bd[_0x1749bd(0x17b)],'command':_0x2482bd[_0x1749bd(0x1a3)],'appRef':_0x2482bd[_0x1749bd(0x197)],'datasetCode':_0x2482bd[_0x1749bd(0x1c7)],'datatable':_0x2482bd[_0x1749bd(0x173)],'sqlCode':_0x2482bd[_0x1749bd(0x1b1)],'bffCode':_0x2482bd[_0x1749bd(0x184)],'bffId':_0x2482bd[_0x1749bd(0x178)],'functionName':_0x2482bd[_0x1749bd(0x181)]};}function normalizeScalarParams(_0x7cfc98){const _0x3b9f0f=a62_0x50fa;return Object['fromEntries'](Object['entries'](_0x7cfc98)[_0x3b9f0f(0x18c)](([,_0x3fd0e1])=>typeof _0x3fd0e1===_0x3b9f0f(0x1a8)||typeof _0x3fd0e1===_0x3b9f0f(0x1d0)));}function hasText(_0x382751){const _0x4c4162=a62_0x50fa;return typeof _0x382751===_0x4c4162(0x1a8)&&_0x382751[_0x4c4162(0x17d)]()[_0x4c4162(0x189)]>0x0;}function isPrimitiveFlagDefault(_0x5c5232){const _0x2d5085=a62_0x50fa;return _0x5c5232===undefined||typeof _0x5c5232===_0x2d5085(0x1a8)||typeof _0x5c5232==='number'||typeof _0x5c5232===_0x2d5085(0x170);}
|
|
1
|
+
(function(_0x124398,_0x25da1e){const _0x39d8bc=a62_0x5e26,_0x18043c=_0x124398();while(!![]){try{const _0x11cbce=-parseInt(_0x39d8bc(0xaf))/0x1+-parseInt(_0x39d8bc(0xca))/0x2+-parseInt(_0x39d8bc(0x8b))/0x3*(-parseInt(_0x39d8bc(0xb9))/0x4)+parseInt(_0x39d8bc(0xae))/0x5+parseInt(_0x39d8bc(0x88))/0x6*(parseInt(_0x39d8bc(0x87))/0x7)+parseInt(_0x39d8bc(0xa9))/0x8*(-parseInt(_0x39d8bc(0xac))/0x9)+-parseInt(_0x39d8bc(0x99))/0xa;if(_0x11cbce===_0x25da1e)break;else _0x18043c['push'](_0x18043c['shift']());}catch(_0x3cb85e){_0x18043c['push'](_0x18043c['shift']());}}}(a62_0x39f5,0x3ab1e));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';function a62_0x5e26(_0x5c5416,_0x72388d){_0x5c5416=_0x5c5416-0x68;const _0x39f564=a62_0x39f5();let _0x5e2622=_0x39f564[_0x5c5416];return _0x5e2622;}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x33537c,_0x5abf2a){const _0x2e6f92=a62_0x5e26,_0x1547d1=listLocalServiceTrees();let _0x1fe392;for(const _0x42f30e of _0x1547d1){const _0x384921=matchServiceTreeCommand(_0x42f30e,_0x33537c);if(!_0x384921)continue;(!_0x1fe392||_0x384921[_0x2e6f92(0x6f)]['fullPath']['length']>_0x1fe392['command'][_0x2e6f92(0xc1)][_0x2e6f92(0x8e)])&&(_0x1fe392={'tree':_0x42f30e,'command':_0x384921[_0x2e6f92(0x6f)],'remainingArgs':_0x384921[_0x2e6f92(0x6d)]});}if(!_0x1fe392)return undefined;const _0x257c74={..._0x5abf2a};return applyAppBinding(_0x1fe392[_0x2e6f92(0x7d)],_0x1fe392[_0x2e6f92(0x6f)],_0x257c74),{'definition':buildDynamicCommandDefinition(_0x1fe392['tree'],_0x1fe392[_0x2e6f92(0x6f)]),'args':_0x1fe392[_0x2e6f92(0x6d)],'flags':_0x257c74,'tree':_0x1fe392['tree'],'command':_0x1fe392[_0x2e6f92(0x6f)]};}export function generateDynamicServiceHelp(_0xc7ed8){const _0x2c69ad=a62_0x5e26,_0x541987=listLocalServiceTrees()[_0x2c69ad(0xb1)](_0x4df998=>_0x4df998[_0x2c69ad(0xab)]['code']===_0xc7ed8);if(!_0x541987)return undefined;const _0x11731c=[CLI_BIN_NAME+'\x20'+_0xc7ed8+'\x20<command>\x20[flags]','',_0x541987[_0x2c69ad(0xab)][_0x2c69ad(0xc8)]||_0xc7ed8,_0x541987[_0x2c69ad(0xab)]['description']?'\x20\x20'+_0x541987[_0x2c69ad(0xab)]['description']:'','',_0x2c69ad(0x72),..._0x541987[_0x2c69ad(0xa0)]['map'](_0x3052ce=>{const _0x1e3292=_0x2c69ad,_0x53b9f0=_0x3052ce[_0x1e3292(0xc1)][_0x1e3292(0xc4)](0x1)[_0x1e3292(0x83)]('\x20'),_0x568751=_0x3052ce['risk']===_0x1e3292(0xb7)?'':'\x20['+_0x3052ce[_0x1e3292(0x78)]+']';return'\x20\x20'+_0x53b9f0['padEnd'](0x18)+'\x20'+(_0x3052ce[_0x1e3292(0x7b)]||'')+_0x568751;}),'','Use\x20`'+CLI_BIN_NAME+_0x2c69ad(0x93)+_0xc7ed8+_0x2c69ad(0x8f)][_0x2c69ad(0x8a)](Boolean);return _0x11731c[_0x2c69ad(0x83)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x1c6fe1=>{const _0x1bd28a=a62_0x5e26,_0x403b8d=_0x1c6fe1[_0x1bd28a(0x6e)];return{'service':_0x403b8d[_0x1bd28a(0xab)][_0x1bd28a(0x7e)],'label':_0x403b8d['service'][_0x1bd28a(0xc8)]||_0x403b8d[_0x1bd28a(0xab)][_0x1bd28a(0x7e)],'commands':_0x403b8d[_0x1bd28a(0xa0)][_0x1bd28a(0xc3)](_0x12abd4=>({'command':dynamicCommandName(_0x12abd4),'description':_0x12abd4['description']||_0x1bd28a(0xa5)+_0x12abd4[_0x1bd28a(0xa4)],'tag':riskTag(_0x12abd4[_0x1bd28a(0x78)])}))};});}export function getDynamicServiceEntry(_0x366004){return listDynamicServiceEntries()['find'](_0x2fcad5=>_0x2fcad5['service']===_0x366004);}export function listDynamicServiceDefinitions(_0x3a8d28){const _0x3865a0=a62_0x5e26;return listLocalServiceTrees()[_0x3865a0(0x8a)](_0xccd7c2=>!_0x3a8d28||_0xccd7c2[_0x3865a0(0xab)][_0x3865a0(0x7e)]===_0x3a8d28)['flatMap'](_0x40f5ed=>_0x40f5ed[_0x3865a0(0xa0)][_0x3865a0(0xc3)](_0x2261f9=>buildDynamicCommandDefinition(_0x40f5ed,_0x2261f9)));}export function getDynamicServiceDefinitions(_0x19b427){const _0x171754=a62_0x5e26,_0x587fef=listDynamicServiceDefinitions(_0x19b427);return _0x587fef[_0x171754(0x8e)]>0x0?_0x587fef:undefined;}export function findDynamicServiceDefinition(_0x697f04,_0x5b7315){const _0x3a510f=a62_0x5e26;return listDynamicServiceDefinitions(_0x697f04)[_0x3a510f(0xb1)](_0x12124e=>_0x12124e['command']===_0x5b7315);}export function buildDynamicCommandDefinition(_0x4caf4a,_0x3c83bf){const _0x3541b4=a62_0x5e26;return{'service':_0x4caf4a[_0x3541b4(0xab)][_0x3541b4(0x7e)],'command':dynamicCommandName(_0x3c83bf),'description':_0x3c83bf[_0x3541b4(0x7b)]||_0x3541b4(0xa5)+_0x3c83bf[_0x3541b4(0xa4)],'risk':_0x3c83bf[_0x3541b4(0x78)],..._0x3c83bf[_0x3541b4(0x78)]===_0x3541b4(0xb7)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x3c83bf)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x3c83bf['args'][_0x3541b4(0xc3)](_0x3b59b5=>({'name':_0x3b59b5[_0x3541b4(0xc8)],'description':_0x3b59b5[_0x3541b4(0x7b)]||_0x3b59b5[_0x3541b4(0xc8)],'required':_0x3b59b5[_0x3541b4(0xa3)]})),'flags':_0x3c83bf[_0x3541b4(0xa8)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x3c83bf),async 'dryRun'(_0x197fcc){const _0x15bb50=_0x3541b4,_0x3fbeec=await compilePlan(_0x3c83bf,_0x197fcc);return{'method':'SERVICE_TREE','url':_0x3c83bf[_0x15bb50(0xa4)],'body':{'target':targetPreview(_0x3fbeec),'params':_0x3fbeec[_0x15bb50(0x85)]},'description':_0x15bb50(0x97)+_0x3c83bf[_0x15bb50(0xa4)]};},async 'execute'(_0x25e17c){const _0x42f4b1=_0x3541b4,_0x470264=await compilePlan(_0x3c83bf,_0x25e17c),_0x23929d=Date['now'](),_0x267fbe=await executePlan(_0x470264,_0x3c83bf,_0x25e17c),_0x3bb317=Date['now']()-_0x23929d;return{'ok':!![],'data':{'service':_0x4caf4a['service'],'command':_0x3c83bf['cliPath'],'target':targetPreview(_0x470264),'result':_0x267fbe,'elapsed':_0x3bb317},'message':_0x42f4b1(0x95)+_0x3c83bf[_0x42f4b1(0xa4)]+_0x42f4b1(0x92)+_0x3bb317+'ms'};}};}function buildDynamicConfirmationDescription(_0xdbf03c){const _0x21dcd2=a62_0x5e26,_0x456e91=_0xdbf03c['description']||_0xdbf03c['cliPath'],_0x190b5c=_0xdbf03c[_0x21dcd2(0x78)]===_0x21dcd2(0xba)?_0x21dcd2(0xbc):_0x21dcd2(0x9a);return _0x21dcd2(0x89)+_0x456e91+_0x21dcd2(0xc2)+_0x190b5c;}function dynamicCommandName(_0x340467){const _0x291b36=a62_0x5e26;return _0x340467['fullPath'][_0x291b36(0xc4)](0x1)['join']('\x20');}function riskTag(_0x6fe6ed){const _0x5caf23=a62_0x5e26;return _0x6fe6ed===_0x5caf23(0xb7)?'':'\x20\x20['+_0x6fe6ed+']';}function flagToCommandFlag(_0x43e6d2){const _0x4027c4=a62_0x5e26;return{'name':_0x43e6d2[_0x4027c4(0x90)],'type':_0x43e6d2['type']===_0x4027c4(0xbd)?_0x4027c4(0x79):_0x43e6d2[_0x4027c4(0x8c)],'description':_0x43e6d2[_0x4027c4(0x7b)]||_0x43e6d2[_0x4027c4(0xc8)],'required':_0x43e6d2[_0x4027c4(0xa3)],'default':isPrimitiveFlagDefault(_0x43e6d2[_0x4027c4(0xc9)])?_0x43e6d2[_0x4027c4(0xc9)]:undefined,'enum':_0x43e6d2[_0x4027c4(0x9f)]};}async function compilePlan(_0x313ed9,_0x1d1136){const _0x1b881c=a62_0x5e26;return compileServiceTreeCommand(_0x313ed9,{'flags':_0x1d1136['rawFlags'],'args':_0x1d1136[_0x1b881c(0x73)],'context':await buildServiceContext(_0x313ed9,_0x1d1136)});}async function buildServiceContext(_0x3c8deb,_0x3a9e0c){const _0x111116=a62_0x5e26,_0x3c4e00={'appCode':_0x3a9e0c[_0x111116(0x8d)],'env':_0x3a9e0c[_0x111116(0x7f)],'envName':_0x3a9e0c[_0x111116(0x7f)]};if(!usesRuntimeContext(_0x3c8deb))return _0x3c4e00;const _0x59dc91=await getLoginUserInfo(),_0xae7b09=pickFirst(_0x59dc91[_0x111116(0x91)],_0x59dc91['id']);return{..._0x3c4e00,'user':_0x59dc91,'userId':_0xae7b09,'id':_0x59dc91['id'],'username':pickFirst(_0x59dc91[_0x111116(0xa2)],_0x59dc91['userName'],_0x59dc91['loginName']),'userName':_0x59dc91[_0x111116(0x7c)],'nickname':pickFirst(_0x59dc91[_0x111116(0x68)],_0x59dc91[_0x111116(0xa6)]),'nickName':_0x59dc91[_0x111116(0xa6)],'tenantCode':_0x59dc91[_0x111116(0x9d)],'employeeId':_0x59dc91['employeeId']};}function usesRuntimeContext(_0x56c90b){const _0x415e95=a62_0x5e26;return _0x56c90b[_0x415e95(0x82)][_0x415e95(0xc7)](_0x938782=>typeof _0x938782[_0x415e95(0xbf)]===_0x415e95(0x79)&&(_0x938782[_0x415e95(0xbf)][_0x415e95(0xb3)](_0x415e95(0xb0))||_0x938782[_0x415e95(0xbf)]['startsWith']('ctx.')));}function pickFirst(..._0x951f5a){const _0x480a9b=a62_0x5e26;return _0x951f5a[_0x480a9b(0xb1)](_0xa4eb03=>_0xa4eb03!==undefined&&_0xa4eb03!==null);}async function executePlan(_0x3f521a,_0xafaa0b,_0x969039){const _0x5680f8=a62_0x5e26;if(_0x3f521a['kind']==='data'){const _0x356367=await resolveDatasetCode(_0x3f521a,_0xafaa0b,_0x969039);return executeData(_0x356367,_0x3f521a[_0x5680f8(0x6f)],_0x3f521a['params']);}if(_0x3f521a['kind']==='sql'){if(!_0x3f521a['sqlCode'])throw CliErrors[_0x5680f8(0xa1)](_0x5680f8(0x95)+_0xafaa0b['cliPath']+_0x5680f8(0xb6));return executeSdkSql(_0x3f521a[_0x5680f8(0x70)],normalizeScalarParams(_0x3f521a[_0x5680f8(0x85)]));}if(_0x3f521a[_0x5680f8(0x6c)]==='bff'){const _0x25c862=_0x3f521a[_0x5680f8(0x6b)]||_0x3f521a['bffCode']||(_0x3f521a['bffId']==null?'':String(_0x3f521a['bffId']));if(!_0x25c862)throw CliErrors['validation'](_0x5680f8(0x95)+_0xafaa0b['cliPath']+'\x20requires\x20target.functionName.');return executeSdkBff(_0x25c862,_0x3f521a[_0x5680f8(0x85)]);}throw CliErrors[_0x5680f8(0xa1)](_0x5680f8(0xbb)+_0x3f521a[_0x5680f8(0x6c)]);}function a62_0x39f5(){const _0x40f5c9=['app','\x20\x20\x20\x20datatable:\x20','tenantCode','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','enum','commands','validation','username','required','cliPath','Run\x20service\x20command\x20','nickName','env','flags','592856eGmjes','\x20\x20\x20\x20command:\x20','service','27URxDFW','tableName','834900zuPpcG','220478WSSdja','context.','find','\x20\x20SERVICE\x20TREE\x20TARGET','startsWith','\x20\x20MAP\x20TO','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20requires\x20target.sqlCode.','read','appRef','4gncELU','high-risk-write','Unsupported\x20service\x20target\x20kind:\x20','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','json','operator','source','const','fullPath','\x22.\x20','map','slice','\x22\x20in\x20service\x20command\x20','appBindings','some','name','default','249702KxyZzJ','nickname','\x20\x20\x20\x20','push','scriptName','kind','remainingArgs','normalizedManifest','command','sqlCode','trim','Commands:','args','dbtableConfig','Unknown\x20appRef\x20\x22','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','\x20\x20\x20\x20sqlCode:\x20','risk','string','\x20->\x20','description','userName','tree','code','envName','datatable','datasetCode','mapTo','join','target','params','fromEntries','21mQYJRm','564654ppJozg','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','filter','1171437IekKoV','type','appCode','length','`\x20to\x20inspect\x20the\x20manifest.','cliName','userId','\x20completed\x20in\x20','\x20service\x20detail\x20--service\x20','\x20\x20\x20\x20datasetCode:\x20','Service\x20command\x20','appcode','Preview\x20dynamic\x20service\x20command:\x20','entries','317220OEtbYb','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.'];a62_0x39f5=function(){return _0x40f5c9;};return a62_0x39f5();}async function resolveDatasetCode(_0x95f370,_0x522eab,_0x2d4377){const _0x3dd793=a62_0x5e26;if(_0x95f370[_0x3dd793(0x81)])return _0x95f370[_0x3dd793(0x81)];if(!_0x95f370[_0x3dd793(0x80)])throw CliErrors[_0x3dd793(0xa1)](_0x3dd793(0x95)+_0x522eab[_0x3dd793(0xa4)]+_0x3dd793(0x9e));const _0x338673=await listDatasets(_0x2d4377['appCode']),_0x311db9=_0x338673[_0x3dd793(0xb1)](_0x5b78f1=>_0x5b78f1[_0x3dd793(0x74)]?.[_0x3dd793(0xad)]===_0x95f370['datatable']);if(!_0x311db9?.[_0x3dd793(0x7e)])throw CliErrors[_0x3dd793(0xa1)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x95f370[_0x3dd793(0x80)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x2d4377['appCode']+'.',_0x3dd793(0xb5));return _0x311db9[_0x3dd793(0x7e)];}function applyAppBinding(_0x1b77ff,_0x10b62f,_0x1943a2){const _0x204161=a62_0x5e26,_0x2a3c73=_0x10b62f[_0x204161(0x84)][_0x204161(0xb8)];if(!_0x2a3c73)return;const _0x377757=_0x1b77ff[_0x204161(0xc6)][_0x2a3c73];if(!_0x377757)throw CliErrors['validation'](_0x204161(0x75)+_0x2a3c73+_0x204161(0xc5)+_0x10b62f[_0x204161(0xa4)]+'.',_0x204161(0x76));const _0x348009=_0x377757[_0x204161(0x96)]||_0x377757[_0x204161(0x8d)];_0x348009&&!hasText(_0x1943a2['appcode'])&&(_0x1943a2[_0x204161(0x96)]=_0x348009),_0x377757['app']&&!hasText(_0x1943a2[_0x204161(0x9b)])&&!hasText(_0x1943a2[_0x204161(0x96)])&&(_0x1943a2[_0x204161(0x9b)]=_0x377757['app']),_0x377757[_0x204161(0xa7)]&&!hasText(_0x1943a2[_0x204161(0xa7)])&&(_0x1943a2['env']=_0x377757[_0x204161(0xa7)]);}function renderDynamicCommandHelp(_0x5890e6){const _0x3638c6=a62_0x5e26,_0x4c5dbf=[_0x3638c6(0xb2),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5890e6[_0x3638c6(0x84)][_0x3638c6(0x6c)],_0x3638c6(0xaa)+_0x5890e6[_0x3638c6(0x84)][_0x3638c6(0x6f)]];if(_0x5890e6['target'][_0x3638c6(0x81)])_0x4c5dbf[_0x3638c6(0x6a)](_0x3638c6(0x94)+_0x5890e6[_0x3638c6(0x84)][_0x3638c6(0x81)]);if(_0x5890e6[_0x3638c6(0x84)][_0x3638c6(0x80)])_0x4c5dbf[_0x3638c6(0x6a)](_0x3638c6(0x9c)+_0x5890e6['target'][_0x3638c6(0x80)]);if(_0x5890e6[_0x3638c6(0x84)][_0x3638c6(0x70)])_0x4c5dbf[_0x3638c6(0x6a)](_0x3638c6(0x77)+_0x5890e6[_0x3638c6(0x84)][_0x3638c6(0x70)]);if(_0x5890e6['target'][_0x3638c6(0x6b)])_0x4c5dbf[_0x3638c6(0x6a)]('\x20\x20\x20\x20functionName:\x20'+_0x5890e6['target']['scriptName']);if(_0x5890e6[_0x3638c6(0x82)][_0x3638c6(0x8e)]>0x0){_0x4c5dbf[_0x3638c6(0x6a)]('',_0x3638c6(0xb4));for(const _0x1c75e7 of _0x5890e6[_0x3638c6(0x82)]){_0x4c5dbf['push'](_0x3638c6(0x69)+(_0x1c75e7[_0x3638c6(0xbf)]||_0x3638c6(0xc0))+_0x3638c6(0x7a)+_0x1c75e7[_0x3638c6(0x84)]+(_0x1c75e7[_0x3638c6(0xbe)]?'.'+_0x1c75e7[_0x3638c6(0xbe)]:''));}}return _0x4c5dbf['join']('\x0a');}function targetPreview(_0x2b8a13){const _0x32b40d=a62_0x5e26;return{'kind':_0x2b8a13[_0x32b40d(0x6c)],'command':_0x2b8a13[_0x32b40d(0x6f)],'appRef':_0x2b8a13['appRef'],'datasetCode':_0x2b8a13[_0x32b40d(0x81)],'datatable':_0x2b8a13[_0x32b40d(0x80)],'sqlCode':_0x2b8a13[_0x32b40d(0x70)],'bffCode':_0x2b8a13['bffCode'],'bffId':_0x2b8a13['bffId'],'functionName':_0x2b8a13[_0x32b40d(0x6b)]};}function normalizeScalarParams(_0xb1bdfd){const _0x2ca203=a62_0x5e26;return Object[_0x2ca203(0x86)](Object[_0x2ca203(0x98)](_0xb1bdfd)[_0x2ca203(0x8a)](([,_0x334588])=>typeof _0x334588===_0x2ca203(0x79)||typeof _0x334588==='number'));}function hasText(_0x57fc6b){const _0x318a71=a62_0x5e26;return typeof _0x57fc6b===_0x318a71(0x79)&&_0x57fc6b[_0x318a71(0x71)]()[_0x318a71(0x8e)]>0x0;}function isPrimitiveFlagDefault(_0x1173ea){const _0x23d7df=a62_0x5e26;return _0x1173ea===undefined||typeof _0x1173ea===_0x23d7df(0x79)||typeof _0x1173ea==='number'||typeof _0x1173ea==='boolean';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x13077b,_0x3f688b){const _0x265985=a63_0x5cdb,_0x40b3fa=_0x13077b();while(!![]){try{const _0x23da6e=parseInt(_0x265985(0x1f8))/0x1+parseInt(_0x265985(0x1f6))/0x2+-parseInt(_0x265985(0x1e5))/0x3*(parseInt(_0x265985(0x1e2))/0x4)+-parseInt(_0x265985(0x1ff))/0x5+-parseInt(_0x265985(0x1e9))/0x6+parseInt(_0x265985(0x1eb))/0x7*(parseInt(_0x265985(0x1f5))/0x8)+parseInt(_0x265985(0x1fc))/0x9;if(_0x23da6e===_0x3f688b)break;else _0x40b3fa['push'](_0x40b3fa['shift']());}catch(_0x1afd0a){_0x40b3fa['push'](_0x40b3fa['shift']());}}}(a63_0x38fe,0x5aa44));export function adaptServiceTreeManifestForLegacyFramework(_0xd9007){const _0x5475d1=a63_0x5cdb,_0x29b9ad=cloneJsonValue(_0xd9007),_0xf42401=[];if(!isObjectRecord(_0x29b9ad))return{'manifest':_0x29b9ad,'errors':_0xf42401};return Array[_0x5475d1(0x1f2)](_0x29b9ad[_0x5475d1(0x1f1)])&&_0x29b9ad[_0x5475d1(0x1f1)][_0x5475d1(0x1dd)]((_0x4df5d1,_0x58afff)=>{const _0x1bc97b=_0x5475d1;if(!isObjectRecord(_0x4df5d1))return;adaptBffTarget(_0x4df5d1[_0x1bc97b(0x1fa)],'$.commands['+_0x58afff+_0x1bc97b(0x1e0),_0xf42401);}),adaptResources(_0x29b9ad['resources'],_0x5475d1(0x1fe),_0xf42401),{'manifest':_0x29b9ad,'errors':_0xf42401};}export function toPublicServiceTreeTarget(_0xe49ec2){const _0x1a34fc=a63_0x5cdb,{scriptName:_0x2127ee,..._0x4ef411}=_0xe49ec2;return typeof _0x2127ee===_0x1a34fc(0x201)&&_0x2127ee['trim']()&&(_0x4ef411[_0x1a34fc(0x1ed)]=_0x2127ee),_0x4ef411;}export function toPublicNormalizedServiceTree(_0x3de204){const _0x14d6eb=a63_0x5cdb;return{..._0x3de204,'commands':_0x3de204[_0x14d6eb(0x1f1)][_0x14d6eb(0x1ef)](_0x2392f9=>({..._0x2392f9,'target':toPublicServiceTreeTarget(_0x2392f9[_0x14d6eb(0x1fa)])}))};}function a63_0x5cdb(_0x589a98,_0xbc0f15){_0x589a98=_0x589a98-0x1dd;const _0x38fe3b=a63_0x38fe();let _0x5cdb73=_0x38fe3b[_0x589a98];return _0x5cdb73;}function adaptResources(_0x215101,_0x4671e7,_0x101c57){const _0x2d92ac=a63_0x5cdb;if(!isObjectRecord(_0x215101))return;for(const [_0x5d0db3,_0x7f7d7a]of Object['entries'](_0x215101)){if(!isObjectRecord(_0x7f7d7a))continue;const _0x1912c5=_0x4671e7+'.'+_0x5d0db3;if(isObjectRecord(_0x7f7d7a[_0x2d92ac(0x1de)]))for(const [_0x2e5a71,_0x1c4bbc]of Object[_0x2d92ac(0x1e1)](_0x7f7d7a[_0x2d92ac(0x1de)])){if(!isObjectRecord(_0x1c4bbc))continue;const _0x15f042=_0x1912c5+_0x2d92ac(0x1e8)+_0x2e5a71,_0x26ca11=isObjectRecord(_0x1c4bbc['target'])&&_0x1c4bbc[_0x2d92ac(0x1fa)][_0x2d92ac(0x1df)]===_0x2d92ac(0x1e3);adaptBffTarget(_0x1c4bbc['target'],_0x15f042+_0x2d92ac(0x1ee),_0x101c57),(_0x26ca11||isBffAction(_0x1c4bbc))&&adaptFunctionNameField(_0x1c4bbc,_0x15f042,_0x101c57);}adaptResources(_0x7f7d7a[_0x2d92ac(0x200)],_0x1912c5+_0x2d92ac(0x1f9),_0x101c57);}}function a63_0x38fe(){const _0x53f16b=['24itrGoF','258788OlwHky','scriptName','144969VsDFTd','.resources','target','fromEntries','10902330aGeSxy','call','$.resources','754635rIWnut','resources','string','forEach','actions','kind','].target','entries','465552kpBevY','bff','action','12AqcUFR','error','push','.actions.','3556824lXJZni','trim','221242JejBXT','bff.exec','functionName','.target','map','.scriptName','commands','isArray','prototype','hasOwnProperty'];a63_0x38fe=function(){return _0x53f16b;};return a63_0x38fe();}function adaptBffTarget(_0x5b10b2,_0x126bbf,_0x240afa){const _0x3d04af=a63_0x5cdb;if(!isObjectRecord(_0x5b10b2)||_0x5b10b2['kind']!==_0x3d04af(0x1e3))return;adaptFunctionNameField(_0x5b10b2,_0x126bbf,_0x240afa);}function adaptFunctionNameField(_0x4232cd,_0x36b429,_0x37cce7){const _0x354153=a63_0x5cdb;Object[_0x354153(0x1f3)]['hasOwnProperty'][_0x354153(0x1fd)](_0x4232cd,_0x354153(0x1f7))&&_0x37cce7[_0x354153(0x1e7)]({'level':_0x354153(0x1e6),'path':_0x36b429+_0x354153(0x1f0),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x354153(0x1f3)][_0x354153(0x1f4)][_0x354153(0x1fd)](_0x4232cd,_0x354153(0x1ed))){if(typeof _0x4232cd[_0x354153(0x1ed)]!==_0x354153(0x201)||!_0x4232cd[_0x354153(0x1ed)][_0x354153(0x1ea)]()){_0x37cce7[_0x354153(0x1e7)]({'level':_0x354153(0x1e6),'path':_0x36b429+'.functionName','message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x4232cd[_0x354153(0x1ed)];return;}_0x4232cd[_0x354153(0x1f7)]=_0x4232cd[_0x354153(0x1ed)],delete _0x4232cd[_0x354153(0x1ed)];}}function isBffAction(_0x50296d){const _0x26d062=a63_0x5cdb;return _0x50296d[_0x26d062(0x1df)]==='bff'||_0x50296d[_0x26d062(0x1e4)]===_0x26d062(0x1ec)||_0x50296d[_0x26d062(0x1fa)]===_0x26d062(0x1ec);}function cloneJsonValue(_0x31b22a){const _0x4d688a=a63_0x5cdb;if(Array[_0x4d688a(0x1f2)](_0x31b22a))return _0x31b22a[_0x4d688a(0x1ef)](_0x755da3=>cloneJsonValue(_0x755da3));if(isObjectRecord(_0x31b22a))return Object[_0x4d688a(0x1fb)](Object[_0x4d688a(0x1e1)](_0x31b22a)[_0x4d688a(0x1ef)](([_0x2f6946,_0x54cc7c])=>[_0x2f6946,cloneJsonValue(_0x54cc7c)]));return _0x31b22a;}function isObjectRecord(_0x4ab044){const _0x5499eb=a63_0x5cdb;return Boolean(_0x4ab044)&&typeof _0x4ab044==='object'&&!Array[_0x5499eb(0x1f2)](_0x4ab044);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a64_0x30ec(){const _0x5ecade=['serviceCount','updated','registryPath','Imported','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','1701dcDbUx','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','source','string','hash','registry','19285700ARLKCm','remove','entries','cliPath','risk','Local\x20service\x20code,\x20for\x20example\x20crm','importedAt','serviceCode','\x20service(s),\x20updated\x20','read','str','Exported\x20service\x20','imported','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.','list','map','7132572qDNzwD','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.','registryIndex','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','registryServiceCode','length','filePath','Updated','2733LijAuj','1122926iYcvDe','entry','target','version','errors','manifest','service','normalizedManifest','report','reduce','Removed\x20service\x20','kind','Imported\x20','162NOvhwP','export','import','flags','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','\x20service(s).','3826236HYuzPR','description','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Local\x20service\x20not\x20found:\x20','manifests','name','required','5cNuaDT','warnings','\x20service\x20','file','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','cliName','59992mefHxa','75809KUdrIv','WRITE','replaced','commands','write','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','lower\x20kebab-case\x20service\x20code'];a64_0x30ec=function(){return _0x5ecade;};return a64_0x30ec();}const a64_0x9e401d=a64_0x2a20;(function(_0x701c93,_0x5f3134){const _0x10b162=a64_0x2a20,_0x32983d=_0x701c93();while(!![]){try{const _0x2f9047=-parseInt(_0x10b162(0x107))/0x1+-parseInt(_0x10b162(0xf3))/0x2*(parseInt(_0x10b162(0xe5))/0x3)+-parseInt(_0x10b162(0xf9))/0x4+-parseInt(_0x10b162(0x100))/0x5*(-parseInt(_0x10b162(0xdc))/0x6)+parseInt(_0x10b162(0xe6))/0x7+parseInt(_0x10b162(0x106))/0x8*(-parseInt(_0x10b162(0x113))/0x9)+parseInt(_0x10b162(0xcc))/0xa;if(_0x2f9047===_0x5f3134)break;else _0x32983d['push'](_0x32983d['shift']());}catch(_0x44cee2){_0x32983d['push'](_0x32983d['shift']());}}}(a64_0x30ec,0xb8268));function a64_0x2a20(_0x495a82,_0x54f99e){_0x495a82=_0x495a82-0xcb;const _0x30ec77=a64_0x30ec();let _0x2a2050=_0x30ec77[_0x495a82];return _0x2a2050;}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':'file','type':a64_0x9e401d(0x116),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a64_0x9e401d(0xec),'type':a64_0x9e401d(0x116),'required':!![],'description':a64_0x9e401d(0xd1),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x9e401d(0x10d)}};function summarizeService(_0x439dde){const _0x48d70b=a64_0x9e401d;return{'serviceCode':_0x439dde['serviceCode'],'name':_0x439dde[_0x48d70b(0xed)][_0x48d70b(0xec)][_0x48d70b(0xfe)],'version':_0x439dde[_0x48d70b(0xe9)],'importedAt':_0x439dde[_0x48d70b(0xd2)],'source':_0x439dde[_0x48d70b(0x115)],'commandCount':_0x439dde[_0x48d70b(0xed)]['commands'][_0x48d70b(0xe2)],'commands':_0x439dde[_0x48d70b(0xed)][_0x48d70b(0x10a)][_0x48d70b(0xdb)](_0xc64dde=>({'path':_0xc64dde[_0x48d70b(0xcf)],'description':_0xc64dde[_0x48d70b(0xfa)],'risk':_0xc64dde['risk'],'target':toPublicServiceTreeTarget(_0xc64dde[_0x48d70b(0xe8)]),'flags':_0xc64dde[_0x48d70b(0xf6)][_0x48d70b(0xdb)](_0x2297d5=>({'name':_0x2297d5[_0x48d70b(0xfe)],'cliName':_0x2297d5[_0x48d70b(0x105)],'type':_0x2297d5['type'],'required':_0x2297d5[_0x48d70b(0xff)]===!![]}))}))};}function summarizeLoadedManifest(_0x36e929){const _0x10345a=a64_0x9e401d;return{'service':_0x36e929[_0x10345a(0xed)]?.[_0x10345a(0xec)],'version':_0x36e929[_0x10345a(0xed)]?.['version'],'commandCount':_0x36e929[_0x10345a(0xed)]?.[_0x10345a(0x10a)][_0x10345a(0xe2)]??0x0,'commands':_0x36e929['normalizedManifest']?.[_0x10345a(0x10a)]['map'](_0x146505=>({'path':_0x146505['cliPath'],'risk':_0x146505['risk'],'target':toPublicServiceTreeTarget(_0x146505[_0x10345a(0xe8)])}))??[],'registryIndex':_0x36e929[_0x10345a(0xde)],'registryServiceCode':_0x36e929[_0x10345a(0xe1)],'errors':_0x36e929['report'][_0x10345a(0xea)],'warnings':_0x36e929[_0x10345a(0xee)]['warnings']};}export const serviceDefinitions=[{'service':'service','command':'validate','description':a64_0x9e401d(0xfb),'risk':a64_0x9e401d(0xd5),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x14a44c){const _0x22c295=a64_0x9e401d,_0x4873e4=loadServiceManifestFromFile(_0x14a44c[_0x22c295(0xd6)]('file'));if(!_0x4873e4[_0x22c295(0xee)]['ok'])return{'ok':![],'data':{'file':_0x4873e4[_0x22c295(0xe3)],'hash':_0x4873e4[_0x22c295(0x117)],'kind':_0x4873e4[_0x22c295(0xf1)],'serviceCount':_0x4873e4[_0x22c295(0xfd)][_0x22c295(0xe2)],'services':_0x4873e4['manifests'][_0x22c295(0xdb)](summarizeLoadedManifest),'errors':_0x4873e4[_0x22c295(0xee)]['errors'],'warnings':_0x4873e4[_0x22c295(0xee)]['warnings']},'message':formatValidationFailure(_0x4873e4[_0x22c295(0xee)])};if(_0x4873e4[_0x22c295(0xf1)]===_0x22c295(0xcb)||_0x4873e4[_0x22c295(0xfd)][_0x22c295(0xe2)]!==0x1)return{'ok':!![],'data':{'file':_0x4873e4['filePath'],'hash':_0x4873e4[_0x22c295(0x117)],'kind':_0x4873e4[_0x22c295(0xf1)],'serviceCount':_0x4873e4[_0x22c295(0xfd)][_0x22c295(0xe2)],'commandCount':_0x4873e4[_0x22c295(0xfd)][_0x22c295(0xef)]((_0x37220b,_0x45779f)=>_0x37220b+(_0x45779f[_0x22c295(0xed)]?.['commands'][_0x22c295(0xe2)]??0x0),0x0),'services':_0x4873e4['manifests'][_0x22c295(0xdb)](summarizeLoadedManifest),'warnings':_0x4873e4[_0x22c295(0xee)][_0x22c295(0x101)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x4873e4[_0x22c295(0xe3)],'hash':_0x4873e4['hash'],'kind':_0x4873e4[_0x22c295(0xf1)],'service':_0x4873e4['normalizedManifest']?.[_0x22c295(0xec)],'version':_0x4873e4[_0x22c295(0xed)]?.[_0x22c295(0xe9)],'commandCount':_0x4873e4[_0x22c295(0xed)]?.[_0x22c295(0x10a)][_0x22c295(0xe2)]??0x0,'commands':_0x4873e4[_0x22c295(0xed)]?.['commands'][_0x22c295(0xdb)](_0x2ecc0a=>({'path':_0x2ecc0a[_0x22c295(0xcf)],'risk':_0x2ecc0a[_0x22c295(0xd0)],'target':toPublicServiceTreeTarget(_0x2ecc0a[_0x22c295(0xe8)])})),'warnings':_0x4873e4[_0x22c295(0xee)][_0x22c295(0x101)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a64_0x9e401d(0xec),'command':a64_0x9e401d(0xf5),'description':a64_0x9e401d(0x112),'risk':a64_0x9e401d(0x10b),'confirmationDescription':a64_0x9e401d(0xd9),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x47c469){const _0x95dfe6=a64_0x9e401d,_0x130574=loadServiceManifestFromFile(_0x47c469[_0x95dfe6(0xd6)]('file'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x130574['filePath'],'hash':_0x130574[_0x95dfe6(0x117)],'kind':_0x130574[_0x95dfe6(0xf1)],'ok':_0x130574[_0x95dfe6(0xee)]['ok'],'service':_0x130574[_0x95dfe6(0xed)]?.[_0x95dfe6(0xec)],'version':_0x130574[_0x95dfe6(0xed)]?.[_0x95dfe6(0xe9)],'serviceCount':_0x130574[_0x95dfe6(0xfd)][_0x95dfe6(0xe2)],'services':_0x130574[_0x95dfe6(0xfd)]['map'](_0x478b97=>({'service':_0x478b97[_0x95dfe6(0xed)]?.[_0x95dfe6(0xec)],'version':_0x478b97[_0x95dfe6(0xed)]?.[_0x95dfe6(0xe9)],'commandCount':_0x478b97[_0x95dfe6(0xed)]?.[_0x95dfe6(0x10a)]['length']??0x0,'errors':_0x478b97['report'][_0x95dfe6(0xea)]})),'errors':_0x130574[_0x95dfe6(0xee)][_0x95dfe6(0xea)],'commandCount':_0x130574[_0x95dfe6(0xed)]?.[_0x95dfe6(0x10a)]['length']??0x0},'description':_0x95dfe6(0xe0)};},async 'execute'(_0x4a6ceb){const _0x4c7182=a64_0x9e401d,_0x47b38b=importServiceManifest(_0x4a6ceb['str']('file'));if(_0x47b38b[_0x4c7182(0xce)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x47b38b['registryPath'],'imported':_0x47b38b[_0x4c7182(0xd8)],'updated':_0x47b38b['updated'],'serviceCount':_0x47b38b[_0x4c7182(0x10e)],'services':_0x47b38b[_0x4c7182(0xce)][_0x4c7182(0xdb)](summarizeService)},'message':_0x4c7182(0xf2)+_0x47b38b['imported']+_0x4c7182(0xd4)+_0x47b38b['updated']+_0x4c7182(0xf8)};return{'ok':!![],'data':{'registryPath':_0x47b38b[_0x4c7182(0x110)],'replaced':_0x47b38b[_0x4c7182(0x109)],'imported':_0x47b38b[_0x4c7182(0xd8)],'updated':_0x47b38b[_0x4c7182(0x10f)],'serviceCount':_0x47b38b['serviceCount'],'service':summarizeService(_0x47b38b[_0x4c7182(0xe7)])},'message':(_0x47b38b['replaced']?_0x4c7182(0xe4):_0x4c7182(0x111))+_0x4c7182(0x102)+_0x47b38b[_0x4c7182(0xe7)][_0x4c7182(0xd3)]+'.'};}},{'service':a64_0x9e401d(0xec),'command':a64_0x9e401d(0xf4),'description':a64_0x9e401d(0xf7),'risk':'write','confirmationDescription':a64_0x9e401d(0xdd),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4bd9de){const _0xd9b8c8=a64_0x9e401d,_0xc43131=getLocalServiceEntry(_0x4bd9de[_0xd9b8c8(0xd6)]('service'));return{'method':_0xd9b8c8(0x108),'url':_0x4bd9de['str'](_0xd9b8c8(0x103)),'body':{'service':_0x4bd9de[_0xd9b8c8(0xd6)](_0xd9b8c8(0xec)),'found':Boolean(_0xc43131),'version':_0xc43131?.[_0xd9b8c8(0xe9)],'source':_0xc43131?.[_0xd9b8c8(0x115)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x25e1a0){const _0xd8f757=a64_0x9e401d,_0x3200d9=exportServiceManifest(_0x25e1a0[_0xd8f757(0xd6)]('service'),_0x25e1a0[_0xd8f757(0xd6)](_0xd8f757(0x103)));return{'ok':!![],'data':{'registryPath':_0x3200d9['registryPath'],'file':_0x3200d9[_0xd8f757(0xe3)],'service':summarizeService(_0x3200d9['entry'])},'message':_0xd8f757(0xd7)+_0x3200d9[_0xd8f757(0xe7)]['serviceCode']+'.'};}},{'service':'service','command':a64_0x9e401d(0xda),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1e0d0a=a64_0x9e401d,_0x50836c=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x50836c['length'],'services':_0x50836c[_0x1e0d0a(0xdb)](summarizeService)}};}},{'service':a64_0x9e401d(0xec),'command':a64_0x9e401d(0xcd),'description':a64_0x9e401d(0x10c),'risk':a64_0x9e401d(0x10b),'confirmationDescription':a64_0x9e401d(0x114),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xb0da2a){const _0x80ede9=a64_0x9e401d,_0x246ab3=getLocalServiceEntry(_0xb0da2a[_0x80ede9(0xd6)](_0x80ede9(0xec)));return{'method':_0x80ede9(0x108),'url':getServiceRegistryPath(),'body':{'service':_0xb0da2a['str'](_0x80ede9(0xec)),'found':Boolean(_0x246ab3),'version':_0x246ab3?.['version'],'source':_0x246ab3?.[_0x80ede9(0x115)]},'description':_0x80ede9(0x104)};},async 'execute'(_0x10c32f){const _0x553afd=a64_0x9e401d,_0x1b2b65=removeServiceManifest(_0x10c32f[_0x553afd(0xd6)](_0x553afd(0xec)));return{'ok':!![],'data':{'registryPath':_0x1b2b65[_0x553afd(0x110)],'serviceCount':_0x1b2b65['serviceCount'],'service':summarizeService(_0x1b2b65[_0x553afd(0xe7)])},'message':_0x553afd(0xf0)+_0x1b2b65['entry'][_0x553afd(0xd3)]+'.'};}},{'service':'service','command':'detail','description':a64_0x9e401d(0xdf),'risk':a64_0x9e401d(0xd5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x30db27){const _0xb05b81=a64_0x9e401d,_0xcc19b0=getLocalServiceEntry(_0x30db27['str'](_0xb05b81(0xec)));if(!_0xcc19b0)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x30db27[_0xb05b81(0xd6)](_0xb05b81(0xec))},'message':_0xb05b81(0xfc)+_0x30db27[_0xb05b81(0xd6)](_0xb05b81(0xec))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0xcc19b0),'manifest':_0xcc19b0[_0xb05b81(0xeb)],'normalizedManifest':toPublicNormalizedServiceTree(_0xcc19b0[_0xb05b81(0xed)])}};}}];
|
|
1
|
+
const a64_0x14345f=a64_0x2562;(function(_0x554e96,_0x210d71){const _0xc94c4e=a64_0x2562,_0x2ab17a=_0x554e96();while(!![]){try{const _0x27ca91=-parseInt(_0xc94c4e(0x1e6))/0x1+-parseInt(_0xc94c4e(0x211))/0x2+-parseInt(_0xc94c4e(0x1d5))/0x3+parseInt(_0xc94c4e(0x1ec))/0x4*(-parseInt(_0xc94c4e(0x1e0))/0x5)+parseInt(_0xc94c4e(0x20e))/0x6+-parseInt(_0xc94c4e(0x1dd))/0x7+parseInt(_0xc94c4e(0x1fa))/0x8;if(_0x27ca91===_0x210d71)break;else _0x2ab17a['push'](_0x2ab17a['shift']());}catch(_0x2130db){_0x2ab17a['push'](_0x2ab17a['shift']());}}}(a64_0xce75,0xcb2fa));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a64_0xce75(){const _0x1e0cab=['Service\x20registry\x20validation\x20passed.','map','Imported\x20','type','kind','4512798WoLPqQ','source','import','Updated','filePath','normalizedManifest','description','entry','4189500UYIfOf','remove','errors','5kOrnjC','string','list','updated','replaced','export','279923JRyRol','validate','length','version','Local\x20service\x20not\x20found:\x20','importedAt','6208108ZOVCNM','target','str','warnings','Service\x20Tree\x20manifest\x20file\x20path','risk','commands','hash','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','read','flags','required','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','manifests','47019832DkKQyu','manifest','cliPath','Imported','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Local\x20service\x20code,\x20for\x20example\x20crm','\x20service\x20','WRITE','write','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.','serviceCount','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','\x20service(s),\x20updated\x20','name','imported','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','serviceCode','registryIndex','Removed\x20service\x20','detail','2348130QoKvpk','service','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','3003736dYoYof','report','entries','file','registryPath','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Exported\x20service\x20'];a64_0xce75=function(){return _0x1e0cab;};return a64_0xce75();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a64_0x2562(_0xd300fc,_0xcded7a){_0xd300fc=_0xd300fc-0x1ca;const _0xce7508=a64_0xce75();let _0x256228=_0xce7508[_0xd300fc];return _0x256228;}const FILE_FLAG={'name':a64_0x14345f(0x1cc),'type':a64_0x14345f(0x1e1),'required':!![],'description':a64_0x14345f(0x1f0)},SERVICE_FLAG={'name':a64_0x14345f(0x20f),'type':a64_0x14345f(0x1e1),'required':!![],'description':a64_0x14345f(0x1ff),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x597b95){const _0x2bf6dc=a64_0x14345f;return{'serviceCode':_0x597b95[_0x2bf6dc(0x20a)],'name':_0x597b95['normalizedManifest'][_0x2bf6dc(0x20f)][_0x2bf6dc(0x207)],'version':_0x597b95['version'],'importedAt':_0x597b95[_0x2bf6dc(0x1eb)],'source':_0x597b95[_0x2bf6dc(0x1d6)],'commandCount':_0x597b95[_0x2bf6dc(0x1da)]['commands'][_0x2bf6dc(0x1e8)],'commands':_0x597b95[_0x2bf6dc(0x1da)][_0x2bf6dc(0x1f2)][_0x2bf6dc(0x1d1)](_0x55adc5=>({'path':_0x55adc5[_0x2bf6dc(0x1fc)],'description':_0x55adc5[_0x2bf6dc(0x1db)],'risk':_0x55adc5[_0x2bf6dc(0x1f1)],'target':toPublicServiceTreeTarget(_0x55adc5[_0x2bf6dc(0x1ed)]),'flags':_0x55adc5[_0x2bf6dc(0x1f6)][_0x2bf6dc(0x1d1)](_0x5ba48a=>({'name':_0x5ba48a[_0x2bf6dc(0x207)],'cliName':_0x5ba48a['cliName'],'type':_0x5ba48a[_0x2bf6dc(0x1d3)],'required':_0x5ba48a[_0x2bf6dc(0x1f7)]===!![]}))}))};}function summarizeLoadedManifest(_0x92da02){const _0x3b64db=a64_0x14345f;return{'service':_0x92da02[_0x3b64db(0x1da)]?.['service'],'version':_0x92da02[_0x3b64db(0x1da)]?.['version'],'commandCount':_0x92da02[_0x3b64db(0x1da)]?.[_0x3b64db(0x1f2)][_0x3b64db(0x1e8)]??0x0,'commands':_0x92da02['normalizedManifest']?.[_0x3b64db(0x1f2)][_0x3b64db(0x1d1)](_0x35c880=>({'path':_0x35c880[_0x3b64db(0x1fc)],'risk':_0x35c880[_0x3b64db(0x1f1)],'target':toPublicServiceTreeTarget(_0x35c880['target'])}))??[],'registryIndex':_0x92da02[_0x3b64db(0x20b)],'registryServiceCode':_0x92da02['registryServiceCode'],'errors':_0x92da02[_0x3b64db(0x1ca)]['errors'],'warnings':_0x92da02[_0x3b64db(0x1ca)][_0x3b64db(0x1ef)]};}export const serviceDefinitions=[{'service':a64_0x14345f(0x20f),'command':a64_0x14345f(0x1e7),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a64_0x14345f(0x1f5),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2b7185){const _0x257e9f=a64_0x14345f,_0x2f08f8=loadServiceManifestFromFile(_0x2b7185[_0x257e9f(0x1ee)](_0x257e9f(0x1cc)));if(!_0x2f08f8[_0x257e9f(0x1ca)]['ok'])return{'ok':![],'data':{'file':_0x2f08f8[_0x257e9f(0x1d9)],'hash':_0x2f08f8[_0x257e9f(0x1f3)],'kind':_0x2f08f8[_0x257e9f(0x1d4)],'serviceCount':_0x2f08f8[_0x257e9f(0x1f9)][_0x257e9f(0x1e8)],'services':_0x2f08f8[_0x257e9f(0x1f9)][_0x257e9f(0x1d1)](summarizeLoadedManifest),'errors':_0x2f08f8['report']['errors'],'warnings':_0x2f08f8['report'][_0x257e9f(0x1ef)]},'message':formatValidationFailure(_0x2f08f8['report'])};if(_0x2f08f8['kind']==='registry'||_0x2f08f8['manifests'][_0x257e9f(0x1e8)]!==0x1)return{'ok':!![],'data':{'file':_0x2f08f8['filePath'],'hash':_0x2f08f8[_0x257e9f(0x1f3)],'kind':_0x2f08f8[_0x257e9f(0x1d4)],'serviceCount':_0x2f08f8[_0x257e9f(0x1f9)]['length'],'commandCount':_0x2f08f8[_0x257e9f(0x1f9)]['reduce']((_0x5677b3,_0x11fd6b)=>_0x5677b3+(_0x11fd6b[_0x257e9f(0x1da)]?.[_0x257e9f(0x1f2)][_0x257e9f(0x1e8)]??0x0),0x0),'services':_0x2f08f8[_0x257e9f(0x1f9)][_0x257e9f(0x1d1)](summarizeLoadedManifest),'warnings':_0x2f08f8[_0x257e9f(0x1ca)][_0x257e9f(0x1ef)]},'message':_0x257e9f(0x1d0)};return{'ok':!![],'data':{'file':_0x2f08f8['filePath'],'hash':_0x2f08f8[_0x257e9f(0x1f3)],'kind':_0x2f08f8['kind'],'service':_0x2f08f8[_0x257e9f(0x1da)]?.['service'],'version':_0x2f08f8[_0x257e9f(0x1da)]?.['version'],'commandCount':_0x2f08f8[_0x257e9f(0x1da)]?.['commands'][_0x257e9f(0x1e8)]??0x0,'commands':_0x2f08f8[_0x257e9f(0x1da)]?.[_0x257e9f(0x1f2)][_0x257e9f(0x1d1)](_0x507106=>({'path':_0x507106[_0x257e9f(0x1fc)],'risk':_0x507106[_0x257e9f(0x1f1)],'target':toPublicServiceTreeTarget(_0x507106[_0x257e9f(0x1ed)])})),'warnings':_0x2f08f8[_0x257e9f(0x1ca)][_0x257e9f(0x1ef)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a64_0x14345f(0x20f),'command':a64_0x14345f(0x1d7),'description':a64_0x14345f(0x1f4),'risk':'write','confirmationDescription':a64_0x14345f(0x203),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5ea0ae){const _0x1d8a96=a64_0x14345f,_0x327e12=loadServiceManifestFromFile(_0x5ea0ae[_0x1d8a96(0x1ee)]('file'));return{'method':_0x1d8a96(0x201),'url':getServiceRegistryPath(),'body':{'file':_0x327e12[_0x1d8a96(0x1d9)],'hash':_0x327e12[_0x1d8a96(0x1f3)],'kind':_0x327e12['kind'],'ok':_0x327e12['report']['ok'],'service':_0x327e12[_0x1d8a96(0x1da)]?.[_0x1d8a96(0x20f)],'version':_0x327e12[_0x1d8a96(0x1da)]?.[_0x1d8a96(0x1e9)],'serviceCount':_0x327e12[_0x1d8a96(0x1f9)][_0x1d8a96(0x1e8)],'services':_0x327e12[_0x1d8a96(0x1f9)][_0x1d8a96(0x1d1)](_0x462ee1=>({'service':_0x462ee1[_0x1d8a96(0x1da)]?.[_0x1d8a96(0x20f)],'version':_0x462ee1[_0x1d8a96(0x1da)]?.[_0x1d8a96(0x1e9)],'commandCount':_0x462ee1[_0x1d8a96(0x1da)]?.['commands'][_0x1d8a96(0x1e8)]??0x0,'errors':_0x462ee1[_0x1d8a96(0x1ca)]['errors']})),'errors':_0x327e12[_0x1d8a96(0x1ca)][_0x1d8a96(0x1df)],'commandCount':_0x327e12[_0x1d8a96(0x1da)]?.[_0x1d8a96(0x1f2)]['length']??0x0},'description':_0x1d8a96(0x209)};},async 'execute'(_0x16873e){const _0x4cb1df=a64_0x14345f,_0x5063e2=importServiceManifest(_0x16873e[_0x4cb1df(0x1ee)](_0x4cb1df(0x1cc)));if(_0x5063e2[_0x4cb1df(0x1cb)][_0x4cb1df(0x1e8)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5063e2[_0x4cb1df(0x1cd)],'imported':_0x5063e2[_0x4cb1df(0x208)],'updated':_0x5063e2[_0x4cb1df(0x1e3)],'serviceCount':_0x5063e2['serviceCount'],'services':_0x5063e2[_0x4cb1df(0x1cb)][_0x4cb1df(0x1d1)](summarizeService)},'message':_0x4cb1df(0x1d2)+_0x5063e2[_0x4cb1df(0x208)]+_0x4cb1df(0x206)+_0x5063e2['updated']+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x5063e2[_0x4cb1df(0x1cd)],'replaced':_0x5063e2[_0x4cb1df(0x1e4)],'imported':_0x5063e2[_0x4cb1df(0x208)],'updated':_0x5063e2[_0x4cb1df(0x1e3)],'serviceCount':_0x5063e2[_0x4cb1df(0x204)],'service':summarizeService(_0x5063e2[_0x4cb1df(0x1dc)])},'message':(_0x5063e2[_0x4cb1df(0x1e4)]?_0x4cb1df(0x1d8):_0x4cb1df(0x1fd))+_0x4cb1df(0x200)+_0x5063e2['entry'][_0x4cb1df(0x20a)]+'.'};}},{'service':a64_0x14345f(0x20f),'command':a64_0x14345f(0x1e5),'description':a64_0x14345f(0x1ce),'risk':a64_0x14345f(0x202),'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'(_0x2e60e9){const _0x4e6fcc=a64_0x14345f,_0x1c0bd0=getLocalServiceEntry(_0x2e60e9[_0x4e6fcc(0x1ee)](_0x4e6fcc(0x20f)));return{'method':'WRITE','url':_0x2e60e9[_0x4e6fcc(0x1ee)](_0x4e6fcc(0x1cc)),'body':{'service':_0x2e60e9[_0x4e6fcc(0x1ee)](_0x4e6fcc(0x20f)),'found':Boolean(_0x1c0bd0),'version':_0x1c0bd0?.[_0x4e6fcc(0x1e9)],'source':_0x1c0bd0?.[_0x4e6fcc(0x1d6)]},'description':_0x4e6fcc(0x210)};},async 'execute'(_0x3a71bf){const _0x4aa645=a64_0x14345f,_0x55ee56=exportServiceManifest(_0x3a71bf[_0x4aa645(0x1ee)](_0x4aa645(0x20f)),_0x3a71bf[_0x4aa645(0x1ee)](_0x4aa645(0x1cc)));return{'ok':!![],'data':{'registryPath':_0x55ee56['registryPath'],'file':_0x55ee56[_0x4aa645(0x1d9)],'service':summarizeService(_0x55ee56[_0x4aa645(0x1dc)])},'message':_0x4aa645(0x1cf)+_0x55ee56[_0x4aa645(0x1dc)][_0x4aa645(0x20a)]+'.'};}},{'service':a64_0x14345f(0x20f),'command':a64_0x14345f(0x1e2),'description':a64_0x14345f(0x1fe),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5a1516=a64_0x14345f,_0x38092f=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x38092f[_0x5a1516(0x1e8)],'services':_0x38092f[_0x5a1516(0x1d1)](summarizeService)}};}},{'service':'service','command':a64_0x14345f(0x1de),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':'write','confirmationDescription':a64_0x14345f(0x1f8),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x570586){const _0x4af293=a64_0x14345f,_0x191464=getLocalServiceEntry(_0x570586[_0x4af293(0x1ee)](_0x4af293(0x20f)));return{'method':_0x4af293(0x201),'url':getServiceRegistryPath(),'body':{'service':_0x570586[_0x4af293(0x1ee)](_0x4af293(0x20f)),'found':Boolean(_0x191464),'version':_0x191464?.[_0x4af293(0x1e9)],'source':_0x191464?.[_0x4af293(0x1d6)]},'description':_0x4af293(0x205)};},async 'execute'(_0x916bbb){const _0x5d7902=a64_0x14345f,_0x582e17=removeServiceManifest(_0x916bbb[_0x5d7902(0x1ee)]('service'));return{'ok':!![],'data':{'registryPath':_0x582e17['registryPath'],'serviceCount':_0x582e17[_0x5d7902(0x204)],'service':summarizeService(_0x582e17[_0x5d7902(0x1dc)])},'message':_0x5d7902(0x20c)+_0x582e17[_0x5d7902(0x1dc)][_0x5d7902(0x20a)]+'.'};}},{'service':a64_0x14345f(0x20f),'command':a64_0x14345f(0x20d),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x3c27ff){const _0x25b14c=a64_0x14345f,_0x1cab4f=getLocalServiceEntry(_0x3c27ff[_0x25b14c(0x1ee)](_0x25b14c(0x20f)));if(!_0x1cab4f)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x3c27ff[_0x25b14c(0x1ee)](_0x25b14c(0x20f))},'message':_0x25b14c(0x1ea)+_0x3c27ff[_0x25b14c(0x1ee)](_0x25b14c(0x20f))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x1cab4f),'manifest':_0x1cab4f[_0x25b14c(0x1fb)],'normalizedManifest':toPublicNormalizedServiceTree(_0x1cab4f['normalizedManifest'])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a65_0x3c8b72=a65_0x1675;(function(_0x4b86d5,_0x50365d){const _0x3a15f4=a65_0x1675,_0x5bfcf6=_0x4b86d5();while(!![]){try{const _0x26d529=-parseInt(_0x3a15f4(0xd2))/0x1+parseInt(_0x3a15f4(0xd0))/0x2+-parseInt(_0x3a15f4(0xcc))/0x3+-parseInt(_0x3a15f4(0xea))/0x4+-parseInt(_0x3a15f4(0xd6))/0x5+-parseInt(_0x3a15f4(0xc5))/0x6+parseInt(_0x3a15f4(0xe5))/0x7;if(_0x26d529===_0x50365d)break;else _0x5bfcf6['push'](_0x5bfcf6['shift']());}catch(_0x2cafe5){_0x5bfcf6['push'](_0x5bfcf6['shift']());}}}(a65_0x1167,0xdce7b));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_0x3c8b72(0xbc);export function getServiceRegistryPath(_0x2aa3ee={}){const _0x43da64=a65_0x3c8b72;return resolve(_0x2aa3ee[_0x43da64(0xba)]??homedir(),PRODUCT_CONFIG[_0x43da64(0xf9)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1c7a39={}){const _0x1c99a7=a65_0x3c8b72,_0xb93e25=getServiceRegistryPath(_0x1c7a39);if(!existsSync(_0xb93e25))return emptyServiceRegistry();try{const _0x45ab66=readFileSync(_0xb93e25,_0x1c99a7(0xe3));if(!_0x45ab66[_0x1c99a7(0xf8)]())return emptyServiceRegistry();const _0x15d1e0=JSON['parse'](_0x45ab66);if(_0x15d1e0[_0x1c99a7(0xdb)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x1c99a7(0xe9)](_0x1c99a7(0xee)+String(_0x15d1e0[_0x1c99a7(0xdb)]),_0x1c99a7(0xce)+_0xb93e25+'.');if(!Array[_0x1c99a7(0x105)](_0x15d1e0[_0x1c99a7(0xff)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x15d1e0[_0x1c99a7(0x102)],'services':_0x15d1e0[_0x1c99a7(0xff)]};}catch(_0x5b81d1){if(_0x5b81d1 instanceof Error&&_0x5b81d1[_0x1c99a7(0xe8)]==='CliError')throw _0x5b81d1;throw CliErrors['validation'](_0x1c99a7(0xfd)+_0xb93e25,_0x1c99a7(0xca));}}export function writeServiceRegistry(_0x5b73ac,_0x463a61={}){const _0x50fc9b=a65_0x3c8b72,_0x362535=getServiceRegistryPath(_0x463a61),_0x517ccf=dirname(_0x362535);!existsSync(_0x517ccf)&&mkdirSync(_0x517ccf,{'recursive':!![]});const _0x28bc79=_0x362535+_0x50fc9b(0xe4);try{writeFileSync(_0x28bc79,JSON[_0x50fc9b(0x109)](_0x5b73ac,null,0x2)+'\x0a',{'encoding':_0x50fc9b(0xe3),'mode':0x180}),renameSync(_0x28bc79,_0x362535);}catch(_0x462fe3){try{unlinkSync(_0x28bc79);}catch{}if(_0x462fe3?.[_0x50fc9b(0xc0)]===_0x50fc9b(0xbb))throw CliErrors[_0x50fc9b(0xe9)]('Cannot\x20write\x20service\x20registry:\x20'+_0x362535);throw _0x462fe3;}return _0x362535;}export function loadServiceManifestFromFile(_0x55760e){const _0x5e6f96=a65_0x3c8b72,_0x1b8be6=resolve(_0x55760e);if(!existsSync(_0x1b8be6))throw CliErrors[_0x5e6f96(0xe9)](_0x5e6f96(0xf0)+_0x55760e);let _0x58dd81;const _0x2f3876=readFileSync(_0x1b8be6,_0x5e6f96(0xe3));try{_0x58dd81=JSON[_0x5e6f96(0xc8)](_0x2f3876);}catch{throw CliErrors[_0x5e6f96(0xe9)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x55760e,_0x5e6f96(0xc1));}const _0x334b23=sha256(_0x2f3876),_0x2264e7=extractLoadedServiceManifests(_0x58dd81,_0x334b23),_0x565a18=aggregateValidationReports(_0x2264e7),_0x2c5537=_0x2264e7[0x0];return{'filePath':_0x1b8be6,'hash':_0x334b23,'kind':isServiceRegistryLike(_0x58dd81)?_0x5e6f96(0xc3):_0x5e6f96(0xfa),'manifest':_0x2c5537?.[_0x5e6f96(0xfa)]??_0x58dd81,'report':_0x565a18,'normalizedManifest':_0x2264e7[_0x5e6f96(0x101)]===0x1?_0x2c5537?.['normalizedManifest']:undefined,'manifests':_0x2264e7};}export function importServiceManifest(_0x49e17c,_0x4c88a7={}){const _0x1fa27d=a65_0x3c8b72,_0x58e6c0=loadServiceManifestFromFile(_0x49e17c);if(!_0x58e6c0[_0x1fa27d(0x104)]['ok'])throw CliErrors[_0x1fa27d(0xe9)](formatValidationFailure(_0x58e6c0[_0x1fa27d(0x104)]),_0x1fa27d(0xf5));if(_0x58e6c0[_0x1fa27d(0xdf)][_0x1fa27d(0x101)]===0x0)throw CliErrors[_0x1fa27d(0xe9)](_0x1fa27d(0x107),_0x1fa27d(0xf3));const _0x4a9995=readServiceRegistry(_0x4c88a7),_0x398f5e=(_0x4c88a7['now']??(()=>new Date()))()[_0x1fa27d(0xe6)](),_0x3167aa=[];let _0x7f54e1=0x0,_0x302c4e=0x0;for(const _0x5a0709 of _0x58e6c0[_0x1fa27d(0xdf)]){if(!_0x5a0709[_0x1fa27d(0xbd)])continue;const _0x3958de=_0x5a0709['normalizedManifest'][_0x1fa27d(0xe7)][_0x1fa27d(0xc0)],_0x4d35ae={'serviceCode':_0x3958de,'version':_0x5a0709[_0x1fa27d(0xbd)][_0x1fa27d(0xc6)],'importedAt':_0x398f5e,'source':{'type':_0x1fa27d(0xbf),'path':_0x58e6c0['filePath'],'hash':_0x5a0709['sourceHash']},'manifest':_0x5a0709['manifest'],'normalizedManifest':_0x5a0709[_0x1fa27d(0xbd)]},_0x37c3e7=_0x4a9995[_0x1fa27d(0xff)][_0x1fa27d(0xd4)](_0x147f33=>_0x147f33['serviceCode']===_0x3958de);_0x37c3e7>=0x0?(_0x4a9995['services'][_0x37c3e7]=_0x4d35ae,_0x302c4e++):(_0x4a9995[_0x1fa27d(0xff)][_0x1fa27d(0xf1)](_0x4d35ae),_0x7f54e1++),_0x3167aa[_0x1fa27d(0xf1)](_0x4d35ae);}_0x4a9995[_0x1fa27d(0xff)]['sort']((_0x4cae27,_0x1be729)=>_0x4cae27[_0x1fa27d(0xb9)][_0x1fa27d(0xed)](_0x1be729[_0x1fa27d(0xb9)])),_0x4a9995[_0x1fa27d(0x102)]=_0x398f5e;const _0xa3843a=writeServiceRegistry(_0x4a9995,_0x4c88a7);return{'registryPath':_0xa3843a,'entry':_0x3167aa[0x0],'replaced':_0x3167aa[_0x1fa27d(0x101)]===0x1?_0x302c4e===0x1:_0x302c4e>0x0,'entries':_0x3167aa,'imported':_0x7f54e1,'updated':_0x302c4e,'serviceCount':_0x4a9995[_0x1fa27d(0xff)][_0x1fa27d(0x101)]};}function a65_0x1675(_0x1caed7,_0x122240){_0x1caed7=_0x1caed7-0xb9;const _0x116712=a65_0x1167();let _0x167567=_0x116712[_0x1caed7];return _0x167567;}export function exportServiceManifest(_0x5d58df,_0x5f29e8,_0x16be6e={}){const _0x4c8277=a65_0x3c8b72,_0x35473d=getServiceRegistryPath(_0x16be6e),_0x450cf2=getLocalServiceEntry(_0x5d58df,_0x16be6e);if(!_0x450cf2)throw CliErrors[_0x4c8277(0xe9)](_0x4c8277(0xcf)+_0x5d58df,_0x4c8277(0xe2));const _0x31e4f9=resolve(_0x5f29e8),_0x44975a=dirname(_0x31e4f9);return!existsSync(_0x44975a)&&mkdirSync(_0x44975a,{'recursive':!![]}),writeFileSync(_0x31e4f9,JSON[_0x4c8277(0x109)](_0x450cf2[_0x4c8277(0xfa)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x35473d,'filePath':_0x31e4f9,'entry':_0x450cf2};}export function removeServiceManifest(_0x41482d,_0x6cf9cb={}){const _0x4a835c=a65_0x3c8b72,_0x36fa5c=readServiceRegistry(_0x6cf9cb),_0x35b2ee=_0x41482d[_0x4a835c(0xf8)](),_0x2c8182=_0x36fa5c['services']['findIndex'](_0x27f7c4=>_0x27f7c4[_0x4a835c(0xb9)]===_0x35b2ee);if(_0x2c8182<0x0)throw CliErrors[_0x4a835c(0xe9)](_0x4a835c(0xcf)+_0x35b2ee,_0x4a835c(0xe2));const [_0x434519]=_0x36fa5c[_0x4a835c(0xff)][_0x4a835c(0xfc)](_0x2c8182,0x1),_0x582761=(_0x6cf9cb['now']??(()=>new Date()))()['toISOString']();_0x36fa5c[_0x4a835c(0x102)]=_0x582761;const _0x5e11ba=writeServiceRegistry(_0x36fa5c,_0x6cf9cb);return{'registryPath':_0x5e11ba,'entry':_0x434519,'serviceCount':_0x36fa5c[_0x4a835c(0xff)]['length']};}export function listLocalServices(_0x23e7e0={}){return readServiceRegistry(_0x23e7e0)['services'];}export function getLocalServiceEntry(_0x30b4cd,_0x33aea4={}){const _0x90f362=a65_0x3c8b72;return readServiceRegistry(_0x33aea4)[_0x90f362(0xff)][_0x90f362(0xc9)](_0x3290a0=>_0x3290a0[_0x90f362(0xb9)]===_0x30b4cd[_0x90f362(0xf8)]());}export function listLocalServiceTrees(_0x9e0f2d={}){const _0x43b5ef=a65_0x3c8b72;return readServiceRegistry(_0x9e0f2d)[_0x43b5ef(0xff)][_0x43b5ef(0xd1)](_0x20f5dc=>_0x20f5dc['normalizedManifest']);}export function inspectServiceRegistry(_0x45d3ba={}){const _0x505740=a65_0x3c8b72,_0x147345=getServiceRegistryPath(_0x45d3ba);if(!existsSync(_0x147345))return emptyServiceRegistryInspection(_0x147345,_0x505740(0xf2),![]);try{const _0x3f11ab=readFileSync(_0x147345,_0x505740(0xe3));if(!_0x3f11ab[_0x505740(0xf8)]())return emptyServiceRegistryInspection(_0x147345,_0x505740(0xd8),!![]);const _0x1faeac=JSON[_0x505740(0xc8)](_0x3f11ab);if(_0x1faeac[_0x505740(0xdb)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x147345,'invalid',!![]),'schemaVersion':_0x1faeac[_0x505740(0xdb)],'message':_0x505740(0xd7)+String(_0x1faeac[_0x505740(0xdb)])};if(!Array['isArray'](_0x1faeac[_0x505740(0xff)]))return{...emptyServiceRegistryInspection(_0x147345,_0x505740(0x108),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1faeac[_0x505740(0x102)],'message':_0x505740(0x103)};const _0x8042a8=_0x1faeac[_0x505740(0xff)][_0x505740(0xd1)](summarizeLocalServiceEntry);return{'registryPath':_0x147345,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1faeac[_0x505740(0x102)],'serviceCount':_0x8042a8[_0x505740(0x101)],'commandCount':_0x8042a8[_0x505740(0xcb)]((_0x5ebb1f,_0x4a7003)=>_0x5ebb1f+_0x4a7003[_0x505740(0xdc)],0x0),'services':_0x8042a8};}catch(_0x524845){return{...emptyServiceRegistryInspection(_0x147345,_0x505740(0x108),!![]),'message':_0x524845 instanceof Error?_0x524845[_0x505740(0xe0)]:String(_0x524845)};}}export function formatValidationFailure(_0x306b5a){const _0x4e6b84=a65_0x3c8b72,_0x82a88b=_0x306b5a[_0x4e6b84(0xde)][_0x4e6b84(0xd1)](_0x4e42cb=>_0x4e42cb[_0x4e6b84(0x100)]+':\x20'+_0x4e42cb[_0x4e6b84(0xe0)]);return _0x4e6b84(0xdd)+_0x82a88b[_0x4e6b84(0xcd)]('\x0a');}function extractLoadedServiceManifests(_0x5a3988,_0x4edf74){const _0x13ae0a=a65_0x3c8b72;if(!isServiceRegistryLike(_0x5a3988)){const _0x5c1d08=_0x5a3988,{manifest:_0x1e9783,errors:_0x396452}=adaptServiceTreeManifestForLegacyFramework(_0x5c1d08),_0x46e652=validateServiceTreeManifest(_0x1e9783),_0x19f740=mergeValidationErrors(_0x46e652,_0x396452);return[{'manifest':_0x5c1d08,'report':_0x19f740,'normalizedManifest':_0x19f740['ok']?normalizeServiceTreeManifest(_0x1e9783):undefined,'sourceHash':_0x4edf74}];}return _0x5a3988[_0x13ae0a(0xff)][_0x13ae0a(0xd1)]((_0x570289,_0x93885d)=>{const _0x1240e2=_0x13ae0a,_0x3e7195=isObjectRecord(_0x570289)?_0x570289[_0x1240e2(0xfa)]:undefined,{manifest:_0x190a04,errors:_0x4563bb}=adaptServiceTreeManifestForLegacyFramework(_0x3e7195),_0x277e86=validateServiceTreeManifest(_0x190a04),_0x320d86=mergeValidationErrors(_0x277e86,_0x4563bb),_0x293c8c=isObjectRecord(_0x570289)&&typeof _0x570289[_0x1240e2(0xb9)]===_0x1240e2(0xc2)?_0x570289[_0x1240e2(0xb9)]:undefined;return{'manifest':_0x3e7195,'report':_0x320d86,'normalizedManifest':_0x320d86['ok']?normalizeServiceTreeManifest(_0x190a04):undefined,'sourceHash':sha256(JSON[_0x1240e2(0x109)](_0x3e7195,null,0x2)+'\x0a'),'registryIndex':_0x93885d,'registryServiceCode':_0x293c8c};});}function mergeValidationErrors(_0x211bba,_0x159ce1){const _0x16bcce=a65_0x3c8b72,_0x187103=_0x211bba[_0x16bcce(0xde)][_0x16bcce(0xd1)](_0x677b36=>_0x677b36[_0x16bcce(0xe0)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x677b36,'message':'bff\x20target\x20requires\x20functionName.'}:_0x677b36),_0x4bdf1f=[..._0x159ce1,..._0x187103];return{'ok':_0x4bdf1f['length']===0x0,'errors':_0x4bdf1f,'warnings':_0x211bba[_0x16bcce(0xfb)]};}function aggregateValidationReports(_0x1dbe1e){const _0x41d8fe=a65_0x3c8b72,_0x3a9f07=_0x1dbe1e['flatMap'](_0xde1845=>_0xde1845['registryIndex']===undefined?_0xde1845[_0x41d8fe(0x104)][_0x41d8fe(0xde)]:_0xde1845[_0x41d8fe(0x104)][_0x41d8fe(0xde)]['map'](_0x4d54e3=>({..._0x4d54e3,'path':prefixRegistryIssuePath(_0xde1845['registryIndex'],_0x4d54e3[_0x41d8fe(0x100)])}))),_0x2b423f=_0x1dbe1e[_0x41d8fe(0xd9)](_0x6b2693=>_0x6b2693['registryIndex']===undefined?_0x6b2693[_0x41d8fe(0x104)][_0x41d8fe(0xfb)]:_0x6b2693[_0x41d8fe(0x104)][_0x41d8fe(0xfb)][_0x41d8fe(0xd1)](_0x2d10fc=>({..._0x2d10fc,'path':prefixRegistryIssuePath(_0x6b2693[_0x41d8fe(0x106)],_0x2d10fc[_0x41d8fe(0x100)])})));return{'ok':_0x3a9f07['length']===0x0,'errors':_0x3a9f07,'warnings':_0x2b423f};}function prefixRegistryIssuePath(_0x1c5f22,_0x36d55b){const _0x37513b=a65_0x3c8b72;if(_0x36d55b==='$')return _0x37513b(0xc4)+_0x1c5f22+'].manifest';if(_0x36d55b[_0x37513b(0xfe)]('$.'))return _0x37513b(0xc4)+_0x1c5f22+_0x37513b(0xd5)+_0x36d55b[_0x37513b(0xec)](0x1);if(_0x36d55b['startsWith']('$['))return _0x37513b(0xc4)+_0x1c5f22+_0x37513b(0xd5)+_0x36d55b[_0x37513b(0xec)](0x1);return _0x37513b(0xc4)+_0x1c5f22+'].manifest.'+_0x36d55b;}function isServiceRegistryLike(_0x22aa7c){const _0x24e3e8=a65_0x3c8b72;return isObjectRecord(_0x22aa7c)&&_0x22aa7c[_0x24e3e8(0xdb)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x24e3e8(0x105)](_0x22aa7c[_0x24e3e8(0xff)]);}function isObjectRecord(_0x469666){const _0x29083f=a65_0x3c8b72;return Boolean(_0x469666)&&typeof _0x469666==='object'&&!Array[_0x29083f(0x105)](_0x469666);}function a65_0x1167(){const _0x3164d0=['push','missing','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','kind','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','update','risk','trim','homeDirName','manifest','warnings','splice','Invalid\x20service\x20registry\x20JSON:\x20','startsWith','services','path','length','updatedAt','services\x20must\x20be\x20an\x20array','report','isArray','registryIndex','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','invalid','stringify','serviceCode','homeDir','ENOENT','service.json','normalizedManifest','importedAt','file','code','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','string','registry','$.services[','6924930wBKyMj','version','command','parse','find','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','reduce','455847npxged','join','Remove\x20or\x20migrate\x20','Local\x20service\x20not\x20found:\x20','460004AktKPu','map','935288HiWAsT','target','findIndex','].manifest','8008065FLdcll','Unsupported\x20schemaVersion:\x20','empty','flatMap','description','schemaVersion','commandCount','Service\x20manifest\x20validation\x20failed:\x0a','errors','manifests','message','source','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','utf8','.tmp','32463109NLgssD','toISOString','service','name','validation','479028DnINTw','commands','slice','localeCompare','Unsupported\x20service\x20registry\x20schemaVersion:\x20','digest','Service\x20manifest\x20file\x20not\x20found:\x20'];a65_0x1167=function(){return _0x3164d0;};return a65_0x1167();}function emptyServiceRegistryInspection(_0x387b5e,_0x58099c,_0x3d6c6a){return{'registryPath':_0x387b5e,'exists':_0x3d6c6a,'status':_0x58099c,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1eb6df){const _0x2030d3=a65_0x3c8b72,_0x181e7e=_0x1eb6df[_0x2030d3(0xbd)],_0x624a4b=_0x181e7e[_0x2030d3(0xeb)][_0x2030d3(0xd1)](_0x3ec288=>({'path':_0x3ec288['cliPath'],'description':_0x3ec288[_0x2030d3(0xda)],'risk':_0x3ec288[_0x2030d3(0xf7)],'targetKind':_0x3ec288[_0x2030d3(0xd3)][_0x2030d3(0xf4)],'targetCommand':_0x3ec288[_0x2030d3(0xd3)][_0x2030d3(0xc7)]}));return{'serviceCode':_0x1eb6df[_0x2030d3(0xb9)],'name':_0x181e7e['service']['name'],'description':_0x181e7e['service']['description'],'version':_0x1eb6df['version'],'importedAt':_0x1eb6df[_0x2030d3(0xbe)],'source':_0x1eb6df[_0x2030d3(0xe1)],'commandCount':_0x624a4b[_0x2030d3(0x101)],'commands':_0x624a4b};}function sha256(_0x1f841f){const _0x4c8144=a65_0x3c8b72;return createHash('sha256')[_0x4c8144(0xf6)](_0x1f841f)[_0x4c8144(0xef)]('hex');}
|
|
1
|
+
(function(_0x3f9c52,_0x39bced){const _0x3b15a4=a65_0x125d,_0x1a6408=_0x3f9c52();while(!![]){try{const _0x509013=-parseInt(_0x3b15a4(0x11d))/0x1*(parseInt(_0x3b15a4(0x121))/0x2)+parseInt(_0x3b15a4(0x11a))/0x3+parseInt(_0x3b15a4(0x105))/0x4*(parseInt(_0x3b15a4(0x137))/0x5)+parseInt(_0x3b15a4(0x104))/0x6+-parseInt(_0x3b15a4(0x147))/0x7+-parseInt(_0x3b15a4(0x11c))/0x8*(parseInt(_0x3b15a4(0x10f))/0x9)+parseInt(_0x3b15a4(0x11e))/0xa;if(_0x509013===_0x39bced)break;else _0x1a6408['push'](_0x1a6408['shift']());}catch(_0x631a62){_0x1a6408['push'](_0x1a6408['shift']());}}}(a65_0x2279,0x91488));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='service.json';export function getServiceRegistryPath(_0x3e51e9={}){const _0x9871b4=a65_0x125d;return resolve(_0x3e51e9[_0x9871b4(0x122)]??homedir(),PRODUCT_CONFIG[_0x9871b4(0x118)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x5d7275={}){const _0x5bf472=a65_0x125d,_0x57e7dc=getServiceRegistryPath(_0x5d7275);if(!existsSync(_0x57e7dc))return emptyServiceRegistry();try{const _0x4cab77=readFileSync(_0x57e7dc,'utf8');if(!_0x4cab77[_0x5bf472(0x113)]())return emptyServiceRegistry();const _0x510020=JSON[_0x5bf472(0x144)](_0x4cab77);if(_0x510020[_0x5bf472(0x139)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5bf472(0x14f)](_0x5bf472(0x146)+String(_0x510020['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x57e7dc+'.');if(!Array['isArray'](_0x510020['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x510020[_0x5bf472(0x10d)],'services':_0x510020[_0x5bf472(0x138)]};}catch(_0x1e791f){if(_0x1e791f instanceof Error&&_0x1e791f['name']===_0x5bf472(0x116))throw _0x1e791f;throw CliErrors[_0x5bf472(0x14f)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x57e7dc,_0x5bf472(0x13b));}}export function writeServiceRegistry(_0x5c67a6,_0x13e4e6={}){const _0x24dd24=a65_0x125d,_0x293813=getServiceRegistryPath(_0x13e4e6),_0x4cf453=dirname(_0x293813);!existsSync(_0x4cf453)&&mkdirSync(_0x4cf453,{'recursive':!![]});const _0x4a2d5a=_0x293813+_0x24dd24(0x132);try{writeFileSync(_0x4a2d5a,JSON[_0x24dd24(0x13e)](_0x5c67a6,null,0x2)+'\x0a',{'encoding':_0x24dd24(0x115),'mode':0x180}),renameSync(_0x4a2d5a,_0x293813);}catch(_0x219685){try{unlinkSync(_0x4a2d5a);}catch{}if(_0x219685?.[_0x24dd24(0x110)]==='ENOENT')throw CliErrors[_0x24dd24(0x14f)]('Cannot\x20write\x20service\x20registry:\x20'+_0x293813);throw _0x219685;}return _0x293813;}function a65_0x125d(_0x397b0b,_0xdfb8d3){_0x397b0b=_0x397b0b-0x104;const _0x2279dd=a65_0x2279();let _0x125dac=_0x2279dd[_0x397b0b];return _0x125dac;}export function loadServiceManifestFromFile(_0x3bd980){const _0x4f4d57=a65_0x125d,_0x44897a=resolve(_0x3bd980);if(!existsSync(_0x44897a))throw CliErrors[_0x4f4d57(0x14f)](_0x4f4d57(0x142)+_0x3bd980);let _0x478a35;const _0x4799b7=readFileSync(_0x44897a,_0x4f4d57(0x115));try{_0x478a35=JSON['parse'](_0x4799b7);}catch{throw CliErrors[_0x4f4d57(0x14f)](_0x4f4d57(0x109)+_0x3bd980,_0x4f4d57(0x14e));}const _0x1f80cc=sha256(_0x4799b7),_0x1df21e=extractLoadedServiceManifests(_0x478a35,_0x1f80cc),_0x143b1e=aggregateValidationReports(_0x1df21e),_0x1fc498=_0x1df21e[0x0];return{'filePath':_0x44897a,'hash':_0x1f80cc,'kind':isServiceRegistryLike(_0x478a35)?_0x4f4d57(0x143):'manifest','manifest':_0x1fc498?.[_0x4f4d57(0x11b)]??_0x478a35,'report':_0x143b1e,'normalizedManifest':_0x1df21e[_0x4f4d57(0x13a)]===0x1?_0x1fc498?.[_0x4f4d57(0x14d)]:undefined,'manifests':_0x1df21e};}export function importServiceManifest(_0x90e782,_0xf6799={}){const _0x303a56=a65_0x125d,_0x14f4f9=loadServiceManifestFromFile(_0x90e782);if(!_0x14f4f9[_0x303a56(0x13c)]['ok'])throw CliErrors[_0x303a56(0x14f)](formatValidationFailure(_0x14f4f9[_0x303a56(0x13c)]),_0x303a56(0x150));if(_0x14f4f9[_0x303a56(0x14a)][_0x303a56(0x13a)]===0x0)throw CliErrors[_0x303a56(0x14f)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x303a56(0x12e));const _0x54b1da=readServiceRegistry(_0xf6799),_0x508f73=(_0xf6799[_0x303a56(0x131)]??(()=>new Date()))()[_0x303a56(0x120)](),_0x1c5348=[];let _0x3f74ee=0x0,_0x256b3c=0x0;for(const _0x5173ff of _0x14f4f9['manifests']){if(!_0x5173ff[_0x303a56(0x14d)])continue;const _0x130e8f=_0x5173ff[_0x303a56(0x14d)]['service']['code'],_0x84a062={'serviceCode':_0x130e8f,'version':_0x5173ff[_0x303a56(0x14d)][_0x303a56(0x12c)],'importedAt':_0x508f73,'source':{'type':'file','path':_0x14f4f9['filePath'],'hash':_0x5173ff[_0x303a56(0x140)]},'manifest':_0x5173ff['manifest'],'normalizedManifest':_0x5173ff[_0x303a56(0x14d)]},_0x3cdc43=_0x54b1da[_0x303a56(0x138)][_0x303a56(0x107)](_0x159480=>_0x159480[_0x303a56(0x123)]===_0x130e8f);_0x3cdc43>=0x0?(_0x54b1da['services'][_0x3cdc43]=_0x84a062,_0x256b3c++):(_0x54b1da[_0x303a56(0x138)][_0x303a56(0x10c)](_0x84a062),_0x3f74ee++),_0x1c5348[_0x303a56(0x10c)](_0x84a062);}_0x54b1da[_0x303a56(0x138)][_0x303a56(0x114)]((_0x2bfe68,_0x228ac1)=>_0x2bfe68[_0x303a56(0x123)]['localeCompare'](_0x228ac1[_0x303a56(0x123)])),_0x54b1da['updatedAt']=_0x508f73;const _0x3ed707=writeServiceRegistry(_0x54b1da,_0xf6799);return{'registryPath':_0x3ed707,'entry':_0x1c5348[0x0],'replaced':_0x1c5348['length']===0x1?_0x256b3c===0x1:_0x256b3c>0x0,'entries':_0x1c5348,'imported':_0x3f74ee,'updated':_0x256b3c,'serviceCount':_0x54b1da[_0x303a56(0x138)][_0x303a56(0x13a)]};}export function exportServiceManifest(_0x703378,_0x58f060,_0x5ba8dc={}){const _0x1cc716=a65_0x125d,_0x196bab=getServiceRegistryPath(_0x5ba8dc),_0x1260e0=getLocalServiceEntry(_0x703378,_0x5ba8dc);if(!_0x1260e0)throw CliErrors['validation'](_0x1cc716(0x14b)+_0x703378,_0x1cc716(0x111));const _0x4af67c=resolve(_0x58f060),_0x331dcf=dirname(_0x4af67c);return!existsSync(_0x331dcf)&&mkdirSync(_0x331dcf,{'recursive':!![]}),writeFileSync(_0x4af67c,JSON[_0x1cc716(0x13e)](_0x1260e0[_0x1cc716(0x11b)],null,0x2)+'\x0a',{'encoding':_0x1cc716(0x115),'mode':0x180}),{'registryPath':_0x196bab,'filePath':_0x4af67c,'entry':_0x1260e0};}export function removeServiceManifest(_0x291c48,_0x2a6d28={}){const _0x58c396=a65_0x125d,_0xadff55=readServiceRegistry(_0x2a6d28),_0x56789e=_0x291c48[_0x58c396(0x113)](),_0x48fe8e=_0xadff55[_0x58c396(0x138)][_0x58c396(0x107)](_0x2eb28e=>_0x2eb28e[_0x58c396(0x123)]===_0x56789e);if(_0x48fe8e<0x0)throw CliErrors[_0x58c396(0x14f)](_0x58c396(0x14b)+_0x56789e,_0x58c396(0x111));const [_0x34b632]=_0xadff55[_0x58c396(0x138)][_0x58c396(0x12b)](_0x48fe8e,0x1),_0x5e5c59=(_0x2a6d28[_0x58c396(0x131)]??(()=>new Date()))()[_0x58c396(0x120)]();_0xadff55[_0x58c396(0x10d)]=_0x5e5c59;const _0x5ef5ed=writeServiceRegistry(_0xadff55,_0x2a6d28);return{'registryPath':_0x5ef5ed,'entry':_0x34b632,'serviceCount':_0xadff55[_0x58c396(0x138)][_0x58c396(0x13a)]};}export function listLocalServices(_0x528a7c={}){const _0x39d4b6=a65_0x125d;return readServiceRegistry(_0x528a7c)[_0x39d4b6(0x138)];}export function getLocalServiceEntry(_0x2cc041,_0x59d139={}){const _0xc7ad28=a65_0x125d;return readServiceRegistry(_0x59d139)['services'][_0xc7ad28(0x127)](_0x5137b4=>_0x5137b4['serviceCode']===_0x2cc041[_0xc7ad28(0x113)]());}function a65_0x2279(){const _0x5111d8=['1422516kEFWjN','manifest','8kSzZxG','297639LvQHpu','25440900ZrXDoA','registryIndex','toISOString','6vrYhMB','homeDir','serviceCode','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','message','warnings','find','].manifest','target','$.services[','splice','version','string','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','description','map','now','.tmp','reduce','sha256','].manifest.','risk','15fJjqUR','services','schemaVersion','length','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','report','bff\x20target\x20requires\x20functionName.','stringify','isArray','sourceHash','startsWith','Service\x20manifest\x20file\x20not\x20found:\x20','registry','parse','errors','Unsupported\x20service\x20registry\x20schemaVersion:\x20','7579642XsuiKE','object','commands','manifests','Local\x20service\x20not\x20found:\x20','commandCount','normalizedManifest','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','validation','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','flatMap','service','991680GJPNUC','419944FRtAld','command','findIndex','join','Invalid\x20service\x20manifest\x20JSON:\x20','importedAt','path','push','updatedAt','Unsupported\x20schemaVersion:\x20','8349273VQnOEE','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','slice','trim','sort','utf8','CliError','update','homeDirName','invalid'];a65_0x2279=function(){return _0x5111d8;};return a65_0x2279();}export function listLocalServiceTrees(_0x1f94cf={}){const _0x5b3cbf=a65_0x125d;return readServiceRegistry(_0x1f94cf)[_0x5b3cbf(0x138)][_0x5b3cbf(0x130)](_0x7a367b=>_0x7a367b[_0x5b3cbf(0x14d)]);}export function inspectServiceRegistry(_0x543a42={}){const _0x5a20dd=a65_0x125d,_0xbbf45=getServiceRegistryPath(_0x543a42);if(!existsSync(_0xbbf45))return emptyServiceRegistryInspection(_0xbbf45,'missing',![]);try{const _0x424a56=readFileSync(_0xbbf45,_0x5a20dd(0x115));if(!_0x424a56['trim']())return emptyServiceRegistryInspection(_0xbbf45,'empty',!![]);const _0x1bf8b0=JSON[_0x5a20dd(0x144)](_0x424a56);if(_0x1bf8b0[_0x5a20dd(0x139)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0xbbf45,_0x5a20dd(0x119),!![]),'schemaVersion':_0x1bf8b0[_0x5a20dd(0x139)],'message':_0x5a20dd(0x10e)+String(_0x1bf8b0[_0x5a20dd(0x139)])};if(!Array[_0x5a20dd(0x13f)](_0x1bf8b0[_0x5a20dd(0x138)]))return{...emptyServiceRegistryInspection(_0xbbf45,_0x5a20dd(0x119),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1bf8b0['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0xee3a23=_0x1bf8b0[_0x5a20dd(0x138)][_0x5a20dd(0x130)](summarizeLocalServiceEntry);return{'registryPath':_0xbbf45,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1bf8b0[_0x5a20dd(0x10d)],'serviceCount':_0xee3a23['length'],'commandCount':_0xee3a23[_0x5a20dd(0x133)]((_0x462a66,_0x2f6a82)=>_0x462a66+_0x2f6a82[_0x5a20dd(0x14c)],0x0),'services':_0xee3a23};}catch(_0x28e3b5){return{...emptyServiceRegistryInspection(_0xbbf45,_0x5a20dd(0x119),!![]),'message':_0x28e3b5 instanceof Error?_0x28e3b5['message']:String(_0x28e3b5)};}}export function formatValidationFailure(_0x406ab8){const _0x1004be=a65_0x125d,_0x16354a=_0x406ab8[_0x1004be(0x145)][_0x1004be(0x130)](_0x231000=>_0x231000[_0x1004be(0x10b)]+':\x20'+_0x231000[_0x1004be(0x125)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x16354a[_0x1004be(0x108)]('\x0a');}function extractLoadedServiceManifests(_0xf1c72a,_0x14fe31){const _0x3634c8=a65_0x125d;if(!isServiceRegistryLike(_0xf1c72a)){const _0x58fcbb=_0xf1c72a,{manifest:_0x3a2cd7,errors:_0x21bf83}=adaptServiceTreeManifestForLegacyFramework(_0x58fcbb),_0x5e25ce=validateServiceTreeManifest(_0x3a2cd7),_0x146ab4=mergeValidationErrors(_0x5e25ce,_0x21bf83);return[{'manifest':_0x58fcbb,'report':_0x146ab4,'normalizedManifest':_0x146ab4['ok']?normalizeServiceTreeManifest(_0x3a2cd7):undefined,'sourceHash':_0x14fe31}];}return _0xf1c72a[_0x3634c8(0x138)][_0x3634c8(0x130)]((_0x1e34a2,_0x9a9119)=>{const _0x293ac3=_0x3634c8,_0x2a7c04=isObjectRecord(_0x1e34a2)?_0x1e34a2[_0x293ac3(0x11b)]:undefined,{manifest:_0x29e2f1,errors:_0x2581af}=adaptServiceTreeManifestForLegacyFramework(_0x2a7c04),_0x3349ba=validateServiceTreeManifest(_0x29e2f1),_0x355c2b=mergeValidationErrors(_0x3349ba,_0x2581af),_0x193131=isObjectRecord(_0x1e34a2)&&typeof _0x1e34a2['serviceCode']===_0x293ac3(0x12d)?_0x1e34a2[_0x293ac3(0x123)]:undefined;return{'manifest':_0x2a7c04,'report':_0x355c2b,'normalizedManifest':_0x355c2b['ok']?normalizeServiceTreeManifest(_0x29e2f1):undefined,'sourceHash':sha256(JSON[_0x293ac3(0x13e)](_0x2a7c04,null,0x2)+'\x0a'),'registryIndex':_0x9a9119,'registryServiceCode':_0x193131};});}function mergeValidationErrors(_0x4fd979,_0x5aee3c){const _0x2735e7=a65_0x125d,_0x4ae218=_0x4fd979[_0x2735e7(0x145)][_0x2735e7(0x130)](_0x125b8d=>_0x125b8d[_0x2735e7(0x125)]===_0x2735e7(0x124)?{..._0x125b8d,'message':_0x2735e7(0x13d)}:_0x125b8d),_0x4d24f9=[..._0x5aee3c,..._0x4ae218];return{'ok':_0x4d24f9['length']===0x0,'errors':_0x4d24f9,'warnings':_0x4fd979[_0x2735e7(0x126)]};}function aggregateValidationReports(_0x38717a){const _0x261af8=a65_0x125d,_0x4c49b8=_0x38717a[_0x261af8(0x151)](_0x136d1b=>_0x136d1b[_0x261af8(0x11f)]===undefined?_0x136d1b['report'][_0x261af8(0x145)]:_0x136d1b['report'][_0x261af8(0x145)][_0x261af8(0x130)](_0x4206d9=>({..._0x4206d9,'path':prefixRegistryIssuePath(_0x136d1b[_0x261af8(0x11f)],_0x4206d9[_0x261af8(0x10b)])}))),_0x115b51=_0x38717a[_0x261af8(0x151)](_0x3a9fb9=>_0x3a9fb9['registryIndex']===undefined?_0x3a9fb9['report'][_0x261af8(0x126)]:_0x3a9fb9[_0x261af8(0x13c)][_0x261af8(0x126)][_0x261af8(0x130)](_0x55fa13=>({..._0x55fa13,'path':prefixRegistryIssuePath(_0x3a9fb9[_0x261af8(0x11f)],_0x55fa13[_0x261af8(0x10b)])})));return{'ok':_0x4c49b8[_0x261af8(0x13a)]===0x0,'errors':_0x4c49b8,'warnings':_0x115b51};}function prefixRegistryIssuePath(_0x3593a6,_0x1ea4d3){const _0x54d7c1=a65_0x125d;if(_0x1ea4d3==='$')return'$.services['+_0x3593a6+_0x54d7c1(0x128);if(_0x1ea4d3['startsWith']('$.'))return'$.services['+_0x3593a6+_0x54d7c1(0x128)+_0x1ea4d3[_0x54d7c1(0x112)](0x1);if(_0x1ea4d3[_0x54d7c1(0x141)]('$['))return _0x54d7c1(0x12a)+_0x3593a6+'].manifest'+_0x1ea4d3[_0x54d7c1(0x112)](0x1);return _0x54d7c1(0x12a)+_0x3593a6+_0x54d7c1(0x135)+_0x1ea4d3;}function isServiceRegistryLike(_0xb9ae1d){const _0x2e23fe=a65_0x125d;return isObjectRecord(_0xb9ae1d)&&_0xb9ae1d['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2e23fe(0x13f)](_0xb9ae1d[_0x2e23fe(0x138)]);}function isObjectRecord(_0x1b8fb0){const _0x50bd84=a65_0x125d;return Boolean(_0x1b8fb0)&&typeof _0x1b8fb0===_0x50bd84(0x148)&&!Array[_0x50bd84(0x13f)](_0x1b8fb0);}function emptyServiceRegistryInspection(_0x18fb96,_0x437686,_0x2c5527){return{'registryPath':_0x18fb96,'exists':_0x2c5527,'status':_0x437686,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x28afd7){const _0x272690=a65_0x125d,_0x1a8909=_0x28afd7['normalizedManifest'],_0x20e371=_0x1a8909[_0x272690(0x149)]['map'](_0x2fa1d4=>({'path':_0x2fa1d4['cliPath'],'description':_0x2fa1d4[_0x272690(0x12f)],'risk':_0x2fa1d4[_0x272690(0x136)],'targetKind':_0x2fa1d4['target']['kind'],'targetCommand':_0x2fa1d4[_0x272690(0x129)][_0x272690(0x106)]}));return{'serviceCode':_0x28afd7[_0x272690(0x123)],'name':_0x1a8909[_0x272690(0x152)]['name'],'description':_0x1a8909[_0x272690(0x152)][_0x272690(0x12f)],'version':_0x28afd7[_0x272690(0x12c)],'importedAt':_0x28afd7[_0x272690(0x10a)],'source':_0x28afd7['source'],'commandCount':_0x20e371[_0x272690(0x13a)],'commands':_0x20e371};}function sha256(_0x369814){const _0x3f1bc3=a65_0x125d;return createHash(_0x3f1bc3(0x134))[_0x3f1bc3(0x117)](_0x369814)['digest']('hex');}
|