@lovrabet/lovrabet-cli 2.2.7-beta.1 → 2.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) 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.d.ts +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/init.d.ts +12 -0
  26. package/lib/commands/config/init.js +1 -0
  27. package/lib/commands/config/shared.d.ts +1 -1
  28. package/lib/commands/config/shared.js +1 -1
  29. package/lib/commands/data/index.js +1 -1
  30. package/lib/commands/dataset/detail.js +1 -1
  31. package/lib/commands/dataset/index.js +1 -1
  32. package/lib/commands/dataset/list.js +1 -1
  33. package/lib/commands/dataset/sdk-doc.js +1 -1
  34. package/lib/commands/doctor.js +1 -1
  35. package/lib/commands/file/index.js +1 -1
  36. package/lib/commands/init.js +1 -1
  37. package/lib/commands/kb/index.js +1 -1
  38. package/lib/commands/logs/index.js +1 -1
  39. package/lib/commands/notification/config-list.js +1 -1
  40. package/lib/commands/notification/index.js +1 -1
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.js +1 -1
  59. package/lib/commands/role/update.js +1 -1
  60. package/lib/commands/role/user-add.js +1 -1
  61. package/lib/commands/role/user-remove.js +1 -1
  62. package/lib/commands/schedule/index.js +1 -1
  63. package/lib/commands/schema.js +1 -1
  64. package/lib/commands/service/dynamic.js +1 -1
  65. package/lib/commands/service/function-name-adapter.js +1 -1
  66. package/lib/commands/service/index.js +1 -1
  67. package/lib/commands/service/registry.js +1 -1
  68. package/lib/commands/skill/commands/create.js +1 -1
  69. package/lib/commands/skill/commands/diagram.js +1 -1
  70. package/lib/commands/skill/commands/install.js +1 -1
  71. package/lib/commands/skill/commands/list.js +1 -1
  72. package/lib/commands/skill/commands/push.js +1 -1
  73. package/lib/commands/skill/commands/validate.js +1 -1
  74. package/lib/commands/skill/diagram.js +1 -1
  75. package/lib/commands/skill/flags.js +1 -1
  76. package/lib/commands/skill/index.js +1 -1
  77. package/lib/commands/skill/manifest-helpers.js +1 -1
  78. package/lib/commands/skill/push-execute.js +1 -1
  79. package/lib/commands/skill/push-flow-helpers.js +1 -1
  80. package/lib/commands/skill/push-retarget.js +1 -1
  81. package/lib/commands/skill/scopes.js +1 -1
  82. package/lib/commands/skill/summary.js +1 -1
  83. package/lib/commands/skill/templates.js +1 -1
  84. package/lib/commands/skill/validate.js +1 -1
  85. package/lib/commands/sql/detail.js +1 -1
  86. package/lib/commands/sql/exec.js +1 -1
  87. package/lib/commands/sql/index.js +1 -1
  88. package/lib/commands/update.js +1 -1
  89. package/lib/commands/user-account/bind.js +1 -1
  90. package/lib/commands/user-account/index.js +1 -1
  91. package/lib/commands/workspace/index.js +1 -1
  92. package/lib/config/domain-config.d.ts +11 -0
  93. package/lib/config/domain-config.js +1 -0
  94. package/lib/config/schema.d.ts +7 -1
  95. package/lib/config/schema.js +1 -1
  96. package/lib/constant/app.js +1 -1
  97. package/lib/constant/auth-mode.js +1 -1
  98. package/lib/constant/cli.js +1 -1
  99. package/lib/constant/defaults.js +1 -1
  100. package/lib/constant/distribution.d.ts +4 -0
  101. package/lib/constant/distribution.js +1 -1
  102. package/lib/constant/domain.d.ts +10 -3
  103. package/lib/constant/domain.js +1 -1
  104. package/lib/constant/env.js +1 -1
  105. package/lib/constant/output.js +1 -1
  106. package/lib/constant/product.d.ts +52 -14
  107. package/lib/constant/product.js +1 -1
  108. package/lib/constant/region.d.ts +15 -0
  109. package/lib/constant/region.js +1 -0
  110. package/lib/constant/risk.js +1 -1
  111. package/lib/constant/url.d.ts +2 -0
  112. package/lib/constant/url.js +1 -1
  113. package/lib/context.d.ts +2 -6
  114. package/lib/context.js +1 -1
  115. package/lib/core/api-client.js +1 -1
  116. package/lib/core/db-resolver.js +1 -1
  117. package/lib/core/sdk-client.d.ts +2 -0
  118. package/lib/core/sdk-client.js +1 -1
  119. package/lib/errors.js +1 -1
  120. package/lib/framework/build-all-flags.js +1 -1
  121. package/lib/framework/dryrun.js +1 -1
  122. package/lib/framework/flags.js +1 -1
  123. package/lib/framework/help.js +1 -1
  124. package/lib/framework/index.js +1 -1
  125. package/lib/framework/output.js +1 -1
  126. package/lib/framework/preparse.js +1 -1
  127. package/lib/framework/rate-limit.js +1 -1
  128. package/lib/framework/raw-flags.js +1 -1
  129. package/lib/framework/response.js +1 -1
  130. package/lib/framework/runner-confirmation.js +1 -1
  131. package/lib/framework/runner-error.js +1 -1
  132. package/lib/framework/runner.d.ts +3 -1
  133. package/lib/framework/runner.js +1 -1
  134. package/lib/framework/schema-export.js +1 -1
  135. package/lib/framework/service-order.js +1 -1
  136. package/lib/framework/types.js +1 -1
  137. package/lib/generated/build-info.d.ts +4 -4
  138. package/lib/generated/build-info.js +1 -1
  139. package/lib/help.js +1 -1
  140. package/lib/postinstall.js +1 -1
  141. package/lib/runtime/confirmation.js +1 -1
  142. package/lib/runtime/event.js +1 -1
  143. package/lib/runtime/index.js +1 -1
  144. package/lib/runtime/queue.js +1 -1
  145. package/lib/runtime/resolve.js +1 -1
  146. package/lib/skills/builtin-skill.js +1 -1
  147. package/lib/skills/npx-skills-add.js +1 -1
  148. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  149. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  150. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  151. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  152. package/lib/skills/runtime-skill-sync/links.js +1 -1
  153. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  154. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  155. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  156. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  157. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  158. package/lib/skills/runtime-skill-sync/push.js +1 -1
  159. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  162. package/lib/skills/runtime-skill-sync.js +1 -1
  163. package/lib/skills/skill-presence.js +1 -1
  164. package/lib/utils/access-key-redaction.d.ts +15 -0
  165. package/lib/utils/access-key-redaction.js +1 -0
  166. package/lib/utils/apply-jq-filter.js +1 -1
  167. package/lib/utils/cli-version-check.d.ts +12 -0
  168. package/lib/utils/cli-version-check.js +1 -0
  169. package/lib/utils/cli-version-policy.d.ts +12 -0
  170. package/lib/utils/cli-version-policy.js +1 -0
  171. package/lib/utils/logger.js +1 -1
  172. package/lib/utils/lossless-json.js +1 -1
  173. package/lib/utils/params.js +1 -1
  174. package/lib/utils/platform.js +1 -1
  175. package/lib/utils/update-notice.d.ts +2 -1
  176. package/lib/utils/update-notice.js +1 -1
  177. package/lib/utils/version.js +1 -1
  178. package/lib/utils/write-cli-side-channel.js +1 -1
  179. package/package.json +3 -1
  180. package/skills/lovrabet/SKILL.md +11 -12
  181. package/skills/lovrabet/guides/troubleshooting.md +12 -8
  182. package/skills/lovrabet/references/lovrabet-app.md +1 -1
  183. package/skills/lovrabet/references/lovrabet-auth.md +7 -25
  184. package/skills/lovrabet/references/lovrabet-config-commands.md +42 -5
  185. package/skills/lovrabet/references/lovrabet-config.md +25 -5
  186. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a53_0x4f3d18=a53_0x4195;(function(_0x15b4df,_0x5c534f){const _0x81511e=a53_0x4195,_0x1922d5=_0x15b4df();while(!![]){try{const _0x1ad1ee=-parseInt(_0x81511e(0x19b))/0x1*(-parseInt(_0x81511e(0x18a))/0x2)+-parseInt(_0x81511e(0x1b1))/0x3*(parseInt(_0x81511e(0x183))/0x4)+-parseInt(_0x81511e(0x187))/0x5*(parseInt(_0x81511e(0x19f))/0x6)+-parseInt(_0x81511e(0x1a6))/0x7+-parseInt(_0x81511e(0x1a5))/0x8*(parseInt(_0x81511e(0x1af))/0x9)+-parseInt(_0x81511e(0x1a8))/0xa*(-parseInt(_0x81511e(0x1b0))/0xb)+-parseInt(_0x81511e(0x1ad))/0xc*(-parseInt(_0x81511e(0x1c6))/0xd);if(_0x1ad1ee===_0x5c534f)break;else _0x1922d5['push'](_0x1922d5['shift']());}catch(_0x15aba5){_0x1922d5['push'](_0x1922d5['shift']());}}}(a53_0x3dc5,0xad0e3));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a53_0x4f3d18(0x194),a53_0x4f3d18(0x1c4),a53_0x4f3d18(0x1ab),a53_0x4f3d18(0x181)];const BUILTIN_ROLE_TYPES=[a53_0x4f3d18(0x194),a53_0x4f3d18(0x1c4),a53_0x4f3d18(0x1ab)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a53_0x4f3d18(0x18e)};export const ROLE_REF_FLAG={'name':'role','type':a53_0x4f3d18(0x189),'required':!![],'description':a53_0x4f3d18(0x1b3)};export const USER_ID_FLAG={'name':a53_0x4f3d18(0x1c8),'type':a53_0x4f3d18(0x189),'required':!![],'description':a53_0x4f3d18(0x19c)};export const EXPECT_USER_COUNT_FLAG={'name':a53_0x4f3d18(0x1ac),'type':a53_0x4f3d18(0x18f),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};function a53_0x3dc5(){const _0x44c6ce=['282VyylBK','Pass\x20one\x20role\x20ID:\x20','test','remark','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','\x20built-in\x20runtime\x20role\x20','8VmjnwO','8744295QBiXoK','push','120UVtnvD','str','userList','OWNER','expect-user-count','23171676XuoVde','Runtime\x20role\x20name\x20\x22','2337705DVAndm','806399jQrnoe','1456491lVCVzk','\x22\x20is\x20ambiguous.','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','userId','runtime','user-add','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','userName','roleType','paging','includes','length','roleName','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','isSafeInteger','User\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','USER','items','13eBKkby','validation','user','role','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','CUSTOM','Runtime\x20role\x20id\x20','8YTyIOh','applyUserList','Missing\x20runtime\x20role\x20reference.','\x20was\x20not\x20found\x20in\x20app\x20','35185UGIbtv','map','string','2518CiwSmu','\x22\x20was\x20not\x20found\x20in\x20app\x20','Pass\x20--role\x20<id|name>.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','number','Runtime\x20user\x20','Runtime\x20role\x20','trim',',\x20found\x20','ADMIN','userCount','filter','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','permitCount','563ZlEBVx','Runtime\x20numeric\x20userId','\x20is\x20not\x20in\x20runtime\x20role\x20','appCode'];a53_0x3dc5=function(){return _0x44c6ce;};return a53_0x3dc5();}export function isBuiltinRuntimeRole(_0x1359ea){return BUILTIN_ROLE_TYPES['includes'](_0x1359ea);}export function assertCustomRuntimeRole(_0x25a1a5,_0x33ef9f){const _0x5f4c9e=a53_0x4f3d18;if(_0x25a1a5['roleType']!==_0x5f4c9e(0x181))throw CliErrors['validation']('Cannot\x20'+_0x33ef9f+_0x5f4c9e(0x1a4)+_0x25a1a5[_0x5f4c9e(0x1bd)]+'\x20('+_0x25a1a5[_0x5f4c9e(0x1b9)]+').',_0x5f4c9e(0x199));}export function projectRuntimeRole(_0x472de7){const _0x5ecf7e=a53_0x4f3d18;return{'id':_0x472de7['id'],'roleName':_0x472de7[_0x5ecf7e(0x1bd)],'roleType':_0x472de7[_0x5ecf7e(0x1b9)],'remark':_0x472de7[_0x5ecf7e(0x1a2)],'userCount':_0x472de7[_0x5ecf7e(0x195)]??0x0,'permitCount':_0x472de7[_0x5ecf7e(0x19a)]??0x0,'builtin':isBuiltinRuntimeRole(_0x472de7[_0x5ecf7e(0x1b9)])};}export async function getRuntimeRoleById(_0x531448,_0x26404f){const _0x3f94b8=a53_0x4f3d18;if(!Number[_0x3f94b8(0x1c1)](_0x26404f)||_0x26404f<=0x0)throw CliErrors[_0x3f94b8(0x1c7)](_0x3f94b8(0x1b7));const _0x4f7458=(await listAllRuntimeRoles(_0x531448))['filter'](_0x5bc700=>_0x5bc700['id']===_0x26404f&&(!_0x5bc700[_0x3f94b8(0x19e)]||_0x5bc700[_0x3f94b8(0x19e)]===_0x531448));if(_0x4f7458['length']!==0x1)throw CliErrors[_0x3f94b8(0x1c7)](_0x3f94b8(0x182)+_0x26404f+_0x3f94b8(0x186)+_0x531448+'.',_0x3f94b8(0x1ca));return _0x4f7458[0x0];}export async function listAllRuntimeRoles(_0x53390e,_0x3df216={}){const _0x317a01=a53_0x4f3d18,_0x54aceb=0x64,_0x337a60=[];for(let _0x633da3=0x1;;_0x633da3+=0x1){const _0x555bd1=await listRuntimeAppRoles(_0x53390e,{..._0x3df216['roleName']?{'roleName':_0x3df216[_0x317a01(0x1bd)]}:{},'currentPage':_0x633da3,'pageSize':_0x54aceb});_0x337a60[_0x317a01(0x1a7)](..._0x555bd1['items']);if(_0x555bd1[_0x317a01(0x1c5)][_0x317a01(0x1bc)]<_0x54aceb||_0x555bd1[_0x317a01(0x1ba)]&&_0x337a60[_0x317a01(0x1bc)]>=_0x555bd1[_0x317a01(0x1ba)]['totalCount'])return _0x337a60;}}export async function resolveRuntimeRoleRef(_0x57ddff,_0x533fc4){const _0x4b6340=a53_0x4f3d18,_0x11a8c1=_0x533fc4[_0x4b6340(0x192)]();if(!_0x11a8c1)throw CliErrors[_0x4b6340(0x1c7)](_0x4b6340(0x185),_0x4b6340(0x18c));if(/^\d+$/[_0x4b6340(0x1a1)](_0x11a8c1))return getRuntimeRoleById(_0x57ddff,Number(_0x11a8c1));const _0x5a728e=(await listAllRuntimeRoles(_0x57ddff))[_0x4b6340(0x196)](_0x29c628=>_0x29c628[_0x4b6340(0x1bd)]===_0x11a8c1);if(_0x5a728e['length']===0x0)throw CliErrors[_0x4b6340(0x1c7)](_0x4b6340(0x1ae)+_0x11a8c1+_0x4b6340(0x18b)+_0x57ddff+'.',_0x4b6340(0x1bf));if(_0x5a728e[_0x4b6340(0x1bc)]>0x1)throw CliErrors[_0x4b6340(0x1c7)](_0x4b6340(0x1ae)+_0x11a8c1+_0x4b6340(0x1b2),_0x4b6340(0x1a0)+_0x5a728e[_0x4b6340(0x188)](_0x4ce321=>_0x4ce321['id'])['join'](',\x20')+'.');return _0x5a728e[0x0];}function a53_0x4195(_0x3a8a95,_0x34803a){_0x3a8a95=_0x3a8a95-0x181;const _0x3dc506=a53_0x3dc5();let _0x4195b2=_0x3dc506[_0x3a8a95];return _0x4195b2;}function parseRuntimeUserId(_0x1f9c68){const _0x32c843=a53_0x4f3d18,_0x35bc8b=_0x1f9c68[_0x32c843(0x192)]();if(!/^\d+$/['test'](_0x35bc8b))throw CliErrors[_0x32c843(0x1c7)](_0x32c843(0x198),_0x32c843(0x1be));const _0x260238=Number(_0x35bc8b);if(!Number[_0x32c843(0x1c1)](_0x260238)||_0x260238<=0x0)throw CliErrors[_0x32c843(0x1c7)]('Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.');return _0x260238;}export async function prepareRuntimeMemberMutation(_0x2568fe,_0xf19fb9){const _0x3a832c=a53_0x4f3d18,_0x527755=await resolveRuntimeRoleRef(_0x2568fe[_0x3a832c(0x19e)],_0x2568fe[_0x3a832c(0x1a9)](_0x3a832c(0x1c9)));if(_0x527755['roleType']===_0x3a832c(0x1ab))throw CliErrors[_0x3a832c(0x1c7)]('OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.',_0x3a832c(0x1a3));const _0x52f881=parseRuntimeUserId(_0x2568fe[_0x3a832c(0x1a9)]('user')),_0x256920=(await listRuntimeRoleUsers(_0x2568fe['appCode']))[_0x3a832c(0x188)](_0x160b8d=>({..._0x160b8d,'userList':[..._0x160b8d[_0x3a832c(0x1aa)]??[]],'applyUserList':[..._0x160b8d[_0x3a832c(0x184)]??[]]})),_0x5f141c=_0x256920['find'](_0x1f37d8=>_0x1f37d8['id']===_0x527755['id']);if(!_0x5f141c)throw CliErrors[_0x3a832c(0x1c7)](_0x3a832c(0x191)+_0x527755['id']+_0x3a832c(0x18d),_0x3a832c(0x197));const _0x3c650d=_0x5f141c['userList']['map'](_0x106995=>_0x106995['userId']),_0x3be42c=_0x2568fe['flag']('expect-user-count');if(_0x3be42c!==undefined&&_0x3be42c!==null&&_0x3be42c!==''){const _0x4d3553=_0x2568fe['num'](_0x3a832c(0x1ac));if(!Number[_0x3a832c(0x1c1)](_0x4d3553)||_0x4d3553<0x0)throw CliErrors[_0x3a832c(0x1c7)]('--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.');if(_0x3c650d[_0x3a832c(0x1bc)]!==_0x4d3553)throw CliErrors[_0x3a832c(0x1c7)]('Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20'+_0x4d3553+_0x3a832c(0x193)+_0x3c650d[_0x3a832c(0x1bc)]+'.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.');}const _0x4fe468=_0x3c650d[_0x3a832c(0x1bb)](_0x52f881),_0x1d310a=[];let _0x44e3ea=!![];if(_0xf19fb9===_0x3a832c(0x1b6)){const _0x5eb624=await listRuntimeAppUsers(_0x2568fe[_0x3a832c(0x19e)]),_0x59bdd8=_0x5eb624['filter'](_0x5a48f1=>Number(_0x5a48f1['code'])===_0x52f881);if(_0x59bdd8['length']!==0x1||!_0x59bdd8[0x0][_0x3a832c(0x1b8)]?.[_0x3a832c(0x192)]())throw CliErrors['validation'](_0x3a832c(0x190)+_0x52f881+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x2568fe[_0x3a832c(0x19e)]+'.',_0x3a832c(0x1c0));_0x4fe468?(_0x44e3ea=![],_0x1d310a['push']('User\x20'+_0x52f881+_0x3a832c(0x1c3)+_0x527755['id']+'.')):_0x5f141c[_0x3a832c(0x1aa)][_0x3a832c(0x1a7)]({'userId':_0x52f881,'username':_0x59bdd8[0x0][_0x3a832c(0x1b8)]});}else!_0x4fe468?(_0x44e3ea=![],_0x1d310a['push'](_0x3a832c(0x1c2)+_0x52f881+_0x3a832c(0x19d)+_0x527755['id']+'.')):_0x5f141c[_0x3a832c(0x1aa)]=_0x5f141c[_0x3a832c(0x1aa)][_0x3a832c(0x196)](_0x2f8af4=>_0x2f8af4[_0x3a832c(0x1b4)]!==_0x52f881);return{'role':_0x527755,'userId':_0x52f881,'roleList':_0x256920,'before':{'userIds':_0x3c650d},'after':{'userIds':_0x5f141c[_0x3a832c(0x1aa)]['map'](_0x257a78=>_0x257a78[_0x3a832c(0x1b4)])},'shouldWrite':_0x44e3ea,'warnings':_0x1d310a};}export function runtimeRoleWriteResult(_0x388426,_0x56bde8,_0x52b6f5,_0x4f5ff2,_0x522ea1,_0x37f86f=[]){const _0x4a19ef=a53_0x4f3d18;return{'operation':_0x388426,'scope':_0x4a19ef(0x1b5),'selector':_0x56bde8,'before':_0x52b6f5,'after':_0x4f5ff2,'dryRun':![],'backend':_0x522ea1,'warnings':_0x37f86f};}
1
+ const a54_0x22766e=a54_0x3148;(function(_0x238dd4,_0xa68c95){const _0x41ed60=a54_0x3148,_0x2659c9=_0x238dd4();while(!![]){try{const _0x13f15a=parseInt(_0x41ed60(0x11d))/0x1*(-parseInt(_0x41ed60(0x110))/0x2)+-parseInt(_0x41ed60(0x117))/0x3*(-parseInt(_0x41ed60(0x12e))/0x4)+-parseInt(_0x41ed60(0x118))/0x5+parseInt(_0x41ed60(0x115))/0x6+parseInt(_0x41ed60(0x121))/0x7*(-parseInt(_0x41ed60(0x137))/0x8)+-parseInt(_0x41ed60(0x12b))/0x9*(parseInt(_0x41ed60(0x156))/0xa)+parseInt(_0x41ed60(0x13a))/0xb*(parseInt(_0x41ed60(0x124))/0xc);if(_0x13f15a===_0xa68c95)break;else _0x2659c9['push'](_0x2659c9['shift']());}catch(_0x4c6dd2){_0x2659c9['push'](_0x2659c9['shift']());}}}(a54_0x11c9,0xa9fe2));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a54_0x11c9(){const _0xa3d13a=['role','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','code','2030oiTczz','runtime','test','12lksZwX','roleType','USER','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','flag','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','appCode','3286485PUVNig','expect-user-count','\x22\x20is\x20ambiguous.','668WZlwmL','filter','user-add','length','items','validation','OWNER','paging','Pass\x20--role\x20<id|name>.','36552oGKfAo','userName','Runtime\x20numeric\x20userId','33107701dvpGzF','Runtime\x20user\x20','trim','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','roleName','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','userId','\x20is\x20already\x20in\x20runtime\x20role\x20',',\x20found\x20','string','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','map','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','userList','applyUserList','Missing\x20runtime\x20role\x20reference.','User\x20','isSafeInteger','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','\x20was\x20not\x20found\x20in\x20app\x20','number','join','CUSTOM','permitCount','push','includes','totalCount','30kWCtHm','12UuDYWk','remark','\x22\x20was\x20not\x20found\x20in\x20app\x20','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','\x20is\x20not\x20in\x20runtime\x20role\x20','4255182XgEPrJ','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','17061UZcQYU','3304220nIUgWr','user','str','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','148513MWzErz'];a54_0x11c9=function(){return _0xa3d13a;};return a54_0x11c9();}export const RUNTIME_ROLE_TYPES=['ADMIN',a54_0x22766e(0x126),a54_0x22766e(0x134),a54_0x22766e(0x151)];const BUILTIN_ROLE_TYPES=['ADMIN','USER',a54_0x22766e(0x134)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x22766e(0x14f),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':a54_0x22766e(0x11e),'type':a54_0x22766e(0x144),'required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const USER_ID_FLAG={'name':a54_0x22766e(0x119),'type':a54_0x22766e(0x144),'required':!![],'description':a54_0x22766e(0x139)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':'number','description':a54_0x22766e(0x147)};export function isBuiltinRuntimeRole(_0x3b0625){const _0x5a966e=a54_0x22766e;return BUILTIN_ROLE_TYPES[_0x5a966e(0x154)](_0x3b0625);}export function assertCustomRuntimeRole(_0x25819e,_0x4bee22){const _0x444e5f=a54_0x22766e;if(_0x25819e[_0x444e5f(0x125)]!==_0x444e5f(0x151))throw CliErrors[_0x444e5f(0x133)]('Cannot\x20'+_0x4bee22+'\x20built-in\x20runtime\x20role\x20'+_0x25819e[_0x444e5f(0x13e)]+'\x20('+_0x25819e['roleType']+').',_0x444e5f(0x145));}export function projectRuntimeRole(_0x5938ec){const _0x4972a2=a54_0x22766e;return{'id':_0x5938ec['id'],'roleName':_0x5938ec[_0x4972a2(0x13e)],'roleType':_0x5938ec[_0x4972a2(0x125)],'remark':_0x5938ec[_0x4972a2(0x111)],'userCount':_0x5938ec['userCount']??0x0,'permitCount':_0x5938ec[_0x4972a2(0x152)]??0x0,'builtin':isBuiltinRuntimeRole(_0x5938ec[_0x4972a2(0x125)])};}export async function getRuntimeRoleById(_0x28671d,_0x1a6eac){const _0x53cca2=a54_0x22766e;if(!Number[_0x53cca2(0x14c)](_0x1a6eac)||_0x1a6eac<=0x0)throw CliErrors[_0x53cca2(0x133)](_0x53cca2(0x14d));const _0x203fa0=(await listAllRuntimeRoles(_0x28671d))[_0x53cca2(0x12f)](_0x17097e=>_0x17097e['id']===_0x1a6eac&&(!_0x17097e[_0x53cca2(0x12a)]||_0x17097e[_0x53cca2(0x12a)]===_0x28671d));if(_0x203fa0[_0x53cca2(0x131)]!==0x1)throw CliErrors['validation']('Runtime\x20role\x20id\x20'+_0x1a6eac+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x28671d+'.',_0x53cca2(0x11f));return _0x203fa0[0x0];}export async function listAllRuntimeRoles(_0x44504a,_0x5da89a={}){const _0x3b2af3=a54_0x22766e,_0x1f127b=0x64,_0x211196=[];for(let _0x29683b=0x1;;_0x29683b+=0x1){const _0x13272f=await listRuntimeAppRoles(_0x44504a,{..._0x5da89a['roleName']?{'roleName':_0x5da89a[_0x3b2af3(0x13e)]}:{},'currentPage':_0x29683b,'pageSize':_0x1f127b});_0x211196[_0x3b2af3(0x153)](..._0x13272f['items']);if(_0x13272f[_0x3b2af3(0x132)]['length']<_0x1f127b||_0x13272f[_0x3b2af3(0x135)]&&_0x211196['length']>=_0x13272f[_0x3b2af3(0x135)][_0x3b2af3(0x155)])return _0x211196;}}export async function resolveRuntimeRoleRef(_0x2f2876,_0x34f15d){const _0x59939b=a54_0x22766e,_0x5e586c=_0x34f15d[_0x59939b(0x13c)]();if(!_0x5e586c)throw CliErrors[_0x59939b(0x133)](_0x59939b(0x14a),_0x59939b(0x136));if(/^\d+$/['test'](_0x5e586c))return getRuntimeRoleById(_0x2f2876,Number(_0x5e586c));const _0x42aa34=(await listAllRuntimeRoles(_0x2f2876))[_0x59939b(0x12f)](_0x2d7bff=>_0x2d7bff[_0x59939b(0x13e)]===_0x5e586c);if(_0x42aa34[_0x59939b(0x131)]===0x0)throw CliErrors[_0x59939b(0x133)]('Runtime\x20role\x20name\x20\x22'+_0x5e586c+_0x59939b(0x112)+_0x2f2876+'.',_0x59939b(0x13d));if(_0x42aa34['length']>0x1)throw CliErrors[_0x59939b(0x133)]('Runtime\x20role\x20name\x20\x22'+_0x5e586c+_0x59939b(0x12d),'Pass\x20one\x20role\x20ID:\x20'+_0x42aa34[_0x59939b(0x146)](_0x2fab3f=>_0x2fab3f['id'])[_0x59939b(0x150)](',\x20')+'.');return _0x42aa34[0x0];}function parseRuntimeUserId(_0x943204){const _0x15c953=a54_0x22766e,_0x1162e3=_0x943204[_0x15c953(0x13c)]();if(!/^\d+$/[_0x15c953(0x123)](_0x1162e3))throw CliErrors[_0x15c953(0x133)](_0x15c953(0x13f),_0x15c953(0x129));const _0xd4e747=Number(_0x1162e3);if(!Number['isSafeInteger'](_0xd4e747)||_0xd4e747<=0x0)throw CliErrors[_0x15c953(0x133)]('Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.');return _0xd4e747;}export async function prepareRuntimeMemberMutation(_0x188a2a,_0x47d4ee){const _0x3f99f9=a54_0x22766e,_0x3e3956=await resolveRuntimeRoleRef(_0x188a2a['appCode'],_0x188a2a['str'](_0x3f99f9(0x11e)));if(_0x3e3956[_0x3f99f9(0x125)]===_0x3f99f9(0x134))throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x116),_0x3f99f9(0x11c));const _0x4057a1=parseRuntimeUserId(_0x188a2a[_0x3f99f9(0x11a)](_0x3f99f9(0x119))),_0x6698bb=(await listRuntimeRoleUsers(_0x188a2a['appCode']))[_0x3f99f9(0x146)](_0x2a34da=>({..._0x2a34da,'userList':[..._0x2a34da[_0x3f99f9(0x148)]??[]],'applyUserList':[..._0x2a34da[_0x3f99f9(0x149)]??[]]})),_0x37c886=_0x6698bb['find'](_0x4fda49=>_0x4fda49['id']===_0x3e3956['id']);if(!_0x37c886)throw CliErrors[_0x3f99f9(0x133)]('Runtime\x20role\x20'+_0x3e3956['id']+_0x3f99f9(0x11b),'Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0x2b09bb=_0x37c886[_0x3f99f9(0x148)][_0x3f99f9(0x146)](_0x44df22=>_0x44df22[_0x3f99f9(0x141)]),_0x10ff5f=_0x188a2a[_0x3f99f9(0x128)](_0x3f99f9(0x12c));if(_0x10ff5f!==undefined&&_0x10ff5f!==null&&_0x10ff5f!==''){const _0x1d7d25=_0x188a2a['num']('expect-user-count');if(!Number['isSafeInteger'](_0x1d7d25)||_0x1d7d25<0x0)throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x113));if(_0x2b09bb[_0x3f99f9(0x131)]!==_0x1d7d25)throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x140)+_0x1d7d25+_0x3f99f9(0x143)+_0x2b09bb[_0x3f99f9(0x131)]+'.',_0x3f99f9(0x127));}const _0x1cf07a=_0x2b09bb[_0x3f99f9(0x154)](_0x4057a1),_0x2c42cc=[];let _0x49c07b=!![];if(_0x47d4ee===_0x3f99f9(0x130)){const _0x528499=await listRuntimeAppUsers(_0x188a2a[_0x3f99f9(0x12a)]),_0x2c1a98=_0x528499[_0x3f99f9(0x12f)](_0xeef395=>Number(_0xeef395[_0x3f99f9(0x120)])===_0x4057a1);if(_0x2c1a98[_0x3f99f9(0x131)]!==0x1||!_0x2c1a98[0x0][_0x3f99f9(0x138)]?.[_0x3f99f9(0x13c)]())throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x13b)+_0x4057a1+_0x3f99f9(0x14e)+_0x188a2a[_0x3f99f9(0x12a)]+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x1cf07a?(_0x49c07b=![],_0x2c42cc[_0x3f99f9(0x153)](_0x3f99f9(0x14b)+_0x4057a1+_0x3f99f9(0x142)+_0x3e3956['id']+'.')):_0x37c886[_0x3f99f9(0x148)]['push']({'userId':_0x4057a1,'username':_0x2c1a98[0x0][_0x3f99f9(0x138)]});}else!_0x1cf07a?(_0x49c07b=![],_0x2c42cc[_0x3f99f9(0x153)]('User\x20'+_0x4057a1+_0x3f99f9(0x114)+_0x3e3956['id']+'.')):_0x37c886['userList']=_0x37c886[_0x3f99f9(0x148)][_0x3f99f9(0x12f)](_0x13c45b=>_0x13c45b[_0x3f99f9(0x141)]!==_0x4057a1);return{'role':_0x3e3956,'userId':_0x4057a1,'roleList':_0x6698bb,'before':{'userIds':_0x2b09bb},'after':{'userIds':_0x37c886[_0x3f99f9(0x148)][_0x3f99f9(0x146)](_0x3f732e=>_0x3f732e[_0x3f99f9(0x141)])},'shouldWrite':_0x49c07b,'warnings':_0x2c42cc};}function a54_0x3148(_0xc588d,_0x136d87){_0xc588d=_0xc588d-0x110;const _0x11c97b=a54_0x11c9();let _0x3148e4=_0x11c97b[_0xc588d];return _0x3148e4;}export function runtimeRoleWriteResult(_0x16ef0d,_0x1e91bf,_0x404f17,_0x6636fe,_0x49cb4a,_0x1fc12a=[]){const _0x2a591e=a54_0x22766e;return{'operation':_0x16ef0d,'scope':_0x2a591e(0x122),'selector':_0x1e91bf,'before':_0x404f17,'after':_0x6636fe,'dryRun':![],'backend':_0x49cb4a,'warnings':_0x1fc12a};}
@@ -1 +1 @@
1
- const a54_0x114178=a54_0x16c9;function a54_0x43e3(){const _0x2ff7b2=['New\x20non-empty\x20role\x20remark','Update\x20a\x20runtime\x20CUSTOM\x20role','trim','470qmiEWJ','修改当前运行应用中的自定义角色名称或备注;变更会立即影响角色展示。','New\x20role\x20name','str','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','build','high-risk-write','name','remark','body','2325120VmcpYa','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','23070evITcW','appCode','--name\x20must\x20not\x20be\x20blank.','415101kXyPMz','2ONSsay','description','482877Frsyen','835feoitp','validation','update','9904580qmGwYb','1151391uMYrYo','--remark\x20must\x20not\x20be\x20blank.','POST','string','role','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','/client/permit/role/update','flag','3231228xOuhGK'];a54_0x43e3=function(){return _0x2ff7b2;};return a54_0x43e3();}(function(_0x1d7e88,_0x3498b5){const _0x3b3b1f=a54_0x16c9,_0x5202e1=_0x1d7e88();while(!![]){try{const _0x3e8c2d=-parseInt(_0x3b3b1f(0x100))/0x1+-parseInt(_0x3b3b1f(0x101))/0x2*(-parseInt(_0x3b3b1f(0x108))/0x3)+parseInt(_0x3b3b1f(0x110))/0x4+-parseInt(_0x3b3b1f(0x104))/0x5*(parseInt(_0x3b3b1f(0xfd))/0x6)+-parseInt(_0x3b3b1f(0x107))/0x7+-parseInt(_0x3b3b1f(0xfb))/0x8+parseInt(_0x3b3b1f(0x103))/0x9*(parseInt(_0x3b3b1f(0x114))/0xa);if(_0x3e8c2d===_0x3498b5)break;else _0x5202e1['push'](_0x5202e1['shift']());}catch(_0x49208e){_0x5202e1['push'](_0x5202e1['shift']());}}}(a54_0x43e3,0xe80e3));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a54_0x16c9(_0xdfc690,_0x149b9c){_0xdfc690=_0xdfc690-0xf2;const _0x43e348=a54_0x43e3();let _0x16c96c=_0x43e348[_0xdfc690];return _0x16c96c;}import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x12f566){const _0x16167c=a54_0x16c9,_0x531a3a=_0x12f566[_0x16167c(0x10f)](_0x16167c(0xf8))!==undefined,_0x2dd5d3=_0x12f566[_0x16167c(0x10f)](_0x16167c(0xf9))!==undefined;if(!_0x531a3a&&!_0x2dd5d3)throw CliErrors['validation'](_0x16167c(0xf5));const _0x1c00f5=_0x12f566['str'](_0x16167c(0xf8))['trim'](),_0x205d96=_0x12f566[_0x16167c(0xf4)](_0x16167c(0xf9))[_0x16167c(0x113)]();if(_0x531a3a&&!_0x1c00f5)throw CliErrors[_0x16167c(0x105)](_0x16167c(0xff));if(_0x2dd5d3&&!_0x205d96)throw CliErrors['validation'](_0x16167c(0x109),_0x16167c(0xfc));return{..._0x531a3a?{'roleName':_0x1c00f5}:{},..._0x2dd5d3?{'remark':_0x205d96}:{}};}async function prepare(_0x4df768){const _0x3aebdf=a54_0x16c9,_0x351b05=await getRuntimeRoleById(_0x4df768[_0x3aebdf(0xfe)],_0x4df768['num']('id'));return assertCustomRuntimeRole(_0x351b05,'update'),{'role':_0x351b05,'body':{'id':_0x351b05['id'],'appCode':_0x4df768[_0x3aebdf(0xfe)],...updateFields(_0x4df768)}};}export const roleUpdate={'service':a54_0x114178(0x10c),'command':a54_0x114178(0x106),'description':a54_0x114178(0x112),'risk':a54_0x114178(0xf7),'confirmationDescription':a54_0x114178(0xf2),'flags':[ROLE_ID_FLAG,{'name':a54_0x114178(0xf8),'type':a54_0x114178(0x10b),'description':a54_0x114178(0xf3)},{'name':a54_0x114178(0xf9),'type':'string','description':a54_0x114178(0x111)}],async 'validate'(_0x35421b){updateFields(_0x35421b);},async 'dryRun'(_0x4ecad5){const _0x9e6e05=a54_0x114178,{body:_0x5fe7b8}=await prepare(_0x4ecad5);return dryRun(_0x9e6e05(0x10a),_0x9e6e05(0x10e))[_0x9e6e05(0xfa)](_0x5fe7b8)[_0x9e6e05(0x102)](_0x9e6e05(0x10d))[_0x9e6e05(0xf6)]();},async 'execute'(_0x107031){const _0x4e79f8=a54_0x114178,{role:_0x5b7e43,body:_0x5c4454}=await prepare(_0x107031),_0x3e8016=await updateRuntimeAppRole(_0x5c4454);return{'ok':!![],'data':runtimeRoleWriteResult('update',{'roleId':_0x5b7e43['id']},projectRuntimeRole(_0x5b7e43),projectRuntimeRole(_0x3e8016),{'method':'POST','path':_0x4e79f8(0x10e)})};}};
1
+ const a55_0x6192e8=a55_0x4e54;(function(_0x1b04e7,_0xaa8821){const _0x2606e2=a55_0x4e54,_0x43378c=_0x1b04e7();while(!![]){try{const _0x392bc8=parseInt(_0x2606e2(0x205))/0x1*(-parseInt(_0x2606e2(0x1f2))/0x2)+-parseInt(_0x2606e2(0x1f3))/0x3*(-parseInt(_0x2606e2(0x1fe))/0x4)+parseInt(_0x2606e2(0x1f5))/0x5*(-parseInt(_0x2606e2(0x20a))/0x6)+parseInt(_0x2606e2(0x202))/0x7*(parseInt(_0x2606e2(0x1fb))/0x8)+parseInt(_0x2606e2(0x1ed))/0x9+parseInt(_0x2606e2(0x1eb))/0xa+-parseInt(_0x2606e2(0x1f1))/0xb;if(_0x392bc8===_0xaa8821)break;else _0x43378c['push'](_0x43378c['shift']());}catch(_0x2ae688){_0x43378c['push'](_0x43378c['shift']());}}}(a55_0x1bb8,0x908af));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(_0x5f4b29){const _0x2a650f=a55_0x4e54,_0x1dcd68=_0x5f4b29[_0x2a650f(0x1ee)](_0x2a650f(0x1f9))!==undefined,_0x5a9ecb=_0x5f4b29[_0x2a650f(0x1ee)](_0x2a650f(0x1f0))!==undefined;if(!_0x1dcd68&&!_0x5a9ecb)throw CliErrors[_0x2a650f(0x208)](_0x2a650f(0x206));const _0x1165e4=_0x5f4b29[_0x2a650f(0x1f8)](_0x2a650f(0x1f9))[_0x2a650f(0x1fc)](),_0x40f3f7=_0x5f4b29[_0x2a650f(0x1f8)](_0x2a650f(0x1f0))[_0x2a650f(0x1fc)]();if(_0x1dcd68&&!_0x1165e4)throw CliErrors[_0x2a650f(0x208)]('--name\x20must\x20not\x20be\x20blank.');if(_0x5a9ecb&&!_0x40f3f7)throw CliErrors[_0x2a650f(0x208)](_0x2a650f(0x1ff),_0x2a650f(0x1f4));return{..._0x1dcd68?{'roleName':_0x1165e4}:{},..._0x5a9ecb?{'remark':_0x40f3f7}:{}};}function a55_0x4e54(_0x507ca2,_0x527b49){_0x507ca2=_0x507ca2-0x1eb;const _0x1bb8c5=a55_0x1bb8();let _0x4e5464=_0x1bb8c5[_0x507ca2];return _0x4e5464;}function a55_0x1bb8(){const _0xd0d214=['validation','build','42414vQCNff','1202110batMZb','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','3340656oDYJYx','flag','high-risk-write','remark','664367qaSdvY','359926OQIfgF','3Qtivpf','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','635AXUqBi','POST','description','str','name','appCode','8cmemOY','trim','Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','2714496LeyXwj','--remark\x20must\x20not\x20be\x20blank.','body','/client/permit/role/update','5180798DiaWXG','string','New\x20non-empty\x20role\x20remark','2sakswJ','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','update'];a55_0x1bb8=function(){return _0xd0d214;};return a55_0x1bb8();}async function prepare(_0xee153b){const _0x45e4d2=a55_0x4e54,_0x1a82bc=await getRuntimeRoleById(_0xee153b[_0x45e4d2(0x1fa)],_0xee153b['num']('id'));return assertCustomRuntimeRole(_0x1a82bc,'update'),{'role':_0x1a82bc,'body':{'id':_0x1a82bc['id'],'appCode':_0xee153b['appCode'],...updateFields(_0xee153b)}};}export const roleUpdate={'service':'role','command':a55_0x6192e8(0x207),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':a55_0x6192e8(0x1ef),'confirmationDescription':a55_0x6192e8(0x1fd),'flags':[ROLE_ID_FLAG,{'name':a55_0x6192e8(0x1f9),'type':a55_0x6192e8(0x203),'description':'New\x20role\x20name'},{'name':a55_0x6192e8(0x1f0),'type':a55_0x6192e8(0x203),'description':a55_0x6192e8(0x204)}],async 'validate'(_0x3f924f){updateFields(_0x3f924f);},async 'dryRun'(_0x4b0e75){const _0x4c4b3e=a55_0x6192e8,{body:_0x3d0a5c}=await prepare(_0x4b0e75);return dryRun(_0x4c4b3e(0x1f6),_0x4c4b3e(0x201))[_0x4c4b3e(0x200)](_0x3d0a5c)[_0x4c4b3e(0x1f7)](_0x4c4b3e(0x1ec))[_0x4c4b3e(0x209)]();},async 'execute'(_0x5b4c63){const _0x1894d4=a55_0x6192e8,{role:_0x1de5c6,body:_0xb89d09}=await prepare(_0x5b4c63),_0x3164bb=await updateRuntimeAppRole(_0xb89d09);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1894d4(0x207),{'roleId':_0x1de5c6['id']},projectRuntimeRole(_0x1de5c6),projectRuntimeRole(_0x3164bb),{'method':'POST','path':_0x1894d4(0x201)})};}};
@@ -1 +1 @@
1
- const a55_0x254de4=a55_0x2458;(function(_0x3b6105,_0x5ae341){const _0x343005=a55_0x2458,_0x3e9bce=_0x3b6105();while(!![]){try{const _0x890b80=parseInt(_0x343005(0x188))/0x1*(parseInt(_0x343005(0x186))/0x2)+-parseInt(_0x343005(0x194))/0x3+parseInt(_0x343005(0x183))/0x4+-parseInt(_0x343005(0x182))/0x5+-parseInt(_0x343005(0x191))/0x6+-parseInt(_0x343005(0x18e))/0x7+parseInt(_0x343005(0x192))/0x8;if(_0x890b80===_0x5ae341)break;else _0x3e9bce['push'](_0x3e9bce['shift']());}catch(_0x184769){_0x3e9bce['push'](_0x3e9bce['shift']());}}}(a55_0x1737,0x9d5ab));function a55_0x2458(_0x242a62,_0x2d959b){_0x242a62=_0x242a62-0x181;const _0x173714=a55_0x1737();let _0x24585a=_0x173714[_0x242a62];return _0x24585a;}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a55_0x1737(){const _0x39265f=['after','warnings','2134BFLKNQ','roleList','1065InLmOw','description','POST','user-add','build','userId','3499741VOhkDL','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','role','5015988ORreCi','2523040tePtxM','把指定运行用户加入目标角色;该用户将获得该角色对应的运行权限。','1475019lzREYJ','shouldWrite','body','high-risk-write','/client/permit/user-role/update-user-list','Preview:\x20add\x20runtime\x20role\x20member','752545IPPSoV','4683724LuTaXG'];a55_0x1737=function(){return _0x39265f;};return a55_0x1737();}export const roleUserAdd={'service':a55_0x254de4(0x190),'command':'user-add','description':a55_0x254de4(0x18f),'risk':a55_0x254de4(0x197),'confirmationDescription':a55_0x254de4(0x193),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x62315){const _0x4378a1=a55_0x254de4,_0x4a510f=await prepareRuntimeMemberMutation(_0x62315,_0x4378a1(0x18b));return dryRun(_0x4378a1(0x18a),_0x4378a1(0x198))[_0x4378a1(0x196)]({'appCode':_0x62315['appCode'],'roleList':_0x4a510f[_0x4378a1(0x187)]})[_0x4378a1(0x189)](_0x4a510f[_0x4378a1(0x195)]?_0x4378a1(0x181):_0x4a510f[_0x4378a1(0x185)][0x0])[_0x4378a1(0x18c)]();},async 'execute'(_0x323b9d){const _0x31d47b=a55_0x254de4,_0x54391c=await prepareRuntimeMemberMutation(_0x323b9d,_0x31d47b(0x18b));return _0x54391c['shouldWrite']&&await updateRuntimeRoleUsers(_0x323b9d['appCode'],_0x54391c[_0x31d47b(0x187)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x54391c['role']['id'],'userId':_0x54391c[_0x31d47b(0x18d)]},_0x54391c['before'],_0x54391c[_0x31d47b(0x184)],{'method':'POST','path':_0x31d47b(0x198)},_0x54391c[_0x31d47b(0x185)])};}};
1
+ function a56_0x5f23(){const _0x238f16=['27900158fWLAtp','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','1717080BHyDeX','warnings','role','appCode','3228112cdyarg','shouldWrite','POST','before','1337472qpHgzF','16dBjTsQ','/client/permit/user-role/update-user-list','high-risk-write','build','4017600dgNUtI','after','277990denQAF','6NICDAS','5FiwWnQ','body','roleList','10AWxYME','description','user-add','7373765msoJdP'];a56_0x5f23=function(){return _0x238f16;};return a56_0x5f23();}const a56_0x45667a=a56_0x1908;(function(_0x44daae,_0x5ed336){const _0x990033=a56_0x1908,_0x8814f1=_0x44daae();while(!![]){try{const _0xe0acb1=parseInt(_0x990033(0xaa))/0x1*(parseInt(_0x990033(0xab))/0x2)+-parseInt(_0x990033(0x9b))/0x3+-parseInt(_0x990033(0x9f))/0x4*(parseInt(_0x990033(0xac))/0x5)+-parseInt(_0x990033(0xa8))/0x6+-parseInt(_0x990033(0x97))/0x7+-parseInt(_0x990033(0xa4))/0x8*(-parseInt(_0x990033(0xa3))/0x9)+parseInt(_0x990033(0x94))/0xa*(parseInt(_0x990033(0x98))/0xb);if(_0xe0acb1===_0x5ed336)break;else _0x8814f1['push'](_0x8814f1['shift']());}catch(_0xf73644){_0x8814f1['push'](_0x8814f1['shift']());}}}(a56_0x5f23,0x89fbd));function a56_0x1908(_0x3a8805,_0x521ffd){_0x3a8805=_0x3a8805-0x94;const _0x5f23cd=a56_0x5f23();let _0x190872=_0x5f23cd[_0x3a8805];return _0x190872;}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_0x45667a(0x9d),'command':a56_0x45667a(0x96),'description':a56_0x45667a(0x9a),'risk':a56_0x45667a(0xa6),'confirmationDescription':a56_0x45667a(0x99),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x522a66){const _0x18ad16=a56_0x45667a,_0x59c597=await prepareRuntimeMemberMutation(_0x522a66,_0x18ad16(0x96));return dryRun('POST',_0x18ad16(0xa5))[_0x18ad16(0xad)]({'appCode':_0x522a66[_0x18ad16(0x9e)],'roleList':_0x59c597[_0x18ad16(0xae)]})[_0x18ad16(0x95)](_0x59c597[_0x18ad16(0xa0)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x59c597[_0x18ad16(0x9c)][0x0])[_0x18ad16(0xa7)]();},async 'execute'(_0x528c2a){const _0x15daac=a56_0x45667a,_0x3b3e96=await prepareRuntimeMemberMutation(_0x528c2a,_0x15daac(0x96));return _0x3b3e96[_0x15daac(0xa0)]&&await updateRuntimeRoleUsers(_0x528c2a[_0x15daac(0x9e)],_0x3b3e96[_0x15daac(0xae)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x15daac(0x96),{'roleId':_0x3b3e96[_0x15daac(0x9d)]['id'],'userId':_0x3b3e96['userId']},_0x3b3e96[_0x15daac(0xa2)],_0x3b3e96[_0x15daac(0xa9)],{'method':_0x15daac(0xa1),'path':_0x15daac(0xa5)},_0x3b3e96[_0x15daac(0x9c)])};}};
@@ -1 +1 @@
1
- const a56_0x326184=a56_0x1b40;(function(_0x5979bb,_0x203d3e){const _0x1c87e4=a56_0x1b40,_0x47ae09=_0x5979bb();while(!![]){try{const _0x53b6b6=-parseInt(_0x1c87e4(0x1ea))/0x1*(-parseInt(_0x1c87e4(0x1f3))/0x2)+parseInt(_0x1c87e4(0x1f9))/0x3+-parseInt(_0x1c87e4(0x1fb))/0x4*(-parseInt(_0x1c87e4(0x1ff))/0x5)+parseInt(_0x1c87e4(0x1f2))/0x6*(-parseInt(_0x1c87e4(0x1fa))/0x7)+-parseInt(_0x1c87e4(0x1f7))/0x8+parseInt(_0x1c87e4(0x1fd))/0x9+-parseInt(_0x1c87e4(0x1f4))/0xa;if(_0x53b6b6===_0x203d3e)break;else _0x47ae09['push'](_0x47ae09['shift']());}catch(_0x3d6b68){_0x47ae09['push'](_0x47ae09['shift']());}}}(a56_0x37dc,0xa8036));function a56_0x37dc(){const _0x5823ef=['high-risk-write','roleList','102798fjmPOd','1475742ssGDNk','10400490tzvsOz','Preview:\x20remove\x20runtime\x20role\x20member','after','666152aNLtXB','user-remove','1323147IAFWgY','301uJrTiE','4RbMjox','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','3771153heBWCa','shouldWrite','4751410rYtKXB','把指定运行用户移出目标角色;该用户将失去仅由该角色授予的运行权限。','warnings','1wLiLsu','POST','build','/client/permit/user-role/update-user-list','role','userId'];a56_0x37dc=function(){return _0x5823ef;};return a56_0x37dc();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a56_0x1b40(_0xb96dab,_0x222e1f){_0xb96dab=_0xb96dab-0x1ea;const _0x37dc7d=a56_0x37dc();let _0x1b4088=_0x37dc7d[_0xb96dab];return _0x1b4088;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':'role','command':'user-remove','description':a56_0x326184(0x1fc),'risk':a56_0x326184(0x1f0),'confirmationDescription':a56_0x326184(0x200),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x45e047){const _0x3bd2b0=a56_0x326184,_0x14cd0f=await prepareRuntimeMemberMutation(_0x45e047,_0x3bd2b0(0x1f8));return dryRun(_0x3bd2b0(0x1eb),'/client/permit/user-role/update-user-list')['body']({'appCode':_0x45e047['appCode'],'roleList':_0x14cd0f[_0x3bd2b0(0x1f1)]})['description'](_0x14cd0f[_0x3bd2b0(0x1fe)]?_0x3bd2b0(0x1f5):_0x14cd0f[_0x3bd2b0(0x201)][0x0])[_0x3bd2b0(0x1ec)]();},async 'execute'(_0x8f7b37){const _0x35a44b=a56_0x326184,_0x859d7c=await prepareRuntimeMemberMutation(_0x8f7b37,_0x35a44b(0x1f8));return _0x859d7c['shouldWrite']&&await updateRuntimeRoleUsers(_0x8f7b37['appCode'],_0x859d7c[_0x35a44b(0x1f1)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x35a44b(0x1f8),{'roleId':_0x859d7c[_0x35a44b(0x1ee)]['id'],'userId':_0x859d7c[_0x35a44b(0x1ef)]},_0x859d7c['before'],_0x859d7c[_0x35a44b(0x1f6)],{'method':'POST','path':_0x35a44b(0x1ed)},_0x859d7c[_0x35a44b(0x201)])};}};
1
+ const a57_0x36df7f=a57_0x1069;(function(_0x5a9bf7,_0x2fd9c3){const _0x3e7987=a57_0x1069,_0x39b25c=_0x5a9bf7();while(!![]){try{const _0xcd85f9=parseInt(_0x3e7987(0x168))/0x1+-parseInt(_0x3e7987(0x17d))/0x2+parseInt(_0x3e7987(0x176))/0x3+parseInt(_0x3e7987(0x17c))/0x4+parseInt(_0x3e7987(0x175))/0x5*(-parseInt(_0x3e7987(0x165))/0x6)+-parseInt(_0x3e7987(0x167))/0x7*(-parseInt(_0x3e7987(0x17b))/0x8)+parseInt(_0x3e7987(0x16e))/0x9;if(_0xcd85f9===_0x2fd9c3)break;else _0x39b25c['push'](_0x39b25c['shift']());}catch(_0x1ccd7a){_0x39b25c['push'](_0x39b25c['shift']());}}}(a57_0x46d4,0x40e78));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x1069(_0x3f02f9,_0x3ffa97){_0x3f02f9=_0x3f02f9-0x165;const _0x46d465=a57_0x46d4();let _0x1069f8=_0x46d465[_0x3f02f9];return _0x1069f8;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a57_0x46d4(){const _0x1023ae=['656224PIKFhN','606420CVeBHc','role','7bBgWhN','111814clsrBx','appCode','body','after','before','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','531171iGEdQM','user-remove','shouldWrite','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','userId','POST','warnings','10tExpVG','872319HaAqFW','/client/permit/user-role/update-user-list','high-risk-write','roleList','Preview:\x20remove\x20runtime\x20role\x20member','939152zpFKCW','868400jAFYEI'];a57_0x46d4=function(){return _0x1023ae;};return a57_0x46d4();}export const roleUserRemove={'service':a57_0x36df7f(0x166),'command':'user-remove','description':a57_0x36df7f(0x16d),'risk':a57_0x36df7f(0x178),'confirmationDescription':a57_0x36df7f(0x171),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x18c248){const _0xc5aa0c=a57_0x36df7f,_0x17c2c2=await prepareRuntimeMemberMutation(_0x18c248,_0xc5aa0c(0x16f));return dryRun(_0xc5aa0c(0x173),_0xc5aa0c(0x177))[_0xc5aa0c(0x16a)]({'appCode':_0x18c248[_0xc5aa0c(0x169)],'roleList':_0x17c2c2[_0xc5aa0c(0x179)]})['description'](_0x17c2c2[_0xc5aa0c(0x170)]?_0xc5aa0c(0x17a):_0x17c2c2[_0xc5aa0c(0x174)][0x0])['build']();},async 'execute'(_0x3c876d){const _0x5a4e18=a57_0x36df7f,_0x4db0fe=await prepareRuntimeMemberMutation(_0x3c876d,'user-remove');return _0x4db0fe['shouldWrite']&&await updateRuntimeRoleUsers(_0x3c876d[_0x5a4e18(0x169)],_0x4db0fe[_0x5a4e18(0x179)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5a4e18(0x16f),{'roleId':_0x4db0fe[_0x5a4e18(0x166)]['id'],'userId':_0x4db0fe[_0x5a4e18(0x172)]},_0x4db0fe[_0x5a4e18(0x16c)],_0x4db0fe[_0x5a4e18(0x16b)],{'method':_0x5a4e18(0x173),'path':_0x5a4e18(0x177)},_0x4db0fe[_0x5a4e18(0x174)])};}};
@@ -1 +1 @@
1
- const a57_0x5db85d=a57_0x5182;(function(_0x4922ef,_0x2cb4d1){const _0x1e9d14=a57_0x5182,_0x116bc4=_0x4922ef();while(!![]){try{const _0x91b45=parseInt(_0x1e9d14(0x10d))/0x1+parseInt(_0x1e9d14(0x101))/0x2*(-parseInt(_0x1e9d14(0x136))/0x3)+-parseInt(_0x1e9d14(0x131))/0x4*(-parseInt(_0x1e9d14(0x10a))/0x5)+parseInt(_0x1e9d14(0x122))/0x6+-parseInt(_0x1e9d14(0x108))/0x7+-parseInt(_0x1e9d14(0x138))/0x8+parseInt(_0x1e9d14(0xf7))/0x9;if(_0x91b45===_0x2cb4d1)break;else _0x116bc4['push'](_0x116bc4['shift']());}catch(_0x36eb04){_0x116bc4['push'](_0x116bc4['shift']());}}}(a57_0x1a05,0x74e34));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x5182(_0x5d67e2,_0x1838ed){_0x5d67e2=_0x5d67e2-0xee;const _0x1a05dc=a57_0x1a05();let _0x5182ce=_0x1a05dc[_0x5d67e2];return _0x5182ce;}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':a57_0x5db85d(0xfe),'type':'string','required':!![],'enum':[a57_0x5db85d(0x126),'ONCE'],'description':a57_0x5db85d(0x129)},CRON_FLAG={'name':'cron','type':a57_0x5db85d(0x11e),'description':a57_0x5db85d(0x128)},SCHEDULED_AT_FLAG={'name':a57_0x5db85d(0x11a),'type':a57_0x5db85d(0x11e),'description':a57_0x5db85d(0x12f)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a57_0x5db85d(0x11e),'required':!![],'description':a57_0x5db85d(0x12c)},MODEL_FLAG={'name':a57_0x5db85d(0x10c),'type':a57_0x5db85d(0x11e),'enum':[a57_0x5db85d(0x120),a57_0x5db85d(0x127),a57_0x5db85d(0xfd)],'default':a57_0x5db85d(0x127),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a57_0x5db85d(0x10e),'type':a57_0x5db85d(0x11e),'required':!![],'description':a57_0x5db85d(0x116),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0x5db85d(0x113)}},LIMIT_FLAG={'name':'limit','type':a57_0x5db85d(0x133),'default':0x14,'description':a57_0x5db85d(0xf0)},CURSOR_FLAG={'name':a57_0x5db85d(0x130),'type':a57_0x5db85d(0x11e),'description':a57_0x5db85d(0x111)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x2f095f){const _0x296744=a57_0x5db85d,_0x38b6cc=_0x2f095f[_0x296744(0xff)](_0x296744(0xfe)),_0x5ae793=_0x2f095f[_0x296744(0xff)](_0x296744(0xf4))[_0x296744(0xf6)](),_0x2bcc44=_0x2f095f[_0x296744(0xff)](_0x296744(0x103))[_0x296744(0xf6)](),_0x2881e6=_0x2f095f[_0x296744(0xff)]('model'),_0x216f8b=_0x2f095f['str'](_0x296744(0x125)),_0x4ff7fb=_0x2f095f[_0x296744(0xff)](_0x296744(0x11a));if(!_0x5ae793)throw CliErrors['validation']('--title\x20must\x20not\x20be\x20blank.');if(!_0x2bcc44)throw CliErrors[_0x296744(0xfc)](_0x296744(0x11d));if(_0x38b6cc===_0x296744(0x126)){if(!_0x216f8b||_0x4ff7fb)throw CliErrors[_0x296744(0xfc)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x38b6cc,'timezone':_0x296744(0x121),'cron':_0x216f8b,'title':_0x5ae793,'prompt':_0x2bcc44,'model':_0x2881e6};}if(_0x38b6cc==='ONCE'){if(!_0x4ff7fb||_0x216f8b)throw CliErrors[_0x296744(0xfc)](_0x296744(0xf2));return{'kind':_0x38b6cc,'timezone':_0x296744(0x121),'scheduledAt':_0x4ff7fb,'title':_0x5ae793,'prompt':_0x2bcc44,'model':_0x2881e6};}throw CliErrors[_0x296744(0xfc)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x39352d){const _0x1d80c6=a57_0x5db85d;return _0x1d80c6(0x118)+encodeURIComponent(_0x39352d)+_0x1d80c6(0x107);}function a57_0x1a05(){const _0x2a95f1=['325923XEYusk','schedule-id','description','/run','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','POST','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Show\x20one\x20schedule\x20by\x20schedule\x20ID','detail','Schedule\x20UUID','scheduleId','/api/harness/apps/','build','scheduled-at','list','\x20immediately','--prompt\x20must\x20not\x20be\x20blank.','string','Deleted\x20schedule\x20','kimi/k3','UTC','1759740ubGPJU','validate','appCode','cron','CRON','deepseek-v4-flash-0731','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Schedule\x20kind:\x20CRON\x20or\x20ONCE','创建周期性或单次执行的\x20Agent\x20定时任务','read','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','limit','schedule','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','cursor','42644pSwpMv','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','number','Schedule\x20input\x20is\x20valid','Preview:\x20run\x20schedule\x20','14190FqlNsw','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','6305120IySmhB','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','taskId','Page\x20size\x20from\x201\x20to\x20100','Queued\x20Task\x20','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','high-risk-write','title','\x20schedule\x20','trim','11365839ZxUERj','body','run','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','删除定时任务并停止其后续触发','validation','deepseek-v4-pro-0813','kind','str','num','16tYzLKw','length','prompt','DELETE','isSafeInteger','Created\x20','/schedules','4414459dKbiBv','立即运行一次定时任务并创建\x20Task','25JFSEiU','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','model'];a57_0x1a05=function(){return _0x2a95f1;};return a57_0x1a05();}function scheduleItemPath(_0x5d6551,_0x1f6c2b){return scheduleCollectionPath(_0x5d6551)+'/'+encodeURIComponent(_0x1f6c2b);}const scheduleValidate={'service':'schedule','command':a57_0x5db85d(0x123),'description':a57_0x5db85d(0x10b),'risk':a57_0x5db85d(0x12b),'flags':INPUT_FLAGS,async 'validate'(_0x52f4d4){readScheduleInput(_0x52f4d4);},async 'execute'(_0x4bd127){const _0xc2fa8c=a57_0x5db85d,_0x3e7c71=readScheduleInput(_0x4bd127),_0x3d2c16=await validateRuntimeSchedule(_0x4bd127[_0xc2fa8c(0x124)],_0x3e7c71);return{'ok':!![],'data':_0x3d2c16,'message':_0xc2fa8c(0x134)};}},scheduleCreate={'service':a57_0x5db85d(0x12e),'command':'create','description':a57_0x5db85d(0x12a),'risk':a57_0x5db85d(0xf3),'confirmationDescription':a57_0x5db85d(0x137),'flags':INPUT_FLAGS,async 'validate'(_0x40fbac){readScheduleInput(_0x40fbac);},async 'execute'(_0x3d0c65){const _0x5e01cc=a57_0x5db85d,_0x5d023c=readScheduleInput(_0x3d0c65),_0x22587a=await validateRuntimeSchedule(_0x3d0c65['appCode'],_0x5d023c),_0x55f40d=await createRuntimeSchedule(_0x3d0c65[_0x5e01cc(0x124)],_0x22587a);return{'ok':!![],'data':_0x55f40d,'message':_0x5e01cc(0x106)+_0x55f40d[_0x5e01cc(0xfe)]+_0x5e01cc(0xf5)+_0x55f40d[_0x5e01cc(0x117)]};},async 'dryRun'(_0xb75378){const _0x3ec375=a57_0x5db85d,_0x3cb001=readScheduleInput(_0xb75378);return dryRun(_0x3ec375(0x112),scheduleCollectionPath(_0xb75378[_0x3ec375(0x124)]))[_0x3ec375(0xf8)](_0x3cb001)[_0x3ec375(0x10f)]('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x3ec375(0x119)]();}},scheduleList={'service':'schedule','command':a57_0x5db85d(0x11b),'description':a57_0x5db85d(0x132),'risk':a57_0x5db85d(0x12b),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3ccbf1){const _0x47f599=a57_0x5db85d,_0x5c392c=_0x3ccbf1[_0x47f599(0x100)](_0x47f599(0x12d));if(!Number[_0x47f599(0x105)](_0x5c392c)||_0x5c392c<0x1||_0x5c392c>0x64)throw CliErrors[_0x47f599(0xfc)](_0x47f599(0xfa));const _0x20de90=_0x3ccbf1[_0x47f599(0xff)]('cursor');if(_0x20de90&&(_0x20de90[_0x47f599(0x102)]>0x400||_0x20de90[_0x47f599(0xf6)]()!==_0x20de90))throw CliErrors[_0x47f599(0xfc)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x3726b6){const _0x18f163=a57_0x5db85d,_0x53c988=_0x3726b6[_0x18f163(0xff)](_0x18f163(0x130)),_0x2f4987=await listRuntimeSchedules(_0x3726b6[_0x18f163(0x124)],{'kind':_0x3726b6['str'](_0x18f163(0xfe)),'limit':_0x3726b6[_0x18f163(0x100)](_0x18f163(0x12d)),..._0x53c988?{'cursor':_0x53c988}:{}});return{'ok':!![],'data':_0x2f4987};}},scheduleDetail={'service':a57_0x5db85d(0x12e),'command':a57_0x5db85d(0x115),'description':a57_0x5db85d(0x114),'risk':a57_0x5db85d(0x12b),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xb67334){const _0x22ce8c=a57_0x5db85d,_0x34a7cd=await getRuntimeSchedule(_0xb67334[_0x22ce8c(0x124)],_0xb67334[_0x22ce8c(0xff)](_0x22ce8c(0x10e)));return{'ok':!![],'data':_0x34a7cd};}},scheduleRun={'service':a57_0x5db85d(0x12e),'command':a57_0x5db85d(0xf9),'description':a57_0x5db85d(0x109),'risk':'high-risk-write','confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x41d078){const _0x566f42=a57_0x5db85d,_0x27df20=_0x41d078[_0x566f42(0xff)]('schedule-id'),_0x48ec8f=await runRuntimeSchedule(_0x41d078[_0x566f42(0x124)],_0x27df20);return{'ok':!![],'data':_0x48ec8f,'message':_0x566f42(0xf1)+_0x48ec8f[_0x566f42(0xef)]+'\x20from\x20schedule\x20'+_0x27df20};},async 'dryRun'(_0x4ce664){const _0x573e80=a57_0x5db85d,_0x49f696=_0x4ce664[_0x573e80(0xff)](_0x573e80(0x10e));return dryRun(_0x573e80(0x112),scheduleItemPath(_0x4ce664[_0x573e80(0x124)],_0x49f696)+_0x573e80(0x110))['description'](_0x573e80(0x135)+_0x49f696+_0x573e80(0x11c))[_0x573e80(0x119)]();}},scheduleDelete={'service':a57_0x5db85d(0x12e),'command':'delete','description':a57_0x5db85d(0xfb),'risk':a57_0x5db85d(0xf3),'confirmationDescription':a57_0x5db85d(0xee),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1ab890){const _0x8c2ff0=a57_0x5db85d,_0x12b31e=_0x1ab890['str']('schedule-id'),_0x1f61ee=await deleteRuntimeSchedule(_0x1ab890['appCode'],_0x12b31e);return{'ok':!![],'data':_0x1f61ee,'message':_0x8c2ff0(0x11f)+_0x12b31e};},async 'dryRun'(_0x3cf9b4){const _0x3e8fe9=a57_0x5db85d,_0x717fed=_0x3cf9b4[_0x3e8fe9(0xff)](_0x3e8fe9(0x10e));return dryRun(_0x3e8fe9(0x104),scheduleItemPath(_0x3cf9b4[_0x3e8fe9(0x124)],_0x717fed))['description']('Preview:\x20delete\x20schedule\x20'+_0x717fed)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0x156875=a58_0x5ea1;(function(_0x58751d,_0x588590){const _0x527898=a58_0x5ea1,_0x435864=_0x58751d();while(!![]){try{const _0x5fe50b=-parseInt(_0x527898(0xdd))/0x1+parseInt(_0x527898(0x105))/0x2*(-parseInt(_0x527898(0xd1))/0x3)+parseInt(_0x527898(0xca))/0x4*(-parseInt(_0x527898(0xcc))/0x5)+-parseInt(_0x527898(0x100))/0x6*(parseInt(_0x527898(0xe5))/0x7)+parseInt(_0x527898(0xed))/0x8*(parseInt(_0x527898(0xf1))/0x9)+-parseInt(_0x527898(0x10b))/0xa+parseInt(_0x527898(0xce))/0xb*(parseInt(_0x527898(0xe6))/0xc);if(_0x5fe50b===_0x588590)break;else _0x435864['push'](_0x435864['shift']());}catch(_0x5e3705){_0x435864['push'](_0x435864['shift']());}}}(a58_0xb2c6,0x51301));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';function a58_0x5ea1(_0x51e2f5,_0x4c5632){_0x51e2f5=_0x51e2f5-0xca;const _0xb2c6ff=a58_0xb2c6();let _0x5ea13f=_0xb2c6ff[_0x51e2f5];return _0x5ea13f;}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_0x156875(0xfb),'type':'string','required':!![],'enum':[a58_0x156875(0x10a),a58_0x156875(0xf6)],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':'cron','type':'string','description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x156875(0x109),'type':'string','description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x156875(0xdb),'type':a58_0x156875(0x10c),'required':!![],'description':a58_0x156875(0xd9)},PROMPT_FLAG={'name':a58_0x156875(0xfe),'type':a58_0x156875(0x10c),'required':!![],'description':a58_0x156875(0xef)},MODEL_FLAG={'name':a58_0x156875(0xcd),'type':a58_0x156875(0x10c),'enum':[a58_0x156875(0xd8),'deepseek-v4-flash-0731','deepseek-v4-pro-0813'],'default':a58_0x156875(0xee),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a58_0x156875(0xcf),'type':a58_0x156875(0x10c),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a58_0x156875(0xe4),'type':a58_0x156875(0xd5),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':'cursor','type':a58_0x156875(0x10c),'description':a58_0x156875(0xf5)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x4c12dc){const _0x59fd10=a58_0x156875,_0x330117=_0x4c12dc['str']('kind'),_0x47a8c0=_0x4c12dc[_0x59fd10(0xd0)]('title')[_0x59fd10(0xf0)](),_0x5d221b=_0x4c12dc['str']('prompt')[_0x59fd10(0xf0)](),_0x404f8f=_0x4c12dc[_0x59fd10(0xd0)]('model'),_0xf929a=_0x4c12dc[_0x59fd10(0xd0)](_0x59fd10(0xd2)),_0xe420f6=_0x4c12dc[_0x59fd10(0xd0)]('scheduled-at');if(!_0x47a8c0)throw CliErrors['validation'](_0x59fd10(0xd6));if(!_0x5d221b)throw CliErrors['validation'](_0x59fd10(0xfc));if(_0x330117===_0x59fd10(0x10a)){if(!_0xf929a||_0xe420f6)throw CliErrors[_0x59fd10(0xf9)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x330117,'timezone':'UTC','cron':_0xf929a,'title':_0x47a8c0,'prompt':_0x5d221b,'model':_0x404f8f};}if(_0x330117===_0x59fd10(0xf6)){if(!_0xe420f6||_0xf929a)throw CliErrors[_0x59fd10(0xf9)](_0x59fd10(0xfa));return{'kind':_0x330117,'timezone':_0x59fd10(0x108),'scheduledAt':_0xe420f6,'title':_0x47a8c0,'prompt':_0x5d221b,'model':_0x404f8f};}throw CliErrors[_0x59fd10(0xf9)](_0x59fd10(0x103));}function scheduleCollectionPath(_0x31ab51){const _0x416a16=a58_0x156875;return _0x416a16(0xe1)+encodeURIComponent(_0x31ab51)+_0x416a16(0xcb);}function scheduleItemPath(_0x653916,_0xb7052b){return scheduleCollectionPath(_0x653916)+'/'+encodeURIComponent(_0xb7052b);}const scheduleValidate={'service':a58_0x156875(0xda),'command':a58_0x156875(0xea),'description':a58_0x156875(0x106),'risk':a58_0x156875(0xeb),'flags':INPUT_FLAGS,async 'validate'(_0x250674){readScheduleInput(_0x250674);},async 'execute'(_0xc8dc63){const _0x330c0a=a58_0x156875,_0x2c5164=readScheduleInput(_0xc8dc63),_0x3b8ebc=await validateRuntimeSchedule(_0xc8dc63[_0x330c0a(0xfd)],_0x2c5164);return{'ok':!![],'data':_0x3b8ebc,'message':_0x330c0a(0x10d)};}},scheduleCreate={'service':a58_0x156875(0xda),'command':'create','description':a58_0x156875(0x10f),'risk':a58_0x156875(0xf7),'confirmationDescription':a58_0x156875(0xf4),'flags':INPUT_FLAGS,async 'validate'(_0x1e98f5){readScheduleInput(_0x1e98f5);},async 'execute'(_0x5ebad6){const _0x215a0f=a58_0x156875,_0x5a5e21=readScheduleInput(_0x5ebad6),_0x3078d8=await validateRuntimeSchedule(_0x5ebad6[_0x215a0f(0xfd)],_0x5a5e21),_0x24759c=await createRuntimeSchedule(_0x5ebad6[_0x215a0f(0xfd)],_0x3078d8);return{'ok':!![],'data':_0x24759c,'message':_0x215a0f(0x10e)+_0x24759c[_0x215a0f(0xfb)]+'\x20schedule\x20'+_0x24759c['scheduleId']};},async 'dryRun'(_0x44fca3){const _0x1ffacd=a58_0x156875,_0x365fd2=readScheduleInput(_0x44fca3);return dryRun('POST',scheduleCollectionPath(_0x44fca3['appCode']))[_0x1ffacd(0xdc)](_0x365fd2)['description'](_0x1ffacd(0x101))[_0x1ffacd(0xe3)]();}},scheduleList={'service':a58_0x156875(0xda),'command':a58_0x156875(0xdf),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a58_0x156875(0xeb),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x5933a9){const _0x4f8736=a58_0x156875,_0x2b584c=_0x5933a9[_0x4f8736(0x107)](_0x4f8736(0xe4));if(!Number[_0x4f8736(0xf3)](_0x2b584c)||_0x2b584c<0x1||_0x2b584c>0x64)throw CliErrors[_0x4f8736(0xf9)](_0x4f8736(0xe9));const _0x369acd=_0x5933a9[_0x4f8736(0xd0)]('cursor');if(_0x369acd&&(_0x369acd[_0x4f8736(0x102)]>0x400||_0x369acd[_0x4f8736(0xf0)]()!==_0x369acd))throw CliErrors[_0x4f8736(0xf9)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x1e6f4d){const _0x2ea725=a58_0x156875,_0x4c2907=_0x1e6f4d[_0x2ea725(0xd0)](_0x2ea725(0xe7)),_0x6338a9=await listRuntimeSchedules(_0x1e6f4d[_0x2ea725(0xfd)],{'kind':_0x1e6f4d[_0x2ea725(0xd0)](_0x2ea725(0xfb)),'limit':_0x1e6f4d['num'](_0x2ea725(0xe4)),..._0x4c2907?{'cursor':_0x4c2907}:{}});return{'ok':!![],'data':_0x6338a9};}},scheduleDetail={'service':a58_0x156875(0xda),'command':a58_0x156875(0xe8),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x37cd8a){const _0x50e3c0=a58_0x156875,_0x3ecefd=await getRuntimeSchedule(_0x37cd8a[_0x50e3c0(0xfd)],_0x37cd8a[_0x50e3c0(0xd0)]('schedule-id'));return{'ok':!![],'data':_0x3ecefd};}},scheduleRun={'service':a58_0x156875(0xda),'command':'run','description':a58_0x156875(0xe2),'risk':a58_0x156875(0xf7),'confirmationDescription':a58_0x156875(0xff),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x9dd6cd){const _0x42f840=a58_0x156875,_0xb37915=_0x9dd6cd[_0x42f840(0xd0)]('schedule-id'),_0x2c132e=await runRuntimeSchedule(_0x9dd6cd[_0x42f840(0xfd)],_0xb37915);return{'ok':!![],'data':_0x2c132e,'message':'Queued\x20Task\x20'+_0x2c132e['taskId']+_0x42f840(0xd4)+_0xb37915};},async 'dryRun'(_0x1da7c2){const _0x136335=a58_0x156875,_0x47b1f6=_0x1da7c2[_0x136335(0xd0)](_0x136335(0xcf));return dryRun('POST',scheduleItemPath(_0x1da7c2[_0x136335(0xfd)],_0x47b1f6)+'/run')['description'](_0x136335(0xf2)+_0x47b1f6+_0x136335(0x104))[_0x136335(0xe3)]();}},scheduleDelete={'service':a58_0x156875(0xda),'command':a58_0x156875(0xd7),'description':a58_0x156875(0xde),'risk':a58_0x156875(0xf7),'confirmationDescription':a58_0x156875(0xd3),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x13d3a1){const _0x5c1558=a58_0x156875,_0x403b30=_0x13d3a1[_0x5c1558(0xd0)](_0x5c1558(0xcf)),_0x2bb553=await deleteRuntimeSchedule(_0x13d3a1[_0x5c1558(0xfd)],_0x403b30);return{'ok':!![],'data':_0x2bb553,'message':_0x5c1558(0xf8)+_0x403b30};},async 'dryRun'(_0x2e5b68){const _0x1b6b54=a58_0x156875,_0x322466=_0x2e5b68[_0x1b6b54(0xd0)](_0x1b6b54(0xcf));return dryRun('DELETE',scheduleItemPath(_0x2e5b68['appCode'],_0x322466))[_0x1b6b54(0xec)](_0x1b6b54(0xe0)+_0x322466)[_0x1b6b54(0xe3)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];function a58_0xb2c6(){const _0x35e7ec=['Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','409196WHiozo','/schedules','10eNWnDj','model','44lMjizm','schedule-id','str','2022BfAFEB','cron','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','\x20from\x20schedule\x20','number','--title\x20must\x20not\x20be\x20blank.','delete','kimi/k3','Schedule\x20title','schedule','title','body','470792dMjeKz','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','list','Preview:\x20delete\x20schedule\x20','/api/harness/apps/','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','build','limit','128191qiKNrC','3283704xhsJUV','cursor','detail','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','validate','read','description','1140848bLAeFr','deepseek-v4-flash-0731','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','trim','36XKnXdJ','Preview:\x20run\x20schedule\x20','isSafeInteger','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','ONCE','high-risk-write','Deleted\x20schedule\x20','validation','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','kind','--prompt\x20must\x20not\x20be\x20blank.','appCode','prompt','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','102cGxXph','Preview:\x20create\x20an\x20Agent\x20schedule','length','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','\x20immediately','106UVRNtK','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','num','UTC','scheduled-at','CRON','3100140TIaUbf','string','Schedule\x20input\x20is\x20valid','Created\x20'];a58_0xb2c6=function(){return _0x35e7ec;};return a58_0xb2c6();}
@@ -1 +1 @@
1
- const a58_0x13d54e=a58_0x565d;function a58_0x14ea(){const _0x1fb1cb=['Export\x20machine-readable\x20command\x20schema\x20(JSON)','10xCjquJ','196648JAbxuN','4ZEHlou','243EhXUSu','9sHLbaf','212997DSmkVO','read','2164371YsLAjt','5130279eroxUz','614440jPfbHG','318AHoLBt','schema','72235wqYkSG','15256428DOCvqd'];a58_0x14ea=function(){return _0x1fb1cb;};return a58_0x14ea();}(function(_0x18a62e,_0x401d50){const _0x5d712a=a58_0x565d,_0xe215e=_0x18a62e();while(!![]){try{const _0x1541a8=parseInt(_0x5d712a(0xa6))/0x1*(parseInt(_0x5d712a(0xa3))/0x2)+parseInt(_0x5d712a(0xa5))/0x3*(-parseInt(_0x5d712a(0xaa))/0x4)+parseInt(_0x5d712a(0x9e))/0x5*(parseInt(_0x5d712a(0x9c))/0x6)+-parseInt(_0x5d712a(0xa9))/0x7+parseInt(_0x5d712a(0xa2))/0x8*(-parseInt(_0x5d712a(0xa4))/0x9)+-parseInt(_0x5d712a(0xa1))/0xa*(parseInt(_0x5d712a(0xa8))/0xb)+parseInt(_0x5d712a(0x9f))/0xc;if(_0x1541a8===_0x401d50)break;else _0xe215e['push'](_0xe215e['shift']());}catch(_0x37f26d){_0xe215e['push'](_0xe215e['shift']());}}}(a58_0x14ea,0x63d2f));import{buildSchemaPayload}from'../framework/schema-export.js';function a58_0x565d(_0xbffc09,_0x517638){_0xbffc09=_0xbffc09-0x9c;const _0x14ea7f=a58_0x14ea();let _0x565d20=_0x14ea7f[_0xbffc09];return _0x565d20;}async function execute(_0x32d4e4){const _0x52052e=await buildSchemaPayload();return{'ok':!![],'data':_0x52052e};}export const schemaDefinition={'service':a58_0x13d54e(0x9d),'command':'export','description':a58_0x13d54e(0xa0),'risk':a58_0x13d54e(0xa7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a59_0x317b07=a59_0x331c;(function(_0x5434be,_0x3c5d83){const _0x2d8dd3=a59_0x331c,_0x9ba16f=_0x5434be();while(!![]){try{const _0x3896e=-parseInt(_0x2d8dd3(0x14f))/0x1+-parseInt(_0x2d8dd3(0x153))/0x2*(-parseInt(_0x2d8dd3(0x156))/0x3)+parseInt(_0x2d8dd3(0x151))/0x4+-parseInt(_0x2d8dd3(0x152))/0x5*(-parseInt(_0x2d8dd3(0x14e))/0x6)+-parseInt(_0x2d8dd3(0x150))/0x7+-parseInt(_0x2d8dd3(0x155))/0x8+-parseInt(_0x2d8dd3(0x154))/0x9*(-parseInt(_0x2d8dd3(0x14c))/0xa);if(_0x3896e===_0x3c5d83)break;else _0x9ba16f['push'](_0x9ba16f['shift']());}catch(_0xd01fa9){_0x9ba16f['push'](_0x9ba16f['shift']());}}}(a59_0x1851,0x765bf));import{buildSchemaPayload}from'../framework/schema-export.js';function a59_0x331c(_0x5b32df,_0x2d4236){_0x5b32df=_0x5b32df-0x14c;const _0x185180=a59_0x1851();let _0x331caf=_0x185180[_0x5b32df];return _0x331caf;}function a59_0x1851(){const _0x5da34e=['17401RvNjrQ','5168541litfcO','3184504DIIkTj','1367645NxFYxp','119166FXnGdU','4491DWMNWh','997616umlsbf','3wkqkBI','schema','4730IpoPpN','read','6ENjXos'];a59_0x1851=function(){return _0x5da34e;};return a59_0x1851();}async function execute(_0x4231ec){const _0x5e1dbe=await buildSchemaPayload();return{'ok':!![],'data':_0x5e1dbe};}export const schemaDefinition={'service':a59_0x317b07(0x157),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a59_0x317b07(0x14d),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x2f3f95,_0x4415a0){const _0x5f1391=a59_0x5684,_0x3df406=_0x2f3f95();while(!![]){try{const _0x50f23a=-parseInt(_0x5f1391(0x1fd))/0x1*(parseInt(_0x5f1391(0x1dd))/0x2)+-parseInt(_0x5f1391(0x213))/0x3*(-parseInt(_0x5f1391(0x225))/0x4)+-parseInt(_0x5f1391(0x202))/0x5+-parseInt(_0x5f1391(0x1f2))/0x6+parseInt(_0x5f1391(0x201))/0x7+-parseInt(_0x5f1391(0x206))/0x8+-parseInt(_0x5f1391(0x219))/0x9*(-parseInt(_0x5f1391(0x1e2))/0xa);if(_0x50f23a===_0x4415a0)break;else _0x3df406['push'](_0x3df406['shift']());}catch(_0x115430){_0x3df406['push'](_0x3df406['shift']());}}}(a59_0x17cc,0xf19db));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(_0x3ed5ff,_0x592cad){const _0x9061db=a59_0x5684,_0x355d9e=listLocalServiceTrees();let _0x765426;for(const _0xda8e8c of _0x355d9e){const _0x408ac4=matchServiceTreeCommand(_0xda8e8c,_0x3ed5ff);if(!_0x408ac4)continue;(!_0x765426||_0x408ac4[_0x9061db(0x200)][_0x9061db(0x222)][_0x9061db(0x1ef)]>_0x765426['command'][_0x9061db(0x222)][_0x9061db(0x1ef)])&&(_0x765426={'tree':_0xda8e8c,'command':_0x408ac4[_0x9061db(0x200)],'remainingArgs':_0x408ac4['remainingArgs']});}if(!_0x765426)return undefined;const _0x35c1d5={..._0x592cad};return applyAppBinding(_0x765426[_0x9061db(0x20d)],_0x765426[_0x9061db(0x200)],_0x35c1d5),{'definition':buildDynamicCommandDefinition(_0x765426[_0x9061db(0x20d)],_0x765426[_0x9061db(0x200)]),'args':_0x765426[_0x9061db(0x1e0)],'flags':_0x35c1d5,'tree':_0x765426[_0x9061db(0x20d)],'command':_0x765426[_0x9061db(0x200)]};}export function generateDynamicServiceHelp(_0x14dd11){const _0x37015e=a59_0x5684,_0x31b5e0=listLocalServiceTrees()[_0x37015e(0x22a)](_0x45dd04=>_0x45dd04['service'][_0x37015e(0x1fa)]===_0x14dd11);if(!_0x31b5e0)return undefined;const _0x503b1f=[CLI_BIN_NAME+'\x20'+_0x14dd11+_0x37015e(0x233),'',_0x31b5e0[_0x37015e(0x1d7)][_0x37015e(0x1ed)]||_0x14dd11,_0x31b5e0[_0x37015e(0x1d7)]['description']?'\x20\x20'+_0x31b5e0[_0x37015e(0x1d7)]['description']:'','',_0x37015e(0x1e1),..._0x31b5e0['commands']['map'](_0x12e54a=>{const _0x4d8472=_0x37015e,_0x58d9fb=_0x12e54a[_0x4d8472(0x222)][_0x4d8472(0x1f5)](0x1)['join']('\x20'),_0x20d0b0=_0x12e54a['risk']===_0x4d8472(0x21e)?'':'\x20['+_0x12e54a['risk']+']';return'\x20\x20'+_0x58d9fb['padEnd'](0x18)+'\x20'+(_0x12e54a[_0x4d8472(0x21c)]||'')+_0x20d0b0;}),'',_0x37015e(0x207)+CLI_BIN_NAME+_0x37015e(0x1f9)+_0x14dd11+_0x37015e(0x21d)][_0x37015e(0x1ea)](Boolean);return _0x503b1f['join']('\x0a');}export function listDynamicServiceEntries(){const _0x46e408=a59_0x5684;return listLocalServices()[_0x46e408(0x226)](_0x5083d0=>{const _0x2534b3=_0x46e408,_0x1de208=_0x5083d0['normalizedManifest'];return{'service':_0x1de208[_0x2534b3(0x1d7)][_0x2534b3(0x1fa)],'label':_0x1de208['service'][_0x2534b3(0x1ed)]||_0x1de208[_0x2534b3(0x1d7)][_0x2534b3(0x1fa)],'commands':_0x1de208[_0x2534b3(0x218)][_0x2534b3(0x226)](_0xb25149=>({'command':dynamicCommandName(_0xb25149),'description':_0xb25149[_0x2534b3(0x21c)]||'Run\x20service\x20command\x20'+_0xb25149[_0x2534b3(0x212)],'tag':riskTag(_0xb25149[_0x2534b3(0x217)])}))};});}export function getDynamicServiceEntry(_0x44a30b){const _0x5abce5=a59_0x5684;return listDynamicServiceEntries()[_0x5abce5(0x22a)](_0x34479a=>_0x34479a[_0x5abce5(0x1d7)]===_0x44a30b);}export function listDynamicServiceDefinitions(_0x3e5a11){const _0x6fa358=a59_0x5684;return listLocalServiceTrees()[_0x6fa358(0x1ea)](_0x23f893=>!_0x3e5a11||_0x23f893[_0x6fa358(0x1d7)][_0x6fa358(0x1fa)]===_0x3e5a11)[_0x6fa358(0x1ec)](_0x3643fe=>_0x3643fe['commands']['map'](_0x93252=>buildDynamicCommandDefinition(_0x3643fe,_0x93252)));}export function getDynamicServiceDefinitions(_0x552827){const _0x34a032=a59_0x5684,_0x42432a=listDynamicServiceDefinitions(_0x552827);return _0x42432a[_0x34a032(0x1ef)]>0x0?_0x42432a:undefined;}export function findDynamicServiceDefinition(_0x12a8c0,_0x1e339f){const _0x2d438a=a59_0x5684;return listDynamicServiceDefinitions(_0x12a8c0)[_0x2d438a(0x22a)](_0x339d4b=>_0x339d4b[_0x2d438a(0x200)]===_0x1e339f);}export function buildDynamicCommandDefinition(_0x260fd8,_0x36447b){const _0x588551=a59_0x5684;return{'service':_0x260fd8[_0x588551(0x1d7)][_0x588551(0x1fa)],'command':dynamicCommandName(_0x36447b),'description':_0x36447b['description']||_0x588551(0x1da)+_0x36447b[_0x588551(0x212)],'risk':_0x36447b['risk'],..._0x36447b[_0x588551(0x217)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x36447b)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x36447b[_0x588551(0x1e8)][_0x588551(0x226)](_0x46b875=>({'name':_0x46b875[_0x588551(0x1ed)],'description':_0x46b875[_0x588551(0x21c)]||_0x46b875[_0x588551(0x1ed)],'required':_0x46b875[_0x588551(0x205)]})),'flags':_0x36447b[_0x588551(0x1f8)][_0x588551(0x226)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x36447b),async 'dryRun'(_0x59f98c){const _0x567a38=_0x588551,_0x25b066=await compilePlan(_0x36447b,_0x59f98c);return{'method':_0x567a38(0x21b),'url':_0x36447b[_0x567a38(0x212)],'body':{'target':targetPreview(_0x25b066),'params':_0x25b066['params']},'description':_0x567a38(0x1f3)+_0x36447b[_0x567a38(0x212)]};},async 'execute'(_0x493b4a){const _0x467bb6=_0x588551,_0x5ebbd5=await compilePlan(_0x36447b,_0x493b4a),_0x4f751e=Date['now'](),_0x288656=await executePlan(_0x5ebbd5,_0x36447b,_0x493b4a),_0x2ccdd0=Date[_0x467bb6(0x1f0)]()-_0x4f751e;return{'ok':!![],'data':{'service':_0x260fd8[_0x467bb6(0x1d7)],'command':_0x36447b[_0x467bb6(0x212)],'target':targetPreview(_0x5ebbd5),'result':_0x288656,'elapsed':_0x2ccdd0},'message':_0x467bb6(0x231)+_0x36447b[_0x467bb6(0x212)]+_0x467bb6(0x211)+_0x2ccdd0+'ms'};}};}function buildDynamicConfirmationDescription(_0x1818a1){const _0x512ea4=a59_0x5684,_0x5b0a9c=_0x1818a1[_0x512ea4(0x21c)]||_0x1818a1[_0x512ea4(0x212)],_0x5d0a5c=_0x1818a1[_0x512ea4(0x217)]===_0x512ea4(0x1e3)?_0x512ea4(0x1e5):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return'将通过\x20Service\x20Tree\x20执行“'+_0x5b0a9c+'”。'+_0x5d0a5c;}function dynamicCommandName(_0x19d081){const _0x38be40=a59_0x5684;return _0x19d081[_0x38be40(0x222)][_0x38be40(0x1f5)](0x1)[_0x38be40(0x1f6)]('\x20');}function riskTag(_0x1d2e6f){return _0x1d2e6f==='read'?'':'\x20\x20['+_0x1d2e6f+']';}function a59_0x17cc(){const _0x36ed75=['该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','appCode','tenantCode','args','bff','filter','fromEntries','flatMap','name','\x20requires\x20target.sqlCode.','length','now','source','2518326CpEhAe','Preview\x20dynamic\x20service\x20command:\x20','startsWith','slice','join','app','flags','\x20service\x20detail\x20--service\x20','code','env','employeeId','18QOPomE','bffCode','appRef','command','5116496StQROB','3692945bYtvPF','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','envName','required','3694408npYqKF','Use\x20`','string','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','datasetCode','context.','Unknown\x20appRef\x20\x22','tree','Cannot\x20resolve\x20datatable\x20\x22','sqlCode','appcode','\x20completed\x20in\x20','cliPath','6OmCDTr','scriptName','bffId','operator','risk','commands','21267234smcruZ','target','SERVICE_TREE','description','`\x20to\x20inspect\x20the\x20manifest.','read','\x20requires\x20target.functionName.','validation','const','fullPath','kind','rawFlags','425660AgDNJz','map','default','push','\x20\x20MAP\x20TO','find','username','datatable','nickName','params','number','type','Service\x20command\x20','json','\x20<command>\x20[flags]','tableName','service','enum','userName','Run\x20service\x20command\x20','mapTo','data','77446tbWRaU','\x20\x20\x20\x20command:\x20','loginName','remainingArgs','Commands:','10ptYDRg','high-risk-write','\x20\x20\x20\x20sqlCode:\x20'];a59_0x17cc=function(){return _0x36ed75;};return a59_0x17cc();}function flagToCommandFlag(_0x444bc9){const _0x51ce4f=a59_0x5684;return{'name':_0x444bc9['cliName'],'type':_0x444bc9[_0x51ce4f(0x230)]===_0x51ce4f(0x232)?_0x51ce4f(0x208):_0x444bc9[_0x51ce4f(0x230)],'description':_0x444bc9[_0x51ce4f(0x21c)]||_0x444bc9[_0x51ce4f(0x1ed)],'required':_0x444bc9['required'],'default':isPrimitiveFlagDefault(_0x444bc9['default'])?_0x444bc9[_0x51ce4f(0x227)]:undefined,'enum':_0x444bc9[_0x51ce4f(0x1d8)]};}async function compilePlan(_0x3df752,_0x269889){const _0xf1f769=a59_0x5684;return compileServiceTreeCommand(_0x3df752,{'flags':_0x269889[_0xf1f769(0x224)],'args':_0x269889['args'],'context':await buildServiceContext(_0x3df752,_0x269889)});}async function buildServiceContext(_0x22a024,_0x4aa6d6){const _0x389a2f=a59_0x5684,_0x9159c7={'appCode':_0x4aa6d6[_0x389a2f(0x1e6)],'env':_0x4aa6d6[_0x389a2f(0x204)],'envName':_0x4aa6d6[_0x389a2f(0x204)]};if(!usesRuntimeContext(_0x22a024))return _0x9159c7;const _0x2de449=await getLoginUserInfo(),_0x267138=pickFirst(_0x2de449['userId'],_0x2de449['id']);return{..._0x9159c7,'user':_0x2de449,'userId':_0x267138,'id':_0x2de449['id'],'username':pickFirst(_0x2de449[_0x389a2f(0x22b)],_0x2de449[_0x389a2f(0x1d9)],_0x2de449[_0x389a2f(0x1df)]),'userName':_0x2de449[_0x389a2f(0x1d9)],'nickname':pickFirst(_0x2de449['nickname'],_0x2de449['nickName']),'nickName':_0x2de449[_0x389a2f(0x22d)],'tenantCode':_0x2de449[_0x389a2f(0x1e7)],'employeeId':_0x2de449[_0x389a2f(0x1fc)]};}function usesRuntimeContext(_0x5dc573){const _0x2ddbb0=a59_0x5684;return _0x5dc573[_0x2ddbb0(0x1db)]['some'](_0x483f7c=>typeof _0x483f7c['source']==='string'&&(_0x483f7c[_0x2ddbb0(0x1f1)][_0x2ddbb0(0x1f4)](_0x2ddbb0(0x20b))||_0x483f7c[_0x2ddbb0(0x1f1)][_0x2ddbb0(0x1f4)]('ctx.')));}function pickFirst(..._0x32b2fb){const _0x51b9ea=a59_0x5684;return _0x32b2fb[_0x51b9ea(0x22a)](_0x3bffe3=>_0x3bffe3!==undefined&&_0x3bffe3!==null);}async function executePlan(_0x470316,_0x44e279,_0x25d1b2){const _0xb5cd0d=a59_0x5684;if(_0x470316[_0xb5cd0d(0x223)]===_0xb5cd0d(0x1dc)){const _0x4ad92a=await resolveDatasetCode(_0x470316,_0x44e279,_0x25d1b2);return executeData(_0x4ad92a,_0x470316[_0xb5cd0d(0x200)],_0x470316['params']);}if(_0x470316[_0xb5cd0d(0x223)]==='sql'){if(!_0x470316[_0xb5cd0d(0x20f)])throw CliErrors[_0xb5cd0d(0x220)](_0xb5cd0d(0x231)+_0x44e279['cliPath']+_0xb5cd0d(0x1ee));return executeSdkSql(_0x470316['sqlCode'],normalizeScalarParams(_0x470316['params']));}if(_0x470316[_0xb5cd0d(0x223)]===_0xb5cd0d(0x1e9)){const _0x5a2629=_0x470316[_0xb5cd0d(0x214)]||_0x470316['bffCode']||(_0x470316[_0xb5cd0d(0x215)]==null?'':String(_0x470316[_0xb5cd0d(0x215)]));if(!_0x5a2629)throw CliErrors[_0xb5cd0d(0x220)](_0xb5cd0d(0x231)+_0x44e279[_0xb5cd0d(0x212)]+_0xb5cd0d(0x21f));return executeSdkBff(_0x5a2629,_0x470316[_0xb5cd0d(0x22e)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x470316[_0xb5cd0d(0x223)]);}function a59_0x5684(_0x351631,_0x321ad0){_0x351631=_0x351631-0x1d6;const _0x17ccdf=a59_0x17cc();let _0x568436=_0x17ccdf[_0x351631];return _0x568436;}async function resolveDatasetCode(_0x16be0e,_0x1ae009,_0x2cb340){const _0xe92b75=a59_0x5684;if(_0x16be0e[_0xe92b75(0x20a)])return _0x16be0e[_0xe92b75(0x20a)];if(!_0x16be0e[_0xe92b75(0x22c)])throw CliErrors[_0xe92b75(0x220)](_0xe92b75(0x231)+_0x1ae009[_0xe92b75(0x212)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x44782b=await listDatasets(_0x2cb340['appCode']),_0x2636d9=_0x44782b[_0xe92b75(0x22a)](_0x423373=>_0x423373['dbtableConfig']?.[_0xe92b75(0x1d6)]===_0x16be0e[_0xe92b75(0x22c)]);if(!_0x2636d9?.[_0xe92b75(0x1fa)])throw CliErrors[_0xe92b75(0x220)](_0xe92b75(0x20e)+_0x16be0e['datatable']+_0xe92b75(0x209)+_0x2cb340[_0xe92b75(0x1e6)]+'.',_0xe92b75(0x203));return _0x2636d9['code'];}function applyAppBinding(_0x34c944,_0x401953,_0x551f66){const _0x4d15f6=a59_0x5684,_0x221214=_0x401953['target'][_0x4d15f6(0x1ff)];if(!_0x221214)return;const _0x8df6cf=_0x34c944['appBindings'][_0x221214];if(!_0x8df6cf)throw CliErrors[_0x4d15f6(0x220)](_0x4d15f6(0x20c)+_0x221214+'\x22\x20in\x20service\x20command\x20'+_0x401953[_0x4d15f6(0x212)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x257b8d=_0x8df6cf['appcode']||_0x8df6cf['appCode'];_0x257b8d&&!hasText(_0x551f66[_0x4d15f6(0x210)])&&(_0x551f66[_0x4d15f6(0x210)]=_0x257b8d),_0x8df6cf[_0x4d15f6(0x1f7)]&&!hasText(_0x551f66[_0x4d15f6(0x1f7)])&&!hasText(_0x551f66[_0x4d15f6(0x210)])&&(_0x551f66['app']=_0x8df6cf[_0x4d15f6(0x1f7)]),_0x8df6cf[_0x4d15f6(0x1fb)]&&!hasText(_0x551f66[_0x4d15f6(0x1fb)])&&(_0x551f66[_0x4d15f6(0x1fb)]=_0x8df6cf[_0x4d15f6(0x1fb)]);}function renderDynamicCommandHelp(_0x2b4585){const _0x30e670=a59_0x5684,_0x4d9c69=['\x20\x20SERVICE\x20TREE\x20TARGET','\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x2b4585['target'][_0x30e670(0x223)],_0x30e670(0x1de)+_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x200)]];if(_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x20a)])_0x4d9c69['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x2b4585[_0x30e670(0x21a)]['datasetCode']);if(_0x2b4585[_0x30e670(0x21a)]['datatable'])_0x4d9c69[_0x30e670(0x228)]('\x20\x20\x20\x20datatable:\x20'+_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x22c)]);if(_0x2b4585[_0x30e670(0x21a)]['sqlCode'])_0x4d9c69['push'](_0x30e670(0x1e4)+_0x2b4585[_0x30e670(0x21a)]['sqlCode']);if(_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x214)])_0x4d9c69[_0x30e670(0x228)]('\x20\x20\x20\x20functionName:\x20'+_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x214)]);if(_0x2b4585[_0x30e670(0x1db)]['length']>0x0){_0x4d9c69[_0x30e670(0x228)]('',_0x30e670(0x229));for(const _0x2eca1c of _0x2b4585[_0x30e670(0x1db)]){_0x4d9c69['push']('\x20\x20\x20\x20'+(_0x2eca1c[_0x30e670(0x1f1)]||_0x30e670(0x221))+'\x20->\x20'+_0x2eca1c[_0x30e670(0x21a)]+(_0x2eca1c[_0x30e670(0x216)]?'.'+_0x2eca1c[_0x30e670(0x216)]:''));}}return _0x4d9c69[_0x30e670(0x1f6)]('\x0a');}function targetPreview(_0x1b7e0a){const _0x238869=a59_0x5684;return{'kind':_0x1b7e0a[_0x238869(0x223)],'command':_0x1b7e0a['command'],'appRef':_0x1b7e0a[_0x238869(0x1ff)],'datasetCode':_0x1b7e0a[_0x238869(0x20a)],'datatable':_0x1b7e0a[_0x238869(0x22c)],'sqlCode':_0x1b7e0a['sqlCode'],'bffCode':_0x1b7e0a[_0x238869(0x1fe)],'bffId':_0x1b7e0a[_0x238869(0x215)],'functionName':_0x1b7e0a[_0x238869(0x214)]};}function normalizeScalarParams(_0x49f5fd){const _0x57ffb5=a59_0x5684;return Object[_0x57ffb5(0x1eb)](Object['entries'](_0x49f5fd)['filter'](([,_0x5df994])=>typeof _0x5df994==='string'||typeof _0x5df994==='number'));}function hasText(_0x4c6120){const _0x3e21a9=a59_0x5684;return typeof _0x4c6120===_0x3e21a9(0x208)&&_0x4c6120['trim']()[_0x3e21a9(0x1ef)]>0x0;}function isPrimitiveFlagDefault(_0x136e80){const _0x4a0947=a59_0x5684;return _0x136e80===undefined||typeof _0x136e80===_0x4a0947(0x208)||typeof _0x136e80===_0x4a0947(0x22f)||typeof _0x136e80==='boolean';}
1
+ (function(_0x140884,_0x548c64){const _0x12429b=a60_0x3218,_0x5ed051=_0x140884();while(!![]){try{const _0x4ee538=parseInt(_0x12429b(0x17f))/0x1+parseInt(_0x12429b(0x11b))/0x2+parseInt(_0x12429b(0x14f))/0x3+-parseInt(_0x12429b(0x181))/0x4*(-parseInt(_0x12429b(0x146))/0x5)+-parseInt(_0x12429b(0x12c))/0x6+parseInt(_0x12429b(0x15c))/0x7*(parseInt(_0x12429b(0x166))/0x8)+-parseInt(_0x12429b(0x11c))/0x9;if(_0x4ee538===_0x548c64)break;else _0x5ed051['push'](_0x5ed051['shift']());}catch(_0x199b50){_0x5ed051['push'](_0x5ed051['shift']());}}}(a60_0x332b,0xb9163));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';function a60_0x3218(_0x558424,_0x429b98){_0x558424=_0x558424-0x118;const _0x332b5b=a60_0x332b();let _0x3218ba=_0x332b5b[_0x558424];return _0x3218ba;}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(_0x31ade1,_0x46fbee){const _0x5dcb22=a60_0x3218,_0xdcdcaf=listLocalServiceTrees();let _0x53424a;for(const _0x3b2710 of _0xdcdcaf){const _0x59dc22=matchServiceTreeCommand(_0x3b2710,_0x31ade1);if(!_0x59dc22)continue;(!_0x53424a||_0x59dc22['command']['fullPath'][_0x5dcb22(0x134)]>_0x53424a[_0x5dcb22(0x17c)]['fullPath'][_0x5dcb22(0x134)])&&(_0x53424a={'tree':_0x3b2710,'command':_0x59dc22[_0x5dcb22(0x17c)],'remainingArgs':_0x59dc22[_0x5dcb22(0x12a)]});}if(!_0x53424a)return undefined;const _0x4a411a={..._0x46fbee};return applyAppBinding(_0x53424a[_0x5dcb22(0x133)],_0x53424a[_0x5dcb22(0x17c)],_0x4a411a),{'definition':buildDynamicCommandDefinition(_0x53424a['tree'],_0x53424a[_0x5dcb22(0x17c)]),'args':_0x53424a[_0x5dcb22(0x12a)],'flags':_0x4a411a,'tree':_0x53424a[_0x5dcb22(0x133)],'command':_0x53424a[_0x5dcb22(0x17c)]};}export function generateDynamicServiceHelp(_0x45e2d5){const _0x4cee64=a60_0x3218,_0x33c37b=listLocalServiceTrees()[_0x4cee64(0x123)](_0x237a18=>_0x237a18[_0x4cee64(0x12b)][_0x4cee64(0x15f)]===_0x45e2d5);if(!_0x33c37b)return undefined;const _0x48b375=[CLI_BIN_NAME+'\x20'+_0x45e2d5+_0x4cee64(0x16e),'',_0x33c37b[_0x4cee64(0x12b)][_0x4cee64(0x15a)]||_0x45e2d5,_0x33c37b[_0x4cee64(0x12b)]['description']?'\x20\x20'+_0x33c37b[_0x4cee64(0x12b)][_0x4cee64(0x137)]:'','',_0x4cee64(0x165),..._0x33c37b['commands']['map'](_0x42df36=>{const _0x161803=_0x4cee64,_0x52ec81=_0x42df36[_0x161803(0x136)][_0x161803(0x141)](0x1)[_0x161803(0x121)]('\x20'),_0x333fa7=_0x42df36[_0x161803(0x156)]===_0x161803(0x122)?'':'\x20['+_0x42df36[_0x161803(0x156)]+']';return'\x20\x20'+_0x52ec81['padEnd'](0x18)+'\x20'+(_0x42df36[_0x161803(0x137)]||'')+_0x333fa7;}),'',_0x4cee64(0x163)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x45e2d5+_0x4cee64(0x149)][_0x4cee64(0x177)](Boolean);return _0x48b375[_0x4cee64(0x121)]('\x0a');}export function listDynamicServiceEntries(){const _0x3eb399=a60_0x3218;return listLocalServices()[_0x3eb399(0x139)](_0x346369=>{const _0x583cbe=_0x3eb399,_0x29a20e=_0x346369[_0x583cbe(0x16b)];return{'service':_0x29a20e[_0x583cbe(0x12b)][_0x583cbe(0x15f)],'label':_0x29a20e[_0x583cbe(0x12b)][_0x583cbe(0x15a)]||_0x29a20e[_0x583cbe(0x12b)]['code'],'commands':_0x29a20e[_0x583cbe(0x171)][_0x583cbe(0x139)](_0xae6aa5=>({'command':dynamicCommandName(_0xae6aa5),'description':_0xae6aa5[_0x583cbe(0x137)]||_0x583cbe(0x124)+_0xae6aa5[_0x583cbe(0x15b)],'tag':riskTag(_0xae6aa5[_0x583cbe(0x156)])}))};});}export function getDynamicServiceEntry(_0x6f2351){const _0x531b15=a60_0x3218;return listDynamicServiceEntries()[_0x531b15(0x123)](_0x1189f6=>_0x1189f6[_0x531b15(0x12b)]===_0x6f2351);}export function listDynamicServiceDefinitions(_0x2a571d){const _0x3e5452=a60_0x3218;return listLocalServiceTrees()['filter'](_0x349f66=>!_0x2a571d||_0x349f66[_0x3e5452(0x12b)][_0x3e5452(0x15f)]===_0x2a571d)['flatMap'](_0x2424fa=>_0x2424fa[_0x3e5452(0x171)]['map'](_0x5a579b=>buildDynamicCommandDefinition(_0x2424fa,_0x5a579b)));}export function getDynamicServiceDefinitions(_0x315f8f){const _0x589113=a60_0x3218,_0x15cabe=listDynamicServiceDefinitions(_0x315f8f);return _0x15cabe[_0x589113(0x134)]>0x0?_0x15cabe:undefined;}export function findDynamicServiceDefinition(_0x4b395a,_0x3d3baa){const _0x43377d=a60_0x3218;return listDynamicServiceDefinitions(_0x4b395a)['find'](_0x43fe81=>_0x43fe81[_0x43377d(0x17c)]===_0x3d3baa);}export function buildDynamicCommandDefinition(_0x1c3919,_0x57d642){const _0x5d34fc=a60_0x3218;return{'service':_0x1c3919[_0x5d34fc(0x12b)][_0x5d34fc(0x15f)],'command':dynamicCommandName(_0x57d642),'description':_0x57d642[_0x5d34fc(0x137)]||_0x5d34fc(0x124)+_0x57d642[_0x5d34fc(0x15b)],'risk':_0x57d642[_0x5d34fc(0x156)],..._0x57d642[_0x5d34fc(0x156)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x57d642)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x57d642[_0x5d34fc(0x173)][_0x5d34fc(0x139)](_0x24209c=>({'name':_0x24209c['name'],'description':_0x24209c['description']||_0x24209c[_0x5d34fc(0x15a)],'required':_0x24209c[_0x5d34fc(0x145)]})),'flags':_0x57d642[_0x5d34fc(0x148)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x57d642),async 'dryRun'(_0x88ff7a){const _0x1bba47=_0x5d34fc,_0x537069=await compilePlan(_0x57d642,_0x88ff7a);return{'method':_0x1bba47(0x16a),'url':_0x57d642[_0x1bba47(0x15b)],'body':{'target':targetPreview(_0x537069),'params':_0x537069[_0x1bba47(0x17e)]},'description':_0x1bba47(0x160)+_0x57d642[_0x1bba47(0x15b)]};},async 'execute'(_0x14a84a){const _0x18111b=_0x5d34fc,_0x5817d5=await compilePlan(_0x57d642,_0x14a84a),_0x550c4e=Date[_0x18111b(0x168)](),_0x44c54b=await executePlan(_0x5817d5,_0x57d642,_0x14a84a),_0x20fb72=Date[_0x18111b(0x168)]()-_0x550c4e;return{'ok':!![],'data':{'service':_0x1c3919[_0x18111b(0x12b)],'command':_0x57d642[_0x18111b(0x15b)],'target':targetPreview(_0x5817d5),'result':_0x44c54b,'elapsed':_0x20fb72},'message':'Service\x20command\x20'+_0x57d642[_0x18111b(0x15b)]+_0x18111b(0x140)+_0x20fb72+'ms'};}};}function buildDynamicConfirmationDescription(_0x5344ba){const _0x1ccc11=a60_0x3218,_0x57f7c7=_0x5344ba[_0x1ccc11(0x137)]||_0x5344ba[_0x1ccc11(0x15b)],_0x5a73ed=_0x5344ba[_0x1ccc11(0x156)]===_0x1ccc11(0x11f)?_0x1ccc11(0x14d):_0x1ccc11(0x11e);return _0x1ccc11(0x12d)+_0x57f7c7+_0x1ccc11(0x14a)+_0x5a73ed;}function dynamicCommandName(_0x9d4992){const _0x2fbb89=a60_0x3218;return _0x9d4992[_0x2fbb89(0x136)]['slice'](0x1)[_0x2fbb89(0x121)]('\x20');}function riskTag(_0x4fcede){const _0x2837e7=a60_0x3218;return _0x4fcede===_0x2837e7(0x122)?'':'\x20\x20['+_0x4fcede+']';}function flagToCommandFlag(_0x279ede){const _0x283be0=a60_0x3218;return{'name':_0x279ede[_0x283be0(0x143)],'type':_0x279ede[_0x283be0(0x154)]==='json'?_0x283be0(0x130):_0x279ede[_0x283be0(0x154)],'description':_0x279ede[_0x283be0(0x137)]||_0x279ede[_0x283be0(0x15a)],'required':_0x279ede[_0x283be0(0x145)],'default':isPrimitiveFlagDefault(_0x279ede['default'])?_0x279ede['default']:undefined,'enum':_0x279ede[_0x283be0(0x118)]};}async function compilePlan(_0x125f0c,_0x114b9a){const _0x58f3d2=a60_0x3218;return compileServiceTreeCommand(_0x125f0c,{'flags':_0x114b9a[_0x58f3d2(0x16f)],'args':_0x114b9a[_0x58f3d2(0x173)],'context':await buildServiceContext(_0x125f0c,_0x114b9a)});}async function buildServiceContext(_0x24da79,_0x44aa32){const _0x2776cd=a60_0x3218,_0x30b193={'appCode':_0x44aa32[_0x2776cd(0x153)],'env':_0x44aa32[_0x2776cd(0x144)],'envName':_0x44aa32[_0x2776cd(0x144)]};if(!usesRuntimeContext(_0x24da79))return _0x30b193;const _0x4049da=await getLoginUserInfo(),_0x38187a=pickFirst(_0x4049da['userId'],_0x4049da['id']);return{..._0x30b193,'user':_0x4049da,'userId':_0x38187a,'id':_0x4049da['id'],'username':pickFirst(_0x4049da[_0x2776cd(0x15e)],_0x4049da[_0x2776cd(0x16d)],_0x4049da[_0x2776cd(0x150)]),'userName':_0x4049da[_0x2776cd(0x16d)],'nickname':pickFirst(_0x4049da[_0x2776cd(0x17d)],_0x4049da[_0x2776cd(0x162)]),'nickName':_0x4049da[_0x2776cd(0x162)],'tenantCode':_0x4049da[_0x2776cd(0x164)],'employeeId':_0x4049da[_0x2776cd(0x120)]};}function usesRuntimeContext(_0x176d41){const _0x1c6dd0=a60_0x3218;return _0x176d41[_0x1c6dd0(0x11d)]['some'](_0x20435a=>typeof _0x20435a['source']===_0x1c6dd0(0x130)&&(_0x20435a[_0x1c6dd0(0x125)][_0x1c6dd0(0x126)](_0x1c6dd0(0x12f))||_0x20435a[_0x1c6dd0(0x125)][_0x1c6dd0(0x126)](_0x1c6dd0(0x161))));}function pickFirst(..._0x3666bb){const _0x2b8090=a60_0x3218;return _0x3666bb[_0x2b8090(0x123)](_0x185111=>_0x185111!==undefined&&_0x185111!==null);}async function executePlan(_0x4d4784,_0x8bdf10,_0x55be3c){const _0x7d0d47=a60_0x3218;if(_0x4d4784[_0x7d0d47(0x159)]===_0x7d0d47(0x176)){const _0x4689ed=await resolveDatasetCode(_0x4d4784,_0x8bdf10,_0x55be3c);return executeData(_0x4689ed,_0x4d4784[_0x7d0d47(0x17c)],_0x4d4784[_0x7d0d47(0x17e)]);}if(_0x4d4784[_0x7d0d47(0x159)]===_0x7d0d47(0x142)){if(!_0x4d4784[_0x7d0d47(0x11a)])throw CliErrors['validation'](_0x7d0d47(0x175)+_0x8bdf10[_0x7d0d47(0x15b)]+_0x7d0d47(0x14e));return executeSdkSql(_0x4d4784['sqlCode'],normalizeScalarParams(_0x4d4784[_0x7d0d47(0x17e)]));}if(_0x4d4784[_0x7d0d47(0x159)]===_0x7d0d47(0x13b)){const _0x573b6f=_0x4d4784[_0x7d0d47(0x17b)]||_0x4d4784[_0x7d0d47(0x147)]||(_0x4d4784[_0x7d0d47(0x152)]==null?'':String(_0x4d4784['bffId']));if(!_0x573b6f)throw CliErrors[_0x7d0d47(0x172)](_0x7d0d47(0x175)+_0x8bdf10[_0x7d0d47(0x15b)]+_0x7d0d47(0x127));return executeSdkBff(_0x573b6f,_0x4d4784[_0x7d0d47(0x17e)]);}throw CliErrors[_0x7d0d47(0x172)](_0x7d0d47(0x13d)+_0x4d4784['kind']);}async function resolveDatasetCode(_0x4fdece,_0x3055d1,_0x226e97){const _0x217971=a60_0x3218;if(_0x4fdece[_0x217971(0x13a)])return _0x4fdece[_0x217971(0x13a)];if(!_0x4fdece['datatable'])throw CliErrors[_0x217971(0x172)](_0x217971(0x175)+_0x3055d1[_0x217971(0x15b)]+_0x217971(0x17a));const _0x20dbd0=await listDatasets(_0x226e97['appCode']),_0x13c01f=_0x20dbd0[_0x217971(0x123)](_0x2583d9=>_0x2583d9[_0x217971(0x170)]?.[_0x217971(0x167)]===_0x4fdece[_0x217971(0x129)]);if(!_0x13c01f?.[_0x217971(0x15f)])throw CliErrors[_0x217971(0x172)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x4fdece[_0x217971(0x129)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x226e97[_0x217971(0x153)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x13c01f[_0x217971(0x15f)];}function applyAppBinding(_0x167622,_0x5b4309,_0x237012){const _0x2948bb=a60_0x3218,_0xc4d1ac=_0x5b4309['target'][_0x2948bb(0x128)];if(!_0xc4d1ac)return;const _0x3bf0ba=_0x167622[_0x2948bb(0x16c)][_0xc4d1ac];if(!_0x3bf0ba)throw CliErrors[_0x2948bb(0x172)](_0x2948bb(0x174)+_0xc4d1ac+_0x2948bb(0x151)+_0x5b4309[_0x2948bb(0x15b)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x58cd8d=_0x3bf0ba['appcode']||_0x3bf0ba[_0x2948bb(0x153)];_0x58cd8d&&!hasText(_0x237012[_0x2948bb(0x14c)])&&(_0x237012[_0x2948bb(0x14c)]=_0x58cd8d),_0x3bf0ba[_0x2948bb(0x169)]&&!hasText(_0x237012[_0x2948bb(0x169)])&&!hasText(_0x237012[_0x2948bb(0x14c)])&&(_0x237012[_0x2948bb(0x169)]=_0x3bf0ba[_0x2948bb(0x169)]),_0x3bf0ba[_0x2948bb(0x13f)]&&!hasText(_0x237012[_0x2948bb(0x13f)])&&(_0x237012[_0x2948bb(0x13f)]=_0x3bf0ba['env']);}function renderDynamicCommandHelp(_0x43bb80){const _0x3a02c6=a60_0x3218,_0x37e8cc=[_0x3a02c6(0x119),_0x3a02c6(0x132)+_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x159)],'\x20\x20\x20\x20command:\x20'+_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x17c)]];if(_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x13a)])_0x37e8cc[_0x3a02c6(0x135)]('\x20\x20\x20\x20datasetCode:\x20'+_0x43bb80[_0x3a02c6(0x180)]['datasetCode']);if(_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x129)])_0x37e8cc['push']('\x20\x20\x20\x20datatable:\x20'+_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x129)]);if(_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x11a)])_0x37e8cc['push'](_0x3a02c6(0x13e)+_0x43bb80[_0x3a02c6(0x180)]['sqlCode']);if(_0x43bb80['target'][_0x3a02c6(0x17b)])_0x37e8cc[_0x3a02c6(0x135)](_0x3a02c6(0x155)+_0x43bb80['target']['scriptName']);if(_0x43bb80[_0x3a02c6(0x11d)][_0x3a02c6(0x134)]>0x0){_0x37e8cc[_0x3a02c6(0x135)]('',_0x3a02c6(0x178));for(const _0x741729 of _0x43bb80[_0x3a02c6(0x11d)]){_0x37e8cc[_0x3a02c6(0x135)](_0x3a02c6(0x12e)+(_0x741729[_0x3a02c6(0x125)]||_0x3a02c6(0x13c))+_0x3a02c6(0x131)+_0x741729['target']+(_0x741729[_0x3a02c6(0x15d)]?'.'+_0x741729[_0x3a02c6(0x15d)]:''));}}return _0x37e8cc['join']('\x0a');}function targetPreview(_0x383c9c){const _0x19de18=a60_0x3218;return{'kind':_0x383c9c['kind'],'command':_0x383c9c[_0x19de18(0x17c)],'appRef':_0x383c9c[_0x19de18(0x128)],'datasetCode':_0x383c9c['datasetCode'],'datatable':_0x383c9c[_0x19de18(0x129)],'sqlCode':_0x383c9c[_0x19de18(0x11a)],'bffCode':_0x383c9c[_0x19de18(0x147)],'bffId':_0x383c9c[_0x19de18(0x152)],'functionName':_0x383c9c['scriptName']};}function normalizeScalarParams(_0x1a14de){const _0x2387d8=a60_0x3218;return Object[_0x2387d8(0x179)](Object[_0x2387d8(0x14b)](_0x1a14de)['filter'](([,_0x201559])=>typeof _0x201559==='string'||typeof _0x201559===_0x2387d8(0x138)));}function hasText(_0x33ae4d){const _0xea442b=a60_0x3218;return typeof _0x33ae4d===_0xea442b(0x130)&&_0x33ae4d[_0xea442b(0x158)]()[_0xea442b(0x134)]>0x0;}function a60_0x332b(){const _0x1b2a9b=['target','15788muboLR','enum','\x20\x20SERVICE\x20TREE\x20TARGET','sqlCode','356958ZssCLL','5924898MltbMI','mapTo','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','high-risk-write','employeeId','join','read','find','Run\x20service\x20command\x20','source','startsWith','\x20requires\x20target.functionName.','appRef','datatable','remainingArgs','service','5011692CfZkmR','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','\x20\x20\x20\x20','context.','string','\x20->\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','tree','length','push','fullPath','description','number','map','datasetCode','bff','const','Unsupported\x20service\x20target\x20kind:\x20','\x20\x20\x20\x20sqlCode:\x20','env','\x20completed\x20in\x20','slice','sql','cliName','envName','required','55EYNnxI','bffCode','flags','`\x20to\x20inspect\x20the\x20manifest.','\x22.\x20','entries','appcode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x20requires\x20target.sqlCode.','277641IUzlzw','loginName','\x22\x20in\x20service\x20command\x20','bffId','appCode','type','\x20\x20\x20\x20functionName:\x20','risk','boolean','trim','kind','name','cliPath','7qhzqwv','operator','username','code','Preview\x20dynamic\x20service\x20command:\x20','ctx.','nickName','Use\x20`','tenantCode','Commands:','6241016EgxOhk','tableName','now','app','SERVICE_TREE','normalizedManifest','appBindings','userName','\x20<command>\x20[flags]','rawFlags','dbtableConfig','commands','validation','args','Unknown\x20appRef\x20\x22','Service\x20command\x20','data','filter','\x20\x20MAP\x20TO','fromEntries','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','scriptName','command','nickname','params','1157149pIjIMG'];a60_0x332b=function(){return _0x1b2a9b;};return a60_0x332b();}function isPrimitiveFlagDefault(_0x13395c){const _0x58664c=a60_0x3218;return _0x13395c===undefined||typeof _0x13395c===_0x58664c(0x130)||typeof _0x13395c==='number'||typeof _0x13395c===_0x58664c(0x157);}
@@ -1 +1 @@
1
- function a60_0x3bfd(){const _0x3b2998=['7xBoMsi','commands','call','$.resources','60716EGMCDl','isArray','1655888cmnjlf','functionName','1615180vAtLIG','.resources','6pDMVQf','.actions.','564303qmUimm','fromEntries','target','44HaxiqE','hasOwnProperty','prototype','351162XYjAAV','bff','40KzunuQ','object','bff.exec','string','error','2377495hbyYhw','].target','resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','kind','push','trim','.target','scriptName','3014328ASSwBj','$.commands[','action','map','entries'];a60_0x3bfd=function(){return _0x3b2998;};return a60_0x3bfd();}function a60_0x54b6(_0x22ca81,_0x57e353){_0x22ca81=_0x22ca81-0xf2;const _0x3bfd31=a60_0x3bfd();let _0x54b66a=_0x3bfd31[_0x22ca81];return _0x54b66a;}(function(_0x5854c8,_0x2b6190){const _0x13fea2=a60_0x54b6,_0x55b667=_0x5854c8();while(!![]){try{const _0x424960=-parseInt(_0x13fea2(0x105))/0x1*(-parseInt(_0x13fea2(0xff))/0x2)+parseInt(_0x13fea2(0x107))/0x3+parseInt(_0x13fea2(0x101))/0x4+-parseInt(_0x13fea2(0x114))/0x5+parseInt(_0x13fea2(0xf6))/0x6*(-parseInt(_0x13fea2(0xfb))/0x7)+-parseInt(_0x13fea2(0x10f))/0x8*(parseInt(_0x13fea2(0x10d))/0x9)+-parseInt(_0x13fea2(0x103))/0xa*(-parseInt(_0x13fea2(0x10a))/0xb);if(_0x424960===_0x2b6190)break;else _0x55b667['push'](_0x55b667['shift']());}catch(_0x43dc08){_0x55b667['push'](_0x55b667['shift']());}}}(a60_0x3bfd,0x3ed24));export function adaptServiceTreeManifestForLegacyFramework(_0x5a9a82){const _0x9347ae=a60_0x54b6,_0x560ebb=cloneJsonValue(_0x5a9a82),_0x3eee45=[];if(!isObjectRecord(_0x560ebb))return{'manifest':_0x560ebb,'errors':_0x3eee45};return Array[_0x9347ae(0x100)](_0x560ebb[_0x9347ae(0xfc)])&&_0x560ebb[_0x9347ae(0xfc)]['forEach']((_0x147fbc,_0x8fd613)=>{const _0x8f507b=_0x9347ae;if(!isObjectRecord(_0x147fbc))return;adaptBffTarget(_0x147fbc['target'],_0x8f507b(0xf7)+_0x8fd613+_0x8f507b(0x115),_0x3eee45);}),adaptResources(_0x560ebb[_0x9347ae(0x116)],_0x9347ae(0xfe),_0x3eee45),{'manifest':_0x560ebb,'errors':_0x3eee45};}export function toPublicServiceTreeTarget(_0x567706){const _0x3f413b=a60_0x54b6,{scriptName:_0x3cd4d0,..._0x1821ea}=_0x567706;return typeof _0x3cd4d0===_0x3f413b(0x112)&&_0x3cd4d0['trim']()&&(_0x1821ea[_0x3f413b(0x102)]=_0x3cd4d0),_0x1821ea;}export function toPublicNormalizedServiceTree(_0xc66b8f){const _0x589f58=a60_0x54b6;return{..._0xc66b8f,'commands':_0xc66b8f[_0x589f58(0xfc)][_0x589f58(0xf9)](_0x132db9=>({..._0x132db9,'target':toPublicServiceTreeTarget(_0x132db9[_0x589f58(0x109)])}))};}function adaptResources(_0x2e8c7f,_0x180637,_0x5c56ef){const _0x26f114=a60_0x54b6;if(!isObjectRecord(_0x2e8c7f))return;for(const [_0x4fb70a,_0x244ac6]of Object[_0x26f114(0xfa)](_0x2e8c7f)){if(!isObjectRecord(_0x244ac6))continue;const _0x2b5511=_0x180637+'.'+_0x4fb70a;if(isObjectRecord(_0x244ac6['actions']))for(const [_0x1d06ca,_0xd40186]of Object[_0x26f114(0xfa)](_0x244ac6['actions'])){if(!isObjectRecord(_0xd40186))continue;const _0x4373cd=_0x2b5511+_0x26f114(0x106)+_0x1d06ca,_0x44928b=isObjectRecord(_0xd40186['target'])&&_0xd40186['target'][_0x26f114(0x118)]===_0x26f114(0x10e);adaptBffTarget(_0xd40186['target'],_0x4373cd+_0x26f114(0xf4),_0x5c56ef),(_0x44928b||isBffAction(_0xd40186))&&adaptFunctionNameField(_0xd40186,_0x4373cd,_0x5c56ef);}adaptResources(_0x244ac6[_0x26f114(0x116)],_0x2b5511+_0x26f114(0x104),_0x5c56ef);}}function adaptBffTarget(_0x3ca956,_0xdaa8ba,_0x3c297e){const _0x4dafe3=a60_0x54b6;if(!isObjectRecord(_0x3ca956)||_0x3ca956['kind']!==_0x4dafe3(0x10e))return;adaptFunctionNameField(_0x3ca956,_0xdaa8ba,_0x3c297e);}function adaptFunctionNameField(_0x551e25,_0x4700b0,_0x529b97){const _0x5df95e=a60_0x54b6;Object[_0x5df95e(0x10c)][_0x5df95e(0x10b)][_0x5df95e(0xfd)](_0x551e25,_0x5df95e(0xf5))&&_0x529b97[_0x5df95e(0xf2)]({'level':_0x5df95e(0x113),'path':_0x4700b0+'.scriptName','message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object['prototype']['hasOwnProperty']['call'](_0x551e25,'functionName')){if(typeof _0x551e25[_0x5df95e(0x102)]!==_0x5df95e(0x112)||!_0x551e25[_0x5df95e(0x102)][_0x5df95e(0xf3)]()){_0x529b97[_0x5df95e(0xf2)]({'level':_0x5df95e(0x113),'path':_0x4700b0+'.functionName','message':_0x5df95e(0x117)}),delete _0x551e25['functionName'];return;}_0x551e25[_0x5df95e(0xf5)]=_0x551e25[_0x5df95e(0x102)],delete _0x551e25[_0x5df95e(0x102)];}}function isBffAction(_0x450ce7){const _0x5b66ce=a60_0x54b6;return _0x450ce7[_0x5b66ce(0x118)]==='bff'||_0x450ce7[_0x5b66ce(0xf8)]==='bff.exec'||_0x450ce7[_0x5b66ce(0x109)]===_0x5b66ce(0x111);}function cloneJsonValue(_0x36473d){const _0x1bef95=a60_0x54b6;if(Array[_0x1bef95(0x100)](_0x36473d))return _0x36473d[_0x1bef95(0xf9)](_0x4ffb8c=>cloneJsonValue(_0x4ffb8c));if(isObjectRecord(_0x36473d))return Object[_0x1bef95(0x108)](Object[_0x1bef95(0xfa)](_0x36473d)[_0x1bef95(0xf9)](([_0x5d4a5f,_0x517290])=>[_0x5d4a5f,cloneJsonValue(_0x517290)]));return _0x36473d;}function isObjectRecord(_0x2d47a8){const _0x155c2e=a60_0x54b6;return Boolean(_0x2d47a8)&&typeof _0x2d47a8===_0x155c2e(0x110)&&!Array[_0x155c2e(0x100)](_0x2d47a8);}
1
+ function a61_0x4f34(_0x47ce41,_0x7091d1){_0x47ce41=_0x47ce41-0x198;const _0x32080c=a61_0x3208();let _0x4f344e=_0x32080c[_0x47ce41];return _0x4f344e;}(function(_0x327ffa,_0x4ccf65){const _0x116cf6=a61_0x4f34,_0x238a81=_0x327ffa();while(!![]){try{const _0x2fecb7=parseInt(_0x116cf6(0x1af))/0x1+-parseInt(_0x116cf6(0x1b9))/0x2+parseInt(_0x116cf6(0x1a1))/0x3+-parseInt(_0x116cf6(0x1b5))/0x4+-parseInt(_0x116cf6(0x1a8))/0x5+parseInt(_0x116cf6(0x1b2))/0x6+parseInt(_0x116cf6(0x1b8))/0x7*(parseInt(_0x116cf6(0x199))/0x8);if(_0x2fecb7===_0x4ccf65)break;else _0x238a81['push'](_0x238a81['shift']());}catch(_0x516111){_0x238a81['push'](_0x238a81['shift']());}}}(a61_0x3208,0xbe6e8));export function adaptServiceTreeManifestForLegacyFramework(_0x1f4c2c){const _0x5aa5f5=a61_0x4f34,_0x4bb47d=cloneJsonValue(_0x1f4c2c),_0x56cc06=[];if(!isObjectRecord(_0x4bb47d))return{'manifest':_0x4bb47d,'errors':_0x56cc06};return Array['isArray'](_0x4bb47d['commands'])&&_0x4bb47d[_0x5aa5f5(0x1b4)][_0x5aa5f5(0x1b0)]((_0x2d6e21,_0x175c4a)=>{const _0x540905=_0x5aa5f5;if(!isObjectRecord(_0x2d6e21))return;adaptBffTarget(_0x2d6e21[_0x540905(0x19b)],_0x540905(0x198)+_0x175c4a+'].target',_0x56cc06);}),adaptResources(_0x4bb47d[_0x5aa5f5(0x1ae)],'$.resources',_0x56cc06),{'manifest':_0x4bb47d,'errors':_0x56cc06};}export function toPublicServiceTreeTarget(_0xb1574b){const _0x26c7a0=a61_0x4f34,{scriptName:_0x4bac0e,..._0x2f070a}=_0xb1574b;return typeof _0x4bac0e==='string'&&_0x4bac0e[_0x26c7a0(0x1b7)]()&&(_0x2f070a[_0x26c7a0(0x1ac)]=_0x4bac0e),_0x2f070a;}export function toPublicNormalizedServiceTree(_0x2adac4){const _0x3081e8=a61_0x4f34;return{..._0x2adac4,'commands':_0x2adac4[_0x3081e8(0x1b4)][_0x3081e8(0x1b1)](_0x1d6fe=>({..._0x1d6fe,'target':toPublicServiceTreeTarget(_0x1d6fe['target'])}))};}function adaptResources(_0x646c7c,_0x486b05,_0x5881ab){const _0x40d89b=a61_0x4f34;if(!isObjectRecord(_0x646c7c))return;for(const [_0x4db845,_0x21ddf9]of Object['entries'](_0x646c7c)){if(!isObjectRecord(_0x21ddf9))continue;const _0xa8ae46=_0x486b05+'.'+_0x4db845;if(isObjectRecord(_0x21ddf9[_0x40d89b(0x1aa)]))for(const [_0x27227b,_0x483e37]of Object[_0x40d89b(0x1a0)](_0x21ddf9[_0x40d89b(0x1aa)])){if(!isObjectRecord(_0x483e37))continue;const _0x1b2b8d=_0xa8ae46+_0x40d89b(0x1ad)+_0x27227b,_0x3383f4=isObjectRecord(_0x483e37['target'])&&_0x483e37[_0x40d89b(0x19b)][_0x40d89b(0x1b6)]==='bff';adaptBffTarget(_0x483e37[_0x40d89b(0x19b)],_0x1b2b8d+_0x40d89b(0x1a2),_0x5881ab),(_0x3383f4||isBffAction(_0x483e37))&&adaptFunctionNameField(_0x483e37,_0x1b2b8d,_0x5881ab);}adaptResources(_0x21ddf9[_0x40d89b(0x1ae)],_0xa8ae46+_0x40d89b(0x19c),_0x5881ab);}}function adaptBffTarget(_0x1d789a,_0x5d4e02,_0xdf5587){const _0x5dc96a=a61_0x4f34;if(!isObjectRecord(_0x1d789a)||_0x1d789a[_0x5dc96a(0x1b6)]!==_0x5dc96a(0x1a3))return;adaptFunctionNameField(_0x1d789a,_0x5d4e02,_0xdf5587);}function a61_0x3208(){const _0x57e9d3=['$.commands[','24ylqvpr','error','target','.resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','prototype','object','entries','4372503UIBrRg','.target','bff','functionName\x20must\x20be\x20a\x20non-empty\x20string.','isArray','push','hasOwnProperty','6634955BLCqhm','string','actions','bff.exec','functionName','.actions.','resources','1358864ShmmOu','forEach','map','1396620fkOnlF','.scriptName','commands','1049588ybcUvl','kind','trim','1525153OGggHK','2666752hMLBND','call','scriptName','.functionName'];a61_0x3208=function(){return _0x57e9d3;};return a61_0x3208();}function adaptFunctionNameField(_0x46b88b,_0x1c0449,_0x2132a1){const _0x322d31=a61_0x4f34;Object[_0x322d31(0x19e)]['hasOwnProperty'][_0x322d31(0x1ba)](_0x46b88b,'scriptName')&&_0x2132a1['push']({'level':_0x322d31(0x19a),'path':_0x1c0449+_0x322d31(0x1b3),'message':_0x322d31(0x19d)});if(Object[_0x322d31(0x19e)][_0x322d31(0x1a7)][_0x322d31(0x1ba)](_0x46b88b,_0x322d31(0x1ac))){if(typeof _0x46b88b[_0x322d31(0x1ac)]!==_0x322d31(0x1a9)||!_0x46b88b[_0x322d31(0x1ac)][_0x322d31(0x1b7)]()){_0x2132a1[_0x322d31(0x1a6)]({'level':'error','path':_0x1c0449+_0x322d31(0x1bc),'message':_0x322d31(0x1a4)}),delete _0x46b88b[_0x322d31(0x1ac)];return;}_0x46b88b[_0x322d31(0x1bb)]=_0x46b88b[_0x322d31(0x1ac)],delete _0x46b88b[_0x322d31(0x1ac)];}}function isBffAction(_0x54dc34){const _0x57c686=a61_0x4f34;return _0x54dc34[_0x57c686(0x1b6)]===_0x57c686(0x1a3)||_0x54dc34['action']===_0x57c686(0x1ab)||_0x54dc34[_0x57c686(0x19b)]===_0x57c686(0x1ab);}function cloneJsonValue(_0x2fd16b){const _0x350e9e=a61_0x4f34;if(Array['isArray'](_0x2fd16b))return _0x2fd16b[_0x350e9e(0x1b1)](_0x4c390b=>cloneJsonValue(_0x4c390b));if(isObjectRecord(_0x2fd16b))return Object['fromEntries'](Object['entries'](_0x2fd16b)['map'](([_0x2ca489,_0x9db7c7])=>[_0x2ca489,cloneJsonValue(_0x9db7c7)]));return _0x2fd16b;}function isObjectRecord(_0x521dd3){const _0x5bbc9d=a61_0x4f34;return Boolean(_0x521dd3)&&typeof _0x521dd3===_0x5bbc9d(0x19f)&&!Array[_0x5bbc9d(0x1a5)](_0x521dd3);}
@@ -1 +1 @@
1
- const a61_0x3efeb2=a61_0xa9a7;(function(_0x42f15a,_0x1fbd33){const _0x2a0ce9=a61_0xa9a7,_0x3c4a03=_0x42f15a();while(!![]){try{const _0x22f164=parseInt(_0x2a0ce9(0x103))/0x1*(-parseInt(_0x2a0ce9(0x105))/0x2)+parseInt(_0x2a0ce9(0x133))/0x3+-parseInt(_0x2a0ce9(0x12e))/0x4+parseInt(_0x2a0ce9(0x11c))/0x5+parseInt(_0x2a0ce9(0x126))/0x6+parseInt(_0x2a0ce9(0x125))/0x7*(parseInt(_0x2a0ce9(0x12b))/0x8)+-parseInt(_0x2a0ce9(0x120))/0x9*(parseInt(_0x2a0ce9(0x111))/0xa);if(_0x22f164===_0x1fbd33)break;else _0x3c4a03['push'](_0x3c4a03['shift']());}catch(_0x347b4f){_0x3c4a03['push'](_0x3c4a03['shift']());}}}(a61_0x4837,0xc66ef));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':a61_0x3efeb2(0x106),'type':a61_0x3efeb2(0x13c),'required':!![],'description':a61_0x3efeb2(0xff)},SERVICE_FLAG={'name':a61_0x3efeb2(0x117),'type':a61_0x3efeb2(0x13c),'required':!![],'description':a61_0x3efeb2(0x110),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function a61_0xa9a7(_0x5a7209,_0x34f3be){_0x5a7209=_0x5a7209-0xfa;const _0x483705=a61_0x4837();let _0xa9a71f=_0x483705[_0x5a7209];return _0xa9a71f;}function a61_0x4837(){const _0x29003f=['Imported\x20','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','294532GUYxIr','1571892eeNDwD','import','errors','entries','Imported','208HWZVdG','manifest','commands','2040680xErjLe','flags','name','target','从本地运行态注册表移除\x20Service\x20Tree\x20清单','4337562qtxbbx','registryPath','report','str','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','hash','validate','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','string','filePath','version','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','export','risk','cliName','read','list','write','\x20service\x20','serviceCode','Service\x20Tree\x20manifest\x20file\x20path','warnings','serviceCount','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','20OGHHdx','registry','62436enAXDB','file','Exported\x20service\x20','map','length','normalizedManifest','imported','Local\x20service\x20not\x20found:\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','type','\x20service(s).','Local\x20service\x20code,\x20for\x20example\x20crm','10ScFAOr','importedAt','cliPath','updated','required','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','service','\x20service(s),\x20updated\x20','replaced','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','detail','4317420OZCgKS','manifests','source','WRITE','15461847GtcHQj','entry','kind'];a61_0x4837=function(){return _0x29003f;};return a61_0x4837();}function summarizeService(_0x4c9b72){const _0x3b690d=a61_0x3efeb2;return{'serviceCode':_0x4c9b72['serviceCode'],'name':_0x4c9b72[_0x3b690d(0x10a)][_0x3b690d(0x117)][_0x3b690d(0x130)],'version':_0x4c9b72['version'],'importedAt':_0x4c9b72[_0x3b690d(0x112)],'source':_0x4c9b72['source'],'commandCount':_0x4c9b72['normalizedManifest'][_0x3b690d(0x12d)][_0x3b690d(0x109)],'commands':_0x4c9b72[_0x3b690d(0x10a)][_0x3b690d(0x12d)][_0x3b690d(0x108)](_0x4e6365=>({'path':_0x4e6365[_0x3b690d(0x113)],'description':_0x4e6365['description'],'risk':_0x4e6365[_0x3b690d(0x141)],'target':toPublicServiceTreeTarget(_0x4e6365[_0x3b690d(0x131)]),'flags':_0x4e6365[_0x3b690d(0x12f)][_0x3b690d(0x108)](_0x4e75d0=>({'name':_0x4e75d0[_0x3b690d(0x130)],'cliName':_0x4e75d0[_0x3b690d(0x142)],'type':_0x4e75d0[_0x3b690d(0x10e)],'required':_0x4e75d0[_0x3b690d(0x115)]===!![]}))}))};}function summarizeLoadedManifest(_0x9841e3){const _0x217074=a61_0x3efeb2;return{'service':_0x9841e3['normalizedManifest']?.[_0x217074(0x117)],'version':_0x9841e3[_0x217074(0x10a)]?.[_0x217074(0x13e)],'commandCount':_0x9841e3[_0x217074(0x10a)]?.[_0x217074(0x12d)][_0x217074(0x109)]??0x0,'commands':_0x9841e3['normalizedManifest']?.[_0x217074(0x12d)]['map'](_0x244b80=>({'path':_0x244b80[_0x217074(0x113)],'risk':_0x244b80[_0x217074(0x141)],'target':toPublicServiceTreeTarget(_0x244b80[_0x217074(0x131)])}))??[],'registryIndex':_0x9841e3['registryIndex'],'registryServiceCode':_0x9841e3['registryServiceCode'],'errors':_0x9841e3[_0x217074(0x135)][_0x217074(0x128)],'warnings':_0x9841e3[_0x217074(0x135)]['warnings']};}export const serviceDefinitions=[{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0x13a),'description':a61_0x3efeb2(0x11a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2c84dc){const _0x5ae730=a61_0x3efeb2,_0x35393d=loadServiceManifestFromFile(_0x2c84dc['str'](_0x5ae730(0x106)));if(!_0x35393d['report']['ok'])return{'ok':![],'data':{'file':_0x35393d[_0x5ae730(0x13d)],'hash':_0x35393d[_0x5ae730(0x139)],'kind':_0x35393d[_0x5ae730(0x122)],'serviceCount':_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x109)],'services':_0x35393d['manifests'][_0x5ae730(0x108)](summarizeLoadedManifest),'errors':_0x35393d[_0x5ae730(0x135)]['errors'],'warnings':_0x35393d[_0x5ae730(0x135)][_0x5ae730(0x100)]},'message':formatValidationFailure(_0x35393d['report'])};if(_0x35393d['kind']===_0x5ae730(0x104)||_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x109)]!==0x1)return{'ok':!![],'data':{'file':_0x35393d[_0x5ae730(0x13d)],'hash':_0x35393d['hash'],'kind':_0x35393d[_0x5ae730(0x122)],'serviceCount':_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x109)],'commandCount':_0x35393d[_0x5ae730(0x11d)]['reduce']((_0x3fa1fa,_0x30853a)=>_0x3fa1fa+(_0x30853a[_0x5ae730(0x10a)]?.['commands'][_0x5ae730(0x109)]??0x0),0x0),'services':_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x108)](summarizeLoadedManifest),'warnings':_0x35393d[_0x5ae730(0x135)][_0x5ae730(0x100)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x35393d['filePath'],'hash':_0x35393d['hash'],'kind':_0x35393d[_0x5ae730(0x122)],'service':_0x35393d[_0x5ae730(0x10a)]?.[_0x5ae730(0x117)],'version':_0x35393d[_0x5ae730(0x10a)]?.['version'],'commandCount':_0x35393d['normalizedManifest']?.[_0x5ae730(0x12d)][_0x5ae730(0x109)]??0x0,'commands':_0x35393d[_0x5ae730(0x10a)]?.[_0x5ae730(0x12d)][_0x5ae730(0x108)](_0x269ff1=>({'path':_0x269ff1[_0x5ae730(0x113)],'risk':_0x269ff1[_0x5ae730(0x141)],'target':toPublicServiceTreeTarget(_0x269ff1[_0x5ae730(0x131)])})),'warnings':_0x35393d[_0x5ae730(0x135)]['warnings']},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0x127),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':a61_0x3efeb2(0xfc),'confirmationDescription':a61_0x3efeb2(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x20604a){const _0x52017c=a61_0x3efeb2,_0x102d40=loadServiceManifestFromFile(_0x20604a[_0x52017c(0x136)](_0x52017c(0x106)));return{'method':_0x52017c(0x11f),'url':getServiceRegistryPath(),'body':{'file':_0x102d40['filePath'],'hash':_0x102d40[_0x52017c(0x139)],'kind':_0x102d40[_0x52017c(0x122)],'ok':_0x102d40[_0x52017c(0x135)]['ok'],'service':_0x102d40['normalizedManifest']?.[_0x52017c(0x117)],'version':_0x102d40[_0x52017c(0x10a)]?.[_0x52017c(0x13e)],'serviceCount':_0x102d40[_0x52017c(0x11d)][_0x52017c(0x109)],'services':_0x102d40[_0x52017c(0x11d)][_0x52017c(0x108)](_0x41ca19=>({'service':_0x41ca19[_0x52017c(0x10a)]?.['service'],'version':_0x41ca19['normalizedManifest']?.[_0x52017c(0x13e)],'commandCount':_0x41ca19[_0x52017c(0x10a)]?.[_0x52017c(0x12d)][_0x52017c(0x109)]??0x0,'errors':_0x41ca19[_0x52017c(0x135)]['errors']})),'errors':_0x102d40['report'][_0x52017c(0x128)],'commandCount':_0x102d40[_0x52017c(0x10a)]?.[_0x52017c(0x12d)][_0x52017c(0x109)]??0x0},'description':_0x52017c(0x13f)};},async 'execute'(_0x135bce){const _0x21d3c6=a61_0x3efeb2,_0x19afca=importServiceManifest(_0x135bce[_0x21d3c6(0x136)](_0x21d3c6(0x106)));if(_0x19afca[_0x21d3c6(0x129)][_0x21d3c6(0x109)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x19afca[_0x21d3c6(0x134)],'imported':_0x19afca[_0x21d3c6(0x10b)],'updated':_0x19afca[_0x21d3c6(0x114)],'serviceCount':_0x19afca[_0x21d3c6(0x101)],'services':_0x19afca[_0x21d3c6(0x129)][_0x21d3c6(0x108)](summarizeService)},'message':_0x21d3c6(0x123)+_0x19afca[_0x21d3c6(0x10b)]+_0x21d3c6(0x118)+_0x19afca[_0x21d3c6(0x114)]+_0x21d3c6(0x10f)};return{'ok':!![],'data':{'registryPath':_0x19afca[_0x21d3c6(0x134)],'replaced':_0x19afca['replaced'],'imported':_0x19afca[_0x21d3c6(0x10b)],'updated':_0x19afca[_0x21d3c6(0x114)],'serviceCount':_0x19afca[_0x21d3c6(0x101)],'service':summarizeService(_0x19afca['entry'])},'message':(_0x19afca[_0x21d3c6(0x119)]?'Updated':_0x21d3c6(0x12a))+_0x21d3c6(0xfd)+_0x19afca[_0x21d3c6(0x121)]['serviceCode']+'.'};}},{'service':'service','command':a61_0x3efeb2(0x140),'description':a61_0x3efeb2(0x138),'risk':a61_0x3efeb2(0xfc),'confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x31ab5c){const _0x5ebad4=a61_0x3efeb2,_0x46fdfc=getLocalServiceEntry(_0x31ab5c['str'](_0x5ebad4(0x117)));return{'method':_0x5ebad4(0x11f),'url':_0x31ab5c[_0x5ebad4(0x136)]('file'),'body':{'service':_0x31ab5c[_0x5ebad4(0x136)](_0x5ebad4(0x117)),'found':Boolean(_0x46fdfc),'version':_0x46fdfc?.[_0x5ebad4(0x13e)],'source':_0x46fdfc?.[_0x5ebad4(0x11e)]},'description':_0x5ebad4(0x13b)};},async 'execute'(_0x114480){const _0x225efc=a61_0x3efeb2,_0x55a117=exportServiceManifest(_0x114480[_0x225efc(0x136)](_0x225efc(0x117)),_0x114480[_0x225efc(0x136)](_0x225efc(0x106)));return{'ok':!![],'data':{'registryPath':_0x55a117[_0x225efc(0x134)],'file':_0x55a117[_0x225efc(0x13d)],'service':summarizeService(_0x55a117[_0x225efc(0x121)])},'message':_0x225efc(0x107)+_0x55a117[_0x225efc(0x121)][_0x225efc(0xfe)]+'.'};}},{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0xfb),'description':a61_0x3efeb2(0x102),'risk':a61_0x3efeb2(0xfa),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x3b521e=a61_0x3efeb2,_0x345f04=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x345f04[_0x3b521e(0x109)],'services':_0x345f04['map'](summarizeService)}};}},{'service':'service','command':'remove','description':a61_0x3efeb2(0x132),'risk':a61_0x3efeb2(0xfc),'confirmationDescription':a61_0x3efeb2(0x124),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1049f2){const _0x47fde8=a61_0x3efeb2,_0x229a44=getLocalServiceEntry(_0x1049f2[_0x47fde8(0x136)](_0x47fde8(0x117)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x1049f2['str'](_0x47fde8(0x117)),'found':Boolean(_0x229a44),'version':_0x229a44?.[_0x47fde8(0x13e)],'source':_0x229a44?.[_0x47fde8(0x11e)]},'description':_0x47fde8(0x116)};},async 'execute'(_0x1279be){const _0x4f1164=a61_0x3efeb2,_0x58ddd4=removeServiceManifest(_0x1279be[_0x4f1164(0x136)](_0x4f1164(0x117)));return{'ok':!![],'data':{'registryPath':_0x58ddd4['registryPath'],'serviceCount':_0x58ddd4['serviceCount'],'service':summarizeService(_0x58ddd4[_0x4f1164(0x121)])},'message':'Removed\x20service\x20'+_0x58ddd4[_0x4f1164(0x121)][_0x4f1164(0xfe)]+'.'};}},{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0x11b),'description':a61_0x3efeb2(0x10d),'risk':a61_0x3efeb2(0xfa),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x2c438a){const _0x3d953a=a61_0x3efeb2,_0x27e0bf=getLocalServiceEntry(_0x2c438a['str'](_0x3d953a(0x117)));if(!_0x27e0bf)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x2c438a[_0x3d953a(0x136)](_0x3d953a(0x117))},'message':_0x3d953a(0x10c)+_0x2c438a[_0x3d953a(0x136)](_0x3d953a(0x117))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x27e0bf),'manifest':_0x27e0bf[_0x3d953a(0x12c)],'normalizedManifest':toPublicNormalizedServiceTree(_0x27e0bf[_0x3d953a(0x10a)])}};}}];
1
+ const a62_0x41cbda=a62_0x2b04;(function(_0x1d829c,_0x58ad21){const _0x171547=a62_0x2b04,_0x38de33=_0x1d829c();while(!![]){try{const _0x20bc1a=-parseInt(_0x171547(0x13e))/0x1+parseInt(_0x171547(0x174))/0x2*(-parseInt(_0x171547(0x15a))/0x3)+-parseInt(_0x171547(0x146))/0x4+parseInt(_0x171547(0x15e))/0x5+-parseInt(_0x171547(0x14d))/0x6+parseInt(_0x171547(0x15d))/0x7*(-parseInt(_0x171547(0x12b))/0x8)+-parseInt(_0x171547(0x158))/0x9*(-parseInt(_0x171547(0x15b))/0xa);if(_0x20bc1a===_0x58ad21)break;else _0x38de33['push'](_0x38de33['shift']());}catch(_0x33e60a){_0x38de33['push'](_0x38de33['shift']());}}}(a62_0x52e3,0x51018));function a62_0x2b04(_0xa37a8,_0x38edad){_0xa37a8=_0xa37a8-0x12a;const _0x52e329=a62_0x52e3();let _0x2b04f8=_0x52e329[_0xa37a8];return _0x2b04f8;}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_0x52e3(){const _0x473f4d=['44262yULjNZ','Removed\x20service\x20','210153vcTUnC','1790chHTtw','source','518eWxgJb','2238350YlMVOe','serviceCount','remove','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','WRITE','replaced','registryServiceCode','\x20service(s),\x20updated\x20','Service\x20manifest\x20validation\x20passed.','entry','version','Service\x20Tree\x20manifest\x20file\x20path','report','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','filePath','map','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Local\x20service\x20not\x20found:\x20','lower\x20kebab-case\x20service\x20code','Imported\x20','hash','updated','6qBrdxn','cliPath','1176ofyQoK','flags','Updated','manifest','Imported','entries','risk','registry','description','warnings','normalizedManifest','target','export','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','\x20service(s).','\x20service\x20','cliName','errors','99211cXzFLy','Local\x20service\x20code,\x20for\x20example\x20crm','file','importedAt','read','write','service','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','2342908xaRnya','commands','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.','length','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','serviceCode','manifests','541338tSEHIp','registryPath','reduce','kind','string','imported','registryIndex','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','str','required'];a62_0x52e3=function(){return _0x473f4d;};return a62_0x52e3();}const FILE_FLAG={'name':'file','type':'string','required':!![],'description':a62_0x41cbda(0x169)},SERVICE_FLAG={'name':a62_0x41cbda(0x144),'type':a62_0x41cbda(0x151),'required':!![],'description':a62_0x41cbda(0x13f),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x41cbda(0x170)}};function summarizeService(_0x4bc435){const _0x3784c5=a62_0x41cbda;return{'serviceCode':_0x4bc435[_0x3784c5(0x14b)],'name':_0x4bc435[_0x3784c5(0x135)][_0x3784c5(0x144)]['name'],'version':_0x4bc435[_0x3784c5(0x168)],'importedAt':_0x4bc435[_0x3784c5(0x141)],'source':_0x4bc435['source'],'commandCount':_0x4bc435[_0x3784c5(0x135)][_0x3784c5(0x147)][_0x3784c5(0x149)],'commands':_0x4bc435[_0x3784c5(0x135)][_0x3784c5(0x147)][_0x3784c5(0x16d)](_0x24328c=>({'path':_0x24328c[_0x3784c5(0x12a)],'description':_0x24328c[_0x3784c5(0x133)],'risk':_0x24328c[_0x3784c5(0x131)],'target':toPublicServiceTreeTarget(_0x24328c[_0x3784c5(0x136)]),'flags':_0x24328c[_0x3784c5(0x12c)][_0x3784c5(0x16d)](_0x1aa54=>({'name':_0x1aa54['name'],'cliName':_0x1aa54[_0x3784c5(0x13c)],'type':_0x1aa54['type'],'required':_0x1aa54[_0x3784c5(0x157)]===!![]}))}))};}function summarizeLoadedManifest(_0x3dad57){const _0x4fea9f=a62_0x41cbda;return{'service':_0x3dad57['normalizedManifest']?.[_0x4fea9f(0x144)],'version':_0x3dad57[_0x4fea9f(0x135)]?.[_0x4fea9f(0x168)],'commandCount':_0x3dad57['normalizedManifest']?.[_0x4fea9f(0x147)][_0x4fea9f(0x149)]??0x0,'commands':_0x3dad57[_0x4fea9f(0x135)]?.['commands'][_0x4fea9f(0x16d)](_0x5c02fc=>({'path':_0x5c02fc[_0x4fea9f(0x12a)],'risk':_0x5c02fc[_0x4fea9f(0x131)],'target':toPublicServiceTreeTarget(_0x5c02fc['target'])}))??[],'registryIndex':_0x3dad57[_0x4fea9f(0x153)],'registryServiceCode':_0x3dad57[_0x4fea9f(0x164)],'errors':_0x3dad57[_0x4fea9f(0x16a)][_0x4fea9f(0x13d)],'warnings':_0x3dad57[_0x4fea9f(0x16a)]['warnings']};}export const serviceDefinitions=[{'service':'service','command':'validate','description':a62_0x41cbda(0x16e),'risk':a62_0x41cbda(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3dfe88){const _0x50d1c4=a62_0x41cbda,_0x502166=loadServiceManifestFromFile(_0x3dfe88[_0x50d1c4(0x156)](_0x50d1c4(0x140)));if(!_0x502166[_0x50d1c4(0x16a)]['ok'])return{'ok':![],'data':{'file':_0x502166['filePath'],'hash':_0x502166[_0x50d1c4(0x172)],'kind':_0x502166[_0x50d1c4(0x150)],'serviceCount':_0x502166[_0x50d1c4(0x14c)]['length'],'services':_0x502166[_0x50d1c4(0x14c)][_0x50d1c4(0x16d)](summarizeLoadedManifest),'errors':_0x502166[_0x50d1c4(0x16a)]['errors'],'warnings':_0x502166[_0x50d1c4(0x16a)]['warnings']},'message':formatValidationFailure(_0x502166[_0x50d1c4(0x16a)])};if(_0x502166[_0x50d1c4(0x150)]===_0x50d1c4(0x132)||_0x502166['manifests'][_0x50d1c4(0x149)]!==0x1)return{'ok':!![],'data':{'file':_0x502166[_0x50d1c4(0x16c)],'hash':_0x502166['hash'],'kind':_0x502166['kind'],'serviceCount':_0x502166[_0x50d1c4(0x14c)]['length'],'commandCount':_0x502166[_0x50d1c4(0x14c)][_0x50d1c4(0x14f)]((_0x18cd4a,_0xc97a01)=>_0x18cd4a+(_0xc97a01[_0x50d1c4(0x135)]?.[_0x50d1c4(0x147)][_0x50d1c4(0x149)]??0x0),0x0),'services':_0x502166[_0x50d1c4(0x14c)][_0x50d1c4(0x16d)](summarizeLoadedManifest),'warnings':_0x502166[_0x50d1c4(0x16a)][_0x50d1c4(0x134)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x502166[_0x50d1c4(0x16c)],'hash':_0x502166[_0x50d1c4(0x172)],'kind':_0x502166['kind'],'service':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x144)],'version':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x168)],'commandCount':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x147)][_0x50d1c4(0x149)]??0x0,'commands':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x147)][_0x50d1c4(0x16d)](_0x4a86ee=>({'path':_0x4a86ee[_0x50d1c4(0x12a)],'risk':_0x4a86ee[_0x50d1c4(0x131)],'target':toPublicServiceTreeTarget(_0x4a86ee[_0x50d1c4(0x136)])})),'warnings':_0x502166[_0x50d1c4(0x16a)]['warnings']},'message':_0x50d1c4(0x166)};}},{'service':a62_0x41cbda(0x144),'command':'import','description':a62_0x41cbda(0x145),'risk':a62_0x41cbda(0x143),'confirmationDescription':a62_0x41cbda(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x36ae08){const _0x172770=a62_0x41cbda,_0x2377da=loadServiceManifestFromFile(_0x36ae08['str'](_0x172770(0x140)));return{'method':_0x172770(0x162),'url':getServiceRegistryPath(),'body':{'file':_0x2377da[_0x172770(0x16c)],'hash':_0x2377da[_0x172770(0x172)],'kind':_0x2377da[_0x172770(0x150)],'ok':_0x2377da['report']['ok'],'service':_0x2377da[_0x172770(0x135)]?.['service'],'version':_0x2377da[_0x172770(0x135)]?.['version'],'serviceCount':_0x2377da[_0x172770(0x14c)][_0x172770(0x149)],'services':_0x2377da['manifests'][_0x172770(0x16d)](_0x217020=>({'service':_0x217020[_0x172770(0x135)]?.[_0x172770(0x144)],'version':_0x217020[_0x172770(0x135)]?.[_0x172770(0x168)],'commandCount':_0x217020[_0x172770(0x135)]?.[_0x172770(0x147)][_0x172770(0x149)]??0x0,'errors':_0x217020['report'][_0x172770(0x13d)]})),'errors':_0x2377da[_0x172770(0x16a)]['errors'],'commandCount':_0x2377da[_0x172770(0x135)]?.[_0x172770(0x147)][_0x172770(0x149)]??0x0},'description':_0x172770(0x138)};},async 'execute'(_0x285e8b){const _0x325ebd=a62_0x41cbda,_0x5c41df=importServiceManifest(_0x285e8b[_0x325ebd(0x156)](_0x325ebd(0x140)));if(_0x5c41df[_0x325ebd(0x130)][_0x325ebd(0x149)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5c41df[_0x325ebd(0x14e)],'imported':_0x5c41df['imported'],'updated':_0x5c41df[_0x325ebd(0x173)],'serviceCount':_0x5c41df[_0x325ebd(0x15f)],'services':_0x5c41df[_0x325ebd(0x130)][_0x325ebd(0x16d)](summarizeService)},'message':_0x325ebd(0x171)+_0x5c41df[_0x325ebd(0x152)]+_0x325ebd(0x165)+_0x5c41df[_0x325ebd(0x173)]+_0x325ebd(0x13a)};return{'ok':!![],'data':{'registryPath':_0x5c41df[_0x325ebd(0x14e)],'replaced':_0x5c41df[_0x325ebd(0x163)],'imported':_0x5c41df[_0x325ebd(0x152)],'updated':_0x5c41df[_0x325ebd(0x173)],'serviceCount':_0x5c41df['serviceCount'],'service':summarizeService(_0x5c41df[_0x325ebd(0x167)])},'message':(_0x5c41df[_0x325ebd(0x163)]?_0x325ebd(0x12d):_0x325ebd(0x12f))+_0x325ebd(0x13b)+_0x5c41df['entry'][_0x325ebd(0x14b)]+'.'};}},{'service':a62_0x41cbda(0x144),'command':a62_0x41cbda(0x137),'description':a62_0x41cbda(0x139),'risk':a62_0x41cbda(0x143),'confirmationDescription':a62_0x41cbda(0x148),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1e7ad1){const _0x15c73d=a62_0x41cbda,_0x114832=getLocalServiceEntry(_0x1e7ad1[_0x15c73d(0x156)](_0x15c73d(0x144)));return{'method':_0x15c73d(0x162),'url':_0x1e7ad1[_0x15c73d(0x156)](_0x15c73d(0x140)),'body':{'service':_0x1e7ad1[_0x15c73d(0x156)](_0x15c73d(0x144)),'found':Boolean(_0x114832),'version':_0x114832?.[_0x15c73d(0x168)],'source':_0x114832?.[_0x15c73d(0x15c)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x1a4a3b){const _0x194dc0=a62_0x41cbda,_0x3eec81=exportServiceManifest(_0x1a4a3b[_0x194dc0(0x156)](_0x194dc0(0x144)),_0x1a4a3b['str'](_0x194dc0(0x140)));return{'ok':!![],'data':{'registryPath':_0x3eec81['registryPath'],'file':_0x3eec81[_0x194dc0(0x16c)],'service':summarizeService(_0x3eec81['entry'])},'message':'Exported\x20service\x20'+_0x3eec81[_0x194dc0(0x167)][_0x194dc0(0x14b)]+'.'};}},{'service':a62_0x41cbda(0x144),'command':'list','description':a62_0x41cbda(0x155),'risk':a62_0x41cbda(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5b3b11=a62_0x41cbda,_0x3ec428=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3ec428[_0x5b3b11(0x149)],'services':_0x3ec428[_0x5b3b11(0x16d)](summarizeService)}};}},{'service':'service','command':a62_0x41cbda(0x160),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':'write','confirmationDescription':a62_0x41cbda(0x14a),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3e8a04){const _0x512eb1=a62_0x41cbda,_0x178524=getLocalServiceEntry(_0x3e8a04[_0x512eb1(0x156)](_0x512eb1(0x144)));return{'method':_0x512eb1(0x162),'url':getServiceRegistryPath(),'body':{'service':_0x3e8a04[_0x512eb1(0x156)]('service'),'found':Boolean(_0x178524),'version':_0x178524?.[_0x512eb1(0x168)],'source':_0x178524?.[_0x512eb1(0x15c)]},'description':_0x512eb1(0x16b)};},async 'execute'(_0xf24cb2){const _0x57c556=a62_0x41cbda,_0x36d464=removeServiceManifest(_0xf24cb2['str'](_0x57c556(0x144)));return{'ok':!![],'data':{'registryPath':_0x36d464[_0x57c556(0x14e)],'serviceCount':_0x36d464['serviceCount'],'service':summarizeService(_0x36d464[_0x57c556(0x167)])},'message':_0x57c556(0x159)+_0x36d464[_0x57c556(0x167)]['serviceCode']+'.'};}},{'service':a62_0x41cbda(0x144),'command':'detail','description':a62_0x41cbda(0x161),'risk':a62_0x41cbda(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x34e4e3){const _0x3e1991=a62_0x41cbda,_0x1f5a9d=getLocalServiceEntry(_0x34e4e3[_0x3e1991(0x156)](_0x3e1991(0x144)));if(!_0x1f5a9d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x34e4e3[_0x3e1991(0x156)](_0x3e1991(0x144))},'message':_0x3e1991(0x16f)+_0x34e4e3[_0x3e1991(0x156)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x1f5a9d),'manifest':_0x1f5a9d[_0x3e1991(0x12e)],'normalizedManifest':toPublicNormalizedServiceTree(_0x1f5a9d[_0x3e1991(0x135)])}};}}];
@@ -1 +1 @@
1
- (function(_0xb584ab,_0x207058){const _0x38f348=a62_0x25be,_0xba007b=_0xb584ab();while(!![]){try{const _0x5daccc=parseInt(_0x38f348(0x1e3))/0x1+-parseInt(_0x38f348(0x1ca))/0x2*(-parseInt(_0x38f348(0x1ef))/0x3)+-parseInt(_0x38f348(0x200))/0x4*(-parseInt(_0x38f348(0x1ea))/0x5)+-parseInt(_0x38f348(0x1ed))/0x6+-parseInt(_0x38f348(0x209))/0x7*(-parseInt(_0x38f348(0x1bf))/0x8)+parseInt(_0x38f348(0x1fc))/0x9+-parseInt(_0x38f348(0x204))/0xa;if(_0x5daccc===_0x207058)break;else _0xba007b['push'](_0xba007b['shift']());}catch(_0x5dc8bc){_0xba007b['push'](_0xba007b['shift']());}}}(a62_0x1ade,0x94811));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x44efb9={}){const _0x4f3d75=a62_0x25be;return resolve(_0x44efb9[_0x4f3d75(0x1cf)]??homedir(),PRODUCT_CONFIG[_0x4f3d75(0x1e8)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xe1c754={}){const _0x1c088e=a62_0x25be,_0x3b8e7e=getServiceRegistryPath(_0xe1c754);if(!existsSync(_0x3b8e7e))return emptyServiceRegistry();try{const _0x633d3a=readFileSync(_0x3b8e7e,_0x1c088e(0x1d2));if(!_0x633d3a[_0x1c088e(0x208)]())return emptyServiceRegistry();const _0x51ee58=JSON[_0x1c088e(0x1c3)](_0x633d3a);if(_0x51ee58[_0x1c088e(0x1be)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x1c088e(0x1c7)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x51ee58[_0x1c088e(0x1be)]),_0x1c088e(0x1f7)+_0x3b8e7e+'.');if(!Array[_0x1c088e(0x206)](_0x51ee58[_0x1c088e(0x1d5)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x51ee58[_0x1c088e(0x1fb)],'services':_0x51ee58[_0x1c088e(0x1d5)]};}catch(_0x36b9b8){if(_0x36b9b8 instanceof Error&&_0x36b9b8[_0x1c088e(0x1e5)]==='CliError')throw _0x36b9b8;throw CliErrors[_0x1c088e(0x1c7)](_0x1c088e(0x1e6)+_0x3b8e7e,_0x1c088e(0x1fe));}}export function writeServiceRegistry(_0x196261,_0x22e4ce={}){const _0x1f8f91=a62_0x25be,_0x264cf6=getServiceRegistryPath(_0x22e4ce),_0x429ce=dirname(_0x264cf6);!existsSync(_0x429ce)&&mkdirSync(_0x429ce,{'recursive':!![]});const _0x30edcc=_0x264cf6+_0x1f8f91(0x1bc);try{writeFileSync(_0x30edcc,JSON[_0x1f8f91(0x20d)](_0x196261,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x30edcc,_0x264cf6);}catch(_0x4540bd){try{unlinkSync(_0x30edcc);}catch{}if(_0x4540bd?.['code']===_0x1f8f91(0x1da))throw CliErrors[_0x1f8f91(0x1c7)](_0x1f8f91(0x1f9)+_0x264cf6);throw _0x4540bd;}return _0x264cf6;}export function loadServiceManifestFromFile(_0x351dac){const _0x20966f=a62_0x25be,_0x5c1711=resolve(_0x351dac);if(!existsSync(_0x5c1711))throw CliErrors[_0x20966f(0x1c7)](_0x20966f(0x205)+_0x351dac);let _0x3550ed;const _0x41d4db=readFileSync(_0x5c1711,_0x20966f(0x1d2));try{_0x3550ed=JSON['parse'](_0x41d4db);}catch{throw CliErrors[_0x20966f(0x1c7)](_0x20966f(0x1db)+_0x351dac,_0x20966f(0x1f2));}const _0x1cd35d=sha256(_0x41d4db),_0x541657=extractLoadedServiceManifests(_0x3550ed,_0x1cd35d),_0x79d100=aggregateValidationReports(_0x541657),_0x3c697f=_0x541657[0x0];return{'filePath':_0x5c1711,'hash':_0x1cd35d,'kind':isServiceRegistryLike(_0x3550ed)?_0x20966f(0x20e):_0x20966f(0x20c),'manifest':_0x3c697f?.[_0x20966f(0x20c)]??_0x3550ed,'report':_0x79d100,'normalizedManifest':_0x541657[_0x20966f(0x1dd)]===0x1?_0x3c697f?.[_0x20966f(0x1ee)]:undefined,'manifests':_0x541657};}export function importServiceManifest(_0x1412e3,_0x12d189={}){const _0x5033f0=a62_0x25be,_0x36213f=loadServiceManifestFromFile(_0x1412e3);if(!_0x36213f['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x36213f[_0x5033f0(0x1cb)]),_0x5033f0(0x1e4));if(_0x36213f[_0x5033f0(0x1f8)][_0x5033f0(0x1dd)]===0x0)throw CliErrors[_0x5033f0(0x1c7)](_0x5033f0(0x1ce),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x3fdcfa=readServiceRegistry(_0x12d189),_0x4d7cc6=(_0x12d189['now']??(()=>new Date()))()[_0x5033f0(0x1cd)](),_0x420342=[];let _0x39ce1d=0x0,_0x38cd37=0x0;for(const _0x1bd486 of _0x36213f['manifests']){if(!_0x1bd486['normalizedManifest'])continue;const _0x554f99=_0x1bd486['normalizedManifest'][_0x5033f0(0x1dc)][_0x5033f0(0x1c9)],_0x2d3797={'serviceCode':_0x554f99,'version':_0x1bd486['normalizedManifest'][_0x5033f0(0x20b)],'importedAt':_0x4d7cc6,'source':{'type':'file','path':_0x36213f[_0x5033f0(0x1ba)],'hash':_0x1bd486['sourceHash']},'manifest':_0x1bd486[_0x5033f0(0x20c)],'normalizedManifest':_0x1bd486[_0x5033f0(0x1ee)]},_0xc22d02=_0x3fdcfa['services'][_0x5033f0(0x1f3)](_0x121d98=>_0x121d98['serviceCode']===_0x554f99);_0xc22d02>=0x0?(_0x3fdcfa['services'][_0xc22d02]=_0x2d3797,_0x38cd37++):(_0x3fdcfa[_0x5033f0(0x1d5)][_0x5033f0(0x201)](_0x2d3797),_0x39ce1d++),_0x420342['push'](_0x2d3797);}_0x3fdcfa[_0x5033f0(0x1d5)][_0x5033f0(0x1e7)]((_0x2ba424,_0x12b23b)=>_0x2ba424[_0x5033f0(0x1d1)][_0x5033f0(0x1d4)](_0x12b23b[_0x5033f0(0x1d1)])),_0x3fdcfa[_0x5033f0(0x1fb)]=_0x4d7cc6;const _0x126bbd=writeServiceRegistry(_0x3fdcfa,_0x12d189);return{'registryPath':_0x126bbd,'entry':_0x420342[0x0],'replaced':_0x420342[_0x5033f0(0x1dd)]===0x1?_0x38cd37===0x1:_0x38cd37>0x0,'entries':_0x420342,'imported':_0x39ce1d,'updated':_0x38cd37,'serviceCount':_0x3fdcfa[_0x5033f0(0x1d5)]['length']};}export function exportServiceManifest(_0x47c025,_0x956912,_0x3b330b={}){const _0x5f0a2c=a62_0x25be,_0x46287c=getServiceRegistryPath(_0x3b330b),_0xe66ce9=getLocalServiceEntry(_0x47c025,_0x3b330b);if(!_0xe66ce9)throw CliErrors[_0x5f0a2c(0x1c7)](_0x5f0a2c(0x1f0)+_0x47c025,_0x5f0a2c(0x1f1));const _0x48f04e=resolve(_0x956912),_0x28183d=dirname(_0x48f04e);return!existsSync(_0x28183d)&&mkdirSync(_0x28183d,{'recursive':!![]}),writeFileSync(_0x48f04e,JSON[_0x5f0a2c(0x20d)](_0xe66ce9[_0x5f0a2c(0x20c)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x46287c,'filePath':_0x48f04e,'entry':_0xe66ce9};}export function removeServiceManifest(_0x16b2f7,_0x8bfacb={}){const _0x8b2ace=a62_0x25be,_0x30eb2b=readServiceRegistry(_0x8bfacb),_0x3ef3cb=_0x16b2f7[_0x8b2ace(0x208)](),_0x555ab2=_0x30eb2b[_0x8b2ace(0x1d5)]['findIndex'](_0x3527a6=>_0x3527a6['serviceCode']===_0x3ef3cb);if(_0x555ab2<0x0)throw CliErrors[_0x8b2ace(0x1c7)](_0x8b2ace(0x1f0)+_0x3ef3cb,_0x8b2ace(0x1f1));const [_0x41d4dc]=_0x30eb2b['services']['splice'](_0x555ab2,0x1),_0x1acff6=(_0x8bfacb[_0x8b2ace(0x1d0)]??(()=>new Date()))()[_0x8b2ace(0x1cd)]();_0x30eb2b[_0x8b2ace(0x1fb)]=_0x1acff6;const _0x4bf712=writeServiceRegistry(_0x30eb2b,_0x8bfacb);return{'registryPath':_0x4bf712,'entry':_0x41d4dc,'serviceCount':_0x30eb2b[_0x8b2ace(0x1d5)][_0x8b2ace(0x1dd)]};}export function listLocalServices(_0x211f3f={}){const _0x325bf2=a62_0x25be;return readServiceRegistry(_0x211f3f)[_0x325bf2(0x1d5)];}function a62_0x1ade(){const _0x59fefb=['push','$.services[','slice','12742840WZPkul','Service\x20manifest\x20file\x20not\x20found:\x20','isArray','reduce','trim','7HQMDjK','target','version','manifest','stringify','registry','filePath','registryIndex','.tmp','description','schemaVersion','4367048bcSNFe','object','startsWith','kind','parse','map','services\x20must\x20be\x20an\x20array','invalid','validation','flatMap','code','7430yhrKUe','report','path','toISOString','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','homeDir','now','serviceCode','utf8','hex','localeCompare','services','command','].manifest.','update','warnings','ENOENT','Invalid\x20service\x20manifest\x20JSON:\x20','service','length','Unsupported\x20schemaVersion:\x20','errors','risk','].manifest','missing','242108OwtmIe','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','name','Invalid\x20service\x20registry\x20JSON:\x20','sort','homeDirName','message','60995jFOMDJ','importedAt','string','5439102sMhubQ','normalizedManifest','801uXTQfr','Local\x20service\x20not\x20found:\x20','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','findIndex','sha256','source','commandCount','Remove\x20or\x20migrate\x20','manifests','Cannot\x20write\x20service\x20registry:\x20','cliPath','updatedAt','2604951uHewHa','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','digest','236ykQuSf'];a62_0x1ade=function(){return _0x59fefb;};return a62_0x1ade();}export function getLocalServiceEntry(_0x46a35d,_0x453de4={}){const _0x5111a9=a62_0x25be;return readServiceRegistry(_0x453de4)[_0x5111a9(0x1d5)]['find'](_0x471231=>_0x471231[_0x5111a9(0x1d1)]===_0x46a35d[_0x5111a9(0x208)]());}export function listLocalServiceTrees(_0x3f2fe2={}){const _0x2242a2=a62_0x25be;return readServiceRegistry(_0x3f2fe2)[_0x2242a2(0x1d5)][_0x2242a2(0x1c4)](_0x5b9f84=>_0x5b9f84[_0x2242a2(0x1ee)]);}function a62_0x25be(_0x180c51,_0x3865fb){_0x180c51=_0x180c51-0x1ba;const _0x1adeac=a62_0x1ade();let _0x25bed7=_0x1adeac[_0x180c51];return _0x25bed7;}export function inspectServiceRegistry(_0x3894a4={}){const _0x1be8d5=a62_0x25be,_0x4c021f=getServiceRegistryPath(_0x3894a4);if(!existsSync(_0x4c021f))return emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1e2),![]);try{const _0x4b40b7=readFileSync(_0x4c021f,'utf8');if(!_0x4b40b7[_0x1be8d5(0x208)]())return emptyServiceRegistryInspection(_0x4c021f,'empty',!![]);const _0x7b5add=JSON['parse'](_0x4b40b7);if(_0x7b5add[_0x1be8d5(0x1be)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1c6),!![]),'schemaVersion':_0x7b5add[_0x1be8d5(0x1be)],'message':_0x1be8d5(0x1de)+String(_0x7b5add['schemaVersion'])};if(!Array[_0x1be8d5(0x206)](_0x7b5add[_0x1be8d5(0x1d5)]))return{...emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1c6),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x7b5add[_0x1be8d5(0x1fb)],'message':_0x1be8d5(0x1c5)};const _0x589f6a=_0x7b5add[_0x1be8d5(0x1d5)][_0x1be8d5(0x1c4)](summarizeLocalServiceEntry);return{'registryPath':_0x4c021f,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x7b5add['updatedAt'],'serviceCount':_0x589f6a[_0x1be8d5(0x1dd)],'commandCount':_0x589f6a[_0x1be8d5(0x207)]((_0x3ec214,_0x5c515e)=>_0x3ec214+_0x5c515e[_0x1be8d5(0x1f6)],0x0),'services':_0x589f6a};}catch(_0x108c2f){return{...emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1c6),!![]),'message':_0x108c2f instanceof Error?_0x108c2f['message']:String(_0x108c2f)};}}export function formatValidationFailure(_0x4298f9){const _0x25c7ec=a62_0x25be,_0x14f293=_0x4298f9['errors'][_0x25c7ec(0x1c4)](_0x1631cf=>_0x1631cf[_0x25c7ec(0x1cc)]+':\x20'+_0x1631cf[_0x25c7ec(0x1e9)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x14f293['join']('\x0a');}function extractLoadedServiceManifests(_0x552c9d,_0x15499f){const _0x41a4b2=a62_0x25be;if(!isServiceRegistryLike(_0x552c9d)){const _0x206693=_0x552c9d,{manifest:_0x49cf9e,errors:_0x42df1d}=adaptServiceTreeManifestForLegacyFramework(_0x206693),_0x297981=validateServiceTreeManifest(_0x49cf9e),_0x8ba25c=mergeValidationErrors(_0x297981,_0x42df1d);return[{'manifest':_0x206693,'report':_0x8ba25c,'normalizedManifest':_0x8ba25c['ok']?normalizeServiceTreeManifest(_0x49cf9e):undefined,'sourceHash':_0x15499f}];}return _0x552c9d[_0x41a4b2(0x1d5)][_0x41a4b2(0x1c4)]((_0x5c64b3,_0x3b8907)=>{const _0x41d30a=_0x41a4b2,_0x4ecf29=isObjectRecord(_0x5c64b3)?_0x5c64b3[_0x41d30a(0x20c)]:undefined,{manifest:_0x20d48f,errors:_0x4e08f5}=adaptServiceTreeManifestForLegacyFramework(_0x4ecf29),_0x2a3d13=validateServiceTreeManifest(_0x20d48f),_0x5bb8c3=mergeValidationErrors(_0x2a3d13,_0x4e08f5),_0x2d4d1e=isObjectRecord(_0x5c64b3)&&typeof _0x5c64b3[_0x41d30a(0x1d1)]===_0x41d30a(0x1ec)?_0x5c64b3[_0x41d30a(0x1d1)]:undefined;return{'manifest':_0x4ecf29,'report':_0x5bb8c3,'normalizedManifest':_0x5bb8c3['ok']?normalizeServiceTreeManifest(_0x20d48f):undefined,'sourceHash':sha256(JSON['stringify'](_0x4ecf29,null,0x2)+'\x0a'),'registryIndex':_0x3b8907,'registryServiceCode':_0x2d4d1e};});}function mergeValidationErrors(_0x553d4c,_0x525da8){const _0x525ad1=a62_0x25be,_0x140e60=_0x553d4c[_0x525ad1(0x1df)][_0x525ad1(0x1c4)](_0x240adc=>_0x240adc[_0x525ad1(0x1e9)]===_0x525ad1(0x1fd)?{..._0x240adc,'message':'bff\x20target\x20requires\x20functionName.'}:_0x240adc),_0x3f9354=[..._0x525da8,..._0x140e60];return{'ok':_0x3f9354[_0x525ad1(0x1dd)]===0x0,'errors':_0x3f9354,'warnings':_0x553d4c[_0x525ad1(0x1d9)]};}function aggregateValidationReports(_0x229ae7){const _0x37082e=a62_0x25be,_0x1ef657=_0x229ae7[_0x37082e(0x1c8)](_0x4487a9=>_0x4487a9[_0x37082e(0x1bb)]===undefined?_0x4487a9['report'][_0x37082e(0x1df)]:_0x4487a9[_0x37082e(0x1cb)][_0x37082e(0x1df)][_0x37082e(0x1c4)](_0x562eeb=>({..._0x562eeb,'path':prefixRegistryIssuePath(_0x4487a9[_0x37082e(0x1bb)],_0x562eeb[_0x37082e(0x1cc)])}))),_0x209c8a=_0x229ae7[_0x37082e(0x1c8)](_0xab2b8d=>_0xab2b8d[_0x37082e(0x1bb)]===undefined?_0xab2b8d['report'][_0x37082e(0x1d9)]:_0xab2b8d[_0x37082e(0x1cb)][_0x37082e(0x1d9)]['map'](_0x14165d=>({..._0x14165d,'path':prefixRegistryIssuePath(_0xab2b8d['registryIndex'],_0x14165d[_0x37082e(0x1cc)])})));return{'ok':_0x1ef657[_0x37082e(0x1dd)]===0x0,'errors':_0x1ef657,'warnings':_0x209c8a};}function prefixRegistryIssuePath(_0x5aa8c5,_0x41ef85){const _0x46e63c=a62_0x25be;if(_0x41ef85==='$')return _0x46e63c(0x202)+_0x5aa8c5+_0x46e63c(0x1e1);if(_0x41ef85[_0x46e63c(0x1c1)]('$.'))return _0x46e63c(0x202)+_0x5aa8c5+_0x46e63c(0x1e1)+_0x41ef85[_0x46e63c(0x203)](0x1);if(_0x41ef85[_0x46e63c(0x1c1)]('$['))return'$.services['+_0x5aa8c5+_0x46e63c(0x1e1)+_0x41ef85[_0x46e63c(0x203)](0x1);return _0x46e63c(0x202)+_0x5aa8c5+_0x46e63c(0x1d7)+_0x41ef85;}function isServiceRegistryLike(_0x4e7388){const _0x36c81c=a62_0x25be;return isObjectRecord(_0x4e7388)&&_0x4e7388[_0x36c81c(0x1be)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x36c81c(0x206)](_0x4e7388[_0x36c81c(0x1d5)]);}function isObjectRecord(_0xd6107c){const _0x548c60=a62_0x25be;return Boolean(_0xd6107c)&&typeof _0xd6107c===_0x548c60(0x1c0)&&!Array[_0x548c60(0x206)](_0xd6107c);}function emptyServiceRegistryInspection(_0x1e569e,_0x3c0f6c,_0x21da18){return{'registryPath':_0x1e569e,'exists':_0x21da18,'status':_0x3c0f6c,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1cfa0f){const _0x2ae278=a62_0x25be,_0x54f668=_0x1cfa0f[_0x2ae278(0x1ee)],_0x211425=_0x54f668['commands']['map'](_0x428f00=>({'path':_0x428f00[_0x2ae278(0x1fa)],'description':_0x428f00[_0x2ae278(0x1bd)],'risk':_0x428f00[_0x2ae278(0x1e0)],'targetKind':_0x428f00[_0x2ae278(0x20a)][_0x2ae278(0x1c2)],'targetCommand':_0x428f00[_0x2ae278(0x20a)][_0x2ae278(0x1d6)]}));return{'serviceCode':_0x1cfa0f['serviceCode'],'name':_0x54f668[_0x2ae278(0x1dc)][_0x2ae278(0x1e5)],'description':_0x54f668[_0x2ae278(0x1dc)][_0x2ae278(0x1bd)],'version':_0x1cfa0f[_0x2ae278(0x20b)],'importedAt':_0x1cfa0f[_0x2ae278(0x1eb)],'source':_0x1cfa0f[_0x2ae278(0x1f5)],'commandCount':_0x211425[_0x2ae278(0x1dd)],'commands':_0x211425};}function sha256(_0x22b4c7){const _0x7c2356=a62_0x25be;return createHash(_0x7c2356(0x1f4))[_0x7c2356(0x1d8)](_0x22b4c7)[_0x7c2356(0x1ff)](_0x7c2356(0x1d3));}
1
+ const a63_0xb19b1f=a63_0x511b;(function(_0x59ff48,_0xed8fec){const _0x3a2800=a63_0x511b,_0x4144ee=_0x59ff48();while(!![]){try{const _0x171222=parseInt(_0x3a2800(0x110))/0x1*(parseInt(_0x3a2800(0x109))/0x2)+parseInt(_0x3a2800(0xe3))/0x3+parseInt(_0x3a2800(0xea))/0x4+-parseInt(_0x3a2800(0x107))/0x5*(parseInt(_0x3a2800(0x101))/0x6)+parseInt(_0x3a2800(0x100))/0x7+parseInt(_0x3a2800(0xeb))/0x8+-parseInt(_0x3a2800(0xf6))/0x9;if(_0x171222===_0xed8fec)break;else _0x4144ee['push'](_0x4144ee['shift']());}catch(_0x20a74d){_0x4144ee['push'](_0x4144ee['shift']());}}}(a63_0xb60a,0xc407d));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a63_0x511b(_0x34b6d0,_0xcf3843){_0x34b6d0=_0x34b6d0-0xe1;const _0xb60aba=a63_0xb60a();let _0x511bbd=_0xb60aba[_0x34b6d0];return _0x511bbd;}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_0xb19b1f(0xf9);function a63_0xb60a(){const _0x501a87=['updatedAt','commands','manifest','homeDir','file','hex','version','schemaVersion','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','digest','cliPath','Service\x20manifest\x20validation\x20failed:\x0a','bff\x20target\x20requires\x20functionName.','serviceCode','trim','manifests','map','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','stringify','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','utf8','isArray','target','command','report','importedAt','Service\x20manifest\x20file\x20not\x20found:\x20','path','update','Unsupported\x20service\x20registry\x20schemaVersion:\x20','string','sha256','warnings','code','157158ItBPbs','message','$.services[','commandCount','flatMap','slice','normalizedManifest','3542652YzSgty','7404560wqtZEc','name','].manifest','registryIndex','parse','object','find','].manifest.','length','kind','Local\x20service\x20not\x20found:\x20','17419104wPHDKQ','toISOString','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','service.json','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','push','registry','service','services','errors','4225837zoRvhd','11208nKuZfx','description','startsWith','empty','now','services\x20must\x20be\x20an\x20array','155AKsuna','validation','219330sXHRpC','reduce','Invalid\x20service\x20registry\x20JSON:\x20','sort','Cannot\x20write\x20service\x20registry:\x20','invalid','risk','3rRhCEW'];a63_0xb60a=function(){return _0x501a87;};return a63_0xb60a();}export function getServiceRegistryPath(_0x328734={}){const _0x4c100c=a63_0xb19b1f;return resolve(_0x328734[_0x4c100c(0x114)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x54e307={}){const _0x3cbc29=a63_0xb19b1f,_0x4449ea=getServiceRegistryPath(_0x54e307);if(!existsSync(_0x4449ea))return emptyServiceRegistry();try{const _0x47c601=readFileSync(_0x4449ea,_0x3cbc29(0x125));if(!_0x47c601[_0x3cbc29(0x11f)]())return emptyServiceRegistry();const _0x5120d3=JSON['parse'](_0x47c601);if(_0x5120d3[_0x3cbc29(0x118)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x3cbc29(0x108)](_0x3cbc29(0x12e)+String(_0x5120d3[_0x3cbc29(0x118)]),'Remove\x20or\x20migrate\x20'+_0x4449ea+'.');if(!Array[_0x3cbc29(0x126)](_0x5120d3[_0x3cbc29(0xfe)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5120d3['updatedAt'],'services':_0x5120d3[_0x3cbc29(0xfe)]};}catch(_0x456f10){if(_0x456f10 instanceof Error&&_0x456f10['name']==='CliError')throw _0x456f10;throw CliErrors[_0x3cbc29(0x108)](_0x3cbc29(0x10b)+_0x4449ea,_0x3cbc29(0x119));}}export function writeServiceRegistry(_0x52b5a7,_0x5927b2={}){const _0x2bf497=a63_0xb19b1f,_0x2d9b12=getServiceRegistryPath(_0x5927b2),_0x5aaece=dirname(_0x2d9b12);!existsSync(_0x5aaece)&&mkdirSync(_0x5aaece,{'recursive':!![]});const _0xd58679=_0x2d9b12+'.tmp';try{writeFileSync(_0xd58679,JSON['stringify'](_0x52b5a7,null,0x2)+'\x0a',{'encoding':_0x2bf497(0x125),'mode':0x180}),renameSync(_0xd58679,_0x2d9b12);}catch(_0x49e538){try{unlinkSync(_0xd58679);}catch{}if(_0x49e538?.[_0x2bf497(0xe2)]==='ENOENT')throw CliErrors[_0x2bf497(0x108)](_0x2bf497(0x10d)+_0x2d9b12);throw _0x49e538;}return _0x2d9b12;}export function loadServiceManifestFromFile(_0x133b17){const _0x3b003f=a63_0xb19b1f,_0x254d2a=resolve(_0x133b17);if(!existsSync(_0x254d2a))throw CliErrors[_0x3b003f(0x108)](_0x3b003f(0x12b)+_0x133b17);let _0x1896bd;const _0x3887a9=readFileSync(_0x254d2a,_0x3b003f(0x125));try{_0x1896bd=JSON[_0x3b003f(0xef)](_0x3887a9);}catch{throw CliErrors[_0x3b003f(0x108)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x133b17,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x5698d2=sha256(_0x3887a9),_0xf0dc4f=extractLoadedServiceManifests(_0x1896bd,_0x5698d2),_0x13360a=aggregateValidationReports(_0xf0dc4f),_0x40442b=_0xf0dc4f[0x0];return{'filePath':_0x254d2a,'hash':_0x5698d2,'kind':isServiceRegistryLike(_0x1896bd)?_0x3b003f(0xfc):_0x3b003f(0x113),'manifest':_0x40442b?.['manifest']??_0x1896bd,'report':_0x13360a,'normalizedManifest':_0xf0dc4f[_0x3b003f(0xf3)]===0x1?_0x40442b?.[_0x3b003f(0xe9)]:undefined,'manifests':_0xf0dc4f};}export function importServiceManifest(_0x33088a,_0x17a631={}){const _0x2b545b=a63_0xb19b1f,_0x5180b8=loadServiceManifestFromFile(_0x33088a);if(!_0x5180b8[_0x2b545b(0x129)]['ok'])throw CliErrors[_0x2b545b(0x108)](formatValidationFailure(_0x5180b8[_0x2b545b(0x129)]),_0x2b545b(0x122));if(_0x5180b8['manifests']['length']===0x0)throw CliErrors[_0x2b545b(0x108)](_0x2b545b(0x124),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x373fae=readServiceRegistry(_0x17a631),_0x1f93d2=(_0x17a631[_0x2b545b(0x105)]??(()=>new Date()))()[_0x2b545b(0xf7)](),_0x2e0647=[];let _0x50b059=0x0,_0x1c71c7=0x0;for(const _0x441de2 of _0x5180b8[_0x2b545b(0x120)]){if(!_0x441de2[_0x2b545b(0xe9)])continue;const _0x3ced7e=_0x441de2[_0x2b545b(0xe9)][_0x2b545b(0xfd)]['code'],_0x246ece={'serviceCode':_0x3ced7e,'version':_0x441de2['normalizedManifest'][_0x2b545b(0x117)],'importedAt':_0x1f93d2,'source':{'type':_0x2b545b(0x115),'path':_0x5180b8['filePath'],'hash':_0x441de2['sourceHash']},'manifest':_0x441de2[_0x2b545b(0x113)],'normalizedManifest':_0x441de2[_0x2b545b(0xe9)]},_0x4c4978=_0x373fae[_0x2b545b(0xfe)]['findIndex'](_0x34ea98=>_0x34ea98[_0x2b545b(0x11e)]===_0x3ced7e);_0x4c4978>=0x0?(_0x373fae[_0x2b545b(0xfe)][_0x4c4978]=_0x246ece,_0x1c71c7++):(_0x373fae['services'][_0x2b545b(0xfb)](_0x246ece),_0x50b059++),_0x2e0647[_0x2b545b(0xfb)](_0x246ece);}_0x373fae[_0x2b545b(0xfe)][_0x2b545b(0x10c)]((_0x4b938d,_0x50fd05)=>_0x4b938d[_0x2b545b(0x11e)]['localeCompare'](_0x50fd05[_0x2b545b(0x11e)])),_0x373fae[_0x2b545b(0x111)]=_0x1f93d2;const _0x242a78=writeServiceRegistry(_0x373fae,_0x17a631);return{'registryPath':_0x242a78,'entry':_0x2e0647[0x0],'replaced':_0x2e0647[_0x2b545b(0xf3)]===0x1?_0x1c71c7===0x1:_0x1c71c7>0x0,'entries':_0x2e0647,'imported':_0x50b059,'updated':_0x1c71c7,'serviceCount':_0x373fae[_0x2b545b(0xfe)][_0x2b545b(0xf3)]};}export function exportServiceManifest(_0x29a25e,_0x563f45,_0x35bcfb={}){const _0x1138fd=a63_0xb19b1f,_0xd0a34=getServiceRegistryPath(_0x35bcfb),_0x2fa4ba=getLocalServiceEntry(_0x29a25e,_0x35bcfb);if(!_0x2fa4ba)throw CliErrors['validation'](_0x1138fd(0xf5)+_0x29a25e,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x45bb12=resolve(_0x563f45),_0x83923f=dirname(_0x45bb12);return!existsSync(_0x83923f)&&mkdirSync(_0x83923f,{'recursive':!![]}),writeFileSync(_0x45bb12,JSON[_0x1138fd(0x123)](_0x2fa4ba['manifest'],null,0x2)+'\x0a',{'encoding':_0x1138fd(0x125),'mode':0x180}),{'registryPath':_0xd0a34,'filePath':_0x45bb12,'entry':_0x2fa4ba};}export function removeServiceManifest(_0x165854,_0x4591f8={}){const _0x1f70be=a63_0xb19b1f,_0x4f7744=readServiceRegistry(_0x4591f8),_0x12c4da=_0x165854[_0x1f70be(0x11f)](),_0x527e9b=_0x4f7744[_0x1f70be(0xfe)]['findIndex'](_0x133500=>_0x133500['serviceCode']===_0x12c4da);if(_0x527e9b<0x0)throw CliErrors[_0x1f70be(0x108)](_0x1f70be(0xf5)+_0x12c4da,_0x1f70be(0xf8));const [_0x17d8c1]=_0x4f7744[_0x1f70be(0xfe)]['splice'](_0x527e9b,0x1),_0x4f5a8f=(_0x4591f8[_0x1f70be(0x105)]??(()=>new Date()))()['toISOString']();_0x4f7744[_0x1f70be(0x111)]=_0x4f5a8f;const _0x4c4015=writeServiceRegistry(_0x4f7744,_0x4591f8);return{'registryPath':_0x4c4015,'entry':_0x17d8c1,'serviceCount':_0x4f7744[_0x1f70be(0xfe)]['length']};}export function listLocalServices(_0x4c10d7={}){const _0x3c91d1=a63_0xb19b1f;return readServiceRegistry(_0x4c10d7)[_0x3c91d1(0xfe)];}export function getLocalServiceEntry(_0xac7442,_0x583969={}){const _0xaa5bfc=a63_0xb19b1f;return readServiceRegistry(_0x583969)[_0xaa5bfc(0xfe)][_0xaa5bfc(0xf1)](_0x4ad2bb=>_0x4ad2bb[_0xaa5bfc(0x11e)]===_0xac7442[_0xaa5bfc(0x11f)]());}export function listLocalServiceTrees(_0x515b86={}){const _0x979b34=a63_0xb19b1f;return readServiceRegistry(_0x515b86)[_0x979b34(0xfe)]['map'](_0x3bbe54=>_0x3bbe54[_0x979b34(0xe9)]);}export function inspectServiceRegistry(_0x33cad2={}){const _0x164d58=a63_0xb19b1f,_0x1e611f=getServiceRegistryPath(_0x33cad2);if(!existsSync(_0x1e611f))return emptyServiceRegistryInspection(_0x1e611f,'missing',![]);try{const _0x407c5f=readFileSync(_0x1e611f,'utf8');if(!_0x407c5f['trim']())return emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x104),!![]);const _0xf59a2d=JSON[_0x164d58(0xef)](_0x407c5f);if(_0xf59a2d[_0x164d58(0x118)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x10e),!![]),'schemaVersion':_0xf59a2d[_0x164d58(0x118)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0xf59a2d[_0x164d58(0x118)])};if(!Array[_0x164d58(0x126)](_0xf59a2d[_0x164d58(0xfe)]))return{...emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x10e),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xf59a2d[_0x164d58(0x111)],'message':_0x164d58(0x106)};const _0x3cec06=_0xf59a2d[_0x164d58(0xfe)][_0x164d58(0x121)](summarizeLocalServiceEntry);return{'registryPath':_0x1e611f,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xf59a2d[_0x164d58(0x111)],'serviceCount':_0x3cec06[_0x164d58(0xf3)],'commandCount':_0x3cec06[_0x164d58(0x10a)]((_0x148071,_0xc2b1ff)=>_0x148071+_0xc2b1ff[_0x164d58(0xe6)],0x0),'services':_0x3cec06};}catch(_0x4544f8){return{...emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x10e),!![]),'message':_0x4544f8 instanceof Error?_0x4544f8[_0x164d58(0xe4)]:String(_0x4544f8)};}}export function formatValidationFailure(_0x120b1a){const _0x41ef08=a63_0xb19b1f,_0x41865b=_0x120b1a['errors'][_0x41ef08(0x121)](_0x5e7c3c=>_0x5e7c3c[_0x41ef08(0x12c)]+':\x20'+_0x5e7c3c[_0x41ef08(0xe4)]);return _0x41ef08(0x11c)+_0x41865b['join']('\x0a');}function extractLoadedServiceManifests(_0x1a19d8,_0x92b1c7){const _0x334dd0=a63_0xb19b1f;if(!isServiceRegistryLike(_0x1a19d8)){const _0x3fac32=_0x1a19d8,{manifest:_0x49bae3,errors:_0x7ef477}=adaptServiceTreeManifestForLegacyFramework(_0x3fac32),_0x3592c2=validateServiceTreeManifest(_0x49bae3),_0x447ae0=mergeValidationErrors(_0x3592c2,_0x7ef477);return[{'manifest':_0x3fac32,'report':_0x447ae0,'normalizedManifest':_0x447ae0['ok']?normalizeServiceTreeManifest(_0x49bae3):undefined,'sourceHash':_0x92b1c7}];}return _0x1a19d8[_0x334dd0(0xfe)][_0x334dd0(0x121)]((_0x2ebedb,_0xbf77fc)=>{const _0x442312=_0x334dd0,_0x40e9bc=isObjectRecord(_0x2ebedb)?_0x2ebedb[_0x442312(0x113)]:undefined,{manifest:_0x388dd5,errors:_0x2a906d}=adaptServiceTreeManifestForLegacyFramework(_0x40e9bc),_0x5ab9e1=validateServiceTreeManifest(_0x388dd5),_0x4fc3a3=mergeValidationErrors(_0x5ab9e1,_0x2a906d),_0x1fed92=isObjectRecord(_0x2ebedb)&&typeof _0x2ebedb[_0x442312(0x11e)]===_0x442312(0x12f)?_0x2ebedb[_0x442312(0x11e)]:undefined;return{'manifest':_0x40e9bc,'report':_0x4fc3a3,'normalizedManifest':_0x4fc3a3['ok']?normalizeServiceTreeManifest(_0x388dd5):undefined,'sourceHash':sha256(JSON[_0x442312(0x123)](_0x40e9bc,null,0x2)+'\x0a'),'registryIndex':_0xbf77fc,'registryServiceCode':_0x1fed92};});}function mergeValidationErrors(_0x4d1964,_0x11bd04){const _0x8f057b=a63_0xb19b1f,_0x2918ca=_0x4d1964[_0x8f057b(0xff)][_0x8f057b(0x121)](_0x404633=>_0x404633[_0x8f057b(0xe4)]===_0x8f057b(0xfa)?{..._0x404633,'message':_0x8f057b(0x11d)}:_0x404633),_0x30688b=[..._0x11bd04,..._0x2918ca];return{'ok':_0x30688b[_0x8f057b(0xf3)]===0x0,'errors':_0x30688b,'warnings':_0x4d1964[_0x8f057b(0xe1)]};}function aggregateValidationReports(_0x512702){const _0x4e9b3f=a63_0xb19b1f,_0x266959=_0x512702[_0x4e9b3f(0xe7)](_0x4b49a7=>_0x4b49a7[_0x4e9b3f(0xee)]===undefined?_0x4b49a7[_0x4e9b3f(0x129)][_0x4e9b3f(0xff)]:_0x4b49a7[_0x4e9b3f(0x129)][_0x4e9b3f(0xff)][_0x4e9b3f(0x121)](_0x552b0f=>({..._0x552b0f,'path':prefixRegistryIssuePath(_0x4b49a7[_0x4e9b3f(0xee)],_0x552b0f[_0x4e9b3f(0x12c)])}))),_0x279313=_0x512702['flatMap'](_0x2bdc96=>_0x2bdc96[_0x4e9b3f(0xee)]===undefined?_0x2bdc96[_0x4e9b3f(0x129)][_0x4e9b3f(0xe1)]:_0x2bdc96['report'][_0x4e9b3f(0xe1)][_0x4e9b3f(0x121)](_0x24c4cb=>({..._0x24c4cb,'path':prefixRegistryIssuePath(_0x2bdc96[_0x4e9b3f(0xee)],_0x24c4cb['path'])})));return{'ok':_0x266959[_0x4e9b3f(0xf3)]===0x0,'errors':_0x266959,'warnings':_0x279313};}function prefixRegistryIssuePath(_0x594791,_0x453872){const _0x560d67=a63_0xb19b1f;if(_0x453872==='$')return _0x560d67(0xe5)+_0x594791+_0x560d67(0xed);if(_0x453872[_0x560d67(0x103)]('$.'))return _0x560d67(0xe5)+_0x594791+'].manifest'+_0x453872[_0x560d67(0xe8)](0x1);if(_0x453872['startsWith']('$['))return _0x560d67(0xe5)+_0x594791+_0x560d67(0xed)+_0x453872[_0x560d67(0xe8)](0x1);return _0x560d67(0xe5)+_0x594791+_0x560d67(0xf2)+_0x453872;}function isServiceRegistryLike(_0x3cb4d9){const _0x3d141a=a63_0xb19b1f;return isObjectRecord(_0x3cb4d9)&&_0x3cb4d9['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x3d141a(0x126)](_0x3cb4d9['services']);}function isObjectRecord(_0x267f67){const _0x7ba7a7=a63_0xb19b1f;return Boolean(_0x267f67)&&typeof _0x267f67===_0x7ba7a7(0xf0)&&!Array['isArray'](_0x267f67);}function emptyServiceRegistryInspection(_0x4fd620,_0x522fc2,_0x3f57fb){return{'registryPath':_0x4fd620,'exists':_0x3f57fb,'status':_0x522fc2,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x16e2ea){const _0x383ea5=a63_0xb19b1f,_0x274cf4=_0x16e2ea[_0x383ea5(0xe9)],_0x392d07=_0x274cf4[_0x383ea5(0x112)][_0x383ea5(0x121)](_0xdab20c=>({'path':_0xdab20c[_0x383ea5(0x11b)],'description':_0xdab20c[_0x383ea5(0x102)],'risk':_0xdab20c[_0x383ea5(0x10f)],'targetKind':_0xdab20c[_0x383ea5(0x127)][_0x383ea5(0xf4)],'targetCommand':_0xdab20c['target'][_0x383ea5(0x128)]}));return{'serviceCode':_0x16e2ea[_0x383ea5(0x11e)],'name':_0x274cf4[_0x383ea5(0xfd)][_0x383ea5(0xec)],'description':_0x274cf4[_0x383ea5(0xfd)][_0x383ea5(0x102)],'version':_0x16e2ea[_0x383ea5(0x117)],'importedAt':_0x16e2ea[_0x383ea5(0x12a)],'source':_0x16e2ea['source'],'commandCount':_0x392d07[_0x383ea5(0xf3)],'commands':_0x392d07};}function sha256(_0x152be4){const _0x50cd58=a63_0xb19b1f;return createHash(_0x50cd58(0x130))[_0x50cd58(0x12d)](_0x152be4)[_0x50cd58(0x11a)](_0x50cd58(0x116));}
@@ -1 +1 @@
1
- const a63_0x413112=a63_0x5db5;(function(_0x4eedc0,_0x31228a){const _0x4dd2d6=a63_0x5db5,_0x43c32f=_0x4eedc0();while(!![]){try{const _0x1decae=parseInt(_0x4dd2d6(0x1bf))/0x1*(parseInt(_0x4dd2d6(0x1cb))/0x2)+parseInt(_0x4dd2d6(0x1c3))/0x3+-parseInt(_0x4dd2d6(0x1ad))/0x4*(-parseInt(_0x4dd2d6(0x1bc))/0x5)+parseInt(_0x4dd2d6(0x1c0))/0x6+parseInt(_0x4dd2d6(0x1bb))/0x7*(-parseInt(_0x4dd2d6(0x1c8))/0x8)+parseInt(_0x4dd2d6(0x1ca))/0x9*(-parseInt(_0x4dd2d6(0x1be))/0xa)+parseInt(_0x4dd2d6(0x1b6))/0xb*(-parseInt(_0x4dd2d6(0x1ab))/0xc);if(_0x1decae===_0x31228a)break;else _0x43c32f['push'](_0x43c32f['shift']());}catch(_0x35e5f0){_0x43c32f['push'](_0x43c32f['shift']());}}}(a63_0x53b6,0x787be));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';function a63_0x53b6(){const _0x2a8cb8=['9592VZXpvd','validation','9aMbMxH','135832XqWsZk','skill','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','path','name','read','Refusing\x20to\x20overwrite\x20symlink:\x20','21264ItZtRl','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','1636436Dtzjcn','utf8','创建本地自包含的运行态\x20Skill\x20草稿','type','Created\x20local\x20Skill\x20draft\x20','map','rendered','create','str','5522HJFgml','trim','content','skillDir','WRITE','3787PVASeX','5rgkwGZ','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','2950680PSMeQy','8fKbNmQ','3723060pQbliN','isSymbolicLink','files','2261478roazQD','target','bool','skillName','force'];a63_0x53b6=function(){return _0x2a8cb8;};return a63_0x53b6();}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':a63_0x413112(0x1a5),'command':a63_0x413112(0x1b4),'description':a63_0x413112(0x1af),'risk':a63_0x413112(0x1a9),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x328f96){const _0x5b2737=a63_0x413112,_0x336c68=buildSkillCreatePlan(_0x328f96[_0x5b2737(0x1b5)]('name'),_0x328f96['str'](_0x5b2737(0x1b0)),_0x328f96[_0x5b2737(0x1b5)](_0x5b2737(0x1c4)));return{'method':_0x5b2737(0x1ba),'url':_0x336c68[_0x5b2737(0x1b9)],'body':{'skillName':_0x336c68[_0x5b2737(0x1b3)][_0x5b2737(0x1c6)],'type':_0x336c68[_0x5b2737(0x1b3)][_0x5b2737(0x1b0)],'selfContained':!![],'files':_0x336c68[_0x5b2737(0x1b3)][_0x5b2737(0x1c2)][_0x5b2737(0x1b2)](_0x4ee14a=>_0x4ee14a[_0x5b2737(0x1a7)])},'description':_0x5b2737(0x1ac)};},async 'execute'(_0xbbe828){const _0x3025b0=a63_0x413112,_0xcd0f49=buildSkillCreatePlan(_0xbbe828[_0x3025b0(0x1b5)](_0x3025b0(0x1a8)),_0xbbe828[_0x3025b0(0x1b5)](_0x3025b0(0x1b0)),_0xbbe828[_0x3025b0(0x1b5)](_0x3025b0(0x1c4)));return writeSkillDraft(_0xcd0f49,_0xbbe828[_0x3025b0(0x1c5)](_0x3025b0(0x1c7))),{'ok':!![],'data':{'skillName':_0xcd0f49[_0x3025b0(0x1b3)][_0x3025b0(0x1c6)],'type':_0xcd0f49[_0x3025b0(0x1b3)][_0x3025b0(0x1b0)],'dir':_0xcd0f49['skillDir'],'files':_0xcd0f49[_0x3025b0(0x1b3)][_0x3025b0(0x1c2)][_0x3025b0(0x1b2)](_0x44b27e=>_0x44b27e[_0x3025b0(0x1a7)])},'message':_0x3025b0(0x1b1)+_0xcd0f49['rendered'][_0x3025b0(0x1c6)]};}};function buildSkillCreatePlan(_0x174c3c,_0x577e37,_0x193632){const _0x178569=a63_0x413112,_0x3d50fb=_0x577e37[_0x178569(0x1b7)](),_0x766769=renderSkillTemplate({'skillName':_0x174c3c,'type':_0x3d50fb});!_0x3d50fb&&writeCliSideChannelLine(_0x178569(0x1a6));const _0x2ef7b8=resolve(normalizeSkillTarget(_0x193632));return{'rendered':_0x766769,'targetRoot':_0x2ef7b8,'skillDir':resolve(_0x2ef7b8,_0x766769[_0x178569(0x1c6)])};}function a63_0x5db5(_0x14dc53,_0x39d7f5){_0x14dc53=_0x14dc53-0x1a5;const _0x53b6ad=a63_0x53b6();let _0x5db5c4=_0x53b6ad[_0x14dc53];return _0x5db5c4;}function normalizeSkillTarget(_0x4ff2c4){const _0x1815a8=a63_0x413112;return(_0x4ff2c4||DEFAULT_SKILL_TARGET)[_0x1815a8(0x1b7)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x21efbc,_0x3e0580){const _0x175afb=a63_0x413112;if(existsSync(_0x21efbc[_0x175afb(0x1b9)])){const _0xe52707=lstatSync(_0x21efbc['skillDir']);if(!_0xe52707['isDirectory']()||_0xe52707[_0x175afb(0x1c1)]())throw CliErrors[_0x175afb(0x1c9)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x21efbc[_0x175afb(0x1b9)]);if(!_0x3e0580)throw CliErrors[_0x175afb(0x1c9)]('Skill\x20directory\x20already\x20exists:\x20'+_0x21efbc[_0x175afb(0x1b9)],_0x175afb(0x1bd));}for(const _0x4ba491 of _0x21efbc[_0x175afb(0x1b3)][_0x175afb(0x1c2)]){const _0xae0b72=resolve(_0x21efbc[_0x175afb(0x1b9)],_0x4ba491[_0x175afb(0x1a7)]),_0x1cb49d=dirname(_0xae0b72);mkdirSync(_0x1cb49d,{'recursive':!![]});if(existsSync(_0xae0b72)&&lstatSync(_0xae0b72)[_0x175afb(0x1c1)]())throw CliErrors[_0x175afb(0x1c9)](_0x175afb(0x1aa)+_0xae0b72);writeFileSync(_0xae0b72,_0x4ba491[_0x175afb(0x1b8)],_0x175afb(0x1ae));}}
1
+ function a64_0x6571(_0xd0c464,_0x4e8615){_0xd0c464=_0xd0c464-0xcb;const _0x40c180=a64_0x40c1();let _0x657134=_0x40c180[_0xd0c464];return _0x657134;}const a64_0x56439e=a64_0x6571;(function(_0x4a95c6,_0x35d4eb){const _0x45dd2d=a64_0x6571,_0x279c82=_0x4a95c6();while(!![]){try{const _0x526126=-parseInt(_0x45dd2d(0xe3))/0x1*(-parseInt(_0x45dd2d(0xe2))/0x2)+parseInt(_0x45dd2d(0xd4))/0x3*(parseInt(_0x45dd2d(0xe9))/0x4)+parseInt(_0x45dd2d(0xe4))/0x5+parseInt(_0x45dd2d(0xcf))/0x6*(-parseInt(_0x45dd2d(0xdd))/0x7)+-parseInt(_0x45dd2d(0xd0))/0x8*(-parseInt(_0x45dd2d(0xd9))/0x9)+-parseInt(_0x45dd2d(0xec))/0xa+parseInt(_0x45dd2d(0xcd))/0xb*(-parseInt(_0x45dd2d(0xde))/0xc);if(_0x526126===_0x35d4eb)break;else _0x279c82['push'](_0x279c82['shift']());}catch(_0x138ba7){_0x279c82['push'](_0x279c82['shift']());}}}(a64_0x40c1,0x9f1a0));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':'skill','command':a64_0x56439e(0xe8),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a64_0x56439e(0xdc),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4e0835){const _0x24cf69=a64_0x56439e,_0x169ad0=buildSkillCreatePlan(_0x4e0835[_0x24cf69(0xe5)](_0x24cf69(0xda)),_0x4e0835[_0x24cf69(0xe5)](_0x24cf69(0xe7)),_0x4e0835[_0x24cf69(0xe5)]('target'));return{'method':_0x24cf69(0xeb),'url':_0x169ad0[_0x24cf69(0xe0)],'body':{'skillName':_0x169ad0[_0x24cf69(0xe1)]['skillName'],'type':_0x169ad0[_0x24cf69(0xe1)]['type'],'selfContained':!![],'files':_0x169ad0[_0x24cf69(0xe1)]['files'][_0x24cf69(0xd7)](_0x53ac25=>_0x53ac25[_0x24cf69(0xcc)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x3da346){const _0x1852d2=a64_0x56439e,_0x1e88ed=buildSkillCreatePlan(_0x3da346[_0x1852d2(0xe5)]('name'),_0x3da346[_0x1852d2(0xe5)]('type'),_0x3da346[_0x1852d2(0xe5)]('target'));return writeSkillDraft(_0x1e88ed,_0x3da346[_0x1852d2(0xdf)](_0x1852d2(0xd8))),{'ok':!![],'data':{'skillName':_0x1e88ed[_0x1852d2(0xe1)]['skillName'],'type':_0x1e88ed[_0x1852d2(0xe1)][_0x1852d2(0xe7)],'dir':_0x1e88ed[_0x1852d2(0xe0)],'files':_0x1e88ed[_0x1852d2(0xe1)][_0x1852d2(0xcb)][_0x1852d2(0xd7)](_0x1b8a70=>_0x1b8a70[_0x1852d2(0xcc)])},'message':_0x1852d2(0xe6)+_0x1e88ed[_0x1852d2(0xe1)][_0x1852d2(0xee)]};}};function a64_0x40c1(){const _0x3109ed=['61569TsIVWi','name','utf8','read','27013zjyVtI','5877876NIlbCH','bool','skillDir','rendered','4CSmPqw','472281LgnFye','6217865tmKWzE','str','Created\x20local\x20Skill\x20draft\x20','type','create','18556HczaoC','content','WRITE','12227460UtZFWk','Skill\x20directory\x20already\x20exists:\x20','skillName','files','path','44ZQAfaF','validation','204enPJII','944IZvrlv','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','isSymbolicLink','isDirectory','627AuXUBQ','trim','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','map','force'];a64_0x40c1=function(){return _0x3109ed;};return a64_0x40c1();}function buildSkillCreatePlan(_0xaaabe1,_0x4ff98e,_0x16b3aa){const _0x5cc274=a64_0x56439e,_0xd31982=_0x4ff98e[_0x5cc274(0xd5)](),_0x2a4b40=renderSkillTemplate({'skillName':_0xaaabe1,'type':_0xd31982});!_0xd31982&&writeCliSideChannelLine(_0x5cc274(0xd6));const _0x1afbea=resolve(normalizeSkillTarget(_0x16b3aa));return{'rendered':_0x2a4b40,'targetRoot':_0x1afbea,'skillDir':resolve(_0x1afbea,_0x2a4b40[_0x5cc274(0xee)])};}function normalizeSkillTarget(_0x28b318){const _0x284303=a64_0x56439e;return(_0x28b318||DEFAULT_SKILL_TARGET)[_0x284303(0xd5)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0xeaedc9,_0x195d2e){const _0x1a2afe=a64_0x56439e;if(existsSync(_0xeaedc9[_0x1a2afe(0xe0)])){const _0x45d680=lstatSync(_0xeaedc9[_0x1a2afe(0xe0)]);if(!_0x45d680[_0x1a2afe(0xd3)]()||_0x45d680['isSymbolicLink']())throw CliErrors['validation']('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0xeaedc9[_0x1a2afe(0xe0)]);if(!_0x195d2e)throw CliErrors[_0x1a2afe(0xce)](_0x1a2afe(0xed)+_0xeaedc9[_0x1a2afe(0xe0)],_0x1a2afe(0xd1));}for(const _0x23bb50 of _0xeaedc9[_0x1a2afe(0xe1)][_0x1a2afe(0xcb)]){const _0x56608e=resolve(_0xeaedc9['skillDir'],_0x23bb50['path']),_0x51243f=dirname(_0x56608e);mkdirSync(_0x51243f,{'recursive':!![]});if(existsSync(_0x56608e)&&lstatSync(_0x56608e)[_0x1a2afe(0xd2)]())throw CliErrors[_0x1a2afe(0xce)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x56608e);writeFileSync(_0x56608e,_0x23bb50[_0x1a2afe(0xea)],_0x1a2afe(0xdb));}}