@lovrabet/lovrabet-cli 2.3.1-beta.2 → 2.3.1-beta.4
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 +53 -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/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.d.ts +2 -0
- 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.d.ts +2 -0
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.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.d.ts +33 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.d.ts +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.d.ts +0 -51
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.d.ts +3 -5
- 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.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.d.ts +59 -0
- package/lib/generated/official-routing.js +1 -0
- package/lib/generated/routing-contract.d.ts +9 -0
- package/lib/generated/routing-contract.js +1 -0
- 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/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/platform.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 +2 -1
- package/skills/lovrabet/SKILL.md +3 -3
- package/skills/lovrabet/guides/troubleshooting.md +3 -5
- package/skills/lovrabet/references/lovrabet-config-commands.md +35 -10
- package/skills/lovrabet/references/lovrabet-config.md +7 -19
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
function a54_0x152a(_0x5950d8,_0x3aadc3){_0x5950d8=_0x5950d8-0x1bf;const _0x372c49=a54_0x372c();let _0x152aa1=_0x372c49[_0x5950d8];return _0x152aa1;}const a54_0x5c1c2f=a54_0x152a;(function(_0x410c80,_0x354c6c){const _0x399766=a54_0x152a,_0x26bdb9=_0x410c80();while(!![]){try{const _0x53d8a2=-parseInt(_0x399766(0x20a))/0x1*(parseInt(_0x399766(0x203))/0x2)+parseInt(_0x399766(0x1f4))/0x3*(parseInt(_0x399766(0x1f0))/0x4)+parseInt(_0x399766(0x1cf))/0x5+-parseInt(_0x399766(0x1e3))/0x6*(parseInt(_0x399766(0x1ec))/0x7)+parseInt(_0x399766(0x1eb))/0x8*(parseInt(_0x399766(0x20b))/0x9)+parseInt(_0x399766(0x1e0))/0xa*(-parseInt(_0x399766(0x1f8))/0xb)+-parseInt(_0x399766(0x1f9))/0xc*(-parseInt(_0x399766(0x1e1))/0xd);if(_0x53d8a2===_0x354c6c)break;else _0x26bdb9['push'](_0x26bdb9['shift']());}catch(_0x37abf4){_0x26bdb9['push'](_0x26bdb9['shift']());}}}(a54_0x372c,0xcf54d));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';function a54_0x372c(){const _0x185cdf=['Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','user-add','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','137948GZqEuo','role','OWNER','Runtime\x20user\x20','87GUcQlr','find','map','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','22dVrgvE','1821804LWWMdX','str','roleType','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','userCount','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','length','remark','userId','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','50002wNdgbA','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','Runtime\x20role\x20','Runtime\x20role\x20name\x20\x22','number','Runtime\x20role\x20id\x20','\x20built-in\x20runtime\x20role\x20','34xglexG','9ajfZgi','Cannot\x20','ADMIN','test','includes','filter','expect-user-count','\x20was\x20not\x20found\x20in\x20app\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','push','roleName','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.',',\x20found\x20','appCode','code','string','CUSTOM','Missing\x20runtime\x20role\x20reference.','applyUserList','8394170LxFakQ','user','trim','\x22\x20is\x20ambiguous.','items','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','totalCount','paging','runtime','\x22\x20was\x20not\x20found\x20in\x20app\x20','Pass\x20one\x20role\x20ID:\x20','permitCount','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','userList','\x20is\x20already\x20in\x20runtime\x20role\x20','isSafeInteger','validation','4844610Hpydnk','26CyMVVj','USER','466638ewrZbF','Pass\x20--role\x20<id|name>.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','userName','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','1217856UbkgxY','42YhpcgE'];a54_0x372c=function(){return _0x185cdf;};return a54_0x372c();}import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a54_0x5c1c2f(0x20d),a54_0x5c1c2f(0x1e2),a54_0x5c1c2f(0x1f2),a54_0x5c1c2f(0x1cc)];const BUILTIN_ROLE_TYPES=[a54_0x5c1c2f(0x20d),a54_0x5c1c2f(0x1e2),a54_0x5c1c2f(0x1f2)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x5c1c2f(0x207),'required':!![],'description':a54_0x5c1c2f(0x1f7)};export const ROLE_REF_FLAG={'name':a54_0x5c1c2f(0x1f1),'type':a54_0x5c1c2f(0x1cb),'required':!![],'description':a54_0x5c1c2f(0x1e7)};export const USER_ID_FLAG={'name':a54_0x5c1c2f(0x1d0),'type':a54_0x5c1c2f(0x1cb),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x5c1c2f(0x1c2),'type':a54_0x5c1c2f(0x207),'description':a54_0x5c1c2f(0x1fc)};export function isBuiltinRuntimeRole(_0x31a191){const _0x419bae=a54_0x5c1c2f;return BUILTIN_ROLE_TYPES[_0x419bae(0x1c0)](_0x31a191);}export function assertCustomRuntimeRole(_0x58ab93,_0x578a5b){const _0x26905e=a54_0x5c1c2f;if(_0x58ab93[_0x26905e(0x1fb)]!==_0x26905e(0x1cc))throw CliErrors[_0x26905e(0x1df)](_0x26905e(0x20c)+_0x578a5b+_0x26905e(0x209)+_0x58ab93[_0x26905e(0x1c6)]+'\x20('+_0x58ab93[_0x26905e(0x1fb)]+').',_0x26905e(0x1d4));}export function projectRuntimeRole(_0x2a3520){const _0x3f7a38=a54_0x5c1c2f;return{'id':_0x2a3520['id'],'roleName':_0x2a3520[_0x3f7a38(0x1c6)],'roleType':_0x2a3520[_0x3f7a38(0x1fb)],'remark':_0x2a3520[_0x3f7a38(0x200)],'userCount':_0x2a3520[_0x3f7a38(0x1fd)]??0x0,'permitCount':_0x2a3520[_0x3f7a38(0x1da)]??0x0,'builtin':isBuiltinRuntimeRole(_0x2a3520[_0x3f7a38(0x1fb)])};}export async function getRuntimeRoleById(_0x5153b2,_0x4bd1e3){const _0x577fcc=a54_0x5c1c2f;if(!Number['isSafeInteger'](_0x4bd1e3)||_0x4bd1e3<=0x0)throw CliErrors[_0x577fcc(0x1df)](_0x577fcc(0x204));const _0x46e505=(await listAllRuntimeRoles(_0x5153b2))[_0x577fcc(0x1c1)](_0x567711=>_0x567711['id']===_0x4bd1e3&&(!_0x567711[_0x577fcc(0x1c9)]||_0x567711['appCode']===_0x5153b2));if(_0x46e505[_0x577fcc(0x1ff)]!==0x1)throw CliErrors['validation'](_0x577fcc(0x208)+_0x4bd1e3+_0x577fcc(0x1c3)+_0x5153b2+'.',_0x577fcc(0x1ef));return _0x46e505[0x0];}export async function listAllRuntimeRoles(_0x5c92d0,_0x3ea875={}){const _0x2b91d9=a54_0x5c1c2f,_0x258c6f=0x64,_0x53f56b=[];for(let _0x5973c6=0x1;;_0x5973c6+=0x1){const _0x301cec=await listRuntimeAppRoles(_0x5c92d0,{..._0x3ea875[_0x2b91d9(0x1c6)]?{'roleName':_0x3ea875[_0x2b91d9(0x1c6)]}:{},'currentPage':_0x5973c6,'pageSize':_0x258c6f});_0x53f56b[_0x2b91d9(0x1c5)](..._0x301cec[_0x2b91d9(0x1d3)]);if(_0x301cec[_0x2b91d9(0x1d3)][_0x2b91d9(0x1ff)]<_0x258c6f||_0x301cec[_0x2b91d9(0x1d6)]&&_0x53f56b[_0x2b91d9(0x1ff)]>=_0x301cec[_0x2b91d9(0x1d6)][_0x2b91d9(0x1d5)])return _0x53f56b;}}export async function resolveRuntimeRoleRef(_0x3cb59a,_0x2bbd2e){const _0x1ecaff=a54_0x5c1c2f,_0x156b09=_0x2bbd2e['trim']();if(!_0x156b09)throw CliErrors[_0x1ecaff(0x1df)](_0x1ecaff(0x1cd),_0x1ecaff(0x1e4));if(/^\d+$/[_0x1ecaff(0x1bf)](_0x156b09))return getRuntimeRoleById(_0x3cb59a,Number(_0x156b09));const _0x2085b5=(await listAllRuntimeRoles(_0x3cb59a))['filter'](_0x3267c9=>_0x3267c9[_0x1ecaff(0x1c6)]===_0x156b09);if(_0x2085b5['length']===0x0)throw CliErrors[_0x1ecaff(0x1df)]('Runtime\x20role\x20name\x20\x22'+_0x156b09+_0x1ecaff(0x1d8)+_0x3cb59a+'.',_0x1ecaff(0x1c4));if(_0x2085b5[_0x1ecaff(0x1ff)]>0x1)throw CliErrors[_0x1ecaff(0x1df)](_0x1ecaff(0x206)+_0x156b09+_0x1ecaff(0x1d2),_0x1ecaff(0x1d9)+_0x2085b5[_0x1ecaff(0x1f6)](_0x23cc78=>_0x23cc78['id'])['join'](',\x20')+'.');return _0x2085b5[0x0];}function parseRuntimeUserId(_0x274a09){const _0x1df398=a54_0x5c1c2f,_0x188fde=_0x274a09[_0x1df398(0x1d1)]();if(!/^\d+$/[_0x1df398(0x1bf)](_0x188fde))throw CliErrors[_0x1df398(0x1df)](_0x1df398(0x1ed),_0x1df398(0x202));const _0x2e4026=Number(_0x188fde);if(!Number[_0x1df398(0x1de)](_0x2e4026)||_0x2e4026<=0x0)throw CliErrors[_0x1df398(0x1df)]('Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.');return _0x2e4026;}export async function prepareRuntimeMemberMutation(_0x2ab768,_0x2b6f1a){const _0x127f3e=a54_0x5c1c2f,_0x12af3c=await resolveRuntimeRoleRef(_0x2ab768[_0x127f3e(0x1c9)],_0x2ab768[_0x127f3e(0x1fa)](_0x127f3e(0x1f1)));if(_0x12af3c[_0x127f3e(0x1fb)]===_0x127f3e(0x1f2))throw CliErrors['validation'](_0x127f3e(0x1ea),'Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x535d39=parseRuntimeUserId(_0x2ab768[_0x127f3e(0x1fa)](_0x127f3e(0x1d0))),_0x29e15b=(await listRuntimeRoleUsers(_0x2ab768['appCode']))[_0x127f3e(0x1f6)](_0x1c480d=>({..._0x1c480d,'userList':[..._0x1c480d[_0x127f3e(0x1dc)]??[]],'applyUserList':[..._0x1c480d[_0x127f3e(0x1ce)]??[]]})),_0x46aa08=_0x29e15b[_0x127f3e(0x1f5)](_0x549fbb=>_0x549fbb['id']===_0x12af3c['id']);if(!_0x46aa08)throw CliErrors[_0x127f3e(0x1df)](_0x127f3e(0x205)+_0x12af3c['id']+_0x127f3e(0x1e5),_0x127f3e(0x1e9));const _0x3df14a=_0x46aa08[_0x127f3e(0x1dc)][_0x127f3e(0x1f6)](_0x33e693=>_0x33e693[_0x127f3e(0x201)]),_0x305161=_0x2ab768['flag'](_0x127f3e(0x1c2));if(_0x305161!==undefined&&_0x305161!==null&&_0x305161!==''){const _0x45fcd3=_0x2ab768['num']('expect-user-count');if(!Number[_0x127f3e(0x1de)](_0x45fcd3)||_0x45fcd3<0x0)throw CliErrors['validation'](_0x127f3e(0x1c7));if(_0x3df14a['length']!==_0x45fcd3)throw CliErrors['validation'](_0x127f3e(0x1fe)+_0x45fcd3+_0x127f3e(0x1c8)+_0x3df14a[_0x127f3e(0x1ff)]+'.',_0x127f3e(0x1db));}const _0x5d6bb5=_0x3df14a[_0x127f3e(0x1c0)](_0x535d39),_0x512006=[];let _0xf3cae7=!![];if(_0x2b6f1a===_0x127f3e(0x1ee)){const _0x502bf6=await listRuntimeAppUsers(_0x2ab768['appCode']),_0x55d942=_0x502bf6['filter'](_0x3e897c=>Number(_0x3e897c[_0x127f3e(0x1ca)])===_0x535d39);if(_0x55d942[_0x127f3e(0x1ff)]!==0x1||!_0x55d942[0x0]['userName']?.[_0x127f3e(0x1d1)]())throw CliErrors[_0x127f3e(0x1df)](_0x127f3e(0x1f3)+_0x535d39+_0x127f3e(0x1c3)+_0x2ab768[_0x127f3e(0x1c9)]+'.',_0x127f3e(0x1e8));_0x5d6bb5?(_0xf3cae7=![],_0x512006[_0x127f3e(0x1c5)]('User\x20'+_0x535d39+_0x127f3e(0x1dd)+_0x12af3c['id']+'.')):_0x46aa08[_0x127f3e(0x1dc)][_0x127f3e(0x1c5)]({'userId':_0x535d39,'username':_0x55d942[0x0][_0x127f3e(0x1e6)]});}else!_0x5d6bb5?(_0xf3cae7=![],_0x512006['push']('User\x20'+_0x535d39+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x12af3c['id']+'.')):_0x46aa08['userList']=_0x46aa08['userList'][_0x127f3e(0x1c1)](_0x1af175=>_0x1af175[_0x127f3e(0x201)]!==_0x535d39);return{'role':_0x12af3c,'userId':_0x535d39,'roleList':_0x29e15b,'before':{'userIds':_0x3df14a},'after':{'userIds':_0x46aa08['userList']['map'](_0x22ed91=>_0x22ed91[_0x127f3e(0x201)])},'shouldWrite':_0xf3cae7,'warnings':_0x512006};}export function runtimeRoleWriteResult(_0x24eafb,_0x2dafb4,_0x27caba,_0x127a53,_0x1a9418,_0x275af7=[]){const _0x105664=a54_0x5c1c2f;return{'operation':_0x24eafb,'scope':_0x105664(0x1d7),'selector':_0x2dafb4,'before':_0x27caba,'after':_0x127a53,'dryRun':![],'backend':_0x1a9418,'warnings':_0x275af7};}
|
|
1
|
+
const a54_0x4cac13=a54_0x1dbb;(function(_0x252681,_0x583d8f){const _0x447dc6=a54_0x1dbb,_0x442e4f=_0x252681();while(!![]){try{const _0x5c6709=-parseInt(_0x447dc6(0xda))/0x1+-parseInt(_0x447dc6(0xcc))/0x2*(-parseInt(_0x447dc6(0xd8))/0x3)+parseInt(_0x447dc6(0xd6))/0x4+parseInt(_0x447dc6(0xe6))/0x5+parseInt(_0x447dc6(0xe0))/0x6+parseInt(_0x447dc6(0xea))/0x7*(-parseInt(_0x447dc6(0xed))/0x8)+-parseInt(_0x447dc6(0xdc))/0x9;if(_0x5c6709===_0x583d8f)break;else _0x442e4f['push'](_0x442e4f['shift']());}catch(_0x122b3d){_0x442e4f['push'](_0x442e4f['shift']());}}}(a54_0x74fe,0x5e9b8));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=['ADMIN',a54_0x4cac13(0xc7),'OWNER','CUSTOM'];function a54_0x74fe(){const _0x45d9b7=['num','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','Runtime\x20role\x20id\x20','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','flag','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','Runtime\x20numeric\x20userId','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','\x20built-in\x20runtime\x20role\x20','filter','validation','roleName','join','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','role','User\x20',',\x20found\x20','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','remark','OWNER','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','includes','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','Runtime\x20role\x20','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','applyUserList','CUSTOM','Runtime\x20user\x20','items','userName','push','USER','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','user','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','2TwLtjK','str','totalCount','expect-user-count','code','roleType','user-add','map','trim','length','1918812ChKCqj','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','537399OFQybp','number','12054EHkKsi','\x20was\x20not\x20found\x20in\x20app\x20','2742039mkzJHU','\x20is\x20not\x20in\x20runtime\x20role\x20','string','find','1975230lErumx','\x22\x20is\x20ambiguous.','\x22\x20was\x20not\x20found\x20in\x20app\x20','isSafeInteger','Runtime\x20role\x20name\x20\x22','userList','170300WZKSth','paging','permitCount','appCode','28wYptMr','Pass\x20--role\x20<id|name>.','Pass\x20one\x20role\x20ID:\x20','635728CvixXz','Cannot\x20','test'];a54_0x74fe=function(){return _0x45d9b7;};return a54_0x74fe();}const BUILTIN_ROLE_TYPES=['ADMIN',a54_0x4cac13(0xc7),a54_0x4cac13(0x106)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x4cac13(0xd9),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':'role','type':a54_0x4cac13(0xde),'required':!![],'description':a54_0x4cac13(0xf2)};export const USER_ID_FLAG={'name':a54_0x4cac13(0xca),'type':a54_0x4cac13(0xde),'required':!![],'description':a54_0x4cac13(0xf7)};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x4cac13(0xcf),'type':'number','description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x8689f6){const _0x3562cc=a54_0x4cac13;return BUILTIN_ROLE_TYPES[_0x3562cc(0x108)](_0x8689f6);}export function assertCustomRuntimeRole(_0xb0f5a7,_0x29942b){const _0xe01478=a54_0x4cac13;if(_0xb0f5a7[_0xe01478(0xd1)]!==_0xe01478(0x10d))throw CliErrors['validation'](_0xe01478(0xee)+_0x29942b+_0xe01478(0xf9)+_0xb0f5a7[_0xe01478(0xfc)]+'\x20('+_0xb0f5a7[_0xe01478(0xd1)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x596e63){const _0x1ee66e=a54_0x4cac13;return{'id':_0x596e63['id'],'roleName':_0x596e63[_0x1ee66e(0xfc)],'roleType':_0x596e63[_0x1ee66e(0xd1)],'remark':_0x596e63[_0x1ee66e(0x105)],'userCount':_0x596e63['userCount']??0x0,'permitCount':_0x596e63[_0x1ee66e(0xe8)]??0x0,'builtin':isBuiltinRuntimeRole(_0x596e63['roleType'])};}export async function getRuntimeRoleById(_0x1cfc40,_0x26035d){const _0x21e7f5=a54_0x4cac13;if(!Number[_0x21e7f5(0xe3)](_0x26035d)||_0x26035d<=0x0)throw CliErrors[_0x21e7f5(0xfb)](_0x21e7f5(0x10b));const _0x53d3ac=(await listAllRuntimeRoles(_0x1cfc40))[_0x21e7f5(0xfa)](_0x1d02be=>_0x1d02be['id']===_0x26035d&&(!_0x1d02be[_0x21e7f5(0xe9)]||_0x1d02be['appCode']===_0x1cfc40));if(_0x53d3ac[_0x21e7f5(0xd5)]!==0x1)throw CliErrors[_0x21e7f5(0xfb)](_0x21e7f5(0xf3)+_0x26035d+_0x21e7f5(0xdb)+_0x1cfc40+'.',_0x21e7f5(0x107));return _0x53d3ac[0x0];}export async function listAllRuntimeRoles(_0xdb456c,_0x260653={}){const _0x34a80c=a54_0x4cac13,_0x129e7f=0x64,_0x4352d8=[];for(let _0x1e0bf3=0x1;;_0x1e0bf3+=0x1){const _0x38e7d3=await listRuntimeAppRoles(_0xdb456c,{..._0x260653[_0x34a80c(0xfc)]?{'roleName':_0x260653['roleName']}:{},'currentPage':_0x1e0bf3,'pageSize':_0x129e7f});_0x4352d8[_0x34a80c(0xc6)](..._0x38e7d3[_0x34a80c(0xc4)]);if(_0x38e7d3[_0x34a80c(0xc4)][_0x34a80c(0xd5)]<_0x129e7f||_0x38e7d3['paging']&&_0x4352d8['length']>=_0x38e7d3[_0x34a80c(0xe7)][_0x34a80c(0xce)])return _0x4352d8;}}function a54_0x1dbb(_0x3c9934,_0x16c12d){_0x3c9934=_0x3c9934-0xc4;const _0x74fec6=a54_0x74fe();let _0x1dbb58=_0x74fec6[_0x3c9934];return _0x1dbb58;}export async function resolveRuntimeRoleRef(_0x5c8f94,_0xb34242){const _0x1f61f5=a54_0x4cac13,_0x2bd4aa=_0xb34242[_0x1f61f5(0xd4)]();if(!_0x2bd4aa)throw CliErrors[_0x1f61f5(0xfb)]('Missing\x20runtime\x20role\x20reference.',_0x1f61f5(0xeb));if(/^\d+$/[_0x1f61f5(0xef)](_0x2bd4aa))return getRuntimeRoleById(_0x5c8f94,Number(_0x2bd4aa));const _0x100051=(await listAllRuntimeRoles(_0x5c8f94))['filter'](_0xfdd9bb=>_0xfdd9bb[_0x1f61f5(0xfc)]===_0x2bd4aa);if(_0x100051[_0x1f61f5(0xd5)]===0x0)throw CliErrors['validation'](_0x1f61f5(0xe4)+_0x2bd4aa+_0x1f61f5(0xe2)+_0x5c8f94+'.',_0x1f61f5(0xf1));if(_0x100051[_0x1f61f5(0xd5)]>0x1)throw CliErrors['validation']('Runtime\x20role\x20name\x20\x22'+_0x2bd4aa+_0x1f61f5(0xe1),_0x1f61f5(0xec)+_0x100051[_0x1f61f5(0xd3)](_0x593b16=>_0x593b16['id'])[_0x1f61f5(0xfd)](',\x20')+'.');return _0x100051[0x0];}function parseRuntimeUserId(_0x14632c){const _0x189b6c=a54_0x4cac13,_0x449792=_0x14632c[_0x189b6c(0xd4)]();if(!/^\d+$/[_0x189b6c(0xef)](_0x449792))throw CliErrors[_0x189b6c(0xfb)](_0x189b6c(0xf8),_0x189b6c(0xc9));const _0x4ca047=Number(_0x449792);if(!Number['isSafeInteger'](_0x4ca047)||_0x4ca047<=0x0)throw CliErrors[_0x189b6c(0xfb)](_0x189b6c(0xfe));return _0x4ca047;}export async function prepareRuntimeMemberMutation(_0x4c7bd3,_0x4f6fa8){const _0x861a8e=a54_0x4cac13,_0x4e4d9f=await resolveRuntimeRoleRef(_0x4c7bd3[_0x861a8e(0xe9)],_0x4c7bd3['str'](_0x861a8e(0x101)));if(_0x4e4d9f[_0x861a8e(0xd1)]==='OWNER')throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0xc8),_0x861a8e(0x109));const _0x104a27=parseRuntimeUserId(_0x4c7bd3[_0x861a8e(0xcd)](_0x861a8e(0xca))),_0x1f025e=(await listRuntimeRoleUsers(_0x4c7bd3[_0x861a8e(0xe9)]))[_0x861a8e(0xd3)](_0x37627b=>({..._0x37627b,'userList':[..._0x37627b['userList']??[]],'applyUserList':[..._0x37627b[_0x861a8e(0x10c)]??[]]})),_0x40945c=_0x1f025e[_0x861a8e(0xdf)](_0x5adf16=>_0x5adf16['id']===_0x4e4d9f['id']);if(!_0x40945c)throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0x10a)+_0x4e4d9f['id']+_0x861a8e(0x104),_0x861a8e(0xf4));const _0x1abda8=_0x40945c['userList'][_0x861a8e(0xd3)](_0x5217ff=>_0x5217ff['userId']),_0x4e6609=_0x4c7bd3[_0x861a8e(0xf5)](_0x861a8e(0xcf));if(_0x4e6609!==undefined&&_0x4e6609!==null&&_0x4e6609!==''){const _0x56aa91=_0x4c7bd3[_0x861a8e(0xf0)](_0x861a8e(0xcf));if(!Number[_0x861a8e(0xe3)](_0x56aa91)||_0x56aa91<0x0)throw CliErrors['validation'](_0x861a8e(0xf6));if(_0x1abda8[_0x861a8e(0xd5)]!==_0x56aa91)throw CliErrors['validation'](_0x861a8e(0xff)+_0x56aa91+_0x861a8e(0x103)+_0x1abda8[_0x861a8e(0xd5)]+'.',_0x861a8e(0xcb));}const _0x1bdeb3=_0x1abda8[_0x861a8e(0x108)](_0x104a27),_0x666ef6=[];let _0x30afb4=!![];if(_0x4f6fa8===_0x861a8e(0xd2)){const _0x2632ce=await listRuntimeAppUsers(_0x4c7bd3[_0x861a8e(0xe9)]),_0x569eea=_0x2632ce[_0x861a8e(0xfa)](_0x3f110f=>Number(_0x3f110f[_0x861a8e(0xd0)])===_0x104a27);if(_0x569eea[_0x861a8e(0xd5)]!==0x1||!_0x569eea[0x0]['userName']?.['trim']())throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0x10e)+_0x104a27+_0x861a8e(0xdb)+_0x4c7bd3[_0x861a8e(0xe9)]+'.',_0x861a8e(0xd7));_0x1bdeb3?(_0x30afb4=![],_0x666ef6['push'](_0x861a8e(0x102)+_0x104a27+_0x861a8e(0x100)+_0x4e4d9f['id']+'.')):_0x40945c[_0x861a8e(0xe5)][_0x861a8e(0xc6)]({'userId':_0x104a27,'username':_0x569eea[0x0][_0x861a8e(0xc5)]});}else!_0x1bdeb3?(_0x30afb4=![],_0x666ef6['push'](_0x861a8e(0x102)+_0x104a27+_0x861a8e(0xdd)+_0x4e4d9f['id']+'.')):_0x40945c['userList']=_0x40945c[_0x861a8e(0xe5)][_0x861a8e(0xfa)](_0xc64485=>_0xc64485['userId']!==_0x104a27);return{'role':_0x4e4d9f,'userId':_0x104a27,'roleList':_0x1f025e,'before':{'userIds':_0x1abda8},'after':{'userIds':_0x40945c['userList'][_0x861a8e(0xd3)](_0xcda91b=>_0xcda91b['userId'])},'shouldWrite':_0x30afb4,'warnings':_0x666ef6};}export function runtimeRoleWriteResult(_0x6ccb2d,_0x31c574,_0x2a97a5,_0x3fa4b5,_0x36cb18,_0x4cde50=[]){return{'operation':_0x6ccb2d,'scope':'runtime','selector':_0x31c574,'before':_0x2a97a5,'after':_0x3fa4b5,'dryRun':![],'backend':_0x36cb18,'warnings':_0x4cde50};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a55_0x116258=a55_0x3474;(function(_0x4a3db,_0x517dde){const _0x4ccab1=a55_0x3474,_0x130c52=_0x4a3db();while(!![]){try{const _0x47c56a=-parseInt(_0x4ccab1(0x111))/0x1+-parseInt(_0x4ccab1(0x105))/0x2+-parseInt(_0x4ccab1(0x104))/0x3*(parseInt(_0x4ccab1(0x102))/0x4)+parseInt(_0x4ccab1(0x10d))/0x5+-parseInt(_0x4ccab1(0xf9))/0x6+-parseInt(_0x4ccab1(0x109))/0x7*(-parseInt(_0x4ccab1(0x112))/0x8)+parseInt(_0x4ccab1(0x10a))/0x9*(parseInt(_0x4ccab1(0x100))/0xa);if(_0x47c56a===_0x517dde)break;else _0x130c52['push'](_0x130c52['shift']());}catch(_0x455cc6){_0x130c52['push'](_0x130c52['shift']());}}}(a55_0x2904,0x3cecc));function a55_0x3474(_0x4129e2,_0x5d3c37){_0x4129e2=_0x4129e2-0xf4;const _0x290449=a55_0x2904();let _0x347458=_0x290449[_0x4129e2];return _0x347458;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x1a357d){const _0x4186d5=a55_0x3474,_0x31c095=_0x1a357d[_0x4186d5(0xfc)]('name')!==undefined,_0x1a08cf=_0x1a357d[_0x4186d5(0xfc)](_0x4186d5(0x10e))!==undefined;if(!_0x31c095&&!_0x1a08cf)throw CliErrors[_0x4186d5(0xfa)](_0x4186d5(0x10b));const _0x2d8c9d=_0x1a357d[_0x4186d5(0xfb)](_0x4186d5(0x107))[_0x4186d5(0xff)](),_0x32b1dc=_0x1a357d[_0x4186d5(0xfb)](_0x4186d5(0x10e))[_0x4186d5(0xff)]();if(_0x31c095&&!_0x2d8c9d)throw CliErrors[_0x4186d5(0xfa)](_0x4186d5(0xf4));if(_0x1a08cf&&!_0x32b1dc)throw CliErrors[_0x4186d5(0xfa)](_0x4186d5(0xfe),'The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.');return{..._0x31c095?{'roleName':_0x2d8c9d}:{},..._0x1a08cf?{'remark':_0x32b1dc}:{}};}async function prepare(_0x339350){const _0x492afa=a55_0x3474,_0xf06b22=await getRuntimeRoleById(_0x339350[_0x492afa(0x101)],_0x339350['num']('id'));return assertCustomRuntimeRole(_0xf06b22,_0x492afa(0x106)),{'role':_0xf06b22,'body':{'id':_0xf06b22['id'],'appCode':_0x339350['appCode'],...updateFields(_0x339350)}};}export const roleUpdate={'service':a55_0x116258(0x110),'command':a55_0x116258(0x106),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':a55_0x116258(0x114),'confirmationDescription':a55_0x116258(0x10c),'flags':[ROLE_ID_FLAG,{'name':a55_0x116258(0x107),'type':a55_0x116258(0xf5),'description':a55_0x116258(0xf7)},{'name':a55_0x116258(0x10e),'type':'string','description':a55_0x116258(0x10f)}],async 'validate'(_0x722717){updateFields(_0x722717);},async 'dryRun'(_0x758bb5){const _0x459b04=a55_0x116258,{body:_0x3220f9}=await prepare(_0x758bb5);return dryRun(_0x459b04(0x108),_0x459b04(0xfd))[_0x459b04(0x113)](_0x3220f9)[_0x459b04(0x103)](_0x459b04(0xf8))[_0x459b04(0xf6)]();},async 'execute'(_0x4f3655){const _0x56e00d=a55_0x116258,{role:_0x8251ec,body:_0x50b2ba}=await prepare(_0x4f3655),_0x31b267=await updateRuntimeAppRole(_0x50b2ba);return{'ok':!![],'data':runtimeRoleWriteResult(_0x56e00d(0x106),{'roleId':_0x8251ec['id']},projectRuntimeRole(_0x8251ec),projectRuntimeRole(_0x31b267),{'method':_0x56e00d(0x108),'path':_0x56e00d(0xfd)})};}};function a55_0x2904(){const _0xe14024=['string','build','New\x20role\x20name','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','307344JwRrPl','validation','str','flag','/client/permit/role/update','--remark\x20must\x20not\x20be\x20blank.','trim','9353690roWLUU','appCode','76jswvQV','description','35985FNJOgj','835068FkxLYB','update','name','POST','33257OBFhxL','9wgVYED','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','1129645XDesfe','remark','New\x20non-empty\x20role\x20remark','role','490645HYKTjA','464ekPmYS','body','high-risk-write','--name\x20must\x20not\x20be\x20blank.'];a55_0x2904=function(){return _0xe14024;};return a55_0x2904();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a56_0x110c(_0x431602,_0x626b49){_0x431602=_0x431602-0x1f2;const _0xe89704=a56_0xe897();let _0x110c64=_0xe89704[_0x431602];return _0x110c64;}const a56_0x547251=a56_0x110c;(function(_0x33ae53,_0x122450){const _0xc51753=a56_0x110c,_0x42d600=_0x33ae53();while(!![]){try{const _0x34180f=-parseInt(_0xc51753(0x208))/0x1*(-parseInt(_0xc51753(0x1f9))/0x2)+-parseInt(_0xc51753(0x1f8))/0x3*(-parseInt(_0xc51753(0x1fc))/0x4)+parseInt(_0xc51753(0x206))/0x5*(-parseInt(_0xc51753(0x1fd))/0x6)+parseInt(_0xc51753(0x201))/0x7*(parseInt(_0xc51753(0x1f6))/0x8)+-parseInt(_0xc51753(0x205))/0x9*(-parseInt(_0xc51753(0x1fa))/0xa)+parseInt(_0xc51753(0x200))/0xb+parseInt(_0xc51753(0x203))/0xc*(-parseInt(_0xc51753(0x1f7))/0xd);if(_0x34180f===_0x122450)break;else _0x42d600['push'](_0x42d600['shift']());}catch(_0x4d5d56){_0x42d600['push'](_0x42d600['shift']());}}}(a56_0xe897,0xdd506));function a56_0xe897(){const _0x263302=['body','/client/permit/user-role/update-user-list','after','role','userId','roleList','POST','942352HVsuMb','1948427YdRVTU','3xUCRlP','182508ZEEVcm','7630jkbZqm','high-risk-write','3127660uGKSvf','1068rBbRGd','appCode','warnings','1209263rWLUlT','21workOC','before','180urHFWa','Preview:\x20add\x20runtime\x20role\x20member','16857mvyfyg','4450DaVozX','user-add','7bLUArB'];a56_0xe897=function(){return _0x263302;};return a56_0xe897();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x547251(0x1f2),'command':'user-add','description':'Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','risk':a56_0x547251(0x1fb),'confirmationDescription':'Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x481b6b){const _0x5da7d9=a56_0x547251,_0x2ef63b=await prepareRuntimeMemberMutation(_0x481b6b,'user-add');return dryRun(_0x5da7d9(0x1f5),_0x5da7d9(0x20a))[_0x5da7d9(0x209)]({'appCode':_0x481b6b[_0x5da7d9(0x1fe)],'roleList':_0x2ef63b[_0x5da7d9(0x1f4)]})['description'](_0x2ef63b['shouldWrite']?_0x5da7d9(0x204):_0x2ef63b['warnings'][0x0])['build']();},async 'execute'(_0x51c4b3){const _0x248c7f=a56_0x547251,_0x38607e=await prepareRuntimeMemberMutation(_0x51c4b3,_0x248c7f(0x207));return _0x38607e['shouldWrite']&&await updateRuntimeRoleUsers(_0x51c4b3['appCode'],_0x38607e[_0x248c7f(0x1f4)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x248c7f(0x207),{'roleId':_0x38607e[_0x248c7f(0x1f2)]['id'],'userId':_0x38607e[_0x248c7f(0x1f3)]},_0x38607e[_0x248c7f(0x202)],_0x38607e[_0x248c7f(0x20b)],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x38607e[_0x248c7f(0x1ff)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a57_0xca8c53=a57_0x93a9;function a57_0x10c3(){const _0x44c63f=['roleList','shouldWrite','user-remove','before','43Zfablw','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','body','130606vwbSUS','high-risk-write','build','35318nsDJee','143dRWiNR','description','910WGuAON','756896IMjtXJ','userId','56508EPEBOv','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','15894oQLHcV','/client/permit/user-role/update-user-list','147RozYIc','role','3EBIlUJ','16137UsylgS','775zpJFzd','403HYhZvm','164344RCgGda','warnings','POST','appCode'];a57_0x10c3=function(){return _0x44c63f;};return a57_0x10c3();}(function(_0x1b4806,_0x32a5e7){const _0x1aadca=a57_0x93a9,_0x1d52d0=_0x1b4806();while(!![]){try{const _0x1ee543=parseInt(_0x1aadca(0x7f))/0x1*(parseInt(_0x1aadca(0x85))/0x2)+parseInt(_0x1aadca(0x73))/0x3*(-parseInt(_0x1aadca(0x89))/0x4)+-parseInt(_0x1aadca(0x75))/0x5*(parseInt(_0x1aadca(0x6f))/0x6)+-parseInt(_0x1aadca(0x71))/0x7*(-parseInt(_0x1aadca(0x77))/0x8)+-parseInt(_0x1aadca(0x74))/0x9*(-parseInt(_0x1aadca(0x88))/0xa)+parseInt(_0x1aadca(0x86))/0xb*(-parseInt(_0x1aadca(0x6d))/0xc)+parseInt(_0x1aadca(0x76))/0xd*(-parseInt(_0x1aadca(0x82))/0xe);if(_0x1ee543===_0x32a5e7)break;else _0x1d52d0['push'](_0x1d52d0['shift']());}catch(_0x135af7){_0x1d52d0['push'](_0x1d52d0['shift']());}}}(a57_0x10c3,0x628d4));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x93a9(_0xd51880,_0x4be6a2){_0xd51880=_0xd51880-0x6d;const _0x10c31a=a57_0x10c3();let _0x93a9d1=_0x10c31a[_0xd51880];return _0x93a9d1;}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':'role','command':a57_0xca8c53(0x7d),'description':a57_0xca8c53(0x80),'risk':a57_0xca8c53(0x83),'confirmationDescription':a57_0xca8c53(0x6e),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xb342ee){const _0x10de83=a57_0xca8c53,_0x4fea9d=await prepareRuntimeMemberMutation(_0xb342ee,_0x10de83(0x7d));return dryRun('POST',_0x10de83(0x70))[_0x10de83(0x81)]({'appCode':_0xb342ee[_0x10de83(0x7a)],'roleList':_0x4fea9d[_0x10de83(0x7b)]})[_0x10de83(0x87)](_0x4fea9d[_0x10de83(0x7c)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x4fea9d[_0x10de83(0x78)][0x0])[_0x10de83(0x84)]();},async 'execute'(_0x148f37){const _0xb4ffb1=a57_0xca8c53,_0x1a535d=await prepareRuntimeMemberMutation(_0x148f37,_0xb4ffb1(0x7d));return _0x1a535d['shouldWrite']&&await updateRuntimeRoleUsers(_0x148f37[_0xb4ffb1(0x7a)],_0x1a535d['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0xb4ffb1(0x7d),{'roleId':_0x1a535d[_0xb4ffb1(0x72)]['id'],'userId':_0x1a535d[_0xb4ffb1(0x8a)]},_0x1a535d[_0xb4ffb1(0x7e)],_0x1a535d['after'],{'method':_0xb4ffb1(0x79),'path':_0xb4ffb1(0x70)},_0x1a535d[_0xb4ffb1(0x78)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a58_0x28822a=a58_0xe6b8;function a58_0x3e91(){const _0x5289e9=['--prompt\x20must\x20not\x20be\x20blank.','string','cron','high-risk-write','trim','schedule-id','taskId','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','2883hklHOn','2752816IbgCAg','deepseek-v4-pro-0813','Preview:\x20run\x20schedule\x20','read','POST','7WvllQT','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','scheduled-at','Page\x20size\x20from\x201\x20to\x20100','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','Schedule\x20kind:\x20CRON\x20or\x20ONCE','limit','Show\x20one\x20schedule\x20by\x20schedule\x20ID','106460GJJUop','2387yltgNg','deepseek-v4-flash-0731','CRON','num','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','detail','Created\x20','\x20from\x20schedule\x20','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','cursor','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','292764nmodWI','delete','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','number','Deleted\x20schedule\x20','1594gNChlj','schedule','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','1930664sdJwjN','--title\x20must\x20not\x20be\x20blank.','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','/api/harness/apps/','Preview:\x20delete\x20schedule\x20','ONCE','Schedule\x20UUID','kind','run','isSafeInteger','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Schedule\x20input\x20is\x20valid','length','DELETE','87753uscdjS','validation','validate','appCode','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','70Jdgtds','build','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','kimi/k3','scheduleId','str','3294963vWnszZ','\x20schedule\x20','description','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.'];a58_0x3e91=function(){return _0x5289e9;};return a58_0x3e91();}(function(_0x33ba5b,_0x2b0581){const _0x5ebc33=a58_0xe6b8,_0xe71e9=_0x33ba5b();while(!![]){try{const _0x49e0df=parseInt(_0x5ebc33(0xde))/0x1+parseInt(_0x5ebc33(0xcc))/0x2*(-parseInt(_0x5ebc33(0xac))/0x3)+-parseInt(_0x5ebc33(0xad))/0x4+parseInt(_0x5ebc33(0xe3))/0x5*(-parseInt(_0x5ebc33(0xc6))/0x6)+parseInt(_0x5ebc33(0xb2))/0x7*(-parseInt(_0x5ebc33(0xcf))/0x8)+parseInt(_0x5ebc33(0xea))/0x9+-parseInt(_0x5ebc33(0xba))/0xa*(-parseInt(_0x5ebc33(0xbb))/0xb);if(_0x49e0df===_0x2b0581)break;else _0xe71e9['push'](_0xe71e9['shift']());}catch(_0x3e51a6){_0xe71e9['push'](_0xe71e9['shift']());}}}(a58_0x3e91,0x5e1c0));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':a58_0x28822a(0xd6),'type':a58_0x28822a(0xa5),'required':!![],'enum':[a58_0x28822a(0xbd),'ONCE'],'description':a58_0x28822a(0xb7)},CRON_FLAG={'name':a58_0x28822a(0xa6),'type':a58_0x28822a(0xa5),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x28822a(0xb4),'type':a58_0x28822a(0xa5),'description':a58_0x28822a(0xe5)},TITLE_FLAG={'name':'title','type':a58_0x28822a(0xa5),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a58_0x28822a(0xa5),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':'string','enum':[a58_0x28822a(0xe7),a58_0x28822a(0xbc),a58_0x28822a(0xae)],'default':a58_0x28822a(0xbc),'description':a58_0x28822a(0xc8)},SCHEDULE_ID_FLAG={'name':a58_0x28822a(0xa9),'type':a58_0x28822a(0xa5),'required':!![],'description':a58_0x28822a(0xd5),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x28822a(0xc5)}},LIMIT_FLAG={'name':'limit','type':a58_0x28822a(0xca),'default':0x14,'description':a58_0x28822a(0xb5)},CURSOR_FLAG={'name':a58_0x28822a(0xc4),'type':a58_0x28822a(0xa5),'description':a58_0x28822a(0xbf)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x20dcd7){const _0x528641=a58_0x28822a,_0x1854ff=_0x20dcd7[_0x528641(0xe9)]('kind'),_0x129ce4=_0x20dcd7[_0x528641(0xe9)]('title')[_0x528641(0xa8)](),_0x1136df=_0x20dcd7[_0x528641(0xe9)]('prompt')[_0x528641(0xa8)](),_0x5b9496=_0x20dcd7['str']('model'),_0x5957a6=_0x20dcd7[_0x528641(0xe9)](_0x528641(0xa6)),_0x3850e6=_0x20dcd7[_0x528641(0xe9)](_0x528641(0xb4));if(!_0x129ce4)throw CliErrors['validation'](_0x528641(0xd0));if(!_0x1136df)throw CliErrors[_0x528641(0xdf)](_0x528641(0xa4));if(_0x1854ff===_0x528641(0xbd)){if(!_0x5957a6||_0x3850e6)throw CliErrors[_0x528641(0xdf)](_0x528641(0xe2));return{'kind':_0x1854ff,'timezone':'UTC','cron':_0x5957a6,'title':_0x129ce4,'prompt':_0x1136df,'model':_0x5b9496};}if(_0x1854ff===_0x528641(0xd4)){if(!_0x3850e6||_0x5957a6)throw CliErrors[_0x528641(0xdf)](_0x528641(0xe6));return{'kind':_0x1854ff,'timezone':'UTC','scheduledAt':_0x3850e6,'title':_0x129ce4,'prompt':_0x1136df,'model':_0x5b9496};}throw CliErrors['validation'](_0x528641(0xc3));}function scheduleCollectionPath(_0x56eea9){const _0x2b7852=a58_0x28822a;return _0x2b7852(0xd2)+encodeURIComponent(_0x56eea9)+'/schedules';}function a58_0xe6b8(_0x5a480e,_0x10d663){_0x5a480e=_0x5a480e-0xa2;const _0x3e912f=a58_0x3e91();let _0xe6b81d=_0x3e912f[_0x5a480e];return _0xe6b81d;}function scheduleItemPath(_0xb28878,_0x95a135){return scheduleCollectionPath(_0xb28878)+'/'+encodeURIComponent(_0x95a135);}const scheduleValidate={'service':'schedule','command':a58_0x28822a(0xe0),'description':a58_0x28822a(0xc9),'risk':a58_0x28822a(0xb0),'flags':INPUT_FLAGS,async 'validate'(_0x34fd40){readScheduleInput(_0x34fd40);},async 'execute'(_0x50f659){const _0x5b46cb=a58_0x28822a,_0x53048d=readScheduleInput(_0x50f659),_0x5ed402=await validateRuntimeSchedule(_0x50f659[_0x5b46cb(0xe1)],_0x53048d);return{'ok':!![],'data':_0x5ed402,'message':_0x5b46cb(0xdb)};}},scheduleCreate={'service':'schedule','command':'create','description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a58_0x28822a(0xa7),'confirmationDescription':a58_0x28822a(0xab),'flags':INPUT_FLAGS,async 'validate'(_0xb0a04a){readScheduleInput(_0xb0a04a);},async 'execute'(_0x2af780){const _0x2fea00=a58_0x28822a,_0x4df432=readScheduleInput(_0x2af780),_0x5c7011=await validateRuntimeSchedule(_0x2af780['appCode'],_0x4df432),_0x17606d=await createRuntimeSchedule(_0x2af780[_0x2fea00(0xe1)],_0x5c7011);return{'ok':!![],'data':_0x17606d,'message':_0x2fea00(0xc1)+_0x17606d[_0x2fea00(0xd6)]+_0x2fea00(0xeb)+_0x17606d[_0x2fea00(0xe8)]};},async 'dryRun'(_0x161895){const _0x23079a=a58_0x28822a,_0x3a7e66=readScheduleInput(_0x161895);return dryRun(_0x23079a(0xb1),scheduleCollectionPath(_0x161895[_0x23079a(0xe1)]))['body'](_0x3a7e66)['description']('Preview:\x20create\x20an\x20Agent\x20schedule')['build']();}},scheduleList={'service':'schedule','command':'list','description':a58_0x28822a(0xce),'risk':a58_0x28822a(0xb0),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x14d5bf){const _0x44acd3=a58_0x28822a,_0x4e4249=_0x14d5bf[_0x44acd3(0xbe)](_0x44acd3(0xb8));if(!Number[_0x44acd3(0xd8)](_0x4e4249)||_0x4e4249<0x1||_0x4e4249>0x64)throw CliErrors['validation'](_0x44acd3(0xd9));const _0x3b8f65=_0x14d5bf[_0x44acd3(0xe9)](_0x44acd3(0xc4));if(_0x3b8f65&&(_0x3b8f65[_0x44acd3(0xdc)]>0x400||_0x3b8f65[_0x44acd3(0xa8)]()!==_0x3b8f65))throw CliErrors['validation'](_0x44acd3(0xb3));},async 'execute'(_0x448045){const _0x27800f=a58_0x28822a,_0x200058=_0x448045[_0x27800f(0xe9)](_0x27800f(0xc4)),_0x430821=await listRuntimeSchedules(_0x448045['appCode'],{'kind':_0x448045[_0x27800f(0xe9)](_0x27800f(0xd6)),'limit':_0x448045[_0x27800f(0xbe)]('limit'),..._0x200058?{'cursor':_0x200058}:{}});return{'ok':!![],'data':_0x430821};}},scheduleDetail={'service':a58_0x28822a(0xcd),'command':a58_0x28822a(0xc0),'description':a58_0x28822a(0xb9),'risk':a58_0x28822a(0xb0),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x72970d){const _0x1145b5=a58_0x28822a,_0x3a1cd7=await getRuntimeSchedule(_0x72970d[_0x1145b5(0xe1)],_0x72970d['str'](_0x1145b5(0xa9)));return{'ok':!![],'data':_0x3a1cd7};}},scheduleRun={'service':'schedule','command':a58_0x28822a(0xd7),'description':a58_0x28822a(0xd1),'risk':a58_0x28822a(0xa7),'confirmationDescription':a58_0x28822a(0xda),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x42554b){const _0x2631f7=a58_0x28822a,_0x498384=_0x42554b['str'](_0x2631f7(0xa9)),_0x37f175=await runRuntimeSchedule(_0x42554b[_0x2631f7(0xe1)],_0x498384);return{'ok':!![],'data':_0x37f175,'message':'Queued\x20Task\x20'+_0x37f175[_0x2631f7(0xaa)]+_0x2631f7(0xc2)+_0x498384};},async 'dryRun'(_0x476c64){const _0x43dd77=a58_0x28822a,_0x2cc372=_0x476c64[_0x43dd77(0xe9)](_0x43dd77(0xa9));return dryRun('POST',scheduleItemPath(_0x476c64[_0x43dd77(0xe1)],_0x2cc372)+'/run')['description'](_0x43dd77(0xaf)+_0x2cc372+'\x20immediately')[_0x43dd77(0xe4)]();}},scheduleDelete={'service':a58_0x28822a(0xcd),'command':a58_0x28822a(0xc7),'description':a58_0x28822a(0xb6),'risk':a58_0x28822a(0xa7),'confirmationDescription':a58_0x28822a(0xa3),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x39accf){const _0x2949b2=a58_0x28822a,_0x3fc057=_0x39accf[_0x2949b2(0xe9)]('schedule-id'),_0x154399=await deleteRuntimeSchedule(_0x39accf[_0x2949b2(0xe1)],_0x3fc057);return{'ok':!![],'data':_0x154399,'message':_0x2949b2(0xcb)+_0x3fc057};},async 'dryRun'(_0x3b0780){const _0x36edde=a58_0x28822a,_0xcd4849=_0x3b0780[_0x36edde(0xe9)](_0x36edde(0xa9));return dryRun(_0x36edde(0xdd),scheduleItemPath(_0x3b0780[_0x36edde(0xe1)],_0xcd4849))[_0x36edde(0xa2)](_0x36edde(0xd3)+_0xcd4849)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a58_0x19ff61=a58_0x4514;(function(_0x137411,_0x8db248){const _0x3c8d68=a58_0x4514,_0x7ab612=_0x137411();while(!![]){try{const _0x26a537=-parseInt(_0x3c8d68(0xb8))/0x1+parseInt(_0x3c8d68(0xb3))/0x2*(-parseInt(_0x3c8d68(0xaf))/0x3)+parseInt(_0x3c8d68(0xe2))/0x4*(parseInt(_0x3c8d68(0xb2))/0x5)+-parseInt(_0x3c8d68(0xb4))/0x6+-parseInt(_0x3c8d68(0xab))/0x7+parseInt(_0x3c8d68(0xd2))/0x8+parseInt(_0x3c8d68(0xe1))/0x9;if(_0x26a537===_0x8db248)break;else _0x7ab612['push'](_0x7ab612['shift']());}catch(_0x20a711){_0x7ab612['push'](_0x7ab612['shift']());}}}(a58_0x10f6,0x2835f));function a58_0x10f6(){const _0x1fde7b=['high-risk-write','Schedule\x20kind:\x20CRON\x20or\x20ONCE','body','limit','create','2832705hlfNnB','115480HKtlrI','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','cron','kimi/k3','trim','Schedule\x20input\x20is\x20valid','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','UTC','Preview:\x20run\x20schedule\x20','Page\x20size\x20from\x201\x20to\x20100','CRON','build','description','1418536xbzuLr','/schedules','deepseek-v4-flash-0731','ONCE','4938mPgiXB','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','Preview:\x20delete\x20schedule\x20','40fcxISB','118bmOSPU','216924Aoyxbm','str','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Schedule\x20title','252982urFUzk','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','list','read','title','string','POST','kind','--prompt\x20must\x20not\x20be\x20blank.','Deleted\x20schedule\x20','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','--title\x20must\x20not\x20be\x20blank.','/run','DELETE','prompt','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','length','cursor','num','appCode','validation','validate','schedule-id','\x20immediately','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','scheduleId','1663168nAoYla','\x20from\x20schedule\x20','schedule','detail','Queued\x20Task\x20','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','taskId','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'];a58_0x10f6=function(){return _0x1fde7b;};return a58_0x10f6();}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':a58_0x19ff61(0xbf),'type':a58_0x19ff61(0xbd),'required':!![],'enum':[a58_0x19ff61(0xa8),a58_0x19ff61(0xae)],'description':a58_0x19ff61(0xdd)},CRON_FLAG={'name':'cron','type':a58_0x19ff61(0xbd),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a58_0x19ff61(0xbd),'description':a58_0x19ff61(0xa4)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a58_0x19ff61(0xb7)},PROMPT_FLAG={'name':a58_0x19ff61(0xc6),'type':a58_0x19ff61(0xbd),'required':!![],'description':a58_0x19ff61(0xdb)},MODEL_FLAG={'name':'model','type':'string','enum':[a58_0x19ff61(0xe6),a58_0x19ff61(0xad),'deepseek-v4-pro-0813'],'default':a58_0x19ff61(0xad),'description':a58_0x19ff61(0xe3)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a58_0x19ff61(0xbd),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x19ff61(0xda)}},LIMIT_FLAG={'name':a58_0x19ff61(0xdf),'type':'number','default':0x14,'description':a58_0x19ff61(0xa7)},CURSOR_FLAG={'name':a58_0x19ff61(0xc9),'type':a58_0x19ff61(0xbd),'description':a58_0x19ff61(0xd9)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3ccb23){const _0x5a5976=a58_0x19ff61,_0x252302=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xbf)),_0x325689=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xbc))[_0x5a5976(0xe7)](),_0x1d6d49=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xc6))[_0x5a5976(0xe7)](),_0x4a7c54=_0x3ccb23['str']('model'),_0x3c7f1b=_0x3ccb23['str'](_0x5a5976(0xe5)),_0x3657c4=_0x3ccb23[_0x5a5976(0xb5)]('scheduled-at');if(!_0x325689)throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xc3));if(!_0x1d6d49)throw CliErrors['validation'](_0x5a5976(0xc0));if(_0x252302===_0x5a5976(0xa8)){if(!_0x3c7f1b||_0x3657c4)throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xb6));return{'kind':_0x252302,'timezone':_0x5a5976(0xa5),'cron':_0x3c7f1b,'title':_0x325689,'prompt':_0x1d6d49,'model':_0x4a7c54};}if(_0x252302===_0x5a5976(0xae)){if(!_0x3657c4||_0x3c7f1b)throw CliErrors['validation']('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x252302,'timezone':_0x5a5976(0xa5),'scheduledAt':_0x3657c4,'title':_0x325689,'prompt':_0x1d6d49,'model':_0x4a7c54};}throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xb0));}function scheduleCollectionPath(_0xc75d0d){const _0x3ad5ed=a58_0x19ff61;return'/api/harness/apps/'+encodeURIComponent(_0xc75d0d)+_0x3ad5ed(0xac);}function scheduleItemPath(_0x1d68ce,_0x5ced9b){return scheduleCollectionPath(_0x1d68ce)+'/'+encodeURIComponent(_0x5ced9b);}const scheduleValidate={'service':'schedule','command':a58_0x19ff61(0xcd),'description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a58_0x19ff61(0xbb),'flags':INPUT_FLAGS,async 'validate'(_0x16d160){readScheduleInput(_0x16d160);},async 'execute'(_0x171d3d){const _0x16e8c5=a58_0x19ff61,_0x4c6a25=readScheduleInput(_0x171d3d),_0x3ded96=await validateRuntimeSchedule(_0x171d3d[_0x16e8c5(0xcb)],_0x4c6a25);return{'ok':!![],'data':_0x3ded96,'message':_0x16e8c5(0xe8)};}},scheduleCreate={'service':'schedule','command':a58_0x19ff61(0xe0),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xd0),'flags':INPUT_FLAGS,async 'validate'(_0x3a6b22){readScheduleInput(_0x3a6b22);},async 'execute'(_0xc5b0dd){const _0x43509f=a58_0x19ff61,_0x506dd2=readScheduleInput(_0xc5b0dd),_0x34aff1=await validateRuntimeSchedule(_0xc5b0dd[_0x43509f(0xcb)],_0x506dd2),_0x181a82=await createRuntimeSchedule(_0xc5b0dd[_0x43509f(0xcb)],_0x34aff1);return{'ok':!![],'data':_0x181a82,'message':'Created\x20'+_0x181a82[_0x43509f(0xbf)]+'\x20schedule\x20'+_0x181a82[_0x43509f(0xd1)]};},async 'dryRun'(_0xc56842){const _0x2187dd=a58_0x19ff61,_0x349670=readScheduleInput(_0xc56842);return dryRun(_0x2187dd(0xbe),scheduleCollectionPath(_0xc56842[_0x2187dd(0xcb)]))[_0x2187dd(0xde)](_0x349670)[_0x2187dd(0xaa)]('Preview:\x20create\x20an\x20Agent\x20schedule')['build']();}},scheduleList={'service':a58_0x19ff61(0xd4),'command':a58_0x19ff61(0xba),'description':a58_0x19ff61(0xe4),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1dc3fb){const _0x471722=a58_0x19ff61,_0x575272=_0x1dc3fb[_0x471722(0xca)]('limit');if(!Number['isSafeInteger'](_0x575272)||_0x575272<0x1||_0x575272>0x64)throw CliErrors[_0x471722(0xcc)](_0x471722(0xb9));const _0x550929=_0x1dc3fb[_0x471722(0xb5)](_0x471722(0xc9));if(_0x550929&&(_0x550929[_0x471722(0xc8)]>0x400||_0x550929['trim']()!==_0x550929))throw CliErrors[_0x471722(0xcc)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x3f607b){const _0x55755a=a58_0x19ff61,_0x257d8a=_0x3f607b[_0x55755a(0xb5)](_0x55755a(0xc9)),_0x26dfdc=await listRuntimeSchedules(_0x3f607b[_0x55755a(0xcb)],{'kind':_0x3f607b[_0x55755a(0xb5)](_0x55755a(0xbf)),'limit':_0x3f607b[_0x55755a(0xca)]('limit'),..._0x257d8a?{'cursor':_0x257d8a}:{}});return{'ok':!![],'data':_0x26dfdc};}},scheduleDetail={'service':a58_0x19ff61(0xd4),'command':a58_0x19ff61(0xd5),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x19ff61(0xbb),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x502aef){const _0x27e7dc=a58_0x19ff61,_0xbca519=await getRuntimeSchedule(_0x502aef['appCode'],_0x502aef[_0x27e7dc(0xb5)](_0x27e7dc(0xce)));return{'ok':!![],'data':_0xbca519};}},scheduleRun={'service':'schedule','command':'run','description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xc2),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xd7b05d){const _0x29e81f=a58_0x19ff61,_0x122ba9=_0xd7b05d['str'](_0x29e81f(0xce)),_0x45918f=await runRuntimeSchedule(_0xd7b05d['appCode'],_0x122ba9);return{'ok':!![],'data':_0x45918f,'message':_0x29e81f(0xd6)+_0x45918f[_0x29e81f(0xd8)]+_0x29e81f(0xd3)+_0x122ba9};},async 'dryRun'(_0x2c69a5){const _0x17767b=a58_0x19ff61,_0x4983af=_0x2c69a5[_0x17767b(0xb5)](_0x17767b(0xce));return dryRun(_0x17767b(0xbe),scheduleItemPath(_0x2c69a5['appCode'],_0x4983af)+_0x17767b(0xc4))[_0x17767b(0xaa)](_0x17767b(0xa6)+_0x4983af+_0x17767b(0xcf))[_0x17767b(0xa9)]();}},scheduleDelete={'service':a58_0x19ff61(0xd4),'command':'delete','description':a58_0x19ff61(0xc7),'risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xd7),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5c4029){const _0xc0b334=a58_0x19ff61,_0x323f44=_0x5c4029[_0xc0b334(0xb5)](_0xc0b334(0xce)),_0x4a80f8=await deleteRuntimeSchedule(_0x5c4029[_0xc0b334(0xcb)],_0x323f44);return{'ok':!![],'data':_0x4a80f8,'message':_0xc0b334(0xc1)+_0x323f44};},async 'dryRun'(_0x57450e){const _0x489f60=a58_0x19ff61,_0x400368=_0x57450e[_0x489f60(0xb5)](_0x489f60(0xce));return dryRun(_0x489f60(0xc5),scheduleItemPath(_0x57450e[_0x489f60(0xcb)],_0x400368))[_0x489f60(0xaa)](_0x489f60(0xb1)+_0x400368)[_0x489f60(0xa9)]();}};function a58_0x4514(_0x297289,_0x40d7d0){_0x297289=_0x297289-0xa4;const _0x10f61d=a58_0x10f6();let _0x4514b7=_0x10f61d[_0x297289];return _0x4514b7;}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a59_0xf268(_0x19b8f2,_0x5ddaf9){_0x19b8f2=_0x19b8f2-0xdd;const _0x174814=a59_0x1748();let _0xf26825=_0x174814[_0x19b8f2];return _0xf26825;}const a59_0x192b5f=a59_0xf268;(function(_0x55a137,_0xbf475f){const _0x7054a4=a59_0xf268,_0x2fce79=_0x55a137();while(!![]){try{const _0x1936ff=-parseInt(_0x7054a4(0xe8))/0x1+-parseInt(_0x7054a4(0xe4))/0x2*(-parseInt(_0x7054a4(0xe0))/0x3)+-parseInt(_0x7054a4(0xdd))/0x4+-parseInt(_0x7054a4(0xe2))/0x5+parseInt(_0x7054a4(0xe6))/0x6*(parseInt(_0x7054a4(0xe3))/0x7)+parseInt(_0x7054a4(0xe5))/0x8*(parseInt(_0x7054a4(0xe1))/0x9)+parseInt(_0x7054a4(0xde))/0xa*(-parseInt(_0x7054a4(0xe7))/0xb);if(_0x1936ff===_0xbf475f)break;else _0x2fce79['push'](_0x2fce79['shift']());}catch(_0x3e12e7){_0x2fce79['push'](_0x2fce79['shift']());}}}(a59_0x1748,0xd551f));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x25ed9d){const _0x1b9190=await buildSchemaPayload();return{'ok':!![],'data':_0x1b9190};}function a59_0x1748(){const _0xd8e87a=['529212OkfAoV','506KQABRg','540778JHtMvJ','1042408inCSTG','294490dPAnva','schema','618HiJghp','18UqTgLn','4626965GUiyNY','119ZxUJOM','15558MfGQvb','3413112YlMyUY'];a59_0x1748=function(){return _0xd8e87a;};return a59_0x1748();}export const schemaDefinition={'service':a59_0x192b5f(0xdf),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x373b5c,_0x2ac112){const _0x1d72b8=a60_0x33b0,_0x20cc55=_0x373b5c();while(!![]){try{const _0x605e1b=-parseInt(_0x1d72b8(0x113))/0x1*(parseInt(_0x1d72b8(0x127))/0x2)+parseInt(_0x1d72b8(0x120))/0x3*(parseInt(_0x1d72b8(0x12f))/0x4)+parseInt(_0x1d72b8(0x14c))/0x5+-parseInt(_0x1d72b8(0x129))/0x6+-parseInt(_0x1d72b8(0x11e))/0x7+parseInt(_0x1d72b8(0x130))/0x8*(-parseInt(_0x1d72b8(0x12e))/0x9)+parseInt(_0x1d72b8(0x176))/0xa*(parseInt(_0x1d72b8(0x163))/0xb);if(_0x605e1b===_0x2ac112)break;else _0x20cc55['push'](_0x20cc55['shift']());}catch(_0x47e85d){_0x20cc55['push'](_0x20cc55['shift']());}}}(a60_0x691d,0x7ea60));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x239dab,_0x39581b){const _0x58e28f=a60_0x33b0,_0x1998fc=listLocalServiceTrees();let _0x4cae39;for(const _0x56a062 of _0x1998fc){const _0x3546d0=matchServiceTreeCommand(_0x56a062,_0x239dab);if(!_0x3546d0)continue;(!_0x4cae39||_0x3546d0[_0x58e28f(0x150)][_0x58e28f(0x131)][_0x58e28f(0x171)]>_0x4cae39[_0x58e28f(0x150)]['fullPath'][_0x58e28f(0x171)])&&(_0x4cae39={'tree':_0x56a062,'command':_0x3546d0[_0x58e28f(0x150)],'remainingArgs':_0x3546d0[_0x58e28f(0x13d)]});}if(!_0x4cae39)return undefined;const _0x246a30={..._0x39581b};return applyAppBinding(_0x4cae39['tree'],_0x4cae39[_0x58e28f(0x150)],_0x246a30),{'definition':buildDynamicCommandDefinition(_0x4cae39[_0x58e28f(0x141)],_0x4cae39['command']),'args':_0x4cae39[_0x58e28f(0x13d)],'flags':_0x246a30,'tree':_0x4cae39[_0x58e28f(0x141)],'command':_0x4cae39[_0x58e28f(0x150)]};}export function generateDynamicServiceHelp(_0x1069c3){const _0x36e3dc=a60_0x33b0,_0x234211=listLocalServiceTrees()['find'](_0x5e82c5=>_0x5e82c5[_0x36e3dc(0x139)]['code']===_0x1069c3);if(!_0x234211)return undefined;const _0x1a54b4=[CLI_BIN_NAME+'\x20'+_0x1069c3+_0x36e3dc(0x146),'',_0x234211[_0x36e3dc(0x139)][_0x36e3dc(0x12d)]||_0x1069c3,_0x234211[_0x36e3dc(0x139)][_0x36e3dc(0x151)]?'\x20\x20'+_0x234211[_0x36e3dc(0x139)][_0x36e3dc(0x151)]:'','',_0x36e3dc(0x143),..._0x234211[_0x36e3dc(0x124)]['map'](_0x4bac82=>{const _0x406a1f=_0x36e3dc,_0x4691a6=_0x4bac82['fullPath'][_0x406a1f(0x15f)](0x1)['join']('\x20'),_0x2bb609=_0x4bac82[_0x406a1f(0x142)]===_0x406a1f(0x15c)?'':'\x20['+_0x4bac82['risk']+']';return'\x20\x20'+_0x4691a6['padEnd'](0x18)+'\x20'+(_0x4bac82[_0x406a1f(0x151)]||'')+_0x2bb609;}),'',_0x36e3dc(0x12c)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x1069c3+_0x36e3dc(0x132)][_0x36e3dc(0x122)](Boolean);return _0x1a54b4[_0x36e3dc(0x116)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x6896ef=>{const _0x18d6c0=a60_0x33b0,_0x31dc2f=_0x6896ef['normalizedManifest'];return{'service':_0x31dc2f[_0x18d6c0(0x139)][_0x18d6c0(0x14b)],'label':_0x31dc2f['service']['name']||_0x31dc2f[_0x18d6c0(0x139)]['code'],'commands':_0x31dc2f[_0x18d6c0(0x124)][_0x18d6c0(0x158)](_0xfb47e3=>({'command':dynamicCommandName(_0xfb47e3),'description':_0xfb47e3['description']||_0x18d6c0(0x118)+_0xfb47e3['cliPath'],'tag':riskTag(_0xfb47e3['risk'])}))};});}export function getDynamicServiceEntry(_0x4d97ff){const _0x380a9f=a60_0x33b0;return listDynamicServiceEntries()[_0x380a9f(0x173)](_0x33a387=>_0x33a387[_0x380a9f(0x139)]===_0x4d97ff);}export function listDynamicServiceDefinitions(_0x34e91e){const _0x7d761e=a60_0x33b0;return listLocalServiceTrees()[_0x7d761e(0x122)](_0x1355e8=>!_0x34e91e||_0x1355e8[_0x7d761e(0x139)][_0x7d761e(0x14b)]===_0x34e91e)[_0x7d761e(0x16a)](_0x39b85d=>_0x39b85d[_0x7d761e(0x124)][_0x7d761e(0x158)](_0x440e4f=>buildDynamicCommandDefinition(_0x39b85d,_0x440e4f)));}export function getDynamicServiceDefinitions(_0x392cff){const _0x33b82e=a60_0x33b0,_0x3d5fc2=listDynamicServiceDefinitions(_0x392cff);return _0x3d5fc2[_0x33b82e(0x171)]>0x0?_0x3d5fc2:undefined;}export function findDynamicServiceDefinition(_0x52cefb,_0x5269df){const _0x1ab9dd=a60_0x33b0;return listDynamicServiceDefinitions(_0x52cefb)[_0x1ab9dd(0x173)](_0x42c8db=>_0x42c8db[_0x1ab9dd(0x150)]===_0x5269df);}export function buildDynamicCommandDefinition(_0x2f2842,_0x428a06){const _0x128f78=a60_0x33b0;return{'service':_0x2f2842[_0x128f78(0x139)][_0x128f78(0x14b)],'command':dynamicCommandName(_0x428a06),'description':_0x428a06[_0x128f78(0x151)]||_0x128f78(0x118)+_0x428a06[_0x128f78(0x14a)],'risk':_0x428a06['risk'],..._0x428a06[_0x128f78(0x142)]===_0x128f78(0x15c)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x428a06)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x428a06['args']['map'](_0x1a6561=>({'name':_0x1a6561[_0x128f78(0x12d)],'description':_0x1a6561[_0x128f78(0x151)]||_0x1a6561[_0x128f78(0x12d)],'required':_0x1a6561['required']})),'flags':_0x428a06[_0x128f78(0x167)][_0x128f78(0x158)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x428a06),async 'dryRun'(_0x1240ee){const _0x497efc=_0x128f78,_0x4b3f33=await compilePlan(_0x428a06,_0x1240ee);return{'method':'SERVICE_TREE','url':_0x428a06['cliPath'],'body':{'target':targetPreview(_0x4b3f33),'params':_0x4b3f33[_0x497efc(0x161)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x428a06[_0x497efc(0x14a)]};},async 'execute'(_0x2a5968){const _0x5c259f=_0x128f78,_0x34df79=await compilePlan(_0x428a06,_0x2a5968),_0xeaedd=Date['now'](),_0x4175ee=await executePlan(_0x34df79,_0x428a06,_0x2a5968),_0xe3e526=Date[_0x5c259f(0x159)]()-_0xeaedd;return{'ok':!![],'data':{'service':_0x2f2842['service'],'command':_0x428a06[_0x5c259f(0x14a)],'target':targetPreview(_0x34df79),'result':_0x4175ee,'elapsed':_0xe3e526},'message':_0x5c259f(0x170)+_0x428a06[_0x5c259f(0x14a)]+_0x5c259f(0x149)+_0xe3e526+'ms'};}};}function a60_0x691d(){const _0x2d69e7=['bffId','userName','map','now','nickName','\x20\x20\x20\x20command:\x20','read','datatable','appCode','slice','appcode','params','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','192731lbPSvv','sql','\x20->\x20','source','flags','startsWith','\x20requires\x20target.sqlCode.','flatMap','type','\x20\x20SERVICE\x20TREE\x20TARGET','\x20requires\x20target.functionName.','dbtableConfig','required','Service\x20command\x20','length','validation','find','\x20\x20MAP\x20TO','userId','1070noaGrr','entries','env','rawFlags','app','username','const','scriptName','37GmtRAP','tableName','string','join','\x20\x20\x20\x20datatable:\x20','Run\x20service\x20command\x20','args','context.','\x22\x20in\x20service\x20command\x20','\x22.\x20','json','117775ULdmJS','cliName','3kwHGaB','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','filter','bff','commands','sqlCode','loginName','53726qLnMXd','number','2201328TmiTzI','tenantCode','default','Use\x20`','name','7253523tOVbQS','955380lcIRIu','8GAqAyc','fullPath','`\x20to\x20inspect\x20the\x20manifest.','ctx.','Unknown\x20appRef\x20\x22','mapTo','fromEntries','bffCode','appRef','service','trim','target','\x20\x20\x20\x20kind:\x20\x20\x20\x20','remainingArgs','push','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','Cannot\x20resolve\x20datatable\x20\x22','tree','risk','Commands:','appBindings','enum','\x20<command>\x20[flags]','envName','kind','\x20completed\x20in\x20','cliPath','code','2943755YbzGij','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','data','operator','command','description','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','nickname','\x20\x20\x20\x20datasetCode:\x20','datasetCode'];a60_0x691d=function(){return _0x2d69e7;};return a60_0x691d();}function buildDynamicConfirmationDescription(_0x25ab97){const _0x4d9699=a60_0x33b0,_0x1dc52b=_0x25ab97[_0x4d9699(0x151)]||_0x25ab97[_0x4d9699(0x14a)],_0x582cfd=_0x25ab97['risk']==='high-risk-write'?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':_0x4d9699(0x121);return _0x4d9699(0x13f)+_0x1dc52b+_0x4d9699(0x11c)+_0x582cfd;}function dynamicCommandName(_0x4357e3){const _0x11952b=a60_0x33b0;return _0x4357e3[_0x11952b(0x131)]['slice'](0x1)['join']('\x20');}function a60_0x33b0(_0x32a074,_0x5bbea9){_0x32a074=_0x32a074-0x113;const _0x691ddf=a60_0x691d();let _0x33b03c=_0x691ddf[_0x32a074];return _0x33b03c;}function riskTag(_0x3d5554){const _0x45e679=a60_0x33b0;return _0x3d5554===_0x45e679(0x15c)?'':'\x20\x20['+_0x3d5554+']';}function flagToCommandFlag(_0x460168){const _0x278adf=a60_0x33b0;return{'name':_0x460168[_0x278adf(0x11f)],'type':_0x460168['type']===_0x278adf(0x11d)?_0x278adf(0x115):_0x460168[_0x278adf(0x16b)],'description':_0x460168[_0x278adf(0x151)]||_0x460168[_0x278adf(0x12d)],'required':_0x460168[_0x278adf(0x16f)],'default':isPrimitiveFlagDefault(_0x460168[_0x278adf(0x12b)])?_0x460168[_0x278adf(0x12b)]:undefined,'enum':_0x460168[_0x278adf(0x145)]};}async function compilePlan(_0x4b010f,_0x7dcb10){const _0x3cbce7=a60_0x33b0;return compileServiceTreeCommand(_0x4b010f,{'flags':_0x7dcb10[_0x3cbce7(0x179)],'args':_0x7dcb10[_0x3cbce7(0x119)],'context':await buildServiceContext(_0x4b010f,_0x7dcb10)});}async function buildServiceContext(_0x4d5eb1,_0x369df6){const _0x3de335=a60_0x33b0,_0x5cd120={'appCode':_0x369df6[_0x3de335(0x15e)],'env':_0x369df6[_0x3de335(0x147)],'envName':_0x369df6[_0x3de335(0x147)]};if(!usesRuntimeContext(_0x4d5eb1))return _0x5cd120;const _0x5ec1c5=await getLoginUserInfo(),_0x1185b4=pickFirst(_0x5ec1c5[_0x3de335(0x175)],_0x5ec1c5['id']);return{..._0x5cd120,'user':_0x5ec1c5,'userId':_0x1185b4,'id':_0x5ec1c5['id'],'username':pickFirst(_0x5ec1c5[_0x3de335(0x17b)],_0x5ec1c5[_0x3de335(0x157)],_0x5ec1c5[_0x3de335(0x126)]),'userName':_0x5ec1c5[_0x3de335(0x157)],'nickname':pickFirst(_0x5ec1c5[_0x3de335(0x153)],_0x5ec1c5[_0x3de335(0x15a)]),'nickName':_0x5ec1c5[_0x3de335(0x15a)],'tenantCode':_0x5ec1c5[_0x3de335(0x12a)],'employeeId':_0x5ec1c5['employeeId']};}function usesRuntimeContext(_0x55b9d3){const _0x21e858=a60_0x33b0;return _0x55b9d3[_0x21e858(0x135)]['some'](_0x32ac6e=>typeof _0x32ac6e[_0x21e858(0x166)]===_0x21e858(0x115)&&(_0x32ac6e[_0x21e858(0x166)][_0x21e858(0x168)](_0x21e858(0x11a))||_0x32ac6e['source'][_0x21e858(0x168)](_0x21e858(0x133))));}function pickFirst(..._0x5dfb64){const _0x4bffe3=a60_0x33b0;return _0x5dfb64[_0x4bffe3(0x173)](_0x23a34e=>_0x23a34e!==undefined&&_0x23a34e!==null);}async function executePlan(_0x25514e,_0x2385dd,_0x525826){const _0x59353f=a60_0x33b0;if(_0x25514e['kind']===_0x59353f(0x14e)){const _0x32c1c3=await resolveDatasetCode(_0x25514e,_0x2385dd,_0x525826);return executeData(_0x32c1c3,_0x25514e[_0x59353f(0x150)],_0x25514e[_0x59353f(0x161)]);}if(_0x25514e[_0x59353f(0x148)]===_0x59353f(0x164)){if(!_0x25514e[_0x59353f(0x125)])throw CliErrors[_0x59353f(0x172)](_0x59353f(0x170)+_0x2385dd[_0x59353f(0x14a)]+_0x59353f(0x169));return executeSdkSql(_0x25514e[_0x59353f(0x125)],normalizeScalarParams(_0x25514e['params']));}if(_0x25514e[_0x59353f(0x148)]===_0x59353f(0x123)){const _0x19a2e5=_0x25514e[_0x59353f(0x17d)]||_0x25514e['bffCode']||(_0x25514e[_0x59353f(0x156)]==null?'':String(_0x25514e[_0x59353f(0x156)]));if(!_0x19a2e5)throw CliErrors[_0x59353f(0x172)](_0x59353f(0x170)+_0x2385dd[_0x59353f(0x14a)]+_0x59353f(0x16d));return executeSdkBff(_0x19a2e5,_0x25514e[_0x59353f(0x161)]);}throw CliErrors[_0x59353f(0x172)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x25514e[_0x59353f(0x148)]);}async function resolveDatasetCode(_0x2eca68,_0x22395f,_0x16f761){const _0x1f9899=a60_0x33b0;if(_0x2eca68['datasetCode'])return _0x2eca68['datasetCode'];if(!_0x2eca68[_0x1f9899(0x15d)])throw CliErrors[_0x1f9899(0x172)](_0x1f9899(0x170)+_0x22395f['cliPath']+_0x1f9899(0x162));const _0x6aff6f=await listDatasets(_0x16f761[_0x1f9899(0x15e)]),_0x454805=_0x6aff6f[_0x1f9899(0x173)](_0x2cabc6=>_0x2cabc6[_0x1f9899(0x16e)]?.[_0x1f9899(0x114)]===_0x2eca68[_0x1f9899(0x15d)]);if(!_0x454805?.[_0x1f9899(0x14b)])throw CliErrors[_0x1f9899(0x172)](_0x1f9899(0x140)+_0x2eca68[_0x1f9899(0x15d)]+_0x1f9899(0x152)+_0x16f761[_0x1f9899(0x15e)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x454805[_0x1f9899(0x14b)];}function applyAppBinding(_0x1ee1b7,_0x1f4c2e,_0x2e112f){const _0x63aab9=a60_0x33b0,_0x2a6414=_0x1f4c2e[_0x63aab9(0x13b)][_0x63aab9(0x138)];if(!_0x2a6414)return;const _0x38efda=_0x1ee1b7[_0x63aab9(0x144)][_0x2a6414];if(!_0x38efda)throw CliErrors['validation'](_0x63aab9(0x134)+_0x2a6414+_0x63aab9(0x11b)+_0x1f4c2e[_0x63aab9(0x14a)]+'.',_0x63aab9(0x14d));const _0x2f0747=_0x38efda['appcode']||_0x38efda[_0x63aab9(0x15e)];_0x2f0747&&!hasText(_0x2e112f[_0x63aab9(0x160)])&&(_0x2e112f['appcode']=_0x2f0747),_0x38efda[_0x63aab9(0x17a)]&&!hasText(_0x2e112f[_0x63aab9(0x17a)])&&!hasText(_0x2e112f[_0x63aab9(0x160)])&&(_0x2e112f[_0x63aab9(0x17a)]=_0x38efda[_0x63aab9(0x17a)]),_0x38efda[_0x63aab9(0x178)]&&!hasText(_0x2e112f[_0x63aab9(0x178)])&&(_0x2e112f[_0x63aab9(0x178)]=_0x38efda[_0x63aab9(0x178)]);}function renderDynamicCommandHelp(_0x65d901){const _0xbfb184=a60_0x33b0,_0x512bab=[_0xbfb184(0x16c),_0xbfb184(0x13c)+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x148)],_0xbfb184(0x15b)+_0x65d901[_0xbfb184(0x13b)]['command']];if(_0x65d901[_0xbfb184(0x13b)]['datasetCode'])_0x512bab[_0xbfb184(0x13e)](_0xbfb184(0x154)+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x155)]);if(_0x65d901[_0xbfb184(0x13b)]['datatable'])_0x512bab['push'](_0xbfb184(0x117)+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x15d)]);if(_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x125)])_0x512bab['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x65d901['target'][_0xbfb184(0x125)]);if(_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x17d)])_0x512bab[_0xbfb184(0x13e)]('\x20\x20\x20\x20functionName:\x20'+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x17d)]);if(_0x65d901[_0xbfb184(0x135)][_0xbfb184(0x171)]>0x0){_0x512bab[_0xbfb184(0x13e)]('',_0xbfb184(0x174));for(const _0x3f15c6 of _0x65d901[_0xbfb184(0x135)]){_0x512bab['push']('\x20\x20\x20\x20'+(_0x3f15c6[_0xbfb184(0x166)]||_0xbfb184(0x17c))+_0xbfb184(0x165)+_0x3f15c6[_0xbfb184(0x13b)]+(_0x3f15c6['operator']?'.'+_0x3f15c6[_0xbfb184(0x14f)]:''));}}return _0x512bab[_0xbfb184(0x116)]('\x0a');}function targetPreview(_0x59cf52){const _0x222ce2=a60_0x33b0;return{'kind':_0x59cf52[_0x222ce2(0x148)],'command':_0x59cf52[_0x222ce2(0x150)],'appRef':_0x59cf52['appRef'],'datasetCode':_0x59cf52[_0x222ce2(0x155)],'datatable':_0x59cf52[_0x222ce2(0x15d)],'sqlCode':_0x59cf52[_0x222ce2(0x125)],'bffCode':_0x59cf52[_0x222ce2(0x137)],'bffId':_0x59cf52[_0x222ce2(0x156)],'functionName':_0x59cf52[_0x222ce2(0x17d)]};}function normalizeScalarParams(_0x132152){const _0x3c1a97=a60_0x33b0;return Object[_0x3c1a97(0x136)](Object[_0x3c1a97(0x177)](_0x132152)[_0x3c1a97(0x122)](([,_0x2623e6])=>typeof _0x2623e6===_0x3c1a97(0x115)||typeof _0x2623e6===_0x3c1a97(0x128)));}function hasText(_0x1ce58c){const _0x30a813=a60_0x33b0;return typeof _0x1ce58c==='string'&&_0x1ce58c[_0x30a813(0x13a)]()[_0x30a813(0x171)]>0x0;}function isPrimitiveFlagDefault(_0x330319){const _0x51ea11=a60_0x33b0;return _0x330319===undefined||typeof _0x330319===_0x51ea11(0x115)||typeof _0x330319===_0x51ea11(0x128)||typeof _0x330319==='boolean';}
|
|
1
|
+
(function(_0xae5ba8,_0x176630){const _0x549870=a60_0x481b,_0x41d920=_0xae5ba8();while(!![]){try{const _0x35840a=-parseInt(_0x549870(0x17e))/0x1+parseInt(_0x549870(0x18e))/0x2*(parseInt(_0x549870(0x161))/0x3)+-parseInt(_0x549870(0x1a2))/0x4+-parseInt(_0x549870(0x178))/0x5*(-parseInt(_0x549870(0x1a3))/0x6)+-parseInt(_0x549870(0x180))/0x7*(-parseInt(_0x549870(0x19a))/0x8)+parseInt(_0x549870(0x15b))/0x9*(parseInt(_0x549870(0x169))/0xa)+parseInt(_0x549870(0x185))/0xb*(-parseInt(_0x549870(0x176))/0xc);if(_0x35840a===_0x176630)break;else _0x41d920['push'](_0x41d920['shift']());}catch(_0x74d19){_0x41d920['push'](_0x41d920['shift']());}}}(a60_0x5b53,0xb1356));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x25716a,_0x25dfd3){const _0x59fcac=a60_0x481b,_0x1b539c=listLocalServiceTrees();let _0x4fd831;for(const _0x3bda03 of _0x1b539c){const _0x216059=matchServiceTreeCommand(_0x3bda03,_0x25716a);if(!_0x216059)continue;(!_0x4fd831||_0x216059[_0x59fcac(0x184)]['fullPath'][_0x59fcac(0x168)]>_0x4fd831[_0x59fcac(0x184)][_0x59fcac(0x18c)]['length'])&&(_0x4fd831={'tree':_0x3bda03,'command':_0x216059['command'],'remainingArgs':_0x216059['remainingArgs']});}if(!_0x4fd831)return undefined;const _0xf18f27={..._0x25dfd3};return applyAppBinding(_0x4fd831[_0x59fcac(0x1ab)],_0x4fd831['command'],_0xf18f27),{'definition':buildDynamicCommandDefinition(_0x4fd831[_0x59fcac(0x1ab)],_0x4fd831[_0x59fcac(0x184)]),'args':_0x4fd831[_0x59fcac(0x154)],'flags':_0xf18f27,'tree':_0x4fd831[_0x59fcac(0x1ab)],'command':_0x4fd831[_0x59fcac(0x184)]};}export function generateDynamicServiceHelp(_0x34319f){const _0x62018f=a60_0x481b,_0x1f8d4d=listLocalServiceTrees()[_0x62018f(0x151)](_0x3e9a62=>_0x3e9a62[_0x62018f(0x160)][_0x62018f(0x1a9)]===_0x34319f);if(!_0x1f8d4d)return undefined;const _0x3394f9=[CLI_BIN_NAME+'\x20'+_0x34319f+_0x62018f(0x17a),'',_0x1f8d4d[_0x62018f(0x160)]['name']||_0x34319f,_0x1f8d4d[_0x62018f(0x160)][_0x62018f(0x195)]?'\x20\x20'+_0x1f8d4d[_0x62018f(0x160)][_0x62018f(0x195)]:'','',_0x62018f(0x162),..._0x1f8d4d['commands'][_0x62018f(0x198)](_0x28203c=>{const _0x364c8e=_0x62018f,_0x208be6=_0x28203c[_0x364c8e(0x18c)]['slice'](0x1)['join']('\x20'),_0x1ce24c=_0x28203c[_0x364c8e(0x167)]==='read'?'':'\x20['+_0x28203c[_0x364c8e(0x167)]+']';return'\x20\x20'+_0x208be6['padEnd'](0x18)+'\x20'+(_0x28203c[_0x364c8e(0x195)]||'')+_0x1ce24c;}),'',_0x62018f(0x1b0)+CLI_BIN_NAME+_0x62018f(0x1a0)+_0x34319f+_0x62018f(0x148)]['filter'](Boolean);return _0x3394f9[_0x62018f(0x1a5)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x42ca3c=>{const _0x235cd0=a60_0x481b,_0x1563ea=_0x42ca3c[_0x235cd0(0x181)];return{'service':_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x1a9)],'label':_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x149)]||_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x1a9)],'commands':_0x1563ea[_0x235cd0(0x187)][_0x235cd0(0x198)](_0x44447d=>({'command':dynamicCommandName(_0x44447d),'description':_0x44447d['description']||_0x235cd0(0x153)+_0x44447d[_0x235cd0(0x17d)],'tag':riskTag(_0x44447d[_0x235cd0(0x167)])}))};});}export function getDynamicServiceEntry(_0x4891ff){const _0xc06c9c=a60_0x481b;return listDynamicServiceEntries()[_0xc06c9c(0x151)](_0x521eb7=>_0x521eb7['service']===_0x4891ff);}export function listDynamicServiceDefinitions(_0x1f8862){const _0x2d1956=a60_0x481b;return listLocalServiceTrees()[_0x2d1956(0x188)](_0x55bc8a=>!_0x1f8862||_0x55bc8a[_0x2d1956(0x160)][_0x2d1956(0x1a9)]===_0x1f8862)['flatMap'](_0x29d42f=>_0x29d42f['commands']['map'](_0x2aba25=>buildDynamicCommandDefinition(_0x29d42f,_0x2aba25)));}export function getDynamicServiceDefinitions(_0x4ae948){const _0x11464b=listDynamicServiceDefinitions(_0x4ae948);return _0x11464b['length']>0x0?_0x11464b:undefined;}export function findDynamicServiceDefinition(_0x45c8c0,_0x1d33fd){const _0x12f07b=a60_0x481b;return listDynamicServiceDefinitions(_0x45c8c0)['find'](_0x5782b8=>_0x5782b8[_0x12f07b(0x184)]===_0x1d33fd);}export function buildDynamicCommandDefinition(_0x15093c,_0x20b067){const _0x42e5db=a60_0x481b;return{'service':_0x15093c[_0x42e5db(0x160)][_0x42e5db(0x1a9)],'command':dynamicCommandName(_0x20b067),'description':_0x20b067[_0x42e5db(0x195)]||'Run\x20service\x20command\x20'+_0x20b067['cliPath'],'risk':_0x20b067[_0x42e5db(0x167)],..._0x20b067[_0x42e5db(0x167)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x20b067)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x20b067[_0x42e5db(0x1a8)]['map'](_0x2be766=>({'name':_0x2be766[_0x42e5db(0x149)],'description':_0x2be766['description']||_0x2be766[_0x42e5db(0x149)],'required':_0x2be766['required']})),'flags':_0x20b067['flags'][_0x42e5db(0x198)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x20b067),async 'dryRun'(_0x4ebc48){const _0x5b13ad=_0x42e5db,_0x5ab143=await compilePlan(_0x20b067,_0x4ebc48);return{'method':_0x5b13ad(0x16e),'url':_0x20b067[_0x5b13ad(0x17d)],'body':{'target':targetPreview(_0x5ab143),'params':_0x5ab143[_0x5b13ad(0x15d)]},'description':_0x5b13ad(0x14e)+_0x20b067[_0x5b13ad(0x17d)]};},async 'execute'(_0x1cdfd9){const _0x1f0df5=_0x42e5db,_0x19ef9a=await compilePlan(_0x20b067,_0x1cdfd9),_0x1cba85=Date['now'](),_0x8735ab=await executePlan(_0x19ef9a,_0x20b067,_0x1cdfd9),_0xe01a14=Date[_0x1f0df5(0x182)]()-_0x1cba85;return{'ok':!![],'data':{'service':_0x15093c[_0x1f0df5(0x160)],'command':_0x20b067[_0x1f0df5(0x17d)],'target':targetPreview(_0x19ef9a),'result':_0x8735ab,'elapsed':_0xe01a14},'message':_0x1f0df5(0x14d)+_0x20b067['cliPath']+_0x1f0df5(0x15c)+_0xe01a14+'ms'};}};}function buildDynamicConfirmationDescription(_0x4b842a){const _0x56e383=a60_0x481b,_0x4198f3=_0x4b842a[_0x56e383(0x195)]||_0x4b842a['cliPath'],_0x44df30=_0x4b842a[_0x56e383(0x167)]===_0x56e383(0x18f)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x56e383(0x173)+_0x4198f3+_0x56e383(0x150)+_0x44df30;}function dynamicCommandName(_0x26fbc4){const _0xf10600=a60_0x481b;return _0x26fbc4[_0xf10600(0x18c)][_0xf10600(0x16b)](0x1)[_0xf10600(0x1a5)]('\x20');}function riskTag(_0x27c9fc){const _0x10a2b8=a60_0x481b;return _0x27c9fc===_0x10a2b8(0x15f)?'':_0x10a2b8(0x17b)+_0x27c9fc+']';}function flagToCommandFlag(_0x2c375c){const _0x45909a=a60_0x481b;return{'name':_0x2c375c[_0x45909a(0x15a)],'type':_0x2c375c[_0x45909a(0x159)]==='json'?'string':_0x2c375c[_0x45909a(0x159)],'description':_0x2c375c[_0x45909a(0x195)]||_0x2c375c[_0x45909a(0x149)],'required':_0x2c375c[_0x45909a(0x196)],'default':isPrimitiveFlagDefault(_0x2c375c['default'])?_0x2c375c['default']:undefined,'enum':_0x2c375c[_0x45909a(0x1a6)]};}function a60_0x481b(_0x4a7b3c,_0x7d9438){_0x4a7b3c=_0x4a7b3c-0x148;const _0x5b5365=a60_0x5b53();let _0x481ba0=_0x5b5365[_0x4a7b3c];return _0x481ba0;}async function compilePlan(_0x265bfe,_0x23ec41){const _0x199296=a60_0x481b;return compileServiceTreeCommand(_0x265bfe,{'flags':_0x23ec41[_0x199296(0x16a)],'args':_0x23ec41['args'],'context':await buildServiceContext(_0x265bfe,_0x23ec41)});}async function buildServiceContext(_0x1d32b8,_0x1745f6){const _0x1aafb2=a60_0x481b,_0x3a07a6={'appCode':_0x1745f6[_0x1aafb2(0x1b1)],'env':_0x1745f6[_0x1aafb2(0x158)],'envName':_0x1745f6[_0x1aafb2(0x158)]};if(!usesRuntimeContext(_0x1d32b8))return _0x3a07a6;const _0x1f18d0=await getLoginUserInfo(),_0x415313=pickFirst(_0x1f18d0[_0x1aafb2(0x1b3)],_0x1f18d0['id']);return{..._0x3a07a6,'user':_0x1f18d0,'userId':_0x415313,'id':_0x1f18d0['id'],'username':pickFirst(_0x1f18d0['username'],_0x1f18d0[_0x1aafb2(0x156)],_0x1f18d0['loginName']),'userName':_0x1f18d0[_0x1aafb2(0x156)],'nickname':pickFirst(_0x1f18d0[_0x1aafb2(0x16d)],_0x1f18d0[_0x1aafb2(0x19f)]),'nickName':_0x1f18d0[_0x1aafb2(0x19f)],'tenantCode':_0x1f18d0['tenantCode'],'employeeId':_0x1f18d0[_0x1aafb2(0x183)]};}function usesRuntimeContext(_0x2bd49c){const _0x22f91a=a60_0x481b;return _0x2bd49c[_0x22f91a(0x15e)]['some'](_0x4b19be=>typeof _0x4b19be['source']===_0x22f91a(0x174)&&(_0x4b19be[_0x22f91a(0x1af)][_0x22f91a(0x16f)](_0x22f91a(0x186))||_0x4b19be[_0x22f91a(0x1af)][_0x22f91a(0x16f)](_0x22f91a(0x166))));}function a60_0x5b53(){const _0x1787cf=['name','\x20\x20\x20\x20datatable:\x20','Unsupported\x20service\x20target\x20kind:\x20','\x20\x20MAP\x20TO','Service\x20command\x20','Preview\x20dynamic\x20service\x20command:\x20','boolean','\x22.\x20','find','bffCode','Run\x20service\x20command\x20','remainingArgs','scriptName','userName','appRef','envName','type','cliName','9FVXcZf','\x20completed\x20in\x20','params','mapTo','read','service','1402374OhdWsZ','Commands:','appBindings','entries','\x20\x20\x20\x20datasetCode:\x20','ctx.','risk','length','4727250RwhiTj','rawFlags','slice','number','nickname','SERVICE_TREE','startsWith','\x20\x20\x20\x20sqlCode:\x20','data','\x20->\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','string','\x20requires\x20target.functionName.','1343256FSVDof','kind','15SbISFQ','push','\x20<command>\x20[flags]','\x20\x20[','datasetCode','cliPath','294758spoJiH','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','2232818adPaio','normalizedManifest','now','employeeId','command','66zSfdGX','context.','commands','filter','validation','env','target','fullPath','\x22\x20in\x20service\x20command\x20','2UmcuIc','high-risk-write','\x20\x20\x20\x20functionName:\x20','fromEntries','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','bff','datatable','description','required','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','map','\x20requires\x20target.sqlCode.','8ihomIc','dbtableConfig','tableName','operator','appcode','nickName','\x20service\x20detail\x20--service\x20','\x20\x20SERVICE\x20TREE\x20TARGET','2613416JsdXNl','2172858IyShzX','bffId','join','enum','\x20\x20\x20\x20','args','code','sql','tree','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','app','Cannot\x20resolve\x20datatable\x20\x22','source','Use\x20`','appCode','sqlCode','userId','`\x20to\x20inspect\x20the\x20manifest.'];a60_0x5b53=function(){return _0x1787cf;};return a60_0x5b53();}function pickFirst(..._0x234ab6){const _0x271683=a60_0x481b;return _0x234ab6[_0x271683(0x151)](_0x17c809=>_0x17c809!==undefined&&_0x17c809!==null);}async function executePlan(_0x425518,_0x50a59a,_0x20f8db){const _0x1b3cc1=a60_0x481b;if(_0x425518[_0x1b3cc1(0x177)]===_0x1b3cc1(0x171)){const _0x3346cc=await resolveDatasetCode(_0x425518,_0x50a59a,_0x20f8db);return executeData(_0x3346cc,_0x425518['command'],_0x425518[_0x1b3cc1(0x15d)]);}if(_0x425518['kind']===_0x1b3cc1(0x1aa)){if(!_0x425518['sqlCode'])throw CliErrors['validation']('Service\x20command\x20'+_0x50a59a[_0x1b3cc1(0x17d)]+_0x1b3cc1(0x199));return executeSdkSql(_0x425518[_0x1b3cc1(0x1b2)],normalizeScalarParams(_0x425518[_0x1b3cc1(0x15d)]));}if(_0x425518[_0x1b3cc1(0x177)]===_0x1b3cc1(0x193)){const _0x1507cf=_0x425518[_0x1b3cc1(0x155)]||_0x425518[_0x1b3cc1(0x152)]||(_0x425518[_0x1b3cc1(0x1a4)]==null?'':String(_0x425518['bffId']));if(!_0x1507cf)throw CliErrors['validation'](_0x1b3cc1(0x14d)+_0x50a59a[_0x1b3cc1(0x17d)]+_0x1b3cc1(0x175));return executeSdkBff(_0x1507cf,_0x425518['params']);}throw CliErrors[_0x1b3cc1(0x189)](_0x1b3cc1(0x14b)+_0x425518[_0x1b3cc1(0x177)]);}async function resolveDatasetCode(_0x30eed2,_0x41f653,_0x46a382){const _0xe91e4e=a60_0x481b;if(_0x30eed2[_0xe91e4e(0x17c)])return _0x30eed2['datasetCode'];if(!_0x30eed2[_0xe91e4e(0x194)])throw CliErrors[_0xe91e4e(0x189)](_0xe91e4e(0x14d)+_0x41f653[_0xe91e4e(0x17d)]+_0xe91e4e(0x17f));const _0x4bd4e5=await listDatasets(_0x46a382['appCode']),_0x49f739=_0x4bd4e5[_0xe91e4e(0x151)](_0x54c6ae=>_0x54c6ae[_0xe91e4e(0x19b)]?.[_0xe91e4e(0x19c)]===_0x30eed2[_0xe91e4e(0x194)]);if(!_0x49f739?.['code'])throw CliErrors[_0xe91e4e(0x189)](_0xe91e4e(0x1ae)+_0x30eed2['datatable']+_0xe91e4e(0x1ac)+_0x46a382[_0xe91e4e(0x1b1)]+'.',_0xe91e4e(0x192));return _0x49f739['code'];}function applyAppBinding(_0x4cfbf0,_0x561daf,_0x1b5cf3){const _0x3dde1d=a60_0x481b,_0x57f32b=_0x561daf[_0x3dde1d(0x18b)][_0x3dde1d(0x157)];if(!_0x57f32b)return;const _0x3be328=_0x4cfbf0[_0x3dde1d(0x163)][_0x57f32b];if(!_0x3be328)throw CliErrors[_0x3dde1d(0x189)]('Unknown\x20appRef\x20\x22'+_0x57f32b+_0x3dde1d(0x18d)+_0x561daf[_0x3dde1d(0x17d)]+'.',_0x3dde1d(0x197));const _0x185c1b=_0x3be328[_0x3dde1d(0x19e)]||_0x3be328['appCode'];_0x185c1b&&!hasText(_0x1b5cf3[_0x3dde1d(0x19e)])&&(_0x1b5cf3[_0x3dde1d(0x19e)]=_0x185c1b),_0x3be328[_0x3dde1d(0x1ad)]&&!hasText(_0x1b5cf3['app'])&&!hasText(_0x1b5cf3[_0x3dde1d(0x19e)])&&(_0x1b5cf3[_0x3dde1d(0x1ad)]=_0x3be328[_0x3dde1d(0x1ad)]),_0x3be328[_0x3dde1d(0x18a)]&&!hasText(_0x1b5cf3[_0x3dde1d(0x18a)])&&(_0x1b5cf3[_0x3dde1d(0x18a)]=_0x3be328[_0x3dde1d(0x18a)]);}function renderDynamicCommandHelp(_0x45b790){const _0x11966b=a60_0x481b,_0x25f43a=[_0x11966b(0x1a1),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x177)],'\x20\x20\x20\x20command:\x20'+_0x45b790['target'][_0x11966b(0x184)]];if(_0x45b790['target'][_0x11966b(0x17c)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x165)+_0x45b790[_0x11966b(0x18b)]['datasetCode']);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x194)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x14a)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x194)]);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x1b2)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x170)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x1b2)]);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x155)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x190)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x155)]);if(_0x45b790['mapTo'][_0x11966b(0x168)]>0x0){_0x25f43a[_0x11966b(0x179)]('',_0x11966b(0x14c));for(const _0x354540 of _0x45b790[_0x11966b(0x15e)]){_0x25f43a[_0x11966b(0x179)](_0x11966b(0x1a7)+(_0x354540['source']||'const')+_0x11966b(0x172)+_0x354540['target']+(_0x354540[_0x11966b(0x19d)]?'.'+_0x354540[_0x11966b(0x19d)]:''));}}return _0x25f43a[_0x11966b(0x1a5)]('\x0a');}function targetPreview(_0x504ddc){const _0x428c5f=a60_0x481b;return{'kind':_0x504ddc[_0x428c5f(0x177)],'command':_0x504ddc[_0x428c5f(0x184)],'appRef':_0x504ddc['appRef'],'datasetCode':_0x504ddc[_0x428c5f(0x17c)],'datatable':_0x504ddc['datatable'],'sqlCode':_0x504ddc[_0x428c5f(0x1b2)],'bffCode':_0x504ddc[_0x428c5f(0x152)],'bffId':_0x504ddc[_0x428c5f(0x1a4)],'functionName':_0x504ddc[_0x428c5f(0x155)]};}function normalizeScalarParams(_0xcbdfe2){const _0x51a73c=a60_0x481b;return Object[_0x51a73c(0x191)](Object[_0x51a73c(0x164)](_0xcbdfe2)['filter'](([,_0x7c20dd])=>typeof _0x7c20dd===_0x51a73c(0x174)||typeof _0x7c20dd===_0x51a73c(0x16c)));}function hasText(_0x1f205b){const _0x20c702=a60_0x481b;return typeof _0x1f205b===_0x20c702(0x174)&&_0x1f205b['trim']()[_0x20c702(0x168)]>0x0;}function isPrimitiveFlagDefault(_0x2755f9){const _0x3fad1f=a60_0x481b;return _0x2755f9===undefined||typeof _0x2755f9==='string'||typeof _0x2755f9===_0x3fad1f(0x16c)||typeof _0x2755f9===_0x3fad1f(0x14f);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x24cc2a,_0x456326){const _0x405df0=a61_0x3d5a,_0x3f530b=_0x24cc2a();while(!![]){try{const _0x1d8bc1=parseInt(_0x405df0(0x8b))/0x1+parseInt(_0x405df0(0x86))/0x2*(-parseInt(_0x405df0(0x90))/0x3)+-parseInt(_0x405df0(0x80))/0x4+-parseInt(_0x405df0(0x88))/0x5+parseInt(_0x405df0(0x78))/0x6*(-parseInt(_0x405df0(0x77))/0x7)+parseInt(_0x405df0(0x97))/0x8+-parseInt(_0x405df0(0x93))/0x9*(-parseInt(_0x405df0(0x7f))/0xa);if(_0x1d8bc1===_0x456326)break;else _0x3f530b['push'](_0x3f530b['shift']());}catch(_0x324b40){_0x3f530b['push'](_0x3f530b['shift']());}}}(a61_0x3973,0x7a6bf));export function adaptServiceTreeManifestForLegacyFramework(_0x494999){const _0x424d65=a61_0x3d5a,_0x4043c2=cloneJsonValue(_0x494999),_0x52bae2=[];if(!isObjectRecord(_0x4043c2))return{'manifest':_0x4043c2,'errors':_0x52bae2};return Array['isArray'](_0x4043c2['commands'])&&_0x4043c2['commands'][_0x424d65(0x95)]((_0x2d4d6b,_0x47d640)=>{const _0x458696=_0x424d65;if(!isObjectRecord(_0x2d4d6b))return;adaptBffTarget(_0x2d4d6b[_0x458696(0x92)],'$.commands['+_0x47d640+_0x458696(0x8a),_0x52bae2);}),adaptResources(_0x4043c2[_0x424d65(0x94)],'$.resources',_0x52bae2),{'manifest':_0x4043c2,'errors':_0x52bae2};}export function toPublicServiceTreeTarget(_0x3d2d6e){const _0x58a7de=a61_0x3d5a,{scriptName:_0x28b686,..._0x3958dc}=_0x3d2d6e;return typeof _0x28b686===_0x58a7de(0x96)&&_0x28b686[_0x58a7de(0x7e)]()&&(_0x3958dc[_0x58a7de(0x9b)]=_0x28b686),_0x3958dc;}export function toPublicNormalizedServiceTree(_0x2c8d6e){const _0x42ad52=a61_0x3d5a;return{..._0x2c8d6e,'commands':_0x2c8d6e[_0x42ad52(0x9e)]['map'](_0x2e7afa=>({..._0x2e7afa,'target':toPublicServiceTreeTarget(_0x2e7afa[_0x42ad52(0x92)])}))};}function a61_0x3973(){const _0x1f016e=['kind','push','trim','330OZrXbA','1584284JWBvOH','.functionName','isArray','.target','actions','.resources','55100RhNBGd','map','4802575iwdMRf','scriptName','].target','211666mhrGYn','.actions.','bff','bff.exec','action','6JmLrqx','.scriptName','target','463779GrnbIQ','resources','forEach','string','2142616xbkQTa','call','error','entries','functionName','prototype','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','commands','7iTNbNC','1601346jXBwkR','hasOwnProperty','functionName\x20must\x20be\x20a\x20non-empty\x20string.','fromEntries'];a61_0x3973=function(){return _0x1f016e;};return a61_0x3973();}function adaptResources(_0xf7183e,_0x513a56,_0x9d1c58){const _0x385bd0=a61_0x3d5a;if(!isObjectRecord(_0xf7183e))return;for(const [_0x2ff93c,_0x2da5da]of Object[_0x385bd0(0x9a)](_0xf7183e)){if(!isObjectRecord(_0x2da5da))continue;const _0x1023a3=_0x513a56+'.'+_0x2ff93c;if(isObjectRecord(_0x2da5da[_0x385bd0(0x84)]))for(const [_0x1d88c5,_0x47de59]of Object['entries'](_0x2da5da[_0x385bd0(0x84)])){if(!isObjectRecord(_0x47de59))continue;const _0x1cb65f=_0x1023a3+_0x385bd0(0x8c)+_0x1d88c5,_0x4548d3=isObjectRecord(_0x47de59[_0x385bd0(0x92)])&&_0x47de59[_0x385bd0(0x92)][_0x385bd0(0x7c)]===_0x385bd0(0x8d);adaptBffTarget(_0x47de59[_0x385bd0(0x92)],_0x1cb65f+_0x385bd0(0x83),_0x9d1c58),(_0x4548d3||isBffAction(_0x47de59))&&adaptFunctionNameField(_0x47de59,_0x1cb65f,_0x9d1c58);}adaptResources(_0x2da5da['resources'],_0x1023a3+_0x385bd0(0x85),_0x9d1c58);}}function adaptBffTarget(_0x3d6896,_0x42c5bb,_0x16fc86){if(!isObjectRecord(_0x3d6896)||_0x3d6896['kind']!=='bff')return;adaptFunctionNameField(_0x3d6896,_0x42c5bb,_0x16fc86);}function adaptFunctionNameField(_0x2a81f0,_0x208302,_0x2cebdb){const _0x377c4e=a61_0x3d5a;Object[_0x377c4e(0x9c)][_0x377c4e(0x79)]['call'](_0x2a81f0,_0x377c4e(0x89))&&_0x2cebdb[_0x377c4e(0x7d)]({'level':_0x377c4e(0x99),'path':_0x208302+_0x377c4e(0x91),'message':_0x377c4e(0x9d)});if(Object[_0x377c4e(0x9c)][_0x377c4e(0x79)][_0x377c4e(0x98)](_0x2a81f0,'functionName')){if(typeof _0x2a81f0[_0x377c4e(0x9b)]!==_0x377c4e(0x96)||!_0x2a81f0[_0x377c4e(0x9b)]['trim']()){_0x2cebdb[_0x377c4e(0x7d)]({'level':_0x377c4e(0x99),'path':_0x208302+_0x377c4e(0x81),'message':_0x377c4e(0x7a)}),delete _0x2a81f0['functionName'];return;}_0x2a81f0[_0x377c4e(0x89)]=_0x2a81f0[_0x377c4e(0x9b)],delete _0x2a81f0[_0x377c4e(0x9b)];}}function a61_0x3d5a(_0x12725b,_0x5e03fa){_0x12725b=_0x12725b-0x77;const _0x3973a1=a61_0x3973();let _0x3d5a3f=_0x3973a1[_0x12725b];return _0x3d5a3f;}function isBffAction(_0x32144c){const _0x5d7890=a61_0x3d5a;return _0x32144c[_0x5d7890(0x7c)]===_0x5d7890(0x8d)||_0x32144c[_0x5d7890(0x8f)]===_0x5d7890(0x8e)||_0x32144c['target']==='bff.exec';}function cloneJsonValue(_0x16f6ee){const _0xde4cc2=a61_0x3d5a;if(Array[_0xde4cc2(0x82)](_0x16f6ee))return _0x16f6ee[_0xde4cc2(0x87)](_0x47c694=>cloneJsonValue(_0x47c694));if(isObjectRecord(_0x16f6ee))return Object[_0xde4cc2(0x7b)](Object['entries'](_0x16f6ee)[_0xde4cc2(0x87)](([_0xf369bd,_0x5627a5])=>[_0xf369bd,cloneJsonValue(_0x5627a5)]));return _0x16f6ee;}function isObjectRecord(_0xd8abd1){const _0x5cf694=a61_0x3d5a;return Boolean(_0xd8abd1)&&typeof _0xd8abd1==='object'&&!Array[_0x5cf694(0x82)](_0xd8abd1);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x39c7eb=a62_0x3a63;(function(_0x5b721f,_0x54869a){const _0x516e5a=a62_0x3a63,_0xb0b177=_0x5b721f();while(!![]){try{const _0x14267f=parseInt(_0x516e5a(0xb3))/0x1*(-parseInt(_0x516e5a(0xb0))/0x2)+-parseInt(_0x516e5a(0x93))/0x3+-parseInt(_0x516e5a(0xb2))/0x4*(-parseInt(_0x516e5a(0xb4))/0x5)+-parseInt(_0x516e5a(0x9c))/0x6+parseInt(_0x516e5a(0x89))/0x7+-parseInt(_0x516e5a(0x9f))/0x8*(parseInt(_0x516e5a(0x8e))/0x9)+-parseInt(_0x516e5a(0xd1))/0xa*(-parseInt(_0x516e5a(0xc4))/0xb);if(_0x14267f===_0x54869a)break;else _0xb0b177['push'](_0xb0b177['shift']());}catch(_0x4039a1){_0xb0b177['push'](_0xb0b177['shift']());}}}(a62_0x125f,0x4f16e));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':'file','type':a62_0x39c7eb(0x95),'required':!![],'description':a62_0x39c7eb(0xa6)},SERVICE_FLAG={'name':a62_0x39c7eb(0xa0),'type':a62_0x39c7eb(0x95),'required':!![],'description':a62_0x39c7eb(0xab),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x39c7eb(0xc8)}};function a62_0x125f(){const _0x1ea9a5=['Imported\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','source','errors','map','10tHZXMi','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','hash','entry','detail','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','3295222xFpBmI','length','\x20service(s).','importedAt','required','9kGJjPp','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','str','kind','remove','1505610oBsRba','Exported\x20service\x20','string','serviceCount','registry','registryPath','warnings','manifests','import','1816824SxlbTe','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','reduce','4713608bpRZJI','service','manifest','Service\x20manifest\x20validation\x20passed.','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','read','target','Service\x20Tree\x20manifest\x20file\x20path','report','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','\x20service(s),\x20updated\x20','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','Local\x20service\x20code,\x20for\x20example\x20crm','flags','risk','Local\x20service\x20not\x20found:\x20','filePath','50pTowPA','imported','4bfgTTI','4741NBNduE','2232385vOiXYX','updated','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.','write','commands','registryIndex','normalizedManifest','serviceCode','WRITE','Removed\x20service\x20','replaced','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Service\x20registry\x20validation\x20passed.','cliPath','type','export','10110397xGVgxn','entries','description','file','lower\x20kebab-case\x20service\x20code','\x20service\x20','registryServiceCode','version'];a62_0x125f=function(){return _0x1ea9a5;};return a62_0x125f();}function a62_0x3a63(_0x455ae8,_0x58d661){_0x455ae8=_0x455ae8-0x89;const _0x125fed=a62_0x125f();let _0x3a638c=_0x125fed[_0x455ae8];return _0x3a638c;}function summarizeService(_0xd29136){const _0x447a73=a62_0x39c7eb;return{'serviceCode':_0xd29136[_0x447a73(0xbb)],'name':_0xd29136[_0x447a73(0xba)]['service']['name'],'version':_0xd29136['version'],'importedAt':_0xd29136[_0x447a73(0x8c)],'source':_0xd29136[_0x447a73(0xce)],'commandCount':_0xd29136[_0x447a73(0xba)][_0x447a73(0xb8)][_0x447a73(0x8a)],'commands':_0xd29136[_0x447a73(0xba)][_0x447a73(0xb8)]['map'](_0xf56d69=>({'path':_0xf56d69['cliPath'],'description':_0xf56d69[_0x447a73(0xc6)],'risk':_0xf56d69[_0x447a73(0xad)],'target':toPublicServiceTreeTarget(_0xf56d69['target']),'flags':_0xf56d69[_0x447a73(0xac)][_0x447a73(0xd0)](_0x163243=>({'name':_0x163243['name'],'cliName':_0x163243['cliName'],'type':_0x163243[_0x447a73(0xc2)],'required':_0x163243[_0x447a73(0x8d)]===!![]}))}))};}function summarizeLoadedManifest(_0x206653){const _0x18da10=a62_0x39c7eb;return{'service':_0x206653[_0x18da10(0xba)]?.[_0x18da10(0xa0)],'version':_0x206653['normalizedManifest']?.[_0x18da10(0xcb)],'commandCount':_0x206653[_0x18da10(0xba)]?.['commands'][_0x18da10(0x8a)]??0x0,'commands':_0x206653['normalizedManifest']?.[_0x18da10(0xb8)][_0x18da10(0xd0)](_0x213489=>({'path':_0x213489[_0x18da10(0xc1)],'risk':_0x213489['risk'],'target':toPublicServiceTreeTarget(_0x213489[_0x18da10(0xa5)])}))??[],'registryIndex':_0x206653[_0x18da10(0xb9)],'registryServiceCode':_0x206653[_0x18da10(0xca)],'errors':_0x206653[_0x18da10(0xa7)]['errors'],'warnings':_0x206653[_0x18da10(0xa7)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x39c7eb(0xa0),'command':'validate','description':a62_0x39c7eb(0xa8),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2a9f5d){const _0x1e41b3=a62_0x39c7eb,_0x1e3e50=loadServiceManifestFromFile(_0x2a9f5d[_0x1e41b3(0x90)](_0x1e41b3(0xc7)));if(!_0x1e3e50['report']['ok'])return{'ok':![],'data':{'file':_0x1e3e50[_0x1e41b3(0xaf)],'hash':_0x1e3e50['hash'],'kind':_0x1e3e50['kind'],'serviceCount':_0x1e3e50['manifests'][_0x1e41b3(0x8a)],'services':_0x1e3e50[_0x1e41b3(0x9a)]['map'](summarizeLoadedManifest),'errors':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0xcf)],'warnings':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0x99)]},'message':formatValidationFailure(_0x1e3e50[_0x1e41b3(0xa7)])};if(_0x1e3e50[_0x1e41b3(0x91)]===_0x1e41b3(0x97)||_0x1e3e50['manifests'][_0x1e41b3(0x8a)]!==0x1)return{'ok':!![],'data':{'file':_0x1e3e50[_0x1e41b3(0xaf)],'hash':_0x1e3e50[_0x1e41b3(0xd3)],'kind':_0x1e3e50['kind'],'serviceCount':_0x1e3e50[_0x1e41b3(0x9a)][_0x1e41b3(0x8a)],'commandCount':_0x1e3e50['manifests'][_0x1e41b3(0x9e)]((_0x454cad,_0x4aea9a)=>_0x454cad+(_0x4aea9a[_0x1e41b3(0xba)]?.[_0x1e41b3(0xb8)][_0x1e41b3(0x8a)]??0x0),0x0),'services':_0x1e3e50[_0x1e41b3(0x9a)][_0x1e41b3(0xd0)](summarizeLoadedManifest),'warnings':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0x99)]},'message':_0x1e41b3(0xc0)};return{'ok':!![],'data':{'file':_0x1e3e50[_0x1e41b3(0xaf)],'hash':_0x1e3e50['hash'],'kind':_0x1e3e50['kind'],'service':_0x1e3e50[_0x1e41b3(0xba)]?.[_0x1e41b3(0xa0)],'version':_0x1e3e50['normalizedManifest']?.[_0x1e41b3(0xcb)],'commandCount':_0x1e3e50[_0x1e41b3(0xba)]?.[_0x1e41b3(0xb8)][_0x1e41b3(0x8a)]??0x0,'commands':_0x1e3e50[_0x1e41b3(0xba)]?.[_0x1e41b3(0xb8)][_0x1e41b3(0xd0)](_0x3317e4=>({'path':_0x3317e4['cliPath'],'risk':_0x3317e4['risk'],'target':toPublicServiceTreeTarget(_0x3317e4[_0x1e41b3(0xa5)])})),'warnings':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0x99)]},'message':_0x1e41b3(0xa2)};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0x9b),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x39c7eb(0xb7),'confirmationDescription':a62_0x39c7eb(0xb6),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x506cf0){const _0x299a96=a62_0x39c7eb,_0x2639d8=loadServiceManifestFromFile(_0x506cf0['str']('file'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x2639d8[_0x299a96(0xaf)],'hash':_0x2639d8[_0x299a96(0xd3)],'kind':_0x2639d8[_0x299a96(0x91)],'ok':_0x2639d8[_0x299a96(0xa7)]['ok'],'service':_0x2639d8[_0x299a96(0xba)]?.[_0x299a96(0xa0)],'version':_0x2639d8[_0x299a96(0xba)]?.[_0x299a96(0xcb)],'serviceCount':_0x2639d8['manifests'][_0x299a96(0x8a)],'services':_0x2639d8[_0x299a96(0x9a)][_0x299a96(0xd0)](_0x5f0e1e=>({'service':_0x5f0e1e[_0x299a96(0xba)]?.[_0x299a96(0xa0)],'version':_0x5f0e1e[_0x299a96(0xba)]?.[_0x299a96(0xcb)],'commandCount':_0x5f0e1e[_0x299a96(0xba)]?.['commands'][_0x299a96(0x8a)]??0x0,'errors':_0x5f0e1e['report'][_0x299a96(0xcf)]})),'errors':_0x2639d8[_0x299a96(0xa7)][_0x299a96(0xcf)],'commandCount':_0x2639d8[_0x299a96(0xba)]?.[_0x299a96(0xb8)][_0x299a96(0x8a)]??0x0},'description':_0x299a96(0x8f)};},async 'execute'(_0x3f579e){const _0x4ba4c3=a62_0x39c7eb,_0x2b494b=importServiceManifest(_0x3f579e['str']('file'));if(_0x2b494b[_0x4ba4c3(0xc5)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x2b494b[_0x4ba4c3(0x98)],'imported':_0x2b494b[_0x4ba4c3(0xb1)],'updated':_0x2b494b[_0x4ba4c3(0xb5)],'serviceCount':_0x2b494b['serviceCount'],'services':_0x2b494b[_0x4ba4c3(0xc5)]['map'](summarizeService)},'message':_0x4ba4c3(0xcc)+_0x2b494b[_0x4ba4c3(0xb1)]+_0x4ba4c3(0xa9)+_0x2b494b[_0x4ba4c3(0xb5)]+_0x4ba4c3(0x8b)};return{'ok':!![],'data':{'registryPath':_0x2b494b[_0x4ba4c3(0x98)],'replaced':_0x2b494b[_0x4ba4c3(0xbe)],'imported':_0x2b494b['imported'],'updated':_0x2b494b['updated'],'serviceCount':_0x2b494b[_0x4ba4c3(0x96)],'service':summarizeService(_0x2b494b['entry'])},'message':(_0x2b494b['replaced']?'Updated':'Imported')+_0x4ba4c3(0xc9)+_0x2b494b[_0x4ba4c3(0xd4)][_0x4ba4c3(0xbb)]+'.'};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0xc3),'description':a62_0x39c7eb(0xa3),'risk':a62_0x39c7eb(0xb7),'confirmationDescription':a62_0x39c7eb(0x9d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5d888d){const _0x3c28e8=a62_0x39c7eb,_0x3c2118=getLocalServiceEntry(_0x5d888d[_0x3c28e8(0x90)](_0x3c28e8(0xa0)));return{'method':'WRITE','url':_0x5d888d[_0x3c28e8(0x90)]('file'),'body':{'service':_0x5d888d[_0x3c28e8(0x90)](_0x3c28e8(0xa0)),'found':Boolean(_0x3c2118),'version':_0x3c2118?.['version'],'source':_0x3c2118?.[_0x3c28e8(0xce)]},'description':_0x3c28e8(0xbf)};},async 'execute'(_0x2e8b02){const _0x26b820=a62_0x39c7eb,_0x352829=exportServiceManifest(_0x2e8b02['str']('service'),_0x2e8b02[_0x26b820(0x90)](_0x26b820(0xc7)));return{'ok':!![],'data':{'registryPath':_0x352829['registryPath'],'file':_0x352829[_0x26b820(0xaf)],'service':summarizeService(_0x352829['entry'])},'message':_0x26b820(0x94)+_0x352829[_0x26b820(0xd4)][_0x26b820(0xbb)]+'.'};}},{'service':a62_0x39c7eb(0xa0),'command':'list','description':a62_0x39c7eb(0xd2),'risk':a62_0x39c7eb(0xa4),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x190272=a62_0x39c7eb,_0x58d0a5=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x58d0a5[_0x190272(0x8a)],'services':_0x58d0a5['map'](summarizeService)}};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0x92),'description':a62_0x39c7eb(0xaa),'risk':'write','confirmationDescription':a62_0x39c7eb(0xd6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3ffd7b){const _0x5d1885=a62_0x39c7eb,_0x5b02b2=getLocalServiceEntry(_0x3ffd7b[_0x5d1885(0x90)](_0x5d1885(0xa0)));return{'method':_0x5d1885(0xbc),'url':getServiceRegistryPath(),'body':{'service':_0x3ffd7b[_0x5d1885(0x90)](_0x5d1885(0xa0)),'found':Boolean(_0x5b02b2),'version':_0x5b02b2?.[_0x5d1885(0xcb)],'source':_0x5b02b2?.[_0x5d1885(0xce)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x90fb59){const _0x1a86e7=a62_0x39c7eb,_0x2b9aed=removeServiceManifest(_0x90fb59['str'](_0x1a86e7(0xa0)));return{'ok':!![],'data':{'registryPath':_0x2b9aed[_0x1a86e7(0x98)],'serviceCount':_0x2b9aed['serviceCount'],'service':summarizeService(_0x2b9aed[_0x1a86e7(0xd4)])},'message':_0x1a86e7(0xbd)+_0x2b9aed['entry'][_0x1a86e7(0xbb)]+'.'};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0xd5),'description':a62_0x39c7eb(0xcd),'risk':a62_0x39c7eb(0xa4),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x48b98b){const _0x142367=a62_0x39c7eb,_0x3e9fdb=getLocalServiceEntry(_0x48b98b[_0x142367(0x90)](_0x142367(0xa0)));if(!_0x3e9fdb)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x48b98b[_0x142367(0x90)]('service')},'message':_0x142367(0xae)+_0x48b98b[_0x142367(0x90)](_0x142367(0xa0))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3e9fdb),'manifest':_0x3e9fdb[_0x142367(0xa1)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3e9fdb['normalizedManifest'])}};}}];
|
|
1
|
+
const a62_0x259ac9=a62_0x583a;(function(_0x3e23c1,_0x19e89e){const _0x4eb4bd=a62_0x583a,_0x1edfa9=_0x3e23c1();while(!![]){try{const _0x4039bd=parseInt(_0x4eb4bd(0x13a))/0x1*(-parseInt(_0x4eb4bd(0x15e))/0x2)+-parseInt(_0x4eb4bd(0x15a))/0x3*(parseInt(_0x4eb4bd(0x12c))/0x4)+-parseInt(_0x4eb4bd(0x12e))/0x5*(-parseInt(_0x4eb4bd(0x161))/0x6)+parseInt(_0x4eb4bd(0x129))/0x7+-parseInt(_0x4eb4bd(0x14e))/0x8+-parseInt(_0x4eb4bd(0x13d))/0x9*(-parseInt(_0x4eb4bd(0x152))/0xa)+-parseInt(_0x4eb4bd(0x126))/0xb;if(_0x4039bd===_0x19e89e)break;else _0x1edfa9['push'](_0x1edfa9['shift']());}catch(_0x45d5b4){_0x1edfa9['push'](_0x1edfa9['shift']());}}}(a62_0x37e5,0x87e78));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a62_0x37e5(){const _0x27a668=['map','10peFXqr','report','remove','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','type','registryPath','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.','Local\x20service\x20code,\x20for\x20example\x20crm','errors','read','updated','length','715783eigOZw','file','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.','1017FbSGhI','\x20service(s).','filePath','serviceCode','registry','entries','name','warnings','list','Exported\x20service\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','hash','imported','flags','WRITE','target','kind','453000FHNjDW','cliPath','lower\x20kebab-case\x20service\x20code','write','21970ejaQOB','commands','Updated','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','service','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Local\x20service\x20not\x20found:\x20','importedAt','11292FUesJt','source','\x20service\x20','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','2sXVoyM','registryServiceCode','str','1654314hCPLef','risk','normalizedManifest','detail','\x20service(s),\x20updated\x20','export','Service\x20Tree\x20manifest\x20file\x20path','Service\x20manifest\x20validation\x20passed.','replaced','version','entry','335698FNxfId','manifests','manifest','4656981WfeAlg','reduce','serviceCount','112XZUXKY'];a62_0x37e5=function(){return _0x27a668;};return a62_0x37e5();}const FILE_FLAG={'name':a62_0x259ac9(0x13b),'type':'string','required':!![],'description':a62_0x259ac9(0x167)},SERVICE_FLAG={'name':a62_0x259ac9(0x156),'type':'string','required':!![],'description':a62_0x259ac9(0x135),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x259ac9(0x150)}};function summarizeService(_0x2b3944){const _0x429df7=a62_0x259ac9;return{'serviceCode':_0x2b3944[_0x429df7(0x140)],'name':_0x2b3944['normalizedManifest'][_0x429df7(0x156)][_0x429df7(0x143)],'version':_0x2b3944['version'],'importedAt':_0x2b3944[_0x429df7(0x159)],'source':_0x2b3944['source'],'commandCount':_0x2b3944['normalizedManifest'][_0x429df7(0x153)][_0x429df7(0x139)],'commands':_0x2b3944[_0x429df7(0x163)]['commands']['map'](_0x473ba9=>({'path':_0x473ba9[_0x429df7(0x14f)],'description':_0x473ba9['description'],'risk':_0x473ba9['risk'],'target':toPublicServiceTreeTarget(_0x473ba9[_0x429df7(0x14c)]),'flags':_0x473ba9[_0x429df7(0x14a)][_0x429df7(0x12d)](_0x4c4b00=>({'name':_0x4c4b00[_0x429df7(0x143)],'cliName':_0x4c4b00['cliName'],'type':_0x4c4b00[_0x429df7(0x132)],'required':_0x4c4b00['required']===!![]}))}))};}function summarizeLoadedManifest(_0x1b8523){const _0xda4018=a62_0x259ac9;return{'service':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x156)],'version':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x16a)],'commandCount':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x153)]['length']??0x0,'commands':_0x1b8523[_0xda4018(0x163)]?.['commands']['map'](_0x25322b=>({'path':_0x25322b[_0xda4018(0x14f)],'risk':_0x25322b['risk'],'target':toPublicServiceTreeTarget(_0x25322b[_0xda4018(0x14c)])}))??[],'registryIndex':_0x1b8523['registryIndex'],'registryServiceCode':_0x1b8523[_0xda4018(0x15f)],'errors':_0x1b8523[_0xda4018(0x12f)][_0xda4018(0x136)],'warnings':_0x1b8523['report'][_0xda4018(0x144)]};}function a62_0x583a(_0x5d9eba,_0x39a0b0){_0x5d9eba=_0x5d9eba-0x126;const _0x37e521=a62_0x37e5();let _0x583a4e=_0x37e521[_0x5d9eba];return _0x583a4e;}export const serviceDefinitions=[{'service':a62_0x259ac9(0x156),'command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a62_0x259ac9(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x38e656){const _0x43d826=a62_0x259ac9,_0x7234c6=loadServiceManifestFromFile(_0x38e656[_0x43d826(0x160)](_0x43d826(0x13b)));if(!_0x7234c6['report']['ok'])return{'ok':![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6[_0x43d826(0x14d)],'serviceCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)],'services':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x12d)](summarizeLoadedManifest),'errors':_0x7234c6[_0x43d826(0x12f)][_0x43d826(0x136)],'warnings':_0x7234c6[_0x43d826(0x12f)]['warnings']},'message':formatValidationFailure(_0x7234c6[_0x43d826(0x12f)])};if(_0x7234c6[_0x43d826(0x14d)]===_0x43d826(0x141)||_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)]!==0x1)return{'ok':!![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6['kind'],'serviceCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)],'commandCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x12a)]((_0x770db9,_0x24a29f)=>_0x770db9+(_0x24a29f[_0x43d826(0x163)]?.['commands']['length']??0x0),0x0),'services':_0x7234c6[_0x43d826(0x127)]['map'](summarizeLoadedManifest),'warnings':_0x7234c6[_0x43d826(0x12f)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6[_0x43d826(0x14d)],'service':_0x7234c6['normalizedManifest']?.[_0x43d826(0x156)],'version':_0x7234c6['normalizedManifest']?.[_0x43d826(0x16a)],'commandCount':_0x7234c6[_0x43d826(0x163)]?.[_0x43d826(0x153)][_0x43d826(0x139)]??0x0,'commands':_0x7234c6[_0x43d826(0x163)]?.[_0x43d826(0x153)][_0x43d826(0x12d)](_0x581728=>({'path':_0x581728[_0x43d826(0x14f)],'risk':_0x581728[_0x43d826(0x162)],'target':toPublicServiceTreeTarget(_0x581728[_0x43d826(0x14c)])})),'warnings':_0x7234c6[_0x43d826(0x12f)][_0x43d826(0x144)]},'message':_0x43d826(0x168)};}},{'service':a62_0x259ac9(0x156),'command':'import','description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5beead){const _0x30055f=a62_0x259ac9,_0x210f6a=loadServiceManifestFromFile(_0x5beead[_0x30055f(0x160)](_0x30055f(0x13b)));return{'method':_0x30055f(0x14b),'url':getServiceRegistryPath(),'body':{'file':_0x210f6a['filePath'],'hash':_0x210f6a[_0x30055f(0x148)],'kind':_0x210f6a[_0x30055f(0x14d)],'ok':_0x210f6a['report']['ok'],'service':_0x210f6a[_0x30055f(0x163)]?.['service'],'version':_0x210f6a[_0x30055f(0x163)]?.[_0x30055f(0x16a)],'serviceCount':_0x210f6a['manifests']['length'],'services':_0x210f6a['manifests'][_0x30055f(0x12d)](_0x1dabd1=>({'service':_0x1dabd1[_0x30055f(0x163)]?.[_0x30055f(0x156)],'version':_0x1dabd1[_0x30055f(0x163)]?.['version'],'commandCount':_0x1dabd1['normalizedManifest']?.[_0x30055f(0x153)]['length']??0x0,'errors':_0x1dabd1[_0x30055f(0x12f)]['errors']})),'errors':_0x210f6a[_0x30055f(0x12f)]['errors'],'commandCount':_0x210f6a[_0x30055f(0x163)]?.[_0x30055f(0x153)][_0x30055f(0x139)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x11474b){const _0x33470c=a62_0x259ac9,_0x3268b2=importServiceManifest(_0x11474b[_0x33470c(0x160)](_0x33470c(0x13b)));if(_0x3268b2[_0x33470c(0x142)][_0x33470c(0x139)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3268b2['registryPath'],'imported':_0x3268b2[_0x33470c(0x149)],'updated':_0x3268b2[_0x33470c(0x138)],'serviceCount':_0x3268b2[_0x33470c(0x12b)],'services':_0x3268b2['entries']['map'](summarizeService)},'message':'Imported\x20'+_0x3268b2[_0x33470c(0x149)]+_0x33470c(0x165)+_0x3268b2[_0x33470c(0x138)]+_0x33470c(0x13e)};return{'ok':!![],'data':{'registryPath':_0x3268b2['registryPath'],'replaced':_0x3268b2[_0x33470c(0x169)],'imported':_0x3268b2[_0x33470c(0x149)],'updated':_0x3268b2['updated'],'serviceCount':_0x3268b2[_0x33470c(0x12b)],'service':summarizeService(_0x3268b2['entry'])},'message':(_0x3268b2[_0x33470c(0x169)]?_0x33470c(0x154):'Imported')+_0x33470c(0x15c)+_0x3268b2[_0x33470c(0x16b)][_0x33470c(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x166),'description':a62_0x259ac9(0x131),'risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x134),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1c185a){const _0x508939=a62_0x259ac9,_0x55082f=getLocalServiceEntry(_0x1c185a[_0x508939(0x160)](_0x508939(0x156)));return{'method':_0x508939(0x14b),'url':_0x1c185a[_0x508939(0x160)](_0x508939(0x13b)),'body':{'service':_0x1c185a['str'](_0x508939(0x156)),'found':Boolean(_0x55082f),'version':_0x55082f?.['version'],'source':_0x55082f?.[_0x508939(0x15b)]},'description':_0x508939(0x155)};},async 'execute'(_0x3e054d){const _0x5b4f61=a62_0x259ac9,_0x29d455=exportServiceManifest(_0x3e054d[_0x5b4f61(0x160)](_0x5b4f61(0x156)),_0x3e054d['str'](_0x5b4f61(0x13b)));return{'ok':!![],'data':{'registryPath':_0x29d455[_0x5b4f61(0x133)],'file':_0x29d455[_0x5b4f61(0x13f)],'service':summarizeService(_0x29d455[_0x5b4f61(0x16b)])},'message':_0x5b4f61(0x146)+_0x29d455[_0x5b4f61(0x16b)][_0x5b4f61(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x145),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xfbdcb4=a62_0x259ac9,_0x3e7588=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3e7588[_0xfbdcb4(0x139)],'services':_0x3e7588[_0xfbdcb4(0x12d)](summarizeService)}};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x130),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x15d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x58e497){const _0x1e2370=a62_0x259ac9,_0x1810e7=getLocalServiceEntry(_0x58e497[_0x1e2370(0x160)](_0x1e2370(0x156)));return{'method':_0x1e2370(0x14b),'url':getServiceRegistryPath(),'body':{'service':_0x58e497[_0x1e2370(0x160)](_0x1e2370(0x156)),'found':Boolean(_0x1810e7),'version':_0x1810e7?.[_0x1e2370(0x16a)],'source':_0x1810e7?.['source']},'description':_0x1e2370(0x157)};},async 'execute'(_0x5ef80b){const _0x1dfd3e=a62_0x259ac9,_0x5b279f=removeServiceManifest(_0x5ef80b[_0x1dfd3e(0x160)](_0x1dfd3e(0x156)));return{'ok':!![],'data':{'registryPath':_0x5b279f[_0x1dfd3e(0x133)],'serviceCount':_0x5b279f[_0x1dfd3e(0x12b)],'service':summarizeService(_0x5b279f[_0x1dfd3e(0x16b)])},'message':'Removed\x20service\x20'+_0x5b279f['entry'][_0x1dfd3e(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x164),'description':a62_0x259ac9(0x147),'risk':a62_0x259ac9(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x375447){const _0x2b9f1f=a62_0x259ac9,_0x3b2433=getLocalServiceEntry(_0x375447[_0x2b9f1f(0x160)]('service'));if(!_0x3b2433)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x375447[_0x2b9f1f(0x160)]('service')},'message':_0x2b9f1f(0x158)+_0x375447[_0x2b9f1f(0x160)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3b2433),'manifest':_0x3b2433[_0x2b9f1f(0x128)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3b2433[_0x2b9f1f(0x163)])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x42e8ec=a63_0x49cc;(function(_0x576a6c,_0x2a4681){const _0x39972e=a63_0x49cc,_0xe863d4=_0x576a6c();while(!![]){try{const _0x482424=parseInt(_0x39972e(0x15c))/0x1+-parseInt(_0x39972e(0x189))/0x2+-parseInt(_0x39972e(0x150))/0x3*(-parseInt(_0x39972e(0x137))/0x4)+parseInt(_0x39972e(0x163))/0x5+-parseInt(_0x39972e(0x146))/0x6+parseInt(_0x39972e(0x176))/0x7*(parseInt(_0x39972e(0x14f))/0x8)+-parseInt(_0x39972e(0x13c))/0x9*(parseInt(_0x39972e(0x143))/0xa);if(_0x482424===_0x2a4681)break;else _0xe863d4['push'](_0xe863d4['shift']());}catch(_0x39f805){_0xe863d4['push'](_0xe863d4['shift']());}}}(a63_0x1fcc,0x53143));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=a63_0x42e8ec(0x149);export function getServiceRegistryPath(_0x49d6c0={}){const _0x42155f=a63_0x42e8ec;return resolve(_0x49d6c0[_0x42155f(0x13b)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x2ac70b={}){const _0x2d0e28=a63_0x42e8ec,_0x217a07=getServiceRegistryPath(_0x2ac70b);if(!existsSync(_0x217a07))return emptyServiceRegistry();try{const _0x46a95f=readFileSync(_0x217a07,_0x2d0e28(0x17b));if(!_0x46a95f[_0x2d0e28(0x13f)]())return emptyServiceRegistry();const _0x3970a7=JSON['parse'](_0x46a95f);if(_0x3970a7['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2d0e28(0x140)](_0x2d0e28(0x15f)+String(_0x3970a7[_0x2d0e28(0x14e)]),_0x2d0e28(0x14c)+_0x217a07+'.');if(!Array['isArray'](_0x3970a7[_0x2d0e28(0x15e)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3970a7['updatedAt'],'services':_0x3970a7[_0x2d0e28(0x15e)]};}catch(_0x1b44d1){if(_0x1b44d1 instanceof Error&&_0x1b44d1[_0x2d0e28(0x187)]===_0x2d0e28(0x181))throw _0x1b44d1;throw CliErrors[_0x2d0e28(0x140)](_0x2d0e28(0x154)+_0x217a07,_0x2d0e28(0x161));}}function a63_0x49cc(_0x59d54b,_0x19535b){_0x59d54b=_0x59d54b-0x133;const _0x1fcc80=a63_0x1fcc();let _0x49cc57=_0x1fcc80[_0x59d54b];return _0x49cc57;}export function writeServiceRegistry(_0x4df5d4,_0xa2327b={}){const _0x2fef06=a63_0x42e8ec,_0x5e9f5c=getServiceRegistryPath(_0xa2327b),_0x366efe=dirname(_0x5e9f5c);!existsSync(_0x366efe)&&mkdirSync(_0x366efe,{'recursive':!![]});const _0x104da7=_0x5e9f5c+_0x2fef06(0x16e);try{writeFileSync(_0x104da7,JSON[_0x2fef06(0x157)](_0x4df5d4,null,0x2)+'\x0a',{'encoding':_0x2fef06(0x17b),'mode':0x180}),renameSync(_0x104da7,_0x5e9f5c);}catch(_0x48de66){try{unlinkSync(_0x104da7);}catch{}if(_0x48de66?.['code']===_0x2fef06(0x182))throw CliErrors['validation'](_0x2fef06(0x16f)+_0x5e9f5c);throw _0x48de66;}return _0x5e9f5c;}export function loadServiceManifestFromFile(_0x3f8121){const _0x3eb50d=a63_0x42e8ec,_0x3fe34e=resolve(_0x3f8121);if(!existsSync(_0x3fe34e))throw CliErrors[_0x3eb50d(0x140)](_0x3eb50d(0x15a)+_0x3f8121);let _0x2f4082;const _0x2064a9=readFileSync(_0x3fe34e,_0x3eb50d(0x17b));try{_0x2f4082=JSON[_0x3eb50d(0x139)](_0x2064a9);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x3f8121,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x4dface=sha256(_0x2064a9),_0x857610=extractLoadedServiceManifests(_0x2f4082,_0x4dface),_0x30f3cb=aggregateValidationReports(_0x857610),_0x213757=_0x857610[0x0];return{'filePath':_0x3fe34e,'hash':_0x4dface,'kind':isServiceRegistryLike(_0x2f4082)?_0x3eb50d(0x13e):_0x3eb50d(0x13d),'manifest':_0x213757?.[_0x3eb50d(0x13d)]??_0x2f4082,'report':_0x30f3cb,'normalizedManifest':_0x857610[_0x3eb50d(0x17c)]===0x1?_0x213757?.[_0x3eb50d(0x174)]:undefined,'manifests':_0x857610};}export function importServiceManifest(_0x357457,_0x471c6c={}){const _0xaa21a=a63_0x42e8ec,_0x4ed2ea=loadServiceManifestFromFile(_0x357457);if(!_0x4ed2ea[_0xaa21a(0x17f)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x4ed2ea[_0xaa21a(0x17f)]),_0xaa21a(0x145));if(_0x4ed2ea[_0xaa21a(0x167)][_0xaa21a(0x17c)]===0x0)throw CliErrors[_0xaa21a(0x140)](_0xaa21a(0x15b),_0xaa21a(0x148));const _0x55f64d=readServiceRegistry(_0x471c6c),_0x54e594=(_0x471c6c[_0xaa21a(0x16c)]??(()=>new Date()))()[_0xaa21a(0x14b)](),_0x4f5863=[];let _0x448651=0x0,_0x27417e=0x0;for(const _0x211f45 of _0x4ed2ea[_0xaa21a(0x167)]){if(!_0x211f45[_0xaa21a(0x174)])continue;const _0x399189=_0x211f45[_0xaa21a(0x174)]['service']['code'],_0x145eac={'serviceCode':_0x399189,'version':_0x211f45[_0xaa21a(0x174)][_0xaa21a(0x13a)],'importedAt':_0x54e594,'source':{'type':'file','path':_0x4ed2ea[_0xaa21a(0x166)],'hash':_0x211f45[_0xaa21a(0x153)]},'manifest':_0x211f45[_0xaa21a(0x13d)],'normalizedManifest':_0x211f45[_0xaa21a(0x174)]},_0x400105=_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x177)](_0x26faae=>_0x26faae['serviceCode']===_0x399189);_0x400105>=0x0?(_0x55f64d[_0xaa21a(0x15e)][_0x400105]=_0x145eac,_0x27417e++):(_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x14d)](_0x145eac),_0x448651++),_0x4f5863[_0xaa21a(0x14d)](_0x145eac);}_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x183)]((_0x460a25,_0x5cbfdf)=>_0x460a25[_0xaa21a(0x136)][_0xaa21a(0x160)](_0x5cbfdf['serviceCode'])),_0x55f64d[_0xaa21a(0x144)]=_0x54e594;const _0x623a16=writeServiceRegistry(_0x55f64d,_0x471c6c);return{'registryPath':_0x623a16,'entry':_0x4f5863[0x0],'replaced':_0x4f5863['length']===0x1?_0x27417e===0x1:_0x27417e>0x0,'entries':_0x4f5863,'imported':_0x448651,'updated':_0x27417e,'serviceCount':_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x17c)]};}export function exportServiceManifest(_0x59dbd3,_0x9d2901,_0x4f879b={}){const _0x3e818a=a63_0x42e8ec,_0xce9c34=getServiceRegistryPath(_0x4f879b),_0x5d8e9a=getLocalServiceEntry(_0x59dbd3,_0x4f879b);if(!_0x5d8e9a)throw CliErrors[_0x3e818a(0x140)](_0x3e818a(0x165)+_0x59dbd3,_0x3e818a(0x159));const _0x3ff514=resolve(_0x9d2901),_0xcf0770=dirname(_0x3ff514);return!existsSync(_0xcf0770)&&mkdirSync(_0xcf0770,{'recursive':!![]}),writeFileSync(_0x3ff514,JSON[_0x3e818a(0x157)](_0x5d8e9a['manifest'],null,0x2)+'\x0a',{'encoding':_0x3e818a(0x17b),'mode':0x180}),{'registryPath':_0xce9c34,'filePath':_0x3ff514,'entry':_0x5d8e9a};}export function removeServiceManifest(_0xd4741,_0x561e77={}){const _0x2f6a2e=a63_0x42e8ec,_0x1f41cb=readServiceRegistry(_0x561e77),_0xa4f312=_0xd4741[_0x2f6a2e(0x13f)](),_0x45a4be=_0x1f41cb[_0x2f6a2e(0x15e)][_0x2f6a2e(0x177)](_0x5c1540=>_0x5c1540[_0x2f6a2e(0x136)]===_0xa4f312);if(_0x45a4be<0x0)throw CliErrors[_0x2f6a2e(0x140)](_0x2f6a2e(0x165)+_0xa4f312,_0x2f6a2e(0x159));const [_0x11d788]=_0x1f41cb[_0x2f6a2e(0x15e)][_0x2f6a2e(0x186)](_0x45a4be,0x1),_0xaf3b24=(_0x561e77[_0x2f6a2e(0x16c)]??(()=>new Date()))()[_0x2f6a2e(0x14b)]();_0x1f41cb[_0x2f6a2e(0x144)]=_0xaf3b24;const _0x173153=writeServiceRegistry(_0x1f41cb,_0x561e77);return{'registryPath':_0x173153,'entry':_0x11d788,'serviceCount':_0x1f41cb[_0x2f6a2e(0x15e)][_0x2f6a2e(0x17c)]};}export function listLocalServices(_0x1bb86f={}){const _0x370114=a63_0x42e8ec;return readServiceRegistry(_0x1bb86f)[_0x370114(0x15e)];}export function getLocalServiceEntry(_0xdd8075,_0x29f8ad={}){const _0x443356=a63_0x42e8ec;return readServiceRegistry(_0x29f8ad)[_0x443356(0x15e)][_0x443356(0x162)](_0x30dcfb=>_0x30dcfb[_0x443356(0x136)]===_0xdd8075[_0x443356(0x13f)]());}export function listLocalServiceTrees(_0x1f4f92={}){const _0x75ecfa=a63_0x42e8ec;return readServiceRegistry(_0x1f4f92)[_0x75ecfa(0x15e)][_0x75ecfa(0x152)](_0x4f2526=>_0x4f2526['normalizedManifest']);}export function inspectServiceRegistry(_0x17f39f={}){const _0x5e6ba1=a63_0x42e8ec,_0x1b8e16=getServiceRegistryPath(_0x17f39f);if(!existsSync(_0x1b8e16))return emptyServiceRegistryInspection(_0x1b8e16,_0x5e6ba1(0x168),![]);try{const _0x5b29c6=readFileSync(_0x1b8e16,'utf8');if(!_0x5b29c6[_0x5e6ba1(0x13f)]())return emptyServiceRegistryInspection(_0x1b8e16,_0x5e6ba1(0x17d),!![]);const _0x1c60e0=JSON[_0x5e6ba1(0x139)](_0x5b29c6);if(_0x1c60e0[_0x5e6ba1(0x14e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1b8e16,'invalid',!![]),'schemaVersion':_0x1c60e0[_0x5e6ba1(0x14e)],'message':_0x5e6ba1(0x17a)+String(_0x1c60e0[_0x5e6ba1(0x14e)])};if(!Array[_0x5e6ba1(0x188)](_0x1c60e0[_0x5e6ba1(0x15e)]))return{...emptyServiceRegistryInspection(_0x1b8e16,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c60e0[_0x5e6ba1(0x144)],'message':'services\x20must\x20be\x20an\x20array'};const _0x5a96f4=_0x1c60e0['services'][_0x5e6ba1(0x152)](summarizeLocalServiceEntry);return{'registryPath':_0x1b8e16,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c60e0[_0x5e6ba1(0x144)],'serviceCount':_0x5a96f4[_0x5e6ba1(0x17c)],'commandCount':_0x5a96f4[_0x5e6ba1(0x178)]((_0x327815,_0x4c504a)=>_0x327815+_0x4c504a[_0x5e6ba1(0x175)],0x0),'services':_0x5a96f4};}catch(_0x46b86f){return{...emptyServiceRegistryInspection(_0x1b8e16,_0x5e6ba1(0x134),!![]),'message':_0x46b86f instanceof Error?_0x46b86f[_0x5e6ba1(0x172)]:String(_0x46b86f)};}}export function formatValidationFailure(_0x2c3812){const _0x4a57c=a63_0x42e8ec,_0x3dfd4d=_0x2c3812[_0x4a57c(0x17e)][_0x4a57c(0x152)](_0x4530e0=>_0x4530e0[_0x4a57c(0x179)]+':\x20'+_0x4530e0[_0x4a57c(0x172)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x3dfd4d[_0x4a57c(0x170)]('\x0a');}function extractLoadedServiceManifests(_0x16134e,_0x5c2b02){const _0x1369d3=a63_0x42e8ec;if(!isServiceRegistryLike(_0x16134e)){const _0x325688=_0x16134e,{manifest:_0x5316a5,errors:_0x583162}=adaptServiceTreeManifestForLegacyFramework(_0x325688),_0x5dc41e=validateServiceTreeManifest(_0x5316a5),_0x302597=mergeValidationErrors(_0x5dc41e,_0x583162);return[{'manifest':_0x325688,'report':_0x302597,'normalizedManifest':_0x302597['ok']?normalizeServiceTreeManifest(_0x5316a5):undefined,'sourceHash':_0x5c2b02}];}return _0x16134e['services'][_0x1369d3(0x152)]((_0x8e6510,_0x204025)=>{const _0x44e650=_0x1369d3,_0x31d94d=isObjectRecord(_0x8e6510)?_0x8e6510['manifest']:undefined,{manifest:_0x1f2420,errors:_0x4b8e17}=adaptServiceTreeManifestForLegacyFramework(_0x31d94d),_0xfeaf23=validateServiceTreeManifest(_0x1f2420),_0x3c6367=mergeValidationErrors(_0xfeaf23,_0x4b8e17),_0x30725b=isObjectRecord(_0x8e6510)&&typeof _0x8e6510[_0x44e650(0x136)]==='string'?_0x8e6510['serviceCode']:undefined;return{'manifest':_0x31d94d,'report':_0x3c6367,'normalizedManifest':_0x3c6367['ok']?normalizeServiceTreeManifest(_0x1f2420):undefined,'sourceHash':sha256(JSON[_0x44e650(0x157)](_0x31d94d,null,0x2)+'\x0a'),'registryIndex':_0x204025,'registryServiceCode':_0x30725b};});}function mergeValidationErrors(_0x804db7,_0x28d8cb){const _0x51d5ca=a63_0x42e8ec,_0x2d2637=_0x804db7[_0x51d5ca(0x17e)][_0x51d5ca(0x152)](_0x21dc71=>_0x21dc71['message']===_0x51d5ca(0x15d)?{..._0x21dc71,'message':'bff\x20target\x20requires\x20functionName.'}:_0x21dc71),_0x4249fc=[..._0x28d8cb,..._0x2d2637];return{'ok':_0x4249fc[_0x51d5ca(0x17c)]===0x0,'errors':_0x4249fc,'warnings':_0x804db7[_0x51d5ca(0x158)]};}function aggregateValidationReports(_0xf940a8){const _0x28f78f=a63_0x42e8ec,_0x5cb0ef=_0xf940a8[_0x28f78f(0x155)](_0x4e424b=>_0x4e424b[_0x28f78f(0x184)]===undefined?_0x4e424b[_0x28f78f(0x17f)][_0x28f78f(0x17e)]:_0x4e424b[_0x28f78f(0x17f)][_0x28f78f(0x17e)]['map'](_0x18a528=>({..._0x18a528,'path':prefixRegistryIssuePath(_0x4e424b['registryIndex'],_0x18a528[_0x28f78f(0x179)])}))),_0x52496b=_0xf940a8[_0x28f78f(0x155)](_0x4a7a3d=>_0x4a7a3d[_0x28f78f(0x184)]===undefined?_0x4a7a3d[_0x28f78f(0x17f)][_0x28f78f(0x158)]:_0x4a7a3d[_0x28f78f(0x17f)][_0x28f78f(0x158)]['map'](_0x245b82=>({..._0x245b82,'path':prefixRegistryIssuePath(_0x4a7a3d[_0x28f78f(0x184)],_0x245b82[_0x28f78f(0x179)])})));return{'ok':_0x5cb0ef[_0x28f78f(0x17c)]===0x0,'errors':_0x5cb0ef,'warnings':_0x52496b};}function prefixRegistryIssuePath(_0x29567c,_0x13a85a){const _0x37e122=a63_0x42e8ec;if(_0x13a85a==='$')return _0x37e122(0x14a)+_0x29567c+'].manifest';if(_0x13a85a['startsWith']('$.'))return _0x37e122(0x14a)+_0x29567c+_0x37e122(0x16b)+_0x13a85a['slice'](0x1);if(_0x13a85a[_0x37e122(0x138)]('$['))return'$.services['+_0x29567c+_0x37e122(0x16b)+_0x13a85a[_0x37e122(0x141)](0x1);return'$.services['+_0x29567c+_0x37e122(0x169)+_0x13a85a;}function isServiceRegistryLike(_0x5c2a92){const _0x59c5c5=a63_0x42e8ec;return isObjectRecord(_0x5c2a92)&&_0x5c2a92[_0x59c5c5(0x14e)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x5c2a92['services']);}function isObjectRecord(_0x1edf44){const _0x303400=a63_0x42e8ec;return Boolean(_0x1edf44)&&typeof _0x1edf44===_0x303400(0x185)&&!Array[_0x303400(0x188)](_0x1edf44);}function emptyServiceRegistryInspection(_0x3fec1a,_0x554389,_0x2fd6d8){return{'registryPath':_0x3fec1a,'exists':_0x2fd6d8,'status':_0x554389,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function a63_0x1fcc(){const _0x492f32=['empty','errors','report','target','CliError','ENOENT','sort','registryIndex','object','splice','name','isArray','1139118sKBScx','description','invalid','hex','serviceCode','4yIxgyA','startsWith','parse','version','homeDir','4815WgSfBy','manifest','registry','trim','validation','slice','service','13900ZcmGNV','updatedAt','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','99852NNUGyV','update','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','service.json','$.services[','toISOString','Remove\x20or\x20migrate\x20','push','schemaVersion','16MHzbam','1731222tekqVZ','sha256','map','sourceHash','Invalid\x20service\x20registry\x20JSON:\x20','flatMap','source','stringify','warnings','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Service\x20manifest\x20file\x20not\x20found:\x20','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','30372zRcndC','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','services','Unsupported\x20service\x20registry\x20schemaVersion:\x20','localeCompare','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','find','2255930teOdHm','command','Local\x20service\x20not\x20found:\x20','filePath','manifests','missing','].manifest.','digest','].manifest','now','cliPath','.tmp','Cannot\x20write\x20service\x20registry:\x20','join','risk','message','kind','normalizedManifest','commandCount','2140285rTaREw','findIndex','reduce','path','Unsupported\x20schemaVersion:\x20','utf8','length'];a63_0x1fcc=function(){return _0x492f32;};return a63_0x1fcc();}function summarizeLocalServiceEntry(_0x4b3898){const _0x1d8bb2=a63_0x42e8ec,_0x3894e6=_0x4b3898['normalizedManifest'],_0x2eeaf6=_0x3894e6['commands'][_0x1d8bb2(0x152)](_0x628931=>({'path':_0x628931[_0x1d8bb2(0x16d)],'description':_0x628931[_0x1d8bb2(0x133)],'risk':_0x628931[_0x1d8bb2(0x171)],'targetKind':_0x628931[_0x1d8bb2(0x180)][_0x1d8bb2(0x173)],'targetCommand':_0x628931[_0x1d8bb2(0x180)][_0x1d8bb2(0x164)]}));return{'serviceCode':_0x4b3898[_0x1d8bb2(0x136)],'name':_0x3894e6[_0x1d8bb2(0x142)][_0x1d8bb2(0x187)],'description':_0x3894e6[_0x1d8bb2(0x142)][_0x1d8bb2(0x133)],'version':_0x4b3898[_0x1d8bb2(0x13a)],'importedAt':_0x4b3898['importedAt'],'source':_0x4b3898[_0x1d8bb2(0x156)],'commandCount':_0x2eeaf6['length'],'commands':_0x2eeaf6};}function sha256(_0xfd6720){const _0x1c7659=a63_0x42e8ec;return createHash(_0x1c7659(0x151))[_0x1c7659(0x147)](_0xfd6720)[_0x1c7659(0x16a)](_0x1c7659(0x135));}
|
|
1
|
+
(function(_0x49e1d3,_0x3ce2d3){const _0x47cc35=a63_0x33f7,_0x4e0c15=_0x49e1d3();while(!![]){try{const _0x1e3310=parseInt(_0x47cc35(0x177))/0x1*(parseInt(_0x47cc35(0x16d))/0x2)+-parseInt(_0x47cc35(0x135))/0x3+parseInt(_0x47cc35(0x167))/0x4+parseInt(_0x47cc35(0x155))/0x5*(parseInt(_0x47cc35(0x168))/0x6)+parseInt(_0x47cc35(0x15b))/0x7+-parseInt(_0x47cc35(0x160))/0x8+-parseInt(_0x47cc35(0x162))/0x9*(-parseInt(_0x47cc35(0x157))/0xa);if(_0x1e3310===_0x3ce2d3)break;else _0x4e0c15['push'](_0x4e0c15['shift']());}catch(_0x1a710a){_0x4e0c15['push'](_0x4e0c15['shift']());}}}(a63_0xe65b,0xb721f));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';function a63_0xe65b(){const _0x3e7809=['command','join','Cannot\x20write\x20service\x20registry:\x20','homeDirName','report','length','4066266GHeJgp','Invalid\x20service\x20manifest\x20JSON:\x20','services','startsWith','Remove\x20or\x20migrate\x20','hex','errors','object','bff\x20target\x20requires\x20functionName.','Invalid\x20service\x20registry\x20JSON:\x20','sort','manifests','update','code','splice','Service\x20manifest\x20validation\x20failed:\x0a','manifest','slice','Local\x20service\x20not\x20found:\x20','Unsupported\x20schemaVersion:\x20','services\x20must\x20be\x20an\x20array','sourceHash','toISOString','updatedAt','stringify','now','Service\x20manifest\x20file\x20not\x20found:\x20','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','service','risk','schemaVersion','warnings','25nochGQ','find','10EjEMcm','path','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','8603707tcceQW','].manifest','invalid','kind','trim','10822176VPIduo','message','1422072mlDCDr','commandCount','target','normalizedManifest','.tmp','3605744MqerHg','491574YiqyjI','file','name','utf8','importedAt','304046UfvGvP','map','validation','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','missing','findIndex','cliPath','isArray','description','digest','5IzUSjK','parse','version','commands','serviceCode','ENOENT','$.services[','push','empty','registryIndex'];a63_0xe65b=function(){return _0x3e7809;};return a63_0xe65b();}import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x125dfe={}){const _0x177735=a63_0x33f7;return resolve(_0x125dfe['homeDir']??homedir(),PRODUCT_CONFIG[_0x177735(0x132)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xcc343a={}){const _0x511fa1=a63_0x33f7,_0x5d38eb=getServiceRegistryPath(_0xcc343a);if(!existsSync(_0x5d38eb))return emptyServiceRegistry();try{const _0x2d7877=readFileSync(_0x5d38eb,_0x511fa1(0x16b));if(!_0x2d7877[_0x511fa1(0x15f)]())return emptyServiceRegistry();const _0x460009=JSON[_0x511fa1(0x178)](_0x2d7877);if(_0x460009[_0x511fa1(0x153)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x511fa1(0x16f)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x460009[_0x511fa1(0x153)]),_0x511fa1(0x139)+_0x5d38eb+'.');if(!Array[_0x511fa1(0x174)](_0x460009[_0x511fa1(0x137)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x460009[_0x511fa1(0x14c)],'services':_0x460009[_0x511fa1(0x137)]};}catch(_0xbe0a00){if(_0xbe0a00 instanceof Error&&_0xbe0a00[_0x511fa1(0x16a)]==='CliError')throw _0xbe0a00;throw CliErrors[_0x511fa1(0x16f)](_0x511fa1(0x13e)+_0x5d38eb,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x13ef2d,_0x146b8b={}){const _0x113951=a63_0x33f7,_0xb54d48=getServiceRegistryPath(_0x146b8b),_0x2db1c8=dirname(_0xb54d48);!existsSync(_0x2db1c8)&&mkdirSync(_0x2db1c8,{'recursive':!![]});const _0x5dfd9e=_0xb54d48+_0x113951(0x166);try{writeFileSync(_0x5dfd9e,JSON['stringify'](_0x13ef2d,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x5dfd9e,_0xb54d48);}catch(_0x31b5b4){try{unlinkSync(_0x5dfd9e);}catch{}if(_0x31b5b4?.[_0x113951(0x142)]===_0x113951(0x17c))throw CliErrors[_0x113951(0x16f)](_0x113951(0x131)+_0xb54d48);throw _0x31b5b4;}return _0xb54d48;}export function loadServiceManifestFromFile(_0x5a0cf5){const _0x3a8f13=a63_0x33f7,_0x1f0b70=resolve(_0x5a0cf5);if(!existsSync(_0x1f0b70))throw CliErrors[_0x3a8f13(0x16f)](_0x3a8f13(0x14f)+_0x5a0cf5);let _0x1a10f7;const _0xc905ca=readFileSync(_0x1f0b70,_0x3a8f13(0x16b));try{_0x1a10f7=JSON[_0x3a8f13(0x178)](_0xc905ca);}catch{throw CliErrors['validation'](_0x3a8f13(0x136)+_0x5a0cf5,_0x3a8f13(0x159));}const _0x43f95a=sha256(_0xc905ca),_0x2b02e6=extractLoadedServiceManifests(_0x1a10f7,_0x43f95a),_0x54000a=aggregateValidationReports(_0x2b02e6),_0x1f3bcc=_0x2b02e6[0x0];return{'filePath':_0x1f0b70,'hash':_0x43f95a,'kind':isServiceRegistryLike(_0x1a10f7)?'registry':_0x3a8f13(0x145),'manifest':_0x1f3bcc?.[_0x3a8f13(0x145)]??_0x1a10f7,'report':_0x54000a,'normalizedManifest':_0x2b02e6[_0x3a8f13(0x134)]===0x1?_0x1f3bcc?.[_0x3a8f13(0x165)]:undefined,'manifests':_0x2b02e6};}export function importServiceManifest(_0x39e946,_0x35ba6f={}){const _0xd81f59=a63_0x33f7,_0x463ae1=loadServiceManifestFromFile(_0x39e946);if(!_0x463ae1[_0xd81f59(0x133)]['ok'])throw CliErrors[_0xd81f59(0x16f)](formatValidationFailure(_0x463ae1[_0xd81f59(0x133)]),_0xd81f59(0x15a));if(_0x463ae1[_0xd81f59(0x140)][_0xd81f59(0x134)]===0x0)throw CliErrors[_0xd81f59(0x16f)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0xd81f59(0x170));const _0xf1ee82=readServiceRegistry(_0x35ba6f),_0x22bc2d=(_0x35ba6f[_0xd81f59(0x14e)]??(()=>new Date()))()[_0xd81f59(0x14b)](),_0x201707=[];let _0x39d9f8=0x0,_0x4f8244=0x0;for(const _0x1dcf4e of _0x463ae1[_0xd81f59(0x140)]){if(!_0x1dcf4e[_0xd81f59(0x165)])continue;const _0x47e318=_0x1dcf4e['normalizedManifest'][_0xd81f59(0x151)]['code'],_0x1c95fb={'serviceCode':_0x47e318,'version':_0x1dcf4e[_0xd81f59(0x165)][_0xd81f59(0x179)],'importedAt':_0x22bc2d,'source':{'type':_0xd81f59(0x169),'path':_0x463ae1['filePath'],'hash':_0x1dcf4e[_0xd81f59(0x14a)]},'manifest':_0x1dcf4e['manifest'],'normalizedManifest':_0x1dcf4e['normalizedManifest']},_0x125ae1=_0xf1ee82[_0xd81f59(0x137)]['findIndex'](_0xf3f51a=>_0xf3f51a[_0xd81f59(0x17b)]===_0x47e318);_0x125ae1>=0x0?(_0xf1ee82[_0xd81f59(0x137)][_0x125ae1]=_0x1c95fb,_0x4f8244++):(_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x17e)](_0x1c95fb),_0x39d9f8++),_0x201707[_0xd81f59(0x17e)](_0x1c95fb);}_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x13f)]((_0x1e5cae,_0x529638)=>_0x1e5cae[_0xd81f59(0x17b)]['localeCompare'](_0x529638[_0xd81f59(0x17b)])),_0xf1ee82['updatedAt']=_0x22bc2d;const _0x3a0106=writeServiceRegistry(_0xf1ee82,_0x35ba6f);return{'registryPath':_0x3a0106,'entry':_0x201707[0x0],'replaced':_0x201707[_0xd81f59(0x134)]===0x1?_0x4f8244===0x1:_0x4f8244>0x0,'entries':_0x201707,'imported':_0x39d9f8,'updated':_0x4f8244,'serviceCount':_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x134)]};}export function exportServiceManifest(_0x259cd7,_0x32472c,_0x3174fb={}){const _0x25d66c=a63_0x33f7,_0x386676=getServiceRegistryPath(_0x3174fb),_0x492bb6=getLocalServiceEntry(_0x259cd7,_0x3174fb);if(!_0x492bb6)throw CliErrors['validation'](_0x25d66c(0x147)+_0x259cd7,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x23ae42=resolve(_0x32472c),_0x4a0eed=dirname(_0x23ae42);return!existsSync(_0x4a0eed)&&mkdirSync(_0x4a0eed,{'recursive':!![]}),writeFileSync(_0x23ae42,JSON['stringify'](_0x492bb6[_0x25d66c(0x145)],null,0x2)+'\x0a',{'encoding':_0x25d66c(0x16b),'mode':0x180}),{'registryPath':_0x386676,'filePath':_0x23ae42,'entry':_0x492bb6};}export function removeServiceManifest(_0x1c57e1,_0x2ebae0={}){const _0x2071a9=a63_0x33f7,_0xb79078=readServiceRegistry(_0x2ebae0),_0x1f4664=_0x1c57e1[_0x2071a9(0x15f)](),_0x125049=_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x172)](_0x4a3b72=>_0x4a3b72[_0x2071a9(0x17b)]===_0x1f4664);if(_0x125049<0x0)throw CliErrors[_0x2071a9(0x16f)](_0x2071a9(0x147)+_0x1f4664,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x323b58]=_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x143)](_0x125049,0x1),_0x494c7a=(_0x2ebae0[_0x2071a9(0x14e)]??(()=>new Date()))()[_0x2071a9(0x14b)]();_0xb79078[_0x2071a9(0x14c)]=_0x494c7a;const _0x25904f=writeServiceRegistry(_0xb79078,_0x2ebae0);return{'registryPath':_0x25904f,'entry':_0x323b58,'serviceCount':_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x134)]};}export function listLocalServices(_0x5e89fc={}){const _0x5d180e=a63_0x33f7;return readServiceRegistry(_0x5e89fc)[_0x5d180e(0x137)];}export function getLocalServiceEntry(_0x3bb5d6,_0x2bbb3b={}){const _0x2a804a=a63_0x33f7;return readServiceRegistry(_0x2bbb3b)[_0x2a804a(0x137)][_0x2a804a(0x156)](_0x510b01=>_0x510b01[_0x2a804a(0x17b)]===_0x3bb5d6[_0x2a804a(0x15f)]());}export function listLocalServiceTrees(_0x3d38cd={}){return readServiceRegistry(_0x3d38cd)['services']['map'](_0x46f27b=>_0x46f27b['normalizedManifest']);}export function inspectServiceRegistry(_0x5b9aa9={}){const _0x537b45=a63_0x33f7,_0x42cc34=getServiceRegistryPath(_0x5b9aa9);if(!existsSync(_0x42cc34))return emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x171),![]);try{const _0x10f6d0=readFileSync(_0x42cc34,_0x537b45(0x16b));if(!_0x10f6d0[_0x537b45(0x15f)]())return emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x17f),!![]);const _0x2fbd89=JSON[_0x537b45(0x178)](_0x10f6d0);if(_0x2fbd89['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x42cc34,'invalid',!![]),'schemaVersion':_0x2fbd89[_0x537b45(0x153)],'message':_0x537b45(0x148)+String(_0x2fbd89[_0x537b45(0x153)])};if(!Array[_0x537b45(0x174)](_0x2fbd89['services']))return{...emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x15d),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fbd89[_0x537b45(0x14c)],'message':_0x537b45(0x149)};const _0x355c59=_0x2fbd89[_0x537b45(0x137)][_0x537b45(0x16e)](summarizeLocalServiceEntry);return{'registryPath':_0x42cc34,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fbd89[_0x537b45(0x14c)],'serviceCount':_0x355c59['length'],'commandCount':_0x355c59['reduce']((_0x14e270,_0x27e181)=>_0x14e270+_0x27e181[_0x537b45(0x163)],0x0),'services':_0x355c59};}catch(_0x3d8323){return{...emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x15d),!![]),'message':_0x3d8323 instanceof Error?_0x3d8323[_0x537b45(0x161)]:String(_0x3d8323)};}}export function formatValidationFailure(_0x47754f){const _0x260003=a63_0x33f7,_0x888b87=_0x47754f[_0x260003(0x13b)][_0x260003(0x16e)](_0x28595c=>_0x28595c[_0x260003(0x158)]+':\x20'+_0x28595c[_0x260003(0x161)]);return _0x260003(0x144)+_0x888b87[_0x260003(0x130)]('\x0a');}function extractLoadedServiceManifests(_0x1e0102,_0x5dcb28){const _0x1662c5=a63_0x33f7;if(!isServiceRegistryLike(_0x1e0102)){const _0x35a341=_0x1e0102,{manifest:_0x3f7d8a,errors:_0x33f86b}=adaptServiceTreeManifestForLegacyFramework(_0x35a341),_0x45a184=validateServiceTreeManifest(_0x3f7d8a),_0x280ad3=mergeValidationErrors(_0x45a184,_0x33f86b);return[{'manifest':_0x35a341,'report':_0x280ad3,'normalizedManifest':_0x280ad3['ok']?normalizeServiceTreeManifest(_0x3f7d8a):undefined,'sourceHash':_0x5dcb28}];}return _0x1e0102[_0x1662c5(0x137)][_0x1662c5(0x16e)]((_0x2670bd,_0x3fb16e)=>{const _0x4165b4=_0x1662c5,_0x11da2d=isObjectRecord(_0x2670bd)?_0x2670bd['manifest']:undefined,{manifest:_0x46c36a,errors:_0x3103e5}=adaptServiceTreeManifestForLegacyFramework(_0x11da2d),_0x3ebf64=validateServiceTreeManifest(_0x46c36a),_0x453f2d=mergeValidationErrors(_0x3ebf64,_0x3103e5),_0x357e0b=isObjectRecord(_0x2670bd)&&typeof _0x2670bd[_0x4165b4(0x17b)]==='string'?_0x2670bd[_0x4165b4(0x17b)]:undefined;return{'manifest':_0x11da2d,'report':_0x453f2d,'normalizedManifest':_0x453f2d['ok']?normalizeServiceTreeManifest(_0x46c36a):undefined,'sourceHash':sha256(JSON[_0x4165b4(0x14d)](_0x11da2d,null,0x2)+'\x0a'),'registryIndex':_0x3fb16e,'registryServiceCode':_0x357e0b};});}function mergeValidationErrors(_0x5158ba,_0x2e6e97){const _0x4c6f65=a63_0x33f7,_0x3e8509=_0x5158ba['errors']['map'](_0x5173b4=>_0x5173b4[_0x4c6f65(0x161)]===_0x4c6f65(0x150)?{..._0x5173b4,'message':_0x4c6f65(0x13d)}:_0x5173b4),_0x55f422=[..._0x2e6e97,..._0x3e8509];return{'ok':_0x55f422[_0x4c6f65(0x134)]===0x0,'errors':_0x55f422,'warnings':_0x5158ba[_0x4c6f65(0x154)]};}function aggregateValidationReports(_0x2dc8cd){const _0xcb0cde=a63_0x33f7,_0x279e69=_0x2dc8cd['flatMap'](_0x251dde=>_0x251dde[_0xcb0cde(0x180)]===undefined?_0x251dde['report'][_0xcb0cde(0x13b)]:_0x251dde[_0xcb0cde(0x133)][_0xcb0cde(0x13b)]['map'](_0x2e4a76=>({..._0x2e4a76,'path':prefixRegistryIssuePath(_0x251dde[_0xcb0cde(0x180)],_0x2e4a76[_0xcb0cde(0x158)])}))),_0x4eaf53=_0x2dc8cd['flatMap'](_0x55914a=>_0x55914a[_0xcb0cde(0x180)]===undefined?_0x55914a[_0xcb0cde(0x133)][_0xcb0cde(0x154)]:_0x55914a[_0xcb0cde(0x133)]['warnings']['map'](_0x2daf5b=>({..._0x2daf5b,'path':prefixRegistryIssuePath(_0x55914a[_0xcb0cde(0x180)],_0x2daf5b['path'])})));return{'ok':_0x279e69[_0xcb0cde(0x134)]===0x0,'errors':_0x279e69,'warnings':_0x4eaf53};}function prefixRegistryIssuePath(_0x2ec56a,_0x7a0081){const _0x26d298=a63_0x33f7;if(_0x7a0081==='$')return _0x26d298(0x17d)+_0x2ec56a+_0x26d298(0x15c);if(_0x7a0081[_0x26d298(0x138)]('$.'))return _0x26d298(0x17d)+_0x2ec56a+_0x26d298(0x15c)+_0x7a0081[_0x26d298(0x146)](0x1);if(_0x7a0081['startsWith']('$['))return'$.services['+_0x2ec56a+_0x26d298(0x15c)+_0x7a0081[_0x26d298(0x146)](0x1);return _0x26d298(0x17d)+_0x2ec56a+'].manifest.'+_0x7a0081;}function a63_0x33f7(_0x511db3,_0x2e6ebd){_0x511db3=_0x511db3-0x130;const _0xe65b09=a63_0xe65b();let _0x33f723=_0xe65b09[_0x511db3];return _0x33f723;}function isServiceRegistryLike(_0x32449d){const _0x5e381d=a63_0x33f7;return isObjectRecord(_0x32449d)&&_0x32449d[_0x5e381d(0x153)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5e381d(0x174)](_0x32449d['services']);}function isObjectRecord(_0x333d73){const _0x12da82=a63_0x33f7;return Boolean(_0x333d73)&&typeof _0x333d73===_0x12da82(0x13c)&&!Array[_0x12da82(0x174)](_0x333d73);}function emptyServiceRegistryInspection(_0x1e8b22,_0x2c637b,_0x4869d0){return{'registryPath':_0x1e8b22,'exists':_0x4869d0,'status':_0x2c637b,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1aca3e){const _0x515bad=a63_0x33f7,_0x847b06=_0x1aca3e[_0x515bad(0x165)],_0x33b0fd=_0x847b06[_0x515bad(0x17a)]['map'](_0x5f233b=>({'path':_0x5f233b[_0x515bad(0x173)],'description':_0x5f233b['description'],'risk':_0x5f233b[_0x515bad(0x152)],'targetKind':_0x5f233b[_0x515bad(0x164)][_0x515bad(0x15e)],'targetCommand':_0x5f233b[_0x515bad(0x164)][_0x515bad(0x181)]}));return{'serviceCode':_0x1aca3e[_0x515bad(0x17b)],'name':_0x847b06[_0x515bad(0x151)]['name'],'description':_0x847b06[_0x515bad(0x151)][_0x515bad(0x175)],'version':_0x1aca3e[_0x515bad(0x179)],'importedAt':_0x1aca3e[_0x515bad(0x16c)],'source':_0x1aca3e['source'],'commandCount':_0x33b0fd[_0x515bad(0x134)],'commands':_0x33b0fd};}function sha256(_0x47d786){const _0x1b7a7b=a63_0x33f7;return createHash('sha256')[_0x1b7a7b(0x141)](_0x47d786)[_0x1b7a7b(0x176)](_0x1b7a7b(0x13a));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a64_0x59fe20=a64_0x3977;function a64_0x18cd(){const _0x47064b=['Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','validation','4PzYikM','path','skill','isDirectory','5315aPnzGQ','files','force','bool','skillDir','type','rendered','map','2032770dARPIx','create','609441Luzhkz','9mpVXUn','isSymbolicLink','6049568XhXmIv','Refusing\x20to\x20overwrite\x20symlink:\x20','read','1908ojukOz','content','target','22188qHUqFp','3619vefhFz','skillName','name','1127013IEpzwP','7ZGcDdg','trim','str','7739920CDkuay'];a64_0x18cd=function(){return _0x47064b;};return a64_0x18cd();}(function(_0x3378e3,_0x30eed9){const _0x2a0095=a64_0x3977,_0x266a12=_0x3378e3();while(!![]){try{const _0x4520ed=-parseInt(_0x2a0095(0x19a))/0x1+parseInt(_0x2a0095(0x1ae))/0x2*(-parseInt(_0x2a0095(0x1a7))/0x3)+-parseInt(_0x2a0095(0x1a0))/0x4*(-parseInt(_0x2a0095(0x1b2))/0x5)+parseInt(_0x2a0095(0x198))/0x6+parseInt(_0x2a0095(0x1a8))/0x7*(parseInt(_0x2a0095(0x19d))/0x8)+-parseInt(_0x2a0095(0x19b))/0x9*(-parseInt(_0x2a0095(0x1ab))/0xa)+parseInt(_0x2a0095(0x1a4))/0xb*(-parseInt(_0x2a0095(0x1a3))/0xc);if(_0x4520ed===_0x30eed9)break;else _0x266a12['push'](_0x266a12['shift']());}catch(_0x3cd1a6){_0x266a12['push'](_0x266a12['shift']());}}}(a64_0x18cd,0x63592));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';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';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a64_0x59fe20(0x1b0),'command':a64_0x59fe20(0x199),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a64_0x59fe20(0x19f),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3a6442){const _0x4aa27e=a64_0x59fe20,_0x39104e=buildSkillCreatePlan(_0x3a6442['str'](_0x4aa27e(0x1a6)),_0x3a6442['str'](_0x4aa27e(0x195)),_0x3a6442[_0x4aa27e(0x1aa)](_0x4aa27e(0x1a2)));return{'method':'WRITE','url':_0x39104e[_0x4aa27e(0x194)],'body':{'skillName':_0x39104e[_0x4aa27e(0x196)][_0x4aa27e(0x1a5)],'type':_0x39104e['rendered'][_0x4aa27e(0x195)],'selfContained':!![],'files':_0x39104e[_0x4aa27e(0x196)][_0x4aa27e(0x1b3)][_0x4aa27e(0x197)](_0x2e4042=>_0x2e4042[_0x4aa27e(0x1af)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x469af6){const _0x5bd511=a64_0x59fe20,_0x5b5859=buildSkillCreatePlan(_0x469af6['str'](_0x5bd511(0x1a6)),_0x469af6[_0x5bd511(0x1aa)](_0x5bd511(0x195)),_0x469af6[_0x5bd511(0x1aa)](_0x5bd511(0x1a2)));return writeSkillDraft(_0x5b5859,_0x469af6[_0x5bd511(0x193)](_0x5bd511(0x1b4))),{'ok':!![],'data':{'skillName':_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x1a5)],'type':_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x195)],'dir':_0x5b5859[_0x5bd511(0x194)],'files':_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x1b3)][_0x5bd511(0x197)](_0x47cee9=>_0x47cee9[_0x5bd511(0x1af)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x1a5)]};}};function a64_0x3977(_0x55ac98,_0x25d7f9){_0x55ac98=_0x55ac98-0x193;const _0x18cdbc=a64_0x18cd();let _0x397796=_0x18cdbc[_0x55ac98];return _0x397796;}function buildSkillCreatePlan(_0x34d69b,_0x3cad38,_0x503ee8){const _0x2e389f=a64_0x59fe20,_0x472f5f=_0x3cad38[_0x2e389f(0x1a9)](),_0x204586=renderSkillTemplate({'skillName':_0x34d69b,'type':_0x472f5f});!_0x472f5f&&writeCliSideChannelLine(_0x2e389f(0x1ac));const _0x1e6433=resolve(normalizeSkillTarget(_0x503ee8));return{'rendered':_0x204586,'targetRoot':_0x1e6433,'skillDir':resolve(_0x1e6433,_0x204586[_0x2e389f(0x1a5)])};}function normalizeSkillTarget(_0x58ef04){const _0x450e52=a64_0x59fe20;return(_0x58ef04||DEFAULT_SKILL_TARGET)[_0x450e52(0x1a9)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x2149bf,_0x3117ff){const _0x157575=a64_0x59fe20;if(existsSync(_0x2149bf['skillDir'])){const _0x340235=lstatSync(_0x2149bf[_0x157575(0x194)]);if(!_0x340235[_0x157575(0x1b1)]()||_0x340235[_0x157575(0x19c)]())throw CliErrors[_0x157575(0x1ad)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x2149bf[_0x157575(0x194)]);if(!_0x3117ff)throw CliErrors[_0x157575(0x1ad)]('Skill\x20directory\x20already\x20exists:\x20'+_0x2149bf[_0x157575(0x194)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x37a48d of _0x2149bf[_0x157575(0x196)][_0x157575(0x1b3)]){const _0x40580f=resolve(_0x2149bf[_0x157575(0x194)],_0x37a48d['path']),_0x495dfa=dirname(_0x40580f);mkdirSync(_0x495dfa,{'recursive':!![]});if(existsSync(_0x40580f)&&lstatSync(_0x40580f)[_0x157575(0x19c)]())throw CliErrors['validation'](_0x157575(0x19e)+_0x40580f);writeFileSync(_0x40580f,_0x37a48d[_0x157575(0x1a1)],'utf8');}}
|