@lovrabet/lovrabet-cli 2.3.7 → 2.3.8-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 (181) hide show
  1. package/README.md +1 -1
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/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.js +1 -1
  108. package/lib/core/db-resolver.js +1 -1
  109. package/lib/core/kb-management-client.js +1 -1
  110. package/lib/core/kb-search-client.js +1 -1
  111. package/lib/core/sdk-client.js +1 -1
  112. package/lib/errors.js +1 -1
  113. package/lib/framework/access-error.js +1 -1
  114. package/lib/framework/build-all-flags.js +1 -1
  115. package/lib/framework/dryrun.js +1 -1
  116. package/lib/framework/flags.js +1 -1
  117. package/lib/framework/help.js +1 -1
  118. package/lib/framework/index.js +1 -1
  119. package/lib/framework/output.js +1 -1
  120. package/lib/framework/preparse.js +1 -1
  121. package/lib/framework/rate-limit.js +1 -1
  122. package/lib/framework/raw-flags.js +1 -1
  123. package/lib/framework/response.js +1 -1
  124. package/lib/framework/runner-confirmation.js +1 -1
  125. package/lib/framework/runner-error.js +1 -1
  126. package/lib/framework/runner.js +1 -1
  127. package/lib/framework/schema-export.js +1 -1
  128. package/lib/framework/service-order.js +1 -1
  129. package/lib/framework/types.js +1 -1
  130. package/lib/generated/build-info.d.ts +4 -4
  131. package/lib/generated/build-info.js +1 -1
  132. package/lib/generated/official-routing.js +1 -1
  133. package/lib/generated/routing-contract.js +1 -1
  134. package/lib/help.js +1 -1
  135. package/lib/postinstall.js +1 -1
  136. package/lib/runtime/confirmation.js +1 -1
  137. package/lib/runtime/event.js +1 -1
  138. package/lib/runtime/index.js +1 -1
  139. package/lib/runtime/queue.js +1 -1
  140. package/lib/runtime/resolve.js +1 -1
  141. package/lib/services/dataset-import/auto-id-runner.js +1 -1
  142. package/lib/services/dataset-import/excel-reader.js +1 -1
  143. package/lib/services/dataset-import/image-bytes.js +1 -1
  144. package/lib/services/dataset-import/image-ooxml.js +1 -1
  145. package/lib/services/dataset-import/image-runner.js +1 -1
  146. package/lib/services/dataset-import/metadata.js +1 -1
  147. package/lib/services/dataset-import/preview.js +1 -1
  148. package/lib/services/dataset-import/runner.js +1 -1
  149. package/lib/skills/builtin-skill.js +1 -1
  150. package/lib/skills/npx-skills-add.js +1 -1
  151. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  152. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  153. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  154. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  155. package/lib/skills/runtime-skill-sync/links.js +1 -1
  156. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  157. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  158. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  159. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  160. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  161. package/lib/skills/runtime-skill-sync/push.js +1 -1
  162. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  163. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  164. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  165. package/lib/skills/runtime-skill-sync.js +1 -1
  166. package/lib/skills/skill-presence.js +1 -1
  167. package/lib/utils/access-key-redaction.js +1 -1
  168. package/lib/utils/apply-jq-filter.js +1 -1
  169. package/lib/utils/cli-version-check.js +1 -1
  170. package/lib/utils/cli-version-policy.js +1 -1
  171. package/lib/utils/logger.js +1 -1
  172. package/lib/utils/lossless-json.js +1 -1
  173. package/lib/utils/params.js +1 -1
  174. package/lib/utils/positive-safe-integer.js +1 -1
  175. package/lib/utils/redaction.js +1 -1
  176. package/lib/utils/update-notice.js +1 -1
  177. package/lib/utils/version.js +1 -1
  178. package/lib/utils/write-cli-side-channel.js +1 -1
  179. package/package.json +2 -2
  180. package/skills/lovrabet/SKILL.md +2 -2
  181. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a55_0x1a1c23=a55_0x17b4;(function(_0xbab4ad,_0x570217){const _0x5880a1=a55_0x17b4,_0x3cf748=_0xbab4ad();while(!![]){try{const _0x3e649a=parseInt(_0x5880a1(0x1e7))/0x1+parseInt(_0x5880a1(0x1e9))/0x2+parseInt(_0x5880a1(0x206))/0x3*(-parseInt(_0x5880a1(0x201))/0x4)+parseInt(_0x5880a1(0x1f9))/0x5+parseInt(_0x5880a1(0x205))/0x6*(-parseInt(_0x5880a1(0x1e6))/0x7)+-parseInt(_0x5880a1(0x1ed))/0x8*(-parseInt(_0x5880a1(0x202))/0x9)+parseInt(_0x5880a1(0x1f4))/0xa*(-parseInt(_0x5880a1(0x204))/0xb);if(_0x3e649a===_0x570217)break;else _0x3cf748['push'](_0x3cf748['shift']());}catch(_0xf29986){_0x3cf748['push'](_0x3cf748['shift']());}}}(a55_0x8f24,0x29c66));import{listRuntimeAppRoles}from'../../core/api-client.js';function a55_0x17b4(_0x51dcdc,_0x447427){_0x51dcdc=_0x51dcdc-0x1e4;const _0x8f24c0=a55_0x8f24();let _0x17b475=_0x8f24c0[_0x51dcdc];return _0x17b475;}import{CliErrors}from'../../errors.js';function a55_0x8f24(){const _0x4e355c=['slice','Invalid\x20runtime\x20role\x20type:\x20','appCode','884670zfTSEY','string','role','runtime','pagesize','1110530ygHcos','str','trim','filter','List\x20runtime\x20roles\x20for\x20the\x20current\x20app','number','isSafeInteger','--page\x20must\x20be\x20a\x20positive\x20integer.','20NEyTRB','9DfzoMf','type','55ZNJFAR','7194jPOhcQ','162543Zjskme','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','includes','roleType','page','validation','1162jeLFVu','206291NKMRKn','Page\x20number','633132sYeIZC','name','Page\x20size\x20from\x201\x20to\x20100','num','2707368OgiWAJ','toUpperCase','map','list'];a55_0x8f24=function(){return _0x4e355c;};return a55_0x8f24();}import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';export const roleList={'service':a55_0x1a1c23(0x1f6),'command':a55_0x1a1c23(0x1f0),'description':a55_0x1a1c23(0x1fd),'risk':'read','flags':[{'name':'type','type':a55_0x1a1c23(0x1f5),'enum':RUNTIME_ROLE_TYPES,'description':'Runtime\x20role\x20type'},{'name':a55_0x1a1c23(0x1ea),'type':a55_0x1a1c23(0x1f5),'description':'Fuzzy\x20role-name\x20filter'},{'name':a55_0x1a1c23(0x1e4),'type':a55_0x1a1c23(0x1fe),'default':0x1,'description':a55_0x1a1c23(0x1e8)},{'name':a55_0x1a1c23(0x1f8),'type':a55_0x1a1c23(0x1fe),'default':0x64,'description':a55_0x1a1c23(0x1eb)}],async 'validate'(_0x38e597){const _0x38f168=a55_0x1a1c23,_0x21b6d5=_0x38e597[_0x38f168(0x1fa)](_0x38f168(0x203))[_0x38f168(0x1ee)]();if(_0x21b6d5&&!RUNTIME_ROLE_TYPES[_0x38f168(0x208)](_0x21b6d5))throw CliErrors[_0x38f168(0x1e5)](_0x38f168(0x1f2)+_0x21b6d5+'.');const _0x2817e6=_0x38e597['num'](_0x38f168(0x1e4),0x1),_0x1e05ed=_0x38e597[_0x38f168(0x1ec)]('pagesize',0x64);if(!Number[_0x38f168(0x1ff)](_0x2817e6)||_0x2817e6<0x1)throw CliErrors[_0x38f168(0x1e5)](_0x38f168(0x200));if(!Number['isSafeInteger'](_0x1e05ed)||_0x1e05ed<0x1||_0x1e05ed>0x64)throw CliErrors[_0x38f168(0x1e5)](_0x38f168(0x207));},async 'execute'(_0x30997d){const _0x5d1e48=a55_0x1a1c23,_0x28f137=_0x30997d['str']('type')[_0x5d1e48(0x1ee)](),_0x2ed327=_0x30997d[_0x5d1e48(0x1fa)](_0x5d1e48(0x1ea))[_0x5d1e48(0x1fb)](),_0x512e27=_0x30997d[_0x5d1e48(0x1ec)]('page',0x1),_0x14f485=_0x30997d[_0x5d1e48(0x1ec)](_0x5d1e48(0x1f8),0x64);if(_0x28f137){const _0x345e1a=(await listAllRuntimeRoles(_0x30997d[_0x5d1e48(0x1f3)],{..._0x2ed327?{'roleName':_0x2ed327}:{}}))[_0x5d1e48(0x1fc)](_0x47c11a=>_0x47c11a[_0x5d1e48(0x209)]===_0x28f137),_0x29f8ff=(_0x512e27-0x1)*_0x14f485;return{'ok':!![],'data':{'scope':_0x5d1e48(0x1f7),'roles':_0x345e1a[_0x5d1e48(0x1f1)](_0x29f8ff,_0x29f8ff+_0x14f485)['map'](projectRuntimeRole),'paging':{'currentPage':_0x512e27,'pageSize':_0x14f485,'totalCount':_0x345e1a['length']}}};}const _0x3231b8=await listRuntimeAppRoles(_0x30997d[_0x5d1e48(0x1f3)],{..._0x2ed327?{'roleName':_0x2ed327}:{},'currentPage':_0x512e27,'pageSize':_0x14f485});return{'ok':!![],'data':{'scope':_0x5d1e48(0x1f7),'roles':_0x3231b8['items'][_0x5d1e48(0x1ef)](projectRuntimeRole),'paging':_0x3231b8['paging']}};}};
1
+ function a55_0x1768(_0x5b542c,_0x467946){_0x5b542c=_0x5b542c-0xde;const _0x149b79=a55_0x149b();let _0x1768e5=_0x149b79[_0x5b542c];return _0x1768e5;}const a55_0x116f81=a55_0x1768;(function(_0x2ae7db,_0xdddde){const _0x3db867=a55_0x1768,_0x301d0a=_0x2ae7db();while(!![]){try{const _0x13efca=parseInt(_0x3db867(0xf3))/0x1+-parseInt(_0x3db867(0xf8))/0x2*(parseInt(_0x3db867(0xf5))/0x3)+-parseInt(_0x3db867(0xec))/0x4+-parseInt(_0x3db867(0xe3))/0x5*(parseInt(_0x3db867(0xfa))/0x6)+-parseInt(_0x3db867(0xfe))/0x7*(-parseInt(_0x3db867(0xeb))/0x8)+-parseInt(_0x3db867(0xfb))/0x9*(parseInt(_0x3db867(0xe9))/0xa)+parseInt(_0x3db867(0xff))/0xb;if(_0x13efca===_0xdddde)break;else _0x301d0a['push'](_0x301d0a['shift']());}catch(_0x1e530e){_0x301d0a['push'](_0x301d0a['shift']());}}}(a55_0x149b,0x29975));import{listRuntimeAppRoles}from'../../core/api-client.js';function a55_0x149b(){const _0x335003=['376608zdZhHk','page','appCode','filter','runtime','number','includes','151409xDfCTY','map','243609gvrfzp','Page\x20number','isSafeInteger','2hVmmXv','validation','858hOzrft','9JoqYxu','name','read','35399fTAlUz','3090175ceVsMc','type','slice','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','toUpperCase','length','string','1895Dqsjsf','num','str','Runtime\x20role\x20type','--page\x20must\x20be\x20a\x20positive\x20integer.','pagesize','3257310gQTxdj','paging','464wOtbyq'];a55_0x149b=function(){return _0x335003;};return a55_0x149b();}import{CliErrors}from'../../errors.js';import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';export const roleList={'service':'role','command':'list','description':'List\x20runtime\x20roles\x20for\x20the\x20current\x20app','risk':a55_0x116f81(0xfd),'flags':[{'name':'type','type':a55_0x116f81(0xe2),'enum':RUNTIME_ROLE_TYPES,'description':a55_0x116f81(0xe6)},{'name':a55_0x116f81(0xfc),'type':a55_0x116f81(0xe2),'description':'Fuzzy\x20role-name\x20filter'},{'name':a55_0x116f81(0xed),'type':a55_0x116f81(0xf1),'default':0x1,'description':a55_0x116f81(0xf6)},{'name':a55_0x116f81(0xe8),'type':'number','default':0x64,'description':'Page\x20size\x20from\x201\x20to\x20100'}],async 'validate'(_0x940b28){const _0x4bcc7e=a55_0x116f81,_0x5dd64e=_0x940b28[_0x4bcc7e(0xe5)](_0x4bcc7e(0x100))[_0x4bcc7e(0xe0)]();if(_0x5dd64e&&!RUNTIME_ROLE_TYPES[_0x4bcc7e(0xf2)](_0x5dd64e))throw CliErrors[_0x4bcc7e(0xf9)]('Invalid\x20runtime\x20role\x20type:\x20'+_0x5dd64e+'.');const _0x59f7ba=_0x940b28[_0x4bcc7e(0xe4)](_0x4bcc7e(0xed),0x1),_0x4aa263=_0x940b28['num']('pagesize',0x64);if(!Number[_0x4bcc7e(0xf7)](_0x59f7ba)||_0x59f7ba<0x1)throw CliErrors[_0x4bcc7e(0xf9)](_0x4bcc7e(0xe7));if(!Number[_0x4bcc7e(0xf7)](_0x4aa263)||_0x4aa263<0x1||_0x4aa263>0x64)throw CliErrors['validation'](_0x4bcc7e(0xdf));},async 'execute'(_0x56319e){const _0x1929c3=a55_0x116f81,_0x6fd210=_0x56319e[_0x1929c3(0xe5)](_0x1929c3(0x100))['toUpperCase'](),_0x197125=_0x56319e[_0x1929c3(0xe5)](_0x1929c3(0xfc))['trim'](),_0x27d682=_0x56319e[_0x1929c3(0xe4)](_0x1929c3(0xed),0x1),_0x454ee4=_0x56319e['num'](_0x1929c3(0xe8),0x64);if(_0x6fd210){const _0xa9bbf6=(await listAllRuntimeRoles(_0x56319e[_0x1929c3(0xee)],{..._0x197125?{'roleName':_0x197125}:{}}))[_0x1929c3(0xef)](_0x71edd2=>_0x71edd2['roleType']===_0x6fd210),_0x2b1cbf=(_0x27d682-0x1)*_0x454ee4;return{'ok':!![],'data':{'scope':'runtime','roles':_0xa9bbf6[_0x1929c3(0xde)](_0x2b1cbf,_0x2b1cbf+_0x454ee4)[_0x1929c3(0xf4)](projectRuntimeRole),'paging':{'currentPage':_0x27d682,'pageSize':_0x454ee4,'totalCount':_0xa9bbf6[_0x1929c3(0xe1)]}}};}const _0x1f4d44=await listRuntimeAppRoles(_0x56319e[_0x1929c3(0xee)],{..._0x197125?{'roleName':_0x197125}:{},'currentPage':_0x27d682,'pageSize':_0x454ee4});return{'ok':!![],'data':{'scope':_0x1929c3(0xf0),'roles':_0x1f4d44['items'][_0x1929c3(0xf4)](projectRuntimeRole),'paging':_0x1f4d44[_0x1929c3(0xea)]}};}};
@@ -1 +1 @@
1
- function a56_0x20a9(){const _0x127ae2=['find','userCount','1889577psZkqY','flag','str','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','role','Missing\x20runtime\x20role\x20reference.','validation','8CqZkyA','\x22\x20was\x20not\x20found\x20in\x20app\x20','includes','paging','applyUserList','userList','user','3824968pKTHhf','roleName','OWNER','totalCount','15595GMmIDW','1007835BQWMcQ','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list',',\x20found\x20','CUSTOM','Runtime\x20role\x20id\x20','items','Runtime\x20user\x20','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','join','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','runtime','userId','6260210qieoEK','isSafeInteger','\x20was\x20not\x20found\x20in\x20app\x20','trim','USER','User\x20','filter','length','Runtime\x20role\x20','permitCount','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','133941RmLgWp','map','--role-code\x20cannot\x20exceed\x2064\x20characters.','expect-user-count','\x20is\x20not\x20in\x20runtime\x20role\x20','role-code','appCode','roleCode','28goHfbS','user-add','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','userName','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','Runtime\x20role\x20name\x20\x22','3656724zxUtMJ','Runtime\x20numeric\x20userId','string','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','ADMIN','number','push','40Jtbtbc','\x20built-in\x20runtime\x20role\x20','roleType'];a56_0x20a9=function(){return _0x127ae2;};return a56_0x20a9();}const a56_0x3a8702=a56_0x2e65;(function(_0xa132e5,_0x263cad){const _0x470484=a56_0x2e65,_0x10e930=_0xa132e5();while(!![]){try{const _0x176cec=parseInt(_0x470484(0x232))/0x1*(-parseInt(_0x470484(0x20e))/0x2)+parseInt(_0x470484(0x206))/0x3*(parseInt(_0x470484(0x21b))/0x4)+-parseInt(_0x470484(0x233))/0x5+-parseInt(_0x470484(0x214))/0x6+parseInt(_0x470484(0x22e))/0x7+-parseInt(_0x470484(0x227))/0x8*(parseInt(_0x470484(0x220))/0x9)+parseInt(_0x470484(0x1fb))/0xa;if(_0x176cec===_0x263cad)break;else _0x10e930['push'](_0x10e930['shift']());}catch(_0x23512f){_0x10e930['push'](_0x10e930['shift']());}}}(a56_0x20a9,0x5cadb));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_0x3a8702(0x218),a56_0x3a8702(0x1ff),a56_0x3a8702(0x230),a56_0x3a8702(0x238)];const BUILTIN_ROLE_TYPES=[a56_0x3a8702(0x218),'USER',a56_0x3a8702(0x230)];export const ROLE_ID_FLAG={'name':'id','type':a56_0x3a8702(0x219),'required':!![],'description':a56_0x3a8702(0x236)};export const ROLE_REF_FLAG={'name':a56_0x3a8702(0x224),'type':a56_0x3a8702(0x216),'required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const ROLE_CODE_FLAG={'name':a56_0x3a8702(0x20b),'type':a56_0x3a8702(0x216),'description':a56_0x3a8702(0x234)};export const USER_ID_FLAG={'name':a56_0x3a8702(0x22d),'type':'string','required':!![],'description':a56_0x3a8702(0x215)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':a56_0x3a8702(0x219),'description':a56_0x3a8702(0x205)};export function isBuiltinRuntimeRole(_0x544d98){const _0x10b986=a56_0x3a8702;return BUILTIN_ROLE_TYPES[_0x10b986(0x229)](_0x544d98);}export function assertCustomRuntimeRole(_0x7b9d13,_0x2e00f8){const _0x273b5f=a56_0x3a8702;if(_0x7b9d13[_0x273b5f(0x21d)]!==_0x273b5f(0x238))throw CliErrors['validation']('Cannot\x20'+_0x2e00f8+_0x273b5f(0x21c)+_0x7b9d13[_0x273b5f(0x22f)]+'\x20('+_0x7b9d13[_0x273b5f(0x21d)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x2cf4e3){const _0x164663=a56_0x3a8702;return{'id':_0x2cf4e3['id'],'roleCode':_0x2cf4e3[_0x164663(0x20d)],'roleName':_0x2cf4e3[_0x164663(0x22f)],'roleType':_0x2cf4e3[_0x164663(0x21d)],'remark':_0x2cf4e3['remark'],'userCount':_0x2cf4e3[_0x164663(0x21f)]??0x0,'permitCount':_0x2cf4e3[_0x164663(0x204)]??0x0,'builtin':isBuiltinRuntimeRole(_0x2cf4e3[_0x164663(0x21d)])};}export function readOptionalRuntimeRoleCode(_0x187303){const _0x549604=a56_0x3a8702,_0x3a3d54=_0x187303['flag'](_0x549604(0x20b));if(_0x3a3d54===undefined||_0x3a3d54===null)return undefined;const _0x17d761=String(_0x3a3d54)[_0x549604(0x1fe)]();if(!_0x17d761)throw CliErrors[_0x549604(0x226)]('--role-code\x20must\x20not\x20be\x20blank.');if(_0x17d761['length']>0x40)throw CliErrors[_0x549604(0x226)](_0x549604(0x208));return _0x17d761;}export async function getRuntimeRoleById(_0x96f8f4,_0x1f657c){const _0x5f19ad=a56_0x3a8702;if(!Number[_0x5f19ad(0x1fc)](_0x1f657c)||_0x1f657c<=0x0)throw CliErrors[_0x5f19ad(0x226)](_0x5f19ad(0x223));const _0x285365=(await listAllRuntimeRoles(_0x96f8f4))['filter'](_0x142b98=>_0x142b98['id']===_0x1f657c&&(!_0x142b98[_0x5f19ad(0x20c)]||_0x142b98[_0x5f19ad(0x20c)]===_0x96f8f4));if(_0x285365['length']!==0x1)throw CliErrors[_0x5f19ad(0x226)](_0x5f19ad(0x1f3)+_0x1f657c+_0x5f19ad(0x1fd)+_0x96f8f4+'.',_0x5f19ad(0x217));return _0x285365[0x0];}export async function listAllRuntimeRoles(_0x20c68b,_0x2e446b={}){const _0xd6e2c7=a56_0x3a8702,_0x1e1b6f=0x64,_0x2586cb=[];for(let _0x1c547c=0x1;;_0x1c547c+=0x1){const _0x180bac=await listRuntimeAppRoles(_0x20c68b,{..._0x2e446b[_0xd6e2c7(0x22f)]?{'roleName':_0x2e446b['roleName']}:{},'currentPage':_0x1c547c,'pageSize':_0x1e1b6f});_0x2586cb['push'](..._0x180bac['items']);if(_0x180bac[_0xd6e2c7(0x1f4)][_0xd6e2c7(0x202)]<_0x1e1b6f||_0x180bac[_0xd6e2c7(0x22a)]&&_0x2586cb[_0xd6e2c7(0x202)]>=_0x180bac[_0xd6e2c7(0x22a)][_0xd6e2c7(0x231)])return _0x2586cb;}}export async function resolveRuntimeRoleRef(_0x3c5cdc,_0xc0e496){const _0x3e1a43=a56_0x3a8702,_0x28ecb8=_0xc0e496[_0x3e1a43(0x1fe)]();if(!_0x28ecb8)throw CliErrors['validation'](_0x3e1a43(0x225),'Pass\x20--role\x20<id|name>.');if(/^\d+$/['test'](_0x28ecb8))return getRuntimeRoleById(_0x3c5cdc,Number(_0x28ecb8));const _0xa7b1fa=(await listAllRuntimeRoles(_0x3c5cdc))['filter'](_0x177ee4=>_0x177ee4['roleName']===_0x28ecb8);if(_0xa7b1fa[_0x3e1a43(0x202)]===0x0)throw CliErrors[_0x3e1a43(0x226)](_0x3e1a43(0x213)+_0x28ecb8+_0x3e1a43(0x228)+_0x3c5cdc+'.',_0x3e1a43(0x210));if(_0xa7b1fa[_0x3e1a43(0x202)]>0x1)throw CliErrors['validation'](_0x3e1a43(0x213)+_0x28ecb8+'\x22\x20is\x20ambiguous.','Pass\x20one\x20role\x20ID:\x20'+_0xa7b1fa[_0x3e1a43(0x207)](_0x353e70=>_0x353e70['id'])[_0x3e1a43(0x1f7)](',\x20')+'.');return _0xa7b1fa[0x0];}function parseRuntimeUserId(_0x3e203e){const _0x57daea=a56_0x3a8702,_0x3ad4b9=_0x3e203e[_0x57daea(0x1fe)](),_0x36ec4e=normalizePositiveSafeInteger(_0x3ad4b9);if(_0x36ec4e===undefined)throw CliErrors['validation']('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.');return _0x36ec4e;}export async function prepareRuntimeMemberMutation(_0x43f7b3,_0x4625fe){const _0x569ca0=a56_0x3a8702,_0x487260=await resolveRuntimeRoleRef(_0x43f7b3['appCode'],_0x43f7b3['str'](_0x569ca0(0x224)));if(_0x487260[_0x569ca0(0x21d)]===_0x569ca0(0x230))throw CliErrors[_0x569ca0(0x226)]('OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x559e5e=parseRuntimeUserId(_0x43f7b3[_0x569ca0(0x222)]('user')),_0x17866c=(await listRuntimeRoleUsers(_0x43f7b3[_0x569ca0(0x20c)]))[_0x569ca0(0x207)](_0x48efa6=>({..._0x48efa6,'userList':[..._0x48efa6[_0x569ca0(0x22c)]??[]],'applyUserList':[..._0x48efa6[_0x569ca0(0x22b)]??[]]})),_0x485e0f=_0x17866c[_0x569ca0(0x21e)](_0x46ce5d=>_0x46ce5d['id']===_0x487260['id']);if(!_0x485e0f)throw CliErrors[_0x569ca0(0x226)](_0x569ca0(0x203)+_0x487260['id']+'\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0x25dd50=_0x485e0f[_0x569ca0(0x22c)][_0x569ca0(0x207)](_0x31f395=>_0x31f395[_0x569ca0(0x1fa)]),_0x48b693=_0x43f7b3[_0x569ca0(0x221)](_0x569ca0(0x209));if(_0x48b693!==undefined&&_0x48b693!==null&&_0x48b693!==''){const _0x40501a=_0x43f7b3['num']('expect-user-count');if(!Number[_0x569ca0(0x1fc)](_0x40501a)||_0x40501a<0x0)throw CliErrors['validation'](_0x569ca0(0x235));if(_0x25dd50[_0x569ca0(0x202)]!==_0x40501a)throw CliErrors[_0x569ca0(0x226)](_0x569ca0(0x1f8)+_0x40501a+_0x569ca0(0x237)+_0x25dd50[_0x569ca0(0x202)]+'.',_0x569ca0(0x1f6));}const _0x90e5e4=_0x25dd50[_0x569ca0(0x229)](_0x559e5e),_0x430fe4=[];let _0x5f4852=!![];if(_0x4625fe===_0x569ca0(0x20f)){const _0x2de7b8=await listRuntimeAppUsers(_0x43f7b3[_0x569ca0(0x20c)]),_0xe8bf1a=_0x2de7b8[_0x569ca0(0x201)](_0x107292=>Number(_0x107292['code'])===_0x559e5e);if(_0xe8bf1a[_0x569ca0(0x202)]!==0x1||!_0xe8bf1a[0x0][_0x569ca0(0x211)]?.[_0x569ca0(0x1fe)]())throw CliErrors[_0x569ca0(0x226)](_0x569ca0(0x1f5)+_0x559e5e+_0x569ca0(0x1fd)+_0x43f7b3[_0x569ca0(0x20c)]+'.',_0x569ca0(0x212));_0x90e5e4?(_0x5f4852=![],_0x430fe4[_0x569ca0(0x21a)](_0x569ca0(0x200)+_0x559e5e+'\x20is\x20already\x20in\x20runtime\x20role\x20'+_0x487260['id']+'.')):_0x485e0f[_0x569ca0(0x22c)][_0x569ca0(0x21a)]({'userId':_0x559e5e,'username':_0xe8bf1a[0x0][_0x569ca0(0x211)]});}else!_0x90e5e4?(_0x5f4852=![],_0x430fe4['push'](_0x569ca0(0x200)+_0x559e5e+_0x569ca0(0x20a)+_0x487260['id']+'.')):_0x485e0f[_0x569ca0(0x22c)]=_0x485e0f[_0x569ca0(0x22c)][_0x569ca0(0x201)](_0x3780d5=>_0x3780d5[_0x569ca0(0x1fa)]!==_0x559e5e);return{'role':_0x487260,'userId':_0x559e5e,'roleList':_0x17866c,'before':{'userIds':_0x25dd50},'after':{'userIds':_0x485e0f[_0x569ca0(0x22c)][_0x569ca0(0x207)](_0x31238e=>_0x31238e['userId'])},'shouldWrite':_0x5f4852,'warnings':_0x430fe4};}function a56_0x2e65(_0x2ab54c,_0x1898ba){_0x2ab54c=_0x2ab54c-0x1f3;const _0x20a961=a56_0x20a9();let _0x2e6577=_0x20a961[_0x2ab54c];return _0x2e6577;}export function runtimeRoleWriteResult(_0x593e7e,_0x15afcd,_0x273aa0,_0x7dc370,_0x5e33a4,_0x195bc9=[]){const _0x2b97f6=a56_0x3a8702;return{'operation':_0x593e7e,'scope':_0x2b97f6(0x1f9),'selector':_0x15afcd,'before':_0x273aa0,'after':_0x7dc370,'dryRun':![],'backend':_0x5e33a4,'warnings':_0x195bc9};}
1
+ const a56_0x1ffb34=a56_0x95ba;(function(_0x4564ee,_0x14946f){const _0x3aaba4=a56_0x95ba,_0xe87c21=_0x4564ee();while(!![]){try{const _0x539ce1=parseInt(_0x3aaba4(0x209))/0x1*(-parseInt(_0x3aaba4(0x1fc))/0x2)+parseInt(_0x3aaba4(0x1ec))/0x3*(-parseInt(_0x3aaba4(0x227))/0x4)+parseInt(_0x3aaba4(0x1e4))/0x5*(parseInt(_0x3aaba4(0x1f9))/0x6)+parseInt(_0x3aaba4(0x225))/0x7+-parseInt(_0x3aaba4(0x1e0))/0x8*(-parseInt(_0x3aaba4(0x1ff))/0x9)+parseInt(_0x3aaba4(0x1e5))/0xa*(parseInt(_0x3aaba4(0x21a))/0xb)+parseInt(_0x3aaba4(0x221))/0xc*(-parseInt(_0x3aaba4(0x1ee))/0xd);if(_0x539ce1===_0x14946f)break;else _0xe87c21['push'](_0xe87c21['shift']());}catch(_0x58a584){_0xe87c21['push'](_0xe87c21['shift']());}}}(a56_0x3b5f,0x61309));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a56_0x3b5f(){const _0x1c3357=['remark','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','find','isSafeInteger','Cannot\x20','ADMIN','2580228ltApyp','\x20is\x20already\x20in\x20runtime\x20role\x20','--role-code\x20cannot\x20exceed\x2064\x20characters.','roleName','1376431zcdqNZ','code','4vpZkSY','Runtime\x20role\x20','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','expect-user-count','map','Runtime\x20role\x20name\x20\x22','role','user','totalCount','8Ntohwl','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list',',\x20found\x20','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','211070LFtaKR','10pFQKnn','flag','applyUserList','roleCode','roleType','appCode','filter','520671CGqOOj','number','26DclAJE','userList','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','userId','str','test','length','Pass\x20--role\x20<id|name>.','role-code','Runtime\x20numeric\x20userId','24biZplO','--role-code\x20must\x20not\x20be\x20blank.','items','4KLNwIA','Runtime\x20user\x20','USER','5105511CjEBzW','\x20is\x20not\x20in\x20runtime\x20role\x20','Runtime\x20role\x20id\x20','validation','user-add','OWNER','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','string','\x22\x20is\x20ambiguous.','User\x20','80231SmabdR','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','Missing\x20runtime\x20role\x20reference.','\x20was\x20not\x20found\x20in\x20app\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','trim','permitCount','userCount','Pass\x20one\x20role\x20ID:\x20','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','includes','runtime','CUSTOM','userName','push','2523158ungbuc'];a56_0x3b5f=function(){return _0x1c3357;};return a56_0x3b5f();}import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x1ffb34(0x220),a56_0x1ffb34(0x1fe),a56_0x1ffb34(0x204),a56_0x1ffb34(0x217)];const BUILTIN_ROLE_TYPES=[a56_0x1ffb34(0x220),a56_0x1ffb34(0x1fe),'OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a56_0x1ffb34(0x1ed),'required':!![],'description':a56_0x1ffb34(0x1e1)};export const ROLE_REF_FLAG={'name':a56_0x1ffb34(0x1dd),'type':a56_0x1ffb34(0x206),'required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const ROLE_CODE_FLAG={'name':'role-code','type':'string','description':a56_0x1ffb34(0x205)};export const USER_ID_FLAG={'name':a56_0x1ffb34(0x1de),'type':a56_0x1ffb34(0x206),'required':!![],'description':a56_0x1ffb34(0x1f8)};export const EXPECT_USER_COUNT_FLAG={'name':a56_0x1ffb34(0x1da),'type':'number','description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x12311c){const _0x41105d=a56_0x1ffb34;return BUILTIN_ROLE_TYPES[_0x41105d(0x215)](_0x12311c);}export function assertCustomRuntimeRole(_0x2ef0cc,_0xc09502){const _0x405246=a56_0x1ffb34;if(_0x2ef0cc[_0x405246(0x1e9)]!==_0x405246(0x217))throw CliErrors['validation'](_0x405246(0x21f)+_0xc09502+'\x20built-in\x20runtime\x20role\x20'+_0x2ef0cc[_0x405246(0x224)]+'\x20('+_0x2ef0cc[_0x405246(0x1e9)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x1df394){const _0x3b9b0f=a56_0x1ffb34;return{'id':_0x1df394['id'],'roleCode':_0x1df394[_0x3b9b0f(0x1e8)],'roleName':_0x1df394[_0x3b9b0f(0x224)],'roleType':_0x1df394[_0x3b9b0f(0x1e9)],'remark':_0x1df394[_0x3b9b0f(0x21b)],'userCount':_0x1df394[_0x3b9b0f(0x212)]??0x0,'permitCount':_0x1df394[_0x3b9b0f(0x211)]??0x0,'builtin':isBuiltinRuntimeRole(_0x1df394[_0x3b9b0f(0x1e9)])};}export function readOptionalRuntimeRoleCode(_0x222198){const _0x5a1c5a=a56_0x1ffb34,_0x28dce5=_0x222198[_0x5a1c5a(0x1e6)](_0x5a1c5a(0x1f7));if(_0x28dce5===undefined||_0x28dce5===null)return undefined;const _0x37dc8d=String(_0x28dce5)[_0x5a1c5a(0x210)]();if(!_0x37dc8d)throw CliErrors[_0x5a1c5a(0x202)](_0x5a1c5a(0x1fa));if(_0x37dc8d[_0x5a1c5a(0x1f5)]>0x40)throw CliErrors['validation'](_0x5a1c5a(0x223));return _0x37dc8d;}export async function getRuntimeRoleById(_0xf8bdbd,_0x2a2eb5){const _0x4a374a=a56_0x1ffb34;if(!Number[_0x4a374a(0x21e)](_0x2a2eb5)||_0x2a2eb5<=0x0)throw CliErrors[_0x4a374a(0x202)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x556e38=(await listAllRuntimeRoles(_0xf8bdbd))[_0x4a374a(0x1eb)](_0x3d157e=>_0x3d157e['id']===_0x2a2eb5&&(!_0x3d157e[_0x4a374a(0x1ea)]||_0x3d157e[_0x4a374a(0x1ea)]===_0xf8bdbd));if(_0x556e38[_0x4a374a(0x1f5)]!==0x1)throw CliErrors['validation'](_0x4a374a(0x201)+_0x2a2eb5+'\x20was\x20not\x20found\x20in\x20app\x20'+_0xf8bdbd+'.',_0x4a374a(0x1e3));return _0x556e38[0x0];}export async function listAllRuntimeRoles(_0x1df900,_0x17f226={}){const _0x5eae67=a56_0x1ffb34,_0x4300a2=0x64,_0x756430=[];for(let _0x1e1cc0=0x1;;_0x1e1cc0+=0x1){const _0x174f60=await listRuntimeAppRoles(_0x1df900,{..._0x17f226['roleName']?{'roleName':_0x17f226[_0x5eae67(0x224)]}:{},'currentPage':_0x1e1cc0,'pageSize':_0x4300a2});_0x756430[_0x5eae67(0x219)](..._0x174f60[_0x5eae67(0x1fb)]);if(_0x174f60[_0x5eae67(0x1fb)][_0x5eae67(0x1f5)]<_0x4300a2||_0x174f60['paging']&&_0x756430[_0x5eae67(0x1f5)]>=_0x174f60['paging'][_0x5eae67(0x1df)])return _0x756430;}}function a56_0x95ba(_0x49a513,_0x13d072){_0x49a513=_0x49a513-0x1d8;const _0x3b5f86=a56_0x3b5f();let _0x95baa2=_0x3b5f86[_0x49a513];return _0x95baa2;}export async function resolveRuntimeRoleRef(_0xb12665,_0xbfb630){const _0x547ae3=a56_0x1ffb34,_0x12c3f0=_0xbfb630['trim']();if(!_0x12c3f0)throw CliErrors['validation'](_0x547ae3(0x20d),_0x547ae3(0x1f6));if(/^\d+$/[_0x547ae3(0x1f4)](_0x12c3f0))return getRuntimeRoleById(_0xb12665,Number(_0x12c3f0));const _0x2e246=(await listAllRuntimeRoles(_0xb12665))[_0x547ae3(0x1eb)](_0x5d82d9=>_0x5d82d9[_0x547ae3(0x224)]===_0x12c3f0);if(_0x2e246[_0x547ae3(0x1f5)]===0x0)throw CliErrors['validation'](_0x547ae3(0x1dc)+_0x12c3f0+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0xb12665+'.',_0x547ae3(0x20f));if(_0x2e246[_0x547ae3(0x1f5)]>0x1)throw CliErrors[_0x547ae3(0x202)](_0x547ae3(0x1dc)+_0x12c3f0+_0x547ae3(0x207),_0x547ae3(0x213)+_0x2e246[_0x547ae3(0x1db)](_0x5b3f6b=>_0x5b3f6b['id'])['join'](',\x20')+'.');return _0x2e246[0x0];}function parseRuntimeUserId(_0x38bbd7){const _0x5e242d=a56_0x1ffb34,_0x49c2b7=_0x38bbd7[_0x5e242d(0x210)](),_0x595261=normalizePositiveSafeInteger(_0x49c2b7);if(_0x595261===undefined)throw CliErrors['validation'](_0x5e242d(0x1d9),_0x5e242d(0x20b));return _0x595261;}export async function prepareRuntimeMemberMutation(_0x1268f5,_0x45db7){const _0x1ba89a=a56_0x1ffb34,_0x8cea22=await resolveRuntimeRoleRef(_0x1268f5[_0x1ba89a(0x1ea)],_0x1268f5[_0x1ba89a(0x1f3)](_0x1ba89a(0x1dd)));if(_0x8cea22[_0x1ba89a(0x1e9)]===_0x1ba89a(0x204))throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x1f0),'Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x1689ee=parseRuntimeUserId(_0x1268f5[_0x1ba89a(0x1f3)](_0x1ba89a(0x1de))),_0x5e90c1=(await listRuntimeRoleUsers(_0x1268f5[_0x1ba89a(0x1ea)]))['map'](_0x7d9fdf=>({..._0x7d9fdf,'userList':[..._0x7d9fdf[_0x1ba89a(0x1ef)]??[]],'applyUserList':[..._0x7d9fdf[_0x1ba89a(0x1e7)]??[]]})),_0x481c52=_0x5e90c1[_0x1ba89a(0x21d)](_0x4df5e8=>_0x4df5e8['id']===_0x8cea22['id']);if(!_0x481c52)throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x1d8)+_0x8cea22['id']+'\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.',_0x1ba89a(0x20a));const _0x3ceef5=_0x481c52[_0x1ba89a(0x1ef)]['map'](_0x239050=>_0x239050[_0x1ba89a(0x1f2)]),_0x198fef=_0x1268f5['flag'](_0x1ba89a(0x1da));if(_0x198fef!==undefined&&_0x198fef!==null&&_0x198fef!==''){const _0x3abc50=_0x1268f5['num'](_0x1ba89a(0x1da));if(!Number['isSafeInteger'](_0x3abc50)||_0x3abc50<0x0)throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x21c));if(_0x3ceef5[_0x1ba89a(0x1f5)]!==_0x3abc50)throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x20c)+_0x3abc50+_0x1ba89a(0x1e2)+_0x3ceef5['length']+'.',_0x1ba89a(0x214));}const _0x37f15c=_0x3ceef5[_0x1ba89a(0x215)](_0x1689ee),_0x1f349d=[];let _0x223b44=!![];if(_0x45db7===_0x1ba89a(0x203)){const _0x563fbf=await listRuntimeAppUsers(_0x1268f5[_0x1ba89a(0x1ea)]),_0x147ad5=_0x563fbf[_0x1ba89a(0x1eb)](_0x520e0d=>Number(_0x520e0d[_0x1ba89a(0x226)])===_0x1689ee);if(_0x147ad5[_0x1ba89a(0x1f5)]!==0x1||!_0x147ad5[0x0]['userName']?.[_0x1ba89a(0x210)]())throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x1fd)+_0x1689ee+_0x1ba89a(0x20e)+_0x1268f5[_0x1ba89a(0x1ea)]+'.',_0x1ba89a(0x1f1));_0x37f15c?(_0x223b44=![],_0x1f349d['push'](_0x1ba89a(0x208)+_0x1689ee+_0x1ba89a(0x222)+_0x8cea22['id']+'.')):_0x481c52[_0x1ba89a(0x1ef)][_0x1ba89a(0x219)]({'userId':_0x1689ee,'username':_0x147ad5[0x0][_0x1ba89a(0x218)]});}else!_0x37f15c?(_0x223b44=![],_0x1f349d[_0x1ba89a(0x219)](_0x1ba89a(0x208)+_0x1689ee+_0x1ba89a(0x200)+_0x8cea22['id']+'.')):_0x481c52['userList']=_0x481c52[_0x1ba89a(0x1ef)][_0x1ba89a(0x1eb)](_0x6f26e1=>_0x6f26e1['userId']!==_0x1689ee);return{'role':_0x8cea22,'userId':_0x1689ee,'roleList':_0x5e90c1,'before':{'userIds':_0x3ceef5},'after':{'userIds':_0x481c52[_0x1ba89a(0x1ef)]['map'](_0x2232e8=>_0x2232e8[_0x1ba89a(0x1f2)])},'shouldWrite':_0x223b44,'warnings':_0x1f349d};}export function runtimeRoleWriteResult(_0x5873f7,_0x2f9b5d,_0x5d587f,_0x1913e3,_0x5038bc,_0x4dadb0=[]){const _0x538aae=a56_0x1ffb34;return{'operation':_0x5873f7,'scope':_0x538aae(0x216),'selector':_0x2f9b5d,'before':_0x5d587f,'after':_0x1913e3,'dryRun':![],'backend':_0x5038bc,'warnings':_0x4dadb0};}
@@ -1 +1 @@
1
- function a57_0x1754(){const _0x19296c=['44722850XsCMWG','--name\x20must\x20not\x20be\x20blank.','17321IJgbyX','flag','update','91BpHltu','string','444JBtFzI','/client/permit/role/update','New\x20role\x20name','12677472fdUvUx','--remark\x20must\x20not\x20be\x20blank.','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','POST','49506GqlnAU','138uzcpHR','58435NZjtrX','role','5940232zGlksL','trim','validation','3028881njSUgo','build','str','remark','appCode','New\x20non-empty\x20role\x20remark','name'];a57_0x1754=function(){return _0x19296c;};return a57_0x1754();}const a57_0x1941a3=a57_0x4268;(function(_0xfec45e,_0x49d497){const _0x4e7a06=a57_0x4268,_0x347794=_0xfec45e();while(!![]){try{const _0x55d7e9=-parseInt(_0x4e7a06(0xc0))/0x1*(parseInt(_0x4e7a06(0xce))/0x2)+parseInt(_0x4e7a06(0xd4))/0x3+-parseInt(_0x4e7a06(0xc5))/0x4*(parseInt(_0x4e7a06(0xcf))/0x5)+-parseInt(_0x4e7a06(0xcd))/0x6*(parseInt(_0x4e7a06(0xc3))/0x7)+-parseInt(_0x4e7a06(0xd1))/0x8+-parseInt(_0x4e7a06(0xc8))/0x9+parseInt(_0x4e7a06(0xbe))/0xa;if(_0x55d7e9===_0x49d497)break;else _0x347794['push'](_0x347794['shift']());}catch(_0x169642){_0x347794['push'](_0x347794['shift']());}}}(a57_0x1754,0xb27e2));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(_0x2bb213){const _0x2284d3=a57_0x4268,_0x484790=_0x2bb213[_0x2284d3(0xc1)]('role-code')!==undefined,_0x4ac60c=_0x2bb213[_0x2284d3(0xc1)](_0x2284d3(0xbd))!==undefined,_0x3fae3f=_0x2bb213['flag'](_0x2284d3(0xba))!==undefined;if(!_0x484790&&!_0x4ac60c&&!_0x3fae3f)throw CliErrors[_0x2284d3(0xd3)](_0x2284d3(0xca));const _0x229ce9=readOptionalRuntimeRoleCode(_0x2bb213),_0x4571bb=_0x2bb213[_0x2284d3(0xb9)](_0x2284d3(0xbd))['trim'](),_0x3f014d=_0x2bb213[_0x2284d3(0xb9)](_0x2284d3(0xba))[_0x2284d3(0xd2)]();if(_0x4ac60c&&!_0x4571bb)throw CliErrors[_0x2284d3(0xd3)](_0x2284d3(0xbf));if(_0x3fae3f&&!_0x3f014d)throw CliErrors[_0x2284d3(0xd3)](_0x2284d3(0xc9),'The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.');return{..._0x229ce9?{'roleCode':_0x229ce9}:{},..._0x4ac60c?{'roleName':_0x4571bb}:{},..._0x3fae3f?{'remark':_0x3f014d}:{}};}function a57_0x4268(_0x86527,_0x149c23){_0x86527=_0x86527-0xb8;const _0x175452=a57_0x1754();let _0x42685b=_0x175452[_0x86527];return _0x42685b;}async function prepare(_0x2c2e1a){const _0x511c37=a57_0x4268,_0x608451=await getRuntimeRoleById(_0x2c2e1a[_0x511c37(0xbb)],_0x2c2e1a['num']('id'));return assertCustomRuntimeRole(_0x608451,_0x511c37(0xc2)),{'role':_0x608451,'body':{'id':_0x608451['id'],'appCode':_0x2c2e1a[_0x511c37(0xbb)],...updateFields(_0x2c2e1a)}};}export const roleUpdate={'service':a57_0x1941a3(0xd0),'command':a57_0x1941a3(0xc2),'description':a57_0x1941a3(0xcb),'risk':'high-risk-write','confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x1941a3(0xbd),'type':'string','description':a57_0x1941a3(0xc7)},{'name':'remark','type':a57_0x1941a3(0xc4),'description':a57_0x1941a3(0xbc)}],async 'validate'(_0x557948){updateFields(_0x557948);},async 'dryRun'(_0x49cae9){const _0x42c400=a57_0x1941a3,{body:_0x3052fd}=await prepare(_0x49cae9);return dryRun(_0x42c400(0xcc),_0x42c400(0xc6))['body'](_0x3052fd)['description']('Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role')[_0x42c400(0xb8)]();},async 'execute'(_0x3e1b86){const _0x3a56d1=a57_0x1941a3,{role:_0x11e540,body:_0x326b6c}=await prepare(_0x3e1b86),_0x40286d=await updateRuntimeAppRole(_0x326b6c);return{'ok':!![],'data':runtimeRoleWriteResult(_0x3a56d1(0xc2),{'roleId':_0x11e540['id']},projectRuntimeRole(_0x11e540),projectRuntimeRole(_0x40286d),{'method':_0x3a56d1(0xcc),'path':_0x3a56d1(0xc6)})};}};
1
+ const a57_0x8d339e=a57_0x2c7a;(function(_0x4fd698,_0x404c13){const _0x59801a=a57_0x2c7a,_0x40bd6c=_0x4fd698();while(!![]){try{const _0x1bcba2=parseInt(_0x59801a(0xb8))/0x1*(parseInt(_0x59801a(0xc4))/0x2)+parseInt(_0x59801a(0xc2))/0x3*(parseInt(_0x59801a(0xba))/0x4)+-parseInt(_0x59801a(0xb3))/0x5+-parseInt(_0x59801a(0xab))/0x6*(-parseInt(_0x59801a(0xbc))/0x7)+parseInt(_0x59801a(0xaa))/0x8+-parseInt(_0x59801a(0xaf))/0x9+-parseInt(_0x59801a(0xc0))/0xa*(-parseInt(_0x59801a(0xb4))/0xb);if(_0x1bcba2===_0x404c13)break;else _0x40bd6c['push'](_0x40bd6c['shift']());}catch(_0x4693dd){_0x40bd6c['push'](_0x40bd6c['shift']());}}}(a57_0x5bf5,0xb9257));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a57_0x5bf5(){const _0x43dc59=['name','str','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','body','--remark\x20must\x20not\x20be\x20blank.','update','4735264bqOjCk','1606866DBkdBU','appCode','remark','string','11149488Wdpero','num','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','New\x20role\x20name','7527465JapMuK','187pGQRor','validation','high-risk-write','role-code','891nDueSB','description','235196ryBexY','role','14wVYpAB','flag','New\x20non-empty\x20role\x20remark','POST','589030VoFqDx','/client/permit/role/update','51FVvXSq','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','840YsQrLH'];a57_0x5bf5=function(){return _0x43dc59;};return a57_0x5bf5();}function a57_0x2c7a(_0x587f1f,_0x503c10){_0x587f1f=_0x587f1f-0xa5;const _0x5bf593=a57_0x5bf5();let _0x2c7a9c=_0x5bf593[_0x587f1f];return _0x2c7a9c;}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(_0x3d46b7){const _0x1acebf=a57_0x2c7a,_0x2ccfb0=_0x3d46b7[_0x1acebf(0xbd)](_0x1acebf(0xb7))!==undefined,_0x10cd91=_0x3d46b7[_0x1acebf(0xbd)](_0x1acebf(0xc5))!==undefined,_0x2045b7=_0x3d46b7[_0x1acebf(0xbd)](_0x1acebf(0xad))!==undefined;if(!_0x2ccfb0&&!_0x10cd91&&!_0x2045b7)throw CliErrors[_0x1acebf(0xb5)](_0x1acebf(0xc3));const _0x1d06ce=readOptionalRuntimeRoleCode(_0x3d46b7),_0x2ce5a7=_0x3d46b7[_0x1acebf(0xa5)](_0x1acebf(0xc5))['trim'](),_0x372996=_0x3d46b7['str'](_0x1acebf(0xad))['trim']();if(_0x10cd91&&!_0x2ce5a7)throw CliErrors[_0x1acebf(0xb5)]('--name\x20must\x20not\x20be\x20blank.');if(_0x2045b7&&!_0x372996)throw CliErrors[_0x1acebf(0xb5)](_0x1acebf(0xa8),'The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.');return{..._0x1d06ce?{'roleCode':_0x1d06ce}:{},..._0x10cd91?{'roleName':_0x2ce5a7}:{},..._0x2045b7?{'remark':_0x372996}:{}};}async function prepare(_0x4bb018){const _0x5a6a33=a57_0x2c7a,_0x2cfd7c=await getRuntimeRoleById(_0x4bb018[_0x5a6a33(0xac)],_0x4bb018[_0x5a6a33(0xb0)]('id'));return assertCustomRuntimeRole(_0x2cfd7c,'update'),{'role':_0x2cfd7c,'body':{'id':_0x2cfd7c['id'],'appCode':_0x4bb018[_0x5a6a33(0xac)],...updateFields(_0x4bb018)}};}export const roleUpdate={'service':a57_0x8d339e(0xbb),'command':'update','description':a57_0x8d339e(0xa6),'risk':a57_0x8d339e(0xb6),'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_0x8d339e(0xc5),'type':a57_0x8d339e(0xae),'description':a57_0x8d339e(0xb2)},{'name':'remark','type':a57_0x8d339e(0xae),'description':a57_0x8d339e(0xbe)}],async 'validate'(_0x9c0407){updateFields(_0x9c0407);},async 'dryRun'(_0x587183){const _0x271693=a57_0x8d339e,{body:_0x168fd3}=await prepare(_0x587183);return dryRun(_0x271693(0xbf),_0x271693(0xc1))[_0x271693(0xa7)](_0x168fd3)[_0x271693(0xb9)](_0x271693(0xb1))['build']();},async 'execute'(_0x24a710){const _0x1a4673=a57_0x8d339e,{role:_0x35a1f8,body:_0x51ab9a}=await prepare(_0x24a710),_0x19d2da=await updateRuntimeAppRole(_0x51ab9a);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1a4673(0xa9),{'roleId':_0x35a1f8['id']},projectRuntimeRole(_0x35a1f8),projectRuntimeRole(_0x19d2da),{'method':'POST','path':'/client/permit/role/update'})};}};
@@ -1 +1 @@
1
- function a58_0x3bd7(_0x4f60c4,_0x1d545d){_0x4f60c4=_0x4f60c4-0xc6;const _0x40f479=a58_0x40f4();let _0x3bd71d=_0x40f479[_0x4f60c4];return _0x3bd71d;}const a58_0x52fcaa=a58_0x3bd7;(function(_0x4aa93b,_0x4022eb){const _0x22af2a=a58_0x3bd7,_0x4e039b=_0x4aa93b();while(!![]){try{const _0x6a74ea=-parseInt(_0x22af2a(0xdb))/0x1+parseInt(_0x22af2a(0xd0))/0x2+-parseInt(_0x22af2a(0xd2))/0x3*(-parseInt(_0x22af2a(0xdc))/0x4)+-parseInt(_0x22af2a(0xd7))/0x5*(parseInt(_0x22af2a(0xcd))/0x6)+-parseInt(_0x22af2a(0xcc))/0x7*(-parseInt(_0x22af2a(0xd1))/0x8)+-parseInt(_0x22af2a(0xdd))/0x9+parseInt(_0x22af2a(0xc9))/0xa;if(_0x6a74ea===_0x4022eb)break;else _0x4e039b['push'](_0x4e039b['shift']());}catch(_0x41979e){_0x4e039b['push'](_0x4e039b['shift']());}}}(a58_0x40f4,0x625a4));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_0x40f4(){const _0x590eac=['12NOfCFP','appCode','user-add','1054020nFhSKR','320VZMZfr','147InYwDe','description','body','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','POST','1710275MeZtYb','role','build','warnings','236921zEjfpQ','32408BJoYqr','4502349QhyFVi','roleList','high-risk-write','after','shouldWrite','2591760hMwuTA','/client/permit/user-role/update-user-list','userId','112168EeSSzQ'];a58_0x40f4=function(){return _0x590eac;};return a58_0x40f4();}export const roleUserAdd={'service':'role','command':'user-add','description':'Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','risk':a58_0x52fcaa(0xc6),'confirmationDescription':a58_0x52fcaa(0xd5),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2e9184){const _0x423373=a58_0x52fcaa,_0x6a8142=await prepareRuntimeMemberMutation(_0x2e9184,_0x423373(0xcf));return dryRun(_0x423373(0xd6),_0x423373(0xca))[_0x423373(0xd4)]({'appCode':_0x2e9184[_0x423373(0xce)],'roleList':_0x6a8142[_0x423373(0xde)]})[_0x423373(0xd3)](_0x6a8142[_0x423373(0xc8)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x6a8142[_0x423373(0xda)][0x0])[_0x423373(0xd9)]();},async 'execute'(_0x49ae4b){const _0x1a93bb=a58_0x52fcaa,_0x88b336=await prepareRuntimeMemberMutation(_0x49ae4b,_0x1a93bb(0xcf));return _0x88b336[_0x1a93bb(0xc8)]&&await updateRuntimeRoleUsers(_0x49ae4b[_0x1a93bb(0xce)],_0x88b336[_0x1a93bb(0xde)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x1a93bb(0xcf),{'roleId':_0x88b336[_0x1a93bb(0xd8)]['id'],'userId':_0x88b336[_0x1a93bb(0xcb)]},_0x88b336['before'],_0x88b336[_0x1a93bb(0xc7)],{'method':_0x1a93bb(0xd6),'path':_0x1a93bb(0xca)},_0x88b336[_0x1a93bb(0xda)])};}};
1
+ function a58_0x590e(_0x19a7ae,_0x521ee2){_0x19a7ae=_0x19a7ae-0x11f;const _0x33ce65=a58_0x33ce();let _0x590eeb=_0x33ce65[_0x19a7ae];return _0x590eeb;}function a58_0x33ce(){const _0x59b715=['/client/permit/user-role/update-user-list','5175412nJrNZQ','1242Bltuyw','body','95mvrhgp','3yqJmQT','roleList','1470228brNFXP','239baHhSU','build','127128mqurYX','warnings','high-risk-write','appCode','133IAzgqq','role','before','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','32694FVMvDc','user-add','userId','shouldWrite','3129795SCxjIn','426540jInuep','POST','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.'];a58_0x33ce=function(){return _0x59b715;};return a58_0x33ce();}const a58_0x4d9600=a58_0x590e;(function(_0x4b4462,_0x2e9fd6){const _0xdfcc93=a58_0x590e,_0x2dc3c1=_0x4b4462();while(!![]){try{const _0x47c79e=-parseInt(_0xdfcc93(0x120))/0x1*(-parseInt(_0xdfcc93(0x134))/0x2)+parseInt(_0xdfcc93(0x137))/0x3*(parseInt(_0xdfcc93(0x11f))/0x4)+-parseInt(_0xdfcc93(0x136))/0x5*(parseInt(_0xdfcc93(0x12a))/0x6)+parseInt(_0xdfcc93(0x126))/0x7*(-parseInt(_0xdfcc93(0x122))/0x8)+-parseInt(_0xdfcc93(0x12e))/0x9+-parseInt(_0xdfcc93(0x12f))/0xa+parseInt(_0xdfcc93(0x133))/0xb;if(_0x47c79e===_0x2e9fd6)break;else _0x2dc3c1['push'](_0x2dc3c1['shift']());}catch(_0xeae574){_0x2dc3c1['push'](_0x2dc3c1['shift']());}}}(a58_0x33ce,0x2e887));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a58_0x4d9600(0x127),'command':a58_0x4d9600(0x12b),'description':a58_0x4d9600(0x129),'risk':a58_0x4d9600(0x124),'confirmationDescription':a58_0x4d9600(0x131),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x561534){const _0x39dde9=a58_0x4d9600,_0x54fb42=await prepareRuntimeMemberMutation(_0x561534,_0x39dde9(0x12b));return dryRun(_0x39dde9(0x130),_0x39dde9(0x132))[_0x39dde9(0x135)]({'appCode':_0x561534[_0x39dde9(0x125)],'roleList':_0x54fb42['roleList']})['description'](_0x54fb42[_0x39dde9(0x12d)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x54fb42[_0x39dde9(0x123)][0x0])[_0x39dde9(0x121)]();},async 'execute'(_0x9521d0){const _0x41cb1b=a58_0x4d9600,_0x1653dd=await prepareRuntimeMemberMutation(_0x9521d0,_0x41cb1b(0x12b));return _0x1653dd[_0x41cb1b(0x12d)]&&await updateRuntimeRoleUsers(_0x9521d0['appCode'],_0x1653dd[_0x41cb1b(0x138)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x41cb1b(0x12b),{'roleId':_0x1653dd[_0x41cb1b(0x127)]['id'],'userId':_0x1653dd[_0x41cb1b(0x12c)]},_0x1653dd[_0x41cb1b(0x128)],_0x1653dd['after'],{'method':'POST','path':_0x41cb1b(0x132)},_0x1653dd[_0x41cb1b(0x123)])};}};
@@ -1 +1 @@
1
- const a59_0x46c87c=a59_0x1673;(function(_0x45f6f1,_0x19cfae){const _0x5b4cd5=a59_0x1673,_0x29b462=_0x45f6f1();while(!![]){try{const _0x972316=-parseInt(_0x5b4cd5(0x166))/0x1*(parseInt(_0x5b4cd5(0x16a))/0x2)+parseInt(_0x5b4cd5(0x16b))/0x3+-parseInt(_0x5b4cd5(0x170))/0x4+parseInt(_0x5b4cd5(0x177))/0x5*(parseInt(_0x5b4cd5(0x161))/0x6)+parseInt(_0x5b4cd5(0x173))/0x7*(-parseInt(_0x5b4cd5(0x164))/0x8)+-parseInt(_0x5b4cd5(0x16e))/0x9+parseInt(_0x5b4cd5(0x168))/0xa;if(_0x972316===_0x19cfae)break;else _0x29b462['push'](_0x29b462['shift']());}catch(_0x3c75c7){_0x29b462['push'](_0x29b462['shift']());}}}(a59_0x4e3a,0xa7443));function a59_0x1673(_0x5a1d0f,_0x582ec3){_0x5a1d0f=_0x5a1d0f-0x161;const _0x4e3a28=a59_0x4e3a();let _0x167383=_0x4e3a28[_0x5a1d0f];return _0x167383;}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a59_0x4e3a(){const _0x367a17=['4596iyssSV','role','after','2021368GfORkQ','before','1dfeybP','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','30478190PuclFW','shouldWrite','1573244NfZiyV','3399837ENSRsF','body','roleList','9175041petVEI','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','4283020vqfKAk','warnings','user-remove','35YFqCLu','POST','/client/permit/user-role/update-user-list','appCode','4205XocDil'];a59_0x4e3a=function(){return _0x367a17;};return a59_0x4e3a();}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a59_0x46c87c(0x162),'command':a59_0x46c87c(0x172),'description':a59_0x46c87c(0x16f),'risk':'high-risk-write','confirmationDescription':a59_0x46c87c(0x167),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x3ccb87){const _0x1e9a7e=a59_0x46c87c,_0x1429e9=await prepareRuntimeMemberMutation(_0x3ccb87,'user-remove');return dryRun(_0x1e9a7e(0x174),_0x1e9a7e(0x175))[_0x1e9a7e(0x16c)]({'appCode':_0x3ccb87[_0x1e9a7e(0x176)],'roleList':_0x1429e9['roleList']})['description'](_0x1429e9[_0x1e9a7e(0x169)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x1429e9[_0x1e9a7e(0x171)][0x0])['build']();},async 'execute'(_0x4a34c8){const _0x57c1a3=a59_0x46c87c,_0x1f14ee=await prepareRuntimeMemberMutation(_0x4a34c8,_0x57c1a3(0x172));return _0x1f14ee[_0x57c1a3(0x169)]&&await updateRuntimeRoleUsers(_0x4a34c8['appCode'],_0x1f14ee[_0x57c1a3(0x16d)]),{'ok':!![],'data':runtimeRoleWriteResult('user-remove',{'roleId':_0x1f14ee[_0x57c1a3(0x162)]['id'],'userId':_0x1f14ee['userId']},_0x1f14ee[_0x57c1a3(0x165)],_0x1f14ee[_0x57c1a3(0x163)],{'method':_0x57c1a3(0x174),'path':_0x57c1a3(0x175)},_0x1f14ee['warnings'])};}};
1
+ const a59_0x1fe180=a59_0xaf26;function a59_0xaf26(_0x3da057,_0x32cf9a){_0x3da057=_0x3da057-0x1d1;const _0x32746d=a59_0x3274();let _0xaf2652=_0x32746d[_0x3da057];return _0xaf2652;}function a59_0x3274(){const _0x945d08=['822930xqCAUf','description','/client/permit/user-role/update-user-list','build','shouldWrite','user-remove','79616rOdpJG','after','role','1628088NRhIyy','20Xkcutd','Preview:\x20remove\x20runtime\x20role\x20member','POST','roleList','before','67816ZJxKya','appCode','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','warnings','379304yHjFWG','890361HEQVVE','18sIvYRD','2mcuxrW','userId','body','8182170NggYUn'];a59_0x3274=function(){return _0x945d08;};return a59_0x3274();}(function(_0xc4faef,_0x27ba7a){const _0xbeb1a2=a59_0xaf26,_0x2e5ff6=_0xc4faef();while(!![]){try{const _0x42e16a=-parseInt(_0xbeb1a2(0x1da))/0x1+parseInt(_0xbeb1a2(0x1dd))/0x2*(-parseInt(_0xbeb1a2(0x1db))/0x3)+-parseInt(_0xbeb1a2(0x1ea))/0x4+-parseInt(_0xbeb1a2(0x1d1))/0x5*(-parseInt(_0xbeb1a2(0x1e1))/0x6)+parseInt(_0xbeb1a2(0x1d6))/0x7+-parseInt(_0xbeb1a2(0x1e7))/0x8*(-parseInt(_0xbeb1a2(0x1dc))/0x9)+parseInt(_0xbeb1a2(0x1e0))/0xa;if(_0x42e16a===_0x27ba7a)break;else _0x2e5ff6['push'](_0x2e5ff6['shift']());}catch(_0x2384ca){_0x2e5ff6['push'](_0x2e5ff6['shift']());}}}(a59_0x3274,0x4c7e4));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_0x1fe180(0x1e9),'command':a59_0x1fe180(0x1e6),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':'high-risk-write','confirmationDescription':a59_0x1fe180(0x1d8),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x12ce9e){const _0x121f91=a59_0x1fe180,_0x1c5493=await prepareRuntimeMemberMutation(_0x12ce9e,'user-remove');return dryRun(_0x121f91(0x1d3),'/client/permit/user-role/update-user-list')[_0x121f91(0x1df)]({'appCode':_0x12ce9e[_0x121f91(0x1d7)],'roleList':_0x1c5493[_0x121f91(0x1d4)]})[_0x121f91(0x1e2)](_0x1c5493[_0x121f91(0x1e5)]?_0x121f91(0x1d2):_0x1c5493[_0x121f91(0x1d9)][0x0])[_0x121f91(0x1e4)]();},async 'execute'(_0x1af277){const _0x3b627b=a59_0x1fe180,_0x54bfb0=await prepareRuntimeMemberMutation(_0x1af277,_0x3b627b(0x1e6));return _0x54bfb0[_0x3b627b(0x1e5)]&&await updateRuntimeRoleUsers(_0x1af277[_0x3b627b(0x1d7)],_0x54bfb0[_0x3b627b(0x1d4)]),{'ok':!![],'data':runtimeRoleWriteResult('user-remove',{'roleId':_0x54bfb0[_0x3b627b(0x1e9)]['id'],'userId':_0x54bfb0[_0x3b627b(0x1de)]},_0x54bfb0[_0x3b627b(0x1d5)],_0x54bfb0[_0x3b627b(0x1e8)],{'method':_0x3b627b(0x1d3),'path':_0x3b627b(0x1e3)},_0x54bfb0[_0x3b627b(0x1d9)])};}};
@@ -1 +1 @@
1
- const a60_0x5ab897=a60_0x2e8b;function a60_0x4e96(){const _0x3337b8=['/api/harness/apps/','trim','Deleted\x20schedule\x20','schedule-id','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','list','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','schedule','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','1485033RMouvm','Preview:\x20run\x20schedule\x20','high-risk-write','read','Preview:\x20create\x20an\x20Agent\x20schedule','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','CRON','model','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','delete','taskId','14506504zmbPBs','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Schedule\x20UUID','1155368ZuMGIK','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','body','84qmKVUr','/schedules','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','num','Schedule\x20title','str','2015500TmVFwY','detail','159278eprBXd','title','prompt','validation','cursor','/run','951308aGVMSV','deepseek-v4-pro-0813','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','DELETE','\x20immediately','build','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','--prompt\x20must\x20not\x20be\x20blank.','description','Schedule\x20input\x20is\x20valid','9VqmvDp','Queued\x20Task\x20','Show\x20one\x20schedule\x20by\x20schedule\x20ID','isSafeInteger','cron','Preview:\x20delete\x20schedule\x20','appCode','UTC','string','POST','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Page\x20size\x20from\x201\x20to\x20100','kind','limit','validate','--title\x20must\x20not\x20be\x20blank.','Created\x20','691170eEfzqj','scheduleId','ONCE','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','run','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','scheduled-at','kimi/k3','\x20schedule\x20'];a60_0x4e96=function(){return _0x3337b8;};return a60_0x4e96();}(function(_0x59f5ee,_0x5280ca){const _0x4e7eb7=a60_0x2e8b,_0x830e18=_0x59f5ee();while(!![]){try{const _0x2d3b5e=parseInt(_0x4e7eb7(0x16e))/0x1+parseInt(_0x4e7eb7(0x18f))/0x2+parseInt(_0x4e7eb7(0x181))/0x3+-parseInt(_0x4e7eb7(0x1a0))/0x4+parseInt(_0x4e7eb7(0x198))/0x5+parseInt(_0x4e7eb7(0x192))/0x6*(parseInt(_0x4e7eb7(0x19a))/0x7)+-parseInt(_0x4e7eb7(0x18c))/0x8*(parseInt(_0x4e7eb7(0x15c))/0x9);if(_0x2d3b5e===_0x5280ca)break;else _0x830e18['push'](_0x830e18['shift']());}catch(_0x34480a){_0x830e18['push'](_0x830e18['shift']());}}}(a60_0x4e96,0x6a0cd));function a60_0x2e8b(_0x3e6eaa,_0x204c9e){_0x3e6eaa=_0x3e6eaa-0x15b;const _0x4e96d3=a60_0x4e96();let _0x2e8b86=_0x4e96d3[_0x3e6eaa];return _0x2e8b86;}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_0x5ab897(0x169),'type':a60_0x5ab897(0x164),'required':!![],'enum':[a60_0x5ab897(0x187),a60_0x5ab897(0x170)],'description':a60_0x5ab897(0x171)},CRON_FLAG={'name':a60_0x5ab897(0x160),'type':'string','description':a60_0x5ab897(0x18d)},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a60_0x5ab897(0x164),'description':a60_0x5ab897(0x180)},TITLE_FLAG={'name':a60_0x5ab897(0x19b),'type':a60_0x5ab897(0x164),'required':!![],'description':a60_0x5ab897(0x196)},PROMPT_FLAG={'name':'prompt','type':a60_0x5ab897(0x164),'required':!![],'description':a60_0x5ab897(0x166)},MODEL_FLAG={'name':'model','type':a60_0x5ab897(0x164),'enum':[a60_0x5ab897(0x176),'deepseek-v4-flash-0731',a60_0x5ab897(0x1a1)],'default':'deepseek-v4-flash-0731','description':a60_0x5ab897(0x17e)},SCHEDULE_ID_FLAG={'name':a60_0x5ab897(0x17b),'type':'string','required':!![],'description':a60_0x5ab897(0x18e),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x5ab897(0x190)}},LIMIT_FLAG={'name':a60_0x5ab897(0x16a),'type':'number','default':0x14,'description':a60_0x5ab897(0x168)},CURSOR_FLAG={'name':a60_0x5ab897(0x19e),'type':a60_0x5ab897(0x164),'description':a60_0x5ab897(0x194)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0xed3e6c){const _0x624597=a60_0x5ab897,_0x303dd1=_0xed3e6c[_0x624597(0x197)](_0x624597(0x169)),_0x38832a=_0xed3e6c[_0x624597(0x197)](_0x624597(0x19b))[_0x624597(0x179)](),_0x5d54af=_0xed3e6c[_0x624597(0x197)](_0x624597(0x19c))['trim'](),_0x58fdb8=_0xed3e6c[_0x624597(0x197)](_0x624597(0x188)),_0x582d16=_0xed3e6c['str'](_0x624597(0x160)),_0x1e2d72=_0xed3e6c['str'](_0x624597(0x175));if(!_0x38832a)throw CliErrors['validation'](_0x624597(0x16c));if(!_0x5d54af)throw CliErrors[_0x624597(0x19d)](_0x624597(0x1a9));if(_0x303dd1===_0x624597(0x187)){if(!_0x582d16||_0x1e2d72)throw CliErrors['validation'](_0x624597(0x17c));return{'kind':_0x303dd1,'timezone':_0x624597(0x163),'cron':_0x582d16,'title':_0x38832a,'prompt':_0x5d54af,'model':_0x58fdb8};}if(_0x303dd1===_0x624597(0x170)){if(!_0x1e2d72||_0x582d16)throw CliErrors[_0x624597(0x19d)]('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x303dd1,'timezone':_0x624597(0x163),'scheduledAt':_0x1e2d72,'title':_0x38832a,'prompt':_0x5d54af,'model':_0x58fdb8};}throw CliErrors['validation'](_0x624597(0x189));}function scheduleCollectionPath(_0x489d57){const _0x17929a=a60_0x5ab897;return _0x17929a(0x178)+encodeURIComponent(_0x489d57)+_0x17929a(0x193);}function scheduleItemPath(_0x2b1d42,_0x32fa1a){return scheduleCollectionPath(_0x2b1d42)+'/'+encodeURIComponent(_0x32fa1a);}const scheduleValidate={'service':'schedule','command':a60_0x5ab897(0x16b),'description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a60_0x5ab897(0x184),'flags':INPUT_FLAGS,async 'validate'(_0x35cde8){readScheduleInput(_0x35cde8);},async 'execute'(_0x26b2ce){const _0x27d39d=a60_0x5ab897,_0x381f42=readScheduleInput(_0x26b2ce),_0x3cc83f=await validateRuntimeSchedule(_0x26b2ce[_0x27d39d(0x162)],_0x381f42);return{'ok':!![],'data':_0x3cc83f,'message':_0x27d39d(0x15b)};}},scheduleCreate={'service':a60_0x5ab897(0x17f),'command':'create','description':a60_0x5ab897(0x1a3),'risk':a60_0x5ab897(0x183),'confirmationDescription':a60_0x5ab897(0x167),'flags':INPUT_FLAGS,async 'validate'(_0x4be33b){readScheduleInput(_0x4be33b);},async 'execute'(_0x17f8df){const _0x1fd740=a60_0x5ab897,_0x1c07fe=readScheduleInput(_0x17f8df),_0x19a448=await validateRuntimeSchedule(_0x17f8df[_0x1fd740(0x162)],_0x1c07fe),_0x5823d0=await createRuntimeSchedule(_0x17f8df[_0x1fd740(0x162)],_0x19a448);return{'ok':!![],'data':_0x5823d0,'message':_0x1fd740(0x16d)+_0x5823d0[_0x1fd740(0x169)]+_0x1fd740(0x177)+_0x5823d0[_0x1fd740(0x16f)]};},async 'dryRun'(_0xecbf28){const _0x3113c2=a60_0x5ab897,_0x35460e=readScheduleInput(_0xecbf28);return dryRun('POST',scheduleCollectionPath(_0xecbf28[_0x3113c2(0x162)]))[_0x3113c2(0x191)](_0x35460e)[_0x3113c2(0x1aa)](_0x3113c2(0x185))[_0x3113c2(0x1a7)]();}},scheduleList={'service':a60_0x5ab897(0x17f),'command':a60_0x5ab897(0x17d),'description':a60_0x5ab897(0x1a2),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x4b2812){const _0x2425ec=a60_0x5ab897,_0x262065=_0x4b2812[_0x2425ec(0x195)]('limit');if(!Number[_0x2425ec(0x15f)](_0x262065)||_0x262065<0x1||_0x262065>0x64)throw CliErrors[_0x2425ec(0x19d)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x599763=_0x4b2812[_0x2425ec(0x197)]('cursor');if(_0x599763&&(_0x599763['length']>0x400||_0x599763['trim']()!==_0x599763))throw CliErrors[_0x2425ec(0x19d)](_0x2425ec(0x1a4));},async 'execute'(_0x56b129){const _0xeece40=a60_0x5ab897,_0x15e6c0=_0x56b129[_0xeece40(0x197)](_0xeece40(0x19e)),_0x7bf165=await listRuntimeSchedules(_0x56b129[_0xeece40(0x162)],{'kind':_0x56b129[_0xeece40(0x197)]('kind'),'limit':_0x56b129[_0xeece40(0x195)]('limit'),..._0x15e6c0?{'cursor':_0x15e6c0}:{}});return{'ok':!![],'data':_0x7bf165};}},scheduleDetail={'service':a60_0x5ab897(0x17f),'command':a60_0x5ab897(0x199),'description':a60_0x5ab897(0x15e),'risk':a60_0x5ab897(0x184),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x42d102){const _0x49c2d7=a60_0x5ab897,_0x1cbe55=await getRuntimeSchedule(_0x42d102['appCode'],_0x42d102[_0x49c2d7(0x197)](_0x49c2d7(0x17b)));return{'ok':!![],'data':_0x1cbe55};}},scheduleRun={'service':a60_0x5ab897(0x17f),'command':a60_0x5ab897(0x173),'description':a60_0x5ab897(0x186),'risk':a60_0x5ab897(0x183),'confirmationDescription':a60_0x5ab897(0x174),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x38cc1a){const _0x4bfe60=a60_0x5ab897,_0xb8c540=_0x38cc1a[_0x4bfe60(0x197)](_0x4bfe60(0x17b)),_0x54a06f=await runRuntimeSchedule(_0x38cc1a['appCode'],_0xb8c540);return{'ok':!![],'data':_0x54a06f,'message':_0x4bfe60(0x15d)+_0x54a06f[_0x4bfe60(0x18b)]+'\x20from\x20schedule\x20'+_0xb8c540};},async 'dryRun'(_0x10936c){const _0x2cd4b7=a60_0x5ab897,_0x5a3c56=_0x10936c[_0x2cd4b7(0x197)](_0x2cd4b7(0x17b));return dryRun(_0x2cd4b7(0x165),scheduleItemPath(_0x10936c[_0x2cd4b7(0x162)],_0x5a3c56)+_0x2cd4b7(0x19f))[_0x2cd4b7(0x1aa)](_0x2cd4b7(0x182)+_0x5a3c56+_0x2cd4b7(0x1a6))[_0x2cd4b7(0x1a7)]();}},scheduleDelete={'service':'schedule','command':a60_0x5ab897(0x18a),'description':a60_0x5ab897(0x1a8),'risk':a60_0x5ab897(0x183),'confirmationDescription':a60_0x5ab897(0x172),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x39936d){const _0x4d53bd=a60_0x5ab897,_0x29d9d3=_0x39936d['str'](_0x4d53bd(0x17b)),_0x1f18ec=await deleteRuntimeSchedule(_0x39936d[_0x4d53bd(0x162)],_0x29d9d3);return{'ok':!![],'data':_0x1f18ec,'message':_0x4d53bd(0x17a)+_0x29d9d3};},async 'dryRun'(_0x935668){const _0x2a1463=a60_0x5ab897,_0x397d3a=_0x935668[_0x2a1463(0x197)]('schedule-id');return dryRun(_0x2a1463(0x1a5),scheduleItemPath(_0x935668[_0x2a1463(0x162)],_0x397d3a))[_0x2a1463(0x1aa)](_0x2a1463(0x161)+_0x397d3a)[_0x2a1463(0x1a7)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a60_0x51ea99=a60_0x2679;(function(_0x466c50,_0x2d442c){const _0x4e8f49=a60_0x2679,_0xce73c=_0x466c50();while(!![]){try{const _0x53852d=parseInt(_0x4e8f49(0xf7))/0x1*(parseInt(_0x4e8f49(0x11d))/0x2)+-parseInt(_0x4e8f49(0xe1))/0x3+parseInt(_0x4e8f49(0xd7))/0x4*(parseInt(_0x4e8f49(0xe2))/0x5)+-parseInt(_0x4e8f49(0x11a))/0x6*(parseInt(_0x4e8f49(0xd9))/0x7)+parseInt(_0x4e8f49(0xea))/0x8+parseInt(_0x4e8f49(0x110))/0x9+parseInt(_0x4e8f49(0x113))/0xa*(-parseInt(_0x4e8f49(0x117))/0xb);if(_0x53852d===_0x2d442c)break;else _0xce73c['push'](_0xce73c['shift']());}catch(_0x5c7349){_0xce73c['push'](_0xce73c['shift']());}}}(a60_0x4f43,0xbd2dc));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a60_0x4f43(){const _0x2603bf=['Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','\x20schedule\x20','prompt','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','5416768qtilAC','Deleted\x20schedule\x20','validate','kimi/k3','UTC','scheduleId','run','Schedule\x20input\x20is\x20valid','title','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','1sTvlEa','Preview:\x20delete\x20schedule\x20','string','read','appCode','cron','validation','isSafeInteger','high-risk-write','model','POST','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','/api/harness/apps/','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','DELETE','build','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','trim','/run','scheduled-at','/schedules','\x20from\x20schedule\x20','delete','8907147CcOCuk','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE','23124860sbbHdK','taskId','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','CRON','11bGACJV','length','str','18sudYGv','limit','deepseek-v4-pro-0813','2492138LOHlud','Preview:\x20run\x20schedule\x20','detail','kind','Queued\x20Task\x20','schedule','number','description','--title\x20must\x20not\x20be\x20blank.','430156DyiydV','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','18452AhUnEe','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Schedule\x20UUID','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','num','cursor','Schedule\x20kind:\x20CRON\x20or\x20ONCE','2356287lYaLDM','45LFaYqs','Schedule\x20title','Page\x20size\x20from\x201\x20to\x20100','schedule-id'];a60_0x4f43=function(){return _0x2603bf;};return a60_0x4f43();}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_0x51ea99(0x120),'type':a60_0x51ea99(0xf9),'required':!![],'enum':[a60_0x51ea99(0x116),a60_0x51ea99(0x112)],'description':a60_0x51ea99(0xe0)},CRON_FLAG={'name':a60_0x51ea99(0xfc),'type':a60_0x51ea99(0xf9),'description':a60_0x51ea99(0x107)},SCHEDULED_AT_FLAG={'name':a60_0x51ea99(0x10c),'type':'string','description':a60_0x51ea99(0x115)},TITLE_FLAG={'name':'title','type':a60_0x51ea99(0xf9),'required':!![],'description':a60_0x51ea99(0xe3)},PROMPT_FLAG={'name':a60_0x51ea99(0xe8),'type':'string','required':!![],'description':a60_0x51ea99(0xf5)},MODEL_FLAG={'name':a60_0x51ea99(0x100),'type':'string','enum':[a60_0x51ea99(0xed),'deepseek-v4-flash-0731',a60_0x51ea99(0x11c)],'default':'deepseek-v4-flash-0731','description':a60_0x51ea99(0xf4)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':'string','required':!![],'description':a60_0x51ea99(0xdc),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x51ea99(0xd8)}},LIMIT_FLAG={'name':'limit','type':a60_0x51ea99(0x123),'default':0x14,'description':a60_0x51ea99(0xe4)},CURSOR_FLAG={'name':a60_0x51ea99(0xdf),'type':a60_0x51ea99(0xf9),'description':a60_0x51ea99(0xdd)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0xf06a4f){const _0x509537=a60_0x51ea99,_0x51dd69=_0xf06a4f['str']('kind'),_0x10c7e5=_0xf06a4f['str'](_0x509537(0xf2))['trim'](),_0x276d5c=_0xf06a4f[_0x509537(0x119)](_0x509537(0xe8))[_0x509537(0x10a)](),_0x396ad9=_0xf06a4f[_0x509537(0x119)](_0x509537(0x100)),_0x14ce02=_0xf06a4f[_0x509537(0x119)](_0x509537(0xfc)),_0xcd8e21=_0xf06a4f['str']('scheduled-at');if(!_0x10c7e5)throw CliErrors[_0x509537(0xfd)](_0x509537(0xd6));if(!_0x276d5c)throw CliErrors[_0x509537(0xfd)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x51dd69===_0x509537(0x116)){if(!_0x14ce02||_0xcd8e21)throw CliErrors[_0x509537(0xfd)](_0x509537(0x104));return{'kind':_0x51dd69,'timezone':_0x509537(0xee),'cron':_0x14ce02,'title':_0x10c7e5,'prompt':_0x276d5c,'model':_0x396ad9};}if(_0x51dd69==='ONCE'){if(!_0xcd8e21||_0x14ce02)throw CliErrors[_0x509537(0xfd)](_0x509537(0x102));return{'kind':_0x51dd69,'timezone':_0x509537(0xee),'scheduledAt':_0xcd8e21,'title':_0x10c7e5,'prompt':_0x276d5c,'model':_0x396ad9};}throw CliErrors[_0x509537(0xfd)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x5b866e){const _0x5a57ab=a60_0x51ea99;return _0x5a57ab(0x103)+encodeURIComponent(_0x5b866e)+_0x5a57ab(0x10d);}function scheduleItemPath(_0x3f3261,_0x382e67){return scheduleCollectionPath(_0x3f3261)+'/'+encodeURIComponent(_0x382e67);}const scheduleValidate={'service':'schedule','command':a60_0x51ea99(0xec),'description':a60_0x51ea99(0xe6),'risk':a60_0x51ea99(0xfa),'flags':INPUT_FLAGS,async 'validate'(_0xd1448a){readScheduleInput(_0xd1448a);},async 'execute'(_0x21d04a){const _0x3dceee=a60_0x51ea99,_0x169fcd=readScheduleInput(_0x21d04a),_0x433f77=await validateRuntimeSchedule(_0x21d04a[_0x3dceee(0xfb)],_0x169fcd);return{'ok':!![],'data':_0x433f77,'message':_0x3dceee(0xf1)};}},scheduleCreate={'service':a60_0x51ea99(0x122),'command':'create','description':a60_0x51ea99(0xe9),'risk':'high-risk-write','confirmationDescription':a60_0x51ea99(0xda),'flags':INPUT_FLAGS,async 'validate'(_0x1032d0){readScheduleInput(_0x1032d0);},async 'execute'(_0x24fdd1){const _0x48f7fd=a60_0x51ea99,_0x6a4de6=readScheduleInput(_0x24fdd1),_0x227435=await validateRuntimeSchedule(_0x24fdd1[_0x48f7fd(0xfb)],_0x6a4de6),_0xe801d9=await createRuntimeSchedule(_0x24fdd1[_0x48f7fd(0xfb)],_0x227435);return{'ok':!![],'data':_0xe801d9,'message':'Created\x20'+_0xe801d9[_0x48f7fd(0x120)]+_0x48f7fd(0xe7)+_0xe801d9[_0x48f7fd(0xef)]};},async 'dryRun'(_0x4c4973){const _0x43f9db=a60_0x51ea99,_0x21e0a8=readScheduleInput(_0x4c4973);return dryRun(_0x43f9db(0x101),scheduleCollectionPath(_0x4c4973['appCode']))['body'](_0x21e0a8)[_0x43f9db(0x124)](_0x43f9db(0x111))[_0x43f9db(0x106)]();}},scheduleList={'service':'schedule','command':'list','description':a60_0x51ea99(0xf3),'risk':a60_0x51ea99(0xfa),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3f7e36){const _0xfc8a23=a60_0x51ea99,_0xab0e88=_0x3f7e36[_0xfc8a23(0xde)](_0xfc8a23(0x11b));if(!Number[_0xfc8a23(0xfe)](_0xab0e88)||_0xab0e88<0x1||_0xab0e88>0x64)throw CliErrors['validation'](_0xfc8a23(0x109));const _0x52a6e1=_0x3f7e36[_0xfc8a23(0x119)](_0xfc8a23(0xdf));if(_0x52a6e1&&(_0x52a6e1[_0xfc8a23(0x118)]>0x400||_0x52a6e1[_0xfc8a23(0x10a)]()!==_0x52a6e1))throw CliErrors['validation'](_0xfc8a23(0xdb));},async 'execute'(_0x34db4d){const _0x13a606=a60_0x51ea99,_0x3f00f8=_0x34db4d['str']('cursor'),_0x230743=await listRuntimeSchedules(_0x34db4d['appCode'],{'kind':_0x34db4d[_0x13a606(0x119)](_0x13a606(0x120)),'limit':_0x34db4d[_0x13a606(0xde)](_0x13a606(0x11b)),..._0x3f00f8?{'cursor':_0x3f00f8}:{}});return{'ok':!![],'data':_0x230743};}},scheduleDetail={'service':a60_0x51ea99(0x122),'command':a60_0x51ea99(0x11f),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x918156){const _0x4d3e40=a60_0x51ea99,_0x57fe97=await getRuntimeSchedule(_0x918156[_0x4d3e40(0xfb)],_0x918156['str'](_0x4d3e40(0xe5)));return{'ok':!![],'data':_0x57fe97};}},scheduleRun={'service':'schedule','command':a60_0x51ea99(0xf0),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a60_0x51ea99(0xff),'confirmationDescription':a60_0x51ea99(0xf6),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x161c04){const _0x68f2e6=a60_0x51ea99,_0x5dfe90=_0x161c04[_0x68f2e6(0x119)](_0x68f2e6(0xe5)),_0x3795dd=await runRuntimeSchedule(_0x161c04['appCode'],_0x5dfe90);return{'ok':!![],'data':_0x3795dd,'message':_0x68f2e6(0x121)+_0x3795dd[_0x68f2e6(0x114)]+_0x68f2e6(0x10e)+_0x5dfe90};},async 'dryRun'(_0x3b7a74){const _0x57720c=a60_0x51ea99,_0x187fab=_0x3b7a74[_0x57720c(0x119)]('schedule-id');return dryRun('POST',scheduleItemPath(_0x3b7a74['appCode'],_0x187fab)+_0x57720c(0x10b))[_0x57720c(0x124)](_0x57720c(0x11e)+_0x187fab+'\x20immediately')[_0x57720c(0x106)]();}},scheduleDelete={'service':a60_0x51ea99(0x122),'command':a60_0x51ea99(0x10f),'description':a60_0x51ea99(0x108),'risk':a60_0x51ea99(0xff),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x29e838){const _0x183584=a60_0x51ea99,_0x518b8e=_0x29e838[_0x183584(0x119)](_0x183584(0xe5)),_0x42058e=await deleteRuntimeSchedule(_0x29e838['appCode'],_0x518b8e);return{'ok':!![],'data':_0x42058e,'message':_0x183584(0xeb)+_0x518b8e};},async 'dryRun'(_0x2d716d){const _0x2d822b=a60_0x51ea99,_0x15f434=_0x2d716d[_0x2d822b(0x119)](_0x2d822b(0xe5));return dryRun(_0x2d822b(0x105),scheduleItemPath(_0x2d716d[_0x2d822b(0xfb)],_0x15f434))[_0x2d822b(0x124)](_0x2d822b(0xf8)+_0x15f434)[_0x2d822b(0x106)]();}};function a60_0x2679(_0x151e90,_0x352fdb){_0x151e90=_0x151e90-0xd6;const _0x4f43e6=a60_0x4f43();let _0x26795f=_0x4f43e6[_0x151e90];return _0x26795f;}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- function a61_0xc849(_0x2707a9,_0xcd831c){_0x2707a9=_0x2707a9-0x1e9;const _0x414e1d=a61_0x414e();let _0xc849d3=_0x414e1d[_0x2707a9];return _0xc849d3;}const a61_0x2fa544=a61_0xc849;function a61_0x414e(){const _0x63cc14=['577599SraQBN','10JIaGom','2968APdipa','schema','8664481ALjqTI','3698972Tpqvfy','Export\x20machine-readable\x20command\x20schema\x20(JSON)','125289pVpXwk','5855760rNwudo','715194IqDoeb','export','3551380PodiYz','read'];a61_0x414e=function(){return _0x63cc14;};return a61_0x414e();}(function(_0x38ed77,_0x3fed82){const _0x5a6a29=a61_0xc849,_0x12df5=_0x38ed77();while(!![]){try{const _0x41c243=-parseInt(_0x5a6a29(0x1f1))/0x1+-parseInt(_0x5a6a29(0x1ef))/0x2+parseInt(_0x5a6a29(0x1ed))/0x3+parseInt(_0x5a6a29(0x1e9))/0x4*(-parseInt(_0x5a6a29(0x1f2))/0x5)+parseInt(_0x5a6a29(0x1ec))/0x6+-parseInt(_0x5a6a29(0x1f5))/0x7+parseInt(_0x5a6a29(0x1f3))/0x8*(parseInt(_0x5a6a29(0x1eb))/0x9);if(_0x41c243===_0x3fed82)break;else _0x12df5['push'](_0x12df5['shift']());}catch(_0x1f8820){_0x12df5['push'](_0x12df5['shift']());}}}(a61_0x414e,0xe51fb));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x28d229){const _0x498d65=await buildSchemaPayload();return{'ok':!![],'data':_0x498d65};}export const schemaDefinition={'service':a61_0x2fa544(0x1f4),'command':a61_0x2fa544(0x1ee),'description':a61_0x2fa544(0x1ea),'risk':a61_0x2fa544(0x1f0),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a61_0x5229e0=a61_0x36db;(function(_0x5ed748,_0x132f02){const _0x4d012d=a61_0x36db,_0x129bdd=_0x5ed748();while(!![]){try{const _0x29c016=-parseInt(_0x4d012d(0x15f))/0x1*(-parseInt(_0x4d012d(0x163))/0x2)+-parseInt(_0x4d012d(0x167))/0x3+-parseInt(_0x4d012d(0x162))/0x4*(parseInt(_0x4d012d(0x168))/0x5)+parseInt(_0x4d012d(0x161))/0x6+-parseInt(_0x4d012d(0x166))/0x7*(parseInt(_0x4d012d(0x15b))/0x8)+-parseInt(_0x4d012d(0x160))/0x9*(parseInt(_0x4d012d(0x15d))/0xa)+parseInt(_0x4d012d(0x15a))/0xb;if(_0x29c016===_0x132f02)break;else _0x129bdd['push'](_0x129bdd['shift']());}catch(_0x3aa95f){_0x129bdd['push'](_0x129bdd['shift']());}}}(a61_0x1243,0x25644));function a61_0x36db(_0x1446e4,_0x40be46){_0x1446e4=_0x1446e4-0x15a;const _0x12430b=a61_0x1243();let _0x36dbf4=_0x12430b[_0x1446e4];return _0x36dbf4;}import{buildSchemaPayload}from'../framework/schema-export.js';function a61_0x1243(){const _0x58639b=['read','169870SSTNFv','schema','4996APUGdE','45ABPHUU','1094226OOGJUL','4pWcwSA','2WDpdSn','Export\x20machine-readable\x20command\x20schema\x20(JSON)','export','7zgXbBq','842055vBSHeX','237480pxngMG','5646113PgZCdY','1075024IUQZBA'];a61_0x1243=function(){return _0x58639b;};return a61_0x1243();}async function execute(_0x1d54f2){const _0x508550=await buildSchemaPayload();return{'ok':!![],'data':_0x508550};}export const schemaDefinition={'service':a61_0x5229e0(0x15e),'command':a61_0x5229e0(0x165),'description':a61_0x5229e0(0x164),'risk':a61_0x5229e0(0x15c),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x2b0b26,_0x23982e){const _0x5b0870=a62_0x36d5,_0x271b0f=_0x2b0b26();while(!![]){try{const _0x20509f=-parseInt(_0x5b0870(0x219))/0x1+parseInt(_0x5b0870(0x222))/0x2*(parseInt(_0x5b0870(0x213))/0x3)+parseInt(_0x5b0870(0x23c))/0x4*(parseInt(_0x5b0870(0x243))/0x5)+-parseInt(_0x5b0870(0x201))/0x6+parseInt(_0x5b0870(0x21b))/0x7*(-parseInt(_0x5b0870(0x238))/0x8)+-parseInt(_0x5b0870(0x246))/0x9+parseInt(_0x5b0870(0x24d))/0xa;if(_0x20509f===_0x23982e)break;else _0x271b0f['push'](_0x271b0f['shift']());}catch(_0x12994b){_0x271b0f['push'](_0x271b0f['shift']());}}}(a62_0x3cf5,0x2e6d6));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';function a62_0x36d5(_0x210ca3,_0xe8b7d0){_0x210ca3=_0x210ca3-0x1e9;const _0x3cf5e1=a62_0x3cf5();let _0x36d5d4=_0x3cf5e1[_0x210ca3];return _0x36d5d4;}export function resolveDynamicServiceCommand(_0x545d6e,_0x582a52){const _0x7afc55=a62_0x36d5,_0x4f6052=listLocalServiceTrees();let _0x4c642c;for(const _0x468492 of _0x4f6052){const _0x3ff606=matchServiceTreeCommand(_0x468492,_0x545d6e);if(!_0x3ff606)continue;(!_0x4c642c||_0x3ff606['command']['fullPath'][_0x7afc55(0x1f2)]>_0x4c642c[_0x7afc55(0x23d)][_0x7afc55(0x214)][_0x7afc55(0x1f2)])&&(_0x4c642c={'tree':_0x468492,'command':_0x3ff606[_0x7afc55(0x23d)],'remainingArgs':_0x3ff606[_0x7afc55(0x208)]});}if(!_0x4c642c)return undefined;const _0x344245={..._0x582a52};return applyAppBinding(_0x4c642c['tree'],_0x4c642c[_0x7afc55(0x23d)],_0x344245),{'definition':buildDynamicCommandDefinition(_0x4c642c[_0x7afc55(0x23f)],_0x4c642c[_0x7afc55(0x23d)]),'args':_0x4c642c[_0x7afc55(0x208)],'flags':_0x344245,'tree':_0x4c642c['tree'],'command':_0x4c642c[_0x7afc55(0x23d)]};}export function generateDynamicServiceHelp(_0xc25478){const _0x52325b=a62_0x36d5,_0x257776=listLocalServiceTrees()[_0x52325b(0x206)](_0x552ed9=>_0x552ed9[_0x52325b(0x1ec)]['code']===_0xc25478);if(!_0x257776)return undefined;const _0x325b1f=[CLI_BIN_NAME+'\x20'+_0xc25478+_0x52325b(0x1fa),'',_0x257776['service'][_0x52325b(0x20d)]||_0xc25478,_0x257776[_0x52325b(0x1ec)][_0x52325b(0x226)]?'\x20\x20'+_0x257776[_0x52325b(0x1ec)][_0x52325b(0x226)]:'','',_0x52325b(0x1f4),..._0x257776[_0x52325b(0x1f9)]['map'](_0x341380=>{const _0x46be61=_0x52325b,_0x5deccf=_0x341380[_0x46be61(0x214)]['slice'](0x1)['join']('\x20'),_0x307003=_0x341380['risk']===_0x46be61(0x1f0)?'':'\x20['+_0x341380[_0x46be61(0x20e)]+']';return'\x20\x20'+_0x5deccf[_0x46be61(0x1f5)](0x18)+'\x20'+(_0x341380[_0x46be61(0x226)]||'')+_0x307003;}),'',_0x52325b(0x221)+CLI_BIN_NAME+_0x52325b(0x1f1)+_0xc25478+_0x52325b(0x236)][_0x52325b(0x230)](Boolean);return _0x325b1f[_0x52325b(0x1eb)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x2cfb21=>{const _0x1978fb=a62_0x36d5,_0x176af3=_0x2cfb21[_0x1978fb(0x21a)];return{'service':_0x176af3[_0x1978fb(0x1ec)][_0x1978fb(0x21d)],'label':_0x176af3['service']['name']||_0x176af3[_0x1978fb(0x1ec)][_0x1978fb(0x21d)],'commands':_0x176af3[_0x1978fb(0x1f9)]['map'](_0x12708e=>({'command':dynamicCommandName(_0x12708e),'description':_0x12708e[_0x1978fb(0x226)]||'Run\x20service\x20command\x20'+_0x12708e[_0x1978fb(0x1ea)],'tag':riskTag(_0x12708e[_0x1978fb(0x20e)])}))};});}export function getDynamicServiceEntry(_0x51a904){const _0xe1fb34=a62_0x36d5;return listDynamicServiceEntries()[_0xe1fb34(0x206)](_0x11bd16=>_0x11bd16[_0xe1fb34(0x1ec)]===_0x51a904);}export function listDynamicServiceDefinitions(_0x47e6f5){const _0x215396=a62_0x36d5;return listLocalServiceTrees()[_0x215396(0x230)](_0x4de03d=>!_0x47e6f5||_0x4de03d[_0x215396(0x1ec)][_0x215396(0x21d)]===_0x47e6f5)['flatMap'](_0x2eb376=>_0x2eb376[_0x215396(0x1f9)][_0x215396(0x1fe)](_0xa61325=>buildDynamicCommandDefinition(_0x2eb376,_0xa61325)));}export function getDynamicServiceDefinitions(_0x1c3fc7){const _0x144f3b=a62_0x36d5,_0x108fbc=listDynamicServiceDefinitions(_0x1c3fc7);return _0x108fbc[_0x144f3b(0x1f2)]>0x0?_0x108fbc:undefined;}export function findDynamicServiceDefinition(_0x407d4b,_0xf79564){const _0x4a92ff=a62_0x36d5;return listDynamicServiceDefinitions(_0x407d4b)[_0x4a92ff(0x206)](_0x3593be=>_0x3593be[_0x4a92ff(0x23d)]===_0xf79564);}export function buildDynamicCommandDefinition(_0x18aa51,_0x4bceb2){const _0x1eb6d9=a62_0x36d5;return{'service':_0x18aa51[_0x1eb6d9(0x1ec)][_0x1eb6d9(0x21d)],'command':dynamicCommandName(_0x4bceb2),'description':_0x4bceb2['description']||_0x1eb6d9(0x205)+_0x4bceb2['cliPath'],'risk':_0x4bceb2[_0x1eb6d9(0x20e)],..._0x4bceb2['risk']===_0x1eb6d9(0x1f0)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x4bceb2)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x4bceb2[_0x1eb6d9(0x1f8)][_0x1eb6d9(0x1fe)](_0x71243d=>({'name':_0x71243d[_0x1eb6d9(0x20d)],'description':_0x71243d['description']||_0x71243d[_0x1eb6d9(0x20d)],'required':_0x71243d[_0x1eb6d9(0x1ef)]})),'flags':_0x4bceb2['flags'][_0x1eb6d9(0x1fe)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x4bceb2),async 'dryRun'(_0x5dd38e){const _0x376cae=_0x1eb6d9,_0x290757=await compilePlan(_0x4bceb2,_0x5dd38e);return{'method':_0x376cae(0x212),'url':_0x4bceb2['cliPath'],'body':{'target':targetPreview(_0x290757),'params':_0x290757['params']},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x4bceb2[_0x376cae(0x1ea)]};},async 'execute'(_0x24a3ce){const _0x520ac1=_0x1eb6d9,_0x72e079=await compilePlan(_0x4bceb2,_0x24a3ce),_0x2b43c5=Date[_0x520ac1(0x24e)](),_0x23a81e=await executePlan(_0x72e079,_0x4bceb2,_0x24a3ce),_0x2d3970=Date['now']()-_0x2b43c5;return{'ok':!![],'data':{'service':_0x18aa51[_0x520ac1(0x1ec)],'command':_0x4bceb2[_0x520ac1(0x1ea)],'target':targetPreview(_0x72e079),'result':_0x23a81e,'elapsed':_0x2d3970},'message':_0x520ac1(0x1ee)+_0x4bceb2[_0x520ac1(0x1ea)]+'\x20completed\x20in\x20'+_0x2d3970+'ms'};}};}function buildDynamicConfirmationDescription(_0x5b568d){const _0x27fc7e=a62_0x36d5,_0x5b7232=_0x5b568d[_0x27fc7e(0x226)]||_0x5b568d[_0x27fc7e(0x1ea)],_0x40860a=_0x5b568d['risk']==='high-risk-write'?_0x27fc7e(0x229):_0x27fc7e(0x21c);return _0x27fc7e(0x1e9)+_0x5b7232+_0x27fc7e(0x203)+_0x40860a;}function dynamicCommandName(_0x53b6c9){const _0x79df40=a62_0x36d5;return _0x53b6c9['fullPath'][_0x79df40(0x244)](0x1)[_0x79df40(0x1eb)]('\x20');}function riskTag(_0x725836){const _0x48f819=a62_0x36d5;return _0x725836===_0x48f819(0x1f0)?'':_0x48f819(0x233)+_0x725836+']';}function flagToCommandFlag(_0x3a5ee6){const _0x672ba9=a62_0x36d5;return{'name':_0x3a5ee6[_0x672ba9(0x215)],'type':_0x3a5ee6[_0x672ba9(0x232)]===_0x672ba9(0x220)?_0x672ba9(0x237):_0x3a5ee6[_0x672ba9(0x232)],'description':_0x3a5ee6['description']||_0x3a5ee6[_0x672ba9(0x20d)],'required':_0x3a5ee6[_0x672ba9(0x1ef)],'default':isPrimitiveFlagDefault(_0x3a5ee6[_0x672ba9(0x22f)])?_0x3a5ee6[_0x672ba9(0x22f)]:undefined,'enum':_0x3a5ee6[_0x672ba9(0x24b)]};}async function compilePlan(_0x147de3,_0x9fcb93){const _0x2f928c=a62_0x36d5;return compileServiceTreeCommand(_0x147de3,{'flags':_0x9fcb93[_0x2f928c(0x1fb)],'args':_0x9fcb93['args'],'context':await buildServiceContext(_0x147de3,_0x9fcb93)});}async function buildServiceContext(_0x1213f0,_0x40706b){const _0x464d07=a62_0x36d5,_0x31174c={'appCode':_0x40706b[_0x464d07(0x202)],'env':_0x40706b[_0x464d07(0x1ff)],'envName':_0x40706b[_0x464d07(0x1ff)]};if(!usesRuntimeContext(_0x1213f0))return _0x31174c;const _0x2d5b9f=await getLoginUserInfo(),_0x4b5064=pickFirst(_0x2d5b9f['userId'],_0x2d5b9f['id']);return{..._0x31174c,'user':_0x2d5b9f,'userId':_0x4b5064,'id':_0x2d5b9f['id'],'username':pickFirst(_0x2d5b9f[_0x464d07(0x1ed)],_0x2d5b9f['userName'],_0x2d5b9f['loginName']),'userName':_0x2d5b9f['userName'],'nickname':pickFirst(_0x2d5b9f[_0x464d07(0x235)],_0x2d5b9f[_0x464d07(0x245)]),'nickName':_0x2d5b9f[_0x464d07(0x245)],'tenantCode':_0x2d5b9f[_0x464d07(0x22c)],'employeeId':_0x2d5b9f[_0x464d07(0x241)]};}function usesRuntimeContext(_0x1da327){const _0x3d5ba4=a62_0x36d5;return _0x1da327['mapTo']['some'](_0x27a99b=>typeof _0x27a99b[_0x3d5ba4(0x200)]===_0x3d5ba4(0x237)&&(_0x27a99b[_0x3d5ba4(0x200)][_0x3d5ba4(0x1f6)](_0x3d5ba4(0x228))||_0x27a99b[_0x3d5ba4(0x200)][_0x3d5ba4(0x1f6)](_0x3d5ba4(0x23e))));}function pickFirst(..._0x33df54){const _0x2222ba=a62_0x36d5;return _0x33df54[_0x2222ba(0x206)](_0x36f4f3=>_0x36f4f3!==undefined&&_0x36f4f3!==null);}function a62_0x3cf5(){const _0x2805da=['bffId','env','default','filter','target','type','\x20\x20[','appRef','nickname','`\x20to\x20inspect\x20the\x20manifest.','string','16HWnLDp','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','datatable','\x20\x20MAP\x20TO','3052HryaPD','command','ctx.','tree','data','employeeId','number','2210zKpRfK','slice','nickName','2085849upftoD','sql','appcode','\x20requires\x20target.functionName.','datasetCode','enum','\x20\x20SERVICE\x20TREE\x20TARGET','8545500IYvcIs','now','scriptName','\x20\x20\x20\x20','params','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','cliPath','join','service','username','Service\x20command\x20','required','read','\x20service\x20detail\x20--service\x20','length','bffCode','Commands:','padEnd','startsWith','\x20\x20\x20\x20sqlCode:\x20','args','commands','\x20<command>\x20[flags]','rawFlags','\x20\x20\x20\x20datasetCode:\x20','trim','map','envName','source','1494096YAvMFc','appCode','\x22.\x20','bff','Run\x20service\x20command\x20','find','sqlCode','remainingArgs','appBindings','tableName','kind','fromEntries','name','risk','\x20requires\x20target.sqlCode.','mapTo','Cannot\x20resolve\x20datatable\x20\x22','SERVICE_TREE','138Zkxvrx','fullPath','cliName','\x20\x20\x20\x20command:\x20','app','push','278473YhGulY','normalizedManifest','972783iGSVOZ','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','code','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','json','Use\x20`','1546bWwQDO','operator','Unsupported\x20service\x20target\x20kind:\x20','Unknown\x20appRef\x20\x22','description','boolean','context.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','validation','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','tenantCode'];a62_0x3cf5=function(){return _0x2805da;};return a62_0x3cf5();}async function executePlan(_0x5bfdab,_0x1435db,_0x1ed369){const _0x481d89=a62_0x36d5;if(_0x5bfdab[_0x481d89(0x20b)]===_0x481d89(0x240)){const _0x43ec14=await resolveDatasetCode(_0x5bfdab,_0x1435db,_0x1ed369);return executeData(_0x43ec14,_0x5bfdab['command'],_0x5bfdab[_0x481d89(0x251)]);}if(_0x5bfdab[_0x481d89(0x20b)]===_0x481d89(0x247)){if(!_0x5bfdab[_0x481d89(0x207)])throw CliErrors['validation'](_0x481d89(0x1ee)+_0x1435db[_0x481d89(0x1ea)]+_0x481d89(0x20f));return executeSdkSql(_0x5bfdab[_0x481d89(0x207)],normalizeScalarParams(_0x5bfdab[_0x481d89(0x251)]));}if(_0x5bfdab[_0x481d89(0x20b)]===_0x481d89(0x204)){const _0x36ce1f=_0x5bfdab['scriptName']||_0x5bfdab[_0x481d89(0x1f3)]||(_0x5bfdab['bffId']==null?'':String(_0x5bfdab['bffId']));if(!_0x36ce1f)throw CliErrors[_0x481d89(0x22a)](_0x481d89(0x1ee)+_0x1435db[_0x481d89(0x1ea)]+_0x481d89(0x249));return executeSdkBff(_0x36ce1f,_0x5bfdab[_0x481d89(0x251)]);}throw CliErrors['validation'](_0x481d89(0x224)+_0x5bfdab[_0x481d89(0x20b)]);}async function resolveDatasetCode(_0x27a63d,_0x32f150,_0x1f1fa0){const _0x245c48=a62_0x36d5;if(_0x27a63d[_0x245c48(0x24a)])return _0x27a63d[_0x245c48(0x24a)];if(!_0x27a63d[_0x245c48(0x23a)])throw CliErrors[_0x245c48(0x22a)](_0x245c48(0x1ee)+_0x32f150[_0x245c48(0x1ea)]+_0x245c48(0x239));const _0x2e9aca=await listDatasets(_0x1f1fa0[_0x245c48(0x202)]),_0x16a9d4=_0x2e9aca[_0x245c48(0x206)](_0x20f41e=>_0x20f41e['dbtableConfig']?.[_0x245c48(0x20a)]===_0x27a63d['datatable']);if(!_0x16a9d4?.['code'])throw CliErrors[_0x245c48(0x22a)](_0x245c48(0x211)+_0x27a63d[_0x245c48(0x23a)]+_0x245c48(0x21e)+_0x1f1fa0['appCode']+'.',_0x245c48(0x21f));return _0x16a9d4[_0x245c48(0x21d)];}function applyAppBinding(_0x54d35f,_0x25825f,_0x457fc5){const _0x5424a7=a62_0x36d5,_0x266eaa=_0x25825f[_0x5424a7(0x231)][_0x5424a7(0x234)];if(!_0x266eaa)return;const _0x55ce68=_0x54d35f[_0x5424a7(0x209)][_0x266eaa];if(!_0x55ce68)throw CliErrors[_0x5424a7(0x22a)](_0x5424a7(0x225)+_0x266eaa+'\x22\x20in\x20service\x20command\x20'+_0x25825f[_0x5424a7(0x1ea)]+'.',_0x5424a7(0x22b));const _0x123fbb=_0x55ce68[_0x5424a7(0x248)]||_0x55ce68[_0x5424a7(0x202)];_0x123fbb&&!hasText(_0x457fc5[_0x5424a7(0x248)])&&(_0x457fc5['appcode']=_0x123fbb),_0x55ce68[_0x5424a7(0x217)]&&!hasText(_0x457fc5[_0x5424a7(0x217)])&&!hasText(_0x457fc5[_0x5424a7(0x248)])&&(_0x457fc5['app']=_0x55ce68[_0x5424a7(0x217)]),_0x55ce68['env']&&!hasText(_0x457fc5['env'])&&(_0x457fc5[_0x5424a7(0x22e)]=_0x55ce68[_0x5424a7(0x22e)]);}function renderDynamicCommandHelp(_0x29bbf5){const _0x78d3e5=a62_0x36d5,_0x38e80a=[_0x78d3e5(0x24c),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x29bbf5[_0x78d3e5(0x231)][_0x78d3e5(0x20b)],_0x78d3e5(0x216)+_0x29bbf5[_0x78d3e5(0x231)][_0x78d3e5(0x23d)]];if(_0x29bbf5[_0x78d3e5(0x231)][_0x78d3e5(0x24a)])_0x38e80a[_0x78d3e5(0x218)](_0x78d3e5(0x1fc)+_0x29bbf5['target'][_0x78d3e5(0x24a)]);if(_0x29bbf5[_0x78d3e5(0x231)]['datatable'])_0x38e80a['push']('\x20\x20\x20\x20datatable:\x20'+_0x29bbf5[_0x78d3e5(0x231)][_0x78d3e5(0x23a)]);if(_0x29bbf5[_0x78d3e5(0x231)]['sqlCode'])_0x38e80a[_0x78d3e5(0x218)](_0x78d3e5(0x1f7)+_0x29bbf5['target']['sqlCode']);if(_0x29bbf5['target'][_0x78d3e5(0x24f)])_0x38e80a[_0x78d3e5(0x218)]('\x20\x20\x20\x20functionName:\x20'+_0x29bbf5[_0x78d3e5(0x231)][_0x78d3e5(0x24f)]);if(_0x29bbf5[_0x78d3e5(0x210)][_0x78d3e5(0x1f2)]>0x0){_0x38e80a[_0x78d3e5(0x218)]('',_0x78d3e5(0x23b));for(const _0x3efd61 of _0x29bbf5[_0x78d3e5(0x210)]){_0x38e80a[_0x78d3e5(0x218)](_0x78d3e5(0x250)+(_0x3efd61[_0x78d3e5(0x200)]||'const')+'\x20->\x20'+_0x3efd61[_0x78d3e5(0x231)]+(_0x3efd61[_0x78d3e5(0x223)]?'.'+_0x3efd61['operator']:''));}}return _0x38e80a[_0x78d3e5(0x1eb)]('\x0a');}function targetPreview(_0x4401f8){const _0x33b365=a62_0x36d5;return{'kind':_0x4401f8[_0x33b365(0x20b)],'command':_0x4401f8['command'],'appRef':_0x4401f8[_0x33b365(0x234)],'datasetCode':_0x4401f8['datasetCode'],'datatable':_0x4401f8['datatable'],'sqlCode':_0x4401f8['sqlCode'],'bffCode':_0x4401f8[_0x33b365(0x1f3)],'bffId':_0x4401f8[_0x33b365(0x22d)],'functionName':_0x4401f8['scriptName']};}function normalizeScalarParams(_0x2fb6e0){const _0x210faf=a62_0x36d5;return Object[_0x210faf(0x20c)](Object['entries'](_0x2fb6e0)[_0x210faf(0x230)](([,_0x38c56e])=>typeof _0x38c56e==='string'||typeof _0x38c56e==='number'));}function hasText(_0x5139cf){const _0x38796f=a62_0x36d5;return typeof _0x5139cf==='string'&&_0x5139cf[_0x38796f(0x1fd)]()[_0x38796f(0x1f2)]>0x0;}function isPrimitiveFlagDefault(_0x4dded0){const _0x2e249d=a62_0x36d5;return _0x4dded0===undefined||typeof _0x4dded0===_0x2e249d(0x237)||typeof _0x4dded0===_0x2e249d(0x242)||typeof _0x4dded0===_0x2e249d(0x227);}
1
+ function a62_0x47d6(){const _0x201b48=['\x20\x20\x20\x20command:\x20','normalizedManifest','datatable','number','cliPath','Unsupported\x20service\x20target\x20kind:\x20','Commands:','999BKVFfI','username','SERVICE_TREE','length','service','sql','validation','appCode','1089110YUiAXI','loginName','boolean','mapTo','808fxZtgs','\x20->\x20','tree','description','find','441336pdfiuY','ctx.','Run\x20service\x20command\x20','trim','name','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','fullPath','\x20requires\x20target.sqlCode.','userId','entries','rawFlags','app','flags','map','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20datasetCode:\x20','enum','flatMap','default','\x20service\x20detail\x20--service\x20','\x22.\x20','string','3AwPIBV','\x20completed\x20in\x20','envName','appRef','bffId','\x20\x20SERVICE\x20TREE\x20TARGET','env','appBindings','startsWith','dbtableConfig','employeeId','params','\x20\x20\x20\x20','operator','bff','slice','high-risk-write','`\x20to\x20inspect\x20the\x20manifest.','117795lMrLVv','padEnd','7427gYGriz','fromEntries','Cannot\x20resolve\x20datatable\x20\x22','join','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','const','datasetCode','now','args','appcode','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20functionName:\x20','nickname','code','command','Use\x20`','type','Unknown\x20appRef\x20\x22','tableName','Service\x20command\x20','bffCode','scriptName','some','14090OKYryd','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x22\x20in\x20service\x20command\x20','\x20<command>\x20[flags]','sqlCode','data','read','filter','Preview\x20dynamic\x20service\x20command:\x20','269194WjcWrC','cliName','kind','target','36hefSFw','push','required','\x20\x20\x20\x20kind:\x20\x20\x20\x20','source','commands','risk','85206obKmGk','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.'];a62_0x47d6=function(){return _0x201b48;};return a62_0x47d6();}(function(_0x3742a5,_0x52ae6a){const _0x7d36fb=a62_0x16c5,_0x26b65b=_0x3742a5();while(!![]){try{const _0x4f23e4=-parseInt(_0x7d36fb(0x12e))/0x1+parseInt(_0x7d36fb(0x123))/0x2*(parseInt(_0x7d36fb(0xef))/0x3)+parseInt(_0x7d36fb(0x148))/0x4+-parseInt(_0x7d36fb(0x101))/0x5*(-parseInt(_0x7d36fb(0x127))/0x6)+parseInt(_0x7d36fb(0x103))/0x7*(-parseInt(_0x7d36fb(0x143))/0x8)+parseInt(_0x7d36fb(0x137))/0x9*(-parseInt(_0x7d36fb(0x11a))/0xa)+parseInt(_0x7d36fb(0x13f))/0xb;if(_0x4f23e4===_0x52ae6a)break;else _0x26b65b['push'](_0x26b65b['shift']());}catch(_0x303128){_0x26b65b['push'](_0x26b65b['shift']());}}}(a62_0x47d6,0x21551));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(_0x5c9c53,_0x446f21){const _0x473cf5=a62_0x16c5,_0x2bd7e2=listLocalServiceTrees();let _0x3e73e7;for(const _0x26c0aa of _0x2bd7e2){const _0x20c4c9=matchServiceTreeCommand(_0x26c0aa,_0x5c9c53);if(!_0x20c4c9)continue;(!_0x3e73e7||_0x20c4c9[_0x473cf5(0x111)][_0x473cf5(0x14e)][_0x473cf5(0x13a)]>_0x3e73e7[_0x473cf5(0x111)][_0x473cf5(0x14e)][_0x473cf5(0x13a)])&&(_0x3e73e7={'tree':_0x26c0aa,'command':_0x20c4c9[_0x473cf5(0x111)],'remainingArgs':_0x20c4c9['remainingArgs']});}if(!_0x3e73e7)return undefined;const _0x3cce81={..._0x446f21};return applyAppBinding(_0x3e73e7['tree'],_0x3e73e7[_0x473cf5(0x111)],_0x3cce81),{'definition':buildDynamicCommandDefinition(_0x3e73e7[_0x473cf5(0x145)],_0x3e73e7[_0x473cf5(0x111)]),'args':_0x3e73e7['remainingArgs'],'flags':_0x3cce81,'tree':_0x3e73e7[_0x473cf5(0x145)],'command':_0x3e73e7[_0x473cf5(0x111)]};}export function generateDynamicServiceHelp(_0x377821){const _0x47fc4a=a62_0x16c5,_0x37683d=listLocalServiceTrees()[_0x47fc4a(0x147)](_0x547f31=>_0x547f31[_0x47fc4a(0x13b)]['code']===_0x377821);if(!_0x37683d)return undefined;const _0x471626=[CLI_BIN_NAME+'\x20'+_0x377821+_0x47fc4a(0x11d),'',_0x37683d[_0x47fc4a(0x13b)][_0x47fc4a(0x14c)]||_0x377821,_0x37683d[_0x47fc4a(0x13b)][_0x47fc4a(0x146)]?'\x20\x20'+_0x37683d[_0x47fc4a(0x13b)][_0x47fc4a(0x146)]:'','',_0x47fc4a(0x136),..._0x37683d[_0x47fc4a(0x12c)][_0x47fc4a(0x155)](_0xfe8e6f=>{const _0x50bba8=_0x47fc4a,_0x214c8e=_0xfe8e6f['fullPath'][_0x50bba8(0xfe)](0x1)['join']('\x20'),_0xfc0a82=_0xfe8e6f[_0x50bba8(0x12d)]===_0x50bba8(0x120)?'':'\x20['+_0xfe8e6f[_0x50bba8(0x12d)]+']';return'\x20\x20'+_0x214c8e[_0x50bba8(0x102)](0x18)+'\x20'+(_0xfe8e6f[_0x50bba8(0x146)]||'')+_0xfc0a82;}),'',_0x47fc4a(0x112)+CLI_BIN_NAME+_0x47fc4a(0xec)+_0x377821+_0x47fc4a(0x100)][_0x47fc4a(0x121)](Boolean);return _0x471626[_0x47fc4a(0x106)]('\x0a');}export function listDynamicServiceEntries(){const _0x5ede9e=a62_0x16c5;return listLocalServices()[_0x5ede9e(0x155)](_0x133950=>{const _0x2ec9ff=_0x5ede9e,_0x3a31c9=_0x133950[_0x2ec9ff(0x131)];return{'service':_0x3a31c9[_0x2ec9ff(0x13b)][_0x2ec9ff(0x110)],'label':_0x3a31c9[_0x2ec9ff(0x13b)][_0x2ec9ff(0x14c)]||_0x3a31c9['service'][_0x2ec9ff(0x110)],'commands':_0x3a31c9[_0x2ec9ff(0x12c)][_0x2ec9ff(0x155)](_0xa4c462=>({'command':dynamicCommandName(_0xa4c462),'description':_0xa4c462[_0x2ec9ff(0x146)]||_0x2ec9ff(0x14a)+_0xa4c462['cliPath'],'tag':riskTag(_0xa4c462[_0x2ec9ff(0x12d)])}))};});}export function getDynamicServiceEntry(_0x40a4cc){const _0x51cfdb=a62_0x16c5;return listDynamicServiceEntries()[_0x51cfdb(0x147)](_0x257d31=>_0x257d31[_0x51cfdb(0x13b)]===_0x40a4cc);}export function listDynamicServiceDefinitions(_0x154667){const _0x2b7515=a62_0x16c5;return listLocalServiceTrees()[_0x2b7515(0x121)](_0x1736a0=>!_0x154667||_0x1736a0[_0x2b7515(0x13b)]['code']===_0x154667)[_0x2b7515(0xea)](_0x2cba04=>_0x2cba04[_0x2b7515(0x12c)][_0x2b7515(0x155)](_0x549870=>buildDynamicCommandDefinition(_0x2cba04,_0x549870)));}export function getDynamicServiceDefinitions(_0x9d8a0){const _0x1a735c=a62_0x16c5,_0xc5aec3=listDynamicServiceDefinitions(_0x9d8a0);return _0xc5aec3[_0x1a735c(0x13a)]>0x0?_0xc5aec3:undefined;}export function findDynamicServiceDefinition(_0x26b995,_0x532fb5){const _0x4cf947=a62_0x16c5;return listDynamicServiceDefinitions(_0x26b995)['find'](_0x10c85b=>_0x10c85b[_0x4cf947(0x111)]===_0x532fb5);}export function buildDynamicCommandDefinition(_0x5a0bfd,_0x182ab0){const _0x4e5d71=a62_0x16c5;return{'service':_0x5a0bfd[_0x4e5d71(0x13b)][_0x4e5d71(0x110)],'command':dynamicCommandName(_0x182ab0),'description':_0x182ab0[_0x4e5d71(0x146)]||_0x4e5d71(0x14a)+_0x182ab0[_0x4e5d71(0x134)],'risk':_0x182ab0[_0x4e5d71(0x12d)],..._0x182ab0[_0x4e5d71(0x12d)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x182ab0)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x182ab0[_0x4e5d71(0x10b)][_0x4e5d71(0x155)](_0x84fb9d=>({'name':_0x84fb9d[_0x4e5d71(0x14c)],'description':_0x84fb9d[_0x4e5d71(0x146)]||_0x84fb9d[_0x4e5d71(0x14c)],'required':_0x84fb9d[_0x4e5d71(0x129)]})),'flags':_0x182ab0[_0x4e5d71(0x154)][_0x4e5d71(0x155)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x182ab0),async 'dryRun'(_0x2ba7e3){const _0xb1654=_0x4e5d71,_0x50414c=await compilePlan(_0x182ab0,_0x2ba7e3);return{'method':_0xb1654(0x139),'url':_0x182ab0[_0xb1654(0x134)],'body':{'target':targetPreview(_0x50414c),'params':_0x50414c['params']},'description':_0xb1654(0x122)+_0x182ab0[_0xb1654(0x134)]};},async 'execute'(_0xe4494a){const _0x498ff8=_0x4e5d71,_0x296f7b=await compilePlan(_0x182ab0,_0xe4494a),_0x5d355d=Date['now'](),_0x2914bb=await executePlan(_0x296f7b,_0x182ab0,_0xe4494a),_0x204d0c=Date[_0x498ff8(0x10a)]()-_0x5d355d;return{'ok':!![],'data':{'service':_0x5a0bfd['service'],'command':_0x182ab0[_0x498ff8(0x134)],'target':targetPreview(_0x296f7b),'result':_0x2914bb,'elapsed':_0x204d0c},'message':_0x498ff8(0x116)+_0x182ab0['cliPath']+_0x498ff8(0xf0)+_0x204d0c+'ms'};}};}function buildDynamicConfirmationDescription(_0x433ec4){const _0x14d06b=a62_0x16c5,_0x493877=_0x433ec4['description']||_0x433ec4[_0x14d06b(0x134)],_0x4e0ebe=_0x433ec4[_0x14d06b(0x12d)]===_0x14d06b(0xff)?_0x14d06b(0x11b):_0x14d06b(0x12f);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x493877+_0x14d06b(0xed)+_0x4e0ebe;}function a62_0x16c5(_0x2413ee,_0x267f09){_0x2413ee=_0x2413ee-0xea;const _0x47d614=a62_0x47d6();let _0x16c5cd=_0x47d614[_0x2413ee];return _0x16c5cd;}function dynamicCommandName(_0x53e233){const _0x4e4a7c=a62_0x16c5;return _0x53e233[_0x4e4a7c(0x14e)][_0x4e4a7c(0xfe)](0x1)['join']('\x20');}function riskTag(_0x372dcb){const _0x2ca0da=a62_0x16c5;return _0x372dcb===_0x2ca0da(0x120)?'':'\x20\x20['+_0x372dcb+']';}function flagToCommandFlag(_0x278bac){const _0x345989=a62_0x16c5;return{'name':_0x278bac[_0x345989(0x124)],'type':_0x278bac[_0x345989(0x113)]==='json'?_0x345989(0xee):_0x278bac[_0x345989(0x113)],'description':_0x278bac[_0x345989(0x146)]||_0x278bac['name'],'required':_0x278bac[_0x345989(0x129)],'default':isPrimitiveFlagDefault(_0x278bac[_0x345989(0xeb)])?_0x278bac[_0x345989(0xeb)]:undefined,'enum':_0x278bac[_0x345989(0x158)]};}async function compilePlan(_0x989c32,_0x36de9e){const _0x16d43c=a62_0x16c5;return compileServiceTreeCommand(_0x989c32,{'flags':_0x36de9e[_0x16d43c(0x152)],'args':_0x36de9e[_0x16d43c(0x10b)],'context':await buildServiceContext(_0x989c32,_0x36de9e)});}async function buildServiceContext(_0x2c77bc,_0x1b7b17){const _0x5e840c=a62_0x16c5,_0x8f1206={'appCode':_0x1b7b17[_0x5e840c(0x13e)],'env':_0x1b7b17[_0x5e840c(0xf1)],'envName':_0x1b7b17[_0x5e840c(0xf1)]};if(!usesRuntimeContext(_0x2c77bc))return _0x8f1206;const _0x19d184=await getLoginUserInfo(),_0x4e955d=pickFirst(_0x19d184[_0x5e840c(0x150)],_0x19d184['id']);return{..._0x8f1206,'user':_0x19d184,'userId':_0x4e955d,'id':_0x19d184['id'],'username':pickFirst(_0x19d184[_0x5e840c(0x138)],_0x19d184['userName'],_0x19d184[_0x5e840c(0x140)]),'userName':_0x19d184['userName'],'nickname':pickFirst(_0x19d184[_0x5e840c(0x10f)],_0x19d184['nickName']),'nickName':_0x19d184['nickName'],'tenantCode':_0x19d184['tenantCode'],'employeeId':_0x19d184[_0x5e840c(0xf9)]};}function usesRuntimeContext(_0x28cf31){const _0x25ed50=a62_0x16c5;return _0x28cf31['mapTo'][_0x25ed50(0x119)](_0x28dc4b=>typeof _0x28dc4b['source']===_0x25ed50(0xee)&&(_0x28dc4b['source'][_0x25ed50(0xf7)]('context.')||_0x28dc4b[_0x25ed50(0x12b)][_0x25ed50(0xf7)](_0x25ed50(0x149))));}function pickFirst(..._0x2cbe4f){return _0x2cbe4f['find'](_0x37a27a=>_0x37a27a!==undefined&&_0x37a27a!==null);}async function executePlan(_0x2095a1,_0x10e8dc,_0x179268){const _0x54ed49=a62_0x16c5;if(_0x2095a1[_0x54ed49(0x125)]===_0x54ed49(0x11f)){const _0x2ece2b=await resolveDatasetCode(_0x2095a1,_0x10e8dc,_0x179268);return executeData(_0x2ece2b,_0x2095a1['command'],_0x2095a1[_0x54ed49(0xfa)]);}if(_0x2095a1['kind']===_0x54ed49(0x13c)){if(!_0x2095a1[_0x54ed49(0x11e)])throw CliErrors[_0x54ed49(0x13d)]('Service\x20command\x20'+_0x10e8dc[_0x54ed49(0x134)]+_0x54ed49(0x14f));return executeSdkSql(_0x2095a1[_0x54ed49(0x11e)],normalizeScalarParams(_0x2095a1['params']));}if(_0x2095a1[_0x54ed49(0x125)]===_0x54ed49(0xfd)){const _0x1f8ac5=_0x2095a1[_0x54ed49(0x118)]||_0x2095a1[_0x54ed49(0x117)]||(_0x2095a1['bffId']==null?'':String(_0x2095a1[_0x54ed49(0xf3)]));if(!_0x1f8ac5)throw CliErrors[_0x54ed49(0x13d)](_0x54ed49(0x116)+_0x10e8dc[_0x54ed49(0x134)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x1f8ac5,_0x2095a1['params']);}throw CliErrors[_0x54ed49(0x13d)](_0x54ed49(0x135)+_0x2095a1['kind']);}async function resolveDatasetCode(_0x3752f7,_0x2a6a48,_0x11862c){const _0x263030=a62_0x16c5;if(_0x3752f7[_0x263030(0x109)])return _0x3752f7[_0x263030(0x109)];if(!_0x3752f7[_0x263030(0x132)])throw CliErrors[_0x263030(0x13d)](_0x263030(0x116)+_0x2a6a48[_0x263030(0x134)]+_0x263030(0x156));const _0x5ae24b=await listDatasets(_0x11862c['appCode']),_0x362160=_0x5ae24b[_0x263030(0x147)](_0x53c766=>_0x53c766[_0x263030(0xf8)]?.[_0x263030(0x115)]===_0x3752f7['datatable']);if(!_0x362160?.[_0x263030(0x110)])throw CliErrors[_0x263030(0x13d)](_0x263030(0x105)+_0x3752f7[_0x263030(0x132)]+_0x263030(0x107)+_0x11862c['appCode']+'.',_0x263030(0x10d));return _0x362160[_0x263030(0x110)];}function applyAppBinding(_0x64c03,_0x445733,_0x740f9){const _0x5830b4=a62_0x16c5,_0x1617cb=_0x445733[_0x5830b4(0x126)][_0x5830b4(0xf2)];if(!_0x1617cb)return;const _0x5a284f=_0x64c03[_0x5830b4(0xf6)][_0x1617cb];if(!_0x5a284f)throw CliErrors['validation'](_0x5830b4(0x114)+_0x1617cb+_0x5830b4(0x11c)+_0x445733[_0x5830b4(0x134)]+'.',_0x5830b4(0x14d));const _0x2f1db6=_0x5a284f['appcode']||_0x5a284f[_0x5830b4(0x13e)];_0x2f1db6&&!hasText(_0x740f9[_0x5830b4(0x10c)])&&(_0x740f9[_0x5830b4(0x10c)]=_0x2f1db6),_0x5a284f[_0x5830b4(0x153)]&&!hasText(_0x740f9[_0x5830b4(0x153)])&&!hasText(_0x740f9[_0x5830b4(0x10c)])&&(_0x740f9[_0x5830b4(0x153)]=_0x5a284f[_0x5830b4(0x153)]),_0x5a284f[_0x5830b4(0xf5)]&&!hasText(_0x740f9[_0x5830b4(0xf5)])&&(_0x740f9[_0x5830b4(0xf5)]=_0x5a284f['env']);}function renderDynamicCommandHelp(_0x3b5962){const _0x55578c=a62_0x16c5,_0x32cb5c=[_0x55578c(0xf4),_0x55578c(0x12a)+_0x3b5962['target'][_0x55578c(0x125)],_0x55578c(0x130)+_0x3b5962[_0x55578c(0x126)]['command']];if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x109)])_0x32cb5c[_0x55578c(0x128)](_0x55578c(0x157)+_0x3b5962[_0x55578c(0x126)]['datasetCode']);if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x132)])_0x32cb5c[_0x55578c(0x128)]('\x20\x20\x20\x20datatable:\x20'+_0x3b5962[_0x55578c(0x126)]['datatable']);if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x11e)])_0x32cb5c[_0x55578c(0x128)]('\x20\x20\x20\x20sqlCode:\x20'+_0x3b5962['target'][_0x55578c(0x11e)]);if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x118)])_0x32cb5c[_0x55578c(0x128)](_0x55578c(0x10e)+_0x3b5962[_0x55578c(0x126)]['scriptName']);if(_0x3b5962[_0x55578c(0x142)]['length']>0x0){_0x32cb5c[_0x55578c(0x128)]('','\x20\x20MAP\x20TO');for(const _0x3d3076 of _0x3b5962['mapTo']){_0x32cb5c['push'](_0x55578c(0xfb)+(_0x3d3076[_0x55578c(0x12b)]||_0x55578c(0x108))+_0x55578c(0x144)+_0x3d3076[_0x55578c(0x126)]+(_0x3d3076[_0x55578c(0xfc)]?'.'+_0x3d3076['operator']:''));}}return _0x32cb5c['join']('\x0a');}function targetPreview(_0x3ded1c){const _0x13cbdc=a62_0x16c5;return{'kind':_0x3ded1c[_0x13cbdc(0x125)],'command':_0x3ded1c[_0x13cbdc(0x111)],'appRef':_0x3ded1c[_0x13cbdc(0xf2)],'datasetCode':_0x3ded1c[_0x13cbdc(0x109)],'datatable':_0x3ded1c[_0x13cbdc(0x132)],'sqlCode':_0x3ded1c[_0x13cbdc(0x11e)],'bffCode':_0x3ded1c[_0x13cbdc(0x117)],'bffId':_0x3ded1c[_0x13cbdc(0xf3)],'functionName':_0x3ded1c[_0x13cbdc(0x118)]};}function normalizeScalarParams(_0x561edd){const _0x2fc85d=a62_0x16c5;return Object[_0x2fc85d(0x104)](Object[_0x2fc85d(0x151)](_0x561edd)[_0x2fc85d(0x121)](([,_0x5ad509])=>typeof _0x5ad509===_0x2fc85d(0xee)||typeof _0x5ad509===_0x2fc85d(0x133)));}function hasText(_0x441052){const _0x83e7bd=a62_0x16c5;return typeof _0x441052===_0x83e7bd(0xee)&&_0x441052[_0x83e7bd(0x14b)]()[_0x83e7bd(0x13a)]>0x0;}function isPrimitiveFlagDefault(_0x103d48){const _0x3370d8=a62_0x16c5;return _0x103d48===undefined||typeof _0x103d48===_0x3370d8(0xee)||typeof _0x103d48===_0x3370d8(0x133)||typeof _0x103d48===_0x3370d8(0x141);}
@@ -1 +1 @@
1
- function a63_0x2e9a(){const _0xe818eb=['.actions.','commands','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','target','.scriptName','bff','.functionName','scriptName','340604HJobcK','88NUmlMe','call','string','2016804cINWbY','actions','2123415hUHQyQ','functionName','.resources','hasOwnProperty','5812710snbniK','].target','581623cyJKmj','13482351TTtFgB','map','fromEntries','85szxVNo','trim','isArray','entries','957966YSbLQa','bff.exec','4lrHaAA','object','8pDkilX','.target','resources','action','$.resources','10cyrOXe','push','kind','functionName\x20must\x20be\x20a\x20non-empty\x20string.','prototype'];a63_0x2e9a=function(){return _0xe818eb;};return a63_0x2e9a();}(function(_0x1c9230,_0x39b251){const _0x554c6b=a63_0x1b0c,_0x3d88e5=_0x1c9230();while(!![]){try{const _0x57147d=parseInt(_0x554c6b(0x1aa))/0x1+-parseInt(_0x554c6b(0x1b4))/0x2*(parseInt(_0x554c6b(0x1b2))/0x3)+-parseInt(_0x554c6b(0x1c8))/0x4*(-parseInt(_0x554c6b(0x1ae))/0x5)+-parseInt(_0x554c6b(0x1a8))/0x6+-parseInt(_0x554c6b(0x1ce))/0x7*(-parseInt(_0x554c6b(0x1b6))/0x8)+parseInt(_0x554c6b(0x1ab))/0x9*(parseInt(_0x554c6b(0x1bb))/0xa)+parseInt(_0x554c6b(0x1c9))/0xb*(-parseInt(_0x554c6b(0x1cc))/0xc);if(_0x57147d===_0x39b251)break;else _0x3d88e5['push'](_0x3d88e5['shift']());}catch(_0x5339c2){_0x3d88e5['push'](_0x3d88e5['shift']());}}}(a63_0x2e9a,0xd6811));export function adaptServiceTreeManifestForLegacyFramework(_0x511405){const _0x5e594e=a63_0x1b0c,_0x598ad9=cloneJsonValue(_0x511405),_0x438ae2=[];if(!isObjectRecord(_0x598ad9))return{'manifest':_0x598ad9,'errors':_0x438ae2};return Array[_0x5e594e(0x1b0)](_0x598ad9['commands'])&&_0x598ad9[_0x5e594e(0x1c1)]['forEach']((_0x2f486e,_0x5a902b)=>{const _0x42e053=_0x5e594e;if(!isObjectRecord(_0x2f486e))return;adaptBffTarget(_0x2f486e[_0x42e053(0x1c3)],'$.commands['+_0x5a902b+_0x42e053(0x1a9),_0x438ae2);}),adaptResources(_0x598ad9['resources'],_0x5e594e(0x1ba),_0x438ae2),{'manifest':_0x598ad9,'errors':_0x438ae2};}export function toPublicServiceTreeTarget(_0x391e26){const _0x16d2b4=a63_0x1b0c,{scriptName:_0x5f07fa,..._0x4b3fd1}=_0x391e26;return typeof _0x5f07fa===_0x16d2b4(0x1cb)&&_0x5f07fa['trim']()&&(_0x4b3fd1[_0x16d2b4(0x1cf)]=_0x5f07fa),_0x4b3fd1;}export function toPublicNormalizedServiceTree(_0x5035db){const _0x437439=a63_0x1b0c;return{..._0x5035db,'commands':_0x5035db['commands'][_0x437439(0x1ac)](_0x4821b0=>({..._0x4821b0,'target':toPublicServiceTreeTarget(_0x4821b0[_0x437439(0x1c3)])}))};}function adaptResources(_0x4b8bb5,_0x42f2d3,_0x491f79){const _0x23a18e=a63_0x1b0c;if(!isObjectRecord(_0x4b8bb5))return;for(const [_0x39a7a6,_0x4bfc5f]of Object[_0x23a18e(0x1b1)](_0x4b8bb5)){if(!isObjectRecord(_0x4bfc5f))continue;const _0x101587=_0x42f2d3+'.'+_0x39a7a6;if(isObjectRecord(_0x4bfc5f[_0x23a18e(0x1cd)]))for(const [_0x4de4e8,_0x3ac282]of Object['entries'](_0x4bfc5f[_0x23a18e(0x1cd)])){if(!isObjectRecord(_0x3ac282))continue;const _0x4f71c6=_0x101587+_0x23a18e(0x1c0)+_0x4de4e8,_0x231c98=isObjectRecord(_0x3ac282[_0x23a18e(0x1c3)])&&_0x3ac282[_0x23a18e(0x1c3)][_0x23a18e(0x1bd)]==='bff';adaptBffTarget(_0x3ac282['target'],_0x4f71c6+_0x23a18e(0x1b7),_0x491f79),(_0x231c98||isBffAction(_0x3ac282))&&adaptFunctionNameField(_0x3ac282,_0x4f71c6,_0x491f79);}adaptResources(_0x4bfc5f[_0x23a18e(0x1b8)],_0x101587+_0x23a18e(0x1d0),_0x491f79);}}function adaptBffTarget(_0x230dc5,_0xcc9602,_0x12ce09){const _0x2413bf=a63_0x1b0c;if(!isObjectRecord(_0x230dc5)||_0x230dc5['kind']!==_0x2413bf(0x1c5))return;adaptFunctionNameField(_0x230dc5,_0xcc9602,_0x12ce09);}function adaptFunctionNameField(_0x3a5bc6,_0x5d2e19,_0x45339b){const _0x132edf=a63_0x1b0c;Object[_0x132edf(0x1bf)][_0x132edf(0x1d1)]['call'](_0x3a5bc6,_0x132edf(0x1c7))&&_0x45339b[_0x132edf(0x1bc)]({'level':'error','path':_0x5d2e19+_0x132edf(0x1c4),'message':_0x132edf(0x1c2)});if(Object['prototype'][_0x132edf(0x1d1)][_0x132edf(0x1ca)](_0x3a5bc6,'functionName')){if(typeof _0x3a5bc6[_0x132edf(0x1cf)]!==_0x132edf(0x1cb)||!_0x3a5bc6['functionName'][_0x132edf(0x1af)]()){_0x45339b[_0x132edf(0x1bc)]({'level':'error','path':_0x5d2e19+_0x132edf(0x1c6),'message':_0x132edf(0x1be)}),delete _0x3a5bc6[_0x132edf(0x1cf)];return;}_0x3a5bc6[_0x132edf(0x1c7)]=_0x3a5bc6[_0x132edf(0x1cf)],delete _0x3a5bc6['functionName'];}}function isBffAction(_0x5a3769){const _0x52ba65=a63_0x1b0c;return _0x5a3769['kind']===_0x52ba65(0x1c5)||_0x5a3769[_0x52ba65(0x1b9)]===_0x52ba65(0x1b3)||_0x5a3769[_0x52ba65(0x1c3)]===_0x52ba65(0x1b3);}function cloneJsonValue(_0x16e41e){const _0x2feda9=a63_0x1b0c;if(Array['isArray'](_0x16e41e))return _0x16e41e[_0x2feda9(0x1ac)](_0x239b2d=>cloneJsonValue(_0x239b2d));if(isObjectRecord(_0x16e41e))return Object[_0x2feda9(0x1ad)](Object[_0x2feda9(0x1b1)](_0x16e41e)[_0x2feda9(0x1ac)](([_0x4b1ad1,_0x41250c])=>[_0x4b1ad1,cloneJsonValue(_0x41250c)]));return _0x16e41e;}function a63_0x1b0c(_0xfa5861,_0x155ec6){_0xfa5861=_0xfa5861-0x1a8;const _0x2e9a03=a63_0x2e9a();let _0x1b0ca9=_0x2e9a03[_0xfa5861];return _0x1b0ca9;}function isObjectRecord(_0xa9bb8b){const _0x156ff5=a63_0x1b0c;return Boolean(_0xa9bb8b)&&typeof _0xa9bb8b===_0x156ff5(0x1b5)&&!Array[_0x156ff5(0x1b0)](_0xa9bb8b);}
1
+ (function(_0x3370d0,_0x514a34){const _0x3ec8ce=a63_0x2401,_0x224b9a=_0x3370d0();while(!![]){try{const _0x246baf=parseInt(_0x3ec8ce(0x19f))/0x1*(-parseInt(_0x3ec8ce(0x1a1))/0x2)+-parseInt(_0x3ec8ce(0x1ae))/0x3*(-parseInt(_0x3ec8ce(0x19a))/0x4)+parseInt(_0x3ec8ce(0x19b))/0x5*(parseInt(_0x3ec8ce(0x1a4))/0x6)+parseInt(_0x3ec8ce(0x1b1))/0x7*(parseInt(_0x3ec8ce(0x1ab))/0x8)+parseInt(_0x3ec8ce(0x1b6))/0x9*(-parseInt(_0x3ec8ce(0x1a2))/0xa)+parseInt(_0x3ec8ce(0x1ac))/0xb*(-parseInt(_0x3ec8ce(0x1b9))/0xc)+parseInt(_0x3ec8ce(0x1a3))/0xd*(parseInt(_0x3ec8ce(0x1aa))/0xe);if(_0x246baf===_0x514a34)break;else _0x224b9a['push'](_0x224b9a['shift']());}catch(_0x3e8cfc){_0x224b9a['push'](_0x224b9a['shift']());}}}(a63_0x29b7,0x7dbea));export function adaptServiceTreeManifestForLegacyFramework(_0x275b10){const _0x565a9c=a63_0x2401,_0x1744d3=cloneJsonValue(_0x275b10),_0x3f5e4e=[];if(!isObjectRecord(_0x1744d3))return{'manifest':_0x1744d3,'errors':_0x3f5e4e};return Array[_0x565a9c(0x194)](_0x1744d3[_0x565a9c(0x1b0)])&&_0x1744d3[_0x565a9c(0x1b0)][_0x565a9c(0x1b2)]((_0x394859,_0x506c01)=>{const _0x33875d=_0x565a9c;if(!isObjectRecord(_0x394859))return;adaptBffTarget(_0x394859[_0x33875d(0x1ad)],'$.commands['+_0x506c01+'].target',_0x3f5e4e);}),adaptResources(_0x1744d3[_0x565a9c(0x1b5)],_0x565a9c(0x19e),_0x3f5e4e),{'manifest':_0x1744d3,'errors':_0x3f5e4e};}export function toPublicServiceTreeTarget(_0x3d959e){const _0x4ecb83=a63_0x2401,{scriptName:_0x1309e4,..._0x502d0a}=_0x3d959e;return typeof _0x1309e4===_0x4ecb83(0x198)&&_0x1309e4[_0x4ecb83(0x1b8)]()&&(_0x502d0a[_0x4ecb83(0x1b4)]=_0x1309e4),_0x502d0a;}export function toPublicNormalizedServiceTree(_0x2f9aa5){const _0x4f58a3=a63_0x2401;return{..._0x2f9aa5,'commands':_0x2f9aa5[_0x4f58a3(0x1b0)][_0x4f58a3(0x1b7)](_0x12884d=>({..._0x12884d,'target':toPublicServiceTreeTarget(_0x12884d[_0x4f58a3(0x1ad)])}))};}function adaptResources(_0x1e0877,_0x2c17ff,_0x5ea6b7){const _0x470324=a63_0x2401;if(!isObjectRecord(_0x1e0877))return;for(const [_0x3dffb4,_0x54a128]of Object[_0x470324(0x1a9)](_0x1e0877)){if(!isObjectRecord(_0x54a128))continue;const _0x369ff9=_0x2c17ff+'.'+_0x3dffb4;if(isObjectRecord(_0x54a128[_0x470324(0x193)]))for(const [_0x1abf46,_0x473365]of Object[_0x470324(0x1a9)](_0x54a128[_0x470324(0x193)])){if(!isObjectRecord(_0x473365))continue;const _0x4cc153=_0x369ff9+'.actions.'+_0x1abf46,_0x500282=isObjectRecord(_0x473365[_0x470324(0x1ad)])&&_0x473365[_0x470324(0x1ad)]['kind']===_0x470324(0x1b3);adaptBffTarget(_0x473365[_0x470324(0x1ad)],_0x4cc153+_0x470324(0x199),_0x5ea6b7),(_0x500282||isBffAction(_0x473365))&&adaptFunctionNameField(_0x473365,_0x4cc153,_0x5ea6b7);}adaptResources(_0x54a128[_0x470324(0x1b5)],_0x369ff9+'.resources',_0x5ea6b7);}}function adaptBffTarget(_0x47f4c9,_0x4e8e6d,_0x43ddd0){const _0x19fa0e=a63_0x2401;if(!isObjectRecord(_0x47f4c9)||_0x47f4c9[_0x19fa0e(0x1a5)]!=='bff')return;adaptFunctionNameField(_0x47f4c9,_0x4e8e6d,_0x43ddd0);}function a63_0x29b7(){const _0x4aa942=['map','trim','24xFprvH','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','.scriptName','.functionName','actions','isArray','prototype','fromEntries','object','string','.target','4qikeJk','269655talGac','call','bff.exec','$.resources','1vCHeft','scriptName','672542aMABvd','1510wgMlFk','26ILKaKs','6pcXiGM','kind','error','functionName\x20must\x20be\x20a\x20non-empty\x20string.','hasOwnProperty','entries','7311892Eohigf','935824uzOreO','1781428XFeUtt','target','1712829WHdNNE','push','commands','21SrElXS','forEach','bff','functionName','resources','50373iFQaoS'];a63_0x29b7=function(){return _0x4aa942;};return a63_0x29b7();}function adaptFunctionNameField(_0x113c46,_0x297784,_0x31977a){const _0x293bb7=a63_0x2401;Object[_0x293bb7(0x195)][_0x293bb7(0x1a8)][_0x293bb7(0x19c)](_0x113c46,_0x293bb7(0x1a0))&&_0x31977a[_0x293bb7(0x1af)]({'level':'error','path':_0x297784+_0x293bb7(0x191),'message':_0x293bb7(0x190)});if(Object[_0x293bb7(0x195)][_0x293bb7(0x1a8)]['call'](_0x113c46,'functionName')){if(typeof _0x113c46[_0x293bb7(0x1b4)]!==_0x293bb7(0x198)||!_0x113c46[_0x293bb7(0x1b4)][_0x293bb7(0x1b8)]()){_0x31977a['push']({'level':_0x293bb7(0x1a6),'path':_0x297784+_0x293bb7(0x192),'message':_0x293bb7(0x1a7)}),delete _0x113c46['functionName'];return;}_0x113c46[_0x293bb7(0x1a0)]=_0x113c46['functionName'],delete _0x113c46[_0x293bb7(0x1b4)];}}function isBffAction(_0x1fd643){const _0x56e96e=a63_0x2401;return _0x1fd643[_0x56e96e(0x1a5)]==='bff'||_0x1fd643['action']===_0x56e96e(0x19d)||_0x1fd643[_0x56e96e(0x1ad)]===_0x56e96e(0x19d);}function cloneJsonValue(_0x1b2ff8){const _0x1a277f=a63_0x2401;if(Array['isArray'](_0x1b2ff8))return _0x1b2ff8[_0x1a277f(0x1b7)](_0x3c3c5a=>cloneJsonValue(_0x3c3c5a));if(isObjectRecord(_0x1b2ff8))return Object[_0x1a277f(0x196)](Object['entries'](_0x1b2ff8)['map'](([_0x434018,_0x556798])=>[_0x434018,cloneJsonValue(_0x556798)]));return _0x1b2ff8;}function a63_0x2401(_0x87905c,_0x38855e){_0x87905c=_0x87905c-0x190;const _0x29b7b1=a63_0x29b7();let _0x2401f7=_0x29b7b1[_0x87905c];return _0x2401f7;}function isObjectRecord(_0x1c4a42){const _0x1f30ae=a63_0x2401;return Boolean(_0x1c4a42)&&typeof _0x1c4a42===_0x1f30ae(0x197)&&!Array[_0x1f30ae(0x194)](_0x1c4a42);}
@@ -1 +1 @@
1
- function a64_0x111a(_0x4c288f,_0xfd19b7){_0x4c288f=_0x4c288f-0x125;const _0x42a996=a64_0x42a9();let _0x111aec=_0x42a996[_0x4c288f];return _0x111aec;}const a64_0x1b7497=a64_0x111a;(function(_0x1ca502,_0x3ad779){const _0x24fae1=a64_0x111a,_0x279096=_0x1ca502();while(!![]){try{const _0x2c5b57=-parseInt(_0x24fae1(0x153))/0x1*(-parseInt(_0x24fae1(0x12a))/0x2)+-parseInt(_0x24fae1(0x133))/0x3*(parseInt(_0x24fae1(0x132))/0x4)+-parseInt(_0x24fae1(0x125))/0x5+-parseInt(_0x24fae1(0x16c))/0x6+parseInt(_0x24fae1(0x14f))/0x7*(-parseInt(_0x24fae1(0x15e))/0x8)+-parseInt(_0x24fae1(0x163))/0x9+-parseInt(_0x24fae1(0x135))/0xa*(-parseInt(_0x24fae1(0x13e))/0xb);if(_0x2c5b57===_0x3ad779)break;else _0x279096['push'](_0x279096['shift']());}catch(_0x13ba09){_0x279096['push'](_0x279096['shift']());}}}(a64_0x42a9,0x1acd1));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_0x42a9(){const _0x42da10=['importedAt','manifests','list','string','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','target','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','registryServiceCode','Local\x20service\x20not\x20found:\x20','Exported\x20service\x20','496300kyDWLC','cliName','Local\x20service\x20code,\x20for\x20example\x20crm','reduce','2uZxevg','version','\x20service(s),\x20updated\x20','Imported\x20','source','Service\x20registry\x20validation\x20passed.','length','risk','Service\x20manifest\x20validation\x20passed.','cliPath','\x20service(s).','8rYngsg','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.','Updated','file','imported','1786500vvgxhY','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','detail','description','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','import','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','registryPath','replaced','932340lbsyBz','173845ArpwSz','entries','Imported','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','updated','171556RsMwwP','type','\x20service\x20','serviceCode','normalizedManifest','entry','map','serviceCount','1532DfjPQW','633NKwPpw','service','4785930XKdqEB','str','errors','WRITE','registryIndex','kind','hash','name','read','11islOrJ','filePath','commands','warnings','report','required','write'];a64_0x42a9=function(){return _0x42da10;};return a64_0x42a9();}const FILE_FLAG={'name':a64_0x1b7497(0x161),'type':a64_0x1b7497(0x148),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a64_0x1b7497(0x134),'type':a64_0x1b7497(0x148),'required':!![],'description':a64_0x1b7497(0x151),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x406209){const _0x58bdd8=a64_0x1b7497;return{'serviceCode':_0x406209[_0x58bdd8(0x12d)],'name':_0x406209[_0x58bdd8(0x12e)][_0x58bdd8(0x134)][_0x58bdd8(0x13c)],'version':_0x406209[_0x58bdd8(0x154)],'importedAt':_0x406209[_0x58bdd8(0x145)],'source':_0x406209[_0x58bdd8(0x157)],'commandCount':_0x406209['normalizedManifest']['commands']['length'],'commands':_0x406209[_0x58bdd8(0x12e)][_0x58bdd8(0x140)][_0x58bdd8(0x130)](_0x190fbd=>({'path':_0x190fbd['cliPath'],'description':_0x190fbd[_0x58bdd8(0x166)],'risk':_0x190fbd[_0x58bdd8(0x15a)],'target':toPublicServiceTreeTarget(_0x190fbd['target']),'flags':_0x190fbd['flags'][_0x58bdd8(0x130)](_0x32665c=>({'name':_0x32665c['name'],'cliName':_0x32665c[_0x58bdd8(0x150)],'type':_0x32665c[_0x58bdd8(0x12b)],'required':_0x32665c[_0x58bdd8(0x143)]===!![]}))}))};}function summarizeLoadedManifest(_0x5e3bee){const _0x24ed66=a64_0x1b7497;return{'service':_0x5e3bee['normalizedManifest']?.[_0x24ed66(0x134)],'version':_0x5e3bee['normalizedManifest']?.[_0x24ed66(0x154)],'commandCount':_0x5e3bee[_0x24ed66(0x12e)]?.['commands']['length']??0x0,'commands':_0x5e3bee[_0x24ed66(0x12e)]?.[_0x24ed66(0x140)][_0x24ed66(0x130)](_0x1b47d9=>({'path':_0x1b47d9[_0x24ed66(0x15c)],'risk':_0x1b47d9[_0x24ed66(0x15a)],'target':toPublicServiceTreeTarget(_0x1b47d9['target'])}))??[],'registryIndex':_0x5e3bee[_0x24ed66(0x139)],'registryServiceCode':_0x5e3bee[_0x24ed66(0x14c)],'errors':_0x5e3bee[_0x24ed66(0x142)][_0x24ed66(0x137)],'warnings':_0x5e3bee[_0x24ed66(0x142)][_0x24ed66(0x141)]};}export const serviceDefinitions=[{'service':a64_0x1b7497(0x134),'command':'validate','description':a64_0x1b7497(0x167),'risk':a64_0x1b7497(0x13d),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x5d8a27){const _0x2a8d09=a64_0x1b7497,_0x2453d5=loadServiceManifestFromFile(_0x5d8a27[_0x2a8d09(0x136)](_0x2a8d09(0x161)));if(!_0x2453d5[_0x2a8d09(0x142)]['ok'])return{'ok':![],'data':{'file':_0x2453d5[_0x2a8d09(0x13f)],'hash':_0x2453d5[_0x2a8d09(0x13b)],'kind':_0x2453d5[_0x2a8d09(0x13a)],'serviceCount':_0x2453d5[_0x2a8d09(0x146)][_0x2a8d09(0x159)],'services':_0x2453d5[_0x2a8d09(0x146)][_0x2a8d09(0x130)](summarizeLoadedManifest),'errors':_0x2453d5[_0x2a8d09(0x142)]['errors'],'warnings':_0x2453d5[_0x2a8d09(0x142)]['warnings']},'message':formatValidationFailure(_0x2453d5['report'])};if(_0x2453d5[_0x2a8d09(0x13a)]==='registry'||_0x2453d5[_0x2a8d09(0x146)][_0x2a8d09(0x159)]!==0x1)return{'ok':!![],'data':{'file':_0x2453d5[_0x2a8d09(0x13f)],'hash':_0x2453d5[_0x2a8d09(0x13b)],'kind':_0x2453d5[_0x2a8d09(0x13a)],'serviceCount':_0x2453d5[_0x2a8d09(0x146)][_0x2a8d09(0x159)],'commandCount':_0x2453d5[_0x2a8d09(0x146)][_0x2a8d09(0x152)]((_0x51bf0b,_0x1aede5)=>_0x51bf0b+(_0x1aede5[_0x2a8d09(0x12e)]?.[_0x2a8d09(0x140)][_0x2a8d09(0x159)]??0x0),0x0),'services':_0x2453d5[_0x2a8d09(0x146)][_0x2a8d09(0x130)](summarizeLoadedManifest),'warnings':_0x2453d5[_0x2a8d09(0x142)][_0x2a8d09(0x141)]},'message':_0x2a8d09(0x158)};return{'ok':!![],'data':{'file':_0x2453d5[_0x2a8d09(0x13f)],'hash':_0x2453d5[_0x2a8d09(0x13b)],'kind':_0x2453d5[_0x2a8d09(0x13a)],'service':_0x2453d5[_0x2a8d09(0x12e)]?.[_0x2a8d09(0x134)],'version':_0x2453d5[_0x2a8d09(0x12e)]?.[_0x2a8d09(0x154)],'commandCount':_0x2453d5['normalizedManifest']?.['commands']['length']??0x0,'commands':_0x2453d5[_0x2a8d09(0x12e)]?.[_0x2a8d09(0x140)][_0x2a8d09(0x130)](_0x35f043=>({'path':_0x35f043[_0x2a8d09(0x15c)],'risk':_0x35f043[_0x2a8d09(0x15a)],'target':toPublicServiceTreeTarget(_0x35f043[_0x2a8d09(0x14a)])})),'warnings':_0x2453d5[_0x2a8d09(0x142)][_0x2a8d09(0x141)]},'message':_0x2a8d09(0x15b)};}},{'service':a64_0x1b7497(0x134),'command':a64_0x1b7497(0x168),'description':a64_0x1b7497(0x164),'risk':a64_0x1b7497(0x144),'confirmationDescription':a64_0x1b7497(0x15f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x3b1fec){const _0x17cc63=a64_0x1b7497,_0x3282be=loadServiceManifestFromFile(_0x3b1fec[_0x17cc63(0x136)]('file'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x3282be['filePath'],'hash':_0x3282be[_0x17cc63(0x13b)],'kind':_0x3282be['kind'],'ok':_0x3282be[_0x17cc63(0x142)]['ok'],'service':_0x3282be[_0x17cc63(0x12e)]?.[_0x17cc63(0x134)],'version':_0x3282be[_0x17cc63(0x12e)]?.[_0x17cc63(0x154)],'serviceCount':_0x3282be[_0x17cc63(0x146)][_0x17cc63(0x159)],'services':_0x3282be[_0x17cc63(0x146)]['map'](_0x5a46a6=>({'service':_0x5a46a6[_0x17cc63(0x12e)]?.[_0x17cc63(0x134)],'version':_0x5a46a6[_0x17cc63(0x12e)]?.[_0x17cc63(0x154)],'commandCount':_0x5a46a6['normalizedManifest']?.[_0x17cc63(0x140)][_0x17cc63(0x159)]??0x0,'errors':_0x5a46a6[_0x17cc63(0x142)]['errors']})),'errors':_0x3282be[_0x17cc63(0x142)][_0x17cc63(0x137)],'commandCount':_0x3282be['normalizedManifest']?.[_0x17cc63(0x140)][_0x17cc63(0x159)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x2454ee){const _0x2d48b8=a64_0x1b7497,_0x59b159=importServiceManifest(_0x2454ee[_0x2d48b8(0x136)](_0x2d48b8(0x161)));if(_0x59b159[_0x2d48b8(0x126)][_0x2d48b8(0x159)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x59b159['registryPath'],'imported':_0x59b159[_0x2d48b8(0x162)],'updated':_0x59b159['updated'],'serviceCount':_0x59b159['serviceCount'],'services':_0x59b159['entries'][_0x2d48b8(0x130)](summarizeService)},'message':_0x2d48b8(0x156)+_0x59b159[_0x2d48b8(0x162)]+_0x2d48b8(0x155)+_0x59b159[_0x2d48b8(0x129)]+_0x2d48b8(0x15d)};return{'ok':!![],'data':{'registryPath':_0x59b159[_0x2d48b8(0x16a)],'replaced':_0x59b159[_0x2d48b8(0x16b)],'imported':_0x59b159['imported'],'updated':_0x59b159['updated'],'serviceCount':_0x59b159[_0x2d48b8(0x131)],'service':summarizeService(_0x59b159[_0x2d48b8(0x12f)])},'message':(_0x59b159['replaced']?_0x2d48b8(0x160):_0x2d48b8(0x127))+_0x2d48b8(0x12c)+_0x59b159[_0x2d48b8(0x12f)][_0x2d48b8(0x12d)]+'.'};}},{'service':'service','command':'export','description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a64_0x1b7497(0x144),'confirmationDescription':'Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1c05fa){const _0x322ae5=a64_0x1b7497,_0x29bbbb=getLocalServiceEntry(_0x1c05fa[_0x322ae5(0x136)](_0x322ae5(0x134)));return{'method':'WRITE','url':_0x1c05fa[_0x322ae5(0x136)](_0x322ae5(0x161)),'body':{'service':_0x1c05fa[_0x322ae5(0x136)](_0x322ae5(0x134)),'found':Boolean(_0x29bbbb),'version':_0x29bbbb?.[_0x322ae5(0x154)],'source':_0x29bbbb?.['source']},'description':_0x322ae5(0x169)};},async 'execute'(_0x43fc61){const _0x4f8b38=a64_0x1b7497,_0x56ab5=exportServiceManifest(_0x43fc61[_0x4f8b38(0x136)](_0x4f8b38(0x134)),_0x43fc61[_0x4f8b38(0x136)](_0x4f8b38(0x161)));return{'ok':!![],'data':{'registryPath':_0x56ab5[_0x4f8b38(0x16a)],'file':_0x56ab5[_0x4f8b38(0x13f)],'service':summarizeService(_0x56ab5[_0x4f8b38(0x12f)])},'message':_0x4f8b38(0x14e)+_0x56ab5['entry'][_0x4f8b38(0x12d)]+'.'};}},{'service':a64_0x1b7497(0x134),'command':a64_0x1b7497(0x147),'description':a64_0x1b7497(0x149),'risk':a64_0x1b7497(0x13d),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1429be=a64_0x1b7497,_0x7e5e42=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x7e5e42[_0x1429be(0x159)],'services':_0x7e5e42['map'](summarizeService)}};}},{'service':a64_0x1b7497(0x134),'command':'remove','description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a64_0x1b7497(0x144),'confirmationDescription':a64_0x1b7497(0x128),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4be9ed){const _0x454bdf=a64_0x1b7497,_0x302b12=getLocalServiceEntry(_0x4be9ed['str'](_0x454bdf(0x134)));return{'method':_0x454bdf(0x138),'url':getServiceRegistryPath(),'body':{'service':_0x4be9ed[_0x454bdf(0x136)]('service'),'found':Boolean(_0x302b12),'version':_0x302b12?.[_0x454bdf(0x154)],'source':_0x302b12?.[_0x454bdf(0x157)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xf035b1){const _0x452443=a64_0x1b7497,_0x1afefa=removeServiceManifest(_0xf035b1[_0x452443(0x136)](_0x452443(0x134)));return{'ok':!![],'data':{'registryPath':_0x1afefa['registryPath'],'serviceCount':_0x1afefa[_0x452443(0x131)],'service':summarizeService(_0x1afefa[_0x452443(0x12f)])},'message':'Removed\x20service\x20'+_0x1afefa[_0x452443(0x12f)][_0x452443(0x12d)]+'.'};}},{'service':a64_0x1b7497(0x134),'command':a64_0x1b7497(0x165),'description':a64_0x1b7497(0x14b),'risk':a64_0x1b7497(0x13d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x2a8452){const _0x73c819=a64_0x1b7497,_0x62f21e=getLocalServiceEntry(_0x2a8452[_0x73c819(0x136)](_0x73c819(0x134)));if(!_0x62f21e)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x2a8452[_0x73c819(0x136)](_0x73c819(0x134))},'message':_0x73c819(0x14d)+_0x2a8452[_0x73c819(0x136)](_0x73c819(0x134))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x62f21e),'manifest':_0x62f21e['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x62f21e[_0x73c819(0x12e)])}};}}];
1
+ const a64_0x40d86e=a64_0x33a1;function a64_0x2a9b(){const _0x5c51eb=['2690024sPsGAM','target','9BHzSuX','warnings','normalizedManifest','450960PJCVVm','validate','cliName','manifests','commands','registryPath','Service\x20Tree\x20manifest\x20file\x20path','1116297GnVpex','Imported','\x20service(s),\x20updated\x20','remove','hash','type','Removed\x20service\x20','Service\x20manifest\x20validation\x20passed.','serviceCount','importedAt','length','flags','filePath','updated','read','reduce','Imported\x20','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','1335172gplSdY','Exported\x20service\x20','20gOSLIR','78878pVggoA','WRITE','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','str','write','service','Local\x20service\x20code,\x20for\x20example\x20crm','report','map','18CRwzXt','kind','\x20service\x20','883746GKWeAd','1491060ewZHsF','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','\x20service(s).','Local\x20service\x20not\x20found:\x20','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','detail','imported','description','lower\x20kebab-case\x20service\x20code','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','manifest','replaced','risk','required','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.','export','errors','serviceCode','entries','string','file','source','name','version','cliPath','entry'];a64_0x2a9b=function(){return _0x5c51eb;};return a64_0x2a9b();}(function(_0x2f9036,_0x884848){const _0xf0170=a64_0x33a1,_0x587cf1=_0x2f9036();while(!![]){try{const _0xef60e8=-parseInt(_0xf0170(0x9c))/0x1+-parseInt(_0xf0170(0x6e))/0x2*(-parseInt(_0xf0170(0x77))/0x3)+parseInt(_0xf0170(0x6b))/0x4+-parseInt(_0xf0170(0x6d))/0x5*(-parseInt(_0xf0170(0x7a))/0x6)+parseInt(_0xf0170(0xa3))/0x7+parseInt(_0xf0170(0x97))/0x8*(-parseInt(_0xf0170(0x99))/0x9)+-parseInt(_0xf0170(0x7b))/0xa;if(_0xef60e8===_0x884848)break;else _0x587cf1['push'](_0x587cf1['shift']());}catch(_0x56119b){_0x587cf1['push'](_0x587cf1['shift']());}}}(a64_0x2a9b,0x5d717));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_0x40d86e(0x91),'type':a64_0x40d86e(0x90),'required':!![],'description':a64_0x40d86e(0xa2)},SERVICE_FLAG={'name':'service','type':a64_0x40d86e(0x90),'required':!![],'description':a64_0x40d86e(0x74),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x40d86e(0x85)}};function summarizeService(_0x31f4a4){const _0x14dbca=a64_0x40d86e;return{'serviceCode':_0x31f4a4[_0x14dbca(0x8e)],'name':_0x31f4a4['normalizedManifest'][_0x14dbca(0x73)][_0x14dbca(0x93)],'version':_0x31f4a4['version'],'importedAt':_0x31f4a4[_0x14dbca(0xac)],'source':_0x31f4a4[_0x14dbca(0x92)],'commandCount':_0x31f4a4[_0x14dbca(0x9b)][_0x14dbca(0xa0)]['length'],'commands':_0x31f4a4[_0x14dbca(0x9b)][_0x14dbca(0xa0)][_0x14dbca(0x76)](_0x508f90=>({'path':_0x508f90[_0x14dbca(0x95)],'description':_0x508f90[_0x14dbca(0x84)],'risk':_0x508f90[_0x14dbca(0x89)],'target':toPublicServiceTreeTarget(_0x508f90['target']),'flags':_0x508f90[_0x14dbca(0xae)][_0x14dbca(0x76)](_0x206680=>({'name':_0x206680[_0x14dbca(0x93)],'cliName':_0x206680[_0x14dbca(0x9e)],'type':_0x206680[_0x14dbca(0xa8)],'required':_0x206680[_0x14dbca(0x8a)]===!![]}))}))};}function a64_0x33a1(_0x22f7c1,_0x32cc52){_0x22f7c1=_0x22f7c1-0x6a;const _0x2a9b6b=a64_0x2a9b();let _0x33a167=_0x2a9b6b[_0x22f7c1];return _0x33a167;}function summarizeLoadedManifest(_0x5d9d62){const _0x35bd29=a64_0x40d86e;return{'service':_0x5d9d62[_0x35bd29(0x9b)]?.[_0x35bd29(0x73)],'version':_0x5d9d62['normalizedManifest']?.['version'],'commandCount':_0x5d9d62[_0x35bd29(0x9b)]?.[_0x35bd29(0xa0)][_0x35bd29(0xad)]??0x0,'commands':_0x5d9d62[_0x35bd29(0x9b)]?.[_0x35bd29(0xa0)]['map'](_0x400e1e=>({'path':_0x400e1e[_0x35bd29(0x95)],'risk':_0x400e1e['risk'],'target':toPublicServiceTreeTarget(_0x400e1e[_0x35bd29(0x98)])}))??[],'registryIndex':_0x5d9d62['registryIndex'],'registryServiceCode':_0x5d9d62['registryServiceCode'],'errors':_0x5d9d62[_0x35bd29(0x75)][_0x35bd29(0x8d)],'warnings':_0x5d9d62[_0x35bd29(0x75)][_0x35bd29(0x9a)]};}export const serviceDefinitions=[{'service':'service','command':a64_0x40d86e(0x9d),'description':a64_0x40d86e(0x86),'risk':a64_0x40d86e(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x34ce09){const _0x5b3661=a64_0x40d86e,_0x9cc1fd=loadServiceManifestFromFile(_0x34ce09[_0x5b3661(0x71)](_0x5b3661(0x91)));if(!_0x9cc1fd[_0x5b3661(0x75)]['ok'])return{'ok':![],'data':{'file':_0x9cc1fd[_0x5b3661(0xaf)],'hash':_0x9cc1fd['hash'],'kind':_0x9cc1fd[_0x5b3661(0x78)],'serviceCount':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0xad)],'services':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0x76)](summarizeLoadedManifest),'errors':_0x9cc1fd[_0x5b3661(0x75)]['errors'],'warnings':_0x9cc1fd[_0x5b3661(0x75)][_0x5b3661(0x9a)]},'message':formatValidationFailure(_0x9cc1fd['report'])};if(_0x9cc1fd[_0x5b3661(0x78)]==='registry'||_0x9cc1fd['manifests'][_0x5b3661(0xad)]!==0x1)return{'ok':!![],'data':{'file':_0x9cc1fd[_0x5b3661(0xaf)],'hash':_0x9cc1fd['hash'],'kind':_0x9cc1fd[_0x5b3661(0x78)],'serviceCount':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0xad)],'commandCount':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0xb2)]((_0x3c67ab,_0x37a1ce)=>_0x3c67ab+(_0x37a1ce[_0x5b3661(0x9b)]?.[_0x5b3661(0xa0)][_0x5b3661(0xad)]??0x0),0x0),'services':_0x9cc1fd[_0x5b3661(0x9f)]['map'](summarizeLoadedManifest),'warnings':_0x9cc1fd[_0x5b3661(0x75)][_0x5b3661(0x9a)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x9cc1fd[_0x5b3661(0xaf)],'hash':_0x9cc1fd['hash'],'kind':_0x9cc1fd['kind'],'service':_0x9cc1fd[_0x5b3661(0x9b)]?.[_0x5b3661(0x73)],'version':_0x9cc1fd['normalizedManifest']?.['version'],'commandCount':_0x9cc1fd[_0x5b3661(0x9b)]?.[_0x5b3661(0xa0)][_0x5b3661(0xad)]??0x0,'commands':_0x9cc1fd[_0x5b3661(0x9b)]?.[_0x5b3661(0xa0)][_0x5b3661(0x76)](_0x5eea5=>({'path':_0x5eea5[_0x5b3661(0x95)],'risk':_0x5eea5[_0x5b3661(0x89)],'target':toPublicServiceTreeTarget(_0x5eea5[_0x5b3661(0x98)])})),'warnings':_0x9cc1fd[_0x5b3661(0x75)][_0x5b3661(0x9a)]},'message':_0x5b3661(0xaa)};}},{'service':a64_0x40d86e(0x73),'command':'import','description':a64_0x40d86e(0x7c),'risk':'write','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'(_0x333e35){const _0x31b32f=a64_0x40d86e,_0x2c4b74=loadServiceManifestFromFile(_0x333e35[_0x31b32f(0x71)](_0x31b32f(0x91)));return{'method':_0x31b32f(0x6f),'url':getServiceRegistryPath(),'body':{'file':_0x2c4b74[_0x31b32f(0xaf)],'hash':_0x2c4b74[_0x31b32f(0xa7)],'kind':_0x2c4b74[_0x31b32f(0x78)],'ok':_0x2c4b74['report']['ok'],'service':_0x2c4b74[_0x31b32f(0x9b)]?.['service'],'version':_0x2c4b74[_0x31b32f(0x9b)]?.[_0x31b32f(0x94)],'serviceCount':_0x2c4b74[_0x31b32f(0x9f)][_0x31b32f(0xad)],'services':_0x2c4b74[_0x31b32f(0x9f)][_0x31b32f(0x76)](_0x3240a0=>({'service':_0x3240a0[_0x31b32f(0x9b)]?.['service'],'version':_0x3240a0[_0x31b32f(0x9b)]?.[_0x31b32f(0x94)],'commandCount':_0x3240a0[_0x31b32f(0x9b)]?.[_0x31b32f(0xa0)]['length']??0x0,'errors':_0x3240a0[_0x31b32f(0x75)]['errors']})),'errors':_0x2c4b74[_0x31b32f(0x75)][_0x31b32f(0x8d)],'commandCount':_0x2c4b74[_0x31b32f(0x9b)]?.[_0x31b32f(0xa0)][_0x31b32f(0xad)]??0x0},'description':_0x31b32f(0x80)};},async 'execute'(_0x212517){const _0x1e5f0d=a64_0x40d86e,_0x4900d8=importServiceManifest(_0x212517[_0x1e5f0d(0x71)]('file'));if(_0x4900d8[_0x1e5f0d(0x8f)][_0x1e5f0d(0xad)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4900d8['registryPath'],'imported':_0x4900d8[_0x1e5f0d(0x83)],'updated':_0x4900d8[_0x1e5f0d(0xb0)],'serviceCount':_0x4900d8['serviceCount'],'services':_0x4900d8[_0x1e5f0d(0x8f)][_0x1e5f0d(0x76)](summarizeService)},'message':_0x1e5f0d(0xb3)+_0x4900d8['imported']+_0x1e5f0d(0xa5)+_0x4900d8[_0x1e5f0d(0xb0)]+_0x1e5f0d(0x7e)};return{'ok':!![],'data':{'registryPath':_0x4900d8[_0x1e5f0d(0xa1)],'replaced':_0x4900d8[_0x1e5f0d(0x88)],'imported':_0x4900d8[_0x1e5f0d(0x83)],'updated':_0x4900d8['updated'],'serviceCount':_0x4900d8[_0x1e5f0d(0xab)],'service':summarizeService(_0x4900d8['entry'])},'message':(_0x4900d8[_0x1e5f0d(0x88)]?'Updated':_0x1e5f0d(0xa4))+_0x1e5f0d(0x79)+_0x4900d8['entry'][_0x1e5f0d(0x8e)]+'.'};}},{'service':a64_0x40d86e(0x73),'command':a64_0x40d86e(0x8c),'description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','confirmationDescription':a64_0x40d86e(0x8b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1ed2df){const _0x1b8429=a64_0x40d86e,_0x17e090=getLocalServiceEntry(_0x1ed2df[_0x1b8429(0x71)](_0x1b8429(0x73)));return{'method':_0x1b8429(0x6f),'url':_0x1ed2df['str'](_0x1b8429(0x91)),'body':{'service':_0x1ed2df[_0x1b8429(0x71)](_0x1b8429(0x73)),'found':Boolean(_0x17e090),'version':_0x17e090?.['version'],'source':_0x17e090?.[_0x1b8429(0x92)]},'description':_0x1b8429(0x6a)};},async 'execute'(_0x5d7c88){const _0x1086dc=a64_0x40d86e,_0x614556=exportServiceManifest(_0x5d7c88[_0x1086dc(0x71)](_0x1086dc(0x73)),_0x5d7c88[_0x1086dc(0x71)](_0x1086dc(0x91)));return{'ok':!![],'data':{'registryPath':_0x614556[_0x1086dc(0xa1)],'file':_0x614556[_0x1086dc(0xaf)],'service':summarizeService(_0x614556[_0x1086dc(0x96)])},'message':_0x1086dc(0x6c)+_0x614556[_0x1086dc(0x96)][_0x1086dc(0x8e)]+'.'};}},{'service':a64_0x40d86e(0x73),'command':'list','description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a64_0x40d86e(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xd337e1=a64_0x40d86e,_0x176232=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x176232[_0xd337e1(0xad)],'services':_0x176232[_0xd337e1(0x76)](summarizeService)}};}},{'service':a64_0x40d86e(0x73),'command':a64_0x40d86e(0xa6),'description':a64_0x40d86e(0x70),'risk':a64_0x40d86e(0x72),'confirmationDescription':a64_0x40d86e(0x81),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xe621bf){const _0x3e9cb7=a64_0x40d86e,_0x419a04=getLocalServiceEntry(_0xe621bf[_0x3e9cb7(0x71)](_0x3e9cb7(0x73)));return{'method':_0x3e9cb7(0x6f),'url':getServiceRegistryPath(),'body':{'service':_0xe621bf[_0x3e9cb7(0x71)](_0x3e9cb7(0x73)),'found':Boolean(_0x419a04),'version':_0x419a04?.[_0x3e9cb7(0x94)],'source':_0x419a04?.[_0x3e9cb7(0x92)]},'description':_0x3e9cb7(0x7d)};},async 'execute'(_0x813674){const _0x38ec67=a64_0x40d86e,_0x4528c8=removeServiceManifest(_0x813674['str'](_0x38ec67(0x73)));return{'ok':!![],'data':{'registryPath':_0x4528c8[_0x38ec67(0xa1)],'serviceCount':_0x4528c8[_0x38ec67(0xab)],'service':summarizeService(_0x4528c8[_0x38ec67(0x96)])},'message':_0x38ec67(0xa9)+_0x4528c8[_0x38ec67(0x96)][_0x38ec67(0x8e)]+'.'};}},{'service':'service','command':a64_0x40d86e(0x82),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a64_0x40d86e(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1c9898){const _0x5be97a=a64_0x40d86e,_0x54e7bc=getLocalServiceEntry(_0x1c9898['str'](_0x5be97a(0x73)));if(!_0x54e7bc)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1c9898[_0x5be97a(0x71)](_0x5be97a(0x73))},'message':_0x5be97a(0x7f)+_0x1c9898[_0x5be97a(0x71)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x54e7bc),'manifest':_0x54e7bc[_0x5be97a(0x87)],'normalizedManifest':toPublicNormalizedServiceTree(_0x54e7bc[_0x5be97a(0x9b)])}};}}];
@@ -1 +1 @@
1
- const a65_0x4b242b=a65_0x3d12;(function(_0x2eb06e,_0x980048){const _0x125bf7=a65_0x3d12,_0xdcab3c=_0x2eb06e();while(!![]){try{const _0x4c69e6=parseInt(_0x125bf7(0x20b))/0x1+parseInt(_0x125bf7(0x22e))/0x2*(parseInt(_0x125bf7(0x1fb))/0x3)+parseInt(_0x125bf7(0x1f5))/0x4+parseInt(_0x125bf7(0x204))/0x5*(-parseInt(_0x125bf7(0x225))/0x6)+parseInt(_0x125bf7(0x233))/0x7*(parseInt(_0x125bf7(0x220))/0x8)+parseInt(_0x125bf7(0x226))/0x9*(-parseInt(_0x125bf7(0x23f))/0xa)+-parseInt(_0x125bf7(0x207))/0xb;if(_0x4c69e6===_0x980048)break;else _0xdcab3c['push'](_0xdcab3c['shift']());}catch(_0x49258d){_0xdcab3c['push'](_0xdcab3c['shift']());}}}(a65_0x2168,0x1ad9b));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_0x4b242b(0x22d);export function getServiceRegistryPath(_0x453ddb={}){const _0x362569=a65_0x4b242b;return resolve(_0x453ddb['homeDir']??homedir(),PRODUCT_CONFIG[_0x362569(0x1f4)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4440ea={}){const _0x64c9de=a65_0x4b242b,_0x8556e4=getServiceRegistryPath(_0x4440ea);if(!existsSync(_0x8556e4))return emptyServiceRegistry();try{const _0xe994d=readFileSync(_0x8556e4,_0x64c9de(0x23e));if(!_0xe994d['trim']())return emptyServiceRegistry();const _0x20f038=JSON[_0x64c9de(0x1f7)](_0xe994d);if(_0x20f038[_0x64c9de(0x224)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x64c9de(0x211)+String(_0x20f038[_0x64c9de(0x224)]),_0x64c9de(0x242)+_0x8556e4+'.');if(!Array[_0x64c9de(0x21e)](_0x20f038['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x20f038[_0x64c9de(0x221)],'services':_0x20f038[_0x64c9de(0x238)]};}catch(_0x47633a){if(_0x47633a instanceof Error&&_0x47633a['name']===_0x64c9de(0x23c))throw _0x47633a;throw CliErrors[_0x64c9de(0x236)](_0x64c9de(0x218)+_0x8556e4,_0x64c9de(0x1fe));}}function a65_0x2168(){const _0x5f2c2e=['startsWith','source','homeDirName','216964mjsTQV','$.services[','parse','Local\x20service\x20not\x20found:\x20','digest','push','69XxsFwv','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','serviceCode','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','sha256','length','Invalid\x20service\x20manifest\x20JSON:\x20','cliPath','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','415JdXNJW','command','registry','1711325kshaOc','stringify','flatMap','registryIndex','69510uigUlr','target','file','Cannot\x20write\x20service\x20registry:\x20','map','description','Unsupported\x20service\x20registry\x20schemaVersion:\x20','commands','kind','slice','filePath','hex','normalizedManifest','Invalid\x20service\x20registry\x20JSON:\x20','].manifest.','sort','ENOENT','now','version','isArray','splice','6136veZBCa','updatedAt','toISOString','code','schemaVersion','2148xPdryi','164277druWUb','join','bff\x20target\x20requires\x20functionName.','manifests','report','].manifest','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','service.json','1762CwxpxC','sourceHash','services\x20must\x20be\x20an\x20array','service','path','1547nqcCfg','errors','.tmp','validation','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','services','Unsupported\x20schemaVersion:\x20','manifest','Service\x20manifest\x20validation\x20failed:\x0a','CliError','findIndex','utf8','10cgeujw','warnings','find','Remove\x20or\x20migrate\x20','message','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','invalid','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','reduce','Service\x20manifest\x20file\x20not\x20found:\x20'];a65_0x2168=function(){return _0x5f2c2e;};return a65_0x2168();}export function writeServiceRegistry(_0x27d953,_0x17093e={}){const _0xc6cb34=a65_0x4b242b,_0x9904b9=getServiceRegistryPath(_0x17093e),_0x3d6b64=dirname(_0x9904b9);!existsSync(_0x3d6b64)&&mkdirSync(_0x3d6b64,{'recursive':!![]});const _0x45accf=_0x9904b9+_0xc6cb34(0x235);try{writeFileSync(_0x45accf,JSON['stringify'](_0x27d953,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x45accf,_0x9904b9);}catch(_0x16b804){try{unlinkSync(_0x45accf);}catch{}if(_0x16b804?.[_0xc6cb34(0x223)]===_0xc6cb34(0x21b))throw CliErrors[_0xc6cb34(0x236)](_0xc6cb34(0x20e)+_0x9904b9);throw _0x16b804;}return _0x9904b9;}export function loadServiceManifestFromFile(_0x307ab2){const _0x21d589=a65_0x4b242b,_0xa32e9f=resolve(_0x307ab2);if(!existsSync(_0xa32e9f))throw CliErrors[_0x21d589(0x236)](_0x21d589(0x248)+_0x307ab2);let _0x495f58;const _0x52cfae=readFileSync(_0xa32e9f,_0x21d589(0x23e));try{_0x495f58=JSON[_0x21d589(0x1f7)](_0x52cfae);}catch{throw CliErrors[_0x21d589(0x236)](_0x21d589(0x201)+_0x307ab2,_0x21d589(0x1fc));}const _0x6cf08c=sha256(_0x52cfae),_0x560d42=extractLoadedServiceManifests(_0x495f58,_0x6cf08c),_0xeaa372=aggregateValidationReports(_0x560d42),_0x1e29be=_0x560d42[0x0];return{'filePath':_0xa32e9f,'hash':_0x6cf08c,'kind':isServiceRegistryLike(_0x495f58)?_0x21d589(0x206):_0x21d589(0x23a),'manifest':_0x1e29be?.[_0x21d589(0x23a)]??_0x495f58,'report':_0xeaa372,'normalizedManifest':_0x560d42[_0x21d589(0x200)]===0x1?_0x1e29be?.[_0x21d589(0x217)]:undefined,'manifests':_0x560d42};}export function importServiceManifest(_0x55d710,_0x25670b={}){const _0x3c1040=a65_0x4b242b,_0xd8fd7=loadServiceManifestFromFile(_0x55d710);if(!_0xd8fd7[_0x3c1040(0x22a)]['ok'])throw CliErrors[_0x3c1040(0x236)](formatValidationFailure(_0xd8fd7[_0x3c1040(0x22a)]),_0x3c1040(0x203));if(_0xd8fd7[_0x3c1040(0x229)][_0x3c1040(0x200)]===0x0)throw CliErrors['validation'](_0x3c1040(0x237),_0x3c1040(0x246));const _0x1ea630=readServiceRegistry(_0x25670b),_0x169f61=(_0x25670b['now']??(()=>new Date()))()[_0x3c1040(0x222)](),_0x140192=[];let _0x444728=0x0,_0x304302=0x0;for(const _0x5cf35b of _0xd8fd7[_0x3c1040(0x229)]){if(!_0x5cf35b[_0x3c1040(0x217)])continue;const _0x496038=_0x5cf35b[_0x3c1040(0x217)]['service'][_0x3c1040(0x223)],_0x80d7d2={'serviceCode':_0x496038,'version':_0x5cf35b['normalizedManifest'][_0x3c1040(0x21d)],'importedAt':_0x169f61,'source':{'type':_0x3c1040(0x20d),'path':_0xd8fd7[_0x3c1040(0x215)],'hash':_0x5cf35b[_0x3c1040(0x22f)]},'manifest':_0x5cf35b[_0x3c1040(0x23a)],'normalizedManifest':_0x5cf35b[_0x3c1040(0x217)]},_0x4a1601=_0x1ea630[_0x3c1040(0x238)][_0x3c1040(0x23d)](_0x4996b7=>_0x4996b7[_0x3c1040(0x1fd)]===_0x496038);_0x4a1601>=0x0?(_0x1ea630[_0x3c1040(0x238)][_0x4a1601]=_0x80d7d2,_0x304302++):(_0x1ea630[_0x3c1040(0x238)][_0x3c1040(0x1fa)](_0x80d7d2),_0x444728++),_0x140192[_0x3c1040(0x1fa)](_0x80d7d2);}_0x1ea630[_0x3c1040(0x238)][_0x3c1040(0x21a)]((_0x316753,_0x4cf81f)=>_0x316753['serviceCode']['localeCompare'](_0x4cf81f['serviceCode'])),_0x1ea630[_0x3c1040(0x221)]=_0x169f61;const _0x10468b=writeServiceRegistry(_0x1ea630,_0x25670b);return{'registryPath':_0x10468b,'entry':_0x140192[0x0],'replaced':_0x140192[_0x3c1040(0x200)]===0x1?_0x304302===0x1:_0x304302>0x0,'entries':_0x140192,'imported':_0x444728,'updated':_0x304302,'serviceCount':_0x1ea630[_0x3c1040(0x238)]['length']};}export function exportServiceManifest(_0x5032e4,_0xc940f4,_0x2b30d3={}){const _0x199b51=a65_0x4b242b,_0x1f18b1=getServiceRegistryPath(_0x2b30d3),_0xc0a420=getLocalServiceEntry(_0x5032e4,_0x2b30d3);if(!_0xc0a420)throw CliErrors[_0x199b51(0x236)](_0x199b51(0x1f8)+_0x5032e4,_0x199b51(0x22c));const _0x2aa385=resolve(_0xc940f4),_0x556b99=dirname(_0x2aa385);return!existsSync(_0x556b99)&&mkdirSync(_0x556b99,{'recursive':!![]}),writeFileSync(_0x2aa385,JSON['stringify'](_0xc0a420[_0x199b51(0x23a)],null,0x2)+'\x0a',{'encoding':_0x199b51(0x23e),'mode':0x180}),{'registryPath':_0x1f18b1,'filePath':_0x2aa385,'entry':_0xc0a420};}export function removeServiceManifest(_0x3d8e82,_0x7c7c70={}){const _0x39b4cc=a65_0x4b242b,_0x423f91=readServiceRegistry(_0x7c7c70),_0x36f428=_0x3d8e82['trim'](),_0x596955=_0x423f91[_0x39b4cc(0x238)][_0x39b4cc(0x23d)](_0x1329f9=>_0x1329f9[_0x39b4cc(0x1fd)]===_0x36f428);if(_0x596955<0x0)throw CliErrors[_0x39b4cc(0x236)](_0x39b4cc(0x1f8)+_0x36f428,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x36d727]=_0x423f91[_0x39b4cc(0x238)][_0x39b4cc(0x21f)](_0x596955,0x1),_0x4f2b42=(_0x7c7c70[_0x39b4cc(0x21c)]??(()=>new Date()))()[_0x39b4cc(0x222)]();_0x423f91[_0x39b4cc(0x221)]=_0x4f2b42;const _0x19f29d=writeServiceRegistry(_0x423f91,_0x7c7c70);return{'registryPath':_0x19f29d,'entry':_0x36d727,'serviceCount':_0x423f91['services'][_0x39b4cc(0x200)]};}export function listLocalServices(_0x528db4={}){const _0x3f63ae=a65_0x4b242b;return readServiceRegistry(_0x528db4)[_0x3f63ae(0x238)];}export function getLocalServiceEntry(_0x5e42aa,_0x14cf7b={}){const _0x24be53=a65_0x4b242b;return readServiceRegistry(_0x14cf7b)['services'][_0x24be53(0x241)](_0x355a2f=>_0x355a2f[_0x24be53(0x1fd)]===_0x5e42aa['trim']());}export function listLocalServiceTrees(_0x221861={}){const _0x2504ea=a65_0x4b242b;return readServiceRegistry(_0x221861)['services'][_0x2504ea(0x20f)](_0x4e81a5=>_0x4e81a5[_0x2504ea(0x217)]);}export function inspectServiceRegistry(_0x4ece35={}){const _0x4746d4=a65_0x4b242b,_0x882e12=getServiceRegistryPath(_0x4ece35);if(!existsSync(_0x882e12))return emptyServiceRegistryInspection(_0x882e12,'missing',![]);try{const _0x20b2e7=readFileSync(_0x882e12,'utf8');if(!_0x20b2e7['trim']())return emptyServiceRegistryInspection(_0x882e12,'empty',!![]);const _0x22f38d=JSON[_0x4746d4(0x1f7)](_0x20b2e7);if(_0x22f38d['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x882e12,_0x4746d4(0x245),!![]),'schemaVersion':_0x22f38d[_0x4746d4(0x224)],'message':_0x4746d4(0x239)+String(_0x22f38d[_0x4746d4(0x224)])};if(!Array[_0x4746d4(0x21e)](_0x22f38d[_0x4746d4(0x238)]))return{...emptyServiceRegistryInspection(_0x882e12,_0x4746d4(0x245),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x22f38d[_0x4746d4(0x221)],'message':_0x4746d4(0x230)};const _0x831960=_0x22f38d[_0x4746d4(0x238)][_0x4746d4(0x20f)](summarizeLocalServiceEntry);return{'registryPath':_0x882e12,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x22f38d[_0x4746d4(0x221)],'serviceCount':_0x831960[_0x4746d4(0x200)],'commandCount':_0x831960[_0x4746d4(0x247)]((_0xdf6006,_0x56ee1b)=>_0xdf6006+_0x56ee1b['commandCount'],0x0),'services':_0x831960};}catch(_0x3d63f3){return{...emptyServiceRegistryInspection(_0x882e12,_0x4746d4(0x245),!![]),'message':_0x3d63f3 instanceof Error?_0x3d63f3[_0x4746d4(0x243)]:String(_0x3d63f3)};}}function a65_0x3d12(_0x389679,_0xbab84e){_0x389679=_0x389679-0x1f4;const _0x21684e=a65_0x2168();let _0x3d12de=_0x21684e[_0x389679];return _0x3d12de;}export function formatValidationFailure(_0x4ff236){const _0x290f81=a65_0x4b242b,_0x11b687=_0x4ff236[_0x290f81(0x234)][_0x290f81(0x20f)](_0x24cb63=>_0x24cb63['path']+':\x20'+_0x24cb63[_0x290f81(0x243)]);return _0x290f81(0x23b)+_0x11b687[_0x290f81(0x227)]('\x0a');}function extractLoadedServiceManifests(_0x4694b9,_0x52e38e){const _0x3ddc2c=a65_0x4b242b;if(!isServiceRegistryLike(_0x4694b9)){const _0x11912a=_0x4694b9,{manifest:_0x27587d,errors:_0x4b369e}=adaptServiceTreeManifestForLegacyFramework(_0x11912a),_0x267500=validateServiceTreeManifest(_0x27587d),_0x281c46=mergeValidationErrors(_0x267500,_0x4b369e);return[{'manifest':_0x11912a,'report':_0x281c46,'normalizedManifest':_0x281c46['ok']?normalizeServiceTreeManifest(_0x27587d):undefined,'sourceHash':_0x52e38e}];}return _0x4694b9[_0x3ddc2c(0x238)][_0x3ddc2c(0x20f)]((_0x53e3c1,_0x32ff9d)=>{const _0x11ecf4=_0x3ddc2c,_0x294319=isObjectRecord(_0x53e3c1)?_0x53e3c1[_0x11ecf4(0x23a)]:undefined,{manifest:_0x347b22,errors:_0x25a719}=adaptServiceTreeManifestForLegacyFramework(_0x294319),_0x5526bb=validateServiceTreeManifest(_0x347b22),_0x96f3f9=mergeValidationErrors(_0x5526bb,_0x25a719),_0x12a1c5=isObjectRecord(_0x53e3c1)&&typeof _0x53e3c1[_0x11ecf4(0x1fd)]==='string'?_0x53e3c1['serviceCode']:undefined;return{'manifest':_0x294319,'report':_0x96f3f9,'normalizedManifest':_0x96f3f9['ok']?normalizeServiceTreeManifest(_0x347b22):undefined,'sourceHash':sha256(JSON[_0x11ecf4(0x208)](_0x294319,null,0x2)+'\x0a'),'registryIndex':_0x32ff9d,'registryServiceCode':_0x12a1c5};});}function mergeValidationErrors(_0x487f4d,_0x28ac1b){const _0x279dab=a65_0x4b242b,_0x487546=_0x487f4d[_0x279dab(0x234)][_0x279dab(0x20f)](_0x38041e=>_0x38041e[_0x279dab(0x243)]===_0x279dab(0x244)?{..._0x38041e,'message':_0x279dab(0x228)}:_0x38041e),_0x2a070d=[..._0x28ac1b,..._0x487546];return{'ok':_0x2a070d[_0x279dab(0x200)]===0x0,'errors':_0x2a070d,'warnings':_0x487f4d['warnings']};}function aggregateValidationReports(_0x1d961d){const _0x128ca0=a65_0x4b242b,_0x3b43a0=_0x1d961d['flatMap'](_0x434818=>_0x434818[_0x128ca0(0x20a)]===undefined?_0x434818[_0x128ca0(0x22a)][_0x128ca0(0x234)]:_0x434818[_0x128ca0(0x22a)][_0x128ca0(0x234)][_0x128ca0(0x20f)](_0x2c784f=>({..._0x2c784f,'path':prefixRegistryIssuePath(_0x434818[_0x128ca0(0x20a)],_0x2c784f[_0x128ca0(0x232)])}))),_0xe1429a=_0x1d961d[_0x128ca0(0x209)](_0x33ed08=>_0x33ed08['registryIndex']===undefined?_0x33ed08[_0x128ca0(0x22a)]['warnings']:_0x33ed08[_0x128ca0(0x22a)][_0x128ca0(0x240)][_0x128ca0(0x20f)](_0x3ee2c8=>({..._0x3ee2c8,'path':prefixRegistryIssuePath(_0x33ed08[_0x128ca0(0x20a)],_0x3ee2c8[_0x128ca0(0x232)])})));return{'ok':_0x3b43a0[_0x128ca0(0x200)]===0x0,'errors':_0x3b43a0,'warnings':_0xe1429a};}function prefixRegistryIssuePath(_0x5f0fe1,_0x3d1400){const _0x162a4a=a65_0x4b242b;if(_0x3d1400==='$')return _0x162a4a(0x1f6)+_0x5f0fe1+_0x162a4a(0x22b);if(_0x3d1400[_0x162a4a(0x249)]('$.'))return _0x162a4a(0x1f6)+_0x5f0fe1+'].manifest'+_0x3d1400['slice'](0x1);if(_0x3d1400[_0x162a4a(0x249)]('$['))return _0x162a4a(0x1f6)+_0x5f0fe1+_0x162a4a(0x22b)+_0x3d1400[_0x162a4a(0x214)](0x1);return _0x162a4a(0x1f6)+_0x5f0fe1+_0x162a4a(0x219)+_0x3d1400;}function isServiceRegistryLike(_0x459127){const _0x576bcc=a65_0x4b242b;return isObjectRecord(_0x459127)&&_0x459127[_0x576bcc(0x224)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x576bcc(0x21e)](_0x459127[_0x576bcc(0x238)]);}function isObjectRecord(_0x107f7c){return Boolean(_0x107f7c)&&typeof _0x107f7c==='object'&&!Array['isArray'](_0x107f7c);}function emptyServiceRegistryInspection(_0x24aef3,_0x355403,_0x1e452c){return{'registryPath':_0x24aef3,'exists':_0x1e452c,'status':_0x355403,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0xd49bd){const _0x5b7623=a65_0x4b242b,_0x360f2d=_0xd49bd[_0x5b7623(0x217)],_0x4148df=_0x360f2d[_0x5b7623(0x212)][_0x5b7623(0x20f)](_0x18b0e9=>({'path':_0x18b0e9[_0x5b7623(0x202)],'description':_0x18b0e9[_0x5b7623(0x210)],'risk':_0x18b0e9['risk'],'targetKind':_0x18b0e9[_0x5b7623(0x20c)][_0x5b7623(0x213)],'targetCommand':_0x18b0e9[_0x5b7623(0x20c)][_0x5b7623(0x205)]}));return{'serviceCode':_0xd49bd[_0x5b7623(0x1fd)],'name':_0x360f2d[_0x5b7623(0x231)]['name'],'description':_0x360f2d['service'][_0x5b7623(0x210)],'version':_0xd49bd['version'],'importedAt':_0xd49bd['importedAt'],'source':_0xd49bd[_0x5b7623(0x24a)],'commandCount':_0x4148df[_0x5b7623(0x200)],'commands':_0x4148df};}function sha256(_0x59e1a8){const _0x11f951=a65_0x4b242b;return createHash(_0x11f951(0x1ff))['update'](_0x59e1a8)[_0x11f951(0x1f9)](_0x11f951(0x216));}
1
+ const a65_0x45ee83=a65_0x3aa4;(function(_0x50e956,_0x1ef61a){const _0x53b546=a65_0x3aa4,_0x43dfcc=_0x50e956();while(!![]){try{const _0x438273=parseInt(_0x53b546(0xcb))/0x1*(-parseInt(_0x53b546(0xc7))/0x2)+-parseInt(_0x53b546(0xa7))/0x3*(parseInt(_0x53b546(0xab))/0x4)+-parseInt(_0x53b546(0xe5))/0x5*(parseInt(_0x53b546(0xac))/0x6)+-parseInt(_0x53b546(0x9c))/0x7*(-parseInt(_0x53b546(0xd6))/0x8)+-parseInt(_0x53b546(0xe6))/0x9*(parseInt(_0x53b546(0xb7))/0xa)+-parseInt(_0x53b546(0xb3))/0xb+-parseInt(_0x53b546(0xd0))/0xc*(-parseInt(_0x53b546(0xdc))/0xd);if(_0x438273===_0x1ef61a)break;else _0x43dfcc['push'](_0x43dfcc['shift']());}catch(_0x483b24){_0x43dfcc['push'](_0x43dfcc['shift']());}}}(a65_0x3597,0x7ece7));function a65_0x3aa4(_0x581051,_0x341b7f){_0x581051=_0x581051-0x9c;const _0x359710=a65_0x3597();let _0x3aa4be=_0x359710[_0x581051];return _0x3aa4be;}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_0x45ee83(0xbc);export function getServiceRegistryPath(_0x5eab64={}){const _0x11796d=a65_0x45ee83;return resolve(_0x5eab64['homeDir']??homedir(),PRODUCT_CONFIG[_0x11796d(0xa1)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1f83d3={}){const _0x54a0b4=a65_0x45ee83,_0x431995=getServiceRegistryPath(_0x1f83d3);if(!existsSync(_0x431995))return emptyServiceRegistry();try{const _0x136ee9=readFileSync(_0x431995,_0x54a0b4(0xaa));if(!_0x136ee9[_0x54a0b4(0xe1)]())return emptyServiceRegistry();const _0x106b61=JSON[_0x54a0b4(0xe8)](_0x136ee9);if(_0x106b61[_0x54a0b4(0xdf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x54a0b4(0xef)+String(_0x106b61[_0x54a0b4(0xdf)]),_0x54a0b4(0xd5)+_0x431995+'.');if(!Array[_0x54a0b4(0xf2)](_0x106b61[_0x54a0b4(0xb4)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x106b61[_0x54a0b4(0xc2)],'services':_0x106b61[_0x54a0b4(0xb4)]};}catch(_0x127c75){if(_0x127c75 instanceof Error&&_0x127c75[_0x54a0b4(0xdd)]===_0x54a0b4(0xbd))throw _0x127c75;throw CliErrors[_0x54a0b4(0xa9)](_0x54a0b4(0xed)+_0x431995,_0x54a0b4(0xf0));}}export function writeServiceRegistry(_0x5bc9aa,_0x107eaf={}){const _0x51a1e9=a65_0x45ee83,_0x4d7eff=getServiceRegistryPath(_0x107eaf),_0x4b79e0=dirname(_0x4d7eff);!existsSync(_0x4b79e0)&&mkdirSync(_0x4b79e0,{'recursive':!![]});const _0x36022a=_0x4d7eff+_0x51a1e9(0xe4);try{writeFileSync(_0x36022a,JSON['stringify'](_0x5bc9aa,null,0x2)+'\x0a',{'encoding':_0x51a1e9(0xaa),'mode':0x180}),renameSync(_0x36022a,_0x4d7eff);}catch(_0x1d7420){try{unlinkSync(_0x36022a);}catch{}if(_0x1d7420?.['code']==='ENOENT')throw CliErrors['validation']('Cannot\x20write\x20service\x20registry:\x20'+_0x4d7eff);throw _0x1d7420;}return _0x4d7eff;}export function loadServiceManifestFromFile(_0x14c46d){const _0x23e0a0=a65_0x45ee83,_0x773e87=resolve(_0x14c46d);if(!existsSync(_0x773e87))throw CliErrors[_0x23e0a0(0xa9)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x14c46d);let _0x50c318;const _0x3bc711=readFileSync(_0x773e87,_0x23e0a0(0xaa));try{_0x50c318=JSON['parse'](_0x3bc711);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x14c46d,_0x23e0a0(0xa5));}const _0x553b6c=sha256(_0x3bc711),_0x596356=extractLoadedServiceManifests(_0x50c318,_0x553b6c),_0x524384=aggregateValidationReports(_0x596356),_0x1cd923=_0x596356[0x0];return{'filePath':_0x773e87,'hash':_0x553b6c,'kind':isServiceRegistryLike(_0x50c318)?_0x23e0a0(0xc5):_0x23e0a0(0xe0),'manifest':_0x1cd923?.[_0x23e0a0(0xe0)]??_0x50c318,'report':_0x524384,'normalizedManifest':_0x596356[_0x23e0a0(0xae)]===0x1?_0x1cd923?.['normalizedManifest']:undefined,'manifests':_0x596356};}export function importServiceManifest(_0x3437bd,_0x2bca31={}){const _0x4a7202=a65_0x45ee83,_0x352759=loadServiceManifestFromFile(_0x3437bd);if(!_0x352759[_0x4a7202(0xbf)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x352759[_0x4a7202(0xbf)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x352759[_0x4a7202(0xcd)][_0x4a7202(0xae)]===0x0)throw CliErrors[_0x4a7202(0xa9)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x4a7202(0xc3));const _0x462de5=readServiceRegistry(_0x2bca31),_0x1fe5dd=(_0x2bca31[_0x4a7202(0xa3)]??(()=>new Date()))()[_0x4a7202(0xaf)](),_0x374dbf=[];let _0x84718b=0x0,_0x5ec19b=0x0;for(const _0x58732a of _0x352759[_0x4a7202(0xcd)]){if(!_0x58732a[_0x4a7202(0xcf)])continue;const _0x1d4e34=_0x58732a[_0x4a7202(0xcf)][_0x4a7202(0xc9)]['code'],_0x47f5f4={'serviceCode':_0x1d4e34,'version':_0x58732a[_0x4a7202(0xcf)][_0x4a7202(0x9e)],'importedAt':_0x1fe5dd,'source':{'type':_0x4a7202(0xa4),'path':_0x352759[_0x4a7202(0xbb)],'hash':_0x58732a[_0x4a7202(0xd8)]},'manifest':_0x58732a[_0x4a7202(0xe0)],'normalizedManifest':_0x58732a[_0x4a7202(0xcf)]},_0xc505ee=_0x462de5[_0x4a7202(0xb4)]['findIndex'](_0x2e5f93=>_0x2e5f93['serviceCode']===_0x1d4e34);_0xc505ee>=0x0?(_0x462de5[_0x4a7202(0xb4)][_0xc505ee]=_0x47f5f4,_0x5ec19b++):(_0x462de5[_0x4a7202(0xb4)][_0x4a7202(0xc0)](_0x47f5f4),_0x84718b++),_0x374dbf['push'](_0x47f5f4);}_0x462de5[_0x4a7202(0xb4)][_0x4a7202(0xa2)]((_0x22d8be,_0xc08513)=>_0x22d8be['serviceCode']['localeCompare'](_0xc08513[_0x4a7202(0xe2)])),_0x462de5['updatedAt']=_0x1fe5dd;const _0x575990=writeServiceRegistry(_0x462de5,_0x2bca31);return{'registryPath':_0x575990,'entry':_0x374dbf[0x0],'replaced':_0x374dbf[_0x4a7202(0xae)]===0x1?_0x5ec19b===0x1:_0x5ec19b>0x0,'entries':_0x374dbf,'imported':_0x84718b,'updated':_0x5ec19b,'serviceCount':_0x462de5[_0x4a7202(0xb4)][_0x4a7202(0xae)]};}export function exportServiceManifest(_0x5d5722,_0x4566f9,_0x596174={}){const _0x216a78=a65_0x45ee83,_0x23b6e4=getServiceRegistryPath(_0x596174),_0x42097a=getLocalServiceEntry(_0x5d5722,_0x596174);if(!_0x42097a)throw CliErrors['validation'](_0x216a78(0xca)+_0x5d5722,_0x216a78(0xf3));const _0x15ad3=resolve(_0x4566f9),_0x2e4bfc=dirname(_0x15ad3);return!existsSync(_0x2e4bfc)&&mkdirSync(_0x2e4bfc,{'recursive':!![]}),writeFileSync(_0x15ad3,JSON['stringify'](_0x42097a[_0x216a78(0xe0)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x23b6e4,'filePath':_0x15ad3,'entry':_0x42097a};}export function removeServiceManifest(_0x5b7c3e,_0x159fc8={}){const _0x28ce54=a65_0x45ee83,_0x356661=readServiceRegistry(_0x159fc8),_0x5d0dc4=_0x5b7c3e[_0x28ce54(0xe1)](),_0x5774a8=_0x356661[_0x28ce54(0xb4)][_0x28ce54(0xd2)](_0x3ff1f6=>_0x3ff1f6[_0x28ce54(0xe2)]===_0x5d0dc4);if(_0x5774a8<0x0)throw CliErrors['validation'](_0x28ce54(0xca)+_0x5d0dc4,_0x28ce54(0xf3));const [_0xfed133]=_0x356661[_0x28ce54(0xb4)][_0x28ce54(0xc6)](_0x5774a8,0x1),_0x7cac3d=(_0x159fc8[_0x28ce54(0xa3)]??(()=>new Date()))()[_0x28ce54(0xaf)]();_0x356661[_0x28ce54(0xc2)]=_0x7cac3d;const _0x87884a=writeServiceRegistry(_0x356661,_0x159fc8);return{'registryPath':_0x87884a,'entry':_0xfed133,'serviceCount':_0x356661[_0x28ce54(0xb4)]['length']};}export function listLocalServices(_0x292508={}){const _0x42da08=a65_0x45ee83;return readServiceRegistry(_0x292508)[_0x42da08(0xb4)];}export function getLocalServiceEntry(_0x1eb9c5,_0x2f73c4={}){const _0x9df0e8=a65_0x45ee83;return readServiceRegistry(_0x2f73c4)[_0x9df0e8(0xb4)][_0x9df0e8(0xa0)](_0x28518b=>_0x28518b[_0x9df0e8(0xe2)]===_0x1eb9c5['trim']());}export function listLocalServiceTrees(_0x1ba1d4={}){const _0x2b09b2=a65_0x45ee83;return readServiceRegistry(_0x1ba1d4)['services'][_0x2b09b2(0xe7)](_0x439d28=>_0x439d28['normalizedManifest']);}export function inspectServiceRegistry(_0x3a0807={}){const _0x265dbb=a65_0x45ee83,_0x589061=getServiceRegistryPath(_0x3a0807);if(!existsSync(_0x589061))return emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xeb),![]);try{const _0x21dd61=readFileSync(_0x589061,'utf8');if(!_0x21dd61[_0x265dbb(0xe1)]())return emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xb0),!![]);const _0x2fb3d5=JSON[_0x265dbb(0xe8)](_0x21dd61);if(_0x2fb3d5[_0x265dbb(0xdf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x589061,'invalid',!![]),'schemaVersion':_0x2fb3d5[_0x265dbb(0xdf)],'message':_0x265dbb(0xce)+String(_0x2fb3d5[_0x265dbb(0xdf)])};if(!Array[_0x265dbb(0xf2)](_0x2fb3d5[_0x265dbb(0xb4)]))return{...emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xcc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fb3d5['updatedAt'],'message':_0x265dbb(0xec)};const _0x537c76=_0x2fb3d5[_0x265dbb(0xb4)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x589061,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fb3d5[_0x265dbb(0xc2)],'serviceCount':_0x537c76['length'],'commandCount':_0x537c76[_0x265dbb(0xda)]((_0x49a1cd,_0x447b92)=>_0x49a1cd+_0x447b92[_0x265dbb(0xea)],0x0),'services':_0x537c76};}catch(_0xfd3256){return{...emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xcc),!![]),'message':_0xfd3256 instanceof Error?_0xfd3256[_0x265dbb(0xb5)]:String(_0xfd3256)};}}export function formatValidationFailure(_0x2283f4){const _0x94dd39=a65_0x45ee83,_0x4e13e2=_0x2283f4[_0x94dd39(0xb9)]['map'](_0x250c37=>_0x250c37[_0x94dd39(0xad)]+':\x20'+_0x250c37[_0x94dd39(0xb5)]);return _0x94dd39(0xee)+_0x4e13e2[_0x94dd39(0xe3)]('\x0a');}function extractLoadedServiceManifests(_0x1104e4,_0x2cf5cf){const _0x42f5dc=a65_0x45ee83;if(!isServiceRegistryLike(_0x1104e4)){const _0x204fd7=_0x1104e4,{manifest:_0x4a9279,errors:_0x9035e7}=adaptServiceTreeManifestForLegacyFramework(_0x204fd7),_0x182ab9=validateServiceTreeManifest(_0x4a9279),_0x2a8153=mergeValidationErrors(_0x182ab9,_0x9035e7);return[{'manifest':_0x204fd7,'report':_0x2a8153,'normalizedManifest':_0x2a8153['ok']?normalizeServiceTreeManifest(_0x4a9279):undefined,'sourceHash':_0x2cf5cf}];}return _0x1104e4[_0x42f5dc(0xb4)][_0x42f5dc(0xe7)]((_0x18de64,_0x3b5ed0)=>{const _0x1cf6a5=_0x42f5dc,_0x3b971d=isObjectRecord(_0x18de64)?_0x18de64[_0x1cf6a5(0xe0)]:undefined,{manifest:_0x1f1a70,errors:_0x176698}=adaptServiceTreeManifestForLegacyFramework(_0x3b971d),_0x82503c=validateServiceTreeManifest(_0x1f1a70),_0x588413=mergeValidationErrors(_0x82503c,_0x176698),_0x2c2a14=isObjectRecord(_0x18de64)&&typeof _0x18de64['serviceCode']===_0x1cf6a5(0xa6)?_0x18de64[_0x1cf6a5(0xe2)]:undefined;return{'manifest':_0x3b971d,'report':_0x588413,'normalizedManifest':_0x588413['ok']?normalizeServiceTreeManifest(_0x1f1a70):undefined,'sourceHash':sha256(JSON[_0x1cf6a5(0xc4)](_0x3b971d,null,0x2)+'\x0a'),'registryIndex':_0x3b5ed0,'registryServiceCode':_0x2c2a14};});}function mergeValidationErrors(_0x18562b,_0x25c7d5){const _0x42a090=a65_0x45ee83,_0x375179=_0x18562b['errors']['map'](_0x4be8e5=>_0x4be8e5[_0x42a090(0xb5)]===_0x42a090(0xd9)?{..._0x4be8e5,'message':_0x42a090(0xc1)}:_0x4be8e5),_0x40083a=[..._0x25c7d5,..._0x375179];return{'ok':_0x40083a[_0x42a090(0xae)]===0x0,'errors':_0x40083a,'warnings':_0x18562b[_0x42a090(0xba)]};}function aggregateValidationReports(_0x10fcf4){const _0x3b110d=a65_0x45ee83,_0x56f978=_0x10fcf4[_0x3b110d(0xb2)](_0x47ff60=>_0x47ff60[_0x3b110d(0xb1)]===undefined?_0x47ff60[_0x3b110d(0xbf)]['errors']:_0x47ff60[_0x3b110d(0xbf)][_0x3b110d(0xb9)]['map'](_0x2e1d67=>({..._0x2e1d67,'path':prefixRegistryIssuePath(_0x47ff60['registryIndex'],_0x2e1d67[_0x3b110d(0xad)])}))),_0x26307b=_0x10fcf4[_0x3b110d(0xb2)](_0xc52d1a=>_0xc52d1a[_0x3b110d(0xb1)]===undefined?_0xc52d1a['report'][_0x3b110d(0xba)]:_0xc52d1a['report'][_0x3b110d(0xba)][_0x3b110d(0xe7)](_0x24bca2=>({..._0x24bca2,'path':prefixRegistryIssuePath(_0xc52d1a['registryIndex'],_0x24bca2[_0x3b110d(0xad)])})));return{'ok':_0x56f978[_0x3b110d(0xae)]===0x0,'errors':_0x56f978,'warnings':_0x26307b};}function a65_0x3597(){const _0x4e81dc=['service','Local\x20service\x20not\x20found:\x20','37186IdiIqe','invalid','manifests','Unsupported\x20schemaVersion:\x20','normalizedManifest','852BCbMAq','target','findIndex','commands','kind','Remove\x20or\x20migrate\x20','8QhQBAM','description','sourceHash','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','reduce','update','521144GhYtQp','name','object','schemaVersion','manifest','trim','serviceCode','join','.tmp','5BKZIrL','28746DNMwCy','map','parse','sha256','commandCount','missing','services\x20must\x20be\x20an\x20array','Invalid\x20service\x20registry\x20JSON:\x20','Service\x20manifest\x20validation\x20failed:\x0a','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','cliPath','isArray','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','48041YuuHCr','startsWith','version','command','find','homeDirName','sort','now','file','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','string','6WSGMpA','slice','validation','utf8','906944olsyEZ','5029422jQekMh','path','length','toISOString','empty','registryIndex','flatMap','7670113okIxyL','services','message','$.services[','730ZpUWaf','].manifest','errors','warnings','filePath','service.json','CliError','risk','report','push','bff\x20target\x20requires\x20functionName.','updatedAt','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','stringify','registry','splice','6UtDcwD','hex'];a65_0x3597=function(){return _0x4e81dc;};return a65_0x3597();}function prefixRegistryIssuePath(_0x276035,_0x8c5c82){const _0x47524a=a65_0x45ee83;if(_0x8c5c82==='$')return _0x47524a(0xb6)+_0x276035+_0x47524a(0xb8);if(_0x8c5c82[_0x47524a(0x9d)]('$.'))return'$.services['+_0x276035+_0x47524a(0xb8)+_0x8c5c82['slice'](0x1);if(_0x8c5c82['startsWith']('$['))return'$.services['+_0x276035+'].manifest'+_0x8c5c82[_0x47524a(0xa8)](0x1);return _0x47524a(0xb6)+_0x276035+'].manifest.'+_0x8c5c82;}function isServiceRegistryLike(_0x317714){const _0x4b0826=a65_0x45ee83;return isObjectRecord(_0x317714)&&_0x317714[_0x4b0826(0xdf)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x4b0826(0xf2)](_0x317714[_0x4b0826(0xb4)]);}function isObjectRecord(_0x18f177){const _0x323daa=a65_0x45ee83;return Boolean(_0x18f177)&&typeof _0x18f177===_0x323daa(0xde)&&!Array[_0x323daa(0xf2)](_0x18f177);}function emptyServiceRegistryInspection(_0x1a0611,_0x5442b1,_0x456fe1){return{'registryPath':_0x1a0611,'exists':_0x456fe1,'status':_0x5442b1,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x2995b0){const _0x3f6f21=a65_0x45ee83,_0x1b6250=_0x2995b0[_0x3f6f21(0xcf)],_0x3f0bc9=_0x1b6250[_0x3f6f21(0xd3)][_0x3f6f21(0xe7)](_0x279e24=>({'path':_0x279e24[_0x3f6f21(0xf1)],'description':_0x279e24[_0x3f6f21(0xd7)],'risk':_0x279e24[_0x3f6f21(0xbe)],'targetKind':_0x279e24[_0x3f6f21(0xd1)][_0x3f6f21(0xd4)],'targetCommand':_0x279e24[_0x3f6f21(0xd1)][_0x3f6f21(0x9f)]}));return{'serviceCode':_0x2995b0['serviceCode'],'name':_0x1b6250['service'][_0x3f6f21(0xdd)],'description':_0x1b6250[_0x3f6f21(0xc9)][_0x3f6f21(0xd7)],'version':_0x2995b0[_0x3f6f21(0x9e)],'importedAt':_0x2995b0['importedAt'],'source':_0x2995b0['source'],'commandCount':_0x3f0bc9[_0x3f6f21(0xae)],'commands':_0x3f0bc9};}function sha256(_0x52bb53){const _0x51a571=a65_0x45ee83;return createHash(_0x51a571(0xe9))[_0x51a571(0xdb)](_0x52bb53)['digest'](_0x51a571(0xc8));}