@lovrabet/lovrabet-cli 2.3.2 → 2.3.3-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/approval/index.d.ts +15 -0
- package/lib/commands/approval/index.js +1 -0
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +83 -0
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/positive-safe-integer.d.ts +5 -0
- package/lib/utils/positive-safe-integer.js +1 -0
- package/lib/utils/redaction.d.ts +17 -0
- package/lib/utils/redaction.js +1 -0
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/lovrabet/SKILL.md +3 -2
- package/skills/lovrabet/references/lovrabet-approval-workflow.md +73 -0
- package/skills/lovrabet.manifest.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a56_0x4d968c=a56_0x2836;(function(_0x391202,_0xdf062d){const _0x5daaf1=a56_0x2836,_0x427a86=_0x391202();while(!![]){try{const _0x90bdba=-parseInt(_0x5daaf1(0xb9))/0x1+-parseInt(_0x5daaf1(0xa9))/0x2*(-parseInt(_0x5daaf1(0xbb))/0x3)+-parseInt(_0x5daaf1(0xbf))/0x4+-parseInt(_0x5daaf1(0xc2))/0x5+-parseInt(_0x5daaf1(0xac))/0x6*(-parseInt(_0x5daaf1(0xa3))/0x7)+parseInt(_0x5daaf1(0xaf))/0x8*(-parseInt(_0x5daaf1(0xb6))/0x9)+parseInt(_0x5daaf1(0xa4))/0xa;if(_0x90bdba===_0xdf062d)break;else _0x427a86['push'](_0x427a86['shift']());}catch(_0x2a155e){_0x427a86['push'](_0x427a86['shift']());}}}(a56_0x3eed,0xe7220));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a56_0x3eed(){const _0x5d8a63=['172539UuyYMg','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','name','971567DBljny','trim','9FqtkOe','str','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','1351936GQTYOs','--remark\x20must\x20not\x20be\x20blank.','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','1243725kXNILF','633654kjlUhA','23615370AZKzYA','build','body','New\x20role\x20name','role-code','10510cQnfTz','update','/client/permit/role/update','72SKBomj','flag','remark','400aLltMq','string','New\x20non-empty\x20role\x20remark','POST','--name\x20must\x20not\x20be\x20blank.','validation','appCode'];a56_0x3eed=function(){return _0x5d8a63;};return a56_0x3eed();}import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x2789b2){const _0x44c66d=a56_0x2836,_0x16902f=_0x2789b2[_0x44c66d(0xad)](_0x44c66d(0xa8))!==undefined,_0xcf8652=_0x2789b2[_0x44c66d(0xad)](_0x44c66d(0xb8))!==undefined,_0x32436e=_0x2789b2[_0x44c66d(0xad)](_0x44c66d(0xae))!==undefined;if(!_0x16902f&&!_0xcf8652&&!_0x32436e)throw CliErrors[_0x44c66d(0xb4)](_0x44c66d(0xc1));const _0x2ef645=readOptionalRuntimeRoleCode(_0x2789b2),_0x465130=_0x2789b2[_0x44c66d(0xbc)](_0x44c66d(0xb8))[_0x44c66d(0xba)](),_0x5ea7f0=_0x2789b2[_0x44c66d(0xbc)](_0x44c66d(0xae))[_0x44c66d(0xba)]();if(_0xcf8652&&!_0x465130)throw CliErrors[_0x44c66d(0xb4)](_0x44c66d(0xb3));if(_0x32436e&&!_0x5ea7f0)throw CliErrors[_0x44c66d(0xb4)](_0x44c66d(0xc0),_0x44c66d(0xbe));return{..._0x2ef645?{'roleCode':_0x2ef645}:{},..._0xcf8652?{'roleName':_0x465130}:{},..._0x32436e?{'remark':_0x5ea7f0}:{}};}function a56_0x2836(_0x955849,_0x47a293){_0x955849=_0x955849-0xa3;const _0x3eeda3=a56_0x3eed();let _0x283644=_0x3eeda3[_0x955849];return _0x283644;}async function prepare(_0xef0dc2){const _0x4f4231=a56_0x2836,_0x2eedd3=await getRuntimeRoleById(_0xef0dc2[_0x4f4231(0xb5)],_0xef0dc2['num']('id'));return assertCustomRuntimeRole(_0x2eedd3,_0x4f4231(0xaa)),{'role':_0x2eedd3,'body':{'id':_0x2eedd3['id'],'appCode':_0xef0dc2['appCode'],...updateFields(_0xef0dc2)}};}export const roleUpdate={'service':'role','command':a56_0x4d968c(0xaa),'description':a56_0x4d968c(0xbd),'risk':'high-risk-write','confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a56_0x4d968c(0xb8),'type':a56_0x4d968c(0xb0),'description':a56_0x4d968c(0xa7)},{'name':a56_0x4d968c(0xae),'type':a56_0x4d968c(0xb0),'description':a56_0x4d968c(0xb1)}],async 'validate'(_0x97c9aa){updateFields(_0x97c9aa);},async 'dryRun'(_0x3f20ab){const _0x22204c=a56_0x4d968c,{body:_0xadd776}=await prepare(_0x3f20ab);return dryRun(_0x22204c(0xb2),_0x22204c(0xab))[_0x22204c(0xa6)](_0xadd776)['description'](_0x22204c(0xb7))[_0x22204c(0xa5)]();},async 'execute'(_0x5bd9bc){const _0x37cbd9=a56_0x4d968c,{role:_0x420230,body:_0x2787ea}=await prepare(_0x5bd9bc),_0x414064=await updateRuntimeAppRole(_0x2787ea);return{'ok':!![],'data':runtimeRoleWriteResult(_0x37cbd9(0xaa),{'roleId':_0x420230['id']},projectRuntimeRole(_0x420230),projectRuntimeRole(_0x414064),{'method':'POST','path':'/client/permit/role/update'})};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a57_0x1a4791=a57_0x5627;function a57_0x14ef(){const _0x14c3f6=['7PNSMbM','32VtnYFO','869678KpLaDq','9164UVFkeU','description','high-risk-write','1hRnckM','warnings','after','build','userId','user-add','27137SMggVD','1521114PaYxdb','/client/permit/user-role/update-user-list','820503gsBqiN','3522790RsWNYS','shouldWrite','845QDWOqV','role','1572lHyPXN','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','roleList','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','appCode','before','1434303fuFFnA'];a57_0x14ef=function(){return _0x14c3f6;};return a57_0x14ef();}function a57_0x5627(_0x37d700,_0xb625a5){_0x37d700=_0x37d700-0x1a4;const _0x14ef3f=a57_0x14ef();let _0x5627db=_0x14ef3f[_0x37d700];return _0x5627db;}(function(_0x4e219f,_0x3aa165){const _0x4edd15=a57_0x5627,_0x153e21=_0x4e219f();while(!![]){try{const _0x55ba8a=-parseInt(_0x4edd15(0x1b8))/0x1*(-parseInt(_0x4edd15(0x1b4))/0x2)+-parseInt(_0x4edd15(0x1b1))/0x3+parseInt(_0x4edd15(0x1b5))/0x4*(parseInt(_0x4edd15(0x1a9))/0x5)+parseInt(_0x4edd15(0x1a4))/0x6*(parseInt(_0x4edd15(0x1b2))/0x7)+-parseInt(_0x4edd15(0x1b3))/0x8*(parseInt(_0x4edd15(0x1a6))/0x9)+parseInt(_0x4edd15(0x1a7))/0xa+-parseInt(_0x4edd15(0x1be))/0xb*(parseInt(_0x4edd15(0x1ab))/0xc);if(_0x55ba8a===_0x3aa165)break;else _0x153e21['push'](_0x153e21['shift']());}catch(_0x277273){_0x153e21['push'](_0x153e21['shift']());}}}(a57_0x14ef,0x3feee));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':a57_0x1a4791(0x1aa),'command':a57_0x1a4791(0x1bd),'description':a57_0x1a4791(0x1ae),'risk':a57_0x1a4791(0x1b7),'confirmationDescription':a57_0x1a4791(0x1ac),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xf6a049){const _0x399ebe=a57_0x1a4791,_0x323f60=await prepareRuntimeMemberMutation(_0xf6a049,'user-add');return dryRun('POST',_0x399ebe(0x1a5))['body']({'appCode':_0xf6a049[_0x399ebe(0x1af)],'roleList':_0x323f60[_0x399ebe(0x1ad)]})[_0x399ebe(0x1b6)](_0x323f60['shouldWrite']?'Preview:\x20add\x20runtime\x20role\x20member':_0x323f60['warnings'][0x0])[_0x399ebe(0x1bb)]();},async 'execute'(_0x26514d){const _0x45d106=a57_0x1a4791,_0x5de626=await prepareRuntimeMemberMutation(_0x26514d,_0x45d106(0x1bd));return _0x5de626[_0x45d106(0x1a8)]&&await updateRuntimeRoleUsers(_0x26514d['appCode'],_0x5de626[_0x45d106(0x1ad)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x5de626['role']['id'],'userId':_0x5de626[_0x45d106(0x1bc)]},_0x5de626[_0x45d106(0x1b0)],_0x5de626[_0x45d106(0x1ba)],{'method':'POST','path':_0x45d106(0x1a5)},_0x5de626[_0x45d106(0x1b9)])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a58_0x52b0(_0x69f539,_0x1a3e6f){_0x69f539=_0x69f539-0x84;const _0xe604da=a58_0xe604();let _0x52b08e=_0xe604da[_0x69f539];return _0x52b08e;}const a58_0x7ed71b=a58_0x52b0;function a58_0xe604(){const _0x570c21=['POST','6rMBzta','1234247AEqixt','/client/permit/user-role/update-user-list','role','9nWsMvl','build','appCode','3629400BLunBV','before','3TdkOlz','1093568Aulknw','1131128PYLalk','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','warnings','high-risk-write','after','369004oLHfWc','userId','644870PMhvpk','146994KMxJWM','user-remove','roleList'];a58_0xe604=function(){return _0x570c21;};return a58_0xe604();}(function(_0x137cfb,_0x9384e5){const _0xf87222=a58_0x52b0,_0x4a00e1=_0x137cfb();while(!![]){try{const _0x2660cd=parseInt(_0xf87222(0x96))/0x1+-parseInt(_0xf87222(0x99))/0x2+parseInt(_0xf87222(0x8e))/0x3*(-parseInt(_0xf87222(0x8f))/0x4)+parseInt(_0xf87222(0x98))/0x5+-parseInt(_0xf87222(0x85))/0x6*(parseInt(_0xf87222(0x86))/0x7)+-parseInt(_0xf87222(0x90))/0x8+-parseInt(_0xf87222(0x89))/0x9*(-parseInt(_0xf87222(0x8c))/0xa);if(_0x2660cd===_0x9384e5)break;else _0x4a00e1['push'](_0x4a00e1['shift']());}catch(_0x4ff58e){_0x4a00e1['push'](_0x4a00e1['shift']());}}}(a58_0xe604,0x2fedd));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a58_0x7ed71b(0x88),'command':a58_0x7ed71b(0x9a),'description':a58_0x7ed71b(0x92),'risk':a58_0x7ed71b(0x94),'confirmationDescription':a58_0x7ed71b(0x91),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x1d76f8){const _0x47bceb=a58_0x7ed71b,_0x33e9b9=await prepareRuntimeMemberMutation(_0x1d76f8,_0x47bceb(0x9a));return dryRun('POST','/client/permit/user-role/update-user-list')['body']({'appCode':_0x1d76f8[_0x47bceb(0x8b)],'roleList':_0x33e9b9['roleList']})['description'](_0x33e9b9['shouldWrite']?'Preview:\x20remove\x20runtime\x20role\x20member':_0x33e9b9[_0x47bceb(0x93)][0x0])[_0x47bceb(0x8a)]();},async 'execute'(_0x341d39){const _0x1d64e2=a58_0x7ed71b,_0x2d7907=await prepareRuntimeMemberMutation(_0x341d39,_0x1d64e2(0x9a));return _0x2d7907['shouldWrite']&&await updateRuntimeRoleUsers(_0x341d39[_0x1d64e2(0x8b)],_0x2d7907[_0x1d64e2(0x9b)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x1d64e2(0x9a),{'roleId':_0x2d7907['role']['id'],'userId':_0x2d7907[_0x1d64e2(0x97)]},_0x2d7907[_0x1d64e2(0x8d)],_0x2d7907[_0x1d64e2(0x95)],{'method':_0x1d64e2(0x84),'path':_0x1d64e2(0x87)},_0x2d7907['warnings'])};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a58_0x3ac958=a58_0x565f;(function(_0x43e758,_0x488e28){const _0x42410f=a58_0x565f,_0x4a567c=_0x43e758();while(!![]){try{const _0xfd4f9d=-parseInt(_0x42410f(0x1be))/0x1+parseInt(_0x42410f(0x1d0))/0x2*(-parseInt(_0x42410f(0x1ce))/0x3)+parseInt(_0x42410f(0x1b9))/0x4*(-parseInt(_0x42410f(0x19c))/0x5)+-parseInt(_0x42410f(0x1b8))/0x6*(-parseInt(_0x42410f(0x1ae))/0x7)+parseInt(_0x42410f(0x1d3))/0x8*(-parseInt(_0x42410f(0x1da))/0x9)+-parseInt(_0x42410f(0x1ca))/0xa*(parseInt(_0x42410f(0x1d6))/0xb)+parseInt(_0x42410f(0x1a2))/0xc*(parseInt(_0x42410f(0x1b6))/0xd);if(_0xfd4f9d===_0x488e28)break;else _0x4a567c['push'](_0x4a567c['shift']());}catch(_0xcec049){_0x4a567c['push'](_0x4a567c['shift']());}}}(a58_0x10bf,0x80e24));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_0x3ac958(0x1c0),'type':a58_0x3ac958(0x191),'required':!![],'enum':[a58_0x3ac958(0x1bf),a58_0x3ac958(0x18e)],'description':a58_0x3ac958(0x19b)},CRON_FLAG={'name':a58_0x3ac958(0x1d7),'type':a58_0x3ac958(0x191),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x3ac958(0x198),'type':a58_0x3ac958(0x191),'description':a58_0x3ac958(0x19f)},TITLE_FLAG={'name':'title','type':a58_0x3ac958(0x191),'required':!![],'description':a58_0x3ac958(0x1c8)},PROMPT_FLAG={'name':a58_0x3ac958(0x192),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a58_0x3ac958(0x1bd),'type':a58_0x3ac958(0x191),'enum':[a58_0x3ac958(0x19d),a58_0x3ac958(0x1b4),a58_0x3ac958(0x1c9)],'default':'deepseek-v4-flash-0731','description':a58_0x3ac958(0x1ba)},SCHEDULE_ID_FLAG={'name':a58_0x3ac958(0x1c2),'type':a58_0x3ac958(0x191),'required':!![],'description':a58_0x3ac958(0x1d2),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x3ac958(0x199)}},LIMIT_FLAG={'name':a58_0x3ac958(0x19a),'type':a58_0x3ac958(0x1c4),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x3ac958(0x1d5),'type':a58_0x3ac958(0x191),'description':a58_0x3ac958(0x195)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0xa04429){const _0x491d0a=a58_0x3ac958,_0x45b8b6=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x1c0)),_0x8f26af=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x18d))[_0x491d0a(0x18f)](),_0x4fdc2c=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x192))['trim'](),_0x569e9b=_0xa04429[_0x491d0a(0x1ab)]('model'),_0x22c215=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x1d7)),_0x35e977=_0xa04429['str']('scheduled-at');if(!_0x8f26af)throw CliErrors[_0x491d0a(0x1a9)](_0x491d0a(0x19e));if(!_0x4fdc2c)throw CliErrors['validation'](_0x491d0a(0x1a0));if(_0x45b8b6==='CRON'){if(!_0x22c215||_0x35e977)throw CliErrors['validation'](_0x491d0a(0x190));return{'kind':_0x45b8b6,'timezone':_0x491d0a(0x1b0),'cron':_0x22c215,'title':_0x8f26af,'prompt':_0x4fdc2c,'model':_0x569e9b};}if(_0x45b8b6==='ONCE'){if(!_0x35e977||_0x22c215)throw CliErrors[_0x491d0a(0x1a9)](_0x491d0a(0x194));return{'kind':_0x45b8b6,'timezone':_0x491d0a(0x1b0),'scheduledAt':_0x35e977,'title':_0x8f26af,'prompt':_0x4fdc2c,'model':_0x569e9b};}throw CliErrors[_0x491d0a(0x1a9)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function a58_0x565f(_0x561ecf,_0x5bb08c){_0x561ecf=_0x561ecf-0x18b;const _0x10bf4a=a58_0x10bf();let _0x565fae=_0x10bf4a[_0x561ecf];return _0x565fae;}function scheduleCollectionPath(_0x5b2921){const _0x4f3ed1=a58_0x3ac958;return _0x4f3ed1(0x1a8)+encodeURIComponent(_0x5b2921)+_0x4f3ed1(0x1cb);}function a58_0x10bf(){const _0x14de80=['--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','title','ONCE','trim','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','string','prompt','/run','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','list','scheduled-at','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','limit','Schedule\x20kind:\x20CRON\x20or\x20ONCE','240nXLeHn','kimi/k3','--title\x20must\x20not\x20be\x20blank.','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','--prompt\x20must\x20not\x20be\x20blank.','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','701124Fbalqi','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','isSafeInteger','\x20from\x20schedule\x20','\x20schedule\x20','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','/api/harness/apps/','validation','body','str','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Created\x20','147847NdieTc','run','UTC','Schedule\x20input\x20is\x20valid','schedule','build','deepseek-v4-flash-0731','detail','455kRoPyI','description','294cLeDCA','52872pxnAMO','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','read','model','863154hajeyP','CRON','kind','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','schedule-id','Preview:\x20run\x20schedule\x20','number','delete','Deleted\x20schedule\x20','Preview:\x20delete\x20schedule\x20','Schedule\x20title','deepseek-v4-pro-0813','346390QwvjNt','/schedules','validate','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','1266JsPMFH','high-risk-write','4330VCngcw','\x20immediately','Schedule\x20UUID','368EatzgS','POST','cursor','44pakpjl','cron','num','scheduleId','423dfPlAs','appCode'];a58_0x10bf=function(){return _0x14de80;};return a58_0x10bf();}function scheduleItemPath(_0x4d0fff,_0x5ab39f){return scheduleCollectionPath(_0x4d0fff)+'/'+encodeURIComponent(_0x5ab39f);}const scheduleValidate={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1cc),'description':a58_0x3ac958(0x1a7),'risk':a58_0x3ac958(0x1bc),'flags':INPUT_FLAGS,async 'validate'(_0x447801){readScheduleInput(_0x447801);},async 'execute'(_0x2169de){const _0x5899bd=a58_0x3ac958,_0x23a461=readScheduleInput(_0x2169de),_0x238ef9=await validateRuntimeSchedule(_0x2169de[_0x5899bd(0x18b)],_0x23a461);return{'ok':!![],'data':_0x238ef9,'message':_0x5899bd(0x1b1)};}},scheduleCreate={'service':a58_0x3ac958(0x1b2),'command':'create','description':a58_0x3ac958(0x1c1),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':a58_0x3ac958(0x196),'flags':INPUT_FLAGS,async 'validate'(_0x43be78){readScheduleInput(_0x43be78);},async 'execute'(_0xa93362){const _0x32359b=a58_0x3ac958,_0x1b2cd2=readScheduleInput(_0xa93362),_0x10178d=await validateRuntimeSchedule(_0xa93362[_0x32359b(0x18b)],_0x1b2cd2),_0x5bfdff=await createRuntimeSchedule(_0xa93362[_0x32359b(0x18b)],_0x10178d);return{'ok':!![],'data':_0x5bfdff,'message':_0x32359b(0x1ad)+_0x5bfdff[_0x32359b(0x1c0)]+_0x32359b(0x1a6)+_0x5bfdff[_0x32359b(0x1d9)]};},async 'dryRun'(_0x4919e7){const _0x398e95=a58_0x3ac958,_0x1c4053=readScheduleInput(_0x4919e7);return dryRun(_0x398e95(0x1d4),scheduleCollectionPath(_0x4919e7['appCode']))[_0x398e95(0x1aa)](_0x1c4053)[_0x398e95(0x1b7)]('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x398e95(0x1b3)]();}},scheduleList={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x197),'description':a58_0x3ac958(0x1bb),'risk':a58_0x3ac958(0x1bc),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x19e438){const _0x3da083=a58_0x3ac958,_0x3aa66e=_0x19e438[_0x3da083(0x1d8)](_0x3da083(0x19a));if(!Number[_0x3da083(0x1a4)](_0x3aa66e)||_0x3aa66e<0x1||_0x3aa66e>0x64)throw CliErrors[_0x3da083(0x1a9)](_0x3da083(0x1cd));const _0x354ad1=_0x19e438[_0x3da083(0x1ab)](_0x3da083(0x1d5));if(_0x354ad1&&(_0x354ad1['length']>0x400||_0x354ad1[_0x3da083(0x18f)]()!==_0x354ad1))throw CliErrors['validation'](_0x3da083(0x18c));},async 'execute'(_0x45880f){const _0x3a57e6=a58_0x3ac958,_0x3c43d8=_0x45880f[_0x3a57e6(0x1ab)](_0x3a57e6(0x1d5)),_0x2bc553=await listRuntimeSchedules(_0x45880f[_0x3a57e6(0x18b)],{'kind':_0x45880f['str'](_0x3a57e6(0x1c0)),'limit':_0x45880f[_0x3a57e6(0x1d8)](_0x3a57e6(0x19a)),..._0x3c43d8?{'cursor':_0x3c43d8}:{}});return{'ok':!![],'data':_0x2bc553};}},scheduleDetail={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1b5),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x3ac958(0x1bc),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x32657c){const _0x3d2f76=a58_0x3ac958,_0xcaaf26=await getRuntimeSchedule(_0x32657c[_0x3d2f76(0x18b)],_0x32657c[_0x3d2f76(0x1ab)]('schedule-id'));return{'ok':!![],'data':_0xcaaf26};}},scheduleRun={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1af),'description':a58_0x3ac958(0x1a1),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':a58_0x3ac958(0x1ac),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x20430b){const _0x9da15c=a58_0x3ac958,_0x23e20a=_0x20430b[_0x9da15c(0x1ab)](_0x9da15c(0x1c2)),_0x3ccf76=await runRuntimeSchedule(_0x20430b[_0x9da15c(0x18b)],_0x23e20a);return{'ok':!![],'data':_0x3ccf76,'message':'Queued\x20Task\x20'+_0x3ccf76['taskId']+_0x9da15c(0x1a5)+_0x23e20a};},async 'dryRun'(_0x264a80){const _0x9ba161=a58_0x3ac958,_0xaa56e7=_0x264a80[_0x9ba161(0x1ab)](_0x9ba161(0x1c2));return dryRun('POST',scheduleItemPath(_0x264a80[_0x9ba161(0x18b)],_0xaa56e7)+_0x9ba161(0x193))[_0x9ba161(0x1b7)](_0x9ba161(0x1c3)+_0xaa56e7+_0x9ba161(0x1d1))[_0x9ba161(0x1b3)]();}},scheduleDelete={'service':'schedule','command':a58_0x3ac958(0x1c5),'description':a58_0x3ac958(0x1a3),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x257858){const _0x5068bc=a58_0x3ac958,_0xc38156=_0x257858[_0x5068bc(0x1ab)]('schedule-id'),_0xb37f53=await deleteRuntimeSchedule(_0x257858[_0x5068bc(0x18b)],_0xc38156);return{'ok':!![],'data':_0xb37f53,'message':_0x5068bc(0x1c6)+_0xc38156};},async 'dryRun'(_0xf589f5){const _0x14727d=a58_0x3ac958,_0x484e0d=_0xf589f5[_0x14727d(0x1ab)](_0x14727d(0x1c2));return dryRun('DELETE',scheduleItemPath(_0xf589f5[_0x14727d(0x18b)],_0x484e0d))[_0x14727d(0x1b7)](_0x14727d(0x1c7)+_0x484e0d)[_0x14727d(0x1b3)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a59_0x4c0a7e=a59_0x3e5d;(function(_0x386cfb,_0x455730){const _0x277651=a59_0x3e5d,_0x5b81c1=_0x386cfb();while(!![]){try{const _0x3bc51c=parseInt(_0x277651(0x1a7))/0x1*(parseInt(_0x277651(0x19c))/0x2)+parseInt(_0x277651(0x1b3))/0x3*(parseInt(_0x277651(0x1c3))/0x4)+-parseInt(_0x277651(0x1bc))/0x5*(parseInt(_0x277651(0x1ba))/0x6)+parseInt(_0x277651(0x184))/0x7+parseInt(_0x277651(0x190))/0x8*(-parseInt(_0x277651(0x1c5))/0x9)+-parseInt(_0x277651(0x1b9))/0xa+-parseInt(_0x277651(0x189))/0xb*(-parseInt(_0x277651(0x17e))/0xc);if(_0x3bc51c===_0x455730)break;else _0x5b81c1['push'](_0x5b81c1['shift']());}catch(_0x6c2802){_0x5b81c1['push'](_0x5b81c1['shift']());}}}(a59_0xf833,0x28e2e));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';function a59_0x3e5d(_0x7341ab,_0x448d10){_0x7341ab=_0x7341ab-0x176;const _0xf83329=a59_0xf833();let _0x3e5d40=_0xf83329[_0x7341ab];return _0x3e5d40;}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':a59_0x4c0a7e(0x180),'type':a59_0x4c0a7e(0x1a1),'required':!![],'enum':[a59_0x4c0a7e(0x1a3),'ONCE'],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':a59_0x4c0a7e(0x19f),'type':a59_0x4c0a7e(0x1a1),'description':a59_0x4c0a7e(0x18d)},SCHEDULED_AT_FLAG={'name':a59_0x4c0a7e(0x194),'type':a59_0x4c0a7e(0x1a1),'description':a59_0x4c0a7e(0x17c)},TITLE_FLAG={'name':a59_0x4c0a7e(0x18c),'type':a59_0x4c0a7e(0x1a1),'required':!![],'description':a59_0x4c0a7e(0x1c4)},PROMPT_FLAG={'name':a59_0x4c0a7e(0x19b),'type':'string','required':!![],'description':a59_0x4c0a7e(0x1b7)},MODEL_FLAG={'name':'model','type':a59_0x4c0a7e(0x1a1),'enum':[a59_0x4c0a7e(0x178),a59_0x4c0a7e(0x182),a59_0x4c0a7e(0x1a9)],'default':a59_0x4c0a7e(0x182),'description':a59_0x4c0a7e(0x192)},SCHEDULE_ID_FLAG={'name':a59_0x4c0a7e(0x17a),'type':a59_0x4c0a7e(0x1a1),'required':!![],'description':a59_0x4c0a7e(0x1c7),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a59_0x4c0a7e(0x185)}},LIMIT_FLAG={'name':'limit','type':a59_0x4c0a7e(0x1a4),'default':0x14,'description':a59_0x4c0a7e(0x183)},CURSOR_FLAG={'name':'cursor','type':'string','description':a59_0x4c0a7e(0x17d)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x12aadc){const _0x11405f=a59_0x4c0a7e,_0x9dc0a9=_0x12aadc[_0x11405f(0x188)](_0x11405f(0x180)),_0x7d7a96=_0x12aadc[_0x11405f(0x188)]('title')['trim'](),_0x2b4196=_0x12aadc[_0x11405f(0x188)](_0x11405f(0x19b))[_0x11405f(0x191)](),_0x5ce31e=_0x12aadc[_0x11405f(0x188)](_0x11405f(0x195)),_0x217895=_0x12aadc['str'](_0x11405f(0x19f)),_0x1bd710=_0x12aadc[_0x11405f(0x188)](_0x11405f(0x194));if(!_0x7d7a96)throw CliErrors['validation'](_0x11405f(0x1a5));if(!_0x2b4196)throw CliErrors[_0x11405f(0x19e)](_0x11405f(0x1c2));if(_0x9dc0a9===_0x11405f(0x1a3)){if(!_0x217895||_0x1bd710)throw CliErrors['validation'](_0x11405f(0x19d));return{'kind':_0x9dc0a9,'timezone':_0x11405f(0x1be),'cron':_0x217895,'title':_0x7d7a96,'prompt':_0x2b4196,'model':_0x5ce31e};}if(_0x9dc0a9===_0x11405f(0x187)){if(!_0x1bd710||_0x217895)throw CliErrors['validation'](_0x11405f(0x196));return{'kind':_0x9dc0a9,'timezone':_0x11405f(0x1be),'scheduledAt':_0x1bd710,'title':_0x7d7a96,'prompt':_0x2b4196,'model':_0x5ce31e};}throw CliErrors[_0x11405f(0x19e)](_0x11405f(0x17f));}function a59_0xf833(){const _0x3ae835=['--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','\x20immediately','taskId','Preview:\x20run\x20schedule\x20','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','111pcPaIJ','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','Schedule\x20input\x20is\x20valid','run','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','DELETE','2997590JsYrTN','5676ZZAhHQ','POST','300qePfXm','length','UTC','detail','build','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','--prompt\x20must\x20not\x20be\x20blank.','33084WXwuOL','Schedule\x20title','1900251RaISNx','/schedules','Schedule\x20UUID','scheduleId','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','list','cursor','kimi/k3','validate','schedule-id','\x20schedule\x20','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','8160ZLvsuR','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','kind','Preview:\x20create\x20an\x20Agent\x20schedule','deepseek-v4-flash-0731','Page\x20size\x20from\x201\x20to\x20100','1042643sAbnYM','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','delete','ONCE','str','1859vkMVBT','read','/run','title','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Deleted\x20schedule\x20','8RkAgPU','trim','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','scheduled-at','model','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','appCode','/api/harness/apps/','high-risk-write','limit','prompt','330464vFPDnN','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','validation','cron','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','string','Show\x20one\x20schedule\x20by\x20schedule\x20ID','CRON','number','--title\x20must\x20not\x20be\x20blank.','Queued\x20Task\x20','1uGbMRo','schedule','deepseek-v4-pro-0813','description','num','Created\x20','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.'];a59_0xf833=function(){return _0x3ae835;};return a59_0xf833();}function scheduleCollectionPath(_0xa5da92){const _0x19219d=a59_0x4c0a7e;return _0x19219d(0x198)+encodeURIComponent(_0xa5da92)+_0x19219d(0x1c6);}function scheduleItemPath(_0x3a8d10,_0x1c515f){return scheduleCollectionPath(_0x3a8d10)+'/'+encodeURIComponent(_0x1c515f);}const scheduleValidate={'service':'schedule','command':a59_0x4c0a7e(0x179),'description':a59_0x4c0a7e(0x1b2),'risk':a59_0x4c0a7e(0x18a),'flags':INPUT_FLAGS,async 'validate'(_0x25fe37){readScheduleInput(_0x25fe37);},async 'execute'(_0x5cabe5){const _0x25109b=a59_0x4c0a7e,_0x36025d=readScheduleInput(_0x5cabe5),_0x1e75d7=await validateRuntimeSchedule(_0x5cabe5[_0x25109b(0x197)],_0x36025d);return{'ok':!![],'data':_0x1e75d7,'message':_0x25109b(0x1b5)};}},scheduleCreate={'service':a59_0x4c0a7e(0x1a8),'command':'create','description':a59_0x4c0a7e(0x1a0),'risk':'high-risk-write','confirmationDescription':a59_0x4c0a7e(0x18e),'flags':INPUT_FLAGS,async 'validate'(_0x1b14fe){readScheduleInput(_0x1b14fe);},async 'execute'(_0x2df3da){const _0x3a16e2=a59_0x4c0a7e,_0x26c9bd=readScheduleInput(_0x2df3da),_0xeb3774=await validateRuntimeSchedule(_0x2df3da['appCode'],_0x26c9bd),_0x3de0da=await createRuntimeSchedule(_0x2df3da[_0x3a16e2(0x197)],_0xeb3774);return{'ok':!![],'data':_0x3de0da,'message':_0x3a16e2(0x1ac)+_0x3de0da[_0x3a16e2(0x180)]+_0x3a16e2(0x17b)+_0x3de0da[_0x3a16e2(0x1c8)]};},async 'dryRun'(_0xb24efe){const _0x5770a4=a59_0x4c0a7e,_0x361e30=readScheduleInput(_0xb24efe);return dryRun(_0x5770a4(0x1bb),scheduleCollectionPath(_0xb24efe[_0x5770a4(0x197)]))['body'](_0x361e30)[_0x5770a4(0x1aa)](_0x5770a4(0x181))['build']();}},scheduleList={'service':a59_0x4c0a7e(0x1a8),'command':a59_0x4c0a7e(0x176),'description':a59_0x4c0a7e(0x193),'risk':a59_0x4c0a7e(0x18a),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x247dc9){const _0x3e3359=a59_0x4c0a7e,_0x2c25b0=_0x247dc9[_0x3e3359(0x1ab)]('limit');if(!Number['isSafeInteger'](_0x2c25b0)||_0x2c25b0<0x1||_0x2c25b0>0x64)throw CliErrors[_0x3e3359(0x19e)](_0x3e3359(0x1ae));const _0x39fcd0=_0x247dc9[_0x3e3359(0x188)](_0x3e3359(0x177));if(_0x39fcd0&&(_0x39fcd0[_0x3e3359(0x1bd)]>0x400||_0x39fcd0[_0x3e3359(0x191)]()!==_0x39fcd0))throw CliErrors[_0x3e3359(0x19e)](_0x3e3359(0x1c9));},async 'execute'(_0xf0ddf8){const _0x1e5f48=a59_0x4c0a7e,_0x459793=_0xf0ddf8[_0x1e5f48(0x188)](_0x1e5f48(0x177)),_0x37a48b=await listRuntimeSchedules(_0xf0ddf8[_0x1e5f48(0x197)],{'kind':_0xf0ddf8['str']('kind'),'limit':_0xf0ddf8[_0x1e5f48(0x1ab)](_0x1e5f48(0x19a)),..._0x459793?{'cursor':_0x459793}:{}});return{'ok':!![],'data':_0x37a48b};}},scheduleDetail={'service':a59_0x4c0a7e(0x1a8),'command':a59_0x4c0a7e(0x1bf),'description':a59_0x4c0a7e(0x1a2),'risk':a59_0x4c0a7e(0x18a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x4bce05){const _0x21bef8=a59_0x4c0a7e,_0x8a8489=await getRuntimeSchedule(_0x4bce05[_0x21bef8(0x197)],_0x4bce05[_0x21bef8(0x188)]('schedule-id'));return{'ok':!![],'data':_0x8a8489};}},scheduleRun={'service':a59_0x4c0a7e(0x1a8),'command':a59_0x4c0a7e(0x1b6),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a59_0x4c0a7e(0x199),'confirmationDescription':a59_0x4c0a7e(0x1ad),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x160bab){const _0x5e34e8=a59_0x4c0a7e,_0x32f067=_0x160bab['str']('schedule-id'),_0x3789b7=await runRuntimeSchedule(_0x160bab[_0x5e34e8(0x197)],_0x32f067);return{'ok':!![],'data':_0x3789b7,'message':_0x5e34e8(0x1a6)+_0x3789b7[_0x5e34e8(0x1b0)]+'\x20from\x20schedule\x20'+_0x32f067};},async 'dryRun'(_0x51fd68){const _0x3001d1=a59_0x4c0a7e,_0x4965d8=_0x51fd68[_0x3001d1(0x188)]('schedule-id');return dryRun('POST',scheduleItemPath(_0x51fd68[_0x3001d1(0x197)],_0x4965d8)+_0x3001d1(0x18b))[_0x3001d1(0x1aa)](_0x3001d1(0x1b1)+_0x4965d8+_0x3001d1(0x1af))['build']();}},scheduleDelete={'service':a59_0x4c0a7e(0x1a8),'command':a59_0x4c0a7e(0x186),'description':a59_0x4c0a7e(0x1b4),'risk':'high-risk-write','confirmationDescription':a59_0x4c0a7e(0x1c1),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x19d106){const _0x218491=a59_0x4c0a7e,_0xe11724=_0x19d106[_0x218491(0x188)]('schedule-id'),_0x29a25f=await deleteRuntimeSchedule(_0x19d106[_0x218491(0x197)],_0xe11724);return{'ok':!![],'data':_0x29a25f,'message':_0x218491(0x18f)+_0xe11724};},async 'dryRun'(_0x5ed074){const _0x4dc6bd=a59_0x4c0a7e,_0x3bce3b=_0x5ed074[_0x4dc6bd(0x188)](_0x4dc6bd(0x17a));return dryRun(_0x4dc6bd(0x1b8),scheduleItemPath(_0x5ed074[_0x4dc6bd(0x197)],_0x3bce3b))[_0x4dc6bd(0x1aa)]('Preview:\x20delete\x20schedule\x20'+_0x3bce3b)[_0x4dc6bd(0x1c0)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a60_0x10b587=a60_0x5f39;(function(_0xcf4832,_0x5dd724){const _0x108179=a60_0x5f39,_0x57ed4b=_0xcf4832();while(!![]){try{const _0x5ced38=-parseInt(_0x108179(0x168))/0x1+-parseInt(_0x108179(0x15f))/0x2*(-parseInt(_0x108179(0x15a))/0x3)+-parseInt(_0x108179(0x164))/0x4+-parseInt(_0x108179(0x162))/0x5*(-parseInt(_0x108179(0x15c))/0x6)+parseInt(_0x108179(0x166))/0x7*(parseInt(_0x108179(0x165))/0x8)+-parseInt(_0x108179(0x15e))/0x9*(-parseInt(_0x108179(0x167))/0xa)+-parseInt(_0x108179(0x160))/0xb*(parseInt(_0x108179(0x161))/0xc);if(_0x5ced38===_0x5dd724)break;else _0x57ed4b['push'](_0x57ed4b['shift']());}catch(_0x24478a){_0x57ed4b['push'](_0x57ed4b['shift']());}}}(a60_0xf8fd,0x51987));function a60_0x5f39(_0xe38ba,_0x57c87b){_0xe38ba=_0xe38ba-0x15a;const _0xf8fdc4=a60_0xf8fd();let _0x5f3932=_0xf8fdc4[_0xe38ba];return _0x5f3932;}function a60_0xf8fd(){const _0xe78e9=['schema','2358OsNSTK','read','1656qQfGPl','6lEsRAe','11GBnRKH','12684612lFtSYM','7335axmpPM','Export\x20machine-readable\x20command\x20schema\x20(JSON)','773004QJeHCK','8ivRvSH','3613414SnHHok','28330oTklHf','549907kyFnDh','export','520419VdAVSa'];a60_0xf8fd=function(){return _0xe78e9;};return a60_0xf8fd();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x405a79){const _0x40f651=await buildSchemaPayload();return{'ok':!![],'data':_0x40f651};}export const schemaDefinition={'service':a60_0x10b587(0x15b),'command':a60_0x10b587(0x169),'description':a60_0x10b587(0x163),'risk':a60_0x10b587(0x15d),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x23113e,_0x566df8){const _0x118dc3=a60_0x4439,_0x5e46a7=_0x23113e();while(!![]){try{const _0x3cd29b=parseInt(_0x118dc3(0x136))/0x1*(parseInt(_0x118dc3(0x148))/0x2)+-parseInt(_0x118dc3(0x13e))/0x3+-parseInt(_0x118dc3(0x172))/0x4*(parseInt(_0x118dc3(0x109))/0x5)+parseInt(_0x118dc3(0x15f))/0x6*(-parseInt(_0x118dc3(0x127))/0x7)+-parseInt(_0x118dc3(0x16f))/0x8+-parseInt(_0x118dc3(0x121))/0x9+parseInt(_0x118dc3(0x107))/0xa*(parseInt(_0x118dc3(0x105))/0xb);if(_0x3cd29b===_0x566df8)break;else _0x5e46a7['push'](_0x5e46a7['shift']());}catch(_0x265f7e){_0x5e46a7['push'](_0x5e46a7['shift']());}}}(a60_0x4567,0x72517));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(_0x5d91bb,_0xa14498){const _0x34c97e=a60_0x4439,_0x4dcbe1=listLocalServiceTrees();let _0xe4fd91;for(const _0xa95dca of _0x4dcbe1){const _0x546dfe=matchServiceTreeCommand(_0xa95dca,_0x5d91bb);if(!_0x546dfe)continue;(!_0xe4fd91||_0x546dfe[_0x34c97e(0x152)][_0x34c97e(0x156)][_0x34c97e(0x165)]>_0xe4fd91[_0x34c97e(0x152)]['fullPath'][_0x34c97e(0x165)])&&(_0xe4fd91={'tree':_0xa95dca,'command':_0x546dfe['command'],'remainingArgs':_0x546dfe[_0x34c97e(0x14d)]});}if(!_0xe4fd91)return undefined;const _0x33aa1c={..._0xa14498};return applyAppBinding(_0xe4fd91[_0x34c97e(0x11f)],_0xe4fd91[_0x34c97e(0x152)],_0x33aa1c),{'definition':buildDynamicCommandDefinition(_0xe4fd91[_0x34c97e(0x11f)],_0xe4fd91[_0x34c97e(0x152)]),'args':_0xe4fd91['remainingArgs'],'flags':_0x33aa1c,'tree':_0xe4fd91[_0x34c97e(0x11f)],'command':_0xe4fd91[_0x34c97e(0x152)]};}export function generateDynamicServiceHelp(_0x23d6c5){const _0x2dcd0b=a60_0x4439,_0xbd56a9=listLocalServiceTrees()['find'](_0x1f46c2=>_0x1f46c2[_0x2dcd0b(0x159)][_0x2dcd0b(0x162)]===_0x23d6c5);if(!_0xbd56a9)return undefined;const _0x6d0930=[CLI_BIN_NAME+'\x20'+_0x23d6c5+'\x20<command>\x20[flags]','',_0xbd56a9[_0x2dcd0b(0x159)]['name']||_0x23d6c5,_0xbd56a9[_0x2dcd0b(0x159)][_0x2dcd0b(0x168)]?'\x20\x20'+_0xbd56a9[_0x2dcd0b(0x159)][_0x2dcd0b(0x168)]:'','',_0x2dcd0b(0x12e),..._0xbd56a9[_0x2dcd0b(0x13f)][_0x2dcd0b(0x14e)](_0x574c24=>{const _0x20d61d=_0x2dcd0b,_0x1bae59=_0x574c24[_0x20d61d(0x156)]['slice'](0x1)[_0x20d61d(0x16a)]('\x20'),_0x44f4c5=_0x574c24[_0x20d61d(0x119)]==='read'?'':'\x20['+_0x574c24[_0x20d61d(0x119)]+']';return'\x20\x20'+_0x1bae59[_0x20d61d(0x132)](0x18)+'\x20'+(_0x574c24['description']||'')+_0x44f4c5;}),'',_0x2dcd0b(0x173)+CLI_BIN_NAME+_0x2dcd0b(0x11c)+_0x23d6c5+_0x2dcd0b(0x13a)][_0x2dcd0b(0x104)](Boolean);return _0x6d0930[_0x2dcd0b(0x16a)]('\x0a');}export function listDynamicServiceEntries(){const _0x3e6401=a60_0x4439;return listLocalServices()[_0x3e6401(0x14e)](_0x160bed=>{const _0x298040=_0x3e6401,_0xf2225d=_0x160bed[_0x298040(0x10e)];return{'service':_0xf2225d[_0x298040(0x159)]['code'],'label':_0xf2225d[_0x298040(0x159)]['name']||_0xf2225d['service']['code'],'commands':_0xf2225d[_0x298040(0x13f)]['map'](_0x20b617=>({'command':dynamicCommandName(_0x20b617),'description':_0x20b617[_0x298040(0x168)]||'Run\x20service\x20command\x20'+_0x20b617[_0x298040(0x139)],'tag':riskTag(_0x20b617['risk'])}))};});}export function getDynamicServiceEntry(_0x29809a){const _0x44eb7c=a60_0x4439;return listDynamicServiceEntries()[_0x44eb7c(0x142)](_0x15fc73=>_0x15fc73['service']===_0x29809a);}export function listDynamicServiceDefinitions(_0x21891a){const _0x45a475=a60_0x4439;return listLocalServiceTrees()[_0x45a475(0x104)](_0x4bd95e=>!_0x21891a||_0x4bd95e[_0x45a475(0x159)]['code']===_0x21891a)[_0x45a475(0x10c)](_0x6a735f=>_0x6a735f['commands']['map'](_0x2373f3=>buildDynamicCommandDefinition(_0x6a735f,_0x2373f3)));}export function getDynamicServiceDefinitions(_0x5c9699){const _0x7775d6=a60_0x4439,_0x2f1802=listDynamicServiceDefinitions(_0x5c9699);return _0x2f1802[_0x7775d6(0x165)]>0x0?_0x2f1802:undefined;}export function findDynamicServiceDefinition(_0x4edbfe,_0x3726f9){return listDynamicServiceDefinitions(_0x4edbfe)['find'](_0x4e3eee=>_0x4e3eee['command']===_0x3726f9);}export function buildDynamicCommandDefinition(_0x4b5d47,_0x36ba9e){const _0x10daf1=a60_0x4439;return{'service':_0x4b5d47[_0x10daf1(0x159)][_0x10daf1(0x162)],'command':dynamicCommandName(_0x36ba9e),'description':_0x36ba9e[_0x10daf1(0x168)]||_0x10daf1(0x171)+_0x36ba9e[_0x10daf1(0x139)],'risk':_0x36ba9e[_0x10daf1(0x119)],..._0x36ba9e[_0x10daf1(0x119)]===_0x10daf1(0x157)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x36ba9e)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x36ba9e['args'][_0x10daf1(0x14e)](_0x42b10d=>({'name':_0x42b10d[_0x10daf1(0x11d)],'description':_0x42b10d[_0x10daf1(0x168)]||_0x42b10d['name'],'required':_0x42b10d[_0x10daf1(0x116)]})),'flags':_0x36ba9e[_0x10daf1(0x118)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x36ba9e),async 'dryRun'(_0x517c97){const _0x334a85=_0x10daf1,_0x747a15=await compilePlan(_0x36ba9e,_0x517c97);return{'method':_0x334a85(0x138),'url':_0x36ba9e[_0x334a85(0x139)],'body':{'target':targetPreview(_0x747a15),'params':_0x747a15['params']},'description':_0x334a85(0x123)+_0x36ba9e['cliPath']};},async 'execute'(_0x51ab01){const _0x1094ae=_0x10daf1,_0x1d84f8=await compilePlan(_0x36ba9e,_0x51ab01),_0x3d0264=Date[_0x1094ae(0x163)](),_0x896172=await executePlan(_0x1d84f8,_0x36ba9e,_0x51ab01),_0x3f9d23=Date[_0x1094ae(0x163)]()-_0x3d0264;return{'ok':!![],'data':{'service':_0x4b5d47[_0x1094ae(0x159)],'command':_0x36ba9e['cliPath'],'target':targetPreview(_0x1d84f8),'result':_0x896172,'elapsed':_0x3f9d23},'message':_0x1094ae(0x160)+_0x36ba9e[_0x1094ae(0x139)]+_0x1094ae(0x145)+_0x3f9d23+'ms'};}};}function buildDynamicConfirmationDescription(_0x5d8244){const _0x5c8700=a60_0x4439,_0x4d682f=_0x5d8244[_0x5c8700(0x168)]||_0x5d8244[_0x5c8700(0x139)],_0x3c38c8=_0x5d8244[_0x5c8700(0x119)]===_0x5c8700(0x155)?_0x5c8700(0x13b):_0x5c8700(0x12f);return _0x5c8700(0x158)+_0x4d682f+'\x22.\x20'+_0x3c38c8;}function dynamicCommandName(_0x57de6f){const _0x333d80=a60_0x4439;return _0x57de6f[_0x333d80(0x156)][_0x333d80(0x13c)](0x1)[_0x333d80(0x16a)]('\x20');}function riskTag(_0x42dd2c){const _0x4bdc16=a60_0x4439;return _0x42dd2c==='read'?'':_0x4bdc16(0x164)+_0x42dd2c+']';}function flagToCommandFlag(_0x20088d){const _0x157476=a60_0x4439;return{'name':_0x20088d[_0x157476(0x11a)],'type':_0x20088d[_0x157476(0x114)]===_0x157476(0x147)?_0x157476(0x133):_0x20088d[_0x157476(0x114)],'description':_0x20088d[_0x157476(0x168)]||_0x20088d[_0x157476(0x11d)],'required':_0x20088d['required'],'default':isPrimitiveFlagDefault(_0x20088d[_0x157476(0x170)])?_0x20088d[_0x157476(0x170)]:undefined,'enum':_0x20088d[_0x157476(0x14c)]};}async function compilePlan(_0x1113e7,_0x1388bc){const _0x5be40b=a60_0x4439;return compileServiceTreeCommand(_0x1113e7,{'flags':_0x1388bc[_0x5be40b(0x15c)],'args':_0x1388bc[_0x5be40b(0x169)],'context':await buildServiceContext(_0x1113e7,_0x1388bc)});}async function buildServiceContext(_0x24539d,_0x440e3f){const _0x40f962=a60_0x4439,_0x17bd08={'appCode':_0x440e3f['appCode'],'env':_0x440e3f[_0x40f962(0x14a)],'envName':_0x440e3f[_0x40f962(0x14a)]};if(!usesRuntimeContext(_0x24539d))return _0x17bd08;const _0x13bd06=await getLoginUserInfo(),_0x2094f6=pickFirst(_0x13bd06[_0x40f962(0x108)],_0x13bd06['id']);return{..._0x17bd08,'user':_0x13bd06,'userId':_0x2094f6,'id':_0x13bd06['id'],'username':pickFirst(_0x13bd06[_0x40f962(0x134)],_0x13bd06[_0x40f962(0x15d)],_0x13bd06['loginName']),'userName':_0x13bd06[_0x40f962(0x15d)],'nickname':pickFirst(_0x13bd06[_0x40f962(0x130)],_0x13bd06[_0x40f962(0x10d)]),'nickName':_0x13bd06[_0x40f962(0x10d)],'tenantCode':_0x13bd06[_0x40f962(0x12b)],'employeeId':_0x13bd06[_0x40f962(0x141)]};}function usesRuntimeContext(_0x48a56f){const _0x32fcec=a60_0x4439;return _0x48a56f[_0x32fcec(0x131)][_0x32fcec(0x11b)](_0x499e10=>typeof _0x499e10[_0x32fcec(0x166)]===_0x32fcec(0x133)&&(_0x499e10['source'][_0x32fcec(0x13d)]('context.')||_0x499e10[_0x32fcec(0x166)][_0x32fcec(0x13d)](_0x32fcec(0x115))));}function pickFirst(..._0x3d7944){const _0x28be49=a60_0x4439;return _0x3d7944[_0x28be49(0x142)](_0x567d29=>_0x567d29!==undefined&&_0x567d29!==null);}async function executePlan(_0x1bdfd0,_0x4b6793,_0x426d81){const _0x5a7711=a60_0x4439;if(_0x1bdfd0[_0x5a7711(0x15b)]===_0x5a7711(0x151)){const _0x39846c=await resolveDatasetCode(_0x1bdfd0,_0x4b6793,_0x426d81);return executeData(_0x39846c,_0x1bdfd0[_0x5a7711(0x152)],_0x1bdfd0[_0x5a7711(0x16e)]);}if(_0x1bdfd0['kind']===_0x5a7711(0x146)){if(!_0x1bdfd0[_0x5a7711(0x111)])throw CliErrors['validation'](_0x5a7711(0x160)+_0x4b6793['cliPath']+_0x5a7711(0x15e));return executeSdkSql(_0x1bdfd0[_0x5a7711(0x111)],normalizeScalarParams(_0x1bdfd0[_0x5a7711(0x16e)]));}if(_0x1bdfd0[_0x5a7711(0x15b)]==='bff'){const _0x184af8=_0x1bdfd0['scriptName']||_0x1bdfd0[_0x5a7711(0x10b)]||(_0x1bdfd0[_0x5a7711(0x149)]==null?'':String(_0x1bdfd0['bffId']));if(!_0x184af8)throw CliErrors[_0x5a7711(0x137)](_0x5a7711(0x160)+_0x4b6793['cliPath']+_0x5a7711(0x14b));return executeSdkBff(_0x184af8,_0x1bdfd0['params']);}throw CliErrors[_0x5a7711(0x137)](_0x5a7711(0x167)+_0x1bdfd0[_0x5a7711(0x15b)]);}async function resolveDatasetCode(_0x1b44fb,_0x28e437,_0x4e374e){const _0x2a912e=a60_0x4439;if(_0x1b44fb[_0x2a912e(0x120)])return _0x1b44fb[_0x2a912e(0x120)];if(!_0x1b44fb[_0x2a912e(0x135)])throw CliErrors['validation'](_0x2a912e(0x160)+_0x28e437[_0x2a912e(0x139)]+_0x2a912e(0x125));const _0x171632=await listDatasets(_0x4e374e[_0x2a912e(0x106)]),_0x41b10d=_0x171632[_0x2a912e(0x142)](_0x4d042a=>_0x4d042a[_0x2a912e(0x16c)]?.[_0x2a912e(0x144)]===_0x1b44fb[_0x2a912e(0x135)]);if(!_0x41b10d?.['code'])throw CliErrors[_0x2a912e(0x137)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x1b44fb[_0x2a912e(0x135)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x4e374e[_0x2a912e(0x106)]+'.',_0x2a912e(0x12c));return _0x41b10d[_0x2a912e(0x162)];}function applyAppBinding(_0x4db296,_0x3f54f5,_0x118670){const _0x102c8a=a60_0x4439,_0x448c2f=_0x3f54f5[_0x102c8a(0x128)]['appRef'];if(!_0x448c2f)return;const _0x269067=_0x4db296[_0x102c8a(0x14f)][_0x448c2f];if(!_0x269067)throw CliErrors[_0x102c8a(0x137)](_0x102c8a(0x10f)+_0x448c2f+_0x102c8a(0x112)+_0x3f54f5[_0x102c8a(0x139)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x5ebb84=_0x269067[_0x102c8a(0x16b)]||_0x269067[_0x102c8a(0x106)];_0x5ebb84&&!hasText(_0x118670[_0x102c8a(0x16b)])&&(_0x118670[_0x102c8a(0x16b)]=_0x5ebb84),_0x269067[_0x102c8a(0x113)]&&!hasText(_0x118670[_0x102c8a(0x113)])&&!hasText(_0x118670[_0x102c8a(0x16b)])&&(_0x118670[_0x102c8a(0x113)]=_0x269067[_0x102c8a(0x113)]),_0x269067['env']&&!hasText(_0x118670['env'])&&(_0x118670[_0x102c8a(0x124)]=_0x269067['env']);}function renderDynamicCommandHelp(_0x5577b5){const _0x54a3e1=a60_0x4439,_0x3f4fe5=[_0x54a3e1(0x143),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x15b)],_0x54a3e1(0x122)+_0x5577b5['target']['command']];if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x120)])_0x3f4fe5['push'](_0x54a3e1(0x154)+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x120)]);if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x135)])_0x3f4fe5[_0x54a3e1(0x10a)](_0x54a3e1(0x12d)+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x135)]);if(_0x5577b5[_0x54a3e1(0x128)]['sqlCode'])_0x3f4fe5['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x111)]);if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x110)])_0x3f4fe5[_0x54a3e1(0x10a)](_0x54a3e1(0x15a)+_0x5577b5['target']['scriptName']);if(_0x5577b5[_0x54a3e1(0x131)]['length']>0x0){_0x3f4fe5[_0x54a3e1(0x10a)]('',_0x54a3e1(0x140));for(const _0xa9a9d5 of _0x5577b5[_0x54a3e1(0x131)]){_0x3f4fe5['push'](_0x54a3e1(0x117)+(_0xa9a9d5[_0x54a3e1(0x166)]||_0x54a3e1(0x161))+_0x54a3e1(0x129)+_0xa9a9d5['target']+(_0xa9a9d5[_0x54a3e1(0x16d)]?'.'+_0xa9a9d5[_0x54a3e1(0x16d)]:''));}}return _0x3f4fe5[_0x54a3e1(0x16a)]('\x0a');}function targetPreview(_0x373a54){const _0x1f2495=a60_0x4439;return{'kind':_0x373a54['kind'],'command':_0x373a54[_0x1f2495(0x152)],'appRef':_0x373a54[_0x1f2495(0x11e)],'datasetCode':_0x373a54[_0x1f2495(0x120)],'datatable':_0x373a54['datatable'],'sqlCode':_0x373a54[_0x1f2495(0x111)],'bffCode':_0x373a54[_0x1f2495(0x10b)],'bffId':_0x373a54[_0x1f2495(0x149)],'functionName':_0x373a54[_0x1f2495(0x110)]};}function normalizeScalarParams(_0x2d205c){const _0x297444=a60_0x4439;return Object[_0x297444(0x150)](Object['entries'](_0x2d205c)[_0x297444(0x104)](([,_0x12252c])=>typeof _0x12252c===_0x297444(0x133)||typeof _0x12252c===_0x297444(0x12a)));}function hasText(_0x5cdde5){const _0x5482d6=a60_0x4439;return typeof _0x5cdde5==='string'&&_0x5cdde5[_0x5482d6(0x153)]()[_0x5482d6(0x165)]>0x0;}function a60_0x4567(){const _0x4edc0b=['cliPath','`\x20to\x20inspect\x20the\x20manifest.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','slice','startsWith','1707918oQsAnP','commands','\x20\x20MAP\x20TO','employeeId','find','\x20\x20SERVICE\x20TREE\x20TARGET','tableName','\x20completed\x20in\x20','sql','json','761638cVyCgX','bffId','envName','\x20requires\x20target.functionName.','enum','remainingArgs','map','appBindings','fromEntries','data','command','trim','\x20\x20\x20\x20datasetCode:\x20','high-risk-write','fullPath','read','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','service','\x20\x20\x20\x20functionName:\x20','kind','rawFlags','userName','\x20requires\x20target.sqlCode.','1313430sCrRYO','Service\x20command\x20','const','code','now','\x20\x20[','length','source','Unsupported\x20service\x20target\x20kind:\x20','description','args','join','appcode','dbtableConfig','operator','params','1066792etFcuf','default','Run\x20service\x20command\x20','8792syclLz','Use\x20`','filter','429GLjYxX','appCode','264230ZJgdfQ','userId','115mNORAd','push','bffCode','flatMap','nickName','normalizedManifest','Unknown\x20appRef\x20\x22','scriptName','sqlCode','\x22\x20in\x20service\x20command\x20','app','type','ctx.','required','\x20\x20\x20\x20','flags','risk','cliName','some','\x20service\x20detail\x20--service\x20','name','appRef','tree','datasetCode','3165966ZNdnlf','\x20\x20\x20\x20command:\x20','Preview\x20dynamic\x20service\x20command:\x20','env','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','boolean','7EHMlYT','target','\x20->\x20','number','tenantCode','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20datatable:\x20','Commands:','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','nickname','mapTo','padEnd','string','username','datatable','2fDnzVP','validation','SERVICE_TREE'];a60_0x4567=function(){return _0x4edc0b;};return a60_0x4567();}function a60_0x4439(_0x33f0ee,_0x595ad5){_0x33f0ee=_0x33f0ee-0x104;const _0x456760=a60_0x4567();let _0x4439ea=_0x456760[_0x33f0ee];return _0x4439ea;}function isPrimitiveFlagDefault(_0x1f5caa){const _0x1a9140=a60_0x4439;return _0x1f5caa===undefined||typeof _0x1f5caa===_0x1a9140(0x133)||typeof _0x1f5caa===_0x1a9140(0x12a)||typeof _0x1f5caa===_0x1a9140(0x126);}
|
|
1
|
+
(function(_0x416a76,_0x5d8ec1){const _0x1185f2=a61_0x448b,_0x228b2e=_0x416a76();while(!![]){try{const _0xf6894f=-parseInt(_0x1185f2(0x21d))/0x1+parseInt(_0x1185f2(0x222))/0x2+-parseInt(_0x1185f2(0x20e))/0x3*(parseInt(_0x1185f2(0x1fd))/0x4)+parseInt(_0x1185f2(0x1ff))/0x5+parseInt(_0x1185f2(0x20c))/0x6+parseInt(_0x1185f2(0x217))/0x7*(parseInt(_0x1185f2(0x1f7))/0x8)+-parseInt(_0x1185f2(0x20d))/0x9;if(_0xf6894f===_0x5d8ec1)break;else _0x228b2e['push'](_0x228b2e['shift']());}catch(_0x121887){_0x228b2e['push'](_0x228b2e['shift']());}}}(a61_0x33ff,0xd5348));function a61_0x448b(_0x45b995,_0x708d30){_0x45b995=_0x45b995-0x1d2;const _0x33ff52=a61_0x33ff();let _0x448ba6=_0x33ff52[_0x45b995];return _0x448ba6;}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(_0x18a3dc,_0x4e36e1){const _0x32bc1c=a61_0x448b,_0x1ded83=listLocalServiceTrees();let _0x24f3e0;for(const _0xee9a86 of _0x1ded83){const _0x4413bf=matchServiceTreeCommand(_0xee9a86,_0x18a3dc);if(!_0x4413bf)continue;(!_0x24f3e0||_0x4413bf[_0x32bc1c(0x200)][_0x32bc1c(0x221)][_0x32bc1c(0x1f2)]>_0x24f3e0[_0x32bc1c(0x200)]['fullPath'][_0x32bc1c(0x1f2)])&&(_0x24f3e0={'tree':_0xee9a86,'command':_0x4413bf['command'],'remainingArgs':_0x4413bf['remainingArgs']});}if(!_0x24f3e0)return undefined;const _0x172dd1={..._0x4e36e1};return applyAppBinding(_0x24f3e0[_0x32bc1c(0x220)],_0x24f3e0[_0x32bc1c(0x200)],_0x172dd1),{'definition':buildDynamicCommandDefinition(_0x24f3e0[_0x32bc1c(0x220)],_0x24f3e0[_0x32bc1c(0x200)]),'args':_0x24f3e0[_0x32bc1c(0x1e8)],'flags':_0x172dd1,'tree':_0x24f3e0[_0x32bc1c(0x220)],'command':_0x24f3e0['command']};}export function generateDynamicServiceHelp(_0x3cf09d){const _0x76bb79=a61_0x448b,_0x41545c=listLocalServiceTrees()[_0x76bb79(0x1e0)](_0x4ce29c=>_0x4ce29c['service']['code']===_0x3cf09d);if(!_0x41545c)return undefined;const _0x35326f=[CLI_BIN_NAME+'\x20'+_0x3cf09d+'\x20<command>\x20[flags]','',_0x41545c['service'][_0x76bb79(0x1d5)]||_0x3cf09d,_0x41545c[_0x76bb79(0x1d4)]['description']?'\x20\x20'+_0x41545c[_0x76bb79(0x1d4)]['description']:'','',_0x76bb79(0x1dc),..._0x41545c[_0x76bb79(0x228)]['map'](_0xc59061=>{const _0x5694b0=_0x76bb79,_0x4855ab=_0xc59061[_0x5694b0(0x221)]['slice'](0x1)[_0x5694b0(0x1d7)]('\x20'),_0x472505=_0xc59061[_0x5694b0(0x1ec)]===_0x5694b0(0x1e6)?'':'\x20['+_0xc59061['risk']+']';return'\x20\x20'+_0x4855ab['padEnd'](0x18)+'\x20'+(_0xc59061[_0x5694b0(0x206)]||'')+_0x472505;}),'',_0x76bb79(0x1d8)+CLI_BIN_NAME+_0x76bb79(0x213)+_0x3cf09d+_0x76bb79(0x22c)][_0x76bb79(0x22f)](Boolean);return _0x35326f[_0x76bb79(0x1d7)]('\x0a');}export function listDynamicServiceEntries(){const _0x406cb3=a61_0x448b;return listLocalServices()[_0x406cb3(0x214)](_0x2afb75=>{const _0x4e9f95=_0x406cb3,_0x19dd33=_0x2afb75[_0x4e9f95(0x20b)];return{'service':_0x19dd33[_0x4e9f95(0x1d4)][_0x4e9f95(0x1f3)],'label':_0x19dd33[_0x4e9f95(0x1d4)][_0x4e9f95(0x1d5)]||_0x19dd33[_0x4e9f95(0x1d4)]['code'],'commands':_0x19dd33['commands'][_0x4e9f95(0x214)](_0x77bae1=>({'command':dynamicCommandName(_0x77bae1),'description':_0x77bae1[_0x4e9f95(0x206)]||'Run\x20service\x20command\x20'+_0x77bae1[_0x4e9f95(0x1d9)],'tag':riskTag(_0x77bae1['risk'])}))};});}export function getDynamicServiceEntry(_0xb61f4c){const _0x1d78f3=a61_0x448b;return listDynamicServiceEntries()[_0x1d78f3(0x1e0)](_0x28321e=>_0x28321e['service']===_0xb61f4c);}export function listDynamicServiceDefinitions(_0x1f5827){const _0x225207=a61_0x448b;return listLocalServiceTrees()[_0x225207(0x22f)](_0x3300b6=>!_0x1f5827||_0x3300b6[_0x225207(0x1d4)][_0x225207(0x1f3)]===_0x1f5827)['flatMap'](_0x2c3170=>_0x2c3170[_0x225207(0x228)][_0x225207(0x214)](_0xfe96d5=>buildDynamicCommandDefinition(_0x2c3170,_0xfe96d5)));}export function getDynamicServiceDefinitions(_0x5e1114){const _0x13b0b7=listDynamicServiceDefinitions(_0x5e1114);return _0x13b0b7['length']>0x0?_0x13b0b7:undefined;}export function findDynamicServiceDefinition(_0x4b8e70,_0x76b52a){const _0x4c35ce=a61_0x448b;return listDynamicServiceDefinitions(_0x4b8e70)[_0x4c35ce(0x1e0)](_0x3b036a=>_0x3b036a[_0x4c35ce(0x200)]===_0x76b52a);}export function buildDynamicCommandDefinition(_0x3bf7ba,_0x25c0e7){const _0x7413d5=a61_0x448b;return{'service':_0x3bf7ba[_0x7413d5(0x1d4)][_0x7413d5(0x1f3)],'command':dynamicCommandName(_0x25c0e7),'description':_0x25c0e7[_0x7413d5(0x206)]||_0x7413d5(0x1e3)+_0x25c0e7['cliPath'],'risk':_0x25c0e7[_0x7413d5(0x1ec)],..._0x25c0e7[_0x7413d5(0x1ec)]===_0x7413d5(0x1e6)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x25c0e7)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x25c0e7[_0x7413d5(0x1f5)]['map'](_0x8c0d6c=>({'name':_0x8c0d6c[_0x7413d5(0x1d5)],'description':_0x8c0d6c[_0x7413d5(0x206)]||_0x8c0d6c[_0x7413d5(0x1d5)],'required':_0x8c0d6c[_0x7413d5(0x1e4)]})),'flags':_0x25c0e7[_0x7413d5(0x1e9)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x25c0e7),async 'dryRun'(_0x377128){const _0x4147f2=_0x7413d5,_0x4d54e9=await compilePlan(_0x25c0e7,_0x377128);return{'method':_0x4147f2(0x21a),'url':_0x25c0e7[_0x4147f2(0x1d9)],'body':{'target':targetPreview(_0x4d54e9),'params':_0x4d54e9['params']},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x25c0e7[_0x4147f2(0x1d9)]};},async 'execute'(_0x94a0dd){const _0x5dd968=_0x7413d5,_0x2ab2e4=await compilePlan(_0x25c0e7,_0x94a0dd),_0x58d978=Date['now'](),_0x102027=await executePlan(_0x2ab2e4,_0x25c0e7,_0x94a0dd),_0x36731d=Date['now']()-_0x58d978;return{'ok':!![],'data':{'service':_0x3bf7ba[_0x5dd968(0x1d4)],'command':_0x25c0e7[_0x5dd968(0x1d9)],'target':targetPreview(_0x2ab2e4),'result':_0x102027,'elapsed':_0x36731d},'message':'Service\x20command\x20'+_0x25c0e7[_0x5dd968(0x1d9)]+_0x5dd968(0x204)+_0x36731d+'ms'};}};}function buildDynamicConfirmationDescription(_0x42fb69){const _0x1ea4f=a61_0x448b,_0x2bd91c=_0x42fb69[_0x1ea4f(0x206)]||_0x42fb69['cliPath'],_0x598d57=_0x42fb69[_0x1ea4f(0x1ec)]==='high-risk-write'?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':_0x1ea4f(0x216);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x2bd91c+'\x22.\x20'+_0x598d57;}function dynamicCommandName(_0x20b23c){const _0x46f8d5=a61_0x448b;return _0x20b23c[_0x46f8d5(0x221)][_0x46f8d5(0x223)](0x1)[_0x46f8d5(0x1d7)]('\x20');}function riskTag(_0x10646b){const _0x5f0514=a61_0x448b;return _0x10646b===_0x5f0514(0x1e6)?'':_0x5f0514(0x1db)+_0x10646b+']';}function flagToCommandFlag(_0x4c043e){const _0x360aaa=a61_0x448b;return{'name':_0x4c043e[_0x360aaa(0x22a)],'type':_0x4c043e[_0x360aaa(0x205)]===_0x360aaa(0x20f)?_0x360aaa(0x201):_0x4c043e[_0x360aaa(0x205)],'description':_0x4c043e[_0x360aaa(0x206)]||_0x4c043e[_0x360aaa(0x1d5)],'required':_0x4c043e[_0x360aaa(0x1e4)],'default':isPrimitiveFlagDefault(_0x4c043e[_0x360aaa(0x227)])?_0x4c043e[_0x360aaa(0x227)]:undefined,'enum':_0x4c043e['enum']};}async function compilePlan(_0x3d4d3f,_0x141ffd){return compileServiceTreeCommand(_0x3d4d3f,{'flags':_0x141ffd['rawFlags'],'args':_0x141ffd['args'],'context':await buildServiceContext(_0x3d4d3f,_0x141ffd)});}function a61_0x33ff(){const _0x50ffd5=['type','description','loginName','username','tableName','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','normalizedManifest','4927500aWlFQu','2622852LrKoGm','3KToHDB','json','env','nickname','\x20\x20\x20\x20','\x20service\x20detail\x20--service\x20','map','sqlCode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','7drTDst','source','\x20\x20\x20\x20sqlCode:\x20','SERVICE_TREE','fromEntries','appcode','1032970krJIiY','\x20->\x20','push','tree','fullPath','2337854vUlXeF','slice','userId','app','\x20\x20MAP\x20TO','default','commands','mapTo','cliName','tenantCode','`\x20to\x20inspect\x20the\x20manifest.','datasetCode','trim','filter','number','envName','\x20\x20\x20\x20datasetCode:\x20','service','name','kind','join','Use\x20`','cliPath','appBindings','\x20\x20[','Commands:','validation','bffId','startsWith','find','params','datatable','Run\x20service\x20command\x20','required','appCode','read','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','remainingArgs','flags','Service\x20command\x20','context.','risk','bffCode','\x20\x20\x20\x20datatable:\x20','data','dbtableConfig','\x22\x20in\x20service\x20command\x20','length','code','bff','args','some','2767976WbNNBN','\x20\x20\x20\x20functionName:\x20','target','\x20\x20\x20\x20kind:\x20\x20\x20\x20','appRef','\x20requires\x20target.sqlCode.','1335396QDmQoD','scriptName','976805kFEUvu','command','string','nickName','\x20requires\x20target.functionName.','\x20completed\x20in\x20'];a61_0x33ff=function(){return _0x50ffd5;};return a61_0x33ff();}async function buildServiceContext(_0x2717f6,_0x2678c7){const _0x1666ea=a61_0x448b,_0x776a50={'appCode':_0x2678c7[_0x1666ea(0x1e5)],'env':_0x2678c7[_0x1666ea(0x1d2)],'envName':_0x2678c7[_0x1666ea(0x1d2)]};if(!usesRuntimeContext(_0x2717f6))return _0x776a50;const _0x2ac4fc=await getLoginUserInfo(),_0x2733a3=pickFirst(_0x2ac4fc[_0x1666ea(0x224)],_0x2ac4fc['id']);return{..._0x776a50,'user':_0x2ac4fc,'userId':_0x2733a3,'id':_0x2ac4fc['id'],'username':pickFirst(_0x2ac4fc[_0x1666ea(0x208)],_0x2ac4fc['userName'],_0x2ac4fc[_0x1666ea(0x207)]),'userName':_0x2ac4fc['userName'],'nickname':pickFirst(_0x2ac4fc[_0x1666ea(0x211)],_0x2ac4fc[_0x1666ea(0x202)]),'nickName':_0x2ac4fc[_0x1666ea(0x202)],'tenantCode':_0x2ac4fc[_0x1666ea(0x22b)],'employeeId':_0x2ac4fc['employeeId']};}function usesRuntimeContext(_0x166b22){const _0xc7a940=a61_0x448b;return _0x166b22['mapTo'][_0xc7a940(0x1f6)](_0x38bc7b=>typeof _0x38bc7b['source']===_0xc7a940(0x201)&&(_0x38bc7b[_0xc7a940(0x218)][_0xc7a940(0x1df)](_0xc7a940(0x1eb))||_0x38bc7b[_0xc7a940(0x218)][_0xc7a940(0x1df)]('ctx.')));}function pickFirst(..._0x330935){const _0x159ca4=a61_0x448b;return _0x330935[_0x159ca4(0x1e0)](_0x3ae9f4=>_0x3ae9f4!==undefined&&_0x3ae9f4!==null);}async function executePlan(_0x8b0a72,_0x286b30,_0x12671e){const _0x3699a7=a61_0x448b;if(_0x8b0a72['kind']===_0x3699a7(0x1ef)){const _0x156722=await resolveDatasetCode(_0x8b0a72,_0x286b30,_0x12671e);return executeData(_0x156722,_0x8b0a72['command'],_0x8b0a72[_0x3699a7(0x1e1)]);}if(_0x8b0a72[_0x3699a7(0x1d6)]==='sql'){if(!_0x8b0a72[_0x3699a7(0x215)])throw CliErrors[_0x3699a7(0x1dd)]('Service\x20command\x20'+_0x286b30['cliPath']+_0x3699a7(0x1fc));return executeSdkSql(_0x8b0a72[_0x3699a7(0x215)],normalizeScalarParams(_0x8b0a72[_0x3699a7(0x1e1)]));}if(_0x8b0a72[_0x3699a7(0x1d6)]===_0x3699a7(0x1f4)){const _0x68174d=_0x8b0a72[_0x3699a7(0x1fe)]||_0x8b0a72[_0x3699a7(0x1ed)]||(_0x8b0a72[_0x3699a7(0x1de)]==null?'':String(_0x8b0a72[_0x3699a7(0x1de)]));if(!_0x68174d)throw CliErrors[_0x3699a7(0x1dd)](_0x3699a7(0x1ea)+_0x286b30[_0x3699a7(0x1d9)]+_0x3699a7(0x203));return executeSdkBff(_0x68174d,_0x8b0a72[_0x3699a7(0x1e1)]);}throw CliErrors[_0x3699a7(0x1dd)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x8b0a72['kind']);}async function resolveDatasetCode(_0x184075,_0x2b6f9a,_0x4a55c7){const _0x160141=a61_0x448b;if(_0x184075[_0x160141(0x22d)])return _0x184075[_0x160141(0x22d)];if(!_0x184075[_0x160141(0x1e2)])throw CliErrors[_0x160141(0x1dd)]('Service\x20command\x20'+_0x2b6f9a[_0x160141(0x1d9)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x850b5c=await listDatasets(_0x4a55c7[_0x160141(0x1e5)]),_0x51066b=_0x850b5c['find'](_0x14ed3e=>_0x14ed3e[_0x160141(0x1f0)]?.[_0x160141(0x209)]===_0x184075[_0x160141(0x1e2)]);if(!_0x51066b?.['code'])throw CliErrors[_0x160141(0x1dd)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x184075[_0x160141(0x1e2)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x4a55c7['appCode']+'.',_0x160141(0x1e7));return _0x51066b['code'];}function applyAppBinding(_0x59dfd2,_0x22b9cc,_0x4215e1){const _0x3d3488=a61_0x448b,_0x54db87=_0x22b9cc[_0x3d3488(0x1f9)][_0x3d3488(0x1fb)];if(!_0x54db87)return;const _0x458ce9=_0x59dfd2[_0x3d3488(0x1da)][_0x54db87];if(!_0x458ce9)throw CliErrors[_0x3d3488(0x1dd)]('Unknown\x20appRef\x20\x22'+_0x54db87+_0x3d3488(0x1f1)+_0x22b9cc[_0x3d3488(0x1d9)]+'.',_0x3d3488(0x20a));const _0x54b26e=_0x458ce9[_0x3d3488(0x21c)]||_0x458ce9['appCode'];_0x54b26e&&!hasText(_0x4215e1[_0x3d3488(0x21c)])&&(_0x4215e1['appcode']=_0x54b26e),_0x458ce9['app']&&!hasText(_0x4215e1[_0x3d3488(0x225)])&&!hasText(_0x4215e1['appcode'])&&(_0x4215e1['app']=_0x458ce9[_0x3d3488(0x225)]),_0x458ce9['env']&&!hasText(_0x4215e1[_0x3d3488(0x210)])&&(_0x4215e1[_0x3d3488(0x210)]=_0x458ce9['env']);}function renderDynamicCommandHelp(_0x364a44){const _0x3e6d0f=a61_0x448b,_0x14abc4=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x3e6d0f(0x1fa)+_0x364a44[_0x3e6d0f(0x1f9)]['kind'],'\x20\x20\x20\x20command:\x20'+_0x364a44[_0x3e6d0f(0x1f9)][_0x3e6d0f(0x200)]];if(_0x364a44[_0x3e6d0f(0x1f9)]['datasetCode'])_0x14abc4[_0x3e6d0f(0x21f)](_0x3e6d0f(0x1d3)+_0x364a44[_0x3e6d0f(0x1f9)][_0x3e6d0f(0x22d)]);if(_0x364a44[_0x3e6d0f(0x1f9)][_0x3e6d0f(0x1e2)])_0x14abc4['push'](_0x3e6d0f(0x1ee)+_0x364a44[_0x3e6d0f(0x1f9)][_0x3e6d0f(0x1e2)]);if(_0x364a44[_0x3e6d0f(0x1f9)]['sqlCode'])_0x14abc4[_0x3e6d0f(0x21f)](_0x3e6d0f(0x219)+_0x364a44['target'][_0x3e6d0f(0x215)]);if(_0x364a44[_0x3e6d0f(0x1f9)]['scriptName'])_0x14abc4[_0x3e6d0f(0x21f)](_0x3e6d0f(0x1f8)+_0x364a44[_0x3e6d0f(0x1f9)][_0x3e6d0f(0x1fe)]);if(_0x364a44['mapTo'][_0x3e6d0f(0x1f2)]>0x0){_0x14abc4[_0x3e6d0f(0x21f)]('',_0x3e6d0f(0x226));for(const _0x4e5fa4 of _0x364a44[_0x3e6d0f(0x229)]){_0x14abc4[_0x3e6d0f(0x21f)](_0x3e6d0f(0x212)+(_0x4e5fa4[_0x3e6d0f(0x218)]||'const')+_0x3e6d0f(0x21e)+_0x4e5fa4[_0x3e6d0f(0x1f9)]+(_0x4e5fa4['operator']?'.'+_0x4e5fa4['operator']:''));}}return _0x14abc4['join']('\x0a');}function targetPreview(_0x5774a9){const _0x508507=a61_0x448b;return{'kind':_0x5774a9['kind'],'command':_0x5774a9[_0x508507(0x200)],'appRef':_0x5774a9['appRef'],'datasetCode':_0x5774a9[_0x508507(0x22d)],'datatable':_0x5774a9[_0x508507(0x1e2)],'sqlCode':_0x5774a9[_0x508507(0x215)],'bffCode':_0x5774a9[_0x508507(0x1ed)],'bffId':_0x5774a9[_0x508507(0x1de)],'functionName':_0x5774a9[_0x508507(0x1fe)]};}function normalizeScalarParams(_0x17cf7f){const _0x459ccb=a61_0x448b;return Object[_0x459ccb(0x21b)](Object['entries'](_0x17cf7f)[_0x459ccb(0x22f)](([,_0x3b987f])=>typeof _0x3b987f===_0x459ccb(0x201)||typeof _0x3b987f===_0x459ccb(0x230)));}function hasText(_0x5c5ecf){const _0x56b16d=a61_0x448b;return typeof _0x5c5ecf===_0x56b16d(0x201)&&_0x5c5ecf[_0x56b16d(0x22e)]()[_0x56b16d(0x1f2)]>0x0;}function isPrimitiveFlagDefault(_0x19af7f){const _0xc3d407=a61_0x448b;return _0x19af7f===undefined||typeof _0x19af7f===_0xc3d407(0x201)||typeof _0x19af7f===_0xc3d407(0x230)||typeof _0x19af7f==='boolean';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4dfdaa,_0x1fd047){const _0x25f7b3=a62_0x384a,_0x49c39b=_0x4dfdaa();while(!![]){try{const _0x4d04ff=parseInt(_0x25f7b3(0x1e0))/0x1+-parseInt(_0x25f7b3(0x1ec))/0x2+-parseInt(_0x25f7b3(0x1e4))/0x3+parseInt(_0x25f7b3(0x1d2))/0x4+-parseInt(_0x25f7b3(0x1e7))/0x5*(-parseInt(_0x25f7b3(0x1d0))/0x6)+parseInt(_0x25f7b3(0x1e2))/0x7+-parseInt(_0x25f7b3(0x1e6))/0x8;if(_0x4d04ff===_0x1fd047)break;else _0x49c39b['push'](_0x49c39b['shift']());}catch(_0x754c1){_0x49c39b['push'](_0x49c39b['shift']());}}}(a62_0x554b,0xaed0d));export function adaptServiceTreeManifestForLegacyFramework(_0x228728){const _0x4c5170=a62_0x384a,_0x3efe3b=cloneJsonValue(_0x228728),_0xacaaba=[];if(!isObjectRecord(_0x3efe3b))return{'manifest':_0x3efe3b,'errors':_0xacaaba};return Array[_0x4c5170(0x1ce)](_0x3efe3b['commands'])&&_0x3efe3b['commands'][_0x4c5170(0x1db)]((_0x4df190,_0x269f12)=>{const _0x1e4b33=_0x4c5170;if(!isObjectRecord(_0x4df190))return;adaptBffTarget(_0x4df190['target'],_0x1e4b33(0x1dc)+_0x269f12+_0x1e4b33(0x1e3),_0xacaaba);}),adaptResources(_0x3efe3b[_0x4c5170(0x1dd)],'$.resources',_0xacaaba),{'manifest':_0x3efe3b,'errors':_0xacaaba};}export function toPublicServiceTreeTarget(_0x1dfce6){const _0x4b44e8=a62_0x384a,{scriptName:_0x5dafb2,..._0x24cc8f}=_0x1dfce6;return typeof _0x5dafb2===_0x4b44e8(0x1e1)&&_0x5dafb2[_0x4b44e8(0x1d7)]()&&(_0x24cc8f[_0x4b44e8(0x1eb)]=_0x5dafb2),_0x24cc8f;}export function toPublicNormalizedServiceTree(_0x2e08fa){const _0x236b93=a62_0x384a;return{..._0x2e08fa,'commands':_0x2e08fa['commands'][_0x236b93(0x1d3)](_0x227981=>({..._0x227981,'target':toPublicServiceTreeTarget(_0x227981[_0x236b93(0x1ed)])}))};}function a62_0x554b(){const _0x170aac=['trim','entries','action','.actions.','forEach','$.commands[','resources','scriptName','.target','1401078fyuesD','string','9540937pXaOCc','].target','2298651dEyetA','kind','17313000sdbFbE','15ARCFEa','.functionName','.resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','functionName','1332268jjmjnZ','target','bff','isArray','push','1590504lTKCmv','bff.exec','3012800CorZIo','map','hasOwnProperty','error','actions'];a62_0x554b=function(){return _0x170aac;};return a62_0x554b();}function adaptResources(_0x13d3be,_0x198f61,_0x46cd2b){const _0x3aa4dc=a62_0x384a;if(!isObjectRecord(_0x13d3be))return;for(const [_0x4a27e1,_0x5dcf82]of Object[_0x3aa4dc(0x1d8)](_0x13d3be)){if(!isObjectRecord(_0x5dcf82))continue;const _0x5f33e6=_0x198f61+'.'+_0x4a27e1;if(isObjectRecord(_0x5dcf82[_0x3aa4dc(0x1d6)]))for(const [_0x226825,_0x5e0d69]of Object['entries'](_0x5dcf82['actions'])){if(!isObjectRecord(_0x5e0d69))continue;const _0x38e652=_0x5f33e6+_0x3aa4dc(0x1da)+_0x226825,_0x1484cc=isObjectRecord(_0x5e0d69['target'])&&_0x5e0d69[_0x3aa4dc(0x1ed)]['kind']===_0x3aa4dc(0x1cd);adaptBffTarget(_0x5e0d69[_0x3aa4dc(0x1ed)],_0x38e652+_0x3aa4dc(0x1df),_0x46cd2b),(_0x1484cc||isBffAction(_0x5e0d69))&&adaptFunctionNameField(_0x5e0d69,_0x38e652,_0x46cd2b);}adaptResources(_0x5dcf82[_0x3aa4dc(0x1dd)],_0x5f33e6+_0x3aa4dc(0x1e9),_0x46cd2b);}}function adaptBffTarget(_0x24e3f7,_0x327fa1,_0x1656dd){const _0x3c4c16=a62_0x384a;if(!isObjectRecord(_0x24e3f7)||_0x24e3f7[_0x3c4c16(0x1e5)]!==_0x3c4c16(0x1cd))return;adaptFunctionNameField(_0x24e3f7,_0x327fa1,_0x1656dd);}function adaptFunctionNameField(_0xbd3979,_0x16ea24,_0x250814){const _0x44e698=a62_0x384a;Object['prototype'][_0x44e698(0x1d4)]['call'](_0xbd3979,_0x44e698(0x1de))&&_0x250814['push']({'level':_0x44e698(0x1d5),'path':_0x16ea24+'.scriptName','message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object['prototype'][_0x44e698(0x1d4)]['call'](_0xbd3979,'functionName')){if(typeof _0xbd3979['functionName']!==_0x44e698(0x1e1)||!_0xbd3979['functionName'][_0x44e698(0x1d7)]()){_0x250814[_0x44e698(0x1cf)]({'level':_0x44e698(0x1d5),'path':_0x16ea24+_0x44e698(0x1e8),'message':_0x44e698(0x1ea)}),delete _0xbd3979['functionName'];return;}_0xbd3979[_0x44e698(0x1de)]=_0xbd3979[_0x44e698(0x1eb)],delete _0xbd3979[_0x44e698(0x1eb)];}}function isBffAction(_0x1df1cb){const _0x5c4e4d=a62_0x384a;return _0x1df1cb[_0x5c4e4d(0x1e5)]===_0x5c4e4d(0x1cd)||_0x1df1cb[_0x5c4e4d(0x1d9)]===_0x5c4e4d(0x1d1)||_0x1df1cb[_0x5c4e4d(0x1ed)]==='bff.exec';}function cloneJsonValue(_0x4bdf74){const _0x361c76=a62_0x384a;if(Array[_0x361c76(0x1ce)](_0x4bdf74))return _0x4bdf74[_0x361c76(0x1d3)](_0x20a89f=>cloneJsonValue(_0x20a89f));if(isObjectRecord(_0x4bdf74))return Object['fromEntries'](Object['entries'](_0x4bdf74)[_0x361c76(0x1d3)](([_0x20e84d,_0x21589e])=>[_0x20e84d,cloneJsonValue(_0x21589e)]));return _0x4bdf74;}function a62_0x384a(_0x827f1c,_0x595ac2){_0x827f1c=_0x827f1c-0x1cd;const _0x554b62=a62_0x554b();let _0x384ab7=_0x554b62[_0x827f1c];return _0x384ab7;}function isObjectRecord(_0x5a9a35){const _0x2f5ba8=a62_0x384a;return Boolean(_0x5a9a35)&&typeof _0x5a9a35==='object'&&!Array[_0x2f5ba8(0x1ce)](_0x5a9a35);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x63ec0=a62_0x5eb3;function a62_0x5eb3(_0x1ff043,_0x40d282){_0x1ff043=_0x1ff043-0x120;const _0x3bbc6a=a62_0x3bbc();let _0x5eb383=_0x3bbc6a[_0x1ff043];return _0x5eb383;}(function(_0x19b672,_0x10c2ca){const _0x102b2c=a62_0x5eb3,_0x142d97=_0x19b672();while(!![]){try{const _0x2040dc=-parseInt(_0x102b2c(0x130))/0x1*(-parseInt(_0x102b2c(0x156))/0x2)+parseInt(_0x102b2c(0x154))/0x3*(parseInt(_0x102b2c(0x12f))/0x4)+parseInt(_0x102b2c(0x149))/0x5+parseInt(_0x102b2c(0x14d))/0x6+parseInt(_0x102b2c(0x123))/0x7+-parseInt(_0x102b2c(0x15c))/0x8+-parseInt(_0x102b2c(0x121))/0x9;if(_0x2040dc===_0x10c2ca)break;else _0x142d97['push'](_0x142d97['shift']());}catch(_0x2c455a){_0x142d97['push'](_0x142d97['shift']());}}}(a62_0x3bbc,0x2e2a8));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':a62_0x63ec0(0x157),'type':a62_0x63ec0(0x12d),'required':!![],'description':a62_0x63ec0(0x165)},SERVICE_FLAG={'name':a62_0x63ec0(0x14b),'type':'string','required':!![],'description':a62_0x63ec0(0x14a),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x63ec0(0x15f)}};function summarizeService(_0x4ae76c){const _0x4b66b4=a62_0x63ec0;return{'serviceCode':_0x4ae76c['serviceCode'],'name':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x14b)][_0x4b66b4(0x161)],'version':_0x4ae76c[_0x4b66b4(0x12b)],'importedAt':_0x4ae76c[_0x4b66b4(0x128)],'source':_0x4ae76c[_0x4b66b4(0x124)],'commandCount':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x13e)][_0x4b66b4(0x153)],'commands':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x13e)][_0x4b66b4(0x131)](_0x5213d3=>({'path':_0x5213d3[_0x4b66b4(0x155)],'description':_0x5213d3['description'],'risk':_0x5213d3[_0x4b66b4(0x15d)],'target':toPublicServiceTreeTarget(_0x5213d3[_0x4b66b4(0x143)]),'flags':_0x5213d3[_0x4b66b4(0x142)][_0x4b66b4(0x131)](_0x24f87b=>({'name':_0x24f87b[_0x4b66b4(0x161)],'cliName':_0x24f87b[_0x4b66b4(0x164)],'type':_0x24f87b['type'],'required':_0x24f87b['required']===!![]}))}))};}function summarizeLoadedManifest(_0x558f25){const _0xd48134=a62_0x63ec0;return{'service':_0x558f25[_0xd48134(0x14e)]?.['service'],'version':_0x558f25[_0xd48134(0x14e)]?.['version'],'commandCount':_0x558f25[_0xd48134(0x14e)]?.[_0xd48134(0x13e)]['length']??0x0,'commands':_0x558f25['normalizedManifest']?.[_0xd48134(0x13e)][_0xd48134(0x131)](_0x20633c=>({'path':_0x20633c['cliPath'],'risk':_0x20633c[_0xd48134(0x15d)],'target':toPublicServiceTreeTarget(_0x20633c[_0xd48134(0x143)])}))??[],'registryIndex':_0x558f25[_0xd48134(0x14f)],'registryServiceCode':_0x558f25[_0xd48134(0x160)],'errors':_0x558f25[_0xd48134(0x137)][_0xd48134(0x145)],'warnings':_0x558f25[_0xd48134(0x137)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x134),'description':a62_0x63ec0(0x140),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x62a3ab){const _0x536536=a62_0x63ec0,_0x365152=loadServiceManifestFromFile(_0x62a3ab[_0x536536(0x158)](_0x536536(0x157)));if(!_0x365152[_0x536536(0x137)]['ok'])return{'ok':![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152['hash'],'kind':_0x365152[_0x536536(0x132)],'serviceCount':_0x365152['manifests'][_0x536536(0x153)],'services':_0x365152['manifests'][_0x536536(0x131)](summarizeLoadedManifest),'errors':_0x365152[_0x536536(0x137)][_0x536536(0x145)],'warnings':_0x365152[_0x536536(0x137)][_0x536536(0x141)]},'message':formatValidationFailure(_0x365152[_0x536536(0x137)])};if(_0x365152['kind']===_0x536536(0x163)||_0x365152[_0x536536(0x120)][_0x536536(0x153)]!==0x1)return{'ok':!![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152['hash'],'kind':_0x365152['kind'],'serviceCount':_0x365152[_0x536536(0x120)][_0x536536(0x153)],'commandCount':_0x365152[_0x536536(0x120)][_0x536536(0x136)]((_0x31dfd0,_0x113216)=>_0x31dfd0+(_0x113216[_0x536536(0x14e)]?.[_0x536536(0x13e)]['length']??0x0),0x0),'services':_0x365152[_0x536536(0x120)][_0x536536(0x131)](summarizeLoadedManifest),'warnings':_0x365152['report'][_0x536536(0x141)]},'message':_0x536536(0x122)};return{'ok':!![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152[_0x536536(0x150)],'kind':_0x365152[_0x536536(0x132)],'service':_0x365152[_0x536536(0x14e)]?.[_0x536536(0x14b)],'version':_0x365152[_0x536536(0x14e)]?.['version'],'commandCount':_0x365152['normalizedManifest']?.[_0x536536(0x13e)]['length']??0x0,'commands':_0x365152[_0x536536(0x14e)]?.[_0x536536(0x13e)]['map'](_0x539529=>({'path':_0x539529[_0x536536(0x155)],'risk':_0x539529[_0x536536(0x15d)],'target':toPublicServiceTreeTarget(_0x539529['target'])})),'warnings':_0x365152[_0x536536(0x137)][_0x536536(0x141)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x146),'description':a62_0x63ec0(0x166),'risk':'write','confirmationDescription':a62_0x63ec0(0x147),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x39a015){const _0x4def23=a62_0x63ec0,_0x4cc3b5=loadServiceManifestFromFile(_0x39a015['str']('file'));return{'method':_0x4def23(0x135),'url':getServiceRegistryPath(),'body':{'file':_0x4cc3b5[_0x4def23(0x15e)],'hash':_0x4cc3b5[_0x4def23(0x150)],'kind':_0x4cc3b5[_0x4def23(0x132)],'ok':_0x4cc3b5[_0x4def23(0x137)]['ok'],'service':_0x4cc3b5[_0x4def23(0x14e)]?.[_0x4def23(0x14b)],'version':_0x4cc3b5['normalizedManifest']?.[_0x4def23(0x12b)],'serviceCount':_0x4cc3b5['manifests'][_0x4def23(0x153)],'services':_0x4cc3b5[_0x4def23(0x120)][_0x4def23(0x131)](_0x1e9667=>({'service':_0x1e9667['normalizedManifest']?.['service'],'version':_0x1e9667['normalizedManifest']?.['version'],'commandCount':_0x1e9667[_0x4def23(0x14e)]?.[_0x4def23(0x13e)][_0x4def23(0x153)]??0x0,'errors':_0x1e9667[_0x4def23(0x137)][_0x4def23(0x145)]})),'errors':_0x4cc3b5[_0x4def23(0x137)][_0x4def23(0x145)],'commandCount':_0x4cc3b5[_0x4def23(0x14e)]?.[_0x4def23(0x13e)][_0x4def23(0x153)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x4af084){const _0x1de25a=a62_0x63ec0,_0x4593f0=importServiceManifest(_0x4af084['str'](_0x1de25a(0x157)));if(_0x4593f0['entries'][_0x1de25a(0x153)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4593f0[_0x1de25a(0x15b)],'imported':_0x4593f0['imported'],'updated':_0x4593f0[_0x1de25a(0x13f)],'serviceCount':_0x4593f0[_0x1de25a(0x13a)],'services':_0x4593f0[_0x1de25a(0x15a)]['map'](summarizeService)},'message':_0x1de25a(0x12a)+_0x4593f0[_0x1de25a(0x138)]+'\x20service(s),\x20updated\x20'+_0x4593f0[_0x1de25a(0x13f)]+_0x1de25a(0x13c)};return{'ok':!![],'data':{'registryPath':_0x4593f0[_0x1de25a(0x15b)],'replaced':_0x4593f0[_0x1de25a(0x133)],'imported':_0x4593f0[_0x1de25a(0x138)],'updated':_0x4593f0[_0x1de25a(0x13f)],'serviceCount':_0x4593f0['serviceCount'],'service':summarizeService(_0x4593f0['entry'])},'message':(_0x4593f0[_0x1de25a(0x133)]?'Updated':_0x1de25a(0x125))+_0x1de25a(0x152)+_0x4593f0['entry']['serviceCode']+'.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x151),'description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a62_0x63ec0(0x159),'confirmationDescription':'Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x774c1e){const _0x1ec636=a62_0x63ec0,_0x41935e=getLocalServiceEntry(_0x774c1e['str']('service'));return{'method':_0x1ec636(0x135),'url':_0x774c1e['str'](_0x1ec636(0x157)),'body':{'service':_0x774c1e[_0x1ec636(0x158)](_0x1ec636(0x14b)),'found':Boolean(_0x41935e),'version':_0x41935e?.[_0x1ec636(0x12b)],'source':_0x41935e?.[_0x1ec636(0x124)]},'description':_0x1ec636(0x12c)};},async 'execute'(_0x52fc9f){const _0x9c1e91=a62_0x63ec0,_0x5afb55=exportServiceManifest(_0x52fc9f[_0x9c1e91(0x158)](_0x9c1e91(0x14b)),_0x52fc9f[_0x9c1e91(0x158)](_0x9c1e91(0x157)));return{'ok':!![],'data':{'registryPath':_0x5afb55[_0x9c1e91(0x15b)],'file':_0x5afb55[_0x9c1e91(0x15e)],'service':summarizeService(_0x5afb55[_0x9c1e91(0x127)])},'message':_0x9c1e91(0x13d)+_0x5afb55[_0x9c1e91(0x127)]['serviceCode']+'.'};}},{'service':'service','command':a62_0x63ec0(0x139),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a62_0x63ec0(0x13b),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x459747=a62_0x63ec0,_0x31d6ed=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x31d6ed[_0x459747(0x153)],'services':_0x31d6ed[_0x459747(0x131)](summarizeService)}};}},{'service':'service','command':a62_0x63ec0(0x144),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a62_0x63ec0(0x159),'confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x5cf143){const _0x562ad7=a62_0x63ec0,_0x16651c=getLocalServiceEntry(_0x5cf143[_0x562ad7(0x158)](_0x562ad7(0x14b)));return{'method':_0x562ad7(0x135),'url':getServiceRegistryPath(),'body':{'service':_0x5cf143['str'](_0x562ad7(0x14b)),'found':Boolean(_0x16651c),'version':_0x16651c?.['version'],'source':_0x16651c?.[_0x562ad7(0x124)]},'description':_0x562ad7(0x129)};},async 'execute'(_0x382d5b){const _0x1e8c57=a62_0x63ec0,_0x564434=removeServiceManifest(_0x382d5b['str'](_0x1e8c57(0x14b)));return{'ok':!![],'data':{'registryPath':_0x564434['registryPath'],'serviceCount':_0x564434[_0x1e8c57(0x13a)],'service':summarizeService(_0x564434['entry'])},'message':'Removed\x20service\x20'+_0x564434['entry'][_0x1e8c57(0x126)]+'.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x14c),'description':a62_0x63ec0(0x12e),'risk':a62_0x63ec0(0x13b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x38e4b7){const _0x894a7d=a62_0x63ec0,_0x567881=getLocalServiceEntry(_0x38e4b7[_0x894a7d(0x158)](_0x894a7d(0x14b)));if(!_0x567881)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x38e4b7['str'](_0x894a7d(0x14b))},'message':_0x894a7d(0x162)+_0x38e4b7[_0x894a7d(0x158)](_0x894a7d(0x14b))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x567881),'manifest':_0x567881[_0x894a7d(0x148)],'normalizedManifest':toPublicNormalizedServiceTree(_0x567881['normalizedManifest'])}};}}];function a62_0x3bbc(){const _0x475ea5=['Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Imported\x20','version','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','string','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','116JFHlTh','5fqzMPl','map','kind','replaced','validate','WRITE','reduce','report','imported','list','serviceCount','read','\x20service(s).','Exported\x20service\x20','commands','updated','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','warnings','flags','target','remove','errors','import','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','manifest','329285ltJgwJ','Local\x20service\x20code,\x20for\x20example\x20crm','service','detail','458706OBeOpJ','normalizedManifest','registryIndex','hash','export','\x20service\x20','length','33519xvwNhT','cliPath','116806lAbOVD','file','str','write','entries','registryPath','2545752PBwyat','risk','filePath','lower\x20kebab-case\x20service\x20code','registryServiceCode','name','Local\x20service\x20not\x20found:\x20','registry','cliName','Service\x20Tree\x20manifest\x20file\x20path','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','manifests','3409713PPpwMo','Service\x20registry\x20validation\x20passed.','894824NttCYf','source','Imported','serviceCode','entry','importedAt'];a62_0x3bbc=function(){return _0x475ea5;};return a62_0x3bbc();}
|
|
1
|
+
const a63_0x3c0973=a63_0x47d5;(function(_0x4418c7,_0x3a1b29){const _0x560034=a63_0x47d5,_0x1066a6=_0x4418c7();while(!![]){try{const _0x1be83a=parseInt(_0x560034(0x13e))/0x1*(parseInt(_0x560034(0x12a))/0x2)+parseInt(_0x560034(0x16a))/0x3+parseInt(_0x560034(0x159))/0x4+parseInt(_0x560034(0x142))/0x5*(parseInt(_0x560034(0x160))/0x6)+parseInt(_0x560034(0x13f))/0x7+parseInt(_0x560034(0x165))/0x8+-parseInt(_0x560034(0x14e))/0x9;if(_0x1be83a===_0x3a1b29)break;else _0x1066a6['push'](_0x1066a6['shift']());}catch(_0x2e81e6){_0x1066a6['push'](_0x1066a6['shift']());}}}(a63_0x53a4,0x3f208));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a63_0x3c0973(0x141),'type':a63_0x3c0973(0x145),'required':!![],'description':a63_0x3c0973(0x13b)},SERVICE_FLAG={'name':a63_0x3c0973(0x125),'type':a63_0x3c0973(0x145),'required':!![],'description':a63_0x3c0973(0x136),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a63_0x3c0973(0x15b)}};function summarizeService(_0x27096c){const _0x300b53=a63_0x3c0973;return{'serviceCode':_0x27096c[_0x300b53(0x163)],'name':_0x27096c[_0x300b53(0x140)][_0x300b53(0x125)][_0x300b53(0x139)],'version':_0x27096c[_0x300b53(0x152)],'importedAt':_0x27096c['importedAt'],'source':_0x27096c['source'],'commandCount':_0x27096c[_0x300b53(0x140)][_0x300b53(0x126)][_0x300b53(0x14f)],'commands':_0x27096c[_0x300b53(0x140)][_0x300b53(0x126)][_0x300b53(0x162)](_0x432b1d=>({'path':_0x432b1d[_0x300b53(0x147)],'description':_0x432b1d['description'],'risk':_0x432b1d[_0x300b53(0x158)],'target':toPublicServiceTreeTarget(_0x432b1d[_0x300b53(0x12b)]),'flags':_0x432b1d[_0x300b53(0x157)][_0x300b53(0x162)](_0x5b772f=>({'name':_0x5b772f[_0x300b53(0x139)],'cliName':_0x5b772f[_0x300b53(0x15f)],'type':_0x5b772f['type'],'required':_0x5b772f['required']===!![]}))}))};}function summarizeLoadedManifest(_0x53b7e9){const _0x416e4a=a63_0x3c0973;return{'service':_0x53b7e9[_0x416e4a(0x140)]?.[_0x416e4a(0x125)],'version':_0x53b7e9[_0x416e4a(0x140)]?.[_0x416e4a(0x152)],'commandCount':_0x53b7e9[_0x416e4a(0x140)]?.[_0x416e4a(0x126)]['length']??0x0,'commands':_0x53b7e9[_0x416e4a(0x140)]?.[_0x416e4a(0x126)][_0x416e4a(0x162)](_0x32aca6=>({'path':_0x32aca6[_0x416e4a(0x147)],'risk':_0x32aca6[_0x416e4a(0x158)],'target':toPublicServiceTreeTarget(_0x32aca6[_0x416e4a(0x12b)])}))??[],'registryIndex':_0x53b7e9[_0x416e4a(0x144)],'registryServiceCode':_0x53b7e9[_0x416e4a(0x12d)],'errors':_0x53b7e9[_0x416e4a(0x128)][_0x416e4a(0x13a)],'warnings':_0x53b7e9[_0x416e4a(0x128)][_0x416e4a(0x130)]};}function a63_0x47d5(_0x15b214,_0x5b96cf){_0x15b214=_0x15b214-0x125;const _0x53a41c=a63_0x53a4();let _0x47d508=_0x53a41c[_0x15b214];return _0x47d508;}function a63_0x53a4(){const _0x320bfe=['report','imported','379172zVvNJr','target','kind','registryServiceCode','Exported\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','warnings','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','replaced','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.','filePath','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Local\x20service\x20code,\x20for\x20example\x20crm','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','Imported\x20','name','errors','Service\x20Tree\x20manifest\x20file\x20path','read','manifest','1xZJrOF','1961393NUegrA','normalizedManifest','file','2053505rezSsc','Local\x20service\x20not\x20found:\x20','registryIndex','string','registry','cliPath','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.','write','entry','serviceCount','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','str','9510840NxCXVo','length','entries','Service\x20manifest\x20validation\x20passed.','version','remove','import','\x20service(s),\x20updated\x20','export','flags','risk','396616LClexb','updated','lower\x20kebab-case\x20service\x20code','WRITE','registryPath','Removed\x20service\x20','cliName','6pEnxrM','manifests','map','serviceCode','reduce','1706072BTimPG','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Service\x20registry\x20validation\x20passed.','hash','\x20service\x20','367287VqoXQF','service','commands','Imported'];a63_0x53a4=function(){return _0x320bfe;};return a63_0x53a4();}export const serviceDefinitions=[{'service':a63_0x3c0973(0x125),'command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a63_0x3c0973(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x35810b){const _0x5b34c1=a63_0x3c0973,_0x45f61b=loadServiceManifestFromFile(_0x35810b['str']('file'));if(!_0x45f61b['report']['ok'])return{'ok':![],'data':{'file':_0x45f61b[_0x5b34c1(0x134)],'hash':_0x45f61b[_0x5b34c1(0x168)],'kind':_0x45f61b['kind'],'serviceCount':_0x45f61b['manifests'][_0x5b34c1(0x14f)],'services':_0x45f61b[_0x5b34c1(0x161)][_0x5b34c1(0x162)](summarizeLoadedManifest),'errors':_0x45f61b['report'][_0x5b34c1(0x13a)],'warnings':_0x45f61b[_0x5b34c1(0x128)][_0x5b34c1(0x130)]},'message':formatValidationFailure(_0x45f61b[_0x5b34c1(0x128)])};if(_0x45f61b['kind']===_0x5b34c1(0x146)||_0x45f61b[_0x5b34c1(0x161)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x45f61b['filePath'],'hash':_0x45f61b[_0x5b34c1(0x168)],'kind':_0x45f61b[_0x5b34c1(0x12c)],'serviceCount':_0x45f61b['manifests'][_0x5b34c1(0x14f)],'commandCount':_0x45f61b[_0x5b34c1(0x161)][_0x5b34c1(0x164)]((_0x478661,_0xb2db23)=>_0x478661+(_0xb2db23[_0x5b34c1(0x140)]?.[_0x5b34c1(0x126)][_0x5b34c1(0x14f)]??0x0),0x0),'services':_0x45f61b[_0x5b34c1(0x161)][_0x5b34c1(0x162)](summarizeLoadedManifest),'warnings':_0x45f61b['report']['warnings']},'message':_0x5b34c1(0x167)};return{'ok':!![],'data':{'file':_0x45f61b[_0x5b34c1(0x134)],'hash':_0x45f61b[_0x5b34c1(0x168)],'kind':_0x45f61b['kind'],'service':_0x45f61b[_0x5b34c1(0x140)]?.[_0x5b34c1(0x125)],'version':_0x45f61b[_0x5b34c1(0x140)]?.[_0x5b34c1(0x152)],'commandCount':_0x45f61b[_0x5b34c1(0x140)]?.[_0x5b34c1(0x126)][_0x5b34c1(0x14f)]??0x0,'commands':_0x45f61b[_0x5b34c1(0x140)]?.[_0x5b34c1(0x126)][_0x5b34c1(0x162)](_0x45d66b=>({'path':_0x45d66b[_0x5b34c1(0x147)],'risk':_0x45d66b[_0x5b34c1(0x158)],'target':toPublicServiceTreeTarget(_0x45d66b[_0x5b34c1(0x12b)])})),'warnings':_0x45f61b[_0x5b34c1(0x128)][_0x5b34c1(0x130)]},'message':_0x5b34c1(0x151)};}},{'service':a63_0x3c0973(0x125),'command':a63_0x3c0973(0x154),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a63_0x3c0973(0x149),'confirmationDescription':a63_0x3c0973(0x133),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x278587){const _0x4496e8=a63_0x3c0973,_0x1c33a5=loadServiceManifestFromFile(_0x278587[_0x4496e8(0x14d)](_0x4496e8(0x141)));return{'method':_0x4496e8(0x15c),'url':getServiceRegistryPath(),'body':{'file':_0x1c33a5[_0x4496e8(0x134)],'hash':_0x1c33a5[_0x4496e8(0x168)],'kind':_0x1c33a5[_0x4496e8(0x12c)],'ok':_0x1c33a5['report']['ok'],'service':_0x1c33a5['normalizedManifest']?.[_0x4496e8(0x125)],'version':_0x1c33a5[_0x4496e8(0x140)]?.['version'],'serviceCount':_0x1c33a5[_0x4496e8(0x161)]['length'],'services':_0x1c33a5['manifests'][_0x4496e8(0x162)](_0x128d52=>({'service':_0x128d52[_0x4496e8(0x140)]?.[_0x4496e8(0x125)],'version':_0x128d52[_0x4496e8(0x140)]?.['version'],'commandCount':_0x128d52[_0x4496e8(0x140)]?.[_0x4496e8(0x126)][_0x4496e8(0x14f)]??0x0,'errors':_0x128d52[_0x4496e8(0x128)][_0x4496e8(0x13a)]})),'errors':_0x1c33a5[_0x4496e8(0x128)][_0x4496e8(0x13a)],'commandCount':_0x1c33a5[_0x4496e8(0x140)]?.['commands']['length']??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x54de1e){const _0x2db5a6=a63_0x3c0973,_0x30575c=importServiceManifest(_0x54de1e[_0x2db5a6(0x14d)](_0x2db5a6(0x141)));if(_0x30575c[_0x2db5a6(0x150)][_0x2db5a6(0x14f)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x30575c[_0x2db5a6(0x15d)],'imported':_0x30575c['imported'],'updated':_0x30575c[_0x2db5a6(0x15a)],'serviceCount':_0x30575c[_0x2db5a6(0x14b)],'services':_0x30575c[_0x2db5a6(0x150)][_0x2db5a6(0x162)](summarizeService)},'message':_0x2db5a6(0x138)+_0x30575c[_0x2db5a6(0x129)]+_0x2db5a6(0x155)+_0x30575c['updated']+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x30575c['registryPath'],'replaced':_0x30575c[_0x2db5a6(0x132)],'imported':_0x30575c['imported'],'updated':_0x30575c[_0x2db5a6(0x15a)],'serviceCount':_0x30575c['serviceCount'],'service':summarizeService(_0x30575c[_0x2db5a6(0x14a)])},'message':(_0x30575c[_0x2db5a6(0x132)]?'Updated':_0x2db5a6(0x127))+_0x2db5a6(0x169)+_0x30575c[_0x2db5a6(0x14a)]['serviceCode']+'.'};}},{'service':a63_0x3c0973(0x125),'command':a63_0x3c0973(0x156),'description':a63_0x3c0973(0x166),'risk':a63_0x3c0973(0x149),'confirmationDescription':a63_0x3c0973(0x148),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x94edd6){const _0x3b37ac=a63_0x3c0973,_0x111f4b=getLocalServiceEntry(_0x94edd6[_0x3b37ac(0x14d)](_0x3b37ac(0x125)));return{'method':_0x3b37ac(0x15c),'url':_0x94edd6[_0x3b37ac(0x14d)]('file'),'body':{'service':_0x94edd6[_0x3b37ac(0x14d)](_0x3b37ac(0x125)),'found':Boolean(_0x111f4b),'version':_0x111f4b?.[_0x3b37ac(0x152)],'source':_0x111f4b?.['source']},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x5c9509){const _0x3aa34a=a63_0x3c0973,_0x44af4a=exportServiceManifest(_0x5c9509['str']('service'),_0x5c9509[_0x3aa34a(0x14d)](_0x3aa34a(0x141)));return{'ok':!![],'data':{'registryPath':_0x44af4a[_0x3aa34a(0x15d)],'file':_0x44af4a[_0x3aa34a(0x134)],'service':summarizeService(_0x44af4a[_0x3aa34a(0x14a)])},'message':_0x3aa34a(0x12e)+_0x44af4a[_0x3aa34a(0x14a)]['serviceCode']+'.'};}},{'service':a63_0x3c0973(0x125),'command':'list','description':a63_0x3c0973(0x12f),'risk':a63_0x3c0973(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x327cea=a63_0x3c0973,_0x1b7b8b=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1b7b8b[_0x327cea(0x14f)],'services':_0x1b7b8b[_0x327cea(0x162)](summarizeService)}};}},{'service':'service','command':a63_0x3c0973(0x153),'description':a63_0x3c0973(0x131),'risk':a63_0x3c0973(0x149),'confirmationDescription':a63_0x3c0973(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x478aa2){const _0x33f907=a63_0x3c0973,_0x4a8a7e=getLocalServiceEntry(_0x478aa2[_0x33f907(0x14d)](_0x33f907(0x125)));return{'method':_0x33f907(0x15c),'url':getServiceRegistryPath(),'body':{'service':_0x478aa2[_0x33f907(0x14d)](_0x33f907(0x125)),'found':Boolean(_0x4a8a7e),'version':_0x4a8a7e?.['version'],'source':_0x4a8a7e?.['source']},'description':_0x33f907(0x135)};},async 'execute'(_0x17ba98){const _0x5e9503=a63_0x3c0973,_0x208dc3=removeServiceManifest(_0x17ba98[_0x5e9503(0x14d)]('service'));return{'ok':!![],'data':{'registryPath':_0x208dc3[_0x5e9503(0x15d)],'serviceCount':_0x208dc3[_0x5e9503(0x14b)],'service':summarizeService(_0x208dc3['entry'])},'message':_0x5e9503(0x15e)+_0x208dc3[_0x5e9503(0x14a)][_0x5e9503(0x163)]+'.'};}},{'service':'service','command':'detail','description':a63_0x3c0973(0x14c),'risk':a63_0x3c0973(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x420b3d){const _0x2a4bd7=a63_0x3c0973,_0x5f545d=getLocalServiceEntry(_0x420b3d['str']('service'));if(!_0x5f545d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x420b3d[_0x2a4bd7(0x14d)]('service')},'message':_0x2a4bd7(0x143)+_0x420b3d[_0x2a4bd7(0x14d)](_0x2a4bd7(0x125))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x5f545d),'manifest':_0x5f545d[_0x2a4bd7(0x13d)],'normalizedManifest':toPublicNormalizedServiceTree(_0x5f545d['normalizedManifest'])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a63_0x4b0ef9=a63_0x28dd;(function(_0x1d5bd1,_0x136924){const _0x3de752=a63_0x28dd,_0x47c959=_0x1d5bd1();while(!![]){try{const _0x6032a8=-parseInt(_0x3de752(0x1ff))/0x1+-parseInt(_0x3de752(0x1f7))/0x2+-parseInt(_0x3de752(0x1e8))/0x3*(-parseInt(_0x3de752(0x1de))/0x4)+parseInt(_0x3de752(0x208))/0x5+parseInt(_0x3de752(0x1df))/0x6*(-parseInt(_0x3de752(0x213))/0x7)+-parseInt(_0x3de752(0x1e5))/0x8*(-parseInt(_0x3de752(0x21c))/0x9)+-parseInt(_0x3de752(0x224))/0xa;if(_0x6032a8===_0x136924)break;else _0x47c959['push'](_0x47c959['shift']());}catch(_0x4b501f){_0x47c959['push'](_0x47c959['shift']());}}}(a63_0x3f07,0x51dfb));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a63_0x28dd(_0x1675e1,_0x2a039e){_0x1675e1=_0x1675e1-0x1d5;const _0x3f0790=a63_0x3f07();let _0x28dd7e=_0x3f0790[_0x1675e1];return _0x28dd7e;}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';function a63_0x3f07(){const _0x58ddc7=['normalizedManifest','commands','command','isArray','report','104293WbTlYH','invalid','reduce','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','.tmp','service.json','join','cliPath','utf8','2464940PnszYY','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','].manifest','manifests','Local\x20service\x20not\x20found:\x20','sha256','Service\x20manifest\x20validation\x20failed:\x0a','length','parse','Invalid\x20service\x20manifest\x20JSON:\x20','warnings','77cVAbYv','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','services\x20must\x20be\x20an\x20array','now','version','stringify','object','push','risk','6255pECVgj','Invalid\x20service\x20registry\x20JSON:\x20','slice','path','Unsupported\x20service\x20registry\x20schemaVersion:\x20','findIndex','flatMap','startsWith','5494140tsgxHd','validation','message','name','description','Unsupported\x20schemaVersion:\x20','find','registry','errors','splice','Cannot\x20write\x20service\x20registry:\x20','serviceCode','updatedAt','sort','target','4FSibxA','241446ZYmelR','service','code','registryIndex','toISOString','$.services[','5072cTqFYI','commandCount','].manifest.','1762728kDzKNo','sourceHash','schemaVersion','importedAt','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifest','empty','map','kind','file','missing','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','services','CliError','localeCompare','178962cxjHdJ','Service\x20manifest\x20file\x20not\x20found:\x20','trim'];a63_0x3f07=function(){return _0x58ddc7;};return a63_0x3f07();}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x4b0ef9(0x204);export function getServiceRegistryPath(_0x1e8a1c={}){return resolve(_0x1e8a1c['homeDir']??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x117ac7={}){const _0x2d34e6=a63_0x4b0ef9,_0x1e50c7=getServiceRegistryPath(_0x117ac7);if(!existsSync(_0x1e50c7))return emptyServiceRegistry();try{const _0x2d1f06=readFileSync(_0x1e50c7,_0x2d34e6(0x207));if(!_0x2d1f06['trim']())return emptyServiceRegistry();const _0x42acaf=JSON[_0x2d34e6(0x210)](_0x2d1f06);if(_0x42acaf['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2d34e6(0x225)](_0x2d34e6(0x220)+String(_0x42acaf[_0x2d34e6(0x1ea)]),'Remove\x20or\x20migrate\x20'+_0x1e50c7+'.');if(!Array[_0x2d34e6(0x1fd)](_0x42acaf[_0x2d34e6(0x1f4)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x42acaf[_0x2d34e6(0x1db)],'services':_0x42acaf[_0x2d34e6(0x1f4)]};}catch(_0x311b27){if(_0x311b27 instanceof Error&&_0x311b27['name']===_0x2d34e6(0x1f5))throw _0x311b27;throw CliErrors['validation'](_0x2d34e6(0x21d)+_0x1e50c7,_0x2d34e6(0x209));}}export function writeServiceRegistry(_0x474be4,_0x41e01c={}){const _0x22ae92=a63_0x4b0ef9,_0x4aeb84=getServiceRegistryPath(_0x41e01c),_0x190502=dirname(_0x4aeb84);!existsSync(_0x190502)&&mkdirSync(_0x190502,{'recursive':!![]});const _0x462be5=_0x4aeb84+_0x22ae92(0x203);try{writeFileSync(_0x462be5,JSON[_0x22ae92(0x218)](_0x474be4,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x462be5,_0x4aeb84);}catch(_0x3d0612){try{unlinkSync(_0x462be5);}catch{}if(_0x3d0612?.[_0x22ae92(0x1e1)]==='ENOENT')throw CliErrors['validation'](_0x22ae92(0x1d9)+_0x4aeb84);throw _0x3d0612;}return _0x4aeb84;}export function loadServiceManifestFromFile(_0x257012){const _0xca1aac=a63_0x4b0ef9,_0x5023ec=resolve(_0x257012);if(!existsSync(_0x5023ec))throw CliErrors['validation'](_0xca1aac(0x1f8)+_0x257012);let _0x367cfd;const _0x6d498a=readFileSync(_0x5023ec,'utf8');try{_0x367cfd=JSON[_0xca1aac(0x210)](_0x6d498a);}catch{throw CliErrors[_0xca1aac(0x225)](_0xca1aac(0x211)+_0x257012,_0xca1aac(0x1f3));}const _0xb195=sha256(_0x6d498a),_0x322751=extractLoadedServiceManifests(_0x367cfd,_0xb195),_0x830c5d=aggregateValidationReports(_0x322751),_0x3de326=_0x322751[0x0];return{'filePath':_0x5023ec,'hash':_0xb195,'kind':isServiceRegistryLike(_0x367cfd)?_0xca1aac(0x1d6):_0xca1aac(0x1ed),'manifest':_0x3de326?.[_0xca1aac(0x1ed)]??_0x367cfd,'report':_0x830c5d,'normalizedManifest':_0x322751[_0xca1aac(0x20f)]===0x1?_0x3de326?.[_0xca1aac(0x1fa)]:undefined,'manifests':_0x322751};}export function importServiceManifest(_0x491db4,_0x205254={}){const _0x5581f4=a63_0x4b0ef9,_0x1ed751=loadServiceManifestFromFile(_0x491db4);if(!_0x1ed751[_0x5581f4(0x1fe)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x1ed751[_0x5581f4(0x1fe)]),_0x5581f4(0x202));if(_0x1ed751[_0x5581f4(0x20b)][_0x5581f4(0x20f)]===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5581f4(0x1ec));const _0x2611ba=readServiceRegistry(_0x205254),_0x17fa62=(_0x205254[_0x5581f4(0x216)]??(()=>new Date()))()[_0x5581f4(0x1e3)](),_0x4166b2=[];let _0x370f8f=0x0,_0x25d760=0x0;for(const _0x5c2618 of _0x1ed751[_0x5581f4(0x20b)]){if(!_0x5c2618[_0x5581f4(0x1fa)])continue;const _0x1b023b=_0x5c2618[_0x5581f4(0x1fa)][_0x5581f4(0x1e0)][_0x5581f4(0x1e1)],_0x2c9309={'serviceCode':_0x1b023b,'version':_0x5c2618[_0x5581f4(0x1fa)]['version'],'importedAt':_0x17fa62,'source':{'type':_0x5581f4(0x1f1),'path':_0x1ed751['filePath'],'hash':_0x5c2618[_0x5581f4(0x1e9)]},'manifest':_0x5c2618['manifest'],'normalizedManifest':_0x5c2618[_0x5581f4(0x1fa)]},_0x38f48d=_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x221)](_0x320877=>_0x320877[_0x5581f4(0x1da)]===_0x1b023b);_0x38f48d>=0x0?(_0x2611ba[_0x5581f4(0x1f4)][_0x38f48d]=_0x2c9309,_0x25d760++):(_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x21a)](_0x2c9309),_0x370f8f++),_0x4166b2['push'](_0x2c9309);}_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x1dc)]((_0x27cd62,_0x38705d)=>_0x27cd62['serviceCode'][_0x5581f4(0x1f6)](_0x38705d[_0x5581f4(0x1da)])),_0x2611ba[_0x5581f4(0x1db)]=_0x17fa62;const _0x1ea517=writeServiceRegistry(_0x2611ba,_0x205254);return{'registryPath':_0x1ea517,'entry':_0x4166b2[0x0],'replaced':_0x4166b2[_0x5581f4(0x20f)]===0x1?_0x25d760===0x1:_0x25d760>0x0,'entries':_0x4166b2,'imported':_0x370f8f,'updated':_0x25d760,'serviceCount':_0x2611ba['services'][_0x5581f4(0x20f)]};}export function exportServiceManifest(_0x5db004,_0xf79577,_0x467e07={}){const _0x2dab8a=a63_0x4b0ef9,_0x5de3d3=getServiceRegistryPath(_0x467e07),_0x543ff5=getLocalServiceEntry(_0x5db004,_0x467e07);if(!_0x543ff5)throw CliErrors[_0x2dab8a(0x225)](_0x2dab8a(0x20c)+_0x5db004,_0x2dab8a(0x214));const _0x53dd1c=resolve(_0xf79577),_0x385a6d=dirname(_0x53dd1c);return!existsSync(_0x385a6d)&&mkdirSync(_0x385a6d,{'recursive':!![]}),writeFileSync(_0x53dd1c,JSON['stringify'](_0x543ff5[_0x2dab8a(0x1ed)],null,0x2)+'\x0a',{'encoding':_0x2dab8a(0x207),'mode':0x180}),{'registryPath':_0x5de3d3,'filePath':_0x53dd1c,'entry':_0x543ff5};}export function removeServiceManifest(_0x38b3de,_0xb02f2={}){const _0x2f7194=a63_0x4b0ef9,_0x1318ce=readServiceRegistry(_0xb02f2),_0x3fa0f5=_0x38b3de[_0x2f7194(0x1f9)](),_0x3b69f9=_0x1318ce['services'][_0x2f7194(0x221)](_0x4a49f2=>_0x4a49f2[_0x2f7194(0x1da)]===_0x3fa0f5);if(_0x3b69f9<0x0)throw CliErrors[_0x2f7194(0x225)](_0x2f7194(0x20c)+_0x3fa0f5,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x229246]=_0x1318ce[_0x2f7194(0x1f4)][_0x2f7194(0x1d8)](_0x3b69f9,0x1),_0x5d4208=(_0xb02f2[_0x2f7194(0x216)]??(()=>new Date()))()[_0x2f7194(0x1e3)]();_0x1318ce['updatedAt']=_0x5d4208;const _0x3f365d=writeServiceRegistry(_0x1318ce,_0xb02f2);return{'registryPath':_0x3f365d,'entry':_0x229246,'serviceCount':_0x1318ce[_0x2f7194(0x1f4)][_0x2f7194(0x20f)]};}export function listLocalServices(_0x3f8e47={}){const _0x5c1456=a63_0x4b0ef9;return readServiceRegistry(_0x3f8e47)[_0x5c1456(0x1f4)];}export function getLocalServiceEntry(_0x5bfe1e,_0x5bc4d7={}){const _0x115061=a63_0x4b0ef9;return readServiceRegistry(_0x5bc4d7)['services'][_0x115061(0x1d5)](_0x4f75c1=>_0x4f75c1[_0x115061(0x1da)]===_0x5bfe1e[_0x115061(0x1f9)]());}export function listLocalServiceTrees(_0x52796d={}){const _0x3a0483=a63_0x4b0ef9;return readServiceRegistry(_0x52796d)[_0x3a0483(0x1f4)][_0x3a0483(0x1ef)](_0x35ba06=>_0x35ba06['normalizedManifest']);}export function inspectServiceRegistry(_0x5f0d8a={}){const _0xd9dade=a63_0x4b0ef9,_0x21eff9=getServiceRegistryPath(_0x5f0d8a);if(!existsSync(_0x21eff9))return emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x1f2),![]);try{const _0x206f59=readFileSync(_0x21eff9,_0xd9dade(0x207));if(!_0x206f59[_0xd9dade(0x1f9)]())return emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x1ee),!![]);const _0x5b9f7f=JSON[_0xd9dade(0x210)](_0x206f59);if(_0x5b9f7f[_0xd9dade(0x1ea)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'schemaVersion':_0x5b9f7f[_0xd9dade(0x1ea)],'message':_0xd9dade(0x229)+String(_0x5b9f7f[_0xd9dade(0x1ea)])};if(!Array['isArray'](_0x5b9f7f[_0xd9dade(0x1f4)]))return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5b9f7f[_0xd9dade(0x1db)],'message':_0xd9dade(0x215)};const _0x4dd4ae=_0x5b9f7f['services'][_0xd9dade(0x1ef)](summarizeLocalServiceEntry);return{'registryPath':_0x21eff9,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5b9f7f[_0xd9dade(0x1db)],'serviceCount':_0x4dd4ae[_0xd9dade(0x20f)],'commandCount':_0x4dd4ae[_0xd9dade(0x201)]((_0x3494b0,_0x551324)=>_0x3494b0+_0x551324[_0xd9dade(0x1e6)],0x0),'services':_0x4dd4ae};}catch(_0xa2b056){return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'message':_0xa2b056 instanceof Error?_0xa2b056[_0xd9dade(0x226)]:String(_0xa2b056)};}}export function formatValidationFailure(_0x38c341){const _0x1eb1fa=a63_0x4b0ef9,_0x55974f=_0x38c341[_0x1eb1fa(0x1d7)][_0x1eb1fa(0x1ef)](_0x29a3e6=>_0x29a3e6[_0x1eb1fa(0x21f)]+':\x20'+_0x29a3e6[_0x1eb1fa(0x226)]);return _0x1eb1fa(0x20e)+_0x55974f[_0x1eb1fa(0x205)]('\x0a');}function extractLoadedServiceManifests(_0x4c2b0e,_0xac0df6){const _0x303b0a=a63_0x4b0ef9;if(!isServiceRegistryLike(_0x4c2b0e)){const _0x595dfd=_0x4c2b0e,{manifest:_0x11a4c5,errors:_0x18fd76}=adaptServiceTreeManifestForLegacyFramework(_0x595dfd),_0xaedc71=validateServiceTreeManifest(_0x11a4c5),_0x3d1e37=mergeValidationErrors(_0xaedc71,_0x18fd76);return[{'manifest':_0x595dfd,'report':_0x3d1e37,'normalizedManifest':_0x3d1e37['ok']?normalizeServiceTreeManifest(_0x11a4c5):undefined,'sourceHash':_0xac0df6}];}return _0x4c2b0e[_0x303b0a(0x1f4)][_0x303b0a(0x1ef)]((_0x43f50e,_0x1ba94b)=>{const _0x3b496e=_0x303b0a,_0x4a0d72=isObjectRecord(_0x43f50e)?_0x43f50e[_0x3b496e(0x1ed)]:undefined,{manifest:_0x505d9d,errors:_0x5e40be}=adaptServiceTreeManifestForLegacyFramework(_0x4a0d72),_0x32cf7f=validateServiceTreeManifest(_0x505d9d),_0x4e8d9a=mergeValidationErrors(_0x32cf7f,_0x5e40be),_0x550ff3=isObjectRecord(_0x43f50e)&&typeof _0x43f50e[_0x3b496e(0x1da)]==='string'?_0x43f50e[_0x3b496e(0x1da)]:undefined;return{'manifest':_0x4a0d72,'report':_0x4e8d9a,'normalizedManifest':_0x4e8d9a['ok']?normalizeServiceTreeManifest(_0x505d9d):undefined,'sourceHash':sha256(JSON[_0x3b496e(0x218)](_0x4a0d72,null,0x2)+'\x0a'),'registryIndex':_0x1ba94b,'registryServiceCode':_0x550ff3};});}function mergeValidationErrors(_0x10845e,_0x44be1b){const _0x140807=a63_0x4b0ef9,_0x3da25d=_0x10845e['errors'][_0x140807(0x1ef)](_0x5d0c45=>_0x5d0c45[_0x140807(0x226)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x5d0c45,'message':'bff\x20target\x20requires\x20functionName.'}:_0x5d0c45),_0x473b74=[..._0x44be1b,..._0x3da25d];return{'ok':_0x473b74[_0x140807(0x20f)]===0x0,'errors':_0x473b74,'warnings':_0x10845e[_0x140807(0x212)]};}function aggregateValidationReports(_0xfa66a3){const _0x41152f=a63_0x4b0ef9,_0x244f4e=_0xfa66a3[_0x41152f(0x222)](_0xbb4500=>_0xbb4500['registryIndex']===undefined?_0xbb4500[_0x41152f(0x1fe)][_0x41152f(0x1d7)]:_0xbb4500[_0x41152f(0x1fe)][_0x41152f(0x1d7)]['map'](_0x56d0d0=>({..._0x56d0d0,'path':prefixRegistryIssuePath(_0xbb4500[_0x41152f(0x1e2)],_0x56d0d0[_0x41152f(0x21f)])}))),_0x3860cd=_0xfa66a3[_0x41152f(0x222)](_0x855c25=>_0x855c25[_0x41152f(0x1e2)]===undefined?_0x855c25[_0x41152f(0x1fe)]['warnings']:_0x855c25[_0x41152f(0x1fe)][_0x41152f(0x212)]['map'](_0x571661=>({..._0x571661,'path':prefixRegistryIssuePath(_0x855c25[_0x41152f(0x1e2)],_0x571661[_0x41152f(0x21f)])})));return{'ok':_0x244f4e[_0x41152f(0x20f)]===0x0,'errors':_0x244f4e,'warnings':_0x3860cd};}function prefixRegistryIssuePath(_0x977f09,_0x1ab41a){const _0x181286=a63_0x4b0ef9;if(_0x1ab41a==='$')return'$.services['+_0x977f09+_0x181286(0x20a);if(_0x1ab41a[_0x181286(0x223)]('$.'))return _0x181286(0x1e4)+_0x977f09+'].manifest'+_0x1ab41a[_0x181286(0x21e)](0x1);if(_0x1ab41a[_0x181286(0x223)]('$['))return _0x181286(0x1e4)+_0x977f09+_0x181286(0x20a)+_0x1ab41a[_0x181286(0x21e)](0x1);return _0x181286(0x1e4)+_0x977f09+_0x181286(0x1e7)+_0x1ab41a;}function isServiceRegistryLike(_0x406659){const _0x5e75e5=a63_0x4b0ef9;return isObjectRecord(_0x406659)&&_0x406659[_0x5e75e5(0x1ea)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5e75e5(0x1fd)](_0x406659[_0x5e75e5(0x1f4)]);}function isObjectRecord(_0x22af71){const _0x4ee277=a63_0x4b0ef9;return Boolean(_0x22af71)&&typeof _0x22af71===_0x4ee277(0x219)&&!Array['isArray'](_0x22af71);}function emptyServiceRegistryInspection(_0x6f6971,_0xb3387c,_0x2ff586){return{'registryPath':_0x6f6971,'exists':_0x2ff586,'status':_0xb3387c,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0xabeb4b){const _0xb6f245=a63_0x4b0ef9,_0x5d5637=_0xabeb4b['normalizedManifest'],_0x7d52a4=_0x5d5637[_0xb6f245(0x1fb)][_0xb6f245(0x1ef)](_0x69ae64=>({'path':_0x69ae64[_0xb6f245(0x206)],'description':_0x69ae64['description'],'risk':_0x69ae64[_0xb6f245(0x21b)],'targetKind':_0x69ae64['target'][_0xb6f245(0x1f0)],'targetCommand':_0x69ae64[_0xb6f245(0x1dd)][_0xb6f245(0x1fc)]}));return{'serviceCode':_0xabeb4b[_0xb6f245(0x1da)],'name':_0x5d5637[_0xb6f245(0x1e0)][_0xb6f245(0x227)],'description':_0x5d5637[_0xb6f245(0x1e0)][_0xb6f245(0x228)],'version':_0xabeb4b[_0xb6f245(0x217)],'importedAt':_0xabeb4b[_0xb6f245(0x1eb)],'source':_0xabeb4b['source'],'commandCount':_0x7d52a4[_0xb6f245(0x20f)],'commands':_0x7d52a4};}function sha256(_0x3d2b48){const _0x36831f=a63_0x4b0ef9;return createHash(_0x36831f(0x20d))['update'](_0x3d2b48)['digest']('hex');}
|
|
1
|
+
(function(_0x2e3f73,_0x5e1bb4){const _0x37b0c3=a64_0x1772,_0x59edf8=_0x2e3f73();while(!![]){try{const _0x55590e=-parseInt(_0x37b0c3(0x1a8))/0x1+-parseInt(_0x37b0c3(0x1b4))/0x2*(parseInt(_0x37b0c3(0x17f))/0x3)+parseInt(_0x37b0c3(0x1bf))/0x4*(-parseInt(_0x37b0c3(0x1b7))/0x5)+-parseInt(_0x37b0c3(0x19b))/0x6+parseInt(_0x37b0c3(0x1b1))/0x7*(parseInt(_0x37b0c3(0x1ba))/0x8)+-parseInt(_0x37b0c3(0x167))/0x9*(-parseInt(_0x37b0c3(0x198))/0xa)+parseInt(_0x37b0c3(0x1a5))/0xb*(parseInt(_0x37b0c3(0x17b))/0xc);if(_0x55590e===_0x5e1bb4)break;else _0x59edf8['push'](_0x59edf8['shift']());}catch(_0x16668e){_0x59edf8['push'](_0x59edf8['shift']());}}}(a64_0x5ecb,0xb142a));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';function a64_0x1772(_0xefc1f1,_0x1431db){_0xefc1f1=_0xefc1f1-0x167;const _0x5ecbfb=a64_0x5ecb();let _0x177245=_0x5ecbfb[_0xefc1f1];return _0x177245;}export function getServiceRegistryPath(_0xa64cdd={}){const _0x13c84b=a64_0x1772;return resolve(_0xa64cdd['homeDir']??homedir(),PRODUCT_CONFIG[_0x13c84b(0x1a9)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x49f4da={}){const _0x56786b=a64_0x1772,_0x2abf2b=getServiceRegistryPath(_0x49f4da);if(!existsSync(_0x2abf2b))return emptyServiceRegistry();try{const _0x492332=readFileSync(_0x2abf2b,'utf8');if(!_0x492332['trim']())return emptyServiceRegistry();const _0x167a03=JSON[_0x56786b(0x1b0)](_0x492332);if(_0x167a03['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x56786b(0x188)](_0x56786b(0x16e)+String(_0x167a03['schemaVersion']),_0x56786b(0x1b9)+_0x2abf2b+'.');if(!Array[_0x56786b(0x1ad)](_0x167a03[_0x56786b(0x199)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x167a03[_0x56786b(0x182)],'services':_0x167a03[_0x56786b(0x199)]};}catch(_0x5d942b){if(_0x5d942b instanceof Error&&_0x5d942b[_0x56786b(0x18a)]===_0x56786b(0x1bc))throw _0x5d942b;throw CliErrors['validation']('Invalid\x20service\x20registry\x20JSON:\x20'+_0x2abf2b,_0x56786b(0x195));}}export function writeServiceRegistry(_0x23847f,_0x245ca7={}){const _0x5c1dd4=a64_0x1772,_0x1f446e=getServiceRegistryPath(_0x245ca7),_0x22ece4=dirname(_0x1f446e);!existsSync(_0x22ece4)&&mkdirSync(_0x22ece4,{'recursive':!![]});const _0x1fa67c=_0x1f446e+'.tmp';try{writeFileSync(_0x1fa67c,JSON[_0x5c1dd4(0x16d)](_0x23847f,null,0x2)+'\x0a',{'encoding':_0x5c1dd4(0x1b2),'mode':0x180}),renameSync(_0x1fa67c,_0x1f446e);}catch(_0x5095dd){try{unlinkSync(_0x1fa67c);}catch{}if(_0x5095dd?.[_0x5c1dd4(0x196)]===_0x5c1dd4(0x1ae))throw CliErrors[_0x5c1dd4(0x188)](_0x5c1dd4(0x1bd)+_0x1f446e);throw _0x5095dd;}return _0x1f446e;}export function loadServiceManifestFromFile(_0x38348d){const _0x5f45e2=a64_0x1772,_0x68e58=resolve(_0x38348d);if(!existsSync(_0x68e58))throw CliErrors['validation'](_0x5f45e2(0x180)+_0x38348d);let _0x363305;const _0x1d0c2b=readFileSync(_0x68e58,_0x5f45e2(0x1b2));try{_0x363305=JSON[_0x5f45e2(0x1b0)](_0x1d0c2b);}catch{throw CliErrors[_0x5f45e2(0x188)](_0x5f45e2(0x16f)+_0x38348d,_0x5f45e2(0x1be));}const _0x5aab4e=sha256(_0x1d0c2b),_0x35a4c4=extractLoadedServiceManifests(_0x363305,_0x5aab4e),_0x3aa0bf=aggregateValidationReports(_0x35a4c4),_0x4b007b=_0x35a4c4[0x0];return{'filePath':_0x68e58,'hash':_0x5aab4e,'kind':isServiceRegistryLike(_0x363305)?_0x5f45e2(0x17a):_0x5f45e2(0x18c),'manifest':_0x4b007b?.['manifest']??_0x363305,'report':_0x3aa0bf,'normalizedManifest':_0x35a4c4[_0x5f45e2(0x190)]===0x1?_0x4b007b?.[_0x5f45e2(0x189)]:undefined,'manifests':_0x35a4c4};}export function importServiceManifest(_0xa73013,_0x17bd63={}){const _0x4a61e0=a64_0x1772,_0x33bc44=loadServiceManifestFromFile(_0xa73013);if(!_0x33bc44[_0x4a61e0(0x17d)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x33bc44[_0x4a61e0(0x17d)]),_0x4a61e0(0x184));if(_0x33bc44['manifests'][_0x4a61e0(0x190)]===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x58a465=readServiceRegistry(_0x17bd63),_0x3f6b16=(_0x17bd63[_0x4a61e0(0x177)]??(()=>new Date()))()[_0x4a61e0(0x192)](),_0x144cc6=[];let _0x16ce9c=0x0,_0x18e048=0x0;for(const _0xa2d99 of _0x33bc44[_0x4a61e0(0x1a1)]){if(!_0xa2d99[_0x4a61e0(0x189)])continue;const _0x4f3d13=_0xa2d99[_0x4a61e0(0x189)][_0x4a61e0(0x174)][_0x4a61e0(0x196)],_0x59f48e={'serviceCode':_0x4f3d13,'version':_0xa2d99['normalizedManifest'][_0x4a61e0(0x16c)],'importedAt':_0x3f6b16,'source':{'type':_0x4a61e0(0x171),'path':_0x33bc44['filePath'],'hash':_0xa2d99[_0x4a61e0(0x1b8)]},'manifest':_0xa2d99[_0x4a61e0(0x18c)],'normalizedManifest':_0xa2d99[_0x4a61e0(0x189)]},_0x4d9294=_0x58a465[_0x4a61e0(0x199)][_0x4a61e0(0x1ac)](_0x42240=>_0x42240['serviceCode']===_0x4f3d13);_0x4d9294>=0x0?(_0x58a465[_0x4a61e0(0x199)][_0x4d9294]=_0x59f48e,_0x18e048++):(_0x58a465[_0x4a61e0(0x199)]['push'](_0x59f48e),_0x16ce9c++),_0x144cc6[_0x4a61e0(0x186)](_0x59f48e);}_0x58a465['services'][_0x4a61e0(0x172)]((_0x370571,_0x580cb3)=>_0x370571[_0x4a61e0(0x1b5)]['localeCompare'](_0x580cb3[_0x4a61e0(0x1b5)])),_0x58a465[_0x4a61e0(0x182)]=_0x3f6b16;const _0x56aac4=writeServiceRegistry(_0x58a465,_0x17bd63);return{'registryPath':_0x56aac4,'entry':_0x144cc6[0x0],'replaced':_0x144cc6[_0x4a61e0(0x190)]===0x1?_0x18e048===0x1:_0x18e048>0x0,'entries':_0x144cc6,'imported':_0x16ce9c,'updated':_0x18e048,'serviceCount':_0x58a465[_0x4a61e0(0x199)]['length']};}export function exportServiceManifest(_0xdbab65,_0x30cea1,_0x38c37e={}){const _0x2aa616=a64_0x1772,_0x3824ce=getServiceRegistryPath(_0x38c37e),_0x21e647=getLocalServiceEntry(_0xdbab65,_0x38c37e);if(!_0x21e647)throw CliErrors[_0x2aa616(0x188)](_0x2aa616(0x169)+_0xdbab65,_0x2aa616(0x1aa));const _0xac400c=resolve(_0x30cea1),_0xaffb1e=dirname(_0xac400c);return!existsSync(_0xaffb1e)&&mkdirSync(_0xaffb1e,{'recursive':!![]}),writeFileSync(_0xac400c,JSON[_0x2aa616(0x16d)](_0x21e647[_0x2aa616(0x18c)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x3824ce,'filePath':_0xac400c,'entry':_0x21e647};}export function removeServiceManifest(_0x10537d,_0x294628={}){const _0x6317fe=a64_0x1772,_0x4898d8=readServiceRegistry(_0x294628),_0x1616f8=_0x10537d[_0x6317fe(0x193)](),_0x52c3b6=_0x4898d8[_0x6317fe(0x199)]['findIndex'](_0x5eb3b1=>_0x5eb3b1['serviceCode']===_0x1616f8);if(_0x52c3b6<0x0)throw CliErrors[_0x6317fe(0x188)](_0x6317fe(0x169)+_0x1616f8,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x27a5d9]=_0x4898d8[_0x6317fe(0x199)][_0x6317fe(0x17c)](_0x52c3b6,0x1),_0x5d0eb8=(_0x294628['now']??(()=>new Date()))()[_0x6317fe(0x192)]();_0x4898d8[_0x6317fe(0x182)]=_0x5d0eb8;const _0x5c85c8=writeServiceRegistry(_0x4898d8,_0x294628);return{'registryPath':_0x5c85c8,'entry':_0x27a5d9,'serviceCount':_0x4898d8[_0x6317fe(0x199)][_0x6317fe(0x190)]};}function a64_0x5ecb(){const _0x4e3823=['Unsupported\x20schemaVersion:\x20','1597089ItBFOk','Service\x20manifest\x20file\x20not\x20found:\x20','slice','updatedAt','commands','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','map','push','].manifest','validation','normalizedManifest','name','invalid','manifest','registryIndex','errors','message','length','object','toISOString','trim','].manifest.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','code','sha256','2907410wPyldV','services','schemaVersion','4044348bUkQxi','empty','command','warnings','digest','join','manifests','Service\x20manifest\x20validation\x20failed:\x0a','importedAt','commandCount','87406xjWIfH','startsWith','missing','174489ONrqtj','homeDirName','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','path','findIndex','isArray','ENOENT','bff\x20target\x20requires\x20functionName.','parse','175IGuZYr','utf8','target','4WnLtic','serviceCode','string','5nJRHwj','sourceHash','Remove\x20or\x20migrate\x20','329624plcXHq','source','CliError','Cannot\x20write\x20service\x20registry:\x20','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','1432364uvXNaA','9khLeEb','update','Local\x20service\x20not\x20found:\x20','description','$.services[','version','stringify','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Invalid\x20service\x20manifest\x20JSON:\x20','flatMap','file','sort','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','service','kind','reduce','now','hex','find','registry','2532cCoGgD','splice','report'];a64_0x5ecb=function(){return _0x4e3823;};return a64_0x5ecb();}export function listLocalServices(_0x154918={}){const _0x512f71=a64_0x1772;return readServiceRegistry(_0x154918)[_0x512f71(0x199)];}export function getLocalServiceEntry(_0x158666,_0x514208={}){const _0x663c91=a64_0x1772;return readServiceRegistry(_0x514208)[_0x663c91(0x199)][_0x663c91(0x179)](_0x488908=>_0x488908['serviceCode']===_0x158666['trim']());}export function listLocalServiceTrees(_0x3c0deb={}){const _0x4b7210=a64_0x1772;return readServiceRegistry(_0x3c0deb)[_0x4b7210(0x199)][_0x4b7210(0x185)](_0x363e33=>_0x363e33['normalizedManifest']);}export function inspectServiceRegistry(_0x34bae9={}){const _0x23b6b9=a64_0x1772,_0x2c14f0=getServiceRegistryPath(_0x34bae9);if(!existsSync(_0x2c14f0))return emptyServiceRegistryInspection(_0x2c14f0,_0x23b6b9(0x1a7),![]);try{const _0x2c8c8f=readFileSync(_0x2c14f0,'utf8');if(!_0x2c8c8f[_0x23b6b9(0x193)]())return emptyServiceRegistryInspection(_0x2c14f0,_0x23b6b9(0x19c),!![]);const _0x1d0dfc=JSON[_0x23b6b9(0x1b0)](_0x2c8c8f);if(_0x1d0dfc['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x2c14f0,_0x23b6b9(0x18b),!![]),'schemaVersion':_0x1d0dfc[_0x23b6b9(0x19a)],'message':_0x23b6b9(0x17e)+String(_0x1d0dfc[_0x23b6b9(0x19a)])};if(!Array['isArray'](_0x1d0dfc[_0x23b6b9(0x199)]))return{...emptyServiceRegistryInspection(_0x2c14f0,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1d0dfc[_0x23b6b9(0x182)],'message':'services\x20must\x20be\x20an\x20array'};const _0xee9db=_0x1d0dfc[_0x23b6b9(0x199)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x2c14f0,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1d0dfc[_0x23b6b9(0x182)],'serviceCount':_0xee9db['length'],'commandCount':_0xee9db[_0x23b6b9(0x176)]((_0x1a6e8a,_0x3e6b26)=>_0x1a6e8a+_0x3e6b26[_0x23b6b9(0x1a4)],0x0),'services':_0xee9db};}catch(_0x20c822){return{...emptyServiceRegistryInspection(_0x2c14f0,_0x23b6b9(0x18b),!![]),'message':_0x20c822 instanceof Error?_0x20c822[_0x23b6b9(0x18f)]:String(_0x20c822)};}}export function formatValidationFailure(_0x21d533){const _0x20a2ea=a64_0x1772,_0x2a2277=_0x21d533[_0x20a2ea(0x18e)][_0x20a2ea(0x185)](_0x394b52=>_0x394b52[_0x20a2ea(0x1ab)]+':\x20'+_0x394b52['message']);return _0x20a2ea(0x1a2)+_0x2a2277[_0x20a2ea(0x1a0)]('\x0a');}function extractLoadedServiceManifests(_0x2e7bcf,_0x405a4b){const _0x4ad3c3=a64_0x1772;if(!isServiceRegistryLike(_0x2e7bcf)){const _0x206ab1=_0x2e7bcf,{manifest:_0x42e56a,errors:_0x2c5141}=adaptServiceTreeManifestForLegacyFramework(_0x206ab1),_0x3e97c8=validateServiceTreeManifest(_0x42e56a),_0x1b6332=mergeValidationErrors(_0x3e97c8,_0x2c5141);return[{'manifest':_0x206ab1,'report':_0x1b6332,'normalizedManifest':_0x1b6332['ok']?normalizeServiceTreeManifest(_0x42e56a):undefined,'sourceHash':_0x405a4b}];}return _0x2e7bcf[_0x4ad3c3(0x199)][_0x4ad3c3(0x185)]((_0x21ae66,_0x209fa1)=>{const _0x128556=_0x4ad3c3,_0x5b2f3d=isObjectRecord(_0x21ae66)?_0x21ae66[_0x128556(0x18c)]:undefined,{manifest:_0x49e13e,errors:_0x10db20}=adaptServiceTreeManifestForLegacyFramework(_0x5b2f3d),_0x29b77a=validateServiceTreeManifest(_0x49e13e),_0x20dd05=mergeValidationErrors(_0x29b77a,_0x10db20),_0x2cd0c7=isObjectRecord(_0x21ae66)&&typeof _0x21ae66['serviceCode']===_0x128556(0x1b6)?_0x21ae66['serviceCode']:undefined;return{'manifest':_0x5b2f3d,'report':_0x20dd05,'normalizedManifest':_0x20dd05['ok']?normalizeServiceTreeManifest(_0x49e13e):undefined,'sourceHash':sha256(JSON[_0x128556(0x16d)](_0x5b2f3d,null,0x2)+'\x0a'),'registryIndex':_0x209fa1,'registryServiceCode':_0x2cd0c7};});}function mergeValidationErrors(_0x9cc00a,_0x68395f){const _0x44e95e=a64_0x1772,_0x5d2275=_0x9cc00a['errors'][_0x44e95e(0x185)](_0x45eaea=>_0x45eaea[_0x44e95e(0x18f)]===_0x44e95e(0x173)?{..._0x45eaea,'message':_0x44e95e(0x1af)}:_0x45eaea),_0x1fc08f=[..._0x68395f,..._0x5d2275];return{'ok':_0x1fc08f[_0x44e95e(0x190)]===0x0,'errors':_0x1fc08f,'warnings':_0x9cc00a[_0x44e95e(0x19e)]};}function aggregateValidationReports(_0x4415d7){const _0x303936=a64_0x1772,_0xe28b15=_0x4415d7[_0x303936(0x170)](_0x20a91b=>_0x20a91b[_0x303936(0x18d)]===undefined?_0x20a91b[_0x303936(0x17d)][_0x303936(0x18e)]:_0x20a91b[_0x303936(0x17d)][_0x303936(0x18e)]['map'](_0x3df79a=>({..._0x3df79a,'path':prefixRegistryIssuePath(_0x20a91b[_0x303936(0x18d)],_0x3df79a[_0x303936(0x1ab)])}))),_0x3ac167=_0x4415d7[_0x303936(0x170)](_0x2dbc37=>_0x2dbc37[_0x303936(0x18d)]===undefined?_0x2dbc37[_0x303936(0x17d)][_0x303936(0x19e)]:_0x2dbc37[_0x303936(0x17d)][_0x303936(0x19e)]['map'](_0x40d403=>({..._0x40d403,'path':prefixRegistryIssuePath(_0x2dbc37[_0x303936(0x18d)],_0x40d403[_0x303936(0x1ab)])})));return{'ok':_0xe28b15[_0x303936(0x190)]===0x0,'errors':_0xe28b15,'warnings':_0x3ac167};}function prefixRegistryIssuePath(_0x5651f0,_0x6f6904){const _0x1f36fc=a64_0x1772;if(_0x6f6904==='$')return _0x1f36fc(0x16b)+_0x5651f0+_0x1f36fc(0x187);if(_0x6f6904[_0x1f36fc(0x1a6)]('$.'))return _0x1f36fc(0x16b)+_0x5651f0+'].manifest'+_0x6f6904[_0x1f36fc(0x181)](0x1);if(_0x6f6904[_0x1f36fc(0x1a6)]('$['))return'$.services['+_0x5651f0+_0x1f36fc(0x187)+_0x6f6904[_0x1f36fc(0x181)](0x1);return _0x1f36fc(0x16b)+_0x5651f0+_0x1f36fc(0x194)+_0x6f6904;}function isServiceRegistryLike(_0x4b1fa9){const _0x576343=a64_0x1772;return isObjectRecord(_0x4b1fa9)&&_0x4b1fa9[_0x576343(0x19a)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x576343(0x1ad)](_0x4b1fa9['services']);}function isObjectRecord(_0x5b6a72){const _0x40e879=a64_0x1772;return Boolean(_0x5b6a72)&&typeof _0x5b6a72===_0x40e879(0x191)&&!Array[_0x40e879(0x1ad)](_0x5b6a72);}function emptyServiceRegistryInspection(_0x220803,_0x37453a,_0x4c7fe3){return{'registryPath':_0x220803,'exists':_0x4c7fe3,'status':_0x37453a,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1b96e8){const _0x23041b=a64_0x1772,_0x3acd25=_0x1b96e8[_0x23041b(0x189)],_0x3a9b6e=_0x3acd25[_0x23041b(0x183)][_0x23041b(0x185)](_0x38e3c4=>({'path':_0x38e3c4['cliPath'],'description':_0x38e3c4[_0x23041b(0x16a)],'risk':_0x38e3c4['risk'],'targetKind':_0x38e3c4[_0x23041b(0x1b3)][_0x23041b(0x175)],'targetCommand':_0x38e3c4[_0x23041b(0x1b3)][_0x23041b(0x19d)]}));return{'serviceCode':_0x1b96e8[_0x23041b(0x1b5)],'name':_0x3acd25['service'][_0x23041b(0x18a)],'description':_0x3acd25[_0x23041b(0x174)][_0x23041b(0x16a)],'version':_0x1b96e8[_0x23041b(0x16c)],'importedAt':_0x1b96e8[_0x23041b(0x1a3)],'source':_0x1b96e8[_0x23041b(0x1bb)],'commandCount':_0x3a9b6e[_0x23041b(0x190)],'commands':_0x3a9b6e};}function sha256(_0x11bb04){const _0x5cd615=a64_0x1772;return createHash(_0x5cd615(0x197))[_0x5cd615(0x168)](_0x11bb04)[_0x5cd615(0x19f)](_0x5cd615(0x178));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a65_0x190c(_0x431e67,_0x178c2d){_0x431e67=_0x431e67-0x78;const _0x16715a=a65_0x1671();let _0x190ce4=_0x16715a[_0x431e67];return _0x190ce4;}const a65_0x20ad37=a65_0x190c;(function(_0x42b038,_0x2f6b56){const _0x3d9454=a65_0x190c,_0x1037d2=_0x42b038();while(!![]){try{const _0x5dbf2f=parseInt(_0x3d9454(0x95))/0x1*(-parseInt(_0x3d9454(0x8f))/0x2)+parseInt(_0x3d9454(0x90))/0x3+parseInt(_0x3d9454(0x8c))/0x4+parseInt(_0x3d9454(0x94))/0x5*(parseInt(_0x3d9454(0x85))/0x6)+-parseInt(_0x3d9454(0x97))/0x7+parseInt(_0x3d9454(0x7d))/0x8*(-parseInt(_0x3d9454(0x93))/0x9)+parseInt(_0x3d9454(0x7a))/0xa;if(_0x5dbf2f===_0x2f6b56)break;else _0x1037d2['push'](_0x1037d2['shift']());}catch(_0x5173d7){_0x1037d2['push'](_0x1037d2['shift']());}}}(a65_0x1671,0x4e03a));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';function a65_0x1671(){const _0xe95850=['isSymbolicLink','rendered','type','isDirectory','1457808QJNzqs','Created\x20local\x20Skill\x20draft\x20','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','118966dOgnxP','1137210cnUdfK','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','target','162sgioxh','706915cvZTiT','10jFqZdZ','Skill\x20directory\x20already\x20exists:\x20','2664725NwlduJ','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','trim','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','8931760PLyBuD','create','skillDir','214680WZzVjJ','str','validation','map','read','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','name','files','6RhonBw','path','WRITE'];a65_0x1671=function(){return _0xe95850;};return a65_0x1671();}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':'skill','command':a65_0x20ad37(0x7b),'description':a65_0x20ad37(0x79),'risk':a65_0x20ad37(0x81),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x49f3ba){const _0x309dd8=a65_0x20ad37,_0x433b82=buildSkillCreatePlan(_0x49f3ba['str'](_0x309dd8(0x83)),_0x49f3ba[_0x309dd8(0x7e)](_0x309dd8(0x8a)),_0x49f3ba[_0x309dd8(0x7e)](_0x309dd8(0x92)));return{'method':_0x309dd8(0x87),'url':_0x433b82[_0x309dd8(0x7c)],'body':{'skillName':_0x433b82[_0x309dd8(0x89)]['skillName'],'type':_0x433b82['rendered'][_0x309dd8(0x8a)],'selfContained':!![],'files':_0x433b82['rendered'][_0x309dd8(0x84)]['map'](_0x462eb0=>_0x462eb0['path'])},'description':_0x309dd8(0x91)};},async 'execute'(_0x25334e){const _0x1692d5=a65_0x20ad37,_0x2ec597=buildSkillCreatePlan(_0x25334e[_0x1692d5(0x7e)](_0x1692d5(0x83)),_0x25334e[_0x1692d5(0x7e)](_0x1692d5(0x8a)),_0x25334e[_0x1692d5(0x7e)](_0x1692d5(0x92)));return writeSkillDraft(_0x2ec597,_0x25334e['bool']('force')),{'ok':!![],'data':{'skillName':_0x2ec597[_0x1692d5(0x89)]['skillName'],'type':_0x2ec597[_0x1692d5(0x89)][_0x1692d5(0x8a)],'dir':_0x2ec597['skillDir'],'files':_0x2ec597[_0x1692d5(0x89)][_0x1692d5(0x84)][_0x1692d5(0x80)](_0x337347=>_0x337347[_0x1692d5(0x86)])},'message':_0x1692d5(0x8d)+_0x2ec597[_0x1692d5(0x89)]['skillName']};}};function buildSkillCreatePlan(_0x41a57c,_0x26b545,_0x30effc){const _0x17183f=a65_0x20ad37,_0x2be9a5=_0x26b545['trim'](),_0x4b051c=renderSkillTemplate({'skillName':_0x41a57c,'type':_0x2be9a5});!_0x2be9a5&&writeCliSideChannelLine(_0x17183f(0x98));const _0x46ff2c=resolve(normalizeSkillTarget(_0x30effc));return{'rendered':_0x4b051c,'targetRoot':_0x46ff2c,'skillDir':resolve(_0x46ff2c,_0x4b051c['skillName'])};}function normalizeSkillTarget(_0x1860e0){const _0x19c006=a65_0x20ad37;return(_0x1860e0||DEFAULT_SKILL_TARGET)[_0x19c006(0x78)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x4bff0e,_0x5dff29){const _0x311610=a65_0x20ad37;if(existsSync(_0x4bff0e[_0x311610(0x7c)])){const _0x225914=lstatSync(_0x4bff0e['skillDir']);if(!_0x225914[_0x311610(0x8b)]()||_0x225914[_0x311610(0x88)]())throw CliErrors[_0x311610(0x7f)](_0x311610(0x8e)+_0x4bff0e[_0x311610(0x7c)]);if(!_0x5dff29)throw CliErrors[_0x311610(0x7f)](_0x311610(0x96)+_0x4bff0e[_0x311610(0x7c)],_0x311610(0x82));}for(const _0x13a031 of _0x4bff0e[_0x311610(0x89)][_0x311610(0x84)]){const _0x293107=resolve(_0x4bff0e[_0x311610(0x7c)],_0x13a031['path']),_0x3815c6=dirname(_0x293107);mkdirSync(_0x3815c6,{'recursive':!![]});if(existsSync(_0x293107)&&lstatSync(_0x293107)[_0x311610(0x88)]())throw CliErrors[_0x311610(0x7f)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x293107);writeFileSync(_0x293107,_0x13a031['content'],'utf8');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a66_0x1c56c1=a66_0x5441;(function(_0x3be295,_0x4495b2){const _0x74a8a=a66_0x5441,_0x2b4f36=_0x3be295();while(!![]){try{const _0x1fb471=-parseInt(_0x74a8a(0x1a7))/0x1+parseInt(_0x74a8a(0x199))/0x2*(-parseInt(_0x74a8a(0x194))/0x3)+-parseInt(_0x74a8a(0x18f))/0x4+-parseInt(_0x74a8a(0x19a))/0x5+-parseInt(_0x74a8a(0x192))/0x6*(parseInt(_0x74a8a(0x19d))/0x7)+-parseInt(_0x74a8a(0x1a3))/0x8+-parseInt(_0x74a8a(0x18d))/0x9*(-parseInt(_0x74a8a(0x18b))/0xa);if(_0x1fb471===_0x4495b2)break;else _0x2b4f36['push'](_0x2b4f36['shift']());}catch(_0x4b0bb9){_0x2b4f36['push'](_0x2b4f36['shift']());}}}(a66_0x3a3a,0x2f661));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';function a66_0x3a3a(){const _0x278adf=['action','company',';\x20next\x20write\x20expects\x20revision\x20','Found\x20Skill\x20diagram\x20for\x20','isInteger','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','skill-code','personal','scope','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','expectedDiagramRevision','4187710ULUFav','str','27wqrpUa','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','936056PmVdrs','Updated','skill','12vbbxbC','appCode','33ZlcYki','trim','Skill\x20diagram\x20for\x20','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','\x20Skill\x20diagram\x20for\x20','9534CAJFsQ','1226195HvjIYL','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','diagram-file','473361vzMIKe','Creates\x20or\x20replaces\x20a\x20Mermaid\x20diagram\x20for\x20an\x20exact\x20Skill\x20version.\x20The\x20write\x20is\x20rejected\x20if\x20the\x20server\x20version\x20has\x20changed.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20the\x20diagram\x20body.','expected-diagram-revision','diagram-push','\x20is\x20unchanged.','version','144728SzRUED','diagram-validate',';\x20first\x20write\x20expects\x20revision\x20','skillCode','377141ALOrxa','source-fingerprint'];a66_0x3a3a=function(){return _0x278adf;};return a66_0x3a3a();}import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function a66_0x5441(_0x4e7e6a,_0x209ca5){_0x4e7e6a=_0x4e7e6a-0x189;const _0x3a3a59=a66_0x3a3a();let _0x5441ce=_0x3a3a59[_0x4e7e6a];return _0x5441ce;}function readDiagramTarget(_0x3b7765){const _0x50ade5=a66_0x5441,_0x349ac3=_0x3b7765[_0x50ade5(0x18c)](_0x50ade5(0x1af))[_0x50ade5(0x195)](),_0x381292=_0x3b7765[_0x50ade5(0x18c)](_0x50ade5(0x1a2))['trim'](),_0x348f0c=_0x3b7765[_0x50ade5(0x18c)](_0x50ade5(0x1b1));if(!_0x349ac3||!_0x381292||_0x348f0c!==_0x50ade5(0x1b0)&&_0x348f0c!==_0x50ade5(0x1aa))throw CliErrors['validation'](_0x50ade5(0x1ae));return{'skillCode':_0x349ac3,'version':_0x381292,'scope':_0x348f0c};}async function readDiagramWriteInput(_0x18e83e){const _0xaabc24=a66_0x5441,_0x4c8299=_0x18e83e['num'](_0xaabc24(0x19f)),_0x24f400=_0x18e83e['str'](_0xaabc24(0x1a8))[_0xaabc24(0x195)]();if(!Number[_0xaabc24(0x1ad)](_0x4c8299)||_0x4c8299<0x0)throw CliErrors['validation'](_0xaabc24(0x18e));if(!/^sha256:[0-9a-f]{64}$/['test'](_0x24f400))throw CliErrors['validation'](_0xaabc24(0x19b));return{'expectedDiagramRevision':_0x4c8299,'sourceFingerprint':_0x24f400,'diagram':await readRequiredSkillDiagram(_0x18e83e[_0xaabc24(0x18c)](_0xaabc24(0x19c)))};}export const diagramValidateCommand={'service':a66_0x1c56c1(0x191),'command':a66_0x1c56c1(0x1a4),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x2d7857){const _0xb02027=a66_0x1c56c1,_0x125753=readDiagramTarget(_0x2d7857),_0x5ebe96=await validateRuntimeSkillVersionDiagram(_0x2d7857[_0xb02027(0x193)],_0x125753[_0xb02027(0x1a6)],_0x125753['version'],_0x125753[_0xb02027(0x1b1)],await readDiagramWriteInput(_0x2d7857));return{'ok':!![],'data':_0x5ebe96,'message':'Skill\x20diagram\x20validation\x20passed\x20for\x20'+_0x125753[_0xb02027(0x1a6)]+'@'+_0x125753['version']+'.'};}};export const diagramPushCommand={'service':a66_0x1c56c1(0x191),'command':a66_0x1c56c1(0x1a0),'description':'Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','risk':'write','confirmationDescription':a66_0x1c56c1(0x19e),'flags':WRITE_FLAGS,async 'execute'(_0xaf441d){const _0x5f53ba=a66_0x1c56c1,_0x2e5b19=readDiagramTarget(_0xaf441d),_0x3b0fea=await putRuntimeSkillVersionDiagram(_0xaf441d[_0x5f53ba(0x193)],_0x2e5b19[_0x5f53ba(0x1a6)],_0x2e5b19[_0x5f53ba(0x1a2)],_0x2e5b19[_0x5f53ba(0x1b1)],await readDiagramWriteInput(_0xaf441d));return{'ok':!![],'data':_0x3b0fea,'message':_0x3b0fea[_0x5f53ba(0x1a9)]==='unchanged'?_0x5f53ba(0x196)+_0x2e5b19['skillCode']+'@'+_0x2e5b19[_0x5f53ba(0x1a2)]+_0x5f53ba(0x1a1):(_0x3b0fea['action']==='created'?'Created':_0x5f53ba(0x190))+_0x5f53ba(0x198)+_0x2e5b19[_0x5f53ba(0x1a6)]+'@'+_0x2e5b19[_0x5f53ba(0x1a2)]+'.'};}};export const diagramShowCommand={'service':a66_0x1c56c1(0x191),'command':'diagram-show','description':a66_0x1c56c1(0x189),'risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x246f2e){const _0x142562=a66_0x1c56c1,_0x151300=readDiagramTarget(_0x246f2e),_0xc8d290=await getRuntimeSkillVersionDiagram(_0x246f2e[_0x142562(0x193)],_0x151300[_0x142562(0x1a6)],_0x151300[_0x142562(0x1a2)],_0x151300[_0x142562(0x1b1)]);return{'ok':!![],'data':_0xc8d290,'message':_0xc8d290['found']?_0x142562(0x1ac)+_0x151300['skillCode']+'@'+_0x151300[_0x142562(0x1a2)]+_0x142562(0x1ab)+_0xc8d290[_0x142562(0x18a)]+'.':_0x142562(0x197)+_0x151300[_0x142562(0x1a6)]+'@'+_0x151300[_0x142562(0x1a2)]+_0x142562(0x1a5)+_0xc8d290[_0x142562(0x18a)]+'.'};}};
|