@lovrabet/lovrabet-cli 2.3.6-beta.1 → 2.3.6-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +1 -0
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/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.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a55_0x395b5c=a55_0x5075;(function(_0x84e9ce,_0x485f83){const _0x36b37a=a55_0x5075,_0x1dd367=_0x84e9ce();while(!![]){try{const _0x26352a=-parseInt(_0x36b37a(0x205))/0x1*(-parseInt(_0x36b37a(0x1f2))/0x2)+parseInt(_0x36b37a(0x1f3))/0x3+-parseInt(_0x36b37a(0x1f5))/0x4*(parseInt(_0x36b37a(0x1fb))/0x5)+parseInt(_0x36b37a(0x209))/0x6*(parseInt(_0x36b37a(0x207))/0x7)+parseInt(_0x36b37a(0x20f))/0x8+parseInt(_0x36b37a(0x210))/0x9*(-parseInt(_0x36b37a(0x20c))/0xa)+-parseInt(_0x36b37a(0x201))/0xb;if(_0x26352a===_0x485f83)break;else _0x1dd367['push'](_0x1dd367['shift']());}catch(_0x12dcd0){_0x1dd367['push'](_0x1dd367['shift']());}}}(a55_0x315f,0x635a7));import{listRuntimeAppRoles}from'../../core/api-client.js';function a55_0x5075(_0x3a98e4,_0x1ab0c7){_0x3a98e4=_0x3a98e4-0x1f2;const _0x315feb=a55_0x315f();let _0x507558=_0x315feb[_0x3a98e4];return _0x507558;}import{CliErrors}from'../../errors.js';import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';function a55_0x315f(){const _0x141405=['Fuzzy\x20role-name\x20filter','6655352JgDWkU','validation','List\x20runtime\x20roles\x20for\x20the\x20current\x20app','role','1HQvIHM','trim','1249766hVuycs','read','18iKHdce','runtime','page','1538770iDlTcs','str','num','1532496UHIVTi','18hrBqdM','--page\x20must\x20be\x20a\x20positive\x20integer.','name','map','filter','toUpperCase','roleType','1517482BFhzJG','1436106QLGeSI','pagesize','8QIybUR','isSafeInteger','appCode','number','list','includes','1612205oqRIrc','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','Page\x20size\x20from\x201\x20to\x20100','string','items'];a55_0x315f=function(){return _0x141405;};return a55_0x315f();}export const roleList={'service':a55_0x395b5c(0x204),'command':a55_0x395b5c(0x1f9),'description':a55_0x395b5c(0x203),'risk':a55_0x395b5c(0x208),'flags':[{'name':'type','type':a55_0x395b5c(0x1fe),'enum':RUNTIME_ROLE_TYPES,'description':'Runtime\x20role\x20type'},{'name':a55_0x395b5c(0x212),'type':a55_0x395b5c(0x1fe),'description':a55_0x395b5c(0x200)},{'name':a55_0x395b5c(0x20b),'type':a55_0x395b5c(0x1f8),'default':0x1,'description':'Page\x20number'},{'name':a55_0x395b5c(0x1f4),'type':a55_0x395b5c(0x1f8),'default':0x64,'description':a55_0x395b5c(0x1fd)}],async 'validate'(_0xd82538){const _0x3a5796=a55_0x395b5c,_0x5b29ba=_0xd82538[_0x3a5796(0x20d)]('type')[_0x3a5796(0x215)]();if(_0x5b29ba&&!RUNTIME_ROLE_TYPES[_0x3a5796(0x1fa)](_0x5b29ba))throw CliErrors[_0x3a5796(0x202)]('Invalid\x20runtime\x20role\x20type:\x20'+_0x5b29ba+'.');const _0x5b3a12=_0xd82538['num'](_0x3a5796(0x20b),0x1),_0x53a978=_0xd82538[_0x3a5796(0x20e)](_0x3a5796(0x1f4),0x64);if(!Number[_0x3a5796(0x1f6)](_0x5b3a12)||_0x5b3a12<0x1)throw CliErrors[_0x3a5796(0x202)](_0x3a5796(0x211));if(!Number[_0x3a5796(0x1f6)](_0x53a978)||_0x53a978<0x1||_0x53a978>0x64)throw CliErrors[_0x3a5796(0x202)](_0x3a5796(0x1fc));},async 'execute'(_0x3398c5){const _0x20af71=a55_0x395b5c,_0x31f8dc=_0x3398c5[_0x20af71(0x20d)]('type')['toUpperCase'](),_0x4a2e89=_0x3398c5['str'](_0x20af71(0x212))[_0x20af71(0x206)](),_0x4496e0=_0x3398c5[_0x20af71(0x20e)](_0x20af71(0x20b),0x1),_0x32e67e=_0x3398c5[_0x20af71(0x20e)](_0x20af71(0x1f4),0x64);if(_0x31f8dc){const _0x4ea5e8=(await listAllRuntimeRoles(_0x3398c5[_0x20af71(0x1f7)],{..._0x4a2e89?{'roleName':_0x4a2e89}:{}}))[_0x20af71(0x214)](_0x11343d=>_0x11343d[_0x20af71(0x216)]===_0x31f8dc),_0x16b53f=(_0x4496e0-0x1)*_0x32e67e;return{'ok':!![],'data':{'scope':_0x20af71(0x20a),'roles':_0x4ea5e8['slice'](_0x16b53f,_0x16b53f+_0x32e67e)[_0x20af71(0x213)](projectRuntimeRole),'paging':{'currentPage':_0x4496e0,'pageSize':_0x32e67e,'totalCount':_0x4ea5e8['length']}}};}const _0x1d597b=await listRuntimeAppRoles(_0x3398c5[_0x20af71(0x1f7)],{..._0x4a2e89?{'roleName':_0x4a2e89}:{},'currentPage':_0x4496e0,'pageSize':_0x32e67e});return{'ok':!![],'data':{'scope':_0x20af71(0x20a),'roles':_0x1d597b[_0x20af71(0x1ff)]['map'](projectRuntimeRole),'paging':_0x1d597b['paging']}};}};
|
|
@@ -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_0x6ad61d=a56_0x13fa;(function(_0x15222c,_0x5b5e8e){const _0x11ce6e=a56_0x13fa,_0xfaca8b=_0x15222c();while(!![]){try{const _0x5e1548=parseInt(_0x11ce6e(0xf3))/0x1*(parseInt(_0x11ce6e(0xf0))/0x2)+-parseInt(_0x11ce6e(0x10c))/0x3+-parseInt(_0x11ce6e(0xdc))/0x4*(parseInt(_0x11ce6e(0xcd))/0x5)+parseInt(_0x11ce6e(0xe9))/0x6+parseInt(_0x11ce6e(0xcb))/0x7*(-parseInt(_0x11ce6e(0xe8))/0x8)+parseInt(_0x11ce6e(0x101))/0x9+parseInt(_0x11ce6e(0xef))/0xa;if(_0x5e1548===_0x5b5e8e)break;else _0xfaca8b['push'](_0xfaca8b['shift']());}catch(_0xe4332b){_0xfaca8b['push'](_0xfaca8b['shift']());}}}(a56_0x431c,0xc2055));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a56_0x13fa(_0x6f6487,_0x9440ba){_0x6f6487=_0x6f6487-0xc7;const _0x431c2e=a56_0x431c();let _0x13fa71=_0x431c2e[_0x6f6487];return _0x13fa71;}import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x6ad61d(0xe3),'USER',a56_0x6ad61d(0xca),a56_0x6ad61d(0xdf)];const BUILTIN_ROLE_TYPES=[a56_0x6ad61d(0xe3),a56_0x6ad61d(0xe5),a56_0x6ad61d(0xca)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a56_0x6ad61d(0x106)};export const ROLE_REF_FLAG={'name':'role','type':a56_0x6ad61d(0xd4),'required':!![],'description':a56_0x6ad61d(0xf7)};export const ROLE_CODE_FLAG={'name':a56_0x6ad61d(0xdb),'type':'string','description':'Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)'};export const USER_ID_FLAG={'name':a56_0x6ad61d(0xe7),'type':a56_0x6ad61d(0xd4),'required':!![],'description':a56_0x6ad61d(0x10b)};export const EXPECT_USER_COUNT_FLAG={'name':a56_0x6ad61d(0x103),'type':'number','description':a56_0x6ad61d(0xd8)};export function isBuiltinRuntimeRole(_0x28e9b5){const _0x22322b=a56_0x6ad61d;return BUILTIN_ROLE_TYPES[_0x22322b(0xeb)](_0x28e9b5);}export function assertCustomRuntimeRole(_0x46278c,_0x8c1aca){const _0x195fc0=a56_0x6ad61d;if(_0x46278c[_0x195fc0(0x108)]!==_0x195fc0(0xdf))throw CliErrors[_0x195fc0(0xde)](_0x195fc0(0xda)+_0x8c1aca+_0x195fc0(0x107)+_0x46278c[_0x195fc0(0x109)]+'\x20('+_0x46278c[_0x195fc0(0x108)]+').',_0x195fc0(0xe2));}export function projectRuntimeRole(_0x1e6ebe){const _0x51ade5=a56_0x6ad61d;return{'id':_0x1e6ebe['id'],'roleCode':_0x1e6ebe[_0x51ade5(0x105)],'roleName':_0x1e6ebe['roleName'],'roleType':_0x1e6ebe[_0x51ade5(0x108)],'remark':_0x1e6ebe[_0x51ade5(0xfc)],'userCount':_0x1e6ebe[_0x51ade5(0x100)]??0x0,'permitCount':_0x1e6ebe['permitCount']??0x0,'builtin':isBuiltinRuntimeRole(_0x1e6ebe['roleType'])};}export function readOptionalRuntimeRoleCode(_0x19dd27){const _0x5201a9=a56_0x6ad61d,_0x1f2939=_0x19dd27['flag'](_0x5201a9(0xdb));if(_0x1f2939===undefined||_0x1f2939===null)return undefined;const _0x4f04b7=String(_0x1f2939)[_0x5201a9(0xe4)]();if(!_0x4f04b7)throw CliErrors['validation'](_0x5201a9(0x10d));if(_0x4f04b7[_0x5201a9(0xf9)]>0x40)throw CliErrors[_0x5201a9(0xde)](_0x5201a9(0xe6));return _0x4f04b7;}function a56_0x431c(){const _0x35a973=['applyUserList','test','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','flag','Missing\x20runtime\x20role\x20reference.','string','join','filter','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','isSafeInteger','Cannot\x20','role-code','1832108MSQmpJ','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','validation','CUSTOM','find','\x20is\x20already\x20in\x20runtime\x20role\x20','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','ADMIN','trim','USER','--role-code\x20cannot\x20exceed\x2064\x20characters.','user','8wuAYkR','18588QiKaOZ','items','includes','push','str','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','31143200qzsvoO','2STMNgR','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.',',\x20found\x20','1080941bUWjce','userName','appCode','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','totalCount','length','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','num','remark','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','user-add','userCount','66051tWkPLD','code','expect-user-count','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','roleCode','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','\x20built-in\x20runtime\x20role\x20','roleType','roleName','paging','Runtime\x20numeric\x20userId','1770057ZrcRDJ','--role-code\x20must\x20not\x20be\x20blank.','User\x20','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','role','\x20was\x20not\x20found\x20in\x20app\x20','Pass\x20one\x20role\x20ID:\x20','runtime','OWNER','10128223IHfIuj','userList','15HUwoBm','map'];a56_0x431c=function(){return _0x35a973;};return a56_0x431c();}export async function getRuntimeRoleById(_0x20d14c,_0x67569e){const _0x29f6cc=a56_0x6ad61d;if(!Number[_0x29f6cc(0xd9)](_0x67569e)||_0x67569e<=0x0)throw CliErrors[_0x29f6cc(0xde)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x16364a=(await listAllRuntimeRoles(_0x20d14c))['filter'](_0x485fc8=>_0x485fc8['id']===_0x67569e&&(!_0x485fc8[_0x29f6cc(0xf5)]||_0x485fc8[_0x29f6cc(0xf5)]===_0x20d14c));if(_0x16364a[_0x29f6cc(0xf9)]!==0x1)throw CliErrors[_0x29f6cc(0xde)]('Runtime\x20role\x20id\x20'+_0x67569e+_0x29f6cc(0xc7)+_0x20d14c+'.',_0x29f6cc(0xd7));return _0x16364a[0x0];}export async function listAllRuntimeRoles(_0x5a91c7,_0x424142={}){const _0x7e912=a56_0x6ad61d,_0x1744bc=0x64,_0x53b34d=[];for(let _0x3e8fb3=0x1;;_0x3e8fb3+=0x1){const _0x14c9cf=await listRuntimeAppRoles(_0x5a91c7,{..._0x424142[_0x7e912(0x109)]?{'roleName':_0x424142[_0x7e912(0x109)]}:{},'currentPage':_0x3e8fb3,'pageSize':_0x1744bc});_0x53b34d[_0x7e912(0xec)](..._0x14c9cf[_0x7e912(0xea)]);if(_0x14c9cf[_0x7e912(0xea)][_0x7e912(0xf9)]<_0x1744bc||_0x14c9cf[_0x7e912(0x10a)]&&_0x53b34d[_0x7e912(0xf9)]>=_0x14c9cf[_0x7e912(0x10a)][_0x7e912(0xf8)])return _0x53b34d;}}export async function resolveRuntimeRoleRef(_0x549c30,_0x4759ac){const _0x242c41=a56_0x6ad61d,_0x125819=_0x4759ac[_0x242c41(0xe4)]();if(!_0x125819)throw CliErrors['validation'](_0x242c41(0xd3),'Pass\x20--role\x20<id|name>.');if(/^\d+$/[_0x242c41(0xd0)](_0x125819))return getRuntimeRoleById(_0x549c30,Number(_0x125819));const _0x3d06c6=(await listAllRuntimeRoles(_0x549c30))[_0x242c41(0xd6)](_0x590437=>_0x590437[_0x242c41(0x109)]===_0x125819);if(_0x3d06c6[_0x242c41(0xf9)]===0x0)throw CliErrors[_0x242c41(0xde)]('Runtime\x20role\x20name\x20\x22'+_0x125819+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0x549c30+'.','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.');if(_0x3d06c6['length']>0x1)throw CliErrors[_0x242c41(0xde)]('Runtime\x20role\x20name\x20\x22'+_0x125819+'\x22\x20is\x20ambiguous.',_0x242c41(0xc8)+_0x3d06c6[_0x242c41(0xce)](_0x10a6ba=>_0x10a6ba['id'])[_0x242c41(0xd5)](',\x20')+'.');return _0x3d06c6[0x0];}function parseRuntimeUserId(_0x2a22d0){const _0x46b576=a56_0x6ad61d,_0x4228d6=_0x2a22d0['trim'](),_0x2e872d=normalizePositiveSafeInteger(_0x4228d6);if(_0x2e872d===undefined)throw CliErrors[_0x46b576(0xde)](_0x46b576(0xfe),_0x46b576(0xee));return _0x2e872d;}export async function prepareRuntimeMemberMutation(_0x12e431,_0x1dce26){const _0x33c13e=a56_0x6ad61d,_0x1f2992=await resolveRuntimeRoleRef(_0x12e431[_0x33c13e(0xf5)],_0x12e431[_0x33c13e(0xed)](_0x33c13e(0x110)));if(_0x1f2992[_0x33c13e(0x108)]==='OWNER')throw CliErrors[_0x33c13e(0xde)](_0x33c13e(0xf1),_0x33c13e(0x104));const _0x28a17a=parseRuntimeUserId(_0x12e431[_0x33c13e(0xed)](_0x33c13e(0xe7))),_0x29989f=(await listRuntimeRoleUsers(_0x12e431['appCode']))[_0x33c13e(0xce)](_0x1b8b80=>({..._0x1b8b80,'userList':[..._0x1b8b80[_0x33c13e(0xcc)]??[]],'applyUserList':[..._0x1b8b80[_0x33c13e(0xcf)]??[]]})),_0x240250=_0x29989f[_0x33c13e(0xe0)](_0x418b3c=>_0x418b3c['id']===_0x1f2992['id']);if(!_0x240250)throw CliErrors[_0x33c13e(0xde)]('Runtime\x20role\x20'+_0x1f2992['id']+_0x33c13e(0xd1),_0x33c13e(0xfd));const _0x39742e=_0x240250['userList'][_0x33c13e(0xce)](_0x2c5822=>_0x2c5822['userId']),_0x1ccf20=_0x12e431[_0x33c13e(0xd2)]('expect-user-count');if(_0x1ccf20!==undefined&&_0x1ccf20!==null&&_0x1ccf20!==''){const _0x43c577=_0x12e431[_0x33c13e(0xfb)](_0x33c13e(0x103));if(!Number[_0x33c13e(0xd9)](_0x43c577)||_0x43c577<0x0)throw CliErrors['validation'](_0x33c13e(0xdd));if(_0x39742e[_0x33c13e(0xf9)]!==_0x43c577)throw CliErrors[_0x33c13e(0xde)](_0x33c13e(0xf6)+_0x43c577+_0x33c13e(0xf2)+_0x39742e[_0x33c13e(0xf9)]+'.',_0x33c13e(0xfa));}const _0x334ba8=_0x39742e['includes'](_0x28a17a),_0x2c17b6=[];let _0x4bcda2=!![];if(_0x1dce26===_0x33c13e(0xff)){const _0x52dd2f=await listRuntimeAppUsers(_0x12e431[_0x33c13e(0xf5)]),_0x289c13=_0x52dd2f['filter'](_0x269156=>Number(_0x269156[_0x33c13e(0x102)])===_0x28a17a);if(_0x289c13[_0x33c13e(0xf9)]!==0x1||!_0x289c13[0x0][_0x33c13e(0xf4)]?.['trim']())throw CliErrors[_0x33c13e(0xde)]('Runtime\x20user\x20'+_0x28a17a+_0x33c13e(0xc7)+_0x12e431[_0x33c13e(0xf5)]+'.',_0x33c13e(0x10f));_0x334ba8?(_0x4bcda2=![],_0x2c17b6['push'](_0x33c13e(0x10e)+_0x28a17a+_0x33c13e(0xe1)+_0x1f2992['id']+'.')):_0x240250['userList'][_0x33c13e(0xec)]({'userId':_0x28a17a,'username':_0x289c13[0x0]['userName']});}else!_0x334ba8?(_0x4bcda2=![],_0x2c17b6[_0x33c13e(0xec)](_0x33c13e(0x10e)+_0x28a17a+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x1f2992['id']+'.')):_0x240250[_0x33c13e(0xcc)]=_0x240250[_0x33c13e(0xcc)][_0x33c13e(0xd6)](_0x3de0c1=>_0x3de0c1['userId']!==_0x28a17a);return{'role':_0x1f2992,'userId':_0x28a17a,'roleList':_0x29989f,'before':{'userIds':_0x39742e},'after':{'userIds':_0x240250[_0x33c13e(0xcc)][_0x33c13e(0xce)](_0x14c324=>_0x14c324['userId'])},'shouldWrite':_0x4bcda2,'warnings':_0x2c17b6};}export function runtimeRoleWriteResult(_0x20b0af,_0x17bb7f,_0x5c5788,_0x5ba4b6,_0x21bbac,_0x33923d=[]){const _0x1e8f35=a56_0x6ad61d;return{'operation':_0x20b0af,'scope':_0x1e8f35(0xc9),'selector':_0x17bb7f,'before':_0x5c5788,'after':_0x5ba4b6,'dryRun':![],'backend':_0x21bbac,'warnings':_0x33923d};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a57_0x2457a2=a57_0x1bcc;(function(_0x28016e,_0x1f4599){const _0x258e42=a57_0x1bcc,_0x468d3=_0x28016e();while(!![]){try{const _0x4234b4=-parseInt(_0x258e42(0x1f9))/0x1*(parseInt(_0x258e42(0x1dc))/0x2)+parseInt(_0x258e42(0x1ec))/0x3+-parseInt(_0x258e42(0x1f5))/0x4+parseInt(_0x258e42(0x1db))/0x5*(-parseInt(_0x258e42(0x1df))/0x6)+-parseInt(_0x258e42(0x1f6))/0x7*(-parseInt(_0x258e42(0x1e6))/0x8)+-parseInt(_0x258e42(0x1e4))/0x9+parseInt(_0x258e42(0x1f1))/0xa*(parseInt(_0x258e42(0x1d8))/0xb);if(_0x4234b4===_0x1f4599)break;else _0x468d3['push'](_0x468d3['shift']());}catch(_0x3a33aa){_0x468d3['push'](_0x468d3['shift']());}}}(a57_0x3ff9,0x4db4c));import{updateRuntimeAppRole}from'../../core/api-client.js';function a57_0x3ff9(){const _0x32b076=['validation','1259612vatTeV','301CqXowL','trim','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','2606rOYbyN','Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','33vghOvU','/client/permit/role/update','update','655daCSBH','24ZkpZqy','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','name','6330ZVeOLA','description','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','New\x20non-empty\x20role\x20remark','num','225900VbfppY','flag','87272bQZKNg','high-risk-write','POST','appCode','str','--remark\x20must\x20not\x20be\x20blank.','629334MqDolB','New\x20role\x20name','body','--name\x20must\x20not\x20be\x20blank.','string','496330UrZzfE','role-code','remark'];a57_0x3ff9=function(){return _0x32b076;};return a57_0x3ff9();}function a57_0x1bcc(_0x2c4128,_0x3711ae){_0x2c4128=_0x2c4128-0x1d7;const _0x3ff9f6=a57_0x3ff9();let _0x1bccb0=_0x3ff9f6[_0x2c4128];return _0x1bccb0;}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x2cc6fd){const _0x22293b=a57_0x1bcc,_0x13464e=_0x2cc6fd['flag'](_0x22293b(0x1f2))!==undefined,_0x41af43=_0x2cc6fd[_0x22293b(0x1e5)](_0x22293b(0x1de))!==undefined,_0x1110f3=_0x2cc6fd[_0x22293b(0x1e5)](_0x22293b(0x1f3))!==undefined;if(!_0x13464e&&!_0x41af43&&!_0x1110f3)throw CliErrors[_0x22293b(0x1f4)](_0x22293b(0x1f8));const _0x20d711=readOptionalRuntimeRoleCode(_0x2cc6fd),_0x47eabb=_0x2cc6fd[_0x22293b(0x1ea)](_0x22293b(0x1de))[_0x22293b(0x1f7)](),_0x5be900=_0x2cc6fd[_0x22293b(0x1ea)]('remark')[_0x22293b(0x1f7)]();if(_0x41af43&&!_0x47eabb)throw CliErrors[_0x22293b(0x1f4)](_0x22293b(0x1ef));if(_0x1110f3&&!_0x5be900)throw CliErrors['validation'](_0x22293b(0x1eb),_0x22293b(0x1e1));return{..._0x20d711?{'roleCode':_0x20d711}:{},..._0x41af43?{'roleName':_0x47eabb}:{},..._0x1110f3?{'remark':_0x5be900}:{}};}async function prepare(_0x1ac669){const _0x499a22=a57_0x1bcc,_0x36c504=await getRuntimeRoleById(_0x1ac669[_0x499a22(0x1e9)],_0x1ac669[_0x499a22(0x1e3)]('id'));return assertCustomRuntimeRole(_0x36c504,_0x499a22(0x1da)),{'role':_0x36c504,'body':{'id':_0x36c504['id'],'appCode':_0x1ac669[_0x499a22(0x1e9)],...updateFields(_0x1ac669)}};}export const roleUpdate={'service':'role','command':a57_0x2457a2(0x1da),'description':a57_0x2457a2(0x1dd),'risk':a57_0x2457a2(0x1e7),'confirmationDescription':a57_0x2457a2(0x1d7),'flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x2457a2(0x1de),'type':a57_0x2457a2(0x1f0),'description':a57_0x2457a2(0x1ed)},{'name':'remark','type':a57_0x2457a2(0x1f0),'description':a57_0x2457a2(0x1e2)}],async 'validate'(_0x5a9712){updateFields(_0x5a9712);},async 'dryRun'(_0x1feecd){const _0x537b24=a57_0x2457a2,{body:_0x5d3c1f}=await prepare(_0x1feecd);return dryRun(_0x537b24(0x1e8),_0x537b24(0x1d9))[_0x537b24(0x1ee)](_0x5d3c1f)[_0x537b24(0x1e0)]('Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role')['build']();},async 'execute'(_0x5e0673){const _0x2af835=a57_0x2457a2,{role:_0x1828e5,body:_0x1ad6eb}=await prepare(_0x5e0673),_0x42aba3=await updateRuntimeAppRole(_0x1ad6eb);return{'ok':!![],'data':runtimeRoleWriteResult(_0x2af835(0x1da),{'roleId':_0x1828e5['id']},projectRuntimeRole(_0x1828e5),projectRuntimeRole(_0x42aba3),{'method':_0x2af835(0x1e8),'path':_0x2af835(0x1d9)})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a58_0x1b6f5b=a58_0xde37;(function(_0x37ca9f,_0x481d96){const _0x3ad13b=a58_0xde37,_0x1c9057=_0x37ca9f();while(!![]){try{const _0x3cd054=parseInt(_0x3ad13b(0xb2))/0x1*(-parseInt(_0x3ad13b(0xb7))/0x2)+-parseInt(_0x3ad13b(0xbd))/0x3+parseInt(_0x3ad13b(0xae))/0x4+parseInt(_0x3ad13b(0xb9))/0x5+-parseInt(_0x3ad13b(0xb8))/0x6*(parseInt(_0x3ad13b(0xc7))/0x7)+parseInt(_0x3ad13b(0xc1))/0x8+parseInt(_0x3ad13b(0xb4))/0x9*(parseInt(_0x3ad13b(0xc2))/0xa);if(_0x3cd054===_0x481d96)break;else _0x1c9057['push'](_0x1c9057['shift']());}catch(_0x39e65e){_0x1c9057['push'](_0x1c9057['shift']());}}}(a58_0x1078,0x676ed));function a58_0x1078(){const _0x21dd01=['/client/permit/user-role/update-user-list','warnings','POST','1507200AUtfSD','10AQLaxx','high-risk-write','Preview:\x20add\x20runtime\x20role\x20member','roleList','build','14wbQSUe','1433616GSpwfC','shouldWrite','description','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','187ZCzJWK','after','7144875hgnttN','body','appCode','1654ccWDZU','1398846ysxmYd','909175FLuNXu','user-add','role','userId','1433766FHVDbV'];a58_0x1078=function(){return _0x21dd01;};return a58_0x1078();}function a58_0xde37(_0x51e7aa,_0x2061a5){_0x51e7aa=_0x51e7aa-0xae;const _0x107866=a58_0x1078();let _0xde379b=_0x107866[_0x51e7aa];return _0xde379b;}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 roleUserAdd={'service':a58_0x1b6f5b(0xbb),'command':a58_0x1b6f5b(0xba),'description':a58_0x1b6f5b(0xb1),'risk':a58_0x1b6f5b(0xc3),'confirmationDescription':'Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xc8c78e){const _0xbad569=a58_0x1b6f5b,_0x3f3d42=await prepareRuntimeMemberMutation(_0xc8c78e,_0xbad569(0xba));return dryRun(_0xbad569(0xc0),'/client/permit/user-role/update-user-list')[_0xbad569(0xb5)]({'appCode':_0xc8c78e['appCode'],'roleList':_0x3f3d42[_0xbad569(0xc5)]})[_0xbad569(0xb0)](_0x3f3d42[_0xbad569(0xaf)]?_0xbad569(0xc4):_0x3f3d42[_0xbad569(0xbf)][0x0])[_0xbad569(0xc6)]();},async 'execute'(_0x24cd30){const _0x403cae=a58_0x1b6f5b,_0x46624d=await prepareRuntimeMemberMutation(_0x24cd30,'user-add');return _0x46624d[_0x403cae(0xaf)]&&await updateRuntimeRoleUsers(_0x24cd30[_0x403cae(0xb6)],_0x46624d['roleList']),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x46624d['role']['id'],'userId':_0x46624d[_0x403cae(0xbc)]},_0x46624d['before'],_0x46624d[_0x403cae(0xb3)],{'method':'POST','path':_0x403cae(0xbe)},_0x46624d[_0x403cae(0xbf)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a59_0x2586(){const _0x1f4e4f=['after','shouldWrite','high-risk-write','2629840fkUKCX','11964MfOdsl','/client/permit/user-role/update-user-list','297kLtnzV','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','27847953tfBtKN','before','roleList','body','role','180201GNqUWE','Preview:\x20remove\x20runtime\x20role\x20member','appCode','POST','9438KajSBg','485563BXFnGN','user-remove','114qwGkqq','6826272wgCVOD'];a59_0x2586=function(){return _0x1f4e4f;};return a59_0x2586();}function a59_0x11f7(_0x1ab5ad,_0x44d0c5){_0x1ab5ad=_0x1ab5ad-0xf2;const _0x2586a2=a59_0x2586();let _0x11f796=_0x2586a2[_0x1ab5ad];return _0x11f796;}const a59_0x15c74f=a59_0x11f7;(function(_0x526e0b,_0x53e417){const _0x470e14=a59_0x11f7,_0x2fe914=_0x526e0b();while(!![]){try{const _0x4c351f=-parseInt(_0x470e14(0xf5))/0x1+-parseInt(_0x470e14(0xf4))/0x2+parseInt(_0x470e14(0xff))/0x3*(-parseInt(_0x470e14(0xfd))/0x4)+-parseInt(_0x470e14(0xfc))/0x5+-parseInt(_0x470e14(0xf7))/0x6*(parseInt(_0x470e14(0x107))/0x7)+-parseInt(_0x470e14(0xf8))/0x8+parseInt(_0x470e14(0x102))/0x9;if(_0x4c351f===_0x53e417)break;else _0x2fe914['push'](_0x2fe914['shift']());}catch(_0x4a11ca){_0x2fe914['push'](_0x2fe914['shift']());}}}(a59_0x2586,0x6b4a1));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_0x15c74f(0x106),'command':a59_0x15c74f(0xf6),'description':a59_0x15c74f(0x100),'risk':a59_0x15c74f(0xfb),'confirmationDescription':a59_0x15c74f(0x101),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x5eff1b){const _0x5d215b=a59_0x15c74f,_0x3c1d04=await prepareRuntimeMemberMutation(_0x5eff1b,_0x5d215b(0xf6));return dryRun(_0x5d215b(0xf3),_0x5d215b(0xfe))[_0x5d215b(0x105)]({'appCode':_0x5eff1b[_0x5d215b(0xf2)],'roleList':_0x3c1d04[_0x5d215b(0x104)]})['description'](_0x3c1d04[_0x5d215b(0xfa)]?_0x5d215b(0x108):_0x3c1d04['warnings'][0x0])['build']();},async 'execute'(_0x1cec54){const _0x28049c=a59_0x15c74f,_0x1f0e25=await prepareRuntimeMemberMutation(_0x1cec54,_0x28049c(0xf6));return _0x1f0e25[_0x28049c(0xfa)]&&await updateRuntimeRoleUsers(_0x1cec54[_0x28049c(0xf2)],_0x1f0e25[_0x28049c(0x104)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x28049c(0xf6),{'roleId':_0x1f0e25[_0x28049c(0x106)]['id'],'userId':_0x1f0e25['userId']},_0x1f0e25[_0x28049c(0x103)],_0x1f0e25[_0x28049c(0xf9)],{'method':_0x28049c(0xf3),'path':_0x28049c(0xfe)},_0x1f0e25['warnings'])};}};
|
|
@@ -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_0x373933=a60_0x2d42;(function(_0xaf1511,_0x30ebc4){const _0x3e658b=a60_0x2d42,_0x278aaa=_0xaf1511();while(!![]){try{const _0x1a3ca3=parseInt(_0x3e658b(0x1e6))/0x1*(parseInt(_0x3e658b(0x1fa))/0x2)+parseInt(_0x3e658b(0x1c0))/0x3+parseInt(_0x3e658b(0x1f3))/0x4+-parseInt(_0x3e658b(0x1f6))/0x5+parseInt(_0x3e658b(0x1d1))/0x6+-parseInt(_0x3e658b(0x1ea))/0x7*(-parseInt(_0x3e658b(0x1f9))/0x8)+-parseInt(_0x3e658b(0x1b0))/0x9*(parseInt(_0x3e658b(0x1d8))/0xa);if(_0x1a3ca3===_0x30ebc4)break;else _0x278aaa['push'](_0x278aaa['shift']());}catch(_0x4e9453){_0x278aaa['push'](_0x278aaa['shift']());}}}(a60_0x1979,0x43ed0));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_0x2d42(_0x18a4d6,_0x1e5891){_0x18a4d6=_0x18a4d6-0x1b0;const _0x1979a0=a60_0x1979();let _0x2d421b=_0x1979a0[_0x18a4d6];return _0x2d421b;}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_0x373933(0x1b9),'type':'string','required':!![],'enum':[a60_0x373933(0x1dc),a60_0x373933(0x1c2)],'description':a60_0x373933(0x1cd)},CRON_FLAG={'name':a60_0x373933(0x1c9),'type':'string','description':a60_0x373933(0x1ed)},SCHEDULED_AT_FLAG={'name':a60_0x373933(0x1e9),'type':'string','description':a60_0x373933(0x1b1)},TITLE_FLAG={'name':a60_0x373933(0x1e4),'type':a60_0x373933(0x1d0),'required':!![],'description':a60_0x373933(0x1de)},PROMPT_FLAG={'name':a60_0x373933(0x1b5),'type':'string','required':!![],'description':a60_0x373933(0x1b4)},MODEL_FLAG={'name':a60_0x373933(0x1c3),'type':a60_0x373933(0x1d0),'enum':[a60_0x373933(0x1da),a60_0x373933(0x1f7),'deepseek-v4-pro-0813'],'default':a60_0x373933(0x1f7),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a60_0x373933(0x1bd),'type':a60_0x373933(0x1d0),'required':!![],'description':a60_0x373933(0x1f1),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x373933(0x1d2)}},LIMIT_FLAG={'name':a60_0x373933(0x1c7),'type':'number','default':0x14,'description':a60_0x373933(0x1d3)},CURSOR_FLAG={'name':a60_0x373933(0x1b2),'type':a60_0x373933(0x1d0),'description':a60_0x373933(0x1eb)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x1ffcc2){const _0x56bce4=a60_0x373933,_0x132340=_0x1ffcc2[_0x56bce4(0x1d7)](_0x56bce4(0x1b9)),_0x2a11c3=_0x1ffcc2[_0x56bce4(0x1d7)](_0x56bce4(0x1e4))['trim'](),_0x197236=_0x1ffcc2[_0x56bce4(0x1d7)]('prompt')['trim'](),_0x5381fd=_0x1ffcc2[_0x56bce4(0x1d7)](_0x56bce4(0x1c3)),_0x95c5=_0x1ffcc2[_0x56bce4(0x1d7)](_0x56bce4(0x1c9)),_0x514445=_0x1ffcc2['str'](_0x56bce4(0x1e9));if(!_0x2a11c3)throw CliErrors[_0x56bce4(0x1cc)](_0x56bce4(0x1be));if(!_0x197236)throw CliErrors['validation'](_0x56bce4(0x1fc));if(_0x132340==='CRON'){if(!_0x95c5||_0x514445)throw CliErrors[_0x56bce4(0x1cc)](_0x56bce4(0x1f4));return{'kind':_0x132340,'timezone':_0x56bce4(0x1e7),'cron':_0x95c5,'title':_0x2a11c3,'prompt':_0x197236,'model':_0x5381fd};}if(_0x132340===_0x56bce4(0x1c2)){if(!_0x514445||_0x95c5)throw CliErrors[_0x56bce4(0x1cc)](_0x56bce4(0x1e5));return{'kind':_0x132340,'timezone':_0x56bce4(0x1e7),'scheduledAt':_0x514445,'title':_0x2a11c3,'prompt':_0x197236,'model':_0x5381fd};}throw CliErrors['validation'](_0x56bce4(0x1c8));}function a60_0x1979(){const _0x106c74=['validation','Schedule\x20kind:\x20CRON\x20or\x20ONCE','/schedules','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','string','944466sSZhzN','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Page\x20size\x20from\x201\x20to\x20100','isSafeInteger','/run','schedule','str','10QoHicz','validate','kimi/k3','taskId','CRON','Show\x20one\x20schedule\x20by\x20schedule\x20ID','Schedule\x20title','trim','POST','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','create','high-risk-write','title','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','12BDZYBM','UTC','Schedule\x20input\x20is\x20valid','scheduled-at','105322JcIwPf','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','appCode','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Queued\x20Task\x20','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','run','Schedule\x20UUID','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','912232FKjSWE','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','\x20from\x20schedule\x20','899965dvtIlD','deepseek-v4-flash-0731','Created\x20','88Aihyzf','68584JXJtox','body','--prompt\x20must\x20not\x20be\x20blank.','5767317VIRhaA','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','cursor','detail','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','prompt','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','list','/api/harness/apps/','kind','length','description','read','schedule-id','--title\x20must\x20not\x20be\x20blank.','Deleted\x20schedule\x20','409653YkRsTt','Preview:\x20delete\x20schedule\x20','ONCE','model','\x20schedule\x20','\x20immediately','DELETE','limit','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','cron','num','build'];a60_0x1979=function(){return _0x106c74;};return a60_0x1979();}function scheduleCollectionPath(_0x54e72b){const _0x584134=a60_0x373933;return _0x584134(0x1b8)+encodeURIComponent(_0x54e72b)+_0x584134(0x1ce);}function scheduleItemPath(_0x4bfa56,_0x4475d7){return scheduleCollectionPath(_0x4bfa56)+'/'+encodeURIComponent(_0x4475d7);}const scheduleValidate={'service':a60_0x373933(0x1d6),'command':a60_0x373933(0x1d9),'description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a60_0x373933(0x1bc),'flags':INPUT_FLAGS,async 'validate'(_0x1efaa1){readScheduleInput(_0x1efaa1);},async 'execute'(_0x1a989f){const _0x1cfe19=a60_0x373933,_0x202130=readScheduleInput(_0x1a989f),_0x5d4fe1=await validateRuntimeSchedule(_0x1a989f['appCode'],_0x202130);return{'ok':!![],'data':_0x5d4fe1,'message':_0x1cfe19(0x1e8)};}},scheduleCreate={'service':'schedule','command':a60_0x373933(0x1e2),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a60_0x373933(0x1e3),'confirmationDescription':a60_0x373933(0x1ef),'flags':INPUT_FLAGS,async 'validate'(_0x1596f1){readScheduleInput(_0x1596f1);},async 'execute'(_0x1fb246){const _0xbc95e5=a60_0x373933,_0x3b018e=readScheduleInput(_0x1fb246),_0x553eec=await validateRuntimeSchedule(_0x1fb246[_0xbc95e5(0x1ec)],_0x3b018e),_0x59e3a5=await createRuntimeSchedule(_0x1fb246['appCode'],_0x553eec);return{'ok':!![],'data':_0x59e3a5,'message':_0xbc95e5(0x1f8)+_0x59e3a5[_0xbc95e5(0x1b9)]+_0xbc95e5(0x1c4)+_0x59e3a5['scheduleId']};},async 'dryRun'(_0x69e423){const _0x3fcfc0=a60_0x373933,_0x513b2=readScheduleInput(_0x69e423);return dryRun('POST',scheduleCollectionPath(_0x69e423['appCode']))[_0x3fcfc0(0x1fb)](_0x513b2)[_0x3fcfc0(0x1bb)]('Preview:\x20create\x20an\x20Agent\x20schedule')['build']();}},scheduleList={'service':a60_0x373933(0x1d6),'command':a60_0x373933(0x1b7),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a60_0x373933(0x1bc),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3c8fd7){const _0x283ce1=a60_0x373933,_0x3ac03e=_0x3c8fd7[_0x283ce1(0x1ca)](_0x283ce1(0x1c7));if(!Number[_0x283ce1(0x1d4)](_0x3ac03e)||_0x3ac03e<0x1||_0x3ac03e>0x64)throw CliErrors[_0x283ce1(0x1cc)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x3509a8=_0x3c8fd7[_0x283ce1(0x1d7)](_0x283ce1(0x1b2));if(_0x3509a8&&(_0x3509a8[_0x283ce1(0x1ba)]>0x400||_0x3509a8[_0x283ce1(0x1df)]()!==_0x3509a8))throw CliErrors['validation'](_0x283ce1(0x1e1));},async 'execute'(_0x4c8bed){const _0x466089=a60_0x373933,_0x5daf43=_0x4c8bed['str']('cursor'),_0x23da20=await listRuntimeSchedules(_0x4c8bed['appCode'],{'kind':_0x4c8bed[_0x466089(0x1d7)](_0x466089(0x1b9)),'limit':_0x4c8bed[_0x466089(0x1ca)]('limit'),..._0x5daf43?{'cursor':_0x5daf43}:{}});return{'ok':!![],'data':_0x23da20};}},scheduleDetail={'service':a60_0x373933(0x1d6),'command':a60_0x373933(0x1b3),'description':a60_0x373933(0x1dd),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1eefec){const _0x295d1f=a60_0x373933,_0xb5d6e4=await getRuntimeSchedule(_0x1eefec[_0x295d1f(0x1ec)],_0x1eefec[_0x295d1f(0x1d7)](_0x295d1f(0x1bd)));return{'ok':!![],'data':_0xb5d6e4};}},scheduleRun={'service':a60_0x373933(0x1d6),'command':a60_0x373933(0x1f0),'description':a60_0x373933(0x1f2),'risk':a60_0x373933(0x1e3),'confirmationDescription':a60_0x373933(0x1cf),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3ca74e){const _0xc30ce5=a60_0x373933,_0x1345a6=_0x3ca74e[_0xc30ce5(0x1d7)](_0xc30ce5(0x1bd)),_0x759adf=await runRuntimeSchedule(_0x3ca74e[_0xc30ce5(0x1ec)],_0x1345a6);return{'ok':!![],'data':_0x759adf,'message':_0xc30ce5(0x1ee)+_0x759adf[_0xc30ce5(0x1db)]+_0xc30ce5(0x1f5)+_0x1345a6};},async 'dryRun'(_0x2fe841){const _0x1a648d=a60_0x373933,_0x4616a3=_0x2fe841[_0x1a648d(0x1d7)]('schedule-id');return dryRun(_0x1a648d(0x1e0),scheduleItemPath(_0x2fe841[_0x1a648d(0x1ec)],_0x4616a3)+_0x1a648d(0x1d5))[_0x1a648d(0x1bb)]('Preview:\x20run\x20schedule\x20'+_0x4616a3+_0x1a648d(0x1c5))['build']();}},scheduleDelete={'service':a60_0x373933(0x1d6),'command':'delete','description':a60_0x373933(0x1b6),'risk':a60_0x373933(0x1e3),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x617fa1){const _0x396d95=a60_0x373933,_0x5c8b75=_0x617fa1[_0x396d95(0x1d7)]('schedule-id'),_0x492fff=await deleteRuntimeSchedule(_0x617fa1[_0x396d95(0x1ec)],_0x5c8b75);return{'ok':!![],'data':_0x492fff,'message':_0x396d95(0x1bf)+_0x5c8b75};},async 'dryRun'(_0x32c364){const _0x3ec18c=a60_0x373933,_0x3cb077=_0x32c364[_0x3ec18c(0x1d7)]('schedule-id');return dryRun(_0x3ec18c(0x1c6),scheduleItemPath(_0x32c364['appCode'],_0x3cb077))['description'](_0x3ec18c(0x1c1)+_0x3cb077)[_0x3ec18c(0x1cb)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a61_0x598da3=a61_0x468f;function a61_0x468f(_0x220252,_0x2a3a29){_0x220252=_0x220252-0x93;const _0x18f0d9=a61_0x18f0();let _0x468f91=_0x18f0d9[_0x220252];return _0x468f91;}(function(_0x2d82e0,_0x235deb){const _0x51dabd=a61_0x468f,_0x3fff4f=_0x2d82e0();while(!![]){try{const _0x526c38=-parseInt(_0x51dabd(0x94))/0x1*(parseInt(_0x51dabd(0x93))/0x2)+-parseInt(_0x51dabd(0x9b))/0x3+-parseInt(_0x51dabd(0x9e))/0x4+parseInt(_0x51dabd(0x9a))/0x5*(-parseInt(_0x51dabd(0x9c))/0x6)+-parseInt(_0x51dabd(0x99))/0x7*(parseInt(_0x51dabd(0x95))/0x8)+parseInt(_0x51dabd(0x96))/0x9+parseInt(_0x51dabd(0x98))/0xa;if(_0x526c38===_0x235deb)break;else _0x3fff4f['push'](_0x3fff4f['shift']());}catch(_0x20da1b){_0x3fff4f['push'](_0x3fff4f['shift']());}}}(a61_0x18f0,0xe74f2));function a61_0x18f0(){const _0x3bc726=['158097AQvRAu','16ZRTIim','13131567IOmBLH','read','24243480ORcUiQ','1080569WwFMVK','125YdBxCn','1556832dcGPKg','264090xNLUNE','export','2766888GJiMjN','Export\x20machine-readable\x20command\x20schema\x20(JSON)','4nOSNoe'];a61_0x18f0=function(){return _0x3bc726;};return a61_0x18f0();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x593d51){const _0xf72784=await buildSchemaPayload();return{'ok':!![],'data':_0xf72784};}export const schemaDefinition={'service':'schema','command':a61_0x598da3(0x9d),'description':a61_0x598da3(0x9f),'risk':a61_0x598da3(0x97),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -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(_0x3126b8,_0x45bc17){const _0x2be63e=a62_0xaf6c,_0x3523f0=_0x3126b8();while(!![]){try{const _0x468dae=-parseInt(_0x2be63e(0x224))/0x1+parseInt(_0x2be63e(0x1f7))/0x2+-parseInt(_0x2be63e(0x237))/0x3+parseInt(_0x2be63e(0x245))/0x4+parseInt(_0x2be63e(0x220))/0x5+-parseInt(_0x2be63e(0x209))/0x6*(-parseInt(_0x2be63e(0x20f))/0x7)+-parseInt(_0x2be63e(0x212))/0x8*(parseInt(_0x2be63e(0x247))/0x9);if(_0x468dae===_0x45bc17)break;else _0x3523f0['push'](_0x3523f0['shift']());}catch(_0x494cad){_0x3523f0['push'](_0x3523f0['shift']());}}}(a62_0x4dc9,0x99820));function a62_0xaf6c(_0x3ee055,_0x22e441){_0x3ee055=_0x3ee055-0x1df;const _0x4dc91d=a62_0x4dc9();let _0xaf6c63=_0x4dc91d[_0x3ee055];return _0xaf6c63;}import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x46087f,_0xfc6ca7){const _0x5d6cbc=a62_0xaf6c,_0x315fc8=listLocalServiceTrees();let _0x4ac9b3;for(const _0x35f27c of _0x315fc8){const _0x3dc38a=matchServiceTreeCommand(_0x35f27c,_0x46087f);if(!_0x3dc38a)continue;(!_0x4ac9b3||_0x3dc38a[_0x5d6cbc(0x22d)][_0x5d6cbc(0x1ec)][_0x5d6cbc(0x229)]>_0x4ac9b3[_0x5d6cbc(0x22d)][_0x5d6cbc(0x1ec)][_0x5d6cbc(0x229)])&&(_0x4ac9b3={'tree':_0x35f27c,'command':_0x3dc38a[_0x5d6cbc(0x22d)],'remainingArgs':_0x3dc38a[_0x5d6cbc(0x1f8)]});}if(!_0x4ac9b3)return undefined;const _0x257590={..._0xfc6ca7};return applyAppBinding(_0x4ac9b3[_0x5d6cbc(0x21b)],_0x4ac9b3[_0x5d6cbc(0x22d)],_0x257590),{'definition':buildDynamicCommandDefinition(_0x4ac9b3[_0x5d6cbc(0x21b)],_0x4ac9b3['command']),'args':_0x4ac9b3[_0x5d6cbc(0x1f8)],'flags':_0x257590,'tree':_0x4ac9b3[_0x5d6cbc(0x21b)],'command':_0x4ac9b3[_0x5d6cbc(0x22d)]};}export function generateDynamicServiceHelp(_0x4e6482){const _0x2a7970=a62_0xaf6c,_0x4c30c9=listLocalServiceTrees()[_0x2a7970(0x236)](_0x3475f2=>_0x3475f2[_0x2a7970(0x208)][_0x2a7970(0x228)]===_0x4e6482);if(!_0x4c30c9)return undefined;const _0x4e06b0=[CLI_BIN_NAME+'\x20'+_0x4e6482+_0x2a7970(0x1f0),'',_0x4c30c9[_0x2a7970(0x208)][_0x2a7970(0x238)]||_0x4e6482,_0x4c30c9['service']['description']?'\x20\x20'+_0x4c30c9[_0x2a7970(0x208)][_0x2a7970(0x22a)]:'','',_0x2a7970(0x1eb),..._0x4c30c9[_0x2a7970(0x239)][_0x2a7970(0x1f3)](_0x3e45b3=>{const _0x7a7752=_0x2a7970,_0x435c16=_0x3e45b3[_0x7a7752(0x1ec)]['slice'](0x1)[_0x7a7752(0x1f6)]('\x20'),_0x48c69e=_0x3e45b3[_0x7a7752(0x203)]===_0x7a7752(0x22f)?'':'\x20['+_0x3e45b3['risk']+']';return'\x20\x20'+_0x435c16[_0x7a7752(0x23d)](0x18)+'\x20'+(_0x3e45b3['description']||'')+_0x48c69e;}),'','Use\x20`'+CLI_BIN_NAME+_0x2a7970(0x21d)+_0x4e6482+_0x2a7970(0x231)][_0x2a7970(0x240)](Boolean);return _0x4e06b0[_0x2a7970(0x1f6)]('\x0a');}export function listDynamicServiceEntries(){const _0x1958d0=a62_0xaf6c;return listLocalServices()[_0x1958d0(0x1f3)](_0x21e2de=>{const _0x43c49d=_0x1958d0,_0x1ec17a=_0x21e2de[_0x43c49d(0x1ed)];return{'service':_0x1ec17a[_0x43c49d(0x208)][_0x43c49d(0x228)],'label':_0x1ec17a['service']['name']||_0x1ec17a['service']['code'],'commands':_0x1ec17a[_0x43c49d(0x239)][_0x43c49d(0x1f3)](_0x178a08=>({'command':dynamicCommandName(_0x178a08),'description':_0x178a08['description']||_0x43c49d(0x1f1)+_0x178a08['cliPath'],'tag':riskTag(_0x178a08[_0x43c49d(0x203)])}))};});}export function getDynamicServiceEntry(_0x182884){const _0x2b42a6=a62_0xaf6c;return listDynamicServiceEntries()[_0x2b42a6(0x236)](_0xab9be7=>_0xab9be7[_0x2b42a6(0x208)]===_0x182884);}export function listDynamicServiceDefinitions(_0x232f28){const _0x131622=a62_0xaf6c;return listLocalServiceTrees()[_0x131622(0x240)](_0x38775e=>!_0x232f28||_0x38775e[_0x131622(0x208)][_0x131622(0x228)]===_0x232f28)[_0x131622(0x22e)](_0xbda3d8=>_0xbda3d8[_0x131622(0x239)][_0x131622(0x1f3)](_0x3201ed=>buildDynamicCommandDefinition(_0xbda3d8,_0x3201ed)));}export function getDynamicServiceDefinitions(_0x46f6cd){const _0x20bfb9=a62_0xaf6c,_0x18ecda=listDynamicServiceDefinitions(_0x46f6cd);return _0x18ecda[_0x20bfb9(0x229)]>0x0?_0x18ecda:undefined;}export function findDynamicServiceDefinition(_0x2127ce,_0x846a7c){const _0x167223=a62_0xaf6c;return listDynamicServiceDefinitions(_0x2127ce)['find'](_0xb9a453=>_0xb9a453[_0x167223(0x22d)]===_0x846a7c);}export function buildDynamicCommandDefinition(_0x1c8eda,_0x579cdb){const _0x561ca4=a62_0xaf6c;return{'service':_0x1c8eda[_0x561ca4(0x208)][_0x561ca4(0x228)],'command':dynamicCommandName(_0x579cdb),'description':_0x579cdb[_0x561ca4(0x22a)]||_0x561ca4(0x1f1)+_0x579cdb[_0x561ca4(0x225)],'risk':_0x579cdb[_0x561ca4(0x203)],..._0x579cdb['risk']===_0x561ca4(0x22f)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x579cdb)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x579cdb['args'][_0x561ca4(0x1f3)](_0x157ec5=>({'name':_0x157ec5['name'],'description':_0x157ec5[_0x561ca4(0x22a)]||_0x157ec5[_0x561ca4(0x238)],'required':_0x157ec5[_0x561ca4(0x226)]})),'flags':_0x579cdb[_0x561ca4(0x23e)][_0x561ca4(0x1f3)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x579cdb),async 'dryRun'(_0x590d2d){const _0x1dce1e=_0x561ca4,_0x904879=await compilePlan(_0x579cdb,_0x590d2d);return{'method':_0x1dce1e(0x1e1),'url':_0x579cdb[_0x1dce1e(0x225)],'body':{'target':targetPreview(_0x904879),'params':_0x904879[_0x1dce1e(0x1f4)]},'description':_0x1dce1e(0x1e2)+_0x579cdb['cliPath']};},async 'execute'(_0x44f48c){const _0x3e37a9=_0x561ca4,_0x45d3d4=await compilePlan(_0x579cdb,_0x44f48c),_0x1e40dc=Date[_0x3e37a9(0x23b)](),_0x3bff10=await executePlan(_0x45d3d4,_0x579cdb,_0x44f48c),_0x75345e=Date['now']()-_0x1e40dc;return{'ok':!![],'data':{'service':_0x1c8eda['service'],'command':_0x579cdb[_0x3e37a9(0x225)],'target':targetPreview(_0x45d3d4),'result':_0x3bff10,'elapsed':_0x75345e},'message':_0x3e37a9(0x20a)+_0x579cdb[_0x3e37a9(0x225)]+_0x3e37a9(0x1e9)+_0x75345e+'ms'};}};}function buildDynamicConfirmationDescription(_0x4f67f3){const _0x40a7a4=a62_0xaf6c,_0x44e8e1=_0x4f67f3[_0x40a7a4(0x22a)]||_0x4f67f3[_0x40a7a4(0x225)],_0x5419d7=_0x4f67f3[_0x40a7a4(0x203)]===_0x40a7a4(0x1f5)?_0x40a7a4(0x235):_0x40a7a4(0x219);return _0x40a7a4(0x210)+_0x44e8e1+_0x40a7a4(0x24a)+_0x5419d7;}function a62_0x4dc9(){const _0x35cdfb=['\x22.\x20','\x20\x20SERVICE\x20TREE\x20TARGET','bffCode','SERVICE_TREE','Preview\x20dynamic\x20service\x20command:\x20','json','\x20\x20\x20\x20datatable:\x20','appRef','\x22\x20in\x20service\x20command\x20','boolean','type','\x20completed\x20in\x20','slice','Commands:','fullPath','normalizedManifest','appcode','username','\x20<command>\x20[flags]','Run\x20service\x20command\x20','datasetCode','map','params','high-risk-write','join','720192kwYpsp','remainingArgs','nickName','const','Unknown\x20appRef\x20\x22','mapTo','some','scriptName','sql','tenantCode','\x20\x20\x20\x20','userId','risk','entries','kind','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','string','service','3659412QluiXR','Service\x20command\x20','envName','datatable','dbtableConfig','ctx.','7ttfRXL','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','\x20\x20\x20\x20sqlCode:\x20','176UZCqso','operator','loginName','fromEntries','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','validation','env','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','employeeId','tree','cliName','\x20service\x20detail\x20--service\x20','app','tableName','5410115qFrLkt','Unsupported\x20service\x20target\x20kind:\x20','source','number','511396liqveL','cliPath','required','\x20requires\x20target.functionName.','code','length','description','push','\x20\x20\x20\x20datasetCode:\x20','command','flatMap','read','startsWith','`\x20to\x20inspect\x20the\x20manifest.','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','bffId','sqlCode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','find','852651OZgjZk','name','commands','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','now','\x20\x20\x20\x20functionName:\x20','padEnd','flags','enum','filter','nickname','data','target','userName','2588424wuYfuo','appCode','521487EvtIYw','\x20\x20\x20\x20command:\x20','Cannot\x20resolve\x20datatable\x20\x22'];a62_0x4dc9=function(){return _0x35cdfb;};return a62_0x4dc9();}function dynamicCommandName(_0x344631){const _0x3615b9=a62_0xaf6c;return _0x344631[_0x3615b9(0x1ec)][_0x3615b9(0x1ea)](0x1)[_0x3615b9(0x1f6)]('\x20');}function riskTag(_0x13e983){const _0x23e7bb=a62_0xaf6c;return _0x13e983===_0x23e7bb(0x22f)?'':'\x20\x20['+_0x13e983+']';}function flagToCommandFlag(_0x27c1ca){const _0x1bab2d=a62_0xaf6c;return{'name':_0x27c1ca[_0x1bab2d(0x21c)],'type':_0x27c1ca[_0x1bab2d(0x1e8)]===_0x1bab2d(0x1e3)?_0x1bab2d(0x207):_0x27c1ca[_0x1bab2d(0x1e8)],'description':_0x27c1ca[_0x1bab2d(0x22a)]||_0x27c1ca['name'],'required':_0x27c1ca['required'],'default':isPrimitiveFlagDefault(_0x27c1ca['default'])?_0x27c1ca['default']:undefined,'enum':_0x27c1ca[_0x1bab2d(0x23f)]};}async function compilePlan(_0x39d570,_0x431b2f){return compileServiceTreeCommand(_0x39d570,{'flags':_0x431b2f['rawFlags'],'args':_0x431b2f['args'],'context':await buildServiceContext(_0x39d570,_0x431b2f)});}async function buildServiceContext(_0x9b59a2,_0x113195){const _0x217463=a62_0xaf6c,_0x178aa5={'appCode':_0x113195[_0x217463(0x246)],'env':_0x113195[_0x217463(0x20b)],'envName':_0x113195[_0x217463(0x20b)]};if(!usesRuntimeContext(_0x9b59a2))return _0x178aa5;const _0xde1688=await getLoginUserInfo(),_0x43369e=pickFirst(_0xde1688[_0x217463(0x202)],_0xde1688['id']);return{..._0x178aa5,'user':_0xde1688,'userId':_0x43369e,'id':_0xde1688['id'],'username':pickFirst(_0xde1688[_0x217463(0x1ef)],_0xde1688[_0x217463(0x244)],_0xde1688[_0x217463(0x214)]),'userName':_0xde1688[_0x217463(0x244)],'nickname':pickFirst(_0xde1688[_0x217463(0x241)],_0xde1688[_0x217463(0x1f9)]),'nickName':_0xde1688[_0x217463(0x1f9)],'tenantCode':_0xde1688[_0x217463(0x200)],'employeeId':_0xde1688[_0x217463(0x21a)]};}function usesRuntimeContext(_0x1fbdea){const _0x208e68=a62_0xaf6c;return _0x1fbdea[_0x208e68(0x1fc)][_0x208e68(0x1fd)](_0x2127fd=>typeof _0x2127fd[_0x208e68(0x222)]==='string'&&(_0x2127fd[_0x208e68(0x222)][_0x208e68(0x230)]('context.')||_0x2127fd[_0x208e68(0x222)][_0x208e68(0x230)](_0x208e68(0x20e))));}function pickFirst(..._0xf46a6a){const _0x4e182a=a62_0xaf6c;return _0xf46a6a[_0x4e182a(0x236)](_0x456083=>_0x456083!==undefined&&_0x456083!==null);}async function executePlan(_0x4e03b2,_0x37a9b9,_0x2d84af){const _0x35d54d=a62_0xaf6c;if(_0x4e03b2[_0x35d54d(0x205)]===_0x35d54d(0x242)){const _0x2d0e35=await resolveDatasetCode(_0x4e03b2,_0x37a9b9,_0x2d84af);return executeData(_0x2d0e35,_0x4e03b2[_0x35d54d(0x22d)],_0x4e03b2[_0x35d54d(0x1f4)]);}if(_0x4e03b2[_0x35d54d(0x205)]===_0x35d54d(0x1ff)){if(!_0x4e03b2[_0x35d54d(0x234)])throw CliErrors['validation'](_0x35d54d(0x20a)+_0x37a9b9[_0x35d54d(0x225)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x4e03b2[_0x35d54d(0x234)],normalizeScalarParams(_0x4e03b2[_0x35d54d(0x1f4)]));}if(_0x4e03b2[_0x35d54d(0x205)]==='bff'){const _0x3e3092=_0x4e03b2[_0x35d54d(0x1fe)]||_0x4e03b2[_0x35d54d(0x1e0)]||(_0x4e03b2[_0x35d54d(0x233)]==null?'':String(_0x4e03b2[_0x35d54d(0x233)]));if(!_0x3e3092)throw CliErrors[_0x35d54d(0x217)](_0x35d54d(0x20a)+_0x37a9b9[_0x35d54d(0x225)]+_0x35d54d(0x227));return executeSdkBff(_0x3e3092,_0x4e03b2[_0x35d54d(0x1f4)]);}throw CliErrors[_0x35d54d(0x217)](_0x35d54d(0x221)+_0x4e03b2[_0x35d54d(0x205)]);}async function resolveDatasetCode(_0x6802c7,_0x334a39,_0x54e466){const _0x27d3a7=a62_0xaf6c;if(_0x6802c7[_0x27d3a7(0x1f2)])return _0x6802c7['datasetCode'];if(!_0x6802c7[_0x27d3a7(0x20c)])throw CliErrors[_0x27d3a7(0x217)]('Service\x20command\x20'+_0x334a39[_0x27d3a7(0x225)]+_0x27d3a7(0x232));const _0x24fa95=await listDatasets(_0x54e466[_0x27d3a7(0x246)]),_0x583729=_0x24fa95[_0x27d3a7(0x236)](_0x4aece2=>_0x4aece2[_0x27d3a7(0x20d)]?.[_0x27d3a7(0x21f)]===_0x6802c7[_0x27d3a7(0x20c)]);if(!_0x583729?.[_0x27d3a7(0x228)])throw CliErrors[_0x27d3a7(0x217)](_0x27d3a7(0x249)+_0x6802c7[_0x27d3a7(0x20c)]+_0x27d3a7(0x23a)+_0x54e466[_0x27d3a7(0x246)]+'.',_0x27d3a7(0x206));return _0x583729[_0x27d3a7(0x228)];}function applyAppBinding(_0x13738b,_0xa7766c,_0x53aaa3){const _0x10aff6=a62_0xaf6c,_0x96daa=_0xa7766c['target'][_0x10aff6(0x1e5)];if(!_0x96daa)return;const _0x1d3626=_0x13738b['appBindings'][_0x96daa];if(!_0x1d3626)throw CliErrors[_0x10aff6(0x217)](_0x10aff6(0x1fb)+_0x96daa+_0x10aff6(0x1e6)+_0xa7766c[_0x10aff6(0x225)]+'.',_0x10aff6(0x216));const _0x5a0333=_0x1d3626[_0x10aff6(0x1ee)]||_0x1d3626['appCode'];_0x5a0333&&!hasText(_0x53aaa3['appcode'])&&(_0x53aaa3['appcode']=_0x5a0333),_0x1d3626['app']&&!hasText(_0x53aaa3[_0x10aff6(0x21e)])&&!hasText(_0x53aaa3['appcode'])&&(_0x53aaa3[_0x10aff6(0x21e)]=_0x1d3626['app']),_0x1d3626[_0x10aff6(0x218)]&&!hasText(_0x53aaa3[_0x10aff6(0x218)])&&(_0x53aaa3[_0x10aff6(0x218)]=_0x1d3626['env']);}function renderDynamicCommandHelp(_0x5623ac){const _0x377c53=a62_0xaf6c,_0x582058=[_0x377c53(0x1df),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5623ac[_0x377c53(0x243)][_0x377c53(0x205)],_0x377c53(0x248)+_0x5623ac[_0x377c53(0x243)]['command']];if(_0x5623ac['target']['datasetCode'])_0x582058[_0x377c53(0x22b)](_0x377c53(0x22c)+_0x5623ac[_0x377c53(0x243)][_0x377c53(0x1f2)]);if(_0x5623ac['target'][_0x377c53(0x20c)])_0x582058['push'](_0x377c53(0x1e4)+_0x5623ac[_0x377c53(0x243)][_0x377c53(0x20c)]);if(_0x5623ac['target'][_0x377c53(0x234)])_0x582058['push'](_0x377c53(0x211)+_0x5623ac[_0x377c53(0x243)][_0x377c53(0x234)]);if(_0x5623ac[_0x377c53(0x243)]['scriptName'])_0x582058[_0x377c53(0x22b)](_0x377c53(0x23c)+_0x5623ac[_0x377c53(0x243)][_0x377c53(0x1fe)]);if(_0x5623ac[_0x377c53(0x1fc)][_0x377c53(0x229)]>0x0){_0x582058[_0x377c53(0x22b)]('','\x20\x20MAP\x20TO');for(const _0x3c0d66 of _0x5623ac[_0x377c53(0x1fc)]){_0x582058[_0x377c53(0x22b)](_0x377c53(0x201)+(_0x3c0d66[_0x377c53(0x222)]||_0x377c53(0x1fa))+'\x20->\x20'+_0x3c0d66['target']+(_0x3c0d66[_0x377c53(0x213)]?'.'+_0x3c0d66[_0x377c53(0x213)]:''));}}return _0x582058[_0x377c53(0x1f6)]('\x0a');}function targetPreview(_0xfcb16){const _0x2ab5fc=a62_0xaf6c;return{'kind':_0xfcb16[_0x2ab5fc(0x205)],'command':_0xfcb16[_0x2ab5fc(0x22d)],'appRef':_0xfcb16[_0x2ab5fc(0x1e5)],'datasetCode':_0xfcb16[_0x2ab5fc(0x1f2)],'datatable':_0xfcb16['datatable'],'sqlCode':_0xfcb16[_0x2ab5fc(0x234)],'bffCode':_0xfcb16[_0x2ab5fc(0x1e0)],'bffId':_0xfcb16[_0x2ab5fc(0x233)],'functionName':_0xfcb16[_0x2ab5fc(0x1fe)]};}function normalizeScalarParams(_0x2378fb){const _0x4fff1e=a62_0xaf6c;return Object[_0x4fff1e(0x215)](Object[_0x4fff1e(0x204)](_0x2378fb)[_0x4fff1e(0x240)](([,_0x5ed76e])=>typeof _0x5ed76e==='string'||typeof _0x5ed76e==='number'));}function hasText(_0x570959){const _0x524f01=a62_0xaf6c;return typeof _0x570959===_0x524f01(0x207)&&_0x570959['trim']()[_0x524f01(0x229)]>0x0;}function isPrimitiveFlagDefault(_0x9a801e){const _0x561704=a62_0xaf6c;return _0x9a801e===undefined||typeof _0x9a801e===_0x561704(0x207)||typeof _0x9a801e===_0x561704(0x223)||typeof _0x9a801e===_0x561704(0x1e7);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xaf0532,_0x52858f){const _0x1c8536=a63_0x228f,_0x2ca007=_0xaf0532();while(!![]){try{const _0x257c27=parseInt(_0x1c8536(0xd8))/0x1*(parseInt(_0x1c8536(0xc6))/0x2)+parseInt(_0x1c8536(0xcd))/0x3+-parseInt(_0x1c8536(0xca))/0x4*(-parseInt(_0x1c8536(0xc1))/0x5)+-parseInt(_0x1c8536(0xce))/0x6+parseInt(_0x1c8536(0xd7))/0x7+-parseInt(_0x1c8536(0xd1))/0x8*(parseInt(_0x1c8536(0xc4))/0x9)+-parseInt(_0x1c8536(0xd4))/0xa;if(_0x257c27===_0x52858f)break;else _0x2ca007['push'](_0x2ca007['shift']());}catch(_0x3181e9){_0x2ca007['push'](_0x2ca007['shift']());}}}(a63_0x4e86,0x9ccfd));export function adaptServiceTreeManifestForLegacyFramework(_0x538687){const _0x3da73a=a63_0x228f,_0xb753f4=cloneJsonValue(_0x538687),_0x515b38=[];if(!isObjectRecord(_0xb753f4))return{'manifest':_0xb753f4,'errors':_0x515b38};return Array[_0x3da73a(0xcc)](_0xb753f4[_0x3da73a(0xcf)])&&_0xb753f4[_0x3da73a(0xcf)][_0x3da73a(0xc5)]((_0x37a86c,_0x5388d6)=>{const _0x479bf7=_0x3da73a;if(!isObjectRecord(_0x37a86c))return;adaptBffTarget(_0x37a86c[_0x479bf7(0xd9)],'$.commands['+_0x5388d6+_0x479bf7(0xdb),_0x515b38);}),adaptResources(_0xb753f4[_0x3da73a(0xd5)],'$.resources',_0x515b38),{'manifest':_0xb753f4,'errors':_0x515b38};}export function toPublicServiceTreeTarget(_0x233f22){const _0x51fee5=a63_0x228f,{scriptName:_0xe80d11,..._0x1ad7d2}=_0x233f22;return typeof _0xe80d11===_0x51fee5(0xcb)&&_0xe80d11[_0x51fee5(0xda)]()&&(_0x1ad7d2[_0x51fee5(0xc7)]=_0xe80d11),_0x1ad7d2;}function a63_0x228f(_0x2fe519,_0x11ad55){_0x2fe519=_0x2fe519-0xc1;const _0x4e86cb=a63_0x4e86();let _0x228f44=_0x4e86cb[_0x2fe519];return _0x228f44;}export function toPublicNormalizedServiceTree(_0x4b0f43){const _0x431c4e=a63_0x228f;return{..._0x4b0f43,'commands':_0x4b0f43['commands'][_0x431c4e(0xc8)](_0x1168c6=>({..._0x1168c6,'target':toPublicServiceTreeTarget(_0x1168c6[_0x431c4e(0xd9)])}))};}function adaptResources(_0x5c0c0e,_0x38c0b6,_0x595bb6){const _0x3dc6cf=a63_0x228f;if(!isObjectRecord(_0x5c0c0e))return;for(const [_0x35b971,_0x5a5a32]of Object[_0x3dc6cf(0xe0)](_0x5c0c0e)){if(!isObjectRecord(_0x5a5a32))continue;const _0x2ce236=_0x38c0b6+'.'+_0x35b971;if(isObjectRecord(_0x5a5a32[_0x3dc6cf(0xd0)]))for(const [_0x51f57c,_0x3199de]of Object['entries'](_0x5a5a32['actions'])){if(!isObjectRecord(_0x3199de))continue;const _0x1d98ec=_0x2ce236+'.actions.'+_0x51f57c,_0x2f9c1b=isObjectRecord(_0x3199de[_0x3dc6cf(0xd9)])&&_0x3199de[_0x3dc6cf(0xd9)][_0x3dc6cf(0xdd)]===_0x3dc6cf(0xdc);adaptBffTarget(_0x3199de[_0x3dc6cf(0xd9)],_0x1d98ec+'.target',_0x595bb6),(_0x2f9c1b||isBffAction(_0x3199de))&&adaptFunctionNameField(_0x3199de,_0x1d98ec,_0x595bb6);}adaptResources(_0x5a5a32['resources'],_0x2ce236+'.resources',_0x595bb6);}}function a63_0x4e86(){const _0x5e1035=['bff','kind','.functionName','.scriptName','entries','scriptName','143690kxfjlV','push','call','9fbotiA','forEach','50HCpAzf','functionName','map','bff.exec','24ZZKnAp','string','isArray','3848004jOOnYY','6077064fKUKcw','commands','actions','6682568aNNhQZ','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','hasOwnProperty','2407400GvTowo','resources','prototype','7942445IXtKLb','5659ffQynC','target','trim','].target'];a63_0x4e86=function(){return _0x5e1035;};return a63_0x4e86();}function adaptBffTarget(_0x350565,_0x41277f,_0x380c41){const _0x56f9c5=a63_0x228f;if(!isObjectRecord(_0x350565)||_0x350565[_0x56f9c5(0xdd)]!==_0x56f9c5(0xdc))return;adaptFunctionNameField(_0x350565,_0x41277f,_0x380c41);}function adaptFunctionNameField(_0x58f5c1,_0x564e32,_0x3d2b1c){const _0x500dba=a63_0x228f;Object['prototype'][_0x500dba(0xd3)]['call'](_0x58f5c1,_0x500dba(0xe1))&&_0x3d2b1c[_0x500dba(0xc2)]({'level':'error','path':_0x564e32+_0x500dba(0xdf),'message':_0x500dba(0xd2)});if(Object[_0x500dba(0xd6)][_0x500dba(0xd3)][_0x500dba(0xc3)](_0x58f5c1,_0x500dba(0xc7))){if(typeof _0x58f5c1[_0x500dba(0xc7)]!=='string'||!_0x58f5c1[_0x500dba(0xc7)][_0x500dba(0xda)]()){_0x3d2b1c[_0x500dba(0xc2)]({'level':'error','path':_0x564e32+_0x500dba(0xde),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x58f5c1[_0x500dba(0xc7)];return;}_0x58f5c1['scriptName']=_0x58f5c1[_0x500dba(0xc7)],delete _0x58f5c1[_0x500dba(0xc7)];}}function isBffAction(_0x2455ca){const _0x3ab55b=a63_0x228f;return _0x2455ca['kind']===_0x3ab55b(0xdc)||_0x2455ca['action']===_0x3ab55b(0xc9)||_0x2455ca['target']==='bff.exec';}function cloneJsonValue(_0x193347){const _0x194e93=a63_0x228f;if(Array['isArray'](_0x193347))return _0x193347[_0x194e93(0xc8)](_0x43b0d2=>cloneJsonValue(_0x43b0d2));if(isObjectRecord(_0x193347))return Object['fromEntries'](Object[_0x194e93(0xe0)](_0x193347)['map'](([_0x8e329,_0x58d2cb])=>[_0x8e329,cloneJsonValue(_0x58d2cb)]));return _0x193347;}function isObjectRecord(_0x40f41e){const _0x335f54=a63_0x228f;return Boolean(_0x40f41e)&&typeof _0x40f41e==='object'&&!Array[_0x335f54(0xcc)](_0x40f41e);}
|
|
@@ -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_0x7b78bc=a64_0x4af1;(function(_0xe15894,_0x28f218){const _0x292d82=a64_0x4af1,_0x3faddf=_0xe15894();while(!![]){try{const _0x1e7b79=-parseInt(_0x292d82(0x183))/0x1+parseInt(_0x292d82(0x166))/0x2+-parseInt(_0x292d82(0x171))/0x3*(-parseInt(_0x292d82(0x14c))/0x4)+parseInt(_0x292d82(0x144))/0x5*(-parseInt(_0x292d82(0x177))/0x6)+parseInt(_0x292d82(0x155))/0x7+-parseInt(_0x292d82(0x15a))/0x8*(-parseInt(_0x292d82(0x16c))/0x9)+-parseInt(_0x292d82(0x180))/0xa;if(_0x1e7b79===_0x28f218)break;else _0x3faddf['push'](_0x3faddf['shift']());}catch(_0x59c9b9){_0x3faddf['push'](_0x3faddf['shift']());}}}(a64_0xceb5,0x7b679));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a64_0x4af1(_0x24d0de,_0x46b69f){_0x24d0de=_0x24d0de-0x143;const _0xceb59a=a64_0xceb5();let _0x4af1f1=_0xceb59a[_0x24d0de];return _0x4af1f1;}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a64_0x7b78bc(0x165),'type':a64_0x7b78bc(0x162),'required':!![],'description':a64_0x7b78bc(0x149)},SERVICE_FLAG={'name':a64_0x7b78bc(0x18a),'type':a64_0x7b78bc(0x162),'required':!![],'description':a64_0x7b78bc(0x17a),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x7b78bc(0x188)}};function summarizeService(_0x21895f){const _0x49f408=a64_0x7b78bc;return{'serviceCode':_0x21895f['serviceCode'],'name':_0x21895f[_0x49f408(0x163)][_0x49f408(0x18a)]['name'],'version':_0x21895f[_0x49f408(0x159)],'importedAt':_0x21895f[_0x49f408(0x154)],'source':_0x21895f['source'],'commandCount':_0x21895f[_0x49f408(0x163)][_0x49f408(0x172)]['length'],'commands':_0x21895f[_0x49f408(0x163)][_0x49f408(0x172)][_0x49f408(0x186)](_0x39581e=>({'path':_0x39581e[_0x49f408(0x18d)],'description':_0x39581e['description'],'risk':_0x39581e['risk'],'target':toPublicServiceTreeTarget(_0x39581e['target']),'flags':_0x39581e['flags'][_0x49f408(0x186)](_0x7bdb2=>({'name':_0x7bdb2[_0x49f408(0x15d)],'cliName':_0x7bdb2[_0x49f408(0x17d)],'type':_0x7bdb2['type'],'required':_0x7bdb2[_0x49f408(0x17e)]===!![]}))}))};}function a64_0xceb5(){const _0x2de6b3=['serviceCode','manifests','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','1564821kCshJj','import','serviceCount','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.','registryPath','231VrJsnU','commands','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Imported\x20','Service\x20manifest\x20validation\x20passed.','updated','6usEjFE','export','Imported','Local\x20service\x20code,\x20for\x20example\x20crm','hash','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','cliName','required','Removed\x20service\x20','7705600VVkRML','read','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','830387VRUfOj','WRITE','Service\x20registry\x20validation\x20passed.','map','entry','lower\x20kebab-case\x20service\x20code','\x20service\x20','service','validate','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','cliPath','registryServiceCode','registry','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.','reduce','Updated','3034580nPHWRA','registryIndex','source','warnings','target','Service\x20Tree\x20manifest\x20file\x20path','errors','\x20service(s).','52092QjEkbQ','Local\x20service\x20not\x20found:\x20','imported','kind','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','write','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','remove','importedAt','5367208ufPvtQ','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','replaced','filePath','version','8gOOVwo','list','entries','name','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','report','manifest','length','string','normalizedManifest','str','file','1539888exDOQD','\x20service(s),\x20updated\x20','Exported\x20service\x20'];a64_0xceb5=function(){return _0x2de6b3;};return a64_0xceb5();}function summarizeLoadedManifest(_0x145ef6){const _0x1428c2=a64_0x7b78bc;return{'service':_0x145ef6[_0x1428c2(0x163)]?.[_0x1428c2(0x18a)],'version':_0x145ef6[_0x1428c2(0x163)]?.[_0x1428c2(0x159)],'commandCount':_0x145ef6[_0x1428c2(0x163)]?.[_0x1428c2(0x172)]['length']??0x0,'commands':_0x145ef6[_0x1428c2(0x163)]?.[_0x1428c2(0x172)]['map'](_0x5a38ae=>({'path':_0x5a38ae['cliPath'],'risk':_0x5a38ae['risk'],'target':toPublicServiceTreeTarget(_0x5a38ae[_0x1428c2(0x148)])}))??[],'registryIndex':_0x145ef6[_0x1428c2(0x145)],'registryServiceCode':_0x145ef6[_0x1428c2(0x18e)],'errors':_0x145ef6[_0x1428c2(0x15f)]['errors'],'warnings':_0x145ef6[_0x1428c2(0x15f)][_0x1428c2(0x147)]};}export const serviceDefinitions=[{'service':a64_0x7b78bc(0x18a),'command':a64_0x7b78bc(0x18b),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a64_0x7b78bc(0x181),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3b6b4c){const _0x29161b=a64_0x7b78bc,_0x11fbdd=loadServiceManifestFromFile(_0x3b6b4c[_0x29161b(0x164)](_0x29161b(0x165)));if(!_0x11fbdd[_0x29161b(0x15f)]['ok'])return{'ok':![],'data':{'file':_0x11fbdd[_0x29161b(0x158)],'hash':_0x11fbdd[_0x29161b(0x17b)],'kind':_0x11fbdd[_0x29161b(0x14f)],'serviceCount':_0x11fbdd[_0x29161b(0x16a)][_0x29161b(0x161)],'services':_0x11fbdd[_0x29161b(0x16a)][_0x29161b(0x186)](summarizeLoadedManifest),'errors':_0x11fbdd[_0x29161b(0x15f)][_0x29161b(0x14a)],'warnings':_0x11fbdd['report'][_0x29161b(0x147)]},'message':formatValidationFailure(_0x11fbdd['report'])};if(_0x11fbdd[_0x29161b(0x14f)]===_0x29161b(0x18f)||_0x11fbdd['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x11fbdd['filePath'],'hash':_0x11fbdd[_0x29161b(0x17b)],'kind':_0x11fbdd['kind'],'serviceCount':_0x11fbdd[_0x29161b(0x16a)]['length'],'commandCount':_0x11fbdd[_0x29161b(0x16a)][_0x29161b(0x191)]((_0x2392c8,_0x913a40)=>_0x2392c8+(_0x913a40[_0x29161b(0x163)]?.[_0x29161b(0x172)][_0x29161b(0x161)]??0x0),0x0),'services':_0x11fbdd[_0x29161b(0x16a)][_0x29161b(0x186)](summarizeLoadedManifest),'warnings':_0x11fbdd[_0x29161b(0x15f)][_0x29161b(0x147)]},'message':_0x29161b(0x185)};return{'ok':!![],'data':{'file':_0x11fbdd[_0x29161b(0x158)],'hash':_0x11fbdd[_0x29161b(0x17b)],'kind':_0x11fbdd[_0x29161b(0x14f)],'service':_0x11fbdd['normalizedManifest']?.[_0x29161b(0x18a)],'version':_0x11fbdd['normalizedManifest']?.[_0x29161b(0x159)],'commandCount':_0x11fbdd[_0x29161b(0x163)]?.[_0x29161b(0x172)][_0x29161b(0x161)]??0x0,'commands':_0x11fbdd[_0x29161b(0x163)]?.['commands']['map'](_0x12fba5=>({'path':_0x12fba5[_0x29161b(0x18d)],'risk':_0x12fba5['risk'],'target':toPublicServiceTreeTarget(_0x12fba5[_0x29161b(0x148)])})),'warnings':_0x11fbdd[_0x29161b(0x15f)][_0x29161b(0x147)]},'message':_0x29161b(0x175)};}},{'service':a64_0x7b78bc(0x18a),'command':a64_0x7b78bc(0x16d),'description':a64_0x7b78bc(0x152),'risk':a64_0x7b78bc(0x151),'confirmationDescription':a64_0x7b78bc(0x16f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x142eb6){const _0xbd521f=a64_0x7b78bc,_0x5e092f=loadServiceManifestFromFile(_0x142eb6[_0xbd521f(0x164)](_0xbd521f(0x165)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x5e092f['filePath'],'hash':_0x5e092f[_0xbd521f(0x17b)],'kind':_0x5e092f[_0xbd521f(0x14f)],'ok':_0x5e092f[_0xbd521f(0x15f)]['ok'],'service':_0x5e092f[_0xbd521f(0x163)]?.[_0xbd521f(0x18a)],'version':_0x5e092f[_0xbd521f(0x163)]?.[_0xbd521f(0x159)],'serviceCount':_0x5e092f['manifests'][_0xbd521f(0x161)],'services':_0x5e092f[_0xbd521f(0x16a)]['map'](_0x5c355c=>({'service':_0x5c355c[_0xbd521f(0x163)]?.[_0xbd521f(0x18a)],'version':_0x5c355c[_0xbd521f(0x163)]?.[_0xbd521f(0x159)],'commandCount':_0x5c355c[_0xbd521f(0x163)]?.[_0xbd521f(0x172)][_0xbd521f(0x161)]??0x0,'errors':_0x5c355c[_0xbd521f(0x15f)][_0xbd521f(0x14a)]})),'errors':_0x5e092f[_0xbd521f(0x15f)][_0xbd521f(0x14a)],'commandCount':_0x5e092f[_0xbd521f(0x163)]?.[_0xbd521f(0x172)][_0xbd521f(0x161)]??0x0},'description':_0xbd521f(0x15e)};},async 'execute'(_0x37f1e4){const _0x1a982b=a64_0x7b78bc,_0x28ff4d=importServiceManifest(_0x37f1e4[_0x1a982b(0x164)](_0x1a982b(0x165)));if(_0x28ff4d[_0x1a982b(0x15c)][_0x1a982b(0x161)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x28ff4d[_0x1a982b(0x170)],'imported':_0x28ff4d[_0x1a982b(0x14e)],'updated':_0x28ff4d['updated'],'serviceCount':_0x28ff4d[_0x1a982b(0x16e)],'services':_0x28ff4d[_0x1a982b(0x15c)][_0x1a982b(0x186)](summarizeService)},'message':_0x1a982b(0x174)+_0x28ff4d[_0x1a982b(0x14e)]+_0x1a982b(0x167)+_0x28ff4d[_0x1a982b(0x176)]+_0x1a982b(0x14b)};return{'ok':!![],'data':{'registryPath':_0x28ff4d['registryPath'],'replaced':_0x28ff4d[_0x1a982b(0x157)],'imported':_0x28ff4d['imported'],'updated':_0x28ff4d[_0x1a982b(0x176)],'serviceCount':_0x28ff4d['serviceCount'],'service':summarizeService(_0x28ff4d[_0x1a982b(0x187)])},'message':(_0x28ff4d[_0x1a982b(0x157)]?_0x1a982b(0x143):_0x1a982b(0x179))+_0x1a982b(0x189)+_0x28ff4d[_0x1a982b(0x187)]['serviceCode']+'.'};}},{'service':a64_0x7b78bc(0x18a),'command':a64_0x7b78bc(0x178),'description':a64_0x7b78bc(0x150),'risk':'write','confirmationDescription':a64_0x7b78bc(0x190),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x40fe50){const _0x5c7ab2=a64_0x7b78bc,_0x156a95=getLocalServiceEntry(_0x40fe50['str'](_0x5c7ab2(0x18a)));return{'method':_0x5c7ab2(0x184),'url':_0x40fe50[_0x5c7ab2(0x164)](_0x5c7ab2(0x165)),'body':{'service':_0x40fe50[_0x5c7ab2(0x164)](_0x5c7ab2(0x18a)),'found':Boolean(_0x156a95),'version':_0x156a95?.[_0x5c7ab2(0x159)],'source':_0x156a95?.['source']},'description':_0x5c7ab2(0x156)};},async 'execute'(_0x52c6d9){const _0x41ac7d=a64_0x7b78bc,_0x13d1b5=exportServiceManifest(_0x52c6d9[_0x41ac7d(0x164)]('service'),_0x52c6d9[_0x41ac7d(0x164)](_0x41ac7d(0x165)));return{'ok':!![],'data':{'registryPath':_0x13d1b5[_0x41ac7d(0x170)],'file':_0x13d1b5[_0x41ac7d(0x158)],'service':summarizeService(_0x13d1b5[_0x41ac7d(0x187)])},'message':_0x41ac7d(0x168)+_0x13d1b5[_0x41ac7d(0x187)][_0x41ac7d(0x169)]+'.'};}},{'service':'service','command':a64_0x7b78bc(0x15b),'description':a64_0x7b78bc(0x18c),'risk':a64_0x7b78bc(0x181),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1c7bdc=a64_0x7b78bc,_0x1d8172=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1d8172[_0x1c7bdc(0x161)],'services':_0x1d8172['map'](summarizeService)}};}},{'service':'service','command':a64_0x7b78bc(0x153),'description':a64_0x7b78bc(0x16b),'risk':a64_0x7b78bc(0x151),'confirmationDescription':a64_0x7b78bc(0x182),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1052f8){const _0x45a42f=a64_0x7b78bc,_0xe9427=getLocalServiceEntry(_0x1052f8[_0x45a42f(0x164)](_0x45a42f(0x18a)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x1052f8[_0x45a42f(0x164)](_0x45a42f(0x18a)),'found':Boolean(_0xe9427),'version':_0xe9427?.['version'],'source':_0xe9427?.[_0x45a42f(0x146)]},'description':_0x45a42f(0x17c)};},async 'execute'(_0x161f2c){const _0x55c912=a64_0x7b78bc,_0x165f04=removeServiceManifest(_0x161f2c[_0x55c912(0x164)](_0x55c912(0x18a)));return{'ok':!![],'data':{'registryPath':_0x165f04[_0x55c912(0x170)],'serviceCount':_0x165f04[_0x55c912(0x16e)],'service':summarizeService(_0x165f04['entry'])},'message':_0x55c912(0x17f)+_0x165f04[_0x55c912(0x187)][_0x55c912(0x169)]+'.'};}},{'service':a64_0x7b78bc(0x18a),'command':'detail','description':a64_0x7b78bc(0x173),'risk':a64_0x7b78bc(0x181),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x23b592){const _0x258218=a64_0x7b78bc,_0x445410=getLocalServiceEntry(_0x23b592[_0x258218(0x164)](_0x258218(0x18a)));if(!_0x445410)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x23b592[_0x258218(0x164)](_0x258218(0x18a))},'message':_0x258218(0x14d)+_0x23b592[_0x258218(0x164)](_0x258218(0x18a))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x445410),'manifest':_0x445410[_0x258218(0x160)],'normalizedManifest':toPublicNormalizedServiceTree(_0x445410[_0x258218(0x163)])}};}}];
|
|
@@ -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(_0x3032ad,_0x44344d){const _0x28be40=a65_0x4b70,_0x52edb3=_0x3032ad();while(!![]){try{const _0x4f6456=-parseInt(_0x28be40(0x181))/0x1+parseInt(_0x28be40(0x164))/0x2*(-parseInt(_0x28be40(0x1ab))/0x3)+parseInt(_0x28be40(0x1af))/0x4+parseInt(_0x28be40(0x1a2))/0x5*(-parseInt(_0x28be40(0x16d))/0x6)+parseInt(_0x28be40(0x189))/0x7+parseInt(_0x28be40(0x1a3))/0x8*(parseInt(_0x28be40(0x1a0))/0x9)+-parseInt(_0x28be40(0x184))/0xa*(parseInt(_0x28be40(0x1b4))/0xb);if(_0x4f6456===_0x44344d)break;else _0x52edb3['push'](_0x52edb3['shift']());}catch(_0x484bb4){_0x52edb3['push'](_0x52edb3['shift']());}}}(a65_0x24cb,0x54ebb));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(_0x382d32={}){const _0x3afce7=a65_0x4b70;return resolve(_0x382d32[_0x3afce7(0x1b6)]??homedir(),PRODUCT_CONFIG[_0x3afce7(0x19a)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x55c516={}){const _0x1c4bb8=a65_0x4b70,_0x538935=getServiceRegistryPath(_0x55c516);if(!existsSync(_0x538935))return emptyServiceRegistry();try{const _0x420a19=readFileSync(_0x538935,_0x1c4bb8(0x172));if(!_0x420a19[_0x1c4bb8(0x16b)]())return emptyServiceRegistry();const _0x3f3031=JSON['parse'](_0x420a19);if(_0x3f3031['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x1c4bb8(0x194)](_0x1c4bb8(0x19c)+String(_0x3f3031[_0x1c4bb8(0x193)]),_0x1c4bb8(0x192)+_0x538935+'.');if(!Array[_0x1c4bb8(0x198)](_0x3f3031[_0x1c4bb8(0x18d)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3f3031[_0x1c4bb8(0x191)],'services':_0x3f3031[_0x1c4bb8(0x18d)]};}catch(_0x25489b){if(_0x25489b instanceof Error&&_0x25489b[_0x1c4bb8(0x166)]==='CliError')throw _0x25489b;throw CliErrors['validation'](_0x1c4bb8(0x183)+_0x538935,_0x1c4bb8(0x17d));}}export function writeServiceRegistry(_0x419ac0,_0x564371={}){const _0x1e3132=a65_0x4b70,_0x966e49=getServiceRegistryPath(_0x564371),_0xb1ca0e=dirname(_0x966e49);!existsSync(_0xb1ca0e)&&mkdirSync(_0xb1ca0e,{'recursive':!![]});const _0x57dd7d=_0x966e49+_0x1e3132(0x17b);try{writeFileSync(_0x57dd7d,JSON[_0x1e3132(0x171)](_0x419ac0,null,0x2)+'\x0a',{'encoding':_0x1e3132(0x172),'mode':0x180}),renameSync(_0x57dd7d,_0x966e49);}catch(_0x358e79){try{unlinkSync(_0x57dd7d);}catch{}if(_0x358e79?.[_0x1e3132(0x173)]==='ENOENT')throw CliErrors[_0x1e3132(0x194)](_0x1e3132(0x175)+_0x966e49);throw _0x358e79;}return _0x966e49;}export function loadServiceManifestFromFile(_0x43be05){const _0x18a45c=a65_0x4b70,_0x593606=resolve(_0x43be05);if(!existsSync(_0x593606))throw CliErrors[_0x18a45c(0x194)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x43be05);let _0xfbc58a;const _0xc18b4f=readFileSync(_0x593606,'utf8');try{_0xfbc58a=JSON[_0x18a45c(0x179)](_0xc18b4f);}catch{throw CliErrors[_0x18a45c(0x194)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x43be05,_0x18a45c(0x17c));}const _0x1799c1=sha256(_0xc18b4f),_0x58984c=extractLoadedServiceManifests(_0xfbc58a,_0x1799c1),_0x3fe666=aggregateValidationReports(_0x58984c),_0x165fb0=_0x58984c[0x0];return{'filePath':_0x593606,'hash':_0x1799c1,'kind':isServiceRegistryLike(_0xfbc58a)?'registry':_0x18a45c(0x1b1),'manifest':_0x165fb0?.[_0x18a45c(0x1b1)]??_0xfbc58a,'report':_0x3fe666,'normalizedManifest':_0x58984c[_0x18a45c(0x174)]===0x1?_0x165fb0?.[_0x18a45c(0x182)]:undefined,'manifests':_0x58984c};}export function importServiceManifest(_0xba6604,_0x5c81da={}){const _0x560032=a65_0x4b70,_0x529c60=loadServiceManifestFromFile(_0xba6604);if(!_0x529c60[_0x560032(0x1b5)]['ok'])throw CliErrors[_0x560032(0x194)](formatValidationFailure(_0x529c60['report']),_0x560032(0x19e));if(_0x529c60[_0x560032(0x178)]['length']===0x0)throw CliErrors[_0x560032(0x194)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x560032(0x180));const _0x1f5839=readServiceRegistry(_0x5c81da),_0x5c088d=(_0x5c81da['now']??(()=>new Date()))()[_0x560032(0x167)](),_0x2480b9=[];let _0x2f511e=0x0,_0x229548=0x0;for(const _0x9ec381 of _0x529c60[_0x560032(0x178)]){if(!_0x9ec381[_0x560032(0x182)])continue;const _0x40e92d=_0x9ec381[_0x560032(0x182)]['service'][_0x560032(0x173)],_0x2ef2b7={'serviceCode':_0x40e92d,'version':_0x9ec381[_0x560032(0x182)][_0x560032(0x19d)],'importedAt':_0x5c088d,'source':{'type':_0x560032(0x1b2),'path':_0x529c60[_0x560032(0x1a7)],'hash':_0x9ec381[_0x560032(0x190)]},'manifest':_0x9ec381['manifest'],'normalizedManifest':_0x9ec381[_0x560032(0x182)]},_0x16cb80=_0x1f5839[_0x560032(0x18d)][_0x560032(0x163)](_0x1d8b2c=>_0x1d8b2c[_0x560032(0x16e)]===_0x40e92d);_0x16cb80>=0x0?(_0x1f5839[_0x560032(0x18d)][_0x16cb80]=_0x2ef2b7,_0x229548++):(_0x1f5839[_0x560032(0x18d)][_0x560032(0x16f)](_0x2ef2b7),_0x2f511e++),_0x2480b9[_0x560032(0x16f)](_0x2ef2b7);}_0x1f5839[_0x560032(0x18d)][_0x560032(0x18b)]((_0x4fac7a,_0x131993)=>_0x4fac7a[_0x560032(0x16e)]['localeCompare'](_0x131993[_0x560032(0x16e)])),_0x1f5839[_0x560032(0x191)]=_0x5c088d;const _0x222eec=writeServiceRegistry(_0x1f5839,_0x5c81da);return{'registryPath':_0x222eec,'entry':_0x2480b9[0x0],'replaced':_0x2480b9[_0x560032(0x174)]===0x1?_0x229548===0x1:_0x229548>0x0,'entries':_0x2480b9,'imported':_0x2f511e,'updated':_0x229548,'serviceCount':_0x1f5839['services'][_0x560032(0x174)]};}export function exportServiceManifest(_0x307da7,_0x3d3f15,_0x295622={}){const _0x5ddc8f=a65_0x4b70,_0x5b0149=getServiceRegistryPath(_0x295622),_0x2be5f8=getLocalServiceEntry(_0x307da7,_0x295622);if(!_0x2be5f8)throw CliErrors[_0x5ddc8f(0x194)](_0x5ddc8f(0x187)+_0x307da7,_0x5ddc8f(0x165));const _0x2c3d4c=resolve(_0x3d3f15),_0x25cdbd=dirname(_0x2c3d4c);return!existsSync(_0x25cdbd)&&mkdirSync(_0x25cdbd,{'recursive':!![]}),writeFileSync(_0x2c3d4c,JSON[_0x5ddc8f(0x171)](_0x2be5f8[_0x5ddc8f(0x1b1)],null,0x2)+'\x0a',{'encoding':_0x5ddc8f(0x172),'mode':0x180}),{'registryPath':_0x5b0149,'filePath':_0x2c3d4c,'entry':_0x2be5f8};}export function removeServiceManifest(_0x232139,_0x2e56ee={}){const _0x44126b=a65_0x4b70,_0x1ac6dc=readServiceRegistry(_0x2e56ee),_0x103986=_0x232139[_0x44126b(0x16b)](),_0x5be878=_0x1ac6dc[_0x44126b(0x18d)]['findIndex'](_0x1517ca=>_0x1517ca[_0x44126b(0x16e)]===_0x103986);if(_0x5be878<0x0)throw CliErrors[_0x44126b(0x194)](_0x44126b(0x187)+_0x103986,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x189042]=_0x1ac6dc[_0x44126b(0x18d)][_0x44126b(0x1a5)](_0x5be878,0x1),_0xa9e6f5=(_0x2e56ee[_0x44126b(0x170)]??(()=>new Date()))()[_0x44126b(0x167)]();_0x1ac6dc[_0x44126b(0x191)]=_0xa9e6f5;const _0x363336=writeServiceRegistry(_0x1ac6dc,_0x2e56ee);return{'registryPath':_0x363336,'entry':_0x189042,'serviceCount':_0x1ac6dc[_0x44126b(0x18d)][_0x44126b(0x174)]};}export function listLocalServices(_0x22123f={}){const _0x1add56=a65_0x4b70;return readServiceRegistry(_0x22123f)[_0x1add56(0x18d)];}export function getLocalServiceEntry(_0x24d416,_0x485f49={}){const _0x2de0fb=a65_0x4b70;return readServiceRegistry(_0x485f49)[_0x2de0fb(0x18d)][_0x2de0fb(0x18f)](_0x76bc9c=>_0x76bc9c['serviceCode']===_0x24d416['trim']());}export function listLocalServiceTrees(_0x223821={}){const _0x48512d=a65_0x4b70;return readServiceRegistry(_0x223821)[_0x48512d(0x18d)][_0x48512d(0x16a)](_0x54dd3b=>_0x54dd3b[_0x48512d(0x182)]);}export function inspectServiceRegistry(_0x5e660e={}){const _0x35c912=a65_0x4b70,_0x2b1c24=getServiceRegistryPath(_0x5e660e);if(!existsSync(_0x2b1c24))return emptyServiceRegistryInspection(_0x2b1c24,_0x35c912(0x168),![]);try{const _0x111cf9=readFileSync(_0x2b1c24,'utf8');if(!_0x111cf9[_0x35c912(0x16b)]())return emptyServiceRegistryInspection(_0x2b1c24,_0x35c912(0x162),!![]);const _0x1aa5ca=JSON['parse'](_0x111cf9);if(_0x1aa5ca[_0x35c912(0x193)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x2b1c24,_0x35c912(0x19b),!![]),'schemaVersion':_0x1aa5ca[_0x35c912(0x193)],'message':_0x35c912(0x17f)+String(_0x1aa5ca[_0x35c912(0x193)])};if(!Array[_0x35c912(0x198)](_0x1aa5ca[_0x35c912(0x18d)]))return{...emptyServiceRegistryInspection(_0x2b1c24,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1aa5ca['updatedAt'],'message':_0x35c912(0x186)};const _0x2687ed=_0x1aa5ca['services'][_0x35c912(0x16a)](summarizeLocalServiceEntry);return{'registryPath':_0x2b1c24,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1aa5ca[_0x35c912(0x191)],'serviceCount':_0x2687ed[_0x35c912(0x174)],'commandCount':_0x2687ed[_0x35c912(0x1ad)]((_0x597644,_0xb4e8e5)=>_0x597644+_0xb4e8e5['commandCount'],0x0),'services':_0x2687ed};}catch(_0x4ac1f0){return{...emptyServiceRegistryInspection(_0x2b1c24,_0x35c912(0x19b),!![]),'message':_0x4ac1f0 instanceof Error?_0x4ac1f0[_0x35c912(0x1a9)]:String(_0x4ac1f0)};}}export function formatValidationFailure(_0x37051e){const _0x4fa86f=a65_0x4b70,_0x1d8f99=_0x37051e['errors']['map'](_0x17a545=>_0x17a545[_0x4fa86f(0x197)]+':\x20'+_0x17a545['message']);return _0x4fa86f(0x19f)+_0x1d8f99[_0x4fa86f(0x1a1)]('\x0a');}function extractLoadedServiceManifests(_0x316523,_0x54d8b9){const _0x421fb8=a65_0x4b70;if(!isServiceRegistryLike(_0x316523)){const _0x5c7ee7=_0x316523,{manifest:_0x3e405c,errors:_0x3e759e}=adaptServiceTreeManifestForLegacyFramework(_0x5c7ee7),_0xccded6=validateServiceTreeManifest(_0x3e405c),_0x465c66=mergeValidationErrors(_0xccded6,_0x3e759e);return[{'manifest':_0x5c7ee7,'report':_0x465c66,'normalizedManifest':_0x465c66['ok']?normalizeServiceTreeManifest(_0x3e405c):undefined,'sourceHash':_0x54d8b9}];}return _0x316523[_0x421fb8(0x18d)][_0x421fb8(0x16a)]((_0x3b146f,_0x52051d)=>{const _0x21920c=_0x421fb8,_0x34f1f0=isObjectRecord(_0x3b146f)?_0x3b146f['manifest']:undefined,{manifest:_0x29be3c,errors:_0x2bfc1f}=adaptServiceTreeManifestForLegacyFramework(_0x34f1f0),_0x573e58=validateServiceTreeManifest(_0x29be3c),_0x319820=mergeValidationErrors(_0x573e58,_0x2bfc1f),_0x1433e5=isObjectRecord(_0x3b146f)&&typeof _0x3b146f['serviceCode']===_0x21920c(0x188)?_0x3b146f['serviceCode']:undefined;return{'manifest':_0x34f1f0,'report':_0x319820,'normalizedManifest':_0x319820['ok']?normalizeServiceTreeManifest(_0x29be3c):undefined,'sourceHash':sha256(JSON[_0x21920c(0x171)](_0x34f1f0,null,0x2)+'\x0a'),'registryIndex':_0x52051d,'registryServiceCode':_0x1433e5};});}function mergeValidationErrors(_0x45f1a3,_0x44bdac){const _0x16d682=a65_0x4b70,_0x5afad8=_0x45f1a3[_0x16d682(0x196)]['map'](_0x1f50a0=>_0x1f50a0[_0x16d682(0x1a9)]===_0x16d682(0x177)?{..._0x1f50a0,'message':_0x16d682(0x195)}:_0x1f50a0),_0x192efb=[..._0x44bdac,..._0x5afad8];return{'ok':_0x192efb[_0x16d682(0x174)]===0x0,'errors':_0x192efb,'warnings':_0x45f1a3['warnings']};}function aggregateValidationReports(_0x15701b){const _0x1c029e=a65_0x4b70,_0x33cde0=_0x15701b['flatMap'](_0x57f56e=>_0x57f56e['registryIndex']===undefined?_0x57f56e[_0x1c029e(0x1b5)][_0x1c029e(0x196)]:_0x57f56e[_0x1c029e(0x1b5)][_0x1c029e(0x196)][_0x1c029e(0x16a)](_0x2e90e7=>({..._0x2e90e7,'path':prefixRegistryIssuePath(_0x57f56e['registryIndex'],_0x2e90e7['path'])}))),_0x272513=_0x15701b[_0x1c029e(0x1a6)](_0x7cb803=>_0x7cb803[_0x1c029e(0x18c)]===undefined?_0x7cb803[_0x1c029e(0x1b5)]['warnings']:_0x7cb803[_0x1c029e(0x1b5)][_0x1c029e(0x169)][_0x1c029e(0x16a)](_0x397e20=>({..._0x397e20,'path':prefixRegistryIssuePath(_0x7cb803['registryIndex'],_0x397e20[_0x1c029e(0x197)])})));return{'ok':_0x33cde0['length']===0x0,'errors':_0x33cde0,'warnings':_0x272513};}function prefixRegistryIssuePath(_0x20ff78,_0x529980){const _0x548958=a65_0x4b70;if(_0x529980==='$')return _0x548958(0x176)+_0x20ff78+_0x548958(0x1a4);if(_0x529980['startsWith']('$.'))return _0x548958(0x176)+_0x20ff78+'].manifest'+_0x529980['slice'](0x1);if(_0x529980[_0x548958(0x1ae)]('$['))return _0x548958(0x176)+_0x20ff78+_0x548958(0x1a4)+_0x529980[_0x548958(0x1ac)](0x1);return _0x548958(0x176)+_0x20ff78+'].manifest.'+_0x529980;}function isServiceRegistryLike(_0x120119){const _0x3d27a6=a65_0x4b70;return isObjectRecord(_0x120119)&&_0x120119['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x3d27a6(0x198)](_0x120119[_0x3d27a6(0x18d)]);}function isObjectRecord(_0x17a877){const _0x2c63f4=a65_0x4b70;return Boolean(_0x17a877)&&typeof _0x17a877===_0x2c63f4(0x199)&&!Array[_0x2c63f4(0x198)](_0x17a877);}function emptyServiceRegistryInspection(_0x1c0ddc,_0x329148,_0x550317){return{'registryPath':_0x1c0ddc,'exists':_0x550317,'status':_0x329148,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x175cb7){const _0x12454e=a65_0x4b70,_0x41a115=_0x175cb7['normalizedManifest'],_0xa42808=_0x41a115[_0x12454e(0x18e)][_0x12454e(0x16a)](_0x283f42=>({'path':_0x283f42[_0x12454e(0x18a)],'description':_0x283f42[_0x12454e(0x16c)],'risk':_0x283f42[_0x12454e(0x1b0)],'targetKind':_0x283f42[_0x12454e(0x17a)]['kind'],'targetCommand':_0x283f42[_0x12454e(0x17a)][_0x12454e(0x17e)]}));return{'serviceCode':_0x175cb7[_0x12454e(0x16e)],'name':_0x41a115[_0x12454e(0x1aa)][_0x12454e(0x166)],'description':_0x41a115[_0x12454e(0x1aa)]['description'],'version':_0x175cb7[_0x12454e(0x19d)],'importedAt':_0x175cb7['importedAt'],'source':_0x175cb7[_0x12454e(0x1a8)],'commandCount':_0xa42808[_0x12454e(0x174)],'commands':_0xa42808};}function a65_0x4b70(_0x22da83,_0x37c5f0){_0x22da83=_0x22da83-0x162;const _0x24cb68=a65_0x24cb();let _0x4b70f8=_0x24cb68[_0x22da83];return _0x4b70f8;}function sha256(_0xeea5f7){const _0x5b9daf=a65_0x4b70;return createHash(_0x5b9daf(0x1b3))[_0x5b9daf(0x185)](_0xeea5f7)['digest']('hex');}function a65_0x24cb(){const _0x5858eb=['parse','target','.tmp','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','command','Unsupported\x20schemaVersion:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','139019zPPjBi','normalizedManifest','Invalid\x20service\x20registry\x20JSON:\x20','10DNrsKG','update','services\x20must\x20be\x20an\x20array','Local\x20service\x20not\x20found:\x20','string','4539157TbSSWG','cliPath','sort','registryIndex','services','commands','find','sourceHash','updatedAt','Remove\x20or\x20migrate\x20','schemaVersion','validation','bff\x20target\x20requires\x20functionName.','errors','path','isArray','object','homeDirName','invalid','Unsupported\x20service\x20registry\x20schemaVersion:\x20','version','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','18ESNzWs','join','174565CHuFwr','475784aTtgSg','].manifest','splice','flatMap','filePath','source','message','service','4623OCvclu','slice','reduce','startsWith','2285068kYVTTu','risk','manifest','file','sha256','8183879YIBXqO','report','homeDir','empty','findIndex','4AHjunK','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','name','toISOString','missing','warnings','map','trim','description','18rpcBrq','serviceCode','push','now','stringify','utf8','code','length','Cannot\x20write\x20service\x20registry:\x20','$.services[','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','manifests'];a65_0x24cb=function(){return _0x5858eb;};return a65_0x24cb();}
|