@lovrabet/lovrabet-cli 2.3.4-beta.2 → 2.3.5-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/approval/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/import-excel.d.ts +2 -0
- package/lib/commands/data/import-excel.js +1 -0
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +19 -5
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.d.ts +1 -0
- package/lib/errors.js +1 -1
- package/lib/framework/access-error.d.ts +5 -0
- package/lib/framework/access-error.js +1 -0
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.d.ts +2 -17
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/services/dataset-import/auto-id-runner.d.ts +25 -0
- package/lib/services/dataset-import/auto-id-runner.js +1 -0
- package/lib/services/dataset-import/excel-reader.d.ts +3 -0
- package/lib/services/dataset-import/excel-reader.js +1 -0
- package/lib/services/dataset-import/metadata.d.ts +2 -0
- package/lib/services/dataset-import/metadata.js +1 -0
- package/lib/services/dataset-import/preview.d.ts +4 -0
- package/lib/services/dataset-import/preview.js +1 -0
- package/lib/services/dataset-import/runner.d.ts +63 -0
- package/lib/services/dataset-import/runner.js +1 -0
- package/lib/services/dataset-import/types.d.ts +33 -0
- package/lib/services/dataset-import/types.js +1 -0
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/positive-safe-integer.js +1 -1
- package/lib/utils/redaction.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +8 -3
- package/skills/lovrabet/SKILL.md +10 -5
- package/skills/lovrabet/guides/dataset-and-data-workflow.md +4 -2
- package/skills/lovrabet/guides/role-and-permission-workflow.md +14 -0
- package/skills/lovrabet/guides/sql-and-bff-workflow.md +1 -1
- package/skills/lovrabet/guides/troubleshooting.md +7 -1
- package/skills/lovrabet/references/instant-api-workflow.md +6 -2
- package/skills/lovrabet/references/lovrabet-approval-workflow.md +16 -2
- package/skills/lovrabet/references/lovrabet-bff-workflow.md +9 -0
- package/skills/lovrabet/references/lovrabet-db-table-excel-import.md +113 -0
- package/skills/lovrabet/references/lovrabet-excel-import.md +31 -0
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-personal-bff-workflow.md +2 -0
- package/skills/lovrabet.manifest.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a55_0x39e4bb=a55_0x7511;(function(_0x4cdd62,_0x67bd1a){const _0x405334=a55_0x7511,_0x444fa7=_0x4cdd62();while(!![]){try{const _0x2769ae=-parseInt(_0x405334(0xba))/0x1*(parseInt(_0x405334(0xc1))/0x2)+parseInt(_0x405334(0x90))/0x3*(parseInt(_0x405334(0xcc))/0x4)+-parseInt(_0x405334(0xad))/0x5+parseInt(_0x405334(0xb5))/0x6*(-parseInt(_0x405334(0xc3))/0x7)+-parseInt(_0x405334(0xd8))/0x8+parseInt(_0x405334(0xdd))/0x9*(parseInt(_0x405334(0xc8))/0xa)+-parseInt(_0x405334(0xb0))/0xb*(-parseInt(_0x405334(0xa5))/0xc);if(_0x2769ae===_0x67bd1a)break;else _0x444fa7['push'](_0x444fa7['shift']());}catch(_0xe13ad1){_0x444fa7['push'](_0x444fa7['shift']());}}}(a55_0x593d,0xb4885));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=[a55_0x39e4bb(0xc2),a55_0x39e4bb(0x91),a55_0x39e4bb(0xab),a55_0x39e4bb(0x97)];const BUILTIN_ROLE_TYPES=[a55_0x39e4bb(0xc2),a55_0x39e4bb(0x91),a55_0x39e4bb(0xab)];function a55_0x7511(_0x2b7069,_0x8f6392){_0x2b7069=_0x2b7069-0x90;const _0x593db2=a55_0x593d();let _0x75111f=_0x593db2[_0x2b7069];return _0x75111f;}export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a55_0x39e4bb(0xc6)};export const ROLE_REF_FLAG={'name':a55_0x39e4bb(0xbd),'type':'string','required':!![],'description':a55_0x39e4bb(0xb2)};export const ROLE_CODE_FLAG={'name':'role-code','type':a55_0x39e4bb(0xda),'description':a55_0x39e4bb(0x9c)};export const USER_ID_FLAG={'name':a55_0x39e4bb(0xd7),'type':a55_0x39e4bb(0xda),'required':!![],'description':a55_0x39e4bb(0xa4)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':a55_0x39e4bb(0xa7),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x4fad62){const _0x4c34b2=a55_0x39e4bb;return BUILTIN_ROLE_TYPES[_0x4c34b2(0xd3)](_0x4fad62);}export function assertCustomRuntimeRole(_0x4aeb74,_0x31d085){const _0x4e8787=a55_0x39e4bb;if(_0x4aeb74[_0x4e8787(0x9d)]!==_0x4e8787(0x97))throw CliErrors[_0x4e8787(0xac)](_0x4e8787(0x93)+_0x31d085+_0x4e8787(0x9e)+_0x4aeb74['roleName']+'\x20('+_0x4aeb74['roleType']+').',_0x4e8787(0xde));}function a55_0x593d(){const _0x30b619=['1304IkBlgW','ADMIN','215929MotIFn','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','trim','550BSGFMq','remark','test','totalCount','4IfpoaO','length','push','userCount','roleName','Pass\x20--role\x20<id|name>.','Runtime\x20role\x20id\x20','includes','applyUserList','isSafeInteger',',\x20found\x20','user','2040664Zjgcjy','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','string','Runtime\x20user\x20','userName','33741XiBIeS','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','User\x20','roleCode','\x20is\x20already\x20in\x20runtime\x20role\x20','2379909KdvRKG','USER','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','Cannot\x20','code','\x20is\x20not\x20in\x20runtime\x20role\x20','userList','CUSTOM','userId','find','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','roleType','\x20built-in\x20runtime\x20role\x20','appCode','filter','--role-code\x20must\x20not\x20be\x20blank.','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','str','Runtime\x20numeric\x20userId','20964fsMcPU','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','number','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','Runtime\x20role\x20name\x20\x22','role-code','OWNER','validation','960050KyAldd','--role-code\x20cannot\x20exceed\x2064\x20characters.','Missing\x20runtime\x20role\x20reference.','11297SQOrnT','Runtime\x20role\x20','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','expect-user-count','210CFkceJ','flag','permitCount','map','\x20was\x20not\x20found\x20in\x20app\x20','809ZnuTUF','items','\x22\x20was\x20not\x20found\x20in\x20app\x20','role','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','user-add'];a55_0x593d=function(){return _0x30b619;};return a55_0x593d();}export function projectRuntimeRole(_0x52777f){const _0x2cc28c=a55_0x39e4bb;return{'id':_0x52777f['id'],'roleCode':_0x52777f[_0x2cc28c(0xe0)],'roleName':_0x52777f[_0x2cc28c(0xd0)],'roleType':_0x52777f[_0x2cc28c(0x9d)],'remark':_0x52777f[_0x2cc28c(0xc9)],'userCount':_0x52777f[_0x2cc28c(0xcf)]??0x0,'permitCount':_0x52777f[_0x2cc28c(0xb7)]??0x0,'builtin':isBuiltinRuntimeRole(_0x52777f['roleType'])};}export function readOptionalRuntimeRoleCode(_0x2cd3cc){const _0x106889=a55_0x39e4bb,_0x35bb0c=_0x2cd3cc['flag'](_0x106889(0xaa));if(_0x35bb0c===undefined||_0x35bb0c===null)return undefined;const _0x2d43f6=String(_0x35bb0c)['trim']();if(!_0x2d43f6)throw CliErrors['validation'](_0x106889(0xa1));if(_0x2d43f6[_0x106889(0xcd)]>0x40)throw CliErrors[_0x106889(0xac)](_0x106889(0xae));return _0x2d43f6;}export async function getRuntimeRoleById(_0x448f27,_0x1f228b){const _0x19a28b=a55_0x39e4bb;if(!Number[_0x19a28b(0xd5)](_0x1f228b)||_0x1f228b<=0x0)throw CliErrors[_0x19a28b(0xac)](_0x19a28b(0x9a));const _0x5b9c67=(await listAllRuntimeRoles(_0x448f27))[_0x19a28b(0xa0)](_0x2493ee=>_0x2493ee['id']===_0x1f228b&&(!_0x2493ee['appCode']||_0x2493ee['appCode']===_0x448f27));if(_0x5b9c67[_0x19a28b(0xcd)]!==0x1)throw CliErrors['validation'](_0x19a28b(0xd2)+_0x1f228b+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x448f27+'.',_0x19a28b(0xa2));return _0x5b9c67[0x0];}export async function listAllRuntimeRoles(_0x31c935,_0xa386d2={}){const _0x4f4f32=a55_0x39e4bb,_0x4cd24f=0x64,_0x43f806=[];for(let _0xcf7f5=0x1;;_0xcf7f5+=0x1){const _0x298910=await listRuntimeAppRoles(_0x31c935,{..._0xa386d2[_0x4f4f32(0xd0)]?{'roleName':_0xa386d2[_0x4f4f32(0xd0)]}:{},'currentPage':_0xcf7f5,'pageSize':_0x4cd24f});_0x43f806[_0x4f4f32(0xce)](..._0x298910[_0x4f4f32(0xbb)]);if(_0x298910[_0x4f4f32(0xbb)][_0x4f4f32(0xcd)]<_0x4cd24f||_0x298910['paging']&&_0x43f806[_0x4f4f32(0xcd)]>=_0x298910['paging'][_0x4f4f32(0xcb)])return _0x43f806;}}export async function resolveRuntimeRoleRef(_0x3d5b6d,_0x5252cc){const _0x16dbfa=a55_0x39e4bb,_0x335b6f=_0x5252cc[_0x16dbfa(0xc7)]();if(!_0x335b6f)throw CliErrors[_0x16dbfa(0xac)](_0x16dbfa(0xaf),_0x16dbfa(0xd1));if(/^\d+$/[_0x16dbfa(0xca)](_0x335b6f))return getRuntimeRoleById(_0x3d5b6d,Number(_0x335b6f));const _0x288063=(await listAllRuntimeRoles(_0x3d5b6d))['filter'](_0xe862ab=>_0xe862ab[_0x16dbfa(0xd0)]===_0x335b6f);if(_0x288063['length']===0x0)throw CliErrors[_0x16dbfa(0xac)](_0x16dbfa(0xa9)+_0x335b6f+_0x16dbfa(0xbc)+_0x3d5b6d+'.',_0x16dbfa(0xb3));if(_0x288063[_0x16dbfa(0xcd)]>0x1)throw CliErrors['validation']('Runtime\x20role\x20name\x20\x22'+_0x335b6f+'\x22\x20is\x20ambiguous.','Pass\x20one\x20role\x20ID:\x20'+_0x288063[_0x16dbfa(0xb8)](_0x53b79a=>_0x53b79a['id'])['join'](',\x20')+'.');return _0x288063[0x0];}function parseRuntimeUserId(_0x3962ba){const _0x435eec=a55_0x39e4bb,_0xcff168=_0x3962ba[_0x435eec(0xc7)](),_0x3d9963=normalizePositiveSafeInteger(_0xcff168);if(_0x3d9963===undefined)throw CliErrors[_0x435eec(0xac)](_0x435eec(0xd9),_0x435eec(0x9b));return _0x3d9963;}export async function prepareRuntimeMemberMutation(_0x31f193,_0x770977){const _0x3adea1=a55_0x39e4bb,_0x51f6e9=await resolveRuntimeRoleRef(_0x31f193[_0x3adea1(0x9f)],_0x31f193['str'](_0x3adea1(0xbd)));if(_0x51f6e9['roleType']===_0x3adea1(0xab))throw CliErrors[_0x3adea1(0xac)](_0x3adea1(0xc4),'Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x10bc2a=parseRuntimeUserId(_0x31f193[_0x3adea1(0xa3)](_0x3adea1(0xd7))),_0x2ee59d=(await listRuntimeRoleUsers(_0x31f193['appCode']))['map'](_0x55f387=>({..._0x55f387,'userList':[..._0x55f387['userList']??[]],'applyUserList':[..._0x55f387[_0x3adea1(0xd4)]??[]]})),_0x1a1258=_0x2ee59d[_0x3adea1(0x99)](_0x409887=>_0x409887['id']===_0x51f6e9['id']);if(!_0x1a1258)throw CliErrors[_0x3adea1(0xac)](_0x3adea1(0xb1)+_0x51f6e9['id']+_0x3adea1(0xbf),_0x3adea1(0xa6));const _0x585c14=_0x1a1258[_0x3adea1(0x96)][_0x3adea1(0xb8)](_0x5b9f08=>_0x5b9f08['userId']),_0x2e5376=_0x31f193[_0x3adea1(0xb6)](_0x3adea1(0xb4));if(_0x2e5376!==undefined&&_0x2e5376!==null&&_0x2e5376!==''){const _0x2925aa=_0x31f193['num'](_0x3adea1(0xb4));if(!Number[_0x3adea1(0xd5)](_0x2925aa)||_0x2925aa<0x0)throw CliErrors[_0x3adea1(0xac)](_0x3adea1(0xa8));if(_0x585c14[_0x3adea1(0xcd)]!==_0x2925aa)throw CliErrors[_0x3adea1(0xac)](_0x3adea1(0x92)+_0x2925aa+_0x3adea1(0xd6)+_0x585c14[_0x3adea1(0xcd)]+'.',_0x3adea1(0xc5));}const _0x4e235f=_0x585c14[_0x3adea1(0xd3)](_0x10bc2a),_0x20697b=[];let _0xb4e54a=!![];if(_0x770977===_0x3adea1(0xc0)){const _0x221197=await listRuntimeAppUsers(_0x31f193[_0x3adea1(0x9f)]),_0x3dce7e=_0x221197[_0x3adea1(0xa0)](_0x4ef1d4=>Number(_0x4ef1d4[_0x3adea1(0x94)])===_0x10bc2a);if(_0x3dce7e['length']!==0x1||!_0x3dce7e[0x0][_0x3adea1(0xdc)]?.['trim']())throw CliErrors[_0x3adea1(0xac)](_0x3adea1(0xdb)+_0x10bc2a+_0x3adea1(0xb9)+_0x31f193[_0x3adea1(0x9f)]+'.',_0x3adea1(0xbe));_0x4e235f?(_0xb4e54a=![],_0x20697b['push'](_0x3adea1(0xdf)+_0x10bc2a+_0x3adea1(0xe1)+_0x51f6e9['id']+'.')):_0x1a1258[_0x3adea1(0x96)][_0x3adea1(0xce)]({'userId':_0x10bc2a,'username':_0x3dce7e[0x0][_0x3adea1(0xdc)]});}else!_0x4e235f?(_0xb4e54a=![],_0x20697b[_0x3adea1(0xce)](_0x3adea1(0xdf)+_0x10bc2a+_0x3adea1(0x95)+_0x51f6e9['id']+'.')):_0x1a1258[_0x3adea1(0x96)]=_0x1a1258[_0x3adea1(0x96)][_0x3adea1(0xa0)](_0x4a0002=>_0x4a0002[_0x3adea1(0x98)]!==_0x10bc2a);return{'role':_0x51f6e9,'userId':_0x10bc2a,'roleList':_0x2ee59d,'before':{'userIds':_0x585c14},'after':{'userIds':_0x1a1258[_0x3adea1(0x96)][_0x3adea1(0xb8)](_0x4e7774=>_0x4e7774[_0x3adea1(0x98)])},'shouldWrite':_0xb4e54a,'warnings':_0x20697b};}export function runtimeRoleWriteResult(_0x255293,_0xfff0fa,_0x439924,_0x1d70b1,_0x5437d5,_0xdc13cd=[]){return{'operation':_0x255293,'scope':'runtime','selector':_0xfff0fa,'before':_0x439924,'after':_0x1d70b1,'dryRun':![],'backend':_0x5437d5,'warnings':_0xdc13cd};}
|
|
1
|
+
const a56_0x3dc0a6=a56_0x583e;(function(_0x5a6a40,_0x15ad69){const _0x5bbafa=a56_0x583e,_0x52573e=_0x5a6a40();while(!![]){try{const _0x1b1879=parseInt(_0x5bbafa(0x1f0))/0x1*(-parseInt(_0x5bbafa(0x1f5))/0x2)+-parseInt(_0x5bbafa(0x221))/0x3*(parseInt(_0x5bbafa(0x1e8))/0x4)+-parseInt(_0x5bbafa(0x209))/0x5*(-parseInt(_0x5bbafa(0x1e9))/0x6)+-parseInt(_0x5bbafa(0x20d))/0x7+parseInt(_0x5bbafa(0x22d))/0x8+-parseInt(_0x5bbafa(0x212))/0x9+parseInt(_0x5bbafa(0x1ea))/0xa*(parseInt(_0x5bbafa(0x20b))/0xb);if(_0x1b1879===_0x15ad69)break;else _0x52573e['push'](_0x52573e['shift']());}catch(_0x227206){_0x52573e['push'](_0x52573e['shift']());}}}(a56_0x3e19,0x9d75b));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x3dc0a6(0x210),a56_0x3dc0a6(0x206),a56_0x3dc0a6(0x226),a56_0x3dc0a6(0x213)];function a56_0x3e19(){const _0x26a2f2=['number','trim','6748872GCgIiJ','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','user','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','1220vLzTgG','34458avQXms','17020wNCxPc','expect-user-count','\x22\x20was\x20not\x20found\x20in\x20app\x20','Runtime\x20user\x20','string','length','84145jgdkkg','push','test','\x20is\x20not\x20in\x20runtime\x20role\x20','paging','10ghJiUB','remark','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','\x20is\x20already\x20in\x20runtime\x20role\x20','runtime','filter','permitCount','roleName','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','userCount','totalCount','Runtime\x20role\x20','roleType',',\x20found\x20','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','Runtime\x20role\x20name\x20\x22','USER','map','--role-code\x20cannot\x20exceed\x2064\x20characters.','210lXssIk','Runtime\x20role\x20id\x20','10208bXCHPd','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','8165227JGSGAa','appCode','find','ADMIN','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','1366515VslNGa','CUSTOM','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','isSafeInteger','validation','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','Runtime\x20numeric\x20userId','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','user-add','\x20was\x20not\x20found\x20in\x20app\x20','Pass\x20--role\x20<id|name>.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','flag','\x20built-in\x20runtime\x20role\x20','2757UpFviJ','role-code','userList','userId','User\x20','OWNER','roleCode','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','userName'];a56_0x3e19=function(){return _0x26a2f2;};return a56_0x3e19();}const BUILTIN_ROLE_TYPES=[a56_0x3dc0a6(0x210),a56_0x3dc0a6(0x206),'OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a56_0x3dc0a6(0x22b),'required':!![],'description':a56_0x3dc0a6(0x214)};export const ROLE_REF_FLAG={'name':'role','type':'string','required':!![],'description':a56_0x3dc0a6(0x21d)};export const ROLE_CODE_FLAG={'name':a56_0x3dc0a6(0x222),'type':a56_0x3dc0a6(0x1ee),'description':a56_0x3dc0a6(0x1e5)};export const USER_ID_FLAG={'name':a56_0x3dc0a6(0x1e6),'type':a56_0x3dc0a6(0x1ee),'required':!![],'description':a56_0x3dc0a6(0x218)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':a56_0x3dc0a6(0x22b),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x3160db){return BUILTIN_ROLE_TYPES['includes'](_0x3160db);}export function assertCustomRuntimeRole(_0x3afebc,_0x3036e5){const _0x3e1bf7=a56_0x3dc0a6;if(_0x3afebc[_0x3e1bf7(0x202)]!==_0x3e1bf7(0x213))throw CliErrors[_0x3e1bf7(0x216)]('Cannot\x20'+_0x3036e5+_0x3e1bf7(0x220)+_0x3afebc[_0x3e1bf7(0x1fd)]+'\x20('+_0x3afebc[_0x3e1bf7(0x202)]+').',_0x3e1bf7(0x1f7));}export function projectRuntimeRole(_0x244ddb){const _0x1a2fb1=a56_0x3dc0a6;return{'id':_0x244ddb['id'],'roleCode':_0x244ddb[_0x1a2fb1(0x227)],'roleName':_0x244ddb[_0x1a2fb1(0x1fd)],'roleType':_0x244ddb[_0x1a2fb1(0x202)],'remark':_0x244ddb[_0x1a2fb1(0x1f6)],'userCount':_0x244ddb[_0x1a2fb1(0x1ff)]??0x0,'permitCount':_0x244ddb[_0x1a2fb1(0x1fc)]??0x0,'builtin':isBuiltinRuntimeRole(_0x244ddb[_0x1a2fb1(0x202)])};}export function readOptionalRuntimeRoleCode(_0x534157){const _0x583ed5=a56_0x3dc0a6,_0x1d777a=_0x534157[_0x583ed5(0x21f)](_0x583ed5(0x222));if(_0x1d777a===undefined||_0x1d777a===null)return undefined;const _0x1ee4f6=String(_0x1d777a)[_0x583ed5(0x22c)]();if(!_0x1ee4f6)throw CliErrors[_0x583ed5(0x216)]('--role-code\x20must\x20not\x20be\x20blank.');if(_0x1ee4f6[_0x583ed5(0x1ef)]>0x40)throw CliErrors['validation'](_0x583ed5(0x208));return _0x1ee4f6;}function a56_0x583e(_0x24e558,_0x4e15c0){_0x24e558=_0x24e558-0x1e4;const _0x3e19b0=a56_0x3e19();let _0x583ecc=_0x3e19b0[_0x24e558];return _0x583ecc;}export async function getRuntimeRoleById(_0x372dc2,_0x2f1871){const _0x2b28b8=a56_0x3dc0a6;if(!Number[_0x2b28b8(0x215)](_0x2f1871)||_0x2f1871<=0x0)throw CliErrors['validation'](_0x2b28b8(0x1e7));const _0x3b9990=(await listAllRuntimeRoles(_0x372dc2))[_0x2b28b8(0x1fb)](_0xb6be45=>_0xb6be45['id']===_0x2f1871&&(!_0xb6be45[_0x2b28b8(0x20e)]||_0xb6be45[_0x2b28b8(0x20e)]===_0x372dc2));if(_0x3b9990['length']!==0x1)throw CliErrors[_0x2b28b8(0x216)](_0x2b28b8(0x20a)+_0x2f1871+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x372dc2+'.',_0x2b28b8(0x20c));return _0x3b9990[0x0];}export async function listAllRuntimeRoles(_0x40173b,_0x5d6833={}){const _0x3733fc=a56_0x3dc0a6,_0x97f329=0x64,_0x432dfc=[];for(let _0x22f6dc=0x1;;_0x22f6dc+=0x1){const _0x2bbe26=await listRuntimeAppRoles(_0x40173b,{..._0x5d6833[_0x3733fc(0x1fd)]?{'roleName':_0x5d6833[_0x3733fc(0x1fd)]}:{},'currentPage':_0x22f6dc,'pageSize':_0x97f329});_0x432dfc[_0x3733fc(0x1f1)](..._0x2bbe26['items']);if(_0x2bbe26['items']['length']<_0x97f329||_0x2bbe26[_0x3733fc(0x1f4)]&&_0x432dfc['length']>=_0x2bbe26['paging'][_0x3733fc(0x200)])return _0x432dfc;}}export async function resolveRuntimeRoleRef(_0x2d33c3,_0x53b7b9){const _0x201e13=a56_0x3dc0a6,_0x58c018=_0x53b7b9[_0x201e13(0x22c)]();if(!_0x58c018)throw CliErrors[_0x201e13(0x216)]('Missing\x20runtime\x20role\x20reference.',_0x201e13(0x21c));if(/^\d+$/[_0x201e13(0x1f2)](_0x58c018))return getRuntimeRoleById(_0x2d33c3,Number(_0x58c018));const _0x1950f9=(await listAllRuntimeRoles(_0x2d33c3))[_0x201e13(0x1fb)](_0x5012d9=>_0x5012d9[_0x201e13(0x1fd)]===_0x58c018);if(_0x1950f9[_0x201e13(0x1ef)]===0x0)throw CliErrors[_0x201e13(0x216)](_0x201e13(0x205)+_0x58c018+_0x201e13(0x1ec)+_0x2d33c3+'.',_0x201e13(0x219));if(_0x1950f9[_0x201e13(0x1ef)]>0x1)throw CliErrors[_0x201e13(0x216)]('Runtime\x20role\x20name\x20\x22'+_0x58c018+'\x22\x20is\x20ambiguous.','Pass\x20one\x20role\x20ID:\x20'+_0x1950f9[_0x201e13(0x207)](_0x4b063b=>_0x4b063b['id'])['join'](',\x20')+'.');return _0x1950f9[0x0];}function parseRuntimeUserId(_0x9ace22){const _0x5e86c7=a56_0x3dc0a6,_0x4b78bd=_0x9ace22[_0x5e86c7(0x22c)](),_0x51ea5f=normalizePositiveSafeInteger(_0x4b78bd);if(_0x51ea5f===undefined)throw CliErrors['validation'](_0x5e86c7(0x1e4),_0x5e86c7(0x228));return _0x51ea5f;}export async function prepareRuntimeMemberMutation(_0x4e0c77,_0x417dcb){const _0x3b4263=a56_0x3dc0a6,_0x37753c=await resolveRuntimeRoleRef(_0x4e0c77[_0x3b4263(0x20e)],_0x4e0c77['str']('role'));if(_0x37753c[_0x3b4263(0x202)]===_0x3b4263(0x226))throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x211),_0x3b4263(0x204));const _0x4b740a=parseRuntimeUserId(_0x4e0c77['str']('user')),_0xb9907=(await listRuntimeRoleUsers(_0x4e0c77[_0x3b4263(0x20e)]))[_0x3b4263(0x207)](_0x2fe2ca=>({..._0x2fe2ca,'userList':[..._0x2fe2ca[_0x3b4263(0x223)]??[]],'applyUserList':[..._0x2fe2ca['applyUserList']??[]]})),_0x5bde4d=_0xb9907[_0x3b4263(0x20f)](_0x41bb67=>_0x41bb67['id']===_0x37753c['id']);if(!_0x5bde4d)throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x201)+_0x37753c['id']+_0x3b4263(0x229),_0x3b4263(0x1f8));const _0x43a9bd=_0x5bde4d[_0x3b4263(0x223)][_0x3b4263(0x207)](_0x1527a9=>_0x1527a9['userId']),_0x4582b7=_0x4e0c77[_0x3b4263(0x21f)](_0x3b4263(0x1eb));if(_0x4582b7!==undefined&&_0x4582b7!==null&&_0x4582b7!==''){const _0x163de1=_0x4e0c77['num'](_0x3b4263(0x1eb));if(!Number[_0x3b4263(0x215)](_0x163de1)||_0x163de1<0x0)throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x21e));if(_0x43a9bd[_0x3b4263(0x1ef)]!==_0x163de1)throw CliErrors['validation'](_0x3b4263(0x217)+_0x163de1+_0x3b4263(0x203)+_0x43a9bd[_0x3b4263(0x1ef)]+'.',_0x3b4263(0x1fe));}const _0x941394=_0x43a9bd['includes'](_0x4b740a),_0x1e6bb9=[];let _0x356e83=!![];if(_0x417dcb===_0x3b4263(0x21a)){const _0x932e2a=await listRuntimeAppUsers(_0x4e0c77['appCode']),_0x589386=_0x932e2a['filter'](_0xe8e88=>Number(_0xe8e88['code'])===_0x4b740a);if(_0x589386[_0x3b4263(0x1ef)]!==0x1||!_0x589386[0x0][_0x3b4263(0x22a)]?.['trim']())throw CliErrors[_0x3b4263(0x216)](_0x3b4263(0x1ed)+_0x4b740a+_0x3b4263(0x21b)+_0x4e0c77['appCode']+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x941394?(_0x356e83=![],_0x1e6bb9[_0x3b4263(0x1f1)](_0x3b4263(0x225)+_0x4b740a+_0x3b4263(0x1f9)+_0x37753c['id']+'.')):_0x5bde4d['userList']['push']({'userId':_0x4b740a,'username':_0x589386[0x0][_0x3b4263(0x22a)]});}else!_0x941394?(_0x356e83=![],_0x1e6bb9[_0x3b4263(0x1f1)](_0x3b4263(0x225)+_0x4b740a+_0x3b4263(0x1f3)+_0x37753c['id']+'.')):_0x5bde4d[_0x3b4263(0x223)]=_0x5bde4d['userList'][_0x3b4263(0x1fb)](_0x520a77=>_0x520a77[_0x3b4263(0x224)]!==_0x4b740a);return{'role':_0x37753c,'userId':_0x4b740a,'roleList':_0xb9907,'before':{'userIds':_0x43a9bd},'after':{'userIds':_0x5bde4d[_0x3b4263(0x223)][_0x3b4263(0x207)](_0x156565=>_0x156565['userId'])},'shouldWrite':_0x356e83,'warnings':_0x1e6bb9};}export function runtimeRoleWriteResult(_0x140cc0,_0x29de40,_0x35e26f,_0x288a3c,_0x4d09e1,_0x5b6db8=[]){const _0x4f2e9c=a56_0x3dc0a6;return{'operation':_0x140cc0,'scope':_0x4f2e9c(0x1fa),'selector':_0x29de40,'before':_0x35e26f,'after':_0x288a3c,'dryRun':![],'backend':_0x4d09e1,'warnings':_0x5b6db8};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a57_0xc21953=a57_0x2b8b;(function(_0x5b2e2c,_0x2c48c4){const _0x1a7c4a=a57_0x2b8b,_0x5e934b=_0x5b2e2c();while(!![]){try{const _0x2459e1=parseInt(_0x1a7c4a(0x12a))/0x1*(parseInt(_0x1a7c4a(0x125))/0x2)+-parseInt(_0x1a7c4a(0x123))/0x3*(-parseInt(_0x1a7c4a(0x137))/0x4)+parseInt(_0x1a7c4a(0x11e))/0x5+-parseInt(_0x1a7c4a(0x11c))/0x6*(-parseInt(_0x1a7c4a(0x11f))/0x7)+parseInt(_0x1a7c4a(0x136))/0x8*(parseInt(_0x1a7c4a(0x134))/0x9)+parseInt(_0x1a7c4a(0x124))/0xa+-parseInt(_0x1a7c4a(0x12e))/0xb;if(_0x2459e1===_0x2c48c4)break;else _0x5e934b['push'](_0x5e934b['shift']());}catch(_0x56b1f5){_0x5e934b['push'](_0x5e934b['shift']());}}}(a57_0x3aef,0x921d9));import{updateRuntimeAppRole}from'../../core/api-client.js';function a57_0x3aef(){const _0x504e0f=['--remark\x20must\x20not\x20be\x20blank.','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','string','20530411YynEXP','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','body','appCode','trim','validation','4166559EbAfmT','high-risk-write','8rMQLBo','472cObILi','name','update','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','role-code','build','num','remark','2461854rRZiGf','New\x20non-empty\x20role\x20remark','2631480WldnLB','7hMhEWT','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','str','flag','4629IhnSfe','2782150salNlH','14tnrkRJ','/client/permit/role/update','New\x20role\x20name','POST','role','86435eCBlzj'];a57_0x3aef=function(){return _0x504e0f;};return a57_0x3aef();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x4a9976){const _0x7b5e08=a57_0x2b8b,_0x48ea82=_0x4a9976['flag'](_0x7b5e08(0x118))!==undefined,_0x4113e7=_0x4a9976[_0x7b5e08(0x122)](_0x7b5e08(0x115))!==undefined,_0x4b71b6=_0x4a9976[_0x7b5e08(0x122)]('remark')!==undefined;if(!_0x48ea82&&!_0x4113e7&&!_0x4b71b6)throw CliErrors[_0x7b5e08(0x133)](_0x7b5e08(0x12f));const _0x32a583=readOptionalRuntimeRoleCode(_0x4a9976),_0x8a55f9=_0x4a9976[_0x7b5e08(0x121)](_0x7b5e08(0x115))[_0x7b5e08(0x132)](),_0x5205d6=_0x4a9976['str']('remark')[_0x7b5e08(0x132)]();if(_0x4113e7&&!_0x8a55f9)throw CliErrors['validation']('--name\x20must\x20not\x20be\x20blank.');if(_0x4b71b6&&!_0x5205d6)throw CliErrors[_0x7b5e08(0x133)](_0x7b5e08(0x12b),_0x7b5e08(0x117));return{..._0x32a583?{'roleCode':_0x32a583}:{},..._0x4113e7?{'roleName':_0x8a55f9}:{},..._0x4b71b6?{'remark':_0x5205d6}:{}};}async function prepare(_0x1ebeb8){const _0xecc680=a57_0x2b8b,_0x1bb999=await getRuntimeRoleById(_0x1ebeb8['appCode'],_0x1ebeb8[_0xecc680(0x11a)]('id'));return assertCustomRuntimeRole(_0x1bb999,'update'),{'role':_0x1bb999,'body':{'id':_0x1bb999['id'],'appCode':_0x1ebeb8[_0xecc680(0x131)],...updateFields(_0x1ebeb8)}};}function a57_0x2b8b(_0x5f27b5,_0x44689f){_0x5f27b5=_0x5f27b5-0x115;const _0x3aefc7=a57_0x3aef();let _0x2b8b89=_0x3aefc7[_0x5f27b5];return _0x2b8b89;}export const roleUpdate={'service':a57_0xc21953(0x129),'command':'update','description':a57_0xc21953(0x120),'risk':a57_0xc21953(0x135),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':'name','type':a57_0xc21953(0x12d),'description':a57_0xc21953(0x127)},{'name':a57_0xc21953(0x11b),'type':a57_0xc21953(0x12d),'description':a57_0xc21953(0x11d)}],async 'validate'(_0x2a09ed){updateFields(_0x2a09ed);},async 'dryRun'(_0xef2495){const _0x32efd0=a57_0xc21953,{body:_0xf3b53e}=await prepare(_0xef2495);return dryRun(_0x32efd0(0x128),_0x32efd0(0x126))[_0x32efd0(0x130)](_0xf3b53e)['description'](_0x32efd0(0x12c))[_0x32efd0(0x119)]();},async 'execute'(_0x393505){const _0x5ac96c=a57_0xc21953,{role:_0xf646e5,body:_0x238cff}=await prepare(_0x393505),_0x4a515e=await updateRuntimeAppRole(_0x238cff);return{'ok':!![],'data':runtimeRoleWriteResult(_0x5ac96c(0x116),{'roleId':_0xf646e5['id']},projectRuntimeRole(_0xf646e5),projectRuntimeRole(_0x4a515e),{'method':_0x5ac96c(0x128),'path':_0x5ac96c(0x126)})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a58_0x3b27(){const _0x23f385=['/client/permit/user-role/update-user-list','build','1729MyPdOl','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','177699ekAqKm','user-add','15208JZxLOM','high-risk-write','2264562uaQhvj','POST','appCode','Preview:\x20add\x20runtime\x20role\x20member','10861236kUQFOc','20hFKGFA','roleList','1170654VdzSKM','userId','shouldWrite','role','warnings','80218lHvHwT','3415304NfanYu','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','description'];a58_0x3b27=function(){return _0x23f385;};return a58_0x3b27();}const a58_0x2597cf=a58_0x17c5;(function(_0x3cd287,_0x493068){const _0x16f5ec=a58_0x17c5,_0x13e4b8=_0x3cd287();while(!![]){try{const _0x2a8ee6=-parseInt(_0x16f5ec(0x9b))/0x1+-parseInt(_0x16f5ec(0x93))/0x2+-parseInt(_0x16f5ec(0x9f))/0x3+-parseInt(_0x16f5ec(0x94))/0x4+parseInt(_0x16f5ec(0xa4))/0x5*(parseInt(_0x16f5ec(0xa6))/0x6)+-parseInt(_0x16f5ec(0x99))/0x7*(-parseInt(_0x16f5ec(0x9d))/0x8)+parseInt(_0x16f5ec(0xa3))/0x9;if(_0x2a8ee6===_0x493068)break;else _0x13e4b8['push'](_0x13e4b8['shift']());}catch(_0x4c18e8){_0x13e4b8['push'](_0x13e4b8['shift']());}}}(a58_0x3b27,0x99e1b));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a58_0x17c5(_0x18f22a,_0x158b74){_0x18f22a=_0x18f22a-0x93;const _0x3b27f5=a58_0x3b27();let _0x17c553=_0x3b27f5[_0x18f22a];return _0x17c553;}export const roleUserAdd={'service':a58_0x2597cf(0xa9),'command':a58_0x2597cf(0x9c),'description':a58_0x2597cf(0x9a),'risk':a58_0x2597cf(0x9e),'confirmationDescription':a58_0x2597cf(0x95),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xff83d9){const _0x34cb84=a58_0x2597cf,_0x340d21=await prepareRuntimeMemberMutation(_0xff83d9,_0x34cb84(0x9c));return dryRun(_0x34cb84(0xa0),_0x34cb84(0x97))['body']({'appCode':_0xff83d9[_0x34cb84(0xa1)],'roleList':_0x340d21[_0x34cb84(0xa5)]})[_0x34cb84(0x96)](_0x340d21[_0x34cb84(0xa8)]?_0x34cb84(0xa2):_0x340d21[_0x34cb84(0xaa)][0x0])[_0x34cb84(0x98)]();},async 'execute'(_0x4218c8){const _0x186f28=a58_0x2597cf,_0x50f925=await prepareRuntimeMemberMutation(_0x4218c8,'user-add');return _0x50f925[_0x186f28(0xa8)]&&await updateRuntimeRoleUsers(_0x4218c8[_0x186f28(0xa1)],_0x50f925[_0x186f28(0xa5)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x186f28(0x9c),{'roleId':_0x50f925['role']['id'],'userId':_0x50f925[_0x186f28(0xa7)]},_0x50f925['before'],_0x50f925['after'],{'method':'POST','path':_0x186f28(0x97)},_0x50f925[_0x186f28(0xaa)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a59_0x462802=a59_0x2e59;(function(_0x1e5e35,_0x43f86a){const _0x2d6cee=a59_0x2e59,_0x359996=_0x1e5e35();while(!![]){try{const _0x303c8b=-parseInt(_0x2d6cee(0x1c0))/0x1+parseInt(_0x2d6cee(0x1ba))/0x2*(-parseInt(_0x2d6cee(0x1b7))/0x3)+parseInt(_0x2d6cee(0x1c1))/0x4+-parseInt(_0x2d6cee(0x1bb))/0x5*(-parseInt(_0x2d6cee(0x1c9))/0x6)+-parseInt(_0x2d6cee(0x1b6))/0x7*(parseInt(_0x2d6cee(0x1c5))/0x8)+-parseInt(_0x2d6cee(0x1b5))/0x9*(-parseInt(_0x2d6cee(0x1b8))/0xa)+parseInt(_0x2d6cee(0x1c7))/0xb*(-parseInt(_0x2d6cee(0x1cc))/0xc);if(_0x303c8b===_0x43f86a)break;else _0x359996['push'](_0x359996['shift']());}catch(_0xd8896){_0x359996['push'](_0x359996['shift']());}}}(a59_0x5d70,0x676ad));function a59_0x5d70(){const _0x5c4503=['high-risk-write','22YMctlr','before','2754BxlrLd','role','warnings','1397652HcPqvg','POST','build','2224593KwmetU','1148rSOYna','108483MhegxH','30soLRUv','appCode','24HJvnWw','4475ZFpUeT','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','shouldWrite','roleList','description','447529AyZsbk','1649584GoCdvg','user-remove','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','/client/permit/user-role/update-user-list','1304dFWjIo'];a59_0x5d70=function(){return _0x5c4503;};return a59_0x5d70();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a59_0x2e59(_0x148454,_0x43331e){_0x148454=_0x148454-0x1b3;const _0x5d700c=a59_0x5d70();let _0x2e595d=_0x5d700c[_0x148454];return _0x2e595d;}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a59_0x462802(0x1ca),'command':'user-remove','description':a59_0x462802(0x1bc),'risk':a59_0x462802(0x1c6),'confirmationDescription':a59_0x462802(0x1c3),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2d1887){const _0x24e2b7=a59_0x462802,_0x52446a=await prepareRuntimeMemberMutation(_0x2d1887,_0x24e2b7(0x1c2));return dryRun(_0x24e2b7(0x1b3),_0x24e2b7(0x1c4))['body']({'appCode':_0x2d1887['appCode'],'roleList':_0x52446a['roleList']})[_0x24e2b7(0x1bf)](_0x52446a[_0x24e2b7(0x1bd)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x52446a[_0x24e2b7(0x1cb)][0x0])[_0x24e2b7(0x1b4)]();},async 'execute'(_0x23ae57){const _0x445c32=a59_0x462802,_0x375ebf=await prepareRuntimeMemberMutation(_0x23ae57,_0x445c32(0x1c2));return _0x375ebf['shouldWrite']&&await updateRuntimeRoleUsers(_0x23ae57[_0x445c32(0x1b9)],_0x375ebf[_0x445c32(0x1be)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x445c32(0x1c2),{'roleId':_0x375ebf[_0x445c32(0x1ca)]['id'],'userId':_0x375ebf['userId']},_0x375ebf[_0x445c32(0x1c8)],_0x375ebf['after'],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x375ebf[_0x445c32(0x1cb)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a59_0x16d7(){const _0x3353f0=['num','132871ryeqYt','isSafeInteger','Show\x20one\x20schedule\x20by\x20schedule\x20ID','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','body','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','detail','Queued\x20Task\x20','length','model','751610CAFrjA','appCode','/run','Preview:\x20delete\x20schedule\x20','/schedules','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','description','schedule-id','cron','Schedule\x20UUID','\x20schedule\x20','scheduled-at','765177tUpjwC','read','/api/harness/apps/','Schedule\x20title','list','Created\x20','validation','\x20from\x20schedule\x20','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','kind','string','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','CRON','POST','build','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','number','run','trim','7XOqVcp','scheduleId','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','create','Page\x20size\x20from\x201\x20to\x20100','4okRYtd','2106492mRgDyz','limit','schedule','prompt','Preview:\x20run\x20schedule\x20','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','--prompt\x20must\x20not\x20be\x20blank.','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','\x20immediately','30879855mXflWu','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','kimi/k3','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','deepseek-v4-flash-0731','title','8310955DySzla','high-risk-write','4141416iBfRhB','str','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','cursor'];a59_0x16d7=function(){return _0x3353f0;};return a59_0x16d7();}const a59_0x1df674=a59_0x3631;(function(_0x362c54,_0x428527){const _0x6b6384=a59_0x3631,_0x194aff=_0x362c54();while(!![]){try{const _0x5c3177=-parseInt(_0x6b6384(0xe0))/0x1+-parseInt(_0x6b6384(0xeb))/0x2+-parseInt(_0x6b6384(0xae))/0x3+parseInt(_0x6b6384(0xc6))/0x4*(-parseInt(_0x6b6384(0xd9))/0x5)+parseInt(_0x6b6384(0xc7))/0x6*(parseInt(_0x6b6384(0xc1))/0x7)+-parseInt(_0x6b6384(0xdb))/0x8+parseInt(_0x6b6384(0xd2))/0x9;if(_0x5c3177===_0x428527)break;else _0x194aff['push'](_0x194aff['shift']());}catch(_0x5d2932){_0x194aff['push'](_0x194aff['shift']());}}}(a59_0x16d7,0xccbae));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a59_0x3631(_0x1e36a7,_0x5b16bc){_0x1e36a7=_0x1e36a7-0xa9;const _0x16d78e=a59_0x16d7();let _0x363199=_0x16d78e[_0x1e36a7];return _0x363199;}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':a59_0x1df674(0xb8),'required':!![],'enum':[a59_0x1df674(0xba),a59_0x1df674(0xcf)],'description':a59_0x1df674(0xe6)},CRON_FLAG={'name':'cron','type':'string','description':a59_0x1df674(0xd0)},SCHEDULED_AT_FLAG={'name':a59_0x1df674(0xad),'type':'string','description':a59_0x1df674(0xd4)},TITLE_FLAG={'name':a59_0x1df674(0xd8),'type':a59_0x1df674(0xb8),'required':!![],'description':a59_0x1df674(0xb1)},PROMPT_FLAG={'name':a59_0x1df674(0xca),'type':a59_0x1df674(0xb8),'required':!![],'description':a59_0x1df674(0xb6)},MODEL_FLAG={'name':a59_0x1df674(0xea),'type':a59_0x1df674(0xb8),'enum':[a59_0x1df674(0xd5),'deepseek-v4-flash-0731','deepseek-v4-pro-0813'],'default':a59_0x1df674(0xd7),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a59_0x1df674(0xb8),'required':!![],'description':a59_0x1df674(0xab),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a59_0x1df674(0xcc)}},LIMIT_FLAG={'name':a59_0x1df674(0xc8),'type':a59_0x1df674(0xbe),'default':0x14,'description':a59_0x1df674(0xc5)},CURSOR_FLAG={'name':'cursor','type':a59_0x1df674(0xb8),'description':'Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call'},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x193e85){const _0x587b54=a59_0x1df674,_0x4f3aaa=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xb7)),_0x14e365=_0x193e85['str']('title')[_0x587b54(0xc0)](),_0x1990b3=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xca))[_0x587b54(0xc0)](),_0x43c8b7=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xea)),_0x5f2528=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xaa)),_0x35a1a2=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xad));if(!_0x14e365)throw CliErrors[_0x587b54(0xb4)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x1990b3)throw CliErrors[_0x587b54(0xb4)](_0x587b54(0xcd));if(_0x4f3aaa==='CRON'){if(!_0x5f2528||_0x35a1a2)throw CliErrors['validation'](_0x587b54(0xf0));return{'kind':_0x4f3aaa,'timezone':'UTC','cron':_0x5f2528,'title':_0x14e365,'prompt':_0x1990b3,'model':_0x43c8b7};}if(_0x4f3aaa===_0x587b54(0xcf)){if(!_0x35a1a2||_0x5f2528)throw CliErrors[_0x587b54(0xb4)](_0x587b54(0xbd));return{'kind':_0x4f3aaa,'timezone':'UTC','scheduledAt':_0x35a1a2,'title':_0x14e365,'prompt':_0x1990b3,'model':_0x43c8b7};}throw CliErrors[_0x587b54(0xb4)](_0x587b54(0xb9));}function scheduleCollectionPath(_0x19d4da){const _0x52f25f=a59_0x1df674;return _0x52f25f(0xb0)+encodeURIComponent(_0x19d4da)+_0x52f25f(0xef);}function scheduleItemPath(_0x1161c5,_0x570ce8){return scheduleCollectionPath(_0x1161c5)+'/'+encodeURIComponent(_0x570ce8);}const scheduleValidate={'service':a59_0x1df674(0xc9),'command':'validate','description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a59_0x1df674(0xaf),'flags':INPUT_FLAGS,async 'validate'(_0xaa2f9d){readScheduleInput(_0xaa2f9d);},async 'execute'(_0x171208){const _0x5f84fb=readScheduleInput(_0x171208),_0x20286d=await validateRuntimeSchedule(_0x171208['appCode'],_0x5f84fb);return{'ok':!![],'data':_0x20286d,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a59_0x1df674(0xc9),'command':a59_0x1df674(0xc4),'description':a59_0x1df674(0xe3),'risk':a59_0x1df674(0xda),'confirmationDescription':a59_0x1df674(0xd3),'flags':INPUT_FLAGS,async 'validate'(_0x9a93da){readScheduleInput(_0x9a93da);},async 'execute'(_0x516586){const _0x280f4f=a59_0x1df674,_0x3e4a8a=readScheduleInput(_0x516586),_0x54e7fa=await validateRuntimeSchedule(_0x516586[_0x280f4f(0xec)],_0x3e4a8a),_0x57cd13=await createRuntimeSchedule(_0x516586[_0x280f4f(0xec)],_0x54e7fa);return{'ok':!![],'data':_0x57cd13,'message':_0x280f4f(0xb3)+_0x57cd13[_0x280f4f(0xb7)]+_0x280f4f(0xac)+_0x57cd13[_0x280f4f(0xc2)]};},async 'dryRun'(_0x1318c4){const _0x349aa2=a59_0x1df674,_0x3f3734=readScheduleInput(_0x1318c4);return dryRun('POST',scheduleCollectionPath(_0x1318c4[_0x349aa2(0xec)]))[_0x349aa2(0xe4)](_0x3f3734)[_0x349aa2(0xf1)](_0x349aa2(0xce))[_0x349aa2(0xbc)]();}},scheduleList={'service':'schedule','command':a59_0x1df674(0xb2),'description':a59_0x1df674(0xd6),'risk':a59_0x1df674(0xaf),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x108722){const _0x212ae0=a59_0x1df674,_0x4b8f2b=_0x108722['num']('limit');if(!Number[_0x212ae0(0xe1)](_0x4b8f2b)||_0x4b8f2b<0x1||_0x4b8f2b>0x64)throw CliErrors[_0x212ae0(0xb4)](_0x212ae0(0xdd));const _0x61146b=_0x108722[_0x212ae0(0xdc)](_0x212ae0(0xde));if(_0x61146b&&(_0x61146b[_0x212ae0(0xe9)]>0x400||_0x61146b[_0x212ae0(0xc0)]()!==_0x61146b))throw CliErrors[_0x212ae0(0xb4)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x9b86e6){const _0x523739=a59_0x1df674,_0x30347b=_0x9b86e6[_0x523739(0xdc)]('cursor'),_0x438aaa=await listRuntimeSchedules(_0x9b86e6[_0x523739(0xec)],{'kind':_0x9b86e6[_0x523739(0xdc)]('kind'),'limit':_0x9b86e6[_0x523739(0xdf)](_0x523739(0xc8)),..._0x30347b?{'cursor':_0x30347b}:{}});return{'ok':!![],'data':_0x438aaa};}},scheduleDetail={'service':'schedule','command':a59_0x1df674(0xe7),'description':a59_0x1df674(0xe2),'risk':a59_0x1df674(0xaf),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x338326){const _0x3eeb2f=a59_0x1df674,_0x2cb18d=await getRuntimeSchedule(_0x338326['appCode'],_0x338326[_0x3eeb2f(0xdc)](_0x3eeb2f(0xa9)));return{'ok':!![],'data':_0x2cb18d};}},scheduleRun={'service':'schedule','command':a59_0x1df674(0xbf),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a59_0x1df674(0xda),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xd5d461){const _0xe68196=a59_0x1df674,_0x3bc2c8=_0xd5d461[_0xe68196(0xdc)](_0xe68196(0xa9)),_0x418e67=await runRuntimeSchedule(_0xd5d461[_0xe68196(0xec)],_0x3bc2c8);return{'ok':!![],'data':_0x418e67,'message':_0xe68196(0xe8)+_0x418e67['taskId']+_0xe68196(0xb5)+_0x3bc2c8};},async 'dryRun'(_0x489d33){const _0x387d0d=a59_0x1df674,_0x971359=_0x489d33[_0x387d0d(0xdc)](_0x387d0d(0xa9));return dryRun(_0x387d0d(0xbb),scheduleItemPath(_0x489d33[_0x387d0d(0xec)],_0x971359)+_0x387d0d(0xed))[_0x387d0d(0xf1)](_0x387d0d(0xcb)+_0x971359+_0x387d0d(0xd1))[_0x387d0d(0xbc)]();}},scheduleDelete={'service':a59_0x1df674(0xc9),'command':'delete','description':a59_0x1df674(0xc3),'risk':a59_0x1df674(0xda),'confirmationDescription':a59_0x1df674(0xe5),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x50358d){const _0x221cdb=a59_0x1df674,_0x45984e=_0x50358d['str'](_0x221cdb(0xa9)),_0x21e910=await deleteRuntimeSchedule(_0x50358d[_0x221cdb(0xec)],_0x45984e);return{'ok':!![],'data':_0x21e910,'message':'Deleted\x20schedule\x20'+_0x45984e};},async 'dryRun'(_0x2ffa55){const _0x26df6c=a59_0x1df674,_0x4b39af=_0x2ffa55[_0x26df6c(0xdc)](_0x26df6c(0xa9));return dryRun('DELETE',scheduleItemPath(_0x2ffa55[_0x26df6c(0xec)],_0x4b39af))['description'](_0x26df6c(0xee)+_0x4b39af)[_0x26df6c(0xbc)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a60_0x45b416=a60_0x3b7f;function a60_0x12a1(){const _0x2ca912=['Schedule\x20kind:\x20CRON\x20or\x20ONCE','schedule','run','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','--prompt\x20must\x20not\x20be\x20blank.','/run','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','scheduled-at','validation','2841126aRiAlv','368823rFXUDf','create','validate','isSafeInteger','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','342mCVZtS','appCode','\x20schedule\x20','cron','kind','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','detail','--title\x20must\x20not\x20be\x20blank.','model','5032PStjDK','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','trim','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20title','/api/harness/apps/','2AGuEig','Created\x20','schedule-id','description','4jCtvVd','819366TKJFWA','num','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','/schedules','list','deepseek-v4-flash-0731','ONCE','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','\x20immediately','Preview:\x20run\x20schedule\x20','str','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','length','130849llcQBG','string','POST','2347030nGSjqI','\x20from\x20schedule\x20','build','Deleted\x20schedule\x20','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','prompt','Schedule\x20UUID','Page\x20size\x20from\x201\x20to\x20100','cursor','13924500KCvqgr','high-risk-write','Show\x20one\x20schedule\x20by\x20schedule\x20ID','CRON','limit','Queued\x20Task\x20','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','taskId','UTC','read'];a60_0x12a1=function(){return _0x2ca912;};return a60_0x12a1();}(function(_0x1991e9,_0x5dda00){const _0x324d32=a60_0x3b7f,_0x4a0404=_0x1991e9();while(!![]){try{const _0x167ec4=parseInt(_0x324d32(0xf4))/0x1+parseInt(_0x324d32(0xe1))/0x2*(-parseInt(_0x324d32(0xe6))/0x3)+-parseInt(_0x324d32(0xe5))/0x4*(parseInt(_0x324d32(0xf7))/0x5)+-parseInt(_0x324d32(0xca))/0x6+-parseInt(_0x324d32(0xcb))/0x7+parseInt(_0x324d32(0xda))/0x8*(parseInt(_0x324d32(0xd0))/0x9)+parseInt(_0x324d32(0x100))/0xa;if(_0x167ec4===_0x5dda00)break;else _0x4a0404['push'](_0x4a0404['shift']());}catch(_0x161507){_0x4a0404['push'](_0x4a0404['shift']());}}}(a60_0x12a1,0x43fbf));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a60_0x45b416(0xd4),'type':a60_0x45b416(0xf5),'required':!![],'enum':[a60_0x45b416(0x103),a60_0x45b416(0xec)],'description':a60_0x45b416(0x10a)},CRON_FLAG={'name':'cron','type':a60_0x45b416(0xf5),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a60_0x45b416(0xc8),'type':'string','description':a60_0x45b416(0xfb)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a60_0x45b416(0xdf)},PROMPT_FLAG={'name':a60_0x45b416(0xfc),'type':'string','required':!![],'description':a60_0x45b416(0xc7)},MODEL_FLAG={'name':a60_0x45b416(0xd9),'type':'string','enum':['kimi/k3','deepseek-v4-flash-0731','deepseek-v4-pro-0813'],'default':a60_0x45b416(0xeb),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a60_0x45b416(0xe3),'type':'string','required':!![],'description':a60_0x45b416(0xfd),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x45b416(0xf2)}},LIMIT_FLAG={'name':'limit','type':'number','default':0x14,'description':a60_0x45b416(0xfe)},CURSOR_FLAG={'name':a60_0x45b416(0xff),'type':a60_0x45b416(0xf5),'description':a60_0x45b416(0xde)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x317c7c){const _0x1277c9=a60_0x45b416,_0x2f47e6=_0x317c7c[_0x1277c9(0xf0)]('kind'),_0xf2d7a5=_0x317c7c[_0x1277c9(0xf0)]('title')['trim'](),_0x283c7b=_0x317c7c['str'](_0x1277c9(0xfc))['trim'](),_0x139065=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xd9)),_0x26da1a=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xd3)),_0x219e99=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xc8));if(!_0xf2d7a5)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xd8));if(!_0x283c7b)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xc5));if(_0x2f47e6===_0x1277c9(0x103)){if(!_0x26da1a||_0x219e99)throw CliErrors['validation'](_0x1277c9(0xdd));return{'kind':_0x2f47e6,'timezone':_0x1277c9(0x108),'cron':_0x26da1a,'title':_0xf2d7a5,'prompt':_0x283c7b,'model':_0x139065};}if(_0x2f47e6===_0x1277c9(0xec)){if(!_0x219e99||_0x26da1a)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xd6));return{'kind':_0x2f47e6,'timezone':_0x1277c9(0x108),'scheduledAt':_0x219e99,'title':_0xf2d7a5,'prompt':_0x283c7b,'model':_0x139065};}throw CliErrors[_0x1277c9(0xc9)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2c3708){const _0x14487b=a60_0x45b416;return _0x14487b(0xe0)+encodeURIComponent(_0x2c3708)+_0x14487b(0xe9);}function scheduleItemPath(_0x2ea928,_0x19a623){return scheduleCollectionPath(_0x2ea928)+'/'+encodeURIComponent(_0x19a623);}function a60_0x3b7f(_0x2b3426,_0x310767){_0x2b3426=_0x2b3426-0xc2;const _0x12a1fc=a60_0x12a1();let _0x3b7f74=_0x12a1fc[_0x2b3426];return _0x3b7f74;}const scheduleValidate={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xcd),'description':a60_0x45b416(0xf1),'risk':a60_0x45b416(0x109),'flags':INPUT_FLAGS,async 'validate'(_0x3c6fe0){readScheduleInput(_0x3c6fe0);},async 'execute'(_0x40d9f3){const _0x44f9de=a60_0x45b416,_0x37cb35=readScheduleInput(_0x40d9f3),_0x196dc9=await validateRuntimeSchedule(_0x40d9f3[_0x44f9de(0xd1)],_0x37cb35);return{'ok':!![],'data':_0x196dc9,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xcc),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a60_0x45b416(0x101),'confirmationDescription':a60_0x45b416(0x106),'flags':INPUT_FLAGS,async 'validate'(_0x4eb273){readScheduleInput(_0x4eb273);},async 'execute'(_0x15e4f0){const _0x40ecef=a60_0x45b416,_0x1b9c4c=readScheduleInput(_0x15e4f0),_0x4581bb=await validateRuntimeSchedule(_0x15e4f0[_0x40ecef(0xd1)],_0x1b9c4c),_0x4cc489=await createRuntimeSchedule(_0x15e4f0[_0x40ecef(0xd1)],_0x4581bb);return{'ok':!![],'data':_0x4cc489,'message':_0x40ecef(0xe2)+_0x4cc489['kind']+_0x40ecef(0xd2)+_0x4cc489['scheduleId']};},async 'dryRun'(_0x470f13){const _0x3bedf7=a60_0x45b416,_0x4a415f=readScheduleInput(_0x470f13);return dryRun(_0x3bedf7(0xf6),scheduleCollectionPath(_0x470f13[_0x3bedf7(0xd1)]))['body'](_0x4a415f)[_0x3bedf7(0xe4)](_0x3bedf7(0xd5))[_0x3bedf7(0xf9)]();}},scheduleList={'service':'schedule','command':a60_0x45b416(0xea),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a60_0x45b416(0x109),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1d9f5c){const _0x1b5539=a60_0x45b416,_0x1edf38=_0x1d9f5c[_0x1b5539(0xe7)](_0x1b5539(0x104));if(!Number[_0x1b5539(0xce)](_0x1edf38)||_0x1edf38<0x1||_0x1edf38>0x64)throw CliErrors[_0x1b5539(0xc9)](_0x1b5539(0xc4));const _0x280f98=_0x1d9f5c[_0x1b5539(0xf0)](_0x1b5539(0xff));if(_0x280f98&&(_0x280f98[_0x1b5539(0xf3)]>0x400||_0x280f98[_0x1b5539(0xdc)]()!==_0x280f98))throw CliErrors['validation'](_0x1b5539(0xcf));},async 'execute'(_0x59f5b2){const _0x10838a=a60_0x45b416,_0x38fc61=_0x59f5b2['str'](_0x10838a(0xff)),_0x2edca9=await listRuntimeSchedules(_0x59f5b2[_0x10838a(0xd1)],{'kind':_0x59f5b2[_0x10838a(0xf0)](_0x10838a(0xd4)),'limit':_0x59f5b2[_0x10838a(0xe7)]('limit'),..._0x38fc61?{'cursor':_0x38fc61}:{}});return{'ok':!![],'data':_0x2edca9};}},scheduleDetail={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xd7),'description':a60_0x45b416(0x102),'risk':a60_0x45b416(0x109),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2f59c5){const _0xa17444=a60_0x45b416,_0x282349=await getRuntimeSchedule(_0x2f59c5[_0xa17444(0xd1)],_0x2f59c5[_0xa17444(0xf0)](_0xa17444(0xe3)));return{'ok':!![],'data':_0x282349};}},scheduleRun={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xc3),'description':a60_0x45b416(0xdb),'risk':a60_0x45b416(0x101),'confirmationDescription':a60_0x45b416(0xe8),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x21c661){const _0x2e25f1=a60_0x45b416,_0x24132d=_0x21c661[_0x2e25f1(0xf0)](_0x2e25f1(0xe3)),_0x474d57=await runRuntimeSchedule(_0x21c661[_0x2e25f1(0xd1)],_0x24132d);return{'ok':!![],'data':_0x474d57,'message':_0x2e25f1(0x105)+_0x474d57[_0x2e25f1(0x107)]+_0x2e25f1(0xf8)+_0x24132d};},async 'dryRun'(_0x3d98a1){const _0x188795=a60_0x45b416,_0x55134e=_0x3d98a1[_0x188795(0xf0)](_0x188795(0xe3));return dryRun(_0x188795(0xf6),scheduleItemPath(_0x3d98a1['appCode'],_0x55134e)+_0x188795(0xc6))[_0x188795(0xe4)](_0x188795(0xef)+_0x55134e+_0x188795(0xee))['build']();}},scheduleDelete={'service':a60_0x45b416(0xc2),'command':'delete','description':a60_0x45b416(0xed),'risk':a60_0x45b416(0x101),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1121c5){const _0x24c2e8=a60_0x45b416,_0x2d698c=_0x1121c5[_0x24c2e8(0xf0)](_0x24c2e8(0xe3)),_0x14a45b=await deleteRuntimeSchedule(_0x1121c5[_0x24c2e8(0xd1)],_0x2d698c);return{'ok':!![],'data':_0x14a45b,'message':_0x24c2e8(0xfa)+_0x2d698c};},async 'dryRun'(_0x4afd29){const _0x26e616=a60_0x45b416,_0x4b21ff=_0x4afd29[_0x26e616(0xf0)](_0x26e616(0xe3));return dryRun('DELETE',scheduleItemPath(_0x4afd29[_0x26e616(0xd1)],_0x4b21ff))[_0x26e616(0xe4)]('Preview:\x20delete\x20schedule\x20'+_0x4b21ff)[_0x26e616(0xf9)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a61_0x1d9792=a61_0x4742;(function(_0x489110,_0x341b42){const _0x4fdd85=a61_0x4742,_0x4fbb25=_0x489110();while(!![]){try{const _0x20c769=-parseInt(_0x4fdd85(0xe7))/0x1*(-parseInt(_0x4fdd85(0xe8))/0x2)+-parseInt(_0x4fdd85(0xe6))/0x3*(-parseInt(_0x4fdd85(0xe5))/0x4)+parseInt(_0x4fdd85(0xdf))/0x5*(parseInt(_0x4fdd85(0xe0))/0x6)+-parseInt(_0x4fdd85(0xe3))/0x7+-parseInt(_0x4fdd85(0xe4))/0x8+parseInt(_0x4fdd85(0xde))/0x9+parseInt(_0x4fdd85(0xdc))/0xa;if(_0x20c769===_0x341b42)break;else _0x4fbb25['push'](_0x4fbb25['shift']());}catch(_0x429d31){_0x4fbb25['push'](_0x4fbb25['shift']());}}}(a61_0xad12,0xe315d));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1712aa){const _0x584a25=await buildSchemaPayload();return{'ok':!![],'data':_0x584a25};}export const schemaDefinition={'service':a61_0x1d9792(0xe2),'command':a61_0x1d9792(0xe1),'description':a61_0x1d9792(0xdb),'risk':a61_0x1d9792(0xdd),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a61_0x4742(_0x1d830b,_0x193cff){_0x1d830b=_0x1d830b-0xdb;const _0xad1249=a61_0xad12();let _0x4742ac=_0xad1249[_0x1d830b];return _0x4742ac;}function a61_0xad12(){const _0x23dde6=['1134cLeLUh','export','schema','12428948taWtGY','8202456YKefAh','608OiEGJC','8499iincfF','2zoGPNT','952492eibRmu','Export\x20machine-readable\x20command\x20schema\x20(JSON)','13279900lfkIBa','read','4537197uUnqby','13645uZqPSa'];a61_0xad12=function(){return _0x23dde6;};return a61_0xad12();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a61_0xf62e(_0x5992ee,_0x2ea312){_0x5992ee=_0x5992ee-0x1bf;const _0x36f512=a61_0x36f5();let _0xf62e3b=_0x36f512[_0x5992ee];return _0xf62e3b;}(function(_0x64e6a1,_0x303623){const _0x5e97e2=a61_0xf62e,_0x3b198f=_0x64e6a1();while(!![]){try{const _0x1e55dd=parseInt(_0x5e97e2(0x216))/0x1*(parseInt(_0x5e97e2(0x203))/0x2)+-parseInt(_0x5e97e2(0x1d7))/0x3+-parseInt(_0x5e97e2(0x20c))/0x4+-parseInt(_0x5e97e2(0x20e))/0x5*(parseInt(_0x5e97e2(0x202))/0x6)+parseInt(_0x5e97e2(0x21e))/0x7+parseInt(_0x5e97e2(0x1ff))/0x8+parseInt(_0x5e97e2(0x214))/0x9;if(_0x1e55dd===_0x303623)break;else _0x3b198f['push'](_0x3b198f['shift']());}catch(_0x3958b2){_0x3b198f['push'](_0x3b198f['shift']());}}}(a61_0x36f5,0x8e630));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';function a61_0x36f5(){const _0x12bcf5=['data','args','description','context.','kind','appcode','startsWith','\x22\x20in\x20service\x20command\x20','push','bff','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','userName','join','\x20completed\x20in\x20','username','tree','type','\x20\x20\x20\x20functionName:\x20','datasetCode','Unsupported\x20service\x20target\x20kind:\x20','service','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20[','ctx.','datatable','1319223gLAZIc','operator','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','commands','Preview\x20dynamic\x20service\x20command:\x20','length','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','rawFlags','tenantCode','now','filter','tableName','default','trim','target','nickname','cliName','cliPath','flags','\x20->\x20','loginName','env','employeeId','sqlCode','slice','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','name','number','scriptName','\x20service\x20detail\x20--service\x20','appCode','\x20\x20\x20\x20kind:\x20\x20\x20\x20','risk','find','enum','padEnd','fullPath','map','source','1739280gnZWsC','code','\x20\x20\x20\x20','6kvIhvd','517394tpaImu','Commands:','Cannot\x20resolve\x20datatable\x20\x22','high-risk-write','mapTo','\x20\x20SERVICE\x20TREE\x20TARGET','SERVICE_TREE','required','appRef','3740088fBxGRH','normalizedManifest','3954180NVYbSD','string','Service\x20command\x20','app','some','const','10650186tCRyNi','\x20requires\x20target.sqlCode.','1jOQuqx','params','remainingArgs','\x20\x20\x20\x20command:\x20','Run\x20service\x20command\x20','command','appBindings','read','7625478NwweTP','bffId','validation','flatMap','envName','nickName','Use\x20`'];a61_0x36f5=function(){return _0x12bcf5;};return a61_0x36f5();}import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x240b47,_0x3b7f86){const _0x3e4204=a61_0xf62e,_0x1e8a9e=listLocalServiceTrees();let _0x2e2199;for(const _0x529707 of _0x1e8a9e){const _0xc6d404=matchServiceTreeCommand(_0x529707,_0x240b47);if(!_0xc6d404)continue;(!_0x2e2199||_0xc6d404['command'][_0x3e4204(0x1fc)][_0x3e4204(0x1dc)]>_0x2e2199[_0x3e4204(0x21b)][_0x3e4204(0x1fc)][_0x3e4204(0x1dc)])&&(_0x2e2199={'tree':_0x529707,'command':_0xc6d404['command'],'remainingArgs':_0xc6d404[_0x3e4204(0x218)]});}if(!_0x2e2199)return undefined;const _0x2dee08={..._0x3b7f86};return applyAppBinding(_0x2e2199[_0x3e4204(0x1cc)],_0x2e2199[_0x3e4204(0x21b)],_0x2dee08),{'definition':buildDynamicCommandDefinition(_0x2e2199[_0x3e4204(0x1cc)],_0x2e2199[_0x3e4204(0x21b)]),'args':_0x2e2199[_0x3e4204(0x218)],'flags':_0x2dee08,'tree':_0x2e2199[_0x3e4204(0x1cc)],'command':_0x2e2199[_0x3e4204(0x21b)]};}export function generateDynamicServiceHelp(_0x124eeb){const _0x55a724=a61_0xf62e,_0x2d0aef=listLocalServiceTrees()[_0x55a724(0x1f9)](_0x5cf2e5=>_0x5cf2e5[_0x55a724(0x1d1)][_0x55a724(0x200)]===_0x124eeb);if(!_0x2d0aef)return undefined;const _0x2c342c=[CLI_BIN_NAME+'\x20'+_0x124eeb+'\x20<command>\x20[flags]','',_0x2d0aef[_0x55a724(0x1d1)][_0x55a724(0x1f2)]||_0x124eeb,_0x2d0aef[_0x55a724(0x1d1)][_0x55a724(0x1bf)]?'\x20\x20'+_0x2d0aef['service'][_0x55a724(0x1bf)]:'','',_0x55a724(0x204),..._0x2d0aef[_0x55a724(0x1da)][_0x55a724(0x1fd)](_0x1d595d=>{const _0x58d965=_0x55a724,_0x1011b1=_0x1d595d['fullPath'][_0x58d965(0x1ef)](0x1)[_0x58d965(0x1c9)]('\x20'),_0xafc44c=_0x1d595d[_0x58d965(0x1f8)]===_0x58d965(0x21d)?'':'\x20['+_0x1d595d[_0x58d965(0x1f8)]+']';return'\x20\x20'+_0x1011b1[_0x58d965(0x1fb)](0x18)+'\x20'+(_0x1d595d[_0x58d965(0x1bf)]||'')+_0xafc44c;}),'',_0x55a724(0x224)+CLI_BIN_NAME+_0x55a724(0x1f5)+_0x124eeb+_0x55a724(0x1d3)][_0x55a724(0x1e1)](Boolean);return _0x2c342c[_0x55a724(0x1c9)]('\x0a');}export function listDynamicServiceEntries(){const _0x2ef27b=a61_0xf62e;return listLocalServices()[_0x2ef27b(0x1fd)](_0x403d64=>{const _0x5cbd4d=_0x2ef27b,_0x512492=_0x403d64[_0x5cbd4d(0x20d)];return{'service':_0x512492[_0x5cbd4d(0x1d1)]['code'],'label':_0x512492['service'][_0x5cbd4d(0x1f2)]||_0x512492[_0x5cbd4d(0x1d1)][_0x5cbd4d(0x200)],'commands':_0x512492[_0x5cbd4d(0x1da)][_0x5cbd4d(0x1fd)](_0x388bac=>({'command':dynamicCommandName(_0x388bac),'description':_0x388bac[_0x5cbd4d(0x1bf)]||_0x5cbd4d(0x21a)+_0x388bac[_0x5cbd4d(0x1e8)],'tag':riskTag(_0x388bac[_0x5cbd4d(0x1f8)])}))};});}export function getDynamicServiceEntry(_0x19d4e8){const _0x113f9a=a61_0xf62e;return listDynamicServiceEntries()[_0x113f9a(0x1f9)](_0x1c5d27=>_0x1c5d27[_0x113f9a(0x1d1)]===_0x19d4e8);}export function listDynamicServiceDefinitions(_0x3f1981){const _0x1fe045=a61_0xf62e;return listLocalServiceTrees()['filter'](_0x58dee1=>!_0x3f1981||_0x58dee1[_0x1fe045(0x1d1)][_0x1fe045(0x200)]===_0x3f1981)[_0x1fe045(0x221)](_0x517d92=>_0x517d92['commands'][_0x1fe045(0x1fd)](_0x1a96f1=>buildDynamicCommandDefinition(_0x517d92,_0x1a96f1)));}export function getDynamicServiceDefinitions(_0x2ef7a4){const _0x3f206d=a61_0xf62e,_0x53c77d=listDynamicServiceDefinitions(_0x2ef7a4);return _0x53c77d[_0x3f206d(0x1dc)]>0x0?_0x53c77d:undefined;}export function findDynamicServiceDefinition(_0x29d796,_0x3949f8){const _0x1917a2=a61_0xf62e;return listDynamicServiceDefinitions(_0x29d796)[_0x1917a2(0x1f9)](_0xfd27fc=>_0xfd27fc[_0x1917a2(0x21b)]===_0x3949f8);}export function buildDynamicCommandDefinition(_0x419857,_0x33bbae){const _0x14e84e=a61_0xf62e;return{'service':_0x419857[_0x14e84e(0x1d1)][_0x14e84e(0x200)],'command':dynamicCommandName(_0x33bbae),'description':_0x33bbae[_0x14e84e(0x1bf)]||'Run\x20service\x20command\x20'+_0x33bbae[_0x14e84e(0x1e8)],'risk':_0x33bbae[_0x14e84e(0x1f8)],..._0x33bbae[_0x14e84e(0x1f8)]===_0x14e84e(0x21d)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x33bbae)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x33bbae[_0x14e84e(0x226)][_0x14e84e(0x1fd)](_0x1c0910=>({'name':_0x1c0910[_0x14e84e(0x1f2)],'description':_0x1c0910[_0x14e84e(0x1bf)]||_0x1c0910[_0x14e84e(0x1f2)],'required':_0x1c0910[_0x14e84e(0x20a)]})),'flags':_0x33bbae[_0x14e84e(0x1e9)][_0x14e84e(0x1fd)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x33bbae),async 'dryRun'(_0x6deff6){const _0x5dde8b=_0x14e84e,_0x5b95e6=await compilePlan(_0x33bbae,_0x6deff6);return{'method':_0x5dde8b(0x209),'url':_0x33bbae[_0x5dde8b(0x1e8)],'body':{'target':targetPreview(_0x5b95e6),'params':_0x5b95e6[_0x5dde8b(0x217)]},'description':_0x5dde8b(0x1db)+_0x33bbae['cliPath']};},async 'execute'(_0x2b388a){const _0x339c7f=_0x14e84e,_0x47d585=await compilePlan(_0x33bbae,_0x2b388a),_0x208f5c=Date[_0x339c7f(0x1e0)](),_0x51e6f7=await executePlan(_0x47d585,_0x33bbae,_0x2b388a),_0x278de4=Date[_0x339c7f(0x1e0)]()-_0x208f5c;return{'ok':!![],'data':{'service':_0x419857[_0x339c7f(0x1d1)],'command':_0x33bbae[_0x339c7f(0x1e8)],'target':targetPreview(_0x47d585),'result':_0x51e6f7,'elapsed':_0x278de4},'message':'Service\x20command\x20'+_0x33bbae[_0x339c7f(0x1e8)]+_0x339c7f(0x1ca)+_0x278de4+'ms'};}};}function buildDynamicConfirmationDescription(_0x1d4156){const _0x4fde6f=a61_0xf62e,_0x286f8e=_0x1d4156[_0x4fde6f(0x1bf)]||_0x1d4156[_0x4fde6f(0x1e8)],_0x4a3465=_0x1d4156[_0x4fde6f(0x1f8)]===_0x4fde6f(0x206)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':_0x4fde6f(0x1d2);return _0x4fde6f(0x1dd)+_0x286f8e+'\x22.\x20'+_0x4a3465;}function dynamicCommandName(_0x177c76){const _0x1d0895=a61_0xf62e;return _0x177c76[_0x1d0895(0x1fc)][_0x1d0895(0x1ef)](0x1)['join']('\x20');}function riskTag(_0x570f58){const _0x35ffc1=a61_0xf62e;return _0x570f58===_0x35ffc1(0x21d)?'':_0x35ffc1(0x1d4)+_0x570f58+']';}function flagToCommandFlag(_0x30cdaf){const _0x207c94=a61_0xf62e;return{'name':_0x30cdaf[_0x207c94(0x1e7)],'type':_0x30cdaf[_0x207c94(0x1cd)]==='json'?_0x207c94(0x20f):_0x30cdaf[_0x207c94(0x1cd)],'description':_0x30cdaf[_0x207c94(0x1bf)]||_0x30cdaf[_0x207c94(0x1f2)],'required':_0x30cdaf[_0x207c94(0x20a)],'default':isPrimitiveFlagDefault(_0x30cdaf[_0x207c94(0x1e3)])?_0x30cdaf[_0x207c94(0x1e3)]:undefined,'enum':_0x30cdaf[_0x207c94(0x1fa)]};}async function compilePlan(_0x1636eb,_0x368d33){const _0x43045a=a61_0xf62e;return compileServiceTreeCommand(_0x1636eb,{'flags':_0x368d33[_0x43045a(0x1de)],'args':_0x368d33[_0x43045a(0x226)],'context':await buildServiceContext(_0x1636eb,_0x368d33)});}async function buildServiceContext(_0x210b95,_0x2cc009){const _0x55694e=a61_0xf62e,_0x474aea={'appCode':_0x2cc009['appCode'],'env':_0x2cc009[_0x55694e(0x222)],'envName':_0x2cc009['envName']};if(!usesRuntimeContext(_0x210b95))return _0x474aea;const _0x11d107=await getLoginUserInfo(),_0x3665f8=pickFirst(_0x11d107['userId'],_0x11d107['id']);return{..._0x474aea,'user':_0x11d107,'userId':_0x3665f8,'id':_0x11d107['id'],'username':pickFirst(_0x11d107[_0x55694e(0x1cb)],_0x11d107['userName'],_0x11d107[_0x55694e(0x1eb)]),'userName':_0x11d107[_0x55694e(0x1c8)],'nickname':pickFirst(_0x11d107[_0x55694e(0x1e6)],_0x11d107[_0x55694e(0x223)]),'nickName':_0x11d107[_0x55694e(0x223)],'tenantCode':_0x11d107[_0x55694e(0x1df)],'employeeId':_0x11d107[_0x55694e(0x1ed)]};}function usesRuntimeContext(_0x3d62cd){const _0x26796a=a61_0xf62e;return _0x3d62cd[_0x26796a(0x207)][_0x26796a(0x212)](_0x1de0da=>typeof _0x1de0da['source']===_0x26796a(0x20f)&&(_0x1de0da['source'][_0x26796a(0x1c3)](_0x26796a(0x1c0))||_0x1de0da[_0x26796a(0x1fe)][_0x26796a(0x1c3)](_0x26796a(0x1d5))));}function pickFirst(..._0x1fa719){const _0x12bce3=a61_0xf62e;return _0x1fa719[_0x12bce3(0x1f9)](_0x469ec1=>_0x469ec1!==undefined&&_0x469ec1!==null);}async function executePlan(_0x2c80f3,_0x10f8b3,_0x526047){const _0x107576=a61_0xf62e;if(_0x2c80f3[_0x107576(0x1c1)]===_0x107576(0x225)){const _0xc54d83=await resolveDatasetCode(_0x2c80f3,_0x10f8b3,_0x526047);return executeData(_0xc54d83,_0x2c80f3[_0x107576(0x21b)],_0x2c80f3[_0x107576(0x217)]);}if(_0x2c80f3[_0x107576(0x1c1)]==='sql'){if(!_0x2c80f3[_0x107576(0x1ee)])throw CliErrors[_0x107576(0x220)]('Service\x20command\x20'+_0x10f8b3[_0x107576(0x1e8)]+_0x107576(0x215));return executeSdkSql(_0x2c80f3['sqlCode'],normalizeScalarParams(_0x2c80f3[_0x107576(0x217)]));}if(_0x2c80f3[_0x107576(0x1c1)]===_0x107576(0x1c6)){const _0x21a3e9=_0x2c80f3[_0x107576(0x1f4)]||_0x2c80f3['bffCode']||(_0x2c80f3[_0x107576(0x21f)]==null?'':String(_0x2c80f3[_0x107576(0x21f)]));if(!_0x21a3e9)throw CliErrors[_0x107576(0x220)]('Service\x20command\x20'+_0x10f8b3[_0x107576(0x1e8)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x21a3e9,_0x2c80f3[_0x107576(0x217)]);}throw CliErrors[_0x107576(0x220)](_0x107576(0x1d0)+_0x2c80f3[_0x107576(0x1c1)]);}async function resolveDatasetCode(_0xf64742,_0x5b41c3,_0x17ba57){const _0x5a3b33=a61_0xf62e;if(_0xf64742[_0x5a3b33(0x1cf)])return _0xf64742[_0x5a3b33(0x1cf)];if(!_0xf64742[_0x5a3b33(0x1d6)])throw CliErrors['validation'](_0x5a3b33(0x210)+_0x5b41c3[_0x5a3b33(0x1e8)]+_0x5a3b33(0x1c7));const _0x221f27=await listDatasets(_0x17ba57[_0x5a3b33(0x1f6)]),_0x105414=_0x221f27[_0x5a3b33(0x1f9)](_0x59ea64=>_0x59ea64['dbtableConfig']?.[_0x5a3b33(0x1e2)]===_0xf64742[_0x5a3b33(0x1d6)]);if(!_0x105414?.[_0x5a3b33(0x200)])throw CliErrors['validation'](_0x5a3b33(0x205)+_0xf64742[_0x5a3b33(0x1d6)]+_0x5a3b33(0x1d9)+_0x17ba57['appCode']+'.',_0x5a3b33(0x1f0));return _0x105414[_0x5a3b33(0x200)];}function applyAppBinding(_0x5a9245,_0x24fa96,_0x3d9b80){const _0x5a406e=a61_0xf62e,_0x135e80=_0x24fa96[_0x5a406e(0x1e5)][_0x5a406e(0x20b)];if(!_0x135e80)return;const _0x4f777e=_0x5a9245[_0x5a406e(0x21c)][_0x135e80];if(!_0x4f777e)throw CliErrors[_0x5a406e(0x220)]('Unknown\x20appRef\x20\x22'+_0x135e80+_0x5a406e(0x1c4)+_0x24fa96['cliPath']+'.',_0x5a406e(0x1f1));const _0x37a42e=_0x4f777e['appcode']||_0x4f777e[_0x5a406e(0x1f6)];_0x37a42e&&!hasText(_0x3d9b80[_0x5a406e(0x1c2)])&&(_0x3d9b80[_0x5a406e(0x1c2)]=_0x37a42e),_0x4f777e[_0x5a406e(0x211)]&&!hasText(_0x3d9b80[_0x5a406e(0x211)])&&!hasText(_0x3d9b80[_0x5a406e(0x1c2)])&&(_0x3d9b80[_0x5a406e(0x211)]=_0x4f777e[_0x5a406e(0x211)]),_0x4f777e[_0x5a406e(0x1ec)]&&!hasText(_0x3d9b80[_0x5a406e(0x1ec)])&&(_0x3d9b80[_0x5a406e(0x1ec)]=_0x4f777e['env']);}function renderDynamicCommandHelp(_0x2a95a0){const _0x435e40=a61_0xf62e,_0x444abb=[_0x435e40(0x208),_0x435e40(0x1f7)+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1c1)],_0x435e40(0x219)+_0x2a95a0[_0x435e40(0x1e5)]['command']];if(_0x2a95a0['target'][_0x435e40(0x1cf)])_0x444abb[_0x435e40(0x1c5)]('\x20\x20\x20\x20datasetCode:\x20'+_0x2a95a0['target'][_0x435e40(0x1cf)]);if(_0x2a95a0[_0x435e40(0x1e5)]['datatable'])_0x444abb[_0x435e40(0x1c5)]('\x20\x20\x20\x20datatable:\x20'+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1d6)]);if(_0x2a95a0['target'][_0x435e40(0x1ee)])_0x444abb[_0x435e40(0x1c5)]('\x20\x20\x20\x20sqlCode:\x20'+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1ee)]);if(_0x2a95a0[_0x435e40(0x1e5)]['scriptName'])_0x444abb[_0x435e40(0x1c5)](_0x435e40(0x1ce)+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1f4)]);if(_0x2a95a0['mapTo']['length']>0x0){_0x444abb['push']('','\x20\x20MAP\x20TO');for(const _0x34c626 of _0x2a95a0[_0x435e40(0x207)]){_0x444abb[_0x435e40(0x1c5)](_0x435e40(0x201)+(_0x34c626['source']||_0x435e40(0x213))+_0x435e40(0x1ea)+_0x34c626[_0x435e40(0x1e5)]+(_0x34c626['operator']?'.'+_0x34c626[_0x435e40(0x1d8)]:''));}}return _0x444abb[_0x435e40(0x1c9)]('\x0a');}function targetPreview(_0x29fa71){const _0x2f6b3a=a61_0xf62e;return{'kind':_0x29fa71[_0x2f6b3a(0x1c1)],'command':_0x29fa71[_0x2f6b3a(0x21b)],'appRef':_0x29fa71[_0x2f6b3a(0x20b)],'datasetCode':_0x29fa71[_0x2f6b3a(0x1cf)],'datatable':_0x29fa71['datatable'],'sqlCode':_0x29fa71['sqlCode'],'bffCode':_0x29fa71['bffCode'],'bffId':_0x29fa71[_0x2f6b3a(0x21f)],'functionName':_0x29fa71[_0x2f6b3a(0x1f4)]};}function normalizeScalarParams(_0x2b1019){const _0x4d0454=a61_0xf62e;return Object['fromEntries'](Object['entries'](_0x2b1019)[_0x4d0454(0x1e1)](([,_0x4eb5cb])=>typeof _0x4eb5cb===_0x4d0454(0x20f)||typeof _0x4eb5cb===_0x4d0454(0x1f3)));}function hasText(_0x5a651c){const _0x3f12e7=a61_0xf62e;return typeof _0x5a651c===_0x3f12e7(0x20f)&&_0x5a651c[_0x3f12e7(0x1e4)]()[_0x3f12e7(0x1dc)]>0x0;}function isPrimitiveFlagDefault(_0x422821){const _0x18a3f5=a61_0xf62e;return _0x422821===undefined||typeof _0x422821===_0x18a3f5(0x20f)||typeof _0x422821==='number'||typeof _0x422821==='boolean';}
|
|
1
|
+
(function(_0xde45f2,_0x1dc565){const _0x1765b0=a62_0x4cc8,_0x232d2b=_0xde45f2();while(!![]){try{const _0x42ee4b=parseInt(_0x1765b0(0x14c))/0x1+-parseInt(_0x1765b0(0x149))/0x2*(-parseInt(_0x1765b0(0x16a))/0x3)+parseInt(_0x1765b0(0x12d))/0x4*(-parseInt(_0x1765b0(0x163))/0x5)+-parseInt(_0x1765b0(0x126))/0x6+parseInt(_0x1765b0(0x140))/0x7*(-parseInt(_0x1765b0(0x129))/0x8)+parseInt(_0x1765b0(0x17b))/0x9+parseInt(_0x1765b0(0x188))/0xa;if(_0x42ee4b===_0x1dc565)break;else _0x232d2b['push'](_0x232d2b['shift']());}catch(_0x350d15){_0x232d2b['push'](_0x232d2b['shift']());}}}(a62_0x37f4,0x90c79));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';function a62_0x4cc8(_0x57d531,_0x469c9b){_0x57d531=_0x57d531-0x123;const _0x37f486=a62_0x37f4();let _0x4cc8fe=_0x37f486[_0x57d531];return _0x4cc8fe;}import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x3a4106,_0x280be5){const _0x322828=a62_0x4cc8,_0x5dc8e9=listLocalServiceTrees();let _0x28ee30;for(const _0x39ad9c of _0x5dc8e9){const _0x5119f7=matchServiceTreeCommand(_0x39ad9c,_0x3a4106);if(!_0x5119f7)continue;(!_0x28ee30||_0x5119f7['command'][_0x322828(0x139)][_0x322828(0x16b)]>_0x28ee30[_0x322828(0x138)]['fullPath'][_0x322828(0x16b)])&&(_0x28ee30={'tree':_0x39ad9c,'command':_0x5119f7['command'],'remainingArgs':_0x5119f7[_0x322828(0x152)]});}if(!_0x28ee30)return undefined;const _0x4361d2={..._0x280be5};return applyAppBinding(_0x28ee30['tree'],_0x28ee30[_0x322828(0x138)],_0x4361d2),{'definition':buildDynamicCommandDefinition(_0x28ee30[_0x322828(0x136)],_0x28ee30[_0x322828(0x138)]),'args':_0x28ee30['remainingArgs'],'flags':_0x4361d2,'tree':_0x28ee30[_0x322828(0x136)],'command':_0x28ee30[_0x322828(0x138)]};}export function generateDynamicServiceHelp(_0x5b0aa3){const _0x3ab3a8=a62_0x4cc8,_0x371cf5=listLocalServiceTrees()[_0x3ab3a8(0x16e)](_0x4be0b5=>_0x4be0b5[_0x3ab3a8(0x176)][_0x3ab3a8(0x172)]===_0x5b0aa3);if(!_0x371cf5)return undefined;const _0x285653=[CLI_BIN_NAME+'\x20'+_0x5b0aa3+_0x3ab3a8(0x161),'',_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x13a)]||_0x5b0aa3,_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x156)]?'\x20\x20'+_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x156)]:'','',_0x3ab3a8(0x144),..._0x371cf5[_0x3ab3a8(0x125)][_0x3ab3a8(0x148)](_0x477468=>{const _0x3083fe=_0x3ab3a8,_0x2a534e=_0x477468['fullPath'][_0x3083fe(0x160)](0x1)[_0x3083fe(0x128)]('\x20'),_0x26bd88=_0x477468['risk']===_0x3083fe(0x168)?'':'\x20['+_0x477468[_0x3083fe(0x12a)]+']';return'\x20\x20'+_0x2a534e[_0x3083fe(0x14e)](0x18)+'\x20'+(_0x477468['description']||'')+_0x26bd88;}),'',_0x3ab3a8(0x133)+CLI_BIN_NAME+_0x3ab3a8(0x14b)+_0x5b0aa3+'`\x20to\x20inspect\x20the\x20manifest.'][_0x3ab3a8(0x143)](Boolean);return _0x285653[_0x3ab3a8(0x128)]('\x0a');}export function listDynamicServiceEntries(){const _0x44d36b=a62_0x4cc8;return listLocalServices()[_0x44d36b(0x148)](_0xf5b787=>{const _0x4a1eaa=_0x44d36b,_0x3d183a=_0xf5b787[_0x4a1eaa(0x169)];return{'service':_0x3d183a[_0x4a1eaa(0x176)][_0x4a1eaa(0x172)],'label':_0x3d183a[_0x4a1eaa(0x176)][_0x4a1eaa(0x13a)]||_0x3d183a['service'][_0x4a1eaa(0x172)],'commands':_0x3d183a[_0x4a1eaa(0x125)][_0x4a1eaa(0x148)](_0x4d5871=>({'command':dynamicCommandName(_0x4d5871),'description':_0x4d5871['description']||_0x4a1eaa(0x13d)+_0x4d5871[_0x4a1eaa(0x16c)],'tag':riskTag(_0x4d5871[_0x4a1eaa(0x12a)])}))};});}export function getDynamicServiceEntry(_0x21c932){const _0x496898=a62_0x4cc8;return listDynamicServiceEntries()[_0x496898(0x16e)](_0x26dc10=>_0x26dc10['service']===_0x21c932);}export function listDynamicServiceDefinitions(_0x334312){const _0x41b826=a62_0x4cc8;return listLocalServiceTrees()['filter'](_0x43a467=>!_0x334312||_0x43a467[_0x41b826(0x176)][_0x41b826(0x172)]===_0x334312)[_0x41b826(0x13c)](_0x5021d4=>_0x5021d4[_0x41b826(0x125)][_0x41b826(0x148)](_0xc14154=>buildDynamicCommandDefinition(_0x5021d4,_0xc14154)));}export function getDynamicServiceDefinitions(_0x4e1231){const _0x577fff=a62_0x4cc8,_0x45f2ed=listDynamicServiceDefinitions(_0x4e1231);return _0x45f2ed[_0x577fff(0x16b)]>0x0?_0x45f2ed:undefined;}export function findDynamicServiceDefinition(_0x41e719,_0x526925){const _0x5ed16e=a62_0x4cc8;return listDynamicServiceDefinitions(_0x41e719)[_0x5ed16e(0x16e)](_0x2dadf4=>_0x2dadf4[_0x5ed16e(0x138)]===_0x526925);}export function buildDynamicCommandDefinition(_0x8758b6,_0x452090){const _0x1ccef9=a62_0x4cc8;return{'service':_0x8758b6['service'][_0x1ccef9(0x172)],'command':dynamicCommandName(_0x452090),'description':_0x452090[_0x1ccef9(0x156)]||_0x1ccef9(0x13d)+_0x452090['cliPath'],'risk':_0x452090[_0x1ccef9(0x12a)],..._0x452090[_0x1ccef9(0x12a)]===_0x1ccef9(0x168)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x452090)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x452090['args'][_0x1ccef9(0x148)](_0x1a9370=>({'name':_0x1a9370['name'],'description':_0x1a9370['description']||_0x1a9370[_0x1ccef9(0x13a)],'required':_0x1a9370[_0x1ccef9(0x17e)]})),'flags':_0x452090[_0x1ccef9(0x12b)][_0x1ccef9(0x148)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x452090),async 'dryRun'(_0x28e80a){const _0x123a45=_0x1ccef9,_0x37e008=await compilePlan(_0x452090,_0x28e80a);return{'method':_0x123a45(0x145),'url':_0x452090[_0x123a45(0x16c)],'body':{'target':targetPreview(_0x37e008),'params':_0x37e008[_0x123a45(0x13e)]},'description':_0x123a45(0x137)+_0x452090['cliPath']};},async 'execute'(_0x36671a){const _0x4e3f13=_0x1ccef9,_0x25c6a9=await compilePlan(_0x452090,_0x36671a),_0x35b92b=Date[_0x4e3f13(0x177)](),_0x4ce442=await executePlan(_0x25c6a9,_0x452090,_0x36671a),_0x498ba3=Date['now']()-_0x35b92b;return{'ok':!![],'data':{'service':_0x8758b6[_0x4e3f13(0x176)],'command':_0x452090[_0x4e3f13(0x16c)],'target':targetPreview(_0x25c6a9),'result':_0x4ce442,'elapsed':_0x498ba3},'message':_0x4e3f13(0x179)+_0x452090[_0x4e3f13(0x16c)]+_0x4e3f13(0x15e)+_0x498ba3+'ms'};}};}function buildDynamicConfirmationDescription(_0x397d9c){const _0x10e31b=a62_0x4cc8,_0xe3b9c=_0x397d9c['description']||_0x397d9c['cliPath'],_0x52493b=_0x397d9c[_0x10e31b(0x12a)]==='high-risk-write'?_0x10e31b(0x185):_0x10e31b(0x147);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0xe3b9c+_0x10e31b(0x14a)+_0x52493b;}function dynamicCommandName(_0x23b1a5){const _0x349882=a62_0x4cc8;return _0x23b1a5[_0x349882(0x139)][_0x349882(0x160)](0x1)[_0x349882(0x128)]('\x20');}function riskTag(_0xc3311b){const _0x3fa393=a62_0x4cc8;return _0xc3311b===_0x3fa393(0x168)?'':_0x3fa393(0x175)+_0xc3311b+']';}function flagToCommandFlag(_0x2fb0b1){const _0x10f02d=a62_0x4cc8;return{'name':_0x2fb0b1['cliName'],'type':_0x2fb0b1['type']===_0x10f02d(0x15f)?'string':_0x2fb0b1[_0x10f02d(0x166)],'description':_0x2fb0b1[_0x10f02d(0x156)]||_0x2fb0b1[_0x10f02d(0x13a)],'required':_0x2fb0b1[_0x10f02d(0x17e)],'default':isPrimitiveFlagDefault(_0x2fb0b1['default'])?_0x2fb0b1[_0x10f02d(0x17a)]:undefined,'enum':_0x2fb0b1[_0x10f02d(0x150)]};}async function compilePlan(_0x3d1029,_0x339241){const _0x4c1441=a62_0x4cc8;return compileServiceTreeCommand(_0x3d1029,{'flags':_0x339241['rawFlags'],'args':_0x339241[_0x4c1441(0x162)],'context':await buildServiceContext(_0x3d1029,_0x339241)});}async function buildServiceContext(_0x5b319d,_0x26296b){const _0x337d99=a62_0x4cc8,_0x350e75={'appCode':_0x26296b[_0x337d99(0x16d)],'env':_0x26296b['envName'],'envName':_0x26296b[_0x337d99(0x15a)]};if(!usesRuntimeContext(_0x5b319d))return _0x350e75;const _0x494113=await getLoginUserInfo(),_0x194dca=pickFirst(_0x494113[_0x337d99(0x184)],_0x494113['id']);return{..._0x350e75,'user':_0x494113,'userId':_0x194dca,'id':_0x494113['id'],'username':pickFirst(_0x494113[_0x337d99(0x158)],_0x494113[_0x337d99(0x134)],_0x494113[_0x337d99(0x187)]),'userName':_0x494113[_0x337d99(0x134)],'nickname':pickFirst(_0x494113['nickname'],_0x494113[_0x337d99(0x132)]),'nickName':_0x494113[_0x337d99(0x132)],'tenantCode':_0x494113['tenantCode'],'employeeId':_0x494113['employeeId']};}function usesRuntimeContext(_0x1eae89){const _0x527fbc=a62_0x4cc8;return _0x1eae89['mapTo'][_0x527fbc(0x155)](_0x2fcb84=>typeof _0x2fcb84[_0x527fbc(0x141)]==='string'&&(_0x2fcb84['source'][_0x527fbc(0x12f)]('context.')||_0x2fcb84['source'][_0x527fbc(0x12f)]('ctx.')));}function pickFirst(..._0x37bfdd){const _0x27b74b=a62_0x4cc8;return _0x37bfdd[_0x27b74b(0x16e)](_0x24cbef=>_0x24cbef!==undefined&&_0x24cbef!==null);}async function executePlan(_0x32051e,_0x58fb12,_0x29105e){const _0x3a2948=a62_0x4cc8;if(_0x32051e[_0x3a2948(0x180)]==='data'){const _0x5b4a50=await resolveDatasetCode(_0x32051e,_0x58fb12,_0x29105e);return executeData(_0x5b4a50,_0x32051e[_0x3a2948(0x138)],_0x32051e[_0x3a2948(0x13e)]);}if(_0x32051e['kind']==='sql'){if(!_0x32051e[_0x3a2948(0x182)])throw CliErrors[_0x3a2948(0x171)](_0x3a2948(0x179)+_0x58fb12[_0x3a2948(0x16c)]+_0x3a2948(0x15b));return executeSdkSql(_0x32051e[_0x3a2948(0x182)],normalizeScalarParams(_0x32051e['params']));}if(_0x32051e['kind']===_0x3a2948(0x167)){const _0x195d35=_0x32051e['scriptName']||_0x32051e['bffCode']||(_0x32051e[_0x3a2948(0x165)]==null?'':String(_0x32051e[_0x3a2948(0x165)]));if(!_0x195d35)throw CliErrors['validation'](_0x3a2948(0x179)+_0x58fb12['cliPath']+_0x3a2948(0x164));return executeSdkBff(_0x195d35,_0x32051e[_0x3a2948(0x13e)]);}throw CliErrors[_0x3a2948(0x171)](_0x3a2948(0x170)+_0x32051e[_0x3a2948(0x180)]);}async function resolveDatasetCode(_0x47b630,_0x3c8dc0,_0x4ab802){const _0x3c6d70=a62_0x4cc8;if(_0x47b630['datasetCode'])return _0x47b630[_0x3c6d70(0x13b)];if(!_0x47b630[_0x3c6d70(0x15c)])throw CliErrors[_0x3c6d70(0x171)](_0x3c6d70(0x179)+_0x3c8dc0[_0x3c6d70(0x16c)]+_0x3c6d70(0x146));const _0x2ba232=await listDatasets(_0x4ab802[_0x3c6d70(0x16d)]),_0x1980ea=_0x2ba232[_0x3c6d70(0x16e)](_0x4668d9=>_0x4668d9['dbtableConfig']?.[_0x3c6d70(0x131)]===_0x47b630[_0x3c6d70(0x15c)]);if(!_0x1980ea?.[_0x3c6d70(0x172)])throw CliErrors[_0x3c6d70(0x171)](_0x3c6d70(0x178)+_0x47b630[_0x3c6d70(0x15c)]+_0x3c6d70(0x17c)+_0x4ab802[_0x3c6d70(0x16d)]+'.',_0x3c6d70(0x123));return _0x1980ea[_0x3c6d70(0x172)];}function applyAppBinding(_0x4a38de,_0x525516,_0x25ed73){const _0x2bbd1b=a62_0x4cc8,_0x40bb32=_0x525516[_0x2bbd1b(0x17d)][_0x2bbd1b(0x127)];if(!_0x40bb32)return;const _0x485cc2=_0x4a38de[_0x2bbd1b(0x17f)][_0x40bb32];if(!_0x485cc2)throw CliErrors[_0x2bbd1b(0x171)]('Unknown\x20appRef\x20\x22'+_0x40bb32+_0x2bbd1b(0x135)+_0x525516[_0x2bbd1b(0x16c)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0xd817e=_0x485cc2[_0x2bbd1b(0x16f)]||_0x485cc2[_0x2bbd1b(0x16d)];_0xd817e&&!hasText(_0x25ed73['appcode'])&&(_0x25ed73[_0x2bbd1b(0x16f)]=_0xd817e),_0x485cc2[_0x2bbd1b(0x12e)]&&!hasText(_0x25ed73[_0x2bbd1b(0x12e)])&&!hasText(_0x25ed73[_0x2bbd1b(0x16f)])&&(_0x25ed73['app']=_0x485cc2[_0x2bbd1b(0x12e)]),_0x485cc2[_0x2bbd1b(0x12c)]&&!hasText(_0x25ed73[_0x2bbd1b(0x12c)])&&(_0x25ed73[_0x2bbd1b(0x12c)]=_0x485cc2[_0x2bbd1b(0x12c)]);}function renderDynamicCommandHelp(_0x5bc849){const _0x263e92=a62_0x4cc8,_0x3b9f91=[_0x263e92(0x124),_0x263e92(0x15d)+_0x5bc849['target'][_0x263e92(0x180)],_0x263e92(0x173)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x138)]];if(_0x5bc849[_0x263e92(0x17d)]['datasetCode'])_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x130)+_0x5bc849['target'][_0x263e92(0x13b)]);if(_0x5bc849['target']['datatable'])_0x3b9f91['push'](_0x263e92(0x174)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x15c)]);if(_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x182)])_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x186)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x182)]);if(_0x5bc849[_0x263e92(0x17d)]['scriptName'])_0x3b9f91[_0x263e92(0x13f)]('\x20\x20\x20\x20functionName:\x20'+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x14d)]);if(_0x5bc849[_0x263e92(0x181)][_0x263e92(0x16b)]>0x0){_0x3b9f91[_0x263e92(0x13f)]('','\x20\x20MAP\x20TO');for(const _0x13d8b1 of _0x5bc849[_0x263e92(0x181)]){_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x157)+(_0x13d8b1[_0x263e92(0x141)]||_0x263e92(0x153))+'\x20->\x20'+_0x13d8b1['target']+(_0x13d8b1[_0x263e92(0x189)]?'.'+_0x13d8b1[_0x263e92(0x189)]:''));}}return _0x3b9f91[_0x263e92(0x128)]('\x0a');}function a62_0x37f4(){const _0x2e85f9=['tree','Preview\x20dynamic\x20service\x20command:\x20','command','fullPath','name','datasetCode','flatMap','Run\x20service\x20command\x20','params','push','5991293SoOUyS','source','boolean','filter','Commands:','SERVICE_TREE','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','map','10oPrtBe','\x22.\x20','\x20service\x20detail\x20--service\x20','250338FlWDwY','scriptName','padEnd','string','enum','entries','remainingArgs','const','trim','some','description','\x20\x20\x20\x20','username','number','envName','\x20requires\x20target.sqlCode.','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20completed\x20in\x20','json','slice','\x20<command>\x20[flags]','args','643475bRoFhr','\x20requires\x20target.functionName.','bffId','type','bff','read','normalizedManifest','258180OGKnST','length','cliPath','appCode','find','appcode','Unsupported\x20service\x20target\x20kind:\x20','validation','code','\x20\x20\x20\x20command:\x20','\x20\x20\x20\x20datatable:\x20','\x20\x20[','service','now','Cannot\x20resolve\x20datatable\x20\x22','Service\x20command\x20','default','758988bdtTUo','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','target','required','appBindings','kind','mapTo','sqlCode','bffCode','userId','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x20\x20\x20\x20sqlCode:\x20','loginName','25798030gUpDmw','operator','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20SERVICE\x20TREE\x20TARGET','commands','5969952bwlISk','appRef','join','8MgZvHH','risk','flags','env','28zYBLGC','app','startsWith','\x20\x20\x20\x20datasetCode:\x20','tableName','nickName','Use\x20`','userName','\x22\x20in\x20service\x20command\x20'];a62_0x37f4=function(){return _0x2e85f9;};return a62_0x37f4();}function targetPreview(_0x452b3f){const _0x4ba091=a62_0x4cc8;return{'kind':_0x452b3f[_0x4ba091(0x180)],'command':_0x452b3f[_0x4ba091(0x138)],'appRef':_0x452b3f[_0x4ba091(0x127)],'datasetCode':_0x452b3f[_0x4ba091(0x13b)],'datatable':_0x452b3f[_0x4ba091(0x15c)],'sqlCode':_0x452b3f['sqlCode'],'bffCode':_0x452b3f[_0x4ba091(0x183)],'bffId':_0x452b3f[_0x4ba091(0x165)],'functionName':_0x452b3f[_0x4ba091(0x14d)]};}function normalizeScalarParams(_0x334cf4){const _0x3d53aa=a62_0x4cc8;return Object['fromEntries'](Object[_0x3d53aa(0x151)](_0x334cf4)['filter'](([,_0x320596])=>typeof _0x320596===_0x3d53aa(0x14f)||typeof _0x320596===_0x3d53aa(0x159)));}function hasText(_0x323612){const _0x104d16=a62_0x4cc8;return typeof _0x323612==='string'&&_0x323612[_0x104d16(0x154)]()[_0x104d16(0x16b)]>0x0;}function isPrimitiveFlagDefault(_0x2f2130){const _0x4786c3=a62_0x4cc8;return _0x2f2130===undefined||typeof _0x2f2130==='string'||typeof _0x2f2130==='number'||typeof _0x2f2130===_0x4786c3(0x142);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a63_0x5d8b(_0xdf2350,_0x2b7824){_0xdf2350=_0xdf2350-0xb0;const _0x2cfe28=a63_0x2cfe();let _0x5d8b4=_0x2cfe28[_0xdf2350];return _0x5d8b4;}(function(_0x13e45c,_0x17b425){const _0x30c15e=a63_0x5d8b,_0x35dfc7=_0x13e45c();while(!![]){try{const _0xa6f3c5=-parseInt(_0x30c15e(0xba))/0x1+parseInt(_0x30c15e(0xb7))/0x2+parseInt(_0x30c15e(0xc8))/0x3+parseInt(_0x30c15e(0xd2))/0x4*(parseInt(_0x30c15e(0xb1))/0x5)+parseInt(_0x30c15e(0xb5))/0x6+parseInt(_0x30c15e(0xd5))/0x7+-parseInt(_0x30c15e(0xb0))/0x8;if(_0xa6f3c5===_0x17b425)break;else _0x35dfc7['push'](_0x35dfc7['shift']());}catch(_0x239dfb){_0x35dfc7['push'](_0x35dfc7['shift']());}}}(a63_0x2cfe,0x52037));export function adaptServiceTreeManifestForLegacyFramework(_0x49119a){const _0x3325ca=a63_0x5d8b,_0x235061=cloneJsonValue(_0x49119a),_0x21cbf1=[];if(!isObjectRecord(_0x235061))return{'manifest':_0x235061,'errors':_0x21cbf1};return Array['isArray'](_0x235061[_0x3325ca(0xbe)])&&_0x235061[_0x3325ca(0xbe)][_0x3325ca(0xc6)]((_0x31ce29,_0x2b5785)=>{const _0x2b72e4=_0x3325ca;if(!isObjectRecord(_0x31ce29))return;adaptBffTarget(_0x31ce29[_0x2b72e4(0xd3)],_0x2b72e4(0xb6)+_0x2b5785+_0x2b72e4(0xcb),_0x21cbf1);}),adaptResources(_0x235061[_0x3325ca(0xc3)],_0x3325ca(0xc2),_0x21cbf1),{'manifest':_0x235061,'errors':_0x21cbf1};}export function toPublicServiceTreeTarget(_0x5dba48){const _0x13e8f5=a63_0x5d8b,{scriptName:_0xbdd8ac,..._0x4e2502}=_0x5dba48;return typeof _0xbdd8ac===_0x13e8f5(0xbd)&&_0xbdd8ac['trim']()&&(_0x4e2502[_0x13e8f5(0xca)]=_0xbdd8ac),_0x4e2502;}export function toPublicNormalizedServiceTree(_0x7c6435){const _0x2bb4d4=a63_0x5d8b;return{..._0x7c6435,'commands':_0x7c6435[_0x2bb4d4(0xbe)][_0x2bb4d4(0xc1)](_0x5dad5c=>({..._0x5dad5c,'target':toPublicServiceTreeTarget(_0x5dad5c[_0x2bb4d4(0xd3)])}))};}function adaptResources(_0x436750,_0x1ba6c1,_0x5e467a){const _0x2e1de0=a63_0x5d8b;if(!isObjectRecord(_0x436750))return;for(const [_0x424d70,_0x102104]of Object[_0x2e1de0(0xb9)](_0x436750)){if(!isObjectRecord(_0x102104))continue;const _0x1e20ce=_0x1ba6c1+'.'+_0x424d70;if(isObjectRecord(_0x102104['actions']))for(const [_0x108161,_0x2ea5c7]of Object[_0x2e1de0(0xb9)](_0x102104[_0x2e1de0(0xc0)])){if(!isObjectRecord(_0x2ea5c7))continue;const _0x1f7a2f=_0x1e20ce+_0x2e1de0(0xd0)+_0x108161,_0x3f7461=isObjectRecord(_0x2ea5c7[_0x2e1de0(0xd3)])&&_0x2ea5c7['target']['kind']===_0x2e1de0(0xc5);adaptBffTarget(_0x2ea5c7[_0x2e1de0(0xd3)],_0x1f7a2f+'.target',_0x5e467a),(_0x3f7461||isBffAction(_0x2ea5c7))&&adaptFunctionNameField(_0x2ea5c7,_0x1f7a2f,_0x5e467a);}adaptResources(_0x102104[_0x2e1de0(0xc3)],_0x1e20ce+_0x2e1de0(0xb2),_0x5e467a);}}function a63_0x2cfe(){const _0xfe837e=['entries','345578PKjlgx','hasOwnProperty','push','string','commands','prototype','actions','map','$.resources','resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','bff','forEach','action','651117mAvjxA','isArray','functionName','].target','trim','bff.exec','.scriptName','fromEntries','.actions.','error','45072WDpoHk','target','scriptName','89453WdhzqG','1446008EjWXqQ','140IVBILO','.resources','call','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','1747062tSQwOC','$.commands[','51514cBlRfj','object'];a63_0x2cfe=function(){return _0xfe837e;};return a63_0x2cfe();}function adaptBffTarget(_0x45e822,_0x5bc2d8,_0x1871af){if(!isObjectRecord(_0x45e822)||_0x45e822['kind']!=='bff')return;adaptFunctionNameField(_0x45e822,_0x5bc2d8,_0x1871af);}function adaptFunctionNameField(_0x209d93,_0x594022,_0x5607b5){const _0x19baaf=a63_0x5d8b;Object[_0x19baaf(0xbf)]['hasOwnProperty'][_0x19baaf(0xb3)](_0x209d93,'scriptName')&&_0x5607b5['push']({'level':_0x19baaf(0xd1),'path':_0x594022+_0x19baaf(0xce),'message':_0x19baaf(0xb4)});if(Object[_0x19baaf(0xbf)][_0x19baaf(0xbb)][_0x19baaf(0xb3)](_0x209d93,_0x19baaf(0xca))){if(typeof _0x209d93[_0x19baaf(0xca)]!==_0x19baaf(0xbd)||!_0x209d93[_0x19baaf(0xca)][_0x19baaf(0xcc)]()){_0x5607b5[_0x19baaf(0xbc)]({'level':_0x19baaf(0xd1),'path':_0x594022+'.functionName','message':_0x19baaf(0xc4)}),delete _0x209d93['functionName'];return;}_0x209d93[_0x19baaf(0xd4)]=_0x209d93[_0x19baaf(0xca)],delete _0x209d93[_0x19baaf(0xca)];}}function isBffAction(_0x18afc4){const _0x19e2d4=a63_0x5d8b;return _0x18afc4['kind']===_0x19e2d4(0xc5)||_0x18afc4[_0x19e2d4(0xc7)]===_0x19e2d4(0xcd)||_0x18afc4[_0x19e2d4(0xd3)]==='bff.exec';}function cloneJsonValue(_0x1b6226){const _0x473cd2=a63_0x5d8b;if(Array['isArray'](_0x1b6226))return _0x1b6226[_0x473cd2(0xc1)](_0x23fc99=>cloneJsonValue(_0x23fc99));if(isObjectRecord(_0x1b6226))return Object[_0x473cd2(0xcf)](Object[_0x473cd2(0xb9)](_0x1b6226)['map'](([_0x2464b9,_0x44adf5])=>[_0x2464b9,cloneJsonValue(_0x44adf5)]));return _0x1b6226;}function isObjectRecord(_0x484b41){const _0x1e3b0c=a63_0x5d8b;return Boolean(_0x484b41)&&typeof _0x484b41===_0x1e3b0c(0xb8)&&!Array[_0x1e3b0c(0xc9)](_0x484b41);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x6b6460=a63_0x64ff;(function(_0x4ded50,_0xbaeefc){const _0x2dfebd=a63_0x64ff,_0x2be13d=_0x4ded50();while(!![]){try{const _0x58964f=parseInt(_0x2dfebd(0x1e9))/0x1+-parseInt(_0x2dfebd(0x1c7))/0x2*(-parseInt(_0x2dfebd(0x1f7))/0x3)+-parseInt(_0x2dfebd(0x1b8))/0x4+-parseInt(_0x2dfebd(0x1d9))/0x5+parseInt(_0x2dfebd(0x1f5))/0x6+parseInt(_0x2dfebd(0x1f6))/0x7*(parseInt(_0x2dfebd(0x1ba))/0x8)+parseInt(_0x2dfebd(0x1e5))/0x9;if(_0x58964f===_0xbaeefc)break;else _0x2be13d['push'](_0x2be13d['shift']());}catch(_0x3878d6){_0x2be13d['push'](_0x2be13d['shift']());}}}(a63_0x443f,0x4b255));function a63_0x443f(){const _0x118032=['WRITE','lower\x20kebab-case\x20service\x20code','validate','registry','string','manifests','kind','entry','636355zBcHMg','manifest','write','service','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','\x20service(s),\x20updated\x20','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.','registryPath','cliPath','Local\x20service\x20code,\x20for\x20example\x20crm','errors','file','634023uYyiOd','report','remove','Local\x20service\x20not\x20found:\x20','211084PvmFEL','length','warnings','imported','Exported\x20service\x20','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','version','Removed\x20service\x20','source','reduce','entries','str','966210NaaIaZ','3010akFGyM','37683cybkmd','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','target','flags','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','filePath','name','\x20service\x20','1430208vJkGvM','export','904zYfRuq','normalizedManifest','replaced','description','map','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','importedAt','Imported','risk','Service\x20Tree\x20manifest\x20file\x20path','import','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Service\x20manifest\x20validation\x20passed.','48QSsuCT','detail','hash','serviceCode','read','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Service\x20registry\x20validation\x20passed.','serviceCount','updated','commands'];a63_0x443f=function(){return _0x118032;};return a63_0x443f();}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':a63_0x6b6460(0x1e4),'type':a63_0x6b6460(0x1d5),'required':!![],'description':a63_0x6b6460(0x1c3)},SERVICE_FLAG={'name':a63_0x6b6460(0x1dc),'type':a63_0x6b6460(0x1d5),'required':!![],'description':a63_0x6b6460(0x1e2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a63_0x6b6460(0x1d2)}};function summarizeService(_0x22a791){const _0x14acde=a63_0x6b6460;return{'serviceCode':_0x22a791['serviceCode'],'name':_0x22a791[_0x14acde(0x1bb)][_0x14acde(0x1dc)][_0x14acde(0x1b6)],'version':_0x22a791['version'],'importedAt':_0x22a791[_0x14acde(0x1c0)],'source':_0x22a791[_0x14acde(0x1f1)],'commandCount':_0x22a791['normalizedManifest'][_0x14acde(0x1d0)]['length'],'commands':_0x22a791[_0x14acde(0x1bb)][_0x14acde(0x1d0)][_0x14acde(0x1be)](_0x58b528=>({'path':_0x58b528[_0x14acde(0x1e1)],'description':_0x58b528[_0x14acde(0x1bd)],'risk':_0x58b528[_0x14acde(0x1c2)],'target':toPublicServiceTreeTarget(_0x58b528[_0x14acde(0x1f9)]),'flags':_0x58b528[_0x14acde(0x1fa)][_0x14acde(0x1be)](_0x4543f3=>({'name':_0x4543f3['name'],'cliName':_0x4543f3['cliName'],'type':_0x4543f3['type'],'required':_0x4543f3['required']===!![]}))}))};}function summarizeLoadedManifest(_0x40c850){const _0x5c58a5=a63_0x6b6460;return{'service':_0x40c850[_0x5c58a5(0x1bb)]?.[_0x5c58a5(0x1dc)],'version':_0x40c850[_0x5c58a5(0x1bb)]?.[_0x5c58a5(0x1ef)],'commandCount':_0x40c850[_0x5c58a5(0x1bb)]?.[_0x5c58a5(0x1d0)]['length']??0x0,'commands':_0x40c850['normalizedManifest']?.[_0x5c58a5(0x1d0)][_0x5c58a5(0x1be)](_0x11e316=>({'path':_0x11e316[_0x5c58a5(0x1e1)],'risk':_0x11e316[_0x5c58a5(0x1c2)],'target':toPublicServiceTreeTarget(_0x11e316[_0x5c58a5(0x1f9)])}))??[],'registryIndex':_0x40c850['registryIndex'],'registryServiceCode':_0x40c850['registryServiceCode'],'errors':_0x40c850[_0x5c58a5(0x1e6)]['errors'],'warnings':_0x40c850[_0x5c58a5(0x1e6)][_0x5c58a5(0x1eb)]};}function a63_0x64ff(_0x3804d8,_0x2c0197){_0x3804d8=_0x3804d8-0x1b5;const _0x443fbe=a63_0x443f();let _0x64ff5a=_0x443fbe[_0x3804d8];return _0x64ff5a;}export const serviceDefinitions=[{'service':'service','command':a63_0x6b6460(0x1d3),'description':a63_0x6b6460(0x1dd),'risk':a63_0x6b6460(0x1cb),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2a8740){const _0x130df7=a63_0x6b6460,_0x672957=loadServiceManifestFromFile(_0x2a8740[_0x130df7(0x1f4)]('file'));if(!_0x672957[_0x130df7(0x1e6)]['ok'])return{'ok':![],'data':{'file':_0x672957[_0x130df7(0x1b5)],'hash':_0x672957['hash'],'kind':_0x672957[_0x130df7(0x1d7)],'serviceCount':_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1ea)],'services':_0x672957['manifests']['map'](summarizeLoadedManifest),'errors':_0x672957[_0x130df7(0x1e6)][_0x130df7(0x1e3)],'warnings':_0x672957[_0x130df7(0x1e6)]['warnings']},'message':formatValidationFailure(_0x672957['report'])};if(_0x672957[_0x130df7(0x1d7)]===_0x130df7(0x1d4)||_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1ea)]!==0x1)return{'ok':!![],'data':{'file':_0x672957[_0x130df7(0x1b5)],'hash':_0x672957['hash'],'kind':_0x672957['kind'],'serviceCount':_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1ea)],'commandCount':_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1f2)]((_0x38446c,_0x2ff4b6)=>_0x38446c+(_0x2ff4b6[_0x130df7(0x1bb)]?.[_0x130df7(0x1d0)][_0x130df7(0x1ea)]??0x0),0x0),'services':_0x672957[_0x130df7(0x1d6)]['map'](summarizeLoadedManifest),'warnings':_0x672957[_0x130df7(0x1e6)][_0x130df7(0x1eb)]},'message':_0x130df7(0x1cd)};return{'ok':!![],'data':{'file':_0x672957['filePath'],'hash':_0x672957[_0x130df7(0x1c9)],'kind':_0x672957[_0x130df7(0x1d7)],'service':_0x672957[_0x130df7(0x1bb)]?.['service'],'version':_0x672957[_0x130df7(0x1bb)]?.[_0x130df7(0x1ef)],'commandCount':_0x672957[_0x130df7(0x1bb)]?.[_0x130df7(0x1d0)][_0x130df7(0x1ea)]??0x0,'commands':_0x672957[_0x130df7(0x1bb)]?.[_0x130df7(0x1d0)][_0x130df7(0x1be)](_0x56c0a1=>({'path':_0x56c0a1['cliPath'],'risk':_0x56c0a1['risk'],'target':toPublicServiceTreeTarget(_0x56c0a1[_0x130df7(0x1f9)])})),'warnings':_0x672957[_0x130df7(0x1e6)][_0x130df7(0x1eb)]},'message':_0x130df7(0x1c6)};}},{'service':a63_0x6b6460(0x1dc),'command':a63_0x6b6460(0x1c4),'description':a63_0x6b6460(0x1fb),'risk':a63_0x6b6460(0x1db),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x53080e){const _0x250a7a=a63_0x6b6460,_0x69e0c8=loadServiceManifestFromFile(_0x53080e['str'](_0x250a7a(0x1e4)));return{'method':_0x250a7a(0x1d1),'url':getServiceRegistryPath(),'body':{'file':_0x69e0c8[_0x250a7a(0x1b5)],'hash':_0x69e0c8[_0x250a7a(0x1c9)],'kind':_0x69e0c8['kind'],'ok':_0x69e0c8[_0x250a7a(0x1e6)]['ok'],'service':_0x69e0c8['normalizedManifest']?.[_0x250a7a(0x1dc)],'version':_0x69e0c8['normalizedManifest']?.[_0x250a7a(0x1ef)],'serviceCount':_0x69e0c8['manifests'][_0x250a7a(0x1ea)],'services':_0x69e0c8['manifests']['map'](_0x342094=>({'service':_0x342094[_0x250a7a(0x1bb)]?.[_0x250a7a(0x1dc)],'version':_0x342094[_0x250a7a(0x1bb)]?.[_0x250a7a(0x1ef)],'commandCount':_0x342094[_0x250a7a(0x1bb)]?.[_0x250a7a(0x1d0)][_0x250a7a(0x1ea)]??0x0,'errors':_0x342094[_0x250a7a(0x1e6)][_0x250a7a(0x1e3)]})),'errors':_0x69e0c8[_0x250a7a(0x1e6)][_0x250a7a(0x1e3)],'commandCount':_0x69e0c8[_0x250a7a(0x1bb)]?.['commands']['length']??0x0},'description':_0x250a7a(0x1c5)};},async 'execute'(_0x41c621){const _0x37c1a7=a63_0x6b6460,_0x42ed19=importServiceManifest(_0x41c621[_0x37c1a7(0x1f4)]('file'));if(_0x42ed19[_0x37c1a7(0x1f3)][_0x37c1a7(0x1ea)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x42ed19[_0x37c1a7(0x1e0)],'imported':_0x42ed19[_0x37c1a7(0x1ec)],'updated':_0x42ed19['updated'],'serviceCount':_0x42ed19[_0x37c1a7(0x1ce)],'services':_0x42ed19['entries'][_0x37c1a7(0x1be)](summarizeService)},'message':'Imported\x20'+_0x42ed19[_0x37c1a7(0x1ec)]+_0x37c1a7(0x1de)+_0x42ed19[_0x37c1a7(0x1cf)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x42ed19['registryPath'],'replaced':_0x42ed19[_0x37c1a7(0x1bc)],'imported':_0x42ed19[_0x37c1a7(0x1ec)],'updated':_0x42ed19[_0x37c1a7(0x1cf)],'serviceCount':_0x42ed19[_0x37c1a7(0x1ce)],'service':summarizeService(_0x42ed19[_0x37c1a7(0x1d8)])},'message':(_0x42ed19['replaced']?'Updated':_0x37c1a7(0x1c1))+_0x37c1a7(0x1b7)+_0x42ed19[_0x37c1a7(0x1d8)]['serviceCode']+'.'};}},{'service':'service','command':a63_0x6b6460(0x1b9),'description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a63_0x6b6460(0x1db),'confirmationDescription':a63_0x6b6460(0x1df),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x18c257){const _0x1ebcab=a63_0x6b6460,_0x935569=getLocalServiceEntry(_0x18c257['str']('service'));return{'method':'WRITE','url':_0x18c257[_0x1ebcab(0x1f4)](_0x1ebcab(0x1e4)),'body':{'service':_0x18c257[_0x1ebcab(0x1f4)](_0x1ebcab(0x1dc)),'found':Boolean(_0x935569),'version':_0x935569?.['version'],'source':_0x935569?.[_0x1ebcab(0x1f1)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x212d68){const _0x166b04=a63_0x6b6460,_0x1a1590=exportServiceManifest(_0x212d68[_0x166b04(0x1f4)](_0x166b04(0x1dc)),_0x212d68[_0x166b04(0x1f4)](_0x166b04(0x1e4)));return{'ok':!![],'data':{'registryPath':_0x1a1590[_0x166b04(0x1e0)],'file':_0x1a1590[_0x166b04(0x1b5)],'service':summarizeService(_0x1a1590[_0x166b04(0x1d8)])},'message':_0x166b04(0x1ed)+_0x1a1590[_0x166b04(0x1d8)][_0x166b04(0x1ca)]+'.'};}},{'service':a63_0x6b6460(0x1dc),'command':'list','description':a63_0x6b6460(0x1f8),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x49bbfb=a63_0x6b6460,_0xb1abc9=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0xb1abc9[_0x49bbfb(0x1ea)],'services':_0xb1abc9['map'](summarizeService)}};}},{'service':'service','command':a63_0x6b6460(0x1e7),'description':a63_0x6b6460(0x1fc),'risk':a63_0x6b6460(0x1db),'confirmationDescription':a63_0x6b6460(0x1bf),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1059c8){const _0x40f7fb=a63_0x6b6460,_0x8d5c5d=getLocalServiceEntry(_0x1059c8[_0x40f7fb(0x1f4)]('service'));return{'method':_0x40f7fb(0x1d1),'url':getServiceRegistryPath(),'body':{'service':_0x1059c8[_0x40f7fb(0x1f4)](_0x40f7fb(0x1dc)),'found':Boolean(_0x8d5c5d),'version':_0x8d5c5d?.[_0x40f7fb(0x1ef)],'source':_0x8d5c5d?.[_0x40f7fb(0x1f1)]},'description':_0x40f7fb(0x1ee)};},async 'execute'(_0xe906b6){const _0x5c0f09=a63_0x6b6460,_0x1c3788=removeServiceManifest(_0xe906b6[_0x5c0f09(0x1f4)]('service'));return{'ok':!![],'data':{'registryPath':_0x1c3788[_0x5c0f09(0x1e0)],'serviceCount':_0x1c3788['serviceCount'],'service':summarizeService(_0x1c3788[_0x5c0f09(0x1d8)])},'message':_0x5c0f09(0x1f0)+_0x1c3788[_0x5c0f09(0x1d8)]['serviceCode']+'.'};}},{'service':a63_0x6b6460(0x1dc),'command':a63_0x6b6460(0x1c8),'description':a63_0x6b6460(0x1cc),'risk':a63_0x6b6460(0x1cb),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x15eff0){const _0x21852f=a63_0x6b6460,_0x3d6533=getLocalServiceEntry(_0x15eff0[_0x21852f(0x1f4)](_0x21852f(0x1dc)));if(!_0x3d6533)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x15eff0['str'](_0x21852f(0x1dc))},'message':_0x21852f(0x1e8)+_0x15eff0['str'](_0x21852f(0x1dc))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3d6533),'manifest':_0x3d6533[_0x21852f(0x1da)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3d6533[_0x21852f(0x1bb)])}};}}];
|
|
1
|
+
const a64_0x3bfc0f=a64_0x4397;(function(_0xf91264,_0x3f7f27){const _0x9b5c37=a64_0x4397,_0x1e7231=_0xf91264();while(!![]){try{const _0x57bb7d=parseInt(_0x9b5c37(0x191))/0x1*(-parseInt(_0x9b5c37(0x18e))/0x2)+-parseInt(_0x9b5c37(0x198))/0x3*(parseInt(_0x9b5c37(0x196))/0x4)+-parseInt(_0x9b5c37(0x17f))/0x5+-parseInt(_0x9b5c37(0x195))/0x6+-parseInt(_0x9b5c37(0x16a))/0x7+parseInt(_0x9b5c37(0x150))/0x8+parseInt(_0x9b5c37(0x181))/0x9;if(_0x57bb7d===_0x3f7f27)break;else _0x1e7231['push'](_0x1e7231['shift']());}catch(_0x27df45){_0x1e7231['push'](_0x1e7231['shift']());}}}(a64_0x5b58,0xde139));function a64_0x5b58(){const _0xb18f0e=['List\x20locally\x20imported\x20Service\x20Tree\x20manifests','errors','target','serviceCode','hash','WRITE','warnings','\x20service\x20','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','lower\x20kebab-case\x20service\x20code','serviceCount','Updated','7651065VbbfnC','risk','43233759mSSFMT','description','updated','remove','read','\x20service(s).','flags','file','version','filePath','import','detail','Imported\x20','4362njjBNR','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','commands','345MEseST','imported','write','Exported\x20service\x20','10297458WSoVRZ','8QgHJCK','replaced','380127mUhSSt','manifest','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','importedAt','6069000KdSseP','type','entry','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Local\x20service\x20not\x20found:\x20','Local\x20service\x20code,\x20for\x20example\x20crm','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','registryPath','registry','string','kind','name','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','str','Service\x20manifest\x20validation\x20passed.','cliPath','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','cliName','service','manifests','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','export','entries','length','2803024DZKAvB','normalizedManifest','Removed\x20service\x20','validate','registryServiceCode','source','map','report','list'];a64_0x5b58=function(){return _0xb18f0e;};return a64_0x5b58();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a64_0x3bfc0f(0x188),'type':'string','required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a64_0x3bfc0f(0x164),'type':a64_0x3bfc0f(0x159),'required':!![],'description':a64_0x3bfc0f(0x155),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x3bfc0f(0x17c)}};function a64_0x4397(_0x369daa,_0x32299b){_0x369daa=_0x369daa-0x14f;const _0x5b58db=a64_0x5b58();let _0x4397bf=_0x5b58db[_0x369daa];return _0x4397bf;}function summarizeService(_0x2f4afa){const _0xa00fc2=a64_0x3bfc0f;return{'serviceCode':_0x2f4afa['serviceCode'],'name':_0x2f4afa['normalizedManifest'][_0xa00fc2(0x164)][_0xa00fc2(0x15b)],'version':_0x2f4afa[_0xa00fc2(0x189)],'importedAt':_0x2f4afa[_0xa00fc2(0x14f)],'source':_0x2f4afa['source'],'commandCount':_0x2f4afa[_0xa00fc2(0x16b)]['commands']['length'],'commands':_0x2f4afa[_0xa00fc2(0x16b)][_0xa00fc2(0x190)][_0xa00fc2(0x170)](_0x2848d5=>({'path':_0x2848d5[_0xa00fc2(0x160)],'description':_0x2848d5[_0xa00fc2(0x182)],'risk':_0x2848d5['risk'],'target':toPublicServiceTreeTarget(_0x2848d5['target']),'flags':_0x2848d5[_0xa00fc2(0x187)][_0xa00fc2(0x170)](_0x54ff11=>({'name':_0x54ff11[_0xa00fc2(0x15b)],'cliName':_0x54ff11[_0xa00fc2(0x163)],'type':_0x54ff11[_0xa00fc2(0x151)],'required':_0x54ff11['required']===!![]}))}))};}function summarizeLoadedManifest(_0x5c6c62){const _0x3da72d=a64_0x3bfc0f;return{'service':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x164)],'version':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x189)],'commandCount':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x190)][_0x3da72d(0x169)]??0x0,'commands':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x190)][_0x3da72d(0x170)](_0x325b8d=>({'path':_0x325b8d[_0x3da72d(0x160)],'risk':_0x325b8d[_0x3da72d(0x180)],'target':toPublicServiceTreeTarget(_0x325b8d[_0x3da72d(0x175)])}))??[],'registryIndex':_0x5c6c62['registryIndex'],'registryServiceCode':_0x5c6c62[_0x3da72d(0x16e)],'errors':_0x5c6c62['report'][_0x3da72d(0x174)],'warnings':_0x5c6c62[_0x3da72d(0x171)][_0x3da72d(0x179)]};}export const serviceDefinitions=[{'service':'service','command':a64_0x3bfc0f(0x16d),'description':a64_0x3bfc0f(0x15c),'risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x528235){const _0x178502=a64_0x3bfc0f,_0x20fe5f=loadServiceManifestFromFile(_0x528235[_0x178502(0x15e)](_0x178502(0x188)));if(!_0x20fe5f[_0x178502(0x171)]['ok'])return{'ok':![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f['hash'],'kind':_0x20fe5f['kind'],'serviceCount':_0x20fe5f[_0x178502(0x165)]['length'],'services':_0x20fe5f[_0x178502(0x165)][_0x178502(0x170)](summarizeLoadedManifest),'errors':_0x20fe5f[_0x178502(0x171)][_0x178502(0x174)],'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':formatValidationFailure(_0x20fe5f[_0x178502(0x171)])};if(_0x20fe5f['kind']===_0x178502(0x158)||_0x20fe5f[_0x178502(0x165)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f[_0x178502(0x177)],'kind':_0x20fe5f[_0x178502(0x15a)],'serviceCount':_0x20fe5f['manifests']['length'],'commandCount':_0x20fe5f[_0x178502(0x165)]['reduce']((_0x192f35,_0x5b4f49)=>_0x192f35+(_0x5b4f49[_0x178502(0x16b)]?.['commands'][_0x178502(0x169)]??0x0),0x0),'services':_0x20fe5f[_0x178502(0x165)][_0x178502(0x170)](summarizeLoadedManifest),'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f['hash'],'kind':_0x20fe5f[_0x178502(0x15a)],'service':_0x20fe5f['normalizedManifest']?.[_0x178502(0x164)],'version':_0x20fe5f['normalizedManifest']?.['version'],'commandCount':_0x20fe5f[_0x178502(0x16b)]?.[_0x178502(0x190)][_0x178502(0x169)]??0x0,'commands':_0x20fe5f[_0x178502(0x16b)]?.[_0x178502(0x190)][_0x178502(0x170)](_0x211ecd=>({'path':_0x211ecd[_0x178502(0x160)],'risk':_0x211ecd['risk'],'target':toPublicServiceTreeTarget(_0x211ecd[_0x178502(0x175)])})),'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':_0x178502(0x15f)};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x18b),'description':a64_0x3bfc0f(0x17b),'risk':a64_0x3bfc0f(0x193),'confirmationDescription':a64_0x3bfc0f(0x18f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x56991d){const _0x28a9b9=a64_0x3bfc0f,_0x4278a3=loadServiceManifestFromFile(_0x56991d['str'](_0x28a9b9(0x188)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x4278a3['filePath'],'hash':_0x4278a3['hash'],'kind':_0x4278a3[_0x28a9b9(0x15a)],'ok':_0x4278a3[_0x28a9b9(0x171)]['ok'],'service':_0x4278a3[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x164)],'version':_0x4278a3[_0x28a9b9(0x16b)]?.['version'],'serviceCount':_0x4278a3[_0x28a9b9(0x165)][_0x28a9b9(0x169)],'services':_0x4278a3[_0x28a9b9(0x165)][_0x28a9b9(0x170)](_0x37f3ec=>({'service':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x164)],'version':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x189)],'commandCount':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x190)][_0x28a9b9(0x169)]??0x0,'errors':_0x37f3ec['report']['errors']})),'errors':_0x4278a3['report'][_0x28a9b9(0x174)],'commandCount':_0x4278a3[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x190)][_0x28a9b9(0x169)]??0x0},'description':_0x28a9b9(0x162)};},async 'execute'(_0x561b8c){const _0x4abd8b=a64_0x3bfc0f,_0x2b67f0=importServiceManifest(_0x561b8c[_0x4abd8b(0x15e)](_0x4abd8b(0x188)));if(_0x2b67f0[_0x4abd8b(0x168)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x2b67f0[_0x4abd8b(0x157)],'imported':_0x2b67f0[_0x4abd8b(0x192)],'updated':_0x2b67f0[_0x4abd8b(0x183)],'serviceCount':_0x2b67f0[_0x4abd8b(0x17d)],'services':_0x2b67f0[_0x4abd8b(0x168)][_0x4abd8b(0x170)](summarizeService)},'message':_0x4abd8b(0x18d)+_0x2b67f0['imported']+'\x20service(s),\x20updated\x20'+_0x2b67f0['updated']+_0x4abd8b(0x186)};return{'ok':!![],'data':{'registryPath':_0x2b67f0[_0x4abd8b(0x157)],'replaced':_0x2b67f0[_0x4abd8b(0x197)],'imported':_0x2b67f0[_0x4abd8b(0x192)],'updated':_0x2b67f0[_0x4abd8b(0x183)],'serviceCount':_0x2b67f0['serviceCount'],'service':summarizeService(_0x2b67f0[_0x4abd8b(0x152)])},'message':(_0x2b67f0['replaced']?_0x4abd8b(0x17e):'Imported')+_0x4abd8b(0x17a)+_0x2b67f0['entry'][_0x4abd8b(0x176)]+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x167),'description':a64_0x3bfc0f(0x153),'risk':a64_0x3bfc0f(0x193),'confirmationDescription':a64_0x3bfc0f(0x166),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5dcd3c){const _0x24ac63=a64_0x3bfc0f,_0x11f58c=getLocalServiceEntry(_0x5dcd3c[_0x24ac63(0x15e)](_0x24ac63(0x164)));return{'method':'WRITE','url':_0x5dcd3c[_0x24ac63(0x15e)]('file'),'body':{'service':_0x5dcd3c[_0x24ac63(0x15e)]('service'),'found':Boolean(_0x11f58c),'version':_0x11f58c?.[_0x24ac63(0x189)],'source':_0x11f58c?.[_0x24ac63(0x16f)]},'description':_0x24ac63(0x19a)};},async 'execute'(_0x4bffdd){const _0xbbe290=a64_0x3bfc0f,_0x49058f=exportServiceManifest(_0x4bffdd[_0xbbe290(0x15e)](_0xbbe290(0x164)),_0x4bffdd[_0xbbe290(0x15e)]('file'));return{'ok':!![],'data':{'registryPath':_0x49058f['registryPath'],'file':_0x49058f[_0xbbe290(0x18a)],'service':summarizeService(_0x49058f[_0xbbe290(0x152)])},'message':_0xbbe290(0x194)+_0x49058f['entry']['serviceCode']+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x172),'description':a64_0x3bfc0f(0x173),'risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1bfc2a=a64_0x3bfc0f,_0x41f131=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x41f131[_0x1bfc2a(0x169)],'services':_0x41f131[_0x1bfc2a(0x170)](summarizeService)}};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x184),'description':a64_0x3bfc0f(0x15d),'risk':'write','confirmationDescription':a64_0x3bfc0f(0x161),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x21e7d6){const _0x2694ca=a64_0x3bfc0f,_0x3938af=getLocalServiceEntry(_0x21e7d6[_0x2694ca(0x15e)](_0x2694ca(0x164)));return{'method':_0x2694ca(0x178),'url':getServiceRegistryPath(),'body':{'service':_0x21e7d6[_0x2694ca(0x15e)]('service'),'found':Boolean(_0x3938af),'version':_0x3938af?.[_0x2694ca(0x189)],'source':_0x3938af?.['source']},'description':_0x2694ca(0x156)};},async 'execute'(_0x2121c2){const _0x1a3f2c=a64_0x3bfc0f,_0x4ed1b0=removeServiceManifest(_0x2121c2['str'](_0x1a3f2c(0x164)));return{'ok':!![],'data':{'registryPath':_0x4ed1b0['registryPath'],'serviceCount':_0x4ed1b0['serviceCount'],'service':summarizeService(_0x4ed1b0['entry'])},'message':_0x1a3f2c(0x16c)+_0x4ed1b0[_0x1a3f2c(0x152)][_0x1a3f2c(0x176)]+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x18c),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1e400e){const _0x164310=a64_0x3bfc0f,_0x35f5e6=getLocalServiceEntry(_0x1e400e[_0x164310(0x15e)](_0x164310(0x164)));if(!_0x35f5e6)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1e400e['str'](_0x164310(0x164))},'message':_0x164310(0x154)+_0x1e400e['str']('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x35f5e6),'manifest':_0x35f5e6[_0x164310(0x199)],'normalizedManifest':toPublicNormalizedServiceTree(_0x35f5e6[_0x164310(0x16b)])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a64_0x26d2f9=a64_0x1cbb;(function(_0x2d2e96,_0x373be1){const _0x212778=a64_0x1cbb,_0x11eb85=_0x2d2e96();while(!![]){try{const _0x1a2110=-parseInt(_0x212778(0x1ee))/0x1+parseInt(_0x212778(0x21a))/0x2*(-parseInt(_0x212778(0x1dc))/0x3)+-parseInt(_0x212778(0x1e0))/0x4+parseInt(_0x212778(0x201))/0x5*(parseInt(_0x212778(0x1e5))/0x6)+parseInt(_0x212778(0x1e6))/0x7*(-parseInt(_0x212778(0x1e3))/0x8)+-parseInt(_0x212778(0x21d))/0x9+-parseInt(_0x212778(0x1d8))/0xa*(-parseInt(_0x212778(0x1f5))/0xb);if(_0x1a2110===_0x373be1)break;else _0x11eb85['push'](_0x11eb85['shift']());}catch(_0x2cb444){_0x11eb85['push'](_0x11eb85['shift']());}}}(a64_0x4cf3,0x1afa7));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';function a64_0x1cbb(_0x2b03f9,_0x526c11){_0x2b03f9=_0x2b03f9-0x1d8;const _0x4cf3e5=a64_0x4cf3();let _0x1cbbad=_0x4cf3e5[_0x2b03f9];return _0x1cbbad;}import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';function a64_0x4cf3(){const _0x15dd49=['registryIndex','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','normalizedManifest','version','schemaVersion','Invalid\x20service\x20registry\x20JSON:\x20','commandCount','trim','message','report','Cannot\x20write\x20service\x20registry:\x20','warnings','Invalid\x20service\x20manifest\x20JSON:\x20','2DVLcQC','updatedAt','CliError','1807209UTEqbG','bff\x20target\x20requires\x20functionName.','kind','service','path','ENOENT','manifests','target','now','.tmp','validation','sort','importedAt','manifest','length','].manifest.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','10OiBVNL','].manifest','parse','join','607833TJsoiM','description','code','utf8','742820eNKBkL','services','map','456GREiIp','splice','1122DHiUou','18039jxPOAl','service.json','push','startsWith','toISOString','flatMap','Remove\x20or\x20migrate\x20','Unsupported\x20service\x20registry\x20schemaVersion:\x20','86425dVALFl','hex','homeDirName','command','errors','slice','name','8594047LPNCwn','serviceCode','filePath','services\x20must\x20be\x20an\x20array','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','findIndex','invalid','registry','commands','sha256','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','4055SHZvnN','empty','isArray','missing','$.services[','Local\x20service\x20not\x20found:\x20','stringify','Service\x20manifest\x20file\x20not\x20found:\x20','risk','Service\x20manifest\x20validation\x20failed:\x0a','cliPath','object'];a64_0x4cf3=function(){return _0x15dd49;};return a64_0x4cf3();}import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a64_0x26d2f9(0x1e7);export function getServiceRegistryPath(_0x489f74={}){const _0x5173f4=a64_0x26d2f9;return resolve(_0x489f74['homeDir']??homedir(),PRODUCT_CONFIG[_0x5173f4(0x1f0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x55bccc={}){const _0x147b8a=a64_0x26d2f9,_0x93c717=getServiceRegistryPath(_0x55bccc);if(!existsSync(_0x93c717))return emptyServiceRegistry();try{const _0x32a8dc=readFileSync(_0x93c717,_0x147b8a(0x1df));if(!_0x32a8dc['trim']())return emptyServiceRegistry();const _0x61d339=JSON['parse'](_0x32a8dc);if(_0x61d339[_0x147b8a(0x211)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x147b8a(0x227)](_0x147b8a(0x1ed)+String(_0x61d339['schemaVersion']),_0x147b8a(0x1ec)+_0x93c717+'.');if(!Array[_0x147b8a(0x203)](_0x61d339[_0x147b8a(0x1e1)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x61d339[_0x147b8a(0x21b)],'services':_0x61d339[_0x147b8a(0x1e1)]};}catch(_0x29e99e){if(_0x29e99e instanceof Error&&_0x29e99e[_0x147b8a(0x1f4)]===_0x147b8a(0x21c))throw _0x29e99e;throw CliErrors[_0x147b8a(0x227)](_0x147b8a(0x212)+_0x93c717,_0x147b8a(0x1f9));}}export function writeServiceRegistry(_0x590b1c,_0x19af90={}){const _0x468122=a64_0x26d2f9,_0x62f235=getServiceRegistryPath(_0x19af90),_0x535b62=dirname(_0x62f235);!existsSync(_0x535b62)&&mkdirSync(_0x535b62,{'recursive':!![]});const _0x2eca4d=_0x62f235+_0x468122(0x226);try{writeFileSync(_0x2eca4d,JSON[_0x468122(0x207)](_0x590b1c,null,0x2)+'\x0a',{'encoding':_0x468122(0x1df),'mode':0x180}),renameSync(_0x2eca4d,_0x62f235);}catch(_0x3695e6){try{unlinkSync(_0x2eca4d);}catch{}if(_0x3695e6?.[_0x468122(0x1de)]===_0x468122(0x222))throw CliErrors[_0x468122(0x227)](_0x468122(0x217)+_0x62f235);throw _0x3695e6;}return _0x62f235;}export function loadServiceManifestFromFile(_0x19bc18){const _0x4f0c12=a64_0x26d2f9,_0x401daa=resolve(_0x19bc18);if(!existsSync(_0x401daa))throw CliErrors['validation'](_0x4f0c12(0x208)+_0x19bc18);let _0x20dbf1;const _0x452b8d=readFileSync(_0x401daa,'utf8');try{_0x20dbf1=JSON[_0x4f0c12(0x1da)](_0x452b8d);}catch{throw CliErrors[_0x4f0c12(0x227)](_0x4f0c12(0x219)+_0x19bc18,_0x4f0c12(0x1fa));}const _0x124074=sha256(_0x452b8d),_0x21c895=extractLoadedServiceManifests(_0x20dbf1,_0x124074),_0x5d1b21=aggregateValidationReports(_0x21c895),_0x5c9c05=_0x21c895[0x0];return{'filePath':_0x401daa,'hash':_0x124074,'kind':isServiceRegistryLike(_0x20dbf1)?_0x4f0c12(0x1fd):_0x4f0c12(0x22a),'manifest':_0x5c9c05?.[_0x4f0c12(0x22a)]??_0x20dbf1,'report':_0x5d1b21,'normalizedManifest':_0x21c895[_0x4f0c12(0x22b)]===0x1?_0x5c9c05?.['normalizedManifest']:undefined,'manifests':_0x21c895};}export function importServiceManifest(_0xbcb49d,_0x402e1f={}){const _0x588c7c=a64_0x26d2f9,_0x209efc=loadServiceManifestFromFile(_0xbcb49d);if(!_0x209efc[_0x588c7c(0x216)]['ok'])throw CliErrors[_0x588c7c(0x227)](formatValidationFailure(_0x209efc[_0x588c7c(0x216)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x209efc[_0x588c7c(0x223)][_0x588c7c(0x22b)]===0x0)throw CliErrors[_0x588c7c(0x227)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x588c7c(0x22d));const _0x4544b7=readServiceRegistry(_0x402e1f),_0x54e578=(_0x402e1f['now']??(()=>new Date()))()[_0x588c7c(0x1ea)](),_0x4c167a=[];let _0x2bf04a=0x0,_0x2131ed=0x0;for(const _0x2a6a36 of _0x209efc[_0x588c7c(0x223)]){if(!_0x2a6a36['normalizedManifest'])continue;const _0x1dda8e=_0x2a6a36['normalizedManifest'][_0x588c7c(0x220)][_0x588c7c(0x1de)],_0x290913={'serviceCode':_0x1dda8e,'version':_0x2a6a36[_0x588c7c(0x20f)][_0x588c7c(0x210)],'importedAt':_0x54e578,'source':{'type':'file','path':_0x209efc[_0x588c7c(0x1f7)],'hash':_0x2a6a36['sourceHash']},'manifest':_0x2a6a36[_0x588c7c(0x22a)],'normalizedManifest':_0x2a6a36[_0x588c7c(0x20f)]},_0x3f3171=_0x4544b7[_0x588c7c(0x1e1)]['findIndex'](_0x308ef0=>_0x308ef0['serviceCode']===_0x1dda8e);_0x3f3171>=0x0?(_0x4544b7[_0x588c7c(0x1e1)][_0x3f3171]=_0x290913,_0x2131ed++):(_0x4544b7['services']['push'](_0x290913),_0x2bf04a++),_0x4c167a[_0x588c7c(0x1e8)](_0x290913);}_0x4544b7['services'][_0x588c7c(0x228)]((_0x32232c,_0x45bbcf)=>_0x32232c[_0x588c7c(0x1f6)]['localeCompare'](_0x45bbcf[_0x588c7c(0x1f6)])),_0x4544b7[_0x588c7c(0x21b)]=_0x54e578;const _0x20fd77=writeServiceRegistry(_0x4544b7,_0x402e1f);return{'registryPath':_0x20fd77,'entry':_0x4c167a[0x0],'replaced':_0x4c167a[_0x588c7c(0x22b)]===0x1?_0x2131ed===0x1:_0x2131ed>0x0,'entries':_0x4c167a,'imported':_0x2bf04a,'updated':_0x2131ed,'serviceCount':_0x4544b7['services'][_0x588c7c(0x22b)]};}export function exportServiceManifest(_0x2d7a0b,_0x80d985,_0x469caa={}){const _0x38a75c=a64_0x26d2f9,_0x4bf1fa=getServiceRegistryPath(_0x469caa),_0x403c6c=getLocalServiceEntry(_0x2d7a0b,_0x469caa);if(!_0x403c6c)throw CliErrors[_0x38a75c(0x227)](_0x38a75c(0x206)+_0x2d7a0b,_0x38a75c(0x20e));const _0x2bfe5e=resolve(_0x80d985),_0x1b1774=dirname(_0x2bfe5e);return!existsSync(_0x1b1774)&&mkdirSync(_0x1b1774,{'recursive':!![]}),writeFileSync(_0x2bfe5e,JSON[_0x38a75c(0x207)](_0x403c6c[_0x38a75c(0x22a)],null,0x2)+'\x0a',{'encoding':_0x38a75c(0x1df),'mode':0x180}),{'registryPath':_0x4bf1fa,'filePath':_0x2bfe5e,'entry':_0x403c6c};}export function removeServiceManifest(_0x194e3d,_0x294c92={}){const _0x3dceb8=a64_0x26d2f9,_0x1f45de=readServiceRegistry(_0x294c92),_0x3e596b=_0x194e3d[_0x3dceb8(0x214)](),_0x21deaf=_0x1f45de[_0x3dceb8(0x1e1)][_0x3dceb8(0x1fb)](_0x1257bc=>_0x1257bc[_0x3dceb8(0x1f6)]===_0x3e596b);if(_0x21deaf<0x0)throw CliErrors[_0x3dceb8(0x227)](_0x3dceb8(0x206)+_0x3e596b,_0x3dceb8(0x20e));const [_0x134e7d]=_0x1f45de[_0x3dceb8(0x1e1)][_0x3dceb8(0x1e4)](_0x21deaf,0x1),_0x3bab4f=(_0x294c92[_0x3dceb8(0x225)]??(()=>new Date()))()[_0x3dceb8(0x1ea)]();_0x1f45de[_0x3dceb8(0x21b)]=_0x3bab4f;const _0x3cb1f2=writeServiceRegistry(_0x1f45de,_0x294c92);return{'registryPath':_0x3cb1f2,'entry':_0x134e7d,'serviceCount':_0x1f45de[_0x3dceb8(0x1e1)]['length']};}export function listLocalServices(_0x8db52e={}){const _0x518782=a64_0x26d2f9;return readServiceRegistry(_0x8db52e)[_0x518782(0x1e1)];}export function getLocalServiceEntry(_0xee9b1b,_0x2cbf93={}){const _0x2cc913=a64_0x26d2f9;return readServiceRegistry(_0x2cbf93)[_0x2cc913(0x1e1)]['find'](_0x1cf574=>_0x1cf574[_0x2cc913(0x1f6)]===_0xee9b1b[_0x2cc913(0x214)]());}export function listLocalServiceTrees(_0x21c523={}){const _0x917cec=a64_0x26d2f9;return readServiceRegistry(_0x21c523)[_0x917cec(0x1e1)]['map'](_0x2192f8=>_0x2192f8[_0x917cec(0x20f)]);}export function inspectServiceRegistry(_0x14a608={}){const _0x356ec0=a64_0x26d2f9,_0x3e08cc=getServiceRegistryPath(_0x14a608);if(!existsSync(_0x3e08cc))return emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x204),![]);try{const _0x7e0e5b=readFileSync(_0x3e08cc,'utf8');if(!_0x7e0e5b[_0x356ec0(0x214)]())return emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x202),!![]);const _0x38f74e=JSON['parse'](_0x7e0e5b);if(_0x38f74e[_0x356ec0(0x211)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x1fc),!![]),'schemaVersion':_0x38f74e[_0x356ec0(0x211)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x38f74e[_0x356ec0(0x211)])};if(!Array[_0x356ec0(0x203)](_0x38f74e[_0x356ec0(0x1e1)]))return{...emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x1fc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x38f74e[_0x356ec0(0x21b)],'message':_0x356ec0(0x1f8)};const _0x1ecea9=_0x38f74e[_0x356ec0(0x1e1)][_0x356ec0(0x1e2)](summarizeLocalServiceEntry);return{'registryPath':_0x3e08cc,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x38f74e[_0x356ec0(0x21b)],'serviceCount':_0x1ecea9['length'],'commandCount':_0x1ecea9['reduce']((_0x294409,_0x3cb571)=>_0x294409+_0x3cb571[_0x356ec0(0x213)],0x0),'services':_0x1ecea9};}catch(_0x564dff){return{...emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x1fc),!![]),'message':_0x564dff instanceof Error?_0x564dff[_0x356ec0(0x215)]:String(_0x564dff)};}}export function formatValidationFailure(_0x1718cd){const _0x80874=a64_0x26d2f9,_0x36af86=_0x1718cd['errors'][_0x80874(0x1e2)](_0x314d8d=>_0x314d8d[_0x80874(0x221)]+':\x20'+_0x314d8d[_0x80874(0x215)]);return _0x80874(0x20a)+_0x36af86[_0x80874(0x1db)]('\x0a');}function extractLoadedServiceManifests(_0x3e89c3,_0x5b3739){const _0x4ec5d0=a64_0x26d2f9;if(!isServiceRegistryLike(_0x3e89c3)){const _0x3df9e3=_0x3e89c3,{manifest:_0x2d0347,errors:_0x333c4e}=adaptServiceTreeManifestForLegacyFramework(_0x3df9e3),_0x16484c=validateServiceTreeManifest(_0x2d0347),_0x30af7b=mergeValidationErrors(_0x16484c,_0x333c4e);return[{'manifest':_0x3df9e3,'report':_0x30af7b,'normalizedManifest':_0x30af7b['ok']?normalizeServiceTreeManifest(_0x2d0347):undefined,'sourceHash':_0x5b3739}];}return _0x3e89c3[_0x4ec5d0(0x1e1)][_0x4ec5d0(0x1e2)]((_0x542e88,_0x315c4b)=>{const _0x3b19bf=_0x4ec5d0,_0x207fc6=isObjectRecord(_0x542e88)?_0x542e88['manifest']:undefined,{manifest:_0x447c43,errors:_0x2883c8}=adaptServiceTreeManifestForLegacyFramework(_0x207fc6),_0x3b7f38=validateServiceTreeManifest(_0x447c43),_0x1541d0=mergeValidationErrors(_0x3b7f38,_0x2883c8),_0x319f71=isObjectRecord(_0x542e88)&&typeof _0x542e88['serviceCode']==='string'?_0x542e88[_0x3b19bf(0x1f6)]:undefined;return{'manifest':_0x207fc6,'report':_0x1541d0,'normalizedManifest':_0x1541d0['ok']?normalizeServiceTreeManifest(_0x447c43):undefined,'sourceHash':sha256(JSON[_0x3b19bf(0x207)](_0x207fc6,null,0x2)+'\x0a'),'registryIndex':_0x315c4b,'registryServiceCode':_0x319f71};});}function mergeValidationErrors(_0x425c2b,_0x585484){const _0x1c463e=a64_0x26d2f9,_0x1813cd=_0x425c2b[_0x1c463e(0x1f2)][_0x1c463e(0x1e2)](_0x518bd7=>_0x518bd7[_0x1c463e(0x215)]===_0x1c463e(0x200)?{..._0x518bd7,'message':_0x1c463e(0x21e)}:_0x518bd7),_0x7939f=[..._0x585484,..._0x1813cd];return{'ok':_0x7939f[_0x1c463e(0x22b)]===0x0,'errors':_0x7939f,'warnings':_0x425c2b[_0x1c463e(0x218)]};}function aggregateValidationReports(_0x42d1d9){const _0x366457=a64_0x26d2f9,_0x4a84eb=_0x42d1d9[_0x366457(0x1eb)](_0x19e955=>_0x19e955[_0x366457(0x20d)]===undefined?_0x19e955[_0x366457(0x216)][_0x366457(0x1f2)]:_0x19e955['report'][_0x366457(0x1f2)][_0x366457(0x1e2)](_0x2a5605=>({..._0x2a5605,'path':prefixRegistryIssuePath(_0x19e955[_0x366457(0x20d)],_0x2a5605[_0x366457(0x221)])}))),_0x2e83c7=_0x42d1d9[_0x366457(0x1eb)](_0x23b953=>_0x23b953['registryIndex']===undefined?_0x23b953[_0x366457(0x216)][_0x366457(0x218)]:_0x23b953[_0x366457(0x216)][_0x366457(0x218)]['map'](_0xd84625=>({..._0xd84625,'path':prefixRegistryIssuePath(_0x23b953[_0x366457(0x20d)],_0xd84625[_0x366457(0x221)])})));return{'ok':_0x4a84eb[_0x366457(0x22b)]===0x0,'errors':_0x4a84eb,'warnings':_0x2e83c7};}function prefixRegistryIssuePath(_0x43cefc,_0xb3bffa){const _0x17555e=a64_0x26d2f9;if(_0xb3bffa==='$')return _0x17555e(0x205)+_0x43cefc+'].manifest';if(_0xb3bffa[_0x17555e(0x1e9)]('$.'))return _0x17555e(0x205)+_0x43cefc+_0x17555e(0x1d9)+_0xb3bffa[_0x17555e(0x1f3)](0x1);if(_0xb3bffa[_0x17555e(0x1e9)]('$['))return _0x17555e(0x205)+_0x43cefc+'].manifest'+_0xb3bffa[_0x17555e(0x1f3)](0x1);return _0x17555e(0x205)+_0x43cefc+_0x17555e(0x22c)+_0xb3bffa;}function isServiceRegistryLike(_0x3e81c9){const _0x142d62=a64_0x26d2f9;return isObjectRecord(_0x3e81c9)&&_0x3e81c9[_0x142d62(0x211)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x3e81c9[_0x142d62(0x1e1)]);}function isObjectRecord(_0x220d8a){const _0x30678a=a64_0x26d2f9;return Boolean(_0x220d8a)&&typeof _0x220d8a===_0x30678a(0x20c)&&!Array[_0x30678a(0x203)](_0x220d8a);}function emptyServiceRegistryInspection(_0x82eac0,_0x2df955,_0x12a08a){return{'registryPath':_0x82eac0,'exists':_0x12a08a,'status':_0x2df955,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5699e8){const _0x1390dc=a64_0x26d2f9,_0x5c27e2=_0x5699e8[_0x1390dc(0x20f)],_0x5176d1=_0x5c27e2[_0x1390dc(0x1fe)][_0x1390dc(0x1e2)](_0x1159f6=>({'path':_0x1159f6[_0x1390dc(0x20b)],'description':_0x1159f6['description'],'risk':_0x1159f6[_0x1390dc(0x209)],'targetKind':_0x1159f6[_0x1390dc(0x224)][_0x1390dc(0x21f)],'targetCommand':_0x1159f6[_0x1390dc(0x224)][_0x1390dc(0x1f1)]}));return{'serviceCode':_0x5699e8[_0x1390dc(0x1f6)],'name':_0x5c27e2['service']['name'],'description':_0x5c27e2['service'][_0x1390dc(0x1dd)],'version':_0x5699e8['version'],'importedAt':_0x5699e8[_0x1390dc(0x229)],'source':_0x5699e8['source'],'commandCount':_0x5176d1[_0x1390dc(0x22b)],'commands':_0x5176d1};}function sha256(_0x7ce2dc){const _0x2f6063=a64_0x26d2f9;return createHash(_0x2f6063(0x1ff))['update'](_0x7ce2dc)['digest'](_0x2f6063(0x1ef));}
|
|
1
|
+
function a65_0x5387(_0x400d8d,_0x3c9947){_0x400d8d=_0x400d8d-0x189;const _0x14fd5a=a65_0x14fd();let _0x53879d=_0x14fd5a[_0x400d8d];return _0x53879d;}const a65_0x455dc5=a65_0x5387;(function(_0x2ecf04,_0x537ae3){const _0x200c0d=a65_0x5387,_0x1e65da=_0x2ecf04();while(!![]){try{const _0x30df11=parseInt(_0x200c0d(0x192))/0x1*(parseInt(_0x200c0d(0x1d0))/0x2)+parseInt(_0x200c0d(0x193))/0x3+parseInt(_0x200c0d(0x198))/0x4*(-parseInt(_0x200c0d(0x19c))/0x5)+-parseInt(_0x200c0d(0x1af))/0x6*(parseInt(_0x200c0d(0x1da))/0x7)+-parseInt(_0x200c0d(0x1c8))/0x8*(-parseInt(_0x200c0d(0x1bf))/0x9)+-parseInt(_0x200c0d(0x19a))/0xa*(-parseInt(_0x200c0d(0x18e))/0xb)+-parseInt(_0x200c0d(0x1c0))/0xc;if(_0x30df11===_0x537ae3)break;else _0x1e65da['push'](_0x1e65da['shift']());}catch(_0x59baaf){_0x1e65da['push'](_0x1e65da['shift']());}}}(a65_0x14fd,0xa33dd));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a65_0x455dc5(0x195);export function getServiceRegistryPath(_0x5db5a0={}){const _0x327f0c=a65_0x455dc5;return resolve(_0x5db5a0['homeDir']??homedir(),PRODUCT_CONFIG[_0x327f0c(0x1a9)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xff6c91={}){const _0x291652=a65_0x455dc5,_0x50874e=getServiceRegistryPath(_0xff6c91);if(!existsSync(_0x50874e))return emptyServiceRegistry();try{const _0x22db11=readFileSync(_0x50874e,_0x291652(0x1b0));if(!_0x22db11['trim']())return emptyServiceRegistry();const _0x15c750=JSON['parse'](_0x22db11);if(_0x15c750[_0x291652(0x1cb)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation']('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x15c750[_0x291652(0x1cb)]),_0x291652(0x1d5)+_0x50874e+'.');if(!Array[_0x291652(0x1d1)](_0x15c750[_0x291652(0x1bc)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x15c750[_0x291652(0x18b)],'services':_0x15c750[_0x291652(0x1bc)]};}catch(_0x2977b5){if(_0x2977b5 instanceof Error&&_0x2977b5['name']===_0x291652(0x1b9))throw _0x2977b5;throw CliErrors[_0x291652(0x191)](_0x291652(0x1ca)+_0x50874e,_0x291652(0x1b5));}}export function writeServiceRegistry(_0x3df8b3,_0x436716={}){const _0x164dbb=a65_0x455dc5,_0x3f1de4=getServiceRegistryPath(_0x436716),_0x1f71cb=dirname(_0x3f1de4);!existsSync(_0x1f71cb)&&mkdirSync(_0x1f71cb,{'recursive':!![]});const _0x31ad96=_0x3f1de4+_0x164dbb(0x19e);try{writeFileSync(_0x31ad96,JSON[_0x164dbb(0x1cf)](_0x3df8b3,null,0x2)+'\x0a',{'encoding':_0x164dbb(0x1b0),'mode':0x180}),renameSync(_0x31ad96,_0x3f1de4);}catch(_0x5091de){try{unlinkSync(_0x31ad96);}catch{}if(_0x5091de?.[_0x164dbb(0x1b7)]===_0x164dbb(0x1a6))throw CliErrors[_0x164dbb(0x191)](_0x164dbb(0x1c7)+_0x3f1de4);throw _0x5091de;}return _0x3f1de4;}export function loadServiceManifestFromFile(_0x501bf1){const _0x4e1741=a65_0x455dc5,_0x329578=resolve(_0x501bf1);if(!existsSync(_0x329578))throw CliErrors[_0x4e1741(0x191)](_0x4e1741(0x1aa)+_0x501bf1);let _0x3ca0ba;const _0xf779b9=readFileSync(_0x329578,_0x4e1741(0x1b0));try{_0x3ca0ba=JSON[_0x4e1741(0x1ad)](_0xf779b9);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x501bf1,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x2b423a=sha256(_0xf779b9),_0x98af76=extractLoadedServiceManifests(_0x3ca0ba,_0x2b423a),_0x4776eb=aggregateValidationReports(_0x98af76),_0x59a0ed=_0x98af76[0x0];return{'filePath':_0x329578,'hash':_0x2b423a,'kind':isServiceRegistryLike(_0x3ca0ba)?_0x4e1741(0x197):_0x4e1741(0x1ce),'manifest':_0x59a0ed?.[_0x4e1741(0x1ce)]??_0x3ca0ba,'report':_0x4776eb,'normalizedManifest':_0x98af76[_0x4e1741(0x1a1)]===0x1?_0x59a0ed?.['normalizedManifest']:undefined,'manifests':_0x98af76};}export function importServiceManifest(_0x1c2ae0,_0x57a74d={}){const _0x41ad8b=a65_0x455dc5,_0x25b795=loadServiceManifestFromFile(_0x1c2ae0);if(!_0x25b795[_0x41ad8b(0x19f)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x25b795[_0x41ad8b(0x19f)]),_0x41ad8b(0x1ae));if(_0x25b795['manifests'][_0x41ad8b(0x1a1)]===0x0)throw CliErrors[_0x41ad8b(0x191)](_0x41ad8b(0x18a),_0x41ad8b(0x1c5));const _0x3bb282=readServiceRegistry(_0x57a74d),_0x5b451a=(_0x57a74d[_0x41ad8b(0x19b)]??(()=>new Date()))()['toISOString'](),_0xba5ab2=[];let _0xb1ca3d=0x0,_0x451527=0x0;for(const _0x3993a4 of _0x25b795['manifests']){if(!_0x3993a4[_0x41ad8b(0x1ac)])continue;const _0x32bb3b=_0x3993a4['normalizedManifest'][_0x41ad8b(0x1d2)][_0x41ad8b(0x1b7)],_0x153a8b={'serviceCode':_0x32bb3b,'version':_0x3993a4[_0x41ad8b(0x1ac)]['version'],'importedAt':_0x5b451a,'source':{'type':_0x41ad8b(0x18d),'path':_0x25b795[_0x41ad8b(0x18f)],'hash':_0x3993a4[_0x41ad8b(0x1a2)]},'manifest':_0x3993a4[_0x41ad8b(0x1ce)],'normalizedManifest':_0x3993a4['normalizedManifest']},_0xad0a59=_0x3bb282['services'][_0x41ad8b(0x1c1)](_0x308624=>_0x308624[_0x41ad8b(0x1dc)]===_0x32bb3b);_0xad0a59>=0x0?(_0x3bb282[_0x41ad8b(0x1bc)][_0xad0a59]=_0x153a8b,_0x451527++):(_0x3bb282[_0x41ad8b(0x1bc)][_0x41ad8b(0x194)](_0x153a8b),_0xb1ca3d++),_0xba5ab2[_0x41ad8b(0x194)](_0x153a8b);}_0x3bb282[_0x41ad8b(0x1bc)][_0x41ad8b(0x1db)]((_0x5b873e,_0x44d843)=>_0x5b873e[_0x41ad8b(0x1dc)][_0x41ad8b(0x1cd)](_0x44d843[_0x41ad8b(0x1dc)])),_0x3bb282['updatedAt']=_0x5b451a;const _0x4e46ee=writeServiceRegistry(_0x3bb282,_0x57a74d);return{'registryPath':_0x4e46ee,'entry':_0xba5ab2[0x0],'replaced':_0xba5ab2[_0x41ad8b(0x1a1)]===0x1?_0x451527===0x1:_0x451527>0x0,'entries':_0xba5ab2,'imported':_0xb1ca3d,'updated':_0x451527,'serviceCount':_0x3bb282[_0x41ad8b(0x1bc)]['length']};}export function exportServiceManifest(_0x19e129,_0x3cb815,_0x1984f4={}){const _0x191ea2=a65_0x455dc5,_0x423be4=getServiceRegistryPath(_0x1984f4),_0x32c37f=getLocalServiceEntry(_0x19e129,_0x1984f4);if(!_0x32c37f)throw CliErrors[_0x191ea2(0x191)](_0x191ea2(0x1d7)+_0x19e129,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x46e5f6=resolve(_0x3cb815),_0x4a55d7=dirname(_0x46e5f6);return!existsSync(_0x4a55d7)&&mkdirSync(_0x4a55d7,{'recursive':!![]}),writeFileSync(_0x46e5f6,JSON[_0x191ea2(0x1cf)](_0x32c37f[_0x191ea2(0x1ce)],null,0x2)+'\x0a',{'encoding':_0x191ea2(0x1b0),'mode':0x180}),{'registryPath':_0x423be4,'filePath':_0x46e5f6,'entry':_0x32c37f};}export function removeServiceManifest(_0x5a5f5e,_0x4460bb={}){const _0x1fe659=a65_0x455dc5,_0x4a2582=readServiceRegistry(_0x4460bb),_0x4c7d5f=_0x5a5f5e[_0x1fe659(0x1d8)](),_0x533e00=_0x4a2582[_0x1fe659(0x1bc)]['findIndex'](_0x365101=>_0x365101[_0x1fe659(0x1dc)]===_0x4c7d5f);if(_0x533e00<0x0)throw CliErrors[_0x1fe659(0x191)](_0x1fe659(0x1d7)+_0x4c7d5f,_0x1fe659(0x1b8));const [_0x487ef8]=_0x4a2582[_0x1fe659(0x1bc)]['splice'](_0x533e00,0x1),_0x457285=(_0x4460bb[_0x1fe659(0x19b)]??(()=>new Date()))()[_0x1fe659(0x1d6)]();_0x4a2582[_0x1fe659(0x18b)]=_0x457285;const _0x59b3a9=writeServiceRegistry(_0x4a2582,_0x4460bb);return{'registryPath':_0x59b3a9,'entry':_0x487ef8,'serviceCount':_0x4a2582[_0x1fe659(0x1bc)][_0x1fe659(0x1a1)]};}export function listLocalServices(_0x2f68d4={}){const _0x222dfc=a65_0x455dc5;return readServiceRegistry(_0x2f68d4)[_0x222dfc(0x1bc)];}export function getLocalServiceEntry(_0x270e24,_0x2bd6f2={}){const _0x4a30db=a65_0x455dc5;return readServiceRegistry(_0x2bd6f2)[_0x4a30db(0x1bc)][_0x4a30db(0x1a7)](_0x57147f=>_0x57147f[_0x4a30db(0x1dc)]===_0x270e24[_0x4a30db(0x1d8)]());}export function listLocalServiceTrees(_0x4a4ec0={}){const _0x537999=a65_0x455dc5;return readServiceRegistry(_0x4a4ec0)[_0x537999(0x1bc)][_0x537999(0x1ba)](_0x309ebc=>_0x309ebc[_0x537999(0x1ac)]);}export function inspectServiceRegistry(_0x46043b={}){const _0x57bcc6=a65_0x455dc5,_0x4c52de=getServiceRegistryPath(_0x46043b);if(!existsSync(_0x4c52de))return emptyServiceRegistryInspection(_0x4c52de,'missing',![]);try{const _0x11fd45=readFileSync(_0x4c52de,_0x57bcc6(0x1b0));if(!_0x11fd45['trim']())return emptyServiceRegistryInspection(_0x4c52de,'empty',!![]);const _0xb1808f=JSON[_0x57bcc6(0x1ad)](_0x11fd45);if(_0xb1808f['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4c52de,_0x57bcc6(0x189),!![]),'schemaVersion':_0xb1808f['schemaVersion'],'message':_0x57bcc6(0x1b3)+String(_0xb1808f[_0x57bcc6(0x1cb)])};if(!Array[_0x57bcc6(0x1d1)](_0xb1808f[_0x57bcc6(0x1bc)]))return{...emptyServiceRegistryInspection(_0x4c52de,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb1808f[_0x57bcc6(0x18b)],'message':_0x57bcc6(0x19d)};const _0x62c035=_0xb1808f['services'][_0x57bcc6(0x1ba)](summarizeLocalServiceEntry);return{'registryPath':_0x4c52de,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb1808f[_0x57bcc6(0x18b)],'serviceCount':_0x62c035[_0x57bcc6(0x1a1)],'commandCount':_0x62c035[_0x57bcc6(0x1a0)]((_0x54f64a,_0x26d5f8)=>_0x54f64a+_0x26d5f8[_0x57bcc6(0x1b2)],0x0),'services':_0x62c035};}catch(_0x360867){return{...emptyServiceRegistryInspection(_0x4c52de,_0x57bcc6(0x189),!![]),'message':_0x360867 instanceof Error?_0x360867[_0x57bcc6(0x1a3)]:String(_0x360867)};}}export function formatValidationFailure(_0x11864f){const _0x28b1a6=a65_0x455dc5,_0x4bf345=_0x11864f[_0x28b1a6(0x1c3)][_0x28b1a6(0x1ba)](_0x5467e2=>_0x5467e2[_0x28b1a6(0x18c)]+':\x20'+_0x5467e2['message']);return _0x28b1a6(0x1c6)+_0x4bf345[_0x28b1a6(0x1be)]('\x0a');}function extractLoadedServiceManifests(_0xc3c781,_0x4871b7){const _0x207925=a65_0x455dc5;if(!isServiceRegistryLike(_0xc3c781)){const _0x5092e1=_0xc3c781,{manifest:_0x260bad,errors:_0x279fcc}=adaptServiceTreeManifestForLegacyFramework(_0x5092e1),_0x1d9c5d=validateServiceTreeManifest(_0x260bad),_0x303681=mergeValidationErrors(_0x1d9c5d,_0x279fcc);return[{'manifest':_0x5092e1,'report':_0x303681,'normalizedManifest':_0x303681['ok']?normalizeServiceTreeManifest(_0x260bad):undefined,'sourceHash':_0x4871b7}];}return _0xc3c781[_0x207925(0x1bc)][_0x207925(0x1ba)]((_0x164e27,_0x4079b8)=>{const _0x4a189f=_0x207925,_0x4d7569=isObjectRecord(_0x164e27)?_0x164e27[_0x4a189f(0x1ce)]:undefined,{manifest:_0x35cff6,errors:_0x1ef7c0}=adaptServiceTreeManifestForLegacyFramework(_0x4d7569),_0xfc0f57=validateServiceTreeManifest(_0x35cff6),_0x2a4f90=mergeValidationErrors(_0xfc0f57,_0x1ef7c0),_0x2b74e8=isObjectRecord(_0x164e27)&&typeof _0x164e27['serviceCode']===_0x4a189f(0x199)?_0x164e27[_0x4a189f(0x1dc)]:undefined;return{'manifest':_0x4d7569,'report':_0x2a4f90,'normalizedManifest':_0x2a4f90['ok']?normalizeServiceTreeManifest(_0x35cff6):undefined,'sourceHash':sha256(JSON[_0x4a189f(0x1cf)](_0x4d7569,null,0x2)+'\x0a'),'registryIndex':_0x4079b8,'registryServiceCode':_0x2b74e8};});}function mergeValidationErrors(_0xb1255e,_0x2d101d){const _0x4cb069=a65_0x455dc5,_0x3b1ee5=_0xb1255e[_0x4cb069(0x1c3)]['map'](_0x4336e4=>_0x4336e4[_0x4cb069(0x1a3)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x4336e4,'message':_0x4cb069(0x1a5)}:_0x4336e4),_0x5f4ce8=[..._0x2d101d,..._0x3b1ee5];return{'ok':_0x5f4ce8[_0x4cb069(0x1a1)]===0x0,'errors':_0x5f4ce8,'warnings':_0xb1255e[_0x4cb069(0x1a4)]};}function aggregateValidationReports(_0x49a907){const _0x53174b=a65_0x455dc5,_0x156e02=_0x49a907[_0x53174b(0x1c2)](_0x3b22b5=>_0x3b22b5[_0x53174b(0x1d4)]===undefined?_0x3b22b5[_0x53174b(0x19f)][_0x53174b(0x1c3)]:_0x3b22b5[_0x53174b(0x19f)]['errors'][_0x53174b(0x1ba)](_0x3ad1db=>({..._0x3ad1db,'path':prefixRegistryIssuePath(_0x3b22b5[_0x53174b(0x1d4)],_0x3ad1db[_0x53174b(0x18c)])}))),_0x1a23d6=_0x49a907[_0x53174b(0x1c2)](_0x4c6b3d=>_0x4c6b3d[_0x53174b(0x1d4)]===undefined?_0x4c6b3d[_0x53174b(0x19f)][_0x53174b(0x1a4)]:_0x4c6b3d[_0x53174b(0x19f)][_0x53174b(0x1a4)]['map'](_0x4ab66d=>({..._0x4ab66d,'path':prefixRegistryIssuePath(_0x4c6b3d['registryIndex'],_0x4ab66d[_0x53174b(0x18c)])})));return{'ok':_0x156e02[_0x53174b(0x1a1)]===0x0,'errors':_0x156e02,'warnings':_0x1a23d6};}function prefixRegistryIssuePath(_0x13513e,_0x55ed73){const _0x597331=a65_0x455dc5;if(_0x55ed73==='$')return'$.services['+_0x13513e+_0x597331(0x1bb);if(_0x55ed73['startsWith']('$.'))return _0x597331(0x1ab)+_0x13513e+_0x597331(0x1bb)+_0x55ed73[_0x597331(0x1a8)](0x1);if(_0x55ed73[_0x597331(0x1b6)]('$['))return _0x597331(0x1ab)+_0x13513e+_0x597331(0x1bb)+_0x55ed73[_0x597331(0x1a8)](0x1);return _0x597331(0x1ab)+_0x13513e+'].manifest.'+_0x55ed73;}function isServiceRegistryLike(_0x54f221){const _0x138fa9=a65_0x455dc5;return isObjectRecord(_0x54f221)&&_0x54f221[_0x138fa9(0x1cb)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x138fa9(0x1d1)](_0x54f221['services']);}function isObjectRecord(_0x3e989f){const _0x132c7c=a65_0x455dc5;return Boolean(_0x3e989f)&&typeof _0x3e989f===_0x132c7c(0x1d9)&&!Array['isArray'](_0x3e989f);}function emptyServiceRegistryInspection(_0x587deb,_0x9fb249,_0x28d871){return{'registryPath':_0x587deb,'exists':_0x28d871,'status':_0x9fb249,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5e9055){const _0x6fc137=a65_0x455dc5,_0x5a03de=_0x5e9055[_0x6fc137(0x1ac)],_0x34347f=_0x5a03de['commands'][_0x6fc137(0x1ba)](_0x48b613=>({'path':_0x48b613[_0x6fc137(0x1bd)],'description':_0x48b613[_0x6fc137(0x1dd)],'risk':_0x48b613[_0x6fc137(0x1cc)],'targetKind':_0x48b613[_0x6fc137(0x196)][_0x6fc137(0x1c4)],'targetCommand':_0x48b613['target']['command']}));return{'serviceCode':_0x5e9055['serviceCode'],'name':_0x5a03de[_0x6fc137(0x1d2)][_0x6fc137(0x1b4)],'description':_0x5a03de[_0x6fc137(0x1d2)][_0x6fc137(0x1dd)],'version':_0x5e9055[_0x6fc137(0x190)],'importedAt':_0x5e9055[_0x6fc137(0x1b1)],'source':_0x5e9055[_0x6fc137(0x1c9)],'commandCount':_0x34347f['length'],'commands':_0x34347f};}function a65_0x14fd(){const _0x2bfa38=['5rDriMF','3346782cWAwRI','push','service.json','target','registry','3028riUISs','string','6060SVQSvv','now','7955tnXDpL','services\x20must\x20be\x20an\x20array','.tmp','report','reduce','length','sourceHash','message','warnings','bff\x20target\x20requires\x20functionName.','ENOENT','find','slice','homeDirName','Service\x20manifest\x20file\x20not\x20found:\x20','$.services[','normalizedManifest','parse','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','352890BUoTAE','utf8','importedAt','commandCount','Unsupported\x20schemaVersion:\x20','name','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','startsWith','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','CliError','map','].manifest','services','cliPath','join','13194lUvWne','13780740GmwPmQ','findIndex','flatMap','errors','kind','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','Cannot\x20write\x20service\x20registry:\x20','4184HKClrX','source','Invalid\x20service\x20registry\x20JSON:\x20','schemaVersion','risk','localeCompare','manifest','stringify','224446mUcJAP','isArray','service','digest','registryIndex','Remove\x20or\x20migrate\x20','toISOString','Local\x20service\x20not\x20found:\x20','trim','object','28wwtQRX','sort','serviceCode','description','invalid','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','updatedAt','path','file','14762HTxpNJ','filePath','version','validation'];a65_0x14fd=function(){return _0x2bfa38;};return a65_0x14fd();}function sha256(_0xd5f0ce){const _0x2e3248=a65_0x455dc5;return createHash('sha256')['update'](_0xd5f0ce)[_0x2e3248(0x1d3)]('hex');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a66_0x56d9c9=a66_0x12e9;(function(_0x4a9888,_0x11468a){const _0x2eef04=a66_0x12e9,_0x4fa228=_0x4a9888();while(!![]){try{const _0xb5ae7a=-parseInt(_0x2eef04(0xf9))/0x1+-parseInt(_0x2eef04(0xd7))/0x2*(parseInt(_0x2eef04(0xe1))/0x3)+-parseInt(_0x2eef04(0xd8))/0x4*(parseInt(_0x2eef04(0xf4))/0x5)+-parseInt(_0x2eef04(0xd9))/0x6+parseInt(_0x2eef04(0xd6))/0x7*(parseInt(_0x2eef04(0xf7))/0x8)+parseInt(_0x2eef04(0xd5))/0x9*(parseInt(_0x2eef04(0xf8))/0xa)+parseInt(_0x2eef04(0xe2))/0xb*(parseInt(_0x2eef04(0xdb))/0xc);if(_0xb5ae7a===_0x11468a)break;else _0x4fa228['push'](_0x4fa228['shift']());}catch(_0x24626d){_0x4fa228['push'](_0x4fa228['shift']());}}}(a66_0x1459,0x2b338));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a66_0x12e9(_0x1d3ef1,_0x3d12c4){_0x1d3ef1=_0x1d3ef1-0xd4;const _0x14593b=a66_0x1459();let _0x12e951=_0x14593b[_0x1d3ef1];return _0x12e951;}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a66_0x1459(){const _0x5daa30=['12xfWQvT','type','rendered','files','target','skillDir','30813VYqXkI','5768455nLWaCT','skill','isSymbolicLink','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Skill\x20directory\x20already\x20exists:\x20','WRITE','isDirectory','Created\x20local\x20Skill\x20draft\x20','force','skillName','map','Refusing\x20to\x20overwrite\x20symlink:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','validation','str','path','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','5yHWudS','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','utf8','1288KCFiOk','1213640WiNvLa','52358lhRHvI','create','9drrDnq','406NTedfr','4NAlxVs','609084HDOQmD','1517904aklQqX','name'];a66_0x1459=function(){return _0x5daa30;};return a66_0x1459();}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a66_0x56d9c9(0xe3),'command':a66_0x56d9c9(0xd4),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x519acd){const _0x1bd48b=a66_0x56d9c9,_0x50dc5a=buildSkillCreatePlan(_0x519acd[_0x1bd48b(0xf0)]('name'),_0x519acd['str']('type'),_0x519acd[_0x1bd48b(0xf0)](_0x1bd48b(0xdf)));return{'method':_0x1bd48b(0xe7),'url':_0x50dc5a[_0x1bd48b(0xe0)],'body':{'skillName':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xeb)],'type':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xdc)],'selfContained':!![],'files':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xde)]['map'](_0x602499=>_0x602499[_0x1bd48b(0xf1)])},'description':_0x1bd48b(0xf5)};},async 'execute'(_0x55759c){const _0x42168d=a66_0x56d9c9,_0x4a1b5d=buildSkillCreatePlan(_0x55759c[_0x42168d(0xf0)](_0x42168d(0xda)),_0x55759c[_0x42168d(0xf0)](_0x42168d(0xdc)),_0x55759c[_0x42168d(0xf0)](_0x42168d(0xdf)));return writeSkillDraft(_0x4a1b5d,_0x55759c['bool'](_0x42168d(0xea))),{'ok':!![],'data':{'skillName':_0x4a1b5d[_0x42168d(0xdd)][_0x42168d(0xeb)],'type':_0x4a1b5d['rendered'][_0x42168d(0xdc)],'dir':_0x4a1b5d[_0x42168d(0xe0)],'files':_0x4a1b5d['rendered'][_0x42168d(0xde)][_0x42168d(0xec)](_0x283975=>_0x283975[_0x42168d(0xf1)])},'message':_0x42168d(0xe9)+_0x4a1b5d[_0x42168d(0xdd)]['skillName']};}};function buildSkillCreatePlan(_0x181cfa,_0x49ec8f,_0x5c5767){const _0x2300dc=a66_0x56d9c9,_0x55e09b=_0x49ec8f['trim'](),_0x447590=renderSkillTemplate({'skillName':_0x181cfa,'type':_0x55e09b});!_0x55e09b&&writeCliSideChannelLine(_0x2300dc(0xf2));const _0x1d06c3=resolve(normalizeSkillTarget(_0x5c5767));return{'rendered':_0x447590,'targetRoot':_0x1d06c3,'skillDir':resolve(_0x1d06c3,_0x447590[_0x2300dc(0xeb)])};}function normalizeSkillTarget(_0x60e08c){return(_0x60e08c||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x428a24,_0xe98993){const _0x433cd0=a66_0x56d9c9;if(existsSync(_0x428a24[_0x433cd0(0xe0)])){const _0x29a27b=lstatSync(_0x428a24[_0x433cd0(0xe0)]);if(!_0x29a27b[_0x433cd0(0xe8)]()||_0x29a27b[_0x433cd0(0xe4)]())throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xe5)+_0x428a24[_0x433cd0(0xe0)]);if(!_0xe98993)throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xe6)+_0x428a24[_0x433cd0(0xe0)],_0x433cd0(0xee));}for(const _0x785306 of _0x428a24['rendered'][_0x433cd0(0xde)]){const _0x18c4b6=resolve(_0x428a24[_0x433cd0(0xe0)],_0x785306[_0x433cd0(0xf1)]),_0x5b4eb9=dirname(_0x18c4b6);mkdirSync(_0x5b4eb9,{'recursive':!![]});if(existsSync(_0x18c4b6)&&lstatSync(_0x18c4b6)['isSymbolicLink']())throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xed)+_0x18c4b6);writeFileSync(_0x18c4b6,_0x785306[_0x433cd0(0xf3)],_0x433cd0(0xf6));}}
|