@lovrabet/lovrabet-cli 2.3.1-beta.4 → 2.3.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.
Files changed (167) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/init.js +1 -1
  25. package/lib/commands/config/shared.js +1 -1
  26. package/lib/commands/data/index.js +1 -1
  27. package/lib/commands/dataset/detail.js +1 -1
  28. package/lib/commands/dataset/index.js +1 -1
  29. package/lib/commands/dataset/list.js +1 -1
  30. package/lib/commands/dataset/sdk-doc.js +1 -1
  31. package/lib/commands/doctor.js +1 -1
  32. package/lib/commands/file/index.js +1 -1
  33. package/lib/commands/init.js +1 -1
  34. package/lib/commands/kb/index.js +1 -1
  35. package/lib/commands/logs/index.js +1 -1
  36. package/lib/commands/notification/config-list.js +1 -1
  37. package/lib/commands/notification/index.js +1 -1
  38. package/lib/commands/notification/shared.js +1 -1
  39. package/lib/commands/ocr/index.js +1 -1
  40. package/lib/commands/permit/dataset-get.js +1 -1
  41. package/lib/commands/permit/dataset-set.js +1 -1
  42. package/lib/commands/permit/index.js +1 -1
  43. package/lib/commands/permit/page-get.js +1 -1
  44. package/lib/commands/permit/page-set.js +1 -1
  45. package/lib/commands/permit/role-menus-set.js +1 -1
  46. package/lib/commands/permit/role-menus.js +1 -1
  47. package/lib/commands/permit/shared.js +1 -1
  48. package/lib/commands/personal-bff/index.js +1 -1
  49. package/lib/commands/registry.js +1 -1
  50. package/lib/commands/role/create.js +1 -1
  51. package/lib/commands/role/delete.js +1 -1
  52. package/lib/commands/role/detail.js +1 -1
  53. package/lib/commands/role/index.js +1 -1
  54. package/lib/commands/role/list.js +1 -1
  55. package/lib/commands/role/shared.js +1 -1
  56. package/lib/commands/role/update.js +1 -1
  57. package/lib/commands/role/user-add.js +1 -1
  58. package/lib/commands/role/user-remove.js +1 -1
  59. package/lib/commands/schedule/index.js +1 -1
  60. package/lib/commands/schema.js +1 -1
  61. package/lib/commands/service/dynamic.js +1 -1
  62. package/lib/commands/service/function-name-adapter.js +1 -1
  63. package/lib/commands/service/index.js +1 -1
  64. package/lib/commands/service/registry.js +1 -1
  65. package/lib/commands/skill/commands/create.js +1 -1
  66. package/lib/commands/skill/commands/diagram.js +1 -1
  67. package/lib/commands/skill/commands/install.js +1 -1
  68. package/lib/commands/skill/commands/list.js +1 -1
  69. package/lib/commands/skill/commands/push.js +1 -1
  70. package/lib/commands/skill/commands/validate.js +1 -1
  71. package/lib/commands/skill/diagram.js +1 -1
  72. package/lib/commands/skill/flags.js +1 -1
  73. package/lib/commands/skill/index.js +1 -1
  74. package/lib/commands/skill/manifest-helpers.js +1 -1
  75. package/lib/commands/skill/push-execute.js +1 -1
  76. package/lib/commands/skill/push-flow-helpers.js +1 -1
  77. package/lib/commands/skill/push-retarget.js +1 -1
  78. package/lib/commands/skill/scopes.js +1 -1
  79. package/lib/commands/skill/summary.js +1 -1
  80. package/lib/commands/skill/templates.js +1 -1
  81. package/lib/commands/skill/validate.js +1 -1
  82. package/lib/commands/sql/detail.js +1 -1
  83. package/lib/commands/sql/exec.js +1 -1
  84. package/lib/commands/sql/index.js +1 -1
  85. package/lib/commands/update.js +1 -1
  86. package/lib/commands/user-account/bind.js +1 -1
  87. package/lib/commands/user-account/index.js +1 -1
  88. package/lib/commands/workspace/index.js +1 -1
  89. package/lib/config/domain-config.js +1 -1
  90. package/lib/config/schema.js +1 -1
  91. package/lib/constant/app.js +1 -1
  92. package/lib/constant/auth-mode.js +1 -1
  93. package/lib/constant/cli.js +1 -1
  94. package/lib/constant/defaults.js +1 -1
  95. package/lib/constant/distribution.js +1 -1
  96. package/lib/constant/domain.js +1 -1
  97. package/lib/constant/env.js +1 -1
  98. package/lib/constant/output.js +1 -1
  99. package/lib/constant/product.js +1 -1
  100. package/lib/constant/region.js +1 -1
  101. package/lib/constant/risk.js +1 -1
  102. package/lib/constant/url.js +1 -1
  103. package/lib/context.js +1 -1
  104. package/lib/core/api-client.js +1 -1
  105. package/lib/core/db-resolver.js +1 -1
  106. package/lib/core/kb-search-client.js +1 -1
  107. package/lib/core/sdk-client.js +1 -1
  108. package/lib/errors.js +1 -1
  109. package/lib/framework/build-all-flags.js +1 -1
  110. package/lib/framework/dryrun.js +1 -1
  111. package/lib/framework/flags.js +1 -1
  112. package/lib/framework/help.js +1 -1
  113. package/lib/framework/index.js +1 -1
  114. package/lib/framework/output.js +1 -1
  115. package/lib/framework/preparse.js +1 -1
  116. package/lib/framework/rate-limit.js +1 -1
  117. package/lib/framework/raw-flags.js +1 -1
  118. package/lib/framework/response.js +1 -1
  119. package/lib/framework/runner-confirmation.js +1 -1
  120. package/lib/framework/runner-error.js +1 -1
  121. package/lib/framework/runner.js +1 -1
  122. package/lib/framework/schema-export.js +1 -1
  123. package/lib/framework/service-order.js +1 -1
  124. package/lib/framework/types.js +1 -1
  125. package/lib/generated/build-info.d.ts +4 -4
  126. package/lib/generated/build-info.js +1 -1
  127. package/lib/generated/official-routing.js +1 -1
  128. package/lib/generated/routing-contract.js +1 -1
  129. package/lib/help.js +1 -1
  130. package/lib/postinstall.js +1 -1
  131. package/lib/runtime/confirmation.js +1 -1
  132. package/lib/runtime/event.js +1 -1
  133. package/lib/runtime/index.js +1 -1
  134. package/lib/runtime/queue.js +1 -1
  135. package/lib/runtime/resolve.js +1 -1
  136. package/lib/skills/builtin-skill.js +1 -1
  137. package/lib/skills/npx-skills-add.js +1 -1
  138. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  139. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  140. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  141. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  142. package/lib/skills/runtime-skill-sync/links.js +1 -1
  143. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  144. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  145. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  146. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  147. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  148. package/lib/skills/runtime-skill-sync/push.js +1 -1
  149. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  150. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  151. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  152. package/lib/skills/runtime-skill-sync.js +1 -1
  153. package/lib/skills/skill-presence.js +1 -1
  154. package/lib/utils/access-key-redaction.js +1 -1
  155. package/lib/utils/apply-jq-filter.js +1 -1
  156. package/lib/utils/cli-version-check.js +1 -1
  157. package/lib/utils/cli-version-policy.js +1 -1
  158. package/lib/utils/logger.js +1 -1
  159. package/lib/utils/lossless-json.js +1 -1
  160. package/lib/utils/params.js +1 -1
  161. package/lib/utils/platform.js +1 -1
  162. package/lib/utils/update-notice.js +1 -1
  163. package/lib/utils/version.js +1 -1
  164. package/lib/utils/write-cli-side-channel.js +1 -1
  165. package/package.json +1 -1
  166. package/skills/lovrabet/SKILL.md +1 -1
  167. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a54_0x4cac13=a54_0x1dbb;(function(_0x252681,_0x583d8f){const _0x447dc6=a54_0x1dbb,_0x442e4f=_0x252681();while(!![]){try{const _0x5c6709=-parseInt(_0x447dc6(0xda))/0x1+-parseInt(_0x447dc6(0xcc))/0x2*(-parseInt(_0x447dc6(0xd8))/0x3)+parseInt(_0x447dc6(0xd6))/0x4+parseInt(_0x447dc6(0xe6))/0x5+parseInt(_0x447dc6(0xe0))/0x6+parseInt(_0x447dc6(0xea))/0x7*(-parseInt(_0x447dc6(0xed))/0x8)+-parseInt(_0x447dc6(0xdc))/0x9;if(_0x5c6709===_0x583d8f)break;else _0x442e4f['push'](_0x442e4f['shift']());}catch(_0x122b3d){_0x442e4f['push'](_0x442e4f['shift']());}}}(a54_0x74fe,0x5e9b8));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=['ADMIN',a54_0x4cac13(0xc7),'OWNER','CUSTOM'];function a54_0x74fe(){const _0x45d9b7=['num','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','Runtime\x20role\x20id\x20','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','flag','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','Runtime\x20numeric\x20userId','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','\x20built-in\x20runtime\x20role\x20','filter','validation','roleName','join','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','role','User\x20',',\x20found\x20','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','remark','OWNER','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','includes','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','Runtime\x20role\x20','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','applyUserList','CUSTOM','Runtime\x20user\x20','items','userName','push','USER','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','user','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','2TwLtjK','str','totalCount','expect-user-count','code','roleType','user-add','map','trim','length','1918812ChKCqj','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','537399OFQybp','number','12054EHkKsi','\x20was\x20not\x20found\x20in\x20app\x20','2742039mkzJHU','\x20is\x20not\x20in\x20runtime\x20role\x20','string','find','1975230lErumx','\x22\x20is\x20ambiguous.','\x22\x20was\x20not\x20found\x20in\x20app\x20','isSafeInteger','Runtime\x20role\x20name\x20\x22','userList','170300WZKSth','paging','permitCount','appCode','28wYptMr','Pass\x20--role\x20<id|name>.','Pass\x20one\x20role\x20ID:\x20','635728CvixXz','Cannot\x20','test'];a54_0x74fe=function(){return _0x45d9b7;};return a54_0x74fe();}const BUILTIN_ROLE_TYPES=['ADMIN',a54_0x4cac13(0xc7),a54_0x4cac13(0x106)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x4cac13(0xd9),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':'role','type':a54_0x4cac13(0xde),'required':!![],'description':a54_0x4cac13(0xf2)};export const USER_ID_FLAG={'name':a54_0x4cac13(0xca),'type':a54_0x4cac13(0xde),'required':!![],'description':a54_0x4cac13(0xf7)};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x4cac13(0xcf),'type':'number','description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x8689f6){const _0x3562cc=a54_0x4cac13;return BUILTIN_ROLE_TYPES[_0x3562cc(0x108)](_0x8689f6);}export function assertCustomRuntimeRole(_0xb0f5a7,_0x29942b){const _0xe01478=a54_0x4cac13;if(_0xb0f5a7[_0xe01478(0xd1)]!==_0xe01478(0x10d))throw CliErrors['validation'](_0xe01478(0xee)+_0x29942b+_0xe01478(0xf9)+_0xb0f5a7[_0xe01478(0xfc)]+'\x20('+_0xb0f5a7[_0xe01478(0xd1)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x596e63){const _0x1ee66e=a54_0x4cac13;return{'id':_0x596e63['id'],'roleName':_0x596e63[_0x1ee66e(0xfc)],'roleType':_0x596e63[_0x1ee66e(0xd1)],'remark':_0x596e63[_0x1ee66e(0x105)],'userCount':_0x596e63['userCount']??0x0,'permitCount':_0x596e63[_0x1ee66e(0xe8)]??0x0,'builtin':isBuiltinRuntimeRole(_0x596e63['roleType'])};}export async function getRuntimeRoleById(_0x1cfc40,_0x26035d){const _0x21e7f5=a54_0x4cac13;if(!Number[_0x21e7f5(0xe3)](_0x26035d)||_0x26035d<=0x0)throw CliErrors[_0x21e7f5(0xfb)](_0x21e7f5(0x10b));const _0x53d3ac=(await listAllRuntimeRoles(_0x1cfc40))[_0x21e7f5(0xfa)](_0x1d02be=>_0x1d02be['id']===_0x26035d&&(!_0x1d02be[_0x21e7f5(0xe9)]||_0x1d02be['appCode']===_0x1cfc40));if(_0x53d3ac[_0x21e7f5(0xd5)]!==0x1)throw CliErrors[_0x21e7f5(0xfb)](_0x21e7f5(0xf3)+_0x26035d+_0x21e7f5(0xdb)+_0x1cfc40+'.',_0x21e7f5(0x107));return _0x53d3ac[0x0];}export async function listAllRuntimeRoles(_0xdb456c,_0x260653={}){const _0x34a80c=a54_0x4cac13,_0x129e7f=0x64,_0x4352d8=[];for(let _0x1e0bf3=0x1;;_0x1e0bf3+=0x1){const _0x38e7d3=await listRuntimeAppRoles(_0xdb456c,{..._0x260653[_0x34a80c(0xfc)]?{'roleName':_0x260653['roleName']}:{},'currentPage':_0x1e0bf3,'pageSize':_0x129e7f});_0x4352d8[_0x34a80c(0xc6)](..._0x38e7d3[_0x34a80c(0xc4)]);if(_0x38e7d3[_0x34a80c(0xc4)][_0x34a80c(0xd5)]<_0x129e7f||_0x38e7d3['paging']&&_0x4352d8['length']>=_0x38e7d3[_0x34a80c(0xe7)][_0x34a80c(0xce)])return _0x4352d8;}}function a54_0x1dbb(_0x3c9934,_0x16c12d){_0x3c9934=_0x3c9934-0xc4;const _0x74fec6=a54_0x74fe();let _0x1dbb58=_0x74fec6[_0x3c9934];return _0x1dbb58;}export async function resolveRuntimeRoleRef(_0x5c8f94,_0xb34242){const _0x1f61f5=a54_0x4cac13,_0x2bd4aa=_0xb34242[_0x1f61f5(0xd4)]();if(!_0x2bd4aa)throw CliErrors[_0x1f61f5(0xfb)]('Missing\x20runtime\x20role\x20reference.',_0x1f61f5(0xeb));if(/^\d+$/[_0x1f61f5(0xef)](_0x2bd4aa))return getRuntimeRoleById(_0x5c8f94,Number(_0x2bd4aa));const _0x100051=(await listAllRuntimeRoles(_0x5c8f94))['filter'](_0xfdd9bb=>_0xfdd9bb[_0x1f61f5(0xfc)]===_0x2bd4aa);if(_0x100051[_0x1f61f5(0xd5)]===0x0)throw CliErrors['validation'](_0x1f61f5(0xe4)+_0x2bd4aa+_0x1f61f5(0xe2)+_0x5c8f94+'.',_0x1f61f5(0xf1));if(_0x100051[_0x1f61f5(0xd5)]>0x1)throw CliErrors['validation']('Runtime\x20role\x20name\x20\x22'+_0x2bd4aa+_0x1f61f5(0xe1),_0x1f61f5(0xec)+_0x100051[_0x1f61f5(0xd3)](_0x593b16=>_0x593b16['id'])[_0x1f61f5(0xfd)](',\x20')+'.');return _0x100051[0x0];}function parseRuntimeUserId(_0x14632c){const _0x189b6c=a54_0x4cac13,_0x449792=_0x14632c[_0x189b6c(0xd4)]();if(!/^\d+$/[_0x189b6c(0xef)](_0x449792))throw CliErrors[_0x189b6c(0xfb)](_0x189b6c(0xf8),_0x189b6c(0xc9));const _0x4ca047=Number(_0x449792);if(!Number['isSafeInteger'](_0x4ca047)||_0x4ca047<=0x0)throw CliErrors[_0x189b6c(0xfb)](_0x189b6c(0xfe));return _0x4ca047;}export async function prepareRuntimeMemberMutation(_0x4c7bd3,_0x4f6fa8){const _0x861a8e=a54_0x4cac13,_0x4e4d9f=await resolveRuntimeRoleRef(_0x4c7bd3[_0x861a8e(0xe9)],_0x4c7bd3['str'](_0x861a8e(0x101)));if(_0x4e4d9f[_0x861a8e(0xd1)]==='OWNER')throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0xc8),_0x861a8e(0x109));const _0x104a27=parseRuntimeUserId(_0x4c7bd3[_0x861a8e(0xcd)](_0x861a8e(0xca))),_0x1f025e=(await listRuntimeRoleUsers(_0x4c7bd3[_0x861a8e(0xe9)]))[_0x861a8e(0xd3)](_0x37627b=>({..._0x37627b,'userList':[..._0x37627b['userList']??[]],'applyUserList':[..._0x37627b[_0x861a8e(0x10c)]??[]]})),_0x40945c=_0x1f025e[_0x861a8e(0xdf)](_0x5adf16=>_0x5adf16['id']===_0x4e4d9f['id']);if(!_0x40945c)throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0x10a)+_0x4e4d9f['id']+_0x861a8e(0x104),_0x861a8e(0xf4));const _0x1abda8=_0x40945c['userList'][_0x861a8e(0xd3)](_0x5217ff=>_0x5217ff['userId']),_0x4e6609=_0x4c7bd3[_0x861a8e(0xf5)](_0x861a8e(0xcf));if(_0x4e6609!==undefined&&_0x4e6609!==null&&_0x4e6609!==''){const _0x56aa91=_0x4c7bd3[_0x861a8e(0xf0)](_0x861a8e(0xcf));if(!Number[_0x861a8e(0xe3)](_0x56aa91)||_0x56aa91<0x0)throw CliErrors['validation'](_0x861a8e(0xf6));if(_0x1abda8[_0x861a8e(0xd5)]!==_0x56aa91)throw CliErrors['validation'](_0x861a8e(0xff)+_0x56aa91+_0x861a8e(0x103)+_0x1abda8[_0x861a8e(0xd5)]+'.',_0x861a8e(0xcb));}const _0x1bdeb3=_0x1abda8[_0x861a8e(0x108)](_0x104a27),_0x666ef6=[];let _0x30afb4=!![];if(_0x4f6fa8===_0x861a8e(0xd2)){const _0x2632ce=await listRuntimeAppUsers(_0x4c7bd3[_0x861a8e(0xe9)]),_0x569eea=_0x2632ce[_0x861a8e(0xfa)](_0x3f110f=>Number(_0x3f110f[_0x861a8e(0xd0)])===_0x104a27);if(_0x569eea[_0x861a8e(0xd5)]!==0x1||!_0x569eea[0x0]['userName']?.['trim']())throw CliErrors[_0x861a8e(0xfb)](_0x861a8e(0x10e)+_0x104a27+_0x861a8e(0xdb)+_0x4c7bd3[_0x861a8e(0xe9)]+'.',_0x861a8e(0xd7));_0x1bdeb3?(_0x30afb4=![],_0x666ef6['push'](_0x861a8e(0x102)+_0x104a27+_0x861a8e(0x100)+_0x4e4d9f['id']+'.')):_0x40945c[_0x861a8e(0xe5)][_0x861a8e(0xc6)]({'userId':_0x104a27,'username':_0x569eea[0x0][_0x861a8e(0xc5)]});}else!_0x1bdeb3?(_0x30afb4=![],_0x666ef6['push'](_0x861a8e(0x102)+_0x104a27+_0x861a8e(0xdd)+_0x4e4d9f['id']+'.')):_0x40945c['userList']=_0x40945c[_0x861a8e(0xe5)][_0x861a8e(0xfa)](_0xc64485=>_0xc64485['userId']!==_0x104a27);return{'role':_0x4e4d9f,'userId':_0x104a27,'roleList':_0x1f025e,'before':{'userIds':_0x1abda8},'after':{'userIds':_0x40945c['userList'][_0x861a8e(0xd3)](_0xcda91b=>_0xcda91b['userId'])},'shouldWrite':_0x30afb4,'warnings':_0x666ef6};}export function runtimeRoleWriteResult(_0x6ccb2d,_0x31c574,_0x2a97a5,_0x3fa4b5,_0x36cb18,_0x4cde50=[]){return{'operation':_0x6ccb2d,'scope':'runtime','selector':_0x31c574,'before':_0x2a97a5,'after':_0x3fa4b5,'dryRun':![],'backend':_0x36cb18,'warnings':_0x4cde50};}
1
+ const a54_0xc45eb2=a54_0x2f28;(function(_0x1856c2,_0x150c85){const _0x5cc5ba=a54_0x2f28,_0x53697c=_0x1856c2();while(!![]){try{const _0x48409a=parseInt(_0x5cc5ba(0x149))/0x1*(-parseInt(_0x5cc5ba(0x117))/0x2)+parseInt(_0x5cc5ba(0x13d))/0x3*(parseInt(_0x5cc5ba(0x109))/0x4)+-parseInt(_0x5cc5ba(0x155))/0x5*(parseInt(_0x5cc5ba(0x135))/0x6)+parseInt(_0x5cc5ba(0x112))/0x7+parseInt(_0x5cc5ba(0x12d))/0x8*(parseInt(_0x5cc5ba(0x14e))/0x9)+-parseInt(_0x5cc5ba(0x121))/0xa+parseInt(_0x5cc5ba(0x124))/0xb*(parseInt(_0x5cc5ba(0x10f))/0xc);if(_0x48409a===_0x150c85)break;else _0x53697c['push'](_0x53697c['shift']());}catch(_0x3973a3){_0x53697c['push'](_0x53697c['shift']());}}}(a54_0x1738,0x5ee83));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a54_0xc45eb2(0x115),a54_0xc45eb2(0x13b),a54_0xc45eb2(0x125),a54_0xc45eb2(0x12e)];function a54_0x1738(){const _0x2a5eb0=['1KIByMk','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','filter','length','user-add','95220BEsjRZ','\x22\x20is\x20ambiguous.','Runtime\x20role\x20name\x20\x22','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','roleType','Cannot\x20','5hmqZlp','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','trim','803008KRJyhA','number','join','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','items','Runtime\x20user\x20','288qmMiDA','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','userName','3390590zUvcwv','str','userId','ADMIN','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','1016614qtSdrl','Missing\x20runtime\x20role\x20reference.','runtime',',\x20found\x20','applyUserList','appCode','num','User\x20','expect-user-count','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','5823850BfPkZp','role','validation','422774HSYeNe','OWNER','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','push','Pass\x20one\x20role\x20ID:\x20','remark','Runtime\x20role\x20id\x20','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Pass\x20--role\x20<id|name>.','264akthkI','CUSTOM','\x20was\x20not\x20found\x20in\x20app\x20','string','includes','roleName','find','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','4067994VlDdqu','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','paging','code','flag','totalCount','USER','Runtime\x20role\x20','6FztSyA','userCount','\x20built-in\x20runtime\x20role\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','map','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','userList','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','permitCount','isSafeInteger','user','test'];a54_0x1738=function(){return _0x2a5eb0;};return a54_0x1738();}const BUILTIN_ROLE_TYPES=[a54_0xc45eb2(0x115),a54_0xc45eb2(0x13b),a54_0xc45eb2(0x125)];export const ROLE_ID_FLAG={'name':'id','type':a54_0xc45eb2(0x10a),'required':!![],'description':a54_0xc45eb2(0x110)};export const ROLE_REF_FLAG={'name':a54_0xc45eb2(0x122),'type':'string','required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const USER_ID_FLAG={'name':a54_0xc45eb2(0x147),'type':a54_0xc45eb2(0x130),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a54_0xc45eb2(0x11f),'type':a54_0xc45eb2(0x10a),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x55256a){return BUILTIN_ROLE_TYPES['includes'](_0x55256a);}export function assertCustomRuntimeRole(_0x3440cb,_0x5f4a64){const _0x58d7a7=a54_0xc45eb2;if(_0x3440cb[_0x58d7a7(0x153)]!==_0x58d7a7(0x12e))throw CliErrors[_0x58d7a7(0x123)](_0x58d7a7(0x154)+_0x5f4a64+_0x58d7a7(0x13f)+_0x3440cb[_0x58d7a7(0x132)]+'\x20('+_0x3440cb[_0x58d7a7(0x153)]+').',_0x58d7a7(0x14a));}export function projectRuntimeRole(_0x320041){const _0xcf7064=a54_0xc45eb2;return{'id':_0x320041['id'],'roleName':_0x320041[_0xcf7064(0x132)],'roleType':_0x320041[_0xcf7064(0x153)],'remark':_0x320041[_0xcf7064(0x129)],'userCount':_0x320041[_0xcf7064(0x13e)]??0x0,'permitCount':_0x320041[_0xcf7064(0x145)]??0x0,'builtin':isBuiltinRuntimeRole(_0x320041['roleType'])};}export async function getRuntimeRoleById(_0x2460ba,_0x48ccff){const _0x276b9f=a54_0xc45eb2;if(!Number[_0x276b9f(0x146)](_0x48ccff)||_0x48ccff<=0x0)throw CliErrors[_0x276b9f(0x123)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x3674b6=(await listAllRuntimeRoles(_0x2460ba))[_0x276b9f(0x14b)](_0x3c551a=>_0x3c551a['id']===_0x48ccff&&(!_0x3c551a[_0x276b9f(0x11c)]||_0x3c551a[_0x276b9f(0x11c)]===_0x2460ba));if(_0x3674b6[_0x276b9f(0x14c)]!==0x1)throw CliErrors[_0x276b9f(0x123)](_0x276b9f(0x12a)+_0x48ccff+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x2460ba+'.',_0x276b9f(0x116));return _0x3674b6[0x0];}export async function listAllRuntimeRoles(_0x2fe751,_0xf32af9={}){const _0x47d78d=a54_0xc45eb2,_0x34d21b=0x64,_0x46a59d=[];for(let _0x58885b=0x1;;_0x58885b+=0x1){const _0x1ee2fc=await listRuntimeAppRoles(_0x2fe751,{..._0xf32af9[_0x47d78d(0x132)]?{'roleName':_0xf32af9[_0x47d78d(0x132)]}:{},'currentPage':_0x58885b,'pageSize':_0x34d21b});_0x46a59d[_0x47d78d(0x127)](..._0x1ee2fc[_0x47d78d(0x10d)]);if(_0x1ee2fc[_0x47d78d(0x10d)]['length']<_0x34d21b||_0x1ee2fc['paging']&&_0x46a59d[_0x47d78d(0x14c)]>=_0x1ee2fc[_0x47d78d(0x137)][_0x47d78d(0x13a)])return _0x46a59d;}}export async function resolveRuntimeRoleRef(_0x2057e4,_0x28e4e6){const _0x1b54c5=a54_0xc45eb2,_0x5c82dd=_0x28e4e6[_0x1b54c5(0x108)]();if(!_0x5c82dd)throw CliErrors[_0x1b54c5(0x123)](_0x1b54c5(0x118),_0x1b54c5(0x12c));if(/^\d+$/[_0x1b54c5(0x148)](_0x5c82dd))return getRuntimeRoleById(_0x2057e4,Number(_0x5c82dd));const _0x30687a=(await listAllRuntimeRoles(_0x2057e4))[_0x1b54c5(0x14b)](_0x7a7b78=>_0x7a7b78[_0x1b54c5(0x132)]===_0x5c82dd);if(_0x30687a[_0x1b54c5(0x14c)]===0x0)throw CliErrors['validation'](_0x1b54c5(0x150)+_0x5c82dd+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0x2057e4+'.',_0x1b54c5(0x151));if(_0x30687a['length']>0x1)throw CliErrors[_0x1b54c5(0x123)](_0x1b54c5(0x150)+_0x5c82dd+_0x1b54c5(0x14f),_0x1b54c5(0x128)+_0x30687a[_0x1b54c5(0x141)](_0x1de68e=>_0x1de68e['id'])[_0x1b54c5(0x10b)](',\x20')+'.');return _0x30687a[0x0];}function parseRuntimeUserId(_0x2e73c9){const _0x18f1b7=a54_0xc45eb2,_0x37cc6e=_0x2e73c9[_0x18f1b7(0x108)]();if(!/^\d+$/['test'](_0x37cc6e))throw CliErrors[_0x18f1b7(0x123)]('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',_0x18f1b7(0x10c));const _0xf1c0bb=Number(_0x37cc6e);if(!Number['isSafeInteger'](_0xf1c0bb)||_0xf1c0bb<=0x0)throw CliErrors[_0x18f1b7(0x123)](_0x18f1b7(0x134));return _0xf1c0bb;}export async function prepareRuntimeMemberMutation(_0x383679,_0x3f4300){const _0x4da6d9=a54_0xc45eb2,_0x5aae51=await resolveRuntimeRoleRef(_0x383679[_0x4da6d9(0x11c)],_0x383679[_0x4da6d9(0x113)](_0x4da6d9(0x122)));if(_0x5aae51['roleType']===_0x4da6d9(0x125))throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x126),_0x4da6d9(0x120));const _0x5afaf3=parseRuntimeUserId(_0x383679[_0x4da6d9(0x113)](_0x4da6d9(0x147))),_0x51019d=(await listRuntimeRoleUsers(_0x383679['appCode']))['map'](_0x1db663=>({..._0x1db663,'userList':[..._0x1db663['userList']??[]],'applyUserList':[..._0x1db663[_0x4da6d9(0x11b)]??[]]})),_0x567930=_0x51019d[_0x4da6d9(0x133)](_0x119775=>_0x119775['id']===_0x5aae51['id']);if(!_0x567930)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x13c)+_0x5aae51['id']+_0x4da6d9(0x156),_0x4da6d9(0x12b));const _0x159c64=_0x567930['userList'][_0x4da6d9(0x141)](_0x529faf=>_0x529faf[_0x4da6d9(0x114)]),_0x3e7787=_0x383679[_0x4da6d9(0x139)]('expect-user-count');if(_0x3e7787!==undefined&&_0x3e7787!==null&&_0x3e7787!==''){const _0x4e1169=_0x383679[_0x4da6d9(0x11d)](_0x4da6d9(0x11f));if(!Number[_0x4da6d9(0x146)](_0x4e1169)||_0x4e1169<0x0)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x152));if(_0x159c64[_0x4da6d9(0x14c)]!==_0x4e1169)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x142)+_0x4e1169+_0x4da6d9(0x11a)+_0x159c64['length']+'.',_0x4da6d9(0x136));}const _0x1fcfde=_0x159c64[_0x4da6d9(0x131)](_0x5afaf3),_0x820bf0=[];let _0x25f732=!![];if(_0x3f4300===_0x4da6d9(0x14d)){const _0x37186f=await listRuntimeAppUsers(_0x383679[_0x4da6d9(0x11c)]),_0xa2be24=_0x37186f[_0x4da6d9(0x14b)](_0x46e0e4=>Number(_0x46e0e4[_0x4da6d9(0x138)])===_0x5afaf3);if(_0xa2be24['length']!==0x1||!_0xa2be24[0x0][_0x4da6d9(0x111)]?.['trim']())throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x10e)+_0x5afaf3+_0x4da6d9(0x12f)+_0x383679['appCode']+'.',_0x4da6d9(0x144));_0x1fcfde?(_0x25f732=![],_0x820bf0[_0x4da6d9(0x127)](_0x4da6d9(0x11e)+_0x5afaf3+_0x4da6d9(0x140)+_0x5aae51['id']+'.')):_0x567930[_0x4da6d9(0x143)][_0x4da6d9(0x127)]({'userId':_0x5afaf3,'username':_0xa2be24[0x0][_0x4da6d9(0x111)]});}else!_0x1fcfde?(_0x25f732=![],_0x820bf0[_0x4da6d9(0x127)](_0x4da6d9(0x11e)+_0x5afaf3+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x5aae51['id']+'.')):_0x567930['userList']=_0x567930[_0x4da6d9(0x143)][_0x4da6d9(0x14b)](_0x4b714d=>_0x4b714d[_0x4da6d9(0x114)]!==_0x5afaf3);return{'role':_0x5aae51,'userId':_0x5afaf3,'roleList':_0x51019d,'before':{'userIds':_0x159c64},'after':{'userIds':_0x567930['userList'][_0x4da6d9(0x141)](_0x41f42c=>_0x41f42c[_0x4da6d9(0x114)])},'shouldWrite':_0x25f732,'warnings':_0x820bf0};}function a54_0x2f28(_0x35980c,_0x5e84cc){_0x35980c=_0x35980c-0x108;const _0x173881=a54_0x1738();let _0x2f28f0=_0x173881[_0x35980c];return _0x2f28f0;}export function runtimeRoleWriteResult(_0x1ebe16,_0x5c09ce,_0x58f347,_0x36af9f,_0xc89c4,_0x2b9933=[]){const _0x57a8fd=a54_0xc45eb2;return{'operation':_0x1ebe16,'scope':_0x57a8fd(0x119),'selector':_0x5c09ce,'before':_0x58f347,'after':_0x36af9f,'dryRun':![],'backend':_0xc89c4,'warnings':_0x2b9933};}
@@ -1 +1 @@
1
- const a55_0x116258=a55_0x3474;(function(_0x4a3db,_0x517dde){const _0x4ccab1=a55_0x3474,_0x130c52=_0x4a3db();while(!![]){try{const _0x47c56a=-parseInt(_0x4ccab1(0x111))/0x1+-parseInt(_0x4ccab1(0x105))/0x2+-parseInt(_0x4ccab1(0x104))/0x3*(parseInt(_0x4ccab1(0x102))/0x4)+parseInt(_0x4ccab1(0x10d))/0x5+-parseInt(_0x4ccab1(0xf9))/0x6+-parseInt(_0x4ccab1(0x109))/0x7*(-parseInt(_0x4ccab1(0x112))/0x8)+parseInt(_0x4ccab1(0x10a))/0x9*(parseInt(_0x4ccab1(0x100))/0xa);if(_0x47c56a===_0x517dde)break;else _0x130c52['push'](_0x130c52['shift']());}catch(_0x455cc6){_0x130c52['push'](_0x130c52['shift']());}}}(a55_0x2904,0x3cecc));function a55_0x3474(_0x4129e2,_0x5d3c37){_0x4129e2=_0x4129e2-0xf4;const _0x290449=a55_0x2904();let _0x347458=_0x290449[_0x4129e2];return _0x347458;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x1a357d){const _0x4186d5=a55_0x3474,_0x31c095=_0x1a357d[_0x4186d5(0xfc)]('name')!==undefined,_0x1a08cf=_0x1a357d[_0x4186d5(0xfc)](_0x4186d5(0x10e))!==undefined;if(!_0x31c095&&!_0x1a08cf)throw CliErrors[_0x4186d5(0xfa)](_0x4186d5(0x10b));const _0x2d8c9d=_0x1a357d[_0x4186d5(0xfb)](_0x4186d5(0x107))[_0x4186d5(0xff)](),_0x32b1dc=_0x1a357d[_0x4186d5(0xfb)](_0x4186d5(0x10e))[_0x4186d5(0xff)]();if(_0x31c095&&!_0x2d8c9d)throw CliErrors[_0x4186d5(0xfa)](_0x4186d5(0xf4));if(_0x1a08cf&&!_0x32b1dc)throw CliErrors[_0x4186d5(0xfa)](_0x4186d5(0xfe),'The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.');return{..._0x31c095?{'roleName':_0x2d8c9d}:{},..._0x1a08cf?{'remark':_0x32b1dc}:{}};}async function prepare(_0x339350){const _0x492afa=a55_0x3474,_0xf06b22=await getRuntimeRoleById(_0x339350[_0x492afa(0x101)],_0x339350['num']('id'));return assertCustomRuntimeRole(_0xf06b22,_0x492afa(0x106)),{'role':_0xf06b22,'body':{'id':_0xf06b22['id'],'appCode':_0x339350['appCode'],...updateFields(_0x339350)}};}export const roleUpdate={'service':a55_0x116258(0x110),'command':a55_0x116258(0x106),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':a55_0x116258(0x114),'confirmationDescription':a55_0x116258(0x10c),'flags':[ROLE_ID_FLAG,{'name':a55_0x116258(0x107),'type':a55_0x116258(0xf5),'description':a55_0x116258(0xf7)},{'name':a55_0x116258(0x10e),'type':'string','description':a55_0x116258(0x10f)}],async 'validate'(_0x722717){updateFields(_0x722717);},async 'dryRun'(_0x758bb5){const _0x459b04=a55_0x116258,{body:_0x3220f9}=await prepare(_0x758bb5);return dryRun(_0x459b04(0x108),_0x459b04(0xfd))[_0x459b04(0x113)](_0x3220f9)[_0x459b04(0x103)](_0x459b04(0xf8))[_0x459b04(0xf6)]();},async 'execute'(_0x4f3655){const _0x56e00d=a55_0x116258,{role:_0x8251ec,body:_0x50b2ba}=await prepare(_0x4f3655),_0x31b267=await updateRuntimeAppRole(_0x50b2ba);return{'ok':!![],'data':runtimeRoleWriteResult(_0x56e00d(0x106),{'roleId':_0x8251ec['id']},projectRuntimeRole(_0x8251ec),projectRuntimeRole(_0x31b267),{'method':_0x56e00d(0x108),'path':_0x56e00d(0xfd)})};}};function a55_0x2904(){const _0xe14024=['string','build','New\x20role\x20name','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','307344JwRrPl','validation','str','flag','/client/permit/role/update','--remark\x20must\x20not\x20be\x20blank.','trim','9353690roWLUU','appCode','76jswvQV','description','35985FNJOgj','835068FkxLYB','update','name','POST','33257OBFhxL','9wgVYED','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','1129645XDesfe','remark','New\x20non-empty\x20role\x20remark','role','490645HYKTjA','464ekPmYS','body','high-risk-write','--name\x20must\x20not\x20be\x20blank.'];a55_0x2904=function(){return _0xe14024;};return a55_0x2904();}
1
+ const a55_0x2105bf=a55_0x4f90;(function(_0x106126,_0x180b23){const _0x177a37=a55_0x4f90,_0x109add=_0x106126();while(!![]){try{const _0x25a673=parseInt(_0x177a37(0x1e6))/0x1+parseInt(_0x177a37(0x1d5))/0x2+parseInt(_0x177a37(0x1e7))/0x3*(-parseInt(_0x177a37(0x1dc))/0x4)+parseInt(_0x177a37(0x1d8))/0x5*(-parseInt(_0x177a37(0x1cd))/0x6)+parseInt(_0x177a37(0x1d4))/0x7+-parseInt(_0x177a37(0x1df))/0x8*(parseInt(_0x177a37(0x1e5))/0x9)+parseInt(_0x177a37(0x1e8))/0xa;if(_0x25a673===_0x180b23)break;else _0x109add['push'](_0x109add['shift']());}catch(_0x3b29d7){_0x109add['push'](_0x109add['shift']());}}}(a55_0x1af3,0x841a5));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a55_0x4f90(_0x23463a,_0x42fdb2){_0x23463a=_0x23463a-0x1c9;const _0x1af328=a55_0x1af3();let _0x4f9015=_0x1af328[_0x23463a];return _0x4f9015;}import{dryRun}from'../../framework/dryrun.js';function a55_0x1af3(){const _0x13239c=['706401yalbtM','52869sxarFQ','10715170ASUwEW','--remark\x20must\x20not\x20be\x20blank.','flag','string','high-risk-write','New\x20role\x20name','3948yllrNr','description','remark','--name\x20must\x20not\x20be\x20blank.','update','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','/client/permit/role/update','2406670QRYlqF','1085738ZJLJai','role','POST','810rDHjdm','validation','body','str','228wPruws','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','build','8yftYPK','num','appCode','trim','New\x20non-empty\x20role\x20remark','name','9111573ZRonEQ'];a55_0x1af3=function(){return _0x13239c;};return a55_0x1af3();}import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x445cd1){const _0x41dbf5=a55_0x4f90,_0x1b4de6=_0x445cd1[_0x41dbf5(0x1c9)](_0x41dbf5(0x1e4))!==undefined,_0x371997=_0x445cd1[_0x41dbf5(0x1c9)](_0x41dbf5(0x1cf))!==undefined;if(!_0x1b4de6&&!_0x371997)throw CliErrors[_0x41dbf5(0x1d9)]('Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.');const _0x50cb87=_0x445cd1[_0x41dbf5(0x1db)]('name')[_0x41dbf5(0x1e2)](),_0x213995=_0x445cd1[_0x41dbf5(0x1db)](_0x41dbf5(0x1cf))[_0x41dbf5(0x1e2)]();if(_0x1b4de6&&!_0x50cb87)throw CliErrors[_0x41dbf5(0x1d9)](_0x41dbf5(0x1d0));if(_0x371997&&!_0x213995)throw CliErrors[_0x41dbf5(0x1d9)](_0x41dbf5(0x1e9),_0x41dbf5(0x1dd));return{..._0x1b4de6?{'roleName':_0x50cb87}:{},..._0x371997?{'remark':_0x213995}:{}};}async function prepare(_0x2474b5){const _0x192bc1=a55_0x4f90,_0x3e4d04=await getRuntimeRoleById(_0x2474b5[_0x192bc1(0x1e1)],_0x2474b5[_0x192bc1(0x1e0)]('id'));return assertCustomRuntimeRole(_0x3e4d04,_0x192bc1(0x1d1)),{'role':_0x3e4d04,'body':{'id':_0x3e4d04['id'],'appCode':_0x2474b5[_0x192bc1(0x1e1)],...updateFields(_0x2474b5)}};}export const roleUpdate={'service':a55_0x2105bf(0x1d6),'command':a55_0x2105bf(0x1d1),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':a55_0x2105bf(0x1cb),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,{'name':a55_0x2105bf(0x1e4),'type':a55_0x2105bf(0x1ca),'description':a55_0x2105bf(0x1cc)},{'name':'remark','type':'string','description':a55_0x2105bf(0x1e3)}],async 'validate'(_0x497f21){updateFields(_0x497f21);},async 'dryRun'(_0x29ecfd){const _0x279605=a55_0x2105bf,{body:_0x54cd41}=await prepare(_0x29ecfd);return dryRun('POST',_0x279605(0x1d3))[_0x279605(0x1da)](_0x54cd41)[_0x279605(0x1ce)](_0x279605(0x1d2))[_0x279605(0x1de)]();},async 'execute'(_0x5c6cf4){const _0x1703be=a55_0x2105bf,{role:_0x1d357b,body:_0xb222d8}=await prepare(_0x5c6cf4),_0x581193=await updateRuntimeAppRole(_0xb222d8);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1703be(0x1d1),{'roleId':_0x1d357b['id']},projectRuntimeRole(_0x1d357b),projectRuntimeRole(_0x581193),{'method':_0x1703be(0x1d7),'path':_0x1703be(0x1d3)})};}};
@@ -1 +1 @@
1
- function a56_0x110c(_0x431602,_0x626b49){_0x431602=_0x431602-0x1f2;const _0xe89704=a56_0xe897();let _0x110c64=_0xe89704[_0x431602];return _0x110c64;}const a56_0x547251=a56_0x110c;(function(_0x33ae53,_0x122450){const _0xc51753=a56_0x110c,_0x42d600=_0x33ae53();while(!![]){try{const _0x34180f=-parseInt(_0xc51753(0x208))/0x1*(-parseInt(_0xc51753(0x1f9))/0x2)+-parseInt(_0xc51753(0x1f8))/0x3*(-parseInt(_0xc51753(0x1fc))/0x4)+parseInt(_0xc51753(0x206))/0x5*(-parseInt(_0xc51753(0x1fd))/0x6)+parseInt(_0xc51753(0x201))/0x7*(parseInt(_0xc51753(0x1f6))/0x8)+-parseInt(_0xc51753(0x205))/0x9*(-parseInt(_0xc51753(0x1fa))/0xa)+parseInt(_0xc51753(0x200))/0xb+parseInt(_0xc51753(0x203))/0xc*(-parseInt(_0xc51753(0x1f7))/0xd);if(_0x34180f===_0x122450)break;else _0x42d600['push'](_0x42d600['shift']());}catch(_0x4d5d56){_0x42d600['push'](_0x42d600['shift']());}}}(a56_0xe897,0xdd506));function a56_0xe897(){const _0x263302=['body','/client/permit/user-role/update-user-list','after','role','userId','roleList','POST','942352HVsuMb','1948427YdRVTU','3xUCRlP','182508ZEEVcm','7630jkbZqm','high-risk-write','3127660uGKSvf','1068rBbRGd','appCode','warnings','1209263rWLUlT','21workOC','before','180urHFWa','Preview:\x20add\x20runtime\x20role\x20member','16857mvyfyg','4450DaVozX','user-add','7bLUArB'];a56_0xe897=function(){return _0x263302;};return a56_0xe897();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x547251(0x1f2),'command':'user-add','description':'Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','risk':a56_0x547251(0x1fb),'confirmationDescription':'Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x481b6b){const _0x5da7d9=a56_0x547251,_0x2ef63b=await prepareRuntimeMemberMutation(_0x481b6b,'user-add');return dryRun(_0x5da7d9(0x1f5),_0x5da7d9(0x20a))[_0x5da7d9(0x209)]({'appCode':_0x481b6b[_0x5da7d9(0x1fe)],'roleList':_0x2ef63b[_0x5da7d9(0x1f4)]})['description'](_0x2ef63b['shouldWrite']?_0x5da7d9(0x204):_0x2ef63b['warnings'][0x0])['build']();},async 'execute'(_0x51c4b3){const _0x248c7f=a56_0x547251,_0x38607e=await prepareRuntimeMemberMutation(_0x51c4b3,_0x248c7f(0x207));return _0x38607e['shouldWrite']&&await updateRuntimeRoleUsers(_0x51c4b3['appCode'],_0x38607e[_0x248c7f(0x1f4)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x248c7f(0x207),{'roleId':_0x38607e[_0x248c7f(0x1f2)]['id'],'userId':_0x38607e[_0x248c7f(0x1f3)]},_0x38607e[_0x248c7f(0x202)],_0x38607e[_0x248c7f(0x20b)],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x38607e[_0x248c7f(0x1ff)])};}};
1
+ const a56_0x68e9a6=a56_0x242a;(function(_0x187415,_0x18d743){const _0x1210ba=a56_0x242a,_0x5a4d71=_0x187415();while(!![]){try{const _0x27caaf=parseInt(_0x1210ba(0x1c7))/0x1+-parseInt(_0x1210ba(0x1bf))/0x2+-parseInt(_0x1210ba(0x1cb))/0x3+-parseInt(_0x1210ba(0x1bc))/0x4+parseInt(_0x1210ba(0x1be))/0x5+parseInt(_0x1210ba(0x1c1))/0x6*(parseInt(_0x1210ba(0x1c6))/0x7)+-parseInt(_0x1210ba(0x1b8))/0x8*(parseInt(_0x1210ba(0x1bd))/0x9);if(_0x27caaf===_0x18d743)break;else _0x5a4d71['push'](_0x5a4d71['shift']());}catch(_0x5d340f){_0x5a4d71['push'](_0x5a4d71['shift']());}}}(a56_0x5ec6,0x690d8));function a56_0x5ec6(){const _0x13b96c=['256758oXloda','appCode','6yglRtv','body','role','after','userId','5494727eFgFCY','23523nommyT','roleList','/client/permit/user-role/update-user-list','warnings','506271MxwbPQ','high-risk-write','POST','user-add','build','63320zbRsIg','Preview:\x20add\x20runtime\x20role\x20member','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','3183608ZszwJz','27PInmcX','3692975GdAABv'];a56_0x5ec6=function(){return _0x13b96c;};return a56_0x5ec6();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a56_0x242a(_0x1878d9,_0x54fb01){_0x1878d9=_0x1878d9-0x1b4;const _0x5ec6cf=a56_0x5ec6();let _0x242aac=_0x5ec6cf[_0x1878d9];return _0x242aac;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x68e9a6(0x1c3),'command':a56_0x68e9a6(0x1b6),'description':a56_0x68e9a6(0x1ba),'risk':a56_0x68e9a6(0x1b4),'confirmationDescription':a56_0x68e9a6(0x1bb),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x5a1fa8){const _0x5c4902=a56_0x68e9a6,_0x543195=await prepareRuntimeMemberMutation(_0x5a1fa8,_0x5c4902(0x1b6));return dryRun(_0x5c4902(0x1b5),_0x5c4902(0x1c9))[_0x5c4902(0x1c2)]({'appCode':_0x5a1fa8['appCode'],'roleList':_0x543195[_0x5c4902(0x1c8)]})['description'](_0x543195['shouldWrite']?_0x5c4902(0x1b9):_0x543195['warnings'][0x0])[_0x5c4902(0x1b7)]();},async 'execute'(_0x81d590){const _0x5e728a=a56_0x68e9a6,_0x350957=await prepareRuntimeMemberMutation(_0x81d590,_0x5e728a(0x1b6));return _0x350957['shouldWrite']&&await updateRuntimeRoleUsers(_0x81d590[_0x5e728a(0x1c0)],_0x350957[_0x5e728a(0x1c8)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x350957[_0x5e728a(0x1c3)]['id'],'userId':_0x350957[_0x5e728a(0x1c5)]},_0x350957['before'],_0x350957[_0x5e728a(0x1c4)],{'method':_0x5e728a(0x1b5),'path':_0x5e728a(0x1c9)},_0x350957[_0x5e728a(0x1ca)])};}};
@@ -1 +1 @@
1
- const a57_0xca8c53=a57_0x93a9;function a57_0x10c3(){const _0x44c63f=['roleList','shouldWrite','user-remove','before','43Zfablw','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','body','130606vwbSUS','high-risk-write','build','35318nsDJee','143dRWiNR','description','910WGuAON','756896IMjtXJ','userId','56508EPEBOv','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','15894oQLHcV','/client/permit/user-role/update-user-list','147RozYIc','role','3EBIlUJ','16137UsylgS','775zpJFzd','403HYhZvm','164344RCgGda','warnings','POST','appCode'];a57_0x10c3=function(){return _0x44c63f;};return a57_0x10c3();}(function(_0x1b4806,_0x32a5e7){const _0x1aadca=a57_0x93a9,_0x1d52d0=_0x1b4806();while(!![]){try{const _0x1ee543=parseInt(_0x1aadca(0x7f))/0x1*(parseInt(_0x1aadca(0x85))/0x2)+parseInt(_0x1aadca(0x73))/0x3*(-parseInt(_0x1aadca(0x89))/0x4)+-parseInt(_0x1aadca(0x75))/0x5*(parseInt(_0x1aadca(0x6f))/0x6)+-parseInt(_0x1aadca(0x71))/0x7*(-parseInt(_0x1aadca(0x77))/0x8)+-parseInt(_0x1aadca(0x74))/0x9*(-parseInt(_0x1aadca(0x88))/0xa)+parseInt(_0x1aadca(0x86))/0xb*(-parseInt(_0x1aadca(0x6d))/0xc)+parseInt(_0x1aadca(0x76))/0xd*(-parseInt(_0x1aadca(0x82))/0xe);if(_0x1ee543===_0x32a5e7)break;else _0x1d52d0['push'](_0x1d52d0['shift']());}catch(_0x135af7){_0x1d52d0['push'](_0x1d52d0['shift']());}}}(a57_0x10c3,0x628d4));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x93a9(_0xd51880,_0x4be6a2){_0xd51880=_0xd51880-0x6d;const _0x10c31a=a57_0x10c3();let _0x93a9d1=_0x10c31a[_0xd51880];return _0x93a9d1;}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':'role','command':a57_0xca8c53(0x7d),'description':a57_0xca8c53(0x80),'risk':a57_0xca8c53(0x83),'confirmationDescription':a57_0xca8c53(0x6e),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xb342ee){const _0x10de83=a57_0xca8c53,_0x4fea9d=await prepareRuntimeMemberMutation(_0xb342ee,_0x10de83(0x7d));return dryRun('POST',_0x10de83(0x70))[_0x10de83(0x81)]({'appCode':_0xb342ee[_0x10de83(0x7a)],'roleList':_0x4fea9d[_0x10de83(0x7b)]})[_0x10de83(0x87)](_0x4fea9d[_0x10de83(0x7c)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x4fea9d[_0x10de83(0x78)][0x0])[_0x10de83(0x84)]();},async 'execute'(_0x148f37){const _0xb4ffb1=a57_0xca8c53,_0x1a535d=await prepareRuntimeMemberMutation(_0x148f37,_0xb4ffb1(0x7d));return _0x1a535d['shouldWrite']&&await updateRuntimeRoleUsers(_0x148f37[_0xb4ffb1(0x7a)],_0x1a535d['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0xb4ffb1(0x7d),{'roleId':_0x1a535d[_0xb4ffb1(0x72)]['id'],'userId':_0x1a535d[_0xb4ffb1(0x8a)]},_0x1a535d[_0xb4ffb1(0x7e)],_0x1a535d['after'],{'method':_0xb4ffb1(0x79),'path':_0xb4ffb1(0x70)},_0x1a535d[_0xb4ffb1(0x78)])};}};
1
+ const a57_0xf05fb5=a57_0x5789;(function(_0x5c3493,_0x404ba9){const _0x26e1fe=a57_0x5789,_0x1a1c54=_0x5c3493();while(!![]){try{const _0x4c76bc=-parseInt(_0x26e1fe(0xb6))/0x1*(parseInt(_0x26e1fe(0xbb))/0x2)+parseInt(_0x26e1fe(0xbc))/0x3*(parseInt(_0x26e1fe(0xba))/0x4)+parseInt(_0x26e1fe(0xb0))/0x5*(parseInt(_0x26e1fe(0xb2))/0x6)+-parseInt(_0x26e1fe(0xac))/0x7*(-parseInt(_0x26e1fe(0xc0))/0x8)+parseInt(_0x26e1fe(0xc5))/0x9*(-parseInt(_0x26e1fe(0xbe))/0xa)+parseInt(_0x26e1fe(0xb4))/0xb*(parseInt(_0x26e1fe(0xc4))/0xc)+-parseInt(_0x26e1fe(0xb7))/0xd;if(_0x4c76bc===_0x404ba9)break;else _0x1a1c54['push'](_0x1a1c54['shift']());}catch(_0x4ee210){_0x1a1c54['push'](_0x1a1c54['shift']());}}}(a57_0x12f2,0xc0789));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x12f2(){const _0xbddeb=['/client/permit/user-role/update-user-list','POST','warnings','96yLyXxM','261CLigxm','body','role','16807MnhRDX','build','Preview:\x20remove\x20runtime\x20role\x20member','appCode','35yADNkF','description','828606zZLxhQ','user-remove','1886522ENdCVf','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','5GYCjDM','38913732utfFJK','userId','roleList','12EjudPV','363278AxEdqq','778374itbevk','high-risk-write','770lkPMXk','shouldWrite','5248IkAPek'];a57_0x12f2=function(){return _0xbddeb;};return a57_0x12f2();}function a57_0x5789(_0x11f066,_0x3a8fe7){_0x11f066=_0x11f066-0xab;const _0x12f221=a57_0x12f2();let _0x57897e=_0x12f221[_0x11f066];return _0x57897e;}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':a57_0xf05fb5(0xab),'command':a57_0xf05fb5(0xb3),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':a57_0xf05fb5(0xbd),'confirmationDescription':a57_0xf05fb5(0xb5),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2dc9b6){const _0x1a927f=a57_0xf05fb5,_0x5b9024=await prepareRuntimeMemberMutation(_0x2dc9b6,_0x1a927f(0xb3));return dryRun('POST',_0x1a927f(0xc1))[_0x1a927f(0xc6)]({'appCode':_0x2dc9b6['appCode'],'roleList':_0x5b9024[_0x1a927f(0xb9)]})[_0x1a927f(0xb1)](_0x5b9024[_0x1a927f(0xbf)]?_0x1a927f(0xae):_0x5b9024[_0x1a927f(0xc3)][0x0])[_0x1a927f(0xad)]();},async 'execute'(_0x3e67d6){const _0x365a00=a57_0xf05fb5,_0x155f65=await prepareRuntimeMemberMutation(_0x3e67d6,_0x365a00(0xb3));return _0x155f65[_0x365a00(0xbf)]&&await updateRuntimeRoleUsers(_0x3e67d6[_0x365a00(0xaf)],_0x155f65[_0x365a00(0xb9)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x365a00(0xb3),{'roleId':_0x155f65[_0x365a00(0xab)]['id'],'userId':_0x155f65[_0x365a00(0xb8)]},_0x155f65['before'],_0x155f65['after'],{'method':_0x365a00(0xc2),'path':_0x365a00(0xc1)},_0x155f65[_0x365a00(0xc3)])};}};
@@ -1 +1 @@
1
- const a58_0x19ff61=a58_0x4514;(function(_0x137411,_0x8db248){const _0x3c8d68=a58_0x4514,_0x7ab612=_0x137411();while(!![]){try{const _0x26a537=-parseInt(_0x3c8d68(0xb8))/0x1+parseInt(_0x3c8d68(0xb3))/0x2*(-parseInt(_0x3c8d68(0xaf))/0x3)+parseInt(_0x3c8d68(0xe2))/0x4*(parseInt(_0x3c8d68(0xb2))/0x5)+-parseInt(_0x3c8d68(0xb4))/0x6+-parseInt(_0x3c8d68(0xab))/0x7+parseInt(_0x3c8d68(0xd2))/0x8+parseInt(_0x3c8d68(0xe1))/0x9;if(_0x26a537===_0x8db248)break;else _0x7ab612['push'](_0x7ab612['shift']());}catch(_0x20a711){_0x7ab612['push'](_0x7ab612['shift']());}}}(a58_0x10f6,0x2835f));function a58_0x10f6(){const _0x1fde7b=['high-risk-write','Schedule\x20kind:\x20CRON\x20or\x20ONCE','body','limit','create','2832705hlfNnB','115480HKtlrI','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','cron','kimi/k3','trim','Schedule\x20input\x20is\x20valid','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','UTC','Preview:\x20run\x20schedule\x20','Page\x20size\x20from\x201\x20to\x20100','CRON','build','description','1418536xbzuLr','/schedules','deepseek-v4-flash-0731','ONCE','4938mPgiXB','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','Preview:\x20delete\x20schedule\x20','40fcxISB','118bmOSPU','216924Aoyxbm','str','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Schedule\x20title','252982urFUzk','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','list','read','title','string','POST','kind','--prompt\x20must\x20not\x20be\x20blank.','Deleted\x20schedule\x20','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','--title\x20must\x20not\x20be\x20blank.','/run','DELETE','prompt','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','length','cursor','num','appCode','validation','validate','schedule-id','\x20immediately','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','scheduleId','1663168nAoYla','\x20from\x20schedule\x20','schedule','detail','Queued\x20Task\x20','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','taskId','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'];a58_0x10f6=function(){return _0x1fde7b;};return a58_0x10f6();}import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x19ff61(0xbf),'type':a58_0x19ff61(0xbd),'required':!![],'enum':[a58_0x19ff61(0xa8),a58_0x19ff61(0xae)],'description':a58_0x19ff61(0xdd)},CRON_FLAG={'name':'cron','type':a58_0x19ff61(0xbd),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a58_0x19ff61(0xbd),'description':a58_0x19ff61(0xa4)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a58_0x19ff61(0xb7)},PROMPT_FLAG={'name':a58_0x19ff61(0xc6),'type':a58_0x19ff61(0xbd),'required':!![],'description':a58_0x19ff61(0xdb)},MODEL_FLAG={'name':'model','type':'string','enum':[a58_0x19ff61(0xe6),a58_0x19ff61(0xad),'deepseek-v4-pro-0813'],'default':a58_0x19ff61(0xad),'description':a58_0x19ff61(0xe3)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a58_0x19ff61(0xbd),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x19ff61(0xda)}},LIMIT_FLAG={'name':a58_0x19ff61(0xdf),'type':'number','default':0x14,'description':a58_0x19ff61(0xa7)},CURSOR_FLAG={'name':a58_0x19ff61(0xc9),'type':a58_0x19ff61(0xbd),'description':a58_0x19ff61(0xd9)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3ccb23){const _0x5a5976=a58_0x19ff61,_0x252302=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xbf)),_0x325689=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xbc))[_0x5a5976(0xe7)](),_0x1d6d49=_0x3ccb23[_0x5a5976(0xb5)](_0x5a5976(0xc6))[_0x5a5976(0xe7)](),_0x4a7c54=_0x3ccb23['str']('model'),_0x3c7f1b=_0x3ccb23['str'](_0x5a5976(0xe5)),_0x3657c4=_0x3ccb23[_0x5a5976(0xb5)]('scheduled-at');if(!_0x325689)throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xc3));if(!_0x1d6d49)throw CliErrors['validation'](_0x5a5976(0xc0));if(_0x252302===_0x5a5976(0xa8)){if(!_0x3c7f1b||_0x3657c4)throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xb6));return{'kind':_0x252302,'timezone':_0x5a5976(0xa5),'cron':_0x3c7f1b,'title':_0x325689,'prompt':_0x1d6d49,'model':_0x4a7c54};}if(_0x252302===_0x5a5976(0xae)){if(!_0x3657c4||_0x3c7f1b)throw CliErrors['validation']('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x252302,'timezone':_0x5a5976(0xa5),'scheduledAt':_0x3657c4,'title':_0x325689,'prompt':_0x1d6d49,'model':_0x4a7c54};}throw CliErrors[_0x5a5976(0xcc)](_0x5a5976(0xb0));}function scheduleCollectionPath(_0xc75d0d){const _0x3ad5ed=a58_0x19ff61;return'/api/harness/apps/'+encodeURIComponent(_0xc75d0d)+_0x3ad5ed(0xac);}function scheduleItemPath(_0x1d68ce,_0x5ced9b){return scheduleCollectionPath(_0x1d68ce)+'/'+encodeURIComponent(_0x5ced9b);}const scheduleValidate={'service':'schedule','command':a58_0x19ff61(0xcd),'description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a58_0x19ff61(0xbb),'flags':INPUT_FLAGS,async 'validate'(_0x16d160){readScheduleInput(_0x16d160);},async 'execute'(_0x171d3d){const _0x16e8c5=a58_0x19ff61,_0x4c6a25=readScheduleInput(_0x171d3d),_0x3ded96=await validateRuntimeSchedule(_0x171d3d[_0x16e8c5(0xcb)],_0x4c6a25);return{'ok':!![],'data':_0x3ded96,'message':_0x16e8c5(0xe8)};}},scheduleCreate={'service':'schedule','command':a58_0x19ff61(0xe0),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xd0),'flags':INPUT_FLAGS,async 'validate'(_0x3a6b22){readScheduleInput(_0x3a6b22);},async 'execute'(_0xc5b0dd){const _0x43509f=a58_0x19ff61,_0x506dd2=readScheduleInput(_0xc5b0dd),_0x34aff1=await validateRuntimeSchedule(_0xc5b0dd[_0x43509f(0xcb)],_0x506dd2),_0x181a82=await createRuntimeSchedule(_0xc5b0dd[_0x43509f(0xcb)],_0x34aff1);return{'ok':!![],'data':_0x181a82,'message':'Created\x20'+_0x181a82[_0x43509f(0xbf)]+'\x20schedule\x20'+_0x181a82[_0x43509f(0xd1)]};},async 'dryRun'(_0xc56842){const _0x2187dd=a58_0x19ff61,_0x349670=readScheduleInput(_0xc56842);return dryRun(_0x2187dd(0xbe),scheduleCollectionPath(_0xc56842[_0x2187dd(0xcb)]))[_0x2187dd(0xde)](_0x349670)[_0x2187dd(0xaa)]('Preview:\x20create\x20an\x20Agent\x20schedule')['build']();}},scheduleList={'service':a58_0x19ff61(0xd4),'command':a58_0x19ff61(0xba),'description':a58_0x19ff61(0xe4),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1dc3fb){const _0x471722=a58_0x19ff61,_0x575272=_0x1dc3fb[_0x471722(0xca)]('limit');if(!Number['isSafeInteger'](_0x575272)||_0x575272<0x1||_0x575272>0x64)throw CliErrors[_0x471722(0xcc)](_0x471722(0xb9));const _0x550929=_0x1dc3fb[_0x471722(0xb5)](_0x471722(0xc9));if(_0x550929&&(_0x550929[_0x471722(0xc8)]>0x400||_0x550929['trim']()!==_0x550929))throw CliErrors[_0x471722(0xcc)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x3f607b){const _0x55755a=a58_0x19ff61,_0x257d8a=_0x3f607b[_0x55755a(0xb5)](_0x55755a(0xc9)),_0x26dfdc=await listRuntimeSchedules(_0x3f607b[_0x55755a(0xcb)],{'kind':_0x3f607b[_0x55755a(0xb5)](_0x55755a(0xbf)),'limit':_0x3f607b[_0x55755a(0xca)]('limit'),..._0x257d8a?{'cursor':_0x257d8a}:{}});return{'ok':!![],'data':_0x26dfdc};}},scheduleDetail={'service':a58_0x19ff61(0xd4),'command':a58_0x19ff61(0xd5),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x19ff61(0xbb),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x502aef){const _0x27e7dc=a58_0x19ff61,_0xbca519=await getRuntimeSchedule(_0x502aef['appCode'],_0x502aef[_0x27e7dc(0xb5)](_0x27e7dc(0xce)));return{'ok':!![],'data':_0xbca519};}},scheduleRun={'service':'schedule','command':'run','description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xc2),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xd7b05d){const _0x29e81f=a58_0x19ff61,_0x122ba9=_0xd7b05d['str'](_0x29e81f(0xce)),_0x45918f=await runRuntimeSchedule(_0xd7b05d['appCode'],_0x122ba9);return{'ok':!![],'data':_0x45918f,'message':_0x29e81f(0xd6)+_0x45918f[_0x29e81f(0xd8)]+_0x29e81f(0xd3)+_0x122ba9};},async 'dryRun'(_0x2c69a5){const _0x17767b=a58_0x19ff61,_0x4983af=_0x2c69a5[_0x17767b(0xb5)](_0x17767b(0xce));return dryRun(_0x17767b(0xbe),scheduleItemPath(_0x2c69a5['appCode'],_0x4983af)+_0x17767b(0xc4))[_0x17767b(0xaa)](_0x17767b(0xa6)+_0x4983af+_0x17767b(0xcf))[_0x17767b(0xa9)]();}},scheduleDelete={'service':a58_0x19ff61(0xd4),'command':'delete','description':a58_0x19ff61(0xc7),'risk':a58_0x19ff61(0xdc),'confirmationDescription':a58_0x19ff61(0xd7),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5c4029){const _0xc0b334=a58_0x19ff61,_0x323f44=_0x5c4029[_0xc0b334(0xb5)](_0xc0b334(0xce)),_0x4a80f8=await deleteRuntimeSchedule(_0x5c4029[_0xc0b334(0xcb)],_0x323f44);return{'ok':!![],'data':_0x4a80f8,'message':_0xc0b334(0xc1)+_0x323f44};},async 'dryRun'(_0x57450e){const _0x489f60=a58_0x19ff61,_0x400368=_0x57450e[_0x489f60(0xb5)](_0x489f60(0xce));return dryRun(_0x489f60(0xc5),scheduleItemPath(_0x57450e[_0x489f60(0xcb)],_0x400368))[_0x489f60(0xaa)](_0x489f60(0xb1)+_0x400368)[_0x489f60(0xa9)]();}};function a58_0x4514(_0x297289,_0x40d7d0){_0x297289=_0x297289-0xa4;const _0x10f61d=a58_0x10f6();let _0x4514b7=_0x10f61d[_0x297289];return _0x4514b7;}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0x4b2b1a=a58_0x29ae;function a58_0x1969(){const _0x40a6e8=['length','346824EkPaOu','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','list','appCode','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','delete','cursor','deepseek-v4-flash-0731','prompt','POST','ONCE','read','validation','cron','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','str','3003MhuwoY','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','description','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','28SsBXsU','1722987nGoefV','225185XLjyeW','title','\x20schedule\x20','build','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','detail','Preview:\x20run\x20schedule\x20','Preview:\x20delete\x20schedule\x20','high-risk-write','kimi/k3','DELETE','1194952VBPrzE','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','27665ACaUMw','scheduled-at','create','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','114NDWdmB','kind','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','deepseek-v4-pro-0813','num','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','/run','schedule-id','40zmSvaU','Schedule\x20UUID','validate','98ziqnbz','schedule','limit','Preview:\x20create\x20an\x20Agent\x20schedule','Created\x20','number','UTC','string','Queued\x20Task\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20input\x20is\x20valid','CRON','Deleted\x20schedule\x20','40590cdZKac','body','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','trim'];a58_0x1969=function(){return _0x40a6e8;};return a58_0x1969();}(function(_0x33352d,_0x1c56ca){const _0x81cb11=a58_0x29ae,_0x46caa6=_0x33352d();while(!![]){try{const _0x57700b=-parseInt(_0x81cb11(0x11d))/0x1+parseInt(_0x81cb11(0x121))/0x2*(-parseInt(_0x81cb11(0x108))/0x3)+-parseInt(_0x81cb11(0x10d))/0x4*(parseInt(_0x81cb11(0x10f))/0x5)+-parseInt(_0x81cb11(0x139))/0x6*(parseInt(_0x81cb11(0x12c))/0x7)+parseInt(_0x81cb11(0x13f))/0x8+parseInt(_0x81cb11(0x10e))/0x9+-parseInt(_0x81cb11(0x129))/0xa*(-parseInt(_0x81cb11(0x11a))/0xb);if(_0x57700b===_0x1c56ca)break;else _0x46caa6['push'](_0x46caa6['shift']());}catch(_0x4a76f3){_0x46caa6['push'](_0x46caa6['shift']());}}}(a58_0x1969,0x2aa29));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a58_0x29ae(_0x3b5c90,_0xc847a5){_0x3b5c90=_0x3b5c90-0x107;const _0x1969e7=a58_0x1969();let _0x29ae57=_0x1969e7[_0x3b5c90];return _0x29ae57;}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_0x4b2b1a(0x122),'type':'string','required':!![],'enum':['CRON',a58_0x4b2b1a(0x149)],'description':a58_0x4b2b1a(0x11c)},CRON_FLAG={'name':a58_0x4b2b1a(0x14c),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x10c)},SCHEDULED_AT_FLAG={'name':a58_0x4b2b1a(0x11e),'type':a58_0x4b2b1a(0x133),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x4b2b1a(0x110),'type':a58_0x4b2b1a(0x133),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x126)},MODEL_FLAG={'name':'model','type':a58_0x4b2b1a(0x133),'enum':[a58_0x4b2b1a(0x118),a58_0x4b2b1a(0x146),a58_0x4b2b1a(0x124)],'default':a58_0x4b2b1a(0x146),'description':a58_0x4b2b1a(0x123)},SCHEDULE_ID_FLAG={'name':a58_0x4b2b1a(0x128),'type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x12a),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':'limit','type':a58_0x4b2b1a(0x131),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x4b2b1a(0x145),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x135)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3a1d7c){const _0x408fed=a58_0x4b2b1a,_0x18fd2b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x122)),_0x3e892c=_0x3a1d7c[_0x408fed(0x107)]('title')[_0x408fed(0x13d)](),_0x587229=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x147))[_0x408fed(0x13d)](),_0xf29f82=_0x3a1d7c[_0x408fed(0x107)]('model'),_0x495d3c=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x14c)),_0x58721b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x11e));if(!_0x3e892c)throw CliErrors[_0x408fed(0x14b)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x587229)throw CliErrors['validation']('--prompt\x20must\x20not\x20be\x20blank.');if(_0x18fd2b===_0x408fed(0x137)){if(!_0x495d3c||_0x58721b)throw CliErrors[_0x408fed(0x14b)](_0x408fed(0x120));return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'cron':_0x495d3c,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}if(_0x18fd2b===_0x408fed(0x149)){if(!_0x58721b||_0x495d3c)throw CliErrors['validation']('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'scheduledAt':_0x58721b,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}throw CliErrors[_0x408fed(0x14b)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2c1c92){return'/api/harness/apps/'+encodeURIComponent(_0x2c1c92)+'/schedules';}function scheduleItemPath(_0x592791,_0x2c8336){return scheduleCollectionPath(_0x592791)+'/'+encodeURIComponent(_0x2c8336);}const scheduleValidate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x12b),'description':a58_0x4b2b1a(0x109),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x1ed191){readScheduleInput(_0x1ed191);},async 'execute'(_0x4ecb77){const _0x50ac40=a58_0x4b2b1a,_0x4fef6d=readScheduleInput(_0x4ecb77),_0x51e060=await validateRuntimeSchedule(_0x4ecb77[_0x50ac40(0x142)],_0x4fef6d);return{'ok':!![],'data':_0x51e060,'message':_0x50ac40(0x136)};}},scheduleCreate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x11f),'description':a58_0x4b2b1a(0x13c),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x11b),'flags':INPUT_FLAGS,async 'validate'(_0x3b085a){readScheduleInput(_0x3b085a);},async 'execute'(_0x201d32){const _0x130321=a58_0x4b2b1a,_0x5e6a0b=readScheduleInput(_0x201d32),_0x4b5eaf=await validateRuntimeSchedule(_0x201d32['appCode'],_0x5e6a0b),_0xe77a11=await createRuntimeSchedule(_0x201d32[_0x130321(0x142)],_0x4b5eaf);return{'ok':!![],'data':_0xe77a11,'message':_0x130321(0x130)+_0xe77a11[_0x130321(0x122)]+_0x130321(0x111)+_0xe77a11['scheduleId']};},async 'dryRun'(_0x115a12){const _0x5732c1=a58_0x4b2b1a,_0x34739c=readScheduleInput(_0x115a12);return dryRun(_0x5732c1(0x148),scheduleCollectionPath(_0x115a12[_0x5732c1(0x142)]))[_0x5732c1(0x13a)](_0x34739c)['description'](_0x5732c1(0x12f))[_0x5732c1(0x112)]();}},scheduleList={'service':'schedule','command':a58_0x4b2b1a(0x141),'description':a58_0x4b2b1a(0x13b),'risk':a58_0x4b2b1a(0x14a),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x333010){const _0x4b2a28=a58_0x4b2b1a,_0x3a3887=_0x333010['num'](_0x4b2a28(0x12e));if(!Number['isSafeInteger'](_0x3a3887)||_0x3a3887<0x1||_0x3a3887>0x64)throw CliErrors[_0x4b2a28(0x14b)](_0x4b2a28(0x113));const _0x3dbf36=_0x333010['str'](_0x4b2a28(0x145));if(_0x3dbf36&&(_0x3dbf36[_0x4b2a28(0x13e)]>0x400||_0x3dbf36[_0x4b2a28(0x13d)]()!==_0x3dbf36))throw CliErrors[_0x4b2a28(0x14b)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0xc56d5){const _0x30243c=a58_0x4b2b1a,_0x515d4b=_0xc56d5[_0x30243c(0x107)](_0x30243c(0x145)),_0x394bfc=await listRuntimeSchedules(_0xc56d5[_0x30243c(0x142)],{'kind':_0xc56d5['str'](_0x30243c(0x122)),'limit':_0xc56d5[_0x30243c(0x125)](_0x30243c(0x12e)),..._0x515d4b?{'cursor':_0x515d4b}:{}});return{'ok':!![],'data':_0x394bfc};}},scheduleDetail={'service':'schedule','command':a58_0x4b2b1a(0x114),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x4b2b1a(0x14a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x19fb39){const _0x2e4439=a58_0x4b2b1a,_0x1f9f7b=await getRuntimeSchedule(_0x19fb39[_0x2e4439(0x142)],_0x19fb39['str'](_0x2e4439(0x128)));return{'ok':!![],'data':_0x1f9f7b};}},scheduleRun={'service':a58_0x4b2b1a(0x12d),'command':'run','description':a58_0x4b2b1a(0x140),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x14d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3865f6){const _0x41cc7f=a58_0x4b2b1a,_0x158124=_0x3865f6[_0x41cc7f(0x107)](_0x41cc7f(0x128)),_0x5efb45=await runRuntimeSchedule(_0x3865f6[_0x41cc7f(0x142)],_0x158124);return{'ok':!![],'data':_0x5efb45,'message':_0x41cc7f(0x134)+_0x5efb45['taskId']+'\x20from\x20schedule\x20'+_0x158124};},async 'dryRun'(_0xca6f2){const _0x56b728=a58_0x4b2b1a,_0x3462c3=_0xca6f2[_0x56b728(0x107)](_0x56b728(0x128));return dryRun(_0x56b728(0x148),scheduleItemPath(_0xca6f2[_0x56b728(0x142)],_0x3462c3)+_0x56b728(0x127))[_0x56b728(0x10b)](_0x56b728(0x115)+_0x3462c3+'\x20immediately')['build']();}},scheduleDelete={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x144),'description':a58_0x4b2b1a(0x143),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x10a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x375681){const _0x2b37da=a58_0x4b2b1a,_0x131685=_0x375681['str'](_0x2b37da(0x128)),_0x4617c3=await deleteRuntimeSchedule(_0x375681[_0x2b37da(0x142)],_0x131685);return{'ok':!![],'data':_0x4617c3,'message':_0x2b37da(0x138)+_0x131685};},async 'dryRun'(_0x399785){const _0x32ad61=a58_0x4b2b1a,_0x5797db=_0x399785[_0x32ad61(0x107)](_0x32ad61(0x128));return dryRun(_0x32ad61(0x119),scheduleItemPath(_0x399785[_0x32ad61(0x142)],_0x5797db))['description'](_0x32ad61(0x116)+_0x5797db)[_0x32ad61(0x112)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- function a59_0xf268(_0x19b8f2,_0x5ddaf9){_0x19b8f2=_0x19b8f2-0xdd;const _0x174814=a59_0x1748();let _0xf26825=_0x174814[_0x19b8f2];return _0xf26825;}const a59_0x192b5f=a59_0xf268;(function(_0x55a137,_0xbf475f){const _0x7054a4=a59_0xf268,_0x2fce79=_0x55a137();while(!![]){try{const _0x1936ff=-parseInt(_0x7054a4(0xe8))/0x1+-parseInt(_0x7054a4(0xe4))/0x2*(-parseInt(_0x7054a4(0xe0))/0x3)+-parseInt(_0x7054a4(0xdd))/0x4+-parseInt(_0x7054a4(0xe2))/0x5+parseInt(_0x7054a4(0xe6))/0x6*(parseInt(_0x7054a4(0xe3))/0x7)+parseInt(_0x7054a4(0xe5))/0x8*(parseInt(_0x7054a4(0xe1))/0x9)+parseInt(_0x7054a4(0xde))/0xa*(-parseInt(_0x7054a4(0xe7))/0xb);if(_0x1936ff===_0xbf475f)break;else _0x2fce79['push'](_0x2fce79['shift']());}catch(_0x3e12e7){_0x2fce79['push'](_0x2fce79['shift']());}}}(a59_0x1748,0xd551f));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x25ed9d){const _0x1b9190=await buildSchemaPayload();return{'ok':!![],'data':_0x1b9190};}function a59_0x1748(){const _0xd8e87a=['529212OkfAoV','506KQABRg','540778JHtMvJ','1042408inCSTG','294490dPAnva','schema','618HiJghp','18UqTgLn','4626965GUiyNY','119ZxUJOM','15558MfGQvb','3413112YlMyUY'];a59_0x1748=function(){return _0xd8e87a;};return a59_0x1748();}export const schemaDefinition={'service':a59_0x192b5f(0xdf),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a59_0x1c5406=a59_0x2f2b;function a59_0x2f2b(_0x3ee44f,_0xd59cea){_0x3ee44f=_0x3ee44f-0x132;const _0x252167=a59_0x2521();let _0x2f2b2c=_0x252167[_0x3ee44f];return _0x2f2b2c;}(function(_0x1ad6dd,_0x2dc11c){const _0xf7891b=a59_0x2f2b,_0x53e0da=_0x1ad6dd();while(!![]){try{const _0xd67533=parseInt(_0xf7891b(0x139))/0x1*(-parseInt(_0xf7891b(0x137))/0x2)+-parseInt(_0xf7891b(0x136))/0x3*(parseInt(_0xf7891b(0x135))/0x4)+parseInt(_0xf7891b(0x134))/0x5*(parseInt(_0xf7891b(0x13a))/0x6)+parseInt(_0xf7891b(0x132))/0x7+parseInt(_0xf7891b(0x13d))/0x8+-parseInt(_0xf7891b(0x138))/0x9+-parseInt(_0xf7891b(0x13e))/0xa;if(_0xd67533===_0x2dc11c)break;else _0x53e0da['push'](_0x53e0da['shift']());}catch(_0x4ebbda){_0x53e0da['push'](_0x53e0da['shift']());}}}(a59_0x2521,0xed8e5));function a59_0x2521(){const _0x47ec2a=['2359920ZONSXY','5038292hXnIYm','schema','25rUGuNl','1018252ASpciF','6ereMOq','2SdPGsm','3691692JAFZvi','1348637AOVfka','1176954alaVez','export','Export\x20machine-readable\x20command\x20schema\x20(JSON)','14211368IeHhJG'];a59_0x2521=function(){return _0x47ec2a;};return a59_0x2521();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3efc27){const _0x143460=await buildSchemaPayload();return{'ok':!![],'data':_0x143460};}export const schemaDefinition={'service':a59_0x1c5406(0x133),'command':a59_0x1c5406(0x13b),'description':a59_0x1c5406(0x13c),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0xae5ba8,_0x176630){const _0x549870=a60_0x481b,_0x41d920=_0xae5ba8();while(!![]){try{const _0x35840a=-parseInt(_0x549870(0x17e))/0x1+parseInt(_0x549870(0x18e))/0x2*(parseInt(_0x549870(0x161))/0x3)+-parseInt(_0x549870(0x1a2))/0x4+-parseInt(_0x549870(0x178))/0x5*(-parseInt(_0x549870(0x1a3))/0x6)+-parseInt(_0x549870(0x180))/0x7*(-parseInt(_0x549870(0x19a))/0x8)+parseInt(_0x549870(0x15b))/0x9*(parseInt(_0x549870(0x169))/0xa)+parseInt(_0x549870(0x185))/0xb*(-parseInt(_0x549870(0x176))/0xc);if(_0x35840a===_0x176630)break;else _0x41d920['push'](_0x41d920['shift']());}catch(_0x74d19){_0x41d920['push'](_0x41d920['shift']());}}}(a60_0x5b53,0xb1356));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x25716a,_0x25dfd3){const _0x59fcac=a60_0x481b,_0x1b539c=listLocalServiceTrees();let _0x4fd831;for(const _0x3bda03 of _0x1b539c){const _0x216059=matchServiceTreeCommand(_0x3bda03,_0x25716a);if(!_0x216059)continue;(!_0x4fd831||_0x216059[_0x59fcac(0x184)]['fullPath'][_0x59fcac(0x168)]>_0x4fd831[_0x59fcac(0x184)][_0x59fcac(0x18c)]['length'])&&(_0x4fd831={'tree':_0x3bda03,'command':_0x216059['command'],'remainingArgs':_0x216059['remainingArgs']});}if(!_0x4fd831)return undefined;const _0xf18f27={..._0x25dfd3};return applyAppBinding(_0x4fd831[_0x59fcac(0x1ab)],_0x4fd831['command'],_0xf18f27),{'definition':buildDynamicCommandDefinition(_0x4fd831[_0x59fcac(0x1ab)],_0x4fd831[_0x59fcac(0x184)]),'args':_0x4fd831[_0x59fcac(0x154)],'flags':_0xf18f27,'tree':_0x4fd831[_0x59fcac(0x1ab)],'command':_0x4fd831[_0x59fcac(0x184)]};}export function generateDynamicServiceHelp(_0x34319f){const _0x62018f=a60_0x481b,_0x1f8d4d=listLocalServiceTrees()[_0x62018f(0x151)](_0x3e9a62=>_0x3e9a62[_0x62018f(0x160)][_0x62018f(0x1a9)]===_0x34319f);if(!_0x1f8d4d)return undefined;const _0x3394f9=[CLI_BIN_NAME+'\x20'+_0x34319f+_0x62018f(0x17a),'',_0x1f8d4d[_0x62018f(0x160)]['name']||_0x34319f,_0x1f8d4d[_0x62018f(0x160)][_0x62018f(0x195)]?'\x20\x20'+_0x1f8d4d[_0x62018f(0x160)][_0x62018f(0x195)]:'','',_0x62018f(0x162),..._0x1f8d4d['commands'][_0x62018f(0x198)](_0x28203c=>{const _0x364c8e=_0x62018f,_0x208be6=_0x28203c[_0x364c8e(0x18c)]['slice'](0x1)['join']('\x20'),_0x1ce24c=_0x28203c[_0x364c8e(0x167)]==='read'?'':'\x20['+_0x28203c[_0x364c8e(0x167)]+']';return'\x20\x20'+_0x208be6['padEnd'](0x18)+'\x20'+(_0x28203c[_0x364c8e(0x195)]||'')+_0x1ce24c;}),'',_0x62018f(0x1b0)+CLI_BIN_NAME+_0x62018f(0x1a0)+_0x34319f+_0x62018f(0x148)]['filter'](Boolean);return _0x3394f9[_0x62018f(0x1a5)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x42ca3c=>{const _0x235cd0=a60_0x481b,_0x1563ea=_0x42ca3c[_0x235cd0(0x181)];return{'service':_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x1a9)],'label':_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x149)]||_0x1563ea[_0x235cd0(0x160)][_0x235cd0(0x1a9)],'commands':_0x1563ea[_0x235cd0(0x187)][_0x235cd0(0x198)](_0x44447d=>({'command':dynamicCommandName(_0x44447d),'description':_0x44447d['description']||_0x235cd0(0x153)+_0x44447d[_0x235cd0(0x17d)],'tag':riskTag(_0x44447d[_0x235cd0(0x167)])}))};});}export function getDynamicServiceEntry(_0x4891ff){const _0xc06c9c=a60_0x481b;return listDynamicServiceEntries()[_0xc06c9c(0x151)](_0x521eb7=>_0x521eb7['service']===_0x4891ff);}export function listDynamicServiceDefinitions(_0x1f8862){const _0x2d1956=a60_0x481b;return listLocalServiceTrees()[_0x2d1956(0x188)](_0x55bc8a=>!_0x1f8862||_0x55bc8a[_0x2d1956(0x160)][_0x2d1956(0x1a9)]===_0x1f8862)['flatMap'](_0x29d42f=>_0x29d42f['commands']['map'](_0x2aba25=>buildDynamicCommandDefinition(_0x29d42f,_0x2aba25)));}export function getDynamicServiceDefinitions(_0x4ae948){const _0x11464b=listDynamicServiceDefinitions(_0x4ae948);return _0x11464b['length']>0x0?_0x11464b:undefined;}export function findDynamicServiceDefinition(_0x45c8c0,_0x1d33fd){const _0x12f07b=a60_0x481b;return listDynamicServiceDefinitions(_0x45c8c0)['find'](_0x5782b8=>_0x5782b8[_0x12f07b(0x184)]===_0x1d33fd);}export function buildDynamicCommandDefinition(_0x15093c,_0x20b067){const _0x42e5db=a60_0x481b;return{'service':_0x15093c[_0x42e5db(0x160)][_0x42e5db(0x1a9)],'command':dynamicCommandName(_0x20b067),'description':_0x20b067[_0x42e5db(0x195)]||'Run\x20service\x20command\x20'+_0x20b067['cliPath'],'risk':_0x20b067[_0x42e5db(0x167)],..._0x20b067[_0x42e5db(0x167)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x20b067)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x20b067[_0x42e5db(0x1a8)]['map'](_0x2be766=>({'name':_0x2be766[_0x42e5db(0x149)],'description':_0x2be766['description']||_0x2be766[_0x42e5db(0x149)],'required':_0x2be766['required']})),'flags':_0x20b067['flags'][_0x42e5db(0x198)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x20b067),async 'dryRun'(_0x4ebc48){const _0x5b13ad=_0x42e5db,_0x5ab143=await compilePlan(_0x20b067,_0x4ebc48);return{'method':_0x5b13ad(0x16e),'url':_0x20b067[_0x5b13ad(0x17d)],'body':{'target':targetPreview(_0x5ab143),'params':_0x5ab143[_0x5b13ad(0x15d)]},'description':_0x5b13ad(0x14e)+_0x20b067[_0x5b13ad(0x17d)]};},async 'execute'(_0x1cdfd9){const _0x1f0df5=_0x42e5db,_0x19ef9a=await compilePlan(_0x20b067,_0x1cdfd9),_0x1cba85=Date['now'](),_0x8735ab=await executePlan(_0x19ef9a,_0x20b067,_0x1cdfd9),_0xe01a14=Date[_0x1f0df5(0x182)]()-_0x1cba85;return{'ok':!![],'data':{'service':_0x15093c[_0x1f0df5(0x160)],'command':_0x20b067[_0x1f0df5(0x17d)],'target':targetPreview(_0x19ef9a),'result':_0x8735ab,'elapsed':_0xe01a14},'message':_0x1f0df5(0x14d)+_0x20b067['cliPath']+_0x1f0df5(0x15c)+_0xe01a14+'ms'};}};}function buildDynamicConfirmationDescription(_0x4b842a){const _0x56e383=a60_0x481b,_0x4198f3=_0x4b842a[_0x56e383(0x195)]||_0x4b842a['cliPath'],_0x44df30=_0x4b842a[_0x56e383(0x167)]===_0x56e383(0x18f)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x56e383(0x173)+_0x4198f3+_0x56e383(0x150)+_0x44df30;}function dynamicCommandName(_0x26fbc4){const _0xf10600=a60_0x481b;return _0x26fbc4[_0xf10600(0x18c)][_0xf10600(0x16b)](0x1)[_0xf10600(0x1a5)]('\x20');}function riskTag(_0x27c9fc){const _0x10a2b8=a60_0x481b;return _0x27c9fc===_0x10a2b8(0x15f)?'':_0x10a2b8(0x17b)+_0x27c9fc+']';}function flagToCommandFlag(_0x2c375c){const _0x45909a=a60_0x481b;return{'name':_0x2c375c[_0x45909a(0x15a)],'type':_0x2c375c[_0x45909a(0x159)]==='json'?'string':_0x2c375c[_0x45909a(0x159)],'description':_0x2c375c[_0x45909a(0x195)]||_0x2c375c[_0x45909a(0x149)],'required':_0x2c375c[_0x45909a(0x196)],'default':isPrimitiveFlagDefault(_0x2c375c['default'])?_0x2c375c['default']:undefined,'enum':_0x2c375c[_0x45909a(0x1a6)]};}function a60_0x481b(_0x4a7b3c,_0x7d9438){_0x4a7b3c=_0x4a7b3c-0x148;const _0x5b5365=a60_0x5b53();let _0x481ba0=_0x5b5365[_0x4a7b3c];return _0x481ba0;}async function compilePlan(_0x265bfe,_0x23ec41){const _0x199296=a60_0x481b;return compileServiceTreeCommand(_0x265bfe,{'flags':_0x23ec41[_0x199296(0x16a)],'args':_0x23ec41['args'],'context':await buildServiceContext(_0x265bfe,_0x23ec41)});}async function buildServiceContext(_0x1d32b8,_0x1745f6){const _0x1aafb2=a60_0x481b,_0x3a07a6={'appCode':_0x1745f6[_0x1aafb2(0x1b1)],'env':_0x1745f6[_0x1aafb2(0x158)],'envName':_0x1745f6[_0x1aafb2(0x158)]};if(!usesRuntimeContext(_0x1d32b8))return _0x3a07a6;const _0x1f18d0=await getLoginUserInfo(),_0x415313=pickFirst(_0x1f18d0[_0x1aafb2(0x1b3)],_0x1f18d0['id']);return{..._0x3a07a6,'user':_0x1f18d0,'userId':_0x415313,'id':_0x1f18d0['id'],'username':pickFirst(_0x1f18d0['username'],_0x1f18d0[_0x1aafb2(0x156)],_0x1f18d0['loginName']),'userName':_0x1f18d0[_0x1aafb2(0x156)],'nickname':pickFirst(_0x1f18d0[_0x1aafb2(0x16d)],_0x1f18d0[_0x1aafb2(0x19f)]),'nickName':_0x1f18d0[_0x1aafb2(0x19f)],'tenantCode':_0x1f18d0['tenantCode'],'employeeId':_0x1f18d0[_0x1aafb2(0x183)]};}function usesRuntimeContext(_0x2bd49c){const _0x22f91a=a60_0x481b;return _0x2bd49c[_0x22f91a(0x15e)]['some'](_0x4b19be=>typeof _0x4b19be['source']===_0x22f91a(0x174)&&(_0x4b19be[_0x22f91a(0x1af)][_0x22f91a(0x16f)](_0x22f91a(0x186))||_0x4b19be[_0x22f91a(0x1af)][_0x22f91a(0x16f)](_0x22f91a(0x166))));}function a60_0x5b53(){const _0x1787cf=['name','\x20\x20\x20\x20datatable:\x20','Unsupported\x20service\x20target\x20kind:\x20','\x20\x20MAP\x20TO','Service\x20command\x20','Preview\x20dynamic\x20service\x20command:\x20','boolean','\x22.\x20','find','bffCode','Run\x20service\x20command\x20','remainingArgs','scriptName','userName','appRef','envName','type','cliName','9FVXcZf','\x20completed\x20in\x20','params','mapTo','read','service','1402374OhdWsZ','Commands:','appBindings','entries','\x20\x20\x20\x20datasetCode:\x20','ctx.','risk','length','4727250RwhiTj','rawFlags','slice','number','nickname','SERVICE_TREE','startsWith','\x20\x20\x20\x20sqlCode:\x20','data','\x20->\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','string','\x20requires\x20target.functionName.','1343256FSVDof','kind','15SbISFQ','push','\x20<command>\x20[flags]','\x20\x20[','datasetCode','cliPath','294758spoJiH','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','2232818adPaio','normalizedManifest','now','employeeId','command','66zSfdGX','context.','commands','filter','validation','env','target','fullPath','\x22\x20in\x20service\x20command\x20','2UmcuIc','high-risk-write','\x20\x20\x20\x20functionName:\x20','fromEntries','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','bff','datatable','description','required','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','map','\x20requires\x20target.sqlCode.','8ihomIc','dbtableConfig','tableName','operator','appcode','nickName','\x20service\x20detail\x20--service\x20','\x20\x20SERVICE\x20TREE\x20TARGET','2613416JsdXNl','2172858IyShzX','bffId','join','enum','\x20\x20\x20\x20','args','code','sql','tree','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','app','Cannot\x20resolve\x20datatable\x20\x22','source','Use\x20`','appCode','sqlCode','userId','`\x20to\x20inspect\x20the\x20manifest.'];a60_0x5b53=function(){return _0x1787cf;};return a60_0x5b53();}function pickFirst(..._0x234ab6){const _0x271683=a60_0x481b;return _0x234ab6[_0x271683(0x151)](_0x17c809=>_0x17c809!==undefined&&_0x17c809!==null);}async function executePlan(_0x425518,_0x50a59a,_0x20f8db){const _0x1b3cc1=a60_0x481b;if(_0x425518[_0x1b3cc1(0x177)]===_0x1b3cc1(0x171)){const _0x3346cc=await resolveDatasetCode(_0x425518,_0x50a59a,_0x20f8db);return executeData(_0x3346cc,_0x425518['command'],_0x425518[_0x1b3cc1(0x15d)]);}if(_0x425518['kind']===_0x1b3cc1(0x1aa)){if(!_0x425518['sqlCode'])throw CliErrors['validation']('Service\x20command\x20'+_0x50a59a[_0x1b3cc1(0x17d)]+_0x1b3cc1(0x199));return executeSdkSql(_0x425518[_0x1b3cc1(0x1b2)],normalizeScalarParams(_0x425518[_0x1b3cc1(0x15d)]));}if(_0x425518[_0x1b3cc1(0x177)]===_0x1b3cc1(0x193)){const _0x1507cf=_0x425518[_0x1b3cc1(0x155)]||_0x425518[_0x1b3cc1(0x152)]||(_0x425518[_0x1b3cc1(0x1a4)]==null?'':String(_0x425518['bffId']));if(!_0x1507cf)throw CliErrors['validation'](_0x1b3cc1(0x14d)+_0x50a59a[_0x1b3cc1(0x17d)]+_0x1b3cc1(0x175));return executeSdkBff(_0x1507cf,_0x425518['params']);}throw CliErrors[_0x1b3cc1(0x189)](_0x1b3cc1(0x14b)+_0x425518[_0x1b3cc1(0x177)]);}async function resolveDatasetCode(_0x30eed2,_0x41f653,_0x46a382){const _0xe91e4e=a60_0x481b;if(_0x30eed2[_0xe91e4e(0x17c)])return _0x30eed2['datasetCode'];if(!_0x30eed2[_0xe91e4e(0x194)])throw CliErrors[_0xe91e4e(0x189)](_0xe91e4e(0x14d)+_0x41f653[_0xe91e4e(0x17d)]+_0xe91e4e(0x17f));const _0x4bd4e5=await listDatasets(_0x46a382['appCode']),_0x49f739=_0x4bd4e5[_0xe91e4e(0x151)](_0x54c6ae=>_0x54c6ae[_0xe91e4e(0x19b)]?.[_0xe91e4e(0x19c)]===_0x30eed2[_0xe91e4e(0x194)]);if(!_0x49f739?.['code'])throw CliErrors[_0xe91e4e(0x189)](_0xe91e4e(0x1ae)+_0x30eed2['datatable']+_0xe91e4e(0x1ac)+_0x46a382[_0xe91e4e(0x1b1)]+'.',_0xe91e4e(0x192));return _0x49f739['code'];}function applyAppBinding(_0x4cfbf0,_0x561daf,_0x1b5cf3){const _0x3dde1d=a60_0x481b,_0x57f32b=_0x561daf[_0x3dde1d(0x18b)][_0x3dde1d(0x157)];if(!_0x57f32b)return;const _0x3be328=_0x4cfbf0[_0x3dde1d(0x163)][_0x57f32b];if(!_0x3be328)throw CliErrors[_0x3dde1d(0x189)]('Unknown\x20appRef\x20\x22'+_0x57f32b+_0x3dde1d(0x18d)+_0x561daf[_0x3dde1d(0x17d)]+'.',_0x3dde1d(0x197));const _0x185c1b=_0x3be328[_0x3dde1d(0x19e)]||_0x3be328['appCode'];_0x185c1b&&!hasText(_0x1b5cf3[_0x3dde1d(0x19e)])&&(_0x1b5cf3[_0x3dde1d(0x19e)]=_0x185c1b),_0x3be328[_0x3dde1d(0x1ad)]&&!hasText(_0x1b5cf3['app'])&&!hasText(_0x1b5cf3[_0x3dde1d(0x19e)])&&(_0x1b5cf3[_0x3dde1d(0x1ad)]=_0x3be328[_0x3dde1d(0x1ad)]),_0x3be328[_0x3dde1d(0x18a)]&&!hasText(_0x1b5cf3[_0x3dde1d(0x18a)])&&(_0x1b5cf3[_0x3dde1d(0x18a)]=_0x3be328[_0x3dde1d(0x18a)]);}function renderDynamicCommandHelp(_0x45b790){const _0x11966b=a60_0x481b,_0x25f43a=[_0x11966b(0x1a1),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x177)],'\x20\x20\x20\x20command:\x20'+_0x45b790['target'][_0x11966b(0x184)]];if(_0x45b790['target'][_0x11966b(0x17c)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x165)+_0x45b790[_0x11966b(0x18b)]['datasetCode']);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x194)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x14a)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x194)]);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x1b2)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x170)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x1b2)]);if(_0x45b790[_0x11966b(0x18b)][_0x11966b(0x155)])_0x25f43a[_0x11966b(0x179)](_0x11966b(0x190)+_0x45b790[_0x11966b(0x18b)][_0x11966b(0x155)]);if(_0x45b790['mapTo'][_0x11966b(0x168)]>0x0){_0x25f43a[_0x11966b(0x179)]('',_0x11966b(0x14c));for(const _0x354540 of _0x45b790[_0x11966b(0x15e)]){_0x25f43a[_0x11966b(0x179)](_0x11966b(0x1a7)+(_0x354540['source']||'const')+_0x11966b(0x172)+_0x354540['target']+(_0x354540[_0x11966b(0x19d)]?'.'+_0x354540[_0x11966b(0x19d)]:''));}}return _0x25f43a[_0x11966b(0x1a5)]('\x0a');}function targetPreview(_0x504ddc){const _0x428c5f=a60_0x481b;return{'kind':_0x504ddc[_0x428c5f(0x177)],'command':_0x504ddc[_0x428c5f(0x184)],'appRef':_0x504ddc['appRef'],'datasetCode':_0x504ddc[_0x428c5f(0x17c)],'datatable':_0x504ddc['datatable'],'sqlCode':_0x504ddc[_0x428c5f(0x1b2)],'bffCode':_0x504ddc[_0x428c5f(0x152)],'bffId':_0x504ddc[_0x428c5f(0x1a4)],'functionName':_0x504ddc[_0x428c5f(0x155)]};}function normalizeScalarParams(_0xcbdfe2){const _0x51a73c=a60_0x481b;return Object[_0x51a73c(0x191)](Object[_0x51a73c(0x164)](_0xcbdfe2)['filter'](([,_0x7c20dd])=>typeof _0x7c20dd===_0x51a73c(0x174)||typeof _0x7c20dd===_0x51a73c(0x16c)));}function hasText(_0x1f205b){const _0x20c702=a60_0x481b;return typeof _0x1f205b===_0x20c702(0x174)&&_0x1f205b['trim']()[_0x20c702(0x168)]>0x0;}function isPrimitiveFlagDefault(_0x2755f9){const _0x3fad1f=a60_0x481b;return _0x2755f9===undefined||typeof _0x2755f9==='string'||typeof _0x2755f9===_0x3fad1f(0x16c)||typeof _0x2755f9===_0x3fad1f(0x14f);}
1
+ (function(_0x5cd103,_0x283901){const _0x286ede=a60_0x6f84,_0x1f97ad=_0x5cd103();while(!![]){try{const _0xc445ce=-parseInt(_0x286ede(0xcf))/0x1*(parseInt(_0x286ede(0x111))/0x2)+-parseInt(_0x286ede(0xe2))/0x3+parseInt(_0x286ede(0xca))/0x4+-parseInt(_0x286ede(0xd1))/0x5*(parseInt(_0x286ede(0x102))/0x6)+parseInt(_0x286ede(0xc3))/0x7+parseInt(_0x286ede(0xf7))/0x8+-parseInt(_0x286ede(0xeb))/0x9*(parseInt(_0x286ede(0xc1))/0xa);if(_0xc445ce===_0x283901)break;else _0x1f97ad['push'](_0x1f97ad['shift']());}catch(_0x5af803){_0x1f97ad['push'](_0x1f97ad['shift']());}}}(a60_0x4076,0xe85e7));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(_0xb91f84,_0x4af0ac){const _0x4090e6=a60_0x6f84,_0x381879=listLocalServiceTrees();let _0x50417b;for(const _0x58dcf2 of _0x381879){const _0x4d31aa=matchServiceTreeCommand(_0x58dcf2,_0xb91f84);if(!_0x4d31aa)continue;(!_0x50417b||_0x4d31aa[_0x4090e6(0xf8)][_0x4090e6(0x115)]['length']>_0x50417b[_0x4090e6(0xf8)][_0x4090e6(0x115)][_0x4090e6(0x104)])&&(_0x50417b={'tree':_0x58dcf2,'command':_0x4d31aa['command'],'remainingArgs':_0x4d31aa['remainingArgs']});}if(!_0x50417b)return undefined;const _0x5e617e={..._0x4af0ac};return applyAppBinding(_0x50417b['tree'],_0x50417b['command'],_0x5e617e),{'definition':buildDynamicCommandDefinition(_0x50417b[_0x4090e6(0xd0)],_0x50417b['command']),'args':_0x50417b[_0x4090e6(0xd6)],'flags':_0x5e617e,'tree':_0x50417b[_0x4090e6(0xd0)],'command':_0x50417b['command']};}function a60_0x6f84(_0x43de1c,_0x3bf723){_0x43de1c=_0x43de1c-0xb9;const _0x40761a=a60_0x4076();let _0x6f84c2=_0x40761a[_0x43de1c];return _0x6f84c2;}export function generateDynamicServiceHelp(_0x308659){const _0x22b364=a60_0x6f84,_0x3834a7=listLocalServiceTrees()[_0x22b364(0x105)](_0x2ba9a2=>_0x2ba9a2[_0x22b364(0xf0)][_0x22b364(0xe8)]===_0x308659);if(!_0x3834a7)return undefined;const _0x47dbcf=[CLI_BIN_NAME+'\x20'+_0x308659+_0x22b364(0xf9),'',_0x3834a7[_0x22b364(0xf0)][_0x22b364(0xee)]||_0x308659,_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]?'\x20\x20'+_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]:'','',_0x22b364(0xe7),..._0x3834a7[_0x22b364(0xf3)][_0x22b364(0x103)](_0x59aee4=>{const _0x13ceca=_0x22b364,_0x18c616=_0x59aee4[_0x13ceca(0x115)][_0x13ceca(0xfa)](0x1)[_0x13ceca(0x116)]('\x20'),_0x2abc0e=_0x59aee4[_0x13ceca(0x109)]===_0x13ceca(0x108)?'':'\x20['+_0x59aee4[_0x13ceca(0x109)]+']';return'\x20\x20'+_0x18c616[_0x13ceca(0x10b)](0x18)+'\x20'+(_0x59aee4[_0x13ceca(0x126)]||'')+_0x2abc0e;}),'','Use\x20`'+CLI_BIN_NAME+_0x22b364(0xe1)+_0x308659+_0x22b364(0x11e)][_0x22b364(0xe0)](Boolean);return _0x47dbcf[_0x22b364(0x116)]('\x0a');}export function listDynamicServiceEntries(){const _0x10fe8f=a60_0x6f84;return listLocalServices()[_0x10fe8f(0x103)](_0x538e29=>{const _0x888f9e=_0x10fe8f,_0x4504c8=_0x538e29[_0x888f9e(0xd5)];return{'service':_0x4504c8['service']['code'],'label':_0x4504c8['service'][_0x888f9e(0xee)]||_0x4504c8[_0x888f9e(0xf0)][_0x888f9e(0xe8)],'commands':_0x4504c8['commands']['map'](_0x58968b=>({'command':dynamicCommandName(_0x58968b),'description':_0x58968b[_0x888f9e(0x126)]||_0x888f9e(0xef)+_0x58968b[_0x888f9e(0xec)],'tag':riskTag(_0x58968b['risk'])}))};});}export function getDynamicServiceEntry(_0x2e6f7a){const _0x4e5e36=a60_0x6f84;return listDynamicServiceEntries()[_0x4e5e36(0x105)](_0xd1d7fa=>_0xd1d7fa[_0x4e5e36(0xf0)]===_0x2e6f7a);}export function listDynamicServiceDefinitions(_0x13abf1){const _0x4b52f=a60_0x6f84;return listLocalServiceTrees()['filter'](_0x4c10e3=>!_0x13abf1||_0x4c10e3[_0x4b52f(0xf0)][_0x4b52f(0xe8)]===_0x13abf1)[_0x4b52f(0xc4)](_0x51b7c1=>_0x51b7c1['commands'][_0x4b52f(0x103)](_0x43e686=>buildDynamicCommandDefinition(_0x51b7c1,_0x43e686)));}export function getDynamicServiceDefinitions(_0x34b34e){const _0x1c4739=listDynamicServiceDefinitions(_0x34b34e);return _0x1c4739['length']>0x0?_0x1c4739:undefined;}export function findDynamicServiceDefinition(_0x36b463,_0x5655e1){const _0x55d61a=a60_0x6f84;return listDynamicServiceDefinitions(_0x36b463)['find'](_0x5741d9=>_0x5741d9[_0x55d61a(0xf8)]===_0x5655e1);}export function buildDynamicCommandDefinition(_0x300bf8,_0x28cbc2){const _0x39c5fe=a60_0x6f84;return{'service':_0x300bf8[_0x39c5fe(0xf0)][_0x39c5fe(0xe8)],'command':dynamicCommandName(_0x28cbc2),'description':_0x28cbc2['description']||_0x39c5fe(0xef)+_0x28cbc2['cliPath'],'risk':_0x28cbc2[_0x39c5fe(0x109)],..._0x28cbc2[_0x39c5fe(0x109)]===_0x39c5fe(0x108)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x28cbc2)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x28cbc2[_0x39c5fe(0x121)]['map'](_0x5e1cca=>({'name':_0x5e1cca[_0x39c5fe(0xee)],'description':_0x5e1cca[_0x39c5fe(0x126)]||_0x5e1cca[_0x39c5fe(0xee)],'required':_0x5e1cca[_0x39c5fe(0xbc)]})),'flags':_0x28cbc2['flags'][_0x39c5fe(0x103)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x28cbc2),async 'dryRun'(_0x24939a){const _0x1d0fab=_0x39c5fe,_0x2b4e60=await compilePlan(_0x28cbc2,_0x24939a);return{'method':_0x1d0fab(0xd8),'url':_0x28cbc2['cliPath'],'body':{'target':targetPreview(_0x2b4e60),'params':_0x2b4e60[_0x1d0fab(0xc5)]},'description':_0x1d0fab(0x10a)+_0x28cbc2[_0x1d0fab(0xec)]};},async 'execute'(_0x3274ad){const _0x4429ab=_0x39c5fe,_0x832d3a=await compilePlan(_0x28cbc2,_0x3274ad),_0x198df2=Date[_0x4429ab(0xe3)](),_0x14f784=await executePlan(_0x832d3a,_0x28cbc2,_0x3274ad),_0x3f1ca9=Date[_0x4429ab(0xe3)]()-_0x198df2;return{'ok':!![],'data':{'service':_0x300bf8['service'],'command':_0x28cbc2[_0x4429ab(0xec)],'target':targetPreview(_0x832d3a),'result':_0x14f784,'elapsed':_0x3f1ca9},'message':_0x4429ab(0xf6)+_0x28cbc2['cliPath']+_0x4429ab(0xce)+_0x3f1ca9+'ms'};}};}function buildDynamicConfirmationDescription(_0x3bd1c4){const _0x1e4141=a60_0x6f84,_0x5b09cf=_0x3bd1c4['description']||_0x3bd1c4['cliPath'],_0x42cfd7=_0x3bd1c4[_0x1e4141(0x109)]===_0x1e4141(0xdb)?_0x1e4141(0x107):_0x1e4141(0xe9);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x5b09cf+_0x1e4141(0xed)+_0x42cfd7;}function dynamicCommandName(_0x26271d){const _0x1c349e=a60_0x6f84;return _0x26271d['fullPath']['slice'](0x1)[_0x1c349e(0x116)]('\x20');}function riskTag(_0x547514){const _0x4d05d9=a60_0x6f84;return _0x547514===_0x4d05d9(0x108)?'':'\x20\x20['+_0x547514+']';}function flagToCommandFlag(_0x3ff5f3){const _0x364e8b=a60_0x6f84;return{'name':_0x3ff5f3[_0x364e8b(0x113)],'type':_0x3ff5f3[_0x364e8b(0xd4)]===_0x364e8b(0xff)?'string':_0x3ff5f3[_0x364e8b(0xd4)],'description':_0x3ff5f3['description']||_0x3ff5f3[_0x364e8b(0xee)],'required':_0x3ff5f3[_0x364e8b(0xbc)],'default':isPrimitiveFlagDefault(_0x3ff5f3[_0x364e8b(0x10d)])?_0x3ff5f3['default']:undefined,'enum':_0x3ff5f3[_0x364e8b(0xe4)]};}async function compilePlan(_0x5c9188,_0x2456b1){const _0x3fd0a8=a60_0x6f84;return compileServiceTreeCommand(_0x5c9188,{'flags':_0x2456b1[_0x3fd0a8(0xdf)],'args':_0x2456b1['args'],'context':await buildServiceContext(_0x5c9188,_0x2456b1)});}async function buildServiceContext(_0x2823a9,_0x5c4fe9){const _0x3e070b=a60_0x6f84,_0x460799={'appCode':_0x5c4fe9['appCode'],'env':_0x5c4fe9[_0x3e070b(0x119)],'envName':_0x5c4fe9[_0x3e070b(0x119)]};if(!usesRuntimeContext(_0x2823a9))return _0x460799;const _0x10d9ee=await getLoginUserInfo(),_0x587f22=pickFirst(_0x10d9ee[_0x3e070b(0x100)],_0x10d9ee['id']);return{..._0x460799,'user':_0x10d9ee,'userId':_0x587f22,'id':_0x10d9ee['id'],'username':pickFirst(_0x10d9ee[_0x3e070b(0x10c)],_0x10d9ee[_0x3e070b(0xbf)],_0x10d9ee[_0x3e070b(0xde)]),'userName':_0x10d9ee[_0x3e070b(0xbf)],'nickname':pickFirst(_0x10d9ee[_0x3e070b(0xc9)],_0x10d9ee[_0x3e070b(0xc0)]),'nickName':_0x10d9ee[_0x3e070b(0xc0)],'tenantCode':_0x10d9ee[_0x3e070b(0xfd)],'employeeId':_0x10d9ee[_0x3e070b(0x101)]};}function usesRuntimeContext(_0x580598){const _0x28acfc=a60_0x6f84;return _0x580598[_0x28acfc(0xbd)][_0x28acfc(0x114)](_0x3f966d=>typeof _0x3f966d[_0x28acfc(0xc7)]==='string'&&(_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xc2))||_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xf2))));}function pickFirst(..._0x1b9754){return _0x1b9754['find'](_0x4c28bf=>_0x4c28bf!==undefined&&_0x4c28bf!==null);}function a60_0x4076(){const _0x25788e=['14327024DRHTTm','command','\x20<command>\x20[flags]','slice','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','dbtableConfig','tenantCode','tableName','json','userId','employeeId','3054NWUYKT','map','length','find','datasetCode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','read','risk','Preview\x20dynamic\x20service\x20command:\x20','padEnd','username','default','bff','\x20->\x20','Unknown\x20appRef\x20\x22','3541944PPqBno','\x20requires\x20target.sqlCode.','cliName','some','fullPath','join','kind','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','envName','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20SERVICE\x20TREE\x20TARGET','sqlCode','\x20\x20\x20\x20','`\x20to\x20inspect\x20the\x20manifest.','operator','appRef','args','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','env','appBindings','appcode','description','push','\x20\x20\x20\x20datasetCode:\x20','\x20\x20MAP\x20TO','required','mapTo','Cannot\x20resolve\x20datatable\x20\x22','userName','nickName','4282210aTChfp','context.','9009308DAXGnM','flatMap','params','sql','source','validation','nickname','3737596FgLMWo','string','appCode','\x20requires\x20target.functionName.','\x20completed\x20in\x20','1DpyoiZ','tree','3285BGKvOG','bffId','scriptName','type','normalizedManifest','remainingArgs','\x20\x20\x20\x20datatable:\x20','SERVICE_TREE','entries','app','high-risk-write','\x20\x20\x20\x20sqlCode:\x20','bffCode','loginName','rawFlags','filter','\x20service\x20detail\x20--service\x20','296133PSNcjA','now','enum','number','const','Commands:','code','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','target','18htucIl','cliPath','\x22.\x20','name','Run\x20service\x20command\x20','service','\x20\x20\x20\x20functionName:\x20','ctx.','commands','boolean','datatable','Service\x20command\x20'];a60_0x4076=function(){return _0x25788e;};return a60_0x4076();}async function executePlan(_0x1db91e,_0x3fdbed,_0x430d34){const _0x7fc571=a60_0x6f84;if(_0x1db91e[_0x7fc571(0x117)]==='data'){const _0x24ba0e=await resolveDatasetCode(_0x1db91e,_0x3fdbed,_0x430d34);return executeData(_0x24ba0e,_0x1db91e[_0x7fc571(0xf8)],_0x1db91e['params']);}if(_0x1db91e['kind']===_0x7fc571(0xc6)){if(!_0x1db91e[_0x7fc571(0x11c)])throw CliErrors['validation']('Service\x20command\x20'+_0x3fdbed['cliPath']+_0x7fc571(0x112));return executeSdkSql(_0x1db91e[_0x7fc571(0x11c)],normalizeScalarParams(_0x1db91e[_0x7fc571(0xc5)]));}if(_0x1db91e[_0x7fc571(0x117)]===_0x7fc571(0x10e)){const _0x219e35=_0x1db91e[_0x7fc571(0xd3)]||_0x1db91e[_0x7fc571(0xdd)]||(_0x1db91e['bffId']==null?'':String(_0x1db91e['bffId']));if(!_0x219e35)throw CliErrors['validation'](_0x7fc571(0xf6)+_0x3fdbed['cliPath']+_0x7fc571(0xcd));return executeSdkBff(_0x219e35,_0x1db91e[_0x7fc571(0xc5)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x1db91e[_0x7fc571(0x117)]);}async function resolveDatasetCode(_0x35990c,_0x390449,_0x16883c){const _0x2b8bcd=a60_0x6f84;if(_0x35990c[_0x2b8bcd(0x106)])return _0x35990c[_0x2b8bcd(0x106)];if(!_0x35990c[_0x2b8bcd(0xf5)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xf6)+_0x390449['cliPath']+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0xaf6851=await listDatasets(_0x16883c['appCode']),_0x1a63b7=_0xaf6851['find'](_0x232430=>_0x232430[_0x2b8bcd(0xfc)]?.[_0x2b8bcd(0xfe)]===_0x35990c[_0x2b8bcd(0xf5)]);if(!_0x1a63b7?.[_0x2b8bcd(0xe8)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xbe)+_0x35990c['datatable']+_0x2b8bcd(0x122)+_0x16883c[_0x2b8bcd(0xcc)]+'.',_0x2b8bcd(0x118));return _0x1a63b7[_0x2b8bcd(0xe8)];}function applyAppBinding(_0x69e9a4,_0x500afb,_0x5d5c40){const _0x3bc08e=a60_0x6f84,_0x2ff94d=_0x500afb[_0x3bc08e(0xea)][_0x3bc08e(0x120)];if(!_0x2ff94d)return;const _0x3c69d3=_0x69e9a4[_0x3bc08e(0x124)][_0x2ff94d];if(!_0x3c69d3)throw CliErrors[_0x3bc08e(0xc8)](_0x3bc08e(0x110)+_0x2ff94d+'\x22\x20in\x20service\x20command\x20'+_0x500afb[_0x3bc08e(0xec)]+'.',_0x3bc08e(0xfb));const _0x4cda1e=_0x3c69d3[_0x3bc08e(0x125)]||_0x3c69d3[_0x3bc08e(0xcc)];_0x4cda1e&&!hasText(_0x5d5c40[_0x3bc08e(0x125)])&&(_0x5d5c40[_0x3bc08e(0x125)]=_0x4cda1e),_0x3c69d3['app']&&!hasText(_0x5d5c40[_0x3bc08e(0xda)])&&!hasText(_0x5d5c40['appcode'])&&(_0x5d5c40[_0x3bc08e(0xda)]=_0x3c69d3[_0x3bc08e(0xda)]),_0x3c69d3['env']&&!hasText(_0x5d5c40['env'])&&(_0x5d5c40[_0x3bc08e(0x123)]=_0x3c69d3['env']);}function renderDynamicCommandHelp(_0x5d3533){const _0x1e2c96=a60_0x6f84,_0x3e4aaf=[_0x1e2c96(0x11b),_0x1e2c96(0x11a)+_0x5d3533['target'][_0x1e2c96(0x117)],'\x20\x20\x20\x20command:\x20'+_0x5d3533[_0x1e2c96(0xea)]['command']];if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xba)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)]);if(_0x5d3533['target'][_0x1e2c96(0xf5)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xd7)+_0x5d3533['target'][_0x1e2c96(0xf5)]);if(_0x5d3533[_0x1e2c96(0xea)]['sqlCode'])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xdc)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x11c)]);if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xf1)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)]);if(_0x5d3533[_0x1e2c96(0xbd)][_0x1e2c96(0x104)]>0x0){_0x3e4aaf[_0x1e2c96(0xb9)]('',_0x1e2c96(0xbb));for(const _0x5d5168 of _0x5d3533[_0x1e2c96(0xbd)]){_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0x11d)+(_0x5d5168['source']||_0x1e2c96(0xe6))+_0x1e2c96(0x10f)+_0x5d5168[_0x1e2c96(0xea)]+(_0x5d5168[_0x1e2c96(0x11f)]?'.'+_0x5d5168[_0x1e2c96(0x11f)]:''));}}return _0x3e4aaf[_0x1e2c96(0x116)]('\x0a');}function targetPreview(_0x1da5ce){const _0x2b7229=a60_0x6f84;return{'kind':_0x1da5ce[_0x2b7229(0x117)],'command':_0x1da5ce[_0x2b7229(0xf8)],'appRef':_0x1da5ce[_0x2b7229(0x120)],'datasetCode':_0x1da5ce[_0x2b7229(0x106)],'datatable':_0x1da5ce[_0x2b7229(0xf5)],'sqlCode':_0x1da5ce[_0x2b7229(0x11c)],'bffCode':_0x1da5ce[_0x2b7229(0xdd)],'bffId':_0x1da5ce[_0x2b7229(0xd2)],'functionName':_0x1da5ce[_0x2b7229(0xd3)]};}function normalizeScalarParams(_0x38a0c1){const _0x1ed9c5=a60_0x6f84;return Object['fromEntries'](Object[_0x1ed9c5(0xd9)](_0x38a0c1)['filter'](([,_0x3fdf11])=>typeof _0x3fdf11==='string'||typeof _0x3fdf11===_0x1ed9c5(0xe5)));}function hasText(_0x335d54){return typeof _0x335d54==='string'&&_0x335d54['trim']()['length']>0x0;}function isPrimitiveFlagDefault(_0x5a291b){const _0x243cd8=a60_0x6f84;return _0x5a291b===undefined||typeof _0x5a291b===_0x243cd8(0xcb)||typeof _0x5a291b===_0x243cd8(0xe5)||typeof _0x5a291b===_0x243cd8(0xf4);}
@@ -1 +1 @@
1
- (function(_0x24cc2a,_0x456326){const _0x405df0=a61_0x3d5a,_0x3f530b=_0x24cc2a();while(!![]){try{const _0x1d8bc1=parseInt(_0x405df0(0x8b))/0x1+parseInt(_0x405df0(0x86))/0x2*(-parseInt(_0x405df0(0x90))/0x3)+-parseInt(_0x405df0(0x80))/0x4+-parseInt(_0x405df0(0x88))/0x5+parseInt(_0x405df0(0x78))/0x6*(-parseInt(_0x405df0(0x77))/0x7)+parseInt(_0x405df0(0x97))/0x8+-parseInt(_0x405df0(0x93))/0x9*(-parseInt(_0x405df0(0x7f))/0xa);if(_0x1d8bc1===_0x456326)break;else _0x3f530b['push'](_0x3f530b['shift']());}catch(_0x324b40){_0x3f530b['push'](_0x3f530b['shift']());}}}(a61_0x3973,0x7a6bf));export function adaptServiceTreeManifestForLegacyFramework(_0x494999){const _0x424d65=a61_0x3d5a,_0x4043c2=cloneJsonValue(_0x494999),_0x52bae2=[];if(!isObjectRecord(_0x4043c2))return{'manifest':_0x4043c2,'errors':_0x52bae2};return Array['isArray'](_0x4043c2['commands'])&&_0x4043c2['commands'][_0x424d65(0x95)]((_0x2d4d6b,_0x47d640)=>{const _0x458696=_0x424d65;if(!isObjectRecord(_0x2d4d6b))return;adaptBffTarget(_0x2d4d6b[_0x458696(0x92)],'$.commands['+_0x47d640+_0x458696(0x8a),_0x52bae2);}),adaptResources(_0x4043c2[_0x424d65(0x94)],'$.resources',_0x52bae2),{'manifest':_0x4043c2,'errors':_0x52bae2};}export function toPublicServiceTreeTarget(_0x3d2d6e){const _0x58a7de=a61_0x3d5a,{scriptName:_0x28b686,..._0x3958dc}=_0x3d2d6e;return typeof _0x28b686===_0x58a7de(0x96)&&_0x28b686[_0x58a7de(0x7e)]()&&(_0x3958dc[_0x58a7de(0x9b)]=_0x28b686),_0x3958dc;}export function toPublicNormalizedServiceTree(_0x2c8d6e){const _0x42ad52=a61_0x3d5a;return{..._0x2c8d6e,'commands':_0x2c8d6e[_0x42ad52(0x9e)]['map'](_0x2e7afa=>({..._0x2e7afa,'target':toPublicServiceTreeTarget(_0x2e7afa[_0x42ad52(0x92)])}))};}function a61_0x3973(){const _0x1f016e=['kind','push','trim','330OZrXbA','1584284JWBvOH','.functionName','isArray','.target','actions','.resources','55100RhNBGd','map','4802575iwdMRf','scriptName','].target','211666mhrGYn','.actions.','bff','bff.exec','action','6JmLrqx','.scriptName','target','463779GrnbIQ','resources','forEach','string','2142616xbkQTa','call','error','entries','functionName','prototype','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','commands','7iTNbNC','1601346jXBwkR','hasOwnProperty','functionName\x20must\x20be\x20a\x20non-empty\x20string.','fromEntries'];a61_0x3973=function(){return _0x1f016e;};return a61_0x3973();}function adaptResources(_0xf7183e,_0x513a56,_0x9d1c58){const _0x385bd0=a61_0x3d5a;if(!isObjectRecord(_0xf7183e))return;for(const [_0x2ff93c,_0x2da5da]of Object[_0x385bd0(0x9a)](_0xf7183e)){if(!isObjectRecord(_0x2da5da))continue;const _0x1023a3=_0x513a56+'.'+_0x2ff93c;if(isObjectRecord(_0x2da5da[_0x385bd0(0x84)]))for(const [_0x1d88c5,_0x47de59]of Object['entries'](_0x2da5da[_0x385bd0(0x84)])){if(!isObjectRecord(_0x47de59))continue;const _0x1cb65f=_0x1023a3+_0x385bd0(0x8c)+_0x1d88c5,_0x4548d3=isObjectRecord(_0x47de59[_0x385bd0(0x92)])&&_0x47de59[_0x385bd0(0x92)][_0x385bd0(0x7c)]===_0x385bd0(0x8d);adaptBffTarget(_0x47de59[_0x385bd0(0x92)],_0x1cb65f+_0x385bd0(0x83),_0x9d1c58),(_0x4548d3||isBffAction(_0x47de59))&&adaptFunctionNameField(_0x47de59,_0x1cb65f,_0x9d1c58);}adaptResources(_0x2da5da['resources'],_0x1023a3+_0x385bd0(0x85),_0x9d1c58);}}function adaptBffTarget(_0x3d6896,_0x42c5bb,_0x16fc86){if(!isObjectRecord(_0x3d6896)||_0x3d6896['kind']!=='bff')return;adaptFunctionNameField(_0x3d6896,_0x42c5bb,_0x16fc86);}function adaptFunctionNameField(_0x2a81f0,_0x208302,_0x2cebdb){const _0x377c4e=a61_0x3d5a;Object[_0x377c4e(0x9c)][_0x377c4e(0x79)]['call'](_0x2a81f0,_0x377c4e(0x89))&&_0x2cebdb[_0x377c4e(0x7d)]({'level':_0x377c4e(0x99),'path':_0x208302+_0x377c4e(0x91),'message':_0x377c4e(0x9d)});if(Object[_0x377c4e(0x9c)][_0x377c4e(0x79)][_0x377c4e(0x98)](_0x2a81f0,'functionName')){if(typeof _0x2a81f0[_0x377c4e(0x9b)]!==_0x377c4e(0x96)||!_0x2a81f0[_0x377c4e(0x9b)]['trim']()){_0x2cebdb[_0x377c4e(0x7d)]({'level':_0x377c4e(0x99),'path':_0x208302+_0x377c4e(0x81),'message':_0x377c4e(0x7a)}),delete _0x2a81f0['functionName'];return;}_0x2a81f0[_0x377c4e(0x89)]=_0x2a81f0[_0x377c4e(0x9b)],delete _0x2a81f0[_0x377c4e(0x9b)];}}function a61_0x3d5a(_0x12725b,_0x5e03fa){_0x12725b=_0x12725b-0x77;const _0x3973a1=a61_0x3973();let _0x3d5a3f=_0x3973a1[_0x12725b];return _0x3d5a3f;}function isBffAction(_0x32144c){const _0x5d7890=a61_0x3d5a;return _0x32144c[_0x5d7890(0x7c)]===_0x5d7890(0x8d)||_0x32144c[_0x5d7890(0x8f)]===_0x5d7890(0x8e)||_0x32144c['target']==='bff.exec';}function cloneJsonValue(_0x16f6ee){const _0xde4cc2=a61_0x3d5a;if(Array[_0xde4cc2(0x82)](_0x16f6ee))return _0x16f6ee[_0xde4cc2(0x87)](_0x47c694=>cloneJsonValue(_0x47c694));if(isObjectRecord(_0x16f6ee))return Object[_0xde4cc2(0x7b)](Object['entries'](_0x16f6ee)[_0xde4cc2(0x87)](([_0xf369bd,_0x5627a5])=>[_0xf369bd,cloneJsonValue(_0x5627a5)]));return _0x16f6ee;}function isObjectRecord(_0xd8abd1){const _0x5cf694=a61_0x3d5a;return Boolean(_0xd8abd1)&&typeof _0xd8abd1==='object'&&!Array[_0x5cf694(0x82)](_0xd8abd1);}
1
+ (function(_0x1a6f84,_0x507d00){const _0x6bd1ce=a61_0x236f,_0x91973d=_0x1a6f84();while(!![]){try{const _0x32caf6=-parseInt(_0x6bd1ce(0xb1))/0x1+parseInt(_0x6bd1ce(0x9d))/0x2+-parseInt(_0x6bd1ce(0x9f))/0x3*(-parseInt(_0x6bd1ce(0xa5))/0x4)+-parseInt(_0x6bd1ce(0x97))/0x5*(-parseInt(_0x6bd1ce(0xac))/0x6)+parseInt(_0x6bd1ce(0xa8))/0x7*(parseInt(_0x6bd1ce(0xb6))/0x8)+-parseInt(_0x6bd1ce(0xaa))/0x9*(-parseInt(_0x6bd1ce(0xa6))/0xa)+parseInt(_0x6bd1ce(0xae))/0xb*(-parseInt(_0x6bd1ce(0x95))/0xc);if(_0x32caf6===_0x507d00)break;else _0x91973d['push'](_0x91973d['shift']());}catch(_0x500bec){_0x91973d['push'](_0x91973d['shift']());}}}(a61_0x3f6a,0xca530));function a61_0x236f(_0x4ddb47,_0x6796bd){_0x4ddb47=_0x4ddb47-0x8d;const _0x3f6ae5=a61_0x3f6a();let _0x236f1a=_0x3f6ae5[_0x4ddb47];return _0x236f1a;}export function adaptServiceTreeManifestForLegacyFramework(_0x2a707c){const _0x36b11a=a61_0x236f,_0x534ecd=cloneJsonValue(_0x2a707c),_0x2c877f=[];if(!isObjectRecord(_0x534ecd))return{'manifest':_0x534ecd,'errors':_0x2c877f};return Array['isArray'](_0x534ecd[_0x36b11a(0x99)])&&_0x534ecd['commands']['forEach']((_0x479e1b,_0x30a911)=>{const _0x5c8ace=_0x36b11a;if(!isObjectRecord(_0x479e1b))return;adaptBffTarget(_0x479e1b[_0x5c8ace(0xaf)],_0x5c8ace(0xa3)+_0x30a911+_0x5c8ace(0xa4),_0x2c877f);}),adaptResources(_0x534ecd['resources'],_0x36b11a(0x93),_0x2c877f),{'manifest':_0x534ecd,'errors':_0x2c877f};}export function toPublicServiceTreeTarget(_0x181de1){const _0x36774c=a61_0x236f,{scriptName:_0x28f9fe,..._0x860c13}=_0x181de1;return typeof _0x28f9fe===_0x36774c(0x91)&&_0x28f9fe['trim']()&&(_0x860c13['functionName']=_0x28f9fe),_0x860c13;}export function toPublicNormalizedServiceTree(_0x3b9174){const _0x49ab0a=a61_0x236f;return{..._0x3b9174,'commands':_0x3b9174[_0x49ab0a(0x99)]['map'](_0x3c738f=>({..._0x3c738f,'target':toPublicServiceTreeTarget(_0x3c738f[_0x49ab0a(0xaf)])}))};}function adaptResources(_0x17f896,_0xd51d72,_0x3a1b9a){const _0x34d2d3=a61_0x236f;if(!isObjectRecord(_0x17f896))return;for(const [_0x1ea0b3,_0x22c32c]of Object['entries'](_0x17f896)){if(!isObjectRecord(_0x22c32c))continue;const _0x41adf1=_0xd51d72+'.'+_0x1ea0b3;if(isObjectRecord(_0x22c32c[_0x34d2d3(0x8f)]))for(const [_0x2d6eea,_0x9c640c]of Object[_0x34d2d3(0xb3)](_0x22c32c['actions'])){if(!isObjectRecord(_0x9c640c))continue;const _0x42891d=_0x41adf1+_0x34d2d3(0x92)+_0x2d6eea,_0x26877c=isObjectRecord(_0x9c640c[_0x34d2d3(0xaf)])&&_0x9c640c[_0x34d2d3(0xaf)][_0x34d2d3(0xa2)]===_0x34d2d3(0xa1);adaptBffTarget(_0x9c640c[_0x34d2d3(0xaf)],_0x42891d+_0x34d2d3(0x94),_0x3a1b9a),(_0x26877c||isBffAction(_0x9c640c))&&adaptFunctionNameField(_0x9c640c,_0x42891d,_0x3a1b9a);}adaptResources(_0x22c32c[_0x34d2d3(0x96)],_0x41adf1+_0x34d2d3(0x98),_0x3a1b9a);}}function adaptBffTarget(_0x24f534,_0x2ccef7,_0x10464b){const _0x7100a=a61_0x236f;if(!isObjectRecord(_0x24f534)||_0x24f534[_0x7100a(0xa2)]!==_0x7100a(0xa1))return;adaptFunctionNameField(_0x24f534,_0x2ccef7,_0x10464b);}function adaptFunctionNameField(_0x42fe35,_0x144c84,_0x40711c){const _0x13e111=a61_0x236f;Object[_0x13e111(0x9b)][_0x13e111(0x9c)][_0x13e111(0x90)](_0x42fe35,_0x13e111(0xa0))&&_0x40711c[_0x13e111(0xb0)]({'level':_0x13e111(0xb4),'path':_0x144c84+_0x13e111(0xb5),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x13e111(0x9b)][_0x13e111(0x9c)][_0x13e111(0x90)](_0x42fe35,_0x13e111(0x9e))){if(typeof _0x42fe35[_0x13e111(0x9e)]!=='string'||!_0x42fe35[_0x13e111(0x9e)][_0x13e111(0x9a)]()){_0x40711c[_0x13e111(0xb0)]({'level':_0x13e111(0xb4),'path':_0x144c84+_0x13e111(0x8d),'message':_0x13e111(0xab)}),delete _0x42fe35[_0x13e111(0x9e)];return;}_0x42fe35['scriptName']=_0x42fe35[_0x13e111(0x9e)],delete _0x42fe35['functionName'];}}function isBffAction(_0x52fbc1){const _0x4286ec=a61_0x236f;return _0x52fbc1[_0x4286ec(0xa2)]===_0x4286ec(0xa1)||_0x52fbc1[_0x4286ec(0xb2)]==='bff.exec'||_0x52fbc1['target']===_0x4286ec(0xa7);}function a61_0x3f6a(){const _0x151c62=['call','string','.actions.','$.resources','.target','5098284oWkybT','resources','3742560HRKFLL','.resources','commands','trim','prototype','hasOwnProperty','1797648JQHaVG','functionName','557871QItNOd','scriptName','bff','kind','$.commands[','].target','4jsxQzQ','10YYlaip','bff.exec','1823066rtJBiF','isArray','12411675aZMixO','functionName\x20must\x20be\x20a\x20non-empty\x20string.','12cqnsHm','object','99zLyXao','target','push','350199LUUvlB','action','entries','error','.scriptName','32MGOHYn','.functionName','map','actions'];a61_0x3f6a=function(){return _0x151c62;};return a61_0x3f6a();}function cloneJsonValue(_0x23031e){const _0x2a901a=a61_0x236f;if(Array[_0x2a901a(0xa9)](_0x23031e))return _0x23031e['map'](_0x2219b7=>cloneJsonValue(_0x2219b7));if(isObjectRecord(_0x23031e))return Object['fromEntries'](Object[_0x2a901a(0xb3)](_0x23031e)[_0x2a901a(0x8e)](([_0x490277,_0x59bd81])=>[_0x490277,cloneJsonValue(_0x59bd81)]));return _0x23031e;}function isObjectRecord(_0x105b42){const _0x4af1d1=a61_0x236f;return Boolean(_0x105b42)&&typeof _0x105b42===_0x4af1d1(0xad)&&!Array[_0x4af1d1(0xa9)](_0x105b42);}
@@ -1 +1 @@
1
- const a62_0x259ac9=a62_0x583a;(function(_0x3e23c1,_0x19e89e){const _0x4eb4bd=a62_0x583a,_0x1edfa9=_0x3e23c1();while(!![]){try{const _0x4039bd=parseInt(_0x4eb4bd(0x13a))/0x1*(-parseInt(_0x4eb4bd(0x15e))/0x2)+-parseInt(_0x4eb4bd(0x15a))/0x3*(parseInt(_0x4eb4bd(0x12c))/0x4)+-parseInt(_0x4eb4bd(0x12e))/0x5*(-parseInt(_0x4eb4bd(0x161))/0x6)+parseInt(_0x4eb4bd(0x129))/0x7+-parseInt(_0x4eb4bd(0x14e))/0x8+-parseInt(_0x4eb4bd(0x13d))/0x9*(-parseInt(_0x4eb4bd(0x152))/0xa)+-parseInt(_0x4eb4bd(0x126))/0xb;if(_0x4039bd===_0x19e89e)break;else _0x1edfa9['push'](_0x1edfa9['shift']());}catch(_0x45d5b4){_0x1edfa9['push'](_0x1edfa9['shift']());}}}(a62_0x37e5,0x87e78));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a62_0x37e5(){const _0x27a668=['map','10peFXqr','report','remove','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','type','registryPath','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','Local\x20service\x20code,\x20for\x20example\x20crm','errors','read','updated','length','715783eigOZw','file','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','1017FbSGhI','\x20service(s).','filePath','serviceCode','registry','entries','name','warnings','list','Exported\x20service\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','hash','imported','flags','WRITE','target','kind','453000FHNjDW','cliPath','lower\x20kebab-case\x20service\x20code','write','21970ejaQOB','commands','Updated','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','service','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Local\x20service\x20not\x20found:\x20','importedAt','11292FUesJt','source','\x20service\x20','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','2sXVoyM','registryServiceCode','str','1654314hCPLef','risk','normalizedManifest','detail','\x20service(s),\x20updated\x20','export','Service\x20Tree\x20manifest\x20file\x20path','Service\x20manifest\x20validation\x20passed.','replaced','version','entry','335698FNxfId','manifests','manifest','4656981WfeAlg','reduce','serviceCount','112XZUXKY'];a62_0x37e5=function(){return _0x27a668;};return a62_0x37e5();}const FILE_FLAG={'name':a62_0x259ac9(0x13b),'type':'string','required':!![],'description':a62_0x259ac9(0x167)},SERVICE_FLAG={'name':a62_0x259ac9(0x156),'type':'string','required':!![],'description':a62_0x259ac9(0x135),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x259ac9(0x150)}};function summarizeService(_0x2b3944){const _0x429df7=a62_0x259ac9;return{'serviceCode':_0x2b3944[_0x429df7(0x140)],'name':_0x2b3944['normalizedManifest'][_0x429df7(0x156)][_0x429df7(0x143)],'version':_0x2b3944['version'],'importedAt':_0x2b3944[_0x429df7(0x159)],'source':_0x2b3944['source'],'commandCount':_0x2b3944['normalizedManifest'][_0x429df7(0x153)][_0x429df7(0x139)],'commands':_0x2b3944[_0x429df7(0x163)]['commands']['map'](_0x473ba9=>({'path':_0x473ba9[_0x429df7(0x14f)],'description':_0x473ba9['description'],'risk':_0x473ba9['risk'],'target':toPublicServiceTreeTarget(_0x473ba9[_0x429df7(0x14c)]),'flags':_0x473ba9[_0x429df7(0x14a)][_0x429df7(0x12d)](_0x4c4b00=>({'name':_0x4c4b00[_0x429df7(0x143)],'cliName':_0x4c4b00['cliName'],'type':_0x4c4b00[_0x429df7(0x132)],'required':_0x4c4b00['required']===!![]}))}))};}function summarizeLoadedManifest(_0x1b8523){const _0xda4018=a62_0x259ac9;return{'service':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x156)],'version':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x16a)],'commandCount':_0x1b8523[_0xda4018(0x163)]?.[_0xda4018(0x153)]['length']??0x0,'commands':_0x1b8523[_0xda4018(0x163)]?.['commands']['map'](_0x25322b=>({'path':_0x25322b[_0xda4018(0x14f)],'risk':_0x25322b['risk'],'target':toPublicServiceTreeTarget(_0x25322b[_0xda4018(0x14c)])}))??[],'registryIndex':_0x1b8523['registryIndex'],'registryServiceCode':_0x1b8523[_0xda4018(0x15f)],'errors':_0x1b8523[_0xda4018(0x12f)][_0xda4018(0x136)],'warnings':_0x1b8523['report'][_0xda4018(0x144)]};}function a62_0x583a(_0x5d9eba,_0x39a0b0){_0x5d9eba=_0x5d9eba-0x126;const _0x37e521=a62_0x37e5();let _0x583a4e=_0x37e521[_0x5d9eba];return _0x583a4e;}export const serviceDefinitions=[{'service':a62_0x259ac9(0x156),'command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a62_0x259ac9(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x38e656){const _0x43d826=a62_0x259ac9,_0x7234c6=loadServiceManifestFromFile(_0x38e656[_0x43d826(0x160)](_0x43d826(0x13b)));if(!_0x7234c6['report']['ok'])return{'ok':![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6[_0x43d826(0x14d)],'serviceCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)],'services':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x12d)](summarizeLoadedManifest),'errors':_0x7234c6[_0x43d826(0x12f)][_0x43d826(0x136)],'warnings':_0x7234c6[_0x43d826(0x12f)]['warnings']},'message':formatValidationFailure(_0x7234c6[_0x43d826(0x12f)])};if(_0x7234c6[_0x43d826(0x14d)]===_0x43d826(0x141)||_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)]!==0x1)return{'ok':!![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6['kind'],'serviceCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x139)],'commandCount':_0x7234c6[_0x43d826(0x127)][_0x43d826(0x12a)]((_0x770db9,_0x24a29f)=>_0x770db9+(_0x24a29f[_0x43d826(0x163)]?.['commands']['length']??0x0),0x0),'services':_0x7234c6[_0x43d826(0x127)]['map'](summarizeLoadedManifest),'warnings':_0x7234c6[_0x43d826(0x12f)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x7234c6[_0x43d826(0x13f)],'hash':_0x7234c6[_0x43d826(0x148)],'kind':_0x7234c6[_0x43d826(0x14d)],'service':_0x7234c6['normalizedManifest']?.[_0x43d826(0x156)],'version':_0x7234c6['normalizedManifest']?.[_0x43d826(0x16a)],'commandCount':_0x7234c6[_0x43d826(0x163)]?.[_0x43d826(0x153)][_0x43d826(0x139)]??0x0,'commands':_0x7234c6[_0x43d826(0x163)]?.[_0x43d826(0x153)][_0x43d826(0x12d)](_0x581728=>({'path':_0x581728[_0x43d826(0x14f)],'risk':_0x581728[_0x43d826(0x162)],'target':toPublicServiceTreeTarget(_0x581728[_0x43d826(0x14c)])})),'warnings':_0x7234c6[_0x43d826(0x12f)][_0x43d826(0x144)]},'message':_0x43d826(0x168)};}},{'service':a62_0x259ac9(0x156),'command':'import','description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5beead){const _0x30055f=a62_0x259ac9,_0x210f6a=loadServiceManifestFromFile(_0x5beead[_0x30055f(0x160)](_0x30055f(0x13b)));return{'method':_0x30055f(0x14b),'url':getServiceRegistryPath(),'body':{'file':_0x210f6a['filePath'],'hash':_0x210f6a[_0x30055f(0x148)],'kind':_0x210f6a[_0x30055f(0x14d)],'ok':_0x210f6a['report']['ok'],'service':_0x210f6a[_0x30055f(0x163)]?.['service'],'version':_0x210f6a[_0x30055f(0x163)]?.[_0x30055f(0x16a)],'serviceCount':_0x210f6a['manifests']['length'],'services':_0x210f6a['manifests'][_0x30055f(0x12d)](_0x1dabd1=>({'service':_0x1dabd1[_0x30055f(0x163)]?.[_0x30055f(0x156)],'version':_0x1dabd1[_0x30055f(0x163)]?.['version'],'commandCount':_0x1dabd1['normalizedManifest']?.[_0x30055f(0x153)]['length']??0x0,'errors':_0x1dabd1[_0x30055f(0x12f)]['errors']})),'errors':_0x210f6a[_0x30055f(0x12f)]['errors'],'commandCount':_0x210f6a[_0x30055f(0x163)]?.[_0x30055f(0x153)][_0x30055f(0x139)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x11474b){const _0x33470c=a62_0x259ac9,_0x3268b2=importServiceManifest(_0x11474b[_0x33470c(0x160)](_0x33470c(0x13b)));if(_0x3268b2[_0x33470c(0x142)][_0x33470c(0x139)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3268b2['registryPath'],'imported':_0x3268b2[_0x33470c(0x149)],'updated':_0x3268b2[_0x33470c(0x138)],'serviceCount':_0x3268b2[_0x33470c(0x12b)],'services':_0x3268b2['entries']['map'](summarizeService)},'message':'Imported\x20'+_0x3268b2[_0x33470c(0x149)]+_0x33470c(0x165)+_0x3268b2[_0x33470c(0x138)]+_0x33470c(0x13e)};return{'ok':!![],'data':{'registryPath':_0x3268b2['registryPath'],'replaced':_0x3268b2[_0x33470c(0x169)],'imported':_0x3268b2[_0x33470c(0x149)],'updated':_0x3268b2['updated'],'serviceCount':_0x3268b2[_0x33470c(0x12b)],'service':summarizeService(_0x3268b2['entry'])},'message':(_0x3268b2[_0x33470c(0x169)]?_0x33470c(0x154):'Imported')+_0x33470c(0x15c)+_0x3268b2[_0x33470c(0x16b)][_0x33470c(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x166),'description':a62_0x259ac9(0x131),'risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x134),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1c185a){const _0x508939=a62_0x259ac9,_0x55082f=getLocalServiceEntry(_0x1c185a[_0x508939(0x160)](_0x508939(0x156)));return{'method':_0x508939(0x14b),'url':_0x1c185a[_0x508939(0x160)](_0x508939(0x13b)),'body':{'service':_0x1c185a['str'](_0x508939(0x156)),'found':Boolean(_0x55082f),'version':_0x55082f?.['version'],'source':_0x55082f?.[_0x508939(0x15b)]},'description':_0x508939(0x155)};},async 'execute'(_0x3e054d){const _0x5b4f61=a62_0x259ac9,_0x29d455=exportServiceManifest(_0x3e054d[_0x5b4f61(0x160)](_0x5b4f61(0x156)),_0x3e054d['str'](_0x5b4f61(0x13b)));return{'ok':!![],'data':{'registryPath':_0x29d455[_0x5b4f61(0x133)],'file':_0x29d455[_0x5b4f61(0x13f)],'service':summarizeService(_0x29d455[_0x5b4f61(0x16b)])},'message':_0x5b4f61(0x146)+_0x29d455[_0x5b4f61(0x16b)][_0x5b4f61(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x145),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xfbdcb4=a62_0x259ac9,_0x3e7588=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3e7588[_0xfbdcb4(0x139)],'services':_0x3e7588[_0xfbdcb4(0x12d)](summarizeService)}};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x130),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a62_0x259ac9(0x151),'confirmationDescription':a62_0x259ac9(0x15d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x58e497){const _0x1e2370=a62_0x259ac9,_0x1810e7=getLocalServiceEntry(_0x58e497[_0x1e2370(0x160)](_0x1e2370(0x156)));return{'method':_0x1e2370(0x14b),'url':getServiceRegistryPath(),'body':{'service':_0x58e497[_0x1e2370(0x160)](_0x1e2370(0x156)),'found':Boolean(_0x1810e7),'version':_0x1810e7?.[_0x1e2370(0x16a)],'source':_0x1810e7?.['source']},'description':_0x1e2370(0x157)};},async 'execute'(_0x5ef80b){const _0x1dfd3e=a62_0x259ac9,_0x5b279f=removeServiceManifest(_0x5ef80b[_0x1dfd3e(0x160)](_0x1dfd3e(0x156)));return{'ok':!![],'data':{'registryPath':_0x5b279f[_0x1dfd3e(0x133)],'serviceCount':_0x5b279f[_0x1dfd3e(0x12b)],'service':summarizeService(_0x5b279f[_0x1dfd3e(0x16b)])},'message':'Removed\x20service\x20'+_0x5b279f['entry'][_0x1dfd3e(0x140)]+'.'};}},{'service':a62_0x259ac9(0x156),'command':a62_0x259ac9(0x164),'description':a62_0x259ac9(0x147),'risk':a62_0x259ac9(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x375447){const _0x2b9f1f=a62_0x259ac9,_0x3b2433=getLocalServiceEntry(_0x375447[_0x2b9f1f(0x160)]('service'));if(!_0x3b2433)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x375447[_0x2b9f1f(0x160)]('service')},'message':_0x2b9f1f(0x158)+_0x375447[_0x2b9f1f(0x160)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3b2433),'manifest':_0x3b2433[_0x2b9f1f(0x128)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3b2433[_0x2b9f1f(0x163)])}};}}];
1
+ const a62_0x5216c9=a62_0x46cd;function a62_0x56e2(){const _0x597a5d=['8OFfUKp','57870aPhCsF','list','1009617bGFlDU','registry','\x20service(s),\x20updated\x20','import','name','required','remove','length','lower\x20kebab-case\x20service\x20code','service','flags','730885UinsJB','Local\x20service\x20code,\x20for\x20example\x20crm','write','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','kind','validate','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','type','Service\x20Tree\x20manifest\x20file\x20path','registryIndex','registryServiceCode','manifest','Imported','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.','Exported\x20service\x20','hash','1195438YncrEB','version','reduce','serviceCount','read','Imported\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','normalizedManifest','target','file','entry','source','3931014qVBfkS','12wdinbL','entries','description','imported','string','str','export','updated','4122643YAhoBe','cliPath','report','errors','WRITE','Updated','manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','filePath','cliName','registryPath','1051585EXwOIb','importedAt','serviceCode','commands','warnings','Service\x20manifest\x20validation\x20passed.','map','\x20service\x20','Service\x20registry\x20validation\x20passed.','Removed\x20service\x20','risk','replaced'];a62_0x56e2=function(){return _0x597a5d;};return a62_0x56e2();}function a62_0x46cd(_0xfe6874,_0x778575){_0xfe6874=_0xfe6874-0xaa;const _0x56e294=a62_0x56e2();let _0x46cdc0=_0x56e294[_0xfe6874];return _0x46cdc0;}(function(_0x252812,_0x47c1dd){const _0x19b32f=a62_0x46cd,_0xe1c1c5=_0x252812();while(!![]){try{const _0x747fa8=parseInt(_0x19b32f(0xee))/0x1+-parseInt(_0x19b32f(0xb4))/0x2+-parseInt(_0x19b32f(0xe3))/0x3+parseInt(_0x19b32f(0xc1))/0x4*(-parseInt(_0x19b32f(0xd4))/0x5)+parseInt(_0x19b32f(0xc0))/0x6+-parseInt(_0x19b32f(0xc9))/0x7*(-parseInt(_0x19b32f(0xe0))/0x8)+parseInt(_0x19b32f(0xe1))/0x9;if(_0x747fa8===_0x47c1dd)break;else _0xe1c1c5['push'](_0xe1c1c5['shift']());}catch(_0xe36c80){_0xe1c1c5['push'](_0xe1c1c5['shift']());}}}(a62_0x56e2,0x659e0));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_0x5216c9(0xbd),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xac)},SERVICE_FLAG={'name':a62_0x5216c9(0xec),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xef),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x5216c9(0xeb)}};function summarizeService(_0x4410af){const _0x3d735e=a62_0x5216c9;return{'serviceCode':_0x4410af[_0x3d735e(0xd6)],'name':_0x4410af[_0x3d735e(0xbb)]['service'][_0x3d735e(0xe7)],'version':_0x4410af[_0x3d735e(0xb5)],'importedAt':_0x4410af[_0x3d735e(0xd5)],'source':_0x4410af['source'],'commandCount':_0x4410af[_0x3d735e(0xbb)][_0x3d735e(0xd7)][_0x3d735e(0xea)],'commands':_0x4410af['normalizedManifest'][_0x3d735e(0xd7)][_0x3d735e(0xda)](_0x9079bd=>({'path':_0x9079bd['cliPath'],'description':_0x9079bd[_0x3d735e(0xc3)],'risk':_0x9079bd[_0x3d735e(0xde)],'target':toPublicServiceTreeTarget(_0x9079bd[_0x3d735e(0xbc)]),'flags':_0x9079bd[_0x3d735e(0xed)][_0x3d735e(0xda)](_0x30c06d=>({'name':_0x30c06d[_0x3d735e(0xe7)],'cliName':_0x30c06d[_0x3d735e(0xd2)],'type':_0x30c06d[_0x3d735e(0xab)],'required':_0x30c06d[_0x3d735e(0xe8)]===!![]}))}))};}function summarizeLoadedManifest(_0x30fe86){const _0x409c0d=a62_0x5216c9;return{'service':_0x30fe86['normalizedManifest']?.['service'],'version':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xb5)],'commandCount':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xea)]??0x0,'commands':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xda)](_0x140d8f=>({'path':_0x140d8f['cliPath'],'risk':_0x140d8f[_0x409c0d(0xde)],'target':toPublicServiceTreeTarget(_0x140d8f[_0x409c0d(0xbc)])}))??[],'registryIndex':_0x30fe86[_0x409c0d(0xad)],'registryServiceCode':_0x30fe86[_0x409c0d(0xae)],'errors':_0x30fe86[_0x409c0d(0xcb)][_0x409c0d(0xcc)],'warnings':_0x30fe86[_0x409c0d(0xcb)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xf3),'description':a62_0x5216c9(0xd0),'risk':a62_0x5216c9(0xb8),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xca8a37){const _0x958f72=a62_0x5216c9,_0x9c3643=loadServiceManifestFromFile(_0xca8a37[_0x958f72(0xc6)](_0x958f72(0xbd)));if(!_0x9c3643[_0x958f72(0xcb)]['ok'])return{'ok':![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643['manifests'][_0x958f72(0xea)],'services':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xda)](summarizeLoadedManifest),'errors':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xcc)],'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':formatValidationFailure(_0x9c3643[_0x958f72(0xcb)])};if(_0x9c3643[_0x958f72(0xf2)]===_0x958f72(0xe4)||_0x9c3643['manifests'][_0x958f72(0xea)]!==0x1)return{'ok':!![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643[_0x958f72(0xcf)]['length'],'commandCount':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xb6)]((_0x5bd8bf,_0x291242)=>_0x5bd8bf+(_0x291242[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0),0x0),'services':_0x9c3643[_0x958f72(0xcf)]['map'](summarizeLoadedManifest),'warnings':_0x9c3643[_0x958f72(0xcb)]['warnings']},'message':_0x958f72(0xdc)};return{'ok':!![],'data':{'file':_0x9c3643['filePath'],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643[_0x958f72(0xf2)],'service':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xec)],'version':_0x9c3643[_0x958f72(0xbb)]?.['version'],'commandCount':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0,'commands':_0x9c3643[_0x958f72(0xbb)]?.['commands'][_0x958f72(0xda)](_0x6f5a1e=>({'path':_0x6f5a1e[_0x958f72(0xca)],'risk':_0x6f5a1e['risk'],'target':toPublicServiceTreeTarget(_0x6f5a1e['target'])})),'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':_0x958f72(0xd9)};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe6),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x5216c9(0xf0),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2fc7f7){const _0x3177a0=a62_0x5216c9,_0x2b57fd=loadServiceManifestFromFile(_0x2fc7f7['str'](_0x3177a0(0xbd)));return{'method':_0x3177a0(0xcd),'url':getServiceRegistryPath(),'body':{'file':_0x2b57fd[_0x3177a0(0xd1)],'hash':_0x2b57fd['hash'],'kind':_0x2b57fd[_0x3177a0(0xf2)],'ok':_0x2b57fd[_0x3177a0(0xcb)]['ok'],'service':_0x2b57fd[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xb5)],'serviceCount':_0x2b57fd['manifests']['length'],'services':_0x2b57fd[_0x3177a0(0xcf)][_0x3177a0(0xda)](_0xf91761=>({'service':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xb5)],'commandCount':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0,'errors':_0xf91761[_0x3177a0(0xcb)][_0x3177a0(0xcc)]})),'errors':_0x2b57fd['report'][_0x3177a0(0xcc)],'commandCount':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x50aa88){const _0x510d54=a62_0x5216c9,_0x5ad74c=importServiceManifest(_0x50aa88[_0x510d54(0xc6)]('file'));if(_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xea)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5ad74c['registryPath'],'imported':_0x5ad74c[_0x510d54(0xc4)],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'services':_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xda)](summarizeService)},'message':_0x510d54(0xb9)+_0x5ad74c['imported']+_0x510d54(0xe5)+_0x5ad74c[_0x510d54(0xc8)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x5ad74c[_0x510d54(0xd3)],'replaced':_0x5ad74c[_0x510d54(0xdf)],'imported':_0x5ad74c['imported'],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'service':summarizeService(_0x5ad74c[_0x510d54(0xbe)])},'message':(_0x5ad74c[_0x510d54(0xdf)]?_0x510d54(0xce):_0x510d54(0xb0))+_0x510d54(0xdb)+_0x5ad74c[_0x510d54(0xbe)][_0x510d54(0xd6)]+'.'};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xc7),'description':a62_0x5216c9(0xf4),'risk':'write','confirmationDescription':a62_0x5216c9(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4fd724){const _0x150834=a62_0x5216c9,_0x4279ff=getLocalServiceEntry(_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)));return{'method':_0x150834(0xcd),'url':_0x4fd724[_0x150834(0xc6)](_0x150834(0xbd)),'body':{'service':_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)),'found':Boolean(_0x4279ff),'version':_0x4279ff?.['version'],'source':_0x4279ff?.[_0x150834(0xbf)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xf8bb73){const _0xb7457e=a62_0x5216c9,_0x360fee=exportServiceManifest(_0xf8bb73[_0xb7457e(0xc6)](_0xb7457e(0xec)),_0xf8bb73[_0xb7457e(0xc6)]('file'));return{'ok':!![],'data':{'registryPath':_0x360fee[_0xb7457e(0xd3)],'file':_0x360fee[_0xb7457e(0xd1)],'service':summarizeService(_0x360fee[_0xb7457e(0xbe)])},'message':_0xb7457e(0xb2)+_0x360fee[_0xb7457e(0xbe)][_0xb7457e(0xd6)]+'.'};}},{'service':'service','command':a62_0x5216c9(0xe2),'description':a62_0x5216c9(0xba),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x57a66d=a62_0x5216c9,_0x1e2876=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1e2876[_0x57a66d(0xea)],'services':_0x1e2876['map'](summarizeService)}};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe9),'description':a62_0x5216c9(0xaa),'risk':a62_0x5216c9(0xf0),'confirmationDescription':a62_0x5216c9(0xf1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x208046){const _0x263a0f=a62_0x5216c9,_0x4431ab=getLocalServiceEntry(_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)),'found':Boolean(_0x4431ab),'version':_0x4431ab?.[_0x263a0f(0xb5)],'source':_0x4431ab?.[_0x263a0f(0xbf)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x13b534){const _0x325705=a62_0x5216c9,_0x3d63b9=removeServiceManifest(_0x13b534[_0x325705(0xc6)](_0x325705(0xec)));return{'ok':!![],'data':{'registryPath':_0x3d63b9[_0x325705(0xd3)],'serviceCount':_0x3d63b9[_0x325705(0xb7)],'service':summarizeService(_0x3d63b9[_0x325705(0xbe)])},'message':_0x325705(0xdd)+_0x3d63b9[_0x325705(0xbe)][_0x325705(0xd6)]+'.'};}},{'service':'service','command':'detail','description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x8dfe3b){const _0x5129c7=a62_0x5216c9,_0x30ed5d=getLocalServiceEntry(_0x8dfe3b[_0x5129c7(0xc6)](_0x5129c7(0xec)));if(!_0x30ed5d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x8dfe3b[_0x5129c7(0xc6)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x8dfe3b[_0x5129c7(0xc6)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x30ed5d),'manifest':_0x30ed5d[_0x5129c7(0xaf)],'normalizedManifest':toPublicNormalizedServiceTree(_0x30ed5d[_0x5129c7(0xbb)])}};}}];
@@ -1 +1 @@
1
- (function(_0x49e1d3,_0x3ce2d3){const _0x47cc35=a63_0x33f7,_0x4e0c15=_0x49e1d3();while(!![]){try{const _0x1e3310=parseInt(_0x47cc35(0x177))/0x1*(parseInt(_0x47cc35(0x16d))/0x2)+-parseInt(_0x47cc35(0x135))/0x3+parseInt(_0x47cc35(0x167))/0x4+parseInt(_0x47cc35(0x155))/0x5*(parseInt(_0x47cc35(0x168))/0x6)+parseInt(_0x47cc35(0x15b))/0x7+-parseInt(_0x47cc35(0x160))/0x8+-parseInt(_0x47cc35(0x162))/0x9*(-parseInt(_0x47cc35(0x157))/0xa);if(_0x1e3310===_0x3ce2d3)break;else _0x4e0c15['push'](_0x4e0c15['shift']());}catch(_0x1a710a){_0x4e0c15['push'](_0x4e0c15['shift']());}}}(a63_0xe65b,0xb721f));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';function a63_0xe65b(){const _0x3e7809=['command','join','Cannot\x20write\x20service\x20registry:\x20','homeDirName','report','length','4066266GHeJgp','Invalid\x20service\x20manifest\x20JSON:\x20','services','startsWith','Remove\x20or\x20migrate\x20','hex','errors','object','bff\x20target\x20requires\x20functionName.','Invalid\x20service\x20registry\x20JSON:\x20','sort','manifests','update','code','splice','Service\x20manifest\x20validation\x20failed:\x0a','manifest','slice','Local\x20service\x20not\x20found:\x20','Unsupported\x20schemaVersion:\x20','services\x20must\x20be\x20an\x20array','sourceHash','toISOString','updatedAt','stringify','now','Service\x20manifest\x20file\x20not\x20found:\x20','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','service','risk','schemaVersion','warnings','25nochGQ','find','10EjEMcm','path','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','8603707tcceQW','].manifest','invalid','kind','trim','10822176VPIduo','message','1422072mlDCDr','commandCount','target','normalizedManifest','.tmp','3605744MqerHg','491574YiqyjI','file','name','utf8','importedAt','304046UfvGvP','map','validation','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','missing','findIndex','cliPath','isArray','description','digest','5IzUSjK','parse','version','commands','serviceCode','ENOENT','$.services[','push','empty','registryIndex'];a63_0xe65b=function(){return _0x3e7809;};return a63_0xe65b();}import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x125dfe={}){const _0x177735=a63_0x33f7;return resolve(_0x125dfe['homeDir']??homedir(),PRODUCT_CONFIG[_0x177735(0x132)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xcc343a={}){const _0x511fa1=a63_0x33f7,_0x5d38eb=getServiceRegistryPath(_0xcc343a);if(!existsSync(_0x5d38eb))return emptyServiceRegistry();try{const _0x2d7877=readFileSync(_0x5d38eb,_0x511fa1(0x16b));if(!_0x2d7877[_0x511fa1(0x15f)]())return emptyServiceRegistry();const _0x460009=JSON[_0x511fa1(0x178)](_0x2d7877);if(_0x460009[_0x511fa1(0x153)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x511fa1(0x16f)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x460009[_0x511fa1(0x153)]),_0x511fa1(0x139)+_0x5d38eb+'.');if(!Array[_0x511fa1(0x174)](_0x460009[_0x511fa1(0x137)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x460009[_0x511fa1(0x14c)],'services':_0x460009[_0x511fa1(0x137)]};}catch(_0xbe0a00){if(_0xbe0a00 instanceof Error&&_0xbe0a00[_0x511fa1(0x16a)]==='CliError')throw _0xbe0a00;throw CliErrors[_0x511fa1(0x16f)](_0x511fa1(0x13e)+_0x5d38eb,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x13ef2d,_0x146b8b={}){const _0x113951=a63_0x33f7,_0xb54d48=getServiceRegistryPath(_0x146b8b),_0x2db1c8=dirname(_0xb54d48);!existsSync(_0x2db1c8)&&mkdirSync(_0x2db1c8,{'recursive':!![]});const _0x5dfd9e=_0xb54d48+_0x113951(0x166);try{writeFileSync(_0x5dfd9e,JSON['stringify'](_0x13ef2d,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x5dfd9e,_0xb54d48);}catch(_0x31b5b4){try{unlinkSync(_0x5dfd9e);}catch{}if(_0x31b5b4?.[_0x113951(0x142)]===_0x113951(0x17c))throw CliErrors[_0x113951(0x16f)](_0x113951(0x131)+_0xb54d48);throw _0x31b5b4;}return _0xb54d48;}export function loadServiceManifestFromFile(_0x5a0cf5){const _0x3a8f13=a63_0x33f7,_0x1f0b70=resolve(_0x5a0cf5);if(!existsSync(_0x1f0b70))throw CliErrors[_0x3a8f13(0x16f)](_0x3a8f13(0x14f)+_0x5a0cf5);let _0x1a10f7;const _0xc905ca=readFileSync(_0x1f0b70,_0x3a8f13(0x16b));try{_0x1a10f7=JSON[_0x3a8f13(0x178)](_0xc905ca);}catch{throw CliErrors['validation'](_0x3a8f13(0x136)+_0x5a0cf5,_0x3a8f13(0x159));}const _0x43f95a=sha256(_0xc905ca),_0x2b02e6=extractLoadedServiceManifests(_0x1a10f7,_0x43f95a),_0x54000a=aggregateValidationReports(_0x2b02e6),_0x1f3bcc=_0x2b02e6[0x0];return{'filePath':_0x1f0b70,'hash':_0x43f95a,'kind':isServiceRegistryLike(_0x1a10f7)?'registry':_0x3a8f13(0x145),'manifest':_0x1f3bcc?.[_0x3a8f13(0x145)]??_0x1a10f7,'report':_0x54000a,'normalizedManifest':_0x2b02e6[_0x3a8f13(0x134)]===0x1?_0x1f3bcc?.[_0x3a8f13(0x165)]:undefined,'manifests':_0x2b02e6};}export function importServiceManifest(_0x39e946,_0x35ba6f={}){const _0xd81f59=a63_0x33f7,_0x463ae1=loadServiceManifestFromFile(_0x39e946);if(!_0x463ae1[_0xd81f59(0x133)]['ok'])throw CliErrors[_0xd81f59(0x16f)](formatValidationFailure(_0x463ae1[_0xd81f59(0x133)]),_0xd81f59(0x15a));if(_0x463ae1[_0xd81f59(0x140)][_0xd81f59(0x134)]===0x0)throw CliErrors[_0xd81f59(0x16f)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0xd81f59(0x170));const _0xf1ee82=readServiceRegistry(_0x35ba6f),_0x22bc2d=(_0x35ba6f[_0xd81f59(0x14e)]??(()=>new Date()))()[_0xd81f59(0x14b)](),_0x201707=[];let _0x39d9f8=0x0,_0x4f8244=0x0;for(const _0x1dcf4e of _0x463ae1[_0xd81f59(0x140)]){if(!_0x1dcf4e[_0xd81f59(0x165)])continue;const _0x47e318=_0x1dcf4e['normalizedManifest'][_0xd81f59(0x151)]['code'],_0x1c95fb={'serviceCode':_0x47e318,'version':_0x1dcf4e[_0xd81f59(0x165)][_0xd81f59(0x179)],'importedAt':_0x22bc2d,'source':{'type':_0xd81f59(0x169),'path':_0x463ae1['filePath'],'hash':_0x1dcf4e[_0xd81f59(0x14a)]},'manifest':_0x1dcf4e['manifest'],'normalizedManifest':_0x1dcf4e['normalizedManifest']},_0x125ae1=_0xf1ee82[_0xd81f59(0x137)]['findIndex'](_0xf3f51a=>_0xf3f51a[_0xd81f59(0x17b)]===_0x47e318);_0x125ae1>=0x0?(_0xf1ee82[_0xd81f59(0x137)][_0x125ae1]=_0x1c95fb,_0x4f8244++):(_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x17e)](_0x1c95fb),_0x39d9f8++),_0x201707[_0xd81f59(0x17e)](_0x1c95fb);}_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x13f)]((_0x1e5cae,_0x529638)=>_0x1e5cae[_0xd81f59(0x17b)]['localeCompare'](_0x529638[_0xd81f59(0x17b)])),_0xf1ee82['updatedAt']=_0x22bc2d;const _0x3a0106=writeServiceRegistry(_0xf1ee82,_0x35ba6f);return{'registryPath':_0x3a0106,'entry':_0x201707[0x0],'replaced':_0x201707[_0xd81f59(0x134)]===0x1?_0x4f8244===0x1:_0x4f8244>0x0,'entries':_0x201707,'imported':_0x39d9f8,'updated':_0x4f8244,'serviceCount':_0xf1ee82[_0xd81f59(0x137)][_0xd81f59(0x134)]};}export function exportServiceManifest(_0x259cd7,_0x32472c,_0x3174fb={}){const _0x25d66c=a63_0x33f7,_0x386676=getServiceRegistryPath(_0x3174fb),_0x492bb6=getLocalServiceEntry(_0x259cd7,_0x3174fb);if(!_0x492bb6)throw CliErrors['validation'](_0x25d66c(0x147)+_0x259cd7,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x23ae42=resolve(_0x32472c),_0x4a0eed=dirname(_0x23ae42);return!existsSync(_0x4a0eed)&&mkdirSync(_0x4a0eed,{'recursive':!![]}),writeFileSync(_0x23ae42,JSON['stringify'](_0x492bb6[_0x25d66c(0x145)],null,0x2)+'\x0a',{'encoding':_0x25d66c(0x16b),'mode':0x180}),{'registryPath':_0x386676,'filePath':_0x23ae42,'entry':_0x492bb6};}export function removeServiceManifest(_0x1c57e1,_0x2ebae0={}){const _0x2071a9=a63_0x33f7,_0xb79078=readServiceRegistry(_0x2ebae0),_0x1f4664=_0x1c57e1[_0x2071a9(0x15f)](),_0x125049=_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x172)](_0x4a3b72=>_0x4a3b72[_0x2071a9(0x17b)]===_0x1f4664);if(_0x125049<0x0)throw CliErrors[_0x2071a9(0x16f)](_0x2071a9(0x147)+_0x1f4664,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x323b58]=_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x143)](_0x125049,0x1),_0x494c7a=(_0x2ebae0[_0x2071a9(0x14e)]??(()=>new Date()))()[_0x2071a9(0x14b)]();_0xb79078[_0x2071a9(0x14c)]=_0x494c7a;const _0x25904f=writeServiceRegistry(_0xb79078,_0x2ebae0);return{'registryPath':_0x25904f,'entry':_0x323b58,'serviceCount':_0xb79078[_0x2071a9(0x137)][_0x2071a9(0x134)]};}export function listLocalServices(_0x5e89fc={}){const _0x5d180e=a63_0x33f7;return readServiceRegistry(_0x5e89fc)[_0x5d180e(0x137)];}export function getLocalServiceEntry(_0x3bb5d6,_0x2bbb3b={}){const _0x2a804a=a63_0x33f7;return readServiceRegistry(_0x2bbb3b)[_0x2a804a(0x137)][_0x2a804a(0x156)](_0x510b01=>_0x510b01[_0x2a804a(0x17b)]===_0x3bb5d6[_0x2a804a(0x15f)]());}export function listLocalServiceTrees(_0x3d38cd={}){return readServiceRegistry(_0x3d38cd)['services']['map'](_0x46f27b=>_0x46f27b['normalizedManifest']);}export function inspectServiceRegistry(_0x5b9aa9={}){const _0x537b45=a63_0x33f7,_0x42cc34=getServiceRegistryPath(_0x5b9aa9);if(!existsSync(_0x42cc34))return emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x171),![]);try{const _0x10f6d0=readFileSync(_0x42cc34,_0x537b45(0x16b));if(!_0x10f6d0[_0x537b45(0x15f)]())return emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x17f),!![]);const _0x2fbd89=JSON[_0x537b45(0x178)](_0x10f6d0);if(_0x2fbd89['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x42cc34,'invalid',!![]),'schemaVersion':_0x2fbd89[_0x537b45(0x153)],'message':_0x537b45(0x148)+String(_0x2fbd89[_0x537b45(0x153)])};if(!Array[_0x537b45(0x174)](_0x2fbd89['services']))return{...emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x15d),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fbd89[_0x537b45(0x14c)],'message':_0x537b45(0x149)};const _0x355c59=_0x2fbd89[_0x537b45(0x137)][_0x537b45(0x16e)](summarizeLocalServiceEntry);return{'registryPath':_0x42cc34,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fbd89[_0x537b45(0x14c)],'serviceCount':_0x355c59['length'],'commandCount':_0x355c59['reduce']((_0x14e270,_0x27e181)=>_0x14e270+_0x27e181[_0x537b45(0x163)],0x0),'services':_0x355c59};}catch(_0x3d8323){return{...emptyServiceRegistryInspection(_0x42cc34,_0x537b45(0x15d),!![]),'message':_0x3d8323 instanceof Error?_0x3d8323[_0x537b45(0x161)]:String(_0x3d8323)};}}export function formatValidationFailure(_0x47754f){const _0x260003=a63_0x33f7,_0x888b87=_0x47754f[_0x260003(0x13b)][_0x260003(0x16e)](_0x28595c=>_0x28595c[_0x260003(0x158)]+':\x20'+_0x28595c[_0x260003(0x161)]);return _0x260003(0x144)+_0x888b87[_0x260003(0x130)]('\x0a');}function extractLoadedServiceManifests(_0x1e0102,_0x5dcb28){const _0x1662c5=a63_0x33f7;if(!isServiceRegistryLike(_0x1e0102)){const _0x35a341=_0x1e0102,{manifest:_0x3f7d8a,errors:_0x33f86b}=adaptServiceTreeManifestForLegacyFramework(_0x35a341),_0x45a184=validateServiceTreeManifest(_0x3f7d8a),_0x280ad3=mergeValidationErrors(_0x45a184,_0x33f86b);return[{'manifest':_0x35a341,'report':_0x280ad3,'normalizedManifest':_0x280ad3['ok']?normalizeServiceTreeManifest(_0x3f7d8a):undefined,'sourceHash':_0x5dcb28}];}return _0x1e0102[_0x1662c5(0x137)][_0x1662c5(0x16e)]((_0x2670bd,_0x3fb16e)=>{const _0x4165b4=_0x1662c5,_0x11da2d=isObjectRecord(_0x2670bd)?_0x2670bd['manifest']:undefined,{manifest:_0x46c36a,errors:_0x3103e5}=adaptServiceTreeManifestForLegacyFramework(_0x11da2d),_0x3ebf64=validateServiceTreeManifest(_0x46c36a),_0x453f2d=mergeValidationErrors(_0x3ebf64,_0x3103e5),_0x357e0b=isObjectRecord(_0x2670bd)&&typeof _0x2670bd[_0x4165b4(0x17b)]==='string'?_0x2670bd[_0x4165b4(0x17b)]:undefined;return{'manifest':_0x11da2d,'report':_0x453f2d,'normalizedManifest':_0x453f2d['ok']?normalizeServiceTreeManifest(_0x46c36a):undefined,'sourceHash':sha256(JSON[_0x4165b4(0x14d)](_0x11da2d,null,0x2)+'\x0a'),'registryIndex':_0x3fb16e,'registryServiceCode':_0x357e0b};});}function mergeValidationErrors(_0x5158ba,_0x2e6e97){const _0x4c6f65=a63_0x33f7,_0x3e8509=_0x5158ba['errors']['map'](_0x5173b4=>_0x5173b4[_0x4c6f65(0x161)]===_0x4c6f65(0x150)?{..._0x5173b4,'message':_0x4c6f65(0x13d)}:_0x5173b4),_0x55f422=[..._0x2e6e97,..._0x3e8509];return{'ok':_0x55f422[_0x4c6f65(0x134)]===0x0,'errors':_0x55f422,'warnings':_0x5158ba[_0x4c6f65(0x154)]};}function aggregateValidationReports(_0x2dc8cd){const _0xcb0cde=a63_0x33f7,_0x279e69=_0x2dc8cd['flatMap'](_0x251dde=>_0x251dde[_0xcb0cde(0x180)]===undefined?_0x251dde['report'][_0xcb0cde(0x13b)]:_0x251dde[_0xcb0cde(0x133)][_0xcb0cde(0x13b)]['map'](_0x2e4a76=>({..._0x2e4a76,'path':prefixRegistryIssuePath(_0x251dde[_0xcb0cde(0x180)],_0x2e4a76[_0xcb0cde(0x158)])}))),_0x4eaf53=_0x2dc8cd['flatMap'](_0x55914a=>_0x55914a[_0xcb0cde(0x180)]===undefined?_0x55914a[_0xcb0cde(0x133)][_0xcb0cde(0x154)]:_0x55914a[_0xcb0cde(0x133)]['warnings']['map'](_0x2daf5b=>({..._0x2daf5b,'path':prefixRegistryIssuePath(_0x55914a[_0xcb0cde(0x180)],_0x2daf5b['path'])})));return{'ok':_0x279e69[_0xcb0cde(0x134)]===0x0,'errors':_0x279e69,'warnings':_0x4eaf53};}function prefixRegistryIssuePath(_0x2ec56a,_0x7a0081){const _0x26d298=a63_0x33f7;if(_0x7a0081==='$')return _0x26d298(0x17d)+_0x2ec56a+_0x26d298(0x15c);if(_0x7a0081[_0x26d298(0x138)]('$.'))return _0x26d298(0x17d)+_0x2ec56a+_0x26d298(0x15c)+_0x7a0081[_0x26d298(0x146)](0x1);if(_0x7a0081['startsWith']('$['))return'$.services['+_0x2ec56a+_0x26d298(0x15c)+_0x7a0081[_0x26d298(0x146)](0x1);return _0x26d298(0x17d)+_0x2ec56a+'].manifest.'+_0x7a0081;}function a63_0x33f7(_0x511db3,_0x2e6ebd){_0x511db3=_0x511db3-0x130;const _0xe65b09=a63_0xe65b();let _0x33f723=_0xe65b09[_0x511db3];return _0x33f723;}function isServiceRegistryLike(_0x32449d){const _0x5e381d=a63_0x33f7;return isObjectRecord(_0x32449d)&&_0x32449d[_0x5e381d(0x153)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5e381d(0x174)](_0x32449d['services']);}function isObjectRecord(_0x333d73){const _0x12da82=a63_0x33f7;return Boolean(_0x333d73)&&typeof _0x333d73===_0x12da82(0x13c)&&!Array[_0x12da82(0x174)](_0x333d73);}function emptyServiceRegistryInspection(_0x1e8b22,_0x2c637b,_0x4869d0){return{'registryPath':_0x1e8b22,'exists':_0x4869d0,'status':_0x2c637b,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1aca3e){const _0x515bad=a63_0x33f7,_0x847b06=_0x1aca3e[_0x515bad(0x165)],_0x33b0fd=_0x847b06[_0x515bad(0x17a)]['map'](_0x5f233b=>({'path':_0x5f233b[_0x515bad(0x173)],'description':_0x5f233b['description'],'risk':_0x5f233b[_0x515bad(0x152)],'targetKind':_0x5f233b[_0x515bad(0x164)][_0x515bad(0x15e)],'targetCommand':_0x5f233b[_0x515bad(0x164)][_0x515bad(0x181)]}));return{'serviceCode':_0x1aca3e[_0x515bad(0x17b)],'name':_0x847b06[_0x515bad(0x151)]['name'],'description':_0x847b06[_0x515bad(0x151)][_0x515bad(0x175)],'version':_0x1aca3e[_0x515bad(0x179)],'importedAt':_0x1aca3e[_0x515bad(0x16c)],'source':_0x1aca3e['source'],'commandCount':_0x33b0fd[_0x515bad(0x134)],'commands':_0x33b0fd};}function sha256(_0x47d786){const _0x1b7a7b=a63_0x33f7;return createHash('sha256')[_0x1b7a7b(0x141)](_0x47d786)[_0x1b7a7b(0x176)](_0x1b7a7b(0x13a));}
1
+ const a63_0x552bce=a63_0x88d6;(function(_0x8d79a2,_0x4a1d9d){const _0x42db1a=a63_0x88d6,_0x5da85c=_0x8d79a2();while(!![]){try{const _0x3ef536=parseInt(_0x42db1a(0x1d4))/0x1*(parseInt(_0x42db1a(0x1e7))/0x2)+parseInt(_0x42db1a(0x1f7))/0x3*(-parseInt(_0x42db1a(0x1f1))/0x4)+-parseInt(_0x42db1a(0x223))/0x5+parseInt(_0x42db1a(0x1d8))/0x6*(-parseInt(_0x42db1a(0x1db))/0x7)+-parseInt(_0x42db1a(0x1e4))/0x8*(-parseInt(_0x42db1a(0x211))/0x9)+-parseInt(_0x42db1a(0x1f3))/0xa+parseInt(_0x42db1a(0x20a))/0xb*(parseInt(_0x42db1a(0x1d3))/0xc);if(_0x3ef536===_0x4a1d9d)break;else _0x5da85c['push'](_0x5da85c['shift']());}catch(_0x1fc095){_0x5da85c['push'](_0x5da85c['shift']());}}}(a63_0x58b3,0x1ef33));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x552bce(0x1d7);export function getServiceRegistryPath(_0x527487={}){const _0x237cd2=a63_0x552bce;return resolve(_0x527487[_0x237cd2(0x1f6)]??homedir(),PRODUCT_CONFIG[_0x237cd2(0x21f)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1fc125={}){const _0x5958c2=a63_0x552bce,_0x4cc93c=getServiceRegistryPath(_0x1fc125);if(!existsSync(_0x4cc93c))return emptyServiceRegistry();try{const _0x5a2e17=readFileSync(_0x4cc93c,'utf8');if(!_0x5a2e17[_0x5958c2(0x215)]())return emptyServiceRegistry();const _0x55a953=JSON[_0x5958c2(0x204)](_0x5a2e17);if(_0x55a953[_0x5958c2(0x203)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1e6)+String(_0x55a953['schemaVersion']),_0x5958c2(0x21d)+_0x4cc93c+'.');if(!Array[_0x5958c2(0x206)](_0x55a953['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x55a953[_0x5958c2(0x1ea)],'services':_0x55a953['services']};}catch(_0x27eb2d){if(_0x27eb2d instanceof Error&&_0x27eb2d[_0x5958c2(0x210)]===_0x5958c2(0x201))throw _0x27eb2d;throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1f0)+_0x4cc93c,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x116b17,_0x7b9149={}){const _0x36ad12=a63_0x552bce,_0x169bfa=getServiceRegistryPath(_0x7b9149),_0xbcb753=dirname(_0x169bfa);!existsSync(_0xbcb753)&&mkdirSync(_0xbcb753,{'recursive':!![]});const _0x14620c=_0x169bfa+_0x36ad12(0x1ee);try{writeFileSync(_0x14620c,JSON[_0x36ad12(0x1ed)](_0x116b17,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x14620c,_0x169bfa);}catch(_0x492041){try{unlinkSync(_0x14620c);}catch{}if(_0x492041?.[_0x36ad12(0x200)]===_0x36ad12(0x213))throw CliErrors[_0x36ad12(0x1da)](_0x36ad12(0x1e2)+_0x169bfa);throw _0x492041;}return _0x169bfa;}export function loadServiceManifestFromFile(_0x279c33){const _0x89c459=a63_0x552bce,_0x2d8c7e=resolve(_0x279c33);if(!existsSync(_0x2d8c7e))throw CliErrors['validation'](_0x89c459(0x1e0)+_0x279c33);let _0x1a8931;const _0xd36ca8=readFileSync(_0x2d8c7e,_0x89c459(0x21b));try{_0x1a8931=JSON[_0x89c459(0x204)](_0xd36ca8);}catch{throw CliErrors[_0x89c459(0x1da)](_0x89c459(0x1d6)+_0x279c33,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x136c93=sha256(_0xd36ca8),_0x35ff13=extractLoadedServiceManifests(_0x1a8931,_0x136c93),_0x22ef48=aggregateValidationReports(_0x35ff13),_0x5ba952=_0x35ff13[0x0];return{'filePath':_0x2d8c7e,'hash':_0x136c93,'kind':isServiceRegistryLike(_0x1a8931)?_0x89c459(0x1fb):_0x89c459(0x1ff),'manifest':_0x5ba952?.[_0x89c459(0x1ff)]??_0x1a8931,'report':_0x22ef48,'normalizedManifest':_0x35ff13[_0x89c459(0x20e)]===0x1?_0x5ba952?.[_0x89c459(0x1f8)]:undefined,'manifests':_0x35ff13};}export function importServiceManifest(_0x5cc6f6,_0xf3978a={}){const _0x24c017=a63_0x552bce,_0x4397f1=loadServiceManifestFromFile(_0x5cc6f6);if(!_0x4397f1[_0x24c017(0x207)]['ok'])throw CliErrors[_0x24c017(0x1da)](formatValidationFailure(_0x4397f1[_0x24c017(0x207)]),_0x24c017(0x1dc));if(_0x4397f1[_0x24c017(0x1d1)][_0x24c017(0x20e)]===0x0)throw CliErrors[_0x24c017(0x1da)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x24c017(0x1d0));const _0x3d16c2=readServiceRegistry(_0xf3978a),_0x4781a6=(_0xf3978a[_0x24c017(0x1e8)]??(()=>new Date()))()['toISOString'](),_0x427247=[];let _0x2e0826=0x0,_0x2632d4=0x0;for(const _0x3234b1 of _0x4397f1[_0x24c017(0x1d1)]){if(!_0x3234b1[_0x24c017(0x1f8)])continue;const _0x59fb0a=_0x3234b1[_0x24c017(0x1f8)][_0x24c017(0x1ec)][_0x24c017(0x200)],_0x5383fb={'serviceCode':_0x59fb0a,'version':_0x3234b1[_0x24c017(0x1f8)]['version'],'importedAt':_0x4781a6,'source':{'type':'file','path':_0x4397f1[_0x24c017(0x216)],'hash':_0x3234b1[_0x24c017(0x20c)]},'manifest':_0x3234b1[_0x24c017(0x1ff)],'normalizedManifest':_0x3234b1[_0x24c017(0x1f8)]},_0x394d4d=_0x3d16c2['services']['findIndex'](_0x20c424=>_0x20c424['serviceCode']===_0x59fb0a);_0x394d4d>=0x0?(_0x3d16c2['services'][_0x394d4d]=_0x5383fb,_0x2632d4++):(_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x1de)](_0x5383fb),_0x2e0826++),_0x427247['push'](_0x5383fb);}_0x3d16c2['services'][_0x24c017(0x221)]((_0x444858,_0x6343b7)=>_0x444858[_0x24c017(0x212)][_0x24c017(0x21e)](_0x6343b7[_0x24c017(0x212)])),_0x3d16c2['updatedAt']=_0x4781a6;const _0x3033e4=writeServiceRegistry(_0x3d16c2,_0xf3978a);return{'registryPath':_0x3033e4,'entry':_0x427247[0x0],'replaced':_0x427247['length']===0x1?_0x2632d4===0x1:_0x2632d4>0x0,'entries':_0x427247,'imported':_0x2e0826,'updated':_0x2632d4,'serviceCount':_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x20e)]};}export function exportServiceManifest(_0x32ec9a,_0x233144,_0x506396={}){const _0x21bfe7=a63_0x552bce,_0xa071e3=getServiceRegistryPath(_0x506396),_0x285a78=getLocalServiceEntry(_0x32ec9a,_0x506396);if(!_0x285a78)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x32ec9a,_0x21bfe7(0x214));const _0x3e8a4a=resolve(_0x233144),_0x3e2051=dirname(_0x3e8a4a);return!existsSync(_0x3e2051)&&mkdirSync(_0x3e2051,{'recursive':!![]}),writeFileSync(_0x3e8a4a,JSON[_0x21bfe7(0x1ed)](_0x285a78[_0x21bfe7(0x1ff)],null,0x2)+'\x0a',{'encoding':_0x21bfe7(0x21b),'mode':0x180}),{'registryPath':_0xa071e3,'filePath':_0x3e8a4a,'entry':_0x285a78};}export function removeServiceManifest(_0x13754a,_0x4c3cd0={}){const _0x28bd43=a63_0x552bce,_0x4be2da=readServiceRegistry(_0x4c3cd0),_0x3a5869=_0x13754a[_0x28bd43(0x215)](),_0x3cae05=_0x4be2da['services'][_0x28bd43(0x1f2)](_0x5c80f8=>_0x5c80f8[_0x28bd43(0x212)]===_0x3a5869);if(_0x3cae05<0x0)throw CliErrors[_0x28bd43(0x1da)](_0x28bd43(0x1f4)+_0x3a5869,_0x28bd43(0x214));const [_0x30e616]=_0x4be2da[_0x28bd43(0x1eb)]['splice'](_0x3cae05,0x1),_0x261973=(_0x4c3cd0['now']??(()=>new Date()))()[_0x28bd43(0x1e5)]();_0x4be2da[_0x28bd43(0x1ea)]=_0x261973;const _0x30b238=writeServiceRegistry(_0x4be2da,_0x4c3cd0);return{'registryPath':_0x30b238,'entry':_0x30e616,'serviceCount':_0x4be2da[_0x28bd43(0x1eb)][_0x28bd43(0x20e)]};}export function listLocalServices(_0x3fe082={}){const _0x40c0b3=a63_0x552bce;return readServiceRegistry(_0x3fe082)[_0x40c0b3(0x1eb)];}export function getLocalServiceEntry(_0x13687f,_0x3f714e={}){const _0x3d71ee=a63_0x552bce;return readServiceRegistry(_0x3f714e)[_0x3d71ee(0x1eb)][_0x3d71ee(0x1fc)](_0x4e926f=>_0x4e926f[_0x3d71ee(0x212)]===_0x13687f[_0x3d71ee(0x215)]());}export function listLocalServiceTrees(_0x15017c={}){const _0x106024=a63_0x552bce;return readServiceRegistry(_0x15017c)['services'][_0x106024(0x217)](_0x21c1ea=>_0x21c1ea[_0x106024(0x1f8)]);}export function inspectServiceRegistry(_0x578dc3={}){const _0x3e6d82=a63_0x552bce,_0x5bec86=getServiceRegistryPath(_0x578dc3);if(!existsSync(_0x5bec86))return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x209),![]);try{const _0x551037=readFileSync(_0x5bec86,'utf8');if(!_0x551037['trim']())return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1ef),!![]);const _0x6e7bae=JSON['parse'](_0x551037);if(_0x6e7bae['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'schemaVersion':_0x6e7bae[_0x3e6d82(0x203)],'message':_0x3e6d82(0x20d)+String(_0x6e7bae['schemaVersion'])};if(!Array[_0x3e6d82(0x206)](_0x6e7bae[_0x3e6d82(0x1eb)]))return{...emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1cc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'message':_0x3e6d82(0x220)};const _0x105605=_0x6e7bae[_0x3e6d82(0x1eb)][_0x3e6d82(0x217)](summarizeLocalServiceEntry);return{'registryPath':_0x5bec86,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'serviceCount':_0x105605['length'],'commandCount':_0x105605['reduce']((_0x27a310,_0xaa3a79)=>_0x27a310+_0xaa3a79[_0x3e6d82(0x1e9)],0x0),'services':_0x105605};}catch(_0x444c4c){return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'message':_0x444c4c instanceof Error?_0x444c4c[_0x3e6d82(0x21c)]:String(_0x444c4c)};}}function a63_0x88d6(_0x13dbed,_0x7cb6bc){_0x13dbed=_0x13dbed-0x1cb;const _0x58b387=a63_0x58b3();let _0x88d68=_0x58b387[_0x13dbed];return _0x88d68;}function a63_0x58b3(){const _0x49db4a=['target','homeDir','287853ISwkqA','normalizedManifest','update','errors','registry','find','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','command','manifest','code','CliError','bff\x20target\x20requires\x20functionName.','schemaVersion','parse','].manifest','isArray','report','risk','missing','11Yjnlgq','join','sourceHash','Unsupported\x20schemaVersion:\x20','length','sha256','name','18OLNHma','serviceCode','ENOENT','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','trim','filePath','map','kind','slice','Service\x20manifest\x20validation\x20failed:\x0a','utf8','message','Remove\x20or\x20migrate\x20','localeCompare','homeDirName','services\x20must\x20be\x20an\x20array','sort','object','917490mbqKFD','$.services[','invalid','hex','warnings','flatMap','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifests','description','4254084pxKeGf','100502anbkQT','startsWith','Invalid\x20service\x20manifest\x20JSON:\x20','service.json','174684VhhaBJ','registryIndex','validation','35rnqLRT','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','path','push','version','Service\x20manifest\x20file\x20not\x20found:\x20','commands','Cannot\x20write\x20service\x20registry:\x20','digest','981600uSyZjV','toISOString','Unsupported\x20service\x20registry\x20schemaVersion:\x20','4XpmLxJ','now','commandCount','updatedAt','services','service','stringify','.tmp','empty','Invalid\x20service\x20registry\x20JSON:\x20','4nnrYXn','findIndex','2491210eAzrqG','Local\x20service\x20not\x20found:\x20'];a63_0x58b3=function(){return _0x49db4a;};return a63_0x58b3();}export function formatValidationFailure(_0x4a77ca){const _0x4b98f4=a63_0x552bce,_0x124159=_0x4a77ca[_0x4b98f4(0x1fa)][_0x4b98f4(0x217)](_0x456895=>_0x456895[_0x4b98f4(0x1dd)]+':\x20'+_0x456895[_0x4b98f4(0x21c)]);return _0x4b98f4(0x21a)+_0x124159[_0x4b98f4(0x20b)]('\x0a');}function extractLoadedServiceManifests(_0x573e5a,_0x2613bb){const _0x29ffb1=a63_0x552bce;if(!isServiceRegistryLike(_0x573e5a)){const _0x265b95=_0x573e5a,{manifest:_0x32444d,errors:_0x5e639a}=adaptServiceTreeManifestForLegacyFramework(_0x265b95),_0x1bfe58=validateServiceTreeManifest(_0x32444d),_0x33c570=mergeValidationErrors(_0x1bfe58,_0x5e639a);return[{'manifest':_0x265b95,'report':_0x33c570,'normalizedManifest':_0x33c570['ok']?normalizeServiceTreeManifest(_0x32444d):undefined,'sourceHash':_0x2613bb}];}return _0x573e5a[_0x29ffb1(0x1eb)][_0x29ffb1(0x217)]((_0x48ee12,_0x12372b)=>{const _0x25072a=_0x29ffb1,_0x7082a8=isObjectRecord(_0x48ee12)?_0x48ee12[_0x25072a(0x1ff)]:undefined,{manifest:_0x1063ed,errors:_0x54db59}=adaptServiceTreeManifestForLegacyFramework(_0x7082a8),_0x3540f5=validateServiceTreeManifest(_0x1063ed),_0x23680d=mergeValidationErrors(_0x3540f5,_0x54db59),_0x2e0a1e=isObjectRecord(_0x48ee12)&&typeof _0x48ee12['serviceCode']==='string'?_0x48ee12[_0x25072a(0x212)]:undefined;return{'manifest':_0x7082a8,'report':_0x23680d,'normalizedManifest':_0x23680d['ok']?normalizeServiceTreeManifest(_0x1063ed):undefined,'sourceHash':sha256(JSON[_0x25072a(0x1ed)](_0x7082a8,null,0x2)+'\x0a'),'registryIndex':_0x12372b,'registryServiceCode':_0x2e0a1e};});}function mergeValidationErrors(_0x33318d,_0x20b717){const _0x577eb9=a63_0x552bce,_0x1996c1=_0x33318d[_0x577eb9(0x1fa)][_0x577eb9(0x217)](_0x54386d=>_0x54386d[_0x577eb9(0x21c)]===_0x577eb9(0x1fd)?{..._0x54386d,'message':_0x577eb9(0x202)}:_0x54386d),_0x25b855=[..._0x20b717,..._0x1996c1];return{'ok':_0x25b855[_0x577eb9(0x20e)]===0x0,'errors':_0x25b855,'warnings':_0x33318d[_0x577eb9(0x1ce)]};}function aggregateValidationReports(_0x33d8f0){const _0x49c60d=a63_0x552bce,_0x249776=_0x33d8f0[_0x49c60d(0x1cf)](_0x3ae2e2=>_0x3ae2e2[_0x49c60d(0x1d9)]===undefined?_0x3ae2e2['report']['errors']:_0x3ae2e2['report']['errors']['map'](_0xfde8a=>({..._0xfde8a,'path':prefixRegistryIssuePath(_0x3ae2e2[_0x49c60d(0x1d9)],_0xfde8a[_0x49c60d(0x1dd)])}))),_0x43bbd4=_0x33d8f0[_0x49c60d(0x1cf)](_0x116fb2=>_0x116fb2[_0x49c60d(0x1d9)]===undefined?_0x116fb2[_0x49c60d(0x207)][_0x49c60d(0x1ce)]:_0x116fb2['report']['warnings'][_0x49c60d(0x217)](_0xd31cf8=>({..._0xd31cf8,'path':prefixRegistryIssuePath(_0x116fb2[_0x49c60d(0x1d9)],_0xd31cf8['path'])})));return{'ok':_0x249776[_0x49c60d(0x20e)]===0x0,'errors':_0x249776,'warnings':_0x43bbd4};}function prefixRegistryIssuePath(_0x17a0b1,_0x2151f7){const _0x1c2765=a63_0x552bce;if(_0x2151f7==='$')return'$.services['+_0x17a0b1+_0x1c2765(0x205);if(_0x2151f7[_0x1c2765(0x1d5)]('$.'))return _0x1c2765(0x1cb)+_0x17a0b1+_0x1c2765(0x205)+_0x2151f7[_0x1c2765(0x219)](0x1);if(_0x2151f7['startsWith']('$['))return'$.services['+_0x17a0b1+'].manifest'+_0x2151f7[_0x1c2765(0x219)](0x1);return _0x1c2765(0x1cb)+_0x17a0b1+'].manifest.'+_0x2151f7;}function isServiceRegistryLike(_0x27c5ac){const _0x2cd26d=a63_0x552bce;return isObjectRecord(_0x27c5ac)&&_0x27c5ac[_0x2cd26d(0x203)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2cd26d(0x206)](_0x27c5ac[_0x2cd26d(0x1eb)]);}function isObjectRecord(_0x2b15d2){const _0x557713=a63_0x552bce;return Boolean(_0x2b15d2)&&typeof _0x2b15d2===_0x557713(0x222)&&!Array['isArray'](_0x2b15d2);}function emptyServiceRegistryInspection(_0x4df0a8,_0x364c08,_0x5703fa){return{'registryPath':_0x4df0a8,'exists':_0x5703fa,'status':_0x364c08,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1c7200){const _0x1092bc=a63_0x552bce,_0x717393=_0x1c7200[_0x1092bc(0x1f8)],_0x421875=_0x717393[_0x1092bc(0x1e1)][_0x1092bc(0x217)](_0x498da9=>({'path':_0x498da9['cliPath'],'description':_0x498da9[_0x1092bc(0x1d2)],'risk':_0x498da9[_0x1092bc(0x208)],'targetKind':_0x498da9['target'][_0x1092bc(0x218)],'targetCommand':_0x498da9[_0x1092bc(0x1f5)][_0x1092bc(0x1fe)]}));return{'serviceCode':_0x1c7200[_0x1092bc(0x212)],'name':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x210)],'description':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x1d2)],'version':_0x1c7200[_0x1092bc(0x1df)],'importedAt':_0x1c7200['importedAt'],'source':_0x1c7200['source'],'commandCount':_0x421875[_0x1092bc(0x20e)],'commands':_0x421875};}function sha256(_0x1fa521){const _0x334665=a63_0x552bce;return createHash(_0x334665(0x20f))[_0x334665(0x1f9)](_0x1fa521)[_0x334665(0x1e3)](_0x334665(0x1cd));}
@@ -1 +1 @@
1
- const a64_0x59fe20=a64_0x3977;function a64_0x18cd(){const _0x47064b=['Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','validation','4PzYikM','path','skill','isDirectory','5315aPnzGQ','files','force','bool','skillDir','type','rendered','map','2032770dARPIx','create','609441Luzhkz','9mpVXUn','isSymbolicLink','6049568XhXmIv','Refusing\x20to\x20overwrite\x20symlink:\x20','read','1908ojukOz','content','target','22188qHUqFp','3619vefhFz','skillName','name','1127013IEpzwP','7ZGcDdg','trim','str','7739920CDkuay'];a64_0x18cd=function(){return _0x47064b;};return a64_0x18cd();}(function(_0x3378e3,_0x30eed9){const _0x2a0095=a64_0x3977,_0x266a12=_0x3378e3();while(!![]){try{const _0x4520ed=-parseInt(_0x2a0095(0x19a))/0x1+parseInt(_0x2a0095(0x1ae))/0x2*(-parseInt(_0x2a0095(0x1a7))/0x3)+-parseInt(_0x2a0095(0x1a0))/0x4*(-parseInt(_0x2a0095(0x1b2))/0x5)+parseInt(_0x2a0095(0x198))/0x6+parseInt(_0x2a0095(0x1a8))/0x7*(parseInt(_0x2a0095(0x19d))/0x8)+-parseInt(_0x2a0095(0x19b))/0x9*(-parseInt(_0x2a0095(0x1ab))/0xa)+parseInt(_0x2a0095(0x1a4))/0xb*(-parseInt(_0x2a0095(0x1a3))/0xc);if(_0x4520ed===_0x30eed9)break;else _0x266a12['push'](_0x266a12['shift']());}catch(_0x3cd1a6){_0x266a12['push'](_0x266a12['shift']());}}}(a64_0x18cd,0x63592));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a64_0x59fe20(0x1b0),'command':a64_0x59fe20(0x199),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a64_0x59fe20(0x19f),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3a6442){const _0x4aa27e=a64_0x59fe20,_0x39104e=buildSkillCreatePlan(_0x3a6442['str'](_0x4aa27e(0x1a6)),_0x3a6442['str'](_0x4aa27e(0x195)),_0x3a6442[_0x4aa27e(0x1aa)](_0x4aa27e(0x1a2)));return{'method':'WRITE','url':_0x39104e[_0x4aa27e(0x194)],'body':{'skillName':_0x39104e[_0x4aa27e(0x196)][_0x4aa27e(0x1a5)],'type':_0x39104e['rendered'][_0x4aa27e(0x195)],'selfContained':!![],'files':_0x39104e[_0x4aa27e(0x196)][_0x4aa27e(0x1b3)][_0x4aa27e(0x197)](_0x2e4042=>_0x2e4042[_0x4aa27e(0x1af)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x469af6){const _0x5bd511=a64_0x59fe20,_0x5b5859=buildSkillCreatePlan(_0x469af6['str'](_0x5bd511(0x1a6)),_0x469af6[_0x5bd511(0x1aa)](_0x5bd511(0x195)),_0x469af6[_0x5bd511(0x1aa)](_0x5bd511(0x1a2)));return writeSkillDraft(_0x5b5859,_0x469af6[_0x5bd511(0x193)](_0x5bd511(0x1b4))),{'ok':!![],'data':{'skillName':_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x1a5)],'type':_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x195)],'dir':_0x5b5859[_0x5bd511(0x194)],'files':_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x1b3)][_0x5bd511(0x197)](_0x47cee9=>_0x47cee9[_0x5bd511(0x1af)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x5b5859[_0x5bd511(0x196)][_0x5bd511(0x1a5)]};}};function a64_0x3977(_0x55ac98,_0x25d7f9){_0x55ac98=_0x55ac98-0x193;const _0x18cdbc=a64_0x18cd();let _0x397796=_0x18cdbc[_0x55ac98];return _0x397796;}function buildSkillCreatePlan(_0x34d69b,_0x3cad38,_0x503ee8){const _0x2e389f=a64_0x59fe20,_0x472f5f=_0x3cad38[_0x2e389f(0x1a9)](),_0x204586=renderSkillTemplate({'skillName':_0x34d69b,'type':_0x472f5f});!_0x472f5f&&writeCliSideChannelLine(_0x2e389f(0x1ac));const _0x1e6433=resolve(normalizeSkillTarget(_0x503ee8));return{'rendered':_0x204586,'targetRoot':_0x1e6433,'skillDir':resolve(_0x1e6433,_0x204586[_0x2e389f(0x1a5)])};}function normalizeSkillTarget(_0x58ef04){const _0x450e52=a64_0x59fe20;return(_0x58ef04||DEFAULT_SKILL_TARGET)[_0x450e52(0x1a9)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x2149bf,_0x3117ff){const _0x157575=a64_0x59fe20;if(existsSync(_0x2149bf['skillDir'])){const _0x340235=lstatSync(_0x2149bf[_0x157575(0x194)]);if(!_0x340235[_0x157575(0x1b1)]()||_0x340235[_0x157575(0x19c)]())throw CliErrors[_0x157575(0x1ad)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x2149bf[_0x157575(0x194)]);if(!_0x3117ff)throw CliErrors[_0x157575(0x1ad)]('Skill\x20directory\x20already\x20exists:\x20'+_0x2149bf[_0x157575(0x194)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x37a48d of _0x2149bf[_0x157575(0x196)][_0x157575(0x1b3)]){const _0x40580f=resolve(_0x2149bf[_0x157575(0x194)],_0x37a48d['path']),_0x495dfa=dirname(_0x40580f);mkdirSync(_0x495dfa,{'recursive':!![]});if(existsSync(_0x40580f)&&lstatSync(_0x40580f)[_0x157575(0x19c)]())throw CliErrors['validation'](_0x157575(0x19e)+_0x40580f);writeFileSync(_0x40580f,_0x37a48d[_0x157575(0x1a1)],'utf8');}}
1
+ function a64_0x3cf4(_0x54cf0b,_0x3fb8bc){_0x54cf0b=_0x54cf0b-0x151;const _0x3d6208=a64_0x3d62();let _0x3cf4be=_0x3d6208[_0x54cf0b];return _0x3cf4be;}const a64_0x35e6b4=a64_0x3cf4;(function(_0x5bb3ff,_0x48073a){const _0x507358=a64_0x3cf4,_0x4d8209=_0x5bb3ff();while(!![]){try{const _0x336018=-parseInt(_0x507358(0x158))/0x1+parseInt(_0x507358(0x169))/0x2+parseInt(_0x507358(0x16c))/0x3*(-parseInt(_0x507358(0x162))/0x4)+-parseInt(_0x507358(0x15f))/0x5+parseInt(_0x507358(0x164))/0x6+-parseInt(_0x507358(0x160))/0x7*(parseInt(_0x507358(0x165))/0x8)+-parseInt(_0x507358(0x15b))/0x9*(-parseInt(_0x507358(0x154))/0xa);if(_0x336018===_0x48073a)break;else _0x4d8209['push'](_0x4d8209['shift']());}catch(_0x4d66eb){_0x4d8209['push'](_0x4d8209['shift']());}}}(a64_0x3d62,0x8cb90));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a64_0x3d62(){const _0x5b647d=['files','230KMkOCe','trim','isSymbolicLink','WRITE','797617xFuTre','rendered','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','769059kZnfOc','validation','target','Refusing\x20to\x20overwrite\x20symlink:\x20','942960sDurPG','5649zEmtiY','name','4osrZzU','map','1755012eLEePS','872aFXIiQ','create','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','type','150012SGFfcj','skillName','Skill\x20directory\x20already\x20exists:\x20','2046927cWnaQx','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','skillDir','Created\x20local\x20Skill\x20draft\x20','str','path','skill'];a64_0x3d62=function(){return _0x5b647d;};return a64_0x3d62();}import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a64_0x35e6b4(0x152),'command':a64_0x35e6b4(0x166),'description':a64_0x35e6b4(0x15a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0xc9aab5){const _0x58e45a=a64_0x35e6b4,_0x3abe23=buildSkillCreatePlan(_0xc9aab5[_0x58e45a(0x171)](_0x58e45a(0x161)),_0xc9aab5['str'](_0x58e45a(0x168)),_0xc9aab5[_0x58e45a(0x171)]('target'));return{'method':_0x58e45a(0x157),'url':_0x3abe23[_0x58e45a(0x16f)],'body':{'skillName':_0x3abe23[_0x58e45a(0x159)][_0x58e45a(0x16a)],'type':_0x3abe23[_0x58e45a(0x159)][_0x58e45a(0x168)],'selfContained':!![],'files':_0x3abe23[_0x58e45a(0x159)]['files'][_0x58e45a(0x163)](_0x582940=>_0x582940[_0x58e45a(0x151)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x27af19){const _0x37368f=a64_0x35e6b4,_0x502f78=buildSkillCreatePlan(_0x27af19[_0x37368f(0x171)]('name'),_0x27af19['str']('type'),_0x27af19[_0x37368f(0x171)](_0x37368f(0x15d)));return writeSkillDraft(_0x502f78,_0x27af19['bool']('force')),{'ok':!![],'data':{'skillName':_0x502f78['rendered']['skillName'],'type':_0x502f78[_0x37368f(0x159)]['type'],'dir':_0x502f78['skillDir'],'files':_0x502f78[_0x37368f(0x159)][_0x37368f(0x153)][_0x37368f(0x163)](_0x2aada5=>_0x2aada5[_0x37368f(0x151)])},'message':_0x37368f(0x170)+_0x502f78[_0x37368f(0x159)][_0x37368f(0x16a)]};}};function buildSkillCreatePlan(_0x470762,_0x20536a,_0x2a6608){const _0x466024=a64_0x35e6b4,_0x43f277=_0x20536a[_0x466024(0x155)](),_0x407f28=renderSkillTemplate({'skillName':_0x470762,'type':_0x43f277});!_0x43f277&&writeCliSideChannelLine(_0x466024(0x16d));const _0x49c2a6=resolve(normalizeSkillTarget(_0x2a6608));return{'rendered':_0x407f28,'targetRoot':_0x49c2a6,'skillDir':resolve(_0x49c2a6,_0x407f28[_0x466024(0x16a)])};}function normalizeSkillTarget(_0x296a23){const _0x6d7b6a=a64_0x35e6b4;return(_0x296a23||DEFAULT_SKILL_TARGET)[_0x6d7b6a(0x155)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x19527a,_0xc746c9){const _0x2ba197=a64_0x35e6b4;if(existsSync(_0x19527a[_0x2ba197(0x16f)])){const _0x4e534d=lstatSync(_0x19527a[_0x2ba197(0x16f)]);if(!_0x4e534d['isDirectory']()||_0x4e534d['isSymbolicLink']())throw CliErrors[_0x2ba197(0x15c)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x19527a[_0x2ba197(0x16f)]);if(!_0xc746c9)throw CliErrors[_0x2ba197(0x15c)](_0x2ba197(0x16b)+_0x19527a[_0x2ba197(0x16f)],_0x2ba197(0x167));}for(const _0x48d217 of _0x19527a['rendered'][_0x2ba197(0x153)]){const _0x471361=resolve(_0x19527a[_0x2ba197(0x16f)],_0x48d217['path']),_0x2fdc03=dirname(_0x471361);mkdirSync(_0x2fdc03,{'recursive':!![]});if(existsSync(_0x471361)&&lstatSync(_0x471361)[_0x2ba197(0x156)]())throw CliErrors[_0x2ba197(0x15c)](_0x2ba197(0x15e)+_0x471361);writeFileSync(_0x471361,_0x48d217[_0x2ba197(0x16e)],'utf8');}}