@lovrabet/lovrabet-cli 2.2.3-beta.2 → 2.2.4-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 (182) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/shared.js +1 -1
  25. package/lib/commands/data/index.js +1 -1
  26. package/lib/commands/dataset/detail.js +1 -1
  27. package/lib/commands/dataset/index.js +1 -1
  28. package/lib/commands/dataset/list.js +1 -1
  29. package/lib/commands/dataset/sdk-doc.js +1 -1
  30. package/lib/commands/doctor.js +1 -1
  31. package/lib/commands/file/index.js +1 -1
  32. package/lib/commands/init.js +1 -1
  33. package/lib/commands/kb/index.js +1 -1
  34. package/lib/commands/logs/index.js +1 -1
  35. package/lib/commands/notification/config-list.d.ts +2 -0
  36. package/lib/commands/notification/config-list.js +1 -0
  37. package/lib/commands/notification/index.d.ts +2 -0
  38. package/lib/commands/notification/index.js +1 -0
  39. package/lib/commands/notification/shared.d.ts +13 -0
  40. package/lib/commands/notification/shared.js +1 -0
  41. package/lib/commands/ocr/index.js +1 -1
  42. package/lib/commands/permit/dataset-get.d.ts +2 -0
  43. package/lib/commands/permit/dataset-get.js +1 -0
  44. package/lib/commands/permit/dataset-set.d.ts +2 -0
  45. package/lib/commands/permit/dataset-set.js +1 -0
  46. package/lib/commands/permit/index.d.ts +2 -0
  47. package/lib/commands/permit/index.js +1 -0
  48. package/lib/commands/permit/page-get.d.ts +2 -0
  49. package/lib/commands/permit/page-get.js +1 -0
  50. package/lib/commands/permit/page-set.d.ts +2 -0
  51. package/lib/commands/permit/page-set.js +1 -0
  52. package/lib/commands/permit/role-menus-set.d.ts +2 -0
  53. package/lib/commands/permit/role-menus-set.js +1 -0
  54. package/lib/commands/permit/role-menus.d.ts +2 -0
  55. package/lib/commands/permit/role-menus.js +1 -0
  56. package/lib/commands/permit/shared.d.ts +52 -0
  57. package/lib/commands/permit/shared.js +1 -0
  58. package/lib/commands/personal-bff/index.js +1 -1
  59. package/lib/commands/registry.js +1 -1
  60. package/lib/commands/role/create.d.ts +2 -0
  61. package/lib/commands/role/create.js +1 -0
  62. package/lib/commands/role/delete.d.ts +2 -0
  63. package/lib/commands/role/delete.js +1 -0
  64. package/lib/commands/role/detail.d.ts +2 -0
  65. package/lib/commands/role/detail.js +1 -0
  66. package/lib/commands/role/index.d.ts +2 -0
  67. package/lib/commands/role/index.js +1 -0
  68. package/lib/commands/role/list.d.ts +2 -0
  69. package/lib/commands/role/list.js +1 -0
  70. package/lib/commands/role/shared.d.ts +33 -0
  71. package/lib/commands/role/shared.js +1 -0
  72. package/lib/commands/role/update.d.ts +2 -0
  73. package/lib/commands/role/update.js +1 -0
  74. package/lib/commands/role/user-add.d.ts +2 -0
  75. package/lib/commands/role/user-add.js +1 -0
  76. package/lib/commands/role/user-remove.d.ts +2 -0
  77. package/lib/commands/role/user-remove.js +1 -0
  78. package/lib/commands/schedule/index.js +1 -1
  79. package/lib/commands/schema.js +1 -1
  80. package/lib/commands/service/dynamic.js +1 -1
  81. package/lib/commands/service/function-name-adapter.js +1 -1
  82. package/lib/commands/service/index.js +1 -1
  83. package/lib/commands/service/registry.js +1 -1
  84. package/lib/commands/skill/commands/create.js +1 -1
  85. package/lib/commands/skill/commands/diagram.js +1 -1
  86. package/lib/commands/skill/commands/install.js +1 -1
  87. package/lib/commands/skill/commands/list.js +1 -1
  88. package/lib/commands/skill/commands/push.js +1 -1
  89. package/lib/commands/skill/commands/validate.js +1 -1
  90. package/lib/commands/skill/diagram.js +1 -1
  91. package/lib/commands/skill/flags.js +1 -1
  92. package/lib/commands/skill/index.js +1 -1
  93. package/lib/commands/skill/manifest-helpers.js +1 -1
  94. package/lib/commands/skill/push-execute.js +1 -1
  95. package/lib/commands/skill/push-flow-helpers.js +1 -1
  96. package/lib/commands/skill/push-retarget.js +1 -1
  97. package/lib/commands/skill/scopes.js +1 -1
  98. package/lib/commands/skill/summary.js +1 -1
  99. package/lib/commands/skill/templates.js +1 -1
  100. package/lib/commands/skill/validate.js +1 -1
  101. package/lib/commands/sql/detail.js +1 -1
  102. package/lib/commands/sql/exec.js +1 -1
  103. package/lib/commands/sql/index.js +1 -1
  104. package/lib/commands/update.js +1 -1
  105. package/lib/commands/user-account/bind.js +1 -1
  106. package/lib/commands/user-account/index.js +1 -1
  107. package/lib/commands/workspace/index.js +1 -1
  108. package/lib/config/schema.js +1 -1
  109. package/lib/constant/app.js +1 -1
  110. package/lib/constant/auth-mode.js +1 -1
  111. package/lib/constant/cli.js +1 -1
  112. package/lib/constant/defaults.js +1 -1
  113. package/lib/constant/distribution.js +1 -1
  114. package/lib/constant/domain.js +1 -1
  115. package/lib/constant/env.js +1 -1
  116. package/lib/constant/output.js +1 -1
  117. package/lib/constant/product.js +1 -1
  118. package/lib/constant/risk.js +1 -1
  119. package/lib/constant/url.js +1 -1
  120. package/lib/context.js +1 -1
  121. package/lib/core/api-client.d.ts +161 -0
  122. package/lib/core/api-client.js +1 -1
  123. package/lib/core/db-resolver.js +1 -1
  124. package/lib/core/sdk-client.js +1 -1
  125. package/lib/errors.js +1 -1
  126. package/lib/framework/build-all-flags.js +1 -1
  127. package/lib/framework/dryrun.js +1 -1
  128. package/lib/framework/flags.js +1 -1
  129. package/lib/framework/help.js +1 -1
  130. package/lib/framework/index.js +1 -1
  131. package/lib/framework/output.js +1 -1
  132. package/lib/framework/preparse.js +1 -1
  133. package/lib/framework/rate-limit.js +1 -1
  134. package/lib/framework/raw-flags.js +1 -1
  135. package/lib/framework/response.js +1 -1
  136. package/lib/framework/runner-confirmation.js +1 -1
  137. package/lib/framework/runner-error.js +1 -1
  138. package/lib/framework/runner.js +1 -1
  139. package/lib/framework/schema-export.js +1 -1
  140. package/lib/framework/service-order.js +1 -1
  141. package/lib/framework/types.js +1 -1
  142. package/lib/generated/build-info.d.ts +4 -4
  143. package/lib/generated/build-info.js +1 -1
  144. package/lib/help.js +1 -1
  145. package/lib/postinstall.js +1 -1
  146. package/lib/runtime/confirmation.js +1 -1
  147. package/lib/runtime/event.js +1 -1
  148. package/lib/runtime/index.js +1 -1
  149. package/lib/runtime/queue.js +1 -1
  150. package/lib/runtime/resolve.js +1 -1
  151. package/lib/skills/builtin-skill.js +1 -1
  152. package/lib/skills/npx-skills-add.js +1 -1
  153. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  154. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  155. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  156. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  157. package/lib/skills/runtime-skill-sync/links.js +1 -1
  158. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  159. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  160. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  161. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  162. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  163. package/lib/skills/runtime-skill-sync/push.js +1 -1
  164. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  165. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  166. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  167. package/lib/skills/runtime-skill-sync.js +1 -1
  168. package/lib/skills/skill-presence.js +1 -1
  169. package/lib/utils/apply-jq-filter.js +1 -1
  170. package/lib/utils/logger.js +1 -1
  171. package/lib/utils/lossless-json.js +1 -1
  172. package/lib/utils/params.js +1 -1
  173. package/lib/utils/platform.js +1 -1
  174. package/lib/utils/update-notice.js +1 -1
  175. package/lib/utils/version.js +1 -1
  176. package/lib/utils/write-cli-side-channel.js +1 -1
  177. package/package.json +1 -1
  178. package/skills/lovrabet/SKILL.md +19 -6
  179. package/skills/lovrabet/guides/role-and-permission-workflow.md +139 -0
  180. package/skills/lovrabet/references/lovrabet-auth.md +1 -5
  181. package/skills/lovrabet/references/lovrabet-notification-config-list.md +81 -0
  182. package/skills/lovrabet.manifest.json +5 -3
@@ -1 +1 @@
1
- const a35_0x1a818d=a35_0x251b;function a35_0xa840(){const _0x8febc4=['根据\x20ID\x20更新个人\x20BFF','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','body','read','string','description','isArray','isFile','根据本地脚本文件创建个人\x20BFF','gmtCreate','params','num','trim','432488BLapll','Personal\x20BFF\x20script\x20ID','scriptContent','keys','name','personal-bff','Show\x20one\x20personal\x20BFF\x20by\x20id','test','utf8','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','Created\x20personal\x20BFF\x20','21RLGRda','2926917NGeDrn','file','functionName','write','detail','build','3505290kZZDyD','Preview:\x20create\x20personal\x20BFF\x20','File\x20not\x20found:\x20','createUserId','scriptType','3154200WoStif','appCode','109353JxTPVA','/client/runtime-bff/personal/create','create','64lYsaAf','bool','--params\x20must\x20be\x20a\x20JSON\x20object.','59600XvBuPv','validation','Preview:\x20update\x20personal\x20BFF\x20','POST','flag','/client/runtime-bff/personal/','12hffmSr','更新个人\x20BFF\x20的脚本或元信息;之后的调用将使用新版本。','str','verbose','2064528eYAYFq','执行个人\x20BFF\x20脚本;脚本可能读取或修改业务数据,也可能调用外部服务。','sourceSessionId','map','exec','根据\x20ID\x20执行个人\x20BFF,并可传入\x20JSON\x20参数','source-session-id','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','/update','createTime'];a35_0xa840=function(){return _0x8febc4;};return a35_0xa840();}(function(_0x4472f4,_0x3b4544){const _0x54530e=a35_0x251b,_0x3454a4=_0x4472f4();while(!![]){try{const _0x47a730=parseInt(_0x54530e(0xef))/0x1+parseInt(_0x54530e(0xd4))/0x2*(-parseInt(_0x54530e(0xc8))/0x3)+-parseInt(_0x54530e(0xcb))/0x4*(parseInt(_0x54530e(0xce))/0x5)+parseInt(_0x54530e(0xc6))/0x6+parseInt(_0x54530e(0xfa))/0x7*(-parseInt(_0x54530e(0xd8))/0x8)+parseInt(_0x54530e(0xfb))/0x9+parseInt(_0x54530e(0x101))/0xa;if(_0x47a730===_0x3b4544)break;else _0x3454a4['push'](_0x3454a4['shift']());}catch(_0x4192a4){_0x3454a4['push'](_0x3454a4['shift']());}}}(a35_0xa840,0x6df02));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';function a35_0x251b(_0x34c303,_0x2c5a9b){_0x34c303=_0x34c303-0xc5;const _0xa84020=a35_0xa840();let _0x251b68=_0xa84020[_0x34c303];return _0x251b68;}const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a35_0x1a818d(0xfc),'type':a35_0x1a818d(0xe6),'description':'Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'},FUNCTION_NAME_FLAG={'name':a35_0x1a818d(0xf3),'type':a35_0x1a818d(0xe6),'required':!![],'description':'Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders'},DESCRIPTION_FLAG={'name':a35_0x1a818d(0xe7),'type':a35_0x1a818d(0xe6),'description':'Personal\x20BFF\x20description'},SOURCE_SESSION_FLAG={'name':a35_0x1a818d(0xde),'type':a35_0x1a818d(0xe6),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x4af4fb){const _0x37df21=a35_0x1a818d,_0x4c1c6e=String(_0x4af4fb||'')['trim']();if(!_0x4c1c6e||!FUNCTION_NAME_PATTERN[_0x37df21(0xf6)](_0x4c1c6e))throw CliErrors[_0x37df21(0xcf)](_0x37df21(0xdf));return _0x4c1c6e;}function readScriptFile(_0x141c37){const _0x3de4f8=a35_0x1a818d;if(!_0x141c37)throw CliErrors[_0x3de4f8(0xcf)]('File\x20path\x20is\x20required.');if(!existsSync(_0x141c37))throw CliErrors['validation'](_0x3de4f8(0x103)+_0x141c37);if(!statSync(_0x141c37)[_0x3de4f8(0xe9)]())throw CliErrors[_0x3de4f8(0xcf)]('File\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x141c37);const _0x1a90a5=readFileSync(_0x141c37,_0x3de4f8(0xf7));if(!_0x1a90a5[_0x3de4f8(0xee)]())throw CliErrors['validation']('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0x1a90a5;}function optionalTrimmed(_0x137112){const _0x5128fd=a35_0x1a818d,_0x1b0cbf=String(_0x137112||'')[_0x5128fd(0xee)]();return _0x1b0cbf||undefined;}function summarizeBff(_0x4904fb){const _0x102e6e=a35_0x1a818d;return{'id':_0x4904fb['id'],'appCode':_0x4904fb['appCode'],'functionName':_0x4904fb[_0x102e6e(0xfd)],'description':_0x4904fb['description'],'scriptType':_0x4904fb[_0x102e6e(0xc5)],'version':_0x4904fb['version'],'gmtModified':_0x4904fb['gmtModified'],'updateTime':_0x4904fb['updateTime']};}function detailBff(_0x1c3210){const _0x4b6ea8=a35_0x1a818d;return{'id':_0x1c3210['id'],'appCode':_0x1c3210[_0x4b6ea8(0xc7)],'functionName':_0x1c3210[_0x4b6ea8(0xfd)],'description':_0x1c3210[_0x4b6ea8(0xe7)],'scriptType':_0x1c3210['scriptType'],'scriptContent':_0x1c3210[_0x4b6ea8(0xf1)]??'','config':_0x1c3210['config'],'version':_0x1c3210['version'],'createUserId':_0x1c3210[_0x4b6ea8(0x104)],'gmtCreate':_0x1c3210[_0x4b6ea8(0xeb)],'gmtModified':_0x1c3210['gmtModified'],'createTime':_0x1c3210[_0x4b6ea8(0xe1)],'updateTime':_0x1c3210['updateTime']};}function buildCreateInput(_0x2cd241){const _0x3da8c3=a35_0x1a818d;return{'functionName':normalizeFunctionName(_0x2cd241[_0x3da8c3(0xd6)](_0x3da8c3(0xf3))),...optionalTrimmed(_0x2cd241[_0x3da8c3(0xd6)](_0x3da8c3(0xe7)))?{'description':optionalTrimmed(_0x2cd241[_0x3da8c3(0xd6)](_0x3da8c3(0xe7)))}:{},'scriptContent':readScriptFile(_0x2cd241[_0x3da8c3(0xd6)](_0x3da8c3(0xfc))),...optionalTrimmed(_0x2cd241[_0x3da8c3(0xd6)](_0x3da8c3(0xde)))?{'sourceSessionId':optionalTrimmed(_0x2cd241[_0x3da8c3(0xd6)](_0x3da8c3(0xde)))}:{}};}function buildUpdateInput(_0x43ffdb){const _0x46e905=a35_0x1a818d,_0x39b524={};optionalTrimmed(_0x43ffdb[_0x46e905(0xd6)](_0x46e905(0xf3)))&&(_0x39b524[_0x46e905(0xfd)]=normalizeFunctionName(_0x43ffdb[_0x46e905(0xd6)]('name')));_0x43ffdb[_0x46e905(0xd2)](_0x46e905(0xe7))!==undefined&&(_0x39b524[_0x46e905(0xe7)]=_0x43ffdb[_0x46e905(0xd6)](_0x46e905(0xe7)));optionalTrimmed(_0x43ffdb[_0x46e905(0xd6)]('file'))&&(_0x39b524['scriptContent']=readScriptFile(_0x43ffdb[_0x46e905(0xd6)](_0x46e905(0xfc))));_0x43ffdb[_0x46e905(0xd2)](_0x46e905(0xde))!==undefined&&(_0x39b524[_0x46e905(0xda)]=_0x43ffdb[_0x46e905(0xd6)]('source-session-id'));if(Object[_0x46e905(0xf2)](_0x39b524)['length']===0x0)throw CliErrors['validation'](_0x46e905(0xf8));return _0x39b524;}function parseExecParams(_0xea45c8){const _0x1db439=a35_0x1a818d,_0xc7ae45=parseJsonParams(_0xea45c8)??{};if(Array[_0x1db439(0xe8)](_0xc7ae45))throw CliErrors['validation'](_0x1db439(0xcd));return _0xc7ae45;}const personalBffList={'service':'personal-bff','command':'list','description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':a35_0x1a818d(0xe5),'flags':[VERBOSE_FLAG],async 'execute'(_0x406bcb){const _0x1cb81b=a35_0x1a818d,_0x3f56ce=await listPersonalBffs(_0x406bcb[_0x1cb81b(0xc7)]);return{'ok':!![],'data':{'total':_0x3f56ce['length'],'items':_0x406bcb[_0x1cb81b(0xcc)](_0x1cb81b(0xd7))?_0x3f56ce:_0x3f56ce[_0x1cb81b(0xdb)](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':a35_0x1a818d(0xff),'description':a35_0x1a818d(0xf5),'risk':a35_0x1a818d(0xe5),'flags':[{...ID_FLAG,'description':a35_0x1a818d(0xf0)}],async 'execute'(_0x58e4b2){const _0x410cf2=a35_0x1a818d,_0x139db4=await getPersonalBff(_0x58e4b2[_0x410cf2(0xed)]('id'),_0x58e4b2[_0x410cf2(0xc7)]);return{'ok':!![],'data':detailBff(_0x139db4)};}},personalBffCreate={'service':'personal-bff','command':a35_0x1a818d(0xca),'description':a35_0x1a818d(0xea),'risk':a35_0x1a818d(0xfe),'confirmationDescription':'把本地脚本保存为个人\x20BFF;之后可在当前应用中调用该脚本。','flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x17400b){const _0xcc464b=a35_0x1a818d,_0x4aa5ff=buildCreateInput(_0x17400b),_0x8ade44=await createPersonalBff(_0x17400b[_0xcc464b(0xc7)],_0x4aa5ff);return{'ok':!![],'data':detailBff(_0x8ade44),'message':_0xcc464b(0xf9)+_0x8ade44['id']+(_0x8ade44[_0xcc464b(0xfd)]?'\x20('+_0x8ade44[_0xcc464b(0xfd)]+')':'')};},async 'dryRun'(_0x505878){const _0x468e1e=a35_0x1a818d,_0x1c1f95=buildCreateInput(_0x505878);return dryRun(_0x468e1e(0xd1),_0x468e1e(0xc9))[_0x468e1e(0xe4)]({'appCode':_0x505878[_0x468e1e(0xc7)],..._0x1c1f95})[_0x468e1e(0xe7)](_0x468e1e(0x102)+_0x1c1f95[_0x468e1e(0xfd)])[_0x468e1e(0x100)]();}},personalBffUpdate={'service':a35_0x1a818d(0xf4),'command':'update','description':a35_0x1a818d(0xe2),'risk':'write','confirmationDescription':a35_0x1a818d(0xd5),'flags':[{...ID_FLAG,'description':a35_0x1a818d(0xf0)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0xa04218){const _0xdd2d62=a35_0x1a818d,_0x54c7c4=_0xa04218[_0xdd2d62(0xed)]('id'),_0x484d06=buildUpdateInput(_0xa04218),_0x22334c=await updatePersonalBff(_0x54c7c4,_0xa04218['appCode'],_0x484d06);return{'ok':!![],'data':detailBff(_0x22334c),'message':'Updated\x20personal\x20BFF\x20'+_0x22334c['id']+(_0x22334c['functionName']?'\x20('+_0x22334c['functionName']+')':'')};},async 'dryRun'(_0x5293d7){const _0x6a7e15=a35_0x1a818d,_0x5db9a7=_0x5293d7['num']('id'),_0x1f63d5=buildUpdateInput(_0x5293d7);return dryRun('POST',_0x6a7e15(0xd3)+_0x5db9a7+_0x6a7e15(0xe0))[_0x6a7e15(0xe4)]({'appCode':_0x5293d7[_0x6a7e15(0xc7)],..._0x1f63d5})['description'](_0x6a7e15(0xd0)+_0x5db9a7)[_0x6a7e15(0x100)]();}},personalBffExec={'service':a35_0x1a818d(0xf4),'command':a35_0x1a818d(0xdc),'description':a35_0x1a818d(0xdd),'risk':'write','confirmationDescription':a35_0x1a818d(0xd9),'flags':[{...ID_FLAG,'description':a35_0x1a818d(0xf0)},{...PARAMS_FLAG,'description':a35_0x1a818d(0xe3)}],async 'validate'(_0x4133c2){const _0x3123cc=a35_0x1a818d;parseExecParams(_0x4133c2[_0x3123cc(0xd6)](_0x3123cc(0xec)));},async 'execute'(_0xf9314d){const _0x27cd05=a35_0x1a818d,_0x51ebba=_0xf9314d[_0x27cd05(0xed)]('id'),_0x3a3038=parseExecParams(_0xf9314d['str']('params')),_0x16e8fb=await executePersonalBff(_0x51ebba,_0xf9314d['appCode'],_0x3a3038);return{'ok':!![],'data':{'result':_0x16e8fb},'message':'Executed\x20personal\x20BFF\x20'+_0x51ebba};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
1
+ const a46_0x2aa409=a46_0x13a1;(function(_0x2a74fd,_0x37f90e){const _0x89d9ec=a46_0x13a1,_0x319744=_0x2a74fd();while(!![]){try{const _0x2a5cee=parseInt(_0x89d9ec(0xb7))/0x1+-parseInt(_0x89d9ec(0xda))/0x2*(parseInt(_0x89d9ec(0xbf))/0x3)+parseInt(_0x89d9ec(0xd6))/0x4+parseInt(_0x89d9ec(0xe1))/0x5+-parseInt(_0x89d9ec(0xa8))/0x6+-parseInt(_0x89d9ec(0xb6))/0x7+parseInt(_0x89d9ec(0xc0))/0x8;if(_0x2a5cee===_0x37f90e)break;else _0x319744['push'](_0x319744['shift']());}catch(_0x2393ab){_0x319744['push'](_0x319744['shift']());}}}(a46_0xae56,0xedf9e));import{existsSync,readFileSync,statSync}from'node:fs';function a46_0xae56(){const _0x54c019=['read','File\x20is\x20not\x20a\x20regular\x20file:\x20','length','3855QXiepu','36825464upZHzB','config','Personal\x20BFF\x20script\x20file\x20is\x20blank.','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','File\x20path\x20is\x20required.','Updated\x20personal\x20BFF\x20','num','scriptContent','根据本地脚本文件创建个人\x20BFF','map','isArray','scriptType','--params\x20must\x20be\x20a\x20JSON\x20object.','validation','/update','执行个人\x20BFF\x20脚本;脚本可能读取或修改业务数据,也可能调用外部服务。','source-session-id','body','personal-bff','flag','appCode','398380tQJuTV','write','description','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','2362IzDCua','updateTime','file','string','gmtCreate','POST','gmtModified','3650800mfpvCN','params','/client/runtime-bff/personal/create','Optional\x20source\x20RuntimeAgent\x20session\x20id','list','trim','version','detail','Created\x20personal\x20BFF\x20','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','test','9120126uWjScf','name','Personal\x20BFF\x20script\x20ID','bool','utf8','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','/client/runtime-bff/personal/','create','verbose','Executed\x20personal\x20BFF\x20','build','functionName','update','Show\x20one\x20personal\x20BFF\x20by\x20id','12476674OrDZCq','361800jJmCVR','把本地脚本保存为个人\x20BFF;之后可在当前应用中调用该脚本。','根据\x20ID\x20执行个人\x20BFF,并可传入\x20JSON\x20参数','keys','str'];a46_0xae56=function(){return _0x54c019;};return a46_0xae56();}import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a46_0x2aa409(0xdc),'type':a46_0x2aa409(0xdd),'description':a46_0x2aa409(0xc4)},FUNCTION_NAME_FLAG={'name':a46_0x2aa409(0xa9),'type':a46_0x2aa409(0xdd),'required':!![],'description':a46_0x2aa409(0xad)},DESCRIPTION_FLAG={'name':a46_0x2aa409(0xd8),'type':a46_0x2aa409(0xdd),'description':'Personal\x20BFF\x20description'},SOURCE_SESSION_FLAG={'name':'source-session-id','type':a46_0x2aa409(0xdd),'description':a46_0x2aa409(0xe4)};function normalizeFunctionName(_0x1a0180){const _0x47ca7a=a46_0x2aa409,_0x1378ed=String(_0x1a0180||'')['trim']();if(!_0x1378ed||!FUNCTION_NAME_PATTERN[_0x47ca7a(0xa7)](_0x1378ed))throw CliErrors['validation'](_0x47ca7a(0xd9));return _0x1378ed;}function readScriptFile(_0x171748){const _0x1a07ed=a46_0x2aa409;if(!_0x171748)throw CliErrors['validation'](_0x1a07ed(0xc5));if(!existsSync(_0x171748))throw CliErrors[_0x1a07ed(0xce)]('File\x20not\x20found:\x20'+_0x171748);if(!statSync(_0x171748)['isFile']())throw CliErrors[_0x1a07ed(0xce)](_0x1a07ed(0xbd)+_0x171748);const _0x11b57c=readFileSync(_0x171748,_0x1a07ed(0xac));if(!_0x11b57c[_0x1a07ed(0xe6)]())throw CliErrors[_0x1a07ed(0xce)](_0x1a07ed(0xc2));return _0x11b57c;}function optionalTrimmed(_0x4ad635){const _0x5af341=a46_0x2aa409,_0x3c6ea7=String(_0x4ad635||'')[_0x5af341(0xe6)]();return _0x3c6ea7||undefined;}function summarizeBff(_0x1582a2){const _0x2d8e6e=a46_0x2aa409;return{'id':_0x1582a2['id'],'appCode':_0x1582a2[_0x2d8e6e(0xd5)],'functionName':_0x1582a2[_0x2d8e6e(0xb3)],'description':_0x1582a2[_0x2d8e6e(0xd8)],'scriptType':_0x1582a2['scriptType'],'version':_0x1582a2['version'],'gmtModified':_0x1582a2[_0x2d8e6e(0xe0)],'updateTime':_0x1582a2['updateTime']};}function detailBff(_0x3d5715){const _0x33815e=a46_0x2aa409;return{'id':_0x3d5715['id'],'appCode':_0x3d5715['appCode'],'functionName':_0x3d5715['functionName'],'description':_0x3d5715[_0x33815e(0xd8)],'scriptType':_0x3d5715[_0x33815e(0xcc)],'scriptContent':_0x3d5715[_0x33815e(0xc8)]??'','config':_0x3d5715[_0x33815e(0xc1)],'version':_0x3d5715[_0x33815e(0xa3)],'createUserId':_0x3d5715['createUserId'],'gmtCreate':_0x3d5715[_0x33815e(0xde)],'gmtModified':_0x3d5715[_0x33815e(0xe0)],'createTime':_0x3d5715['createTime'],'updateTime':_0x3d5715[_0x33815e(0xdb)]};}function buildCreateInput(_0x22d1f7){const _0x18c327=a46_0x2aa409;return{'functionName':normalizeFunctionName(_0x22d1f7[_0x18c327(0xbb)]('name')),...optionalTrimmed(_0x22d1f7['str']('description'))?{'description':optionalTrimmed(_0x22d1f7[_0x18c327(0xbb)](_0x18c327(0xd8)))}:{},'scriptContent':readScriptFile(_0x22d1f7[_0x18c327(0xbb)](_0x18c327(0xdc))),...optionalTrimmed(_0x22d1f7[_0x18c327(0xbb)](_0x18c327(0xd1)))?{'sourceSessionId':optionalTrimmed(_0x22d1f7[_0x18c327(0xbb)](_0x18c327(0xd1)))}:{}};}function buildUpdateInput(_0x221fac){const _0x5626cd=a46_0x2aa409,_0x31f790={};optionalTrimmed(_0x221fac['str'](_0x5626cd(0xa9)))&&(_0x31f790[_0x5626cd(0xb3)]=normalizeFunctionName(_0x221fac[_0x5626cd(0xbb)](_0x5626cd(0xa9))));_0x221fac['flag'](_0x5626cd(0xd8))!==undefined&&(_0x31f790[_0x5626cd(0xd8)]=_0x221fac['str'](_0x5626cd(0xd8)));optionalTrimmed(_0x221fac[_0x5626cd(0xbb)]('file'))&&(_0x31f790[_0x5626cd(0xc8)]=readScriptFile(_0x221fac[_0x5626cd(0xbb)]('file')));_0x221fac[_0x5626cd(0xd4)](_0x5626cd(0xd1))!==undefined&&(_0x31f790['sourceSessionId']=_0x221fac[_0x5626cd(0xbb)]('source-session-id'));if(Object[_0x5626cd(0xba)](_0x31f790)[_0x5626cd(0xbe)]===0x0)throw CliErrors[_0x5626cd(0xce)](_0x5626cd(0xa6));return _0x31f790;}function parseExecParams(_0x2d7279){const _0x3bd3ea=a46_0x2aa409,_0x22e485=parseJsonParams(_0x2d7279)??{};if(Array[_0x3bd3ea(0xcb)](_0x22e485))throw CliErrors[_0x3bd3ea(0xce)](_0x3bd3ea(0xcd));return _0x22e485;}function a46_0x13a1(_0x41f274,_0x2a932a){_0x41f274=_0x41f274-0xa3;const _0xae566=a46_0xae56();let _0x13a109=_0xae566[_0x41f274];return _0x13a109;}const personalBffList={'service':a46_0x2aa409(0xd3),'command':a46_0x2aa409(0xe5),'description':a46_0x2aa409(0xc3),'risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x453d42){const _0x44f916=a46_0x2aa409,_0x4956f2=await listPersonalBffs(_0x453d42[_0x44f916(0xd5)]);return{'ok':!![],'data':{'total':_0x4956f2['length'],'items':_0x453d42[_0x44f916(0xab)](_0x44f916(0xb0))?_0x4956f2:_0x4956f2[_0x44f916(0xca)](summarizeBff)}};}},personalBffDetail={'service':a46_0x2aa409(0xd3),'command':a46_0x2aa409(0xa4),'description':a46_0x2aa409(0xb5),'risk':a46_0x2aa409(0xbc),'flags':[{...ID_FLAG,'description':a46_0x2aa409(0xaa)}],async 'execute'(_0x3da794){const _0x45ab53=a46_0x2aa409,_0x34043e=await getPersonalBff(_0x3da794['num']('id'),_0x3da794[_0x45ab53(0xd5)]);return{'ok':!![],'data':detailBff(_0x34043e)};}},personalBffCreate={'service':a46_0x2aa409(0xd3),'command':a46_0x2aa409(0xaf),'description':a46_0x2aa409(0xc9),'risk':'write','confirmationDescription':a46_0x2aa409(0xb8),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x56d59f){const _0x28188d=a46_0x2aa409,_0x1efc5d=buildCreateInput(_0x56d59f),_0x12a919=await createPersonalBff(_0x56d59f[_0x28188d(0xd5)],_0x1efc5d);return{'ok':!![],'data':detailBff(_0x12a919),'message':_0x28188d(0xa5)+_0x12a919['id']+(_0x12a919[_0x28188d(0xb3)]?'\x20('+_0x12a919['functionName']+')':'')};},async 'dryRun'(_0x37d66b){const _0x56c668=a46_0x2aa409,_0x2a6508=buildCreateInput(_0x37d66b);return dryRun(_0x56c668(0xdf),_0x56c668(0xe3))[_0x56c668(0xd2)]({'appCode':_0x37d66b[_0x56c668(0xd5)],..._0x2a6508})[_0x56c668(0xd8)]('Preview:\x20create\x20personal\x20BFF\x20'+_0x2a6508[_0x56c668(0xb3)])['build']();}},personalBffUpdate={'service':a46_0x2aa409(0xd3),'command':a46_0x2aa409(0xb4),'description':'根据\x20ID\x20更新个人\x20BFF','risk':a46_0x2aa409(0xd7),'confirmationDescription':'更新个人\x20BFF\x20的脚本或元信息;之后的调用将使用新版本。','flags':[{...ID_FLAG,'description':a46_0x2aa409(0xaa)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x4e009c){const _0x12ed4b=a46_0x2aa409,_0x317f8d=_0x4e009c[_0x12ed4b(0xc7)]('id'),_0x476b96=buildUpdateInput(_0x4e009c),_0x14d34d=await updatePersonalBff(_0x317f8d,_0x4e009c[_0x12ed4b(0xd5)],_0x476b96);return{'ok':!![],'data':detailBff(_0x14d34d),'message':_0x12ed4b(0xc6)+_0x14d34d['id']+(_0x14d34d[_0x12ed4b(0xb3)]?'\x20('+_0x14d34d[_0x12ed4b(0xb3)]+')':'')};},async 'dryRun'(_0x2c68d8){const _0x46284b=a46_0x2aa409,_0x290186=_0x2c68d8['num']('id'),_0x3ed224=buildUpdateInput(_0x2c68d8);return dryRun('POST',_0x46284b(0xae)+_0x290186+_0x46284b(0xcf))['body']({'appCode':_0x2c68d8[_0x46284b(0xd5)],..._0x3ed224})[_0x46284b(0xd8)]('Preview:\x20update\x20personal\x20BFF\x20'+_0x290186)[_0x46284b(0xb2)]();}},personalBffExec={'service':a46_0x2aa409(0xd3),'command':'exec','description':a46_0x2aa409(0xb9),'risk':a46_0x2aa409(0xd7),'confirmationDescription':a46_0x2aa409(0xd0),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...PARAMS_FLAG,'description':'JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution'}],async 'validate'(_0x2779a3){const _0x222706=a46_0x2aa409;parseExecParams(_0x2779a3[_0x222706(0xbb)](_0x222706(0xe2)));},async 'execute'(_0x22cf7f){const _0x12d738=a46_0x2aa409,_0x4ca1c1=_0x22cf7f[_0x12d738(0xc7)]('id'),_0x49eaf8=parseExecParams(_0x22cf7f[_0x12d738(0xbb)](_0x12d738(0xe2))),_0x5e6325=await executePersonalBff(_0x4ca1c1,_0x22cf7f[_0x12d738(0xd5)],_0x49eaf8);return{'ok':!![],'data':{'result':_0x5e6325},'message':_0x12d738(0xb1)+_0x4ca1c1};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
@@ -1 +1 @@
1
- const a36_0x56f1bf=a36_0x4102;(function(_0x47bfc1,_0x3f3e40){const _0x16423e=a36_0x4102,_0x9b39f=_0x47bfc1();while(!![]){try{const _0x2a763f=parseInt(_0x16423e(0xf3))/0x1+-parseInt(_0x16423e(0x106))/0x2*(parseInt(_0x16423e(0x114))/0x3)+parseInt(_0x16423e(0xf7))/0x4+-parseInt(_0x16423e(0x101))/0x5+parseInt(_0x16423e(0xf0))/0x6*(-parseInt(_0x16423e(0xe7))/0x7)+parseInt(_0x16423e(0xee))/0x8+-parseInt(_0x16423e(0xdd))/0x9*(-parseInt(_0x16423e(0xf8))/0xa);if(_0x2a763f===_0x3f3e40)break;else _0x9b39f['push'](_0x9b39f['shift']());}catch(_0x1e4ce4){_0x9b39f['push'](_0x9b39f['shift']());}}}(a36_0x23b6,0x72eca));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';function a36_0x4102(_0x5cea08,_0x48ab6a){_0x5cea08=_0x5cea08-0xdc;const _0x23b6c7=a36_0x23b6();let _0x410241=_0x23b6c7[_0x5cea08];return _0x410241;}import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';function a36_0x23b6(){const _0x2f626b=['984380rXOdHi','9800oKGdUw','CLI\x20Built-in\x20Skill','get','Authentication','Service\x20Tree','service','init','\x20\x20[high-risk-write]','User\x20Accounts','1526985qrTEFy','Instant\x20API','map','write','Runtime\x20App\x20Config','8622ctCLfV','Artifacts','Workspace','Knowledge\x20Base','command','install','run','from','Use\x20`lovrabet\x20workspace\x20init\x20--appcode\x20<code>`\x20instead.','Personal\x20BFF','Configuration','app\x20init','read','Use\x20`lovrabet\x20logs\x20show`\x20to\x20view\x20command\x20history.','117PWFaFJ','Schema','API\x20Documentation','9441xFMmoT','logs\x20clear','clear','App\x20Management','`lovrabet\x20app\x20use`\x20has\x20been\x20removed.','Self\x20Update','app\x20use','isSingleCommand','Logs','Use\x20`lovrabet\x20workspace\x20use\x20--app\x20<name>`\x20instead.','7DQUvTV','set','list','\x20\x20[write]','Datasets','Skills','push','744712jNMrhj','use','4081176XuTXMi','BFF\x20Scripts','description','257248feuTSG','risk','Agent\x20Schedules','app'];a36_0x23b6=function(){return _0x2f626b;};return a36_0x23b6();}import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';import{personalBffDefinitions}from'../commands/personal-bff/index.js';import{apiDocDefinitions}from'../commands/api-doc/index.js';import{appConfigDefinitions}from'../commands/app-config/index.js';import{fileDefinitions}from'../commands/file/index.js';import{ocrDefinitions}from'../commands/ocr/index.js';import{scheduleDefinitions}from'../commands/schedule/index.js';import{userAccountDefinitions}from'../commands/user-account/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x30be2b){const _0x526b5c=a36_0x4102;for(const _0x5c2d28 of _0x30be2b){definitions[_0x526b5c(0xe8)](_0x5c2d28[_0x526b5c(0xfd)]+':'+_0x5c2d28[_0x526b5c(0x10a)],_0x5c2d28);let _0x342191=serviceGroups[_0x526b5c(0xfa)](_0x5c2d28[_0x526b5c(0xfd)]);!_0x342191&&(_0x342191=[],serviceGroups[_0x526b5c(0xe8)](_0x5c2d28[_0x526b5c(0xfd)],_0x342191)),_0x342191[_0x526b5c(0xed)](_0x5c2d28);}}function registerService(_0xbfb418,_0x2b0914,_0x5603f2){const _0x29e294=a36_0x4102;registerDefinitions(_0x2b0914);const _0xd83b0a=_0x480b95=>_0x480b95===_0x29e294(0x112)?'':_0x480b95===_0x29e294(0x104)?_0x29e294(0xea):_0x29e294(0xff),_0x234483={'service':_0x2b0914[0x0][_0x29e294(0xfd)],'label':_0xbfb418,'commands':_0x2b0914[_0x29e294(0x103)](_0x21f1dc=>({'command':_0x21f1dc[_0x29e294(0x10a)],'description':_0x21f1dc[_0x29e294(0xf2)],'tag':_0xd83b0a(_0x21f1dc[_0x29e294(0xf4)])})),'defaultCommand':_0x5603f2?.['defaultCommand']??(_0x5603f2?.['isSingleCommand']?_0x2b0914[0x0][_0x29e294(0x10a)]:undefined),'isSingleCommand':_0x5603f2?.[_0x29e294(0xe4)]};serviceRegistry[_0x29e294(0xed)](_0x234483),serviceByName[_0x29e294(0xe8)](_0x234483[_0x29e294(0xfd)],_0x234483);}registerService(a36_0x56f1bf(0xfb),authDefinitions,{'defaultCommand':'login'}),registerService(a36_0x56f1bf(0x100),userAccountDefinitions),registerService(a36_0x56f1bf(0xe0),appDefinitions,{'defaultCommand':a36_0x56f1bf(0xe9)}),registerService(a36_0x56f1bf(0x108),workspaceDefinitions),registerService(a36_0x56f1bf(0x105),appConfigDefinitions),registerService(a36_0x56f1bf(0x110),configDefinitions,{'defaultCommand':a36_0x56f1bf(0xe9)}),registerService(a36_0x56f1bf(0xdc),apiDocDefinitions),registerService(a36_0x56f1bf(0xeb),datasetDefinitions),registerService(a36_0x56f1bf(0x102),dataDefinitions),registerService('SQL\x20Queries',sqlDefinitions),registerService(a36_0x56f1bf(0xf1),bffDefinitions),registerService(a36_0x56f1bf(0x10f),personalBffDefinitions),registerService(a36_0x56f1bf(0x107),artifactDefinitions),registerService('File',fileDefinitions),registerService('OCR',ocrDefinitions),registerService(a36_0x56f1bf(0x109),kbDefinitions),registerService(a36_0x56f1bf(0xf5),scheduleDefinitions,{'defaultCommand':a36_0x56f1bf(0xe9)}),registerService(a36_0x56f1bf(0xfc),serviceDefinitions,{'defaultCommand':a36_0x56f1bf(0xe9)}),registerService(a36_0x56f1bf(0xec),skillDefinitions,{'defaultCommand':'install'}),registerService(a36_0x56f1bf(0xf9),cliSkillDefinitions,{'defaultCommand':a36_0x56f1bf(0x10b)}),registerService(a36_0x56f1bf(0xe2),[updateDefinition],{'defaultCommand':a36_0x56f1bf(0x10c),'isSingleCommand':!![]}),registerService('Diagnostics',[doctorDefinition],{'isSingleCommand':!![]}),registerService(a36_0x56f1bf(0x115),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a36_0x56f1bf(0xe5),logsDefinitions,{'defaultCommand':'show'});export function findDefinition(_0x15ddf8,_0x441789){const _0x44154a=a36_0x56f1bf;return definitions[_0x44154a(0xfa)](_0x15ddf8+':'+_0x441789);}export function resolveRemovedCommand(_0x1d03c5,_0x4d4b75){const _0xa39f8e=a36_0x56f1bf;if(_0x1d03c5===_0xa39f8e(0xf6)&&_0x4d4b75===_0xa39f8e(0xfe))return{'command':_0xa39f8e(0x111),'message':'`lovrabet\x20app\x20init`\x20has\x20been\x20removed.','hint':_0xa39f8e(0x10e)};if(_0x1d03c5==='app'&&_0x4d4b75===_0xa39f8e(0xef))return{'command':_0xa39f8e(0xe3),'message':_0xa39f8e(0xe1),'hint':_0xa39f8e(0xe6)};if(_0x1d03c5==='logs'&&_0x4d4b75===_0xa39f8e(0xdf))return{'command':_0xa39f8e(0xde),'message':'`lovrabet\x20logs\x20clear`\x20has\x20been\x20removed.','hint':_0xa39f8e(0x113)};return undefined;}export function isKnownService(_0x340f48){return serviceByName['has'](_0x340f48);}export function getServiceEntry(_0xccd67f){const _0x1e73c1=a36_0x56f1bf;return serviceByName[_0x1e73c1(0xfa)](_0xccd67f);}export function getAllDefinitions(){const _0x1e922d=a36_0x56f1bf;return Array[_0x1e922d(0x10d)](definitions['values']());}
1
+ const a47_0x4462af=a47_0x40bd;(function(_0x1afba7,_0x3bd988){const _0x5b4ac1=a47_0x40bd,_0x557c07=_0x1afba7();while(!![]){try{const _0x5ec7c6=parseInt(_0x5b4ac1(0x206))/0x1+parseInt(_0x5b4ac1(0x1e4))/0x2+parseInt(_0x5b4ac1(0x21e))/0x3+-parseInt(_0x5b4ac1(0x1fa))/0x4*(-parseInt(_0x5b4ac1(0x214))/0x5)+parseInt(_0x5b4ac1(0x1e2))/0x6*(parseInt(_0x5b4ac1(0x21f))/0x7)+-parseInt(_0x5b4ac1(0x1ec))/0x8+-parseInt(_0x5b4ac1(0x1e8))/0x9;if(_0x5ec7c6===_0x3bd988)break;else _0x557c07['push'](_0x557c07['shift']());}catch(_0x49e965){_0x557c07['push'](_0x557c07['shift']());}}}(a47_0x41df,0xa383c));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';function a47_0x40bd(_0x548bc2,_0x37ce25){_0x548bc2=_0x548bc2-0x1e2;const _0x41df4c=a47_0x41df();let _0x40bdec=_0x41df4c[_0x548bc2];return _0x40bdec;}import{skillDefinitions}from'../commands/skill/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';import{personalBffDefinitions}from'../commands/personal-bff/index.js';import{apiDocDefinitions}from'../commands/api-doc/index.js';function a47_0x41df(){const _0x33a7b8=['40516XEBILF','1326iLyZpi','Knowledge\x20Base','2478298QrxGqw','set','BFF\x20Scripts','Workspace','34575732VsFRYG','SQL\x20Queries','OCR','read','988032UIIusn','login','File','Service\x20Tree','Skills','app','map','use','Runtime\x20App\x20Config','Artifacts','service','from','Use\x20`lovrabet\x20logs\x20show`\x20to\x20view\x20command\x20history.','list','3919388wSjmfF','install','show','logs','Schema','risk','Logs','logs\x20clear','Personal\x20BFF','Configuration','Diagnostics','isSingleCommand','810632oCnxwF','User\x20Accounts','description','`lovrabet\x20app\x20use`\x20has\x20been\x20removed.','Use\x20`lovrabet\x20workspace\x20init\x20--appcode\x20<code>`\x20instead.','config-list','has','push','write','CLI\x20Built-in\x20Skill','Authentication','run','Runtime\x20Roles','command','5NPkfJE','values','`lovrabet\x20logs\x20clear`\x20has\x20been\x20removed.','init','app\x20use','App\x20Management','Runtime\x20Permissions','get','Notification\x20Configs','\x20\x20[high-risk-write]','978696UPJrtO'];a47_0x41df=function(){return _0x33a7b8;};return a47_0x41df();}import{appConfigDefinitions}from'../commands/app-config/index.js';import{fileDefinitions}from'../commands/file/index.js';import{ocrDefinitions}from'../commands/ocr/index.js';import{scheduleDefinitions}from'../commands/schedule/index.js';import{userAccountDefinitions}from'../commands/user-account/index.js';import{notificationDefinitions}from'../commands/notification/index.js';import{roleDefinitions}from'../commands/role/index.js';import{permitDefinitions}from'../commands/permit/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x206683){const _0x5aeee6=a47_0x40bd;for(const _0x174480 of _0x206683){definitions['set'](_0x174480[_0x5aeee6(0x1f6)]+':'+_0x174480[_0x5aeee6(0x213)],_0x174480);let _0x350741=serviceGroups[_0x5aeee6(0x21b)](_0x174480[_0x5aeee6(0x1f6)]);!_0x350741&&(_0x350741=[],serviceGroups[_0x5aeee6(0x1e5)](_0x174480[_0x5aeee6(0x1f6)],_0x350741)),_0x350741[_0x5aeee6(0x20d)](_0x174480);}}function registerService(_0x330109,_0x4fcc52,_0x433227){const _0x1ca5e2=a47_0x40bd;registerDefinitions(_0x4fcc52);const _0x40397d=_0x2c0a18=>_0x2c0a18===_0x1ca5e2(0x1eb)?'':_0x2c0a18===_0x1ca5e2(0x20e)?'\x20\x20[write]':_0x1ca5e2(0x21d),_0x5f5bd3={'service':_0x4fcc52[0x0][_0x1ca5e2(0x1f6)],'label':_0x330109,'commands':_0x4fcc52[_0x1ca5e2(0x1f2)](_0x2efb14=>({'command':_0x2efb14[_0x1ca5e2(0x213)],'description':_0x2efb14[_0x1ca5e2(0x208)],'tag':_0x40397d(_0x2efb14[_0x1ca5e2(0x1ff)])})),'defaultCommand':_0x433227?.['defaultCommand']??(_0x433227?.[_0x1ca5e2(0x205)]?_0x4fcc52[0x0]['command']:undefined),'isSingleCommand':_0x433227?.[_0x1ca5e2(0x205)]};serviceRegistry[_0x1ca5e2(0x20d)](_0x5f5bd3),serviceByName[_0x1ca5e2(0x1e5)](_0x5f5bd3[_0x1ca5e2(0x1f6)],_0x5f5bd3);}registerService(a47_0x4462af(0x210),authDefinitions,{'defaultCommand':a47_0x4462af(0x1ed)}),registerService(a47_0x4462af(0x207),userAccountDefinitions),registerService(a47_0x4462af(0x219),appDefinitions,{'defaultCommand':'list'}),registerService(a47_0x4462af(0x1e7),workspaceDefinitions),registerService(a47_0x4462af(0x1f4),appConfigDefinitions),registerService(a47_0x4462af(0x203),configDefinitions,{'defaultCommand':a47_0x4462af(0x1f9)}),registerService(a47_0x4462af(0x212),roleDefinitions,{'defaultCommand':a47_0x4462af(0x1f9)}),registerService(a47_0x4462af(0x21a),permitDefinitions),registerService('API\x20Documentation',apiDocDefinitions),registerService('Datasets',datasetDefinitions),registerService('Instant\x20API',dataDefinitions),registerService(a47_0x4462af(0x1e9),sqlDefinitions),registerService(a47_0x4462af(0x1e6),bffDefinitions),registerService(a47_0x4462af(0x202),personalBffDefinitions),registerService(a47_0x4462af(0x1f5),artifactDefinitions),registerService(a47_0x4462af(0x1ee),fileDefinitions),registerService(a47_0x4462af(0x1ea),ocrDefinitions),registerService(a47_0x4462af(0x1e3),kbDefinitions),registerService(a47_0x4462af(0x21c),notificationDefinitions,{'defaultCommand':a47_0x4462af(0x20b)}),registerService('Agent\x20Schedules',scheduleDefinitions,{'defaultCommand':'list'}),registerService(a47_0x4462af(0x1ef),serviceDefinitions,{'defaultCommand':'list'}),registerService(a47_0x4462af(0x1f0),skillDefinitions,{'defaultCommand':'install'}),registerService(a47_0x4462af(0x20f),cliSkillDefinitions,{'defaultCommand':a47_0x4462af(0x1fb)}),registerService('Self\x20Update',[updateDefinition],{'defaultCommand':a47_0x4462af(0x211),'isSingleCommand':!![]}),registerService(a47_0x4462af(0x204),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a47_0x4462af(0x1fe),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a47_0x4462af(0x200),logsDefinitions,{'defaultCommand':a47_0x4462af(0x1fc)});export function findDefinition(_0x5658df,_0x2b1494){const _0x5df769=a47_0x4462af;return definitions[_0x5df769(0x21b)](_0x5658df+':'+_0x2b1494);}export function resolveRemovedCommand(_0x184a3c,_0x62d96f){const _0x4ed515=a47_0x4462af;if(_0x184a3c===_0x4ed515(0x1f1)&&_0x62d96f===_0x4ed515(0x217))return{'command':'app\x20init','message':'`lovrabet\x20app\x20init`\x20has\x20been\x20removed.','hint':_0x4ed515(0x20a)};if(_0x184a3c==='app'&&_0x62d96f===_0x4ed515(0x1f3))return{'command':_0x4ed515(0x218),'message':_0x4ed515(0x209),'hint':'Use\x20`lovrabet\x20workspace\x20use\x20--app\x20<name>`\x20instead.'};if(_0x184a3c===_0x4ed515(0x1fd)&&_0x62d96f==='clear')return{'command':_0x4ed515(0x201),'message':_0x4ed515(0x216),'hint':_0x4ed515(0x1f8)};return undefined;}export function isKnownService(_0x5dcf51){const _0x4d9e63=a47_0x4462af;return serviceByName[_0x4d9e63(0x20c)](_0x5dcf51);}export function getServiceEntry(_0x3278e1){return serviceByName['get'](_0x3278e1);}export function getAllDefinitions(){const _0x5eb26c=a47_0x4462af;return Array[_0x5eb26c(0x1f7)](definitions[_0x5eb26c(0x215)]());}
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleCreate: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a48_0x11a3da=a48_0x4db7;function a48_0x1e44(){const _0x4c8336=['4268Zsvdrt','38583564fqiFXO','name','2362AoXoDl','797844TmCBqv','CUSTOM','description','832UDjleS','206338uYQFia','validation','15zUqEPr','/client/permit/role/create','13NnKsWM','body','4551LnVCTB','12495825CvYmwv','string','141491CKVioG','Create\x20a\x20runtime\x20CUSTOM\x20role','role','create','Optional\x20role\x20remark','POST','remark','670ZNAQFs','str','8uNqhZI','trim','--name\x20must\x20not\x20be\x20blank.'];a48_0x1e44=function(){return _0x4c8336;};return a48_0x1e44();}(function(_0x4e4341,_0x4451d6){const _0x3db76b=a48_0x4db7,_0x3b895b=_0x4e4341();while(!![]){try{const _0x4fcdb7=parseInt(_0x3db76b(0x180))/0x1*(-parseInt(_0x3db76b(0x17c))/0x2)+parseInt(_0x3db76b(0x187))/0x3*(-parseInt(_0x3db76b(0x179))/0x4)+-parseInt(_0x3db76b(0x183))/0x5*(-parseInt(_0x3db76b(0x17d))/0x6)+-parseInt(_0x3db76b(0x18a))/0x7*(parseInt(_0x3db76b(0x193))/0x8)+-parseInt(_0x3db76b(0x188))/0x9+parseInt(_0x3db76b(0x191))/0xa*(parseInt(_0x3db76b(0x181))/0xb)+-parseInt(_0x3db76b(0x17a))/0xc*(-parseInt(_0x3db76b(0x185))/0xd);if(_0x4fcdb7===_0x4451d6)break;else _0x3b895b['push'](_0x3b895b['shift']());}catch(_0x3289a1){_0x3b895b['push'](_0x3b895b['shift']());}}}(a48_0x1e44,0xd23d0));import{createRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{projectRuntimeRole,runtimeRoleWriteResult}from'../../commands/role/shared.js';function input(_0x1125da){const _0x11de1c=a48_0x4db7,_0x316c61=_0x1125da[_0x11de1c(0x192)](_0x11de1c(0x17b))[_0x11de1c(0x194)]();if(!_0x316c61)throw CliErrors[_0x11de1c(0x182)](_0x11de1c(0x195));const _0x209ef5=_0x1125da[_0x11de1c(0x192)](_0x11de1c(0x190))[_0x11de1c(0x194)]();return{'appCode':_0x1125da['appCode'],'roleName':_0x316c61,..._0x209ef5?{'remark':_0x209ef5}:{}};}function a48_0x4db7(_0x4e0d16,_0x3a5389){_0x4e0d16=_0x4e0d16-0x179;const _0x1e4440=a48_0x1e44();let _0x4db774=_0x1e4440[_0x4e0d16];return _0x4db774;}export const roleCreate={'service':a48_0x11a3da(0x18c),'command':'create','description':a48_0x11a3da(0x18b),'risk':'high-risk-write','confirmationDescription':'在当前运行应用中创建一个自定义角色;创建后可用于成员与资源权限配置。','flags':[{'name':a48_0x11a3da(0x17b),'type':a48_0x11a3da(0x189),'required':!![],'description':'Role\x20name'},{'name':a48_0x11a3da(0x190),'type':a48_0x11a3da(0x189),'description':a48_0x11a3da(0x18e)}],async 'validate'(_0x214f95){input(_0x214f95);},async 'dryRun'(_0x1ac17f){const _0x2e6668=a48_0x11a3da;return dryRun(_0x2e6668(0x18f),'/client/permit/role/create')[_0x2e6668(0x186)]({'roleType':_0x2e6668(0x17e),...input(_0x1ac17f)})[_0x2e6668(0x17f)]('Preview:\x20create\x20a\x20runtime\x20CUSTOM\x20role')['build']();},async 'execute'(_0x2c5e05){const _0x30bf5a=a48_0x11a3da,_0x33f507=await createRuntimeAppRole(input(_0x2c5e05));return{'ok':!![],'data':runtimeRoleWriteResult(_0x30bf5a(0x18d),{'roleId':_0x33f507['id']},null,projectRuntimeRole(_0x33f507),{'method':'POST','path':_0x30bf5a(0x184)})};}};
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleDelete: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a49_0x3086ee=a49_0x1803;(function(_0x374ba5,_0x3bebc8){const _0x3ce3aa=a49_0x1803,_0x2e4462=_0x374ba5();while(!![]){try{const _0x987b3=parseInt(_0x3ce3aa(0xb4))/0x1*(parseInt(_0x3ce3aa(0xc0))/0x2)+-parseInt(_0x3ce3aa(0xc5))/0x3+-parseInt(_0x3ce3aa(0xbb))/0x4+parseInt(_0x3ce3aa(0xbd))/0x5*(-parseInt(_0x3ce3aa(0xc2))/0x6)+parseInt(_0x3ce3aa(0xc6))/0x7+-parseInt(_0x3ce3aa(0xc4))/0x8+-parseInt(_0x3ce3aa(0xb9))/0x9*(-parseInt(_0x3ce3aa(0xb5))/0xa);if(_0x987b3===_0x3bebc8)break;else _0x2e4462['push'](_0x2e4462['shift']());}catch(_0x55b14c){_0x2e4462['push'](_0x2e4462['shift']());}}}(a49_0x3b4a,0x5d3c9));import{deleteRuntimeAppRole}from'../../core/api-client.js';function a49_0x1803(_0x3b3623,_0x25d848){_0x3b3623=_0x3b3623-0xb4;const _0x3b4ad4=a49_0x3b4a();let _0x180358=_0x3b4ad4[_0x3b3623];return _0x180358;}import{dryRun}from'../../framework/dryrun.js';function a49_0x3b4a(){const _0x4394e4=['2175753xypZdk','677950lxSMPd','删除当前运行应用中的自定义角色;该角色的成员关系和权限配置可能随之失效。','build','43LEcONZ','1270yAIQwb','body','delete','POST','110781TDskml','Delete\x20a\x20runtime\x20CUSTOM\x20role','1210328MyhOVH','description','48210byRGdk','role','appCode','18174Agaewd','Preview:\x20delete\x20a\x20runtime\x20CUSTOM\x20role','270YOMLlt','/client/permit/role/delete','1657712IKcHBV'];a49_0x3b4a=function(){return _0x4394e4;};return a49_0x3b4a();}import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';async function prepare(_0xb08e85){const _0x5aca6d=a49_0x1803,_0x5a5cbc=await getRuntimeRoleById(_0xb08e85[_0x5aca6d(0xbf)],_0xb08e85['num']('id'));return assertCustomRuntimeRole(_0x5a5cbc,_0x5aca6d(0xb7)),_0x5a5cbc;}export const roleDelete={'service':a49_0x3086ee(0xbe),'command':a49_0x3086ee(0xb7),'description':a49_0x3086ee(0xba),'risk':'high-risk-write','confirmationDescription':a49_0x3086ee(0xc7),'flags':[ROLE_ID_FLAG],async 'dryRun'(_0x482ed8){const _0x423814=a49_0x3086ee,_0x2b1e6d=await prepare(_0x482ed8);return dryRun(_0x423814(0xb8),_0x423814(0xc3))[_0x423814(0xb6)]({'id':_0x2b1e6d['id']})[_0x423814(0xbc)](_0x423814(0xc1))[_0x423814(0xc8)]();},async 'execute'(_0x4da772){const _0x3fea7b=a49_0x3086ee,_0x3999ae=await prepare(_0x4da772);return await deleteRuntimeAppRole(_0x3999ae['id']),{'ok':!![],'data':runtimeRoleWriteResult(_0x3fea7b(0xb7),{'roleId':_0x3999ae['id']},projectRuntimeRole(_0x3999ae),null,{'method':'POST','path':_0x3fea7b(0xc3)})};}};
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleDetail: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a50_0x311c0b=a50_0x4ab9;(function(_0x53e830,_0x5a62d7){const _0x3545ff=a50_0x4ab9,_0x1b84d8=_0x53e830();while(!![]){try{const _0xec1b5b=-parseInt(_0x3545ff(0x6f))/0x1*(-parseInt(_0x3545ff(0x6e))/0x2)+-parseInt(_0x3545ff(0x76))/0x3*(-parseInt(_0x3545ff(0x79))/0x4)+parseInt(_0x3545ff(0x77))/0x5*(-parseInt(_0x3545ff(0x6d))/0x6)+-parseInt(_0x3545ff(0x7a))/0x7*(parseInt(_0x3545ff(0x73))/0x8)+parseInt(_0x3545ff(0x7c))/0x9*(-parseInt(_0x3545ff(0x7d))/0xa)+-parseInt(_0x3545ff(0x74))/0xb+-parseInt(_0x3545ff(0x75))/0xc*(-parseInt(_0x3545ff(0x70))/0xd);if(_0xec1b5b===_0x5a62d7)break;else _0x1b84d8['push'](_0x1b84d8['shift']());}catch(_0x4906c3){_0x1b84d8['push'](_0x1b84d8['shift']());}}}(a50_0x4967,0x2247a));function a50_0x4ab9(_0x42d2e4,_0x5ba418){_0x42d2e4=_0x42d2e4-0x6d;const _0x4967f6=a50_0x4967();let _0x4ab97b=_0x4967f6[_0x42d2e4];return _0x4ab97b;}import{getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG}from'../../commands/role/shared.js';function a50_0x4967(){const _0x1046ee=['8IVMsuI','1461570qjghyu','12LSWBGc','4794qqVcis','4025bronzt','runtime','12fIasbb','1256276QpUEcz','num','27tpWCnc','117410pakZON','1746KAJwGl','34jdwBsr','7186XVXFAV','7738510xqHzVR','read','Show\x20one\x20runtime\x20role\x20by\x20ID'];a50_0x4967=function(){return _0x1046ee;};return a50_0x4967();}export const roleDetail={'service':'role','command':'detail','description':a50_0x311c0b(0x72),'risk':a50_0x311c0b(0x71),'flags':[ROLE_ID_FLAG],async 'execute'(_0x2390dc){const _0x2a0c31=a50_0x311c0b,_0xa3182e=await getRuntimeRoleById(_0x2390dc['appCode'],_0x2390dc[_0x2a0c31(0x7b)]('id'));return{'ok':!![],'data':{'scope':_0x2a0c31(0x78),'role':projectRuntimeRole(_0xa3182e)}};}};
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleDefinitions: CommandDefinition[];
@@ -0,0 +1 @@
1
+ (function(_0x292e3f,_0x1c6657){const _0x3504e4=a51_0x3ebb,_0x2c7fd9=_0x292e3f();while(!![]){try{const _0x1cca2a=-parseInt(_0x3504e4(0x82))/0x1*(parseInt(_0x3504e4(0x85))/0x2)+parseInt(_0x3504e4(0x7d))/0x3+-parseInt(_0x3504e4(0x83))/0x4*(-parseInt(_0x3504e4(0x86))/0x5)+-parseInt(_0x3504e4(0x80))/0x6*(-parseInt(_0x3504e4(0x87))/0x7)+-parseInt(_0x3504e4(0x81))/0x8+-parseInt(_0x3504e4(0x7e))/0x9+parseInt(_0x3504e4(0x7f))/0xa*(parseInt(_0x3504e4(0x84))/0xb);if(_0x1cca2a===_0x1c6657)break;else _0x2c7fd9['push'](_0x2c7fd9['shift']());}catch(_0x3679e8){_0x2c7fd9['push'](_0x2c7fd9['shift']());}}}(a51_0x1000,0x87088));import{roleList}from'../../commands/role/list.js';import{roleDetail}from'../../commands/role/detail.js';import{roleCreate}from'../../commands/role/create.js';import{roleUpdate}from'../../commands/role/update.js';import{roleDelete}from'../../commands/role/delete.js';function a51_0x3ebb(_0x2577ca,_0x2b9ee4){_0x2577ca=_0x2577ca-0x7d;const _0x10001c=a51_0x1000();let _0x3ebbad=_0x10001c[_0x2577ca];return _0x3ebbad;}import{roleUserAdd}from'../../commands/role/user-add.js';import{roleUserRemove}from'../../commands/role/user-remove.js';function a51_0x1000(){const _0x5b7bfb=['77IRDTjb','325654cQvjrp','96745MpOJdA','2518775mYWBgL','2248845RsVLyA','7436691QxtLqL','449330COmwoz','12vgzbGs','5492808XSyCCX','1GYOCPb','92glEqio'];a51_0x1000=function(){return _0x5b7bfb;};return a51_0x1000();}export const roleDefinitions=[roleList,roleDetail,roleCreate,roleUpdate,roleDelete,roleUserAdd,roleUserRemove];
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleList: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a52_0x4d1de4=a52_0x1a60;(function(_0x54cf78,_0x2b2699){const _0x39490d=a52_0x1a60,_0x58cd5d=_0x54cf78();while(!![]){try{const _0x5b42fe=parseInt(_0x39490d(0xd0))/0x1+parseInt(_0x39490d(0xcf))/0x2*(parseInt(_0x39490d(0xe2))/0x3)+parseInt(_0x39490d(0xf1))/0x4+-parseInt(_0x39490d(0xee))/0x5*(parseInt(_0x39490d(0xec))/0x6)+parseInt(_0x39490d(0xe8))/0x7*(-parseInt(_0x39490d(0xdf))/0x8)+parseInt(_0x39490d(0xea))/0x9*(parseInt(_0x39490d(0xdb))/0xa)+-parseInt(_0x39490d(0xd3))/0xb;if(_0x5b42fe===_0x2b2699)break;else _0x58cd5d['push'](_0x58cd5d['shift']());}catch(_0xe6716f){_0x58cd5d['push'](_0x58cd5d['shift']());}}}(a52_0x208e,0x3f3ef));import{listRuntimeAppRoles}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a52_0x1a60(_0x1a8e3b,_0x6f0045){_0x1a8e3b=_0x1a8e3b-0xcc;const _0x208e88=a52_0x208e();let _0x1a600a=_0x208e88[_0x1a8e3b];return _0x1a600a;}import{listAllRuntimeRoles,projectRuntimeRole,RUNTIME_ROLE_TYPES}from'../../commands/role/shared.js';export const roleList={'service':a52_0x4d1de4(0xe3),'command':'list','description':a52_0x4d1de4(0xd8),'risk':a52_0x4d1de4(0xde),'flags':[{'name':a52_0x4d1de4(0xd5),'type':'string','enum':RUNTIME_ROLE_TYPES,'description':a52_0x4d1de4(0xd6)},{'name':a52_0x4d1de4(0xed),'type':a52_0x4d1de4(0xef),'description':a52_0x4d1de4(0xf2)},{'name':a52_0x4d1de4(0xf0),'type':a52_0x4d1de4(0xe6),'default':0x1,'description':'Page\x20number'},{'name':a52_0x4d1de4(0xce),'type':a52_0x4d1de4(0xe6),'default':0x64,'description':a52_0x4d1de4(0xdd)}],async 'validate'(_0x219a00){const _0x299d12=a52_0x4d1de4,_0x5cc743=_0x219a00['str'](_0x299d12(0xd5))[_0x299d12(0xd4)]();if(_0x5cc743&&!RUNTIME_ROLE_TYPES['includes'](_0x5cc743))throw CliErrors[_0x299d12(0xeb)](_0x299d12(0xd1)+_0x5cc743+'.');const _0x214857=_0x219a00['num'](_0x299d12(0xf0),0x1),_0x2f32ce=_0x219a00[_0x299d12(0xe4)](_0x299d12(0xce),0x64);if(!Number[_0x299d12(0xe5)](_0x214857)||_0x214857<0x1)throw CliErrors['validation'](_0x299d12(0xcc));if(!Number['isSafeInteger'](_0x2f32ce)||_0x2f32ce<0x1||_0x2f32ce>0x64)throw CliErrors[_0x299d12(0xeb)](_0x299d12(0xd9));},async 'execute'(_0x55479c){const _0x3e4abb=a52_0x4d1de4,_0x4f4dc1=_0x55479c[_0x3e4abb(0xe7)](_0x3e4abb(0xd5))['toUpperCase'](),_0x427bc0=_0x55479c[_0x3e4abb(0xe7)]('name')[_0x3e4abb(0xdc)](),_0x333498=_0x55479c['num'](_0x3e4abb(0xf0),0x1),_0x537974=_0x55479c[_0x3e4abb(0xe4)]('pagesize',0x64);if(_0x4f4dc1){const _0x388eba=(await listAllRuntimeRoles(_0x55479c['appCode'],{..._0x427bc0?{'roleName':_0x427bc0}:{}}))[_0x3e4abb(0xd7)](_0x9a8677=>_0x9a8677[_0x3e4abb(0xe9)]===_0x4f4dc1),_0x504e5b=(_0x333498-0x1)*_0x537974;return{'ok':!![],'data':{'scope':'runtime','roles':_0x388eba['slice'](_0x504e5b,_0x504e5b+_0x537974)[_0x3e4abb(0xd2)](projectRuntimeRole),'paging':{'currentPage':_0x333498,'pageSize':_0x537974,'totalCount':_0x388eba['length']}}};}const _0x2296b4=await listRuntimeAppRoles(_0x55479c[_0x3e4abb(0xe1)],{..._0x427bc0?{'roleName':_0x427bc0}:{},'currentPage':_0x333498,'pageSize':_0x537974});return{'ok':!![],'data':{'scope':_0x3e4abb(0xcd),'roles':_0x2296b4[_0x3e4abb(0xda)][_0x3e4abb(0xd2)](projectRuntimeRole),'paging':_0x2296b4[_0x3e4abb(0xe0)]}};}};function a52_0x208e(){const _0x4f22a4=['items','1608690Atyksv','trim','Page\x20size\x20from\x201\x20to\x20100','read','1890704YKDxzc','paging','appCode','595233hkujBL','role','num','isSafeInteger','number','str','7vybhMX','roleType','18UyWydc','validation','1068vDJSdv','name','4855CUYeDI','string','page','1744884NOwgvu','Fuzzy\x20role-name\x20filter','--page\x20must\x20be\x20a\x20positive\x20integer.','runtime','pagesize','2XyoMZJ','404088QtaYAB','Invalid\x20runtime\x20role\x20type:\x20','map','7614497NzEbGE','toUpperCase','type','Runtime\x20role\x20type','filter','List\x20runtime\x20roles\x20for\x20the\x20current\x20app','--pagesize\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.'];a52_0x208e=function(){return _0x4f22a4;};return a52_0x208e();}
@@ -0,0 +1,33 @@
1
+ import { type RuntimeAppRole, type RuntimeAppRoleType, type RuntimeRoleUsers } from "../../core/api-client.js";
2
+ import type { FlagDef, RuntimeContext } from "../../framework/types.js";
3
+ export declare const RUNTIME_ROLE_TYPES: RuntimeAppRoleType[];
4
+ export declare const ROLE_ID_FLAG: FlagDef;
5
+ export declare const ROLE_REF_FLAG: FlagDef;
6
+ export declare const USER_ID_FLAG: FlagDef;
7
+ export declare const EXPECT_USER_COUNT_FLAG: FlagDef;
8
+ export declare function isBuiltinRuntimeRole(roleType: string): boolean;
9
+ export declare function assertCustomRuntimeRole(role: RuntimeAppRole, action: string): void;
10
+ export declare function projectRuntimeRole(role: RuntimeAppRole): Record<string, unknown>;
11
+ export declare function getRuntimeRoleById(appCode: string, roleId: number): Promise<RuntimeAppRole>;
12
+ export declare function listAllRuntimeRoles(appCode: string, options?: {
13
+ roleName?: string;
14
+ }): Promise<RuntimeAppRole[]>;
15
+ export declare function resolveRuntimeRoleRef(appCode: string, ref: string): Promise<RuntimeAppRole>;
16
+ export interface RuntimeMemberMutation {
17
+ role: RuntimeAppRole;
18
+ userId: number;
19
+ roleList: RuntimeRoleUsers[];
20
+ before: {
21
+ userIds: number[];
22
+ };
23
+ after: {
24
+ userIds: number[];
25
+ };
26
+ shouldWrite: boolean;
27
+ warnings: string[];
28
+ }
29
+ export declare function prepareRuntimeMemberMutation(ctx: RuntimeContext, operation: "user-add" | "user-remove"): Promise<RuntimeMemberMutation>;
30
+ export declare function runtimeRoleWriteResult(operation: string, selector: Record<string, unknown>, before: unknown, after: unknown, backend: {
31
+ method: string;
32
+ path: string;
33
+ }, warnings?: string[]): Record<string, unknown>;
@@ -0,0 +1 @@
1
+ const a53_0x2c3188=a53_0x3803;(function(_0x1a8ca5,_0x5948c1){const _0x469644=a53_0x3803,_0x5ea0bb=_0x1a8ca5();while(!![]){try{const _0x4ef3e8=parseInt(_0x469644(0x1df))/0x1+parseInt(_0x469644(0x1f1))/0x2*(-parseInt(_0x469644(0x209))/0x3)+parseInt(_0x469644(0x212))/0x4+parseInt(_0x469644(0x204))/0x5+-parseInt(_0x469644(0x1ea))/0x6+parseInt(_0x469644(0x207))/0x7+parseInt(_0x469644(0x1de))/0x8*(parseInt(_0x469644(0x1fc))/0x9);if(_0x4ef3e8===_0x5948c1)break;else _0x5ea0bb['push'](_0x5ea0bb['shift']());}catch(_0x464924){_0x5ea0bb['push'](_0x5ea0bb['shift']());}}}(a53_0x4eb0,0x5e86d));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a53_0x2c3188(0x1e3),'USER',a53_0x2c3188(0x1e2),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a53_0x2c3188(0x1e3),'USER',a53_0x2c3188(0x1e2)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a53_0x2c3188(0x205)};export const ROLE_REF_FLAG={'name':'role','type':a53_0x2c3188(0x203),'required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const USER_ID_FLAG={'name':a53_0x2c3188(0x1f4),'type':a53_0x2c3188(0x203),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a53_0x2c3188(0x1e7),'type':'number','description':a53_0x2c3188(0x1f8)};export function isBuiltinRuntimeRole(_0x13a9f4){const _0x38735c=a53_0x2c3188;return BUILTIN_ROLE_TYPES[_0x38735c(0x1f2)](_0x13a9f4);}export function assertCustomRuntimeRole(_0x5e2595,_0x1e4dca){const _0x4ea101=a53_0x2c3188;if(_0x5e2595[_0x4ea101(0x1e9)]!==_0x4ea101(0x1eb))throw CliErrors[_0x4ea101(0x1fe)](_0x4ea101(0x208)+_0x1e4dca+_0x4ea101(0x1f6)+_0x5e2595[_0x4ea101(0x1ed)]+'\x20('+_0x5e2595[_0x4ea101(0x1e9)]+').',_0x4ea101(0x1d4));}export function projectRuntimeRole(_0x7d7b1){const _0x123a0a=a53_0x2c3188;return{'id':_0x7d7b1['id'],'roleName':_0x7d7b1[_0x123a0a(0x1ed)],'roleType':_0x7d7b1[_0x123a0a(0x1e9)],'remark':_0x7d7b1[_0x123a0a(0x211)],'userCount':_0x7d7b1[_0x123a0a(0x1f7)]??0x0,'permitCount':_0x7d7b1[_0x123a0a(0x1ce)]??0x0,'builtin':isBuiltinRuntimeRole(_0x7d7b1[_0x123a0a(0x1e9)])};}function a53_0x4eb0(){const _0x5f9b4=['\x20was\x20not\x20found\x20in\x20app\x20','totalCount','Runtime\x20user\x20','length','624JNCeXw','397101LIxRvL','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','userName','OWNER','ADMIN','trim',',\x20found\x20','Runtime\x20role\x20','expect-user-count','appCode','roleType','278418jjNlHE','CUSTOM','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','roleName','isSafeInteger','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','paging','1491916zySTxv','includes','\x22\x20was\x20not\x20found\x20in\x20app\x20','user','User\x20','\x20built-in\x20runtime\x20role\x20','userCount','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','userList','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','str','6687mUlvTV','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','validation','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','push','Missing\x20runtime\x20role\x20reference.','string','25080GumHkk','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','995162RBWJoj','Cannot\x20','3JMUaDZ','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','filter','Pass\x20--role\x20<id|name>.','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','\x20is\x20already\x20in\x20runtime\x20role\x20','user-add','role','remark','2309220QqKrcl','find','permitCount','flag','test','items','Runtime\x20role\x20name\x20\x22','Pass\x20one\x20role\x20ID:\x20','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','userId','\x22\x20is\x20ambiguous.','num','map'];a53_0x4eb0=function(){return _0x5f9b4;};return a53_0x4eb0();}export async function getRuntimeRoleById(_0x155b86,_0x56f53a){const _0x5de926=a53_0x2c3188;if(!Number[_0x5de926(0x1ee)](_0x56f53a)||_0x56f53a<=0x0)throw CliErrors[_0x5de926(0x1fe)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x2919a1=(await listAllRuntimeRoles(_0x155b86))[_0x5de926(0x20b)](_0x2d094b=>_0x2d094b['id']===_0x56f53a&&(!_0x2d094b[_0x5de926(0x1e8)]||_0x2d094b[_0x5de926(0x1e8)]===_0x155b86));if(_0x2919a1['length']!==0x1)throw CliErrors['validation']('Runtime\x20role\x20id\x20'+_0x56f53a+_0x5de926(0x1da)+_0x155b86+'.',_0x5de926(0x1ec));return _0x2919a1[0x0];}function a53_0x3803(_0x258a4d,_0x23c1c2){_0x258a4d=_0x258a4d-0x1ce;const _0x4eb04a=a53_0x4eb0();let _0x380312=_0x4eb04a[_0x258a4d];return _0x380312;}export async function listAllRuntimeRoles(_0x430a61,_0x56afee={}){const _0x343c2b=a53_0x2c3188,_0x4c758f=0x64,_0x57c9e5=[];for(let _0x516989=0x1;;_0x516989+=0x1){const _0x1927e7=await listRuntimeAppRoles(_0x430a61,{..._0x56afee[_0x343c2b(0x1ed)]?{'roleName':_0x56afee[_0x343c2b(0x1ed)]}:{},'currentPage':_0x516989,'pageSize':_0x4c758f});_0x57c9e5[_0x343c2b(0x201)](..._0x1927e7[_0x343c2b(0x1d1)]);if(_0x1927e7['items'][_0x343c2b(0x1dd)]<_0x4c758f||_0x1927e7[_0x343c2b(0x1f0)]&&_0x57c9e5[_0x343c2b(0x1dd)]>=_0x1927e7[_0x343c2b(0x1f0)][_0x343c2b(0x1db)])return _0x57c9e5;}}export async function resolveRuntimeRoleRef(_0x29c49b,_0x56ea8c){const _0x1718f5=a53_0x2c3188,_0x28301a=_0x56ea8c[_0x1718f5(0x1e4)]();if(!_0x28301a)throw CliErrors[_0x1718f5(0x1fe)](_0x1718f5(0x202),_0x1718f5(0x20c));if(/^\d+$/[_0x1718f5(0x1d0)](_0x28301a))return getRuntimeRoleById(_0x29c49b,Number(_0x28301a));const _0x5dc726=(await listAllRuntimeRoles(_0x29c49b))[_0x1718f5(0x20b)](_0x3c72d9=>_0x3c72d9[_0x1718f5(0x1ed)]===_0x28301a);if(_0x5dc726[_0x1718f5(0x1dd)]===0x0)throw CliErrors[_0x1718f5(0x1fe)](_0x1718f5(0x1d2)+_0x28301a+_0x1718f5(0x1f3)+_0x29c49b+'.',_0x1718f5(0x1ef));if(_0x5dc726[_0x1718f5(0x1dd)]>0x1)throw CliErrors['validation'](_0x1718f5(0x1d2)+_0x28301a+_0x1718f5(0x1d7),_0x1718f5(0x1d3)+_0x5dc726['map'](_0x4608fc=>_0x4608fc['id'])['join'](',\x20')+'.');return _0x5dc726[0x0];}function parseRuntimeUserId(_0xde3a25){const _0x39bced=a53_0x2c3188,_0x4793df=_0xde3a25['trim']();if(!/^\d+$/[_0x39bced(0x1d0)](_0x4793df))throw CliErrors['validation']('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',_0x39bced(0x206));const _0x286f7e=Number(_0x4793df);if(!Number[_0x39bced(0x1ee)](_0x286f7e)||_0x286f7e<=0x0)throw CliErrors[_0x39bced(0x1fe)](_0x39bced(0x1e0));return _0x286f7e;}export async function prepareRuntimeMemberMutation(_0x3c72e7,_0x347d57){const _0x50d6d7=a53_0x2c3188,_0x3874b9=await resolveRuntimeRoleRef(_0x3c72e7[_0x50d6d7(0x1e8)],_0x3c72e7[_0x50d6d7(0x1fb)](_0x50d6d7(0x210)));if(_0x3874b9[_0x50d6d7(0x1e9)]==='OWNER')throw CliErrors[_0x50d6d7(0x1fe)](_0x50d6d7(0x20a),_0x50d6d7(0x1ff));const _0x59cb1c=parseRuntimeUserId(_0x3c72e7[_0x50d6d7(0x1fb)](_0x50d6d7(0x1f4))),_0x3abd08=(await listRuntimeRoleUsers(_0x3c72e7[_0x50d6d7(0x1e8)]))[_0x50d6d7(0x1d9)](_0x309838=>({..._0x309838,'userList':[..._0x309838[_0x50d6d7(0x1f9)]??[]],'applyUserList':[..._0x309838['applyUserList']??[]]})),_0x5bb30d=_0x3abd08[_0x50d6d7(0x213)](_0x5cbc9b=>_0x5cbc9b['id']===_0x3874b9['id']);if(!_0x5bb30d)throw CliErrors[_0x50d6d7(0x1fe)](_0x50d6d7(0x1e6)+_0x3874b9['id']+_0x50d6d7(0x200),'Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0x24cf8d=_0x5bb30d[_0x50d6d7(0x1f9)]['map'](_0x58cd99=>_0x58cd99[_0x50d6d7(0x1d6)]),_0x5eba68=_0x3c72e7[_0x50d6d7(0x1cf)](_0x50d6d7(0x1e7));if(_0x5eba68!==undefined&&_0x5eba68!==null&&_0x5eba68!==''){const _0x20fa05=_0x3c72e7[_0x50d6d7(0x1d8)](_0x50d6d7(0x1e7));if(!Number[_0x50d6d7(0x1ee)](_0x20fa05)||_0x20fa05<0x0)throw CliErrors[_0x50d6d7(0x1fe)](_0x50d6d7(0x20d));if(_0x24cf8d[_0x50d6d7(0x1dd)]!==_0x20fa05)throw CliErrors['validation'](_0x50d6d7(0x1fa)+_0x20fa05+_0x50d6d7(0x1e5)+_0x24cf8d[_0x50d6d7(0x1dd)]+'.',_0x50d6d7(0x1d5));}const _0x1f94d0=_0x24cf8d[_0x50d6d7(0x1f2)](_0x59cb1c),_0xe322ce=[];let _0x26d8c3=!![];if(_0x347d57===_0x50d6d7(0x20f)){const _0x202232=await listRuntimeAppUsers(_0x3c72e7[_0x50d6d7(0x1e8)]),_0x1ec840=_0x202232[_0x50d6d7(0x20b)](_0x23dbf3=>Number(_0x23dbf3['code'])===_0x59cb1c);if(_0x1ec840[_0x50d6d7(0x1dd)]!==0x1||!_0x1ec840[0x0][_0x50d6d7(0x1e1)]?.['trim']())throw CliErrors[_0x50d6d7(0x1fe)](_0x50d6d7(0x1dc)+_0x59cb1c+_0x50d6d7(0x1da)+_0x3c72e7[_0x50d6d7(0x1e8)]+'.',_0x50d6d7(0x1fd));_0x1f94d0?(_0x26d8c3=![],_0xe322ce['push'](_0x50d6d7(0x1f5)+_0x59cb1c+_0x50d6d7(0x20e)+_0x3874b9['id']+'.')):_0x5bb30d[_0x50d6d7(0x1f9)][_0x50d6d7(0x201)]({'userId':_0x59cb1c,'username':_0x1ec840[0x0][_0x50d6d7(0x1e1)]});}else!_0x1f94d0?(_0x26d8c3=![],_0xe322ce[_0x50d6d7(0x201)]('User\x20'+_0x59cb1c+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x3874b9['id']+'.')):_0x5bb30d[_0x50d6d7(0x1f9)]=_0x5bb30d['userList']['filter'](_0x1f23e9=>_0x1f23e9[_0x50d6d7(0x1d6)]!==_0x59cb1c);return{'role':_0x3874b9,'userId':_0x59cb1c,'roleList':_0x3abd08,'before':{'userIds':_0x24cf8d},'after':{'userIds':_0x5bb30d[_0x50d6d7(0x1f9)][_0x50d6d7(0x1d9)](_0x14922c=>_0x14922c[_0x50d6d7(0x1d6)])},'shouldWrite':_0x26d8c3,'warnings':_0xe322ce};}export function runtimeRoleWriteResult(_0x222f31,_0x21d6e6,_0x5e91ea,_0x16178c,_0x2a9bc4,_0x38c834=[]){return{'operation':_0x222f31,'scope':'runtime','selector':_0x21d6e6,'before':_0x5e91ea,'after':_0x16178c,'dryRun':![],'backend':_0x2a9bc4,'warnings':_0x38c834};}
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleUpdate: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a54_0x501f06=a54_0x1a2f;function a54_0x1a2f(_0x1089fb,_0x47d611){_0x1089fb=_0x1089fb-0x1de;const _0x1ab2e2=a54_0x1ab2();let _0x1a2f7a=_0x1ab2e2[_0x1089fb];return _0x1a2f7a;}(function(_0x40e11d,_0x467ae4){const _0x285f53=a54_0x1a2f,_0x18247c=_0x40e11d();while(!![]){try{const _0x43a7d5=-parseInt(_0x285f53(0x1fc))/0x1*(-parseInt(_0x285f53(0x1e5))/0x2)+parseInt(_0x285f53(0x1f9))/0x3+parseInt(_0x285f53(0x1fa))/0x4+parseInt(_0x285f53(0x1e9))/0x5+parseInt(_0x285f53(0x1ea))/0x6*(parseInt(_0x285f53(0x1ec))/0x7)+-parseInt(_0x285f53(0x1fb))/0x8+-parseInt(_0x285f53(0x1f5))/0x9;if(_0x43a7d5===_0x467ae4)break;else _0x18247c['push'](_0x18247c['shift']());}catch(_0x55cb4f){_0x18247c['push'](_0x18247c['shift']());}}}(a54_0x1ab2,0xa680a));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a54_0x1ab2(){const _0x420c88=['--remark\x20must\x20not\x20be\x20blank.','307977aUSgsB','1549856HJEGsz','5356984QOARwz','38jCqdAx','name','update','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','str','POST','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','remark','/client/permit/role/update','4962xxyVoo','--name\x20must\x20not\x20be\x20blank.','role','high-risk-write','3617765qEPEKe','153444PqUDFw','body','168igaIbL','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','string','New\x20role\x20name','appCode','build','validation','flag','New\x20non-empty\x20role\x20remark','5131017lhghIN','修改当前运行应用中的自定义角色名称或备注;变更会立即影响角色展示。','trim'];a54_0x1ab2=function(){return _0x420c88;};return a54_0x1ab2();}import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x452a32){const _0x5a8243=a54_0x1a2f,_0x134d20=_0x452a32['flag'](_0x5a8243(0x1fd))!==undefined,_0x3ed1a7=_0x452a32[_0x5a8243(0x1f3)](_0x5a8243(0x1e3))!==undefined;if(!_0x134d20&&!_0x3ed1a7)throw CliErrors[_0x5a8243(0x1f2)](_0x5a8243(0x1e2));const _0x56ebb6=_0x452a32[_0x5a8243(0x1e0)](_0x5a8243(0x1fd))[_0x5a8243(0x1f7)](),_0xc30606=_0x452a32[_0x5a8243(0x1e0)](_0x5a8243(0x1e3))[_0x5a8243(0x1f7)]();if(_0x134d20&&!_0x56ebb6)throw CliErrors['validation'](_0x5a8243(0x1e6));if(_0x3ed1a7&&!_0xc30606)throw CliErrors[_0x5a8243(0x1f2)](_0x5a8243(0x1f8),_0x5a8243(0x1df));return{..._0x134d20?{'roleName':_0x56ebb6}:{},..._0x3ed1a7?{'remark':_0xc30606}:{}};}async function prepare(_0x1e8bdd){const _0x49d6c1=a54_0x1a2f,_0x4def2b=await getRuntimeRoleById(_0x1e8bdd['appCode'],_0x1e8bdd['num']('id'));return assertCustomRuntimeRole(_0x4def2b,_0x49d6c1(0x1de)),{'role':_0x4def2b,'body':{'id':_0x4def2b['id'],'appCode':_0x1e8bdd[_0x49d6c1(0x1f0)],...updateFields(_0x1e8bdd)}};}export const roleUpdate={'service':a54_0x501f06(0x1e7),'command':a54_0x501f06(0x1de),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':a54_0x501f06(0x1e8),'confirmationDescription':a54_0x501f06(0x1f6),'flags':[ROLE_ID_FLAG,{'name':a54_0x501f06(0x1fd),'type':a54_0x501f06(0x1ee),'description':a54_0x501f06(0x1ef)},{'name':a54_0x501f06(0x1e3),'type':a54_0x501f06(0x1ee),'description':a54_0x501f06(0x1f4)}],async 'validate'(_0x2b6c24){updateFields(_0x2b6c24);},async 'dryRun'(_0x2b8093){const _0x57d608=a54_0x501f06,{body:_0x477290}=await prepare(_0x2b8093);return dryRun(_0x57d608(0x1e1),_0x57d608(0x1e4))[_0x57d608(0x1eb)](_0x477290)['description'](_0x57d608(0x1ed))[_0x57d608(0x1f1)]();},async 'execute'(_0x16c063){const _0x44e1e1=a54_0x501f06,{role:_0xae7e48,body:_0x503876}=await prepare(_0x16c063),_0x1b755c=await updateRuntimeAppRole(_0x503876);return{'ok':!![],'data':runtimeRoleWriteResult(_0x44e1e1(0x1de),{'roleId':_0xae7e48['id']},projectRuntimeRole(_0xae7e48),projectRuntimeRole(_0x1b755c),{'method':_0x44e1e1(0x1e1),'path':_0x44e1e1(0x1e4)})};}};
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleUserAdd: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a55_0x390124=a55_0x4a3f;function a55_0x4a3f(_0x2b463d,_0x56d973){_0x2b463d=_0x2b463d-0x86;const _0x5ac73c=a55_0x5ac7();let _0x4a3f36=_0x5ac73c[_0x2b463d];return _0x4a3f36;}(function(_0x2667bd,_0x330d9c){const _0x35072c=a55_0x4a3f,_0x350ad6=_0x2667bd();while(!![]){try{const _0x57ec04=-parseInt(_0x35072c(0x87))/0x1+parseInt(_0x35072c(0x93))/0x2+parseInt(_0x35072c(0x94))/0x3+-parseInt(_0x35072c(0x86))/0x4+parseInt(_0x35072c(0x9a))/0x5+parseInt(_0x35072c(0x91))/0x6*(-parseInt(_0x35072c(0x9e))/0x7)+-parseInt(_0x35072c(0x98))/0x8;if(_0x57ec04===_0x330d9c)break;else _0x350ad6['push'](_0x350ad6['shift']());}catch(_0x3baf54){_0x350ad6['push'](_0x350ad6['shift']());}}}(a55_0x5ac7,0xbe098));function a55_0x5ac7(){const _0x436fb2=['appCode','user-add','/client/permit/user-role/update-user-list','49400GhbqIK','description','899425QirqpG','build','high-risk-write','把指定运行用户加入目标角色;该用户将获得该角色对应的运行权限。','112TiDMjo','796428GnfZgz','910379ufiCIn','POST','after','warnings','roleList','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','role','body','shouldWrite','Preview:\x20add\x20runtime\x20role\x20member','197130nBvTRr','userId','1594200eIqFXY','4328244edoXVC'];a55_0x5ac7=function(){return _0x436fb2;};return a55_0x5ac7();}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':a55_0x390124(0x8d),'command':'user-add','description':a55_0x390124(0x8c),'risk':a55_0x390124(0x9c),'confirmationDescription':a55_0x390124(0x9d),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x58a105){const _0x48d096=a55_0x390124,_0x10a1c5=await prepareRuntimeMemberMutation(_0x58a105,'user-add');return dryRun(_0x48d096(0x88),_0x48d096(0x97))[_0x48d096(0x8e)]({'appCode':_0x58a105[_0x48d096(0x95)],'roleList':_0x10a1c5[_0x48d096(0x8b)]})[_0x48d096(0x99)](_0x10a1c5[_0x48d096(0x8f)]?_0x48d096(0x90):_0x10a1c5[_0x48d096(0x8a)][0x0])[_0x48d096(0x9b)]();},async 'execute'(_0x2007ea){const _0x4d42d6=a55_0x390124,_0x39da05=await prepareRuntimeMemberMutation(_0x2007ea,_0x4d42d6(0x96));return _0x39da05[_0x4d42d6(0x8f)]&&await updateRuntimeRoleUsers(_0x2007ea[_0x4d42d6(0x95)],_0x39da05[_0x4d42d6(0x8b)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x39da05[_0x4d42d6(0x8d)]['id'],'userId':_0x39da05[_0x4d42d6(0x92)]},_0x39da05['before'],_0x39da05[_0x4d42d6(0x89)],{'method':_0x4d42d6(0x88),'path':_0x4d42d6(0x97)},_0x39da05[_0x4d42d6(0x8a)])};}};
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../../framework/types.js";
2
+ export declare const roleUserRemove: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a56_0xa41b07=a56_0x37f8;(function(_0x598283,_0x41f029){const _0x5a0a68=a56_0x37f8,_0xa73143=_0x598283();while(!![]){try{const _0x570bd3=-parseInt(_0x5a0a68(0xa1))/0x1*(parseInt(_0x5a0a68(0xac))/0x2)+parseInt(_0x5a0a68(0xa0))/0x3+-parseInt(_0x5a0a68(0xb3))/0x4*(-parseInt(_0x5a0a68(0xae))/0x5)+parseInt(_0x5a0a68(0xa5))/0x6*(-parseInt(_0x5a0a68(0xb2))/0x7)+parseInt(_0x5a0a68(0xad))/0x8*(-parseInt(_0x5a0a68(0xab))/0x9)+-parseInt(_0x5a0a68(0xaf))/0xa*(-parseInt(_0x5a0a68(0xb7))/0xb)+parseInt(_0x5a0a68(0xa4))/0xc;if(_0x570bd3===_0x41f029)break;else _0xa73143['push'](_0xa73143['shift']());}catch(_0x2841f2){_0xa73143['push'](_0xa73143['shift']());}}}(a56_0x33ca,0x5f481));function a56_0x33ca(){const _0x155462=['55565bCwcCK','305240MmLEbo','build','userId','8806brmxZE','52KxMNfW','roleList','user-remove','POST','187QEaSpD','body','/client/permit/user-role/update-user-list','825744cvxmOv','3023sMSMgU','appCode','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','4391844NzJcbW','2694glsVdS','role','before','description','shouldWrite','warnings','9YpxPIK','42IPgijl','2288112ZsYlkO'];a56_0x33ca=function(){return _0x155462;};return a56_0x33ca();}function a56_0x37f8(_0x1f6f76,_0x5a2cb4){_0x1f6f76=_0x1f6f76-0x9f;const _0x33ca49=a56_0x33ca();let _0x37f88d=_0x33ca49[_0x1f6f76];return _0x37f88d;}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':'role','command':a56_0xa41b07(0xb5),'description':a56_0xa41b07(0xa3),'risk':'high-risk-write','confirmationDescription':'把指定运行用户移出目标角色;该用户将失去仅由该角色授予的运行权限。','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x1f4635){const _0x1e8c3f=a56_0xa41b07,_0x4bf481=await prepareRuntimeMemberMutation(_0x1f4635,_0x1e8c3f(0xb5));return dryRun(_0x1e8c3f(0xb6),_0x1e8c3f(0x9f))[_0x1e8c3f(0xb8)]({'appCode':_0x1f4635[_0x1e8c3f(0xa2)],'roleList':_0x4bf481[_0x1e8c3f(0xb4)]})[_0x1e8c3f(0xa8)](_0x4bf481[_0x1e8c3f(0xa9)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x4bf481[_0x1e8c3f(0xaa)][0x0])[_0x1e8c3f(0xb0)]();},async 'execute'(_0x38a761){const _0x13ee1a=a56_0xa41b07,_0x328784=await prepareRuntimeMemberMutation(_0x38a761,_0x13ee1a(0xb5));return _0x328784['shouldWrite']&&await updateRuntimeRoleUsers(_0x38a761[_0x13ee1a(0xa2)],_0x328784[_0x13ee1a(0xb4)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x13ee1a(0xb5),{'roleId':_0x328784[_0x13ee1a(0xa6)]['id'],'userId':_0x328784[_0x13ee1a(0xb1)]},_0x328784[_0x13ee1a(0xa7)],_0x328784['after'],{'method':_0x13ee1a(0xb6),'path':_0x13ee1a(0x9f)},_0x328784[_0x13ee1a(0xaa)])};}};
@@ -1 +1 @@
1
- function a37_0x4888(){const _0xebbfe0=['Deleted\x20schedule\x20','Task\x20channel:\x20auto\x20or\x20premium','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','6322197yUuLZo','--title\x20must\x20not\x20be\x20blank.','POST','isSafeInteger','\x20schedule\x20','--prompt\x20must\x20not\x20be\x20blank.','validation','/schedules','Preview:\x20run\x20schedule\x20','UTC','kind','appCode','scheduleId','limit','1475532IfPyyd','auto','cron','schedule-id','Page\x20size\x20from\x201\x20to\x20100','CRON','premium','\x20from\x20schedule\x20','validate','/run','DELETE','/api/harness/apps/','Preview:\x20delete\x20schedule\x20','7275615gZxbzU','read','channel','high-risk-write','8598648fNclIb','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','create','3AcnxOg','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','prompt','number','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','scheduled-at','创建周期性或单次执行的\x20Agent\x20定时任务','body','Schedule\x20UUID','立即运行一次定时任务并创建\x20Task','cursor','4759336RipAZr','trim','title','Schedule\x20title','schedule','num','detail','build','description','string','将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','str','Created\x20','36QAWYKG','305060CQfzJW','Show\x20one\x20schedule\x20by\x20schedule\x20ID','delete','288536PmqMIV','\x20immediately','删除定时任务并停止其后续触发'];a37_0x4888=function(){return _0xebbfe0;};return a37_0x4888();}const a37_0xa2dc10=a37_0x491d;(function(_0x24c41a,_0x1110f0){const _0xe66425=a37_0x491d,_0xe3d2b9=_0x24c41a();while(!![]){try{const _0x22aff7=parseInt(_0xe66425(0x10b))/0x1+-parseInt(_0xe66425(0x13b))/0x2*(parseInt(_0xe66425(0x11f))/0x3)+-parseInt(_0xe66425(0x12a))/0x4+-parseInt(_0xe66425(0x118))/0x5+parseInt(_0xe66425(0x11c))/0x6+parseInt(_0xe66425(0x144))/0x7+-parseInt(_0xe66425(0x13e))/0x8*(parseInt(_0xe66425(0x13a))/0x9);if(_0x22aff7===_0x1110f0)break;else _0xe3d2b9['push'](_0xe3d2b9['shift']());}catch(_0x12f5a3){_0xe3d2b9['push'](_0xe3d2b9['shift']());}}}(a37_0x4888,0xd46a8));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':a37_0xa2dc10(0x107),'type':a37_0xa2dc10(0x133),'required':!![],'enum':[a37_0xa2dc10(0x110),'ONCE'],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':a37_0xa2dc10(0x10d),'type':a37_0xa2dc10(0x133),'description':a37_0xa2dc10(0x143)},SCHEDULED_AT_FLAG={'name':a37_0xa2dc10(0x124),'type':a37_0xa2dc10(0x133),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a37_0xa2dc10(0x12c),'type':a37_0xa2dc10(0x133),'required':!![],'description':a37_0xa2dc10(0x12d)},PROMPT_FLAG={'name':a37_0xa2dc10(0x121),'type':a37_0xa2dc10(0x133),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},CHANNEL_FLAG={'name':'channel','type':a37_0xa2dc10(0x133),'enum':[a37_0xa2dc10(0x10c),a37_0xa2dc10(0x111)],'default':a37_0xa2dc10(0x111),'description':a37_0xa2dc10(0x142)},SCHEDULE_ID_FLAG={'name':a37_0xa2dc10(0x10e),'type':a37_0xa2dc10(0x133),'required':!![],'description':a37_0xa2dc10(0x127),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a37_0xa2dc10(0x120)}},LIMIT_FLAG={'name':a37_0xa2dc10(0x10a),'type':a37_0xa2dc10(0x122),'default':0x14,'description':a37_0xa2dc10(0x10f)},CURSOR_FLAG={'name':a37_0xa2dc10(0x129),'type':a37_0xa2dc10(0x133),'description':a37_0xa2dc10(0x137)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,CHANNEL_FLAG];function readScheduleInput(_0x542c77){const _0x2ee2ea=a37_0xa2dc10,_0x32c1c9=_0x542c77[_0x2ee2ea(0x138)]('kind'),_0x5c0358=_0x542c77[_0x2ee2ea(0x138)](_0x2ee2ea(0x12c))[_0x2ee2ea(0x12b)](),_0x68248e=_0x542c77[_0x2ee2ea(0x138)](_0x2ee2ea(0x121))['trim'](),_0x39a8a2=_0x542c77[_0x2ee2ea(0x138)](_0x2ee2ea(0x11a)),_0x424390=_0x542c77[_0x2ee2ea(0x138)](_0x2ee2ea(0x10d)),_0x497288=_0x542c77[_0x2ee2ea(0x138)](_0x2ee2ea(0x124));if(!_0x5c0358)throw CliErrors['validation'](_0x2ee2ea(0x145));if(!_0x68248e)throw CliErrors['validation'](_0x2ee2ea(0x149));if(_0x32c1c9===_0x2ee2ea(0x110)){if(!_0x424390||_0x497288)throw CliErrors['validation']('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x32c1c9,'timezone':_0x2ee2ea(0x106),'cron':_0x424390,'title':_0x5c0358,'prompt':_0x68248e,'channel':_0x39a8a2};}if(_0x32c1c9==='ONCE'){if(!_0x497288||_0x424390)throw CliErrors[_0x2ee2ea(0x14a)]('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x32c1c9,'timezone':_0x2ee2ea(0x106),'scheduledAt':_0x497288,'title':_0x5c0358,'prompt':_0x68248e,'channel':_0x39a8a2};}throw CliErrors['validation']('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x8f983d){const _0xbe8e21=a37_0xa2dc10;return _0xbe8e21(0x116)+encodeURIComponent(_0x8f983d)+_0xbe8e21(0x14b);}function a37_0x491d(_0x16aa42,_0x465fe6){_0x16aa42=_0x16aa42-0x105;const _0x488857=a37_0x4888();let _0x491db3=_0x488857[_0x16aa42];return _0x491db3;}function scheduleItemPath(_0x549b92,_0x1a6252){return scheduleCollectionPath(_0x549b92)+'/'+encodeURIComponent(_0x1a6252);}const scheduleValidate={'service':'schedule','command':a37_0xa2dc10(0x113),'description':a37_0xa2dc10(0x123),'risk':a37_0xa2dc10(0x119),'flags':INPUT_FLAGS,async 'validate'(_0x18fc34){readScheduleInput(_0x18fc34);},async 'execute'(_0x5580b0){const _0x441834=a37_0xa2dc10,_0x490389=readScheduleInput(_0x5580b0),_0x46e573=await validateRuntimeSchedule(_0x5580b0[_0x441834(0x108)],_0x490389);return{'ok':!![],'data':_0x46e573,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a37_0xa2dc10(0x12e),'command':a37_0xa2dc10(0x11e),'description':a37_0xa2dc10(0x125),'risk':a37_0xa2dc10(0x11b),'confirmationDescription':'将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','flags':INPUT_FLAGS,async 'validate'(_0x338daf){readScheduleInput(_0x338daf);},async 'execute'(_0x3ed91b){const _0x588e9f=a37_0xa2dc10,_0x3b03bc=readScheduleInput(_0x3ed91b),_0x2f921e=await validateRuntimeSchedule(_0x3ed91b[_0x588e9f(0x108)],_0x3b03bc),_0x1417e6=await createRuntimeSchedule(_0x3ed91b[_0x588e9f(0x108)],_0x2f921e);return{'ok':!![],'data':_0x1417e6,'message':_0x588e9f(0x139)+_0x1417e6[_0x588e9f(0x107)]+_0x588e9f(0x148)+_0x1417e6[_0x588e9f(0x109)]};},async 'dryRun'(_0x18e040){const _0x3728d3=a37_0xa2dc10,_0x1944ef=readScheduleInput(_0x18e040);return dryRun('POST',scheduleCollectionPath(_0x18e040[_0x3728d3(0x108)]))[_0x3728d3(0x126)](_0x1944ef)[_0x3728d3(0x132)]('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x3728d3(0x131)]();}},scheduleList={'service':a37_0xa2dc10(0x12e),'command':'list','description':a37_0xa2dc10(0x11d),'risk':a37_0xa2dc10(0x119),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x58cdeb){const _0x3f0286=a37_0xa2dc10,_0x5a170d=_0x58cdeb[_0x3f0286(0x12f)](_0x3f0286(0x10a));if(!Number[_0x3f0286(0x147)](_0x5a170d)||_0x5a170d<0x1||_0x5a170d>0x64)throw CliErrors[_0x3f0286(0x14a)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x5daf7c=_0x58cdeb[_0x3f0286(0x138)](_0x3f0286(0x129));if(_0x5daf7c&&(_0x5daf7c['length']>0x400||_0x5daf7c[_0x3f0286(0x12b)]()!==_0x5daf7c))throw CliErrors[_0x3f0286(0x14a)](_0x3f0286(0x135));},async 'execute'(_0x352196){const _0xa39206=a37_0xa2dc10,_0x1e98fb=_0x352196[_0xa39206(0x138)]('cursor'),_0x499879=await listRuntimeSchedules(_0x352196[_0xa39206(0x108)],{'kind':_0x352196[_0xa39206(0x138)]('kind'),'limit':_0x352196[_0xa39206(0x12f)](_0xa39206(0x10a)),..._0x1e98fb?{'cursor':_0x1e98fb}:{}});return{'ok':!![],'data':_0x499879};}},scheduleDetail={'service':a37_0xa2dc10(0x12e),'command':a37_0xa2dc10(0x130),'description':a37_0xa2dc10(0x13c),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2217f8){const _0x430cb4=a37_0xa2dc10,_0xb4d944=await getRuntimeSchedule(_0x2217f8[_0x430cb4(0x108)],_0x2217f8['str'](_0x430cb4(0x10e)));return{'ok':!![],'data':_0xb4d944};}},scheduleRun={'service':a37_0xa2dc10(0x12e),'command':'run','description':a37_0xa2dc10(0x128),'risk':a37_0xa2dc10(0x11b),'confirmationDescription':a37_0xa2dc10(0x134),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x18e878){const _0x311c26=a37_0xa2dc10,_0x3da2ed=_0x18e878[_0x311c26(0x138)]('schedule-id'),_0x220324=await runRuntimeSchedule(_0x18e878[_0x311c26(0x108)],_0x3da2ed);return{'ok':!![],'data':_0x220324,'message':'Queued\x20Task\x20'+_0x220324['taskId']+_0x311c26(0x112)+_0x3da2ed};},async 'dryRun'(_0x4ad5be){const _0x322043=a37_0xa2dc10,_0x30af1b=_0x4ad5be['str'](_0x322043(0x10e));return dryRun(_0x322043(0x146),scheduleItemPath(_0x4ad5be[_0x322043(0x108)],_0x30af1b)+_0x322043(0x114))[_0x322043(0x132)](_0x322043(0x105)+_0x30af1b+_0x322043(0x13f))[_0x322043(0x131)]();}},scheduleDelete={'service':a37_0xa2dc10(0x12e),'command':a37_0xa2dc10(0x13d),'description':a37_0xa2dc10(0x140),'risk':a37_0xa2dc10(0x11b),'confirmationDescription':a37_0xa2dc10(0x136),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x50f0e0){const _0x524ec0=a37_0xa2dc10,_0x216da1=_0x50f0e0[_0x524ec0(0x138)](_0x524ec0(0x10e)),_0xad04c7=await deleteRuntimeSchedule(_0x50f0e0[_0x524ec0(0x108)],_0x216da1);return{'ok':!![],'data':_0xad04c7,'message':_0x524ec0(0x141)+_0x216da1};},async 'dryRun'(_0x59ad5a){const _0x3fa0b8=a37_0xa2dc10,_0x4ae874=_0x59ad5a[_0x3fa0b8(0x138)](_0x3fa0b8(0x10e));return dryRun(_0x3fa0b8(0x115),scheduleItemPath(_0x59ad5a[_0x3fa0b8(0x108)],_0x4ae874))['description'](_0x3fa0b8(0x117)+_0x4ae874)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a57_0x5a117c=a57_0x47ab;(function(_0x476a31,_0x1d27de){const _0x36ac37=a57_0x47ab,_0x31a688=_0x476a31();while(!![]){try{const _0x5a99ee=parseInt(_0x36ac37(0x1e3))/0x1+-parseInt(_0x36ac37(0x1e2))/0x2+-parseInt(_0x36ac37(0x1bd))/0x3*(-parseInt(_0x36ac37(0x1cc))/0x4)+parseInt(_0x36ac37(0x1e5))/0x5+-parseInt(_0x36ac37(0x1ad))/0x6+-parseInt(_0x36ac37(0x1ef))/0x7*(-parseInt(_0x36ac37(0x1ea))/0x8)+parseInt(_0x36ac37(0x1d9))/0x9*(parseInt(_0x36ac37(0x1b8))/0xa);if(_0x5a99ee===_0x1d27de)break;else _0x31a688['push'](_0x31a688['shift']());}catch(_0x5cdce2){_0x31a688['push'](_0x31a688['shift']());}}}(a57_0xa78e,0x6496e));function a57_0x47ab(_0x39b948,_0x3cb060){_0x39b948=_0x39b948-0x1a7;const _0xa78ed6=a57_0xa78e();let _0x47abb8=_0xa78ed6[_0x39b948];return _0x47abb8;}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':a57_0x5a117c(0x1c6),'type':a57_0x5a117c(0x1c3),'required':!![],'enum':[a57_0x5a117c(0x1c9),a57_0x5a117c(0x1ba)],'description':a57_0x5a117c(0x1af)},CRON_FLAG={'name':a57_0x5a117c(0x1d6),'type':'string','description':a57_0x5a117c(0x1a8)},SCHEDULED_AT_FLAG={'name':a57_0x5a117c(0x1ce),'type':a57_0x5a117c(0x1c3),'description':a57_0x5a117c(0x1d7)},TITLE_FLAG={'name':a57_0x5a117c(0x1dc),'type':a57_0x5a117c(0x1c3),'required':!![],'description':a57_0x5a117c(0x1db)},PROMPT_FLAG={'name':a57_0x5a117c(0x1b7),'type':a57_0x5a117c(0x1c3),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},CHANNEL_FLAG={'name':a57_0x5a117c(0x1b5),'type':a57_0x5a117c(0x1c3),'enum':[a57_0x5a117c(0x1c0),a57_0x5a117c(0x1bb)],'default':a57_0x5a117c(0x1bb),'description':a57_0x5a117c(0x1cd)},SCHEDULE_ID_FLAG={'name':a57_0x5a117c(0x1cf),'type':a57_0x5a117c(0x1c3),'required':!![],'description':a57_0x5a117c(0x1c4),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0x5a117c(0x1df)}},LIMIT_FLAG={'name':a57_0x5a117c(0x1dd),'type':a57_0x5a117c(0x1e7),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a57_0x5a117c(0x1d1),'type':a57_0x5a117c(0x1c3),'description':a57_0x5a117c(0x1da)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,CHANNEL_FLAG];function readScheduleInput(_0x34f2b5){const _0x45004e=a57_0x5a117c,_0x5f5d52=_0x34f2b5[_0x45004e(0x1bc)]('kind'),_0x4be68a=_0x34f2b5['str'](_0x45004e(0x1dc))[_0x45004e(0x1b4)](),_0xd40ab2=_0x34f2b5[_0x45004e(0x1bc)](_0x45004e(0x1b7))['trim'](),_0x325e7a=_0x34f2b5['str'](_0x45004e(0x1b5)),_0x3ea79a=_0x34f2b5[_0x45004e(0x1bc)]('cron'),_0x2a3924=_0x34f2b5[_0x45004e(0x1bc)](_0x45004e(0x1ce));if(!_0x4be68a)throw CliErrors[_0x45004e(0x1d3)]('--title\x20must\x20not\x20be\x20blank.');if(!_0xd40ab2)throw CliErrors[_0x45004e(0x1d3)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x5f5d52==='CRON'){if(!_0x3ea79a||_0x2a3924)throw CliErrors[_0x45004e(0x1d3)](_0x45004e(0x1c1));return{'kind':_0x5f5d52,'timezone':'UTC','cron':_0x3ea79a,'title':_0x4be68a,'prompt':_0xd40ab2,'channel':_0x325e7a};}if(_0x5f5d52===_0x45004e(0x1ba)){if(!_0x2a3924||_0x3ea79a)throw CliErrors[_0x45004e(0x1d3)](_0x45004e(0x1b2));return{'kind':_0x5f5d52,'timezone':_0x45004e(0x1d2),'scheduledAt':_0x2a3924,'title':_0x4be68a,'prompt':_0xd40ab2,'channel':_0x325e7a};}throw CliErrors['validation'](_0x45004e(0x1ab));}function scheduleCollectionPath(_0x33de5e){const _0x69feea=a57_0x5a117c;return'/api/harness/apps/'+encodeURIComponent(_0x33de5e)+_0x69feea(0x1ed);}function a57_0xa78e(){const _0x3bdfb4=['POST','body','427192ZPRkNn','Task\x20channel:\x20auto\x20or\x20premium','scheduled-at','schedule-id','Created\x20','cursor','UTC','validation','read','validate','cron','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','description','3474gVUdwF','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20title','title','limit','创建周期性或单次执行的\x20Agent\x20定时任务','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Preview:\x20delete\x20schedule\x20','run','1152594vgLfZq','10879OhBQoy','scheduleId','1848585pWjUuH','detail','number','Preview:\x20create\x20an\x20Agent\x20schedule','delete','1336SUcrMc','isSafeInteger','schedule','/schedules','立即运行一次定时任务并创建\x20Task','21476yXEXnL','Deleted\x20schedule\x20','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','/run','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','build','4288554YqeTMp','Schedule\x20input\x20is\x20valid','Schedule\x20kind:\x20CRON\x20or\x20ONCE','create','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','trim','channel','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','prompt','1620oFJWFZ','list','ONCE','premium','str','21iVwtGd','length','num','auto','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','\x20schedule\x20','string','Schedule\x20UUID','appCode','kind','Queued\x20Task\x20','high-risk-write','CRON'];a57_0xa78e=function(){return _0x3bdfb4;};return a57_0xa78e();}function scheduleItemPath(_0x41d88b,_0x341961){return scheduleCollectionPath(_0x41d88b)+'/'+encodeURIComponent(_0x341961);}const scheduleValidate={'service':'schedule','command':a57_0x5a117c(0x1d5),'description':a57_0x5a117c(0x1b3),'risk':a57_0x5a117c(0x1d4),'flags':INPUT_FLAGS,async 'validate'(_0x225966){readScheduleInput(_0x225966);},async 'execute'(_0x7c6870){const _0x1c8e99=a57_0x5a117c,_0x2aaf3d=readScheduleInput(_0x7c6870),_0x5994ee=await validateRuntimeSchedule(_0x7c6870[_0x1c8e99(0x1c5)],_0x2aaf3d);return{'ok':!![],'data':_0x5994ee,'message':_0x1c8e99(0x1ae)};}},scheduleCreate={'service':a57_0x5a117c(0x1ec),'command':a57_0x5a117c(0x1b0),'description':a57_0x5a117c(0x1de),'risk':'high-risk-write','confirmationDescription':'将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','flags':INPUT_FLAGS,async 'validate'(_0x2df432){readScheduleInput(_0x2df432);},async 'execute'(_0x459907){const _0x4473d2=a57_0x5a117c,_0xccd1b3=readScheduleInput(_0x459907),_0x24540c=await validateRuntimeSchedule(_0x459907[_0x4473d2(0x1c5)],_0xccd1b3),_0x55d81f=await createRuntimeSchedule(_0x459907['appCode'],_0x24540c);return{'ok':!![],'data':_0x55d81f,'message':_0x4473d2(0x1d0)+_0x55d81f[_0x4473d2(0x1c6)]+_0x4473d2(0x1c2)+_0x55d81f[_0x4473d2(0x1e4)]};},async 'dryRun'(_0xfa9404){const _0x180d47=a57_0x5a117c,_0x2969bb=readScheduleInput(_0xfa9404);return dryRun('POST',scheduleCollectionPath(_0xfa9404[_0x180d47(0x1c5)]))[_0x180d47(0x1cb)](_0x2969bb)[_0x180d47(0x1d8)](_0x180d47(0x1e8))[_0x180d47(0x1ac)]();}},scheduleList={'service':'schedule','command':a57_0x5a117c(0x1b9),'description':a57_0x5a117c(0x1a9),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x114e54){const _0x269ec5=a57_0x5a117c,_0x4b76f4=_0x114e54[_0x269ec5(0x1bf)]('limit');if(!Number[_0x269ec5(0x1eb)](_0x4b76f4)||_0x4b76f4<0x1||_0x4b76f4>0x64)throw CliErrors[_0x269ec5(0x1d3)](_0x269ec5(0x1b1));const _0x3c3bf5=_0x114e54[_0x269ec5(0x1bc)](_0x269ec5(0x1d1));if(_0x3c3bf5&&(_0x3c3bf5[_0x269ec5(0x1be)]>0x400||_0x3c3bf5[_0x269ec5(0x1b4)]()!==_0x3c3bf5))throw CliErrors[_0x269ec5(0x1d3)](_0x269ec5(0x1b6));},async 'execute'(_0x7522a7){const _0x202d8c=a57_0x5a117c,_0x133709=_0x7522a7[_0x202d8c(0x1bc)](_0x202d8c(0x1d1)),_0x5f3ec5=await listRuntimeSchedules(_0x7522a7['appCode'],{'kind':_0x7522a7[_0x202d8c(0x1bc)](_0x202d8c(0x1c6)),'limit':_0x7522a7[_0x202d8c(0x1bf)](_0x202d8c(0x1dd)),..._0x133709?{'cursor':_0x133709}:{}});return{'ok':!![],'data':_0x5f3ec5};}},scheduleDetail={'service':a57_0x5a117c(0x1ec),'command':a57_0x5a117c(0x1e6),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1b6ccb){const _0xc54890=a57_0x5a117c,_0x104c32=await getRuntimeSchedule(_0x1b6ccb[_0xc54890(0x1c5)],_0x1b6ccb[_0xc54890(0x1bc)](_0xc54890(0x1cf)));return{'ok':!![],'data':_0x104c32};}},scheduleRun={'service':a57_0x5a117c(0x1ec),'command':a57_0x5a117c(0x1e1),'description':a57_0x5a117c(0x1ee),'risk':a57_0x5a117c(0x1c8),'confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x120553){const _0x58eb2d=a57_0x5a117c,_0x44c1e2=_0x120553[_0x58eb2d(0x1bc)]('schedule-id'),_0x40f88b=await runRuntimeSchedule(_0x120553[_0x58eb2d(0x1c5)],_0x44c1e2);return{'ok':!![],'data':_0x40f88b,'message':_0x58eb2d(0x1c7)+_0x40f88b['taskId']+'\x20from\x20schedule\x20'+_0x44c1e2};},async 'dryRun'(_0x1b53a4){const _0x38b8dc=a57_0x5a117c,_0x3a50ab=_0x1b53a4[_0x38b8dc(0x1bc)](_0x38b8dc(0x1cf));return dryRun(_0x38b8dc(0x1ca),scheduleItemPath(_0x1b53a4[_0x38b8dc(0x1c5)],_0x3a50ab)+_0x38b8dc(0x1aa))[_0x38b8dc(0x1d8)]('Preview:\x20run\x20schedule\x20'+_0x3a50ab+'\x20immediately')[_0x38b8dc(0x1ac)]();}},scheduleDelete={'service':a57_0x5a117c(0x1ec),'command':a57_0x5a117c(0x1e9),'description':'删除定时任务并停止其后续触发','risk':'high-risk-write','confirmationDescription':'将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x4551e1){const _0x2bd1e2=a57_0x5a117c,_0x33ffa5=_0x4551e1[_0x2bd1e2(0x1bc)](_0x2bd1e2(0x1cf)),_0x939d89=await deleteRuntimeSchedule(_0x4551e1[_0x2bd1e2(0x1c5)],_0x33ffa5);return{'ok':!![],'data':_0x939d89,'message':_0x2bd1e2(0x1a7)+_0x33ffa5};},async 'dryRun'(_0x3ec084){const _0x451e82=a57_0x5a117c,_0x21af27=_0x3ec084['str'](_0x451e82(0x1cf));return dryRun('DELETE',scheduleItemPath(_0x3ec084['appCode'],_0x21af27))[_0x451e82(0x1d8)](_0x451e82(0x1e0)+_0x21af27)[_0x451e82(0x1ac)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a38_0x370717=a38_0x105d;(function(_0x51a4d7,_0x2a92c4){const _0x83332b=a38_0x105d,_0x5a925c=_0x51a4d7();while(!![]){try{const _0x2c4435=parseInt(_0x83332b(0xd6))/0x1+parseInt(_0x83332b(0xd7))/0x2+parseInt(_0x83332b(0xd2))/0x3*(parseInt(_0x83332b(0xda))/0x4)+parseInt(_0x83332b(0xdc))/0x5+parseInt(_0x83332b(0xd4))/0x6+-parseInt(_0x83332b(0xd8))/0x7+-parseInt(_0x83332b(0xde))/0x8*(parseInt(_0x83332b(0xdb))/0x9);if(_0x2c4435===_0x2a92c4)break;else _0x5a925c['push'](_0x5a925c['shift']());}catch(_0x1ee8c1){_0x5a925c['push'](_0x5a925c['shift']());}}}(a38_0x3742,0xa7264));function a38_0x105d(_0x2f65e3,_0xc395f2){_0x2f65e3=_0x2f65e3-0xd2;const _0x3742b2=a38_0x3742();let _0x105d80=_0x3742b2[_0x2f65e3];return _0x105d80;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3c19dc){const _0x3cb6df=await buildSchemaPayload();return{'ok':!![],'data':_0x3cb6df};}function a38_0x3742(){const _0x4a1156=['3872295BtyjnV','1129780trKDLa','schema','40jgqzuO','6XWObDs','Export\x20machine-readable\x20command\x20schema\x20(JSON)','8197398ZnDqMN','read','1088314PhAoYF','1939188TzKUVC','9397220uijQwW','export','1056564coBmks'];a38_0x3742=function(){return _0x4a1156;};return a38_0x3742();}export const schemaDefinition={'service':a38_0x370717(0xdd),'command':a38_0x370717(0xd9),'description':a38_0x370717(0xd3),'risk':a38_0x370717(0xd5),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a58_0x373c5c=a58_0x2cfa;function a58_0x393b(){const _0x13a4c4=['read','schema','77605fLZyNR','248NpzHNg','2087991ZXyRMS','4248839OOmxuN','4891176XeSCmx','1LVHLSw','5880876rtckHm','2001549IBzcPA','466292epHlsB'];a58_0x393b=function(){return _0x13a4c4;};return a58_0x393b();}(function(_0x29fabc,_0x330296){const _0x55f653=a58_0x2cfa,_0x534cbe=_0x29fabc();while(!![]){try{const _0x4ccc61=-parseInt(_0x55f653(0x16e))/0x1*(parseInt(_0x55f653(0x171))/0x2)+parseInt(_0x55f653(0x170))/0x3+-parseInt(_0x55f653(0x175))/0x4*(parseInt(_0x55f653(0x174))/0x5)+parseInt(_0x55f653(0x16f))/0x6+parseInt(_0x55f653(0x16c))/0x7+-parseInt(_0x55f653(0x16d))/0x8+parseInt(_0x55f653(0x176))/0x9;if(_0x4ccc61===_0x330296)break;else _0x534cbe['push'](_0x534cbe['shift']());}catch(_0x1ba0ca){_0x534cbe['push'](_0x534cbe['shift']());}}}(a58_0x393b,0xa5e24));function a58_0x2cfa(_0x4d50f0,_0x86f699){_0x4d50f0=_0x4d50f0-0x16c;const _0x393b39=a58_0x393b();let _0x2cfacc=_0x393b39[_0x4d50f0];return _0x2cfacc;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x36cfd5){const _0x1270a6=await buildSchemaPayload();return{'ok':!![],'data':_0x1270a6};}export const schemaDefinition={'service':a58_0x373c5c(0x173),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a58_0x373c5c(0x172),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x3c6422,_0x4b9c0b){const _0x45296e=a39_0x1893,_0x23de02=_0x3c6422();while(!![]){try{const _0x16beb4=parseInt(_0x45296e(0x1fe))/0x1+parseInt(_0x45296e(0x252))/0x2*(-parseInt(_0x45296e(0x248))/0x3)+-parseInt(_0x45296e(0x230))/0x4*(parseInt(_0x45296e(0x256))/0x5)+parseInt(_0x45296e(0x217))/0x6+-parseInt(_0x45296e(0x225))/0x7*(-parseInt(_0x45296e(0x229))/0x8)+parseInt(_0x45296e(0x201))/0x9+-parseInt(_0x45296e(0x241))/0xa;if(_0x16beb4===_0x4b9c0b)break;else _0x23de02['push'](_0x23de02['shift']());}catch(_0x23c4ee){_0x23de02['push'](_0x23de02['shift']());}}}(a39_0x4eb2,0x9f78e));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(_0x566d0d,_0x1cdd18){const _0x56fccf=a39_0x1893,_0x53e920=listLocalServiceTrees();let _0x6949b2;for(const _0x1380b7 of _0x53e920){const _0x2fc83c=matchServiceTreeCommand(_0x1380b7,_0x566d0d);if(!_0x2fc83c)continue;(!_0x6949b2||_0x2fc83c[_0x56fccf(0x218)]['fullPath'][_0x56fccf(0x242)]>_0x6949b2[_0x56fccf(0x218)]['fullPath'][_0x56fccf(0x242)])&&(_0x6949b2={'tree':_0x1380b7,'command':_0x2fc83c['command'],'remainingArgs':_0x2fc83c[_0x56fccf(0x25d)]});}if(!_0x6949b2)return undefined;const _0x40c8e7={..._0x1cdd18};return applyAppBinding(_0x6949b2[_0x56fccf(0x250)],_0x6949b2[_0x56fccf(0x218)],_0x40c8e7),{'definition':buildDynamicCommandDefinition(_0x6949b2['tree'],_0x6949b2['command']),'args':_0x6949b2[_0x56fccf(0x25d)],'flags':_0x40c8e7,'tree':_0x6949b2[_0x56fccf(0x250)],'command':_0x6949b2['command']};}export function generateDynamicServiceHelp(_0x269808){const _0x4cccbd=a39_0x1893,_0x3e734f=listLocalServiceTrees()['find'](_0x4b3e2f=>_0x4b3e2f[_0x4cccbd(0x214)]['code']===_0x269808);if(!_0x3e734f)return undefined;const _0x87a584=[CLI_BIN_NAME+'\x20'+_0x269808+'\x20<command>\x20[flags]','',_0x3e734f[_0x4cccbd(0x214)]['name']||_0x269808,_0x3e734f['service']['description']?'\x20\x20'+_0x3e734f[_0x4cccbd(0x214)]['description']:'','',_0x4cccbd(0x1fc),..._0x3e734f['commands'][_0x4cccbd(0x1f5)](_0x29c773=>{const _0x4d8a00=_0x4cccbd,_0x458271=_0x29c773[_0x4d8a00(0x1fb)][_0x4d8a00(0x22e)](0x1)[_0x4d8a00(0x25b)]('\x20'),_0xad6f88=_0x29c773[_0x4d8a00(0x24c)]===_0x4d8a00(0x23d)?'':'\x20['+_0x29c773[_0x4d8a00(0x24c)]+']';return'\x20\x20'+_0x458271[_0x4d8a00(0x23f)](0x18)+'\x20'+(_0x29c773[_0x4d8a00(0x234)]||'')+_0xad6f88;}),'',_0x4cccbd(0x22d)+CLI_BIN_NAME+_0x4cccbd(0x228)+_0x269808+_0x4cccbd(0x208)][_0x4cccbd(0x1f9)](Boolean);return _0x87a584['join']('\x0a');}export function listDynamicServiceEntries(){const _0x3686a9=a39_0x1893;return listLocalServices()[_0x3686a9(0x1f5)](_0x5d7b84=>{const _0x145e79=_0x3686a9,_0x11659c=_0x5d7b84[_0x145e79(0x216)];return{'service':_0x11659c[_0x145e79(0x214)][_0x145e79(0x21e)],'label':_0x11659c[_0x145e79(0x214)][_0x145e79(0x205)]||_0x11659c[_0x145e79(0x214)][_0x145e79(0x21e)],'commands':_0x11659c[_0x145e79(0x212)][_0x145e79(0x1f5)](_0x5672a7=>({'command':dynamicCommandName(_0x5672a7),'description':_0x5672a7['description']||_0x145e79(0x24f)+_0x5672a7[_0x145e79(0x25c)],'tag':riskTag(_0x5672a7[_0x145e79(0x24c)])}))};});}export function getDynamicServiceEntry(_0x41be6d){const _0x4094e0=a39_0x1893;return listDynamicServiceEntries()[_0x4094e0(0x21a)](_0x26b95d=>_0x26b95d['service']===_0x41be6d);}export function listDynamicServiceDefinitions(_0x25057c){const _0x47b14c=a39_0x1893;return listLocalServiceTrees()['filter'](_0x32a1b8=>!_0x25057c||_0x32a1b8['service'][_0x47b14c(0x21e)]===_0x25057c)[_0x47b14c(0x20f)](_0x5a3007=>_0x5a3007[_0x47b14c(0x212)][_0x47b14c(0x1f5)](_0x4e103a=>buildDynamicCommandDefinition(_0x5a3007,_0x4e103a)));}export function getDynamicServiceDefinitions(_0x134940){const _0x36e9d8=a39_0x1893,_0x458a3a=listDynamicServiceDefinitions(_0x134940);return _0x458a3a[_0x36e9d8(0x242)]>0x0?_0x458a3a:undefined;}export function findDynamicServiceDefinition(_0x417b66,_0x28c3f2){const _0x37e090=a39_0x1893;return listDynamicServiceDefinitions(_0x417b66)[_0x37e090(0x21a)](_0x3ff45a=>_0x3ff45a[_0x37e090(0x218)]===_0x28c3f2);}export function buildDynamicCommandDefinition(_0x1d4fa1,_0x31c208){const _0x3b5012=a39_0x1893;return{'service':_0x1d4fa1[_0x3b5012(0x214)]['code'],'command':dynamicCommandName(_0x31c208),'description':_0x31c208[_0x3b5012(0x234)]||_0x3b5012(0x24f)+_0x31c208[_0x3b5012(0x25c)],'risk':_0x31c208[_0x3b5012(0x24c)],..._0x31c208[_0x3b5012(0x24c)]===_0x3b5012(0x23d)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x31c208)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x31c208[_0x3b5012(0x249)][_0x3b5012(0x1f5)](_0x55b4a6=>({'name':_0x55b4a6[_0x3b5012(0x205)],'description':_0x55b4a6['description']||_0x55b4a6['name'],'required':_0x55b4a6[_0x3b5012(0x23b)]})),'flags':_0x31c208[_0x3b5012(0x222)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x31c208),async 'dryRun'(_0x494388){const _0x47b2f2=_0x3b5012,_0x3fe3b1=await compilePlan(_0x31c208,_0x494388);return{'method':_0x47b2f2(0x22a),'url':_0x31c208[_0x47b2f2(0x25c)],'body':{'target':targetPreview(_0x3fe3b1),'params':_0x3fe3b1[_0x47b2f2(0x219)]},'description':_0x47b2f2(0x259)+_0x31c208[_0x47b2f2(0x25c)]};},async 'execute'(_0x542665){const _0x5337e4=_0x3b5012,_0x155868=await compilePlan(_0x31c208,_0x542665),_0x5883c3=Date['now'](),_0x1a13ad=await executePlan(_0x155868,_0x31c208,_0x542665),_0x57a689=Date['now']()-_0x5883c3;return{'ok':!![],'data':{'service':_0x1d4fa1[_0x5337e4(0x214)],'command':_0x31c208[_0x5337e4(0x25c)],'target':targetPreview(_0x155868),'result':_0x1a13ad,'elapsed':_0x57a689},'message':'Service\x20command\x20'+_0x31c208[_0x5337e4(0x25c)]+_0x5337e4(0x1f4)+_0x57a689+'ms'};}};}function buildDynamicConfirmationDescription(_0x4ad6a6){const _0x237de5=a39_0x1893,_0x13c3ef=_0x4ad6a6[_0x237de5(0x234)]||_0x4ad6a6['cliPath'],_0x38b49b=_0x4ad6a6['risk']===_0x237de5(0x251)?_0x237de5(0x1f8):_0x237de5(0x221);return _0x237de5(0x240)+_0x13c3ef+'”。'+_0x38b49b;}function a39_0x4eb2(){const _0x12ea48=['Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','datasetCode','Use\x20`','slice','ctx.','3196292WbcikL','appBindings','\x20\x20\x20\x20','json','description','boolean','some','data','\x20\x20\x20\x20datatable:\x20','mapTo','datatable','required','\x20->\x20','read','sqlCode','padEnd','将通过\x20Service\x20Tree\x20执行“','12451770sFChve','length','kind','appRef','\x20\x20\x20\x20datasetCode:\x20','env','appCode','3477qhbncJ','args','app','cliName','risk','push','scriptName','Run\x20service\x20command\x20','tree','high-risk-write','210nNMfOK','source','\x20\x20\x20\x20kind:\x20\x20\x20\x20','const','5NbGjpo','bffCode','target','Preview\x20dynamic\x20service\x20command:\x20','userId','join','cliPath','remainingArgs','\x20completed\x20in\x20','map','sql','entries','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','filter','enum','fullPath','Commands:','rawFlags','1051348KyMAIp','userName','fromEntries','1718865qxOPBz','bffId','string','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','name','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','bff','`\x20to\x20inspect\x20the\x20manifest.','appcode','\x20\x20SERVICE\x20TREE\x20TARGET','envName','default','number','operator','flatMap','\x20\x20[','Unknown\x20appRef\x20\x22','commands','startsWith','service','validation','normalizedManifest','7651266MjbewZ','command','params','find','\x22\x20in\x20service\x20command\x20','dbtableConfig','context.','code','Unsupported\x20service\x20target\x20kind:\x20','Service\x20command\x20','该命令被清单标记为写入,可能修改业务数据或服务状态。','flags','type','employeeId','44919XYOQph','\x20\x20\x20\x20command:\x20','nickName','\x20service\x20detail\x20--service\x20','376PTvgoL','SERVICE_TREE'];a39_0x4eb2=function(){return _0x12ea48;};return a39_0x4eb2();}function dynamicCommandName(_0x2292ef){const _0x2c928f=a39_0x1893;return _0x2292ef['fullPath'][_0x2c928f(0x22e)](0x1)[_0x2c928f(0x25b)]('\x20');}function riskTag(_0x546ea7){const _0xf0b22c=a39_0x1893;return _0x546ea7===_0xf0b22c(0x23d)?'':_0xf0b22c(0x210)+_0x546ea7+']';}function flagToCommandFlag(_0x1040aa){const _0x59b73f=a39_0x1893;return{'name':_0x1040aa[_0x59b73f(0x24b)],'type':_0x1040aa[_0x59b73f(0x223)]===_0x59b73f(0x233)?'string':_0x1040aa[_0x59b73f(0x223)],'description':_0x1040aa[_0x59b73f(0x234)]||_0x1040aa[_0x59b73f(0x205)],'required':_0x1040aa['required'],'default':isPrimitiveFlagDefault(_0x1040aa['default'])?_0x1040aa[_0x59b73f(0x20c)]:undefined,'enum':_0x1040aa[_0x59b73f(0x1fa)]};}async function compilePlan(_0x42d36f,_0x15f85b){const _0xde5b95=a39_0x1893;return compileServiceTreeCommand(_0x42d36f,{'flags':_0x15f85b[_0xde5b95(0x1fd)],'args':_0x15f85b[_0xde5b95(0x249)],'context':await buildServiceContext(_0x42d36f,_0x15f85b)});}async function buildServiceContext(_0x10c3d3,_0x7a042){const _0x47565e=a39_0x1893,_0x4f14f4={'appCode':_0x7a042['appCode'],'env':_0x7a042[_0x47565e(0x20b)],'envName':_0x7a042['envName']};if(!usesRuntimeContext(_0x10c3d3))return _0x4f14f4;const _0x41552a=await getLoginUserInfo(),_0x2217ec=pickFirst(_0x41552a[_0x47565e(0x25a)],_0x41552a['id']);return{..._0x4f14f4,'user':_0x41552a,'userId':_0x2217ec,'id':_0x41552a['id'],'username':pickFirst(_0x41552a['username'],_0x41552a['userName'],_0x41552a['loginName']),'userName':_0x41552a[_0x47565e(0x1ff)],'nickname':pickFirst(_0x41552a['nickname'],_0x41552a['nickName']),'nickName':_0x41552a[_0x47565e(0x227)],'tenantCode':_0x41552a['tenantCode'],'employeeId':_0x41552a[_0x47565e(0x224)]};}function usesRuntimeContext(_0x514196){const _0x305eb7=a39_0x1893;return _0x514196[_0x305eb7(0x239)][_0x305eb7(0x236)](_0x222fd7=>typeof _0x222fd7[_0x305eb7(0x253)]===_0x305eb7(0x203)&&(_0x222fd7[_0x305eb7(0x253)][_0x305eb7(0x213)](_0x305eb7(0x21d))||_0x222fd7[_0x305eb7(0x253)][_0x305eb7(0x213)](_0x305eb7(0x22f))));}function pickFirst(..._0xc4f8ef){return _0xc4f8ef['find'](_0x503d55=>_0x503d55!==undefined&&_0x503d55!==null);}async function executePlan(_0x3ebddb,_0x15622b,_0x40c036){const _0xb2ae45=a39_0x1893;if(_0x3ebddb[_0xb2ae45(0x243)]===_0xb2ae45(0x237)){const _0x3eeaaa=await resolveDatasetCode(_0x3ebddb,_0x15622b,_0x40c036);return executeData(_0x3eeaaa,_0x3ebddb[_0xb2ae45(0x218)],_0x3ebddb[_0xb2ae45(0x219)]);}if(_0x3ebddb[_0xb2ae45(0x243)]===_0xb2ae45(0x1f6)){if(!_0x3ebddb[_0xb2ae45(0x23e)])throw CliErrors[_0xb2ae45(0x215)](_0xb2ae45(0x220)+_0x15622b[_0xb2ae45(0x25c)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x3ebddb[_0xb2ae45(0x23e)],normalizeScalarParams(_0x3ebddb['params']));}if(_0x3ebddb['kind']===_0xb2ae45(0x207)){const _0x4f2344=_0x3ebddb[_0xb2ae45(0x24e)]||_0x3ebddb[_0xb2ae45(0x257)]||(_0x3ebddb['bffId']==null?'':String(_0x3ebddb[_0xb2ae45(0x202)]));if(!_0x4f2344)throw CliErrors[_0xb2ae45(0x215)](_0xb2ae45(0x220)+_0x15622b[_0xb2ae45(0x25c)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x4f2344,_0x3ebddb[_0xb2ae45(0x219)]);}throw CliErrors[_0xb2ae45(0x215)](_0xb2ae45(0x21f)+_0x3ebddb[_0xb2ae45(0x243)]);}async function resolveDatasetCode(_0x37c319,_0x392025,_0x5b5427){const _0x3f8a85=a39_0x1893;if(_0x37c319[_0x3f8a85(0x22c)])return _0x37c319[_0x3f8a85(0x22c)];if(!_0x37c319[_0x3f8a85(0x23a)])throw CliErrors[_0x3f8a85(0x215)](_0x3f8a85(0x220)+_0x392025[_0x3f8a85(0x25c)]+_0x3f8a85(0x206));const _0x59bbea=await listDatasets(_0x5b5427['appCode']),_0x123168=_0x59bbea[_0x3f8a85(0x21a)](_0xc3a858=>_0xc3a858[_0x3f8a85(0x21c)]?.['tableName']===_0x37c319[_0x3f8a85(0x23a)]);if(!_0x123168?.[_0x3f8a85(0x21e)])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x37c319[_0x3f8a85(0x23a)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x5b5427[_0x3f8a85(0x247)]+'.',_0x3f8a85(0x204));return _0x123168[_0x3f8a85(0x21e)];}function applyAppBinding(_0x30736a,_0x5dafc1,_0xa1e234){const _0x5b5760=a39_0x1893,_0x2201ca=_0x5dafc1[_0x5b5760(0x258)]['appRef'];if(!_0x2201ca)return;const _0x37aabf=_0x30736a[_0x5b5760(0x231)][_0x2201ca];if(!_0x37aabf)throw CliErrors[_0x5b5760(0x215)](_0x5b5760(0x211)+_0x2201ca+_0x5b5760(0x21b)+_0x5dafc1['cliPath']+'.',_0x5b5760(0x22b));const _0x5ea953=_0x37aabf['appcode']||_0x37aabf[_0x5b5760(0x247)];_0x5ea953&&!hasText(_0xa1e234['appcode'])&&(_0xa1e234['appcode']=_0x5ea953),_0x37aabf[_0x5b5760(0x24a)]&&!hasText(_0xa1e234['app'])&&!hasText(_0xa1e234[_0x5b5760(0x209)])&&(_0xa1e234[_0x5b5760(0x24a)]=_0x37aabf[_0x5b5760(0x24a)]),_0x37aabf[_0x5b5760(0x246)]&&!hasText(_0xa1e234[_0x5b5760(0x246)])&&(_0xa1e234['env']=_0x37aabf[_0x5b5760(0x246)]);}function renderDynamicCommandHelp(_0x1edbd1){const _0x13b87c=a39_0x1893,_0x34a88b=[_0x13b87c(0x20a),_0x13b87c(0x254)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x243)],_0x13b87c(0x226)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x218)]];if(_0x1edbd1['target'][_0x13b87c(0x22c)])_0x34a88b[_0x13b87c(0x24d)](_0x13b87c(0x245)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x22c)]);if(_0x1edbd1['target'][_0x13b87c(0x23a)])_0x34a88b[_0x13b87c(0x24d)](_0x13b87c(0x238)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x23a)]);if(_0x1edbd1[_0x13b87c(0x258)]['sqlCode'])_0x34a88b[_0x13b87c(0x24d)]('\x20\x20\x20\x20sqlCode:\x20'+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x23e)]);if(_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x24e)])_0x34a88b[_0x13b87c(0x24d)]('\x20\x20\x20\x20functionName:\x20'+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x24e)]);if(_0x1edbd1[_0x13b87c(0x239)]['length']>0x0){_0x34a88b['push']('','\x20\x20MAP\x20TO');for(const _0x28ebe9 of _0x1edbd1[_0x13b87c(0x239)]){_0x34a88b[_0x13b87c(0x24d)](_0x13b87c(0x232)+(_0x28ebe9[_0x13b87c(0x253)]||_0x13b87c(0x255))+_0x13b87c(0x23c)+_0x28ebe9[_0x13b87c(0x258)]+(_0x28ebe9[_0x13b87c(0x20e)]?'.'+_0x28ebe9[_0x13b87c(0x20e)]:''));}}return _0x34a88b['join']('\x0a');}function targetPreview(_0x48c040){const _0x216a4=a39_0x1893;return{'kind':_0x48c040[_0x216a4(0x243)],'command':_0x48c040[_0x216a4(0x218)],'appRef':_0x48c040[_0x216a4(0x244)],'datasetCode':_0x48c040['datasetCode'],'datatable':_0x48c040[_0x216a4(0x23a)],'sqlCode':_0x48c040['sqlCode'],'bffCode':_0x48c040['bffCode'],'bffId':_0x48c040['bffId'],'functionName':_0x48c040[_0x216a4(0x24e)]};}function normalizeScalarParams(_0x3b9885){const _0x158bc5=a39_0x1893;return Object[_0x158bc5(0x200)](Object[_0x158bc5(0x1f7)](_0x3b9885)['filter'](([,_0x5a7c5f])=>typeof _0x5a7c5f===_0x158bc5(0x203)||typeof _0x5a7c5f==='number'));}function hasText(_0x17586c){const _0x8c62fc=a39_0x1893;return typeof _0x17586c==='string'&&_0x17586c['trim']()[_0x8c62fc(0x242)]>0x0;}function a39_0x1893(_0x45c361,_0x51633f){_0x45c361=_0x45c361-0x1f4;const _0x4eb257=a39_0x4eb2();let _0x1893f1=_0x4eb257[_0x45c361];return _0x1893f1;}function isPrimitiveFlagDefault(_0x1afd16){const _0x1113c4=a39_0x1893;return _0x1afd16===undefined||typeof _0x1afd16===_0x1113c4(0x203)||typeof _0x1afd16===_0x1113c4(0x20d)||typeof _0x1afd16===_0x1113c4(0x235);}
1
+ (function(_0x52e61f,_0x3304c0){const _0x296458=a59_0x21f5,_0xf6c0dc=_0x52e61f();while(!![]){try{const _0x182f9d=parseInt(_0x296458(0xf2))/0x1+-parseInt(_0x296458(0x128))/0x2+-parseInt(_0x296458(0x118))/0x3+-parseInt(_0x296458(0xf1))/0x4+parseInt(_0x296458(0x12c))/0x5+-parseInt(_0x296458(0xdc))/0x6+parseInt(_0x296458(0xe2))/0x7*(parseInt(_0x296458(0x103))/0x8);if(_0x182f9d===_0x3304c0)break;else _0xf6c0dc['push'](_0xf6c0dc['shift']());}catch(_0x4ef77f){_0xf6c0dc['push'](_0xf6c0dc['shift']());}}}(a59_0xcf23,0xbdc78));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(_0x5d9561,_0x30b9f8){const _0x37898c=a59_0x21f5,_0x105e2b=listLocalServiceTrees();let _0x4951b6;for(const _0x218f2f of _0x105e2b){const _0xb581eb=matchServiceTreeCommand(_0x218f2f,_0x5d9561);if(!_0xb581eb)continue;(!_0x4951b6||_0xb581eb[_0x37898c(0xe8)][_0x37898c(0xde)]['length']>_0x4951b6['command'][_0x37898c(0xde)][_0x37898c(0x119)])&&(_0x4951b6={'tree':_0x218f2f,'command':_0xb581eb[_0x37898c(0xe8)],'remainingArgs':_0xb581eb[_0x37898c(0x120)]});}if(!_0x4951b6)return undefined;const _0x54e395={..._0x30b9f8};return applyAppBinding(_0x4951b6['tree'],_0x4951b6[_0x37898c(0xe8)],_0x54e395),{'definition':buildDynamicCommandDefinition(_0x4951b6[_0x37898c(0xff)],_0x4951b6['command']),'args':_0x4951b6['remainingArgs'],'flags':_0x54e395,'tree':_0x4951b6[_0x37898c(0xff)],'command':_0x4951b6[_0x37898c(0xe8)]};}export function generateDynamicServiceHelp(_0x3e5efa){const _0x150a6d=a59_0x21f5,_0xc06939=listLocalServiceTrees()[_0x150a6d(0x124)](_0x273e00=>_0x273e00[_0x150a6d(0x10d)][_0x150a6d(0xed)]===_0x3e5efa);if(!_0xc06939)return undefined;const _0x44f26a=[CLI_BIN_NAME+'\x20'+_0x3e5efa+_0x150a6d(0xf4),'',_0xc06939[_0x150a6d(0x10d)][_0x150a6d(0x10f)]||_0x3e5efa,_0xc06939[_0x150a6d(0x10d)][_0x150a6d(0xfa)]?'\x20\x20'+_0xc06939[_0x150a6d(0x10d)]['description']:'','',_0x150a6d(0x13c),..._0xc06939['commands']['map'](_0x163462=>{const _0x1ac387=_0x150a6d,_0x265109=_0x163462[_0x1ac387(0xde)][_0x1ac387(0x106)](0x1)[_0x1ac387(0x137)]('\x20'),_0x17f6f4=_0x163462[_0x1ac387(0xfb)]===_0x1ac387(0xf0)?'':'\x20['+_0x163462['risk']+']';return'\x20\x20'+_0x265109[_0x1ac387(0xe9)](0x18)+'\x20'+(_0x163462['description']||'')+_0x17f6f4;}),'',_0x150a6d(0x121)+CLI_BIN_NAME+_0x150a6d(0xe7)+_0x3e5efa+_0x150a6d(0x127)][_0x150a6d(0x135)](Boolean);return _0x44f26a[_0x150a6d(0x137)]('\x0a');}export function listDynamicServiceEntries(){const _0x43f906=a59_0x21f5;return listLocalServices()[_0x43f906(0x102)](_0x1bc266=>{const _0x17e127=_0x43f906,_0x414730=_0x1bc266[_0x17e127(0x134)];return{'service':_0x414730[_0x17e127(0x10d)]['code'],'label':_0x414730[_0x17e127(0x10d)]['name']||_0x414730['service'][_0x17e127(0xed)],'commands':_0x414730[_0x17e127(0xf3)][_0x17e127(0x102)](_0x5ea1c1=>({'command':dynamicCommandName(_0x5ea1c1),'description':_0x5ea1c1['description']||'Run\x20service\x20command\x20'+_0x5ea1c1[_0x17e127(0xdd)],'tag':riskTag(_0x5ea1c1['risk'])}))};});}export function getDynamicServiceEntry(_0x87ebd9){const _0x28e7bc=a59_0x21f5;return listDynamicServiceEntries()['find'](_0x2fbaa9=>_0x2fbaa9[_0x28e7bc(0x10d)]===_0x87ebd9);}export function listDynamicServiceDefinitions(_0x3e4c4e){const _0x3f0c38=a59_0x21f5;return listLocalServiceTrees()[_0x3f0c38(0x135)](_0x4319ee=>!_0x3e4c4e||_0x4319ee['service'][_0x3f0c38(0xed)]===_0x3e4c4e)[_0x3f0c38(0x12e)](_0x1ea903=>_0x1ea903[_0x3f0c38(0xf3)][_0x3f0c38(0x102)](_0x5df139=>buildDynamicCommandDefinition(_0x1ea903,_0x5df139)));}export function getDynamicServiceDefinitions(_0xe5d631){const _0x1ef23d=a59_0x21f5,_0x52ce99=listDynamicServiceDefinitions(_0xe5d631);return _0x52ce99[_0x1ef23d(0x119)]>0x0?_0x52ce99:undefined;}export function findDynamicServiceDefinition(_0x11f52a,_0x5ceb53){const _0xb5c878=a59_0x21f5;return listDynamicServiceDefinitions(_0x11f52a)[_0xb5c878(0x124)](_0x16546b=>_0x16546b['command']===_0x5ceb53);}export function buildDynamicCommandDefinition(_0x2e539e,_0x541670){const _0x26fc0a=a59_0x21f5;return{'service':_0x2e539e['service'][_0x26fc0a(0xed)],'command':dynamicCommandName(_0x541670),'description':_0x541670[_0x26fc0a(0xfa)]||_0x26fc0a(0xee)+_0x541670[_0x26fc0a(0xdd)],'risk':_0x541670['risk'],..._0x541670['risk']==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x541670)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x541670[_0x26fc0a(0x115)][_0x26fc0a(0x102)](_0x10e751=>({'name':_0x10e751[_0x26fc0a(0x10f)],'description':_0x10e751['description']||_0x10e751['name'],'required':_0x10e751[_0x26fc0a(0x104)]})),'flags':_0x541670[_0x26fc0a(0x112)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x541670),async 'dryRun'(_0x31b708){const _0x453b46=_0x26fc0a,_0x4d1040=await compilePlan(_0x541670,_0x31b708);return{'method':'SERVICE_TREE','url':_0x541670[_0x453b46(0xdd)],'body':{'target':targetPreview(_0x4d1040),'params':_0x4d1040[_0x453b46(0x114)]},'description':_0x453b46(0x131)+_0x541670[_0x453b46(0xdd)]};},async 'execute'(_0x70dcb7){const _0x4d7c0e=_0x26fc0a,_0x5ea731=await compilePlan(_0x541670,_0x70dcb7),_0x4e9fbe=Date[_0x4d7c0e(0xd7)](),_0x161713=await executePlan(_0x5ea731,_0x541670,_0x70dcb7),_0x5a8e5b=Date['now']()-_0x4e9fbe;return{'ok':!![],'data':{'service':_0x2e539e[_0x4d7c0e(0x10d)],'command':_0x541670[_0x4d7c0e(0xdd)],'target':targetPreview(_0x5ea731),'result':_0x161713,'elapsed':_0x5a8e5b},'message':_0x4d7c0e(0x130)+_0x541670['cliPath']+_0x4d7c0e(0xdb)+_0x5a8e5b+'ms'};}};}function buildDynamicConfirmationDescription(_0x442119){const _0x8007be=a59_0x21f5,_0x1a8ef9=_0x442119['description']||_0x442119[_0x8007be(0xdd)],_0x59123b=_0x442119[_0x8007be(0xfb)]===_0x8007be(0xea)?_0x8007be(0x12f):_0x8007be(0x13b);return _0x8007be(0x136)+_0x1a8ef9+'”。'+_0x59123b;}function dynamicCommandName(_0x181305){const _0x456761=a59_0x21f5;return _0x181305['fullPath'][_0x456761(0x106)](0x1)[_0x456761(0x137)]('\x20');}function a59_0x21f5(_0x2e4199,_0x381a60){_0x2e4199=_0x2e4199-0xd2;const _0xcf2322=a59_0xcf23();let _0x21f59a=_0xcf2322[_0x2e4199];return _0x21f59a;}function riskTag(_0x2325c3){const _0x53ed17=a59_0x21f5;return _0x2325c3===_0x53ed17(0xf0)?'':_0x53ed17(0xeb)+_0x2325c3+']';}function flagToCommandFlag(_0x246ec9){const _0x2b2618=a59_0x21f5;return{'name':_0x246ec9[_0x2b2618(0x10a)],'type':_0x246ec9[_0x2b2618(0xd8)]==='json'?_0x2b2618(0x10b):_0x246ec9[_0x2b2618(0xd8)],'description':_0x246ec9[_0x2b2618(0xfa)]||_0x246ec9[_0x2b2618(0x10f)],'required':_0x246ec9[_0x2b2618(0x104)],'default':isPrimitiveFlagDefault(_0x246ec9['default'])?_0x246ec9[_0x2b2618(0x105)]:undefined,'enum':_0x246ec9[_0x2b2618(0x126)]};}async function compilePlan(_0x45d759,_0x8f302b){const _0x5a80b7=a59_0x21f5;return compileServiceTreeCommand(_0x45d759,{'flags':_0x8f302b[_0x5a80b7(0xd3)],'args':_0x8f302b[_0x5a80b7(0x115)],'context':await buildServiceContext(_0x45d759,_0x8f302b)});}async function buildServiceContext(_0x3dc57b,_0x228ce2){const _0x3ec258=a59_0x21f5,_0x4bdabf={'appCode':_0x228ce2[_0x3ec258(0x12b)],'env':_0x228ce2['envName'],'envName':_0x228ce2['envName']};if(!usesRuntimeContext(_0x3dc57b))return _0x4bdabf;const _0x50fa4b=await getLoginUserInfo(),_0x47f7dd=pickFirst(_0x50fa4b['userId'],_0x50fa4b['id']);return{..._0x4bdabf,'user':_0x50fa4b,'userId':_0x47f7dd,'id':_0x50fa4b['id'],'username':pickFirst(_0x50fa4b[_0x3ec258(0x10e)],_0x50fa4b[_0x3ec258(0xf8)],_0x50fa4b[_0x3ec258(0xd5)]),'userName':_0x50fa4b[_0x3ec258(0xf8)],'nickname':pickFirst(_0x50fa4b['nickname'],_0x50fa4b[_0x3ec258(0x10c)]),'nickName':_0x50fa4b[_0x3ec258(0x10c)],'tenantCode':_0x50fa4b[_0x3ec258(0xe3)],'employeeId':_0x50fa4b[_0x3ec258(0x11b)]};}function a59_0xcf23(){const _0xb24b2c=['tableName','employeeId','\x20requires\x20target.sqlCode.','scriptName','startsWith','sqlCode','remainingArgs','Use\x20`','target','\x20\x20\x20\x20sqlCode:\x20','find','context.','enum','`\x20to\x20inspect\x20the\x20manifest.','2672570EsRFmJ','Unknown\x20appRef\x20\x22','appRef','appCode','3426420gCauqv','boolean','flatMap','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','Service\x20command\x20','Preview\x20dynamic\x20service\x20command:\x20','mapTo','appBindings','normalizedManifest','filter','将通过\x20Service\x20Tree\x20执行“','join','\x20\x20\x20\x20functionName:\x20','bff','dbtableConfig','该命令被清单标记为写入,可能修改业务数据或服务状态。','Commands:','ctx.','rawFlags','\x20requires\x20target.functionName.','loginName','source','now','type','operator','datasetCode','\x20completed\x20in\x20','7667688toBdmB','cliPath','fullPath','env','validation','\x20\x20\x20\x20kind:\x20\x20\x20\x20','7snCPmi','tenantCode','kind','\x20\x20\x20\x20','app','\x20service\x20detail\x20--service\x20','command','padEnd','high-risk-write','\x20\x20[','Cannot\x20resolve\x20datatable\x20\x22','code','Run\x20service\x20command\x20','\x20\x20\x20\x20command:\x20','read','1778644UgIaiQ','425582fwtIfA','commands','\x20<command>\x20[flags]','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','fromEntries','bffId','userName','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','description','risk','\x20\x20\x20\x20datasetCode:\x20','datatable','push','tree','Unsupported\x20service\x20target\x20kind:\x20','bffCode','map','23093912tlpegi','required','default','slice','\x20\x20MAP\x20TO','appcode','const','cliName','string','nickName','service','username','name','trim','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','flags','\x20->\x20','params','args','\x20\x20SERVICE\x20TREE\x20TARGET','sql','484125cBYtOB','length'];a59_0xcf23=function(){return _0xb24b2c;};return a59_0xcf23();}function usesRuntimeContext(_0x489090){const _0x1bcee3=a59_0x21f5;return _0x489090[_0x1bcee3(0x132)]['some'](_0x2cb9a6=>typeof _0x2cb9a6[_0x1bcee3(0xd6)]===_0x1bcee3(0x10b)&&(_0x2cb9a6['source'][_0x1bcee3(0x11e)](_0x1bcee3(0x125))||_0x2cb9a6[_0x1bcee3(0xd6)][_0x1bcee3(0x11e)](_0x1bcee3(0xd2))));}function pickFirst(..._0x21fd2d){const _0x1e84d6=a59_0x21f5;return _0x21fd2d[_0x1e84d6(0x124)](_0x53fb1a=>_0x53fb1a!==undefined&&_0x53fb1a!==null);}async function executePlan(_0x41044c,_0x321790,_0x1557c5){const _0x1285e0=a59_0x21f5;if(_0x41044c['kind']==='data'){const _0x29be3a=await resolveDatasetCode(_0x41044c,_0x321790,_0x1557c5);return executeData(_0x29be3a,_0x41044c[_0x1285e0(0xe8)],_0x41044c[_0x1285e0(0x114)]);}if(_0x41044c[_0x1285e0(0xe4)]===_0x1285e0(0x117)){if(!_0x41044c['sqlCode'])throw CliErrors[_0x1285e0(0xe0)]('Service\x20command\x20'+_0x321790[_0x1285e0(0xdd)]+_0x1285e0(0x11c));return executeSdkSql(_0x41044c[_0x1285e0(0x11f)],normalizeScalarParams(_0x41044c[_0x1285e0(0x114)]));}if(_0x41044c[_0x1285e0(0xe4)]===_0x1285e0(0x139)){const _0x5aef51=_0x41044c[_0x1285e0(0x11d)]||_0x41044c[_0x1285e0(0x101)]||(_0x41044c['bffId']==null?'':String(_0x41044c[_0x1285e0(0xf7)]));if(!_0x5aef51)throw CliErrors[_0x1285e0(0xe0)](_0x1285e0(0x130)+_0x321790['cliPath']+_0x1285e0(0xd4));return executeSdkBff(_0x5aef51,_0x41044c[_0x1285e0(0x114)]);}throw CliErrors['validation'](_0x1285e0(0x100)+_0x41044c[_0x1285e0(0xe4)]);}async function resolveDatasetCode(_0x3dadcc,_0xfa36ca,_0x41cdb5){const _0x3f1b70=a59_0x21f5;if(_0x3dadcc['datasetCode'])return _0x3dadcc['datasetCode'];if(!_0x3dadcc[_0x3f1b70(0xfd)])throw CliErrors[_0x3f1b70(0xe0)](_0x3f1b70(0x130)+_0xfa36ca['cliPath']+_0x3f1b70(0xf9));const _0x305375=await listDatasets(_0x41cdb5[_0x3f1b70(0x12b)]),_0x54b0b1=_0x305375[_0x3f1b70(0x124)](_0x314583=>_0x314583[_0x3f1b70(0x13a)]?.[_0x3f1b70(0x11a)]===_0x3dadcc[_0x3f1b70(0xfd)]);if(!_0x54b0b1?.[_0x3f1b70(0xed)])throw CliErrors[_0x3f1b70(0xe0)](_0x3f1b70(0xec)+_0x3dadcc[_0x3f1b70(0xfd)]+_0x3f1b70(0x111)+_0x41cdb5['appCode']+'.',_0x3f1b70(0xf5));return _0x54b0b1[_0x3f1b70(0xed)];}function applyAppBinding(_0x42afed,_0x273a67,_0x524f9a){const _0xb2e1a2=a59_0x21f5,_0x215c9f=_0x273a67[_0xb2e1a2(0x122)][_0xb2e1a2(0x12a)];if(!_0x215c9f)return;const _0x2a2811=_0x42afed[_0xb2e1a2(0x133)][_0x215c9f];if(!_0x2a2811)throw CliErrors['validation'](_0xb2e1a2(0x129)+_0x215c9f+'\x22\x20in\x20service\x20command\x20'+_0x273a67[_0xb2e1a2(0xdd)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0xcb28d0=_0x2a2811[_0xb2e1a2(0x108)]||_0x2a2811[_0xb2e1a2(0x12b)];_0xcb28d0&&!hasText(_0x524f9a['appcode'])&&(_0x524f9a['appcode']=_0xcb28d0),_0x2a2811[_0xb2e1a2(0xe6)]&&!hasText(_0x524f9a[_0xb2e1a2(0xe6)])&&!hasText(_0x524f9a[_0xb2e1a2(0x108)])&&(_0x524f9a[_0xb2e1a2(0xe6)]=_0x2a2811[_0xb2e1a2(0xe6)]),_0x2a2811[_0xb2e1a2(0xdf)]&&!hasText(_0x524f9a[_0xb2e1a2(0xdf)])&&(_0x524f9a[_0xb2e1a2(0xdf)]=_0x2a2811['env']);}function renderDynamicCommandHelp(_0x199a25){const _0x2ce2c7=a59_0x21f5,_0x5db1cc=[_0x2ce2c7(0x116),_0x2ce2c7(0xe1)+_0x199a25[_0x2ce2c7(0x122)][_0x2ce2c7(0xe4)],_0x2ce2c7(0xef)+_0x199a25[_0x2ce2c7(0x122)]['command']];if(_0x199a25['target'][_0x2ce2c7(0xda)])_0x5db1cc['push'](_0x2ce2c7(0xfc)+_0x199a25['target']['datasetCode']);if(_0x199a25[_0x2ce2c7(0x122)][_0x2ce2c7(0xfd)])_0x5db1cc[_0x2ce2c7(0xfe)]('\x20\x20\x20\x20datatable:\x20'+_0x199a25[_0x2ce2c7(0x122)]['datatable']);if(_0x199a25[_0x2ce2c7(0x122)][_0x2ce2c7(0x11f)])_0x5db1cc[_0x2ce2c7(0xfe)](_0x2ce2c7(0x123)+_0x199a25[_0x2ce2c7(0x122)][_0x2ce2c7(0x11f)]);if(_0x199a25['target'][_0x2ce2c7(0x11d)])_0x5db1cc['push'](_0x2ce2c7(0x138)+_0x199a25[_0x2ce2c7(0x122)][_0x2ce2c7(0x11d)]);if(_0x199a25[_0x2ce2c7(0x132)]['length']>0x0){_0x5db1cc[_0x2ce2c7(0xfe)]('',_0x2ce2c7(0x107));for(const _0x4ee534 of _0x199a25[_0x2ce2c7(0x132)]){_0x5db1cc[_0x2ce2c7(0xfe)](_0x2ce2c7(0xe5)+(_0x4ee534[_0x2ce2c7(0xd6)]||_0x2ce2c7(0x109))+_0x2ce2c7(0x113)+_0x4ee534[_0x2ce2c7(0x122)]+(_0x4ee534[_0x2ce2c7(0xd9)]?'.'+_0x4ee534[_0x2ce2c7(0xd9)]:''));}}return _0x5db1cc['join']('\x0a');}function targetPreview(_0x475a21){const _0xeadc65=a59_0x21f5;return{'kind':_0x475a21[_0xeadc65(0xe4)],'command':_0x475a21[_0xeadc65(0xe8)],'appRef':_0x475a21[_0xeadc65(0x12a)],'datasetCode':_0x475a21['datasetCode'],'datatable':_0x475a21[_0xeadc65(0xfd)],'sqlCode':_0x475a21[_0xeadc65(0x11f)],'bffCode':_0x475a21[_0xeadc65(0x101)],'bffId':_0x475a21[_0xeadc65(0xf7)],'functionName':_0x475a21[_0xeadc65(0x11d)]};}function normalizeScalarParams(_0x444a74){const _0x4d1515=a59_0x21f5;return Object[_0x4d1515(0xf6)](Object['entries'](_0x444a74)['filter'](([,_0xe83ba])=>typeof _0xe83ba===_0x4d1515(0x10b)||typeof _0xe83ba==='number'));}function hasText(_0x26dc5b){const _0x5818b6=a59_0x21f5;return typeof _0x26dc5b===_0x5818b6(0x10b)&&_0x26dc5b[_0x5818b6(0x110)]()[_0x5818b6(0x119)]>0x0;}function isPrimitiveFlagDefault(_0x4665a4){const _0x1ea6e0=a59_0x21f5;return _0x4665a4===undefined||typeof _0x4665a4===_0x1ea6e0(0x10b)||typeof _0x4665a4==='number'||typeof _0x4665a4===_0x1ea6e0(0x12d);}
@@ -1 +1 @@
1
- (function(_0x3c1108,_0x18b5dd){const _0x4c0b98=a40_0x52a5,_0x492368=_0x3c1108();while(!![]){try{const _0x784c43=parseInt(_0x4c0b98(0x11d))/0x1+-parseInt(_0x4c0b98(0x11b))/0x2+parseInt(_0x4c0b98(0x124))/0x3+parseInt(_0x4c0b98(0x109))/0x4*(parseInt(_0x4c0b98(0x10d))/0x5)+parseInt(_0x4c0b98(0x115))/0x6*(-parseInt(_0x4c0b98(0x119))/0x7)+parseInt(_0x4c0b98(0x121))/0x8+parseInt(_0x4c0b98(0x116))/0x9;if(_0x784c43===_0x18b5dd)break;else _0x492368['push'](_0x492368['shift']());}catch(_0xb53b28){_0x492368['push'](_0x492368['shift']());}}}(a40_0x5e82,0x523c3));export function adaptServiceTreeManifestForLegacyFramework(_0x4ce484){const _0x438195=a40_0x52a5,_0x55e299=cloneJsonValue(_0x4ce484),_0x5dd9d4=[];if(!isObjectRecord(_0x55e299))return{'manifest':_0x55e299,'errors':_0x5dd9d4};return Array[_0x438195(0x128)](_0x55e299[_0x438195(0x11e)])&&_0x55e299[_0x438195(0x11e)][_0x438195(0x11c)]((_0x2782e4,_0x66bed5)=>{const _0x28fb3f=_0x438195;if(!isObjectRecord(_0x2782e4))return;adaptBffTarget(_0x2782e4[_0x28fb3f(0x126)],_0x28fb3f(0x10b)+_0x66bed5+_0x28fb3f(0x120),_0x5dd9d4);}),adaptResources(_0x55e299[_0x438195(0x122)],'$.resources',_0x5dd9d4),{'manifest':_0x55e299,'errors':_0x5dd9d4};}export function toPublicServiceTreeTarget(_0x55e02d){const _0x4c44e0=a40_0x52a5,{scriptName:_0x3c38f5,..._0x227038}=_0x55e02d;return typeof _0x3c38f5===_0x4c44e0(0x127)&&_0x3c38f5[_0x4c44e0(0x10a)]()&&(_0x227038[_0x4c44e0(0x108)]=_0x3c38f5),_0x227038;}export function toPublicNormalizedServiceTree(_0x29f4fa){const _0xf1232b=a40_0x52a5;return{..._0x29f4fa,'commands':_0x29f4fa['commands'][_0xf1232b(0x112)](_0x478d9b=>({..._0x478d9b,'target':toPublicServiceTreeTarget(_0x478d9b[_0xf1232b(0x126)])}))};}function adaptResources(_0x1b26ec,_0x5a3e6f,_0x98c14b){const _0x3a90c9=a40_0x52a5;if(!isObjectRecord(_0x1b26ec))return;for(const [_0x2a8f3f,_0x3190a0]of Object[_0x3a90c9(0x125)](_0x1b26ec)){if(!isObjectRecord(_0x3190a0))continue;const _0x4fce64=_0x5a3e6f+'.'+_0x2a8f3f;if(isObjectRecord(_0x3190a0[_0x3a90c9(0x11f)]))for(const [_0x6f83cd,_0x498419]of Object[_0x3a90c9(0x125)](_0x3190a0[_0x3a90c9(0x11f)])){if(!isObjectRecord(_0x498419))continue;const _0x16ee8a=_0x4fce64+'.actions.'+_0x6f83cd,_0x5e1734=isObjectRecord(_0x498419[_0x3a90c9(0x126)])&&_0x498419['target']['kind']===_0x3a90c9(0x123);adaptBffTarget(_0x498419[_0x3a90c9(0x126)],_0x16ee8a+'.target',_0x98c14b),(_0x5e1734||isBffAction(_0x498419))&&adaptFunctionNameField(_0x498419,_0x16ee8a,_0x98c14b);}adaptResources(_0x3190a0['resources'],_0x4fce64+'.resources',_0x98c14b);}}function adaptBffTarget(_0x12bcf2,_0x5140e2,_0x3bea9a){const _0x4c0752=a40_0x52a5;if(!isObjectRecord(_0x12bcf2)||_0x12bcf2['kind']!==_0x4c0752(0x123))return;adaptFunctionNameField(_0x12bcf2,_0x5140e2,_0x3bea9a);}function adaptFunctionNameField(_0x58ee43,_0x4810e9,_0x294a09){const _0x5abc12=a40_0x52a5;Object[_0x5abc12(0x113)][_0x5abc12(0x118)][_0x5abc12(0x11a)](_0x58ee43,_0x5abc12(0x10c))&&_0x294a09[_0x5abc12(0x110)]({'level':'error','path':_0x4810e9+'.scriptName','message':_0x5abc12(0x117)});if(Object[_0x5abc12(0x113)][_0x5abc12(0x118)][_0x5abc12(0x11a)](_0x58ee43,_0x5abc12(0x108))){if(typeof _0x58ee43[_0x5abc12(0x108)]!==_0x5abc12(0x127)||!_0x58ee43['functionName']['trim']()){_0x294a09[_0x5abc12(0x110)]({'level':_0x5abc12(0x129),'path':_0x4810e9+_0x5abc12(0x10e),'message':_0x5abc12(0x114)}),delete _0x58ee43[_0x5abc12(0x108)];return;}_0x58ee43[_0x5abc12(0x10c)]=_0x58ee43[_0x5abc12(0x108)],delete _0x58ee43[_0x5abc12(0x108)];}}function a40_0x5e82(){const _0x409ac1=['4692592UQFgJw','resources','bff','832257SyxhXs','entries','target','string','isArray','error','functionName','14684jiJHjk','trim','$.commands[','scriptName','50ispKQu','.functionName','bff.exec','push','kind','map','prototype','functionName\x20must\x20be\x20a\x20non-empty\x20string.','6htiWSC','3199482GFGXDj','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','hasOwnProperty','2512797tEMMtD','call','1233918dxIfac','forEach','56564qRJTtc','commands','actions','].target'];a40_0x5e82=function(){return _0x409ac1;};return a40_0x5e82();}function a40_0x52a5(_0xee3503,_0x263dcc){_0xee3503=_0xee3503-0x108;const _0x5e829c=a40_0x5e82();let _0x52a5c9=_0x5e829c[_0xee3503];return _0x52a5c9;}function isBffAction(_0x1fc67d){const _0x1f0997=a40_0x52a5;return _0x1fc67d[_0x1f0997(0x111)]===_0x1f0997(0x123)||_0x1fc67d['action']===_0x1f0997(0x10f)||_0x1fc67d[_0x1f0997(0x126)]==='bff.exec';}function cloneJsonValue(_0x3f2779){const _0x2d0273=a40_0x52a5;if(Array['isArray'](_0x3f2779))return _0x3f2779[_0x2d0273(0x112)](_0x5f0f52=>cloneJsonValue(_0x5f0f52));if(isObjectRecord(_0x3f2779))return Object['fromEntries'](Object[_0x2d0273(0x125)](_0x3f2779)[_0x2d0273(0x112)](([_0x249feb,_0x5cd3ce])=>[_0x249feb,cloneJsonValue(_0x5cd3ce)]));return _0x3f2779;}function isObjectRecord(_0x4388ff){return Boolean(_0x4388ff)&&typeof _0x4388ff==='object'&&!Array['isArray'](_0x4388ff);}
1
+ (function(_0x35bd96,_0x1e98b4){const _0x2f2f72=a60_0x4b53,_0x5c54e5=_0x35bd96();while(!![]){try{const _0x54f3d8=parseInt(_0x2f2f72(0x1cd))/0x1+-parseInt(_0x2f2f72(0x1cb))/0x2*(-parseInt(_0x2f2f72(0x1d1))/0x3)+parseInt(_0x2f2f72(0x1c9))/0x4*(-parseInt(_0x2f2f72(0x1c3))/0x5)+-parseInt(_0x2f2f72(0x1d0))/0x6*(parseInt(_0x2f2f72(0x1e0))/0x7)+-parseInt(_0x2f2f72(0x1da))/0x8+parseInt(_0x2f2f72(0x1dc))/0x9+parseInt(_0x2f2f72(0x1c5))/0xa;if(_0x54f3d8===_0x1e98b4)break;else _0x5c54e5['push'](_0x5c54e5['shift']());}catch(_0x4a16b1){_0x5c54e5['push'](_0x5c54e5['shift']());}}}(a60_0x39cc,0xd0317));export function adaptServiceTreeManifestForLegacyFramework(_0x3c8db5){const _0x202b5b=a60_0x4b53,_0x2fd530=cloneJsonValue(_0x3c8db5),_0x1d698f=[];if(!isObjectRecord(_0x2fd530))return{'manifest':_0x2fd530,'errors':_0x1d698f};return Array[_0x202b5b(0x1e2)](_0x2fd530[_0x202b5b(0x1d5)])&&_0x2fd530[_0x202b5b(0x1d5)]['forEach']((_0x3bab2a,_0x5e1b33)=>{const _0x46174d=_0x202b5b;if(!isObjectRecord(_0x3bab2a))return;adaptBffTarget(_0x3bab2a[_0x46174d(0x1c0)],_0x46174d(0x1d9)+_0x5e1b33+'].target',_0x1d698f);}),adaptResources(_0x2fd530['resources'],_0x202b5b(0x1ce),_0x1d698f),{'manifest':_0x2fd530,'errors':_0x1d698f};}export function toPublicServiceTreeTarget(_0x4863fd){const _0x3a2709=a60_0x4b53,{scriptName:_0x554436,..._0x35b78b}=_0x4863fd;return typeof _0x554436===_0x3a2709(0x1d8)&&_0x554436[_0x3a2709(0x1c8)]()&&(_0x35b78b[_0x3a2709(0x1dd)]=_0x554436),_0x35b78b;}export function toPublicNormalizedServiceTree(_0x9a2b99){const _0x53504d=a60_0x4b53;return{..._0x9a2b99,'commands':_0x9a2b99[_0x53504d(0x1d5)][_0x53504d(0x1c2)](_0x5736f8=>({..._0x5736f8,'target':toPublicServiceTreeTarget(_0x5736f8['target'])}))};}function adaptResources(_0x28030c,_0x4dd19e,_0x3bceda){const _0x5be3f7=a60_0x4b53;if(!isObjectRecord(_0x28030c))return;for(const [_0x5eb6e7,_0x19cd56]of Object[_0x5be3f7(0x1d3)](_0x28030c)){if(!isObjectRecord(_0x19cd56))continue;const _0x3f39c7=_0x4dd19e+'.'+_0x5eb6e7;if(isObjectRecord(_0x19cd56['actions']))for(const [_0x2dca57,_0x36a2c1]of Object[_0x5be3f7(0x1d3)](_0x19cd56[_0x5be3f7(0x1db)])){if(!isObjectRecord(_0x36a2c1))continue;const _0x298e23=_0x3f39c7+_0x5be3f7(0x1e1)+_0x2dca57,_0x45b013=isObjectRecord(_0x36a2c1[_0x5be3f7(0x1c0)])&&_0x36a2c1[_0x5be3f7(0x1c0)][_0x5be3f7(0x1ca)]===_0x5be3f7(0x1be);adaptBffTarget(_0x36a2c1['target'],_0x298e23+_0x5be3f7(0x1cc),_0x3bceda),(_0x45b013||isBffAction(_0x36a2c1))&&adaptFunctionNameField(_0x36a2c1,_0x298e23,_0x3bceda);}adaptResources(_0x19cd56['resources'],_0x3f39c7+_0x5be3f7(0x1bf),_0x3bceda);}}function adaptBffTarget(_0x3c9348,_0x39942d,_0x3aea17){const _0x7dfa75=a60_0x4b53;if(!isObjectRecord(_0x3c9348)||_0x3c9348[_0x7dfa75(0x1ca)]!=='bff')return;adaptFunctionNameField(_0x3c9348,_0x39942d,_0x3aea17);}function a60_0x39cc(){const _0x14dc24=['isArray','bff','.resources','target','call','map','710SqsjOV','.scriptName','30770920XhkziS','bff.exec','object','trim','47516flHfhj','kind','3364IgRmZe','.target','633542hCfsWv','$.resources','prototype','248580qxGIbE','1356xwjrdu','hasOwnProperty','entries','scriptName','commands','push','error','string','$.commands[','10969512jbmOpA','actions','551862QDyNLb','functionName','fromEntries','action','105VwzWet','.actions.'];a60_0x39cc=function(){return _0x14dc24;};return a60_0x39cc();}function a60_0x4b53(_0x17b6b9,_0x5571e8){_0x17b6b9=_0x17b6b9-0x1be;const _0x39ccc0=a60_0x39cc();let _0x4b5317=_0x39ccc0[_0x17b6b9];return _0x4b5317;}function adaptFunctionNameField(_0x183e77,_0x5d0b4f,_0x13db7b){const _0xe60468=a60_0x4b53;Object['prototype'][_0xe60468(0x1d2)][_0xe60468(0x1c1)](_0x183e77,_0xe60468(0x1d4))&&_0x13db7b[_0xe60468(0x1d6)]({'level':_0xe60468(0x1d7),'path':_0x5d0b4f+_0xe60468(0x1c4),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0xe60468(0x1cf)][_0xe60468(0x1d2)]['call'](_0x183e77,_0xe60468(0x1dd))){if(typeof _0x183e77['functionName']!=='string'||!_0x183e77[_0xe60468(0x1dd)][_0xe60468(0x1c8)]()){_0x13db7b[_0xe60468(0x1d6)]({'level':_0xe60468(0x1d7),'path':_0x5d0b4f+'.functionName','message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x183e77[_0xe60468(0x1dd)];return;}_0x183e77['scriptName']=_0x183e77[_0xe60468(0x1dd)],delete _0x183e77[_0xe60468(0x1dd)];}}function isBffAction(_0x2a4187){const _0x11dbe5=a60_0x4b53;return _0x2a4187[_0x11dbe5(0x1ca)]===_0x11dbe5(0x1be)||_0x2a4187[_0x11dbe5(0x1df)]===_0x11dbe5(0x1c6)||_0x2a4187[_0x11dbe5(0x1c0)]===_0x11dbe5(0x1c6);}function cloneJsonValue(_0x58301c){const _0x4d04e3=a60_0x4b53;if(Array[_0x4d04e3(0x1e2)](_0x58301c))return _0x58301c[_0x4d04e3(0x1c2)](_0x23a859=>cloneJsonValue(_0x23a859));if(isObjectRecord(_0x58301c))return Object[_0x4d04e3(0x1de)](Object['entries'](_0x58301c)[_0x4d04e3(0x1c2)](([_0x3c1441,_0x173832])=>[_0x3c1441,cloneJsonValue(_0x173832)]));return _0x58301c;}function isObjectRecord(_0x2ec829){const _0x5ec64a=a60_0x4b53;return Boolean(_0x2ec829)&&typeof _0x2ec829===_0x5ec64a(0x1c7)&&!Array[_0x5ec64a(0x1e2)](_0x2ec829);}