@lovrabet/lovrabet-cli 2.3.1-beta.2 → 2.3.1-beta.3

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 (185) hide show
  1. package/README.md +53 -1
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/artifact/index.js +1 -1
  13. package/lib/commands/auth/device.js +1 -1
  14. package/lib/commands/auth/index.js +1 -1
  15. package/lib/commands/auth/prompt.js +1 -1
  16. package/lib/commands/bff/detail.js +1 -1
  17. package/lib/commands/bff/exec.js +1 -1
  18. package/lib/commands/bff/index.js +1 -1
  19. package/lib/commands/cli-skill/index.js +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.d.ts +2 -0
  23. package/lib/commands/common/flags.js +1 -1
  24. package/lib/commands/common/local-file.js +1 -1
  25. package/lib/commands/config/definitions.js +1 -1
  26. package/lib/commands/config/init.d.ts +2 -0
  27. package/lib/commands/config/init.js +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 +33 -1
  93. package/lib/config/domain-config.js +1 -1
  94. package/lib/config/schema.d.ts +1 -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.js +1 -1
  101. package/lib/constant/domain.d.ts +3 -3
  102. package/lib/constant/domain.js +1 -1
  103. package/lib/constant/env.js +1 -1
  104. package/lib/constant/output.js +1 -1
  105. package/lib/constant/product.d.ts +0 -51
  106. package/lib/constant/product.js +1 -1
  107. package/lib/constant/region.d.ts +3 -5
  108. package/lib/constant/region.js +1 -1
  109. package/lib/constant/risk.js +1 -1
  110. package/lib/constant/url.js +1 -1
  111. package/lib/context.js +1 -1
  112. package/lib/core/api-client.d.ts +16 -0
  113. package/lib/core/api-client.js +1 -1
  114. package/lib/core/db-resolver.js +1 -1
  115. package/lib/core/sdk-client.js +1 -1
  116. package/lib/errors.js +1 -1
  117. package/lib/framework/build-all-flags.js +1 -1
  118. package/lib/framework/dryrun.js +1 -1
  119. package/lib/framework/flags.js +1 -1
  120. package/lib/framework/help.js +1 -1
  121. package/lib/framework/index.js +1 -1
  122. package/lib/framework/output.js +1 -1
  123. package/lib/framework/preparse.js +1 -1
  124. package/lib/framework/rate-limit.js +1 -1
  125. package/lib/framework/raw-flags.js +1 -1
  126. package/lib/framework/response.js +1 -1
  127. package/lib/framework/runner-confirmation.js +1 -1
  128. package/lib/framework/runner-error.js +1 -1
  129. package/lib/framework/runner.js +1 -1
  130. package/lib/framework/schema-export.js +1 -1
  131. package/lib/framework/service-order.js +1 -1
  132. package/lib/framework/types.d.ts +0 -2
  133. package/lib/framework/types.js +1 -1
  134. package/lib/generated/build-info.d.ts +4 -4
  135. package/lib/generated/build-info.js +1 -1
  136. package/lib/generated/official-routing.d.ts +59 -0
  137. package/lib/generated/official-routing.js +1 -0
  138. package/lib/generated/routing-contract.d.ts +9 -0
  139. package/lib/generated/routing-contract.js +1 -0
  140. package/lib/help.js +1 -1
  141. package/lib/postinstall.js +1 -1
  142. package/lib/runtime/confirmation.js +1 -1
  143. package/lib/runtime/event.js +1 -1
  144. package/lib/runtime/index.js +1 -1
  145. package/lib/runtime/queue.js +1 -1
  146. package/lib/runtime/resolve.js +1 -1
  147. package/lib/skills/builtin-skill.js +1 -1
  148. package/lib/skills/npx-skills-add.js +1 -1
  149. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  150. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  151. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  152. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  153. package/lib/skills/runtime-skill-sync/links.js +1 -1
  154. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  155. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  156. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  157. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  158. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  159. package/lib/skills/runtime-skill-sync/push.js +1 -1
  160. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  162. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  163. package/lib/skills/runtime-skill-sync.js +1 -1
  164. package/lib/skills/skill-presence.js +1 -1
  165. package/lib/utils/access-key-redaction.js +1 -1
  166. package/lib/utils/apply-jq-filter.js +1 -1
  167. package/lib/utils/cli-version-check.js +1 -1
  168. package/lib/utils/cli-version-policy.js +1 -1
  169. package/lib/utils/logger.js +1 -1
  170. package/lib/utils/lossless-json.js +1 -1
  171. package/lib/utils/params.js +1 -1
  172. package/lib/utils/platform.js +1 -1
  173. package/lib/utils/update-notice.js +1 -1
  174. package/lib/utils/version.js +1 -1
  175. package/lib/utils/write-cli-side-channel.js +1 -1
  176. package/package.json +2 -1
  177. package/skills/lovrabet/SKILL.md +4 -4
  178. package/skills/lovrabet/guides/troubleshooting.md +3 -5
  179. package/skills/lovrabet/references/lovrabet-config-commands.md +33 -10
  180. package/skills/lovrabet/references/lovrabet-config.md +8 -20
  181. package/skills/lovrabet/references/lovrabet-doctor.md +0 -2
  182. package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -3
  183. package/skills/lovrabet.manifest.json +3 -3
  184. package/lib/core/kb-search-client.d.ts +0 -30
  185. package/lib/core/kb-search-client.js +0 -1
@@ -1 +1 @@
1
- const a53_0xeb4b47=a53_0x2ee4;function a53_0x2ee4(_0x32d778,_0x598f84){_0x32d778=_0x32d778-0x1e2;const _0x31870e=a53_0x3187();let _0x2ee4c0=_0x31870e[_0x32d778];return _0x2ee4c0;}(function(_0x4abcca,_0x4de9f4){const _0x34207c=a53_0x2ee4,_0x238ad9=_0x4abcca();while(!![]){try{const _0x482526=parseInt(_0x34207c(0x1f6))/0x1*(-parseInt(_0x34207c(0x1fd))/0x2)+-parseInt(_0x34207c(0x1ed))/0x3*(parseInt(_0x34207c(0x1f5))/0x4)+-parseInt(_0x34207c(0x1fe))/0x5*(parseInt(_0x34207c(0x1eb))/0x6)+-parseInt(_0x34207c(0x1f0))/0x7*(parseInt(_0x34207c(0x1fc))/0x8)+-parseInt(_0x34207c(0x1e4))/0x9+parseInt(_0x34207c(0x1e7))/0xa+parseInt(_0x34207c(0x1ea))/0xb*(parseInt(_0x34207c(0x1f8))/0xc);if(_0x482526===_0x4de9f4)break;else _0x238ad9['push'](_0x238ad9['shift']());}catch(_0x468fd1){_0x238ad9['push'](_0x238ad9['shift']());}}}(a53_0x3187,0x34ae6));import{listRuntimeAppRoles}from'../../core/api-client.js';function a53_0x3187(){const _0x22b7c0=['pagesize','num','993820RGKOTz','validation','trim','33PTnFpx','6126pvrVyr','toUpperCase','114qWeGGQ','list','filter','7eZQnUR','isSafeInteger','name','appCode','roleType','23732ZVTDwZ','19hgYZnJ','runtime','6626184OvCccO','Invalid\x20runtime\x20role\x20type:\x20','includes','length','2229000EALoJp','20422xlzANY','2015mDDULI','Fuzzy\x20role-name\x20filter','number','items','paging','string','Runtime\x20role\x20type','map','page','read','3875355PnQMBw'];a53_0x3187=function(){return _0x22b7c0;};return a53_0x3187();}import{CliErrors}from'../../errors.js';import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';export const roleList={'service':'role','command':a53_0xeb4b47(0x1ee),'description':'List\x20runtime\x20roles\x20for\x20the\x20current\x20app','risk':a53_0xeb4b47(0x1e3),'flags':[{'name':'type','type':a53_0xeb4b47(0x203),'enum':RUNTIME_ROLE_TYPES,'description':a53_0xeb4b47(0x204)},{'name':a53_0xeb4b47(0x1f2),'type':a53_0xeb4b47(0x203),'description':a53_0xeb4b47(0x1ff)},{'name':a53_0xeb4b47(0x1e2),'type':a53_0xeb4b47(0x200),'default':0x1,'description':'Page\x20number'},{'name':a53_0xeb4b47(0x1e5),'type':a53_0xeb4b47(0x200),'default':0x64,'description':'Page\x20size\x20from\x201\x20to\x20100'}],async 'validate'(_0x5e7232){const _0x3234fc=a53_0xeb4b47,_0x7a997c=_0x5e7232['str']('type')['toUpperCase']();if(_0x7a997c&&!RUNTIME_ROLE_TYPES[_0x3234fc(0x1fa)](_0x7a997c))throw CliErrors['validation'](_0x3234fc(0x1f9)+_0x7a997c+'.');const _0xe106c6=_0x5e7232[_0x3234fc(0x1e6)]('page',0x1),_0x47d55d=_0x5e7232[_0x3234fc(0x1e6)](_0x3234fc(0x1e5),0x64);if(!Number[_0x3234fc(0x1f1)](_0xe106c6)||_0xe106c6<0x1)throw CliErrors[_0x3234fc(0x1e8)]('--page\x20must\x20be\x20a\x20positive\x20integer.');if(!Number[_0x3234fc(0x1f1)](_0x47d55d)||_0x47d55d<0x1||_0x47d55d>0x64)throw CliErrors[_0x3234fc(0x1e8)]('--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');},async 'execute'(_0x381b3b){const _0x20b4a1=a53_0xeb4b47,_0x455b95=_0x381b3b['str']('type')[_0x20b4a1(0x1ec)](),_0x34de32=_0x381b3b['str'](_0x20b4a1(0x1f2))[_0x20b4a1(0x1e9)](),_0x16b63c=_0x381b3b[_0x20b4a1(0x1e6)]('page',0x1),_0x16687d=_0x381b3b[_0x20b4a1(0x1e6)](_0x20b4a1(0x1e5),0x64);if(_0x455b95){const _0x1719a1=(await listAllRuntimeRoles(_0x381b3b[_0x20b4a1(0x1f3)],{..._0x34de32?{'roleName':_0x34de32}:{}}))[_0x20b4a1(0x1ef)](_0x59f232=>_0x59f232[_0x20b4a1(0x1f4)]===_0x455b95),_0x5465bd=(_0x16b63c-0x1)*_0x16687d;return{'ok':!![],'data':{'scope':_0x20b4a1(0x1f7),'roles':_0x1719a1['slice'](_0x5465bd,_0x5465bd+_0x16687d)['map'](projectRuntimeRole),'paging':{'currentPage':_0x16b63c,'pageSize':_0x16687d,'totalCount':_0x1719a1[_0x20b4a1(0x1fb)]}}};}const _0x2b5322=await listRuntimeAppRoles(_0x381b3b['appCode'],{..._0x34de32?{'roleName':_0x34de32}:{},'currentPage':_0x16b63c,'pageSize':_0x16687d});return{'ok':!![],'data':{'scope':_0x20b4a1(0x1f7),'roles':_0x2b5322[_0x20b4a1(0x201)][_0x20b4a1(0x205)](projectRuntimeRole),'paging':_0x2b5322[_0x20b4a1(0x202)]}};}};
1
+ function a53_0x4ad6(){const _0x50133d=['201HzNfKL','10190304qFBTgp','map','141448qTEqPR','Page\x20size\x20from\x201\x20to\x20100','string','runtime','page','validation','role','586089FtpUnn','3809318UyYVsW','read','includes','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','--page\x20must\x20be\x20a\x20positive\x20integer.','name','filter','Runtime\x20role\x20type','items','str','389378bsTkzg','type','List\x20runtime\x20roles\x20for\x20the\x20current\x20app','list','Fuzzy\x20role-name\x20filter','roleType','Invalid\x20runtime\x20role\x20type:\x20','pagesize','isSafeInteger','length','num','trim','26204FWgsZf','707eBwmlS','5736140sNGPeu','number','toUpperCase'];a53_0x4ad6=function(){return _0x50133d;};return a53_0x4ad6();}const a53_0xe71f91=a53_0x4711;function a53_0x4711(_0x227011,_0x2a64af){_0x227011=_0x227011-0xfd;const _0x4ad694=a53_0x4ad6();let _0x471141=_0x4ad694[_0x227011];return _0x471141;}(function(_0x4307d3,_0x1301b6){const _0x51fcbd=a53_0x4711,_0x2a94bd=_0x4307d3();while(!![]){try{const _0x10d8a9=-parseInt(_0x51fcbd(0x111))/0x1+parseInt(_0x51fcbd(0x107))/0x2+parseInt(_0x51fcbd(0x122))/0x3*(parseInt(_0x51fcbd(0x11d))/0x4)+-parseInt(_0x51fcbd(0x11f))/0x5+-parseInt(_0x51fcbd(0xfd))/0x6+-parseInt(_0x51fcbd(0x11e))/0x7*(-parseInt(_0x51fcbd(0xff))/0x8)+parseInt(_0x51fcbd(0x106))/0x9;if(_0x10d8a9===_0x1301b6)break;else _0x2a94bd['push'](_0x2a94bd['shift']());}catch(_0x330624){_0x2a94bd['push'](_0x2a94bd['shift']());}}}(a53_0x4ad6,0xea400));import{listRuntimeAppRoles}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';export const roleList={'service':a53_0xe71f91(0x105),'command':a53_0xe71f91(0x114),'description':a53_0xe71f91(0x113),'risk':a53_0xe71f91(0x108),'flags':[{'name':a53_0xe71f91(0x112),'type':a53_0xe71f91(0x101),'enum':RUNTIME_ROLE_TYPES,'description':a53_0xe71f91(0x10e)},{'name':a53_0xe71f91(0x10c),'type':'string','description':a53_0xe71f91(0x115)},{'name':a53_0xe71f91(0x103),'type':a53_0xe71f91(0x120),'default':0x1,'description':'Page\x20number'},{'name':a53_0xe71f91(0x118),'type':a53_0xe71f91(0x120),'default':0x64,'description':a53_0xe71f91(0x100)}],async 'validate'(_0x1c093f){const _0x5240ab=a53_0xe71f91,_0x5063c0=_0x1c093f[_0x5240ab(0x110)]('type')[_0x5240ab(0x121)]();if(_0x5063c0&&!RUNTIME_ROLE_TYPES[_0x5240ab(0x109)](_0x5063c0))throw CliErrors[_0x5240ab(0x104)](_0x5240ab(0x117)+_0x5063c0+'.');const _0x3e4855=_0x1c093f[_0x5240ab(0x11b)]('page',0x1),_0x3df3dd=_0x1c093f[_0x5240ab(0x11b)](_0x5240ab(0x118),0x64);if(!Number[_0x5240ab(0x119)](_0x3e4855)||_0x3e4855<0x1)throw CliErrors[_0x5240ab(0x104)](_0x5240ab(0x10b));if(!Number[_0x5240ab(0x119)](_0x3df3dd)||_0x3df3dd<0x1||_0x3df3dd>0x64)throw CliErrors[_0x5240ab(0x104)](_0x5240ab(0x10a));},async 'execute'(_0x2d4217){const _0x15238d=a53_0xe71f91,_0x3198b3=_0x2d4217[_0x15238d(0x110)]('type')['toUpperCase'](),_0x1491a4=_0x2d4217[_0x15238d(0x110)](_0x15238d(0x10c))[_0x15238d(0x11c)](),_0x47eb2b=_0x2d4217[_0x15238d(0x11b)](_0x15238d(0x103),0x1),_0x3ef7a4=_0x2d4217[_0x15238d(0x11b)](_0x15238d(0x118),0x64);if(_0x3198b3){const _0x3802e8=(await listAllRuntimeRoles(_0x2d4217['appCode'],{..._0x1491a4?{'roleName':_0x1491a4}:{}}))[_0x15238d(0x10d)](_0x221bb6=>_0x221bb6[_0x15238d(0x116)]===_0x3198b3),_0x33785c=(_0x47eb2b-0x1)*_0x3ef7a4;return{'ok':!![],'data':{'scope':_0x15238d(0x102),'roles':_0x3802e8['slice'](_0x33785c,_0x33785c+_0x3ef7a4)[_0x15238d(0xfe)](projectRuntimeRole),'paging':{'currentPage':_0x47eb2b,'pageSize':_0x3ef7a4,'totalCount':_0x3802e8[_0x15238d(0x11a)]}}};}const _0x3c475f=await listRuntimeAppRoles(_0x2d4217['appCode'],{..._0x1491a4?{'roleName':_0x1491a4}:{},'currentPage':_0x47eb2b,'pageSize':_0x3ef7a4});return{'ok':!![],'data':{'scope':_0x15238d(0x102),'roles':_0x3c475f[_0x15238d(0x10f)][_0x15238d(0xfe)](projectRuntimeRole),'paging':_0x3c475f['paging']}};}};
@@ -1 +1 @@
1
- function a54_0x152a(_0x5950d8,_0x3aadc3){_0x5950d8=_0x5950d8-0x1bf;const _0x372c49=a54_0x372c();let _0x152aa1=_0x372c49[_0x5950d8];return _0x152aa1;}const a54_0x5c1c2f=a54_0x152a;(function(_0x410c80,_0x354c6c){const _0x399766=a54_0x152a,_0x26bdb9=_0x410c80();while(!![]){try{const _0x53d8a2=-parseInt(_0x399766(0x20a))/0x1*(parseInt(_0x399766(0x203))/0x2)+parseInt(_0x399766(0x1f4))/0x3*(parseInt(_0x399766(0x1f0))/0x4)+parseInt(_0x399766(0x1cf))/0x5+-parseInt(_0x399766(0x1e3))/0x6*(parseInt(_0x399766(0x1ec))/0x7)+parseInt(_0x399766(0x1eb))/0x8*(parseInt(_0x399766(0x20b))/0x9)+parseInt(_0x399766(0x1e0))/0xa*(-parseInt(_0x399766(0x1f8))/0xb)+-parseInt(_0x399766(0x1f9))/0xc*(-parseInt(_0x399766(0x1e1))/0xd);if(_0x53d8a2===_0x354c6c)break;else _0x26bdb9['push'](_0x26bdb9['shift']());}catch(_0x37abf4){_0x26bdb9['push'](_0x26bdb9['shift']());}}}(a54_0x372c,0xcf54d));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';function a54_0x372c(){const _0x185cdf=['Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','user-add','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','137948GZqEuo','role','OWNER','Runtime\x20user\x20','87GUcQlr','find','map','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','22dVrgvE','1821804LWWMdX','str','roleType','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','userCount','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','length','remark','userId','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','50002wNdgbA','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','Runtime\x20role\x20','Runtime\x20role\x20name\x20\x22','number','Runtime\x20role\x20id\x20','\x20built-in\x20runtime\x20role\x20','34xglexG','9ajfZgi','Cannot\x20','ADMIN','test','includes','filter','expect-user-count','\x20was\x20not\x20found\x20in\x20app\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','push','roleName','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.',',\x20found\x20','appCode','code','string','CUSTOM','Missing\x20runtime\x20role\x20reference.','applyUserList','8394170LxFakQ','user','trim','\x22\x20is\x20ambiguous.','items','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','totalCount','paging','runtime','\x22\x20was\x20not\x20found\x20in\x20app\x20','Pass\x20one\x20role\x20ID:\x20','permitCount','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','userList','\x20is\x20already\x20in\x20runtime\x20role\x20','isSafeInteger','validation','4844610Hpydnk','26CyMVVj','USER','466638ewrZbF','Pass\x20--role\x20<id|name>.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','userName','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','1217856UbkgxY','42YhpcgE'];a54_0x372c=function(){return _0x185cdf;};return a54_0x372c();}import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a54_0x5c1c2f(0x20d),a54_0x5c1c2f(0x1e2),a54_0x5c1c2f(0x1f2),a54_0x5c1c2f(0x1cc)];const BUILTIN_ROLE_TYPES=[a54_0x5c1c2f(0x20d),a54_0x5c1c2f(0x1e2),a54_0x5c1c2f(0x1f2)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x5c1c2f(0x207),'required':!![],'description':a54_0x5c1c2f(0x1f7)};export const ROLE_REF_FLAG={'name':a54_0x5c1c2f(0x1f1),'type':a54_0x5c1c2f(0x1cb),'required':!![],'description':a54_0x5c1c2f(0x1e7)};export const USER_ID_FLAG={'name':a54_0x5c1c2f(0x1d0),'type':a54_0x5c1c2f(0x1cb),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x5c1c2f(0x1c2),'type':a54_0x5c1c2f(0x207),'description':a54_0x5c1c2f(0x1fc)};export function isBuiltinRuntimeRole(_0x31a191){const _0x419bae=a54_0x5c1c2f;return BUILTIN_ROLE_TYPES[_0x419bae(0x1c0)](_0x31a191);}export function assertCustomRuntimeRole(_0x58ab93,_0x578a5b){const _0x26905e=a54_0x5c1c2f;if(_0x58ab93[_0x26905e(0x1fb)]!==_0x26905e(0x1cc))throw CliErrors[_0x26905e(0x1df)](_0x26905e(0x20c)+_0x578a5b+_0x26905e(0x209)+_0x58ab93[_0x26905e(0x1c6)]+'\x20('+_0x58ab93[_0x26905e(0x1fb)]+').',_0x26905e(0x1d4));}export function projectRuntimeRole(_0x2a3520){const _0x3f7a38=a54_0x5c1c2f;return{'id':_0x2a3520['id'],'roleName':_0x2a3520[_0x3f7a38(0x1c6)],'roleType':_0x2a3520[_0x3f7a38(0x1fb)],'remark':_0x2a3520[_0x3f7a38(0x200)],'userCount':_0x2a3520[_0x3f7a38(0x1fd)]??0x0,'permitCount':_0x2a3520[_0x3f7a38(0x1da)]??0x0,'builtin':isBuiltinRuntimeRole(_0x2a3520[_0x3f7a38(0x1fb)])};}export async function getRuntimeRoleById(_0x5153b2,_0x4bd1e3){const _0x577fcc=a54_0x5c1c2f;if(!Number['isSafeInteger'](_0x4bd1e3)||_0x4bd1e3<=0x0)throw CliErrors[_0x577fcc(0x1df)](_0x577fcc(0x204));const _0x46e505=(await listAllRuntimeRoles(_0x5153b2))[_0x577fcc(0x1c1)](_0x567711=>_0x567711['id']===_0x4bd1e3&&(!_0x567711[_0x577fcc(0x1c9)]||_0x567711['appCode']===_0x5153b2));if(_0x46e505[_0x577fcc(0x1ff)]!==0x1)throw CliErrors['validation'](_0x577fcc(0x208)+_0x4bd1e3+_0x577fcc(0x1c3)+_0x5153b2+'.',_0x577fcc(0x1ef));return _0x46e505[0x0];}export async function listAllRuntimeRoles(_0x5c92d0,_0x3ea875={}){const _0x2b91d9=a54_0x5c1c2f,_0x258c6f=0x64,_0x53f56b=[];for(let _0x5973c6=0x1;;_0x5973c6+=0x1){const _0x301cec=await listRuntimeAppRoles(_0x5c92d0,{..._0x3ea875[_0x2b91d9(0x1c6)]?{'roleName':_0x3ea875[_0x2b91d9(0x1c6)]}:{},'currentPage':_0x5973c6,'pageSize':_0x258c6f});_0x53f56b[_0x2b91d9(0x1c5)](..._0x301cec[_0x2b91d9(0x1d3)]);if(_0x301cec[_0x2b91d9(0x1d3)][_0x2b91d9(0x1ff)]<_0x258c6f||_0x301cec[_0x2b91d9(0x1d6)]&&_0x53f56b[_0x2b91d9(0x1ff)]>=_0x301cec[_0x2b91d9(0x1d6)][_0x2b91d9(0x1d5)])return _0x53f56b;}}export async function resolveRuntimeRoleRef(_0x3cb59a,_0x2bbd2e){const _0x1ecaff=a54_0x5c1c2f,_0x156b09=_0x2bbd2e['trim']();if(!_0x156b09)throw CliErrors[_0x1ecaff(0x1df)](_0x1ecaff(0x1cd),_0x1ecaff(0x1e4));if(/^\d+$/[_0x1ecaff(0x1bf)](_0x156b09))return getRuntimeRoleById(_0x3cb59a,Number(_0x156b09));const _0x2085b5=(await listAllRuntimeRoles(_0x3cb59a))['filter'](_0x3267c9=>_0x3267c9[_0x1ecaff(0x1c6)]===_0x156b09);if(_0x2085b5['length']===0x0)throw CliErrors[_0x1ecaff(0x1df)]('Runtime\x20role\x20name\x20\x22'+_0x156b09+_0x1ecaff(0x1d8)+_0x3cb59a+'.',_0x1ecaff(0x1c4));if(_0x2085b5[_0x1ecaff(0x1ff)]>0x1)throw CliErrors[_0x1ecaff(0x1df)](_0x1ecaff(0x206)+_0x156b09+_0x1ecaff(0x1d2),_0x1ecaff(0x1d9)+_0x2085b5[_0x1ecaff(0x1f6)](_0x23cc78=>_0x23cc78['id'])['join'](',\x20')+'.');return _0x2085b5[0x0];}function parseRuntimeUserId(_0x274a09){const _0x1df398=a54_0x5c1c2f,_0x188fde=_0x274a09[_0x1df398(0x1d1)]();if(!/^\d+$/[_0x1df398(0x1bf)](_0x188fde))throw CliErrors[_0x1df398(0x1df)](_0x1df398(0x1ed),_0x1df398(0x202));const _0x2e4026=Number(_0x188fde);if(!Number[_0x1df398(0x1de)](_0x2e4026)||_0x2e4026<=0x0)throw CliErrors[_0x1df398(0x1df)]('Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.');return _0x2e4026;}export async function prepareRuntimeMemberMutation(_0x2ab768,_0x2b6f1a){const _0x127f3e=a54_0x5c1c2f,_0x12af3c=await resolveRuntimeRoleRef(_0x2ab768[_0x127f3e(0x1c9)],_0x2ab768[_0x127f3e(0x1fa)](_0x127f3e(0x1f1)));if(_0x12af3c[_0x127f3e(0x1fb)]===_0x127f3e(0x1f2))throw CliErrors['validation'](_0x127f3e(0x1ea),'Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x535d39=parseRuntimeUserId(_0x2ab768[_0x127f3e(0x1fa)](_0x127f3e(0x1d0))),_0x29e15b=(await listRuntimeRoleUsers(_0x2ab768['appCode']))[_0x127f3e(0x1f6)](_0x1c480d=>({..._0x1c480d,'userList':[..._0x1c480d[_0x127f3e(0x1dc)]??[]],'applyUserList':[..._0x1c480d[_0x127f3e(0x1ce)]??[]]})),_0x46aa08=_0x29e15b[_0x127f3e(0x1f5)](_0x549fbb=>_0x549fbb['id']===_0x12af3c['id']);if(!_0x46aa08)throw CliErrors[_0x127f3e(0x1df)](_0x127f3e(0x205)+_0x12af3c['id']+_0x127f3e(0x1e5),_0x127f3e(0x1e9));const _0x3df14a=_0x46aa08[_0x127f3e(0x1dc)][_0x127f3e(0x1f6)](_0x33e693=>_0x33e693[_0x127f3e(0x201)]),_0x305161=_0x2ab768['flag'](_0x127f3e(0x1c2));if(_0x305161!==undefined&&_0x305161!==null&&_0x305161!==''){const _0x45fcd3=_0x2ab768['num']('expect-user-count');if(!Number[_0x127f3e(0x1de)](_0x45fcd3)||_0x45fcd3<0x0)throw CliErrors['validation'](_0x127f3e(0x1c7));if(_0x3df14a['length']!==_0x45fcd3)throw CliErrors['validation'](_0x127f3e(0x1fe)+_0x45fcd3+_0x127f3e(0x1c8)+_0x3df14a[_0x127f3e(0x1ff)]+'.',_0x127f3e(0x1db));}const _0x5d6bb5=_0x3df14a[_0x127f3e(0x1c0)](_0x535d39),_0x512006=[];let _0xf3cae7=!![];if(_0x2b6f1a===_0x127f3e(0x1ee)){const _0x502bf6=await listRuntimeAppUsers(_0x2ab768['appCode']),_0x55d942=_0x502bf6['filter'](_0x3e897c=>Number(_0x3e897c[_0x127f3e(0x1ca)])===_0x535d39);if(_0x55d942[_0x127f3e(0x1ff)]!==0x1||!_0x55d942[0x0]['userName']?.[_0x127f3e(0x1d1)]())throw CliErrors[_0x127f3e(0x1df)](_0x127f3e(0x1f3)+_0x535d39+_0x127f3e(0x1c3)+_0x2ab768[_0x127f3e(0x1c9)]+'.',_0x127f3e(0x1e8));_0x5d6bb5?(_0xf3cae7=![],_0x512006[_0x127f3e(0x1c5)]('User\x20'+_0x535d39+_0x127f3e(0x1dd)+_0x12af3c['id']+'.')):_0x46aa08[_0x127f3e(0x1dc)][_0x127f3e(0x1c5)]({'userId':_0x535d39,'username':_0x55d942[0x0][_0x127f3e(0x1e6)]});}else!_0x5d6bb5?(_0xf3cae7=![],_0x512006['push']('User\x20'+_0x535d39+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x12af3c['id']+'.')):_0x46aa08['userList']=_0x46aa08['userList'][_0x127f3e(0x1c1)](_0x1af175=>_0x1af175[_0x127f3e(0x201)]!==_0x535d39);return{'role':_0x12af3c,'userId':_0x535d39,'roleList':_0x29e15b,'before':{'userIds':_0x3df14a},'after':{'userIds':_0x46aa08['userList']['map'](_0x22ed91=>_0x22ed91[_0x127f3e(0x201)])},'shouldWrite':_0xf3cae7,'warnings':_0x512006};}export function runtimeRoleWriteResult(_0x24eafb,_0x2dafb4,_0x27caba,_0x127a53,_0x1a9418,_0x275af7=[]){const _0x105664=a54_0x5c1c2f;return{'operation':_0x24eafb,'scope':_0x105664(0x1d7),'selector':_0x2dafb4,'before':_0x27caba,'after':_0x127a53,'dryRun':![],'backend':_0x1a9418,'warnings':_0x275af7};}
1
+ const a54_0x5a0f3b=a54_0x5c0d;(function(_0x35c485,_0x354a07){const _0xaa0f1c=a54_0x5c0d,_0x143a13=_0x35c485();while(!![]){try{const _0x5f3a0d=parseInt(_0xaa0f1c(0x1dc))/0x1+parseInt(_0xaa0f1c(0x1e1))/0x2+parseInt(_0xaa0f1c(0x1f3))/0x3+parseInt(_0xaa0f1c(0x214))/0x4+-parseInt(_0xaa0f1c(0x1f9))/0x5*(-parseInt(_0xaa0f1c(0x1df))/0x6)+parseInt(_0xaa0f1c(0x1f1))/0x7*(parseInt(_0xaa0f1c(0x213))/0x8)+-parseInt(_0xaa0f1c(0x1fe))/0x9;if(_0x5f3a0d===_0x354a07)break;else _0x143a13['push'](_0x143a13['shift']());}catch(_0x5bc265){_0x143a13['push'](_0x143a13['shift']());}}}(a54_0x5b68,0x62435));function a54_0x5b68(){const _0x4fc431=['\x20is\x20not\x20in\x20runtime\x20role\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','OWNER','369601aAfwRM','expect-user-count','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','39846GGStKb','number','516518NDniNO','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','Runtime\x20user\x20',',\x20found\x20','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','Missing\x20runtime\x20role\x20reference.','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','roleType','User\x20','\x22\x20was\x20not\x20found\x20in\x20app\x20','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','string','\x22\x20is\x20ambiguous.','appCode','Runtime\x20numeric\x20userId','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','68663DrHJyj','Pass\x20--role\x20<id|name>.','854340tIhaML','\x20was\x20not\x20found\x20in\x20app\x20','validation','userCount','remark','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','200LLnEUV','paging','trim','join','Runtime\x20role\x20name\x20\x22','12875310sQRKPR','totalCount','num','Runtime\x20role\x20id\x20','ADMIN','code','items','filter','runtime','flag','userId','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','map','userName','userList','applyUserList','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','isSafeInteger','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','str','roleName','424OOlAgq','539672ZtRsrm','push','CUSTOM','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','role','Pass\x20one\x20role\x20ID:\x20','includes','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','USER','test','Cannot\x20','length','user','\x20built-in\x20runtime\x20role\x20'];a54_0x5b68=function(){return _0x4fc431;};return a54_0x5b68();}import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a54_0x5a0f3b(0x202),a54_0x5a0f3b(0x1d2),a54_0x5a0f3b(0x1db),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a54_0x5a0f3b(0x202),'USER',a54_0x5a0f3b(0x1db)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x5a0f3b(0x1e0),'required':!![],'description':a54_0x5a0f3b(0x1e5)};export const ROLE_REF_FLAG={'name':a54_0x5a0f3b(0x1ce),'type':a54_0x5a0f3b(0x1ec),'required':!![],'description':a54_0x5a0f3b(0x20e)};export const USER_ID_FLAG={'name':a54_0x5a0f3b(0x1d6),'type':a54_0x5a0f3b(0x1ec),'required':!![],'description':a54_0x5a0f3b(0x1ef)};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x5a0f3b(0x1dd),'type':a54_0x5a0f3b(0x1e0),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};function a54_0x5c0d(_0x4a3bab,_0x2f3700){_0x4a3bab=_0x4a3bab-0x1cd;const _0x5b68bb=a54_0x5b68();let _0x5c0d07=_0x5b68bb[_0x4a3bab];return _0x5c0d07;}export function isBuiltinRuntimeRole(_0x23e434){const _0x241df6=a54_0x5a0f3b;return BUILTIN_ROLE_TYPES[_0x241df6(0x1d0)](_0x23e434);}export function assertCustomRuntimeRole(_0x4a3b46,_0x467296){const _0x5dcd86=a54_0x5a0f3b;if(_0x4a3b46[_0x5dcd86(0x1e8)]!==_0x5dcd86(0x216))throw CliErrors[_0x5dcd86(0x1f5)](_0x5dcd86(0x1d4)+_0x467296+_0x5dcd86(0x1d7)+_0x4a3b46[_0x5dcd86(0x212)]+'\x20('+_0x4a3b46[_0x5dcd86(0x1e8)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x225aa1){const _0x2a4fd3=a54_0x5a0f3b;return{'id':_0x225aa1['id'],'roleName':_0x225aa1['roleName'],'roleType':_0x225aa1['roleType'],'remark':_0x225aa1[_0x2a4fd3(0x1f7)],'userCount':_0x225aa1[_0x2a4fd3(0x1f6)]??0x0,'permitCount':_0x225aa1['permitCount']??0x0,'builtin':isBuiltinRuntimeRole(_0x225aa1['roleType'])};}export async function getRuntimeRoleById(_0x4ace8a,_0x2fe065){const _0x28f853=a54_0x5a0f3b;if(!Number['isSafeInteger'](_0x2fe065)||_0x2fe065<=0x0)throw CliErrors['validation'](_0x28f853(0x1eb));const _0x58cef9=(await listAllRuntimeRoles(_0x4ace8a))[_0x28f853(0x205)](_0x422470=>_0x422470['id']===_0x2fe065&&(!_0x422470[_0x28f853(0x1ee)]||_0x422470[_0x28f853(0x1ee)]===_0x4ace8a));if(_0x58cef9[_0x28f853(0x1d5)]!==0x1)throw CliErrors[_0x28f853(0x1f5)](_0x28f853(0x201)+_0x2fe065+_0x28f853(0x1f4)+_0x4ace8a+'.',_0x28f853(0x1de));return _0x58cef9[0x0];}export async function listAllRuntimeRoles(_0x24ed2e,_0x3fcff7={}){const _0x2f66a6=a54_0x5a0f3b,_0x40237e=0x64,_0x40fa4b=[];for(let _0x39dc06=0x1;;_0x39dc06+=0x1){const _0x5e5507=await listRuntimeAppRoles(_0x24ed2e,{..._0x3fcff7[_0x2f66a6(0x212)]?{'roleName':_0x3fcff7[_0x2f66a6(0x212)]}:{},'currentPage':_0x39dc06,'pageSize':_0x40237e});_0x40fa4b[_0x2f66a6(0x215)](..._0x5e5507[_0x2f66a6(0x204)]);if(_0x5e5507[_0x2f66a6(0x204)][_0x2f66a6(0x1d5)]<_0x40237e||_0x5e5507[_0x2f66a6(0x1fa)]&&_0x40fa4b[_0x2f66a6(0x1d5)]>=_0x5e5507[_0x2f66a6(0x1fa)][_0x2f66a6(0x1ff)])return _0x40fa4b;}}export async function resolveRuntimeRoleRef(_0x1b7190,_0x36e279){const _0x5b6700=a54_0x5a0f3b,_0x135ea5=_0x36e279['trim']();if(!_0x135ea5)throw CliErrors[_0x5b6700(0x1f5)](_0x5b6700(0x1e6),_0x5b6700(0x1f2));if(/^\d+$/[_0x5b6700(0x1d3)](_0x135ea5))return getRuntimeRoleById(_0x1b7190,Number(_0x135ea5));const _0x460ed2=(await listAllRuntimeRoles(_0x1b7190))[_0x5b6700(0x205)](_0x5b16a9=>_0x5b16a9[_0x5b6700(0x212)]===_0x135ea5);if(_0x460ed2['length']===0x0)throw CliErrors[_0x5b6700(0x1f5)](_0x5b6700(0x1fd)+_0x135ea5+_0x5b6700(0x1ea)+_0x1b7190+'.',_0x5b6700(0x1d9));if(_0x460ed2[_0x5b6700(0x1d5)]>0x1)throw CliErrors[_0x5b6700(0x1f5)](_0x5b6700(0x1fd)+_0x135ea5+_0x5b6700(0x1ed),_0x5b6700(0x1cf)+_0x460ed2[_0x5b6700(0x20a)](_0x50d1b6=>_0x50d1b6['id'])[_0x5b6700(0x1fc)](',\x20')+'.');return _0x460ed2[0x0];}function parseRuntimeUserId(_0xd8ccf7){const _0x2d792f=a54_0x5a0f3b,_0x30e371=_0xd8ccf7[_0x2d792f(0x1fb)]();if(!/^\d+$/[_0x2d792f(0x1d3)](_0x30e371))throw CliErrors[_0x2d792f(0x1f5)](_0x2d792f(0x1cd),_0x2d792f(0x209));const _0x1c855a=Number(_0x30e371);if(!Number[_0x2d792f(0x20f)](_0x1c855a)||_0x1c855a<=0x0)throw CliErrors[_0x2d792f(0x1f5)](_0x2d792f(0x1e7));return _0x1c855a;}export async function prepareRuntimeMemberMutation(_0x45f6e8,_0x23c259){const _0x2095ba=a54_0x5a0f3b,_0x3e7907=await resolveRuntimeRoleRef(_0x45f6e8[_0x2095ba(0x1ee)],_0x45f6e8[_0x2095ba(0x211)](_0x2095ba(0x1ce)));if(_0x3e7907[_0x2095ba(0x1e8)]==='OWNER')throw CliErrors[_0x2095ba(0x1f5)](_0x2095ba(0x210),_0x2095ba(0x1e2));const _0x2c9cc6=parseRuntimeUserId(_0x45f6e8[_0x2095ba(0x211)](_0x2095ba(0x1d6))),_0x14fbbd=(await listRuntimeRoleUsers(_0x45f6e8['appCode']))[_0x2095ba(0x20a)](_0x25be63=>({..._0x25be63,'userList':[..._0x25be63[_0x2095ba(0x20c)]??[]],'applyUserList':[..._0x25be63[_0x2095ba(0x20d)]??[]]})),_0x20b454=_0x14fbbd['find'](_0x5afd6d=>_0x5afd6d['id']===_0x3e7907['id']);if(!_0x20b454)throw CliErrors[_0x2095ba(0x1f5)]('Runtime\x20role\x20'+_0x3e7907['id']+_0x2095ba(0x1f8),'Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0x3e0dd1=_0x20b454[_0x2095ba(0x20c)][_0x2095ba(0x20a)](_0x508b0b=>_0x508b0b['userId']),_0x3b885e=_0x45f6e8[_0x2095ba(0x207)](_0x2095ba(0x1dd));if(_0x3b885e!==undefined&&_0x3b885e!==null&&_0x3b885e!==''){const _0x41e89d=_0x45f6e8[_0x2095ba(0x200)](_0x2095ba(0x1dd));if(!Number['isSafeInteger'](_0x41e89d)||_0x41e89d<0x0)throw CliErrors[_0x2095ba(0x1f5)](_0x2095ba(0x1f0));if(_0x3e0dd1[_0x2095ba(0x1d5)]!==_0x41e89d)throw CliErrors[_0x2095ba(0x1f5)](_0x2095ba(0x1d1)+_0x41e89d+_0x2095ba(0x1e4)+_0x3e0dd1['length']+'.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.');}const _0x147717=_0x3e0dd1[_0x2095ba(0x1d0)](_0x2c9cc6),_0x2ad243=[];let _0x51b547=!![];if(_0x23c259==='user-add'){const _0x276182=await listRuntimeAppUsers(_0x45f6e8['appCode']),_0x3a3475=_0x276182[_0x2095ba(0x205)](_0x79298c=>Number(_0x79298c[_0x2095ba(0x203)])===_0x2c9cc6);if(_0x3a3475[_0x2095ba(0x1d5)]!==0x1||!_0x3a3475[0x0][_0x2095ba(0x20b)]?.[_0x2095ba(0x1fb)]())throw CliErrors['validation'](_0x2095ba(0x1e3)+_0x2c9cc6+_0x2095ba(0x1f4)+_0x45f6e8[_0x2095ba(0x1ee)]+'.',_0x2095ba(0x1da));_0x147717?(_0x51b547=![],_0x2ad243[_0x2095ba(0x215)](_0x2095ba(0x1e9)+_0x2c9cc6+'\x20is\x20already\x20in\x20runtime\x20role\x20'+_0x3e7907['id']+'.')):_0x20b454['userList'][_0x2095ba(0x215)]({'userId':_0x2c9cc6,'username':_0x3a3475[0x0][_0x2095ba(0x20b)]});}else!_0x147717?(_0x51b547=![],_0x2ad243[_0x2095ba(0x215)](_0x2095ba(0x1e9)+_0x2c9cc6+_0x2095ba(0x1d8)+_0x3e7907['id']+'.')):_0x20b454[_0x2095ba(0x20c)]=_0x20b454['userList']['filter'](_0x80beb=>_0x80beb['userId']!==_0x2c9cc6);return{'role':_0x3e7907,'userId':_0x2c9cc6,'roleList':_0x14fbbd,'before':{'userIds':_0x3e0dd1},'after':{'userIds':_0x20b454[_0x2095ba(0x20c)]['map'](_0x44be39=>_0x44be39[_0x2095ba(0x208)])},'shouldWrite':_0x51b547,'warnings':_0x2ad243};}export function runtimeRoleWriteResult(_0x16773f,_0x567104,_0x54fe0a,_0x263cb6,_0xfba7f3,_0x44deda=[]){const _0x4e1f19=a54_0x5a0f3b;return{'operation':_0x16773f,'scope':_0x4e1f19(0x206),'selector':_0x567104,'before':_0x54fe0a,'after':_0x263cb6,'dryRun':![],'backend':_0xfba7f3,'warnings':_0x44deda};}
@@ -1 +1 @@
1
- const a55_0x4f1229=a55_0x1ca5;(function(_0x3f6b32,_0xa43c80){const _0x42e02a=a55_0x1ca5,_0x715ad2=_0x3f6b32();while(!![]){try{const _0x175bcc=parseInt(_0x42e02a(0xa1))/0x1+-parseInt(_0x42e02a(0x93))/0x2+parseInt(_0x42e02a(0x97))/0x3*(-parseInt(_0x42e02a(0x88))/0x4)+-parseInt(_0x42e02a(0x94))/0x5+parseInt(_0x42e02a(0xa0))/0x6+parseInt(_0x42e02a(0x9e))/0x7+-parseInt(_0x42e02a(0x87))/0x8*(parseInt(_0x42e02a(0x86))/0x9);if(_0x175bcc===_0xa43c80)break;else _0x715ad2['push'](_0x715ad2['shift']());}catch(_0x222a9c){_0x715ad2['push'](_0x715ad2['shift']());}}}(a55_0x5d86,0xcf80a));import{updateRuntimeAppRole}from'../../core/api-client.js';function a55_0x1ca5(_0x479b92,_0x48a9c3){_0x479b92=_0x479b92-0x85;const _0x5d8649=a55_0x5d86();let _0x1ca530=_0x5d8649[_0x479b92];return _0x1ca530;}function a55_0x5d86(){const _0x5e7538=['string','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','high-risk-write','body','remark','/client/permit/role/update','11446673LrhhzM','str','3186426cPANEN','1693712dOxCtm','--name\x20must\x20not\x20be\x20blank.','description','num','update','3537OibHDC','15160wCNaNI','3152792VhJESi','flag','Update\x20a\x20runtime\x20CUSTOM\x20role','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','POST','validation','New\x20role\x20name','name','trim','--remark\x20must\x20not\x20be\x20blank.','New\x20non-empty\x20role\x20remark','202344jGBwWP','2938945xNRaQB','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','appCode','6rYfjKa'];a55_0x5d86=function(){return _0x5e7538;};return a55_0x5d86();}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(_0x7cddcc){const _0x3421da=a55_0x1ca5,_0x143eb9=_0x7cddcc['flag']('name')!==undefined,_0x56e3b6=_0x7cddcc[_0x3421da(0x89)](_0x3421da(0x9c))!==undefined;if(!_0x143eb9&&!_0x56e3b6)throw CliErrors[_0x3421da(0x8d)](_0x3421da(0x8b));const _0x20d24a=_0x7cddcc[_0x3421da(0x9f)](_0x3421da(0x8f))['trim'](),_0x4ee85f=_0x7cddcc['str'](_0x3421da(0x9c))[_0x3421da(0x90)]();if(_0x143eb9&&!_0x20d24a)throw CliErrors[_0x3421da(0x8d)](_0x3421da(0xa2));if(_0x56e3b6&&!_0x4ee85f)throw CliErrors[_0x3421da(0x8d)](_0x3421da(0x91),_0x3421da(0x99));return{..._0x143eb9?{'roleName':_0x20d24a}:{},..._0x56e3b6?{'remark':_0x4ee85f}:{}};}async function prepare(_0x1aa6a1){const _0x20f1b8=a55_0x1ca5,_0x597be0=await getRuntimeRoleById(_0x1aa6a1['appCode'],_0x1aa6a1[_0x20f1b8(0xa4)]('id'));return assertCustomRuntimeRole(_0x597be0,_0x20f1b8(0x85)),{'role':_0x597be0,'body':{'id':_0x597be0['id'],'appCode':_0x1aa6a1[_0x20f1b8(0x96)],...updateFields(_0x1aa6a1)}};}export const roleUpdate={'service':'role','command':a55_0x4f1229(0x85),'description':a55_0x4f1229(0x8a),'risk':a55_0x4f1229(0x9a),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,{'name':a55_0x4f1229(0x8f),'type':a55_0x4f1229(0x98),'description':a55_0x4f1229(0x8e)},{'name':a55_0x4f1229(0x9c),'type':a55_0x4f1229(0x98),'description':a55_0x4f1229(0x92)}],async 'validate'(_0x327db9){updateFields(_0x327db9);},async 'dryRun'(_0x23c4fe){const _0x486eec=a55_0x4f1229,{body:_0x3b0510}=await prepare(_0x23c4fe);return dryRun('POST',_0x486eec(0x9d))[_0x486eec(0x9b)](_0x3b0510)[_0x486eec(0xa3)](_0x486eec(0x95))['build']();},async 'execute'(_0x54dcaf){const _0x28c5b8=a55_0x4f1229,{role:_0x296d14,body:_0x54a1db}=await prepare(_0x54dcaf),_0x40372d=await updateRuntimeAppRole(_0x54a1db);return{'ok':!![],'data':runtimeRoleWriteResult(_0x28c5b8(0x85),{'roleId':_0x296d14['id']},projectRuntimeRole(_0x296d14),projectRuntimeRole(_0x40372d),{'method':_0x28c5b8(0x8c),'path':_0x28c5b8(0x9d)})};}};
1
+ const a55_0x18118d=a55_0x8c3f;(function(_0x4ce2ce,_0x5c2e9b){const _0x461d6c=a55_0x8c3f,_0x537069=_0x4ce2ce();while(!![]){try{const _0x56cc92=-parseInt(_0x461d6c(0x158))/0x1+-parseInt(_0x461d6c(0x155))/0x2*(-parseInt(_0x461d6c(0x160))/0x3)+parseInt(_0x461d6c(0x149))/0x4*(-parseInt(_0x461d6c(0x14f))/0x5)+-parseInt(_0x461d6c(0x15b))/0x6*(parseInt(_0x461d6c(0x15e))/0x7)+parseInt(_0x461d6c(0x156))/0x8+-parseInt(_0x461d6c(0x153))/0x9*(-parseInt(_0x461d6c(0x15a))/0xa)+-parseInt(_0x461d6c(0x148))/0xb*(-parseInt(_0x461d6c(0x146))/0xc);if(_0x56cc92===_0x5c2e9b)break;else _0x537069['push'](_0x537069['shift']());}catch(_0x176278){_0x537069['push'](_0x537069['shift']());}}}(a55_0x5bf9,0x7baea));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(_0x52b3f7){const _0x2fc617=a55_0x8c3f,_0x53a1c7=_0x52b3f7['flag']('name')!==undefined,_0x3fb78d=_0x52b3f7[_0x2fc617(0x147)](_0x2fc617(0x143))!==undefined;if(!_0x53a1c7&&!_0x3fb78d)throw CliErrors['validation'](_0x2fc617(0x15f));const _0x14ae01=_0x52b3f7[_0x2fc617(0x14e)](_0x2fc617(0x14d))['trim'](),_0x47549d=_0x52b3f7[_0x2fc617(0x14e)](_0x2fc617(0x143))[_0x2fc617(0x150)]();if(_0x53a1c7&&!_0x14ae01)throw CliErrors[_0x2fc617(0x15c)](_0x2fc617(0x144));if(_0x3fb78d&&!_0x47549d)throw CliErrors['validation'](_0x2fc617(0x151),_0x2fc617(0x14b));return{..._0x53a1c7?{'roleName':_0x14ae01}:{},..._0x3fb78d?{'remark':_0x47549d}:{}};}function a55_0x8c3f(_0x5a37bb,_0x9e69e5){_0x5a37bb=_0x5a37bb-0x13f;const _0x5bf944=a55_0x5bf9();let _0x8c3fae=_0x5bf944[_0x5a37bb];return _0x8c3fae;}function a55_0x5bf9(){const _0x422b1e=['13425900bIYBZd','flag','11CKoPaP','629572aAXieq','num','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','high-risk-write','name','str','10QnXCrA','trim','--remark\x20must\x20not\x20be\x20blank.','role','72WUXiEp','POST','63422hHKbip','1814136xYooPX','New\x20role\x20name','165062EGPIRf','Update\x20a\x20runtime\x20CUSTOM\x20role','286170TOyrGG','282QPQhvS','validation','update','92309ltqdNE','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','3oqBZrM','appCode','Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','/client/permit/role/update','remark','--name\x20must\x20not\x20be\x20blank.','string'];a55_0x5bf9=function(){return _0x422b1e;};return a55_0x5bf9();}async function prepare(_0x2f271b){const _0x13776b=a55_0x8c3f,_0x312ee2=await getRuntimeRoleById(_0x2f271b[_0x13776b(0x13f)],_0x2f271b[_0x13776b(0x14a)]('id'));return assertCustomRuntimeRole(_0x312ee2,'update'),{'role':_0x312ee2,'body':{'id':_0x312ee2['id'],'appCode':_0x2f271b[_0x13776b(0x13f)],...updateFields(_0x2f271b)}};}export const roleUpdate={'service':a55_0x18118d(0x152),'command':a55_0x18118d(0x15d),'description':a55_0x18118d(0x159),'risk':a55_0x18118d(0x14c),'confirmationDescription':a55_0x18118d(0x140),'flags':[ROLE_ID_FLAG,{'name':a55_0x18118d(0x14d),'type':a55_0x18118d(0x145),'description':a55_0x18118d(0x157)},{'name':a55_0x18118d(0x143),'type':'string','description':'New\x20non-empty\x20role\x20remark'}],async 'validate'(_0x3caed1){updateFields(_0x3caed1);},async 'dryRun'(_0x4735b3){const _0x34a4e2=a55_0x18118d,{body:_0x339f9e}=await prepare(_0x4735b3);return dryRun(_0x34a4e2(0x154),_0x34a4e2(0x142))['body'](_0x339f9e)['description'](_0x34a4e2(0x141))['build']();},async 'execute'(_0x126285){const _0x11cfb0=a55_0x18118d,{role:_0x156f8c,body:_0x46894b}=await prepare(_0x126285),_0xed8fbf=await updateRuntimeAppRole(_0x46894b);return{'ok':!![],'data':runtimeRoleWriteResult(_0x11cfb0(0x15d),{'roleId':_0x156f8c['id']},projectRuntimeRole(_0x156f8c),projectRuntimeRole(_0xed8fbf),{'method':'POST','path':_0x11cfb0(0x142)})};}};
@@ -1 +1 @@
1
- const a56_0xaba181=a56_0xcdc0;(function(_0x567563,_0x5c2031){const _0x3c6113=a56_0xcdc0,_0x36703d=_0x567563();while(!![]){try{const _0x31e31b=parseInt(_0x3c6113(0x195))/0x1+-parseInt(_0x3c6113(0x196))/0x2+parseInt(_0x3c6113(0x190))/0x3*(-parseInt(_0x3c6113(0x19c))/0x4)+parseInt(_0x3c6113(0x19a))/0x5+parseInt(_0x3c6113(0x194))/0x6+-parseInt(_0x3c6113(0x19b))/0x7*(-parseInt(_0x3c6113(0x19d))/0x8)+parseInt(_0x3c6113(0x18b))/0x9*(-parseInt(_0x3c6113(0x192))/0xa);if(_0x31e31b===_0x5c2031)break;else _0x36703d['push'](_0x36703d['shift']());}catch(_0x5a15d4){_0x36703d['push'](_0x36703d['shift']());}}}(a56_0x4b32,0xe2f6d));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a56_0xcdc0(_0xf6e9ea,_0x145e7e){_0xf6e9ea=_0xf6e9ea-0x18b;const _0x4b320b=a56_0x4b32();let _0xcdc0d5=_0x4b320b[_0xf6e9ea];return _0xcdc0d5;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a56_0x4b32(){const _0x4bba5a=['922587FGAvDK','body','713420woJYmJ','role','2867094hkMQqQ','600868ZeeORe','100792VmsttZ','before','POST','/client/permit/user-role/update-user-list','88425EdSJkM','2931691moTeRe','16utdkuR','24UNpGOq','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','high-risk-write','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','description','roleList','shouldWrite','after','user-add','18KjTYqz','build','warnings','appCode','Preview:\x20add\x20runtime\x20role\x20member'];a56_0x4b32=function(){return _0x4bba5a;};return a56_0x4b32();}export const roleUserAdd={'service':a56_0xaba181(0x193),'command':a56_0xaba181(0x1a5),'description':a56_0xaba181(0x19e),'risk':a56_0xaba181(0x19f),'confirmationDescription':a56_0xaba181(0x1a0),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2c3a4b){const _0x2b42d4=a56_0xaba181,_0x30d970=await prepareRuntimeMemberMutation(_0x2c3a4b,_0x2b42d4(0x1a5));return dryRun(_0x2b42d4(0x198),_0x2b42d4(0x199))[_0x2b42d4(0x191)]({'appCode':_0x2c3a4b[_0x2b42d4(0x18e)],'roleList':_0x30d970[_0x2b42d4(0x1a2)]})[_0x2b42d4(0x1a1)](_0x30d970[_0x2b42d4(0x1a3)]?_0x2b42d4(0x18f):_0x30d970[_0x2b42d4(0x18d)][0x0])[_0x2b42d4(0x18c)]();},async 'execute'(_0xbf632d){const _0x2bed27=a56_0xaba181,_0x244d1b=await prepareRuntimeMemberMutation(_0xbf632d,_0x2bed27(0x1a5));return _0x244d1b[_0x2bed27(0x1a3)]&&await updateRuntimeRoleUsers(_0xbf632d[_0x2bed27(0x18e)],_0x244d1b['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0x2bed27(0x1a5),{'roleId':_0x244d1b[_0x2bed27(0x193)]['id'],'userId':_0x244d1b['userId']},_0x244d1b[_0x2bed27(0x197)],_0x244d1b[_0x2bed27(0x1a4)],{'method':_0x2bed27(0x198),'path':_0x2bed27(0x199)},_0x244d1b[_0x2bed27(0x18d)])};}};
1
+ const a56_0x901b76=a56_0x3c07;(function(_0x32c58d,_0x39d449){const _0xde02f8=a56_0x3c07,_0x33d59d=_0x32c58d();while(!![]){try{const _0x52e310=parseInt(_0xde02f8(0x12f))/0x1+-parseInt(_0xde02f8(0x12d))/0x2*(-parseInt(_0xde02f8(0x130))/0x3)+-parseInt(_0xde02f8(0x133))/0x4*(parseInt(_0xde02f8(0x120))/0x5)+parseInt(_0xde02f8(0x11f))/0x6*(parseInt(_0xde02f8(0x129))/0x7)+-parseInt(_0xde02f8(0x11b))/0x8+-parseInt(_0xde02f8(0x121))/0x9*(-parseInt(_0xde02f8(0x125))/0xa)+-parseInt(_0xde02f8(0x132))/0xb;if(_0x52e310===_0x39d449)break;else _0x33d59d['push'](_0x33d59d['shift']());}catch(_0x59a690){_0x33d59d['push'](_0x33d59d['shift']());}}}(a56_0x26f3,0xa09fa));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a56_0x26f3(){const _0x4ea8d0=['1073418GJSCWT','roleList','8341322UPQZGg','65180EoCuNZ','before','user-add','5447688JXPNxK','after','POST','build','18186aATciT','170aBYsoO','5094fwWnHh','description','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','Preview:\x20add\x20runtime\x20role\x20member','16070YyuzlZ','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','appCode','shouldWrite','1575xlAQpx','role','userId','warnings','4tsrGsW','high-risk-write','344058xaQVfj'];a56_0x26f3=function(){return _0x4ea8d0;};return a56_0x26f3();}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 a56_0x3c07(_0x34f7c5,_0x3cf7c2){_0x34f7c5=_0x34f7c5-0x11a;const _0x26f337=a56_0x26f3();let _0x3c0796=_0x26f337[_0x34f7c5];return _0x3c0796;}export const roleUserAdd={'service':a56_0x901b76(0x12a),'command':a56_0x901b76(0x11a),'description':a56_0x901b76(0x123),'risk':a56_0x901b76(0x12e),'confirmationDescription':a56_0x901b76(0x126),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x3dff23){const _0x47a87f=a56_0x901b76,_0x19a8bf=await prepareRuntimeMemberMutation(_0x3dff23,_0x47a87f(0x11a));return dryRun(_0x47a87f(0x11d),'/client/permit/user-role/update-user-list')['body']({'appCode':_0x3dff23['appCode'],'roleList':_0x19a8bf[_0x47a87f(0x131)]})[_0x47a87f(0x122)](_0x19a8bf[_0x47a87f(0x128)]?_0x47a87f(0x124):_0x19a8bf[_0x47a87f(0x12c)][0x0])[_0x47a87f(0x11e)]();},async 'execute'(_0x4c8cd2){const _0x3558b5=a56_0x901b76,_0x34d11e=await prepareRuntimeMemberMutation(_0x4c8cd2,'user-add');return _0x34d11e[_0x3558b5(0x128)]&&await updateRuntimeRoleUsers(_0x4c8cd2[_0x3558b5(0x127)],_0x34d11e[_0x3558b5(0x131)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x3558b5(0x11a),{'roleId':_0x34d11e[_0x3558b5(0x12a)]['id'],'userId':_0x34d11e[_0x3558b5(0x12b)]},_0x34d11e[_0x3558b5(0x134)],_0x34d11e[_0x3558b5(0x11c)],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x34d11e[_0x3558b5(0x12c)])};}};
@@ -1 +1 @@
1
- const a57_0x468237=a57_0x46ed;(function(_0x3f05eb,_0x47685e){const _0x3b7fbc=a57_0x46ed,_0x2ba0db=_0x3f05eb();while(!![]){try{const _0xade985=parseInt(_0x3b7fbc(0x99))/0x1+-parseInt(_0x3b7fbc(0xa5))/0x2*(parseInt(_0x3b7fbc(0x93))/0x3)+-parseInt(_0x3b7fbc(0x8c))/0x4+-parseInt(_0x3b7fbc(0x91))/0x5+-parseInt(_0x3b7fbc(0x9c))/0x6*(-parseInt(_0x3b7fbc(0x96))/0x7)+parseInt(_0x3b7fbc(0x8e))/0x8+-parseInt(_0x3b7fbc(0x9a))/0x9*(-parseInt(_0x3b7fbc(0x9f))/0xa);if(_0xade985===_0x47685e)break;else _0x2ba0db['push'](_0x2ba0db['shift']());}catch(_0x2e61b3){_0x2ba0db['push'](_0x2ba0db['shift']());}}}(a57_0x47fb,0x3324a));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x47fb(){const _0x19e959=['role','16647hTDlIb','POST','high-risk-write','14zGkAIx','appCode','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','138985eECxIi','1575jbloCS','/client/permit/user-role/update-user-list','15396nmWlwh','warnings','description','19930ccsGXX','before','userId','body','user-remove','build','76RNKlLQ','471364KUeaLS','shouldWrite','454272kPIcLk','roleList','after','57455swwYRj'];a57_0x47fb=function(){return _0x19e959;};return a57_0x47fb();}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a57_0x46ed(_0x44dcef,_0x4dc704){_0x44dcef=_0x44dcef-0x8c;const _0x47fb48=a57_0x47fb();let _0x46edfe=_0x47fb48[_0x44dcef];return _0x46edfe;}export const roleUserRemove={'service':'role','command':a57_0x468237(0xa3),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':a57_0x468237(0x95),'confirmationDescription':a57_0x468237(0x98),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x6434b3){const _0x3c713f=a57_0x468237,_0x515a4b=await prepareRuntimeMemberMutation(_0x6434b3,_0x3c713f(0xa3));return dryRun(_0x3c713f(0x94),_0x3c713f(0x9b))[_0x3c713f(0xa2)]({'appCode':_0x6434b3[_0x3c713f(0x97)],'roleList':_0x515a4b[_0x3c713f(0x8f)]})[_0x3c713f(0x9e)](_0x515a4b['shouldWrite']?'Preview:\x20remove\x20runtime\x20role\x20member':_0x515a4b[_0x3c713f(0x9d)][0x0])[_0x3c713f(0xa4)]();},async 'execute'(_0x1fd451){const _0x599a42=a57_0x468237,_0x2d16a4=await prepareRuntimeMemberMutation(_0x1fd451,_0x599a42(0xa3));return _0x2d16a4[_0x599a42(0x8d)]&&await updateRuntimeRoleUsers(_0x1fd451[_0x599a42(0x97)],_0x2d16a4[_0x599a42(0x8f)]),{'ok':!![],'data':runtimeRoleWriteResult('user-remove',{'roleId':_0x2d16a4[_0x599a42(0x92)]['id'],'userId':_0x2d16a4[_0x599a42(0xa1)]},_0x2d16a4[_0x599a42(0xa0)],_0x2d16a4[_0x599a42(0x90)],{'method':_0x599a42(0x94),'path':_0x599a42(0x9b)},_0x2d16a4['warnings'])};}};
1
+ const a57_0x69d8a1=a57_0xfa67;(function(_0x293bd9,_0x5dbe75){const _0x49ca53=a57_0xfa67,_0x5de5aa=_0x293bd9();while(!![]){try{const _0x1a97be=-parseInt(_0x49ca53(0x1c7))/0x1+-parseInt(_0x49ca53(0x1b2))/0x2*(parseInt(_0x49ca53(0x1b8))/0x3)+-parseInt(_0x49ca53(0x1c3))/0x4+parseInt(_0x49ca53(0x1c0))/0x5*(-parseInt(_0x49ca53(0x1b9))/0x6)+-parseInt(_0x49ca53(0x1b7))/0x7+parseInt(_0x49ca53(0x1b1))/0x8+-parseInt(_0x49ca53(0x1c2))/0x9*(-parseInt(_0x49ca53(0x1c1))/0xa);if(_0x1a97be===_0x5dbe75)break;else _0x5de5aa['push'](_0x5de5aa['shift']());}catch(_0x4d3fd9){_0x5de5aa['push'](_0x5de5aa['shift']());}}}(a57_0x2ee5,0x3b536));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a57_0xfa67(_0x120076,_0xdeea00){_0x120076=_0x120076-0x1b0;const _0x2ee539=a57_0x2ee5();let _0xfa679b=_0x2ee539[_0x120076];return _0xfa679b;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':'role','command':a57_0x69d8a1(0x1bf),'description':a57_0x69d8a1(0x1ba),'risk':a57_0x69d8a1(0x1be),'confirmationDescription':a57_0x69d8a1(0x1c5),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x4fb345){const _0x171151=a57_0x69d8a1,_0x216de0=await prepareRuntimeMemberMutation(_0x4fb345,'user-remove');return dryRun(_0x171151(0x1b3),_0x171151(0x1c4))['body']({'appCode':_0x4fb345['appCode'],'roleList':_0x216de0[_0x171151(0x1bc)]})['description'](_0x216de0[_0x171151(0x1b6)]?_0x171151(0x1b4):_0x216de0[_0x171151(0x1b5)][0x0])[_0x171151(0x1bb)]();},async 'execute'(_0x4942ac){const _0x340126=a57_0x69d8a1,_0x2f6ce2=await prepareRuntimeMemberMutation(_0x4942ac,_0x340126(0x1bf));return _0x2f6ce2[_0x340126(0x1b6)]&&await updateRuntimeRoleUsers(_0x4942ac['appCode'],_0x2f6ce2[_0x340126(0x1bc)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x340126(0x1bf),{'roleId':_0x2f6ce2[_0x340126(0x1b0)]['id'],'userId':_0x2f6ce2[_0x340126(0x1bd)]},_0x2f6ce2[_0x340126(0x1c6)],_0x2f6ce2['after'],{'method':_0x340126(0x1b3),'path':_0x340126(0x1c4)},_0x2f6ce2['warnings'])};}};function a57_0x2ee5(){const _0x1b2889=['Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','build','roleList','userId','high-risk-write','user-remove','181295uWxlAN','228570xnkPYP','657TrTbjM','1307072IygYbh','/client/permit/user-role/update-user-list','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','before','315728JpgjmI','role','1383640ZDmdUZ','739922EXmowy','POST','Preview:\x20remove\x20runtime\x20role\x20member','warnings','shouldWrite','802858UcxpXB','3NloyKv','78bGZroG'];a57_0x2ee5=function(){return _0x1b2889;};return a57_0x2ee5();}
@@ -1 +1 @@
1
- const a58_0x28822a=a58_0xe6b8;function a58_0x3e91(){const _0x5289e9=['--prompt\x20must\x20not\x20be\x20blank.','string','cron','high-risk-write','trim','schedule-id','taskId','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','2883hklHOn','2752816IbgCAg','deepseek-v4-pro-0813','Preview:\x20run\x20schedule\x20','read','POST','7WvllQT','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','scheduled-at','Page\x20size\x20from\x201\x20to\x20100','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','Schedule\x20kind:\x20CRON\x20or\x20ONCE','limit','Show\x20one\x20schedule\x20by\x20schedule\x20ID','106460GJJUop','2387yltgNg','deepseek-v4-flash-0731','CRON','num','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','detail','Created\x20','\x20from\x20schedule\x20','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','cursor','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','292764nmodWI','delete','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','number','Deleted\x20schedule\x20','1594gNChlj','schedule','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','1930664sdJwjN','--title\x20must\x20not\x20be\x20blank.','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','/api/harness/apps/','Preview:\x20delete\x20schedule\x20','ONCE','Schedule\x20UUID','kind','run','isSafeInteger','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Schedule\x20input\x20is\x20valid','length','DELETE','87753uscdjS','validation','validate','appCode','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','70Jdgtds','build','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','kimi/k3','scheduleId','str','3294963vWnszZ','\x20schedule\x20','description','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.'];a58_0x3e91=function(){return _0x5289e9;};return a58_0x3e91();}(function(_0x33ba5b,_0x2b0581){const _0x5ebc33=a58_0xe6b8,_0xe71e9=_0x33ba5b();while(!![]){try{const _0x49e0df=parseInt(_0x5ebc33(0xde))/0x1+parseInt(_0x5ebc33(0xcc))/0x2*(-parseInt(_0x5ebc33(0xac))/0x3)+-parseInt(_0x5ebc33(0xad))/0x4+parseInt(_0x5ebc33(0xe3))/0x5*(-parseInt(_0x5ebc33(0xc6))/0x6)+parseInt(_0x5ebc33(0xb2))/0x7*(-parseInt(_0x5ebc33(0xcf))/0x8)+parseInt(_0x5ebc33(0xea))/0x9+-parseInt(_0x5ebc33(0xba))/0xa*(-parseInt(_0x5ebc33(0xbb))/0xb);if(_0x49e0df===_0x2b0581)break;else _0xe71e9['push'](_0xe71e9['shift']());}catch(_0x3e51a6){_0xe71e9['push'](_0xe71e9['shift']());}}}(a58_0x3e91,0x5e1c0));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x28822a(0xd6),'type':a58_0x28822a(0xa5),'required':!![],'enum':[a58_0x28822a(0xbd),'ONCE'],'description':a58_0x28822a(0xb7)},CRON_FLAG={'name':a58_0x28822a(0xa6),'type':a58_0x28822a(0xa5),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x28822a(0xb4),'type':a58_0x28822a(0xa5),'description':a58_0x28822a(0xe5)},TITLE_FLAG={'name':'title','type':a58_0x28822a(0xa5),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a58_0x28822a(0xa5),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':'string','enum':[a58_0x28822a(0xe7),a58_0x28822a(0xbc),a58_0x28822a(0xae)],'default':a58_0x28822a(0xbc),'description':a58_0x28822a(0xc8)},SCHEDULE_ID_FLAG={'name':a58_0x28822a(0xa9),'type':a58_0x28822a(0xa5),'required':!![],'description':a58_0x28822a(0xd5),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x28822a(0xc5)}},LIMIT_FLAG={'name':'limit','type':a58_0x28822a(0xca),'default':0x14,'description':a58_0x28822a(0xb5)},CURSOR_FLAG={'name':a58_0x28822a(0xc4),'type':a58_0x28822a(0xa5),'description':a58_0x28822a(0xbf)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x20dcd7){const _0x528641=a58_0x28822a,_0x1854ff=_0x20dcd7[_0x528641(0xe9)]('kind'),_0x129ce4=_0x20dcd7[_0x528641(0xe9)]('title')[_0x528641(0xa8)](),_0x1136df=_0x20dcd7[_0x528641(0xe9)]('prompt')[_0x528641(0xa8)](),_0x5b9496=_0x20dcd7['str']('model'),_0x5957a6=_0x20dcd7[_0x528641(0xe9)](_0x528641(0xa6)),_0x3850e6=_0x20dcd7[_0x528641(0xe9)](_0x528641(0xb4));if(!_0x129ce4)throw CliErrors['validation'](_0x528641(0xd0));if(!_0x1136df)throw CliErrors[_0x528641(0xdf)](_0x528641(0xa4));if(_0x1854ff===_0x528641(0xbd)){if(!_0x5957a6||_0x3850e6)throw CliErrors[_0x528641(0xdf)](_0x528641(0xe2));return{'kind':_0x1854ff,'timezone':'UTC','cron':_0x5957a6,'title':_0x129ce4,'prompt':_0x1136df,'model':_0x5b9496};}if(_0x1854ff===_0x528641(0xd4)){if(!_0x3850e6||_0x5957a6)throw CliErrors[_0x528641(0xdf)](_0x528641(0xe6));return{'kind':_0x1854ff,'timezone':'UTC','scheduledAt':_0x3850e6,'title':_0x129ce4,'prompt':_0x1136df,'model':_0x5b9496};}throw CliErrors['validation'](_0x528641(0xc3));}function scheduleCollectionPath(_0x56eea9){const _0x2b7852=a58_0x28822a;return _0x2b7852(0xd2)+encodeURIComponent(_0x56eea9)+'/schedules';}function a58_0xe6b8(_0x5a480e,_0x10d663){_0x5a480e=_0x5a480e-0xa2;const _0x3e912f=a58_0x3e91();let _0xe6b81d=_0x3e912f[_0x5a480e];return _0xe6b81d;}function scheduleItemPath(_0xb28878,_0x95a135){return scheduleCollectionPath(_0xb28878)+'/'+encodeURIComponent(_0x95a135);}const scheduleValidate={'service':'schedule','command':a58_0x28822a(0xe0),'description':a58_0x28822a(0xc9),'risk':a58_0x28822a(0xb0),'flags':INPUT_FLAGS,async 'validate'(_0x34fd40){readScheduleInput(_0x34fd40);},async 'execute'(_0x50f659){const _0x5b46cb=a58_0x28822a,_0x53048d=readScheduleInput(_0x50f659),_0x5ed402=await validateRuntimeSchedule(_0x50f659[_0x5b46cb(0xe1)],_0x53048d);return{'ok':!![],'data':_0x5ed402,'message':_0x5b46cb(0xdb)};}},scheduleCreate={'service':'schedule','command':'create','description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a58_0x28822a(0xa7),'confirmationDescription':a58_0x28822a(0xab),'flags':INPUT_FLAGS,async 'validate'(_0xb0a04a){readScheduleInput(_0xb0a04a);},async 'execute'(_0x2af780){const _0x2fea00=a58_0x28822a,_0x4df432=readScheduleInput(_0x2af780),_0x5c7011=await validateRuntimeSchedule(_0x2af780['appCode'],_0x4df432),_0x17606d=await createRuntimeSchedule(_0x2af780[_0x2fea00(0xe1)],_0x5c7011);return{'ok':!![],'data':_0x17606d,'message':_0x2fea00(0xc1)+_0x17606d[_0x2fea00(0xd6)]+_0x2fea00(0xeb)+_0x17606d[_0x2fea00(0xe8)]};},async 'dryRun'(_0x161895){const _0x23079a=a58_0x28822a,_0x3a7e66=readScheduleInput(_0x161895);return dryRun(_0x23079a(0xb1),scheduleCollectionPath(_0x161895[_0x23079a(0xe1)]))['body'](_0x3a7e66)['description']('Preview:\x20create\x20an\x20Agent\x20schedule')['build']();}},scheduleList={'service':'schedule','command':'list','description':a58_0x28822a(0xce),'risk':a58_0x28822a(0xb0),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x14d5bf){const _0x44acd3=a58_0x28822a,_0x4e4249=_0x14d5bf[_0x44acd3(0xbe)](_0x44acd3(0xb8));if(!Number[_0x44acd3(0xd8)](_0x4e4249)||_0x4e4249<0x1||_0x4e4249>0x64)throw CliErrors['validation'](_0x44acd3(0xd9));const _0x3b8f65=_0x14d5bf[_0x44acd3(0xe9)](_0x44acd3(0xc4));if(_0x3b8f65&&(_0x3b8f65[_0x44acd3(0xdc)]>0x400||_0x3b8f65[_0x44acd3(0xa8)]()!==_0x3b8f65))throw CliErrors['validation'](_0x44acd3(0xb3));},async 'execute'(_0x448045){const _0x27800f=a58_0x28822a,_0x200058=_0x448045[_0x27800f(0xe9)](_0x27800f(0xc4)),_0x430821=await listRuntimeSchedules(_0x448045['appCode'],{'kind':_0x448045[_0x27800f(0xe9)](_0x27800f(0xd6)),'limit':_0x448045[_0x27800f(0xbe)]('limit'),..._0x200058?{'cursor':_0x200058}:{}});return{'ok':!![],'data':_0x430821};}},scheduleDetail={'service':a58_0x28822a(0xcd),'command':a58_0x28822a(0xc0),'description':a58_0x28822a(0xb9),'risk':a58_0x28822a(0xb0),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x72970d){const _0x1145b5=a58_0x28822a,_0x3a1cd7=await getRuntimeSchedule(_0x72970d[_0x1145b5(0xe1)],_0x72970d['str'](_0x1145b5(0xa9)));return{'ok':!![],'data':_0x3a1cd7};}},scheduleRun={'service':'schedule','command':a58_0x28822a(0xd7),'description':a58_0x28822a(0xd1),'risk':a58_0x28822a(0xa7),'confirmationDescription':a58_0x28822a(0xda),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x42554b){const _0x2631f7=a58_0x28822a,_0x498384=_0x42554b['str'](_0x2631f7(0xa9)),_0x37f175=await runRuntimeSchedule(_0x42554b[_0x2631f7(0xe1)],_0x498384);return{'ok':!![],'data':_0x37f175,'message':'Queued\x20Task\x20'+_0x37f175[_0x2631f7(0xaa)]+_0x2631f7(0xc2)+_0x498384};},async 'dryRun'(_0x476c64){const _0x43dd77=a58_0x28822a,_0x2cc372=_0x476c64[_0x43dd77(0xe9)](_0x43dd77(0xa9));return dryRun('POST',scheduleItemPath(_0x476c64[_0x43dd77(0xe1)],_0x2cc372)+'/run')['description'](_0x43dd77(0xaf)+_0x2cc372+'\x20immediately')[_0x43dd77(0xe4)]();}},scheduleDelete={'service':a58_0x28822a(0xcd),'command':a58_0x28822a(0xc7),'description':a58_0x28822a(0xb6),'risk':a58_0x28822a(0xa7),'confirmationDescription':a58_0x28822a(0xa3),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x39accf){const _0x2949b2=a58_0x28822a,_0x3fc057=_0x39accf[_0x2949b2(0xe9)]('schedule-id'),_0x154399=await deleteRuntimeSchedule(_0x39accf[_0x2949b2(0xe1)],_0x3fc057);return{'ok':!![],'data':_0x154399,'message':_0x2949b2(0xcb)+_0x3fc057};},async 'dryRun'(_0x3b0780){const _0x36edde=a58_0x28822a,_0xcd4849=_0x3b0780[_0x36edde(0xe9)](_0x36edde(0xa9));return dryRun(_0x36edde(0xdd),scheduleItemPath(_0x3b0780[_0x36edde(0xe1)],_0xcd4849))[_0x36edde(0xa2)](_0x36edde(0xd3)+_0xcd4849)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0xbc541e=a58_0x164e;(function(_0x520010,_0x200c66){const _0x27bc69=a58_0x164e,_0xda8843=_0x520010();while(!![]){try{const _0x18ef2f=-parseInt(_0x27bc69(0x176))/0x1+-parseInt(_0x27bc69(0x185))/0x2*(-parseInt(_0x27bc69(0x154))/0x3)+-parseInt(_0x27bc69(0x182))/0x4+parseInt(_0x27bc69(0x17e))/0x5*(-parseInt(_0x27bc69(0x15c))/0x6)+-parseInt(_0x27bc69(0x179))/0x7+-parseInt(_0x27bc69(0x18b))/0x8+parseInt(_0x27bc69(0x15e))/0x9*(parseInt(_0x27bc69(0x15f))/0xa);if(_0x18ef2f===_0x200c66)break;else _0xda8843['push'](_0xda8843['shift']());}catch(_0x1ce076){_0xda8843['push'](_0xda8843['shift']());}}}(a58_0x143b,0x19afa));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':'kind','type':'string','required':!![],'enum':[a58_0xbc541e(0x184),a58_0xbc541e(0x173)],'description':a58_0xbc541e(0x163)},CRON_FLAG={'name':'cron','type':a58_0xbc541e(0x190),'description':a58_0xbc541e(0x193)},SCHEDULED_AT_FLAG={'name':a58_0xbc541e(0x18f),'type':a58_0xbc541e(0x190),'description':a58_0xbc541e(0x17f)},TITLE_FLAG={'name':a58_0xbc541e(0x157),'type':'string','required':!![],'description':a58_0xbc541e(0x16b)},PROMPT_FLAG={'name':a58_0xbc541e(0x17d),'type':a58_0xbc541e(0x190),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':a58_0xbc541e(0x190),'enum':[a58_0xbc541e(0x192),a58_0xbc541e(0x16d),a58_0xbc541e(0x178)],'default':a58_0xbc541e(0x16d),'description':a58_0xbc541e(0x188)},SCHEDULE_ID_FLAG={'name':a58_0xbc541e(0x17a),'type':a58_0xbc541e(0x190),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0xbc541e(0x14f)}},LIMIT_FLAG={'name':a58_0xbc541e(0x151),'type':a58_0xbc541e(0x174),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0xbc541e(0x183),'type':a58_0xbc541e(0x190),'description':a58_0xbc541e(0x152)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function a58_0x143b(){const _0x4c49a1=['trim','num','--title\x20must\x20not\x20be\x20blank.','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','run','Queued\x20Task\x20','Schedule\x20title','DELETE','deepseek-v4-flash-0731','Preview:\x20create\x20an\x20Agent\x20schedule','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','length','Schedule\x20input\x20is\x20valid','appCode','ONCE','number','str','55551dVbFIv','/api/harness/apps/','deepseek-v4-pro-0813','558593PIfAWB','schedule-id','\x20from\x20schedule\x20','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','prompt','1945olPSyM','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','delete','POST','47784CwFOEu','cursor','CRON','23362BTZnGJ','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','validation','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','UTC','high-risk-write','539288KMpciQ','build','/schedules','list','scheduled-at','string','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','kimi/k3','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','isSafeInteger','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','description','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','limit','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Preview:\x20delete\x20schedule\x20','15TJEvTX','detail','read','title','schedule','scheduleId','--prompt\x20must\x20not\x20be\x20blank.','body','2058hNUFQp','cron','9cPkJiB','3949390LsOjHw','create','kind','Created\x20','Schedule\x20kind:\x20CRON\x20or\x20ONCE','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.'];a58_0x143b=function(){return _0x4c49a1;};return a58_0x143b();}function readScheduleInput(_0x29498b){const _0x72a9c8=a58_0xbc541e,_0x421766=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x161)),_0x189bb3=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x157))['trim'](),_0x4534f6=_0x29498b['str']('prompt')[_0x72a9c8(0x165)](),_0x3b0195=_0x29498b[_0x72a9c8(0x175)]('model'),_0x46f3cc=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x15d)),_0xcdd597=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x18f));if(!_0x189bb3)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x167));if(!_0x4534f6)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x15a));if(_0x421766===_0x72a9c8(0x184)){if(!_0x46f3cc||_0xcdd597)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x191));return{'kind':_0x421766,'timezone':'UTC','cron':_0x46f3cc,'title':_0x189bb3,'prompt':_0x4534f6,'model':_0x3b0195};}if(_0x421766===_0x72a9c8(0x173)){if(!_0xcdd597||_0x46f3cc)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x17c));return{'kind':_0x421766,'timezone':_0x72a9c8(0x189),'scheduledAt':_0xcdd597,'title':_0x189bb3,'prompt':_0x4534f6,'model':_0x3b0195};}throw CliErrors[_0x72a9c8(0x187)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x26517f){const _0x263fd8=a58_0xbc541e;return _0x263fd8(0x177)+encodeURIComponent(_0x26517f)+_0x263fd8(0x18d);}function scheduleItemPath(_0x5b60a5,_0x5d2aab){return scheduleCollectionPath(_0x5b60a5)+'/'+encodeURIComponent(_0x5d2aab);}function a58_0x164e(_0x55e82f,_0x5f3c3e){_0x55e82f=_0x55e82f-0x14e;const _0x143ba4=a58_0x143b();let _0x164e21=_0x143ba4[_0x55e82f];return _0x164e21;}const scheduleValidate={'service':a58_0xbc541e(0x158),'command':'validate','description':a58_0xbc541e(0x168),'risk':a58_0xbc541e(0x156),'flags':INPUT_FLAGS,async 'validate'(_0x425627){readScheduleInput(_0x425627);},async 'execute'(_0x53851f){const _0x509523=a58_0xbc541e,_0x47ef1b=readScheduleInput(_0x53851f),_0x527157=await validateRuntimeSchedule(_0x53851f[_0x509523(0x172)],_0x47ef1b);return{'ok':!![],'data':_0x527157,'message':_0x509523(0x171)};}},scheduleCreate={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x160),'description':a58_0xbc541e(0x150),'risk':a58_0xbc541e(0x18a),'confirmationDescription':a58_0xbc541e(0x186),'flags':INPUT_FLAGS,async 'validate'(_0x33ea3a){readScheduleInput(_0x33ea3a);},async 'execute'(_0x56fdf4){const _0x3a6273=a58_0xbc541e,_0x58fd11=readScheduleInput(_0x56fdf4),_0xdd1073=await validateRuntimeSchedule(_0x56fdf4[_0x3a6273(0x172)],_0x58fd11),_0x26c94e=await createRuntimeSchedule(_0x56fdf4[_0x3a6273(0x172)],_0xdd1073);return{'ok':!![],'data':_0x26c94e,'message':_0x3a6273(0x162)+_0x26c94e[_0x3a6273(0x161)]+'\x20schedule\x20'+_0x26c94e[_0x3a6273(0x159)]};},async 'dryRun'(_0x42951b){const _0x397ff8=a58_0xbc541e,_0x2f2b93=readScheduleInput(_0x42951b);return dryRun('POST',scheduleCollectionPath(_0x42951b[_0x397ff8(0x172)]))[_0x397ff8(0x15b)](_0x2f2b93)[_0x397ff8(0x197)](_0x397ff8(0x16e))[_0x397ff8(0x18c)]();}},scheduleList={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x18e),'description':a58_0xbc541e(0x194),'risk':a58_0xbc541e(0x156),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x30886a){const _0x4a2ab1=a58_0xbc541e,_0x5bf6dc=_0x30886a['num'](_0x4a2ab1(0x151));if(!Number[_0x4a2ab1(0x195)](_0x5bf6dc)||_0x5bf6dc<0x1||_0x5bf6dc>0x64)throw CliErrors['validation'](_0x4a2ab1(0x164));const _0x45a489=_0x30886a[_0x4a2ab1(0x175)](_0x4a2ab1(0x183));if(_0x45a489&&(_0x45a489[_0x4a2ab1(0x170)]>0x400||_0x45a489[_0x4a2ab1(0x165)]()!==_0x45a489))throw CliErrors[_0x4a2ab1(0x187)](_0x4a2ab1(0x14e));},async 'execute'(_0x322aff){const _0x3f6b55=a58_0xbc541e,_0x7715ca=_0x322aff[_0x3f6b55(0x175)]('cursor'),_0x1bdef8=await listRuntimeSchedules(_0x322aff[_0x3f6b55(0x172)],{'kind':_0x322aff[_0x3f6b55(0x175)](_0x3f6b55(0x161)),'limit':_0x322aff[_0x3f6b55(0x166)](_0x3f6b55(0x151)),..._0x7715ca?{'cursor':_0x7715ca}:{}});return{'ok':!![],'data':_0x1bdef8};}},scheduleDetail={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x155),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0xbc541e(0x156),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xeb65c8){const _0x2f71a9=a58_0xbc541e,_0x59a3c8=await getRuntimeSchedule(_0xeb65c8['appCode'],_0xeb65c8[_0x2f71a9(0x175)](_0x2f71a9(0x17a)));return{'ok':!![],'data':_0x59a3c8};}},scheduleRun={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x169),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0xbc541e(0x18a),'confirmationDescription':a58_0xbc541e(0x196),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5a03e1){const _0x5714e8=a58_0xbc541e,_0x57925f=_0x5a03e1['str']('schedule-id'),_0x37c39d=await runRuntimeSchedule(_0x5a03e1[_0x5714e8(0x172)],_0x57925f);return{'ok':!![],'data':_0x37c39d,'message':_0x5714e8(0x16a)+_0x37c39d['taskId']+_0x5714e8(0x17b)+_0x57925f};},async 'dryRun'(_0x23dffa){const _0x38f693=a58_0xbc541e,_0x147b9f=_0x23dffa[_0x38f693(0x175)](_0x38f693(0x17a));return dryRun(_0x38f693(0x181),scheduleItemPath(_0x23dffa[_0x38f693(0x172)],_0x147b9f)+'/run')[_0x38f693(0x197)]('Preview:\x20run\x20schedule\x20'+_0x147b9f+'\x20immediately')[_0x38f693(0x18c)]();}},scheduleDelete={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x180),'description':a58_0xbc541e(0x16f),'risk':a58_0xbc541e(0x18a),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x23f2c2){const _0x5d99c8=a58_0xbc541e,_0x5dbd4b=_0x23f2c2['str'](_0x5d99c8(0x17a)),_0x1f9d56=await deleteRuntimeSchedule(_0x23f2c2['appCode'],_0x5dbd4b);return{'ok':!![],'data':_0x1f9d56,'message':'Deleted\x20schedule\x20'+_0x5dbd4b};},async 'dryRun'(_0x17cd11){const _0x18beb8=a58_0xbc541e,_0x3a8f59=_0x17cd11[_0x18beb8(0x175)](_0x18beb8(0x17a));return dryRun(_0x18beb8(0x16c),scheduleItemPath(_0x17cd11[_0x18beb8(0x172)],_0x3a8f59))[_0x18beb8(0x197)](_0x18beb8(0x153)+_0x3a8f59)[_0x18beb8(0x18c)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a59_0x34f800=a59_0x2352;(function(_0x578b05,_0x11d438){const _0x2a98a2=a59_0x2352,_0x2131dd=_0x578b05();while(!![]){try{const _0x2388f5=-parseInt(_0x2a98a2(0xdc))/0x1*(parseInt(_0x2a98a2(0xdb))/0x2)+-parseInt(_0x2a98a2(0xe0))/0x3*(parseInt(_0x2a98a2(0xe1))/0x4)+-parseInt(_0x2a98a2(0xd9))/0x5+-parseInt(_0x2a98a2(0xdf))/0x6+-parseInt(_0x2a98a2(0xe7))/0x7*(-parseInt(_0x2a98a2(0xe4))/0x8)+-parseInt(_0x2a98a2(0xe2))/0x9*(-parseInt(_0x2a98a2(0xda))/0xa)+-parseInt(_0x2a98a2(0xe3))/0xb*(-parseInt(_0x2a98a2(0xde))/0xc);if(_0x2388f5===_0x11d438)break;else _0x2131dd['push'](_0x2131dd['shift']());}catch(_0x4e1c52){_0x2131dd['push'](_0x2131dd['shift']());}}}(a59_0x34c5,0x81fe7));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x238611){const _0xe41189=await buildSchemaPayload();return{'ok':!![],'data':_0xe41189};}function a59_0x2352(_0x572402,_0x8144d1){_0x572402=_0x572402-0xd9;const _0x34c5c0=a59_0x34c5();let _0x235204=_0x34c5c0[_0x572402];return _0x235204;}export const schemaDefinition={'service':a59_0x34f800(0xe5),'command':a59_0x34f800(0xe6),'description':a59_0x34f800(0xdd),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a59_0x34c5(){const _0x3008a1=['export','1897NTjtMh','1271290gVOjin','3104280IGimqi','10QEZsJb','857loWrhY','Export\x20machine-readable\x20command\x20schema\x20(JSON)','3636dBxjRP','1783824PaliOX','1175667YiJbKG','8MpehXE','9KRWycm','37873DHTTrb','15304Lmqazl','schema'];a59_0x34c5=function(){return _0x3008a1;};return a59_0x34c5();}
1
+ function a59_0x55cb(_0x5f22fa,_0x5a1b1a){_0x5f22fa=_0x5f22fa-0x1a7;const _0x544c09=a59_0x544c();let _0x55cbd1=_0x544c09[_0x5f22fa];return _0x55cbd1;}const a59_0x3432d8=a59_0x55cb;(function(_0x3cc50f,_0x12e5e9){const _0x531c37=a59_0x55cb,_0xaa57b5=_0x3cc50f();while(!![]){try{const _0x48582c=parseInt(_0x531c37(0x1ad))/0x1*(-parseInt(_0x531c37(0x1a9))/0x2)+-parseInt(_0x531c37(0x1b1))/0x3+parseInt(_0x531c37(0x1a7))/0x4*(-parseInt(_0x531c37(0x1a8))/0x5)+parseInt(_0x531c37(0x1b0))/0x6*(-parseInt(_0x531c37(0x1ae))/0x7)+parseInt(_0x531c37(0x1aa))/0x8+parseInt(_0x531c37(0x1b2))/0x9+parseInt(_0x531c37(0x1ac))/0xa;if(_0x48582c===_0x12e5e9)break;else _0xaa57b5['push'](_0xaa57b5['shift']());}catch(_0x4b760f){_0xaa57b5['push'](_0xaa57b5['shift']());}}}(a59_0x544c,0x7a30f));import{buildSchemaPayload}from'../framework/schema-export.js';function a59_0x544c(){const _0x3459dc=['2551820DLhVVR','32emVwrK','484928OZaiwG','export','19441960glEwLf','37952dVhfNK','14fjaWRy','Export\x20machine-readable\x20command\x20schema\x20(JSON)','491070RFJBln','2252235ySbgKk','4749426JbzWeL','read','4xGuaiV'];a59_0x544c=function(){return _0x3459dc;};return a59_0x544c();}async function execute(_0x3f7d2d){const _0xa8315c=await buildSchemaPayload();return{'ok':!![],'data':_0xa8315c};}export const schemaDefinition={'service':'schema','command':a59_0x3432d8(0x1ab),'description':a59_0x3432d8(0x1af),'risk':a59_0x3432d8(0x1b3),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x373b5c,_0x2ac112){const _0x1d72b8=a60_0x33b0,_0x20cc55=_0x373b5c();while(!![]){try{const _0x605e1b=-parseInt(_0x1d72b8(0x113))/0x1*(parseInt(_0x1d72b8(0x127))/0x2)+parseInt(_0x1d72b8(0x120))/0x3*(parseInt(_0x1d72b8(0x12f))/0x4)+parseInt(_0x1d72b8(0x14c))/0x5+-parseInt(_0x1d72b8(0x129))/0x6+-parseInt(_0x1d72b8(0x11e))/0x7+parseInt(_0x1d72b8(0x130))/0x8*(-parseInt(_0x1d72b8(0x12e))/0x9)+parseInt(_0x1d72b8(0x176))/0xa*(parseInt(_0x1d72b8(0x163))/0xb);if(_0x605e1b===_0x2ac112)break;else _0x20cc55['push'](_0x20cc55['shift']());}catch(_0x47e85d){_0x20cc55['push'](_0x20cc55['shift']());}}}(a60_0x691d,0x7ea60));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x239dab,_0x39581b){const _0x58e28f=a60_0x33b0,_0x1998fc=listLocalServiceTrees();let _0x4cae39;for(const _0x56a062 of _0x1998fc){const _0x3546d0=matchServiceTreeCommand(_0x56a062,_0x239dab);if(!_0x3546d0)continue;(!_0x4cae39||_0x3546d0[_0x58e28f(0x150)][_0x58e28f(0x131)][_0x58e28f(0x171)]>_0x4cae39[_0x58e28f(0x150)]['fullPath'][_0x58e28f(0x171)])&&(_0x4cae39={'tree':_0x56a062,'command':_0x3546d0[_0x58e28f(0x150)],'remainingArgs':_0x3546d0[_0x58e28f(0x13d)]});}if(!_0x4cae39)return undefined;const _0x246a30={..._0x39581b};return applyAppBinding(_0x4cae39['tree'],_0x4cae39[_0x58e28f(0x150)],_0x246a30),{'definition':buildDynamicCommandDefinition(_0x4cae39[_0x58e28f(0x141)],_0x4cae39['command']),'args':_0x4cae39[_0x58e28f(0x13d)],'flags':_0x246a30,'tree':_0x4cae39[_0x58e28f(0x141)],'command':_0x4cae39[_0x58e28f(0x150)]};}export function generateDynamicServiceHelp(_0x1069c3){const _0x36e3dc=a60_0x33b0,_0x234211=listLocalServiceTrees()['find'](_0x5e82c5=>_0x5e82c5[_0x36e3dc(0x139)]['code']===_0x1069c3);if(!_0x234211)return undefined;const _0x1a54b4=[CLI_BIN_NAME+'\x20'+_0x1069c3+_0x36e3dc(0x146),'',_0x234211[_0x36e3dc(0x139)][_0x36e3dc(0x12d)]||_0x1069c3,_0x234211[_0x36e3dc(0x139)][_0x36e3dc(0x151)]?'\x20\x20'+_0x234211[_0x36e3dc(0x139)][_0x36e3dc(0x151)]:'','',_0x36e3dc(0x143),..._0x234211[_0x36e3dc(0x124)]['map'](_0x4bac82=>{const _0x406a1f=_0x36e3dc,_0x4691a6=_0x4bac82['fullPath'][_0x406a1f(0x15f)](0x1)['join']('\x20'),_0x2bb609=_0x4bac82[_0x406a1f(0x142)]===_0x406a1f(0x15c)?'':'\x20['+_0x4bac82['risk']+']';return'\x20\x20'+_0x4691a6['padEnd'](0x18)+'\x20'+(_0x4bac82[_0x406a1f(0x151)]||'')+_0x2bb609;}),'',_0x36e3dc(0x12c)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x1069c3+_0x36e3dc(0x132)][_0x36e3dc(0x122)](Boolean);return _0x1a54b4[_0x36e3dc(0x116)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x6896ef=>{const _0x18d6c0=a60_0x33b0,_0x31dc2f=_0x6896ef['normalizedManifest'];return{'service':_0x31dc2f[_0x18d6c0(0x139)][_0x18d6c0(0x14b)],'label':_0x31dc2f['service']['name']||_0x31dc2f[_0x18d6c0(0x139)]['code'],'commands':_0x31dc2f[_0x18d6c0(0x124)][_0x18d6c0(0x158)](_0xfb47e3=>({'command':dynamicCommandName(_0xfb47e3),'description':_0xfb47e3['description']||_0x18d6c0(0x118)+_0xfb47e3['cliPath'],'tag':riskTag(_0xfb47e3['risk'])}))};});}export function getDynamicServiceEntry(_0x4d97ff){const _0x380a9f=a60_0x33b0;return listDynamicServiceEntries()[_0x380a9f(0x173)](_0x33a387=>_0x33a387[_0x380a9f(0x139)]===_0x4d97ff);}export function listDynamicServiceDefinitions(_0x34e91e){const _0x7d761e=a60_0x33b0;return listLocalServiceTrees()[_0x7d761e(0x122)](_0x1355e8=>!_0x34e91e||_0x1355e8[_0x7d761e(0x139)][_0x7d761e(0x14b)]===_0x34e91e)[_0x7d761e(0x16a)](_0x39b85d=>_0x39b85d[_0x7d761e(0x124)][_0x7d761e(0x158)](_0x440e4f=>buildDynamicCommandDefinition(_0x39b85d,_0x440e4f)));}export function getDynamicServiceDefinitions(_0x392cff){const _0x33b82e=a60_0x33b0,_0x3d5fc2=listDynamicServiceDefinitions(_0x392cff);return _0x3d5fc2[_0x33b82e(0x171)]>0x0?_0x3d5fc2:undefined;}export function findDynamicServiceDefinition(_0x52cefb,_0x5269df){const _0x1ab9dd=a60_0x33b0;return listDynamicServiceDefinitions(_0x52cefb)[_0x1ab9dd(0x173)](_0x42c8db=>_0x42c8db[_0x1ab9dd(0x150)]===_0x5269df);}export function buildDynamicCommandDefinition(_0x2f2842,_0x428a06){const _0x128f78=a60_0x33b0;return{'service':_0x2f2842[_0x128f78(0x139)][_0x128f78(0x14b)],'command':dynamicCommandName(_0x428a06),'description':_0x428a06[_0x128f78(0x151)]||_0x128f78(0x118)+_0x428a06[_0x128f78(0x14a)],'risk':_0x428a06['risk'],..._0x428a06[_0x128f78(0x142)]===_0x128f78(0x15c)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x428a06)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x428a06['args']['map'](_0x1a6561=>({'name':_0x1a6561[_0x128f78(0x12d)],'description':_0x1a6561[_0x128f78(0x151)]||_0x1a6561[_0x128f78(0x12d)],'required':_0x1a6561['required']})),'flags':_0x428a06[_0x128f78(0x167)][_0x128f78(0x158)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x428a06),async 'dryRun'(_0x1240ee){const _0x497efc=_0x128f78,_0x4b3f33=await compilePlan(_0x428a06,_0x1240ee);return{'method':'SERVICE_TREE','url':_0x428a06['cliPath'],'body':{'target':targetPreview(_0x4b3f33),'params':_0x4b3f33[_0x497efc(0x161)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x428a06[_0x497efc(0x14a)]};},async 'execute'(_0x2a5968){const _0x5c259f=_0x128f78,_0x34df79=await compilePlan(_0x428a06,_0x2a5968),_0xeaedd=Date['now'](),_0x4175ee=await executePlan(_0x34df79,_0x428a06,_0x2a5968),_0xe3e526=Date[_0x5c259f(0x159)]()-_0xeaedd;return{'ok':!![],'data':{'service':_0x2f2842['service'],'command':_0x428a06[_0x5c259f(0x14a)],'target':targetPreview(_0x34df79),'result':_0x4175ee,'elapsed':_0xe3e526},'message':_0x5c259f(0x170)+_0x428a06[_0x5c259f(0x14a)]+_0x5c259f(0x149)+_0xe3e526+'ms'};}};}function a60_0x691d(){const _0x2d69e7=['bffId','userName','map','now','nickName','\x20\x20\x20\x20command:\x20','read','datatable','appCode','slice','appcode','params','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','192731lbPSvv','sql','\x20->\x20','source','flags','startsWith','\x20requires\x20target.sqlCode.','flatMap','type','\x20\x20SERVICE\x20TREE\x20TARGET','\x20requires\x20target.functionName.','dbtableConfig','required','Service\x20command\x20','length','validation','find','\x20\x20MAP\x20TO','userId','1070noaGrr','entries','env','rawFlags','app','username','const','scriptName','37GmtRAP','tableName','string','join','\x20\x20\x20\x20datatable:\x20','Run\x20service\x20command\x20','args','context.','\x22\x20in\x20service\x20command\x20','\x22.\x20','json','117775ULdmJS','cliName','3kwHGaB','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','filter','bff','commands','sqlCode','loginName','53726qLnMXd','number','2201328TmiTzI','tenantCode','default','Use\x20`','name','7253523tOVbQS','955380lcIRIu','8GAqAyc','fullPath','`\x20to\x20inspect\x20the\x20manifest.','ctx.','Unknown\x20appRef\x20\x22','mapTo','fromEntries','bffCode','appRef','service','trim','target','\x20\x20\x20\x20kind:\x20\x20\x20\x20','remainingArgs','push','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','Cannot\x20resolve\x20datatable\x20\x22','tree','risk','Commands:','appBindings','enum','\x20<command>\x20[flags]','envName','kind','\x20completed\x20in\x20','cliPath','code','2943755YbzGij','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','data','operator','command','description','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','nickname','\x20\x20\x20\x20datasetCode:\x20','datasetCode'];a60_0x691d=function(){return _0x2d69e7;};return a60_0x691d();}function buildDynamicConfirmationDescription(_0x25ab97){const _0x4d9699=a60_0x33b0,_0x1dc52b=_0x25ab97[_0x4d9699(0x151)]||_0x25ab97[_0x4d9699(0x14a)],_0x582cfd=_0x25ab97['risk']==='high-risk-write'?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':_0x4d9699(0x121);return _0x4d9699(0x13f)+_0x1dc52b+_0x4d9699(0x11c)+_0x582cfd;}function dynamicCommandName(_0x4357e3){const _0x11952b=a60_0x33b0;return _0x4357e3[_0x11952b(0x131)]['slice'](0x1)['join']('\x20');}function a60_0x33b0(_0x32a074,_0x5bbea9){_0x32a074=_0x32a074-0x113;const _0x691ddf=a60_0x691d();let _0x33b03c=_0x691ddf[_0x32a074];return _0x33b03c;}function riskTag(_0x3d5554){const _0x45e679=a60_0x33b0;return _0x3d5554===_0x45e679(0x15c)?'':'\x20\x20['+_0x3d5554+']';}function flagToCommandFlag(_0x460168){const _0x278adf=a60_0x33b0;return{'name':_0x460168[_0x278adf(0x11f)],'type':_0x460168['type']===_0x278adf(0x11d)?_0x278adf(0x115):_0x460168[_0x278adf(0x16b)],'description':_0x460168[_0x278adf(0x151)]||_0x460168[_0x278adf(0x12d)],'required':_0x460168[_0x278adf(0x16f)],'default':isPrimitiveFlagDefault(_0x460168[_0x278adf(0x12b)])?_0x460168[_0x278adf(0x12b)]:undefined,'enum':_0x460168[_0x278adf(0x145)]};}async function compilePlan(_0x4b010f,_0x7dcb10){const _0x3cbce7=a60_0x33b0;return compileServiceTreeCommand(_0x4b010f,{'flags':_0x7dcb10[_0x3cbce7(0x179)],'args':_0x7dcb10[_0x3cbce7(0x119)],'context':await buildServiceContext(_0x4b010f,_0x7dcb10)});}async function buildServiceContext(_0x4d5eb1,_0x369df6){const _0x3de335=a60_0x33b0,_0x5cd120={'appCode':_0x369df6[_0x3de335(0x15e)],'env':_0x369df6[_0x3de335(0x147)],'envName':_0x369df6[_0x3de335(0x147)]};if(!usesRuntimeContext(_0x4d5eb1))return _0x5cd120;const _0x5ec1c5=await getLoginUserInfo(),_0x1185b4=pickFirst(_0x5ec1c5[_0x3de335(0x175)],_0x5ec1c5['id']);return{..._0x5cd120,'user':_0x5ec1c5,'userId':_0x1185b4,'id':_0x5ec1c5['id'],'username':pickFirst(_0x5ec1c5[_0x3de335(0x17b)],_0x5ec1c5[_0x3de335(0x157)],_0x5ec1c5[_0x3de335(0x126)]),'userName':_0x5ec1c5[_0x3de335(0x157)],'nickname':pickFirst(_0x5ec1c5[_0x3de335(0x153)],_0x5ec1c5[_0x3de335(0x15a)]),'nickName':_0x5ec1c5[_0x3de335(0x15a)],'tenantCode':_0x5ec1c5[_0x3de335(0x12a)],'employeeId':_0x5ec1c5['employeeId']};}function usesRuntimeContext(_0x55b9d3){const _0x21e858=a60_0x33b0;return _0x55b9d3[_0x21e858(0x135)]['some'](_0x32ac6e=>typeof _0x32ac6e[_0x21e858(0x166)]===_0x21e858(0x115)&&(_0x32ac6e[_0x21e858(0x166)][_0x21e858(0x168)](_0x21e858(0x11a))||_0x32ac6e['source'][_0x21e858(0x168)](_0x21e858(0x133))));}function pickFirst(..._0x5dfb64){const _0x4bffe3=a60_0x33b0;return _0x5dfb64[_0x4bffe3(0x173)](_0x23a34e=>_0x23a34e!==undefined&&_0x23a34e!==null);}async function executePlan(_0x25514e,_0x2385dd,_0x525826){const _0x59353f=a60_0x33b0;if(_0x25514e['kind']===_0x59353f(0x14e)){const _0x32c1c3=await resolveDatasetCode(_0x25514e,_0x2385dd,_0x525826);return executeData(_0x32c1c3,_0x25514e[_0x59353f(0x150)],_0x25514e[_0x59353f(0x161)]);}if(_0x25514e[_0x59353f(0x148)]===_0x59353f(0x164)){if(!_0x25514e[_0x59353f(0x125)])throw CliErrors[_0x59353f(0x172)](_0x59353f(0x170)+_0x2385dd[_0x59353f(0x14a)]+_0x59353f(0x169));return executeSdkSql(_0x25514e[_0x59353f(0x125)],normalizeScalarParams(_0x25514e['params']));}if(_0x25514e[_0x59353f(0x148)]===_0x59353f(0x123)){const _0x19a2e5=_0x25514e[_0x59353f(0x17d)]||_0x25514e['bffCode']||(_0x25514e[_0x59353f(0x156)]==null?'':String(_0x25514e[_0x59353f(0x156)]));if(!_0x19a2e5)throw CliErrors[_0x59353f(0x172)](_0x59353f(0x170)+_0x2385dd[_0x59353f(0x14a)]+_0x59353f(0x16d));return executeSdkBff(_0x19a2e5,_0x25514e[_0x59353f(0x161)]);}throw CliErrors[_0x59353f(0x172)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x25514e[_0x59353f(0x148)]);}async function resolveDatasetCode(_0x2eca68,_0x22395f,_0x16f761){const _0x1f9899=a60_0x33b0;if(_0x2eca68['datasetCode'])return _0x2eca68['datasetCode'];if(!_0x2eca68[_0x1f9899(0x15d)])throw CliErrors[_0x1f9899(0x172)](_0x1f9899(0x170)+_0x22395f['cliPath']+_0x1f9899(0x162));const _0x6aff6f=await listDatasets(_0x16f761[_0x1f9899(0x15e)]),_0x454805=_0x6aff6f[_0x1f9899(0x173)](_0x2cabc6=>_0x2cabc6[_0x1f9899(0x16e)]?.[_0x1f9899(0x114)]===_0x2eca68[_0x1f9899(0x15d)]);if(!_0x454805?.[_0x1f9899(0x14b)])throw CliErrors[_0x1f9899(0x172)](_0x1f9899(0x140)+_0x2eca68[_0x1f9899(0x15d)]+_0x1f9899(0x152)+_0x16f761[_0x1f9899(0x15e)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x454805[_0x1f9899(0x14b)];}function applyAppBinding(_0x1ee1b7,_0x1f4c2e,_0x2e112f){const _0x63aab9=a60_0x33b0,_0x2a6414=_0x1f4c2e[_0x63aab9(0x13b)][_0x63aab9(0x138)];if(!_0x2a6414)return;const _0x38efda=_0x1ee1b7[_0x63aab9(0x144)][_0x2a6414];if(!_0x38efda)throw CliErrors['validation'](_0x63aab9(0x134)+_0x2a6414+_0x63aab9(0x11b)+_0x1f4c2e[_0x63aab9(0x14a)]+'.',_0x63aab9(0x14d));const _0x2f0747=_0x38efda['appcode']||_0x38efda[_0x63aab9(0x15e)];_0x2f0747&&!hasText(_0x2e112f[_0x63aab9(0x160)])&&(_0x2e112f['appcode']=_0x2f0747),_0x38efda[_0x63aab9(0x17a)]&&!hasText(_0x2e112f[_0x63aab9(0x17a)])&&!hasText(_0x2e112f[_0x63aab9(0x160)])&&(_0x2e112f[_0x63aab9(0x17a)]=_0x38efda[_0x63aab9(0x17a)]),_0x38efda[_0x63aab9(0x178)]&&!hasText(_0x2e112f[_0x63aab9(0x178)])&&(_0x2e112f[_0x63aab9(0x178)]=_0x38efda[_0x63aab9(0x178)]);}function renderDynamicCommandHelp(_0x65d901){const _0xbfb184=a60_0x33b0,_0x512bab=[_0xbfb184(0x16c),_0xbfb184(0x13c)+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x148)],_0xbfb184(0x15b)+_0x65d901[_0xbfb184(0x13b)]['command']];if(_0x65d901[_0xbfb184(0x13b)]['datasetCode'])_0x512bab[_0xbfb184(0x13e)](_0xbfb184(0x154)+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x155)]);if(_0x65d901[_0xbfb184(0x13b)]['datatable'])_0x512bab['push'](_0xbfb184(0x117)+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x15d)]);if(_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x125)])_0x512bab['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x65d901['target'][_0xbfb184(0x125)]);if(_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x17d)])_0x512bab[_0xbfb184(0x13e)]('\x20\x20\x20\x20functionName:\x20'+_0x65d901[_0xbfb184(0x13b)][_0xbfb184(0x17d)]);if(_0x65d901[_0xbfb184(0x135)][_0xbfb184(0x171)]>0x0){_0x512bab[_0xbfb184(0x13e)]('',_0xbfb184(0x174));for(const _0x3f15c6 of _0x65d901[_0xbfb184(0x135)]){_0x512bab['push']('\x20\x20\x20\x20'+(_0x3f15c6[_0xbfb184(0x166)]||_0xbfb184(0x17c))+_0xbfb184(0x165)+_0x3f15c6[_0xbfb184(0x13b)]+(_0x3f15c6['operator']?'.'+_0x3f15c6[_0xbfb184(0x14f)]:''));}}return _0x512bab[_0xbfb184(0x116)]('\x0a');}function targetPreview(_0x59cf52){const _0x222ce2=a60_0x33b0;return{'kind':_0x59cf52[_0x222ce2(0x148)],'command':_0x59cf52[_0x222ce2(0x150)],'appRef':_0x59cf52['appRef'],'datasetCode':_0x59cf52[_0x222ce2(0x155)],'datatable':_0x59cf52[_0x222ce2(0x15d)],'sqlCode':_0x59cf52[_0x222ce2(0x125)],'bffCode':_0x59cf52[_0x222ce2(0x137)],'bffId':_0x59cf52[_0x222ce2(0x156)],'functionName':_0x59cf52[_0x222ce2(0x17d)]};}function normalizeScalarParams(_0x132152){const _0x3c1a97=a60_0x33b0;return Object[_0x3c1a97(0x136)](Object[_0x3c1a97(0x177)](_0x132152)[_0x3c1a97(0x122)](([,_0x2623e6])=>typeof _0x2623e6===_0x3c1a97(0x115)||typeof _0x2623e6===_0x3c1a97(0x128)));}function hasText(_0x1ce58c){const _0x30a813=a60_0x33b0;return typeof _0x1ce58c==='string'&&_0x1ce58c[_0x30a813(0x13a)]()[_0x30a813(0x171)]>0x0;}function isPrimitiveFlagDefault(_0x330319){const _0x51ea11=a60_0x33b0;return _0x330319===undefined||typeof _0x330319===_0x51ea11(0x115)||typeof _0x330319===_0x51ea11(0x128)||typeof _0x330319==='boolean';}
1
+ (function(_0x1b79d0,_0x1ba72b){const _0x370121=a60_0x9c62,_0x599094=_0x1b79d0();while(!![]){try{const _0xfb5de5=-parseInt(_0x370121(0x176))/0x1*(-parseInt(_0x370121(0x12a))/0x2)+-parseInt(_0x370121(0x14d))/0x3*(-parseInt(_0x370121(0x13e))/0x4)+-parseInt(_0x370121(0x12b))/0x5+parseInt(_0x370121(0x142))/0x6+parseInt(_0x370121(0x12c))/0x7*(parseInt(_0x370121(0x120))/0x8)+parseInt(_0x370121(0x123))/0x9*(-parseInt(_0x370121(0x173))/0xa)+parseInt(_0x370121(0x14a))/0xb;if(_0xfb5de5===_0x1ba72b)break;else _0x599094['push'](_0x599094['shift']());}catch(_0x5cd955){_0x599094['push'](_0x599094['shift']());}}}(a60_0x1c70,0xbe20f));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';function a60_0x9c62(_0x2fb754,_0x3ee86f){_0x2fb754=_0x2fb754-0x11f;const _0x1c70f2=a60_0x1c70();let _0x9c62ac=_0x1c70f2[_0x2fb754];return _0x9c62ac;}import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x1b37c6,_0x291cdc){const _0x56012e=a60_0x9c62,_0x4151cd=listLocalServiceTrees();let _0x1090b3;for(const _0x51f40f of _0x4151cd){const _0x29d601=matchServiceTreeCommand(_0x51f40f,_0x1b37c6);if(!_0x29d601)continue;(!_0x1090b3||_0x29d601[_0x56012e(0x11f)][_0x56012e(0x131)][_0x56012e(0x181)]>_0x1090b3[_0x56012e(0x11f)]['fullPath'][_0x56012e(0x181)])&&(_0x1090b3={'tree':_0x51f40f,'command':_0x29d601['command'],'remainingArgs':_0x29d601[_0x56012e(0x137)]});}if(!_0x1090b3)return undefined;const _0x371050={..._0x291cdc};return applyAppBinding(_0x1090b3[_0x56012e(0x145)],_0x1090b3[_0x56012e(0x11f)],_0x371050),{'definition':buildDynamicCommandDefinition(_0x1090b3[_0x56012e(0x145)],_0x1090b3[_0x56012e(0x11f)]),'args':_0x1090b3[_0x56012e(0x137)],'flags':_0x371050,'tree':_0x1090b3[_0x56012e(0x145)],'command':_0x1090b3[_0x56012e(0x11f)]};}export function generateDynamicServiceHelp(_0x2f6f2f){const _0x523e08=a60_0x9c62,_0x2ca8b4=listLocalServiceTrees()[_0x523e08(0x16b)](_0x11978d=>_0x11978d[_0x523e08(0x148)]['code']===_0x2f6f2f);if(!_0x2ca8b4)return undefined;const _0x52c9f1=[CLI_BIN_NAME+'\x20'+_0x2f6f2f+_0x523e08(0x162),'',_0x2ca8b4[_0x523e08(0x148)][_0x523e08(0x177)]||_0x2f6f2f,_0x2ca8b4['service']['description']?'\x20\x20'+_0x2ca8b4[_0x523e08(0x148)][_0x523e08(0x16a)]:'','',_0x523e08(0x139),..._0x2ca8b4[_0x523e08(0x174)][_0x523e08(0x15c)](_0x1604a5=>{const _0x13d7ce=_0x523e08,_0x2c652f=_0x1604a5[_0x13d7ce(0x131)][_0x13d7ce(0x13d)](0x1)[_0x13d7ce(0x159)]('\x20'),_0x52a831=_0x1604a5['risk']==='read'?'':'\x20['+_0x1604a5[_0x13d7ce(0x157)]+']';return'\x20\x20'+_0x2c652f[_0x13d7ce(0x16e)](0x18)+'\x20'+(_0x1604a5['description']||'')+_0x52a831;}),'','Use\x20`'+CLI_BIN_NAME+_0x523e08(0x154)+_0x2f6f2f+'`\x20to\x20inspect\x20the\x20manifest.'][_0x523e08(0x155)](Boolean);return _0x52c9f1[_0x523e08(0x159)]('\x0a');}function a60_0x1c70(){const _0x2a0981=['padEnd','\x20completed\x20in\x20','bff','type','cliName','3575690lDNWbM','commands','Service\x20command\x20','28199HCtupZ','name','some','bffId','target','validation','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','datatable','ctx.','mapTo','flags','length','required','appCode','command','1930856lwBjCh','push','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','27QjlulK','SERVICE_TREE','\x20\x20\x20\x20functionName:\x20','Preview\x20dynamic\x20service\x20command:\x20','\x20\x20SERVICE\x20TREE\x20TARGET','const','params','10ZImRZQ','4425740CMxoXP','7caGrAN','trim','scriptName','\x20\x20\x20\x20','startsWith','fullPath','read','\x20\x20\x20\x20kind:\x20\x20\x20\x20','args','Unknown\x20appRef\x20\x22','source','remainingArgs','appRef','Commands:','entries','fromEntries','tableName','slice','1002548KPBQnI','env','\x20\x20\x20\x20datasetCode:\x20','string','3981960LTbfFg','datasetCode','Unsupported\x20service\x20target\x20kind:\x20','tree','flatMap','now','service','loginName','15839703eZBpoX','\x20\x20\x20\x20datatable:\x20','\x20\x20MAP\x20TO','3eSJOuh','\x22.\x20','code','\x22\x20in\x20service\x20command\x20','userName','bffCode','kind','\x20service\x20detail\x20--service\x20','filter','data','risk','nickname','join','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','Run\x20service\x20command\x20','map','\x20->\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','nickName','cliPath','\x20<command>\x20[flags]','envName','high-risk-write','employeeId','operator','sql','app','\x20\x20\x20\x20command:\x20','description','find','default','sqlCode'];a60_0x1c70=function(){return _0x2a0981;};return a60_0x1c70();}export function listDynamicServiceEntries(){const _0x511c57=a60_0x9c62;return listLocalServices()[_0x511c57(0x15c)](_0x134ca0=>{const _0x56c10c=_0x511c57,_0x3dbe3f=_0x134ca0['normalizedManifest'];return{'service':_0x3dbe3f[_0x56c10c(0x148)][_0x56c10c(0x14f)],'label':_0x3dbe3f[_0x56c10c(0x148)][_0x56c10c(0x177)]||_0x3dbe3f[_0x56c10c(0x148)][_0x56c10c(0x14f)],'commands':_0x3dbe3f['commands'][_0x56c10c(0x15c)](_0x2bda06=>({'command':dynamicCommandName(_0x2bda06),'description':_0x2bda06[_0x56c10c(0x16a)]||_0x56c10c(0x15b)+_0x2bda06[_0x56c10c(0x161)],'tag':riskTag(_0x2bda06[_0x56c10c(0x157)])}))};});}export function getDynamicServiceEntry(_0x3a0db1){const _0x16ec70=a60_0x9c62;return listDynamicServiceEntries()[_0x16ec70(0x16b)](_0x3b6ac9=>_0x3b6ac9[_0x16ec70(0x148)]===_0x3a0db1);}export function listDynamicServiceDefinitions(_0x133f80){const _0x3e708f=a60_0x9c62;return listLocalServiceTrees()[_0x3e708f(0x155)](_0x222923=>!_0x133f80||_0x222923[_0x3e708f(0x148)][_0x3e708f(0x14f)]===_0x133f80)[_0x3e708f(0x146)](_0x20b421=>_0x20b421[_0x3e708f(0x174)]['map'](_0x534646=>buildDynamicCommandDefinition(_0x20b421,_0x534646)));}export function getDynamicServiceDefinitions(_0x55790c){const _0x52050a=a60_0x9c62,_0x73b5ac=listDynamicServiceDefinitions(_0x55790c);return _0x73b5ac[_0x52050a(0x181)]>0x0?_0x73b5ac:undefined;}export function findDynamicServiceDefinition(_0x32415d,_0x110a3f){const _0x23d059=a60_0x9c62;return listDynamicServiceDefinitions(_0x32415d)[_0x23d059(0x16b)](_0x41dbbb=>_0x41dbbb[_0x23d059(0x11f)]===_0x110a3f);}export function buildDynamicCommandDefinition(_0x1ac1d2,_0x1d3225){const _0x38021c=a60_0x9c62;return{'service':_0x1ac1d2['service'][_0x38021c(0x14f)],'command':dynamicCommandName(_0x1d3225),'description':_0x1d3225['description']||_0x38021c(0x15b)+_0x1d3225['cliPath'],'risk':_0x1d3225[_0x38021c(0x157)],..._0x1d3225[_0x38021c(0x157)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1d3225)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1d3225[_0x38021c(0x134)]['map'](_0x392865=>({'name':_0x392865[_0x38021c(0x177)],'description':_0x392865[_0x38021c(0x16a)]||_0x392865[_0x38021c(0x177)],'required':_0x392865[_0x38021c(0x182)]})),'flags':_0x1d3225[_0x38021c(0x180)][_0x38021c(0x15c)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1d3225),async 'dryRun'(_0x4e7564){const _0x5d3f45=_0x38021c,_0x96f53f=await compilePlan(_0x1d3225,_0x4e7564);return{'method':_0x5d3f45(0x124),'url':_0x1d3225[_0x5d3f45(0x161)],'body':{'target':targetPreview(_0x96f53f),'params':_0x96f53f[_0x5d3f45(0x129)]},'description':_0x5d3f45(0x126)+_0x1d3225[_0x5d3f45(0x161)]};},async 'execute'(_0x1a3f72){const _0x3c4112=_0x38021c,_0x21f929=await compilePlan(_0x1d3225,_0x1a3f72),_0x784b8a=Date['now'](),_0x389f99=await executePlan(_0x21f929,_0x1d3225,_0x1a3f72),_0x921021=Date[_0x3c4112(0x147)]()-_0x784b8a;return{'ok':!![],'data':{'service':_0x1ac1d2[_0x3c4112(0x148)],'command':_0x1d3225[_0x3c4112(0x161)],'target':targetPreview(_0x21f929),'result':_0x389f99,'elapsed':_0x921021},'message':'Service\x20command\x20'+_0x1d3225['cliPath']+_0x3c4112(0x16f)+_0x921021+'ms'};}};}function buildDynamicConfirmationDescription(_0x1dd291){const _0xba9f93=a60_0x9c62,_0x96c054=_0x1dd291[_0xba9f93(0x16a)]||_0x1dd291['cliPath'],_0x34c8d0=_0x1dd291[_0xba9f93(0x157)]===_0xba9f93(0x164)?_0xba9f93(0x122):'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0xba9f93(0x15f)+_0x96c054+_0xba9f93(0x14e)+_0x34c8d0;}function dynamicCommandName(_0x25a9b2){const _0x2aa826=a60_0x9c62;return _0x25a9b2[_0x2aa826(0x131)][_0x2aa826(0x13d)](0x1)[_0x2aa826(0x159)]('\x20');}function riskTag(_0x3c460f){const _0x58971b=a60_0x9c62;return _0x3c460f===_0x58971b(0x132)?'':'\x20\x20['+_0x3c460f+']';}function flagToCommandFlag(_0x3241c1){const _0x4626b4=a60_0x9c62;return{'name':_0x3241c1[_0x4626b4(0x172)],'type':_0x3241c1[_0x4626b4(0x171)]==='json'?_0x4626b4(0x141):_0x3241c1[_0x4626b4(0x171)],'description':_0x3241c1[_0x4626b4(0x16a)]||_0x3241c1[_0x4626b4(0x177)],'required':_0x3241c1[_0x4626b4(0x182)],'default':isPrimitiveFlagDefault(_0x3241c1[_0x4626b4(0x16c)])?_0x3241c1[_0x4626b4(0x16c)]:undefined,'enum':_0x3241c1['enum']};}async function compilePlan(_0x186faa,_0x1d8b85){const _0x442739=a60_0x9c62;return compileServiceTreeCommand(_0x186faa,{'flags':_0x1d8b85['rawFlags'],'args':_0x1d8b85[_0x442739(0x134)],'context':await buildServiceContext(_0x186faa,_0x1d8b85)});}async function buildServiceContext(_0x25c919,_0x3371b4){const _0x4e7b60=a60_0x9c62,_0x14459b={'appCode':_0x3371b4[_0x4e7b60(0x183)],'env':_0x3371b4['envName'],'envName':_0x3371b4[_0x4e7b60(0x163)]};if(!usesRuntimeContext(_0x25c919))return _0x14459b;const _0x128bcd=await getLoginUserInfo(),_0x42d82d=pickFirst(_0x128bcd['userId'],_0x128bcd['id']);return{..._0x14459b,'user':_0x128bcd,'userId':_0x42d82d,'id':_0x128bcd['id'],'username':pickFirst(_0x128bcd['username'],_0x128bcd[_0x4e7b60(0x151)],_0x128bcd[_0x4e7b60(0x149)]),'userName':_0x128bcd['userName'],'nickname':pickFirst(_0x128bcd[_0x4e7b60(0x158)],_0x128bcd['nickName']),'nickName':_0x128bcd[_0x4e7b60(0x160)],'tenantCode':_0x128bcd['tenantCode'],'employeeId':_0x128bcd[_0x4e7b60(0x165)]};}function usesRuntimeContext(_0x43515f){const _0x1df44a=a60_0x9c62;return _0x43515f['mapTo'][_0x1df44a(0x178)](_0x338b50=>typeof _0x338b50[_0x1df44a(0x136)]===_0x1df44a(0x141)&&(_0x338b50[_0x1df44a(0x136)][_0x1df44a(0x130)]('context.')||_0x338b50[_0x1df44a(0x136)]['startsWith'](_0x1df44a(0x17e))));}function pickFirst(..._0xbc8018){const _0x3b2a82=a60_0x9c62;return _0xbc8018[_0x3b2a82(0x16b)](_0x180fe1=>_0x180fe1!==undefined&&_0x180fe1!==null);}async function executePlan(_0x4641d1,_0x3b068d,_0x2cb028){const _0x1a3480=a60_0x9c62;if(_0x4641d1[_0x1a3480(0x153)]===_0x1a3480(0x156)){const _0x20e94a=await resolveDatasetCode(_0x4641d1,_0x3b068d,_0x2cb028);return executeData(_0x20e94a,_0x4641d1['command'],_0x4641d1[_0x1a3480(0x129)]);}if(_0x4641d1['kind']===_0x1a3480(0x167)){if(!_0x4641d1[_0x1a3480(0x16d)])throw CliErrors['validation'](_0x1a3480(0x175)+_0x3b068d[_0x1a3480(0x161)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x4641d1[_0x1a3480(0x16d)],normalizeScalarParams(_0x4641d1['params']));}if(_0x4641d1['kind']===_0x1a3480(0x170)){const _0x3a9fa8=_0x4641d1['scriptName']||_0x4641d1['bffCode']||(_0x4641d1['bffId']==null?'':String(_0x4641d1[_0x1a3480(0x179)]));if(!_0x3a9fa8)throw CliErrors[_0x1a3480(0x17b)](_0x1a3480(0x175)+_0x3b068d[_0x1a3480(0x161)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x3a9fa8,_0x4641d1[_0x1a3480(0x129)]);}throw CliErrors['validation'](_0x1a3480(0x144)+_0x4641d1['kind']);}async function resolveDatasetCode(_0x3b79c8,_0x21f8d3,_0x15b17f){const _0x56ddd6=a60_0x9c62;if(_0x3b79c8[_0x56ddd6(0x143)])return _0x3b79c8['datasetCode'];if(!_0x3b79c8[_0x56ddd6(0x17d)])throw CliErrors[_0x56ddd6(0x17b)](_0x56ddd6(0x175)+_0x21f8d3[_0x56ddd6(0x161)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x2e972c=await listDatasets(_0x15b17f[_0x56ddd6(0x183)]),_0x124f0f=_0x2e972c['find'](_0x2c84ce=>_0x2c84ce['dbtableConfig']?.[_0x56ddd6(0x13c)]===_0x3b79c8[_0x56ddd6(0x17d)]);if(!_0x124f0f?.[_0x56ddd6(0x14f)])throw CliErrors[_0x56ddd6(0x17b)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x3b79c8[_0x56ddd6(0x17d)]+_0x56ddd6(0x15e)+_0x15b17f['appCode']+'.',_0x56ddd6(0x15a));return _0x124f0f[_0x56ddd6(0x14f)];}function applyAppBinding(_0x3f52df,_0x12161b,_0x182a3b){const _0x475428=a60_0x9c62,_0x5b4311=_0x12161b[_0x475428(0x17a)][_0x475428(0x138)];if(!_0x5b4311)return;const _0x4b8acd=_0x3f52df['appBindings'][_0x5b4311];if(!_0x4b8acd)throw CliErrors['validation'](_0x475428(0x135)+_0x5b4311+_0x475428(0x150)+_0x12161b[_0x475428(0x161)]+'.',_0x475428(0x17c));const _0x3fd6ff=_0x4b8acd['appcode']||_0x4b8acd[_0x475428(0x183)];_0x3fd6ff&&!hasText(_0x182a3b['appcode'])&&(_0x182a3b['appcode']=_0x3fd6ff),_0x4b8acd[_0x475428(0x168)]&&!hasText(_0x182a3b['app'])&&!hasText(_0x182a3b['appcode'])&&(_0x182a3b[_0x475428(0x168)]=_0x4b8acd[_0x475428(0x168)]),_0x4b8acd['env']&&!hasText(_0x182a3b[_0x475428(0x13f)])&&(_0x182a3b[_0x475428(0x13f)]=_0x4b8acd['env']);}function renderDynamicCommandHelp(_0x1c6d68){const _0x48be6e=a60_0x9c62,_0x288f7f=[_0x48be6e(0x127),_0x48be6e(0x133)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x153)],_0x48be6e(0x169)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x11f)]];if(_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x143)])_0x288f7f['push'](_0x48be6e(0x140)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x143)]);if(_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x17d)])_0x288f7f[_0x48be6e(0x121)](_0x48be6e(0x14b)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x17d)]);if(_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x16d)])_0x288f7f[_0x48be6e(0x121)]('\x20\x20\x20\x20sqlCode:\x20'+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x16d)]);if(_0x1c6d68[_0x48be6e(0x17a)]['scriptName'])_0x288f7f[_0x48be6e(0x121)](_0x48be6e(0x125)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x12e)]);if(_0x1c6d68[_0x48be6e(0x17f)][_0x48be6e(0x181)]>0x0){_0x288f7f[_0x48be6e(0x121)]('',_0x48be6e(0x14c));for(const _0x559d7c of _0x1c6d68[_0x48be6e(0x17f)]){_0x288f7f['push'](_0x48be6e(0x12f)+(_0x559d7c[_0x48be6e(0x136)]||_0x48be6e(0x128))+_0x48be6e(0x15d)+_0x559d7c[_0x48be6e(0x17a)]+(_0x559d7c[_0x48be6e(0x166)]?'.'+_0x559d7c[_0x48be6e(0x166)]:''));}}return _0x288f7f[_0x48be6e(0x159)]('\x0a');}function targetPreview(_0x123178){const _0x2d0117=a60_0x9c62;return{'kind':_0x123178['kind'],'command':_0x123178['command'],'appRef':_0x123178[_0x2d0117(0x138)],'datasetCode':_0x123178[_0x2d0117(0x143)],'datatable':_0x123178[_0x2d0117(0x17d)],'sqlCode':_0x123178[_0x2d0117(0x16d)],'bffCode':_0x123178[_0x2d0117(0x152)],'bffId':_0x123178['bffId'],'functionName':_0x123178[_0x2d0117(0x12e)]};}function normalizeScalarParams(_0x4a7741){const _0x250d05=a60_0x9c62;return Object[_0x250d05(0x13b)](Object[_0x250d05(0x13a)](_0x4a7741)[_0x250d05(0x155)](([,_0x16c8d4])=>typeof _0x16c8d4==='string'||typeof _0x16c8d4==='number'));}function hasText(_0x2942df){const _0x13c557=a60_0x9c62;return typeof _0x2942df==='string'&&_0x2942df[_0x13c557(0x12d)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x4c96cc){const _0x37b97b=a60_0x9c62;return _0x4c96cc===undefined||typeof _0x4c96cc===_0x37b97b(0x141)||typeof _0x4c96cc==='number'||typeof _0x4c96cc==='boolean';}
@@ -1 +1 @@
1
- (function(_0x437317,_0x4c8187){const _0x2c5eec=a61_0x4b75,_0x13bd89=_0x437317();while(!![]){try{const _0xb8e3ec=-parseInt(_0x2c5eec(0x16e))/0x1*(-parseInt(_0x2c5eec(0x189))/0x2)+parseInt(_0x2c5eec(0x175))/0x3*(-parseInt(_0x2c5eec(0x188))/0x4)+-parseInt(_0x2c5eec(0x186))/0x5*(-parseInt(_0x2c5eec(0x179))/0x6)+-parseInt(_0x2c5eec(0x168))/0x7+-parseInt(_0x2c5eec(0x166))/0x8*(-parseInt(_0x2c5eec(0x18d))/0x9)+parseInt(_0x2c5eec(0x174))/0xa+-parseInt(_0x2c5eec(0x180))/0xb*(-parseInt(_0x2c5eec(0x173))/0xc);if(_0xb8e3ec===_0x4c8187)break;else _0x13bd89['push'](_0x13bd89['shift']());}catch(_0x29f452){_0x13bd89['push'](_0x13bd89['shift']());}}}(a61_0x43ed,0x9a3e7));export function adaptServiceTreeManifestForLegacyFramework(_0x598a7d){const _0x592b62=a61_0x4b75,_0x52c1f5=cloneJsonValue(_0x598a7d),_0x1adda2=[];if(!isObjectRecord(_0x52c1f5))return{'manifest':_0x52c1f5,'errors':_0x1adda2};return Array[_0x592b62(0x18c)](_0x52c1f5[_0x592b62(0x18e)])&&_0x52c1f5[_0x592b62(0x18e)][_0x592b62(0x17a)]((_0x28a5b5,_0x253f4d)=>{const _0x4e36ae=_0x592b62;if(!isObjectRecord(_0x28a5b5))return;adaptBffTarget(_0x28a5b5['target'],_0x4e36ae(0x178)+_0x253f4d+_0x4e36ae(0x17f),_0x1adda2);}),adaptResources(_0x52c1f5[_0x592b62(0x16a)],_0x592b62(0x172),_0x1adda2),{'manifest':_0x52c1f5,'errors':_0x1adda2};}export function toPublicServiceTreeTarget(_0x612904){const _0x4d3673=a61_0x4b75,{scriptName:_0x498ded,..._0x2172ce}=_0x612904;return typeof _0x498ded===_0x4d3673(0x17b)&&_0x498ded[_0x4d3673(0x185)]()&&(_0x2172ce[_0x4d3673(0x18b)]=_0x498ded),_0x2172ce;}export function toPublicNormalizedServiceTree(_0x4d7ba3){const _0x3b7999=a61_0x4b75;return{..._0x4d7ba3,'commands':_0x4d7ba3[_0x3b7999(0x18e)][_0x3b7999(0x16d)](_0x4ac3f2=>({..._0x4ac3f2,'target':toPublicServiceTreeTarget(_0x4ac3f2[_0x3b7999(0x16f)])}))};}function adaptResources(_0x16e15c,_0x21751e,_0x1649b2){const _0x4e61fe=a61_0x4b75;if(!isObjectRecord(_0x16e15c))return;for(const [_0x409fb5,_0x153075]of Object['entries'](_0x16e15c)){if(!isObjectRecord(_0x153075))continue;const _0x250dbc=_0x21751e+'.'+_0x409fb5;if(isObjectRecord(_0x153075[_0x4e61fe(0x17d)]))for(const [_0x33d0f8,_0x4a740f]of Object[_0x4e61fe(0x182)](_0x153075[_0x4e61fe(0x17d)])){if(!isObjectRecord(_0x4a740f))continue;const _0x173d9e=_0x250dbc+_0x4e61fe(0x183)+_0x33d0f8,_0xe27dbd=isObjectRecord(_0x4a740f[_0x4e61fe(0x16f)])&&_0x4a740f[_0x4e61fe(0x16f)]['kind']===_0x4e61fe(0x167);adaptBffTarget(_0x4a740f['target'],_0x173d9e+_0x4e61fe(0x16c),_0x1649b2),(_0xe27dbd||isBffAction(_0x4a740f))&&adaptFunctionNameField(_0x4a740f,_0x173d9e,_0x1649b2);}adaptResources(_0x153075[_0x4e61fe(0x16a)],_0x250dbc+_0x4e61fe(0x184),_0x1649b2);}}function a61_0x4b75(_0x3daa74,_0x50b2ec){_0x3daa74=_0x3daa74-0x165;const _0x43edef=a61_0x43ed();let _0x4b752e=_0x43edef[_0x3daa74];return _0x4b752e;}function adaptBffTarget(_0x58c6a2,_0x585556,_0x141eef){const _0x53fba2=a61_0x4b75;if(!isObjectRecord(_0x58c6a2)||_0x58c6a2[_0x53fba2(0x169)]!==_0x53fba2(0x167))return;adaptFunctionNameField(_0x58c6a2,_0x585556,_0x141eef);}function adaptFunctionNameField(_0x3440d1,_0x3e8039,_0x123b91){const _0x126ef7=a61_0x4b75;Object[_0x126ef7(0x17e)]['hasOwnProperty']['call'](_0x3440d1,_0x126ef7(0x165))&&_0x123b91[_0x126ef7(0x17c)]({'level':_0x126ef7(0x176),'path':_0x3e8039+_0x126ef7(0x171),'message':_0x126ef7(0x187)});if(Object[_0x126ef7(0x17e)][_0x126ef7(0x18a)][_0x126ef7(0x177)](_0x3440d1,_0x126ef7(0x18b))){if(typeof _0x3440d1[_0x126ef7(0x18b)]!==_0x126ef7(0x17b)||!_0x3440d1[_0x126ef7(0x18b)][_0x126ef7(0x185)]()){_0x123b91[_0x126ef7(0x17c)]({'level':_0x126ef7(0x176),'path':_0x3e8039+'.functionName','message':_0x126ef7(0x16b)}),delete _0x3440d1[_0x126ef7(0x18b)];return;}_0x3440d1[_0x126ef7(0x165)]=_0x3440d1[_0x126ef7(0x18b)],delete _0x3440d1[_0x126ef7(0x18b)];}}function a61_0x43ed(){const _0x435b90=['3qivbNG','error','call','$.commands[','37362MZXUFY','forEach','string','push','actions','prototype','].target','4565tORFfe','bff.exec','entries','.actions.','.resources','trim','265cBHftT','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','4543160joBCYm','190654KWDTDU','hasOwnProperty','functionName','isArray','43551dMxwZz','commands','scriptName','184CUzARc','bff','8346338RirAsh','kind','resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','.target','map','13gNBbRL','target','fromEntries','.scriptName','$.resources','32532HNVpkm','1542630WiyRwY'];a61_0x43ed=function(){return _0x435b90;};return a61_0x43ed();}function isBffAction(_0x1e72d1){const _0x231d62=a61_0x4b75;return _0x1e72d1[_0x231d62(0x169)]===_0x231d62(0x167)||_0x1e72d1['action']===_0x231d62(0x181)||_0x1e72d1[_0x231d62(0x16f)]===_0x231d62(0x181);}function cloneJsonValue(_0xc421b2){const _0x23e53f=a61_0x4b75;if(Array[_0x23e53f(0x18c)](_0xc421b2))return _0xc421b2[_0x23e53f(0x16d)](_0x960075=>cloneJsonValue(_0x960075));if(isObjectRecord(_0xc421b2))return Object[_0x23e53f(0x170)](Object['entries'](_0xc421b2)[_0x23e53f(0x16d)](([_0x353d5d,_0xb697ce])=>[_0x353d5d,cloneJsonValue(_0xb697ce)]));return _0xc421b2;}function isObjectRecord(_0x28dde9){const _0x3b1540=a61_0x4b75;return Boolean(_0x28dde9)&&typeof _0x28dde9==='object'&&!Array[_0x3b1540(0x18c)](_0x28dde9);}
1
+ (function(_0x535b76,_0x4d59f5){const _0x41ec31=a61_0x16ef,_0x5c4de8=_0x535b76();while(!![]){try{const _0x3bcbba=parseInt(_0x41ec31(0x76))/0x1*(-parseInt(_0x41ec31(0x93))/0x2)+parseInt(_0x41ec31(0x7d))/0x3*(parseInt(_0x41ec31(0x94))/0x4)+parseInt(_0x41ec31(0x95))/0x5+parseInt(_0x41ec31(0x92))/0x6+parseInt(_0x41ec31(0x72))/0x7*(parseInt(_0x41ec31(0x8e))/0x8)+parseInt(_0x41ec31(0x91))/0x9*(parseInt(_0x41ec31(0x8a))/0xa)+-parseInt(_0x41ec31(0x71))/0xb;if(_0x3bcbba===_0x4d59f5)break;else _0x5c4de8['push'](_0x5c4de8['shift']());}catch(_0x1a4100){_0x5c4de8['push'](_0x5c4de8['shift']());}}}(a61_0x2419,0x3f78e));export function adaptServiceTreeManifestForLegacyFramework(_0x193cda){const _0x2b4e0d=a61_0x16ef,_0x550da1=cloneJsonValue(_0x193cda),_0x53c47d=[];if(!isObjectRecord(_0x550da1))return{'manifest':_0x550da1,'errors':_0x53c47d};return Array[_0x2b4e0d(0x87)](_0x550da1['commands'])&&_0x550da1[_0x2b4e0d(0x88)][_0x2b4e0d(0x81)]((_0x2c73db,_0x10e179)=>{const _0x1c0092=_0x2b4e0d;if(!isObjectRecord(_0x2c73db))return;adaptBffTarget(_0x2c73db[_0x1c0092(0x8f)],_0x1c0092(0x74)+_0x10e179+_0x1c0092(0x85),_0x53c47d);}),adaptResources(_0x550da1['resources'],_0x2b4e0d(0x73),_0x53c47d),{'manifest':_0x550da1,'errors':_0x53c47d};}export function toPublicServiceTreeTarget(_0x361e3b){const _0x50e5fd=a61_0x16ef,{scriptName:_0x25bf48,..._0x107d60}=_0x361e3b;return typeof _0x25bf48===_0x50e5fd(0x8b)&&_0x25bf48[_0x50e5fd(0x7c)]()&&(_0x107d60[_0x50e5fd(0x86)]=_0x25bf48),_0x107d60;}export function toPublicNormalizedServiceTree(_0x2f7e32){const _0x93c66d=a61_0x16ef;return{..._0x2f7e32,'commands':_0x2f7e32['commands']['map'](_0x47460=>({..._0x47460,'target':toPublicServiceTreeTarget(_0x47460[_0x93c66d(0x8f)])}))};}function adaptResources(_0xfae42e,_0x366e0b,_0x392174){const _0x51ba9e=a61_0x16ef;if(!isObjectRecord(_0xfae42e))return;for(const [_0x74515f,_0x349bd5]of Object['entries'](_0xfae42e)){if(!isObjectRecord(_0x349bd5))continue;const _0x1e4cc9=_0x366e0b+'.'+_0x74515f;if(isObjectRecord(_0x349bd5[_0x51ba9e(0x78)]))for(const [_0x5c97ef,_0x622bc8]of Object[_0x51ba9e(0x7e)](_0x349bd5[_0x51ba9e(0x78)])){if(!isObjectRecord(_0x622bc8))continue;const _0x53643a=_0x1e4cc9+_0x51ba9e(0x7b)+_0x5c97ef,_0x330681=isObjectRecord(_0x622bc8[_0x51ba9e(0x8f)])&&_0x622bc8[_0x51ba9e(0x8f)][_0x51ba9e(0x89)]===_0x51ba9e(0x83);adaptBffTarget(_0x622bc8[_0x51ba9e(0x8f)],_0x53643a+_0x51ba9e(0x79),_0x392174),(_0x330681||isBffAction(_0x622bc8))&&adaptFunctionNameField(_0x622bc8,_0x53643a,_0x392174);}adaptResources(_0x349bd5[_0x51ba9e(0x82)],_0x1e4cc9+_0x51ba9e(0x7f),_0x392174);}}function a61_0x16ef(_0xaf8fb1,_0x144580){_0xaf8fb1=_0xaf8fb1-0x71;const _0x241985=a61_0x2419();let _0x16ef9c=_0x241985[_0xaf8fb1];return _0x16ef9c;}function adaptBffTarget(_0x4bc4b9,_0x2f8a1e,_0x2dd988){const _0xc219e0=a61_0x16ef;if(!isObjectRecord(_0x4bc4b9)||_0x4bc4b9[_0xc219e0(0x89)]!==_0xc219e0(0x83))return;adaptFunctionNameField(_0x4bc4b9,_0x2f8a1e,_0x2dd988);}function adaptFunctionNameField(_0x227b2f,_0x5930f9,_0x20fc6c){const _0x2c95e0=a61_0x16ef;Object[_0x2c95e0(0x80)][_0x2c95e0(0x77)][_0x2c95e0(0x75)](_0x227b2f,_0x2c95e0(0x8c))&&_0x20fc6c[_0x2c95e0(0x8d)]({'level':_0x2c95e0(0x97),'path':_0x5930f9+_0x2c95e0(0x7a),'message':_0x2c95e0(0x96)});if(Object[_0x2c95e0(0x80)][_0x2c95e0(0x77)][_0x2c95e0(0x75)](_0x227b2f,_0x2c95e0(0x86))){if(typeof _0x227b2f[_0x2c95e0(0x86)]!==_0x2c95e0(0x8b)||!_0x227b2f['functionName'][_0x2c95e0(0x7c)]()){_0x20fc6c[_0x2c95e0(0x8d)]({'level':'error','path':_0x5930f9+_0x2c95e0(0x98),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x227b2f[_0x2c95e0(0x86)];return;}_0x227b2f[_0x2c95e0(0x8c)]=_0x227b2f[_0x2c95e0(0x86)],delete _0x227b2f[_0x2c95e0(0x86)];}}function isBffAction(_0x43c73f){const _0x4479f9=a61_0x16ef;return _0x43c73f['kind']==='bff'||_0x43c73f['action']===_0x4479f9(0x90)||_0x43c73f[_0x4479f9(0x8f)]===_0x4479f9(0x90);}function a61_0x2419(){const _0x4aae47=['2626106qrNCJn','$.resources','$.commands[','call','26781TXbUlY','hasOwnProperty','actions','.target','.scriptName','.actions.','trim','7041TvPhXh','entries','.resources','prototype','forEach','resources','bff','object','].target','functionName','isArray','commands','kind','3613170PkuRDf','string','scriptName','push','8zJxnsQ','target','bff.exec','9llheqd','1023342zWHejG','6ELPssS','28wIRiXU','1182470ZUIZoQ','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','error','.functionName','9015930OZzWCb'];a61_0x2419=function(){return _0x4aae47;};return a61_0x2419();}function cloneJsonValue(_0x27316b){const _0x80b01e=a61_0x16ef;if(Array[_0x80b01e(0x87)](_0x27316b))return _0x27316b['map'](_0x38ec8b=>cloneJsonValue(_0x38ec8b));if(isObjectRecord(_0x27316b))return Object['fromEntries'](Object['entries'](_0x27316b)['map'](([_0x243377,_0x1be9c2])=>[_0x243377,cloneJsonValue(_0x1be9c2)]));return _0x27316b;}function isObjectRecord(_0x22b510){const _0x19c63a=a61_0x16ef;return Boolean(_0x22b510)&&typeof _0x22b510===_0x19c63a(0x84)&&!Array[_0x19c63a(0x87)](_0x22b510);}
@@ -1 +1 @@
1
- const a62_0x39c7eb=a62_0x3a63;(function(_0x5b721f,_0x54869a){const _0x516e5a=a62_0x3a63,_0xb0b177=_0x5b721f();while(!![]){try{const _0x14267f=parseInt(_0x516e5a(0xb3))/0x1*(-parseInt(_0x516e5a(0xb0))/0x2)+-parseInt(_0x516e5a(0x93))/0x3+-parseInt(_0x516e5a(0xb2))/0x4*(-parseInt(_0x516e5a(0xb4))/0x5)+-parseInt(_0x516e5a(0x9c))/0x6+parseInt(_0x516e5a(0x89))/0x7+-parseInt(_0x516e5a(0x9f))/0x8*(parseInt(_0x516e5a(0x8e))/0x9)+-parseInt(_0x516e5a(0xd1))/0xa*(-parseInt(_0x516e5a(0xc4))/0xb);if(_0x14267f===_0x54869a)break;else _0xb0b177['push'](_0xb0b177['shift']());}catch(_0x4039a1){_0xb0b177['push'](_0xb0b177['shift']());}}}(a62_0x125f,0x4f16e));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':'file','type':a62_0x39c7eb(0x95),'required':!![],'description':a62_0x39c7eb(0xa6)},SERVICE_FLAG={'name':a62_0x39c7eb(0xa0),'type':a62_0x39c7eb(0x95),'required':!![],'description':a62_0x39c7eb(0xab),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x39c7eb(0xc8)}};function a62_0x125f(){const _0x1ea9a5=['Imported\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','source','errors','map','10tHZXMi','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','hash','entry','detail','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','3295222xFpBmI','length','\x20service(s).','importedAt','required','9kGJjPp','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','str','kind','remove','1505610oBsRba','Exported\x20service\x20','string','serviceCount','registry','registryPath','warnings','manifests','import','1816824SxlbTe','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','reduce','4713608bpRZJI','service','manifest','Service\x20manifest\x20validation\x20passed.','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','read','target','Service\x20Tree\x20manifest\x20file\x20path','report','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','\x20service(s),\x20updated\x20','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','Local\x20service\x20code,\x20for\x20example\x20crm','flags','risk','Local\x20service\x20not\x20found:\x20','filePath','50pTowPA','imported','4bfgTTI','4741NBNduE','2232385vOiXYX','updated','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','write','commands','registryIndex','normalizedManifest','serviceCode','WRITE','Removed\x20service\x20','replaced','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Service\x20registry\x20validation\x20passed.','cliPath','type','export','10110397xGVgxn','entries','description','file','lower\x20kebab-case\x20service\x20code','\x20service\x20','registryServiceCode','version'];a62_0x125f=function(){return _0x1ea9a5;};return a62_0x125f();}function a62_0x3a63(_0x455ae8,_0x58d661){_0x455ae8=_0x455ae8-0x89;const _0x125fed=a62_0x125f();let _0x3a638c=_0x125fed[_0x455ae8];return _0x3a638c;}function summarizeService(_0xd29136){const _0x447a73=a62_0x39c7eb;return{'serviceCode':_0xd29136[_0x447a73(0xbb)],'name':_0xd29136[_0x447a73(0xba)]['service']['name'],'version':_0xd29136['version'],'importedAt':_0xd29136[_0x447a73(0x8c)],'source':_0xd29136[_0x447a73(0xce)],'commandCount':_0xd29136[_0x447a73(0xba)][_0x447a73(0xb8)][_0x447a73(0x8a)],'commands':_0xd29136[_0x447a73(0xba)][_0x447a73(0xb8)]['map'](_0xf56d69=>({'path':_0xf56d69['cliPath'],'description':_0xf56d69[_0x447a73(0xc6)],'risk':_0xf56d69[_0x447a73(0xad)],'target':toPublicServiceTreeTarget(_0xf56d69['target']),'flags':_0xf56d69[_0x447a73(0xac)][_0x447a73(0xd0)](_0x163243=>({'name':_0x163243['name'],'cliName':_0x163243['cliName'],'type':_0x163243[_0x447a73(0xc2)],'required':_0x163243[_0x447a73(0x8d)]===!![]}))}))};}function summarizeLoadedManifest(_0x206653){const _0x18da10=a62_0x39c7eb;return{'service':_0x206653[_0x18da10(0xba)]?.[_0x18da10(0xa0)],'version':_0x206653['normalizedManifest']?.[_0x18da10(0xcb)],'commandCount':_0x206653[_0x18da10(0xba)]?.['commands'][_0x18da10(0x8a)]??0x0,'commands':_0x206653['normalizedManifest']?.[_0x18da10(0xb8)][_0x18da10(0xd0)](_0x213489=>({'path':_0x213489[_0x18da10(0xc1)],'risk':_0x213489['risk'],'target':toPublicServiceTreeTarget(_0x213489[_0x18da10(0xa5)])}))??[],'registryIndex':_0x206653[_0x18da10(0xb9)],'registryServiceCode':_0x206653[_0x18da10(0xca)],'errors':_0x206653[_0x18da10(0xa7)]['errors'],'warnings':_0x206653[_0x18da10(0xa7)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x39c7eb(0xa0),'command':'validate','description':a62_0x39c7eb(0xa8),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2a9f5d){const _0x1e41b3=a62_0x39c7eb,_0x1e3e50=loadServiceManifestFromFile(_0x2a9f5d[_0x1e41b3(0x90)](_0x1e41b3(0xc7)));if(!_0x1e3e50['report']['ok'])return{'ok':![],'data':{'file':_0x1e3e50[_0x1e41b3(0xaf)],'hash':_0x1e3e50['hash'],'kind':_0x1e3e50['kind'],'serviceCount':_0x1e3e50['manifests'][_0x1e41b3(0x8a)],'services':_0x1e3e50[_0x1e41b3(0x9a)]['map'](summarizeLoadedManifest),'errors':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0xcf)],'warnings':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0x99)]},'message':formatValidationFailure(_0x1e3e50[_0x1e41b3(0xa7)])};if(_0x1e3e50[_0x1e41b3(0x91)]===_0x1e41b3(0x97)||_0x1e3e50['manifests'][_0x1e41b3(0x8a)]!==0x1)return{'ok':!![],'data':{'file':_0x1e3e50[_0x1e41b3(0xaf)],'hash':_0x1e3e50[_0x1e41b3(0xd3)],'kind':_0x1e3e50['kind'],'serviceCount':_0x1e3e50[_0x1e41b3(0x9a)][_0x1e41b3(0x8a)],'commandCount':_0x1e3e50['manifests'][_0x1e41b3(0x9e)]((_0x454cad,_0x4aea9a)=>_0x454cad+(_0x4aea9a[_0x1e41b3(0xba)]?.[_0x1e41b3(0xb8)][_0x1e41b3(0x8a)]??0x0),0x0),'services':_0x1e3e50[_0x1e41b3(0x9a)][_0x1e41b3(0xd0)](summarizeLoadedManifest),'warnings':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0x99)]},'message':_0x1e41b3(0xc0)};return{'ok':!![],'data':{'file':_0x1e3e50[_0x1e41b3(0xaf)],'hash':_0x1e3e50['hash'],'kind':_0x1e3e50['kind'],'service':_0x1e3e50[_0x1e41b3(0xba)]?.[_0x1e41b3(0xa0)],'version':_0x1e3e50['normalizedManifest']?.[_0x1e41b3(0xcb)],'commandCount':_0x1e3e50[_0x1e41b3(0xba)]?.[_0x1e41b3(0xb8)][_0x1e41b3(0x8a)]??0x0,'commands':_0x1e3e50[_0x1e41b3(0xba)]?.[_0x1e41b3(0xb8)][_0x1e41b3(0xd0)](_0x3317e4=>({'path':_0x3317e4['cliPath'],'risk':_0x3317e4['risk'],'target':toPublicServiceTreeTarget(_0x3317e4[_0x1e41b3(0xa5)])})),'warnings':_0x1e3e50[_0x1e41b3(0xa7)][_0x1e41b3(0x99)]},'message':_0x1e41b3(0xa2)};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0x9b),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x39c7eb(0xb7),'confirmationDescription':a62_0x39c7eb(0xb6),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x506cf0){const _0x299a96=a62_0x39c7eb,_0x2639d8=loadServiceManifestFromFile(_0x506cf0['str']('file'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x2639d8[_0x299a96(0xaf)],'hash':_0x2639d8[_0x299a96(0xd3)],'kind':_0x2639d8[_0x299a96(0x91)],'ok':_0x2639d8[_0x299a96(0xa7)]['ok'],'service':_0x2639d8[_0x299a96(0xba)]?.[_0x299a96(0xa0)],'version':_0x2639d8[_0x299a96(0xba)]?.[_0x299a96(0xcb)],'serviceCount':_0x2639d8['manifests'][_0x299a96(0x8a)],'services':_0x2639d8[_0x299a96(0x9a)][_0x299a96(0xd0)](_0x5f0e1e=>({'service':_0x5f0e1e[_0x299a96(0xba)]?.[_0x299a96(0xa0)],'version':_0x5f0e1e[_0x299a96(0xba)]?.[_0x299a96(0xcb)],'commandCount':_0x5f0e1e[_0x299a96(0xba)]?.['commands'][_0x299a96(0x8a)]??0x0,'errors':_0x5f0e1e['report'][_0x299a96(0xcf)]})),'errors':_0x2639d8[_0x299a96(0xa7)][_0x299a96(0xcf)],'commandCount':_0x2639d8[_0x299a96(0xba)]?.[_0x299a96(0xb8)][_0x299a96(0x8a)]??0x0},'description':_0x299a96(0x8f)};},async 'execute'(_0x3f579e){const _0x4ba4c3=a62_0x39c7eb,_0x2b494b=importServiceManifest(_0x3f579e['str']('file'));if(_0x2b494b[_0x4ba4c3(0xc5)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x2b494b[_0x4ba4c3(0x98)],'imported':_0x2b494b[_0x4ba4c3(0xb1)],'updated':_0x2b494b[_0x4ba4c3(0xb5)],'serviceCount':_0x2b494b['serviceCount'],'services':_0x2b494b[_0x4ba4c3(0xc5)]['map'](summarizeService)},'message':_0x4ba4c3(0xcc)+_0x2b494b[_0x4ba4c3(0xb1)]+_0x4ba4c3(0xa9)+_0x2b494b[_0x4ba4c3(0xb5)]+_0x4ba4c3(0x8b)};return{'ok':!![],'data':{'registryPath':_0x2b494b[_0x4ba4c3(0x98)],'replaced':_0x2b494b[_0x4ba4c3(0xbe)],'imported':_0x2b494b['imported'],'updated':_0x2b494b['updated'],'serviceCount':_0x2b494b[_0x4ba4c3(0x96)],'service':summarizeService(_0x2b494b['entry'])},'message':(_0x2b494b['replaced']?'Updated':'Imported')+_0x4ba4c3(0xc9)+_0x2b494b[_0x4ba4c3(0xd4)][_0x4ba4c3(0xbb)]+'.'};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0xc3),'description':a62_0x39c7eb(0xa3),'risk':a62_0x39c7eb(0xb7),'confirmationDescription':a62_0x39c7eb(0x9d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5d888d){const _0x3c28e8=a62_0x39c7eb,_0x3c2118=getLocalServiceEntry(_0x5d888d[_0x3c28e8(0x90)](_0x3c28e8(0xa0)));return{'method':'WRITE','url':_0x5d888d[_0x3c28e8(0x90)]('file'),'body':{'service':_0x5d888d[_0x3c28e8(0x90)](_0x3c28e8(0xa0)),'found':Boolean(_0x3c2118),'version':_0x3c2118?.['version'],'source':_0x3c2118?.[_0x3c28e8(0xce)]},'description':_0x3c28e8(0xbf)};},async 'execute'(_0x2e8b02){const _0x26b820=a62_0x39c7eb,_0x352829=exportServiceManifest(_0x2e8b02['str']('service'),_0x2e8b02[_0x26b820(0x90)](_0x26b820(0xc7)));return{'ok':!![],'data':{'registryPath':_0x352829['registryPath'],'file':_0x352829[_0x26b820(0xaf)],'service':summarizeService(_0x352829['entry'])},'message':_0x26b820(0x94)+_0x352829[_0x26b820(0xd4)][_0x26b820(0xbb)]+'.'};}},{'service':a62_0x39c7eb(0xa0),'command':'list','description':a62_0x39c7eb(0xd2),'risk':a62_0x39c7eb(0xa4),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x190272=a62_0x39c7eb,_0x58d0a5=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x58d0a5[_0x190272(0x8a)],'services':_0x58d0a5['map'](summarizeService)}};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0x92),'description':a62_0x39c7eb(0xaa),'risk':'write','confirmationDescription':a62_0x39c7eb(0xd6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3ffd7b){const _0x5d1885=a62_0x39c7eb,_0x5b02b2=getLocalServiceEntry(_0x3ffd7b[_0x5d1885(0x90)](_0x5d1885(0xa0)));return{'method':_0x5d1885(0xbc),'url':getServiceRegistryPath(),'body':{'service':_0x3ffd7b[_0x5d1885(0x90)](_0x5d1885(0xa0)),'found':Boolean(_0x5b02b2),'version':_0x5b02b2?.[_0x5d1885(0xcb)],'source':_0x5b02b2?.[_0x5d1885(0xce)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x90fb59){const _0x1a86e7=a62_0x39c7eb,_0x2b9aed=removeServiceManifest(_0x90fb59['str'](_0x1a86e7(0xa0)));return{'ok':!![],'data':{'registryPath':_0x2b9aed[_0x1a86e7(0x98)],'serviceCount':_0x2b9aed['serviceCount'],'service':summarizeService(_0x2b9aed[_0x1a86e7(0xd4)])},'message':_0x1a86e7(0xbd)+_0x2b9aed['entry'][_0x1a86e7(0xbb)]+'.'};}},{'service':a62_0x39c7eb(0xa0),'command':a62_0x39c7eb(0xd5),'description':a62_0x39c7eb(0xcd),'risk':a62_0x39c7eb(0xa4),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x48b98b){const _0x142367=a62_0x39c7eb,_0x3e9fdb=getLocalServiceEntry(_0x48b98b[_0x142367(0x90)](_0x142367(0xa0)));if(!_0x3e9fdb)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x48b98b[_0x142367(0x90)]('service')},'message':_0x142367(0xae)+_0x48b98b[_0x142367(0x90)](_0x142367(0xa0))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3e9fdb),'manifest':_0x3e9fdb[_0x142367(0xa1)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3e9fdb['normalizedManifest'])}};}}];
1
+ const a62_0x228818=a62_0x2f4e;(function(_0xada9ae,_0x23493a){const _0x3fb780=a62_0x2f4e,_0x9f7fa6=_0xada9ae();while(!![]){try{const _0x244825=-parseInt(_0x3fb780(0x125))/0x1*(parseInt(_0x3fb780(0x145))/0x2)+parseInt(_0x3fb780(0x12f))/0x3*(parseInt(_0x3fb780(0x105))/0x4)+-parseInt(_0x3fb780(0x132))/0x5*(-parseInt(_0x3fb780(0x114))/0x6)+-parseInt(_0x3fb780(0x13f))/0x7+-parseInt(_0x3fb780(0x13b))/0x8*(-parseInt(_0x3fb780(0x104))/0x9)+-parseInt(_0x3fb780(0x141))/0xa+parseInt(_0x3fb780(0x144))/0xb*(parseInt(_0x3fb780(0x13a))/0xc);if(_0x244825===_0x23493a)break;else _0x9f7fa6['push'](_0x9f7fa6['shift']());}catch(_0x4066f3){_0x9f7fa6['push'](_0x9f7fa6['shift']());}}}(a62_0x105f,0xbd060));function a62_0x2f4e(_0x3476df,_0x2aeab6){_0x3476df=_0x3476df-0x104;const _0x105ff1=a62_0x105f();let _0x2f4eeb=_0x105ff1[_0x3476df];return _0x2f4eeb;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0x228818(0x110),'type':a62_0x228818(0x146),'required':!![],'description':a62_0x228818(0x139)},SERVICE_FLAG={'name':'service','type':a62_0x228818(0x146),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x204dfb){const _0x152aad=a62_0x228818;return{'serviceCode':_0x204dfb[_0x152aad(0x147)],'name':_0x204dfb[_0x152aad(0x10b)][_0x152aad(0x133)]['name'],'version':_0x204dfb[_0x152aad(0x113)],'importedAt':_0x204dfb[_0x152aad(0x13c)],'source':_0x204dfb[_0x152aad(0x12e)],'commandCount':_0x204dfb[_0x152aad(0x10b)][_0x152aad(0x123)]['length'],'commands':_0x204dfb[_0x152aad(0x10b)][_0x152aad(0x123)][_0x152aad(0x11f)](_0x3c30d7=>({'path':_0x3c30d7['cliPath'],'description':_0x3c30d7[_0x152aad(0x10e)],'risk':_0x3c30d7[_0x152aad(0x12b)],'target':toPublicServiceTreeTarget(_0x3c30d7['target']),'flags':_0x3c30d7['flags'][_0x152aad(0x11f)](_0x8bdb00=>({'name':_0x8bdb00[_0x152aad(0x121)],'cliName':_0x8bdb00['cliName'],'type':_0x8bdb00[_0x152aad(0x129)],'required':_0x8bdb00['required']===!![]}))}))};}function a62_0x105f(){const _0x286c06=['Service\x20manifest\x20validation\x20passed.','errors','hash','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Imported\x20','kind','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','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.','map','list','name','\x20service\x20','commands','filePath','31CuEhRX','serviceCount','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','registry','type','entry','risk','str','replaced','source','3904899ZHPkgx','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.','read','1240UITgRM','service','write','detail','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Updated','manifest','Service\x20Tree\x20manifest\x20file\x20path','539940RQYuSy','64iHcIvx','importedAt','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','\x20service(s).','5455520aBPzKQ','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','7112400NBEzjN','length','cliPath','242DHFzTf','83770taKJng','string','serviceCode','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','888066aLSOoE','4NzpQNJ','Removed\x20service\x20','warnings','entries','imported','reduce','normalizedManifest','\x20service(s),\x20updated\x20','report','description','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','file','updated','registryIndex','version','11670OSZsVB','manifests','registryPath'];a62_0x105f=function(){return _0x286c06;};return a62_0x105f();}function summarizeLoadedManifest(_0x1b951f){const _0x1b5643=a62_0x228818;return{'service':_0x1b951f[_0x1b5643(0x10b)]?.['service'],'version':_0x1b951f[_0x1b5643(0x10b)]?.[_0x1b5643(0x113)],'commandCount':_0x1b951f['normalizedManifest']?.[_0x1b5643(0x123)][_0x1b5643(0x142)]??0x0,'commands':_0x1b951f['normalizedManifest']?.[_0x1b5643(0x123)][_0x1b5643(0x11f)](_0x1a10bc=>({'path':_0x1a10bc[_0x1b5643(0x143)],'risk':_0x1a10bc[_0x1b5643(0x12b)],'target':toPublicServiceTreeTarget(_0x1a10bc['target'])}))??[],'registryIndex':_0x1b951f[_0x1b5643(0x112)],'registryServiceCode':_0x1b951f['registryServiceCode'],'errors':_0x1b951f['report']['errors'],'warnings':_0x1b951f['report'][_0x1b5643(0x107)]};}export const serviceDefinitions=[{'service':'service','command':'validate','description':a62_0x228818(0x11d),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xfeca59){const _0x504c0d=a62_0x228818,_0x203174=loadServiceManifestFromFile(_0xfeca59[_0x504c0d(0x12c)](_0x504c0d(0x110)));if(!_0x203174[_0x504c0d(0x10d)]['ok'])return{'ok':![],'data':{'file':_0x203174[_0x504c0d(0x124)],'hash':_0x203174[_0x504c0d(0x119)],'kind':_0x203174[_0x504c0d(0x11c)],'serviceCount':_0x203174[_0x504c0d(0x115)][_0x504c0d(0x142)],'services':_0x203174[_0x504c0d(0x115)]['map'](summarizeLoadedManifest),'errors':_0x203174[_0x504c0d(0x10d)][_0x504c0d(0x118)],'warnings':_0x203174[_0x504c0d(0x10d)][_0x504c0d(0x107)]},'message':formatValidationFailure(_0x203174[_0x504c0d(0x10d)])};if(_0x203174[_0x504c0d(0x11c)]===_0x504c0d(0x128)||_0x203174['manifests'][_0x504c0d(0x142)]!==0x1)return{'ok':!![],'data':{'file':_0x203174['filePath'],'hash':_0x203174['hash'],'kind':_0x203174['kind'],'serviceCount':_0x203174['manifests']['length'],'commandCount':_0x203174[_0x504c0d(0x115)][_0x504c0d(0x10a)]((_0x35ca1b,_0x10b6b7)=>_0x35ca1b+(_0x10b6b7[_0x504c0d(0x10b)]?.[_0x504c0d(0x123)][_0x504c0d(0x142)]??0x0),0x0),'services':_0x203174[_0x504c0d(0x115)]['map'](summarizeLoadedManifest),'warnings':_0x203174[_0x504c0d(0x10d)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x203174['filePath'],'hash':_0x203174[_0x504c0d(0x119)],'kind':_0x203174['kind'],'service':_0x203174[_0x504c0d(0x10b)]?.[_0x504c0d(0x133)],'version':_0x203174['normalizedManifest']?.['version'],'commandCount':_0x203174[_0x504c0d(0x10b)]?.['commands'][_0x504c0d(0x142)]??0x0,'commands':_0x203174[_0x504c0d(0x10b)]?.[_0x504c0d(0x123)][_0x504c0d(0x11f)](_0x58667f=>({'path':_0x58667f[_0x504c0d(0x143)],'risk':_0x58667f[_0x504c0d(0x12b)],'target':toPublicServiceTreeTarget(_0x58667f['target'])})),'warnings':_0x203174[_0x504c0d(0x10d)][_0x504c0d(0x107)]},'message':_0x504c0d(0x117)};}},{'service':a62_0x228818(0x133),'command':'import','description':a62_0x228818(0x136),'risk':a62_0x228818(0x134),'confirmationDescription':a62_0x228818(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1b3abb){const _0x266586=a62_0x228818,_0xc84ed0=loadServiceManifestFromFile(_0x1b3abb[_0x266586(0x12c)](_0x266586(0x110)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0xc84ed0['filePath'],'hash':_0xc84ed0[_0x266586(0x119)],'kind':_0xc84ed0['kind'],'ok':_0xc84ed0['report']['ok'],'service':_0xc84ed0[_0x266586(0x10b)]?.[_0x266586(0x133)],'version':_0xc84ed0[_0x266586(0x10b)]?.[_0x266586(0x113)],'serviceCount':_0xc84ed0['manifests'][_0x266586(0x142)],'services':_0xc84ed0['manifests'][_0x266586(0x11f)](_0xaaf988=>({'service':_0xaaf988[_0x266586(0x10b)]?.[_0x266586(0x133)],'version':_0xaaf988[_0x266586(0x10b)]?.[_0x266586(0x113)],'commandCount':_0xaaf988[_0x266586(0x10b)]?.['commands']['length']??0x0,'errors':_0xaaf988['report'][_0x266586(0x118)]})),'errors':_0xc84ed0[_0x266586(0x10d)][_0x266586(0x118)],'commandCount':_0xc84ed0[_0x266586(0x10b)]?.[_0x266586(0x123)][_0x266586(0x142)]??0x0},'description':_0x266586(0x10f)};},async 'execute'(_0x4045d9){const _0x34f782=a62_0x228818,_0x4635a7=importServiceManifest(_0x4045d9[_0x34f782(0x12c)](_0x34f782(0x110)));if(_0x4635a7[_0x34f782(0x108)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x4635a7['registryPath'],'imported':_0x4635a7['imported'],'updated':_0x4635a7['updated'],'serviceCount':_0x4635a7['serviceCount'],'services':_0x4635a7['entries']['map'](summarizeService)},'message':_0x34f782(0x11b)+_0x4635a7[_0x34f782(0x109)]+_0x34f782(0x10c)+_0x4635a7[_0x34f782(0x111)]+_0x34f782(0x13e)};return{'ok':!![],'data':{'registryPath':_0x4635a7[_0x34f782(0x116)],'replaced':_0x4635a7[_0x34f782(0x12d)],'imported':_0x4635a7[_0x34f782(0x109)],'updated':_0x4635a7[_0x34f782(0x111)],'serviceCount':_0x4635a7[_0x34f782(0x126)],'service':summarizeService(_0x4635a7[_0x34f782(0x12a)])},'message':(_0x4635a7[_0x34f782(0x12d)]?_0x34f782(0x137):'Imported')+_0x34f782(0x122)+_0x4635a7[_0x34f782(0x12a)][_0x34f782(0x147)]+'.'};}},{'service':'service','command':'export','description':a62_0x228818(0x127),'risk':a62_0x228818(0x134),'confirmationDescription':a62_0x228818(0x130),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1c2124){const _0x2ab852=a62_0x228818,_0x5a5178=getLocalServiceEntry(_0x1c2124[_0x2ab852(0x12c)](_0x2ab852(0x133)));return{'method':'WRITE','url':_0x1c2124[_0x2ab852(0x12c)](_0x2ab852(0x110)),'body':{'service':_0x1c2124[_0x2ab852(0x12c)]('service'),'found':Boolean(_0x5a5178),'version':_0x5a5178?.[_0x2ab852(0x113)],'source':_0x5a5178?.[_0x2ab852(0x12e)]},'description':_0x2ab852(0x11a)};},async 'execute'(_0x54b02e){const _0xe07a5f=a62_0x228818,_0x383920=exportServiceManifest(_0x54b02e[_0xe07a5f(0x12c)](_0xe07a5f(0x133)),_0x54b02e[_0xe07a5f(0x12c)](_0xe07a5f(0x110)));return{'ok':!![],'data':{'registryPath':_0x383920[_0xe07a5f(0x116)],'file':_0x383920[_0xe07a5f(0x124)],'service':summarizeService(_0x383920[_0xe07a5f(0x12a)])},'message':'Exported\x20service\x20'+_0x383920[_0xe07a5f(0x12a)][_0xe07a5f(0x147)]+'.'};}},{'service':a62_0x228818(0x133),'command':a62_0x228818(0x120),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x2731b7=a62_0x228818,_0x3f0f8a=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3f0f8a[_0x2731b7(0x142)],'services':_0x3f0f8a[_0x2731b7(0x11f)](summarizeService)}};}},{'service':'service','command':'remove','description':a62_0x228818(0x13d),'risk':a62_0x228818(0x134),'confirmationDescription':a62_0x228818(0x140),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x37250b){const _0x57e33a=a62_0x228818,_0x4a0a90=getLocalServiceEntry(_0x37250b[_0x57e33a(0x12c)](_0x57e33a(0x133)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x37250b[_0x57e33a(0x12c)]('service'),'found':Boolean(_0x4a0a90),'version':_0x4a0a90?.['version'],'source':_0x4a0a90?.[_0x57e33a(0x12e)]},'description':_0x57e33a(0x148)};},async 'execute'(_0xfc5890){const _0x2decbc=a62_0x228818,_0x59ee29=removeServiceManifest(_0xfc5890[_0x2decbc(0x12c)](_0x2decbc(0x133)));return{'ok':!![],'data':{'registryPath':_0x59ee29[_0x2decbc(0x116)],'serviceCount':_0x59ee29[_0x2decbc(0x126)],'service':summarizeService(_0x59ee29['entry'])},'message':_0x2decbc(0x106)+_0x59ee29[_0x2decbc(0x12a)]['serviceCode']+'.'};}},{'service':'service','command':a62_0x228818(0x135),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a62_0x228818(0x131),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x4c832f){const _0xf2eaa7=a62_0x228818,_0x4d2911=getLocalServiceEntry(_0x4c832f[_0xf2eaa7(0x12c)](_0xf2eaa7(0x133)));if(!_0x4d2911)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x4c832f[_0xf2eaa7(0x12c)](_0xf2eaa7(0x133))},'message':'Local\x20service\x20not\x20found:\x20'+_0x4c832f[_0xf2eaa7(0x12c)](_0xf2eaa7(0x133))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4d2911),'manifest':_0x4d2911[_0xf2eaa7(0x138)],'normalizedManifest':toPublicNormalizedServiceTree(_0x4d2911[_0xf2eaa7(0x10b)])}};}}];
@@ -1 +1 @@
1
- const a63_0x42e8ec=a63_0x49cc;(function(_0x576a6c,_0x2a4681){const _0x39972e=a63_0x49cc,_0xe863d4=_0x576a6c();while(!![]){try{const _0x482424=parseInt(_0x39972e(0x15c))/0x1+-parseInt(_0x39972e(0x189))/0x2+-parseInt(_0x39972e(0x150))/0x3*(-parseInt(_0x39972e(0x137))/0x4)+parseInt(_0x39972e(0x163))/0x5+-parseInt(_0x39972e(0x146))/0x6+parseInt(_0x39972e(0x176))/0x7*(parseInt(_0x39972e(0x14f))/0x8)+-parseInt(_0x39972e(0x13c))/0x9*(parseInt(_0x39972e(0x143))/0xa);if(_0x482424===_0x2a4681)break;else _0xe863d4['push'](_0xe863d4['shift']());}catch(_0x39f805){_0xe863d4['push'](_0xe863d4['shift']());}}}(a63_0x1fcc,0x53143));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x42e8ec(0x149);export function getServiceRegistryPath(_0x49d6c0={}){const _0x42155f=a63_0x42e8ec;return resolve(_0x49d6c0[_0x42155f(0x13b)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x2ac70b={}){const _0x2d0e28=a63_0x42e8ec,_0x217a07=getServiceRegistryPath(_0x2ac70b);if(!existsSync(_0x217a07))return emptyServiceRegistry();try{const _0x46a95f=readFileSync(_0x217a07,_0x2d0e28(0x17b));if(!_0x46a95f[_0x2d0e28(0x13f)]())return emptyServiceRegistry();const _0x3970a7=JSON['parse'](_0x46a95f);if(_0x3970a7['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2d0e28(0x140)](_0x2d0e28(0x15f)+String(_0x3970a7[_0x2d0e28(0x14e)]),_0x2d0e28(0x14c)+_0x217a07+'.');if(!Array['isArray'](_0x3970a7[_0x2d0e28(0x15e)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3970a7['updatedAt'],'services':_0x3970a7[_0x2d0e28(0x15e)]};}catch(_0x1b44d1){if(_0x1b44d1 instanceof Error&&_0x1b44d1[_0x2d0e28(0x187)]===_0x2d0e28(0x181))throw _0x1b44d1;throw CliErrors[_0x2d0e28(0x140)](_0x2d0e28(0x154)+_0x217a07,_0x2d0e28(0x161));}}function a63_0x49cc(_0x59d54b,_0x19535b){_0x59d54b=_0x59d54b-0x133;const _0x1fcc80=a63_0x1fcc();let _0x49cc57=_0x1fcc80[_0x59d54b];return _0x49cc57;}export function writeServiceRegistry(_0x4df5d4,_0xa2327b={}){const _0x2fef06=a63_0x42e8ec,_0x5e9f5c=getServiceRegistryPath(_0xa2327b),_0x366efe=dirname(_0x5e9f5c);!existsSync(_0x366efe)&&mkdirSync(_0x366efe,{'recursive':!![]});const _0x104da7=_0x5e9f5c+_0x2fef06(0x16e);try{writeFileSync(_0x104da7,JSON[_0x2fef06(0x157)](_0x4df5d4,null,0x2)+'\x0a',{'encoding':_0x2fef06(0x17b),'mode':0x180}),renameSync(_0x104da7,_0x5e9f5c);}catch(_0x48de66){try{unlinkSync(_0x104da7);}catch{}if(_0x48de66?.['code']===_0x2fef06(0x182))throw CliErrors['validation'](_0x2fef06(0x16f)+_0x5e9f5c);throw _0x48de66;}return _0x5e9f5c;}export function loadServiceManifestFromFile(_0x3f8121){const _0x3eb50d=a63_0x42e8ec,_0x3fe34e=resolve(_0x3f8121);if(!existsSync(_0x3fe34e))throw CliErrors[_0x3eb50d(0x140)](_0x3eb50d(0x15a)+_0x3f8121);let _0x2f4082;const _0x2064a9=readFileSync(_0x3fe34e,_0x3eb50d(0x17b));try{_0x2f4082=JSON[_0x3eb50d(0x139)](_0x2064a9);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x3f8121,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x4dface=sha256(_0x2064a9),_0x857610=extractLoadedServiceManifests(_0x2f4082,_0x4dface),_0x30f3cb=aggregateValidationReports(_0x857610),_0x213757=_0x857610[0x0];return{'filePath':_0x3fe34e,'hash':_0x4dface,'kind':isServiceRegistryLike(_0x2f4082)?_0x3eb50d(0x13e):_0x3eb50d(0x13d),'manifest':_0x213757?.[_0x3eb50d(0x13d)]??_0x2f4082,'report':_0x30f3cb,'normalizedManifest':_0x857610[_0x3eb50d(0x17c)]===0x1?_0x213757?.[_0x3eb50d(0x174)]:undefined,'manifests':_0x857610};}export function importServiceManifest(_0x357457,_0x471c6c={}){const _0xaa21a=a63_0x42e8ec,_0x4ed2ea=loadServiceManifestFromFile(_0x357457);if(!_0x4ed2ea[_0xaa21a(0x17f)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x4ed2ea[_0xaa21a(0x17f)]),_0xaa21a(0x145));if(_0x4ed2ea[_0xaa21a(0x167)][_0xaa21a(0x17c)]===0x0)throw CliErrors[_0xaa21a(0x140)](_0xaa21a(0x15b),_0xaa21a(0x148));const _0x55f64d=readServiceRegistry(_0x471c6c),_0x54e594=(_0x471c6c[_0xaa21a(0x16c)]??(()=>new Date()))()[_0xaa21a(0x14b)](),_0x4f5863=[];let _0x448651=0x0,_0x27417e=0x0;for(const _0x211f45 of _0x4ed2ea[_0xaa21a(0x167)]){if(!_0x211f45[_0xaa21a(0x174)])continue;const _0x399189=_0x211f45[_0xaa21a(0x174)]['service']['code'],_0x145eac={'serviceCode':_0x399189,'version':_0x211f45[_0xaa21a(0x174)][_0xaa21a(0x13a)],'importedAt':_0x54e594,'source':{'type':'file','path':_0x4ed2ea[_0xaa21a(0x166)],'hash':_0x211f45[_0xaa21a(0x153)]},'manifest':_0x211f45[_0xaa21a(0x13d)],'normalizedManifest':_0x211f45[_0xaa21a(0x174)]},_0x400105=_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x177)](_0x26faae=>_0x26faae['serviceCode']===_0x399189);_0x400105>=0x0?(_0x55f64d[_0xaa21a(0x15e)][_0x400105]=_0x145eac,_0x27417e++):(_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x14d)](_0x145eac),_0x448651++),_0x4f5863[_0xaa21a(0x14d)](_0x145eac);}_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x183)]((_0x460a25,_0x5cbfdf)=>_0x460a25[_0xaa21a(0x136)][_0xaa21a(0x160)](_0x5cbfdf['serviceCode'])),_0x55f64d[_0xaa21a(0x144)]=_0x54e594;const _0x623a16=writeServiceRegistry(_0x55f64d,_0x471c6c);return{'registryPath':_0x623a16,'entry':_0x4f5863[0x0],'replaced':_0x4f5863['length']===0x1?_0x27417e===0x1:_0x27417e>0x0,'entries':_0x4f5863,'imported':_0x448651,'updated':_0x27417e,'serviceCount':_0x55f64d[_0xaa21a(0x15e)][_0xaa21a(0x17c)]};}export function exportServiceManifest(_0x59dbd3,_0x9d2901,_0x4f879b={}){const _0x3e818a=a63_0x42e8ec,_0xce9c34=getServiceRegistryPath(_0x4f879b),_0x5d8e9a=getLocalServiceEntry(_0x59dbd3,_0x4f879b);if(!_0x5d8e9a)throw CliErrors[_0x3e818a(0x140)](_0x3e818a(0x165)+_0x59dbd3,_0x3e818a(0x159));const _0x3ff514=resolve(_0x9d2901),_0xcf0770=dirname(_0x3ff514);return!existsSync(_0xcf0770)&&mkdirSync(_0xcf0770,{'recursive':!![]}),writeFileSync(_0x3ff514,JSON[_0x3e818a(0x157)](_0x5d8e9a['manifest'],null,0x2)+'\x0a',{'encoding':_0x3e818a(0x17b),'mode':0x180}),{'registryPath':_0xce9c34,'filePath':_0x3ff514,'entry':_0x5d8e9a};}export function removeServiceManifest(_0xd4741,_0x561e77={}){const _0x2f6a2e=a63_0x42e8ec,_0x1f41cb=readServiceRegistry(_0x561e77),_0xa4f312=_0xd4741[_0x2f6a2e(0x13f)](),_0x45a4be=_0x1f41cb[_0x2f6a2e(0x15e)][_0x2f6a2e(0x177)](_0x5c1540=>_0x5c1540[_0x2f6a2e(0x136)]===_0xa4f312);if(_0x45a4be<0x0)throw CliErrors[_0x2f6a2e(0x140)](_0x2f6a2e(0x165)+_0xa4f312,_0x2f6a2e(0x159));const [_0x11d788]=_0x1f41cb[_0x2f6a2e(0x15e)][_0x2f6a2e(0x186)](_0x45a4be,0x1),_0xaf3b24=(_0x561e77[_0x2f6a2e(0x16c)]??(()=>new Date()))()[_0x2f6a2e(0x14b)]();_0x1f41cb[_0x2f6a2e(0x144)]=_0xaf3b24;const _0x173153=writeServiceRegistry(_0x1f41cb,_0x561e77);return{'registryPath':_0x173153,'entry':_0x11d788,'serviceCount':_0x1f41cb[_0x2f6a2e(0x15e)][_0x2f6a2e(0x17c)]};}export function listLocalServices(_0x1bb86f={}){const _0x370114=a63_0x42e8ec;return readServiceRegistry(_0x1bb86f)[_0x370114(0x15e)];}export function getLocalServiceEntry(_0xdd8075,_0x29f8ad={}){const _0x443356=a63_0x42e8ec;return readServiceRegistry(_0x29f8ad)[_0x443356(0x15e)][_0x443356(0x162)](_0x30dcfb=>_0x30dcfb[_0x443356(0x136)]===_0xdd8075[_0x443356(0x13f)]());}export function listLocalServiceTrees(_0x1f4f92={}){const _0x75ecfa=a63_0x42e8ec;return readServiceRegistry(_0x1f4f92)[_0x75ecfa(0x15e)][_0x75ecfa(0x152)](_0x4f2526=>_0x4f2526['normalizedManifest']);}export function inspectServiceRegistry(_0x17f39f={}){const _0x5e6ba1=a63_0x42e8ec,_0x1b8e16=getServiceRegistryPath(_0x17f39f);if(!existsSync(_0x1b8e16))return emptyServiceRegistryInspection(_0x1b8e16,_0x5e6ba1(0x168),![]);try{const _0x5b29c6=readFileSync(_0x1b8e16,'utf8');if(!_0x5b29c6[_0x5e6ba1(0x13f)]())return emptyServiceRegistryInspection(_0x1b8e16,_0x5e6ba1(0x17d),!![]);const _0x1c60e0=JSON[_0x5e6ba1(0x139)](_0x5b29c6);if(_0x1c60e0[_0x5e6ba1(0x14e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1b8e16,'invalid',!![]),'schemaVersion':_0x1c60e0[_0x5e6ba1(0x14e)],'message':_0x5e6ba1(0x17a)+String(_0x1c60e0[_0x5e6ba1(0x14e)])};if(!Array[_0x5e6ba1(0x188)](_0x1c60e0[_0x5e6ba1(0x15e)]))return{...emptyServiceRegistryInspection(_0x1b8e16,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c60e0[_0x5e6ba1(0x144)],'message':'services\x20must\x20be\x20an\x20array'};const _0x5a96f4=_0x1c60e0['services'][_0x5e6ba1(0x152)](summarizeLocalServiceEntry);return{'registryPath':_0x1b8e16,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c60e0[_0x5e6ba1(0x144)],'serviceCount':_0x5a96f4[_0x5e6ba1(0x17c)],'commandCount':_0x5a96f4[_0x5e6ba1(0x178)]((_0x327815,_0x4c504a)=>_0x327815+_0x4c504a[_0x5e6ba1(0x175)],0x0),'services':_0x5a96f4};}catch(_0x46b86f){return{...emptyServiceRegistryInspection(_0x1b8e16,_0x5e6ba1(0x134),!![]),'message':_0x46b86f instanceof Error?_0x46b86f[_0x5e6ba1(0x172)]:String(_0x46b86f)};}}export function formatValidationFailure(_0x2c3812){const _0x4a57c=a63_0x42e8ec,_0x3dfd4d=_0x2c3812[_0x4a57c(0x17e)][_0x4a57c(0x152)](_0x4530e0=>_0x4530e0[_0x4a57c(0x179)]+':\x20'+_0x4530e0[_0x4a57c(0x172)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x3dfd4d[_0x4a57c(0x170)]('\x0a');}function extractLoadedServiceManifests(_0x16134e,_0x5c2b02){const _0x1369d3=a63_0x42e8ec;if(!isServiceRegistryLike(_0x16134e)){const _0x325688=_0x16134e,{manifest:_0x5316a5,errors:_0x583162}=adaptServiceTreeManifestForLegacyFramework(_0x325688),_0x5dc41e=validateServiceTreeManifest(_0x5316a5),_0x302597=mergeValidationErrors(_0x5dc41e,_0x583162);return[{'manifest':_0x325688,'report':_0x302597,'normalizedManifest':_0x302597['ok']?normalizeServiceTreeManifest(_0x5316a5):undefined,'sourceHash':_0x5c2b02}];}return _0x16134e['services'][_0x1369d3(0x152)]((_0x8e6510,_0x204025)=>{const _0x44e650=_0x1369d3,_0x31d94d=isObjectRecord(_0x8e6510)?_0x8e6510['manifest']:undefined,{manifest:_0x1f2420,errors:_0x4b8e17}=adaptServiceTreeManifestForLegacyFramework(_0x31d94d),_0xfeaf23=validateServiceTreeManifest(_0x1f2420),_0x3c6367=mergeValidationErrors(_0xfeaf23,_0x4b8e17),_0x30725b=isObjectRecord(_0x8e6510)&&typeof _0x8e6510[_0x44e650(0x136)]==='string'?_0x8e6510['serviceCode']:undefined;return{'manifest':_0x31d94d,'report':_0x3c6367,'normalizedManifest':_0x3c6367['ok']?normalizeServiceTreeManifest(_0x1f2420):undefined,'sourceHash':sha256(JSON[_0x44e650(0x157)](_0x31d94d,null,0x2)+'\x0a'),'registryIndex':_0x204025,'registryServiceCode':_0x30725b};});}function mergeValidationErrors(_0x804db7,_0x28d8cb){const _0x51d5ca=a63_0x42e8ec,_0x2d2637=_0x804db7[_0x51d5ca(0x17e)][_0x51d5ca(0x152)](_0x21dc71=>_0x21dc71['message']===_0x51d5ca(0x15d)?{..._0x21dc71,'message':'bff\x20target\x20requires\x20functionName.'}:_0x21dc71),_0x4249fc=[..._0x28d8cb,..._0x2d2637];return{'ok':_0x4249fc[_0x51d5ca(0x17c)]===0x0,'errors':_0x4249fc,'warnings':_0x804db7[_0x51d5ca(0x158)]};}function aggregateValidationReports(_0xf940a8){const _0x28f78f=a63_0x42e8ec,_0x5cb0ef=_0xf940a8[_0x28f78f(0x155)](_0x4e424b=>_0x4e424b[_0x28f78f(0x184)]===undefined?_0x4e424b[_0x28f78f(0x17f)][_0x28f78f(0x17e)]:_0x4e424b[_0x28f78f(0x17f)][_0x28f78f(0x17e)]['map'](_0x18a528=>({..._0x18a528,'path':prefixRegistryIssuePath(_0x4e424b['registryIndex'],_0x18a528[_0x28f78f(0x179)])}))),_0x52496b=_0xf940a8[_0x28f78f(0x155)](_0x4a7a3d=>_0x4a7a3d[_0x28f78f(0x184)]===undefined?_0x4a7a3d[_0x28f78f(0x17f)][_0x28f78f(0x158)]:_0x4a7a3d[_0x28f78f(0x17f)][_0x28f78f(0x158)]['map'](_0x245b82=>({..._0x245b82,'path':prefixRegistryIssuePath(_0x4a7a3d[_0x28f78f(0x184)],_0x245b82[_0x28f78f(0x179)])})));return{'ok':_0x5cb0ef[_0x28f78f(0x17c)]===0x0,'errors':_0x5cb0ef,'warnings':_0x52496b};}function prefixRegistryIssuePath(_0x29567c,_0x13a85a){const _0x37e122=a63_0x42e8ec;if(_0x13a85a==='$')return _0x37e122(0x14a)+_0x29567c+'].manifest';if(_0x13a85a['startsWith']('$.'))return _0x37e122(0x14a)+_0x29567c+_0x37e122(0x16b)+_0x13a85a['slice'](0x1);if(_0x13a85a[_0x37e122(0x138)]('$['))return'$.services['+_0x29567c+_0x37e122(0x16b)+_0x13a85a[_0x37e122(0x141)](0x1);return'$.services['+_0x29567c+_0x37e122(0x169)+_0x13a85a;}function isServiceRegistryLike(_0x5c2a92){const _0x59c5c5=a63_0x42e8ec;return isObjectRecord(_0x5c2a92)&&_0x5c2a92[_0x59c5c5(0x14e)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x5c2a92['services']);}function isObjectRecord(_0x1edf44){const _0x303400=a63_0x42e8ec;return Boolean(_0x1edf44)&&typeof _0x1edf44===_0x303400(0x185)&&!Array[_0x303400(0x188)](_0x1edf44);}function emptyServiceRegistryInspection(_0x3fec1a,_0x554389,_0x2fd6d8){return{'registryPath':_0x3fec1a,'exists':_0x2fd6d8,'status':_0x554389,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function a63_0x1fcc(){const _0x492f32=['empty','errors','report','target','CliError','ENOENT','sort','registryIndex','object','splice','name','isArray','1139118sKBScx','description','invalid','hex','serviceCode','4yIxgyA','startsWith','parse','version','homeDir','4815WgSfBy','manifest','registry','trim','validation','slice','service','13900ZcmGNV','updatedAt','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','99852NNUGyV','update','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','service.json','$.services[','toISOString','Remove\x20or\x20migrate\x20','push','schemaVersion','16MHzbam','1731222tekqVZ','sha256','map','sourceHash','Invalid\x20service\x20registry\x20JSON:\x20','flatMap','source','stringify','warnings','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Service\x20manifest\x20file\x20not\x20found:\x20','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','30372zRcndC','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','services','Unsupported\x20service\x20registry\x20schemaVersion:\x20','localeCompare','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','find','2255930teOdHm','command','Local\x20service\x20not\x20found:\x20','filePath','manifests','missing','].manifest.','digest','].manifest','now','cliPath','.tmp','Cannot\x20write\x20service\x20registry:\x20','join','risk','message','kind','normalizedManifest','commandCount','2140285rTaREw','findIndex','reduce','path','Unsupported\x20schemaVersion:\x20','utf8','length'];a63_0x1fcc=function(){return _0x492f32;};return a63_0x1fcc();}function summarizeLocalServiceEntry(_0x4b3898){const _0x1d8bb2=a63_0x42e8ec,_0x3894e6=_0x4b3898['normalizedManifest'],_0x2eeaf6=_0x3894e6['commands'][_0x1d8bb2(0x152)](_0x628931=>({'path':_0x628931[_0x1d8bb2(0x16d)],'description':_0x628931[_0x1d8bb2(0x133)],'risk':_0x628931[_0x1d8bb2(0x171)],'targetKind':_0x628931[_0x1d8bb2(0x180)][_0x1d8bb2(0x173)],'targetCommand':_0x628931[_0x1d8bb2(0x180)][_0x1d8bb2(0x164)]}));return{'serviceCode':_0x4b3898[_0x1d8bb2(0x136)],'name':_0x3894e6[_0x1d8bb2(0x142)][_0x1d8bb2(0x187)],'description':_0x3894e6[_0x1d8bb2(0x142)][_0x1d8bb2(0x133)],'version':_0x4b3898[_0x1d8bb2(0x13a)],'importedAt':_0x4b3898['importedAt'],'source':_0x4b3898[_0x1d8bb2(0x156)],'commandCount':_0x2eeaf6['length'],'commands':_0x2eeaf6};}function sha256(_0xfd6720){const _0x1c7659=a63_0x42e8ec;return createHash(_0x1c7659(0x151))[_0x1c7659(0x147)](_0xfd6720)[_0x1c7659(0x16a)](_0x1c7659(0x135));}
1
+ const a63_0x41826b=a63_0x4ea0;(function(_0x4fc57b,_0x5c5241){const _0x53969b=a63_0x4ea0,_0x1c745f=_0x4fc57b();while(!![]){try{const _0x12cbe6=-parseInt(_0x53969b(0x17c))/0x1*(parseInt(_0x53969b(0x183))/0x2)+-parseInt(_0x53969b(0x197))/0x3*(parseInt(_0x53969b(0x1ad))/0x4)+parseInt(_0x53969b(0x182))/0x5*(-parseInt(_0x53969b(0x199))/0x6)+-parseInt(_0x53969b(0x198))/0x7+parseInt(_0x53969b(0x170))/0x8*(parseInt(_0x53969b(0x18d))/0x9)+parseInt(_0x53969b(0x16a))/0xa*(-parseInt(_0x53969b(0x174))/0xb)+parseInt(_0x53969b(0x186))/0xc;if(_0x12cbe6===_0x5c5241)break;else _0x1c745f['push'](_0x1c745f['shift']());}catch(_0x16dc36){_0x1c745f['push'](_0x1c745f['shift']());}}}(a63_0x1bd8,0x58166));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x41826b(0x192);function a63_0x1bd8(){const _0x587b3a=['hex','schemaVersion','CliError','missing','description','5xnGvwi','3174tHKXHq','filePath','name','34711848YJHnrt','digest','Remove\x20or\x20migrate\x20','importedAt','validation','isArray','string','9vHglRo','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','cliPath','Local\x20service\x20not\x20found:\x20','service.json','Invalid\x20service\x20manifest\x20JSON:\x20','registryIndex','ENOENT','manifest','213GqjqAP','3425807TegwoT','2421438OeXPeZ','warnings','object','path','trim','message','Invalid\x20service\x20registry\x20JSON:\x20','sha256','kind','command','commands','Unsupported\x20schemaVersion:\x20','empty','slice','invalid','source','normalizedManifest','version','map','parse','39260VFloFj','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','updatedAt','utf8','toISOString','bff\x20target\x20requires\x20functionName.','stringify','splice','join','homeDirName','now','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','code','Cannot\x20write\x20service\x20registry:\x20','findIndex','Service\x20manifest\x20validation\x20failed:\x0a','file','manifests','flatMap','errors','1024550kluREh','].manifest.','push','localeCompare','serviceCode','target','574064EFkcSX','service','report','.tmp','55MHYuFc','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','services','$.services[','update','commandCount','length','startsWith','316jXrgqq'];a63_0x1bd8=function(){return _0x587b3a;};return a63_0x1bd8();}export function getServiceRegistryPath(_0x508bff={}){const _0x16248e=a63_0x41826b;return resolve(_0x508bff['homeDir']??homedir(),PRODUCT_CONFIG[_0x16248e(0x1b6)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x364b8f={}){const _0x24e2b3=a63_0x41826b,_0x3557ce=getServiceRegistryPath(_0x364b8f);if(!existsSync(_0x3557ce))return emptyServiceRegistry();try{const _0xa277e3=readFileSync(_0x3557ce,_0x24e2b3(0x1b0));if(!_0xa277e3[_0x24e2b3(0x19d)]())return emptyServiceRegistry();const _0x344796=JSON[_0x24e2b3(0x1ac)](_0xa277e3);if(_0x344796['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x24e2b3(0x18a)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x344796['schemaVersion']),_0x24e2b3(0x188)+_0x3557ce+'.');if(!Array['isArray'](_0x344796[_0x24e2b3(0x176)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x344796[_0x24e2b3(0x1af)],'services':_0x344796[_0x24e2b3(0x176)]};}catch(_0x15a705){if(_0x15a705 instanceof Error&&_0x15a705['name']===_0x24e2b3(0x17f))throw _0x15a705;throw CliErrors[_0x24e2b3(0x18a)](_0x24e2b3(0x19f)+_0x3557ce,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x37908e,_0x304c83={}){const _0x290fb5=a63_0x41826b,_0x1ac3ad=getServiceRegistryPath(_0x304c83),_0x5bdfd8=dirname(_0x1ac3ad);!existsSync(_0x5bdfd8)&&mkdirSync(_0x5bdfd8,{'recursive':!![]});const _0x22b105=_0x1ac3ad+_0x290fb5(0x173);try{writeFileSync(_0x22b105,JSON[_0x290fb5(0x1b3)](_0x37908e,null,0x2)+'\x0a',{'encoding':_0x290fb5(0x1b0),'mode':0x180}),renameSync(_0x22b105,_0x1ac3ad);}catch(_0x5b787d){try{unlinkSync(_0x22b105);}catch{}if(_0x5b787d?.[_0x290fb5(0x1b9)]===_0x290fb5(0x195))throw CliErrors[_0x290fb5(0x18a)](_0x290fb5(0x1ba)+_0x1ac3ad);throw _0x5b787d;}return _0x1ac3ad;}export function loadServiceManifestFromFile(_0x2726d2){const _0x1af796=a63_0x41826b,_0x20c043=resolve(_0x2726d2);if(!existsSync(_0x20c043))throw CliErrors[_0x1af796(0x18a)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x2726d2);let _0x3c47e7;const _0x20405f=readFileSync(_0x20c043,'utf8');try{_0x3c47e7=JSON[_0x1af796(0x1ac)](_0x20405f);}catch{throw CliErrors[_0x1af796(0x18a)](_0x1af796(0x193)+_0x2726d2,_0x1af796(0x18e));}const _0x408d9e=sha256(_0x20405f),_0x13cfbd=extractLoadedServiceManifests(_0x3c47e7,_0x408d9e),_0x5a0ebd=aggregateValidationReports(_0x13cfbd),_0x49b6da=_0x13cfbd[0x0];return{'filePath':_0x20c043,'hash':_0x408d9e,'kind':isServiceRegistryLike(_0x3c47e7)?'registry':_0x1af796(0x196),'manifest':_0x49b6da?.[_0x1af796(0x196)]??_0x3c47e7,'report':_0x5a0ebd,'normalizedManifest':_0x13cfbd[_0x1af796(0x17a)]===0x1?_0x49b6da?.['normalizedManifest']:undefined,'manifests':_0x13cfbd};}export function importServiceManifest(_0x59c1fd,_0x351832={}){const _0x5bd49e=a63_0x41826b,_0xbf600f=loadServiceManifestFromFile(_0x59c1fd);if(!_0xbf600f[_0x5bd49e(0x172)]['ok'])throw CliErrors[_0x5bd49e(0x18a)](formatValidationFailure(_0xbf600f[_0x5bd49e(0x172)]),_0x5bd49e(0x18f));if(_0xbf600f[_0x5bd49e(0x1be)][_0x5bd49e(0x17a)]===0x0)throw CliErrors[_0x5bd49e(0x18a)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5bd49e(0x1ae));const _0x26ff3d=readServiceRegistry(_0x351832),_0x4fc87e=(_0x351832[_0x5bd49e(0x1b7)]??(()=>new Date()))()[_0x5bd49e(0x1b1)](),_0x2f75e9=[];let _0x50b6e1=0x0,_0x4a83bb=0x0;for(const _0x30d14f of _0xbf600f[_0x5bd49e(0x1be)]){if(!_0x30d14f[_0x5bd49e(0x1a9)])continue;const _0x5a3030=_0x30d14f[_0x5bd49e(0x1a9)]['service'][_0x5bd49e(0x1b9)],_0xf4562={'serviceCode':_0x5a3030,'version':_0x30d14f[_0x5bd49e(0x1a9)][_0x5bd49e(0x1aa)],'importedAt':_0x4fc87e,'source':{'type':_0x5bd49e(0x1bd),'path':_0xbf600f[_0x5bd49e(0x184)],'hash':_0x30d14f['sourceHash']},'manifest':_0x30d14f[_0x5bd49e(0x196)],'normalizedManifest':_0x30d14f[_0x5bd49e(0x1a9)]},_0x1cc624=_0x26ff3d[_0x5bd49e(0x176)][_0x5bd49e(0x1bb)](_0x53d15a=>_0x53d15a[_0x5bd49e(0x16e)]===_0x5a3030);_0x1cc624>=0x0?(_0x26ff3d[_0x5bd49e(0x176)][_0x1cc624]=_0xf4562,_0x4a83bb++):(_0x26ff3d[_0x5bd49e(0x176)][_0x5bd49e(0x16c)](_0xf4562),_0x50b6e1++),_0x2f75e9['push'](_0xf4562);}_0x26ff3d[_0x5bd49e(0x176)]['sort']((_0x3b2350,_0x3e9219)=>_0x3b2350[_0x5bd49e(0x16e)][_0x5bd49e(0x16d)](_0x3e9219[_0x5bd49e(0x16e)])),_0x26ff3d[_0x5bd49e(0x1af)]=_0x4fc87e;const _0x4ac782=writeServiceRegistry(_0x26ff3d,_0x351832);return{'registryPath':_0x4ac782,'entry':_0x2f75e9[0x0],'replaced':_0x2f75e9[_0x5bd49e(0x17a)]===0x1?_0x4a83bb===0x1:_0x4a83bb>0x0,'entries':_0x2f75e9,'imported':_0x50b6e1,'updated':_0x4a83bb,'serviceCount':_0x26ff3d[_0x5bd49e(0x176)][_0x5bd49e(0x17a)]};}export function exportServiceManifest(_0x250fb7,_0x4477d6,_0x53d0bf={}){const _0x3c709b=a63_0x41826b,_0x51d02a=getServiceRegistryPath(_0x53d0bf),_0x115548=getLocalServiceEntry(_0x250fb7,_0x53d0bf);if(!_0x115548)throw CliErrors[_0x3c709b(0x18a)](_0x3c709b(0x191)+_0x250fb7,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x6948cf=resolve(_0x4477d6),_0x2a0a12=dirname(_0x6948cf);return!existsSync(_0x2a0a12)&&mkdirSync(_0x2a0a12,{'recursive':!![]}),writeFileSync(_0x6948cf,JSON['stringify'](_0x115548[_0x3c709b(0x196)],null,0x2)+'\x0a',{'encoding':_0x3c709b(0x1b0),'mode':0x180}),{'registryPath':_0x51d02a,'filePath':_0x6948cf,'entry':_0x115548};}export function removeServiceManifest(_0x4c4111,_0x1be55d={}){const _0x3f01ef=a63_0x41826b,_0x340011=readServiceRegistry(_0x1be55d),_0xb7487f=_0x4c4111[_0x3f01ef(0x19d)](),_0x2d1152=_0x340011['services'][_0x3f01ef(0x1bb)](_0x133d71=>_0x133d71[_0x3f01ef(0x16e)]===_0xb7487f);if(_0x2d1152<0x0)throw CliErrors[_0x3f01ef(0x18a)](_0x3f01ef(0x191)+_0xb7487f,_0x3f01ef(0x175));const [_0x3323ea]=_0x340011[_0x3f01ef(0x176)][_0x3f01ef(0x1b4)](_0x2d1152,0x1),_0x46b8ba=(_0x1be55d['now']??(()=>new Date()))()['toISOString']();_0x340011[_0x3f01ef(0x1af)]=_0x46b8ba;const _0xead0bd=writeServiceRegistry(_0x340011,_0x1be55d);return{'registryPath':_0xead0bd,'entry':_0x3323ea,'serviceCount':_0x340011['services'][_0x3f01ef(0x17a)]};}function a63_0x4ea0(_0x55d1ff,_0x40a6e4){_0x55d1ff=_0x55d1ff-0x168;const _0x1bd83e=a63_0x1bd8();let _0x4ea07a=_0x1bd83e[_0x55d1ff];return _0x4ea07a;}export function listLocalServices(_0x49771f={}){return readServiceRegistry(_0x49771f)['services'];}export function getLocalServiceEntry(_0x44af6c,_0x5e30ab={}){const _0x107dba=a63_0x41826b;return readServiceRegistry(_0x5e30ab)['services']['find'](_0x2efaab=>_0x2efaab[_0x107dba(0x16e)]===_0x44af6c[_0x107dba(0x19d)]());}export function listLocalServiceTrees(_0x511afd={}){const _0x263207=a63_0x41826b;return readServiceRegistry(_0x511afd)[_0x263207(0x176)][_0x263207(0x1ab)](_0x35bf8c=>_0x35bf8c['normalizedManifest']);}export function inspectServiceRegistry(_0x6fbd54={}){const _0x2309f1=a63_0x41826b,_0x4b3324=getServiceRegistryPath(_0x6fbd54);if(!existsSync(_0x4b3324))return emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x180),![]);try{const _0x1ddd79=readFileSync(_0x4b3324,_0x2309f1(0x1b0));if(!_0x1ddd79[_0x2309f1(0x19d)]())return emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a5),!![]);const _0x39a82e=JSON['parse'](_0x1ddd79);if(_0x39a82e[_0x2309f1(0x17e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a7),!![]),'schemaVersion':_0x39a82e[_0x2309f1(0x17e)],'message':_0x2309f1(0x1a4)+String(_0x39a82e[_0x2309f1(0x17e)])};if(!Array[_0x2309f1(0x18b)](_0x39a82e[_0x2309f1(0x176)]))return{...emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a7),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x39a82e[_0x2309f1(0x1af)],'message':'services\x20must\x20be\x20an\x20array'};const _0x449da9=_0x39a82e[_0x2309f1(0x176)][_0x2309f1(0x1ab)](summarizeLocalServiceEntry);return{'registryPath':_0x4b3324,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x39a82e[_0x2309f1(0x1af)],'serviceCount':_0x449da9[_0x2309f1(0x17a)],'commandCount':_0x449da9['reduce']((_0x328f54,_0x2ee114)=>_0x328f54+_0x2ee114[_0x2309f1(0x179)],0x0),'services':_0x449da9};}catch(_0x5ab656){return{...emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a7),!![]),'message':_0x5ab656 instanceof Error?_0x5ab656[_0x2309f1(0x19e)]:String(_0x5ab656)};}}export function formatValidationFailure(_0x186861){const _0x1df35c=a63_0x41826b,_0x52106d=_0x186861[_0x1df35c(0x169)][_0x1df35c(0x1ab)](_0x169ca4=>_0x169ca4['path']+':\x20'+_0x169ca4[_0x1df35c(0x19e)]);return _0x1df35c(0x1bc)+_0x52106d[_0x1df35c(0x1b5)]('\x0a');}function extractLoadedServiceManifests(_0x5c1401,_0x344424){const _0x19004b=a63_0x41826b;if(!isServiceRegistryLike(_0x5c1401)){const _0x365d69=_0x5c1401,{manifest:_0x32ccb6,errors:_0x28757d}=adaptServiceTreeManifestForLegacyFramework(_0x365d69),_0x461787=validateServiceTreeManifest(_0x32ccb6),_0x1cd25b=mergeValidationErrors(_0x461787,_0x28757d);return[{'manifest':_0x365d69,'report':_0x1cd25b,'normalizedManifest':_0x1cd25b['ok']?normalizeServiceTreeManifest(_0x32ccb6):undefined,'sourceHash':_0x344424}];}return _0x5c1401[_0x19004b(0x176)][_0x19004b(0x1ab)]((_0x4c56d0,_0x3f7c97)=>{const _0x3a441c=_0x19004b,_0x57eb94=isObjectRecord(_0x4c56d0)?_0x4c56d0['manifest']:undefined,{manifest:_0x44fd75,errors:_0x34d880}=adaptServiceTreeManifestForLegacyFramework(_0x57eb94),_0x302cdc=validateServiceTreeManifest(_0x44fd75),_0x27480a=mergeValidationErrors(_0x302cdc,_0x34d880),_0x13c484=isObjectRecord(_0x4c56d0)&&typeof _0x4c56d0[_0x3a441c(0x16e)]===_0x3a441c(0x18c)?_0x4c56d0['serviceCode']:undefined;return{'manifest':_0x57eb94,'report':_0x27480a,'normalizedManifest':_0x27480a['ok']?normalizeServiceTreeManifest(_0x44fd75):undefined,'sourceHash':sha256(JSON[_0x3a441c(0x1b3)](_0x57eb94,null,0x2)+'\x0a'),'registryIndex':_0x3f7c97,'registryServiceCode':_0x13c484};});}function mergeValidationErrors(_0x3ae0ee,_0x4b8cd8){const _0x1304df=a63_0x41826b,_0x218def=_0x3ae0ee[_0x1304df(0x169)]['map'](_0x140d76=>_0x140d76[_0x1304df(0x19e)]===_0x1304df(0x1b8)?{..._0x140d76,'message':_0x1304df(0x1b2)}:_0x140d76),_0x13ff16=[..._0x4b8cd8,..._0x218def];return{'ok':_0x13ff16[_0x1304df(0x17a)]===0x0,'errors':_0x13ff16,'warnings':_0x3ae0ee[_0x1304df(0x19a)]};}function aggregateValidationReports(_0xbeb43c){const _0xecf9=a63_0x41826b,_0x58ad3c=_0xbeb43c['flatMap'](_0x20c3e=>_0x20c3e[_0xecf9(0x194)]===undefined?_0x20c3e[_0xecf9(0x172)][_0xecf9(0x169)]:_0x20c3e[_0xecf9(0x172)][_0xecf9(0x169)][_0xecf9(0x1ab)](_0x3dbd57=>({..._0x3dbd57,'path':prefixRegistryIssuePath(_0x20c3e[_0xecf9(0x194)],_0x3dbd57[_0xecf9(0x19c)])}))),_0x522c39=_0xbeb43c[_0xecf9(0x168)](_0x5cf3c0=>_0x5cf3c0[_0xecf9(0x194)]===undefined?_0x5cf3c0[_0xecf9(0x172)][_0xecf9(0x19a)]:_0x5cf3c0[_0xecf9(0x172)][_0xecf9(0x19a)][_0xecf9(0x1ab)](_0x432bda=>({..._0x432bda,'path':prefixRegistryIssuePath(_0x5cf3c0['registryIndex'],_0x432bda[_0xecf9(0x19c)])})));return{'ok':_0x58ad3c['length']===0x0,'errors':_0x58ad3c,'warnings':_0x522c39};}function prefixRegistryIssuePath(_0x56def7,_0x13b132){const _0x119e9c=a63_0x41826b;if(_0x13b132==='$')return'$.services['+_0x56def7+'].manifest';if(_0x13b132['startsWith']('$.'))return _0x119e9c(0x177)+_0x56def7+'].manifest'+_0x13b132[_0x119e9c(0x1a6)](0x1);if(_0x13b132[_0x119e9c(0x17b)]('$['))return'$.services['+_0x56def7+'].manifest'+_0x13b132[_0x119e9c(0x1a6)](0x1);return _0x119e9c(0x177)+_0x56def7+_0x119e9c(0x16b)+_0x13b132;}function isServiceRegistryLike(_0x540b74){const _0x2d955e=a63_0x41826b;return isObjectRecord(_0x540b74)&&_0x540b74[_0x2d955e(0x17e)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x540b74[_0x2d955e(0x176)]);}function isObjectRecord(_0x256c1b){const _0x5aac60=a63_0x41826b;return Boolean(_0x256c1b)&&typeof _0x256c1b===_0x5aac60(0x19b)&&!Array[_0x5aac60(0x18b)](_0x256c1b);}function emptyServiceRegistryInspection(_0x5ba721,_0x346c15,_0x2e2827){return{'registryPath':_0x5ba721,'exists':_0x2e2827,'status':_0x346c15,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5f0108){const _0x25a9b4=a63_0x41826b,_0x416838=_0x5f0108[_0x25a9b4(0x1a9)],_0x36b297=_0x416838[_0x25a9b4(0x1a3)]['map'](_0x51de80=>({'path':_0x51de80[_0x25a9b4(0x190)],'description':_0x51de80[_0x25a9b4(0x181)],'risk':_0x51de80['risk'],'targetKind':_0x51de80[_0x25a9b4(0x16f)][_0x25a9b4(0x1a1)],'targetCommand':_0x51de80[_0x25a9b4(0x16f)][_0x25a9b4(0x1a2)]}));return{'serviceCode':_0x5f0108['serviceCode'],'name':_0x416838[_0x25a9b4(0x171)][_0x25a9b4(0x185)],'description':_0x416838['service']['description'],'version':_0x5f0108[_0x25a9b4(0x1aa)],'importedAt':_0x5f0108[_0x25a9b4(0x189)],'source':_0x5f0108[_0x25a9b4(0x1a8)],'commandCount':_0x36b297[_0x25a9b4(0x17a)],'commands':_0x36b297};}function sha256(_0x34e5e1){const _0x160eb5=a63_0x41826b;return createHash(_0x160eb5(0x1a0))[_0x160eb5(0x178)](_0x34e5e1)[_0x160eb5(0x187)](_0x160eb5(0x17d));}