@lovrabet/lovrabet-cli 2.3.6 → 2.3.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/README.md +15 -11
  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/approval/index.js +1 -1
  13. package/lib/commands/artifact/index.js +1 -1
  14. package/lib/commands/auth/device.js +1 -1
  15. package/lib/commands/auth/index.js +1 -1
  16. package/lib/commands/auth/prompt.js +1 -1
  17. package/lib/commands/bff/detail.js +1 -1
  18. package/lib/commands/bff/exec.js +1 -1
  19. package/lib/commands/bff/index.js +1 -1
  20. package/lib/commands/cli-skill/index.js +1 -1
  21. package/lib/commands/common/config-policy.js +1 -1
  22. package/lib/commands/common/constraints.js +1 -1
  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.js +1 -1
  27. package/lib/commands/config/shared.js +1 -1
  28. package/lib/commands/data/import-excel.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.js +1 -1
  93. package/lib/config/schema.js +1 -1
  94. package/lib/constant/app.js +1 -1
  95. package/lib/constant/auth-mode.js +1 -1
  96. package/lib/constant/cli.js +1 -1
  97. package/lib/constant/defaults.js +1 -1
  98. package/lib/constant/distribution.js +1 -1
  99. package/lib/constant/domain.js +1 -1
  100. package/lib/constant/env.js +1 -1
  101. package/lib/constant/output.js +1 -1
  102. package/lib/constant/product.js +1 -1
  103. package/lib/constant/region.js +1 -1
  104. package/lib/constant/risk.js +1 -1
  105. package/lib/constant/url.js +1 -1
  106. package/lib/context.js +1 -1
  107. package/lib/core/api-client.d.ts +6 -6
  108. package/lib/core/api-client.js +1 -1
  109. package/lib/core/db-resolver.js +1 -1
  110. package/lib/core/kb-management-client.d.ts +5 -3
  111. package/lib/core/kb-management-client.js +1 -1
  112. package/lib/core/kb-search-client.d.ts +6 -1
  113. package/lib/core/kb-search-client.js +1 -1
  114. package/lib/core/sdk-client.js +1 -1
  115. package/lib/errors.js +1 -1
  116. package/lib/framework/access-error.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.js +1 -1
  133. package/lib/generated/build-info.d.ts +4 -4
  134. package/lib/generated/build-info.js +1 -1
  135. package/lib/generated/official-routing.js +1 -1
  136. package/lib/generated/routing-contract.js +1 -1
  137. package/lib/help.js +1 -1
  138. package/lib/postinstall.js +1 -1
  139. package/lib/runtime/confirmation.js +1 -1
  140. package/lib/runtime/event.js +1 -1
  141. package/lib/runtime/index.js +1 -1
  142. package/lib/runtime/queue.js +1 -1
  143. package/lib/runtime/resolve.js +1 -1
  144. package/lib/services/dataset-import/auto-id-runner.js +1 -1
  145. package/lib/services/dataset-import/excel-reader.js +1 -1
  146. package/lib/services/dataset-import/image-bytes.js +1 -1
  147. package/lib/services/dataset-import/image-ooxml.js +1 -1
  148. package/lib/services/dataset-import/image-runner.js +1 -1
  149. package/lib/services/dataset-import/metadata.js +1 -1
  150. package/lib/services/dataset-import/preview.js +1 -1
  151. package/lib/services/dataset-import/runner.js +1 -1
  152. package/lib/skills/builtin-skill.js +1 -1
  153. package/lib/skills/npx-skills-add.js +1 -1
  154. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  155. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  156. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  157. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  158. package/lib/skills/runtime-skill-sync/links.js +1 -1
  159. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  160. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  161. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  162. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  163. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  164. package/lib/skills/runtime-skill-sync/push.js +1 -1
  165. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  166. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  167. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  168. package/lib/skills/runtime-skill-sync.js +1 -1
  169. package/lib/skills/skill-presence.js +1 -1
  170. package/lib/utils/access-key-redaction.js +1 -1
  171. package/lib/utils/apply-jq-filter.js +1 -1
  172. package/lib/utils/cli-version-check.js +1 -1
  173. package/lib/utils/cli-version-policy.js +1 -1
  174. package/lib/utils/logger.js +1 -1
  175. package/lib/utils/lossless-json.js +1 -1
  176. package/lib/utils/params.js +1 -1
  177. package/lib/utils/positive-safe-integer.js +1 -1
  178. package/lib/utils/redaction.js +1 -1
  179. package/lib/utils/update-notice.js +1 -1
  180. package/lib/utils/version.js +1 -1
  181. package/lib/utils/write-cli-side-channel.js +1 -1
  182. package/package.json +1 -1
  183. package/skills/lovrabet/SKILL.md +2 -2
  184. package/skills/lovrabet/references/lovrabet-kb-workflow.md +9 -5
  185. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a55_0x50a5da=a55_0x339b;function a55_0x47bd(){const _0x38ca1a=['type','includes','number','runtime','3015jOFJJI','10634GJackB','pagesize','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','filter','630132ixbfdK','paging','length','string','trim','role','10rcTfST','validation','page','Runtime\x20role\x20type','23656RfBeQI','Fuzzy\x20role-name\x20filter','4435640OpLMTc','Page\x20size\x20from\x201\x20to\x20100','num','name','2183124PniKah','str','187Waaoji','Invalid\x20runtime\x20role\x20type:\x20','map','roleType','isSafeInteger','list','6hMLHkU','Page\x20number','9163056dfeppC','toUpperCase','appCode','--page\x20must\x20be\x20a\x20positive\x20integer.','2967351jzGEWJ','3DFBlSu'];a55_0x47bd=function(){return _0x38ca1a;};return a55_0x47bd();}(function(_0x53dcce,_0x410251){const _0x3581b7=a55_0x339b,_0x30aad8=_0x53dcce();while(!![]){try{const _0x894892=-parseInt(_0x3581b7(0x143))/0x1*(parseInt(_0x3581b7(0x120))/0x2)+-parseInt(_0x3581b7(0x142))/0x3+-parseInt(_0x3581b7(0x134))/0x4*(-parseInt(_0x3581b7(0x12a))/0x5)+-parseInt(_0x3581b7(0x13c))/0x6*(-parseInt(_0x3581b7(0x13e))/0x7)+-parseInt(_0x3581b7(0x12e))/0x8*(parseInt(_0x3581b7(0x11f))/0x9)+-parseInt(_0x3581b7(0x130))/0xa+parseInt(_0x3581b7(0x136))/0xb*(parseInt(_0x3581b7(0x124))/0xc);if(_0x894892===_0x410251)break;else _0x30aad8['push'](_0x30aad8['shift']());}catch(_0x30af3c){_0x30aad8['push'](_0x30aad8['shift']());}}}(a55_0x47bd,0xd080e));import{listRuntimeAppRoles}from'../../core/api-client.js';function a55_0x339b(_0x173f6a,_0x3974fa){_0x173f6a=_0x173f6a-0x11f;const _0x47bd91=a55_0x47bd();let _0x339be0=_0x47bd91[_0x173f6a];return _0x339be0;}import{CliErrors}from'../../errors.js';import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';export const roleList={'service':a55_0x50a5da(0x129),'command':a55_0x50a5da(0x13b),'description':'List\x20runtime\x20roles\x20for\x20the\x20current\x20app','risk':'read','flags':[{'name':a55_0x50a5da(0x144),'type':a55_0x50a5da(0x127),'enum':RUNTIME_ROLE_TYPES,'description':a55_0x50a5da(0x12d)},{'name':'name','type':a55_0x50a5da(0x127),'description':a55_0x50a5da(0x12f)},{'name':a55_0x50a5da(0x12c),'type':a55_0x50a5da(0x146),'default':0x1,'description':a55_0x50a5da(0x13d)},{'name':a55_0x50a5da(0x121),'type':a55_0x50a5da(0x146),'default':0x64,'description':a55_0x50a5da(0x131)}],async 'validate'(_0x1526b2){const _0x3a965d=a55_0x50a5da,_0x319147=_0x1526b2[_0x3a965d(0x135)](_0x3a965d(0x144))[_0x3a965d(0x13f)]();if(_0x319147&&!RUNTIME_ROLE_TYPES[_0x3a965d(0x145)](_0x319147))throw CliErrors[_0x3a965d(0x12b)](_0x3a965d(0x137)+_0x319147+'.');const _0x1ef7e7=_0x1526b2['num'](_0x3a965d(0x12c),0x1),_0x4b7153=_0x1526b2[_0x3a965d(0x132)](_0x3a965d(0x121),0x64);if(!Number['isSafeInteger'](_0x1ef7e7)||_0x1ef7e7<0x1)throw CliErrors[_0x3a965d(0x12b)](_0x3a965d(0x141));if(!Number[_0x3a965d(0x13a)](_0x4b7153)||_0x4b7153<0x1||_0x4b7153>0x64)throw CliErrors['validation'](_0x3a965d(0x122));},async 'execute'(_0x569d1e){const _0x11ea36=a55_0x50a5da,_0x180d88=_0x569d1e[_0x11ea36(0x135)](_0x11ea36(0x144))['toUpperCase'](),_0x4a21a4=_0x569d1e[_0x11ea36(0x135)](_0x11ea36(0x133))[_0x11ea36(0x128)](),_0x6c63b3=_0x569d1e[_0x11ea36(0x132)](_0x11ea36(0x12c),0x1),_0x56f987=_0x569d1e[_0x11ea36(0x132)]('pagesize',0x64);if(_0x180d88){const _0x5826c9=(await listAllRuntimeRoles(_0x569d1e['appCode'],{..._0x4a21a4?{'roleName':_0x4a21a4}:{}}))[_0x11ea36(0x123)](_0x587d35=>_0x587d35[_0x11ea36(0x139)]===_0x180d88),_0x17bcbb=(_0x6c63b3-0x1)*_0x56f987;return{'ok':!![],'data':{'scope':_0x11ea36(0x147),'roles':_0x5826c9['slice'](_0x17bcbb,_0x17bcbb+_0x56f987)[_0x11ea36(0x138)](projectRuntimeRole),'paging':{'currentPage':_0x6c63b3,'pageSize':_0x56f987,'totalCount':_0x5826c9[_0x11ea36(0x126)]}}};}const _0x2e9a2e=await listRuntimeAppRoles(_0x569d1e[_0x11ea36(0x140)],{..._0x4a21a4?{'roleName':_0x4a21a4}:{},'currentPage':_0x6c63b3,'pageSize':_0x56f987});return{'ok':!![],'data':{'scope':_0x11ea36(0x147),'roles':_0x2e9a2e['items']['map'](projectRuntimeRole),'paging':_0x2e9a2e[_0x11ea36(0x125)]}};}};
1
+ function a55_0x29ee(){const _0x39a270=['3982932GhCzYh','map','str','filter','239701NVooRC','6lkCgvO','Fuzzy\x20role-name\x20filter','num','4259870dCIDIk','1385268MMWnzB','name','runtime','--page\x20must\x20be\x20a\x20positive\x20integer.','List\x20runtime\x20roles\x20for\x20the\x20current\x20app','type','200734AIrmlI','role','Invalid\x20runtime\x20role\x20type:\x20','trim','88uDQepB','validation','2207560HbdqNV','isSafeInteger','2pXuEPo','toUpperCase','appCode','string','Runtime\x20role\x20type','items','list','page','slice','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','Page\x20number','paging','pagesize','1355745vSGfIx','roleType','number'];a55_0x29ee=function(){return _0x39a270;};return a55_0x29ee();}const a55_0x212eb9=a55_0x4b41;function a55_0x4b41(_0x35b15d,_0x3bf39c){_0x35b15d=_0x35b15d-0xc6;const _0x29eea5=a55_0x29ee();let _0x4b4166=_0x29eea5[_0x35b15d];return _0x4b4166;}(function(_0x34ffe7,_0x50d3b1){const _0x3bed3e=a55_0x4b41,_0x1fa3ee=_0x34ffe7();while(!![]){try{const _0x384495=parseInt(_0x3bed3e(0xd9))/0x1*(parseInt(_0x3bed3e(0xd1))/0x2)+-parseInt(_0x3bed3e(0xe6))/0x3+-parseInt(_0x3bed3e(0xcb))/0x4+parseInt(_0x3bed3e(0xd7))/0x5*(parseInt(_0x3bed3e(0xc7))/0x6)+-parseInt(_0x3bed3e(0xc6))/0x7*(parseInt(_0x3bed3e(0xd5))/0x8)+parseInt(_0x3bed3e(0xe9))/0x9+parseInt(_0x3bed3e(0xca))/0xa;if(_0x384495===_0x50d3b1)break;else _0x1fa3ee['push'](_0x1fa3ee['shift']());}catch(_0x2d97c6){_0x1fa3ee['push'](_0x1fa3ee['shift']());}}}(a55_0x29ee,0x52004));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':a55_0x212eb9(0xd2),'command':a55_0x212eb9(0xdf),'description':a55_0x212eb9(0xcf),'risk':'read','flags':[{'name':'type','type':a55_0x212eb9(0xdc),'enum':RUNTIME_ROLE_TYPES,'description':a55_0x212eb9(0xdd)},{'name':a55_0x212eb9(0xcc),'type':a55_0x212eb9(0xdc),'description':a55_0x212eb9(0xc8)},{'name':a55_0x212eb9(0xe0),'type':a55_0x212eb9(0xe8),'default':0x1,'description':a55_0x212eb9(0xe3)},{'name':a55_0x212eb9(0xe5),'type':a55_0x212eb9(0xe8),'default':0x64,'description':'Page\x20size\x20from\x201\x20to\x20100'}],async 'validate'(_0x137715){const _0x565802=a55_0x212eb9,_0x35cffb=_0x137715['str'](_0x565802(0xd0))[_0x565802(0xda)]();if(_0x35cffb&&!RUNTIME_ROLE_TYPES['includes'](_0x35cffb))throw CliErrors[_0x565802(0xd6)](_0x565802(0xd3)+_0x35cffb+'.');const _0x4da089=_0x137715[_0x565802(0xc9)](_0x565802(0xe0),0x1),_0x345e93=_0x137715[_0x565802(0xc9)](_0x565802(0xe5),0x64);if(!Number[_0x565802(0xd8)](_0x4da089)||_0x4da089<0x1)throw CliErrors['validation'](_0x565802(0xce));if(!Number['isSafeInteger'](_0x345e93)||_0x345e93<0x1||_0x345e93>0x64)throw CliErrors[_0x565802(0xd6)](_0x565802(0xe2));},async 'execute'(_0x484a7a){const _0x3fc846=a55_0x212eb9,_0x56fe58=_0x484a7a['str'](_0x3fc846(0xd0))['toUpperCase'](),_0x2d4f0e=_0x484a7a[_0x3fc846(0xeb)](_0x3fc846(0xcc))[_0x3fc846(0xd4)](),_0x3544a7=_0x484a7a[_0x3fc846(0xc9)](_0x3fc846(0xe0),0x1),_0x1bca35=_0x484a7a[_0x3fc846(0xc9)]('pagesize',0x64);if(_0x56fe58){const _0x572247=(await listAllRuntimeRoles(_0x484a7a[_0x3fc846(0xdb)],{..._0x2d4f0e?{'roleName':_0x2d4f0e}:{}}))[_0x3fc846(0xec)](_0x4fc3e9=>_0x4fc3e9[_0x3fc846(0xe7)]===_0x56fe58),_0x1953e9=(_0x3544a7-0x1)*_0x1bca35;return{'ok':!![],'data':{'scope':_0x3fc846(0xcd),'roles':_0x572247[_0x3fc846(0xe1)](_0x1953e9,_0x1953e9+_0x1bca35)['map'](projectRuntimeRole),'paging':{'currentPage':_0x3544a7,'pageSize':_0x1bca35,'totalCount':_0x572247['length']}}};}const _0x24e79b=await listRuntimeAppRoles(_0x484a7a[_0x3fc846(0xdb)],{..._0x2d4f0e?{'roleName':_0x2d4f0e}:{},'currentPage':_0x3544a7,'pageSize':_0x1bca35});return{'ok':!![],'data':{'scope':'runtime','roles':_0x24e79b[_0x3fc846(0xde)][_0x3fc846(0xea)](projectRuntimeRole),'paging':_0x24e79b[_0x3fc846(0xe4)]}};}};
@@ -1 +1 @@
1
- const a56_0x2a0c01=a56_0x12ff;(function(_0x131120,_0x2a1f0a){const _0x4eef3d=a56_0x12ff,_0x566305=_0x131120();while(!![]){try{const _0x33477b=-parseInt(_0x4eef3d(0x109))/0x1*(parseInt(_0x4eef3d(0x10b))/0x2)+-parseInt(_0x4eef3d(0xdf))/0x3*(parseInt(_0x4eef3d(0x113))/0x4)+parseInt(_0x4eef3d(0x118))/0x5+-parseInt(_0x4eef3d(0xd4))/0x6*(-parseInt(_0x4eef3d(0xda))/0x7)+parseInt(_0x4eef3d(0x104))/0x8*(-parseInt(_0x4eef3d(0xf5))/0x9)+-parseInt(_0x4eef3d(0xff))/0xa*(-parseInt(_0x4eef3d(0x11b))/0xb)+parseInt(_0x4eef3d(0xe7))/0xc*(parseInt(_0x4eef3d(0x11c))/0xd);if(_0x33477b===_0x2a1f0a)break;else _0x566305['push'](_0x566305['shift']());}catch(_0xac430b){_0x566305['push'](_0x566305['shift']());}}}(a56_0x56e0,0x70e7f));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=['ADMIN','USER',a56_0x2a0c01(0xe8),a56_0x2a0c01(0x101)];const BUILTIN_ROLE_TYPES=[a56_0x2a0c01(0x117),a56_0x2a0c01(0xf1),a56_0x2a0c01(0xe8)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a56_0x2a0c01(0x106)};export const ROLE_REF_FLAG={'name':'role','type':'string','required':!![],'description':a56_0x2a0c01(0xf0)};export const ROLE_CODE_FLAG={'name':a56_0x2a0c01(0x102),'type':a56_0x2a0c01(0xd7),'description':a56_0x2a0c01(0xef)};export const USER_ID_FLAG={'name':a56_0x2a0c01(0xe5),'type':a56_0x2a0c01(0xd7),'required':!![],'description':a56_0x2a0c01(0x115)};function a56_0x56e0(){const _0x461abf=['Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','USER','--role-code\x20must\x20not\x20be\x20blank.','\x20is\x20already\x20in\x20runtime\x20role\x20','includes','6515973VpuUUX','expect-user-count','Missing\x20runtime\x20role\x20reference.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','paging','number','test','Pass\x20one\x20role\x20ID:\x20','\x22\x20is\x20ambiguous.','\x20built-in\x20runtime\x20role\x20','510PCoxyU','items','CUSTOM','role-code',',\x20found\x20','8TbCIDc','push','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','runtime','flag','206ZYaXtp','\x22\x20was\x20not\x20found\x20in\x20app\x20','4204CPFWQp','find','userCount','Runtime\x20role\x20name\x20\x22','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','Cannot\x20','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','4zKqzNf','totalCount','Runtime\x20numeric\x20userId','appCode','ADMIN','233040CkFjqz','userName','map','178409SNXEUF','13wIBrEV','join','num','User\x20','--role-code\x20cannot\x20exceed\x2064\x20characters.','Runtime\x20role\x20id\x20','1670814dMAgVX','roleType','remark','string','validation','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','7YYPqjj','isSafeInteger','length','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','\x20was\x20not\x20found\x20in\x20app\x20','113469zAKQmQ','userList','Runtime\x20role\x20','user-add','\x20is\x20not\x20in\x20runtime\x20role\x20','roleName','user','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','6060588WJXPuV','OWNER','roleCode','filter','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','userId','Pass\x20--role\x20<id|name>.','trim','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)'];a56_0x56e0=function(){return _0x461abf;};return a56_0x56e0();}export const EXPECT_USER_COUNT_FLAG={'name':a56_0x2a0c01(0xf6),'type':a56_0x2a0c01(0xfa),'description':a56_0x2a0c01(0xd9)};function a56_0x12ff(_0x1e03c0,_0x31099a){_0x1e03c0=_0x1e03c0-0xd2;const _0x56e012=a56_0x56e0();let _0x12ffa9=_0x56e012[_0x1e03c0];return _0x12ffa9;}export function isBuiltinRuntimeRole(_0x31e0d0){const _0x99f1f2=a56_0x2a0c01;return BUILTIN_ROLE_TYPES[_0x99f1f2(0xf4)](_0x31e0d0);}export function assertCustomRuntimeRole(_0x32c5e7,_0x5480f8){const _0x511940=a56_0x2a0c01;if(_0x32c5e7['roleType']!=='CUSTOM')throw CliErrors[_0x511940(0xd8)](_0x511940(0x110)+_0x5480f8+_0x511940(0xfe)+_0x32c5e7[_0x511940(0xe4)]+'\x20('+_0x32c5e7[_0x511940(0xd5)]+').',_0x511940(0x10f));}export function projectRuntimeRole(_0x59fcd8){const _0xb79c15=a56_0x2a0c01;return{'id':_0x59fcd8['id'],'roleCode':_0x59fcd8[_0xb79c15(0xe9)],'roleName':_0x59fcd8['roleName'],'roleType':_0x59fcd8['roleType'],'remark':_0x59fcd8[_0xb79c15(0xd6)],'userCount':_0x59fcd8[_0xb79c15(0x10d)]??0x0,'permitCount':_0x59fcd8['permitCount']??0x0,'builtin':isBuiltinRuntimeRole(_0x59fcd8[_0xb79c15(0xd5)])};}export function readOptionalRuntimeRoleCode(_0x12e523){const _0x3cc14a=a56_0x2a0c01,_0x4ba2ac=_0x12e523['flag'](_0x3cc14a(0x102));if(_0x4ba2ac===undefined||_0x4ba2ac===null)return undefined;const _0x910930=String(_0x4ba2ac)[_0x3cc14a(0xee)]();if(!_0x910930)throw CliErrors[_0x3cc14a(0xd8)](_0x3cc14a(0xf2));if(_0x910930[_0x3cc14a(0xdc)]>0x40)throw CliErrors[_0x3cc14a(0xd8)](_0x3cc14a(0xd2));return _0x910930;}export async function getRuntimeRoleById(_0x5d08a2,_0x199bdf){const _0x402657=a56_0x2a0c01;if(!Number['isSafeInteger'](_0x199bdf)||_0x199bdf<=0x0)throw CliErrors[_0x402657(0xd8)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x49cc4e=(await listAllRuntimeRoles(_0x5d08a2))[_0x402657(0xea)](_0x36e5b0=>_0x36e5b0['id']===_0x199bdf&&(!_0x36e5b0[_0x402657(0x116)]||_0x36e5b0[_0x402657(0x116)]===_0x5d08a2));if(_0x49cc4e[_0x402657(0xdc)]!==0x1)throw CliErrors['validation'](_0x402657(0xd3)+_0x199bdf+_0x402657(0xde)+_0x5d08a2+'.',_0x402657(0x111));return _0x49cc4e[0x0];}export async function listAllRuntimeRoles(_0xbdecea,_0x2a95c3={}){const _0x5dcaaa=a56_0x2a0c01,_0x5333f9=0x64,_0x27664b=[];for(let _0x253c64=0x1;;_0x253c64+=0x1){const _0xcea34=await listRuntimeAppRoles(_0xbdecea,{..._0x2a95c3[_0x5dcaaa(0xe4)]?{'roleName':_0x2a95c3[_0x5dcaaa(0xe4)]}:{},'currentPage':_0x253c64,'pageSize':_0x5333f9});_0x27664b[_0x5dcaaa(0x105)](..._0xcea34[_0x5dcaaa(0x100)]);if(_0xcea34[_0x5dcaaa(0x100)][_0x5dcaaa(0xdc)]<_0x5333f9||_0xcea34[_0x5dcaaa(0xf9)]&&_0x27664b[_0x5dcaaa(0xdc)]>=_0xcea34[_0x5dcaaa(0xf9)][_0x5dcaaa(0x114)])return _0x27664b;}}export async function resolveRuntimeRoleRef(_0x4b8636,_0x4987bf){const _0x61d400=a56_0x2a0c01,_0x4e1e49=_0x4987bf[_0x61d400(0xee)]();if(!_0x4e1e49)throw CliErrors[_0x61d400(0xd8)](_0x61d400(0xf7),_0x61d400(0xed));if(/^\d+$/[_0x61d400(0xfb)](_0x4e1e49))return getRuntimeRoleById(_0x4b8636,Number(_0x4e1e49));const _0x521643=(await listAllRuntimeRoles(_0x4b8636))['filter'](_0x73ddfc=>_0x73ddfc[_0x61d400(0xe4)]===_0x4e1e49);if(_0x521643[_0x61d400(0xdc)]===0x0)throw CliErrors[_0x61d400(0xd8)](_0x61d400(0x10e)+_0x4e1e49+_0x61d400(0x10a)+_0x4b8636+'.',_0x61d400(0x112));if(_0x521643[_0x61d400(0xdc)]>0x1)throw CliErrors['validation'](_0x61d400(0x10e)+_0x4e1e49+_0x61d400(0xfd),_0x61d400(0xfc)+_0x521643['map'](_0x2dded2=>_0x2dded2['id'])[_0x61d400(0x11d)](',\x20')+'.');return _0x521643[0x0];}function parseRuntimeUserId(_0x445401){const _0x3d91aa=a56_0x2a0c01,_0x446ebf=_0x445401[_0x3d91aa(0xee)](),_0x40558c=normalizePositiveSafeInteger(_0x446ebf);if(_0x40558c===undefined)throw CliErrors[_0x3d91aa(0xd8)](_0x3d91aa(0xdd),'Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.');return _0x40558c;}export async function prepareRuntimeMemberMutation(_0x312033,_0x1f0c6b){const _0x5eeb03=a56_0x2a0c01,_0x430fdc=await resolveRuntimeRoleRef(_0x312033[_0x5eeb03(0x116)],_0x312033['str']('role'));if(_0x430fdc[_0x5eeb03(0xd5)]==='OWNER')throw CliErrors['validation']('OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x338318=parseRuntimeUserId(_0x312033['str']('user')),_0x274ac7=(await listRuntimeRoleUsers(_0x312033['appCode']))[_0x5eeb03(0x11a)](_0x4ad23a=>({..._0x4ad23a,'userList':[..._0x4ad23a[_0x5eeb03(0xe0)]??[]],'applyUserList':[..._0x4ad23a['applyUserList']??[]]})),_0x167d99=_0x274ac7[_0x5eeb03(0x10c)](_0x1fcaf0=>_0x1fcaf0['id']===_0x430fdc['id']);if(!_0x167d99)throw CliErrors[_0x5eeb03(0xd8)](_0x5eeb03(0xe1)+_0x430fdc['id']+_0x5eeb03(0xeb),'Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0x129886=_0x167d99['userList'][_0x5eeb03(0x11a)](_0x10c127=>_0x10c127[_0x5eeb03(0xec)]),_0x8b94a8=_0x312033[_0x5eeb03(0x108)](_0x5eeb03(0xf6));if(_0x8b94a8!==undefined&&_0x8b94a8!==null&&_0x8b94a8!==''){const _0x2ac426=_0x312033[_0x5eeb03(0x11e)]('expect-user-count');if(!Number[_0x5eeb03(0xdb)](_0x2ac426)||_0x2ac426<0x0)throw CliErrors[_0x5eeb03(0xd8)]('--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.');if(_0x129886[_0x5eeb03(0xdc)]!==_0x2ac426)throw CliErrors[_0x5eeb03(0xd8)](_0x5eeb03(0xf8)+_0x2ac426+_0x5eeb03(0x103)+_0x129886[_0x5eeb03(0xdc)]+'.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.');}const _0x1ce75e=_0x129886[_0x5eeb03(0xf4)](_0x338318),_0x20a2cc=[];let _0xa29945=!![];if(_0x1f0c6b===_0x5eeb03(0xe2)){const _0x8d9b24=await listRuntimeAppUsers(_0x312033['appCode']),_0x434a28=_0x8d9b24[_0x5eeb03(0xea)](_0x1c5e64=>Number(_0x1c5e64['code'])===_0x338318);if(_0x434a28[_0x5eeb03(0xdc)]!==0x1||!_0x434a28[0x0][_0x5eeb03(0x119)]?.[_0x5eeb03(0xee)]())throw CliErrors['validation']('Runtime\x20user\x20'+_0x338318+_0x5eeb03(0xde)+_0x312033[_0x5eeb03(0x116)]+'.',_0x5eeb03(0xe6));_0x1ce75e?(_0xa29945=![],_0x20a2cc[_0x5eeb03(0x105)](_0x5eeb03(0x11f)+_0x338318+_0x5eeb03(0xf3)+_0x430fdc['id']+'.')):_0x167d99['userList'][_0x5eeb03(0x105)]({'userId':_0x338318,'username':_0x434a28[0x0]['userName']});}else!_0x1ce75e?(_0xa29945=![],_0x20a2cc[_0x5eeb03(0x105)]('User\x20'+_0x338318+_0x5eeb03(0xe3)+_0x430fdc['id']+'.')):_0x167d99[_0x5eeb03(0xe0)]=_0x167d99[_0x5eeb03(0xe0)][_0x5eeb03(0xea)](_0x5b5baa=>_0x5b5baa[_0x5eeb03(0xec)]!==_0x338318);return{'role':_0x430fdc,'userId':_0x338318,'roleList':_0x274ac7,'before':{'userIds':_0x129886},'after':{'userIds':_0x167d99[_0x5eeb03(0xe0)]['map'](_0x2449e7=>_0x2449e7[_0x5eeb03(0xec)])},'shouldWrite':_0xa29945,'warnings':_0x20a2cc};}export function runtimeRoleWriteResult(_0xad68c2,_0x4987a8,_0x3be2e2,_0x11ef4b,_0x379e4d,_0x4e026b=[]){const _0x53d419=a56_0x2a0c01;return{'operation':_0xad68c2,'scope':_0x53d419(0x107),'selector':_0x4987a8,'before':_0x3be2e2,'after':_0x11ef4b,'dryRun':![],'backend':_0x379e4d,'warnings':_0x4e026b};}
1
+ const a56_0x21a27b=a56_0x5291;(function(_0x4d8923,_0x1c528b){const _0x56cd36=a56_0x5291,_0xf690e8=_0x4d8923();while(!![]){try{const _0xb4ff13=-parseInt(_0x56cd36(0xb3))/0x1*(parseInt(_0x56cd36(0x74))/0x2)+parseInt(_0x56cd36(0x78))/0x3*(parseInt(_0x56cd36(0xad))/0x4)+parseInt(_0x56cd36(0xb9))/0x5*(parseInt(_0x56cd36(0xab))/0x6)+parseInt(_0x56cd36(0x88))/0x7+parseInt(_0x56cd36(0xae))/0x8*(parseInt(_0x56cd36(0x8c))/0x9)+parseInt(_0x56cd36(0x70))/0xa*(-parseInt(_0x56cd36(0x82))/0xb)+-parseInt(_0x56cd36(0x7e))/0xc*(parseInt(_0x56cd36(0xb7))/0xd);if(_0xb4ff13===_0x1c528b)break;else _0xf690e8['push'](_0xf690e8['shift']());}catch(_0x243cb6){_0xf690e8['push'](_0xf690e8['shift']());}}}(a56_0x1bd3,0xda3ad));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x21a27b(0xb5),'USER',a56_0x21a27b(0x77),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a56_0x21a27b(0xb5),a56_0x21a27b(0x90),'OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a56_0x21a27b(0x97),'required':!![],'description':a56_0x21a27b(0x83)};export const ROLE_REF_FLAG={'name':'role','type':'string','required':!![],'description':a56_0x21a27b(0xb0)};export const ROLE_CODE_FLAG={'name':a56_0x21a27b(0x6e),'type':'string','description':'Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)'};export const USER_ID_FLAG={'name':a56_0x21a27b(0x81),'type':a56_0x21a27b(0xa5),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':a56_0x21a27b(0x97),'description':a56_0x21a27b(0x7b)};export function isBuiltinRuntimeRole(_0x4c39a5){return BUILTIN_ROLE_TYPES['includes'](_0x4c39a5);}export function assertCustomRuntimeRole(_0x4c0bf3,_0x110c53){const _0x2a526e=a56_0x21a27b;if(_0x4c0bf3['roleType']!==_0x2a526e(0x95))throw CliErrors[_0x2a526e(0x7a)](_0x2a526e(0xa9)+_0x110c53+'\x20built-in\x20runtime\x20role\x20'+_0x4c0bf3[_0x2a526e(0x79)]+'\x20('+_0x4c0bf3[_0x2a526e(0x7f)]+').',_0x2a526e(0x9b));}export function projectRuntimeRole(_0x2b2488){const _0x3e39f8=a56_0x21a27b;return{'id':_0x2b2488['id'],'roleCode':_0x2b2488['roleCode'],'roleName':_0x2b2488[_0x3e39f8(0x79)],'roleType':_0x2b2488[_0x3e39f8(0x7f)],'remark':_0x2b2488[_0x3e39f8(0x8a)],'userCount':_0x2b2488['userCount']??0x0,'permitCount':_0x2b2488[_0x3e39f8(0xb1)]??0x0,'builtin':isBuiltinRuntimeRole(_0x2b2488['roleType'])};}export function readOptionalRuntimeRoleCode(_0x528564){const _0x57c611=a56_0x21a27b,_0x33c8e9=_0x528564[_0x57c611(0x8b)](_0x57c611(0x6e));if(_0x33c8e9===undefined||_0x33c8e9===null)return undefined;const _0xb5f4ab=String(_0x33c8e9)[_0x57c611(0x8e)]();if(!_0xb5f4ab)throw CliErrors[_0x57c611(0x7a)](_0x57c611(0xa1));if(_0xb5f4ab[_0x57c611(0x8d)]>0x40)throw CliErrors[_0x57c611(0x7a)](_0x57c611(0xa0));return _0xb5f4ab;}export async function getRuntimeRoleById(_0x2956f0,_0x34e30c){const _0x2f9756=a56_0x21a27b;if(!Number['isSafeInteger'](_0x34e30c)||_0x34e30c<=0x0)throw CliErrors[_0x2f9756(0x7a)](_0x2f9756(0x91));const _0x1662f2=(await listAllRuntimeRoles(_0x2956f0))[_0x2f9756(0x76)](_0xb1adde=>_0xb1adde['id']===_0x34e30c&&(!_0xb1adde[_0x2f9756(0x73)]||_0xb1adde[_0x2f9756(0x73)]===_0x2956f0));if(_0x1662f2[_0x2f9756(0x8d)]!==0x1)throw CliErrors[_0x2f9756(0x7a)]('Runtime\x20role\x20id\x20'+_0x34e30c+_0x2f9756(0xb2)+_0x2956f0+'.',_0x2f9756(0xb4));return _0x1662f2[0x0];}function a56_0x1bd3(){const _0x5b1024=['Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','runtime','Runtime\x20role\x20','--role-code\x20cannot\x20exceed\x2064\x20characters.','--role-code\x20must\x20not\x20be\x20blank.','map','\x20is\x20already\x20in\x20runtime\x20role\x20','isSafeInteger','string','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','\x22\x20was\x20not\x20found\x20in\x20app\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Cannot\x20','totalCount','5478DQyCWj','user-add','56940swLqxA','57048dxaHFV','role','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','permitCount','\x20was\x20not\x20found\x20in\x20app\x20','106906OIxnqM','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','ADMIN','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','529867uBBDJZ','\x20is\x20not\x20in\x20runtime\x20role\x20','7075cNGnRN','\x22\x20is\x20ambiguous.','role-code','userId','54050yqyRIB','push','userList','appCode','16FbyOrZ','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','filter','OWNER','351bjLBWe','roleName','validation','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','paging','Runtime\x20role\x20name\x20\x22','516OPafrm','roleType','str','user','2519bmIcrM','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','find',',\x20found\x20','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','userName','544600upapxy','User\x20','remark','flag','2151JGUVPa','length','trim','code','USER','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','Pass\x20one\x20role\x20ID:\x20','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','CUSTOM','test','number','expect-user-count','applyUserList','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.'];a56_0x1bd3=function(){return _0x5b1024;};return a56_0x1bd3();}export async function listAllRuntimeRoles(_0x1dbfcb,_0x222e08={}){const _0x15021e=a56_0x21a27b,_0x347cf0=0x64,_0x2a593c=[];for(let _0x1c5450=0x1;;_0x1c5450+=0x1){const _0x37c641=await listRuntimeAppRoles(_0x1dbfcb,{..._0x222e08[_0x15021e(0x79)]?{'roleName':_0x222e08[_0x15021e(0x79)]}:{},'currentPage':_0x1c5450,'pageSize':_0x347cf0});_0x2a593c[_0x15021e(0x71)](..._0x37c641['items']);if(_0x37c641['items'][_0x15021e(0x8d)]<_0x347cf0||_0x37c641[_0x15021e(0x7c)]&&_0x2a593c['length']>=_0x37c641[_0x15021e(0x7c)][_0x15021e(0xaa)])return _0x2a593c;}}export async function resolveRuntimeRoleRef(_0x21819a,_0x3080ae){const _0x2205ae=a56_0x21a27b,_0x1e09e9=_0x3080ae[_0x2205ae(0x8e)]();if(!_0x1e09e9)throw CliErrors[_0x2205ae(0x7a)]('Missing\x20runtime\x20role\x20reference.','Pass\x20--role\x20<id|name>.');if(/^\d+$/[_0x2205ae(0x96)](_0x1e09e9))return getRuntimeRoleById(_0x21819a,Number(_0x1e09e9));const _0x852b13=(await listAllRuntimeRoles(_0x21819a))[_0x2205ae(0x76)](_0x4e86d2=>_0x4e86d2[_0x2205ae(0x79)]===_0x1e09e9);if(_0x852b13['length']===0x0)throw CliErrors[_0x2205ae(0x7a)](_0x2205ae(0x7d)+_0x1e09e9+_0x2205ae(0xa7)+_0x21819a+'.',_0x2205ae(0xa8));if(_0x852b13[_0x2205ae(0x8d)]>0x1)throw CliErrors[_0x2205ae(0x7a)]('Runtime\x20role\x20name\x20\x22'+_0x1e09e9+_0x2205ae(0xba),_0x2205ae(0x93)+_0x852b13[_0x2205ae(0xa2)](_0x973ee9=>_0x973ee9['id'])['join'](',\x20')+'.');return _0x852b13[0x0];}function parseRuntimeUserId(_0x297ba1){const _0x1ae58c=a56_0x21a27b,_0x16245b=_0x297ba1[_0x1ae58c(0x8e)](),_0x2393b4=normalizePositiveSafeInteger(_0x16245b);if(_0x2393b4===undefined)throw CliErrors[_0x1ae58c(0x7a)](_0x1ae58c(0x75),_0x1ae58c(0x94));return _0x2393b4;}export async function prepareRuntimeMemberMutation(_0x51b28e,_0x146194){const _0x932f67=a56_0x21a27b,_0x10c62c=await resolveRuntimeRoleRef(_0x51b28e[_0x932f67(0x73)],_0x51b28e[_0x932f67(0x80)](_0x932f67(0xaf)));if(_0x10c62c[_0x932f67(0x7f)]===_0x932f67(0x77))throw CliErrors[_0x932f67(0x7a)](_0x932f67(0x9c),_0x932f67(0x9a));const _0x1c87af=parseRuntimeUserId(_0x51b28e[_0x932f67(0x80)]('user')),_0x1ff4ce=(await listRuntimeRoleUsers(_0x51b28e['appCode']))[_0x932f67(0xa2)](_0x58f455=>({..._0x58f455,'userList':[..._0x58f455[_0x932f67(0x72)]??[]],'applyUserList':[..._0x58f455[_0x932f67(0x99)]??[]]})),_0x48a54a=_0x1ff4ce[_0x932f67(0x84)](_0x119cca=>_0x119cca['id']===_0x10c62c['id']);if(!_0x48a54a)throw CliErrors['validation'](_0x932f67(0x9f)+_0x10c62c['id']+'\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.',_0x932f67(0x9d));const _0x78d433=_0x48a54a[_0x932f67(0x72)][_0x932f67(0xa2)](_0x17d983=>_0x17d983[_0x932f67(0x6f)]),_0x5a954b=_0x51b28e[_0x932f67(0x8b)](_0x932f67(0x98));if(_0x5a954b!==undefined&&_0x5a954b!==null&&_0x5a954b!==''){const _0x4c9933=_0x51b28e['num'](_0x932f67(0x98));if(!Number[_0x932f67(0xa4)](_0x4c9933)||_0x4c9933<0x0)throw CliErrors[_0x932f67(0x7a)](_0x932f67(0x86));if(_0x78d433[_0x932f67(0x8d)]!==_0x4c9933)throw CliErrors[_0x932f67(0x7a)](_0x932f67(0xb6)+_0x4c9933+_0x932f67(0x85)+_0x78d433[_0x932f67(0x8d)]+'.',_0x932f67(0xa6));}const _0x1f860c=_0x78d433['includes'](_0x1c87af),_0x5e8c67=[];let _0x29e3f6=!![];if(_0x146194===_0x932f67(0xac)){const _0x5ebc40=await listRuntimeAppUsers(_0x51b28e[_0x932f67(0x73)]),_0x2610ab=_0x5ebc40[_0x932f67(0x76)](_0x592e41=>Number(_0x592e41[_0x932f67(0x8f)])===_0x1c87af);if(_0x2610ab['length']!==0x1||!_0x2610ab[0x0][_0x932f67(0x87)]?.[_0x932f67(0x8e)]())throw CliErrors[_0x932f67(0x7a)]('Runtime\x20user\x20'+_0x1c87af+_0x932f67(0xb2)+_0x51b28e[_0x932f67(0x73)]+'.',_0x932f67(0x92));_0x1f860c?(_0x29e3f6=![],_0x5e8c67[_0x932f67(0x71)](_0x932f67(0x89)+_0x1c87af+_0x932f67(0xa3)+_0x10c62c['id']+'.')):_0x48a54a['userList'][_0x932f67(0x71)]({'userId':_0x1c87af,'username':_0x2610ab[0x0]['userName']});}else!_0x1f860c?(_0x29e3f6=![],_0x5e8c67[_0x932f67(0x71)](_0x932f67(0x89)+_0x1c87af+_0x932f67(0xb8)+_0x10c62c['id']+'.')):_0x48a54a['userList']=_0x48a54a[_0x932f67(0x72)][_0x932f67(0x76)](_0x3f06ab=>_0x3f06ab['userId']!==_0x1c87af);return{'role':_0x10c62c,'userId':_0x1c87af,'roleList':_0x1ff4ce,'before':{'userIds':_0x78d433},'after':{'userIds':_0x48a54a['userList'][_0x932f67(0xa2)](_0x2e421a=>_0x2e421a[_0x932f67(0x6f)])},'shouldWrite':_0x29e3f6,'warnings':_0x5e8c67};}function a56_0x5291(_0x3a3c43,_0x34741d){_0x3a3c43=_0x3a3c43-0x6e;const _0x1bd310=a56_0x1bd3();let _0x529153=_0x1bd310[_0x3a3c43];return _0x529153;}export function runtimeRoleWriteResult(_0x48eed9,_0x5b9959,_0x132381,_0x1eb4fd,_0x264015,_0x41689b=[]){const _0x46e38c=a56_0x21a27b;return{'operation':_0x48eed9,'scope':_0x46e38c(0x9e),'selector':_0x5b9959,'before':_0x132381,'after':_0x1eb4fd,'dryRun':![],'backend':_0x264015,'warnings':_0x41689b};}
@@ -1 +1 @@
1
- const a57_0x305d6e=a57_0x1d83;(function(_0x38bfb5,_0x56fa04){const _0x107f11=a57_0x1d83,_0x2840c5=_0x38bfb5();while(!![]){try{const _0x26bd0c=-parseInt(_0x107f11(0x175))/0x1*(-parseInt(_0x107f11(0x172))/0x2)+parseInt(_0x107f11(0x181))/0x3+parseInt(_0x107f11(0x182))/0x4+parseInt(_0x107f11(0x180))/0x5+-parseInt(_0x107f11(0x17c))/0x6+-parseInt(_0x107f11(0x170))/0x7*(parseInt(_0x107f11(0x16e))/0x8)+parseInt(_0x107f11(0x169))/0x9;if(_0x26bd0c===_0x56fa04)break;else _0x2840c5['push'](_0x2840c5['shift']());}catch(_0x4f5d78){_0x2840c5['push'](_0x2840c5['shift']());}}}(a57_0x3b1e,0x2bdd3));function a57_0x1d83(_0x456e71,_0x5e3333){_0x456e71=_0x456e71-0x166;const _0x3b1ebb=a57_0x3b1e();let _0x1d83a8=_0x3b1ebb[_0x456e71];return _0x1d83a8;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a57_0x3b1e(){const _0x2ca381=['/client/permit/role/update','appCode','validation','--remark\x20must\x20not\x20be\x20blank.','high-risk-write','string','2116452ZVXjLH','New\x20non-empty\x20role\x20remark','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','str','95250MhcCdI','510066zpHqut','890324KUHHxS','--name\x20must\x20not\x20be\x20blank.','flag','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','New\x20role\x20name','562797ChcQTj','trim','name','num','update','104YDGEED','POST','23849BwVHdL','description','4MglTnT','remark','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','51257qXpUHQ'];a57_0x3b1e=function(){return _0x2ca381;};return a57_0x3b1e();}import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x36d163){const _0x35ca94=a57_0x1d83,_0x100978=_0x36d163[_0x35ca94(0x166)]('role-code')!==undefined,_0x1aaa2c=_0x36d163[_0x35ca94(0x166)](_0x35ca94(0x16b))!==undefined,_0x4758da=_0x36d163[_0x35ca94(0x166)]('remark')!==undefined;if(!_0x100978&&!_0x1aaa2c&&!_0x4758da)throw CliErrors[_0x35ca94(0x178)](_0x35ca94(0x17e));const _0x359af2=readOptionalRuntimeRoleCode(_0x36d163),_0x3233d4=_0x36d163[_0x35ca94(0x17f)](_0x35ca94(0x16b))[_0x35ca94(0x16a)](),_0x5d2016=_0x36d163[_0x35ca94(0x17f)](_0x35ca94(0x173))['trim']();if(_0x1aaa2c&&!_0x3233d4)throw CliErrors['validation'](_0x35ca94(0x183));if(_0x4758da&&!_0x5d2016)throw CliErrors[_0x35ca94(0x178)](_0x35ca94(0x179),_0x35ca94(0x174));return{..._0x359af2?{'roleCode':_0x359af2}:{},..._0x1aaa2c?{'roleName':_0x3233d4}:{},..._0x4758da?{'remark':_0x5d2016}:{}};}async function prepare(_0x2e0ef1){const _0x5aca16=a57_0x1d83,_0x378ec5=await getRuntimeRoleById(_0x2e0ef1[_0x5aca16(0x177)],_0x2e0ef1[_0x5aca16(0x16c)]('id'));return assertCustomRuntimeRole(_0x378ec5,_0x5aca16(0x16d)),{'role':_0x378ec5,'body':{'id':_0x378ec5['id'],'appCode':_0x2e0ef1['appCode'],...updateFields(_0x2e0ef1)}};}export const roleUpdate={'service':'role','command':a57_0x305d6e(0x16d),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','risk':a57_0x305d6e(0x17a),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x305d6e(0x16b),'type':a57_0x305d6e(0x17b),'description':a57_0x305d6e(0x168)},{'name':a57_0x305d6e(0x173),'type':a57_0x305d6e(0x17b),'description':a57_0x305d6e(0x17d)}],async 'validate'(_0x2d6cd7){updateFields(_0x2d6cd7);},async 'dryRun'(_0x1037d1){const _0x4483a6=a57_0x305d6e,{body:_0x3b415d}=await prepare(_0x1037d1);return dryRun('POST',_0x4483a6(0x176))['body'](_0x3b415d)[_0x4483a6(0x171)](_0x4483a6(0x167))['build']();},async 'execute'(_0x4b4a5e){const _0x591324=a57_0x305d6e,{role:_0x40f10f,body:_0x23d272}=await prepare(_0x4b4a5e),_0x158809=await updateRuntimeAppRole(_0x23d272);return{'ok':!![],'data':runtimeRoleWriteResult(_0x591324(0x16d),{'roleId':_0x40f10f['id']},projectRuntimeRole(_0x40f10f),projectRuntimeRole(_0x158809),{'method':_0x591324(0x16f),'path':_0x591324(0x176)})};}};
1
+ function a57_0x1010(){const _0x3b94f3=['Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','description','body','145GURzSN','451572lsQbnt','flag','42MCxOjJ','2CvPwCN','1753569IVcWBn','864966yLrRTP','name','appCode','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','validation','4676jfgpvr','--remark\x20must\x20not\x20be\x20blank.','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','101927RjqYUT','trim','675216vIBwVa','POST','New\x20non-empty\x20role\x20remark','remark','str','414988fTAcBw','110mIMuLO','high-risk-write','update'];a57_0x1010=function(){return _0x3b94f3;};return a57_0x1010();}const a57_0x83e7f1=a57_0x174c;(function(_0x4c52e9,_0x107b8c){const _0x4ff5c5=a57_0x174c,_0x111f1c=_0x4c52e9();while(!![]){try{const _0x332dd3=parseInt(_0x4ff5c5(0xa2))/0x1+parseInt(_0x4ff5c5(0x90))/0x2*(parseInt(_0x4ff5c5(0x92))/0x3)+-parseInt(_0x4ff5c5(0x98))/0x4*(parseInt(_0x4ff5c5(0x8c))/0x5)+parseInt(_0x4ff5c5(0x8f))/0x6*(parseInt(_0x4ff5c5(0x9b))/0x7)+parseInt(_0x4ff5c5(0x9d))/0x8+-parseInt(_0x4ff5c5(0x91))/0x9+parseInt(_0x4ff5c5(0xa3))/0xa*(-parseInt(_0x4ff5c5(0x8d))/0xb);if(_0x332dd3===_0x107b8c)break;else _0x111f1c['push'](_0x111f1c['shift']());}catch(_0x20dc3a){_0x111f1c['push'](_0x111f1c['shift']());}}}(a57_0x1010,0x331ad));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x5ee005){const _0x5b3b57=a57_0x174c,_0x26f686=_0x5ee005[_0x5b3b57(0x8e)]('role-code')!==undefined,_0x4870e1=_0x5ee005['flag'](_0x5b3b57(0x93))!==undefined,_0x56011e=_0x5ee005[_0x5b3b57(0x8e)](_0x5b3b57(0xa0))!==undefined;if(!_0x26f686&&!_0x4870e1&&!_0x56011e)throw CliErrors['validation'](_0x5b3b57(0x95));const _0x4525ff=readOptionalRuntimeRoleCode(_0x5ee005),_0x575b73=_0x5ee005['str'](_0x5b3b57(0x93))[_0x5b3b57(0x9c)](),_0x108341=_0x5ee005[_0x5b3b57(0xa1)](_0x5b3b57(0xa0))[_0x5b3b57(0x9c)]();if(_0x4870e1&&!_0x575b73)throw CliErrors['validation']('--name\x20must\x20not\x20be\x20blank.');if(_0x56011e&&!_0x108341)throw CliErrors[_0x5b3b57(0x97)](_0x5b3b57(0x99),_0x5b3b57(0x9a));return{..._0x4525ff?{'roleCode':_0x4525ff}:{},..._0x4870e1?{'roleName':_0x575b73}:{},..._0x56011e?{'remark':_0x108341}:{}};}function a57_0x174c(_0x8b45cb,_0x28aa99){_0x8b45cb=_0x8b45cb-0x8b;const _0x101062=a57_0x1010();let _0x174c83=_0x101062[_0x8b45cb];return _0x174c83;}async function prepare(_0x559410){const _0x42d796=a57_0x174c,_0x32916a=await getRuntimeRoleById(_0x559410[_0x42d796(0x94)],_0x559410['num']('id'));return assertCustomRuntimeRole(_0x32916a,_0x42d796(0xa5)),{'role':_0x32916a,'body':{'id':_0x32916a['id'],'appCode':_0x559410[_0x42d796(0x94)],...updateFields(_0x559410)}};}export const roleUpdate={'service':'role','command':a57_0x83e7f1(0xa5),'description':a57_0x83e7f1(0x96),'risk':a57_0x83e7f1(0xa4),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x83e7f1(0x93),'type':'string','description':'New\x20role\x20name'},{'name':a57_0x83e7f1(0xa0),'type':'string','description':a57_0x83e7f1(0x9f)}],async 'validate'(_0x8f2b81){updateFields(_0x8f2b81);},async 'dryRun'(_0x473908){const _0x5d7414=a57_0x83e7f1,{body:_0x3c9b53}=await prepare(_0x473908);return dryRun(_0x5d7414(0x9e),'/client/permit/role/update')[_0x5d7414(0x8b)](_0x3c9b53)[_0x5d7414(0xa7)](_0x5d7414(0xa6))['build']();},async 'execute'(_0x230893){const {role:_0x38ae19,body:_0x277519}=await prepare(_0x230893),_0x4d2605=await updateRuntimeAppRole(_0x277519);return{'ok':!![],'data':runtimeRoleWriteResult('update',{'roleId':_0x38ae19['id']},projectRuntimeRole(_0x38ae19),projectRuntimeRole(_0x4d2605),{'method':'POST','path':'/client/permit/role/update'})};}};
@@ -1 +1 @@
1
- const a58_0x484283=a58_0x1e82;(function(_0x1b2cf0,_0x1b18f4){const _0x2cc197=a58_0x1e82,_0x1a78aa=_0x1b2cf0();while(!![]){try{const _0x2c1265=-parseInt(_0x2cc197(0x156))/0x1+parseInt(_0x2cc197(0x143))/0x2+-parseInt(_0x2cc197(0x149))/0x3*(parseInt(_0x2cc197(0x146))/0x4)+parseInt(_0x2cc197(0x154))/0x5+parseInt(_0x2cc197(0x155))/0x6*(parseInt(_0x2cc197(0x14f))/0x7)+-parseInt(_0x2cc197(0x147))/0x8*(parseInt(_0x2cc197(0x151))/0x9)+parseInt(_0x2cc197(0x13e))/0xa;if(_0x2c1265===_0x1b18f4)break;else _0x1a78aa['push'](_0x1a78aa['shift']());}catch(_0x1182e5){_0x1a78aa['push'](_0x1a78aa['shift']());}}}(a58_0x361e,0x23a6b));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a58_0x1e82(_0x3d24ea,_0x49e7ca){_0x3d24ea=_0x3d24ea-0x13d;const _0x361ee3=a58_0x361e();let _0x1e82ac=_0x361ee3[_0x3d24ea];return _0x1e82ac;}function a58_0x361e(){const _0x4982eb=['6209WOwTQk','roleList','6714AiChCI','/client/permit/user-role/update-user-list','POST','57180KizuMf','876aOAMSd','60485pRHhPo','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','3699100xeMcDI','user-add','build','high-risk-write','warnings','289070xzOnjB','after','shouldWrite','1144972JekzMC','1744qWsjkv','before','3bLjZdC','description','role','Preview:\x20add\x20runtime\x20role\x20member','appCode','userId'];a58_0x361e=function(){return _0x4982eb;};return a58_0x361e();}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':'role','command':'user-add','description':a58_0x484283(0x13d),'risk':a58_0x484283(0x141),'confirmationDescription':'Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x227440){const _0x3734df=a58_0x484283,_0x13a252=await prepareRuntimeMemberMutation(_0x227440,_0x3734df(0x13f));return dryRun(_0x3734df(0x153),_0x3734df(0x152))['body']({'appCode':_0x227440[_0x3734df(0x14d)],'roleList':_0x13a252[_0x3734df(0x150)]})[_0x3734df(0x14a)](_0x13a252[_0x3734df(0x145)]?_0x3734df(0x14c):_0x13a252[_0x3734df(0x142)][0x0])[_0x3734df(0x140)]();},async 'execute'(_0x144e16){const _0x32eb70=a58_0x484283,_0x5f29ae=await prepareRuntimeMemberMutation(_0x144e16,_0x32eb70(0x13f));return _0x5f29ae[_0x32eb70(0x145)]&&await updateRuntimeRoleUsers(_0x144e16[_0x32eb70(0x14d)],_0x5f29ae[_0x32eb70(0x150)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x32eb70(0x13f),{'roleId':_0x5f29ae[_0x32eb70(0x14b)]['id'],'userId':_0x5f29ae[_0x32eb70(0x14e)]},_0x5f29ae[_0x32eb70(0x148)],_0x5f29ae[_0x32eb70(0x144)],{'method':_0x32eb70(0x153),'path':_0x32eb70(0x152)},_0x5f29ae[_0x32eb70(0x142)])};}};
1
+ const a58_0x33546b=a58_0x45d1;function a58_0x4992(){const _0x4cc143=['5bMnQoW','role','314257DRjkiB','userId','6937qxdJGG','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','shouldWrite','/client/permit/user-role/update-user-list','80FUxpgQ','POST','after','6PlfMPN','body','high-risk-write','44143GObJmn','roleList','Preview:\x20add\x20runtime\x20role\x20member','warnings','user-add','description','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','build','appCode','before','7554pHRsyp','528384Gcfbge','284910mgPvUD','8282640QiNiyn','3900lSEriA','55629vRjyKg'];a58_0x4992=function(){return _0x4cc143;};return a58_0x4992();}(function(_0x5def50,_0x4d3ded){const _0xe544f5=a58_0x45d1,_0x243e32=_0x5def50();while(!![]){try{const _0x3cbc42=parseInt(_0xe544f5(0x1a5))/0x1*(-parseInt(_0xe544f5(0x1ae))/0x2)+parseInt(_0xe544f5(0x19f))/0x3+-parseInt(_0xe544f5(0x19e))/0x4*(parseInt(_0xe544f5(0x1a3))/0x5)+parseInt(_0xe544f5(0x19d))/0x6*(parseInt(_0xe544f5(0x1a7))/0x7)+-parseInt(_0xe544f5(0x1ab))/0x8*(parseInt(_0xe544f5(0x1a2))/0x9)+-parseInt(_0xe544f5(0x1a0))/0xa+-parseInt(_0xe544f5(0x1b1))/0xb*(-parseInt(_0xe544f5(0x1a1))/0xc);if(_0x3cbc42===_0x4d3ded)break;else _0x243e32['push'](_0x243e32['shift']());}catch(_0x28a533){_0x243e32['push'](_0x243e32['shift']());}}}(a58_0x4992,0xa67c3));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a58_0x45d1(_0x4991f6,_0x40437f){_0x4991f6=_0x4991f6-0x19d;const _0x499276=a58_0x4992();let _0x45d15c=_0x499276[_0x4991f6];return _0x45d15c;}export const roleUserAdd={'service':'role','command':a58_0x33546b(0x1b5),'description':a58_0x33546b(0x1a8),'risk':a58_0x33546b(0x1b0),'confirmationDescription':a58_0x33546b(0x1b7),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x19608f){const _0x513812=a58_0x33546b,_0x3a04ca=await prepareRuntimeMemberMutation(_0x19608f,_0x513812(0x1b5));return dryRun(_0x513812(0x1ac),_0x513812(0x1aa))[_0x513812(0x1af)]({'appCode':_0x19608f[_0x513812(0x1b9)],'roleList':_0x3a04ca[_0x513812(0x1b2)]})[_0x513812(0x1b6)](_0x3a04ca[_0x513812(0x1a9)]?_0x513812(0x1b3):_0x3a04ca[_0x513812(0x1b4)][0x0])[_0x513812(0x1b8)]();},async 'execute'(_0x99821){const _0x31f5ca=a58_0x33546b,_0x2cdf14=await prepareRuntimeMemberMutation(_0x99821,_0x31f5ca(0x1b5));return _0x2cdf14[_0x31f5ca(0x1a9)]&&await updateRuntimeRoleUsers(_0x99821[_0x31f5ca(0x1b9)],_0x2cdf14[_0x31f5ca(0x1b2)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x31f5ca(0x1b5),{'roleId':_0x2cdf14[_0x31f5ca(0x1a4)]['id'],'userId':_0x2cdf14[_0x31f5ca(0x1a6)]},_0x2cdf14[_0x31f5ca(0x1ba)],_0x2cdf14[_0x31f5ca(0x1ad)],{'method':_0x31f5ca(0x1ac),'path':_0x31f5ca(0x1aa)},_0x2cdf14[_0x31f5ca(0x1b4)])};}};
@@ -1 +1 @@
1
- const a59_0x2c3ed2=a59_0x2d05;function a59_0x2d05(_0x3ef748,_0xfd86d3){_0x3ef748=_0x3ef748-0x1b4;const _0x4bd394=a59_0x4bd3();let _0x2d0502=_0x4bd394[_0x3ef748];return _0x2d0502;}(function(_0x42796e,_0x114bca){const _0x2219f2=a59_0x2d05,_0x97a3f6=_0x42796e();while(!![]){try{const _0x51ac06=-parseInt(_0x2219f2(0x1c8))/0x1+-parseInt(_0x2219f2(0x1c4))/0x2+-parseInt(_0x2219f2(0x1c0))/0x3+parseInt(_0x2219f2(0x1ba))/0x4*(-parseInt(_0x2219f2(0x1b9))/0x5)+parseInt(_0x2219f2(0x1c9))/0x6*(parseInt(_0x2219f2(0x1be))/0x7)+parseInt(_0x2219f2(0x1b8))/0x8+-parseInt(_0x2219f2(0x1b5))/0x9*(-parseInt(_0x2219f2(0x1c5))/0xa);if(_0x51ac06===_0x114bca)break;else _0x97a3f6['push'](_0x97a3f6['shift']());}catch(_0x2cf113){_0x97a3f6['push'](_0x97a3f6['shift']());}}}(a59_0x4bd3,0x6ab77));function a59_0x4bd3(){const _0x17cb4a=['Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','before','4842OAdUhF','appCode','shouldWrite','336680sigaWE','198035AcVwre','48Rbzmbo','POST','userId','user-remove','1505FtraxZ','/client/permit/user-role/update-user-list','1852860ojoxVm','role','description','warnings','1144272AkMofL','35060hiODIt','build','roleList','210367WuKuKH','10722ZmYNfL'];a59_0x4bd3=function(){return _0x17cb4a;};return a59_0x4bd3();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a59_0x2c3ed2(0x1c1),'command':'user-remove','description':a59_0x2c3ed2(0x1cb),'risk':'high-risk-write','confirmationDescription':a59_0x2c3ed2(0x1ca),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x4a6037){const _0x2cdd2c=a59_0x2c3ed2,_0x3a2124=await prepareRuntimeMemberMutation(_0x4a6037,'user-remove');return dryRun('POST',_0x2cdd2c(0x1bf))['body']({'appCode':_0x4a6037[_0x2cdd2c(0x1b6)],'roleList':_0x3a2124[_0x2cdd2c(0x1c7)]})[_0x2cdd2c(0x1c2)](_0x3a2124[_0x2cdd2c(0x1b7)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x3a2124[_0x2cdd2c(0x1c3)][0x0])[_0x2cdd2c(0x1c6)]();},async 'execute'(_0x428835){const _0x549694=a59_0x2c3ed2,_0x2496fc=await prepareRuntimeMemberMutation(_0x428835,_0x549694(0x1bd));return _0x2496fc[_0x549694(0x1b7)]&&await updateRuntimeRoleUsers(_0x428835[_0x549694(0x1b6)],_0x2496fc['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0x549694(0x1bd),{'roleId':_0x2496fc[_0x549694(0x1c1)]['id'],'userId':_0x2496fc[_0x549694(0x1bc)]},_0x2496fc[_0x549694(0x1b4)],_0x2496fc['after'],{'method':_0x549694(0x1bb),'path':_0x549694(0x1bf)},_0x2496fc['warnings'])};}};
1
+ const a59_0x20cfe8=a59_0x2b06;(function(_0x3fad1a,_0x2a96d9){const _0x2ebf26=a59_0x2b06,_0x33a7da=_0x3fad1a();while(!![]){try{const _0xdcbed5=-parseInt(_0x2ebf26(0xbe))/0x1*(parseInt(_0x2ebf26(0xc2))/0x2)+parseInt(_0x2ebf26(0xc9))/0x3*(parseInt(_0x2ebf26(0xd6))/0x4)+-parseInt(_0x2ebf26(0xc7))/0x5+-parseInt(_0x2ebf26(0xc6))/0x6+-parseInt(_0x2ebf26(0xc1))/0x7+parseInt(_0x2ebf26(0xc8))/0x8*(parseInt(_0x2ebf26(0xcd))/0x9)+parseInt(_0x2ebf26(0xd5))/0xa;if(_0xdcbed5===_0x2a96d9)break;else _0x33a7da['push'](_0x33a7da['shift']());}catch(_0x1cfb95){_0x33a7da['push'](_0x33a7da['shift']());}}}(a59_0x231e,0x52ea5));function a59_0x231e(){const _0x59ce67=['description','8861470tCnsaF','1164wsgsAn','role','2069BNChhZ','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','build','819350IGXJGq','490qfXLAP','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','/client/permit/user-role/update-user-list','warnings','3593796XEIQhB','2037765AQiYrk','4208808QJxhoq','5751NpTbNI','POST','Preview:\x20remove\x20runtime\x20role\x20member','appCode','9GcjRPp','roleList','after','high-risk-write','shouldWrite','user-remove','userId'];a59_0x231e=function(){return _0x59ce67;};return a59_0x231e();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a59_0x2b06(_0x53a2a1,_0x4a4413){_0x53a2a1=_0x53a2a1-0xbe;const _0x231e60=a59_0x231e();let _0x2b06c7=_0x231e60[_0x53a2a1];return _0x2b06c7;}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a59_0x20cfe8(0xd7),'command':'user-remove','description':a59_0x20cfe8(0xc3),'risk':a59_0x20cfe8(0xd0),'confirmationDescription':a59_0x20cfe8(0xbf),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x471039){const _0x5522e5=a59_0x20cfe8,_0x58d57a=await prepareRuntimeMemberMutation(_0x471039,_0x5522e5(0xd2));return dryRun(_0x5522e5(0xca),_0x5522e5(0xc4))['body']({'appCode':_0x471039[_0x5522e5(0xcc)],'roleList':_0x58d57a['roleList']})[_0x5522e5(0xd4)](_0x58d57a[_0x5522e5(0xd1)]?_0x5522e5(0xcb):_0x58d57a[_0x5522e5(0xc5)][0x0])[_0x5522e5(0xc0)]();},async 'execute'(_0x41836d){const _0x2ef07a=a59_0x20cfe8,_0x5976fb=await prepareRuntimeMemberMutation(_0x41836d,_0x2ef07a(0xd2));return _0x5976fb[_0x2ef07a(0xd1)]&&await updateRuntimeRoleUsers(_0x41836d[_0x2ef07a(0xcc)],_0x5976fb[_0x2ef07a(0xce)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x2ef07a(0xd2),{'roleId':_0x5976fb[_0x2ef07a(0xd7)]['id'],'userId':_0x5976fb[_0x2ef07a(0xd3)]},_0x5976fb['before'],_0x5976fb[_0x2ef07a(0xcf)],{'method':'POST','path':_0x2ef07a(0xc4)},_0x5976fb[_0x2ef07a(0xc5)])};}};
@@ -1 +1 @@
1
- const a60_0x13b800=a60_0xc906;(function(_0x3d74e2,_0x72ad8d){const _0x476cfb=a60_0xc906,_0x3f79e1=_0x3d74e2();while(!![]){try{const _0x74640f=-parseInt(_0x476cfb(0xc7))/0x1*(parseInt(_0x476cfb(0xc6))/0x2)+-parseInt(_0x476cfb(0x94))/0x3*(-parseInt(_0x476cfb(0xaf))/0x4)+-parseInt(_0x476cfb(0xb6))/0x5*(parseInt(_0x476cfb(0xb3))/0x6)+parseInt(_0x476cfb(0xcf))/0x7*(parseInt(_0x476cfb(0xd1))/0x8)+parseInt(_0x476cfb(0xa0))/0x9+-parseInt(_0x476cfb(0x9d))/0xa*(parseInt(_0x476cfb(0xb5))/0xb)+parseInt(_0x476cfb(0xc9))/0xc*(parseInt(_0x476cfb(0x92))/0xd);if(_0x74640f===_0x72ad8d)break;else _0x3f79e1['push'](_0x3f79e1['shift']());}catch(_0x36ab5a){_0x3f79e1['push'](_0x3f79e1['shift']());}}}(a60_0x4c7a,0x537f3));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';function a60_0xc906(_0x42a553,_0xc35142){_0x42a553=_0x42a553-0x8e;const _0x4c7af4=a60_0x4c7a();let _0xc9062e=_0x4c7af4[_0x42a553];return _0xc9062e;}import{CliErrors}from'../../errors.js';function a60_0x4c7a(){const _0x25d13f=['\x20schedule\x20','Show\x20one\x20schedule\x20by\x20schedule\x20ID','read','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','642844dYjMVc','1WhVwAK','run','696vMKCRU','validate','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','build','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','appCode','7mtizwt','UTC','450808MmXnAU','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','trim','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','model','detail','title','deepseek-v4-pro-0813','cron','isSafeInteger','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','str','100581iguHPL','limit','135tIDUsA','ONCE','scheduleId','kind','Schedule\x20title','POST','Preview:\x20run\x20schedule\x20','high-risk-write','create','2490iWPiHp','taskId','schedule','2165544nwaofP','list','DELETE','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','cursor','string','Deleted\x20schedule\x20','\x20from\x20schedule\x20','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','body','schedule-id','deepseek-v4-flash-0731','\x20immediately','validation','CRON','60468FMiPYv','Created\x20','Schedule\x20UUID','length','60bbStNo','--title\x20must\x20not\x20be\x20blank.','9097UDSuky','278315oMqJuH','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Preview:\x20create\x20an\x20Agent\x20schedule','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','prompt','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','description','num','kimi/k3'];a60_0x4c7a=function(){return _0x25d13f;};return a60_0x4c7a();}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':a60_0x13b800(0x97),'type':a60_0x13b800(0xa5),'required':!![],'enum':[a60_0x13b800(0xae),a60_0x13b800(0x95)],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':a60_0x13b800(0x8e),'type':a60_0x13b800(0xa5),'description':a60_0x13b800(0xcd)},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a60_0x13b800(0xa5),'description':a60_0x13b800(0xa8)},TITLE_FLAG={'name':a60_0x13b800(0xd7),'type':a60_0x13b800(0xa5),'required':!![],'description':a60_0x13b800(0x98)},PROMPT_FLAG={'name':a60_0x13b800(0xbc),'type':a60_0x13b800(0xa5),'required':!![],'description':a60_0x13b800(0xbb)},MODEL_FLAG={'name':a60_0x13b800(0xd5),'type':a60_0x13b800(0xa5),'enum':[a60_0x13b800(0xc1),a60_0x13b800(0xab),a60_0x13b800(0xd8)],'default':a60_0x13b800(0xab),'description':a60_0x13b800(0xb9)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a60_0x13b800(0xa5),'required':!![],'description':a60_0x13b800(0xb1),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a60_0x13b800(0x93),'type':'number','default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a60_0x13b800(0xa4),'type':a60_0x13b800(0xa5),'description':a60_0x13b800(0xd2)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x4d174a){const _0xe1e0be=a60_0x13b800,_0x5506ad=_0x4d174a['str'](_0xe1e0be(0x97)),_0x2c0abd=_0x4d174a[_0xe1e0be(0x91)]('title')['trim'](),_0x32d5e8=_0x4d174a[_0xe1e0be(0x91)](_0xe1e0be(0xbc))[_0xe1e0be(0xd3)](),_0x342e51=_0x4d174a[_0xe1e0be(0x91)](_0xe1e0be(0xd5)),_0x420af6=_0x4d174a[_0xe1e0be(0x91)](_0xe1e0be(0x8e)),_0x49db1f=_0x4d174a[_0xe1e0be(0x91)]('scheduled-at');if(!_0x2c0abd)throw CliErrors[_0xe1e0be(0xad)](_0xe1e0be(0xb4));if(!_0x32d5e8)throw CliErrors[_0xe1e0be(0xad)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x5506ad===_0xe1e0be(0xae)){if(!_0x420af6||_0x49db1f)throw CliErrors[_0xe1e0be(0xad)](_0xe1e0be(0xcb));return{'kind':_0x5506ad,'timezone':_0xe1e0be(0xd0),'cron':_0x420af6,'title':_0x2c0abd,'prompt':_0x32d5e8,'model':_0x342e51};}if(_0x5506ad===_0xe1e0be(0x95)){if(!_0x49db1f||_0x420af6)throw CliErrors[_0xe1e0be(0xad)](_0xe1e0be(0xb8));return{'kind':_0x5506ad,'timezone':'UTC','scheduledAt':_0x49db1f,'title':_0x2c0abd,'prompt':_0x32d5e8,'model':_0x342e51};}throw CliErrors['validation'](_0xe1e0be(0xd4));}function scheduleCollectionPath(_0x4d3043){return'/api/harness/apps/'+encodeURIComponent(_0x4d3043)+'/schedules';}function scheduleItemPath(_0x5d1e2c,_0x225cfc){return scheduleCollectionPath(_0x5d1e2c)+'/'+encodeURIComponent(_0x225cfc);}const scheduleValidate={'service':'schedule','command':a60_0x13b800(0xca),'description':a60_0x13b800(0xc5),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x22ea78){readScheduleInput(_0x22ea78);},async 'execute'(_0x60dcc7){const _0x53282d=a60_0x13b800,_0x32d124=readScheduleInput(_0x60dcc7),_0x4f71ae=await validateRuntimeSchedule(_0x60dcc7[_0x53282d(0xce)],_0x32d124);return{'ok':!![],'data':_0x4f71ae,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':'schedule','command':a60_0x13b800(0x9c),'description':a60_0x13b800(0x90),'risk':a60_0x13b800(0x9b),'confirmationDescription':'Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','flags':INPUT_FLAGS,async 'validate'(_0x53d20b){readScheduleInput(_0x53d20b);},async 'execute'(_0x57720b){const _0x279857=a60_0x13b800,_0x19a32d=readScheduleInput(_0x57720b),_0x48f08e=await validateRuntimeSchedule(_0x57720b[_0x279857(0xce)],_0x19a32d),_0x2da404=await createRuntimeSchedule(_0x57720b[_0x279857(0xce)],_0x48f08e);return{'ok':!![],'data':_0x2da404,'message':_0x279857(0xb0)+_0x2da404['kind']+_0x279857(0xc2)+_0x2da404[_0x279857(0x96)]};},async 'dryRun'(_0x29f459){const _0x3a6496=a60_0x13b800,_0x2e0318=readScheduleInput(_0x29f459);return dryRun(_0x3a6496(0x99),scheduleCollectionPath(_0x29f459[_0x3a6496(0xce)]))[_0x3a6496(0xa9)](_0x2e0318)[_0x3a6496(0xbf)](_0x3a6496(0xba))[_0x3a6496(0xcc)]();}},scheduleList={'service':a60_0x13b800(0x9f),'command':a60_0x13b800(0xa1),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a60_0x13b800(0xc4),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3d76fd){const _0x5c2843=a60_0x13b800,_0x448065=_0x3d76fd[_0x5c2843(0xc0)](_0x5c2843(0x93));if(!Number[_0x5c2843(0x8f)](_0x448065)||_0x448065<0x1||_0x448065>0x64)throw CliErrors[_0x5c2843(0xad)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x20f43a=_0x3d76fd[_0x5c2843(0x91)](_0x5c2843(0xa4));if(_0x20f43a&&(_0x20f43a[_0x5c2843(0xb2)]>0x400||_0x20f43a[_0x5c2843(0xd3)]()!==_0x20f43a))throw CliErrors['validation'](_0x5c2843(0xbe));},async 'execute'(_0x5bba0d){const _0x49d999=a60_0x13b800,_0x1bfb2c=_0x5bba0d[_0x49d999(0x91)](_0x49d999(0xa4)),_0x3057e4=await listRuntimeSchedules(_0x5bba0d[_0x49d999(0xce)],{'kind':_0x5bba0d[_0x49d999(0x91)](_0x49d999(0x97)),'limit':_0x5bba0d[_0x49d999(0xc0)](_0x49d999(0x93)),..._0x1bfb2c?{'cursor':_0x1bfb2c}:{}});return{'ok':!![],'data':_0x3057e4};}},scheduleDetail={'service':a60_0x13b800(0x9f),'command':a60_0x13b800(0xd6),'description':a60_0x13b800(0xc3),'risk':a60_0x13b800(0xc4),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x454bb2){const _0x2a9c9a=a60_0x13b800,_0x2c9a22=await getRuntimeSchedule(_0x454bb2[_0x2a9c9a(0xce)],_0x454bb2[_0x2a9c9a(0x91)](_0x2a9c9a(0xaa)));return{'ok':!![],'data':_0x2c9a22};}},scheduleRun={'service':'schedule','command':a60_0x13b800(0xc8),'description':a60_0x13b800(0xb7),'risk':a60_0x13b800(0x9b),'confirmationDescription':a60_0x13b800(0xa3),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x4b7f8f){const _0x4af613=a60_0x13b800,_0x185d8c=_0x4b7f8f[_0x4af613(0x91)](_0x4af613(0xaa)),_0x3f0dfa=await runRuntimeSchedule(_0x4b7f8f['appCode'],_0x185d8c);return{'ok':!![],'data':_0x3f0dfa,'message':'Queued\x20Task\x20'+_0x3f0dfa[_0x4af613(0x9e)]+_0x4af613(0xa7)+_0x185d8c};},async 'dryRun'(_0x4b9a33){const _0x4a1f50=a60_0x13b800,_0x1972e8=_0x4b9a33[_0x4a1f50(0x91)](_0x4a1f50(0xaa));return dryRun(_0x4a1f50(0x99),scheduleItemPath(_0x4b9a33[_0x4a1f50(0xce)],_0x1972e8)+'/run')[_0x4a1f50(0xbf)](_0x4a1f50(0x9a)+_0x1972e8+_0x4a1f50(0xac))[_0x4a1f50(0xcc)]();}},scheduleDelete={'service':a60_0x13b800(0x9f),'command':'delete','description':a60_0x13b800(0xbd),'risk':a60_0x13b800(0x9b),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5b5b20){const _0x3c6ec3=a60_0x13b800,_0x17b44c=_0x5b5b20[_0x3c6ec3(0x91)](_0x3c6ec3(0xaa)),_0x432f0d=await deleteRuntimeSchedule(_0x5b5b20[_0x3c6ec3(0xce)],_0x17b44c);return{'ok':!![],'data':_0x432f0d,'message':_0x3c6ec3(0xa6)+_0x17b44c};},async 'dryRun'(_0x4dcb39){const _0x5ec9de=a60_0x13b800,_0x5db79a=_0x4dcb39[_0x5ec9de(0x91)](_0x5ec9de(0xaa));return dryRun(_0x5ec9de(0xa2),scheduleItemPath(_0x4dcb39[_0x5ec9de(0xce)],_0x5db79a))[_0x5ec9de(0xbf)]('Preview:\x20delete\x20schedule\x20'+_0x5db79a)[_0x5ec9de(0xcc)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a60_0x532a0f=a60_0x1423;(function(_0x56d215,_0x1e32ec){const _0x32ef27=a60_0x1423,_0x5b3897=_0x56d215();while(!![]){try{const _0x1b12dd=-parseInt(_0x32ef27(0x1a7))/0x1*(-parseInt(_0x32ef27(0x186))/0x2)+parseInt(_0x32ef27(0x185))/0x3+parseInt(_0x32ef27(0x199))/0x4*(-parseInt(_0x32ef27(0x1bd))/0x5)+-parseInt(_0x32ef27(0x19f))/0x6*(-parseInt(_0x32ef27(0x1c3))/0x7)+parseInt(_0x32ef27(0x187))/0x8+-parseInt(_0x32ef27(0x1bc))/0x9*(-parseInt(_0x32ef27(0x1c7))/0xa)+parseInt(_0x32ef27(0x1b8))/0xb*(-parseInt(_0x32ef27(0x1c6))/0xc);if(_0x1b12dd===_0x1e32ec)break;else _0x5b3897['push'](_0x5b3897['shift']());}catch(_0x105700){_0x5b3897['push'](_0x5b3897['shift']());}}}(a60_0x4a56,0x2196d));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':a60_0x532a0f(0x18f),'type':'string','required':!![],'enum':[a60_0x532a0f(0x1bb),a60_0x532a0f(0x184)],'description':a60_0x532a0f(0x1c1)},CRON_FLAG={'name':'cron','type':'string','description':a60_0x532a0f(0x197)},SCHEDULED_AT_FLAG={'name':a60_0x532a0f(0x198),'type':a60_0x532a0f(0x1a8),'description':a60_0x532a0f(0x1ad)},TITLE_FLAG={'name':a60_0x532a0f(0x1a4),'type':a60_0x532a0f(0x1a8),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':a60_0x532a0f(0x194),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a60_0x532a0f(0x1b5),'type':a60_0x532a0f(0x1a8),'enum':[a60_0x532a0f(0x1be),'deepseek-v4-flash-0731',a60_0x532a0f(0x1b6)],'default':a60_0x532a0f(0x19b),'description':a60_0x532a0f(0x196)},SCHEDULE_ID_FLAG={'name':a60_0x532a0f(0x1b3),'type':'string','required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x532a0f(0x18b)}},LIMIT_FLAG={'name':a60_0x532a0f(0x1ac),'type':a60_0x532a0f(0x1ab),'default':0x14,'description':a60_0x532a0f(0x1a0)},CURSOR_FLAG={'name':a60_0x532a0f(0x188),'type':a60_0x532a0f(0x1a8),'description':a60_0x532a0f(0x19d)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x4a9e77){const _0x2a0ad9=a60_0x532a0f,_0x46599f=_0x4a9e77['str'](_0x2a0ad9(0x18f)),_0x4bb315=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x1a4))[_0x2a0ad9(0x1a6)](),_0x2a4455=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x194))['trim'](),_0xf10420=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x1b5)),_0x236aec=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x1c8)),_0x5bf53b=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x198));if(!_0x4bb315)throw CliErrors[_0x2a0ad9(0x1c9)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x2a4455)throw CliErrors[_0x2a0ad9(0x1c9)](_0x2a0ad9(0x1ae));if(_0x46599f===_0x2a0ad9(0x1bb)){if(!_0x236aec||_0x5bf53b)throw CliErrors[_0x2a0ad9(0x1c9)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x46599f,'timezone':_0x2a0ad9(0x18a),'cron':_0x236aec,'title':_0x4bb315,'prompt':_0x2a4455,'model':_0xf10420};}if(_0x46599f===_0x2a0ad9(0x184)){if(!_0x5bf53b||_0x236aec)throw CliErrors[_0x2a0ad9(0x1c9)]('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x46599f,'timezone':_0x2a0ad9(0x18a),'scheduledAt':_0x5bf53b,'title':_0x4bb315,'prompt':_0x2a4455,'model':_0xf10420};}throw CliErrors['validation']('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x543e2f){const _0xb036fb=a60_0x532a0f;return _0xb036fb(0x192)+encodeURIComponent(_0x543e2f)+'/schedules';}function scheduleItemPath(_0x1a76c3,_0x468c89){return scheduleCollectionPath(_0x1a76c3)+'/'+encodeURIComponent(_0x468c89);}function a60_0x1423(_0x2997da,_0xb77524){_0x2997da=_0x2997da-0x182;const _0x4a568f=a60_0x4a56();let _0x1423ef=_0x4a568f[_0x2997da];return _0x1423ef;}const scheduleValidate={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1b2),'description':a60_0x532a0f(0x1ba),'risk':a60_0x532a0f(0x1b4),'flags':INPUT_FLAGS,async 'validate'(_0x3c4bd5){readScheduleInput(_0x3c4bd5);},async 'execute'(_0xa04b15){const _0x2bbb32=a60_0x532a0f,_0x5e1dd7=readScheduleInput(_0xa04b15),_0x2e7efd=await validateRuntimeSchedule(_0xa04b15['appCode'],_0x5e1dd7);return{'ok':!![],'data':_0x2e7efd,'message':_0x2bbb32(0x18c)};}},scheduleCreate={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1b1),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a60_0x532a0f(0x18d),'confirmationDescription':a60_0x532a0f(0x19c),'flags':INPUT_FLAGS,async 'validate'(_0x2a394f){readScheduleInput(_0x2a394f);},async 'execute'(_0x51620d){const _0x251e7b=a60_0x532a0f,_0x9329dc=readScheduleInput(_0x51620d),_0x46a541=await validateRuntimeSchedule(_0x51620d[_0x251e7b(0x1a3)],_0x9329dc),_0x1d1cbc=await createRuntimeSchedule(_0x51620d[_0x251e7b(0x1a3)],_0x46a541);return{'ok':!![],'data':_0x1d1cbc,'message':'Created\x20'+_0x1d1cbc[_0x251e7b(0x18f)]+_0x251e7b(0x1a1)+_0x1d1cbc[_0x251e7b(0x183)]};},async 'dryRun'(_0x19bf73){const _0x47549c=a60_0x532a0f,_0x4290fc=readScheduleInput(_0x19bf73);return dryRun(_0x47549c(0x1c5),scheduleCollectionPath(_0x19bf73[_0x47549c(0x1a3)]))[_0x47549c(0x189)](_0x4290fc)['description'](_0x47549c(0x1a5))[_0x47549c(0x1bf)]();}},scheduleList={'service':a60_0x532a0f(0x195),'command':'list','description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x48bc7b){const _0x587ca3=a60_0x532a0f,_0x33912e=_0x48bc7b[_0x587ca3(0x193)](_0x587ca3(0x1ac));if(!Number['isSafeInteger'](_0x33912e)||_0x33912e<0x1||_0x33912e>0x64)throw CliErrors[_0x587ca3(0x1c9)](_0x587ca3(0x1aa));const _0x4feb66=_0x48bc7b[_0x587ca3(0x1b0)](_0x587ca3(0x188));if(_0x4feb66&&(_0x4feb66['length']>0x400||_0x4feb66[_0x587ca3(0x1a6)]()!==_0x4feb66))throw CliErrors[_0x587ca3(0x1c9)](_0x587ca3(0x190));},async 'execute'(_0x41cf12){const _0x18dd21=a60_0x532a0f,_0x1113c3=_0x41cf12[_0x18dd21(0x1b0)]('cursor'),_0x487b52=await listRuntimeSchedules(_0x41cf12[_0x18dd21(0x1a3)],{'kind':_0x41cf12[_0x18dd21(0x1b0)](_0x18dd21(0x18f)),'limit':_0x41cf12[_0x18dd21(0x193)](_0x18dd21(0x1ac)),..._0x1113c3?{'cursor':_0x1113c3}:{}});return{'ok':!![],'data':_0x487b52};}},scheduleDetail={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x18e),'description':a60_0x532a0f(0x1c4),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3f7985){const _0x17793c=a60_0x532a0f,_0x5e0faa=await getRuntimeSchedule(_0x3f7985[_0x17793c(0x1a3)],_0x3f7985[_0x17793c(0x1b0)](_0x17793c(0x1b3)));return{'ok':!![],'data':_0x5e0faa};}},scheduleRun={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1b7),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':'high-risk-write','confirmationDescription':a60_0x532a0f(0x1b9),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xbc40c7){const _0x475dd7=a60_0x532a0f,_0x10043a=_0xbc40c7[_0x475dd7(0x1b0)]('schedule-id'),_0x41c35d=await runRuntimeSchedule(_0xbc40c7[_0x475dd7(0x1a3)],_0x10043a);return{'ok':!![],'data':_0x41c35d,'message':_0x475dd7(0x1c0)+_0x41c35d[_0x475dd7(0x19a)]+_0x475dd7(0x19e)+_0x10043a};},async 'dryRun'(_0x2021e3){const _0x2057bb=a60_0x532a0f,_0xe205=_0x2021e3[_0x2057bb(0x1b0)]('schedule-id');return dryRun(_0x2057bb(0x1c5),scheduleItemPath(_0x2021e3['appCode'],_0xe205)+_0x2057bb(0x1c2))[_0x2057bb(0x1a9)](_0x2057bb(0x1a2)+_0xe205+_0x2057bb(0x1ca))['build']();}},scheduleDelete={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1af),'description':'Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','risk':a60_0x532a0f(0x18d),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x294ff7){const _0x38a19e=a60_0x532a0f,_0x371ab5=_0x294ff7[_0x38a19e(0x1b0)]('schedule-id'),_0x3181fe=await deleteRuntimeSchedule(_0x294ff7[_0x38a19e(0x1a3)],_0x371ab5);return{'ok':!![],'data':_0x3181fe,'message':'Deleted\x20schedule\x20'+_0x371ab5};},async 'dryRun'(_0x7d45b6){const _0xc541f8=a60_0x532a0f,_0x52e313=_0x7d45b6[_0xc541f8(0x1b0)](_0xc541f8(0x1b3));return dryRun(_0xc541f8(0x182),scheduleItemPath(_0x7d45b6[_0xc541f8(0x1a3)],_0x52e313))[_0xc541f8(0x1a9)](_0xc541f8(0x191)+_0x52e313)[_0xc541f8(0x1bf)]();}};function a60_0x4a56(){const _0x58e1fe=['POST','12CVmJik','45930JjtKDq','cron','validation','\x20immediately','DELETE','scheduleId','ONCE','569517XWunnv','86VgCLAc','393080ccIfqO','cursor','body','UTC','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Schedule\x20input\x20is\x20valid','high-risk-write','detail','kind','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Preview:\x20delete\x20schedule\x20','/api/harness/apps/','num','prompt','schedule','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','scheduled-at','10004fTomzL','taskId','deepseek-v4-flash-0731','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','\x20from\x20schedule\x20','999678UskeTi','Page\x20size\x20from\x201\x20to\x20100','\x20schedule\x20','Preview:\x20run\x20schedule\x20','appCode','title','Preview:\x20create\x20an\x20Agent\x20schedule','trim','1921BSqERe','string','description','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','number','limit','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','--prompt\x20must\x20not\x20be\x20blank.','delete','str','create','validate','schedule-id','read','model','deepseek-v4-pro-0813','run','5387437qhbsYe','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','CRON','405cTucKu','135TtDOcp','kimi/k3','build','Queued\x20Task\x20','Schedule\x20kind:\x20CRON\x20or\x20ONCE','/run','7vvpOvQ','Show\x20one\x20schedule\x20by\x20schedule\x20ID'];a60_0x4a56=function(){return _0x58e1fe;};return a60_0x4a56();}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a61_0x34b6ec=a61_0x2a96;function a61_0x2a96(_0x30398c,_0x266861){_0x30398c=_0x30398c-0x154;const _0x3b5cd4=a61_0x3b5c();let _0x2a969b=_0x3b5cd4[_0x30398c];return _0x2a969b;}(function(_0x2f64a2,_0x4914b5){const _0x3e94d6=a61_0x2a96,_0x48cd7c=_0x2f64a2();while(!![]){try{const _0x140ff2=parseInt(_0x3e94d6(0x158))/0x1*(-parseInt(_0x3e94d6(0x154))/0x2)+-parseInt(_0x3e94d6(0x157))/0x3*(-parseInt(_0x3e94d6(0x15d))/0x4)+parseInt(_0x3e94d6(0x15c))/0x5*(-parseInt(_0x3e94d6(0x15b))/0x6)+parseInt(_0x3e94d6(0x156))/0x7+-parseInt(_0x3e94d6(0x15a))/0x8+-parseInt(_0x3e94d6(0x15e))/0x9*(parseInt(_0x3e94d6(0x159))/0xa)+parseInt(_0x3e94d6(0x15f))/0xb;if(_0x140ff2===_0x4914b5)break;else _0x48cd7c['push'](_0x48cd7c['shift']());}catch(_0x7e011e){_0x48cd7c['push'](_0x48cd7c['shift']());}}}(a61_0x3b5c,0xc8988));function a61_0x3b5c(){const _0x1536b9=['4LUShOp','82791HmDRkn','32017612zfrVzG','433064oTFYPB','schema','2067324ihzdIe','2349261oOkJeg','4eNfpMm','860YpfzZx','11056504GvhiBq','768996XOZhgq','5ITxGBp'];a61_0x3b5c=function(){return _0x1536b9;};return a61_0x3b5c();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x7b753d){const _0x20cd06=await buildSchemaPayload();return{'ok':!![],'data':_0x20cd06};}export const schemaDefinition={'service':a61_0x34b6ec(0x155),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a61_0x1b1f8c=a61_0x15b2;function a61_0x15b2(_0x4a76c1,_0x2d5a88){_0x4a76c1=_0x4a76c1-0xe7;const _0x2d839b=a61_0x2d83();let _0x15b2ed=_0x2d839b[_0x4a76c1];return _0x15b2ed;}(function(_0x3683d3,_0x46c177){const _0x4e3331=a61_0x15b2,_0x3b7cef=_0x3683d3();while(!![]){try{const _0x191604=-parseInt(_0x4e3331(0xec))/0x1+parseInt(_0x4e3331(0xeb))/0x2*(parseInt(_0x4e3331(0xf0))/0x3)+parseInt(_0x4e3331(0xee))/0x4*(-parseInt(_0x4e3331(0xe8))/0x5)+parseInt(_0x4e3331(0xf6))/0x6+parseInt(_0x4e3331(0xf1))/0x7*(parseInt(_0x4e3331(0xed))/0x8)+parseInt(_0x4e3331(0xf3))/0x9*(-parseInt(_0x4e3331(0xe9))/0xa)+parseInt(_0x4e3331(0xe7))/0xb*(parseInt(_0x4e3331(0xf4))/0xc);if(_0x191604===_0x46c177)break;else _0x3b7cef['push'](_0x3b7cef['shift']());}catch(_0x5e0489){_0x3b7cef['push'](_0x3b7cef['shift']());}}}(a61_0x2d83,0xf01d6));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x152ab4){const _0x143b28=await buildSchemaPayload();return{'ok':!![],'data':_0x143b28};}export const schemaDefinition={'service':a61_0x1b1f8c(0xea),'command':a61_0x1b1f8c(0xf2),'description':a61_0x1b1f8c(0xf5),'risk':a61_0x1b1f8c(0xef),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a61_0x2d83(){const _0x4a9275=['6111LvpPDQ','22224IsTYNZ','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2624928FhCAkT','16588AQaaFY','3880zSvjmY','8600xLHgIu','schema','4cuERFs','619770eHYSBB','8BrvVwS','7708qJgLJj','read','343452rjBmhc','1563100hLWzTS','export'];a61_0x2d83=function(){return _0x4a9275;};return a61_0x2d83();}
@@ -1 +1 @@
1
- function a62_0x1ba8(_0x439fe2,_0x29a894){_0x439fe2=_0x439fe2-0xba;const _0x52bf8a=a62_0x52bf();let _0x1ba829=_0x52bf8a[_0x439fe2];return _0x1ba829;}function a62_0x52bf(){const _0x4ccb6d=['description','remainingArgs','nickname','cliPath','sqlCode','16ImSmJH','command','1393860vrGrsN','rawFlags','cliName','operator','\x20\x20[','mapTo','Cannot\x20resolve\x20datatable\x20\x22','ctx.','177600gpkgLq','\x20\x20\x20\x20kind:\x20\x20\x20\x20','tableName','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','read','312390rEBetf','Service\x20command\x20','enum','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','map','args','\x20\x20\x20\x20datasetCode:\x20','\x20\x20\x20\x20sqlCode:\x20','appRef','flags','slice','\x20requires\x20target.functionName.','scriptName','string','18ZYKGTF','\x20<command>\x20[flags]','params','context.','boolean','\x20\x20\x20\x20functionName:\x20','bff','code','loginName','kind','\x20\x20SERVICE\x20TREE\x20TARGET','1474240FirtII','appcode','userId','validation','startsWith','326055Kdwaqr','datasetCode','SERVICE_TREE','\x22.\x20','app','fullPath','some','join','\x20service\x20detail\x20--service\x20','fromEntries','tree','default','userName','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','sql','\x20\x20\x20\x20datatable:\x20','\x20->\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','service','`\x20to\x20inspect\x20the\x20manifest.','Commands:','employeeId','appBindings','nickName','normalizedManifest','length','find','name','json','tenantCode','bffCode','399522TgRwcF','high-risk-write','target','Run\x20service\x20command\x20','commands','\x20\x20MAP\x20TO','1125901daaIVR','envName','push','bffId','entries','appCode','source','filter','type','\x20completed\x20in\x20','1gGRDVT','Use\x20`','risk','datatable','env','number'];a62_0x52bf=function(){return _0x4ccb6d;};return a62_0x52bf();}(function(_0x21bf8b,_0x3fd6a0){const _0x4b5e65=a62_0x1ba8,_0x5b72e2=_0x21bf8b();while(!![]){try{const _0x5810b3=parseInt(_0x4b5e65(0xe4))/0x1*(-parseInt(_0x4b5e65(0xd4))/0x2)+parseInt(_0x4b5e65(0x11c))/0x3+-parseInt(_0x4b5e65(0xf9))/0x4+parseInt(_0x4b5e65(0x117))/0x5+parseInt(_0x4b5e65(0xfe))/0x6+-parseInt(_0x4b5e65(0xda))/0x7*(parseInt(_0x4b5e65(0xef))/0x8)+parseInt(_0x4b5e65(0x10c))/0x9*(parseInt(_0x4b5e65(0xf1))/0xa);if(_0x5810b3===_0x3fd6a0)break;else _0x5b72e2['push'](_0x5b72e2['shift']());}catch(_0x12b469){_0x5b72e2['push'](_0x5b72e2['shift']());}}}(a62_0x52bf,0x2924b));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(_0x573db2,_0x3e07f6){const _0x544e2d=a62_0x1ba8,_0x4f01f1=listLocalServiceTrees();let _0x1cdb4f;for(const _0x446376 of _0x4f01f1){const _0x528bba=matchServiceTreeCommand(_0x446376,_0x573db2);if(!_0x528bba)continue;(!_0x1cdb4f||_0x528bba[_0x544e2d(0xf0)][_0x544e2d(0xba)][_0x544e2d(0xce)]>_0x1cdb4f[_0x544e2d(0xf0)][_0x544e2d(0xba)][_0x544e2d(0xce)])&&(_0x1cdb4f={'tree':_0x446376,'command':_0x528bba[_0x544e2d(0xf0)],'remainingArgs':_0x528bba[_0x544e2d(0xeb)]});}if(!_0x1cdb4f)return undefined;const _0x3478b4={..._0x3e07f6};return applyAppBinding(_0x1cdb4f[_0x544e2d(0xbf)],_0x1cdb4f[_0x544e2d(0xf0)],_0x3478b4),{'definition':buildDynamicCommandDefinition(_0x1cdb4f['tree'],_0x1cdb4f['command']),'args':_0x1cdb4f[_0x544e2d(0xeb)],'flags':_0x3478b4,'tree':_0x1cdb4f[_0x544e2d(0xbf)],'command':_0x1cdb4f[_0x544e2d(0xf0)]};}export function generateDynamicServiceHelp(_0x5d9a42){const _0x5d59b6=a62_0x1ba8,_0x34571c=listLocalServiceTrees()[_0x5d59b6(0xcf)](_0x2c7dcd=>_0x2c7dcd[_0x5d59b6(0xc7)][_0x5d59b6(0x113)]===_0x5d9a42);if(!_0x34571c)return undefined;const _0x5443f2=[CLI_BIN_NAME+'\x20'+_0x5d9a42+_0x5d59b6(0x10d),'',_0x34571c[_0x5d59b6(0xc7)]['name']||_0x5d9a42,_0x34571c['service'][_0x5d59b6(0xea)]?'\x20\x20'+_0x34571c[_0x5d59b6(0xc7)][_0x5d59b6(0xea)]:'','',_0x5d59b6(0xc9),..._0x34571c[_0x5d59b6(0xd8)][_0x5d59b6(0x102)](_0x1fdbe4=>{const _0x3275ee=_0x5d59b6,_0x5cfc61=_0x1fdbe4[_0x3275ee(0xba)]['slice'](0x1)[_0x3275ee(0xbc)]('\x20'),_0xc5931=_0x1fdbe4['risk']===_0x3275ee(0xfd)?'':'\x20['+_0x1fdbe4['risk']+']';return'\x20\x20'+_0x5cfc61['padEnd'](0x18)+'\x20'+(_0x1fdbe4[_0x3275ee(0xea)]||'')+_0xc5931;}),'',_0x5d59b6(0xe5)+CLI_BIN_NAME+_0x5d59b6(0xbd)+_0x5d9a42+_0x5d59b6(0xc8)]['filter'](Boolean);return _0x5443f2[_0x5d59b6(0xbc)]('\x0a');}export function listDynamicServiceEntries(){const _0x1f509f=a62_0x1ba8;return listLocalServices()[_0x1f509f(0x102)](_0x36f7d5=>{const _0x3027ea=_0x1f509f,_0x58b3af=_0x36f7d5[_0x3027ea(0xcd)];return{'service':_0x58b3af[_0x3027ea(0xc7)][_0x3027ea(0x113)],'label':_0x58b3af[_0x3027ea(0xc7)]['name']||_0x58b3af[_0x3027ea(0xc7)][_0x3027ea(0x113)],'commands':_0x58b3af[_0x3027ea(0xd8)][_0x3027ea(0x102)](_0x2ef983=>({'command':dynamicCommandName(_0x2ef983),'description':_0x2ef983[_0x3027ea(0xea)]||_0x3027ea(0xd7)+_0x2ef983['cliPath'],'tag':riskTag(_0x2ef983[_0x3027ea(0xe6)])}))};});}export function getDynamicServiceEntry(_0x11fb71){const _0x48f27f=a62_0x1ba8;return listDynamicServiceEntries()[_0x48f27f(0xcf)](_0x1a7fd3=>_0x1a7fd3[_0x48f27f(0xc7)]===_0x11fb71);}export function listDynamicServiceDefinitions(_0x31852f){const _0x4d2ceb=a62_0x1ba8;return listLocalServiceTrees()[_0x4d2ceb(0xe1)](_0x17786a=>!_0x31852f||_0x17786a[_0x4d2ceb(0xc7)]['code']===_0x31852f)['flatMap'](_0x52c09b=>_0x52c09b[_0x4d2ceb(0xd8)][_0x4d2ceb(0x102)](_0x2a77aa=>buildDynamicCommandDefinition(_0x52c09b,_0x2a77aa)));}export function getDynamicServiceDefinitions(_0x2b243f){const _0x29e570=a62_0x1ba8,_0x4ac4c7=listDynamicServiceDefinitions(_0x2b243f);return _0x4ac4c7[_0x29e570(0xce)]>0x0?_0x4ac4c7:undefined;}export function findDynamicServiceDefinition(_0x56978a,_0x3722c7){const _0x361dbf=a62_0x1ba8;return listDynamicServiceDefinitions(_0x56978a)['find'](_0x4abcb8=>_0x4abcb8[_0x361dbf(0xf0)]===_0x3722c7);}export function buildDynamicCommandDefinition(_0x462dbd,_0x133bd9){const _0x25dbe4=a62_0x1ba8;return{'service':_0x462dbd['service']['code'],'command':dynamicCommandName(_0x133bd9),'description':_0x133bd9[_0x25dbe4(0xea)]||_0x25dbe4(0xd7)+_0x133bd9[_0x25dbe4(0xed)],'risk':_0x133bd9['risk'],..._0x133bd9[_0x25dbe4(0xe6)]===_0x25dbe4(0xfd)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x133bd9)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x133bd9[_0x25dbe4(0x103)][_0x25dbe4(0x102)](_0x9801e1=>({'name':_0x9801e1[_0x25dbe4(0xd0)],'description':_0x9801e1['description']||_0x9801e1[_0x25dbe4(0xd0)],'required':_0x9801e1['required']})),'flags':_0x133bd9[_0x25dbe4(0x107)][_0x25dbe4(0x102)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x133bd9),async 'dryRun'(_0x245c70){const _0x150fe9=_0x25dbe4,_0x4ed791=await compilePlan(_0x133bd9,_0x245c70);return{'method':_0x150fe9(0x11e),'url':_0x133bd9['cliPath'],'body':{'target':targetPreview(_0x4ed791),'params':_0x4ed791[_0x150fe9(0x10e)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x133bd9[_0x150fe9(0xed)]};},async 'execute'(_0x3710c8){const _0x3380e6=_0x25dbe4,_0xe8add=await compilePlan(_0x133bd9,_0x3710c8),_0x2c42a0=Date['now'](),_0x39f583=await executePlan(_0xe8add,_0x133bd9,_0x3710c8),_0x2f8bb2=Date['now']()-_0x2c42a0;return{'ok':!![],'data':{'service':_0x462dbd[_0x3380e6(0xc7)],'command':_0x133bd9[_0x3380e6(0xed)],'target':targetPreview(_0xe8add),'result':_0x39f583,'elapsed':_0x2f8bb2},'message':_0x3380e6(0xff)+_0x133bd9[_0x3380e6(0xed)]+_0x3380e6(0xe3)+_0x2f8bb2+'ms'};}};}function buildDynamicConfirmationDescription(_0x53c452){const _0x1881d3=a62_0x1ba8,_0x5165f0=_0x53c452['description']||_0x53c452['cliPath'],_0x563cdb=_0x53c452['risk']===_0x1881d3(0xd5)?_0x1881d3(0x101):_0x1881d3(0xfc);return _0x1881d3(0xc6)+_0x5165f0+_0x1881d3(0x11f)+_0x563cdb;}function dynamicCommandName(_0x3225ab){const _0x1d794d=a62_0x1ba8;return _0x3225ab['fullPath'][_0x1d794d(0x108)](0x1)[_0x1d794d(0xbc)]('\x20');}function riskTag(_0x2f3fd4){const _0x4d68d3=a62_0x1ba8;return _0x2f3fd4===_0x4d68d3(0xfd)?'':_0x4d68d3(0xf5)+_0x2f3fd4+']';}function flagToCommandFlag(_0x2a06e0){const _0x4fbdb7=a62_0x1ba8;return{'name':_0x2a06e0[_0x4fbdb7(0xf3)],'type':_0x2a06e0[_0x4fbdb7(0xe2)]===_0x4fbdb7(0xd1)?'string':_0x2a06e0[_0x4fbdb7(0xe2)],'description':_0x2a06e0[_0x4fbdb7(0xea)]||_0x2a06e0[_0x4fbdb7(0xd0)],'required':_0x2a06e0['required'],'default':isPrimitiveFlagDefault(_0x2a06e0[_0x4fbdb7(0xc0)])?_0x2a06e0[_0x4fbdb7(0xc0)]:undefined,'enum':_0x2a06e0[_0x4fbdb7(0x100)]};}async function compilePlan(_0x125e50,_0xe46022){const _0x34a5f2=a62_0x1ba8;return compileServiceTreeCommand(_0x125e50,{'flags':_0xe46022[_0x34a5f2(0xf2)],'args':_0xe46022['args'],'context':await buildServiceContext(_0x125e50,_0xe46022)});}async function buildServiceContext(_0x20264b,_0x191669){const _0x45b48f=a62_0x1ba8,_0x4c6eeb={'appCode':_0x191669['appCode'],'env':_0x191669[_0x45b48f(0xdb)],'envName':_0x191669[_0x45b48f(0xdb)]};if(!usesRuntimeContext(_0x20264b))return _0x4c6eeb;const _0xe662b3=await getLoginUserInfo(),_0x26201d=pickFirst(_0xe662b3[_0x45b48f(0x119)],_0xe662b3['id']);return{..._0x4c6eeb,'user':_0xe662b3,'userId':_0x26201d,'id':_0xe662b3['id'],'username':pickFirst(_0xe662b3['username'],_0xe662b3['userName'],_0xe662b3[_0x45b48f(0x114)]),'userName':_0xe662b3[_0x45b48f(0xc1)],'nickname':pickFirst(_0xe662b3[_0x45b48f(0xec)],_0xe662b3[_0x45b48f(0xcc)]),'nickName':_0xe662b3[_0x45b48f(0xcc)],'tenantCode':_0xe662b3[_0x45b48f(0xd2)],'employeeId':_0xe662b3[_0x45b48f(0xca)]};}function usesRuntimeContext(_0x46c26f){const _0x5e4c19=a62_0x1ba8;return _0x46c26f['mapTo'][_0x5e4c19(0xbb)](_0x2a39ed=>typeof _0x2a39ed[_0x5e4c19(0xe0)]===_0x5e4c19(0x10b)&&(_0x2a39ed[_0x5e4c19(0xe0)][_0x5e4c19(0x11b)](_0x5e4c19(0x10f))||_0x2a39ed[_0x5e4c19(0xe0)][_0x5e4c19(0x11b)](_0x5e4c19(0xf8))));}function pickFirst(..._0x14165e){const _0xb67f8=a62_0x1ba8;return _0x14165e[_0xb67f8(0xcf)](_0x397340=>_0x397340!==undefined&&_0x397340!==null);}async function executePlan(_0x6a13a3,_0x350484,_0x326644){const _0x523f20=a62_0x1ba8;if(_0x6a13a3[_0x523f20(0x115)]==='data'){const _0x3769cc=await resolveDatasetCode(_0x6a13a3,_0x350484,_0x326644);return executeData(_0x3769cc,_0x6a13a3[_0x523f20(0xf0)],_0x6a13a3[_0x523f20(0x10e)]);}if(_0x6a13a3[_0x523f20(0x115)]===_0x523f20(0xc3)){if(!_0x6a13a3[_0x523f20(0xee)])throw CliErrors[_0x523f20(0x11a)](_0x523f20(0xff)+_0x350484['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x6a13a3['sqlCode'],normalizeScalarParams(_0x6a13a3[_0x523f20(0x10e)]));}if(_0x6a13a3['kind']===_0x523f20(0x112)){const _0x58eb54=_0x6a13a3[_0x523f20(0x10a)]||_0x6a13a3[_0x523f20(0xd3)]||(_0x6a13a3['bffId']==null?'':String(_0x6a13a3[_0x523f20(0xdd)]));if(!_0x58eb54)throw CliErrors[_0x523f20(0x11a)](_0x523f20(0xff)+_0x350484[_0x523f20(0xed)]+_0x523f20(0x109));return executeSdkBff(_0x58eb54,_0x6a13a3[_0x523f20(0x10e)]);}throw CliErrors[_0x523f20(0x11a)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x6a13a3['kind']);}async function resolveDatasetCode(_0xcbf1d0,_0x2f0941,_0xfaf984){const _0x38533c=a62_0x1ba8;if(_0xcbf1d0[_0x38533c(0x11d)])return _0xcbf1d0[_0x38533c(0x11d)];if(!_0xcbf1d0[_0x38533c(0xe7)])throw CliErrors[_0x38533c(0x11a)](_0x38533c(0xff)+_0x2f0941[_0x38533c(0xed)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x4bb7d6=await listDatasets(_0xfaf984[_0x38533c(0xdf)]),_0x5d6740=_0x4bb7d6[_0x38533c(0xcf)](_0x353bb5=>_0x353bb5['dbtableConfig']?.[_0x38533c(0xfb)]===_0xcbf1d0['datatable']);if(!_0x5d6740?.[_0x38533c(0x113)])throw CliErrors[_0x38533c(0x11a)](_0x38533c(0xf7)+_0xcbf1d0['datatable']+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0xfaf984[_0x38533c(0xdf)]+'.',_0x38533c(0xc2));return _0x5d6740[_0x38533c(0x113)];}function applyAppBinding(_0x10067e,_0x106428,_0xd28158){const _0x464174=a62_0x1ba8,_0x2beea5=_0x106428[_0x464174(0xd6)][_0x464174(0x106)];if(!_0x2beea5)return;const _0x60dece=_0x10067e[_0x464174(0xcb)][_0x2beea5];if(!_0x60dece)throw CliErrors[_0x464174(0x11a)]('Unknown\x20appRef\x20\x22'+_0x2beea5+'\x22\x20in\x20service\x20command\x20'+_0x106428[_0x464174(0xed)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x5268c5=_0x60dece[_0x464174(0x118)]||_0x60dece['appCode'];_0x5268c5&&!hasText(_0xd28158[_0x464174(0x118)])&&(_0xd28158[_0x464174(0x118)]=_0x5268c5),_0x60dece['app']&&!hasText(_0xd28158[_0x464174(0x120)])&&!hasText(_0xd28158[_0x464174(0x118)])&&(_0xd28158[_0x464174(0x120)]=_0x60dece[_0x464174(0x120)]),_0x60dece[_0x464174(0xe8)]&&!hasText(_0xd28158['env'])&&(_0xd28158[_0x464174(0xe8)]=_0x60dece['env']);}function renderDynamicCommandHelp(_0x3c32f2){const _0x1dc7b1=a62_0x1ba8,_0x2872bc=[_0x1dc7b1(0x116),_0x1dc7b1(0xfa)+_0x3c32f2[_0x1dc7b1(0xd6)][_0x1dc7b1(0x115)],'\x20\x20\x20\x20command:\x20'+_0x3c32f2[_0x1dc7b1(0xd6)][_0x1dc7b1(0xf0)]];if(_0x3c32f2[_0x1dc7b1(0xd6)]['datasetCode'])_0x2872bc['push'](_0x1dc7b1(0x104)+_0x3c32f2[_0x1dc7b1(0xd6)]['datasetCode']);if(_0x3c32f2[_0x1dc7b1(0xd6)]['datatable'])_0x2872bc[_0x1dc7b1(0xdc)](_0x1dc7b1(0xc4)+_0x3c32f2[_0x1dc7b1(0xd6)]['datatable']);if(_0x3c32f2['target'][_0x1dc7b1(0xee)])_0x2872bc[_0x1dc7b1(0xdc)](_0x1dc7b1(0x105)+_0x3c32f2['target'][_0x1dc7b1(0xee)]);if(_0x3c32f2[_0x1dc7b1(0xd6)][_0x1dc7b1(0x10a)])_0x2872bc[_0x1dc7b1(0xdc)](_0x1dc7b1(0x111)+_0x3c32f2[_0x1dc7b1(0xd6)][_0x1dc7b1(0x10a)]);if(_0x3c32f2[_0x1dc7b1(0xf6)][_0x1dc7b1(0xce)]>0x0){_0x2872bc[_0x1dc7b1(0xdc)]('',_0x1dc7b1(0xd9));for(const _0x19a259 of _0x3c32f2[_0x1dc7b1(0xf6)]){_0x2872bc['push']('\x20\x20\x20\x20'+(_0x19a259[_0x1dc7b1(0xe0)]||'const')+_0x1dc7b1(0xc5)+_0x19a259['target']+(_0x19a259['operator']?'.'+_0x19a259[_0x1dc7b1(0xf4)]:''));}}return _0x2872bc[_0x1dc7b1(0xbc)]('\x0a');}function targetPreview(_0x25de2b){const _0x36b684=a62_0x1ba8;return{'kind':_0x25de2b[_0x36b684(0x115)],'command':_0x25de2b[_0x36b684(0xf0)],'appRef':_0x25de2b[_0x36b684(0x106)],'datasetCode':_0x25de2b[_0x36b684(0x11d)],'datatable':_0x25de2b['datatable'],'sqlCode':_0x25de2b[_0x36b684(0xee)],'bffCode':_0x25de2b['bffCode'],'bffId':_0x25de2b[_0x36b684(0xdd)],'functionName':_0x25de2b['scriptName']};}function normalizeScalarParams(_0x3f36e3){const _0x3a3c12=a62_0x1ba8;return Object[_0x3a3c12(0xbe)](Object[_0x3a3c12(0xde)](_0x3f36e3)[_0x3a3c12(0xe1)](([,_0x51280c])=>typeof _0x51280c===_0x3a3c12(0x10b)||typeof _0x51280c===_0x3a3c12(0xe9)));}function hasText(_0x453dca){const _0x3de7fc=a62_0x1ba8;return typeof _0x453dca==='string'&&_0x453dca['trim']()[_0x3de7fc(0xce)]>0x0;}function isPrimitiveFlagDefault(_0x327743){const _0x5d306d=a62_0x1ba8;return _0x327743===undefined||typeof _0x327743==='string'||typeof _0x327743===_0x5d306d(0xe9)||typeof _0x327743===_0x5d306d(0x110);}
1
+ (function(_0x1e5a81,_0x144116){const _0x586ad0=a62_0x49d8,_0x57c390=_0x1e5a81();while(!![]){try{const _0x1fb39a=-parseInt(_0x586ad0(0x172))/0x1*(-parseInt(_0x586ad0(0x1a7))/0x2)+parseInt(_0x586ad0(0x14e))/0x3*(parseInt(_0x586ad0(0x17b))/0x4)+-parseInt(_0x586ad0(0x1a2))/0x5*(-parseInt(_0x586ad0(0x1a6))/0x6)+parseInt(_0x586ad0(0x14c))/0x7*(-parseInt(_0x586ad0(0x152))/0x8)+parseInt(_0x586ad0(0x162))/0x9*(-parseInt(_0x586ad0(0x170))/0xa)+parseInt(_0x586ad0(0x16e))/0xb*(-parseInt(_0x586ad0(0x177))/0xc)+parseInt(_0x586ad0(0x1a8))/0xd;if(_0x1fb39a===_0x144116)break;else _0x57c390['push'](_0x57c390['shift']());}catch(_0x8d9eb0){_0x57c390['push'](_0x57c390['shift']());}}}(a62_0x34ef,0xcbf59));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(_0x19483d,_0x447120){const _0x2948c3=a62_0x49d8,_0x27500f=listLocalServiceTrees();let _0x58db01;for(const _0x32ac3e of _0x27500f){const _0x2b67ef=matchServiceTreeCommand(_0x32ac3e,_0x19483d);if(!_0x2b67ef)continue;(!_0x58db01||_0x2b67ef[_0x2948c3(0x16a)][_0x2948c3(0x15f)][_0x2948c3(0x17d)]>_0x58db01[_0x2948c3(0x16a)][_0x2948c3(0x15f)][_0x2948c3(0x17d)])&&(_0x58db01={'tree':_0x32ac3e,'command':_0x2b67ef['command'],'remainingArgs':_0x2b67ef['remainingArgs']});}if(!_0x58db01)return undefined;const _0x2b58ea={..._0x447120};return applyAppBinding(_0x58db01[_0x2948c3(0x191)],_0x58db01[_0x2948c3(0x16a)],_0x2b58ea),{'definition':buildDynamicCommandDefinition(_0x58db01[_0x2948c3(0x191)],_0x58db01[_0x2948c3(0x16a)]),'args':_0x58db01[_0x2948c3(0x156)],'flags':_0x2b58ea,'tree':_0x58db01[_0x2948c3(0x191)],'command':_0x58db01[_0x2948c3(0x16a)]};}export function generateDynamicServiceHelp(_0x4dbf4f){const _0x7f47ab=a62_0x49d8,_0x276b38=listLocalServiceTrees()['find'](_0x95b270=>_0x95b270[_0x7f47ab(0x1a4)][_0x7f47ab(0x168)]===_0x4dbf4f);if(!_0x276b38)return undefined;const _0x228ccd=[CLI_BIN_NAME+'\x20'+_0x4dbf4f+_0x7f47ab(0x189),'',_0x276b38[_0x7f47ab(0x1a4)][_0x7f47ab(0x193)]||_0x4dbf4f,_0x276b38[_0x7f47ab(0x1a4)][_0x7f47ab(0x179)]?'\x20\x20'+_0x276b38[_0x7f47ab(0x1a4)][_0x7f47ab(0x179)]:'','','Commands:',..._0x276b38[_0x7f47ab(0x158)][_0x7f47ab(0x184)](_0x4f57ab=>{const _0x297cdf=_0x7f47ab,_0x7a4206=_0x4f57ab[_0x297cdf(0x15f)]['slice'](0x1)[_0x297cdf(0x14b)]('\x20'),_0x1fc04d=_0x4f57ab[_0x297cdf(0x142)]===_0x297cdf(0x1a9)?'':'\x20['+_0x4f57ab[_0x297cdf(0x142)]+']';return'\x20\x20'+_0x7a4206[_0x297cdf(0x1a5)](0x18)+'\x20'+(_0x4f57ab['description']||'')+_0x1fc04d;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x4dbf4f+_0x7f47ab(0x18f)][_0x7f47ab(0x154)](Boolean);return _0x228ccd[_0x7f47ab(0x14b)]('\x0a');}export function listDynamicServiceEntries(){const _0x4426a2=a62_0x49d8;return listLocalServices()[_0x4426a2(0x184)](_0x475a1c=>{const _0x285cd8=_0x4426a2,_0x3f6c94=_0x475a1c[_0x285cd8(0x181)];return{'service':_0x3f6c94[_0x285cd8(0x1a4)][_0x285cd8(0x168)],'label':_0x3f6c94[_0x285cd8(0x1a4)][_0x285cd8(0x193)]||_0x3f6c94[_0x285cd8(0x1a4)][_0x285cd8(0x168)],'commands':_0x3f6c94[_0x285cd8(0x158)][_0x285cd8(0x184)](_0xa652f2=>({'command':dynamicCommandName(_0xa652f2),'description':_0xa652f2[_0x285cd8(0x179)]||'Run\x20service\x20command\x20'+_0xa652f2[_0x285cd8(0x180)],'tag':riskTag(_0xa652f2[_0x285cd8(0x142)])}))};});}export function getDynamicServiceEntry(_0x3c5d3c){const _0x2b8428=a62_0x49d8;return listDynamicServiceEntries()[_0x2b8428(0x18c)](_0x1e9616=>_0x1e9616[_0x2b8428(0x1a4)]===_0x3c5d3c);}export function listDynamicServiceDefinitions(_0x6608c1){const _0x46273e=a62_0x49d8;return listLocalServiceTrees()['filter'](_0x174efc=>!_0x6608c1||_0x174efc[_0x46273e(0x1a4)]['code']===_0x6608c1)[_0x46273e(0x173)](_0x38bb3b=>_0x38bb3b['commands'][_0x46273e(0x184)](_0x432dfe=>buildDynamicCommandDefinition(_0x38bb3b,_0x432dfe)));}function a62_0x34ef(){const _0x445334=['dbtableConfig','join','7LhwztR','Run\x20service\x20command\x20','1416642PIrEwI','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','appBindings','app','4078288qUxaAw','\x20\x20MAP\x20TO','filter','\x20->\x20','remainingArgs','SERVICE_TREE','commands','Service\x20command\x20','kind','\x22\x20in\x20service\x20command\x20','scriptName','envName','Preview\x20dynamic\x20service\x20command:\x20','fullPath','enum','\x20\x20\x20\x20sqlCode:\x20','13202073qxpFXB','\x20\x20\x20\x20datasetCode:\x20','default','bff','string','sqlCode','code','cliName','command','appRef','Unsupported\x20service\x20target\x20kind:\x20','now','143uyVANd','\x20\x20\x20\x20datatable:\x20','10ZRziWS','required','54uREAML','flatMap','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','tableName','boolean','557724BQyCto','bffId','description','high-risk-write','12kRRwHV','\x20\x20\x20\x20command:\x20','length','employeeId','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','cliPath','normalizedManifest','\x22.\x20','appcode','map','nickname','entries','userName','type','\x20<command>\x20[flags]','args','\x20\x20\x20\x20kind:\x20\x20\x20\x20','find','userId','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20functionName:\x20','tree','datatable','name','data','push','\x20requires\x20target.functionName.','\x20requires\x20target.sqlCode.','\x20\x20SERVICE\x20TREE\x20TARGET','mapTo','appCode','operator','validation','trim','datasetCode','context.','bffCode','fromEntries','5ZCAplu','\x20completed\x20in\x20','service','padEnd','8940588OpOnNO','17540YNWmnF','467753XwAedN','read','username','env','source','risk','ctx.','Unknown\x20appRef\x20\x22','sql','number','params','nickName','target'];a62_0x34ef=function(){return _0x445334;};return a62_0x34ef();}export function getDynamicServiceDefinitions(_0x1edbff){const _0x2f8ceb=listDynamicServiceDefinitions(_0x1edbff);return _0x2f8ceb['length']>0x0?_0x2f8ceb:undefined;}export function findDynamicServiceDefinition(_0x294193,_0x3093d6){const _0x5c4acb=a62_0x49d8;return listDynamicServiceDefinitions(_0x294193)[_0x5c4acb(0x18c)](_0x437a53=>_0x437a53[_0x5c4acb(0x16a)]===_0x3093d6);}export function buildDynamicCommandDefinition(_0x335934,_0x586ab5){const _0x3a6425=a62_0x49d8;return{'service':_0x335934['service'][_0x3a6425(0x168)],'command':dynamicCommandName(_0x586ab5),'description':_0x586ab5[_0x3a6425(0x179)]||_0x3a6425(0x14d)+_0x586ab5['cliPath'],'risk':_0x586ab5['risk'],..._0x586ab5[_0x3a6425(0x142)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x586ab5)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x586ab5[_0x3a6425(0x18a)]['map'](_0x3691d3=>({'name':_0x3691d3['name'],'description':_0x3691d3[_0x3a6425(0x179)]||_0x3691d3[_0x3a6425(0x193)],'required':_0x3691d3[_0x3a6425(0x171)]})),'flags':_0x586ab5['flags'][_0x3a6425(0x184)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x586ab5),async 'dryRun'(_0x48b3e2){const _0x3c580c=_0x3a6425,_0x39e2cc=await compilePlan(_0x586ab5,_0x48b3e2);return{'method':_0x3c580c(0x157),'url':_0x586ab5[_0x3c580c(0x180)],'body':{'target':targetPreview(_0x39e2cc),'params':_0x39e2cc[_0x3c580c(0x147)]},'description':_0x3c580c(0x15e)+_0x586ab5[_0x3c580c(0x180)]};},async 'execute'(_0x995dcd){const _0x13bf11=_0x3a6425,_0x4e77b9=await compilePlan(_0x586ab5,_0x995dcd),_0x2ee081=Date[_0x13bf11(0x16d)](),_0x1ffe52=await executePlan(_0x4e77b9,_0x586ab5,_0x995dcd),_0x36b6b7=Date[_0x13bf11(0x16d)]()-_0x2ee081;return{'ok':!![],'data':{'service':_0x335934[_0x13bf11(0x1a4)],'command':_0x586ab5[_0x13bf11(0x180)],'target':targetPreview(_0x4e77b9),'result':_0x1ffe52,'elapsed':_0x36b6b7},'message':_0x13bf11(0x159)+_0x586ab5['cliPath']+_0x13bf11(0x1a3)+_0x36b6b7+'ms'};}};}function buildDynamicConfirmationDescription(_0x446bc2){const _0x8c2421=a62_0x49d8,_0x2cde91=_0x446bc2[_0x8c2421(0x179)]||_0x446bc2[_0x8c2421(0x180)],_0x5e9c4e=_0x446bc2[_0x8c2421(0x142)]===_0x8c2421(0x17a)?_0x8c2421(0x17f):'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x8c2421(0x18e)+_0x2cde91+_0x8c2421(0x182)+_0x5e9c4e;}function dynamicCommandName(_0x2b86c9){const _0x4c47ac=a62_0x49d8;return _0x2b86c9[_0x4c47ac(0x15f)]['slice'](0x1)[_0x4c47ac(0x14b)]('\x20');}function riskTag(_0xe6a0f7){const _0x4029bd=a62_0x49d8;return _0xe6a0f7===_0x4029bd(0x1a9)?'':'\x20\x20['+_0xe6a0f7+']';}function flagToCommandFlag(_0x41d247){const _0x5918c5=a62_0x49d8;return{'name':_0x41d247[_0x5918c5(0x169)],'type':_0x41d247[_0x5918c5(0x188)]==='json'?_0x5918c5(0x166):_0x41d247['type'],'description':_0x41d247[_0x5918c5(0x179)]||_0x41d247[_0x5918c5(0x193)],'required':_0x41d247['required'],'default':isPrimitiveFlagDefault(_0x41d247['default'])?_0x41d247[_0x5918c5(0x164)]:undefined,'enum':_0x41d247[_0x5918c5(0x160)]};}async function compilePlan(_0x5624b1,_0x3fcdbf){const _0x3bf23e=a62_0x49d8;return compileServiceTreeCommand(_0x5624b1,{'flags':_0x3fcdbf['rawFlags'],'args':_0x3fcdbf[_0x3bf23e(0x18a)],'context':await buildServiceContext(_0x5624b1,_0x3fcdbf)});}async function buildServiceContext(_0x2d5ded,_0x4166c2){const _0x1cd2be=a62_0x49d8,_0x54006e={'appCode':_0x4166c2[_0x1cd2be(0x19a)],'env':_0x4166c2[_0x1cd2be(0x15d)],'envName':_0x4166c2[_0x1cd2be(0x15d)]};if(!usesRuntimeContext(_0x2d5ded))return _0x54006e;const _0x2a98f3=await getLoginUserInfo(),_0x420f18=pickFirst(_0x2a98f3[_0x1cd2be(0x18d)],_0x2a98f3['id']);return{..._0x54006e,'user':_0x2a98f3,'userId':_0x420f18,'id':_0x2a98f3['id'],'username':pickFirst(_0x2a98f3[_0x1cd2be(0x13f)],_0x2a98f3[_0x1cd2be(0x187)],_0x2a98f3['loginName']),'userName':_0x2a98f3[_0x1cd2be(0x187)],'nickname':pickFirst(_0x2a98f3[_0x1cd2be(0x185)],_0x2a98f3[_0x1cd2be(0x148)]),'nickName':_0x2a98f3[_0x1cd2be(0x148)],'tenantCode':_0x2a98f3['tenantCode'],'employeeId':_0x2a98f3[_0x1cd2be(0x17e)]};}function usesRuntimeContext(_0x4ca577){const _0x539318=a62_0x49d8;return _0x4ca577[_0x539318(0x199)]['some'](_0x3f6b81=>typeof _0x3f6b81[_0x539318(0x141)]==='string'&&(_0x3f6b81['source']['startsWith'](_0x539318(0x19f))||_0x3f6b81[_0x539318(0x141)]['startsWith'](_0x539318(0x143))));}function pickFirst(..._0x3f7e8b){const _0x20eb36=a62_0x49d8;return _0x3f7e8b[_0x20eb36(0x18c)](_0x4ff5ba=>_0x4ff5ba!==undefined&&_0x4ff5ba!==null);}async function executePlan(_0x19cf01,_0x32c65b,_0x2b08f2){const _0x479fa7=a62_0x49d8;if(_0x19cf01['kind']===_0x479fa7(0x194)){const _0x3b21d3=await resolveDatasetCode(_0x19cf01,_0x32c65b,_0x2b08f2);return executeData(_0x3b21d3,_0x19cf01[_0x479fa7(0x16a)],_0x19cf01[_0x479fa7(0x147)]);}if(_0x19cf01[_0x479fa7(0x15a)]===_0x479fa7(0x145)){if(!_0x19cf01[_0x479fa7(0x167)])throw CliErrors[_0x479fa7(0x19c)]('Service\x20command\x20'+_0x32c65b['cliPath']+_0x479fa7(0x197));return executeSdkSql(_0x19cf01[_0x479fa7(0x167)],normalizeScalarParams(_0x19cf01['params']));}if(_0x19cf01[_0x479fa7(0x15a)]===_0x479fa7(0x165)){const _0x5c35cb=_0x19cf01[_0x479fa7(0x15c)]||_0x19cf01[_0x479fa7(0x1a0)]||(_0x19cf01['bffId']==null?'':String(_0x19cf01[_0x479fa7(0x178)]));if(!_0x5c35cb)throw CliErrors[_0x479fa7(0x19c)](_0x479fa7(0x159)+_0x32c65b[_0x479fa7(0x180)]+_0x479fa7(0x196));return executeSdkBff(_0x5c35cb,_0x19cf01[_0x479fa7(0x147)]);}throw CliErrors[_0x479fa7(0x19c)](_0x479fa7(0x16c)+_0x19cf01['kind']);}async function resolveDatasetCode(_0x24d4b5,_0x7b70e5,_0x3dc543){const _0x3f8262=a62_0x49d8;if(_0x24d4b5[_0x3f8262(0x19e)])return _0x24d4b5[_0x3f8262(0x19e)];if(!_0x24d4b5['datatable'])throw CliErrors['validation'](_0x3f8262(0x159)+_0x7b70e5[_0x3f8262(0x180)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x75579a=await listDatasets(_0x3dc543['appCode']),_0x4afc18=_0x75579a[_0x3f8262(0x18c)](_0x1cd310=>_0x1cd310[_0x3f8262(0x14a)]?.[_0x3f8262(0x175)]===_0x24d4b5[_0x3f8262(0x192)]);if(!_0x4afc18?.[_0x3f8262(0x168)])throw CliErrors[_0x3f8262(0x19c)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x24d4b5[_0x3f8262(0x192)]+_0x3f8262(0x14f)+_0x3dc543[_0x3f8262(0x19a)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x4afc18[_0x3f8262(0x168)];}function applyAppBinding(_0x337576,_0x5ce013,_0x49b1c9){const _0x5f3f65=a62_0x49d8,_0x2df1a3=_0x5ce013[_0x5f3f65(0x149)][_0x5f3f65(0x16b)];if(!_0x2df1a3)return;const _0x165124=_0x337576[_0x5f3f65(0x150)][_0x2df1a3];if(!_0x165124)throw CliErrors[_0x5f3f65(0x19c)](_0x5f3f65(0x144)+_0x2df1a3+_0x5f3f65(0x15b)+_0x5ce013[_0x5f3f65(0x180)]+'.',_0x5f3f65(0x174));const _0x4d00fe=_0x165124[_0x5f3f65(0x183)]||_0x165124[_0x5f3f65(0x19a)];_0x4d00fe&&!hasText(_0x49b1c9[_0x5f3f65(0x183)])&&(_0x49b1c9[_0x5f3f65(0x183)]=_0x4d00fe),_0x165124[_0x5f3f65(0x151)]&&!hasText(_0x49b1c9[_0x5f3f65(0x151)])&&!hasText(_0x49b1c9['appcode'])&&(_0x49b1c9['app']=_0x165124[_0x5f3f65(0x151)]),_0x165124[_0x5f3f65(0x140)]&&!hasText(_0x49b1c9[_0x5f3f65(0x140)])&&(_0x49b1c9[_0x5f3f65(0x140)]=_0x165124[_0x5f3f65(0x140)]);}function renderDynamicCommandHelp(_0x3e38b8){const _0x7864c5=a62_0x49d8,_0x4ce862=[_0x7864c5(0x198),_0x7864c5(0x18b)+_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x15a)],_0x7864c5(0x17c)+_0x3e38b8['target']['command']];if(_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x19e)])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x163)+_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x19e)]);if(_0x3e38b8['target']['datatable'])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x16f)+_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x192)]);if(_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x167)])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x161)+_0x3e38b8[_0x7864c5(0x149)]['sqlCode']);if(_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x15c)])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x190)+_0x3e38b8['target'][_0x7864c5(0x15c)]);if(_0x3e38b8[_0x7864c5(0x199)]['length']>0x0){_0x4ce862[_0x7864c5(0x195)]('',_0x7864c5(0x153));for(const _0x51e016 of _0x3e38b8[_0x7864c5(0x199)]){_0x4ce862['push']('\x20\x20\x20\x20'+(_0x51e016[_0x7864c5(0x141)]||'const')+_0x7864c5(0x155)+_0x51e016[_0x7864c5(0x149)]+(_0x51e016[_0x7864c5(0x19b)]?'.'+_0x51e016['operator']:''));}}return _0x4ce862[_0x7864c5(0x14b)]('\x0a');}function targetPreview(_0x391dba){const _0x5c7052=a62_0x49d8;return{'kind':_0x391dba[_0x5c7052(0x15a)],'command':_0x391dba[_0x5c7052(0x16a)],'appRef':_0x391dba[_0x5c7052(0x16b)],'datasetCode':_0x391dba['datasetCode'],'datatable':_0x391dba[_0x5c7052(0x192)],'sqlCode':_0x391dba[_0x5c7052(0x167)],'bffCode':_0x391dba['bffCode'],'bffId':_0x391dba[_0x5c7052(0x178)],'functionName':_0x391dba[_0x5c7052(0x15c)]};}function a62_0x49d8(_0x332764,_0x358e11){_0x332764=_0x332764-0x13f;const _0x34ef23=a62_0x34ef();let _0x49d8cd=_0x34ef23[_0x332764];return _0x49d8cd;}function normalizeScalarParams(_0x11b1a9){const _0xbb3e8f=a62_0x49d8;return Object[_0xbb3e8f(0x1a1)](Object[_0xbb3e8f(0x186)](_0x11b1a9)[_0xbb3e8f(0x154)](([,_0x4a584b])=>typeof _0x4a584b===_0xbb3e8f(0x166)||typeof _0x4a584b===_0xbb3e8f(0x146)));}function hasText(_0x39f48c){const _0x4ddae0=a62_0x49d8;return typeof _0x39f48c==='string'&&_0x39f48c[_0x4ddae0(0x19d)]()[_0x4ddae0(0x17d)]>0x0;}function isPrimitiveFlagDefault(_0x46a629){const _0x57a5b3=a62_0x49d8;return _0x46a629===undefined||typeof _0x46a629===_0x57a5b3(0x166)||typeof _0x46a629===_0x57a5b3(0x146)||typeof _0x46a629===_0x57a5b3(0x176);}
@@ -1 +1 @@
1
- (function(_0x5c4990,_0x1addf8){const _0x4b9d45=a63_0x22d7,_0x57af59=_0x5c4990();while(!![]){try{const _0x3e84c8=-parseInt(_0x4b9d45(0xe4))/0x1*(-parseInt(_0x4b9d45(0xc8))/0x2)+-parseInt(_0x4b9d45(0xe1))/0x3+-parseInt(_0x4b9d45(0xd1))/0x4+-parseInt(_0x4b9d45(0xe5))/0x5*(parseInt(_0x4b9d45(0xcc))/0x6)+-parseInt(_0x4b9d45(0xe6))/0x7+parseInt(_0x4b9d45(0xcd))/0x8*(parseInt(_0x4b9d45(0xdf))/0x9)+-parseInt(_0x4b9d45(0xcf))/0xa;if(_0x3e84c8===_0x1addf8)break;else _0x57af59['push'](_0x57af59['shift']());}catch(_0x51fa63){_0x57af59['push'](_0x57af59['shift']());}}}(a63_0x4726,0xb1d0e));export function adaptServiceTreeManifestForLegacyFramework(_0x1cd89e){const _0x3acb7b=a63_0x22d7,_0x2064be=cloneJsonValue(_0x1cd89e),_0x35df1b=[];if(!isObjectRecord(_0x2064be))return{'manifest':_0x2064be,'errors':_0x35df1b};return Array[_0x3acb7b(0xd2)](_0x2064be['commands'])&&_0x2064be[_0x3acb7b(0xe9)]['forEach']((_0x5c7b19,_0x2983cb)=>{const _0x17298e=_0x3acb7b;if(!isObjectRecord(_0x5c7b19))return;adaptBffTarget(_0x5c7b19[_0x17298e(0xd8)],_0x17298e(0xcb)+_0x2983cb+_0x17298e(0xde),_0x35df1b);}),adaptResources(_0x2064be[_0x3acb7b(0xda)],'$.resources',_0x35df1b),{'manifest':_0x2064be,'errors':_0x35df1b};}function a63_0x4726(){const _0x1325b0=['commands','.target','fromEntries','string','2530846hKLKhr','call','.scriptName','$.commands[','624kzSuUp','10802968QdVKCH','scriptName','22950BMMDGe','kind','1553452wyBnZI','isArray','.resources','functionName','trim','actions','push','target','prototype','resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','bff.exec','.actions.','].target','9PYgZOa','bff','2997585JOHbUW','hasOwnProperty','error','1naLxDo','2275stUcKu','3152009QLrZZo','map','entries'];a63_0x4726=function(){return _0x1325b0;};return a63_0x4726();}export function toPublicServiceTreeTarget(_0x304d62){const _0x5e55cf=a63_0x22d7,{scriptName:_0x4ca390,..._0x32d17c}=_0x304d62;return typeof _0x4ca390===_0x5e55cf(0xc7)&&_0x4ca390[_0x5e55cf(0xd5)]()&&(_0x32d17c[_0x5e55cf(0xd4)]=_0x4ca390),_0x32d17c;}export function toPublicNormalizedServiceTree(_0x44547c){const _0x5f590f=a63_0x22d7;return{..._0x44547c,'commands':_0x44547c[_0x5f590f(0xe9)][_0x5f590f(0xe7)](_0x4db13f=>({..._0x4db13f,'target':toPublicServiceTreeTarget(_0x4db13f[_0x5f590f(0xd8)])}))};}function adaptResources(_0x25d720,_0x2b0e19,_0x543c72){const _0x389e07=a63_0x22d7;if(!isObjectRecord(_0x25d720))return;for(const [_0x573497,_0x3adc61]of Object['entries'](_0x25d720)){if(!isObjectRecord(_0x3adc61))continue;const _0x14822f=_0x2b0e19+'.'+_0x573497;if(isObjectRecord(_0x3adc61[_0x389e07(0xd6)]))for(const [_0x134504,_0x1eced6]of Object[_0x389e07(0xe8)](_0x3adc61[_0x389e07(0xd6)])){if(!isObjectRecord(_0x1eced6))continue;const _0x5aa1c9=_0x14822f+_0x389e07(0xdd)+_0x134504,_0x49a102=isObjectRecord(_0x1eced6[_0x389e07(0xd8)])&&_0x1eced6[_0x389e07(0xd8)][_0x389e07(0xd0)]==='bff';adaptBffTarget(_0x1eced6[_0x389e07(0xd8)],_0x5aa1c9+_0x389e07(0xea),_0x543c72),(_0x49a102||isBffAction(_0x1eced6))&&adaptFunctionNameField(_0x1eced6,_0x5aa1c9,_0x543c72);}adaptResources(_0x3adc61[_0x389e07(0xda)],_0x14822f+_0x389e07(0xd3),_0x543c72);}}function adaptBffTarget(_0x369214,_0x573f9d,_0x448d85){const _0x122017=a63_0x22d7;if(!isObjectRecord(_0x369214)||_0x369214['kind']!==_0x122017(0xe0))return;adaptFunctionNameField(_0x369214,_0x573f9d,_0x448d85);}function adaptFunctionNameField(_0x1294f4,_0x406026,_0x37bd78){const _0x2f5d6f=a63_0x22d7;Object[_0x2f5d6f(0xd9)][_0x2f5d6f(0xe2)][_0x2f5d6f(0xc9)](_0x1294f4,_0x2f5d6f(0xce))&&_0x37bd78[_0x2f5d6f(0xd7)]({'level':'error','path':_0x406026+_0x2f5d6f(0xca),'message':_0x2f5d6f(0xdb)});if(Object['prototype'][_0x2f5d6f(0xe2)][_0x2f5d6f(0xc9)](_0x1294f4,_0x2f5d6f(0xd4))){if(typeof _0x1294f4[_0x2f5d6f(0xd4)]!==_0x2f5d6f(0xc7)||!_0x1294f4[_0x2f5d6f(0xd4)][_0x2f5d6f(0xd5)]()){_0x37bd78[_0x2f5d6f(0xd7)]({'level':_0x2f5d6f(0xe3),'path':_0x406026+'.functionName','message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x1294f4[_0x2f5d6f(0xd4)];return;}_0x1294f4[_0x2f5d6f(0xce)]=_0x1294f4[_0x2f5d6f(0xd4)],delete _0x1294f4[_0x2f5d6f(0xd4)];}}function isBffAction(_0x2b4fad){const _0x363dfd=a63_0x22d7;return _0x2b4fad[_0x363dfd(0xd0)]===_0x363dfd(0xe0)||_0x2b4fad['action']===_0x363dfd(0xdc)||_0x2b4fad[_0x363dfd(0xd8)]===_0x363dfd(0xdc);}function cloneJsonValue(_0x15b0f5){const _0x37bf3a=a63_0x22d7;if(Array[_0x37bf3a(0xd2)](_0x15b0f5))return _0x15b0f5[_0x37bf3a(0xe7)](_0x153079=>cloneJsonValue(_0x153079));if(isObjectRecord(_0x15b0f5))return Object[_0x37bf3a(0xc6)](Object['entries'](_0x15b0f5)[_0x37bf3a(0xe7)](([_0x16edf7,_0x3f303a])=>[_0x16edf7,cloneJsonValue(_0x3f303a)]));return _0x15b0f5;}function a63_0x22d7(_0x476385,_0x1415df){_0x476385=_0x476385-0xc6;const _0x4726ea=a63_0x4726();let _0x22d71c=_0x4726ea[_0x476385];return _0x22d71c;}function isObjectRecord(_0x334539){return Boolean(_0x334539)&&typeof _0x334539==='object'&&!Array['isArray'](_0x334539);}
1
+ function a63_0x5d5c(){const _0x5ae36c=['90tYSige','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','map','7449448bRPoMn','266710peEBYo','kind','object','isArray','resources','51786niiOwG','commands','5536032RwMMwG','hasOwnProperty','.scriptName','301rbZsCC','bff','.actions.','.target','functionName','681495IoQYCR','1304090ReMyRR','target','767619QbnbKp','scriptName','$.commands[','error','entries','12ddGRsb','forEach','trim','bff.exec','.resources','call','push','string','action'];a63_0x5d5c=function(){return _0x5ae36c;};return a63_0x5d5c();}(function(_0x4a260a,_0x34b864){const _0x50ff22=a63_0x1b18,_0x3fbb6a=_0x4a260a();while(!![]){try{const _0x585880=-parseInt(_0x50ff22(0x18b))/0x1*(parseInt(_0x50ff22(0x198))/0x2)+parseInt(_0x50ff22(0x183))/0x3+parseInt(_0x50ff22(0x17b))/0x4+parseInt(_0x50ff22(0x184))/0x5+-parseInt(_0x50ff22(0x179))/0x6*(-parseInt(_0x50ff22(0x17e))/0x7)+parseInt(_0x50ff22(0x197))/0x8+parseInt(_0x50ff22(0x186))/0x9*(-parseInt(_0x50ff22(0x194))/0xa);if(_0x585880===_0x34b864)break;else _0x3fbb6a['push'](_0x3fbb6a['shift']());}catch(_0x3b79b4){_0x3fbb6a['push'](_0x3fbb6a['shift']());}}}(a63_0x5d5c,0xc4e1a));function a63_0x1b18(_0x266618,_0x26138f){_0x266618=_0x266618-0x175;const _0x5d5c32=a63_0x5d5c();let _0x1b18dc=_0x5d5c32[_0x266618];return _0x1b18dc;}export function adaptServiceTreeManifestForLegacyFramework(_0x5352bd){const _0x27199b=a63_0x1b18,_0x55bbe7=cloneJsonValue(_0x5352bd),_0x1bda7e=[];if(!isObjectRecord(_0x55bbe7))return{'manifest':_0x55bbe7,'errors':_0x1bda7e};return Array[_0x27199b(0x177)](_0x55bbe7[_0x27199b(0x17a)])&&_0x55bbe7['commands'][_0x27199b(0x18c)]((_0x26c49c,_0x3c9e2e)=>{const _0x1d60f3=_0x27199b;if(!isObjectRecord(_0x26c49c))return;adaptBffTarget(_0x26c49c[_0x1d60f3(0x185)],_0x1d60f3(0x188)+_0x3c9e2e+'].target',_0x1bda7e);}),adaptResources(_0x55bbe7[_0x27199b(0x178)],'$.resources',_0x1bda7e),{'manifest':_0x55bbe7,'errors':_0x1bda7e};}export function toPublicServiceTreeTarget(_0x47bf3d){const _0x15aaf8=a63_0x1b18,{scriptName:_0x4b8098,..._0x36566a}=_0x47bf3d;return typeof _0x4b8098===_0x15aaf8(0x192)&&_0x4b8098[_0x15aaf8(0x18d)]()&&(_0x36566a['functionName']=_0x4b8098),_0x36566a;}export function toPublicNormalizedServiceTree(_0x685f7d){const _0x5833a4=a63_0x1b18;return{..._0x685f7d,'commands':_0x685f7d[_0x5833a4(0x17a)][_0x5833a4(0x196)](_0x11c92c=>({..._0x11c92c,'target':toPublicServiceTreeTarget(_0x11c92c['target'])}))};}function adaptResources(_0x3a0e17,_0x3a25b0,_0x4c88ff){const _0x2ad638=a63_0x1b18;if(!isObjectRecord(_0x3a0e17))return;for(const [_0xa8723a,_0x1aa0e4]of Object['entries'](_0x3a0e17)){if(!isObjectRecord(_0x1aa0e4))continue;const _0xa6df2f=_0x3a25b0+'.'+_0xa8723a;if(isObjectRecord(_0x1aa0e4['actions']))for(const [_0x2626fd,_0xfb51ab]of Object[_0x2ad638(0x18a)](_0x1aa0e4['actions'])){if(!isObjectRecord(_0xfb51ab))continue;const _0xce68e5=_0xa6df2f+_0x2ad638(0x180)+_0x2626fd,_0x6be425=isObjectRecord(_0xfb51ab['target'])&&_0xfb51ab['target'][_0x2ad638(0x175)]===_0x2ad638(0x17f);adaptBffTarget(_0xfb51ab['target'],_0xce68e5+_0x2ad638(0x181),_0x4c88ff),(_0x6be425||isBffAction(_0xfb51ab))&&adaptFunctionNameField(_0xfb51ab,_0xce68e5,_0x4c88ff);}adaptResources(_0x1aa0e4['resources'],_0xa6df2f+_0x2ad638(0x18f),_0x4c88ff);}}function adaptBffTarget(_0x5d6d07,_0x4af2a1,_0x2b0f9c){const _0x4924a8=a63_0x1b18;if(!isObjectRecord(_0x5d6d07)||_0x5d6d07[_0x4924a8(0x175)]!==_0x4924a8(0x17f))return;adaptFunctionNameField(_0x5d6d07,_0x4af2a1,_0x2b0f9c);}function adaptFunctionNameField(_0x2d6d82,_0x531b84,_0x177ec5){const _0xf7e0c9=a63_0x1b18;Object['prototype'][_0xf7e0c9(0x17c)][_0xf7e0c9(0x190)](_0x2d6d82,_0xf7e0c9(0x187))&&_0x177ec5[_0xf7e0c9(0x191)]({'level':'error','path':_0x531b84+_0xf7e0c9(0x17d),'message':_0xf7e0c9(0x195)});if(Object['prototype'][_0xf7e0c9(0x17c)][_0xf7e0c9(0x190)](_0x2d6d82,'functionName')){if(typeof _0x2d6d82[_0xf7e0c9(0x182)]!=='string'||!_0x2d6d82[_0xf7e0c9(0x182)][_0xf7e0c9(0x18d)]()){_0x177ec5['push']({'level':_0xf7e0c9(0x189),'path':_0x531b84+'.functionName','message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x2d6d82[_0xf7e0c9(0x182)];return;}_0x2d6d82[_0xf7e0c9(0x187)]=_0x2d6d82[_0xf7e0c9(0x182)],delete _0x2d6d82['functionName'];}}function isBffAction(_0x514998){const _0x1338e8=a63_0x1b18;return _0x514998[_0x1338e8(0x175)]==='bff'||_0x514998[_0x1338e8(0x193)]===_0x1338e8(0x18e)||_0x514998[_0x1338e8(0x185)]===_0x1338e8(0x18e);}function cloneJsonValue(_0x5c482b){const _0x143cb3=a63_0x1b18;if(Array[_0x143cb3(0x177)](_0x5c482b))return _0x5c482b[_0x143cb3(0x196)](_0x4a66df=>cloneJsonValue(_0x4a66df));if(isObjectRecord(_0x5c482b))return Object['fromEntries'](Object[_0x143cb3(0x18a)](_0x5c482b)['map'](([_0x2cf3dc,_0x5d62ec])=>[_0x2cf3dc,cloneJsonValue(_0x5d62ec)]));return _0x5c482b;}function isObjectRecord(_0x321be8){const _0x21fefa=a63_0x1b18;return Boolean(_0x321be8)&&typeof _0x321be8===_0x21fefa(0x176)&&!Array[_0x21fefa(0x177)](_0x321be8);}
@@ -1 +1 @@
1
- const a64_0x40ffd8=a64_0x2395;function a64_0x5ed3(){const _0x498c28=['cliName','source','cliPath','1461456KJjkSS','normalizedManifest','entries','serviceCode','WRITE','description','hash','1182VzduMk','name','registry','version','Imported','reduce','manifest','kind','string','remove','8ZRfmWr','read','60011UJavOF','service','target','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','109525lsFLGo','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.','risk','Updated','manifests','Service\x20Tree\x20manifest\x20file\x20path','errors','registryServiceCode','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','str','12175860rbPFRf','report','length','Service\x20manifest\x20validation\x20passed.','serviceCount','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','55GYQrzI','Local\x20service\x20code,\x20for\x20example\x20crm','replaced','filePath','validate','9199544MOdRaY','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','warnings','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','lower\x20kebab-case\x20service\x20code','import','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','imported','flags','map','export','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','\x20service(s),\x20updated\x20','registryIndex','11583450KPXTuZ','file','importedAt','Local\x20service\x20not\x20found:\x20','commands','write','registryPath','updated','entry','9xLeOoF','315606BbReLB','164fiIFqq'];a64_0x5ed3=function(){return _0x498c28;};return a64_0x5ed3();}(function(_0x451487,_0x3b947c){const _0x561731=a64_0x2395,_0x3623c7=_0x451487();while(!![]){try{const _0x4a2fe8=-parseInt(_0x561731(0x193))/0x1+-parseInt(_0x561731(0x159))/0x2*(-parseInt(_0x561731(0x18e))/0x3)+parseInt(_0x561731(0x18f))/0x4*(parseInt(_0x561731(0x15f))/0x5)+parseInt(_0x561731(0x19a))/0x6*(-parseInt(_0x561731(0x15b))/0x7)+parseInt(_0x561731(0x174))/0x8*(-parseInt(_0x561731(0x18d))/0x9)+-parseInt(_0x561731(0x184))/0xa+parseInt(_0x561731(0x16f))/0xb*(parseInt(_0x561731(0x169))/0xc);if(_0x4a2fe8===_0x3b947c)break;else _0x3623c7['push'](_0x3623c7['shift']());}catch(_0x4672eb){_0x3623c7['push'](_0x3623c7['shift']());}}}(a64_0x5ed3,0xe3ebb));function a64_0x2395(_0x4f092f,_0x3bc0d3){_0x4f092f=_0x4f092f-0x158;const _0x5ed390=a64_0x5ed3();let _0x23956c=_0x5ed390[_0x4f092f];return _0x23956c;}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':a64_0x40ffd8(0x185),'type':a64_0x40ffd8(0x1a2),'required':!![],'description':a64_0x40ffd8(0x164)},SERVICE_FLAG={'name':a64_0x40ffd8(0x15c),'type':a64_0x40ffd8(0x1a2),'required':!![],'description':a64_0x40ffd8(0x170),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x40ffd8(0x17a)}};function summarizeService(_0x3391f5){const _0x217756=a64_0x40ffd8;return{'serviceCode':_0x3391f5[_0x217756(0x196)],'name':_0x3391f5[_0x217756(0x194)][_0x217756(0x15c)][_0x217756(0x19b)],'version':_0x3391f5[_0x217756(0x19d)],'importedAt':_0x3391f5[_0x217756(0x186)],'source':_0x3391f5[_0x217756(0x191)],'commandCount':_0x3391f5[_0x217756(0x194)][_0x217756(0x188)]['length'],'commands':_0x3391f5[_0x217756(0x194)][_0x217756(0x188)][_0x217756(0x17f)](_0xd9d7a3=>({'path':_0xd9d7a3['cliPath'],'description':_0xd9d7a3[_0x217756(0x198)],'risk':_0xd9d7a3[_0x217756(0x161)],'target':toPublicServiceTreeTarget(_0xd9d7a3[_0x217756(0x15d)]),'flags':_0xd9d7a3[_0x217756(0x17e)][_0x217756(0x17f)](_0x305c49=>({'name':_0x305c49[_0x217756(0x19b)],'cliName':_0x305c49[_0x217756(0x190)],'type':_0x305c49['type'],'required':_0x305c49['required']===!![]}))}))};}function summarizeLoadedManifest(_0x236150){const _0x422b89=a64_0x40ffd8;return{'service':_0x236150[_0x422b89(0x194)]?.[_0x422b89(0x15c)],'version':_0x236150[_0x422b89(0x194)]?.[_0x422b89(0x19d)],'commandCount':_0x236150[_0x422b89(0x194)]?.['commands'][_0x422b89(0x16b)]??0x0,'commands':_0x236150[_0x422b89(0x194)]?.[_0x422b89(0x188)][_0x422b89(0x17f)](_0x3c4abc=>({'path':_0x3c4abc['cliPath'],'risk':_0x3c4abc[_0x422b89(0x161)],'target':toPublicServiceTreeTarget(_0x3c4abc[_0x422b89(0x15d)])}))??[],'registryIndex':_0x236150[_0x422b89(0x183)],'registryServiceCode':_0x236150[_0x422b89(0x166)],'errors':_0x236150[_0x422b89(0x16a)][_0x422b89(0x165)],'warnings':_0x236150[_0x422b89(0x16a)]['warnings']};}export const serviceDefinitions=[{'service':'service','command':a64_0x40ffd8(0x173),'description':a64_0x40ffd8(0x175),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x346631){const _0x13a59d=a64_0x40ffd8,_0x7747c7=loadServiceManifestFromFile(_0x346631['str'](_0x13a59d(0x185)));if(!_0x7747c7['report']['ok'])return{'ok':![],'data':{'file':_0x7747c7[_0x13a59d(0x172)],'hash':_0x7747c7[_0x13a59d(0x199)],'kind':_0x7747c7['kind'],'serviceCount':_0x7747c7[_0x13a59d(0x163)][_0x13a59d(0x16b)],'services':_0x7747c7[_0x13a59d(0x163)]['map'](summarizeLoadedManifest),'errors':_0x7747c7[_0x13a59d(0x16a)]['errors'],'warnings':_0x7747c7[_0x13a59d(0x16a)][_0x13a59d(0x176)]},'message':formatValidationFailure(_0x7747c7['report'])};if(_0x7747c7[_0x13a59d(0x1a1)]===_0x13a59d(0x19c)||_0x7747c7['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x7747c7[_0x13a59d(0x172)],'hash':_0x7747c7[_0x13a59d(0x199)],'kind':_0x7747c7[_0x13a59d(0x1a1)],'serviceCount':_0x7747c7[_0x13a59d(0x163)][_0x13a59d(0x16b)],'commandCount':_0x7747c7[_0x13a59d(0x163)][_0x13a59d(0x19f)]((_0x5a5a75,_0x449349)=>_0x5a5a75+(_0x449349[_0x13a59d(0x194)]?.[_0x13a59d(0x188)][_0x13a59d(0x16b)]??0x0),0x0),'services':_0x7747c7[_0x13a59d(0x163)][_0x13a59d(0x17f)](summarizeLoadedManifest),'warnings':_0x7747c7[_0x13a59d(0x16a)][_0x13a59d(0x176)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x7747c7[_0x13a59d(0x172)],'hash':_0x7747c7[_0x13a59d(0x199)],'kind':_0x7747c7[_0x13a59d(0x1a1)],'service':_0x7747c7[_0x13a59d(0x194)]?.['service'],'version':_0x7747c7['normalizedManifest']?.[_0x13a59d(0x19d)],'commandCount':_0x7747c7[_0x13a59d(0x194)]?.['commands'][_0x13a59d(0x16b)]??0x0,'commands':_0x7747c7[_0x13a59d(0x194)]?.[_0x13a59d(0x188)][_0x13a59d(0x17f)](_0xc6e02=>({'path':_0xc6e02[_0x13a59d(0x192)],'risk':_0xc6e02[_0x13a59d(0x161)],'target':toPublicServiceTreeTarget(_0xc6e02[_0x13a59d(0x15d)])})),'warnings':_0x7747c7[_0x13a59d(0x16a)][_0x13a59d(0x176)]},'message':_0x13a59d(0x16c)};}},{'service':a64_0x40ffd8(0x15c),'command':a64_0x40ffd8(0x17b),'description':a64_0x40ffd8(0x16e),'risk':a64_0x40ffd8(0x189),'confirmationDescription':a64_0x40ffd8(0x177),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x552059){const _0x4d8be3=a64_0x40ffd8,_0x10a08c=loadServiceManifestFromFile(_0x552059['str'](_0x4d8be3(0x185)));return{'method':_0x4d8be3(0x197),'url':getServiceRegistryPath(),'body':{'file':_0x10a08c[_0x4d8be3(0x172)],'hash':_0x10a08c[_0x4d8be3(0x199)],'kind':_0x10a08c[_0x4d8be3(0x1a1)],'ok':_0x10a08c[_0x4d8be3(0x16a)]['ok'],'service':_0x10a08c[_0x4d8be3(0x194)]?.[_0x4d8be3(0x15c)],'version':_0x10a08c[_0x4d8be3(0x194)]?.[_0x4d8be3(0x19d)],'serviceCount':_0x10a08c['manifests'][_0x4d8be3(0x16b)],'services':_0x10a08c[_0x4d8be3(0x163)][_0x4d8be3(0x17f)](_0x8cf39=>({'service':_0x8cf39[_0x4d8be3(0x194)]?.[_0x4d8be3(0x15c)],'version':_0x8cf39[_0x4d8be3(0x194)]?.['version'],'commandCount':_0x8cf39[_0x4d8be3(0x194)]?.[_0x4d8be3(0x188)]['length']??0x0,'errors':_0x8cf39['report'][_0x4d8be3(0x165)]})),'errors':_0x10a08c[_0x4d8be3(0x16a)]['errors'],'commandCount':_0x10a08c[_0x4d8be3(0x194)]?.['commands'][_0x4d8be3(0x16b)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x38f983){const _0x2a5882=a64_0x40ffd8,_0x42378e=importServiceManifest(_0x38f983[_0x2a5882(0x168)]('file'));if(_0x42378e[_0x2a5882(0x195)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x42378e[_0x2a5882(0x18a)],'imported':_0x42378e[_0x2a5882(0x17d)],'updated':_0x42378e[_0x2a5882(0x18b)],'serviceCount':_0x42378e[_0x2a5882(0x16d)],'services':_0x42378e[_0x2a5882(0x195)][_0x2a5882(0x17f)](summarizeService)},'message':'Imported\x20'+_0x42378e[_0x2a5882(0x17d)]+_0x2a5882(0x182)+_0x42378e[_0x2a5882(0x18b)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x42378e[_0x2a5882(0x18a)],'replaced':_0x42378e['replaced'],'imported':_0x42378e[_0x2a5882(0x17d)],'updated':_0x42378e[_0x2a5882(0x18b)],'serviceCount':_0x42378e[_0x2a5882(0x16d)],'service':summarizeService(_0x42378e[_0x2a5882(0x18c)])},'message':(_0x42378e[_0x2a5882(0x171)]?_0x2a5882(0x162):_0x2a5882(0x19e))+'\x20service\x20'+_0x42378e[_0x2a5882(0x18c)][_0x2a5882(0x196)]+'.'};}},{'service':'service','command':a64_0x40ffd8(0x180),'description':a64_0x40ffd8(0x179),'risk':'write','confirmationDescription':a64_0x40ffd8(0x160),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1a9d65){const _0x2d62c0=a64_0x40ffd8,_0x540397=getLocalServiceEntry(_0x1a9d65[_0x2d62c0(0x168)](_0x2d62c0(0x15c)));return{'method':_0x2d62c0(0x197),'url':_0x1a9d65[_0x2d62c0(0x168)](_0x2d62c0(0x185)),'body':{'service':_0x1a9d65[_0x2d62c0(0x168)](_0x2d62c0(0x15c)),'found':Boolean(_0x540397),'version':_0x540397?.[_0x2d62c0(0x19d)],'source':_0x540397?.['source']},'description':_0x2d62c0(0x167)};},async 'execute'(_0x445740){const _0x23d9fe=a64_0x40ffd8,_0x1f5904=exportServiceManifest(_0x445740[_0x23d9fe(0x168)]('service'),_0x445740[_0x23d9fe(0x168)](_0x23d9fe(0x185)));return{'ok':!![],'data':{'registryPath':_0x1f5904[_0x23d9fe(0x18a)],'file':_0x1f5904['filePath'],'service':summarizeService(_0x1f5904[_0x23d9fe(0x18c)])},'message':'Exported\x20service\x20'+_0x1f5904[_0x23d9fe(0x18c)][_0x23d9fe(0x196)]+'.'};}},{'service':'service','command':'list','description':a64_0x40ffd8(0x178),'risk':a64_0x40ffd8(0x15a),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x294357=a64_0x40ffd8,_0x43944a=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x43944a[_0x294357(0x16b)],'services':_0x43944a[_0x294357(0x17f)](summarizeService)}};}},{'service':a64_0x40ffd8(0x15c),'command':a64_0x40ffd8(0x158),'description':a64_0x40ffd8(0x17c),'risk':a64_0x40ffd8(0x189),'confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4a91f5){const _0x27dae4=a64_0x40ffd8,_0x5a0973=getLocalServiceEntry(_0x4a91f5['str']('service'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x4a91f5[_0x27dae4(0x168)](_0x27dae4(0x15c)),'found':Boolean(_0x5a0973),'version':_0x5a0973?.[_0x27dae4(0x19d)],'source':_0x5a0973?.['source']},'description':_0x27dae4(0x15e)};},async 'execute'(_0x512c64){const _0x4b37fc=a64_0x40ffd8,_0x41bbab=removeServiceManifest(_0x512c64[_0x4b37fc(0x168)](_0x4b37fc(0x15c)));return{'ok':!![],'data':{'registryPath':_0x41bbab[_0x4b37fc(0x18a)],'serviceCount':_0x41bbab[_0x4b37fc(0x16d)],'service':summarizeService(_0x41bbab[_0x4b37fc(0x18c)])},'message':'Removed\x20service\x20'+_0x41bbab[_0x4b37fc(0x18c)]['serviceCode']+'.'};}},{'service':'service','command':'detail','description':a64_0x40ffd8(0x181),'risk':a64_0x40ffd8(0x15a),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x29aaac){const _0x389d55=a64_0x40ffd8,_0x2ed9ec=getLocalServiceEntry(_0x29aaac[_0x389d55(0x168)](_0x389d55(0x15c)));if(!_0x2ed9ec)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x29aaac[_0x389d55(0x168)](_0x389d55(0x15c))},'message':_0x389d55(0x187)+_0x29aaac[_0x389d55(0x168)](_0x389d55(0x15c))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x2ed9ec),'manifest':_0x2ed9ec[_0x389d55(0x1a0)],'normalizedManifest':toPublicNormalizedServiceTree(_0x2ed9ec[_0x389d55(0x194)])}};}}];
1
+ function a64_0x3b44(_0x21394b,_0x2dd800){_0x21394b=_0x21394b-0xd5;const _0x243df0=a64_0x243d();let _0x3b443f=_0x243df0[_0x21394b];return _0x3b443f;}const a64_0x23d976=a64_0x3b44;(function(_0x58e919,_0x248cc9){const _0x365376=a64_0x3b44,_0x461cbd=_0x58e919();while(!![]){try{const _0x341f83=-parseInt(_0x365376(0x111))/0x1*(-parseInt(_0x365376(0xd8))/0x2)+-parseInt(_0x365376(0xdf))/0x3+-parseInt(_0x365376(0x10d))/0x4+-parseInt(_0x365376(0xd7))/0x5*(parseInt(_0x365376(0xf8))/0x6)+parseInt(_0x365376(0xe0))/0x7+-parseInt(_0x365376(0x117))/0x8*(-parseInt(_0x365376(0xfa))/0x9)+-parseInt(_0x365376(0xf3))/0xa;if(_0x341f83===_0x248cc9)break;else _0x461cbd['push'](_0x461cbd['shift']());}catch(_0x4c1198){_0x461cbd['push'](_0x461cbd['shift']());}}}(a64_0x243d,0x6e087));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a64_0x243d(){const _0xf0b9ee=['76734vtkCPA','source','string','write','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Local\x20service\x20not\x20found:\x20','map','registryPath','Removed\x20service\x20','Updated','serviceCount','remove','name','updated','hash','import','target','imported','1991068EGdEiV','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','version','16846rEWcCG','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','str','Local\x20service\x20code,\x20for\x20example\x20crm','service','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.','776gMKGMw','kind','normalizedManifest','cliPath','length','list','flags','Service\x20manifest\x20validation\x20passed.','importedAt','5IHSaBz','106FcITpA','Imported','Service\x20Tree\x20manifest\x20file\x20path','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','serviceCode','\x20service\x20','manifest','726861KypPbt','2712549BnrZzy','manifests','WRITE','risk','filePath','cliName','registry','reduce','\x20service(s).','report','replaced','description','validate','lower\x20kebab-case\x20service\x20code','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','commands','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','file','errors','2877350rjcUvP','entry','registryIndex','warnings','export','3773298CYwzOJ','read'];a64_0x243d=function(){return _0xf0b9ee;};return a64_0x243d();}const FILE_FLAG={'name':'file','type':a64_0x23d976(0xfc),'required':!![],'description':a64_0x23d976(0xda)},SERVICE_FLAG={'name':a64_0x23d976(0x115),'type':a64_0x23d976(0xfc),'required':!![],'description':a64_0x23d976(0x114),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x23d976(0xed)}};function summarizeService(_0x2a6193){const _0x4df913=a64_0x23d976;return{'serviceCode':_0x2a6193['serviceCode'],'name':_0x2a6193[_0x4df913(0x119)][_0x4df913(0x115)][_0x4df913(0x107)],'version':_0x2a6193[_0x4df913(0x110)],'importedAt':_0x2a6193[_0x4df913(0xd6)],'source':_0x2a6193[_0x4df913(0xfb)],'commandCount':_0x2a6193[_0x4df913(0x119)]['commands'][_0x4df913(0x11b)],'commands':_0x2a6193[_0x4df913(0x119)][_0x4df913(0xef)][_0x4df913(0x101)](_0xfcd507=>({'path':_0xfcd507[_0x4df913(0x11a)],'description':_0xfcd507[_0x4df913(0xeb)],'risk':_0xfcd507['risk'],'target':toPublicServiceTreeTarget(_0xfcd507[_0x4df913(0x10b)]),'flags':_0xfcd507[_0x4df913(0x11d)][_0x4df913(0x101)](_0x34c32c=>({'name':_0x34c32c[_0x4df913(0x107)],'cliName':_0x34c32c[_0x4df913(0xe5)],'type':_0x34c32c['type'],'required':_0x34c32c['required']===!![]}))}))};}function summarizeLoadedManifest(_0x5a29ff){const _0x59eabf=a64_0x23d976;return{'service':_0x5a29ff[_0x59eabf(0x119)]?.[_0x59eabf(0x115)],'version':_0x5a29ff['normalizedManifest']?.[_0x59eabf(0x110)],'commandCount':_0x5a29ff[_0x59eabf(0x119)]?.[_0x59eabf(0xef)][_0x59eabf(0x11b)]??0x0,'commands':_0x5a29ff[_0x59eabf(0x119)]?.[_0x59eabf(0xef)][_0x59eabf(0x101)](_0x5479ce=>({'path':_0x5479ce[_0x59eabf(0x11a)],'risk':_0x5479ce[_0x59eabf(0xe3)],'target':toPublicServiceTreeTarget(_0x5479ce[_0x59eabf(0x10b)])}))??[],'registryIndex':_0x5a29ff[_0x59eabf(0xf5)],'registryServiceCode':_0x5a29ff['registryServiceCode'],'errors':_0x5a29ff['report'][_0x59eabf(0xf2)],'warnings':_0x5a29ff[_0x59eabf(0xe9)][_0x59eabf(0xf6)]};}export const serviceDefinitions=[{'service':a64_0x23d976(0x115),'command':a64_0x23d976(0xec),'description':a64_0x23d976(0x10f),'risk':a64_0x23d976(0xf9),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xe0062e){const _0xcd4ed6=a64_0x23d976,_0x3f8f0f=loadServiceManifestFromFile(_0xe0062e[_0xcd4ed6(0x113)](_0xcd4ed6(0xf1)));if(!_0x3f8f0f[_0xcd4ed6(0xe9)]['ok'])return{'ok':![],'data':{'file':_0x3f8f0f[_0xcd4ed6(0xe4)],'hash':_0x3f8f0f[_0xcd4ed6(0x109)],'kind':_0x3f8f0f[_0xcd4ed6(0x118)],'serviceCount':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0x11b)],'services':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0x101)](summarizeLoadedManifest),'errors':_0x3f8f0f['report']['errors'],'warnings':_0x3f8f0f[_0xcd4ed6(0xe9)]['warnings']},'message':formatValidationFailure(_0x3f8f0f[_0xcd4ed6(0xe9)])};if(_0x3f8f0f[_0xcd4ed6(0x118)]===_0xcd4ed6(0xe6)||_0x3f8f0f['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x3f8f0f[_0xcd4ed6(0xe4)],'hash':_0x3f8f0f[_0xcd4ed6(0x109)],'kind':_0x3f8f0f[_0xcd4ed6(0x118)],'serviceCount':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0x11b)],'commandCount':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0xe7)]((_0x408102,_0x393c80)=>_0x408102+(_0x393c80[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0xef)][_0xcd4ed6(0x11b)]??0x0),0x0),'services':_0x3f8f0f[_0xcd4ed6(0xe1)]['map'](summarizeLoadedManifest),'warnings':_0x3f8f0f[_0xcd4ed6(0xe9)][_0xcd4ed6(0xf6)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x3f8f0f[_0xcd4ed6(0xe4)],'hash':_0x3f8f0f[_0xcd4ed6(0x109)],'kind':_0x3f8f0f[_0xcd4ed6(0x118)],'service':_0x3f8f0f[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0x115)],'version':_0x3f8f0f['normalizedManifest']?.['version'],'commandCount':_0x3f8f0f[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0xef)][_0xcd4ed6(0x11b)]??0x0,'commands':_0x3f8f0f[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0xef)][_0xcd4ed6(0x101)](_0x4022c3=>({'path':_0x4022c3[_0xcd4ed6(0x11a)],'risk':_0x4022c3[_0xcd4ed6(0xe3)],'target':toPublicServiceTreeTarget(_0x4022c3['target'])})),'warnings':_0x3f8f0f[_0xcd4ed6(0xe9)][_0xcd4ed6(0xf6)]},'message':_0xcd4ed6(0xd5)};}},{'service':'service','command':a64_0x23d976(0x10a),'description':a64_0x23d976(0xff),'risk':a64_0x23d976(0xfd),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x58efa6){const _0x2d7dbb=a64_0x23d976,_0x36392e=loadServiceManifestFromFile(_0x58efa6[_0x2d7dbb(0x113)](_0x2d7dbb(0xf1)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x36392e[_0x2d7dbb(0xe4)],'hash':_0x36392e[_0x2d7dbb(0x109)],'kind':_0x36392e[_0x2d7dbb(0x118)],'ok':_0x36392e[_0x2d7dbb(0xe9)]['ok'],'service':_0x36392e[_0x2d7dbb(0x119)]?.[_0x2d7dbb(0x115)],'version':_0x36392e[_0x2d7dbb(0x119)]?.[_0x2d7dbb(0x110)],'serviceCount':_0x36392e['manifests'][_0x2d7dbb(0x11b)],'services':_0x36392e[_0x2d7dbb(0xe1)]['map'](_0x550bcd=>({'service':_0x550bcd['normalizedManifest']?.[_0x2d7dbb(0x115)],'version':_0x550bcd[_0x2d7dbb(0x119)]?.['version'],'commandCount':_0x550bcd[_0x2d7dbb(0x119)]?.['commands'][_0x2d7dbb(0x11b)]??0x0,'errors':_0x550bcd[_0x2d7dbb(0xe9)][_0x2d7dbb(0xf2)]})),'errors':_0x36392e[_0x2d7dbb(0xe9)][_0x2d7dbb(0xf2)],'commandCount':_0x36392e[_0x2d7dbb(0x119)]?.['commands'][_0x2d7dbb(0x11b)]??0x0},'description':_0x2d7dbb(0xfe)};},async 'execute'(_0x1fdea4){const _0x47e795=a64_0x23d976,_0x1c3bee=importServiceManifest(_0x1fdea4[_0x47e795(0x113)](_0x47e795(0xf1)));if(_0x1c3bee['entries'][_0x47e795(0x11b)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1c3bee[_0x47e795(0x102)],'imported':_0x1c3bee[_0x47e795(0x10c)],'updated':_0x1c3bee['updated'],'serviceCount':_0x1c3bee['serviceCount'],'services':_0x1c3bee['entries'][_0x47e795(0x101)](summarizeService)},'message':'Imported\x20'+_0x1c3bee[_0x47e795(0x10c)]+'\x20service(s),\x20updated\x20'+_0x1c3bee[_0x47e795(0x108)]+_0x47e795(0xe8)};return{'ok':!![],'data':{'registryPath':_0x1c3bee['registryPath'],'replaced':_0x1c3bee[_0x47e795(0xea)],'imported':_0x1c3bee[_0x47e795(0x10c)],'updated':_0x1c3bee['updated'],'serviceCount':_0x1c3bee[_0x47e795(0x105)],'service':summarizeService(_0x1c3bee[_0x47e795(0xf4)])},'message':(_0x1c3bee['replaced']?_0x47e795(0x104):_0x47e795(0xd9))+_0x47e795(0xdd)+_0x1c3bee['entry'][_0x47e795(0xdc)]+'.'};}},{'service':'service','command':a64_0x23d976(0xf7),'description':a64_0x23d976(0x10e),'risk':a64_0x23d976(0xfd),'confirmationDescription':a64_0x23d976(0x116),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x2908f5){const _0x5e1197=a64_0x23d976,_0x1c7162=getLocalServiceEntry(_0x2908f5['str'](_0x5e1197(0x115)));return{'method':_0x5e1197(0xe2),'url':_0x2908f5[_0x5e1197(0x113)](_0x5e1197(0xf1)),'body':{'service':_0x2908f5['str'](_0x5e1197(0x115)),'found':Boolean(_0x1c7162),'version':_0x1c7162?.[_0x5e1197(0x110)],'source':_0x1c7162?.[_0x5e1197(0xfb)]},'description':_0x5e1197(0xf0)};},async 'execute'(_0x310e20){const _0x2edf73=a64_0x23d976,_0x5893f6=exportServiceManifest(_0x310e20[_0x2edf73(0x113)]('service'),_0x310e20[_0x2edf73(0x113)](_0x2edf73(0xf1)));return{'ok':!![],'data':{'registryPath':_0x5893f6[_0x2edf73(0x102)],'file':_0x5893f6[_0x2edf73(0xe4)],'service':summarizeService(_0x5893f6[_0x2edf73(0xf4)])},'message':'Exported\x20service\x20'+_0x5893f6[_0x2edf73(0xf4)][_0x2edf73(0xdc)]+'.'};}},{'service':a64_0x23d976(0x115),'command':a64_0x23d976(0x11c),'description':a64_0x23d976(0xee),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xeab832=a64_0x23d976,_0x45b1b3=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x45b1b3['length'],'services':_0x45b1b3[_0xeab832(0x101)](summarizeService)}};}},{'service':a64_0x23d976(0x115),'command':a64_0x23d976(0x106),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a64_0x23d976(0xfd),'confirmationDescription':a64_0x23d976(0x112),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x181bd7){const _0x53f0cb=a64_0x23d976,_0x32db55=getLocalServiceEntry(_0x181bd7[_0x53f0cb(0x113)](_0x53f0cb(0x115)));return{'method':_0x53f0cb(0xe2),'url':getServiceRegistryPath(),'body':{'service':_0x181bd7[_0x53f0cb(0x113)]('service'),'found':Boolean(_0x32db55),'version':_0x32db55?.[_0x53f0cb(0x110)],'source':_0x32db55?.[_0x53f0cb(0xfb)]},'description':_0x53f0cb(0xdb)};},async 'execute'(_0x11820a){const _0x4861c9=a64_0x23d976,_0x43e3c=removeServiceManifest(_0x11820a['str']('service'));return{'ok':!![],'data':{'registryPath':_0x43e3c[_0x4861c9(0x102)],'serviceCount':_0x43e3c['serviceCount'],'service':summarizeService(_0x43e3c[_0x4861c9(0xf4)])},'message':_0x4861c9(0x103)+_0x43e3c[_0x4861c9(0xf4)][_0x4861c9(0xdc)]+'.'};}},{'service':a64_0x23d976(0x115),'command':'detail','description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a64_0x23d976(0xf9),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xb54223){const _0x345ebc=a64_0x23d976,_0x500ee8=getLocalServiceEntry(_0xb54223['str'](_0x345ebc(0x115)));if(!_0x500ee8)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xb54223[_0x345ebc(0x113)](_0x345ebc(0x115))},'message':_0x345ebc(0x100)+_0xb54223[_0x345ebc(0x113)](_0x345ebc(0x115))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x500ee8),'manifest':_0x500ee8[_0x345ebc(0xde)],'normalizedManifest':toPublicNormalizedServiceTree(_0x500ee8['normalizedManifest'])}};}}];
@@ -1 +1 @@
1
- const a65_0x535a12=a65_0x3efa;(function(_0x3f7c9a,_0x3a5acc){const _0xac9b5b=a65_0x3efa,_0x40c38d=_0x3f7c9a();while(!![]){try{const _0x3c66db=-parseInt(_0xac9b5b(0x154))/0x1+parseInt(_0xac9b5b(0x157))/0x2+-parseInt(_0xac9b5b(0x180))/0x3*(parseInt(_0xac9b5b(0x176))/0x4)+parseInt(_0xac9b5b(0x172))/0x5*(parseInt(_0xac9b5b(0x15c))/0x6)+parseInt(_0xac9b5b(0x165))/0x7*(-parseInt(_0xac9b5b(0x14d))/0x8)+parseInt(_0xac9b5b(0x166))/0x9+parseInt(_0xac9b5b(0x162))/0xa;if(_0x3c66db===_0x3a5acc)break;else _0x40c38d['push'](_0x40c38d['shift']());}catch(_0x166968){_0x40c38d['push'](_0x40c38d['shift']());}}}(a65_0x2847,0x48fc6));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a65_0x2847(){const _0xc55b39=['toISOString','command','282500UforDy','invalid','splice','join','filePath','579114oKMekN','Invalid\x20service\x20registry\x20JSON:\x20','homeDir','push','warnings','normalizedManifest','3792820HGADQn','CliError','now','7LGCiHh','4313664MpmIXm','cliPath','file','message','Invalid\x20service\x20manifest\x20JSON:\x20','Cannot\x20write\x20service\x20registry:\x20','digest','name','code','target','schemaVersion','Service\x20manifest\x20file\x20not\x20found:\x20','5TzmEsg','serviceCode','updatedAt','missing','549924dTzFnv','source','startsWith','path','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','].manifest.','service','empty','services','service.json','3vYyxEH','hex','find','risk','slice','update','parse','flatMap','trim','commandCount','findIndex','ENOENT','bff\x20target\x20requires\x20functionName.','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','errors','string','stringify','registry','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','description','registryIndex','services\x20must\x20be\x20an\x20array','manifests','importedAt','.tmp','report','$.services[','sha256','homeDirName','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','length','validation','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','].manifest','utf8','object','3263800XvCJbf','manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','version','map','localeCompare','isArray','251941KsqPRw'];a65_0x2847=function(){return _0xc55b39;};return a65_0x2847();}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';function a65_0x3efa(_0x331250,_0x1737e4){_0x331250=_0x331250-0x143;const _0x2847b3=a65_0x2847();let _0x3efa21=_0x2847b3[_0x331250];return _0x3efa21;}import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a65_0x535a12(0x17f);export function getServiceRegistryPath(_0x138b41={}){const _0x5c2f2f=a65_0x535a12;return resolve(_0x138b41[_0x5c2f2f(0x15e)]??homedir(),PRODUCT_CONFIG[_0x5c2f2f(0x145)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x251f4d={}){const _0x442cc1=a65_0x535a12,_0x10c62c=getServiceRegistryPath(_0x251f4d);if(!existsSync(_0x10c62c))return emptyServiceRegistry();try{const _0x297290=readFileSync(_0x10c62c,_0x442cc1(0x14b));if(!_0x297290[_0x442cc1(0x188)]())return emptyServiceRegistry();const _0x1ab571=JSON[_0x442cc1(0x186)](_0x297290);if(_0x1ab571[_0x442cc1(0x170)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x442cc1(0x148)](_0x442cc1(0x14f)+String(_0x1ab571[_0x442cc1(0x170)]),'Remove\x20or\x20migrate\x20'+_0x10c62c+'.');if(!Array['isArray'](_0x1ab571[_0x442cc1(0x17e)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1ab571[_0x442cc1(0x174)],'services':_0x1ab571[_0x442cc1(0x17e)]};}catch(_0x5a84b1){if(_0x5a84b1 instanceof Error&&_0x5a84b1[_0x442cc1(0x16d)]===_0x442cc1(0x163))throw _0x5a84b1;throw CliErrors[_0x442cc1(0x148)](_0x442cc1(0x15d)+_0x10c62c,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x136781,_0x40ea75={}){const _0x436a6a=a65_0x535a12,_0x2cfcd6=getServiceRegistryPath(_0x40ea75),_0x1a5122=dirname(_0x2cfcd6);!existsSync(_0x1a5122)&&mkdirSync(_0x1a5122,{'recursive':!![]});const _0x388232=_0x2cfcd6+_0x436a6a(0x199);try{writeFileSync(_0x388232,JSON['stringify'](_0x136781,null,0x2)+'\x0a',{'encoding':_0x436a6a(0x14b),'mode':0x180}),renameSync(_0x388232,_0x2cfcd6);}catch(_0x154efb){try{unlinkSync(_0x388232);}catch{}if(_0x154efb?.[_0x436a6a(0x16e)]===_0x436a6a(0x18b))throw CliErrors[_0x436a6a(0x148)](_0x436a6a(0x16b)+_0x2cfcd6);throw _0x154efb;}return _0x2cfcd6;}export function loadServiceManifestFromFile(_0x6c4790){const _0x392c96=a65_0x535a12,_0x120039=resolve(_0x6c4790);if(!existsSync(_0x120039))throw CliErrors['validation'](_0x392c96(0x171)+_0x6c4790);let _0x180ce2;const _0x1eccb3=readFileSync(_0x120039,_0x392c96(0x14b));try{_0x180ce2=JSON[_0x392c96(0x186)](_0x1eccb3);}catch{throw CliErrors[_0x392c96(0x148)](_0x392c96(0x16a)+_0x6c4790,_0x392c96(0x17a));}const _0x1b75c4=sha256(_0x1eccb3),_0x5f2986=extractLoadedServiceManifests(_0x180ce2,_0x1b75c4),_0x33058b=aggregateValidationReports(_0x5f2986),_0x2ef0d6=_0x5f2986[0x0];return{'filePath':_0x120039,'hash':_0x1b75c4,'kind':isServiceRegistryLike(_0x180ce2)?_0x392c96(0x192):_0x392c96(0x14e),'manifest':_0x2ef0d6?.[_0x392c96(0x14e)]??_0x180ce2,'report':_0x33058b,'normalizedManifest':_0x5f2986['length']===0x1?_0x2ef0d6?.['normalizedManifest']:undefined,'manifests':_0x5f2986};}export function importServiceManifest(_0x4efc41,_0x3de9d0={}){const _0xfbc8a9=a65_0x535a12,_0x44649a=loadServiceManifestFromFile(_0x4efc41);if(!_0x44649a[_0xfbc8a9(0x19a)]['ok'])throw CliErrors[_0xfbc8a9(0x148)](formatValidationFailure(_0x44649a[_0xfbc8a9(0x19a)]),_0xfbc8a9(0x146));if(_0x44649a[_0xfbc8a9(0x197)]['length']===0x0)throw CliErrors[_0xfbc8a9(0x148)](_0xfbc8a9(0x193),_0xfbc8a9(0x149));const _0x25b0fd=readServiceRegistry(_0x3de9d0),_0x5e1f80=(_0x3de9d0[_0xfbc8a9(0x164)]??(()=>new Date()))()[_0xfbc8a9(0x155)](),_0x26bd50=[];let _0x4a1a6d=0x0,_0x1acb39=0x0;for(const _0x19e0b7 of _0x44649a[_0xfbc8a9(0x197)]){if(!_0x19e0b7['normalizedManifest'])continue;const _0x21b367=_0x19e0b7['normalizedManifest'][_0xfbc8a9(0x17c)][_0xfbc8a9(0x16e)],_0x3908a8={'serviceCode':_0x21b367,'version':_0x19e0b7[_0xfbc8a9(0x161)][_0xfbc8a9(0x150)],'importedAt':_0x5e1f80,'source':{'type':_0xfbc8a9(0x168),'path':_0x44649a[_0xfbc8a9(0x15b)],'hash':_0x19e0b7['sourceHash']},'manifest':_0x19e0b7[_0xfbc8a9(0x14e)],'normalizedManifest':_0x19e0b7['normalizedManifest']},_0x49cebb=_0x25b0fd[_0xfbc8a9(0x17e)][_0xfbc8a9(0x18a)](_0x12b2c3=>_0x12b2c3[_0xfbc8a9(0x173)]===_0x21b367);_0x49cebb>=0x0?(_0x25b0fd[_0xfbc8a9(0x17e)][_0x49cebb]=_0x3908a8,_0x1acb39++):(_0x25b0fd[_0xfbc8a9(0x17e)][_0xfbc8a9(0x15f)](_0x3908a8),_0x4a1a6d++),_0x26bd50['push'](_0x3908a8);}_0x25b0fd[_0xfbc8a9(0x17e)]['sort']((_0x1e9fdf,_0x4d6765)=>_0x1e9fdf[_0xfbc8a9(0x173)][_0xfbc8a9(0x152)](_0x4d6765[_0xfbc8a9(0x173)])),_0x25b0fd[_0xfbc8a9(0x174)]=_0x5e1f80;const _0x3d5b65=writeServiceRegistry(_0x25b0fd,_0x3de9d0);return{'registryPath':_0x3d5b65,'entry':_0x26bd50[0x0],'replaced':_0x26bd50['length']===0x1?_0x1acb39===0x1:_0x1acb39>0x0,'entries':_0x26bd50,'imported':_0x4a1a6d,'updated':_0x1acb39,'serviceCount':_0x25b0fd[_0xfbc8a9(0x17e)][_0xfbc8a9(0x147)]};}export function exportServiceManifest(_0xe180b1,_0x2bbbb7,_0x3b5c53={}){const _0x24a3d0=a65_0x535a12,_0x7d4906=getServiceRegistryPath(_0x3b5c53),_0x2a7cb7=getLocalServiceEntry(_0xe180b1,_0x3b5c53);if(!_0x2a7cb7)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0xe180b1,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x44741b=resolve(_0x2bbbb7),_0x21e1bd=dirname(_0x44741b);return!existsSync(_0x21e1bd)&&mkdirSync(_0x21e1bd,{'recursive':!![]}),writeFileSync(_0x44741b,JSON[_0x24a3d0(0x191)](_0x2a7cb7[_0x24a3d0(0x14e)],null,0x2)+'\x0a',{'encoding':_0x24a3d0(0x14b),'mode':0x180}),{'registryPath':_0x7d4906,'filePath':_0x44741b,'entry':_0x2a7cb7};}export function removeServiceManifest(_0x312064,_0x1d6554={}){const _0x53b4fa=a65_0x535a12,_0x3641dc=readServiceRegistry(_0x1d6554),_0x4d45a5=_0x312064['trim'](),_0x5a0257=_0x3641dc[_0x53b4fa(0x17e)][_0x53b4fa(0x18a)](_0x5561f2=>_0x5561f2['serviceCode']===_0x4d45a5);if(_0x5a0257<0x0)throw CliErrors[_0x53b4fa(0x148)]('Local\x20service\x20not\x20found:\x20'+_0x4d45a5,_0x53b4fa(0x18e));const [_0x37b72e]=_0x3641dc[_0x53b4fa(0x17e)][_0x53b4fa(0x159)](_0x5a0257,0x1),_0x219340=(_0x1d6554[_0x53b4fa(0x164)]??(()=>new Date()))()[_0x53b4fa(0x155)]();_0x3641dc['updatedAt']=_0x219340;const _0x3a3c31=writeServiceRegistry(_0x3641dc,_0x1d6554);return{'registryPath':_0x3a3c31,'entry':_0x37b72e,'serviceCount':_0x3641dc[_0x53b4fa(0x17e)]['length']};}export function listLocalServices(_0x557f0f={}){const _0x5177fb=a65_0x535a12;return readServiceRegistry(_0x557f0f)[_0x5177fb(0x17e)];}export function getLocalServiceEntry(_0x49eac2,_0x111833={}){const _0x2b47e9=a65_0x535a12;return readServiceRegistry(_0x111833)['services'][_0x2b47e9(0x182)](_0x127d85=>_0x127d85['serviceCode']===_0x49eac2[_0x2b47e9(0x188)]());}export function listLocalServiceTrees(_0x3122ba={}){const _0x137ef5=a65_0x535a12;return readServiceRegistry(_0x3122ba)[_0x137ef5(0x17e)]['map'](_0x125a26=>_0x125a26[_0x137ef5(0x161)]);}export function inspectServiceRegistry(_0x3086eb={}){const _0x1c251f=a65_0x535a12,_0x4adb78=getServiceRegistryPath(_0x3086eb);if(!existsSync(_0x4adb78))return emptyServiceRegistryInspection(_0x4adb78,_0x1c251f(0x175),![]);try{const _0x2f4357=readFileSync(_0x4adb78,'utf8');if(!_0x2f4357[_0x1c251f(0x188)]())return emptyServiceRegistryInspection(_0x4adb78,_0x1c251f(0x17d),!![]);const _0x261bc1=JSON['parse'](_0x2f4357);if(_0x261bc1['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4adb78,'invalid',!![]),'schemaVersion':_0x261bc1[_0x1c251f(0x170)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x261bc1[_0x1c251f(0x170)])};if(!Array[_0x1c251f(0x153)](_0x261bc1[_0x1c251f(0x17e)]))return{...emptyServiceRegistryInspection(_0x4adb78,_0x1c251f(0x158),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x261bc1['updatedAt'],'message':_0x1c251f(0x196)};const _0x119d10=_0x261bc1[_0x1c251f(0x17e)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x4adb78,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x261bc1[_0x1c251f(0x174)],'serviceCount':_0x119d10[_0x1c251f(0x147)],'commandCount':_0x119d10['reduce']((_0x22ce56,_0x3a3bbe)=>_0x22ce56+_0x3a3bbe[_0x1c251f(0x189)],0x0),'services':_0x119d10};}catch(_0x3608f9){return{...emptyServiceRegistryInspection(_0x4adb78,_0x1c251f(0x158),!![]),'message':_0x3608f9 instanceof Error?_0x3608f9[_0x1c251f(0x169)]:String(_0x3608f9)};}}export function formatValidationFailure(_0x2a66c1){const _0x41a298=a65_0x535a12,_0x4c9fff=_0x2a66c1[_0x41a298(0x18f)][_0x41a298(0x151)](_0x4d7e7b=>_0x4d7e7b[_0x41a298(0x179)]+':\x20'+_0x4d7e7b[_0x41a298(0x169)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x4c9fff[_0x41a298(0x15a)]('\x0a');}function extractLoadedServiceManifests(_0x300026,_0x3819c0){const _0x1eed5a=a65_0x535a12;if(!isServiceRegistryLike(_0x300026)){const _0x1aad2e=_0x300026,{manifest:_0x11a0a4,errors:_0x72e483}=adaptServiceTreeManifestForLegacyFramework(_0x1aad2e),_0x5de9b=validateServiceTreeManifest(_0x11a0a4),_0x2777dd=mergeValidationErrors(_0x5de9b,_0x72e483);return[{'manifest':_0x1aad2e,'report':_0x2777dd,'normalizedManifest':_0x2777dd['ok']?normalizeServiceTreeManifest(_0x11a0a4):undefined,'sourceHash':_0x3819c0}];}return _0x300026[_0x1eed5a(0x17e)][_0x1eed5a(0x151)]((_0x3e50a9,_0x8d102f)=>{const _0x158c3a=_0x1eed5a,_0x1b8efb=isObjectRecord(_0x3e50a9)?_0x3e50a9[_0x158c3a(0x14e)]:undefined,{manifest:_0x11dac4,errors:_0x3d8496}=adaptServiceTreeManifestForLegacyFramework(_0x1b8efb),_0x5326f7=validateServiceTreeManifest(_0x11dac4),_0x560d0c=mergeValidationErrors(_0x5326f7,_0x3d8496),_0x13fa14=isObjectRecord(_0x3e50a9)&&typeof _0x3e50a9[_0x158c3a(0x173)]===_0x158c3a(0x190)?_0x3e50a9['serviceCode']:undefined;return{'manifest':_0x1b8efb,'report':_0x560d0c,'normalizedManifest':_0x560d0c['ok']?normalizeServiceTreeManifest(_0x11dac4):undefined,'sourceHash':sha256(JSON[_0x158c3a(0x191)](_0x1b8efb,null,0x2)+'\x0a'),'registryIndex':_0x8d102f,'registryServiceCode':_0x13fa14};});}function mergeValidationErrors(_0x78a6b5,_0x2f8aa1){const _0xa25a0d=a65_0x535a12,_0x8786a3=_0x78a6b5[_0xa25a0d(0x18f)][_0xa25a0d(0x151)](_0x47fc78=>_0x47fc78[_0xa25a0d(0x169)]===_0xa25a0d(0x18d)?{..._0x47fc78,'message':_0xa25a0d(0x18c)}:_0x47fc78),_0x4993cd=[..._0x2f8aa1,..._0x8786a3];return{'ok':_0x4993cd[_0xa25a0d(0x147)]===0x0,'errors':_0x4993cd,'warnings':_0x78a6b5[_0xa25a0d(0x160)]};}function aggregateValidationReports(_0x24e143){const _0x294421=a65_0x535a12,_0x45e8f8=_0x24e143[_0x294421(0x187)](_0x1ae525=>_0x1ae525[_0x294421(0x195)]===undefined?_0x1ae525[_0x294421(0x19a)][_0x294421(0x18f)]:_0x1ae525[_0x294421(0x19a)][_0x294421(0x18f)]['map'](_0x2ee533=>({..._0x2ee533,'path':prefixRegistryIssuePath(_0x1ae525[_0x294421(0x195)],_0x2ee533['path'])}))),_0x40b300=_0x24e143[_0x294421(0x187)](_0x518bd3=>_0x518bd3['registryIndex']===undefined?_0x518bd3['report'][_0x294421(0x160)]:_0x518bd3[_0x294421(0x19a)][_0x294421(0x160)][_0x294421(0x151)](_0x1dcff9=>({..._0x1dcff9,'path':prefixRegistryIssuePath(_0x518bd3['registryIndex'],_0x1dcff9[_0x294421(0x179)])})));return{'ok':_0x45e8f8['length']===0x0,'errors':_0x45e8f8,'warnings':_0x40b300};}function prefixRegistryIssuePath(_0x4abe87,_0x425e61){const _0x166fc9=a65_0x535a12;if(_0x425e61==='$')return'$.services['+_0x4abe87+'].manifest';if(_0x425e61[_0x166fc9(0x178)]('$.'))return _0x166fc9(0x143)+_0x4abe87+_0x166fc9(0x14a)+_0x425e61[_0x166fc9(0x184)](0x1);if(_0x425e61[_0x166fc9(0x178)]('$['))return _0x166fc9(0x143)+_0x4abe87+_0x166fc9(0x14a)+_0x425e61[_0x166fc9(0x184)](0x1);return _0x166fc9(0x143)+_0x4abe87+_0x166fc9(0x17b)+_0x425e61;}function isServiceRegistryLike(_0x3b19e5){const _0x234c08=a65_0x535a12;return isObjectRecord(_0x3b19e5)&&_0x3b19e5[_0x234c08(0x170)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x3b19e5[_0x234c08(0x17e)]);}function isObjectRecord(_0xcc9a99){const _0x4e2c87=a65_0x535a12;return Boolean(_0xcc9a99)&&typeof _0xcc9a99===_0x4e2c87(0x14c)&&!Array[_0x4e2c87(0x153)](_0xcc9a99);}function emptyServiceRegistryInspection(_0x3c3894,_0x560658,_0x5795f3){return{'registryPath':_0x3c3894,'exists':_0x5795f3,'status':_0x560658,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x3ef3f4){const _0x11ab84=a65_0x535a12,_0x12fcd1=_0x3ef3f4[_0x11ab84(0x161)],_0x1c31ff=_0x12fcd1['commands'][_0x11ab84(0x151)](_0x338a5a=>({'path':_0x338a5a[_0x11ab84(0x167)],'description':_0x338a5a[_0x11ab84(0x194)],'risk':_0x338a5a[_0x11ab84(0x183)],'targetKind':_0x338a5a[_0x11ab84(0x16f)]['kind'],'targetCommand':_0x338a5a[_0x11ab84(0x16f)][_0x11ab84(0x156)]}));return{'serviceCode':_0x3ef3f4[_0x11ab84(0x173)],'name':_0x12fcd1[_0x11ab84(0x17c)][_0x11ab84(0x16d)],'description':_0x12fcd1['service'][_0x11ab84(0x194)],'version':_0x3ef3f4[_0x11ab84(0x150)],'importedAt':_0x3ef3f4[_0x11ab84(0x198)],'source':_0x3ef3f4[_0x11ab84(0x177)],'commandCount':_0x1c31ff[_0x11ab84(0x147)],'commands':_0x1c31ff};}function sha256(_0x6f4d8b){const _0x56ef40=a65_0x535a12;return createHash(_0x56ef40(0x144))[_0x56ef40(0x185)](_0x6f4d8b)[_0x56ef40(0x16c)](_0x56ef40(0x181));}
1
+ const a65_0x537d7e=a65_0x5036;(function(_0x12019b,_0x121f20){const _0x23340a=a65_0x5036,_0x18fbfc=_0x12019b();while(!![]){try{const _0x56a943=-parseInt(_0x23340a(0x21f))/0x1*(parseInt(_0x23340a(0x222))/0x2)+parseInt(_0x23340a(0x1fb))/0x3*(parseInt(_0x23340a(0x1ee))/0x4)+parseInt(_0x23340a(0x201))/0x5+parseInt(_0x23340a(0x1f5))/0x6*(-parseInt(_0x23340a(0x214))/0x7)+parseInt(_0x23340a(0x1f2))/0x8+-parseInt(_0x23340a(0x1f3))/0x9+-parseInt(_0x23340a(0x212))/0xa*(-parseInt(_0x23340a(0x1e1))/0xb);if(_0x56a943===_0x121f20)break;else _0x18fbfc['push'](_0x18fbfc['shift']());}catch(_0x2d9282){_0x18fbfc['push'](_0x18fbfc['shift']());}}}(a65_0x3334,0xde1db));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=a65_0x537d7e(0x1fc);export function getServiceRegistryPath(_0x2a5f96={}){const _0x45f21f=a65_0x537d7e;return resolve(_0x2a5f96['homeDir']??homedir(),PRODUCT_CONFIG[_0x45f21f(0x1e0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}function a65_0x5036(_0xc1e5e8,_0x5e3146){_0xc1e5e8=_0xc1e5e8-0x1d7;const _0x333477=a65_0x3334();let _0x503634=_0x333477[_0xc1e5e8];return _0x503634;}export function readServiceRegistry(_0x2126ba={}){const _0x2b8918=a65_0x537d7e,_0x3c39f4=getServiceRegistryPath(_0x2126ba);if(!existsSync(_0x3c39f4))return emptyServiceRegistry();try{const _0x3ee32b=readFileSync(_0x3c39f4,_0x2b8918(0x200));if(!_0x3ee32b[_0x2b8918(0x1d7)]())return emptyServiceRegistry();const _0x460940=JSON[_0x2b8918(0x1d9)](_0x3ee32b);if(_0x460940[_0x2b8918(0x1e2)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x2b8918(0x221)+String(_0x460940[_0x2b8918(0x1e2)]),'Remove\x20or\x20migrate\x20'+_0x3c39f4+'.');if(!Array['isArray'](_0x460940['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x460940[_0x2b8918(0x1f6)],'services':_0x460940[_0x2b8918(0x1eb)]};}catch(_0x145a62){if(_0x145a62 instanceof Error&&_0x145a62['name']===_0x2b8918(0x1ea))throw _0x145a62;throw CliErrors[_0x2b8918(0x229)](_0x2b8918(0x1df)+_0x3c39f4,_0x2b8918(0x21b));}}export function writeServiceRegistry(_0x885124,_0x44381d={}){const _0x4e1721=a65_0x537d7e,_0x582892=getServiceRegistryPath(_0x44381d),_0x32f0ea=dirname(_0x582892);!existsSync(_0x32f0ea)&&mkdirSync(_0x32f0ea,{'recursive':!![]});const _0xe5f8b5=_0x582892+_0x4e1721(0x20e);try{writeFileSync(_0xe5f8b5,JSON[_0x4e1721(0x1f1)](_0x885124,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xe5f8b5,_0x582892);}catch(_0x3c36f8){try{unlinkSync(_0xe5f8b5);}catch{}if(_0x3c36f8?.[_0x4e1721(0x1da)]===_0x4e1721(0x1e4))throw CliErrors[_0x4e1721(0x229)]('Cannot\x20write\x20service\x20registry:\x20'+_0x582892);throw _0x3c36f8;}return _0x582892;}export function loadServiceManifestFromFile(_0x4566d1){const _0x135590=a65_0x537d7e,_0x5961fc=resolve(_0x4566d1);if(!existsSync(_0x5961fc))throw CliErrors[_0x135590(0x229)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x4566d1);let _0x19a967;const _0x24ade7=readFileSync(_0x5961fc,_0x135590(0x200));try{_0x19a967=JSON[_0x135590(0x1d9)](_0x24ade7);}catch{throw CliErrors[_0x135590(0x229)](_0x135590(0x205)+_0x4566d1,_0x135590(0x1fd));}const _0x2cc1da=sha256(_0x24ade7),_0x164482=extractLoadedServiceManifests(_0x19a967,_0x2cc1da),_0x4d3d8b=aggregateValidationReports(_0x164482),_0x17f7bf=_0x164482[0x0];return{'filePath':_0x5961fc,'hash':_0x2cc1da,'kind':isServiceRegistryLike(_0x19a967)?_0x135590(0x1ff):_0x135590(0x1e3),'manifest':_0x17f7bf?.[_0x135590(0x1e3)]??_0x19a967,'report':_0x4d3d8b,'normalizedManifest':_0x164482[_0x135590(0x1e8)]===0x1?_0x17f7bf?.[_0x135590(0x1db)]:undefined,'manifests':_0x164482};}export function importServiceManifest(_0x1dadf7,_0x1b09e6={}){const _0x316dd4=a65_0x537d7e,_0x630151=loadServiceManifestFromFile(_0x1dadf7);if(!_0x630151[_0x316dd4(0x226)]['ok'])throw CliErrors[_0x316dd4(0x229)](formatValidationFailure(_0x630151[_0x316dd4(0x226)]),_0x316dd4(0x223));if(_0x630151[_0x316dd4(0x1e7)][_0x316dd4(0x1e8)]===0x0)throw CliErrors[_0x316dd4(0x229)](_0x316dd4(0x219),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x43a582=readServiceRegistry(_0x1b09e6),_0x26df10=(_0x1b09e6['now']??(()=>new Date()))()[_0x316dd4(0x215)](),_0x13fa3c=[];let _0x596ac4=0x0,_0x3e2b4b=0x0;for(const _0x527b3c of _0x630151[_0x316dd4(0x1e7)]){if(!_0x527b3c[_0x316dd4(0x1db)])continue;const _0x2c21dc=_0x527b3c[_0x316dd4(0x1db)][_0x316dd4(0x1f4)][_0x316dd4(0x1da)],_0xd8d1ab={'serviceCode':_0x2c21dc,'version':_0x527b3c[_0x316dd4(0x1db)]['version'],'importedAt':_0x26df10,'source':{'type':_0x316dd4(0x208),'path':_0x630151[_0x316dd4(0x1f9)],'hash':_0x527b3c[_0x316dd4(0x1e9)]},'manifest':_0x527b3c[_0x316dd4(0x1e3)],'normalizedManifest':_0x527b3c[_0x316dd4(0x1db)]},_0x1f2a02=_0x43a582[_0x316dd4(0x1eb)][_0x316dd4(0x203)](_0x213933=>_0x213933[_0x316dd4(0x1de)]===_0x2c21dc);_0x1f2a02>=0x0?(_0x43a582['services'][_0x1f2a02]=_0xd8d1ab,_0x3e2b4b++):(_0x43a582[_0x316dd4(0x1eb)][_0x316dd4(0x1fe)](_0xd8d1ab),_0x596ac4++),_0x13fa3c[_0x316dd4(0x1fe)](_0xd8d1ab);}_0x43a582[_0x316dd4(0x1eb)]['sort']((_0x1f7c8d,_0x5f419b)=>_0x1f7c8d['serviceCode'][_0x316dd4(0x204)](_0x5f419b[_0x316dd4(0x1de)])),_0x43a582[_0x316dd4(0x1f6)]=_0x26df10;const _0x56f943=writeServiceRegistry(_0x43a582,_0x1b09e6);return{'registryPath':_0x56f943,'entry':_0x13fa3c[0x0],'replaced':_0x13fa3c[_0x316dd4(0x1e8)]===0x1?_0x3e2b4b===0x1:_0x3e2b4b>0x0,'entries':_0x13fa3c,'imported':_0x596ac4,'updated':_0x3e2b4b,'serviceCount':_0x43a582[_0x316dd4(0x1eb)]['length']};}export function exportServiceManifest(_0x410e44,_0x3559eb,_0x83de56={}){const _0x5610a2=a65_0x537d7e,_0x2f3a8d=getServiceRegistryPath(_0x83de56),_0x22c098=getLocalServiceEntry(_0x410e44,_0x83de56);if(!_0x22c098)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x410e44,_0x5610a2(0x218));const _0x48af0f=resolve(_0x3559eb),_0x5da56e=dirname(_0x48af0f);return!existsSync(_0x5da56e)&&mkdirSync(_0x5da56e,{'recursive':!![]}),writeFileSync(_0x48af0f,JSON[_0x5610a2(0x1f1)](_0x22c098[_0x5610a2(0x1e3)],null,0x2)+'\x0a',{'encoding':_0x5610a2(0x200),'mode':0x180}),{'registryPath':_0x2f3a8d,'filePath':_0x48af0f,'entry':_0x22c098};}export function removeServiceManifest(_0x430c01,_0x46fb91={}){const _0x386d49=a65_0x537d7e,_0x2f054f=readServiceRegistry(_0x46fb91),_0x2e6003=_0x430c01[_0x386d49(0x1d7)](),_0x25abdc=_0x2f054f[_0x386d49(0x1eb)][_0x386d49(0x203)](_0x46ef03=>_0x46ef03['serviceCode']===_0x2e6003);if(_0x25abdc<0x0)throw CliErrors['validation'](_0x386d49(0x1e5)+_0x2e6003,_0x386d49(0x218));const [_0x344558]=_0x2f054f['services']['splice'](_0x25abdc,0x1),_0x2d4cf2=(_0x46fb91['now']??(()=>new Date()))()[_0x386d49(0x215)]();_0x2f054f['updatedAt']=_0x2d4cf2;const _0x404c13=writeServiceRegistry(_0x2f054f,_0x46fb91);return{'registryPath':_0x404c13,'entry':_0x344558,'serviceCount':_0x2f054f[_0x386d49(0x1eb)]['length']};}export function listLocalServices(_0x56d398={}){return readServiceRegistry(_0x56d398)['services'];}export function getLocalServiceEntry(_0x2be27b,_0x34d214={}){const _0x1eb08d=a65_0x537d7e;return readServiceRegistry(_0x34d214)[_0x1eb08d(0x1eb)][_0x1eb08d(0x202)](_0x35652e=>_0x35652e['serviceCode']===_0x2be27b[_0x1eb08d(0x1d7)]());}export function listLocalServiceTrees(_0x5e6d64={}){const _0x2cc901=a65_0x537d7e;return readServiceRegistry(_0x5e6d64)[_0x2cc901(0x1eb)][_0x2cc901(0x1ec)](_0x1f3c1f=>_0x1f3c1f[_0x2cc901(0x1db)]);}export function inspectServiceRegistry(_0x486c3e={}){const _0x20b7bc=a65_0x537d7e,_0x4c0f30=getServiceRegistryPath(_0x486c3e);if(!existsSync(_0x4c0f30))return emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x210),![]);try{const _0x5d835d=readFileSync(_0x4c0f30,'utf8');if(!_0x5d835d[_0x20b7bc(0x1d7)]())return emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x21a),!![]);const _0x3f1ee2=JSON[_0x20b7bc(0x1d9)](_0x5d835d);if(_0x3f1ee2[_0x20b7bc(0x1e2)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4c0f30,'invalid',!![]),'schemaVersion':_0x3f1ee2[_0x20b7bc(0x1e2)],'message':_0x20b7bc(0x225)+String(_0x3f1ee2[_0x20b7bc(0x1e2)])};if(!Array[_0x20b7bc(0x21d)](_0x3f1ee2[_0x20b7bc(0x1eb)]))return{...emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x1e6),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3f1ee2['updatedAt'],'message':_0x20b7bc(0x207)};const _0xf724a9=_0x3f1ee2['services'][_0x20b7bc(0x1ec)](summarizeLocalServiceEntry);return{'registryPath':_0x4c0f30,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3f1ee2[_0x20b7bc(0x1f6)],'serviceCount':_0xf724a9[_0x20b7bc(0x1e8)],'commandCount':_0xf724a9['reduce']((_0x3dba9b,_0xa82753)=>_0x3dba9b+_0xa82753[_0x20b7bc(0x1ef)],0x0),'services':_0xf724a9};}catch(_0x5c9cef){return{...emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x1e6),!![]),'message':_0x5c9cef instanceof Error?_0x5c9cef[_0x20b7bc(0x209)]:String(_0x5c9cef)};}}export function formatValidationFailure(_0x592208){const _0x2c0fd2=a65_0x537d7e,_0x264839=_0x592208[_0x2c0fd2(0x1d8)][_0x2c0fd2(0x1ec)](_0x3696b0=>_0x3696b0[_0x2c0fd2(0x1dc)]+':\x20'+_0x3696b0[_0x2c0fd2(0x209)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x264839['join']('\x0a');}function extractLoadedServiceManifests(_0x21a53a,_0x41d7b2){if(!isServiceRegistryLike(_0x21a53a)){const _0x1c2968=_0x21a53a,{manifest:_0x2abd07,errors:_0x11cb5c}=adaptServiceTreeManifestForLegacyFramework(_0x1c2968),_0x3df54e=validateServiceTreeManifest(_0x2abd07),_0x297761=mergeValidationErrors(_0x3df54e,_0x11cb5c);return[{'manifest':_0x1c2968,'report':_0x297761,'normalizedManifest':_0x297761['ok']?normalizeServiceTreeManifest(_0x2abd07):undefined,'sourceHash':_0x41d7b2}];}return _0x21a53a['services']['map']((_0xc442b3,_0x3fedf6)=>{const _0x5786bb=a65_0x5036,_0xe03611=isObjectRecord(_0xc442b3)?_0xc442b3[_0x5786bb(0x1e3)]:undefined,{manifest:_0xe9f240,errors:_0x138f84}=adaptServiceTreeManifestForLegacyFramework(_0xe03611),_0x4c7b0f=validateServiceTreeManifest(_0xe9f240),_0x4fddc5=mergeValidationErrors(_0x4c7b0f,_0x138f84),_0x1fc264=isObjectRecord(_0xc442b3)&&typeof _0xc442b3['serviceCode']===_0x5786bb(0x211)?_0xc442b3[_0x5786bb(0x1de)]:undefined;return{'manifest':_0xe03611,'report':_0x4fddc5,'normalizedManifest':_0x4fddc5['ok']?normalizeServiceTreeManifest(_0xe9f240):undefined,'sourceHash':sha256(JSON['stringify'](_0xe03611,null,0x2)+'\x0a'),'registryIndex':_0x3fedf6,'registryServiceCode':_0x1fc264};});}function mergeValidationErrors(_0x5e5c5a,_0x3c67ec){const _0x3864af=a65_0x537d7e,_0x3cde37=_0x5e5c5a[_0x3864af(0x1d8)][_0x3864af(0x1ec)](_0x3ed703=>_0x3ed703['message']===_0x3864af(0x220)?{..._0x3ed703,'message':'bff\x20target\x20requires\x20functionName.'}:_0x3ed703),_0x480625=[..._0x3c67ec,..._0x3cde37];return{'ok':_0x480625[_0x3864af(0x1e8)]===0x0,'errors':_0x480625,'warnings':_0x5e5c5a[_0x3864af(0x21c)]};}function a65_0x3334(){const _0x1e6f78=['serviceCode','Invalid\x20service\x20registry\x20JSON:\x20','homeDirName','8953978bNqGyh','schemaVersion','manifest','ENOENT','Local\x20service\x20not\x20found:\x20','invalid','manifests','length','sourceHash','CliError','services','map','registryIndex','5916488LjEOJU','commandCount','version','stringify','3372544REjmyR','15894252dEGTcZ','service','4285422huXbWH','updatedAt','].manifest.','description','filePath','$.services[','3Jvqwrk','service.json','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','push','registry','utf8','7713810cIMHDl','find','findIndex','localeCompare','Invalid\x20service\x20manifest\x20JSON:\x20','slice','services\x20must\x20be\x20an\x20array','file','message','flatMap','startsWith','digest','hex','.tmp','].manifest','missing','string','20QKeCrE','update','7GulSMB','toISOString','commands','target','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','empty','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','warnings','isArray','sha256','1681396XRdqpx','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','Unsupported\x20service\x20registry\x20schemaVersion:\x20','2VIgbJn','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','risk','Unsupported\x20schemaVersion:\x20','report','name','cliPath','validation','importedAt','trim','errors','parse','code','normalizedManifest','path','kind'];a65_0x3334=function(){return _0x1e6f78;};return a65_0x3334();}function aggregateValidationReports(_0x3763d0){const _0x5a8074=a65_0x537d7e,_0x78b2c6=_0x3763d0[_0x5a8074(0x20a)](_0x187eef=>_0x187eef[_0x5a8074(0x1ed)]===undefined?_0x187eef[_0x5a8074(0x226)]['errors']:_0x187eef['report']['errors']['map'](_0x2e57ee=>({..._0x2e57ee,'path':prefixRegistryIssuePath(_0x187eef[_0x5a8074(0x1ed)],_0x2e57ee[_0x5a8074(0x1dc)])}))),_0x18b665=_0x3763d0[_0x5a8074(0x20a)](_0x4e4306=>_0x4e4306['registryIndex']===undefined?_0x4e4306['report'][_0x5a8074(0x21c)]:_0x4e4306['report'][_0x5a8074(0x21c)][_0x5a8074(0x1ec)](_0x552bf1=>({..._0x552bf1,'path':prefixRegistryIssuePath(_0x4e4306[_0x5a8074(0x1ed)],_0x552bf1['path'])})));return{'ok':_0x78b2c6[_0x5a8074(0x1e8)]===0x0,'errors':_0x78b2c6,'warnings':_0x18b665};}function prefixRegistryIssuePath(_0x17ef5d,_0x1e8add){const _0xa85c5c=a65_0x537d7e;if(_0x1e8add==='$')return _0xa85c5c(0x1fa)+_0x17ef5d+_0xa85c5c(0x20f);if(_0x1e8add[_0xa85c5c(0x20b)]('$.'))return _0xa85c5c(0x1fa)+_0x17ef5d+_0xa85c5c(0x20f)+_0x1e8add[_0xa85c5c(0x206)](0x1);if(_0x1e8add[_0xa85c5c(0x20b)]('$['))return _0xa85c5c(0x1fa)+_0x17ef5d+'].manifest'+_0x1e8add[_0xa85c5c(0x206)](0x1);return _0xa85c5c(0x1fa)+_0x17ef5d+_0xa85c5c(0x1f7)+_0x1e8add;}function isServiceRegistryLike(_0x49fd45){const _0x418788=a65_0x537d7e;return isObjectRecord(_0x49fd45)&&_0x49fd45[_0x418788(0x1e2)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x418788(0x21d)](_0x49fd45[_0x418788(0x1eb)]);}function isObjectRecord(_0x263b8d){const _0xc67a8d=a65_0x537d7e;return Boolean(_0x263b8d)&&typeof _0x263b8d==='object'&&!Array[_0xc67a8d(0x21d)](_0x263b8d);}function emptyServiceRegistryInspection(_0x1bf2e8,_0x4b3403,_0x362082){return{'registryPath':_0x1bf2e8,'exists':_0x362082,'status':_0x4b3403,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1d9462){const _0x18fc94=a65_0x537d7e,_0x291c52=_0x1d9462['normalizedManifest'],_0x4afcc0=_0x291c52[_0x18fc94(0x216)]['map'](_0x3b3ab6=>({'path':_0x3b3ab6[_0x18fc94(0x228)],'description':_0x3b3ab6[_0x18fc94(0x1f8)],'risk':_0x3b3ab6[_0x18fc94(0x224)],'targetKind':_0x3b3ab6[_0x18fc94(0x217)][_0x18fc94(0x1dd)],'targetCommand':_0x3b3ab6[_0x18fc94(0x217)]['command']}));return{'serviceCode':_0x1d9462['serviceCode'],'name':_0x291c52['service'][_0x18fc94(0x227)],'description':_0x291c52[_0x18fc94(0x1f4)][_0x18fc94(0x1f8)],'version':_0x1d9462[_0x18fc94(0x1f0)],'importedAt':_0x1d9462[_0x18fc94(0x22a)],'source':_0x1d9462['source'],'commandCount':_0x4afcc0['length'],'commands':_0x4afcc0};}function sha256(_0xb070c7){const _0x331052=a65_0x537d7e;return createHash(_0x331052(0x21e))[_0x331052(0x213)](_0xb070c7)[_0x331052(0x20c)](_0x331052(0x20d));}