@lovrabet/lovrabet-cli 2.3.1 → 2.3.2-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 (183) hide show
  1. package/README.md +10 -8
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/artifact/index.js +1 -1
  13. package/lib/commands/auth/device.js +1 -1
  14. package/lib/commands/auth/index.js +1 -1
  15. package/lib/commands/auth/prompt.js +1 -1
  16. package/lib/commands/bff/detail.js +1 -1
  17. package/lib/commands/bff/exec.js +1 -1
  18. package/lib/commands/bff/index.js +1 -1
  19. package/lib/commands/cli-skill/index.js +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/init.d.ts +1 -2
  26. package/lib/commands/config/init.js +1 -1
  27. package/lib/commands/config/shared.js +1 -1
  28. package/lib/commands/data/index.js +1 -1
  29. package/lib/commands/dataset/detail.js +1 -1
  30. package/lib/commands/dataset/index.js +1 -1
  31. package/lib/commands/dataset/list.js +1 -1
  32. package/lib/commands/dataset/sdk-doc.js +1 -1
  33. package/lib/commands/doctor.js +1 -1
  34. package/lib/commands/file/index.js +1 -1
  35. package/lib/commands/init.js +1 -1
  36. package/lib/commands/kb/index.js +1 -1
  37. package/lib/commands/logs/index.js +1 -1
  38. package/lib/commands/notification/config-list.js +1 -1
  39. package/lib/commands/notification/index.js +1 -1
  40. package/lib/commands/notification/shared.d.ts +0 -3
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.d.ts +2 -0
  59. package/lib/commands/role/shared.js +1 -1
  60. package/lib/commands/role/update.js +1 -1
  61. package/lib/commands/role/user-add.js +1 -1
  62. package/lib/commands/role/user-remove.js +1 -1
  63. package/lib/commands/schedule/index.js +1 -1
  64. package/lib/commands/schema.js +1 -1
  65. package/lib/commands/service/dynamic.js +1 -1
  66. package/lib/commands/service/function-name-adapter.js +1 -1
  67. package/lib/commands/service/index.js +1 -1
  68. package/lib/commands/service/registry.js +1 -1
  69. package/lib/commands/skill/commands/create.js +1 -1
  70. package/lib/commands/skill/commands/diagram.js +1 -1
  71. package/lib/commands/skill/commands/install.js +1 -1
  72. package/lib/commands/skill/commands/list.js +1 -1
  73. package/lib/commands/skill/commands/push.js +1 -1
  74. package/lib/commands/skill/commands/validate.js +1 -1
  75. package/lib/commands/skill/diagram.js +1 -1
  76. package/lib/commands/skill/flags.js +1 -1
  77. package/lib/commands/skill/index.js +1 -1
  78. package/lib/commands/skill/manifest-helpers.js +1 -1
  79. package/lib/commands/skill/push-execute.js +1 -1
  80. package/lib/commands/skill/push-flow-helpers.js +1 -1
  81. package/lib/commands/skill/push-retarget.js +1 -1
  82. package/lib/commands/skill/scopes.js +1 -1
  83. package/lib/commands/skill/summary.js +1 -1
  84. package/lib/commands/skill/templates.js +1 -1
  85. package/lib/commands/skill/validate.js +1 -1
  86. package/lib/commands/sql/detail.js +1 -1
  87. package/lib/commands/sql/exec.js +1 -1
  88. package/lib/commands/sql/index.js +1 -1
  89. package/lib/commands/update.js +1 -1
  90. package/lib/commands/user-account/bind.js +1 -1
  91. package/lib/commands/user-account/index.js +1 -1
  92. package/lib/commands/workspace/index.js +1 -1
  93. package/lib/config/domain-config.d.ts +6 -14
  94. package/lib/config/domain-config.js +1 -1
  95. package/lib/config/schema.d.ts +1 -1
  96. package/lib/config/schema.js +1 -1
  97. package/lib/constant/app.js +1 -1
  98. package/lib/constant/auth-mode.js +1 -1
  99. package/lib/constant/cli.js +1 -1
  100. package/lib/constant/defaults.js +1 -1
  101. package/lib/constant/distribution.js +1 -1
  102. package/lib/constant/domain.d.ts +0 -3
  103. package/lib/constant/domain.js +1 -1
  104. package/lib/constant/env.js +1 -1
  105. package/lib/constant/output.js +1 -1
  106. package/lib/constant/product.js +1 -1
  107. package/lib/constant/region.js +1 -1
  108. package/lib/constant/risk.js +1 -1
  109. package/lib/constant/url.js +1 -1
  110. package/lib/context.js +1 -1
  111. package/lib/core/api-client.d.ts +5 -10
  112. package/lib/core/api-client.js +1 -1
  113. package/lib/core/db-resolver.js +1 -1
  114. package/lib/core/kb-search-client.js +1 -1
  115. package/lib/core/sdk-client.js +1 -1
  116. package/lib/errors.js +1 -1
  117. package/lib/framework/build-all-flags.js +1 -1
  118. package/lib/framework/dryrun.js +1 -1
  119. package/lib/framework/flags.js +1 -1
  120. package/lib/framework/help.js +1 -1
  121. package/lib/framework/index.js +1 -1
  122. package/lib/framework/output.js +1 -1
  123. package/lib/framework/preparse.js +1 -1
  124. package/lib/framework/rate-limit.js +1 -1
  125. package/lib/framework/raw-flags.js +1 -1
  126. package/lib/framework/response.js +1 -1
  127. package/lib/framework/runner-confirmation.js +1 -1
  128. package/lib/framework/runner-error.js +1 -1
  129. package/lib/framework/runner.js +1 -1
  130. package/lib/framework/schema-export.js +1 -1
  131. package/lib/framework/service-order.js +1 -1
  132. package/lib/framework/types.js +1 -1
  133. package/lib/generated/build-info.d.ts +4 -4
  134. package/lib/generated/build-info.js +1 -1
  135. package/lib/generated/official-routing.d.ts +1 -5
  136. package/lib/generated/official-routing.js +1 -1
  137. package/lib/generated/routing-contract.d.ts +3 -7
  138. package/lib/generated/routing-contract.js +1 -1
  139. package/lib/help.js +1 -1
  140. package/lib/postinstall.js +1 -1
  141. package/lib/runtime/confirmation.js +1 -1
  142. package/lib/runtime/event.js +1 -1
  143. package/lib/runtime/index.js +1 -1
  144. package/lib/runtime/queue.js +1 -1
  145. package/lib/runtime/resolve.js +1 -1
  146. package/lib/skills/builtin-skill.js +1 -1
  147. package/lib/skills/npx-skills-add.js +1 -1
  148. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  149. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  150. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  151. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  152. package/lib/skills/runtime-skill-sync/links.js +1 -1
  153. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  154. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  155. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  156. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  157. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  158. package/lib/skills/runtime-skill-sync/push.js +1 -1
  159. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  162. package/lib/skills/runtime-skill-sync.js +1 -1
  163. package/lib/skills/skill-presence.js +1 -1
  164. package/lib/utils/access-key-redaction.js +1 -1
  165. package/lib/utils/apply-jq-filter.js +1 -1
  166. package/lib/utils/cli-version-check.js +1 -1
  167. package/lib/utils/cli-version-policy.js +1 -1
  168. package/lib/utils/logger.js +1 -1
  169. package/lib/utils/lossless-json.js +1 -1
  170. package/lib/utils/params.js +1 -1
  171. package/lib/utils/platform.js +1 -1
  172. package/lib/utils/update-notice.js +1 -1
  173. package/lib/utils/version.js +1 -1
  174. package/lib/utils/write-cli-side-channel.js +1 -1
  175. package/package.json +1 -1
  176. package/skills/lovrabet/SKILL.md +4 -4
  177. package/skills/lovrabet/guides/role-and-permission-workflow.md +6 -4
  178. package/skills/lovrabet/references/lovrabet-config-commands.md +7 -11
  179. package/skills/lovrabet/references/lovrabet-config.md +2 -3
  180. package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
  181. package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
  182. package/skills/lovrabet/references/lovrabet-notification-config-list.md +2 -8
  183. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a54_0xc45eb2=a54_0x2f28;(function(_0x1856c2,_0x150c85){const _0x5cc5ba=a54_0x2f28,_0x53697c=_0x1856c2();while(!![]){try{const _0x48409a=parseInt(_0x5cc5ba(0x149))/0x1*(-parseInt(_0x5cc5ba(0x117))/0x2)+parseInt(_0x5cc5ba(0x13d))/0x3*(parseInt(_0x5cc5ba(0x109))/0x4)+-parseInt(_0x5cc5ba(0x155))/0x5*(parseInt(_0x5cc5ba(0x135))/0x6)+parseInt(_0x5cc5ba(0x112))/0x7+parseInt(_0x5cc5ba(0x12d))/0x8*(parseInt(_0x5cc5ba(0x14e))/0x9)+-parseInt(_0x5cc5ba(0x121))/0xa+parseInt(_0x5cc5ba(0x124))/0xb*(parseInt(_0x5cc5ba(0x10f))/0xc);if(_0x48409a===_0x150c85)break;else _0x53697c['push'](_0x53697c['shift']());}catch(_0x3973a3){_0x53697c['push'](_0x53697c['shift']());}}}(a54_0x1738,0x5ee83));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a54_0xc45eb2(0x115),a54_0xc45eb2(0x13b),a54_0xc45eb2(0x125),a54_0xc45eb2(0x12e)];function a54_0x1738(){const _0x2a5eb0=['1KIByMk','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','filter','length','user-add','95220BEsjRZ','\x22\x20is\x20ambiguous.','Runtime\x20role\x20name\x20\x22','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','roleType','Cannot\x20','5hmqZlp','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','trim','803008KRJyhA','number','join','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','items','Runtime\x20user\x20','288qmMiDA','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','userName','3390590zUvcwv','str','userId','ADMIN','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','1016614qtSdrl','Missing\x20runtime\x20role\x20reference.','runtime',',\x20found\x20','applyUserList','appCode','num','User\x20','expect-user-count','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','5823850BfPkZp','role','validation','422774HSYeNe','OWNER','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','push','Pass\x20one\x20role\x20ID:\x20','remark','Runtime\x20role\x20id\x20','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Pass\x20--role\x20<id|name>.','264akthkI','CUSTOM','\x20was\x20not\x20found\x20in\x20app\x20','string','includes','roleName','find','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','4067994VlDdqu','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','paging','code','flag','totalCount','USER','Runtime\x20role\x20','6FztSyA','userCount','\x20built-in\x20runtime\x20role\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','map','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','userList','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','permitCount','isSafeInteger','user','test'];a54_0x1738=function(){return _0x2a5eb0;};return a54_0x1738();}const BUILTIN_ROLE_TYPES=[a54_0xc45eb2(0x115),a54_0xc45eb2(0x13b),a54_0xc45eb2(0x125)];export const ROLE_ID_FLAG={'name':'id','type':a54_0xc45eb2(0x10a),'required':!![],'description':a54_0xc45eb2(0x110)};export const ROLE_REF_FLAG={'name':a54_0xc45eb2(0x122),'type':'string','required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const USER_ID_FLAG={'name':a54_0xc45eb2(0x147),'type':a54_0xc45eb2(0x130),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':a54_0xc45eb2(0x11f),'type':a54_0xc45eb2(0x10a),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x55256a){return BUILTIN_ROLE_TYPES['includes'](_0x55256a);}export function assertCustomRuntimeRole(_0x3440cb,_0x5f4a64){const _0x58d7a7=a54_0xc45eb2;if(_0x3440cb[_0x58d7a7(0x153)]!==_0x58d7a7(0x12e))throw CliErrors[_0x58d7a7(0x123)](_0x58d7a7(0x154)+_0x5f4a64+_0x58d7a7(0x13f)+_0x3440cb[_0x58d7a7(0x132)]+'\x20('+_0x3440cb[_0x58d7a7(0x153)]+').',_0x58d7a7(0x14a));}export function projectRuntimeRole(_0x320041){const _0xcf7064=a54_0xc45eb2;return{'id':_0x320041['id'],'roleName':_0x320041[_0xcf7064(0x132)],'roleType':_0x320041[_0xcf7064(0x153)],'remark':_0x320041[_0xcf7064(0x129)],'userCount':_0x320041[_0xcf7064(0x13e)]??0x0,'permitCount':_0x320041[_0xcf7064(0x145)]??0x0,'builtin':isBuiltinRuntimeRole(_0x320041['roleType'])};}export async function getRuntimeRoleById(_0x2460ba,_0x48ccff){const _0x276b9f=a54_0xc45eb2;if(!Number[_0x276b9f(0x146)](_0x48ccff)||_0x48ccff<=0x0)throw CliErrors[_0x276b9f(0x123)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x3674b6=(await listAllRuntimeRoles(_0x2460ba))[_0x276b9f(0x14b)](_0x3c551a=>_0x3c551a['id']===_0x48ccff&&(!_0x3c551a[_0x276b9f(0x11c)]||_0x3c551a[_0x276b9f(0x11c)]===_0x2460ba));if(_0x3674b6[_0x276b9f(0x14c)]!==0x1)throw CliErrors[_0x276b9f(0x123)](_0x276b9f(0x12a)+_0x48ccff+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x2460ba+'.',_0x276b9f(0x116));return _0x3674b6[0x0];}export async function listAllRuntimeRoles(_0x2fe751,_0xf32af9={}){const _0x47d78d=a54_0xc45eb2,_0x34d21b=0x64,_0x46a59d=[];for(let _0x58885b=0x1;;_0x58885b+=0x1){const _0x1ee2fc=await listRuntimeAppRoles(_0x2fe751,{..._0xf32af9[_0x47d78d(0x132)]?{'roleName':_0xf32af9[_0x47d78d(0x132)]}:{},'currentPage':_0x58885b,'pageSize':_0x34d21b});_0x46a59d[_0x47d78d(0x127)](..._0x1ee2fc[_0x47d78d(0x10d)]);if(_0x1ee2fc[_0x47d78d(0x10d)]['length']<_0x34d21b||_0x1ee2fc['paging']&&_0x46a59d[_0x47d78d(0x14c)]>=_0x1ee2fc[_0x47d78d(0x137)][_0x47d78d(0x13a)])return _0x46a59d;}}export async function resolveRuntimeRoleRef(_0x2057e4,_0x28e4e6){const _0x1b54c5=a54_0xc45eb2,_0x5c82dd=_0x28e4e6[_0x1b54c5(0x108)]();if(!_0x5c82dd)throw CliErrors[_0x1b54c5(0x123)](_0x1b54c5(0x118),_0x1b54c5(0x12c));if(/^\d+$/[_0x1b54c5(0x148)](_0x5c82dd))return getRuntimeRoleById(_0x2057e4,Number(_0x5c82dd));const _0x30687a=(await listAllRuntimeRoles(_0x2057e4))[_0x1b54c5(0x14b)](_0x7a7b78=>_0x7a7b78[_0x1b54c5(0x132)]===_0x5c82dd);if(_0x30687a[_0x1b54c5(0x14c)]===0x0)throw CliErrors['validation'](_0x1b54c5(0x150)+_0x5c82dd+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0x2057e4+'.',_0x1b54c5(0x151));if(_0x30687a['length']>0x1)throw CliErrors[_0x1b54c5(0x123)](_0x1b54c5(0x150)+_0x5c82dd+_0x1b54c5(0x14f),_0x1b54c5(0x128)+_0x30687a[_0x1b54c5(0x141)](_0x1de68e=>_0x1de68e['id'])[_0x1b54c5(0x10b)](',\x20')+'.');return _0x30687a[0x0];}function parseRuntimeUserId(_0x2e73c9){const _0x18f1b7=a54_0xc45eb2,_0x37cc6e=_0x2e73c9[_0x18f1b7(0x108)]();if(!/^\d+$/['test'](_0x37cc6e))throw CliErrors[_0x18f1b7(0x123)]('Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.',_0x18f1b7(0x10c));const _0xf1c0bb=Number(_0x37cc6e);if(!Number['isSafeInteger'](_0xf1c0bb)||_0xf1c0bb<=0x0)throw CliErrors[_0x18f1b7(0x123)](_0x18f1b7(0x134));return _0xf1c0bb;}export async function prepareRuntimeMemberMutation(_0x383679,_0x3f4300){const _0x4da6d9=a54_0xc45eb2,_0x5aae51=await resolveRuntimeRoleRef(_0x383679[_0x4da6d9(0x11c)],_0x383679[_0x4da6d9(0x113)](_0x4da6d9(0x122)));if(_0x5aae51['roleType']===_0x4da6d9(0x125))throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x126),_0x4da6d9(0x120));const _0x5afaf3=parseRuntimeUserId(_0x383679[_0x4da6d9(0x113)](_0x4da6d9(0x147))),_0x51019d=(await listRuntimeRoleUsers(_0x383679['appCode']))['map'](_0x1db663=>({..._0x1db663,'userList':[..._0x1db663['userList']??[]],'applyUserList':[..._0x1db663[_0x4da6d9(0x11b)]??[]]})),_0x567930=_0x51019d[_0x4da6d9(0x133)](_0x119775=>_0x119775['id']===_0x5aae51['id']);if(!_0x567930)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x13c)+_0x5aae51['id']+_0x4da6d9(0x156),_0x4da6d9(0x12b));const _0x159c64=_0x567930['userList'][_0x4da6d9(0x141)](_0x529faf=>_0x529faf[_0x4da6d9(0x114)]),_0x3e7787=_0x383679[_0x4da6d9(0x139)]('expect-user-count');if(_0x3e7787!==undefined&&_0x3e7787!==null&&_0x3e7787!==''){const _0x4e1169=_0x383679[_0x4da6d9(0x11d)](_0x4da6d9(0x11f));if(!Number[_0x4da6d9(0x146)](_0x4e1169)||_0x4e1169<0x0)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x152));if(_0x159c64[_0x4da6d9(0x14c)]!==_0x4e1169)throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x142)+_0x4e1169+_0x4da6d9(0x11a)+_0x159c64['length']+'.',_0x4da6d9(0x136));}const _0x1fcfde=_0x159c64[_0x4da6d9(0x131)](_0x5afaf3),_0x820bf0=[];let _0x25f732=!![];if(_0x3f4300===_0x4da6d9(0x14d)){const _0x37186f=await listRuntimeAppUsers(_0x383679[_0x4da6d9(0x11c)]),_0xa2be24=_0x37186f[_0x4da6d9(0x14b)](_0x46e0e4=>Number(_0x46e0e4[_0x4da6d9(0x138)])===_0x5afaf3);if(_0xa2be24['length']!==0x1||!_0xa2be24[0x0][_0x4da6d9(0x111)]?.['trim']())throw CliErrors[_0x4da6d9(0x123)](_0x4da6d9(0x10e)+_0x5afaf3+_0x4da6d9(0x12f)+_0x383679['appCode']+'.',_0x4da6d9(0x144));_0x1fcfde?(_0x25f732=![],_0x820bf0[_0x4da6d9(0x127)](_0x4da6d9(0x11e)+_0x5afaf3+_0x4da6d9(0x140)+_0x5aae51['id']+'.')):_0x567930[_0x4da6d9(0x143)][_0x4da6d9(0x127)]({'userId':_0x5afaf3,'username':_0xa2be24[0x0][_0x4da6d9(0x111)]});}else!_0x1fcfde?(_0x25f732=![],_0x820bf0[_0x4da6d9(0x127)](_0x4da6d9(0x11e)+_0x5afaf3+'\x20is\x20not\x20in\x20runtime\x20role\x20'+_0x5aae51['id']+'.')):_0x567930['userList']=_0x567930[_0x4da6d9(0x143)][_0x4da6d9(0x14b)](_0x4b714d=>_0x4b714d[_0x4da6d9(0x114)]!==_0x5afaf3);return{'role':_0x5aae51,'userId':_0x5afaf3,'roleList':_0x51019d,'before':{'userIds':_0x159c64},'after':{'userIds':_0x567930['userList'][_0x4da6d9(0x141)](_0x41f42c=>_0x41f42c[_0x4da6d9(0x114)])},'shouldWrite':_0x25f732,'warnings':_0x820bf0};}function a54_0x2f28(_0x35980c,_0x5e84cc){_0x35980c=_0x35980c-0x108;const _0x173881=a54_0x1738();let _0x2f28f0=_0x173881[_0x35980c];return _0x2f28f0;}export function runtimeRoleWriteResult(_0x1ebe16,_0x5c09ce,_0x58f347,_0x36af9f,_0xc89c4,_0x2b9933=[]){const _0x57a8fd=a54_0xc45eb2;return{'operation':_0x1ebe16,'scope':_0x57a8fd(0x119),'selector':_0x5c09ce,'before':_0x58f347,'after':_0x36af9f,'dryRun':![],'backend':_0xc89c4,'warnings':_0x2b9933};}
1
+ const a54_0x53114c=a54_0x1877;(function(_0x1e4c89,_0x810171){const _0x1634ee=a54_0x1877,_0x14c015=_0x1e4c89();while(!![]){try{const _0x234eb0=parseInt(_0x1634ee(0xbf))/0x1*(-parseInt(_0x1634ee(0x96))/0x2)+-parseInt(_0x1634ee(0x88))/0x3*(-parseInt(_0x1634ee(0x8f))/0x4)+parseInt(_0x1634ee(0xb4))/0x5*(parseInt(_0x1634ee(0x8c))/0x6)+-parseInt(_0x1634ee(0xa7))/0x7+parseInt(_0x1634ee(0xbe))/0x8+-parseInt(_0x1634ee(0x89))/0x9+parseInt(_0x1634ee(0xae))/0xa;if(_0x234eb0===_0x810171)break;else _0x14c015['push'](_0x14c015['shift']());}catch(_0x41d4f1){_0x14c015['push'](_0x14c015['shift']());}}}(a54_0x1bff,0x8de5f));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=['ADMIN','USER',a54_0x53114c(0x91),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a54_0x53114c(0xba),a54_0x53114c(0x9f),a54_0x53114c(0x91)];export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':a54_0x53114c(0xa3),'type':a54_0x53114c(0xb5),'required':!![],'description':a54_0x53114c(0x98)};export const ROLE_CODE_FLAG={'name':a54_0x53114c(0xa8),'type':'string','description':a54_0x53114c(0xca)};export const USER_ID_FLAG={'name':a54_0x53114c(0x9d),'type':a54_0x53114c(0xb5),'required':!![],'description':a54_0x53114c(0xa6)};export const EXPECT_USER_COUNT_FLAG={'name':a54_0x53114c(0xb1),'type':a54_0x53114c(0xbb),'description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};function a54_0x1877(_0x443c40,_0x448c71){_0x443c40=_0x443c40-0x7c;const _0x1bff34=a54_0x1bff();let _0x1877cd=_0x1bff34[_0x443c40];return _0x1877cd;}export function isBuiltinRuntimeRole(_0x5d563a){const _0x38dd15=a54_0x53114c;return BUILTIN_ROLE_TYPES[_0x38dd15(0x95)](_0x5d563a);}export function assertCustomRuntimeRole(_0x7c2a71,_0x222227){const _0x4d0748=a54_0x53114c;if(_0x7c2a71['roleType']!==_0x4d0748(0x93))throw CliErrors[_0x4d0748(0x99)](_0x4d0748(0x84)+_0x222227+_0x4d0748(0xc9)+_0x7c2a71[_0x4d0748(0x90)]+'\x20('+_0x7c2a71[_0x4d0748(0x8a)]+').',_0x4d0748(0xb2));}export function projectRuntimeRole(_0x434a19){const _0x4d6f03=a54_0x53114c;return{'id':_0x434a19['id'],'roleCode':_0x434a19[_0x4d6f03(0x86)],'roleName':_0x434a19['roleName'],'roleType':_0x434a19[_0x4d6f03(0x8a)],'remark':_0x434a19['remark'],'userCount':_0x434a19[_0x4d6f03(0xb6)]??0x0,'permitCount':_0x434a19[_0x4d6f03(0xc5)]??0x0,'builtin':isBuiltinRuntimeRole(_0x434a19[_0x4d6f03(0x8a)])};}function a54_0x1bff(){const _0x230f12=['appCode','\x22\x20is\x20ambiguous.','\x20built-in\x20runtime\x20role\x20','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Runtime\x20user\x20','Runtime\x20role\x20','userId','applyUserList','Pass\x20one\x20role\x20ID:\x20','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','Cannot\x20','\x20is\x20already\x20in\x20runtime\x20role\x20','roleCode','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','678033IUqRqB','3341403obYJPw','roleType','userList','6plTwEI','\x22\x20was\x20not\x20found\x20in\x20app\x20','items','12kXtnOD','roleName','OWNER','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','CUSTOM','userName','includes','1168406hBjHOC','num','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','validation','filter','Runtime\x20role\x20id\x20','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','user','Runtime\x20role\x20name\x20\x22','USER','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','str','--role-code\x20must\x20not\x20be\x20blank.','role','paging','\x20is\x20not\x20in\x20runtime\x20role\x20','Runtime\x20numeric\x20userId','7138173bHCukX','role-code','map','Missing\x20runtime\x20role\x20reference.','user-add','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','isSafeInteger','11164200tgxnnH','--role-code\x20cannot\x20exceed\x2064\x20characters.','totalCount','expect-user-count','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','1558945MzkCLZ','string','userCount','length','trim','find','ADMIN','number','User\x20','push','3601456SCVwlE','1UdJEuG','Pass\x20--role\x20<id|name>.','flag','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','test','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','permitCount','runtime'];a54_0x1bff=function(){return _0x230f12;};return a54_0x1bff();}export function readOptionalRuntimeRoleCode(_0x2b4feb){const _0x2ea8a4=a54_0x53114c,_0x38252f=_0x2b4feb[_0x2ea8a4(0xc1)](_0x2ea8a4(0xa8));if(_0x38252f===undefined||_0x38252f===null)return undefined;const _0xab2a74=String(_0x38252f)[_0x2ea8a4(0xb8)]();if(!_0xab2a74)throw CliErrors[_0x2ea8a4(0x99)](_0x2ea8a4(0xa2));if(_0xab2a74['length']>0x40)throw CliErrors[_0x2ea8a4(0x99)](_0x2ea8a4(0xaf));return _0xab2a74;}export async function getRuntimeRoleById(_0x50d28c,_0x4a7d2d){const _0x6f15ed=a54_0x53114c;if(!Number[_0x6f15ed(0xad)](_0x4a7d2d)||_0x4a7d2d<=0x0)throw CliErrors['validation'](_0x6f15ed(0x92));const _0x5c7cee=(await listAllRuntimeRoles(_0x50d28c))[_0x6f15ed(0x9a)](_0x26464d=>_0x26464d['id']===_0x4a7d2d&&(!_0x26464d[_0x6f15ed(0xc7)]||_0x26464d[_0x6f15ed(0xc7)]===_0x50d28c));if(_0x5c7cee['length']!==0x1)throw CliErrors[_0x6f15ed(0x99)](_0x6f15ed(0x9b)+_0x4a7d2d+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x50d28c+'.',_0x6f15ed(0xa0));return _0x5c7cee[0x0];}export async function listAllRuntimeRoles(_0x27bdfa,_0x4a441c={}){const _0x1f2ac0=a54_0x53114c,_0x2f2bc3=0x64,_0x59aa20=[];for(let _0x5ddc71=0x1;;_0x5ddc71+=0x1){const _0x12787f=await listRuntimeAppRoles(_0x27bdfa,{..._0x4a441c[_0x1f2ac0(0x90)]?{'roleName':_0x4a441c[_0x1f2ac0(0x90)]}:{},'currentPage':_0x5ddc71,'pageSize':_0x2f2bc3});_0x59aa20[_0x1f2ac0(0xbd)](..._0x12787f[_0x1f2ac0(0x8e)]);if(_0x12787f['items']['length']<_0x2f2bc3||_0x12787f[_0x1f2ac0(0xa4)]&&_0x59aa20[_0x1f2ac0(0xb7)]>=_0x12787f['paging'][_0x1f2ac0(0xb0)])return _0x59aa20;}}export async function resolveRuntimeRoleRef(_0x4a8faf,_0x19b8ba){const _0x1a7be4=a54_0x53114c,_0x2faab2=_0x19b8ba['trim']();if(!_0x2faab2)throw CliErrors[_0x1a7be4(0x99)](_0x1a7be4(0xaa),_0x1a7be4(0xc0));if(/^\d+$/[_0x1a7be4(0xc3)](_0x2faab2))return getRuntimeRoleById(_0x4a8faf,Number(_0x2faab2));const _0x41a290=(await listAllRuntimeRoles(_0x4a8faf))[_0x1a7be4(0x9a)](_0x3a08c7=>_0x3a08c7[_0x1a7be4(0x90)]===_0x2faab2);if(_0x41a290['length']===0x0)throw CliErrors[_0x1a7be4(0x99)](_0x1a7be4(0x9e)+_0x2faab2+_0x1a7be4(0x8d)+_0x4a8faf+'.',_0x1a7be4(0xc2));if(_0x41a290[_0x1a7be4(0xb7)]>0x1)throw CliErrors['validation'](_0x1a7be4(0x9e)+_0x2faab2+_0x1a7be4(0xc8),_0x1a7be4(0x80)+_0x41a290[_0x1a7be4(0xa9)](_0x34bdaf=>_0x34bdaf['id'])['join'](',\x20')+'.');return _0x41a290[0x0];}function parseRuntimeUserId(_0x341c9b){const _0xf2e164=a54_0x53114c,_0x52cefd=_0x341c9b[_0xf2e164(0xb8)]();if(!/^\d+$/[_0xf2e164(0xc3)](_0x52cefd))throw CliErrors['validation'](_0xf2e164(0xcb),_0xf2e164(0xc4));const _0x4d94f6=Number(_0x52cefd);if(!Number['isSafeInteger'](_0x4d94f6)||_0x4d94f6<=0x0)throw CliErrors[_0xf2e164(0x99)](_0xf2e164(0x83));return _0x4d94f6;}export async function prepareRuntimeMemberMutation(_0x575070,_0x261dc6){const _0x41b161=a54_0x53114c,_0x22cf41=await resolveRuntimeRoleRef(_0x575070['appCode'],_0x575070[_0x41b161(0xa1)](_0x41b161(0xa3)));if(_0x22cf41[_0x41b161(0x8a)]===_0x41b161(0x91))throw CliErrors['validation'](_0x41b161(0x81),_0x41b161(0x9c));const _0x48704d=parseRuntimeUserId(_0x575070[_0x41b161(0xa1)]('user')),_0xff9059=(await listRuntimeRoleUsers(_0x575070[_0x41b161(0xc7)]))[_0x41b161(0xa9)](_0x18d8dc=>({..._0x18d8dc,'userList':[..._0x18d8dc[_0x41b161(0x8b)]??[]],'applyUserList':[..._0x18d8dc[_0x41b161(0x7f)]??[]]})),_0x3c1fb5=_0xff9059[_0x41b161(0xb9)](_0x25b1db=>_0x25b1db['id']===_0x22cf41['id']);if(!_0x3c1fb5)throw CliErrors[_0x41b161(0x99)](_0x41b161(0x7d)+_0x22cf41['id']+_0x41b161(0xb3),_0x41b161(0xac));const _0x170f91=_0x3c1fb5[_0x41b161(0x8b)][_0x41b161(0xa9)](_0x50a7fd=>_0x50a7fd[_0x41b161(0x7e)]),_0x2a98d6=_0x575070[_0x41b161(0xc1)](_0x41b161(0xb1));if(_0x2a98d6!==undefined&&_0x2a98d6!==null&&_0x2a98d6!==''){const _0xc6900c=_0x575070[_0x41b161(0x97)](_0x41b161(0xb1));if(!Number[_0x41b161(0xad)](_0xc6900c)||_0xc6900c<0x0)throw CliErrors[_0x41b161(0x99)]('--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.');if(_0x170f91['length']!==_0xc6900c)throw CliErrors[_0x41b161(0x99)](_0x41b161(0x87)+_0xc6900c+',\x20found\x20'+_0x170f91[_0x41b161(0xb7)]+'.','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.');}const _0x5bdbb6=_0x170f91[_0x41b161(0x95)](_0x48704d),_0x25c2ec=[];let _0xc44ebc=!![];if(_0x261dc6===_0x41b161(0xab)){const _0x53b797=await listRuntimeAppUsers(_0x575070[_0x41b161(0xc7)]),_0x4d0694=_0x53b797[_0x41b161(0x9a)](_0x218592=>Number(_0x218592['code'])===_0x48704d);if(_0x4d0694[_0x41b161(0xb7)]!==0x1||!_0x4d0694[0x0][_0x41b161(0x94)]?.[_0x41b161(0xb8)]())throw CliErrors[_0x41b161(0x99)](_0x41b161(0x7c)+_0x48704d+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x575070['appCode']+'.',_0x41b161(0x82));_0x5bdbb6?(_0xc44ebc=![],_0x25c2ec[_0x41b161(0xbd)](_0x41b161(0xbc)+_0x48704d+_0x41b161(0x85)+_0x22cf41['id']+'.')):_0x3c1fb5[_0x41b161(0x8b)][_0x41b161(0xbd)]({'userId':_0x48704d,'username':_0x4d0694[0x0][_0x41b161(0x94)]});}else!_0x5bdbb6?(_0xc44ebc=![],_0x25c2ec['push'](_0x41b161(0xbc)+_0x48704d+_0x41b161(0xa5)+_0x22cf41['id']+'.')):_0x3c1fb5[_0x41b161(0x8b)]=_0x3c1fb5[_0x41b161(0x8b)]['filter'](_0x31c025=>_0x31c025[_0x41b161(0x7e)]!==_0x48704d);return{'role':_0x22cf41,'userId':_0x48704d,'roleList':_0xff9059,'before':{'userIds':_0x170f91},'after':{'userIds':_0x3c1fb5['userList'][_0x41b161(0xa9)](_0x16b662=>_0x16b662[_0x41b161(0x7e)])},'shouldWrite':_0xc44ebc,'warnings':_0x25c2ec};}export function runtimeRoleWriteResult(_0x58fbfd,_0xa39ab6,_0x25f33e,_0x4174f3,_0x174816,_0xd5c8c0=[]){const _0x1b8581=a54_0x53114c;return{'operation':_0x58fbfd,'scope':_0x1b8581(0xc6),'selector':_0xa39ab6,'before':_0x25f33e,'after':_0x4174f3,'dryRun':![],'backend':_0x174816,'warnings':_0xd5c8c0};}
@@ -1 +1 @@
1
- const a55_0x2105bf=a55_0x4f90;(function(_0x106126,_0x180b23){const _0x177a37=a55_0x4f90,_0x109add=_0x106126();while(!![]){try{const _0x25a673=parseInt(_0x177a37(0x1e6))/0x1+parseInt(_0x177a37(0x1d5))/0x2+parseInt(_0x177a37(0x1e7))/0x3*(-parseInt(_0x177a37(0x1dc))/0x4)+parseInt(_0x177a37(0x1d8))/0x5*(-parseInt(_0x177a37(0x1cd))/0x6)+parseInt(_0x177a37(0x1d4))/0x7+-parseInt(_0x177a37(0x1df))/0x8*(parseInt(_0x177a37(0x1e5))/0x9)+parseInt(_0x177a37(0x1e8))/0xa;if(_0x25a673===_0x180b23)break;else _0x109add['push'](_0x109add['shift']());}catch(_0x3b29d7){_0x109add['push'](_0x109add['shift']());}}}(a55_0x1af3,0x841a5));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a55_0x4f90(_0x23463a,_0x42fdb2){_0x23463a=_0x23463a-0x1c9;const _0x1af328=a55_0x1af3();let _0x4f9015=_0x1af328[_0x23463a];return _0x4f9015;}import{dryRun}from'../../framework/dryrun.js';function a55_0x1af3(){const _0x13239c=['706401yalbtM','52869sxarFQ','10715170ASUwEW','--remark\x20must\x20not\x20be\x20blank.','flag','string','high-risk-write','New\x20role\x20name','3948yllrNr','description','remark','--name\x20must\x20not\x20be\x20blank.','update','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','/client/permit/role/update','2406670QRYlqF','1085738ZJLJai','role','POST','810rDHjdm','validation','body','str','228wPruws','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','build','8yftYPK','num','appCode','trim','New\x20non-empty\x20role\x20remark','name','9111573ZRonEQ'];a55_0x1af3=function(){return _0x13239c;};return a55_0x1af3();}import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x445cd1){const _0x41dbf5=a55_0x4f90,_0x1b4de6=_0x445cd1[_0x41dbf5(0x1c9)](_0x41dbf5(0x1e4))!==undefined,_0x371997=_0x445cd1[_0x41dbf5(0x1c9)](_0x41dbf5(0x1cf))!==undefined;if(!_0x1b4de6&&!_0x371997)throw CliErrors[_0x41dbf5(0x1d9)]('Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.');const _0x50cb87=_0x445cd1[_0x41dbf5(0x1db)]('name')[_0x41dbf5(0x1e2)](),_0x213995=_0x445cd1[_0x41dbf5(0x1db)](_0x41dbf5(0x1cf))[_0x41dbf5(0x1e2)]();if(_0x1b4de6&&!_0x50cb87)throw CliErrors[_0x41dbf5(0x1d9)](_0x41dbf5(0x1d0));if(_0x371997&&!_0x213995)throw CliErrors[_0x41dbf5(0x1d9)](_0x41dbf5(0x1e9),_0x41dbf5(0x1dd));return{..._0x1b4de6?{'roleName':_0x50cb87}:{},..._0x371997?{'remark':_0x213995}:{}};}async function prepare(_0x2474b5){const _0x192bc1=a55_0x4f90,_0x3e4d04=await getRuntimeRoleById(_0x2474b5[_0x192bc1(0x1e1)],_0x2474b5[_0x192bc1(0x1e0)]('id'));return assertCustomRuntimeRole(_0x3e4d04,_0x192bc1(0x1d1)),{'role':_0x3e4d04,'body':{'id':_0x3e4d04['id'],'appCode':_0x2474b5[_0x192bc1(0x1e1)],...updateFields(_0x2474b5)}};}export const roleUpdate={'service':a55_0x2105bf(0x1d6),'command':a55_0x2105bf(0x1d1),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':a55_0x2105bf(0x1cb),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,{'name':a55_0x2105bf(0x1e4),'type':a55_0x2105bf(0x1ca),'description':a55_0x2105bf(0x1cc)},{'name':'remark','type':'string','description':a55_0x2105bf(0x1e3)}],async 'validate'(_0x497f21){updateFields(_0x497f21);},async 'dryRun'(_0x29ecfd){const _0x279605=a55_0x2105bf,{body:_0x54cd41}=await prepare(_0x29ecfd);return dryRun('POST',_0x279605(0x1d3))[_0x279605(0x1da)](_0x54cd41)[_0x279605(0x1ce)](_0x279605(0x1d2))[_0x279605(0x1de)]();},async 'execute'(_0x5c6cf4){const _0x1703be=a55_0x2105bf,{role:_0x1d357b,body:_0xb222d8}=await prepare(_0x5c6cf4),_0x581193=await updateRuntimeAppRole(_0xb222d8);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1703be(0x1d1),{'roleId':_0x1d357b['id']},projectRuntimeRole(_0x1d357b),projectRuntimeRole(_0x581193),{'method':_0x1703be(0x1d7),'path':_0x1703be(0x1d3)})};}};
1
+ const a55_0x5600ea=a55_0x13e4;(function(_0x31f685,_0x33d229){const _0x48289c=a55_0x13e4,_0x57067a=_0x31f685();while(!![]){try{const _0x50ac26=-parseInt(_0x48289c(0x119))/0x1*(-parseInt(_0x48289c(0x11d))/0x2)+-parseInt(_0x48289c(0x112))/0x3+-parseInt(_0x48289c(0x113))/0x4*(-parseInt(_0x48289c(0x120))/0x5)+-parseInt(_0x48289c(0x125))/0x6+parseInt(_0x48289c(0x115))/0x7*(parseInt(_0x48289c(0x11c))/0x8)+-parseInt(_0x48289c(0x11a))/0x9*(parseInt(_0x48289c(0x109))/0xa)+parseInt(_0x48289c(0x116))/0xb*(parseInt(_0x48289c(0x110))/0xc);if(_0x50ac26===_0x33d229)break;else _0x57067a['push'](_0x57067a['shift']());}catch(_0x3ba25e){_0x57067a['push'](_0x57067a['shift']());}}}(a55_0x2c63,0xd9559));function a55_0x13e4(_0x417167,_0x5d260b){_0x417167=_0x417167-0x108;const _0x2c63e7=a55_0x2c63();let _0x13e464=_0x2c63e7[_0x417167];return _0x13e464;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function a55_0x2c63(){const _0x1c5beb=['891620XcyBmn','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','New\x20non-empty\x20role\x20remark','/client/permit/role/update','role','appCode','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','1638372pztoce','POST','1911000fyYhgP','69868zLdNoT','--name\x20must\x20not\x20be\x20blank.','1635928hZYXoI','77jvjenM','str','body','3LYBOmv','9cHVrJE','trim','32yeLMjD','414574glowcS','num','flag','50NsLnxf','name','role-code','--remark\x20must\x20not\x20be\x20blank.','validation','6424206MjtSUK','update'];a55_0x2c63=function(){return _0x1c5beb;};return a55_0x2c63();}function updateFields(_0x15a988){const _0x202111=a55_0x13e4,_0x3be44b=_0x15a988['flag'](_0x202111(0x122))!==undefined,_0x6c8264=_0x15a988[_0x202111(0x11f)](_0x202111(0x121))!==undefined,_0xe9f8f3=_0x15a988[_0x202111(0x11f)]('remark')!==undefined;if(!_0x3be44b&&!_0x6c8264&&!_0xe9f8f3)throw CliErrors[_0x202111(0x124)]('Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.');const _0x38e4da=readOptionalRuntimeRoleCode(_0x15a988),_0x2c2349=_0x15a988[_0x202111(0x117)]('name')[_0x202111(0x11b)](),_0x458eae=_0x15a988['str']('remark')[_0x202111(0x11b)]();if(_0x6c8264&&!_0x2c2349)throw CliErrors[_0x202111(0x124)](_0x202111(0x114));if(_0xe9f8f3&&!_0x458eae)throw CliErrors[_0x202111(0x124)](_0x202111(0x123),_0x202111(0x10f));return{..._0x38e4da?{'roleCode':_0x38e4da}:{},..._0x6c8264?{'roleName':_0x2c2349}:{},..._0xe9f8f3?{'remark':_0x458eae}:{}};}async function prepare(_0x1ede2c){const _0x282b45=a55_0x13e4,_0x21247f=await getRuntimeRoleById(_0x1ede2c[_0x282b45(0x10e)],_0x1ede2c[_0x282b45(0x11e)]('id'));return assertCustomRuntimeRole(_0x21247f,_0x282b45(0x108)),{'role':_0x21247f,'body':{'id':_0x21247f['id'],'appCode':_0x1ede2c[_0x282b45(0x10e)],...updateFields(_0x1ede2c)}};}export const roleUpdate={'service':a55_0x5600ea(0x10d),'command':a55_0x5600ea(0x108),'description':a55_0x5600ea(0x10a),'risk':'high-risk-write','confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':'name','type':'string','description':'New\x20role\x20name'},{'name':'remark','type':'string','description':a55_0x5600ea(0x10b)}],async 'validate'(_0x3442a4){updateFields(_0x3442a4);},async 'dryRun'(_0x2c53d0){const _0x459e15=a55_0x5600ea,{body:_0x4aad65}=await prepare(_0x2c53d0);return dryRun('POST',_0x459e15(0x10c))[_0x459e15(0x118)](_0x4aad65)['description']('Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role')['build']();},async 'execute'(_0x2ca47d){const _0x413c90=a55_0x5600ea,{role:_0x220d0e,body:_0x482d5e}=await prepare(_0x2ca47d),_0x5ad9af=await updateRuntimeAppRole(_0x482d5e);return{'ok':!![],'data':runtimeRoleWriteResult('update',{'roleId':_0x220d0e['id']},projectRuntimeRole(_0x220d0e),projectRuntimeRole(_0x5ad9af),{'method':_0x413c90(0x111),'path':_0x413c90(0x10c)})};}};
@@ -1 +1 @@
1
- const a56_0x68e9a6=a56_0x242a;(function(_0x187415,_0x18d743){const _0x1210ba=a56_0x242a,_0x5a4d71=_0x187415();while(!![]){try{const _0x27caaf=parseInt(_0x1210ba(0x1c7))/0x1+-parseInt(_0x1210ba(0x1bf))/0x2+-parseInt(_0x1210ba(0x1cb))/0x3+-parseInt(_0x1210ba(0x1bc))/0x4+parseInt(_0x1210ba(0x1be))/0x5+parseInt(_0x1210ba(0x1c1))/0x6*(parseInt(_0x1210ba(0x1c6))/0x7)+-parseInt(_0x1210ba(0x1b8))/0x8*(parseInt(_0x1210ba(0x1bd))/0x9);if(_0x27caaf===_0x18d743)break;else _0x5a4d71['push'](_0x5a4d71['shift']());}catch(_0x5d340f){_0x5a4d71['push'](_0x5a4d71['shift']());}}}(a56_0x5ec6,0x690d8));function a56_0x5ec6(){const _0x13b96c=['256758oXloda','appCode','6yglRtv','body','role','after','userId','5494727eFgFCY','23523nommyT','roleList','/client/permit/user-role/update-user-list','warnings','506271MxwbPQ','high-risk-write','POST','user-add','build','63320zbRsIg','Preview:\x20add\x20runtime\x20role\x20member','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','3183608ZszwJz','27PInmcX','3692975GdAABv'];a56_0x5ec6=function(){return _0x13b96c;};return a56_0x5ec6();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a56_0x242a(_0x1878d9,_0x54fb01){_0x1878d9=_0x1878d9-0x1b4;const _0x5ec6cf=a56_0x5ec6();let _0x242aac=_0x5ec6cf[_0x1878d9];return _0x242aac;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x68e9a6(0x1c3),'command':a56_0x68e9a6(0x1b6),'description':a56_0x68e9a6(0x1ba),'risk':a56_0x68e9a6(0x1b4),'confirmationDescription':a56_0x68e9a6(0x1bb),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x5a1fa8){const _0x5c4902=a56_0x68e9a6,_0x543195=await prepareRuntimeMemberMutation(_0x5a1fa8,_0x5c4902(0x1b6));return dryRun(_0x5c4902(0x1b5),_0x5c4902(0x1c9))[_0x5c4902(0x1c2)]({'appCode':_0x5a1fa8['appCode'],'roleList':_0x543195[_0x5c4902(0x1c8)]})['description'](_0x543195['shouldWrite']?_0x5c4902(0x1b9):_0x543195['warnings'][0x0])[_0x5c4902(0x1b7)]();},async 'execute'(_0x81d590){const _0x5e728a=a56_0x68e9a6,_0x350957=await prepareRuntimeMemberMutation(_0x81d590,_0x5e728a(0x1b6));return _0x350957['shouldWrite']&&await updateRuntimeRoleUsers(_0x81d590[_0x5e728a(0x1c0)],_0x350957[_0x5e728a(0x1c8)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x350957[_0x5e728a(0x1c3)]['id'],'userId':_0x350957[_0x5e728a(0x1c5)]},_0x350957['before'],_0x350957[_0x5e728a(0x1c4)],{'method':_0x5e728a(0x1b5),'path':_0x5e728a(0x1c9)},_0x350957[_0x5e728a(0x1ca)])};}};
1
+ const a56_0x38c756=a56_0x161c;(function(_0x3610ce,_0x2fea0a){const _0x3c4a9b=a56_0x161c,_0x2cf533=_0x3610ce();while(!![]){try{const _0x16ad1=-parseInt(_0x3c4a9b(0x13d))/0x1*(parseInt(_0x3c4a9b(0x136))/0x2)+parseInt(_0x3c4a9b(0x14a))/0x3+parseInt(_0x3c4a9b(0x143))/0x4+parseInt(_0x3c4a9b(0x135))/0x5+-parseInt(_0x3c4a9b(0x149))/0x6+-parseInt(_0x3c4a9b(0x144))/0x7*(-parseInt(_0x3c4a9b(0x147))/0x8)+-parseInt(_0x3c4a9b(0x146))/0x9;if(_0x16ad1===_0x2fea0a)break;else _0x2cf533['push'](_0x2cf533['shift']());}catch(_0x5473c9){_0x2cf533['push'](_0x2cf533['shift']());}}}(a56_0x62a2,0x97d3d));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x38c756(0x13a),'command':a56_0x38c756(0x139),'description':'Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','risk':a56_0x38c756(0x141),'confirmationDescription':a56_0x38c756(0x14c),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x6ad013){const _0x595903=a56_0x38c756,_0x2e7c86=await prepareRuntimeMemberMutation(_0x6ad013,_0x595903(0x139));return dryRun(_0x595903(0x137),_0x595903(0x145))[_0x595903(0x13b)]({'appCode':_0x6ad013[_0x595903(0x13f)],'roleList':_0x2e7c86[_0x595903(0x142)]})[_0x595903(0x138)](_0x2e7c86[_0x595903(0x148)]?_0x595903(0x134):_0x2e7c86[_0x595903(0x13e)][0x0])[_0x595903(0x13c)]();},async 'execute'(_0x26221c){const _0x4f81f1=a56_0x38c756,_0x3699ee=await prepareRuntimeMemberMutation(_0x26221c,_0x4f81f1(0x139));return _0x3699ee['shouldWrite']&&await updateRuntimeRoleUsers(_0x26221c[_0x4f81f1(0x13f)],_0x3699ee[_0x4f81f1(0x142)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x3699ee['role']['id'],'userId':_0x3699ee[_0x4f81f1(0x140)]},_0x3699ee[_0x4f81f1(0x14b)],_0x3699ee[_0x4f81f1(0x14d)],{'method':_0x4f81f1(0x137),'path':_0x4f81f1(0x145)},_0x3699ee['warnings'])};}};function a56_0x161c(_0x237139,_0x5c9235){_0x237139=_0x237139-0x134;const _0x62a2f2=a56_0x62a2();let _0x161ce4=_0x62a2f2[_0x237139];return _0x161ce4;}function a56_0x62a2(){const _0x162df1=['8vnWpgv','shouldWrite','5417688wRUTMP','938985vKsHGF','before','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','after','Preview:\x20add\x20runtime\x20role\x20member','4349040GJmbDa','55566CjiYGJ','POST','description','user-add','role','body','build','26eOwNWa','warnings','appCode','userId','high-risk-write','roleList','3991096dJVIsQ','7062230wJzjRq','/client/permit/user-role/update-user-list','8480484ZkrlCi'];a56_0x62a2=function(){return _0x162df1;};return a56_0x62a2();}
@@ -1 +1 @@
1
- const a57_0xf05fb5=a57_0x5789;(function(_0x5c3493,_0x404ba9){const _0x26e1fe=a57_0x5789,_0x1a1c54=_0x5c3493();while(!![]){try{const _0x4c76bc=-parseInt(_0x26e1fe(0xb6))/0x1*(parseInt(_0x26e1fe(0xbb))/0x2)+parseInt(_0x26e1fe(0xbc))/0x3*(parseInt(_0x26e1fe(0xba))/0x4)+parseInt(_0x26e1fe(0xb0))/0x5*(parseInt(_0x26e1fe(0xb2))/0x6)+-parseInt(_0x26e1fe(0xac))/0x7*(-parseInt(_0x26e1fe(0xc0))/0x8)+parseInt(_0x26e1fe(0xc5))/0x9*(-parseInt(_0x26e1fe(0xbe))/0xa)+parseInt(_0x26e1fe(0xb4))/0xb*(parseInt(_0x26e1fe(0xc4))/0xc)+-parseInt(_0x26e1fe(0xb7))/0xd;if(_0x4c76bc===_0x404ba9)break;else _0x1a1c54['push'](_0x1a1c54['shift']());}catch(_0x4ee210){_0x1a1c54['push'](_0x1a1c54['shift']());}}}(a57_0x12f2,0xc0789));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x12f2(){const _0xbddeb=['/client/permit/user-role/update-user-list','POST','warnings','96yLyXxM','261CLigxm','body','role','16807MnhRDX','build','Preview:\x20remove\x20runtime\x20role\x20member','appCode','35yADNkF','description','828606zZLxhQ','user-remove','1886522ENdCVf','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','5GYCjDM','38913732utfFJK','userId','roleList','12EjudPV','363278AxEdqq','778374itbevk','high-risk-write','770lkPMXk','shouldWrite','5248IkAPek'];a57_0x12f2=function(){return _0xbddeb;};return a57_0x12f2();}function a57_0x5789(_0x11f066,_0x3a8fe7){_0x11f066=_0x11f066-0xab;const _0x12f221=a57_0x12f2();let _0x57897e=_0x12f221[_0x11f066];return _0x57897e;}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':a57_0xf05fb5(0xab),'command':a57_0xf05fb5(0xb3),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':a57_0xf05fb5(0xbd),'confirmationDescription':a57_0xf05fb5(0xb5),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2dc9b6){const _0x1a927f=a57_0xf05fb5,_0x5b9024=await prepareRuntimeMemberMutation(_0x2dc9b6,_0x1a927f(0xb3));return dryRun('POST',_0x1a927f(0xc1))[_0x1a927f(0xc6)]({'appCode':_0x2dc9b6['appCode'],'roleList':_0x5b9024[_0x1a927f(0xb9)]})[_0x1a927f(0xb1)](_0x5b9024[_0x1a927f(0xbf)]?_0x1a927f(0xae):_0x5b9024[_0x1a927f(0xc3)][0x0])[_0x1a927f(0xad)]();},async 'execute'(_0x3e67d6){const _0x365a00=a57_0xf05fb5,_0x155f65=await prepareRuntimeMemberMutation(_0x3e67d6,_0x365a00(0xb3));return _0x155f65[_0x365a00(0xbf)]&&await updateRuntimeRoleUsers(_0x3e67d6[_0x365a00(0xaf)],_0x155f65[_0x365a00(0xb9)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x365a00(0xb3),{'roleId':_0x155f65[_0x365a00(0xab)]['id'],'userId':_0x155f65[_0x365a00(0xb8)]},_0x155f65['before'],_0x155f65['after'],{'method':_0x365a00(0xc2),'path':_0x365a00(0xc1)},_0x155f65[_0x365a00(0xc3)])};}};
1
+ function a57_0x1f0e(_0x3e9fc2,_0x1cf611){_0x3e9fc2=_0x3e9fc2-0x1c6;const _0x48249d=a57_0x4824();let _0x1f0e61=_0x48249d[_0x3e9fc2];return _0x1f0e61;}const a57_0x3248f2=a57_0x1f0e;(function(_0x14227d,_0x3a4527){const _0x120533=a57_0x1f0e,_0x5ba545=_0x14227d();while(!![]){try{const _0x1dd7ce=-parseInt(_0x120533(0x1cf))/0x1+-parseInt(_0x120533(0x1de))/0x2*(parseInt(_0x120533(0x1c7))/0x3)+parseInt(_0x120533(0x1d7))/0x4*(-parseInt(_0x120533(0x1cb))/0x5)+-parseInt(_0x120533(0x1cd))/0x6*(parseInt(_0x120533(0x1c8))/0x7)+-parseInt(_0x120533(0x1ca))/0x8*(parseInt(_0x120533(0x1d1))/0x9)+parseInt(_0x120533(0x1d8))/0xa*(parseInt(_0x120533(0x1dc))/0xb)+parseInt(_0x120533(0x1c9))/0xc;if(_0x1dd7ce===_0x3a4527)break;else _0x5ba545['push'](_0x5ba545['shift']());}catch(_0x3df00c){_0x5ba545['push'](_0x5ba545['shift']());}}}(a57_0x4824,0x3215b));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':a57_0x3248f2(0x1d0),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':'high-risk-write','confirmationDescription':a57_0x3248f2(0x1ce),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x487fe5){const _0x2f073a=a57_0x3248f2,_0x36a94a=await prepareRuntimeMemberMutation(_0x487fe5,_0x2f073a(0x1d0));return dryRun(_0x2f073a(0x1db),'/client/permit/user-role/update-user-list')[_0x2f073a(0x1df)]({'appCode':_0x487fe5['appCode'],'roleList':_0x36a94a[_0x2f073a(0x1d4)]})[_0x2f073a(0x1c6)](_0x36a94a[_0x2f073a(0x1d9)]?_0x2f073a(0x1d5):_0x36a94a[_0x2f073a(0x1da)][0x0])[_0x2f073a(0x1dd)]();},async 'execute'(_0x35b5bf){const _0x19ea82=a57_0x3248f2,_0x591b57=await prepareRuntimeMemberMutation(_0x35b5bf,_0x19ea82(0x1d0));return _0x591b57[_0x19ea82(0x1d9)]&&await updateRuntimeRoleUsers(_0x35b5bf['appCode'],_0x591b57['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0x19ea82(0x1d0),{'roleId':_0x591b57['role']['id'],'userId':_0x591b57[_0x19ea82(0x1d6)]},_0x591b57[_0x19ea82(0x1cc)],_0x591b57[_0x19ea82(0x1d3)],{'method':_0x19ea82(0x1db),'path':_0x19ea82(0x1d2)},_0x591b57[_0x19ea82(0x1da)])};}};function a57_0x4824(){const _0x17f3c0=['8436120eAftWE','3728eYsPzZ','248135QLztmm','before','1728vfYSHt','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','196550mlDXeE','user-remove','6606vAcrXs','/client/permit/user-role/update-user-list','after','roleList','Preview:\x20remove\x20runtime\x20role\x20member','userId','4FegIJD','1419380Ippvez','shouldWrite','warnings','POST','11qOjvxA','build','11528WsgYbS','body','description','21RQNDBp','273IOCLIv'];a57_0x4824=function(){return _0x17f3c0;};return a57_0x4824();}
@@ -1 +1 @@
1
- const a58_0x4b2b1a=a58_0x29ae;function a58_0x1969(){const _0x40a6e8=['length','346824EkPaOu','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','list','appCode','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','delete','cursor','deepseek-v4-flash-0731','prompt','POST','ONCE','read','validation','cron','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','str','3003MhuwoY','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','description','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','28SsBXsU','1722987nGoefV','225185XLjyeW','title','\x20schedule\x20','build','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','detail','Preview:\x20run\x20schedule\x20','Preview:\x20delete\x20schedule\x20','high-risk-write','kimi/k3','DELETE','1194952VBPrzE','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','27665ACaUMw','scheduled-at','create','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','114NDWdmB','kind','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','deepseek-v4-pro-0813','num','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','/run','schedule-id','40zmSvaU','Schedule\x20UUID','validate','98ziqnbz','schedule','limit','Preview:\x20create\x20an\x20Agent\x20schedule','Created\x20','number','UTC','string','Queued\x20Task\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20input\x20is\x20valid','CRON','Deleted\x20schedule\x20','40590cdZKac','body','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','trim'];a58_0x1969=function(){return _0x40a6e8;};return a58_0x1969();}(function(_0x33352d,_0x1c56ca){const _0x81cb11=a58_0x29ae,_0x46caa6=_0x33352d();while(!![]){try{const _0x57700b=-parseInt(_0x81cb11(0x11d))/0x1+parseInt(_0x81cb11(0x121))/0x2*(-parseInt(_0x81cb11(0x108))/0x3)+-parseInt(_0x81cb11(0x10d))/0x4*(parseInt(_0x81cb11(0x10f))/0x5)+-parseInt(_0x81cb11(0x139))/0x6*(parseInt(_0x81cb11(0x12c))/0x7)+parseInt(_0x81cb11(0x13f))/0x8+parseInt(_0x81cb11(0x10e))/0x9+-parseInt(_0x81cb11(0x129))/0xa*(-parseInt(_0x81cb11(0x11a))/0xb);if(_0x57700b===_0x1c56ca)break;else _0x46caa6['push'](_0x46caa6['shift']());}catch(_0x4a76f3){_0x46caa6['push'](_0x46caa6['shift']());}}}(a58_0x1969,0x2aa29));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a58_0x29ae(_0x3b5c90,_0xc847a5){_0x3b5c90=_0x3b5c90-0x107;const _0x1969e7=a58_0x1969();let _0x29ae57=_0x1969e7[_0x3b5c90];return _0x29ae57;}const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x4b2b1a(0x122),'type':'string','required':!![],'enum':['CRON',a58_0x4b2b1a(0x149)],'description':a58_0x4b2b1a(0x11c)},CRON_FLAG={'name':a58_0x4b2b1a(0x14c),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x10c)},SCHEDULED_AT_FLAG={'name':a58_0x4b2b1a(0x11e),'type':a58_0x4b2b1a(0x133),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x4b2b1a(0x110),'type':a58_0x4b2b1a(0x133),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x126)},MODEL_FLAG={'name':'model','type':a58_0x4b2b1a(0x133),'enum':[a58_0x4b2b1a(0x118),a58_0x4b2b1a(0x146),a58_0x4b2b1a(0x124)],'default':a58_0x4b2b1a(0x146),'description':a58_0x4b2b1a(0x123)},SCHEDULE_ID_FLAG={'name':a58_0x4b2b1a(0x128),'type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x12a),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':'limit','type':a58_0x4b2b1a(0x131),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x4b2b1a(0x145),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x135)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3a1d7c){const _0x408fed=a58_0x4b2b1a,_0x18fd2b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x122)),_0x3e892c=_0x3a1d7c[_0x408fed(0x107)]('title')[_0x408fed(0x13d)](),_0x587229=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x147))[_0x408fed(0x13d)](),_0xf29f82=_0x3a1d7c[_0x408fed(0x107)]('model'),_0x495d3c=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x14c)),_0x58721b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x11e));if(!_0x3e892c)throw CliErrors[_0x408fed(0x14b)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x587229)throw CliErrors['validation']('--prompt\x20must\x20not\x20be\x20blank.');if(_0x18fd2b===_0x408fed(0x137)){if(!_0x495d3c||_0x58721b)throw CliErrors[_0x408fed(0x14b)](_0x408fed(0x120));return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'cron':_0x495d3c,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}if(_0x18fd2b===_0x408fed(0x149)){if(!_0x58721b||_0x495d3c)throw CliErrors['validation']('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'scheduledAt':_0x58721b,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}throw CliErrors[_0x408fed(0x14b)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2c1c92){return'/api/harness/apps/'+encodeURIComponent(_0x2c1c92)+'/schedules';}function scheduleItemPath(_0x592791,_0x2c8336){return scheduleCollectionPath(_0x592791)+'/'+encodeURIComponent(_0x2c8336);}const scheduleValidate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x12b),'description':a58_0x4b2b1a(0x109),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x1ed191){readScheduleInput(_0x1ed191);},async 'execute'(_0x4ecb77){const _0x50ac40=a58_0x4b2b1a,_0x4fef6d=readScheduleInput(_0x4ecb77),_0x51e060=await validateRuntimeSchedule(_0x4ecb77[_0x50ac40(0x142)],_0x4fef6d);return{'ok':!![],'data':_0x51e060,'message':_0x50ac40(0x136)};}},scheduleCreate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x11f),'description':a58_0x4b2b1a(0x13c),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x11b),'flags':INPUT_FLAGS,async 'validate'(_0x3b085a){readScheduleInput(_0x3b085a);},async 'execute'(_0x201d32){const _0x130321=a58_0x4b2b1a,_0x5e6a0b=readScheduleInput(_0x201d32),_0x4b5eaf=await validateRuntimeSchedule(_0x201d32['appCode'],_0x5e6a0b),_0xe77a11=await createRuntimeSchedule(_0x201d32[_0x130321(0x142)],_0x4b5eaf);return{'ok':!![],'data':_0xe77a11,'message':_0x130321(0x130)+_0xe77a11[_0x130321(0x122)]+_0x130321(0x111)+_0xe77a11['scheduleId']};},async 'dryRun'(_0x115a12){const _0x5732c1=a58_0x4b2b1a,_0x34739c=readScheduleInput(_0x115a12);return dryRun(_0x5732c1(0x148),scheduleCollectionPath(_0x115a12[_0x5732c1(0x142)]))[_0x5732c1(0x13a)](_0x34739c)['description'](_0x5732c1(0x12f))[_0x5732c1(0x112)]();}},scheduleList={'service':'schedule','command':a58_0x4b2b1a(0x141),'description':a58_0x4b2b1a(0x13b),'risk':a58_0x4b2b1a(0x14a),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x333010){const _0x4b2a28=a58_0x4b2b1a,_0x3a3887=_0x333010['num'](_0x4b2a28(0x12e));if(!Number['isSafeInteger'](_0x3a3887)||_0x3a3887<0x1||_0x3a3887>0x64)throw CliErrors[_0x4b2a28(0x14b)](_0x4b2a28(0x113));const _0x3dbf36=_0x333010['str'](_0x4b2a28(0x145));if(_0x3dbf36&&(_0x3dbf36[_0x4b2a28(0x13e)]>0x400||_0x3dbf36[_0x4b2a28(0x13d)]()!==_0x3dbf36))throw CliErrors[_0x4b2a28(0x14b)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0xc56d5){const _0x30243c=a58_0x4b2b1a,_0x515d4b=_0xc56d5[_0x30243c(0x107)](_0x30243c(0x145)),_0x394bfc=await listRuntimeSchedules(_0xc56d5[_0x30243c(0x142)],{'kind':_0xc56d5['str'](_0x30243c(0x122)),'limit':_0xc56d5[_0x30243c(0x125)](_0x30243c(0x12e)),..._0x515d4b?{'cursor':_0x515d4b}:{}});return{'ok':!![],'data':_0x394bfc};}},scheduleDetail={'service':'schedule','command':a58_0x4b2b1a(0x114),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x4b2b1a(0x14a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x19fb39){const _0x2e4439=a58_0x4b2b1a,_0x1f9f7b=await getRuntimeSchedule(_0x19fb39[_0x2e4439(0x142)],_0x19fb39['str'](_0x2e4439(0x128)));return{'ok':!![],'data':_0x1f9f7b};}},scheduleRun={'service':a58_0x4b2b1a(0x12d),'command':'run','description':a58_0x4b2b1a(0x140),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x14d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3865f6){const _0x41cc7f=a58_0x4b2b1a,_0x158124=_0x3865f6[_0x41cc7f(0x107)](_0x41cc7f(0x128)),_0x5efb45=await runRuntimeSchedule(_0x3865f6[_0x41cc7f(0x142)],_0x158124);return{'ok':!![],'data':_0x5efb45,'message':_0x41cc7f(0x134)+_0x5efb45['taskId']+'\x20from\x20schedule\x20'+_0x158124};},async 'dryRun'(_0xca6f2){const _0x56b728=a58_0x4b2b1a,_0x3462c3=_0xca6f2[_0x56b728(0x107)](_0x56b728(0x128));return dryRun(_0x56b728(0x148),scheduleItemPath(_0xca6f2[_0x56b728(0x142)],_0x3462c3)+_0x56b728(0x127))[_0x56b728(0x10b)](_0x56b728(0x115)+_0x3462c3+'\x20immediately')['build']();}},scheduleDelete={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x144),'description':a58_0x4b2b1a(0x143),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x10a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x375681){const _0x2b37da=a58_0x4b2b1a,_0x131685=_0x375681['str'](_0x2b37da(0x128)),_0x4617c3=await deleteRuntimeSchedule(_0x375681[_0x2b37da(0x142)],_0x131685);return{'ok':!![],'data':_0x4617c3,'message':_0x2b37da(0x138)+_0x131685};},async 'dryRun'(_0x399785){const _0x32ad61=a58_0x4b2b1a,_0x5797db=_0x399785[_0x32ad61(0x107)](_0x32ad61(0x128));return dryRun(_0x32ad61(0x119),scheduleItemPath(_0x399785[_0x32ad61(0x142)],_0x5797db))['description'](_0x32ad61(0x116)+_0x5797db)[_0x32ad61(0x112)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0x3b2c06=a58_0x38db;(function(_0x794a89,_0x4da6f1){const _0x28b0b6=a58_0x38db,_0x2b4dd3=_0x794a89();while(!![]){try{const _0x5ceeee=-parseInt(_0x28b0b6(0x15b))/0x1+parseInt(_0x28b0b6(0x11b))/0x2+-parseInt(_0x28b0b6(0x12e))/0x3*(-parseInt(_0x28b0b6(0x12f))/0x4)+parseInt(_0x28b0b6(0x126))/0x5*(-parseInt(_0x28b0b6(0x151))/0x6)+parseInt(_0x28b0b6(0x153))/0x7*(-parseInt(_0x28b0b6(0x132))/0x8)+parseInt(_0x28b0b6(0x12c))/0x9+-parseInt(_0x28b0b6(0x14f))/0xa;if(_0x5ceeee===_0x4da6f1)break;else _0x2b4dd3['push'](_0x2b4dd3['shift']());}catch(_0x37acd9){_0x2b4dd3['push'](_0x2b4dd3['shift']());}}}(a58_0x244f,0x6657c));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';function a58_0x244f(){const _0x5e5c10=['UTC','7iNeryL','length','scheduleId','create','build','limit','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Deleted\x20schedule\x20','782967IBEepa','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','prompt','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','--prompt\x20must\x20not\x20be\x20blank.','\x20immediately','trim','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','scheduled-at','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','ONCE','1401294ynmMOK','deepseek-v4-flash-0731','high-risk-write','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','Preview:\x20delete\x20schedule\x20','taskId','run','Preview:\x20run\x20schedule\x20','title','CRON','POST','130gPTadw','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','appCode','/run','Schedule\x20input\x20is\x20valid','validation','6965487vzwCob','cron','143061vpvENW','68oNNBhZ','kind','DELETE','876952HLNoUg','Schedule\x20title','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Schedule\x20UUID','deepseek-v4-pro-0813','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Queued\x20Task\x20','schedule','Created\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','description','cursor','\x20schedule\x20','/schedules','delete','num','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Preview:\x20create\x20an\x20Agent\x20schedule','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','string','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','--title\x20must\x20not\x20be\x20blank.','validate','list','kimi/k3','str','detail','read','body','9532850gBZogH','schedule-id','4662glKrkB'];a58_0x244f=function(){return _0x5e5c10;};return a58_0x244f();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':'kind','type':a58_0x3b2c06(0x145),'required':!![],'enum':[a58_0x3b2c06(0x124),a58_0x3b2c06(0x11a)],'description':a58_0x3b2c06(0x142)},CRON_FLAG={'name':a58_0x3b2c06(0x12d),'type':a58_0x3b2c06(0x145),'description':a58_0x3b2c06(0x116)},SCHEDULED_AT_FLAG={'name':a58_0x3b2c06(0x117),'type':a58_0x3b2c06(0x145),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x3b2c06(0x123),'type':'string','required':!![],'description':a58_0x3b2c06(0x133)},PROMPT_FLAG={'name':a58_0x3b2c06(0x111),'type':a58_0x3b2c06(0x145),'required':!![],'description':a58_0x3b2c06(0x127)},MODEL_FLAG={'name':'model','type':a58_0x3b2c06(0x145),'enum':[a58_0x3b2c06(0x14a),a58_0x3b2c06(0x11c),a58_0x3b2c06(0x136)],'default':'deepseek-v4-flash-0731','description':a58_0x3b2c06(0x110)},SCHEDULE_ID_FLAG={'name':a58_0x3b2c06(0x150),'type':a58_0x3b2c06(0x145),'required':!![],'description':a58_0x3b2c06(0x135),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x3b2c06(0x159)}},LIMIT_FLAG={'name':'limit','type':'number','default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x3b2c06(0x13d),'type':a58_0x3b2c06(0x145),'description':a58_0x3b2c06(0x13b)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x49b075){const _0x110445=a58_0x3b2c06,_0x484964=_0x49b075['str'](_0x110445(0x130)),_0x5ddb6a=_0x49b075[_0x110445(0x14b)]('title')['trim'](),_0x471ff2=_0x49b075['str']('prompt')['trim'](),_0x412fa7=_0x49b075[_0x110445(0x14b)]('model'),_0x53c6c4=_0x49b075['str'](_0x110445(0x12d)),_0x5a0a93=_0x49b075[_0x110445(0x14b)]('scheduled-at');if(!_0x5ddb6a)throw CliErrors[_0x110445(0x12b)](_0x110445(0x147));if(!_0x471ff2)throw CliErrors[_0x110445(0x12b)](_0x110445(0x113));if(_0x484964===_0x110445(0x124)){if(!_0x53c6c4||_0x5a0a93)throw CliErrors[_0x110445(0x12b)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x484964,'timezone':_0x110445(0x152),'cron':_0x53c6c4,'title':_0x5ddb6a,'prompt':_0x471ff2,'model':_0x412fa7};}if(_0x484964===_0x110445(0x11a)){if(!_0x5a0a93||_0x53c6c4)throw CliErrors['validation'](_0x110445(0x146));return{'kind':_0x484964,'timezone':_0x110445(0x152),'scheduledAt':_0x5a0a93,'title':_0x5ddb6a,'prompt':_0x471ff2,'model':_0x412fa7};}throw CliErrors['validation'](_0x110445(0x11e));}function a58_0x38db(_0x3eeb99,_0x239af7){_0x3eeb99=_0x3eeb99-0x110;const _0x244f1b=a58_0x244f();let _0x38db0e=_0x244f1b[_0x3eeb99];return _0x38db0e;}function scheduleCollectionPath(_0x4e891c){const _0x1ed1d3=a58_0x3b2c06;return'/api/harness/apps/'+encodeURIComponent(_0x4e891c)+_0x1ed1d3(0x13f);}function scheduleItemPath(_0x1a26bb,_0x5257ed){return scheduleCollectionPath(_0x1a26bb)+'/'+encodeURIComponent(_0x5257ed);}const scheduleValidate={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x148),'description':a58_0x3b2c06(0x137),'risk':a58_0x3b2c06(0x14d),'flags':INPUT_FLAGS,async 'validate'(_0x1f543a){readScheduleInput(_0x1f543a);},async 'execute'(_0x585abc){const _0x26a98d=a58_0x3b2c06,_0x3f3d78=readScheduleInput(_0x585abc),_0x193677=await validateRuntimeSchedule(_0x585abc[_0x26a98d(0x128)],_0x3f3d78);return{'ok':!![],'data':_0x193677,'message':_0x26a98d(0x12a)};}},scheduleCreate={'service':'schedule','command':a58_0x3b2c06(0x156),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a58_0x3b2c06(0x11d),'confirmationDescription':a58_0x3b2c06(0x134),'flags':INPUT_FLAGS,async 'validate'(_0x4344e1){readScheduleInput(_0x4344e1);},async 'execute'(_0x18f179){const _0x44dc21=a58_0x3b2c06,_0xb333b0=readScheduleInput(_0x18f179),_0x85b7e7=await validateRuntimeSchedule(_0x18f179['appCode'],_0xb333b0),_0x33e65e=await createRuntimeSchedule(_0x18f179[_0x44dc21(0x128)],_0x85b7e7);return{'ok':!![],'data':_0x33e65e,'message':_0x44dc21(0x13a)+_0x33e65e[_0x44dc21(0x130)]+_0x44dc21(0x13e)+_0x33e65e[_0x44dc21(0x155)]};},async 'dryRun'(_0xe81603){const _0x3904e6=a58_0x3b2c06,_0x3c044d=readScheduleInput(_0xe81603);return dryRun(_0x3904e6(0x125),scheduleCollectionPath(_0xe81603[_0x3904e6(0x128)]))[_0x3904e6(0x14e)](_0x3c044d)['description'](_0x3904e6(0x143))[_0x3904e6(0x157)]();}},scheduleList={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x149),'description':a58_0x3b2c06(0x118),'risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x5b41a8){const _0x369d16=a58_0x3b2c06,_0x459cd4=_0x5b41a8[_0x369d16(0x141)](_0x369d16(0x158));if(!Number['isSafeInteger'](_0x459cd4)||_0x459cd4<0x1||_0x459cd4>0x64)throw CliErrors[_0x369d16(0x12b)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x3b7f14=_0x5b41a8[_0x369d16(0x14b)](_0x369d16(0x13d));if(_0x3b7f14&&(_0x3b7f14[_0x369d16(0x154)]>0x400||_0x3b7f14[_0x369d16(0x115)]()!==_0x3b7f14))throw CliErrors[_0x369d16(0x12b)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x432b71){const _0x8e8fff=a58_0x3b2c06,_0x4e87f7=_0x432b71[_0x8e8fff(0x14b)]('cursor'),_0x2c671b=await listRuntimeSchedules(_0x432b71[_0x8e8fff(0x128)],{'kind':_0x432b71[_0x8e8fff(0x14b)]('kind'),'limit':_0x432b71[_0x8e8fff(0x141)](_0x8e8fff(0x158)),..._0x4e87f7?{'cursor':_0x4e87f7}:{}});return{'ok':!![],'data':_0x2c671b};}},scheduleDetail={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x14c),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x3b2c06(0x14d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x54f113){const _0x36724a=a58_0x3b2c06,_0x2fe2c4=await getRuntimeSchedule(_0x54f113[_0x36724a(0x128)],_0x54f113[_0x36724a(0x14b)]('schedule-id'));return{'ok':!![],'data':_0x2fe2c4};}},scheduleRun={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x121),'description':a58_0x3b2c06(0x144),'risk':a58_0x3b2c06(0x11d),'confirmationDescription':a58_0x3b2c06(0x119),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5b426d){const _0x5cc0a1=a58_0x3b2c06,_0x3cab74=_0x5b426d['str'](_0x5cc0a1(0x150)),_0x4a7303=await runRuntimeSchedule(_0x5b426d[_0x5cc0a1(0x128)],_0x3cab74);return{'ok':!![],'data':_0x4a7303,'message':_0x5cc0a1(0x138)+_0x4a7303[_0x5cc0a1(0x120)]+'\x20from\x20schedule\x20'+_0x3cab74};},async 'dryRun'(_0x206d33){const _0x40a586=a58_0x3b2c06,_0xc75d26=_0x206d33[_0x40a586(0x14b)](_0x40a586(0x150));return dryRun(_0x40a586(0x125),scheduleItemPath(_0x206d33[_0x40a586(0x128)],_0xc75d26)+_0x40a586(0x129))[_0x40a586(0x13c)](_0x40a586(0x122)+_0xc75d26+_0x40a586(0x114))[_0x40a586(0x157)]();}},scheduleDelete={'service':a58_0x3b2c06(0x139),'command':a58_0x3b2c06(0x140),'description':a58_0x3b2c06(0x112),'risk':a58_0x3b2c06(0x11d),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2cbdd3){const _0x44a27d=a58_0x3b2c06,_0x438814=_0x2cbdd3[_0x44a27d(0x14b)](_0x44a27d(0x150)),_0x456d81=await deleteRuntimeSchedule(_0x2cbdd3[_0x44a27d(0x128)],_0x438814);return{'ok':!![],'data':_0x456d81,'message':_0x44a27d(0x15a)+_0x438814};},async 'dryRun'(_0x236e64){const _0x293eb4=a58_0x3b2c06,_0x433a56=_0x236e64[_0x293eb4(0x14b)](_0x293eb4(0x150));return dryRun(_0x293eb4(0x131),scheduleItemPath(_0x236e64[_0x293eb4(0x128)],_0x433a56))[_0x293eb4(0x13c)](_0x293eb4(0x11f)+_0x433a56)[_0x293eb4(0x157)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a59_0x1c5406=a59_0x2f2b;function a59_0x2f2b(_0x3ee44f,_0xd59cea){_0x3ee44f=_0x3ee44f-0x132;const _0x252167=a59_0x2521();let _0x2f2b2c=_0x252167[_0x3ee44f];return _0x2f2b2c;}(function(_0x1ad6dd,_0x2dc11c){const _0xf7891b=a59_0x2f2b,_0x53e0da=_0x1ad6dd();while(!![]){try{const _0xd67533=parseInt(_0xf7891b(0x139))/0x1*(-parseInt(_0xf7891b(0x137))/0x2)+-parseInt(_0xf7891b(0x136))/0x3*(parseInt(_0xf7891b(0x135))/0x4)+parseInt(_0xf7891b(0x134))/0x5*(parseInt(_0xf7891b(0x13a))/0x6)+parseInt(_0xf7891b(0x132))/0x7+parseInt(_0xf7891b(0x13d))/0x8+-parseInt(_0xf7891b(0x138))/0x9+-parseInt(_0xf7891b(0x13e))/0xa;if(_0xd67533===_0x2dc11c)break;else _0x53e0da['push'](_0x53e0da['shift']());}catch(_0x4ebbda){_0x53e0da['push'](_0x53e0da['shift']());}}}(a59_0x2521,0xed8e5));function a59_0x2521(){const _0x47ec2a=['2359920ZONSXY','5038292hXnIYm','schema','25rUGuNl','1018252ASpciF','6ereMOq','2SdPGsm','3691692JAFZvi','1348637AOVfka','1176954alaVez','export','Export\x20machine-readable\x20command\x20schema\x20(JSON)','14211368IeHhJG'];a59_0x2521=function(){return _0x47ec2a;};return a59_0x2521();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3efc27){const _0x143460=await buildSchemaPayload();return{'ok':!![],'data':_0x143460};}export const schemaDefinition={'service':a59_0x1c5406(0x133),'command':a59_0x1c5406(0x13b),'description':a59_0x1c5406(0x13c),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a59_0x481d3a=a59_0x5c00;(function(_0x3af3e,_0x31bac6){const _0x105cba=a59_0x5c00,_0xe7dfd3=_0x3af3e();while(!![]){try{const _0x35bb45=parseInt(_0x105cba(0xeb))/0x1*(parseInt(_0x105cba(0xea))/0x2)+-parseInt(_0x105cba(0xe0))/0x3*(parseInt(_0x105cba(0xe3))/0x4)+-parseInt(_0x105cba(0xe8))/0x5*(parseInt(_0x105cba(0xdd))/0x6)+parseInt(_0x105cba(0xdf))/0x7+-parseInt(_0x105cba(0xe5))/0x8*(parseInt(_0x105cba(0xe6))/0x9)+-parseInt(_0x105cba(0xe1))/0xa+parseInt(_0x105cba(0xe2))/0xb;if(_0x35bb45===_0x31bac6)break;else _0xe7dfd3['push'](_0xe7dfd3['shift']());}catch(_0x22ca19){_0xe7dfd3['push'](_0xe7dfd3['shift']());}}}(a59_0x58d4,0x1f3d7));import{buildSchemaPayload}from'../framework/schema-export.js';function a59_0x58d4(){const _0x2193ec=['4858601oPmBMf','104sUtUlc','schema','191960CxuAtD','18fuGcMN','export','3055oWVzQJ','read','94yySyOf','3466nkgrwp','1146ZcusUt','Export\x20machine-readable\x20command\x20schema\x20(JSON)','602490KEYPYH','28263ShQucx','1530670BvAYYs'];a59_0x58d4=function(){return _0x2193ec;};return a59_0x58d4();}function a59_0x5c00(_0x18db51,_0x3cc808){_0x18db51=_0x18db51-0xdd;const _0x58d49a=a59_0x58d4();let _0x5c0052=_0x58d49a[_0x18db51];return _0x5c0052;}async function execute(_0x4a6b7a){const _0x2896dc=await buildSchemaPayload();return{'ok':!![],'data':_0x2896dc};}export const schemaDefinition={'service':a59_0x481d3a(0xe4),'command':a59_0x481d3a(0xe7),'description':a59_0x481d3a(0xde),'risk':a59_0x481d3a(0xe9),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x5cd103,_0x283901){const _0x286ede=a60_0x6f84,_0x1f97ad=_0x5cd103();while(!![]){try{const _0xc445ce=-parseInt(_0x286ede(0xcf))/0x1*(parseInt(_0x286ede(0x111))/0x2)+-parseInt(_0x286ede(0xe2))/0x3+parseInt(_0x286ede(0xca))/0x4+-parseInt(_0x286ede(0xd1))/0x5*(parseInt(_0x286ede(0x102))/0x6)+parseInt(_0x286ede(0xc3))/0x7+parseInt(_0x286ede(0xf7))/0x8+-parseInt(_0x286ede(0xeb))/0x9*(parseInt(_0x286ede(0xc1))/0xa);if(_0xc445ce===_0x283901)break;else _0x1f97ad['push'](_0x1f97ad['shift']());}catch(_0x5af803){_0x1f97ad['push'](_0x1f97ad['shift']());}}}(a60_0x4076,0xe85e7));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(_0xb91f84,_0x4af0ac){const _0x4090e6=a60_0x6f84,_0x381879=listLocalServiceTrees();let _0x50417b;for(const _0x58dcf2 of _0x381879){const _0x4d31aa=matchServiceTreeCommand(_0x58dcf2,_0xb91f84);if(!_0x4d31aa)continue;(!_0x50417b||_0x4d31aa[_0x4090e6(0xf8)][_0x4090e6(0x115)]['length']>_0x50417b[_0x4090e6(0xf8)][_0x4090e6(0x115)][_0x4090e6(0x104)])&&(_0x50417b={'tree':_0x58dcf2,'command':_0x4d31aa['command'],'remainingArgs':_0x4d31aa['remainingArgs']});}if(!_0x50417b)return undefined;const _0x5e617e={..._0x4af0ac};return applyAppBinding(_0x50417b['tree'],_0x50417b['command'],_0x5e617e),{'definition':buildDynamicCommandDefinition(_0x50417b[_0x4090e6(0xd0)],_0x50417b['command']),'args':_0x50417b[_0x4090e6(0xd6)],'flags':_0x5e617e,'tree':_0x50417b[_0x4090e6(0xd0)],'command':_0x50417b['command']};}function a60_0x6f84(_0x43de1c,_0x3bf723){_0x43de1c=_0x43de1c-0xb9;const _0x40761a=a60_0x4076();let _0x6f84c2=_0x40761a[_0x43de1c];return _0x6f84c2;}export function generateDynamicServiceHelp(_0x308659){const _0x22b364=a60_0x6f84,_0x3834a7=listLocalServiceTrees()[_0x22b364(0x105)](_0x2ba9a2=>_0x2ba9a2[_0x22b364(0xf0)][_0x22b364(0xe8)]===_0x308659);if(!_0x3834a7)return undefined;const _0x47dbcf=[CLI_BIN_NAME+'\x20'+_0x308659+_0x22b364(0xf9),'',_0x3834a7[_0x22b364(0xf0)][_0x22b364(0xee)]||_0x308659,_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]?'\x20\x20'+_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]:'','',_0x22b364(0xe7),..._0x3834a7[_0x22b364(0xf3)][_0x22b364(0x103)](_0x59aee4=>{const _0x13ceca=_0x22b364,_0x18c616=_0x59aee4[_0x13ceca(0x115)][_0x13ceca(0xfa)](0x1)[_0x13ceca(0x116)]('\x20'),_0x2abc0e=_0x59aee4[_0x13ceca(0x109)]===_0x13ceca(0x108)?'':'\x20['+_0x59aee4[_0x13ceca(0x109)]+']';return'\x20\x20'+_0x18c616[_0x13ceca(0x10b)](0x18)+'\x20'+(_0x59aee4[_0x13ceca(0x126)]||'')+_0x2abc0e;}),'','Use\x20`'+CLI_BIN_NAME+_0x22b364(0xe1)+_0x308659+_0x22b364(0x11e)][_0x22b364(0xe0)](Boolean);return _0x47dbcf[_0x22b364(0x116)]('\x0a');}export function listDynamicServiceEntries(){const _0x10fe8f=a60_0x6f84;return listLocalServices()[_0x10fe8f(0x103)](_0x538e29=>{const _0x888f9e=_0x10fe8f,_0x4504c8=_0x538e29[_0x888f9e(0xd5)];return{'service':_0x4504c8['service']['code'],'label':_0x4504c8['service'][_0x888f9e(0xee)]||_0x4504c8[_0x888f9e(0xf0)][_0x888f9e(0xe8)],'commands':_0x4504c8['commands']['map'](_0x58968b=>({'command':dynamicCommandName(_0x58968b),'description':_0x58968b[_0x888f9e(0x126)]||_0x888f9e(0xef)+_0x58968b[_0x888f9e(0xec)],'tag':riskTag(_0x58968b['risk'])}))};});}export function getDynamicServiceEntry(_0x2e6f7a){const _0x4e5e36=a60_0x6f84;return listDynamicServiceEntries()[_0x4e5e36(0x105)](_0xd1d7fa=>_0xd1d7fa[_0x4e5e36(0xf0)]===_0x2e6f7a);}export function listDynamicServiceDefinitions(_0x13abf1){const _0x4b52f=a60_0x6f84;return listLocalServiceTrees()['filter'](_0x4c10e3=>!_0x13abf1||_0x4c10e3[_0x4b52f(0xf0)][_0x4b52f(0xe8)]===_0x13abf1)[_0x4b52f(0xc4)](_0x51b7c1=>_0x51b7c1['commands'][_0x4b52f(0x103)](_0x43e686=>buildDynamicCommandDefinition(_0x51b7c1,_0x43e686)));}export function getDynamicServiceDefinitions(_0x34b34e){const _0x1c4739=listDynamicServiceDefinitions(_0x34b34e);return _0x1c4739['length']>0x0?_0x1c4739:undefined;}export function findDynamicServiceDefinition(_0x36b463,_0x5655e1){const _0x55d61a=a60_0x6f84;return listDynamicServiceDefinitions(_0x36b463)['find'](_0x5741d9=>_0x5741d9[_0x55d61a(0xf8)]===_0x5655e1);}export function buildDynamicCommandDefinition(_0x300bf8,_0x28cbc2){const _0x39c5fe=a60_0x6f84;return{'service':_0x300bf8[_0x39c5fe(0xf0)][_0x39c5fe(0xe8)],'command':dynamicCommandName(_0x28cbc2),'description':_0x28cbc2['description']||_0x39c5fe(0xef)+_0x28cbc2['cliPath'],'risk':_0x28cbc2[_0x39c5fe(0x109)],..._0x28cbc2[_0x39c5fe(0x109)]===_0x39c5fe(0x108)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x28cbc2)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x28cbc2[_0x39c5fe(0x121)]['map'](_0x5e1cca=>({'name':_0x5e1cca[_0x39c5fe(0xee)],'description':_0x5e1cca[_0x39c5fe(0x126)]||_0x5e1cca[_0x39c5fe(0xee)],'required':_0x5e1cca[_0x39c5fe(0xbc)]})),'flags':_0x28cbc2['flags'][_0x39c5fe(0x103)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x28cbc2),async 'dryRun'(_0x24939a){const _0x1d0fab=_0x39c5fe,_0x2b4e60=await compilePlan(_0x28cbc2,_0x24939a);return{'method':_0x1d0fab(0xd8),'url':_0x28cbc2['cliPath'],'body':{'target':targetPreview(_0x2b4e60),'params':_0x2b4e60[_0x1d0fab(0xc5)]},'description':_0x1d0fab(0x10a)+_0x28cbc2[_0x1d0fab(0xec)]};},async 'execute'(_0x3274ad){const _0x4429ab=_0x39c5fe,_0x832d3a=await compilePlan(_0x28cbc2,_0x3274ad),_0x198df2=Date[_0x4429ab(0xe3)](),_0x14f784=await executePlan(_0x832d3a,_0x28cbc2,_0x3274ad),_0x3f1ca9=Date[_0x4429ab(0xe3)]()-_0x198df2;return{'ok':!![],'data':{'service':_0x300bf8['service'],'command':_0x28cbc2[_0x4429ab(0xec)],'target':targetPreview(_0x832d3a),'result':_0x14f784,'elapsed':_0x3f1ca9},'message':_0x4429ab(0xf6)+_0x28cbc2['cliPath']+_0x4429ab(0xce)+_0x3f1ca9+'ms'};}};}function buildDynamicConfirmationDescription(_0x3bd1c4){const _0x1e4141=a60_0x6f84,_0x5b09cf=_0x3bd1c4['description']||_0x3bd1c4['cliPath'],_0x42cfd7=_0x3bd1c4[_0x1e4141(0x109)]===_0x1e4141(0xdb)?_0x1e4141(0x107):_0x1e4141(0xe9);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x5b09cf+_0x1e4141(0xed)+_0x42cfd7;}function dynamicCommandName(_0x26271d){const _0x1c349e=a60_0x6f84;return _0x26271d['fullPath']['slice'](0x1)[_0x1c349e(0x116)]('\x20');}function riskTag(_0x547514){const _0x4d05d9=a60_0x6f84;return _0x547514===_0x4d05d9(0x108)?'':'\x20\x20['+_0x547514+']';}function flagToCommandFlag(_0x3ff5f3){const _0x364e8b=a60_0x6f84;return{'name':_0x3ff5f3[_0x364e8b(0x113)],'type':_0x3ff5f3[_0x364e8b(0xd4)]===_0x364e8b(0xff)?'string':_0x3ff5f3[_0x364e8b(0xd4)],'description':_0x3ff5f3['description']||_0x3ff5f3[_0x364e8b(0xee)],'required':_0x3ff5f3[_0x364e8b(0xbc)],'default':isPrimitiveFlagDefault(_0x3ff5f3[_0x364e8b(0x10d)])?_0x3ff5f3['default']:undefined,'enum':_0x3ff5f3[_0x364e8b(0xe4)]};}async function compilePlan(_0x5c9188,_0x2456b1){const _0x3fd0a8=a60_0x6f84;return compileServiceTreeCommand(_0x5c9188,{'flags':_0x2456b1[_0x3fd0a8(0xdf)],'args':_0x2456b1['args'],'context':await buildServiceContext(_0x5c9188,_0x2456b1)});}async function buildServiceContext(_0x2823a9,_0x5c4fe9){const _0x3e070b=a60_0x6f84,_0x460799={'appCode':_0x5c4fe9['appCode'],'env':_0x5c4fe9[_0x3e070b(0x119)],'envName':_0x5c4fe9[_0x3e070b(0x119)]};if(!usesRuntimeContext(_0x2823a9))return _0x460799;const _0x10d9ee=await getLoginUserInfo(),_0x587f22=pickFirst(_0x10d9ee[_0x3e070b(0x100)],_0x10d9ee['id']);return{..._0x460799,'user':_0x10d9ee,'userId':_0x587f22,'id':_0x10d9ee['id'],'username':pickFirst(_0x10d9ee[_0x3e070b(0x10c)],_0x10d9ee[_0x3e070b(0xbf)],_0x10d9ee[_0x3e070b(0xde)]),'userName':_0x10d9ee[_0x3e070b(0xbf)],'nickname':pickFirst(_0x10d9ee[_0x3e070b(0xc9)],_0x10d9ee[_0x3e070b(0xc0)]),'nickName':_0x10d9ee[_0x3e070b(0xc0)],'tenantCode':_0x10d9ee[_0x3e070b(0xfd)],'employeeId':_0x10d9ee[_0x3e070b(0x101)]};}function usesRuntimeContext(_0x580598){const _0x28acfc=a60_0x6f84;return _0x580598[_0x28acfc(0xbd)][_0x28acfc(0x114)](_0x3f966d=>typeof _0x3f966d[_0x28acfc(0xc7)]==='string'&&(_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xc2))||_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xf2))));}function pickFirst(..._0x1b9754){return _0x1b9754['find'](_0x4c28bf=>_0x4c28bf!==undefined&&_0x4c28bf!==null);}function a60_0x4076(){const _0x25788e=['14327024DRHTTm','command','\x20<command>\x20[flags]','slice','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','dbtableConfig','tenantCode','tableName','json','userId','employeeId','3054NWUYKT','map','length','find','datasetCode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','read','risk','Preview\x20dynamic\x20service\x20command:\x20','padEnd','username','default','bff','\x20->\x20','Unknown\x20appRef\x20\x22','3541944PPqBno','\x20requires\x20target.sqlCode.','cliName','some','fullPath','join','kind','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','envName','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20SERVICE\x20TREE\x20TARGET','sqlCode','\x20\x20\x20\x20','`\x20to\x20inspect\x20the\x20manifest.','operator','appRef','args','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','env','appBindings','appcode','description','push','\x20\x20\x20\x20datasetCode:\x20','\x20\x20MAP\x20TO','required','mapTo','Cannot\x20resolve\x20datatable\x20\x22','userName','nickName','4282210aTChfp','context.','9009308DAXGnM','flatMap','params','sql','source','validation','nickname','3737596FgLMWo','string','appCode','\x20requires\x20target.functionName.','\x20completed\x20in\x20','1DpyoiZ','tree','3285BGKvOG','bffId','scriptName','type','normalizedManifest','remainingArgs','\x20\x20\x20\x20datatable:\x20','SERVICE_TREE','entries','app','high-risk-write','\x20\x20\x20\x20sqlCode:\x20','bffCode','loginName','rawFlags','filter','\x20service\x20detail\x20--service\x20','296133PSNcjA','now','enum','number','const','Commands:','code','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','target','18htucIl','cliPath','\x22.\x20','name','Run\x20service\x20command\x20','service','\x20\x20\x20\x20functionName:\x20','ctx.','commands','boolean','datatable','Service\x20command\x20'];a60_0x4076=function(){return _0x25788e;};return a60_0x4076();}async function executePlan(_0x1db91e,_0x3fdbed,_0x430d34){const _0x7fc571=a60_0x6f84;if(_0x1db91e[_0x7fc571(0x117)]==='data'){const _0x24ba0e=await resolveDatasetCode(_0x1db91e,_0x3fdbed,_0x430d34);return executeData(_0x24ba0e,_0x1db91e[_0x7fc571(0xf8)],_0x1db91e['params']);}if(_0x1db91e['kind']===_0x7fc571(0xc6)){if(!_0x1db91e[_0x7fc571(0x11c)])throw CliErrors['validation']('Service\x20command\x20'+_0x3fdbed['cliPath']+_0x7fc571(0x112));return executeSdkSql(_0x1db91e[_0x7fc571(0x11c)],normalizeScalarParams(_0x1db91e[_0x7fc571(0xc5)]));}if(_0x1db91e[_0x7fc571(0x117)]===_0x7fc571(0x10e)){const _0x219e35=_0x1db91e[_0x7fc571(0xd3)]||_0x1db91e[_0x7fc571(0xdd)]||(_0x1db91e['bffId']==null?'':String(_0x1db91e['bffId']));if(!_0x219e35)throw CliErrors['validation'](_0x7fc571(0xf6)+_0x3fdbed['cliPath']+_0x7fc571(0xcd));return executeSdkBff(_0x219e35,_0x1db91e[_0x7fc571(0xc5)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x1db91e[_0x7fc571(0x117)]);}async function resolveDatasetCode(_0x35990c,_0x390449,_0x16883c){const _0x2b8bcd=a60_0x6f84;if(_0x35990c[_0x2b8bcd(0x106)])return _0x35990c[_0x2b8bcd(0x106)];if(!_0x35990c[_0x2b8bcd(0xf5)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xf6)+_0x390449['cliPath']+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0xaf6851=await listDatasets(_0x16883c['appCode']),_0x1a63b7=_0xaf6851['find'](_0x232430=>_0x232430[_0x2b8bcd(0xfc)]?.[_0x2b8bcd(0xfe)]===_0x35990c[_0x2b8bcd(0xf5)]);if(!_0x1a63b7?.[_0x2b8bcd(0xe8)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xbe)+_0x35990c['datatable']+_0x2b8bcd(0x122)+_0x16883c[_0x2b8bcd(0xcc)]+'.',_0x2b8bcd(0x118));return _0x1a63b7[_0x2b8bcd(0xe8)];}function applyAppBinding(_0x69e9a4,_0x500afb,_0x5d5c40){const _0x3bc08e=a60_0x6f84,_0x2ff94d=_0x500afb[_0x3bc08e(0xea)][_0x3bc08e(0x120)];if(!_0x2ff94d)return;const _0x3c69d3=_0x69e9a4[_0x3bc08e(0x124)][_0x2ff94d];if(!_0x3c69d3)throw CliErrors[_0x3bc08e(0xc8)](_0x3bc08e(0x110)+_0x2ff94d+'\x22\x20in\x20service\x20command\x20'+_0x500afb[_0x3bc08e(0xec)]+'.',_0x3bc08e(0xfb));const _0x4cda1e=_0x3c69d3[_0x3bc08e(0x125)]||_0x3c69d3[_0x3bc08e(0xcc)];_0x4cda1e&&!hasText(_0x5d5c40[_0x3bc08e(0x125)])&&(_0x5d5c40[_0x3bc08e(0x125)]=_0x4cda1e),_0x3c69d3['app']&&!hasText(_0x5d5c40[_0x3bc08e(0xda)])&&!hasText(_0x5d5c40['appcode'])&&(_0x5d5c40[_0x3bc08e(0xda)]=_0x3c69d3[_0x3bc08e(0xda)]),_0x3c69d3['env']&&!hasText(_0x5d5c40['env'])&&(_0x5d5c40[_0x3bc08e(0x123)]=_0x3c69d3['env']);}function renderDynamicCommandHelp(_0x5d3533){const _0x1e2c96=a60_0x6f84,_0x3e4aaf=[_0x1e2c96(0x11b),_0x1e2c96(0x11a)+_0x5d3533['target'][_0x1e2c96(0x117)],'\x20\x20\x20\x20command:\x20'+_0x5d3533[_0x1e2c96(0xea)]['command']];if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xba)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)]);if(_0x5d3533['target'][_0x1e2c96(0xf5)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xd7)+_0x5d3533['target'][_0x1e2c96(0xf5)]);if(_0x5d3533[_0x1e2c96(0xea)]['sqlCode'])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xdc)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x11c)]);if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xf1)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)]);if(_0x5d3533[_0x1e2c96(0xbd)][_0x1e2c96(0x104)]>0x0){_0x3e4aaf[_0x1e2c96(0xb9)]('',_0x1e2c96(0xbb));for(const _0x5d5168 of _0x5d3533[_0x1e2c96(0xbd)]){_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0x11d)+(_0x5d5168['source']||_0x1e2c96(0xe6))+_0x1e2c96(0x10f)+_0x5d5168[_0x1e2c96(0xea)]+(_0x5d5168[_0x1e2c96(0x11f)]?'.'+_0x5d5168[_0x1e2c96(0x11f)]:''));}}return _0x3e4aaf[_0x1e2c96(0x116)]('\x0a');}function targetPreview(_0x1da5ce){const _0x2b7229=a60_0x6f84;return{'kind':_0x1da5ce[_0x2b7229(0x117)],'command':_0x1da5ce[_0x2b7229(0xf8)],'appRef':_0x1da5ce[_0x2b7229(0x120)],'datasetCode':_0x1da5ce[_0x2b7229(0x106)],'datatable':_0x1da5ce[_0x2b7229(0xf5)],'sqlCode':_0x1da5ce[_0x2b7229(0x11c)],'bffCode':_0x1da5ce[_0x2b7229(0xdd)],'bffId':_0x1da5ce[_0x2b7229(0xd2)],'functionName':_0x1da5ce[_0x2b7229(0xd3)]};}function normalizeScalarParams(_0x38a0c1){const _0x1ed9c5=a60_0x6f84;return Object['fromEntries'](Object[_0x1ed9c5(0xd9)](_0x38a0c1)['filter'](([,_0x3fdf11])=>typeof _0x3fdf11==='string'||typeof _0x3fdf11===_0x1ed9c5(0xe5)));}function hasText(_0x335d54){return typeof _0x335d54==='string'&&_0x335d54['trim']()['length']>0x0;}function isPrimitiveFlagDefault(_0x5a291b){const _0x243cd8=a60_0x6f84;return _0x5a291b===undefined||typeof _0x5a291b===_0x243cd8(0xcb)||typeof _0x5a291b===_0x243cd8(0xe5)||typeof _0x5a291b===_0x243cd8(0xf4);}
1
+ (function(_0x2eb26d,_0x7e024a){const _0x2c18b9=a60_0x49db,_0xe3543f=_0x2eb26d();while(!![]){try{const _0xd805b0=parseInt(_0x2c18b9(0x163))/0x1*(parseInt(_0x2c18b9(0x13a))/0x2)+parseInt(_0x2c18b9(0x12a))/0x3*(-parseInt(_0x2c18b9(0x150))/0x4)+parseInt(_0x2c18b9(0x12e))/0x5+parseInt(_0x2c18b9(0x146))/0x6+-parseInt(_0x2c18b9(0x145))/0x7*(parseInt(_0x2c18b9(0x138))/0x8)+-parseInt(_0x2c18b9(0x170))/0x9*(-parseInt(_0x2c18b9(0x15e))/0xa)+parseInt(_0x2c18b9(0x15a))/0xb*(-parseInt(_0x2c18b9(0x15c))/0xc);if(_0xd805b0===_0x7e024a)break;else _0xe3543f['push'](_0xe3543f['shift']());}catch(_0x46ed90){_0xe3543f['push'](_0xe3543f['shift']());}}}(a60_0x17e4,0x63be9));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(_0x9d8fc8,_0x19a47f){const _0x107111=a60_0x49db,_0x1d901e=listLocalServiceTrees();let _0x1e2b97;for(const _0x24d5c4 of _0x1d901e){const _0x55afcf=matchServiceTreeCommand(_0x24d5c4,_0x9d8fc8);if(!_0x55afcf)continue;(!_0x1e2b97||_0x55afcf[_0x107111(0x14e)][_0x107111(0x148)][_0x107111(0x13e)]>_0x1e2b97[_0x107111(0x14e)][_0x107111(0x148)]['length'])&&(_0x1e2b97={'tree':_0x24d5c4,'command':_0x55afcf[_0x107111(0x14e)],'remainingArgs':_0x55afcf[_0x107111(0x12d)]});}if(!_0x1e2b97)return undefined;const _0x4f1a8e={..._0x19a47f};return applyAppBinding(_0x1e2b97[_0x107111(0x133)],_0x1e2b97[_0x107111(0x14e)],_0x4f1a8e),{'definition':buildDynamicCommandDefinition(_0x1e2b97[_0x107111(0x133)],_0x1e2b97[_0x107111(0x14e)]),'args':_0x1e2b97[_0x107111(0x12d)],'flags':_0x4f1a8e,'tree':_0x1e2b97[_0x107111(0x133)],'command':_0x1e2b97[_0x107111(0x14e)]};}export function generateDynamicServiceHelp(_0x4ca65f){const _0x4b8de3=a60_0x49db,_0x288977=listLocalServiceTrees()[_0x4b8de3(0x16d)](_0x1db919=>_0x1db919[_0x4b8de3(0x16c)][_0x4b8de3(0x169)]===_0x4ca65f);if(!_0x288977)return undefined;const _0x18a082=[CLI_BIN_NAME+'\x20'+_0x4ca65f+_0x4b8de3(0x15d),'',_0x288977[_0x4b8de3(0x16c)][_0x4b8de3(0x13f)]||_0x4ca65f,_0x288977[_0x4b8de3(0x16c)][_0x4b8de3(0x17c)]?'\x20\x20'+_0x288977[_0x4b8de3(0x16c)]['description']:'','',_0x4b8de3(0x13b),..._0x288977[_0x4b8de3(0x186)][_0x4b8de3(0x18e)](_0x14e033=>{const _0x57b7bb=_0x4b8de3,_0xc1c4ea=_0x14e033[_0x57b7bb(0x148)][_0x57b7bb(0x128)](0x1)['join']('\x20'),_0x48a5b3=_0x14e033[_0x57b7bb(0x17e)]===_0x57b7bb(0x14c)?'':'\x20['+_0x14e033[_0x57b7bb(0x17e)]+']';return'\x20\x20'+_0xc1c4ea[_0x57b7bb(0x174)](0x18)+'\x20'+(_0x14e033[_0x57b7bb(0x17c)]||'')+_0x48a5b3;}),'',_0x4b8de3(0x17d)+CLI_BIN_NAME+_0x4b8de3(0x18c)+_0x4ca65f+_0x4b8de3(0x16f)][_0x4b8de3(0x154)](Boolean);return _0x18a082[_0x4b8de3(0x139)]('\x0a');}function a60_0x17e4(){const _0x4734f4=['risk','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20[','dbtableConfig','startsWith','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','validation','app','commands','username','\x20\x20\x20\x20kind:\x20\x20\x20\x20','Run\x20service\x20command\x20','data','cliPath','\x20service\x20detail\x20--service\x20','normalizedManifest','map','\x20completed\x20in\x20','\x20\x20\x20\x20sqlCode:\x20','some','args','slice','fromEntries','78lIfHen','scriptName','tenantCode','remainingArgs','1692935QyBAOR','datatable','\x22\x20in\x20service\x20command\x20','string','push','tree','\x20requires\x20target.sqlCode.','target','Service\x20command\x20','envName','2617304rFEWQJ','join','2AsIJcE','Commands:','Preview\x20dynamic\x20service\x20command:\x20','loginName','length','name','\x20\x20\x20\x20functionName:\x20','boolean','source','bffCode','required','7QwBuzD','1706850IkbrJb','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','fullPath','env','Unknown\x20appRef\x20\x22','sql','read','bffId','command','\x20requires\x20target.functionName.','64588VYcEZW','sqlCode','appBindings','appRef','filter','tableName','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','appcode','nickName','flags','22caOsSd','datasetCode','3833628WHfWdE','\x20<command>\x20[flags]','6699310qqlvAI','json','\x20\x20MAP\x20TO','\x20\x20\x20\x20','\x20->\x20','501483HKWrgP','high-risk-write','SERVICE_TREE','\x20\x20\x20\x20datasetCode:\x20','trim','\x22.\x20','code','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','enum','service','find','mapTo','`\x20to\x20inspect\x20the\x20manifest.','9hjcQJx','type','params','\x20\x20\x20\x20datatable:\x20','padEnd','context.','userName','now','operator','appCode','kind','number','description','Use\x20`'];a60_0x17e4=function(){return _0x4734f4;};return a60_0x17e4();}export function listDynamicServiceEntries(){const _0x319a00=a60_0x49db;return listLocalServices()[_0x319a00(0x18e)](_0x136a8a=>{const _0x403260=_0x319a00,_0x11c17d=_0x136a8a[_0x403260(0x18d)];return{'service':_0x11c17d['service'][_0x403260(0x169)],'label':_0x11c17d[_0x403260(0x16c)][_0x403260(0x13f)]||_0x11c17d[_0x403260(0x16c)]['code'],'commands':_0x11c17d[_0x403260(0x186)][_0x403260(0x18e)](_0x5b891e=>({'command':dynamicCommandName(_0x5b891e),'description':_0x5b891e[_0x403260(0x17c)]||_0x403260(0x189)+_0x5b891e['cliPath'],'tag':riskTag(_0x5b891e['risk'])}))};});}export function getDynamicServiceEntry(_0x2975e6){const _0x217bf7=a60_0x49db;return listDynamicServiceEntries()[_0x217bf7(0x16d)](_0x41efc9=>_0x41efc9[_0x217bf7(0x16c)]===_0x2975e6);}function a60_0x49db(_0x1675c4,_0x23c86){_0x1675c4=_0x1675c4-0x127;const _0x17e406=a60_0x17e4();let _0x49db60=_0x17e406[_0x1675c4];return _0x49db60;}export function listDynamicServiceDefinitions(_0x4cf504){const _0x47fe45=a60_0x49db;return listLocalServiceTrees()[_0x47fe45(0x154)](_0x21b4a6=>!_0x4cf504||_0x21b4a6[_0x47fe45(0x16c)][_0x47fe45(0x169)]===_0x4cf504)['flatMap'](_0x517f35=>_0x517f35[_0x47fe45(0x186)][_0x47fe45(0x18e)](_0x36467f=>buildDynamicCommandDefinition(_0x517f35,_0x36467f)));}export function getDynamicServiceDefinitions(_0x5c2729){const _0x509a1f=a60_0x49db,_0x1f989b=listDynamicServiceDefinitions(_0x5c2729);return _0x1f989b[_0x509a1f(0x13e)]>0x0?_0x1f989b:undefined;}export function findDynamicServiceDefinition(_0x4646e5,_0x5eb367){const _0x15a8d4=a60_0x49db;return listDynamicServiceDefinitions(_0x4646e5)['find'](_0x462663=>_0x462663[_0x15a8d4(0x14e)]===_0x5eb367);}export function buildDynamicCommandDefinition(_0x4e1cef,_0x1e9e08){const _0x195d45=a60_0x49db;return{'service':_0x4e1cef[_0x195d45(0x16c)][_0x195d45(0x169)],'command':dynamicCommandName(_0x1e9e08),'description':_0x1e9e08[_0x195d45(0x17c)]||'Run\x20service\x20command\x20'+_0x1e9e08['cliPath'],'risk':_0x1e9e08[_0x195d45(0x17e)],..._0x1e9e08[_0x195d45(0x17e)]===_0x195d45(0x14c)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1e9e08)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1e9e08[_0x195d45(0x127)][_0x195d45(0x18e)](_0x1654c8=>({'name':_0x1654c8[_0x195d45(0x13f)],'description':_0x1654c8[_0x195d45(0x17c)]||_0x1654c8[_0x195d45(0x13f)],'required':_0x1654c8[_0x195d45(0x144)]})),'flags':_0x1e9e08[_0x195d45(0x159)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1e9e08),async 'dryRun'(_0x307bed){const _0x369c1e=_0x195d45,_0x42f0b7=await compilePlan(_0x1e9e08,_0x307bed);return{'method':_0x369c1e(0x165),'url':_0x1e9e08['cliPath'],'body':{'target':targetPreview(_0x42f0b7),'params':_0x42f0b7['params']},'description':_0x369c1e(0x13c)+_0x1e9e08[_0x369c1e(0x18b)]};},async 'execute'(_0x5b2363){const _0x39047f=_0x195d45,_0x2e3bc2=await compilePlan(_0x1e9e08,_0x5b2363),_0xb4e7ce=Date[_0x39047f(0x177)](),_0xe5b763=await executePlan(_0x2e3bc2,_0x1e9e08,_0x5b2363),_0x56eb6f=Date['now']()-_0xb4e7ce;return{'ok':!![],'data':{'service':_0x4e1cef[_0x39047f(0x16c)],'command':_0x1e9e08[_0x39047f(0x18b)],'target':targetPreview(_0x2e3bc2),'result':_0xe5b763,'elapsed':_0x56eb6f},'message':_0x39047f(0x136)+_0x1e9e08[_0x39047f(0x18b)]+_0x39047f(0x18f)+_0x56eb6f+'ms'};}};}function buildDynamicConfirmationDescription(_0x136e3e){const _0x6d6aef=a60_0x49db,_0xba089c=_0x136e3e[_0x6d6aef(0x17c)]||_0x136e3e[_0x6d6aef(0x18b)],_0x4ef11d=_0x136e3e[_0x6d6aef(0x17e)]===_0x6d6aef(0x164)?_0x6d6aef(0x147):_0x6d6aef(0x156);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0xba089c+_0x6d6aef(0x168)+_0x4ef11d;}function dynamicCommandName(_0x16e745){const _0x41bbfb=a60_0x49db;return _0x16e745[_0x41bbfb(0x148)][_0x41bbfb(0x128)](0x1)['join']('\x20');}function riskTag(_0x4a6947){const _0x16dbef=a60_0x49db;return _0x4a6947===_0x16dbef(0x14c)?'':_0x16dbef(0x180)+_0x4a6947+']';}function flagToCommandFlag(_0x110e7c){const _0x322571=a60_0x49db;return{'name':_0x110e7c['cliName'],'type':_0x110e7c['type']===_0x322571(0x15f)?_0x322571(0x131):_0x110e7c[_0x322571(0x171)],'description':_0x110e7c[_0x322571(0x17c)]||_0x110e7c[_0x322571(0x13f)],'required':_0x110e7c[_0x322571(0x144)],'default':isPrimitiveFlagDefault(_0x110e7c['default'])?_0x110e7c['default']:undefined,'enum':_0x110e7c[_0x322571(0x16b)]};}async function compilePlan(_0x2cd648,_0x582351){const _0x24abac=a60_0x49db;return compileServiceTreeCommand(_0x2cd648,{'flags':_0x582351['rawFlags'],'args':_0x582351[_0x24abac(0x127)],'context':await buildServiceContext(_0x2cd648,_0x582351)});}async function buildServiceContext(_0x855bef,_0x37425c){const _0x3e4484=a60_0x49db,_0x2ddf23={'appCode':_0x37425c[_0x3e4484(0x179)],'env':_0x37425c[_0x3e4484(0x137)],'envName':_0x37425c[_0x3e4484(0x137)]};if(!usesRuntimeContext(_0x855bef))return _0x2ddf23;const _0x30f852=await getLoginUserInfo(),_0x3d71ca=pickFirst(_0x30f852['userId'],_0x30f852['id']);return{..._0x2ddf23,'user':_0x30f852,'userId':_0x3d71ca,'id':_0x30f852['id'],'username':pickFirst(_0x30f852[_0x3e4484(0x187)],_0x30f852[_0x3e4484(0x176)],_0x30f852[_0x3e4484(0x13d)]),'userName':_0x30f852[_0x3e4484(0x176)],'nickname':pickFirst(_0x30f852['nickname'],_0x30f852[_0x3e4484(0x158)]),'nickName':_0x30f852[_0x3e4484(0x158)],'tenantCode':_0x30f852[_0x3e4484(0x12c)],'employeeId':_0x30f852['employeeId']};}function usesRuntimeContext(_0x13750a){const _0xad540d=a60_0x49db;return _0x13750a[_0xad540d(0x16e)][_0xad540d(0x191)](_0x1d85f2=>typeof _0x1d85f2['source']===_0xad540d(0x131)&&(_0x1d85f2[_0xad540d(0x142)][_0xad540d(0x182)](_0xad540d(0x175))||_0x1d85f2[_0xad540d(0x142)][_0xad540d(0x182)]('ctx.')));}function pickFirst(..._0x28c50c){return _0x28c50c['find'](_0x446340=>_0x446340!==undefined&&_0x446340!==null);}async function executePlan(_0x48b21b,_0x2edb39,_0x6c86b1){const _0x572486=a60_0x49db;if(_0x48b21b[_0x572486(0x17a)]===_0x572486(0x18a)){const _0x450132=await resolveDatasetCode(_0x48b21b,_0x2edb39,_0x6c86b1);return executeData(_0x450132,_0x48b21b[_0x572486(0x14e)],_0x48b21b[_0x572486(0x172)]);}if(_0x48b21b[_0x572486(0x17a)]===_0x572486(0x14b)){if(!_0x48b21b[_0x572486(0x151)])throw CliErrors[_0x572486(0x184)](_0x572486(0x136)+_0x2edb39[_0x572486(0x18b)]+_0x572486(0x134));return executeSdkSql(_0x48b21b[_0x572486(0x151)],normalizeScalarParams(_0x48b21b[_0x572486(0x172)]));}if(_0x48b21b[_0x572486(0x17a)]==='bff'){const _0x445c1e=_0x48b21b[_0x572486(0x12b)]||_0x48b21b[_0x572486(0x143)]||(_0x48b21b[_0x572486(0x14d)]==null?'':String(_0x48b21b['bffId']));if(!_0x445c1e)throw CliErrors['validation']('Service\x20command\x20'+_0x2edb39['cliPath']+_0x572486(0x14f));return executeSdkBff(_0x445c1e,_0x48b21b[_0x572486(0x172)]);}throw CliErrors[_0x572486(0x184)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x48b21b[_0x572486(0x17a)]);}async function resolveDatasetCode(_0x41b87f,_0x13c4de,_0x1a128b){const _0x2278da=a60_0x49db;if(_0x41b87f[_0x2278da(0x15b)])return _0x41b87f[_0x2278da(0x15b)];if(!_0x41b87f[_0x2278da(0x12f)])throw CliErrors[_0x2278da(0x184)](_0x2278da(0x136)+_0x13c4de[_0x2278da(0x18b)]+_0x2278da(0x183));const _0x2e1674=await listDatasets(_0x1a128b['appCode']),_0x3e900e=_0x2e1674[_0x2278da(0x16d)](_0x56a73e=>_0x56a73e[_0x2278da(0x181)]?.[_0x2278da(0x155)]===_0x41b87f[_0x2278da(0x12f)]);if(!_0x3e900e?.['code'])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x41b87f['datatable']+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x1a128b[_0x2278da(0x179)]+'.',_0x2278da(0x17f));return _0x3e900e[_0x2278da(0x169)];}function applyAppBinding(_0x43a463,_0x3545dc,_0x1aea50){const _0x1601bc=a60_0x49db,_0xbe8346=_0x3545dc['target'][_0x1601bc(0x153)];if(!_0xbe8346)return;const _0x13e64b=_0x43a463[_0x1601bc(0x152)][_0xbe8346];if(!_0x13e64b)throw CliErrors[_0x1601bc(0x184)](_0x1601bc(0x14a)+_0xbe8346+_0x1601bc(0x130)+_0x3545dc[_0x1601bc(0x18b)]+'.',_0x1601bc(0x16a));const _0x2f467a=_0x13e64b[_0x1601bc(0x157)]||_0x13e64b[_0x1601bc(0x179)];_0x2f467a&&!hasText(_0x1aea50[_0x1601bc(0x157)])&&(_0x1aea50[_0x1601bc(0x157)]=_0x2f467a),_0x13e64b[_0x1601bc(0x185)]&&!hasText(_0x1aea50[_0x1601bc(0x185)])&&!hasText(_0x1aea50[_0x1601bc(0x157)])&&(_0x1aea50[_0x1601bc(0x185)]=_0x13e64b[_0x1601bc(0x185)]),_0x13e64b['env']&&!hasText(_0x1aea50['env'])&&(_0x1aea50['env']=_0x13e64b[_0x1601bc(0x149)]);}function renderDynamicCommandHelp(_0x832cf2){const _0x485e21=a60_0x49db,_0x52e83a=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x485e21(0x188)+_0x832cf2['target'][_0x485e21(0x17a)],'\x20\x20\x20\x20command:\x20'+_0x832cf2[_0x485e21(0x135)]['command']];if(_0x832cf2[_0x485e21(0x135)][_0x485e21(0x15b)])_0x52e83a['push'](_0x485e21(0x166)+_0x832cf2['target'][_0x485e21(0x15b)]);if(_0x832cf2[_0x485e21(0x135)]['datatable'])_0x52e83a['push'](_0x485e21(0x173)+_0x832cf2[_0x485e21(0x135)][_0x485e21(0x12f)]);if(_0x832cf2['target'][_0x485e21(0x151)])_0x52e83a[_0x485e21(0x132)](_0x485e21(0x190)+_0x832cf2['target'][_0x485e21(0x151)]);if(_0x832cf2[_0x485e21(0x135)][_0x485e21(0x12b)])_0x52e83a['push'](_0x485e21(0x140)+_0x832cf2['target'][_0x485e21(0x12b)]);if(_0x832cf2[_0x485e21(0x16e)][_0x485e21(0x13e)]>0x0){_0x52e83a['push']('',_0x485e21(0x160));for(const _0x37ef0f of _0x832cf2[_0x485e21(0x16e)]){_0x52e83a[_0x485e21(0x132)](_0x485e21(0x161)+(_0x37ef0f['source']||'const')+_0x485e21(0x162)+_0x37ef0f['target']+(_0x37ef0f[_0x485e21(0x178)]?'.'+_0x37ef0f[_0x485e21(0x178)]:''));}}return _0x52e83a[_0x485e21(0x139)]('\x0a');}function targetPreview(_0x565c51){const _0x18f17f=a60_0x49db;return{'kind':_0x565c51['kind'],'command':_0x565c51['command'],'appRef':_0x565c51[_0x18f17f(0x153)],'datasetCode':_0x565c51['datasetCode'],'datatable':_0x565c51[_0x18f17f(0x12f)],'sqlCode':_0x565c51['sqlCode'],'bffCode':_0x565c51[_0x18f17f(0x143)],'bffId':_0x565c51[_0x18f17f(0x14d)],'functionName':_0x565c51['scriptName']};}function normalizeScalarParams(_0x2d4a17){const _0x526d76=a60_0x49db;return Object[_0x526d76(0x129)](Object['entries'](_0x2d4a17)['filter'](([,_0x37aa7d])=>typeof _0x37aa7d===_0x526d76(0x131)||typeof _0x37aa7d===_0x526d76(0x17b)));}function hasText(_0x2e1cba){const _0x466bce=a60_0x49db;return typeof _0x2e1cba===_0x466bce(0x131)&&_0x2e1cba[_0x466bce(0x167)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x2fa1a2){const _0x65f6d0=a60_0x49db;return _0x2fa1a2===undefined||typeof _0x2fa1a2===_0x65f6d0(0x131)||typeof _0x2fa1a2===_0x65f6d0(0x17b)||typeof _0x2fa1a2===_0x65f6d0(0x141);}
@@ -1 +1 @@
1
- (function(_0x1a6f84,_0x507d00){const _0x6bd1ce=a61_0x236f,_0x91973d=_0x1a6f84();while(!![]){try{const _0x32caf6=-parseInt(_0x6bd1ce(0xb1))/0x1+parseInt(_0x6bd1ce(0x9d))/0x2+-parseInt(_0x6bd1ce(0x9f))/0x3*(-parseInt(_0x6bd1ce(0xa5))/0x4)+-parseInt(_0x6bd1ce(0x97))/0x5*(-parseInt(_0x6bd1ce(0xac))/0x6)+parseInt(_0x6bd1ce(0xa8))/0x7*(parseInt(_0x6bd1ce(0xb6))/0x8)+-parseInt(_0x6bd1ce(0xaa))/0x9*(-parseInt(_0x6bd1ce(0xa6))/0xa)+parseInt(_0x6bd1ce(0xae))/0xb*(-parseInt(_0x6bd1ce(0x95))/0xc);if(_0x32caf6===_0x507d00)break;else _0x91973d['push'](_0x91973d['shift']());}catch(_0x500bec){_0x91973d['push'](_0x91973d['shift']());}}}(a61_0x3f6a,0xca530));function a61_0x236f(_0x4ddb47,_0x6796bd){_0x4ddb47=_0x4ddb47-0x8d;const _0x3f6ae5=a61_0x3f6a();let _0x236f1a=_0x3f6ae5[_0x4ddb47];return _0x236f1a;}export function adaptServiceTreeManifestForLegacyFramework(_0x2a707c){const _0x36b11a=a61_0x236f,_0x534ecd=cloneJsonValue(_0x2a707c),_0x2c877f=[];if(!isObjectRecord(_0x534ecd))return{'manifest':_0x534ecd,'errors':_0x2c877f};return Array['isArray'](_0x534ecd[_0x36b11a(0x99)])&&_0x534ecd['commands']['forEach']((_0x479e1b,_0x30a911)=>{const _0x5c8ace=_0x36b11a;if(!isObjectRecord(_0x479e1b))return;adaptBffTarget(_0x479e1b[_0x5c8ace(0xaf)],_0x5c8ace(0xa3)+_0x30a911+_0x5c8ace(0xa4),_0x2c877f);}),adaptResources(_0x534ecd['resources'],_0x36b11a(0x93),_0x2c877f),{'manifest':_0x534ecd,'errors':_0x2c877f};}export function toPublicServiceTreeTarget(_0x181de1){const _0x36774c=a61_0x236f,{scriptName:_0x28f9fe,..._0x860c13}=_0x181de1;return typeof _0x28f9fe===_0x36774c(0x91)&&_0x28f9fe['trim']()&&(_0x860c13['functionName']=_0x28f9fe),_0x860c13;}export function toPublicNormalizedServiceTree(_0x3b9174){const _0x49ab0a=a61_0x236f;return{..._0x3b9174,'commands':_0x3b9174[_0x49ab0a(0x99)]['map'](_0x3c738f=>({..._0x3c738f,'target':toPublicServiceTreeTarget(_0x3c738f[_0x49ab0a(0xaf)])}))};}function adaptResources(_0x17f896,_0xd51d72,_0x3a1b9a){const _0x34d2d3=a61_0x236f;if(!isObjectRecord(_0x17f896))return;for(const [_0x1ea0b3,_0x22c32c]of Object['entries'](_0x17f896)){if(!isObjectRecord(_0x22c32c))continue;const _0x41adf1=_0xd51d72+'.'+_0x1ea0b3;if(isObjectRecord(_0x22c32c[_0x34d2d3(0x8f)]))for(const [_0x2d6eea,_0x9c640c]of Object[_0x34d2d3(0xb3)](_0x22c32c['actions'])){if(!isObjectRecord(_0x9c640c))continue;const _0x42891d=_0x41adf1+_0x34d2d3(0x92)+_0x2d6eea,_0x26877c=isObjectRecord(_0x9c640c[_0x34d2d3(0xaf)])&&_0x9c640c[_0x34d2d3(0xaf)][_0x34d2d3(0xa2)]===_0x34d2d3(0xa1);adaptBffTarget(_0x9c640c[_0x34d2d3(0xaf)],_0x42891d+_0x34d2d3(0x94),_0x3a1b9a),(_0x26877c||isBffAction(_0x9c640c))&&adaptFunctionNameField(_0x9c640c,_0x42891d,_0x3a1b9a);}adaptResources(_0x22c32c[_0x34d2d3(0x96)],_0x41adf1+_0x34d2d3(0x98),_0x3a1b9a);}}function adaptBffTarget(_0x24f534,_0x2ccef7,_0x10464b){const _0x7100a=a61_0x236f;if(!isObjectRecord(_0x24f534)||_0x24f534[_0x7100a(0xa2)]!==_0x7100a(0xa1))return;adaptFunctionNameField(_0x24f534,_0x2ccef7,_0x10464b);}function adaptFunctionNameField(_0x42fe35,_0x144c84,_0x40711c){const _0x13e111=a61_0x236f;Object[_0x13e111(0x9b)][_0x13e111(0x9c)][_0x13e111(0x90)](_0x42fe35,_0x13e111(0xa0))&&_0x40711c[_0x13e111(0xb0)]({'level':_0x13e111(0xb4),'path':_0x144c84+_0x13e111(0xb5),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x13e111(0x9b)][_0x13e111(0x9c)][_0x13e111(0x90)](_0x42fe35,_0x13e111(0x9e))){if(typeof _0x42fe35[_0x13e111(0x9e)]!=='string'||!_0x42fe35[_0x13e111(0x9e)][_0x13e111(0x9a)]()){_0x40711c[_0x13e111(0xb0)]({'level':_0x13e111(0xb4),'path':_0x144c84+_0x13e111(0x8d),'message':_0x13e111(0xab)}),delete _0x42fe35[_0x13e111(0x9e)];return;}_0x42fe35['scriptName']=_0x42fe35[_0x13e111(0x9e)],delete _0x42fe35['functionName'];}}function isBffAction(_0x52fbc1){const _0x4286ec=a61_0x236f;return _0x52fbc1[_0x4286ec(0xa2)]===_0x4286ec(0xa1)||_0x52fbc1[_0x4286ec(0xb2)]==='bff.exec'||_0x52fbc1['target']===_0x4286ec(0xa7);}function a61_0x3f6a(){const _0x151c62=['call','string','.actions.','$.resources','.target','5098284oWkybT','resources','3742560HRKFLL','.resources','commands','trim','prototype','hasOwnProperty','1797648JQHaVG','functionName','557871QItNOd','scriptName','bff','kind','$.commands[','].target','4jsxQzQ','10YYlaip','bff.exec','1823066rtJBiF','isArray','12411675aZMixO','functionName\x20must\x20be\x20a\x20non-empty\x20string.','12cqnsHm','object','99zLyXao','target','push','350199LUUvlB','action','entries','error','.scriptName','32MGOHYn','.functionName','map','actions'];a61_0x3f6a=function(){return _0x151c62;};return a61_0x3f6a();}function cloneJsonValue(_0x23031e){const _0x2a901a=a61_0x236f;if(Array[_0x2a901a(0xa9)](_0x23031e))return _0x23031e['map'](_0x2219b7=>cloneJsonValue(_0x2219b7));if(isObjectRecord(_0x23031e))return Object['fromEntries'](Object[_0x2a901a(0xb3)](_0x23031e)[_0x2a901a(0x8e)](([_0x490277,_0x59bd81])=>[_0x490277,cloneJsonValue(_0x59bd81)]));return _0x23031e;}function isObjectRecord(_0x105b42){const _0x4af1d1=a61_0x236f;return Boolean(_0x105b42)&&typeof _0x105b42===_0x4af1d1(0xad)&&!Array[_0x4af1d1(0xa9)](_0x105b42);}
1
+ (function(_0xa9ad04,_0x307f90){const _0x1be330=a61_0x5426,_0xad42c6=_0xa9ad04();while(!![]){try{const _0x5df809=-parseInt(_0x1be330(0x1f3))/0x1+-parseInt(_0x1be330(0x1fd))/0x2*(parseInt(_0x1be330(0x1f9))/0x3)+-parseInt(_0x1be330(0x1ff))/0x4*(parseInt(_0x1be330(0x1f7))/0x5)+parseInt(_0x1be330(0x1fe))/0x6*(parseInt(_0x1be330(0x1f4))/0x7)+parseInt(_0x1be330(0x1f0))/0x8*(-parseInt(_0x1be330(0x1fa))/0x9)+-parseInt(_0x1be330(0x215))/0xa*(parseInt(_0x1be330(0x217))/0xb)+parseInt(_0x1be330(0x1f2))/0xc;if(_0x5df809===_0x307f90)break;else _0xad42c6['push'](_0xad42c6['shift']());}catch(_0x5af3cc){_0xad42c6['push'](_0xad42c6['shift']());}}}(a61_0x1c11,0xbe50c));export function adaptServiceTreeManifestForLegacyFramework(_0x1c6bde){const _0x201e41=a61_0x5426,_0x3ed6d7=cloneJsonValue(_0x1c6bde),_0x13a85e=[];if(!isObjectRecord(_0x3ed6d7))return{'manifest':_0x3ed6d7,'errors':_0x13a85e};return Array[_0x201e41(0x210)](_0x3ed6d7[_0x201e41(0x212)])&&_0x3ed6d7[_0x201e41(0x212)][_0x201e41(0x203)]((_0xbf9141,_0x85a2fb)=>{const _0x25e1b1=_0x201e41;if(!isObjectRecord(_0xbf9141))return;adaptBffTarget(_0xbf9141[_0x25e1b1(0x209)],'$.commands['+_0x85a2fb+_0x25e1b1(0x20e),_0x13a85e);}),adaptResources(_0x3ed6d7[_0x201e41(0x201)],_0x201e41(0x20d),_0x13a85e),{'manifest':_0x3ed6d7,'errors':_0x13a85e};}export function toPublicServiceTreeTarget(_0x3dbfa3){const _0x3d458d=a61_0x5426,{scriptName:_0x49f180,..._0x4e567a}=_0x3dbfa3;return typeof _0x49f180===_0x3d458d(0x1f1)&&_0x49f180['trim']()&&(_0x4e567a[_0x3d458d(0x214)]=_0x49f180),_0x4e567a;}function a61_0x1c11(){const _0x1647d2=['fromEntries','resources','.actions.','forEach','entries','map','push','.scriptName','bff','target','kind','scriptName','error','$.resources','].target','prototype','isArray','hasOwnProperty','commands','call','functionName','10AnNczY','bff.exec','703670JPrhgJ','actions','trim','753208EornUm','string','36110208IiGdhV','877176XHOWWt','28WYUnIx','.target','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','357345UDxSgi','.functionName','4059447fXKtuj','9jABStd','.resources','action','2Nlehkc','1310226AflsaE','40LUaEqq'];a61_0x1c11=function(){return _0x1647d2;};return a61_0x1c11();}export function toPublicNormalizedServiceTree(_0x392179){const _0x54f7ad=a61_0x5426;return{..._0x392179,'commands':_0x392179[_0x54f7ad(0x212)][_0x54f7ad(0x205)](_0x259b62=>({..._0x259b62,'target':toPublicServiceTreeTarget(_0x259b62[_0x54f7ad(0x209)])}))};}function adaptResources(_0x3696f3,_0x49a0a2,_0x18ff39){const _0x5936fd=a61_0x5426;if(!isObjectRecord(_0x3696f3))return;for(const [_0x235f22,_0x3bfbee]of Object['entries'](_0x3696f3)){if(!isObjectRecord(_0x3bfbee))continue;const _0x3a474e=_0x49a0a2+'.'+_0x235f22;if(isObjectRecord(_0x3bfbee[_0x5936fd(0x1ee)]))for(const [_0x40db54,_0x39e8e1]of Object['entries'](_0x3bfbee[_0x5936fd(0x1ee)])){if(!isObjectRecord(_0x39e8e1))continue;const _0x1ad6f4=_0x3a474e+_0x5936fd(0x202)+_0x40db54,_0x19d87d=isObjectRecord(_0x39e8e1[_0x5936fd(0x209)])&&_0x39e8e1[_0x5936fd(0x209)]['kind']==='bff';adaptBffTarget(_0x39e8e1[_0x5936fd(0x209)],_0x1ad6f4+_0x5936fd(0x1f5),_0x18ff39),(_0x19d87d||isBffAction(_0x39e8e1))&&adaptFunctionNameField(_0x39e8e1,_0x1ad6f4,_0x18ff39);}adaptResources(_0x3bfbee[_0x5936fd(0x201)],_0x3a474e+_0x5936fd(0x1fb),_0x18ff39);}}function adaptBffTarget(_0x33749c,_0x5cb127,_0x51fda2){const _0x597b42=a61_0x5426;if(!isObjectRecord(_0x33749c)||_0x33749c[_0x597b42(0x20a)]!==_0x597b42(0x208))return;adaptFunctionNameField(_0x33749c,_0x5cb127,_0x51fda2);}function adaptFunctionNameField(_0x367310,_0x1a6be4,_0x24296e){const _0xdbd32d=a61_0x5426;Object[_0xdbd32d(0x20f)][_0xdbd32d(0x211)][_0xdbd32d(0x213)](_0x367310,_0xdbd32d(0x20b))&&_0x24296e[_0xdbd32d(0x206)]({'level':_0xdbd32d(0x20c),'path':_0x1a6be4+_0xdbd32d(0x207),'message':_0xdbd32d(0x1f6)});if(Object['prototype']['hasOwnProperty']['call'](_0x367310,'functionName')){if(typeof _0x367310[_0xdbd32d(0x214)]!==_0xdbd32d(0x1f1)||!_0x367310['functionName'][_0xdbd32d(0x1ef)]()){_0x24296e[_0xdbd32d(0x206)]({'level':_0xdbd32d(0x20c),'path':_0x1a6be4+_0xdbd32d(0x1f8),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x367310[_0xdbd32d(0x214)];return;}_0x367310[_0xdbd32d(0x20b)]=_0x367310[_0xdbd32d(0x214)],delete _0x367310['functionName'];}}function isBffAction(_0x310ac9){const _0x33dfa2=a61_0x5426;return _0x310ac9[_0x33dfa2(0x20a)]===_0x33dfa2(0x208)||_0x310ac9[_0x33dfa2(0x1fc)]===_0x33dfa2(0x216)||_0x310ac9[_0x33dfa2(0x209)]===_0x33dfa2(0x216);}function a61_0x5426(_0x4d2209,_0x15d5de){_0x4d2209=_0x4d2209-0x1ee;const _0x1c1148=a61_0x1c11();let _0x5426dc=_0x1c1148[_0x4d2209];return _0x5426dc;}function cloneJsonValue(_0x290415){const _0x359e1a=a61_0x5426;if(Array['isArray'](_0x290415))return _0x290415[_0x359e1a(0x205)](_0x1e8abc=>cloneJsonValue(_0x1e8abc));if(isObjectRecord(_0x290415))return Object[_0x359e1a(0x200)](Object[_0x359e1a(0x204)](_0x290415)[_0x359e1a(0x205)](([_0x3b25f5,_0x5a3ed7])=>[_0x3b25f5,cloneJsonValue(_0x5a3ed7)]));return _0x290415;}function isObjectRecord(_0x4efb04){const _0x594ffa=a61_0x5426;return Boolean(_0x4efb04)&&typeof _0x4efb04==='object'&&!Array[_0x594ffa(0x210)](_0x4efb04);}
@@ -1 +1 @@
1
- const a62_0x5216c9=a62_0x46cd;function a62_0x56e2(){const _0x597a5d=['8OFfUKp','57870aPhCsF','list','1009617bGFlDU','registry','\x20service(s),\x20updated\x20','import','name','required','remove','length','lower\x20kebab-case\x20service\x20code','service','flags','730885UinsJB','Local\x20service\x20code,\x20for\x20example\x20crm','write','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','kind','validate','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','type','Service\x20Tree\x20manifest\x20file\x20path','registryIndex','registryServiceCode','manifest','Imported','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','Exported\x20service\x20','hash','1195438YncrEB','version','reduce','serviceCount','read','Imported\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','normalizedManifest','target','file','entry','source','3931014qVBfkS','12wdinbL','entries','description','imported','string','str','export','updated','4122643YAhoBe','cliPath','report','errors','WRITE','Updated','manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','filePath','cliName','registryPath','1051585EXwOIb','importedAt','serviceCode','commands','warnings','Service\x20manifest\x20validation\x20passed.','map','\x20service\x20','Service\x20registry\x20validation\x20passed.','Removed\x20service\x20','risk','replaced'];a62_0x56e2=function(){return _0x597a5d;};return a62_0x56e2();}function a62_0x46cd(_0xfe6874,_0x778575){_0xfe6874=_0xfe6874-0xaa;const _0x56e294=a62_0x56e2();let _0x46cdc0=_0x56e294[_0xfe6874];return _0x46cdc0;}(function(_0x252812,_0x47c1dd){const _0x19b32f=a62_0x46cd,_0xe1c1c5=_0x252812();while(!![]){try{const _0x747fa8=parseInt(_0x19b32f(0xee))/0x1+-parseInt(_0x19b32f(0xb4))/0x2+-parseInt(_0x19b32f(0xe3))/0x3+parseInt(_0x19b32f(0xc1))/0x4*(-parseInt(_0x19b32f(0xd4))/0x5)+parseInt(_0x19b32f(0xc0))/0x6+-parseInt(_0x19b32f(0xc9))/0x7*(-parseInt(_0x19b32f(0xe0))/0x8)+parseInt(_0x19b32f(0xe1))/0x9;if(_0x747fa8===_0x47c1dd)break;else _0xe1c1c5['push'](_0xe1c1c5['shift']());}catch(_0xe36c80){_0xe1c1c5['push'](_0xe1c1c5['shift']());}}}(a62_0x56e2,0x659e0));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0x5216c9(0xbd),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xac)},SERVICE_FLAG={'name':a62_0x5216c9(0xec),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xef),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x5216c9(0xeb)}};function summarizeService(_0x4410af){const _0x3d735e=a62_0x5216c9;return{'serviceCode':_0x4410af[_0x3d735e(0xd6)],'name':_0x4410af[_0x3d735e(0xbb)]['service'][_0x3d735e(0xe7)],'version':_0x4410af[_0x3d735e(0xb5)],'importedAt':_0x4410af[_0x3d735e(0xd5)],'source':_0x4410af['source'],'commandCount':_0x4410af[_0x3d735e(0xbb)][_0x3d735e(0xd7)][_0x3d735e(0xea)],'commands':_0x4410af['normalizedManifest'][_0x3d735e(0xd7)][_0x3d735e(0xda)](_0x9079bd=>({'path':_0x9079bd['cliPath'],'description':_0x9079bd[_0x3d735e(0xc3)],'risk':_0x9079bd[_0x3d735e(0xde)],'target':toPublicServiceTreeTarget(_0x9079bd[_0x3d735e(0xbc)]),'flags':_0x9079bd[_0x3d735e(0xed)][_0x3d735e(0xda)](_0x30c06d=>({'name':_0x30c06d[_0x3d735e(0xe7)],'cliName':_0x30c06d[_0x3d735e(0xd2)],'type':_0x30c06d[_0x3d735e(0xab)],'required':_0x30c06d[_0x3d735e(0xe8)]===!![]}))}))};}function summarizeLoadedManifest(_0x30fe86){const _0x409c0d=a62_0x5216c9;return{'service':_0x30fe86['normalizedManifest']?.['service'],'version':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xb5)],'commandCount':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xea)]??0x0,'commands':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xda)](_0x140d8f=>({'path':_0x140d8f['cliPath'],'risk':_0x140d8f[_0x409c0d(0xde)],'target':toPublicServiceTreeTarget(_0x140d8f[_0x409c0d(0xbc)])}))??[],'registryIndex':_0x30fe86[_0x409c0d(0xad)],'registryServiceCode':_0x30fe86[_0x409c0d(0xae)],'errors':_0x30fe86[_0x409c0d(0xcb)][_0x409c0d(0xcc)],'warnings':_0x30fe86[_0x409c0d(0xcb)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xf3),'description':a62_0x5216c9(0xd0),'risk':a62_0x5216c9(0xb8),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xca8a37){const _0x958f72=a62_0x5216c9,_0x9c3643=loadServiceManifestFromFile(_0xca8a37[_0x958f72(0xc6)](_0x958f72(0xbd)));if(!_0x9c3643[_0x958f72(0xcb)]['ok'])return{'ok':![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643['manifests'][_0x958f72(0xea)],'services':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xda)](summarizeLoadedManifest),'errors':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xcc)],'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':formatValidationFailure(_0x9c3643[_0x958f72(0xcb)])};if(_0x9c3643[_0x958f72(0xf2)]===_0x958f72(0xe4)||_0x9c3643['manifests'][_0x958f72(0xea)]!==0x1)return{'ok':!![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643[_0x958f72(0xcf)]['length'],'commandCount':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xb6)]((_0x5bd8bf,_0x291242)=>_0x5bd8bf+(_0x291242[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0),0x0),'services':_0x9c3643[_0x958f72(0xcf)]['map'](summarizeLoadedManifest),'warnings':_0x9c3643[_0x958f72(0xcb)]['warnings']},'message':_0x958f72(0xdc)};return{'ok':!![],'data':{'file':_0x9c3643['filePath'],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643[_0x958f72(0xf2)],'service':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xec)],'version':_0x9c3643[_0x958f72(0xbb)]?.['version'],'commandCount':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0,'commands':_0x9c3643[_0x958f72(0xbb)]?.['commands'][_0x958f72(0xda)](_0x6f5a1e=>({'path':_0x6f5a1e[_0x958f72(0xca)],'risk':_0x6f5a1e['risk'],'target':toPublicServiceTreeTarget(_0x6f5a1e['target'])})),'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':_0x958f72(0xd9)};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe6),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x5216c9(0xf0),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2fc7f7){const _0x3177a0=a62_0x5216c9,_0x2b57fd=loadServiceManifestFromFile(_0x2fc7f7['str'](_0x3177a0(0xbd)));return{'method':_0x3177a0(0xcd),'url':getServiceRegistryPath(),'body':{'file':_0x2b57fd[_0x3177a0(0xd1)],'hash':_0x2b57fd['hash'],'kind':_0x2b57fd[_0x3177a0(0xf2)],'ok':_0x2b57fd[_0x3177a0(0xcb)]['ok'],'service':_0x2b57fd[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xb5)],'serviceCount':_0x2b57fd['manifests']['length'],'services':_0x2b57fd[_0x3177a0(0xcf)][_0x3177a0(0xda)](_0xf91761=>({'service':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xb5)],'commandCount':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0,'errors':_0xf91761[_0x3177a0(0xcb)][_0x3177a0(0xcc)]})),'errors':_0x2b57fd['report'][_0x3177a0(0xcc)],'commandCount':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x50aa88){const _0x510d54=a62_0x5216c9,_0x5ad74c=importServiceManifest(_0x50aa88[_0x510d54(0xc6)]('file'));if(_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xea)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5ad74c['registryPath'],'imported':_0x5ad74c[_0x510d54(0xc4)],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'services':_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xda)](summarizeService)},'message':_0x510d54(0xb9)+_0x5ad74c['imported']+_0x510d54(0xe5)+_0x5ad74c[_0x510d54(0xc8)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x5ad74c[_0x510d54(0xd3)],'replaced':_0x5ad74c[_0x510d54(0xdf)],'imported':_0x5ad74c['imported'],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'service':summarizeService(_0x5ad74c[_0x510d54(0xbe)])},'message':(_0x5ad74c[_0x510d54(0xdf)]?_0x510d54(0xce):_0x510d54(0xb0))+_0x510d54(0xdb)+_0x5ad74c[_0x510d54(0xbe)][_0x510d54(0xd6)]+'.'};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xc7),'description':a62_0x5216c9(0xf4),'risk':'write','confirmationDescription':a62_0x5216c9(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4fd724){const _0x150834=a62_0x5216c9,_0x4279ff=getLocalServiceEntry(_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)));return{'method':_0x150834(0xcd),'url':_0x4fd724[_0x150834(0xc6)](_0x150834(0xbd)),'body':{'service':_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)),'found':Boolean(_0x4279ff),'version':_0x4279ff?.['version'],'source':_0x4279ff?.[_0x150834(0xbf)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xf8bb73){const _0xb7457e=a62_0x5216c9,_0x360fee=exportServiceManifest(_0xf8bb73[_0xb7457e(0xc6)](_0xb7457e(0xec)),_0xf8bb73[_0xb7457e(0xc6)]('file'));return{'ok':!![],'data':{'registryPath':_0x360fee[_0xb7457e(0xd3)],'file':_0x360fee[_0xb7457e(0xd1)],'service':summarizeService(_0x360fee[_0xb7457e(0xbe)])},'message':_0xb7457e(0xb2)+_0x360fee[_0xb7457e(0xbe)][_0xb7457e(0xd6)]+'.'};}},{'service':'service','command':a62_0x5216c9(0xe2),'description':a62_0x5216c9(0xba),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x57a66d=a62_0x5216c9,_0x1e2876=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1e2876[_0x57a66d(0xea)],'services':_0x1e2876['map'](summarizeService)}};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe9),'description':a62_0x5216c9(0xaa),'risk':a62_0x5216c9(0xf0),'confirmationDescription':a62_0x5216c9(0xf1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x208046){const _0x263a0f=a62_0x5216c9,_0x4431ab=getLocalServiceEntry(_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)),'found':Boolean(_0x4431ab),'version':_0x4431ab?.[_0x263a0f(0xb5)],'source':_0x4431ab?.[_0x263a0f(0xbf)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x13b534){const _0x325705=a62_0x5216c9,_0x3d63b9=removeServiceManifest(_0x13b534[_0x325705(0xc6)](_0x325705(0xec)));return{'ok':!![],'data':{'registryPath':_0x3d63b9[_0x325705(0xd3)],'serviceCount':_0x3d63b9[_0x325705(0xb7)],'service':summarizeService(_0x3d63b9[_0x325705(0xbe)])},'message':_0x325705(0xdd)+_0x3d63b9[_0x325705(0xbe)][_0x325705(0xd6)]+'.'};}},{'service':'service','command':'detail','description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x8dfe3b){const _0x5129c7=a62_0x5216c9,_0x30ed5d=getLocalServiceEntry(_0x8dfe3b[_0x5129c7(0xc6)](_0x5129c7(0xec)));if(!_0x30ed5d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x8dfe3b[_0x5129c7(0xc6)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x8dfe3b[_0x5129c7(0xc6)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x30ed5d),'manifest':_0x30ed5d[_0x5129c7(0xaf)],'normalizedManifest':toPublicNormalizedServiceTree(_0x30ed5d[_0x5129c7(0xbb)])}};}}];
1
+ const a62_0x10a89d=a62_0x132a;function a62_0xdd8d(){const _0x97690=['cliName','entry','errors','source','\x20service(s).','warnings','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','replaced','cliPath','1379440riVzZS','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','risk','\x20service\x20','length','type','Imported\x20','manifest','filePath','Imported','\x20service(s),\x20updated\x20','59751Gpgnvj','normalizedManifest','updated','kind','version','695835RyWBwl','entries','334580QymWNS','importedAt','6fvZqks','str','1132632gUaFRZ','detail','write','map','export','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Exported\x20service\x20','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryPath','description','registryIndex','Local\x20service\x20not\x20found:\x20','546POtGQt','import','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','string','imported','WRITE','name','1142PzLRHh','commands','service','file','hash','target','serviceCode','registryServiceCode','report','562142bXMqmT','Removed\x20service\x20','Service\x20manifest\x20validation\x20passed.','serviceCount','manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','read'];a62_0xdd8d=function(){return _0x97690;};return a62_0xdd8d();}(function(_0x596d9c,_0x22718b){const _0x6359f4=a62_0x132a,_0x2db831=_0x596d9c();while(!![]){try{const _0x5907c5=parseInt(_0x6359f4(0xfd))/0x1+-parseInt(_0x6359f4(0xd6))/0x2*(-parseInt(_0x6359f4(0xcf))/0x3)+parseInt(_0x6359f4(0x104))/0x4+parseInt(_0x6359f4(0xf1))/0x5+-parseInt(_0x6359f4(0x106))/0x6*(parseInt(_0x6359f4(0xdf))/0x7)+-parseInt(_0x6359f4(0x108))/0x8+-parseInt(_0x6359f4(0x102))/0x9;if(_0x5907c5===_0x22718b)break;else _0x2db831['push'](_0x2db831['shift']());}catch(_0x4c4437){_0x2db831['push'](_0x2db831['shift']());}}}(a62_0xdd8d,0x36b06));function a62_0x132a(_0x4206b8,_0x470456){_0x4206b8=_0x4206b8-0xc6;const _0xdd8d79=a62_0xdd8d();let _0x132a7a=_0xdd8d79[_0x4206b8];return _0x132a7a;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0x10a89d(0xd9),'type':a62_0x10a89d(0xd2),'required':!![],'description':a62_0x10a89d(0xf3)},SERVICE_FLAG={'name':'service','type':a62_0x10a89d(0xd2),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x4f479b){const _0x819eb4=a62_0x10a89d;return{'serviceCode':_0x4f479b['serviceCode'],'name':_0x4f479b['normalizedManifest'][_0x819eb4(0xd8)]['name'],'version':_0x4f479b[_0x819eb4(0x101)],'importedAt':_0x4f479b[_0x819eb4(0x105)],'source':_0x4f479b[_0x819eb4(0xeb)],'commandCount':_0x4f479b[_0x819eb4(0xfe)][_0x819eb4(0xd7)]['length'],'commands':_0x4f479b[_0x819eb4(0xfe)][_0x819eb4(0xd7)][_0x819eb4(0xc6)](_0x5a7fdf=>({'path':_0x5a7fdf[_0x819eb4(0xf0)],'description':_0x5a7fdf[_0x819eb4(0xcc)],'risk':_0x5a7fdf[_0x819eb4(0xf4)],'target':toPublicServiceTreeTarget(_0x5a7fdf[_0x819eb4(0xdb)]),'flags':_0x5a7fdf['flags'][_0x819eb4(0xc6)](_0x247170=>({'name':_0x247170[_0x819eb4(0xd5)],'cliName':_0x247170[_0x819eb4(0xe8)],'type':_0x247170[_0x819eb4(0xf7)],'required':_0x247170['required']===!![]}))}))};}function summarizeLoadedManifest(_0xb4c80f){const _0x128ad1=a62_0x10a89d;return{'service':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0xd8)],'version':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0x101)],'commandCount':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0xd7)][_0x128ad1(0xf6)]??0x0,'commands':_0xb4c80f[_0x128ad1(0xfe)]?.[_0x128ad1(0xd7)][_0x128ad1(0xc6)](_0x292382=>({'path':_0x292382[_0x128ad1(0xf0)],'risk':_0x292382[_0x128ad1(0xf4)],'target':toPublicServiceTreeTarget(_0x292382[_0x128ad1(0xdb)])}))??[],'registryIndex':_0xb4c80f[_0x128ad1(0xcd)],'registryServiceCode':_0xb4c80f[_0x128ad1(0xdd)],'errors':_0xb4c80f[_0x128ad1(0xde)][_0x128ad1(0xea)],'warnings':_0xb4c80f[_0x128ad1(0xde)][_0x128ad1(0xed)]};}export const serviceDefinitions=[{'service':a62_0x10a89d(0xd8),'command':'validate','description':a62_0x10a89d(0xe4),'risk':a62_0x10a89d(0xe7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xc0644b){const _0x3b7eda=a62_0x10a89d,_0x14e526=loadServiceManifestFromFile(_0xc0644b['str']('file'));if(!_0x14e526[_0x3b7eda(0xde)]['ok'])return{'ok':![],'data':{'file':_0x14e526['filePath'],'hash':_0x14e526['hash'],'kind':_0x14e526['kind'],'serviceCount':_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xf6)],'services':_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xc6)](summarizeLoadedManifest),'errors':_0x14e526[_0x3b7eda(0xde)]['errors'],'warnings':_0x14e526[_0x3b7eda(0xde)]['warnings']},'message':formatValidationFailure(_0x14e526['report'])};if(_0x14e526[_0x3b7eda(0x100)]==='registry'||_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xf6)]!==0x1)return{'ok':!![],'data':{'file':_0x14e526['filePath'],'hash':_0x14e526['hash'],'kind':_0x14e526[_0x3b7eda(0x100)],'serviceCount':_0x14e526[_0x3b7eda(0xe3)]['length'],'commandCount':_0x14e526['manifests']['reduce']((_0x17f0f5,_0x205537)=>_0x17f0f5+(_0x205537[_0x3b7eda(0xfe)]?.[_0x3b7eda(0xd7)]['length']??0x0),0x0),'services':_0x14e526[_0x3b7eda(0xe3)][_0x3b7eda(0xc6)](summarizeLoadedManifest),'warnings':_0x14e526[_0x3b7eda(0xde)][_0x3b7eda(0xed)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x14e526[_0x3b7eda(0xfa)],'hash':_0x14e526[_0x3b7eda(0xda)],'kind':_0x14e526['kind'],'service':_0x14e526[_0x3b7eda(0xfe)]?.[_0x3b7eda(0xd8)],'version':_0x14e526[_0x3b7eda(0xfe)]?.[_0x3b7eda(0x101)],'commandCount':_0x14e526['normalizedManifest']?.[_0x3b7eda(0xd7)]['length']??0x0,'commands':_0x14e526[_0x3b7eda(0xfe)]?.[_0x3b7eda(0xd7)][_0x3b7eda(0xc6)](_0x1dc656=>({'path':_0x1dc656['cliPath'],'risk':_0x1dc656[_0x3b7eda(0xf4)],'target':toPublicServiceTreeTarget(_0x1dc656['target'])})),'warnings':_0x14e526[_0x3b7eda(0xde)]['warnings']},'message':_0x3b7eda(0xe1)};}},{'service':a62_0x10a89d(0xd8),'command':a62_0x10a89d(0xd0),'description':a62_0x10a89d(0xca),'risk':a62_0x10a89d(0x10a),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1bbfda){const _0xec6d01=a62_0x10a89d,_0x5fe599=loadServiceManifestFromFile(_0x1bbfda['str'](_0xec6d01(0xd9)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x5fe599[_0xec6d01(0xfa)],'hash':_0x5fe599[_0xec6d01(0xda)],'kind':_0x5fe599[_0xec6d01(0x100)],'ok':_0x5fe599[_0xec6d01(0xde)]['ok'],'service':_0x5fe599[_0xec6d01(0xfe)]?.['service'],'version':_0x5fe599[_0xec6d01(0xfe)]?.[_0xec6d01(0x101)],'serviceCount':_0x5fe599[_0xec6d01(0xe3)][_0xec6d01(0xf6)],'services':_0x5fe599['manifests'][_0xec6d01(0xc6)](_0xfecc32=>({'service':_0xfecc32[_0xec6d01(0xfe)]?.[_0xec6d01(0xd8)],'version':_0xfecc32[_0xec6d01(0xfe)]?.[_0xec6d01(0x101)],'commandCount':_0xfecc32['normalizedManifest']?.['commands'][_0xec6d01(0xf6)]??0x0,'errors':_0xfecc32[_0xec6d01(0xde)]['errors']})),'errors':_0x5fe599[_0xec6d01(0xde)][_0xec6d01(0xea)],'commandCount':_0x5fe599[_0xec6d01(0xfe)]?.[_0xec6d01(0xd7)][_0xec6d01(0xf6)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x360e2e){const _0x231894=a62_0x10a89d,_0x1ea5be=importServiceManifest(_0x360e2e[_0x231894(0x107)](_0x231894(0xd9)));if(_0x1ea5be[_0x231894(0x103)][_0x231894(0xf6)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1ea5be[_0x231894(0xcb)],'imported':_0x1ea5be[_0x231894(0xd3)],'updated':_0x1ea5be['updated'],'serviceCount':_0x1ea5be[_0x231894(0xe2)],'services':_0x1ea5be['entries'][_0x231894(0xc6)](summarizeService)},'message':_0x231894(0xf8)+_0x1ea5be[_0x231894(0xd3)]+_0x231894(0xfc)+_0x1ea5be[_0x231894(0xff)]+_0x231894(0xec)};return{'ok':!![],'data':{'registryPath':_0x1ea5be[_0x231894(0xcb)],'replaced':_0x1ea5be[_0x231894(0xef)],'imported':_0x1ea5be['imported'],'updated':_0x1ea5be[_0x231894(0xff)],'serviceCount':_0x1ea5be['serviceCount'],'service':summarizeService(_0x1ea5be['entry'])},'message':(_0x1ea5be['replaced']?'Updated':_0x231894(0xfb))+_0x231894(0xf5)+_0x1ea5be[_0x231894(0xe9)][_0x231894(0xdc)]+'.'};}},{'service':a62_0x10a89d(0xd8),'command':a62_0x10a89d(0xc7),'description':a62_0x10a89d(0xc8),'risk':a62_0x10a89d(0x10a),'confirmationDescription':'Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4f2bec){const _0x3ec2d7=a62_0x10a89d,_0x19651d=getLocalServiceEntry(_0x4f2bec[_0x3ec2d7(0x107)]('service'));return{'method':_0x3ec2d7(0xd4),'url':_0x4f2bec[_0x3ec2d7(0x107)](_0x3ec2d7(0xd9)),'body':{'service':_0x4f2bec['str'](_0x3ec2d7(0xd8)),'found':Boolean(_0x19651d),'version':_0x19651d?.['version'],'source':_0x19651d?.[_0x3ec2d7(0xeb)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x39cb3c){const _0xc96060=a62_0x10a89d,_0x4e501a=exportServiceManifest(_0x39cb3c['str'](_0xc96060(0xd8)),_0x39cb3c[_0xc96060(0x107)]('file'));return{'ok':!![],'data':{'registryPath':_0x4e501a['registryPath'],'file':_0x4e501a['filePath'],'service':summarizeService(_0x4e501a['entry'])},'message':_0xc96060(0xc9)+_0x4e501a[_0xc96060(0xe9)][_0xc96060(0xdc)]+'.'};}},{'service':a62_0x10a89d(0xd8),'command':'list','description':a62_0x10a89d(0xd1),'risk':a62_0x10a89d(0xe7),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x211dc1=a62_0x10a89d,_0x22c0da=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x22c0da['length'],'services':_0x22c0da[_0x211dc1(0xc6)](summarizeService)}};}},{'service':a62_0x10a89d(0xd8),'command':'remove','description':a62_0x10a89d(0xe5),'risk':a62_0x10a89d(0x10a),'confirmationDescription':a62_0x10a89d(0xe6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x54a94c){const _0x29229b=a62_0x10a89d,_0x128687=getLocalServiceEntry(_0x54a94c[_0x29229b(0x107)]('service'));return{'method':_0x29229b(0xd4),'url':getServiceRegistryPath(),'body':{'service':_0x54a94c[_0x29229b(0x107)](_0x29229b(0xd8)),'found':Boolean(_0x128687),'version':_0x128687?.[_0x29229b(0x101)],'source':_0x128687?.[_0x29229b(0xeb)]},'description':_0x29229b(0xf2)};},async 'execute'(_0x1140db){const _0xccdd79=a62_0x10a89d,_0x137ff8=removeServiceManifest(_0x1140db[_0xccdd79(0x107)](_0xccdd79(0xd8)));return{'ok':!![],'data':{'registryPath':_0x137ff8[_0xccdd79(0xcb)],'serviceCount':_0x137ff8[_0xccdd79(0xe2)],'service':summarizeService(_0x137ff8['entry'])},'message':_0xccdd79(0xe0)+_0x137ff8[_0xccdd79(0xe9)][_0xccdd79(0xdc)]+'.'};}},{'service':a62_0x10a89d(0xd8),'command':a62_0x10a89d(0x109),'description':a62_0x10a89d(0xee),'risk':a62_0x10a89d(0xe7),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x5d374b){const _0x21a060=a62_0x10a89d,_0x9f33c5=getLocalServiceEntry(_0x5d374b[_0x21a060(0x107)](_0x21a060(0xd8)));if(!_0x9f33c5)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x5d374b[_0x21a060(0x107)](_0x21a060(0xd8))},'message':_0x21a060(0xce)+_0x5d374b[_0x21a060(0x107)](_0x21a060(0xd8))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x9f33c5),'manifest':_0x9f33c5[_0x21a060(0xf9)],'normalizedManifest':toPublicNormalizedServiceTree(_0x9f33c5[_0x21a060(0xfe)])}};}}];
@@ -1 +1 @@
1
- const a63_0x552bce=a63_0x88d6;(function(_0x8d79a2,_0x4a1d9d){const _0x42db1a=a63_0x88d6,_0x5da85c=_0x8d79a2();while(!![]){try{const _0x3ef536=parseInt(_0x42db1a(0x1d4))/0x1*(parseInt(_0x42db1a(0x1e7))/0x2)+parseInt(_0x42db1a(0x1f7))/0x3*(-parseInt(_0x42db1a(0x1f1))/0x4)+-parseInt(_0x42db1a(0x223))/0x5+parseInt(_0x42db1a(0x1d8))/0x6*(-parseInt(_0x42db1a(0x1db))/0x7)+-parseInt(_0x42db1a(0x1e4))/0x8*(-parseInt(_0x42db1a(0x211))/0x9)+-parseInt(_0x42db1a(0x1f3))/0xa+parseInt(_0x42db1a(0x20a))/0xb*(parseInt(_0x42db1a(0x1d3))/0xc);if(_0x3ef536===_0x4a1d9d)break;else _0x5da85c['push'](_0x5da85c['shift']());}catch(_0x1fc095){_0x5da85c['push'](_0x5da85c['shift']());}}}(a63_0x58b3,0x1ef33));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x552bce(0x1d7);export function getServiceRegistryPath(_0x527487={}){const _0x237cd2=a63_0x552bce;return resolve(_0x527487[_0x237cd2(0x1f6)]??homedir(),PRODUCT_CONFIG[_0x237cd2(0x21f)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1fc125={}){const _0x5958c2=a63_0x552bce,_0x4cc93c=getServiceRegistryPath(_0x1fc125);if(!existsSync(_0x4cc93c))return emptyServiceRegistry();try{const _0x5a2e17=readFileSync(_0x4cc93c,'utf8');if(!_0x5a2e17[_0x5958c2(0x215)]())return emptyServiceRegistry();const _0x55a953=JSON[_0x5958c2(0x204)](_0x5a2e17);if(_0x55a953[_0x5958c2(0x203)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1e6)+String(_0x55a953['schemaVersion']),_0x5958c2(0x21d)+_0x4cc93c+'.');if(!Array[_0x5958c2(0x206)](_0x55a953['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x55a953[_0x5958c2(0x1ea)],'services':_0x55a953['services']};}catch(_0x27eb2d){if(_0x27eb2d instanceof Error&&_0x27eb2d[_0x5958c2(0x210)]===_0x5958c2(0x201))throw _0x27eb2d;throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1f0)+_0x4cc93c,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x116b17,_0x7b9149={}){const _0x36ad12=a63_0x552bce,_0x169bfa=getServiceRegistryPath(_0x7b9149),_0xbcb753=dirname(_0x169bfa);!existsSync(_0xbcb753)&&mkdirSync(_0xbcb753,{'recursive':!![]});const _0x14620c=_0x169bfa+_0x36ad12(0x1ee);try{writeFileSync(_0x14620c,JSON[_0x36ad12(0x1ed)](_0x116b17,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x14620c,_0x169bfa);}catch(_0x492041){try{unlinkSync(_0x14620c);}catch{}if(_0x492041?.[_0x36ad12(0x200)]===_0x36ad12(0x213))throw CliErrors[_0x36ad12(0x1da)](_0x36ad12(0x1e2)+_0x169bfa);throw _0x492041;}return _0x169bfa;}export function loadServiceManifestFromFile(_0x279c33){const _0x89c459=a63_0x552bce,_0x2d8c7e=resolve(_0x279c33);if(!existsSync(_0x2d8c7e))throw CliErrors['validation'](_0x89c459(0x1e0)+_0x279c33);let _0x1a8931;const _0xd36ca8=readFileSync(_0x2d8c7e,_0x89c459(0x21b));try{_0x1a8931=JSON[_0x89c459(0x204)](_0xd36ca8);}catch{throw CliErrors[_0x89c459(0x1da)](_0x89c459(0x1d6)+_0x279c33,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x136c93=sha256(_0xd36ca8),_0x35ff13=extractLoadedServiceManifests(_0x1a8931,_0x136c93),_0x22ef48=aggregateValidationReports(_0x35ff13),_0x5ba952=_0x35ff13[0x0];return{'filePath':_0x2d8c7e,'hash':_0x136c93,'kind':isServiceRegistryLike(_0x1a8931)?_0x89c459(0x1fb):_0x89c459(0x1ff),'manifest':_0x5ba952?.[_0x89c459(0x1ff)]??_0x1a8931,'report':_0x22ef48,'normalizedManifest':_0x35ff13[_0x89c459(0x20e)]===0x1?_0x5ba952?.[_0x89c459(0x1f8)]:undefined,'manifests':_0x35ff13};}export function importServiceManifest(_0x5cc6f6,_0xf3978a={}){const _0x24c017=a63_0x552bce,_0x4397f1=loadServiceManifestFromFile(_0x5cc6f6);if(!_0x4397f1[_0x24c017(0x207)]['ok'])throw CliErrors[_0x24c017(0x1da)](formatValidationFailure(_0x4397f1[_0x24c017(0x207)]),_0x24c017(0x1dc));if(_0x4397f1[_0x24c017(0x1d1)][_0x24c017(0x20e)]===0x0)throw CliErrors[_0x24c017(0x1da)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x24c017(0x1d0));const _0x3d16c2=readServiceRegistry(_0xf3978a),_0x4781a6=(_0xf3978a[_0x24c017(0x1e8)]??(()=>new Date()))()['toISOString'](),_0x427247=[];let _0x2e0826=0x0,_0x2632d4=0x0;for(const _0x3234b1 of _0x4397f1[_0x24c017(0x1d1)]){if(!_0x3234b1[_0x24c017(0x1f8)])continue;const _0x59fb0a=_0x3234b1[_0x24c017(0x1f8)][_0x24c017(0x1ec)][_0x24c017(0x200)],_0x5383fb={'serviceCode':_0x59fb0a,'version':_0x3234b1[_0x24c017(0x1f8)]['version'],'importedAt':_0x4781a6,'source':{'type':'file','path':_0x4397f1[_0x24c017(0x216)],'hash':_0x3234b1[_0x24c017(0x20c)]},'manifest':_0x3234b1[_0x24c017(0x1ff)],'normalizedManifest':_0x3234b1[_0x24c017(0x1f8)]},_0x394d4d=_0x3d16c2['services']['findIndex'](_0x20c424=>_0x20c424['serviceCode']===_0x59fb0a);_0x394d4d>=0x0?(_0x3d16c2['services'][_0x394d4d]=_0x5383fb,_0x2632d4++):(_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x1de)](_0x5383fb),_0x2e0826++),_0x427247['push'](_0x5383fb);}_0x3d16c2['services'][_0x24c017(0x221)]((_0x444858,_0x6343b7)=>_0x444858[_0x24c017(0x212)][_0x24c017(0x21e)](_0x6343b7[_0x24c017(0x212)])),_0x3d16c2['updatedAt']=_0x4781a6;const _0x3033e4=writeServiceRegistry(_0x3d16c2,_0xf3978a);return{'registryPath':_0x3033e4,'entry':_0x427247[0x0],'replaced':_0x427247['length']===0x1?_0x2632d4===0x1:_0x2632d4>0x0,'entries':_0x427247,'imported':_0x2e0826,'updated':_0x2632d4,'serviceCount':_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x20e)]};}export function exportServiceManifest(_0x32ec9a,_0x233144,_0x506396={}){const _0x21bfe7=a63_0x552bce,_0xa071e3=getServiceRegistryPath(_0x506396),_0x285a78=getLocalServiceEntry(_0x32ec9a,_0x506396);if(!_0x285a78)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x32ec9a,_0x21bfe7(0x214));const _0x3e8a4a=resolve(_0x233144),_0x3e2051=dirname(_0x3e8a4a);return!existsSync(_0x3e2051)&&mkdirSync(_0x3e2051,{'recursive':!![]}),writeFileSync(_0x3e8a4a,JSON[_0x21bfe7(0x1ed)](_0x285a78[_0x21bfe7(0x1ff)],null,0x2)+'\x0a',{'encoding':_0x21bfe7(0x21b),'mode':0x180}),{'registryPath':_0xa071e3,'filePath':_0x3e8a4a,'entry':_0x285a78};}export function removeServiceManifest(_0x13754a,_0x4c3cd0={}){const _0x28bd43=a63_0x552bce,_0x4be2da=readServiceRegistry(_0x4c3cd0),_0x3a5869=_0x13754a[_0x28bd43(0x215)](),_0x3cae05=_0x4be2da['services'][_0x28bd43(0x1f2)](_0x5c80f8=>_0x5c80f8[_0x28bd43(0x212)]===_0x3a5869);if(_0x3cae05<0x0)throw CliErrors[_0x28bd43(0x1da)](_0x28bd43(0x1f4)+_0x3a5869,_0x28bd43(0x214));const [_0x30e616]=_0x4be2da[_0x28bd43(0x1eb)]['splice'](_0x3cae05,0x1),_0x261973=(_0x4c3cd0['now']??(()=>new Date()))()[_0x28bd43(0x1e5)]();_0x4be2da[_0x28bd43(0x1ea)]=_0x261973;const _0x30b238=writeServiceRegistry(_0x4be2da,_0x4c3cd0);return{'registryPath':_0x30b238,'entry':_0x30e616,'serviceCount':_0x4be2da[_0x28bd43(0x1eb)][_0x28bd43(0x20e)]};}export function listLocalServices(_0x3fe082={}){const _0x40c0b3=a63_0x552bce;return readServiceRegistry(_0x3fe082)[_0x40c0b3(0x1eb)];}export function getLocalServiceEntry(_0x13687f,_0x3f714e={}){const _0x3d71ee=a63_0x552bce;return readServiceRegistry(_0x3f714e)[_0x3d71ee(0x1eb)][_0x3d71ee(0x1fc)](_0x4e926f=>_0x4e926f[_0x3d71ee(0x212)]===_0x13687f[_0x3d71ee(0x215)]());}export function listLocalServiceTrees(_0x15017c={}){const _0x106024=a63_0x552bce;return readServiceRegistry(_0x15017c)['services'][_0x106024(0x217)](_0x21c1ea=>_0x21c1ea[_0x106024(0x1f8)]);}export function inspectServiceRegistry(_0x578dc3={}){const _0x3e6d82=a63_0x552bce,_0x5bec86=getServiceRegistryPath(_0x578dc3);if(!existsSync(_0x5bec86))return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x209),![]);try{const _0x551037=readFileSync(_0x5bec86,'utf8');if(!_0x551037['trim']())return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1ef),!![]);const _0x6e7bae=JSON['parse'](_0x551037);if(_0x6e7bae['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'schemaVersion':_0x6e7bae[_0x3e6d82(0x203)],'message':_0x3e6d82(0x20d)+String(_0x6e7bae['schemaVersion'])};if(!Array[_0x3e6d82(0x206)](_0x6e7bae[_0x3e6d82(0x1eb)]))return{...emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1cc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'message':_0x3e6d82(0x220)};const _0x105605=_0x6e7bae[_0x3e6d82(0x1eb)][_0x3e6d82(0x217)](summarizeLocalServiceEntry);return{'registryPath':_0x5bec86,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'serviceCount':_0x105605['length'],'commandCount':_0x105605['reduce']((_0x27a310,_0xaa3a79)=>_0x27a310+_0xaa3a79[_0x3e6d82(0x1e9)],0x0),'services':_0x105605};}catch(_0x444c4c){return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'message':_0x444c4c instanceof Error?_0x444c4c[_0x3e6d82(0x21c)]:String(_0x444c4c)};}}function a63_0x88d6(_0x13dbed,_0x7cb6bc){_0x13dbed=_0x13dbed-0x1cb;const _0x58b387=a63_0x58b3();let _0x88d68=_0x58b387[_0x13dbed];return _0x88d68;}function a63_0x58b3(){const _0x49db4a=['target','homeDir','287853ISwkqA','normalizedManifest','update','errors','registry','find','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','command','manifest','code','CliError','bff\x20target\x20requires\x20functionName.','schemaVersion','parse','].manifest','isArray','report','risk','missing','11Yjnlgq','join','sourceHash','Unsupported\x20schemaVersion:\x20','length','sha256','name','18OLNHma','serviceCode','ENOENT','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','trim','filePath','map','kind','slice','Service\x20manifest\x20validation\x20failed:\x0a','utf8','message','Remove\x20or\x20migrate\x20','localeCompare','homeDirName','services\x20must\x20be\x20an\x20array','sort','object','917490mbqKFD','$.services[','invalid','hex','warnings','flatMap','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifests','description','4254084pxKeGf','100502anbkQT','startsWith','Invalid\x20service\x20manifest\x20JSON:\x20','service.json','174684VhhaBJ','registryIndex','validation','35rnqLRT','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','path','push','version','Service\x20manifest\x20file\x20not\x20found:\x20','commands','Cannot\x20write\x20service\x20registry:\x20','digest','981600uSyZjV','toISOString','Unsupported\x20service\x20registry\x20schemaVersion:\x20','4XpmLxJ','now','commandCount','updatedAt','services','service','stringify','.tmp','empty','Invalid\x20service\x20registry\x20JSON:\x20','4nnrYXn','findIndex','2491210eAzrqG','Local\x20service\x20not\x20found:\x20'];a63_0x58b3=function(){return _0x49db4a;};return a63_0x58b3();}export function formatValidationFailure(_0x4a77ca){const _0x4b98f4=a63_0x552bce,_0x124159=_0x4a77ca[_0x4b98f4(0x1fa)][_0x4b98f4(0x217)](_0x456895=>_0x456895[_0x4b98f4(0x1dd)]+':\x20'+_0x456895[_0x4b98f4(0x21c)]);return _0x4b98f4(0x21a)+_0x124159[_0x4b98f4(0x20b)]('\x0a');}function extractLoadedServiceManifests(_0x573e5a,_0x2613bb){const _0x29ffb1=a63_0x552bce;if(!isServiceRegistryLike(_0x573e5a)){const _0x265b95=_0x573e5a,{manifest:_0x32444d,errors:_0x5e639a}=adaptServiceTreeManifestForLegacyFramework(_0x265b95),_0x1bfe58=validateServiceTreeManifest(_0x32444d),_0x33c570=mergeValidationErrors(_0x1bfe58,_0x5e639a);return[{'manifest':_0x265b95,'report':_0x33c570,'normalizedManifest':_0x33c570['ok']?normalizeServiceTreeManifest(_0x32444d):undefined,'sourceHash':_0x2613bb}];}return _0x573e5a[_0x29ffb1(0x1eb)][_0x29ffb1(0x217)]((_0x48ee12,_0x12372b)=>{const _0x25072a=_0x29ffb1,_0x7082a8=isObjectRecord(_0x48ee12)?_0x48ee12[_0x25072a(0x1ff)]:undefined,{manifest:_0x1063ed,errors:_0x54db59}=adaptServiceTreeManifestForLegacyFramework(_0x7082a8),_0x3540f5=validateServiceTreeManifest(_0x1063ed),_0x23680d=mergeValidationErrors(_0x3540f5,_0x54db59),_0x2e0a1e=isObjectRecord(_0x48ee12)&&typeof _0x48ee12['serviceCode']==='string'?_0x48ee12[_0x25072a(0x212)]:undefined;return{'manifest':_0x7082a8,'report':_0x23680d,'normalizedManifest':_0x23680d['ok']?normalizeServiceTreeManifest(_0x1063ed):undefined,'sourceHash':sha256(JSON[_0x25072a(0x1ed)](_0x7082a8,null,0x2)+'\x0a'),'registryIndex':_0x12372b,'registryServiceCode':_0x2e0a1e};});}function mergeValidationErrors(_0x33318d,_0x20b717){const _0x577eb9=a63_0x552bce,_0x1996c1=_0x33318d[_0x577eb9(0x1fa)][_0x577eb9(0x217)](_0x54386d=>_0x54386d[_0x577eb9(0x21c)]===_0x577eb9(0x1fd)?{..._0x54386d,'message':_0x577eb9(0x202)}:_0x54386d),_0x25b855=[..._0x20b717,..._0x1996c1];return{'ok':_0x25b855[_0x577eb9(0x20e)]===0x0,'errors':_0x25b855,'warnings':_0x33318d[_0x577eb9(0x1ce)]};}function aggregateValidationReports(_0x33d8f0){const _0x49c60d=a63_0x552bce,_0x249776=_0x33d8f0[_0x49c60d(0x1cf)](_0x3ae2e2=>_0x3ae2e2[_0x49c60d(0x1d9)]===undefined?_0x3ae2e2['report']['errors']:_0x3ae2e2['report']['errors']['map'](_0xfde8a=>({..._0xfde8a,'path':prefixRegistryIssuePath(_0x3ae2e2[_0x49c60d(0x1d9)],_0xfde8a[_0x49c60d(0x1dd)])}))),_0x43bbd4=_0x33d8f0[_0x49c60d(0x1cf)](_0x116fb2=>_0x116fb2[_0x49c60d(0x1d9)]===undefined?_0x116fb2[_0x49c60d(0x207)][_0x49c60d(0x1ce)]:_0x116fb2['report']['warnings'][_0x49c60d(0x217)](_0xd31cf8=>({..._0xd31cf8,'path':prefixRegistryIssuePath(_0x116fb2[_0x49c60d(0x1d9)],_0xd31cf8['path'])})));return{'ok':_0x249776[_0x49c60d(0x20e)]===0x0,'errors':_0x249776,'warnings':_0x43bbd4};}function prefixRegistryIssuePath(_0x17a0b1,_0x2151f7){const _0x1c2765=a63_0x552bce;if(_0x2151f7==='$')return'$.services['+_0x17a0b1+_0x1c2765(0x205);if(_0x2151f7[_0x1c2765(0x1d5)]('$.'))return _0x1c2765(0x1cb)+_0x17a0b1+_0x1c2765(0x205)+_0x2151f7[_0x1c2765(0x219)](0x1);if(_0x2151f7['startsWith']('$['))return'$.services['+_0x17a0b1+'].manifest'+_0x2151f7[_0x1c2765(0x219)](0x1);return _0x1c2765(0x1cb)+_0x17a0b1+'].manifest.'+_0x2151f7;}function isServiceRegistryLike(_0x27c5ac){const _0x2cd26d=a63_0x552bce;return isObjectRecord(_0x27c5ac)&&_0x27c5ac[_0x2cd26d(0x203)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2cd26d(0x206)](_0x27c5ac[_0x2cd26d(0x1eb)]);}function isObjectRecord(_0x2b15d2){const _0x557713=a63_0x552bce;return Boolean(_0x2b15d2)&&typeof _0x2b15d2===_0x557713(0x222)&&!Array['isArray'](_0x2b15d2);}function emptyServiceRegistryInspection(_0x4df0a8,_0x364c08,_0x5703fa){return{'registryPath':_0x4df0a8,'exists':_0x5703fa,'status':_0x364c08,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1c7200){const _0x1092bc=a63_0x552bce,_0x717393=_0x1c7200[_0x1092bc(0x1f8)],_0x421875=_0x717393[_0x1092bc(0x1e1)][_0x1092bc(0x217)](_0x498da9=>({'path':_0x498da9['cliPath'],'description':_0x498da9[_0x1092bc(0x1d2)],'risk':_0x498da9[_0x1092bc(0x208)],'targetKind':_0x498da9['target'][_0x1092bc(0x218)],'targetCommand':_0x498da9[_0x1092bc(0x1f5)][_0x1092bc(0x1fe)]}));return{'serviceCode':_0x1c7200[_0x1092bc(0x212)],'name':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x210)],'description':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x1d2)],'version':_0x1c7200[_0x1092bc(0x1df)],'importedAt':_0x1c7200['importedAt'],'source':_0x1c7200['source'],'commandCount':_0x421875[_0x1092bc(0x20e)],'commands':_0x421875};}function sha256(_0x1fa521){const _0x334665=a63_0x552bce;return createHash(_0x334665(0x20f))[_0x334665(0x1f9)](_0x1fa521)[_0x334665(0x1e3)](_0x334665(0x1cd));}
1
+ const a63_0x4a6c4b=a63_0x418c;(function(_0x507b5f,_0x432e2f){const _0x4141eb=a63_0x418c,_0x5a4c2f=_0x507b5f();while(!![]){try{const _0x47cf3e=parseInt(_0x4141eb(0x1d8))/0x1+parseInt(_0x4141eb(0x1e8))/0x2*(parseInt(_0x4141eb(0x1ad))/0x3)+-parseInt(_0x4141eb(0x1a9))/0x4+parseInt(_0x4141eb(0x1cf))/0x5+-parseInt(_0x4141eb(0x1c6))/0x6*(-parseInt(_0x4141eb(0x1ca))/0x7)+-parseInt(_0x4141eb(0x1eb))/0x8+-parseInt(_0x4141eb(0x1b5))/0x9;if(_0x47cf3e===_0x432e2f)break;else _0x5a4c2f['push'](_0x5a4c2f['shift']());}catch(_0x1af921){_0x5a4c2f['push'](_0x5a4c2f['shift']());}}}(a63_0x5ab9,0xedbbc));function a63_0x5ab9(){const _0x1f7efc=['stringify','Service\x20manifest\x20validation\x20failed:\x0a','normalizedManifest','source','path','command','sort','857157FKuLxV','commandCount','Cannot\x20write\x20service\x20registry:\x20','warnings','object','schemaVersion','Remove\x20or\x20migrate\x20','Invalid\x20service\x20manifest\x20JSON:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','splice','sha256','manifests','registry','Invalid\x20service\x20registry\x20JSON:\x20','ENOENT','bff\x20target\x20requires\x20functionName.','973974mNItBN','join','].manifest','5954424lEfHxs','registryIndex','updatedAt','toISOString','target','errors','commands','empty','$.services[','findIndex','kind','cliPath','filePath','digest','find','parse','slice','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','importedAt','2555412uwNjEh','length','message','service','9xPXvZq','Service\x20manifest\x20file\x20not\x20found:\x20','homeDir','serviceCode','hex','code','map','file','5054454mSAeNO','manifest','validation','version','invalid','description','update','report','sourceHash','isArray','].manifest.','homeDirName','startsWith','services','string','trim','service.json','26172VwNPFj','services\x20must\x20be\x20an\x20array','Local\x20service\x20not\x20found:\x20','Unsupported\x20service\x20registry\x20schemaVersion:\x20','147aGtCAf','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','localeCompare','flatMap','utf8','2543990uAJGsK','reduce'];a63_0x5ab9=function(){return _0x1f7efc;};return a63_0x5ab9();}import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x4a6c4b(0x1c5);export function getServiceRegistryPath(_0x4d2b44={}){const _0x556b1c=a63_0x4a6c4b;return resolve(_0x4d2b44[_0x556b1c(0x1af)]??homedir(),PRODUCT_CONFIG[_0x556b1c(0x1c0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x394f80={}){const _0x2c3ba7=a63_0x4a6c4b,_0x53e2fc=getServiceRegistryPath(_0x394f80);if(!existsSync(_0x53e2fc))return emptyServiceRegistry();try{const _0x2f39f0=readFileSync(_0x53e2fc,_0x2c3ba7(0x1ce));if(!_0x2f39f0[_0x2c3ba7(0x1c4)]())return emptyServiceRegistry();const _0x744caf=JSON[_0x2c3ba7(0x1fa)](_0x2f39f0);if(_0x744caf['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2c3ba7(0x1b7)](_0x2c3ba7(0x1c9)+String(_0x744caf['schemaVersion']),_0x2c3ba7(0x1de)+_0x53e2fc+'.');if(!Array[_0x2c3ba7(0x1be)](_0x744caf['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x744caf[_0x2c3ba7(0x1ed)],'services':_0x744caf['services']};}catch(_0x52a3dc){if(_0x52a3dc instanceof Error&&_0x52a3dc['name']==='CliError')throw _0x52a3dc;throw CliErrors[_0x2c3ba7(0x1b7)](_0x2c3ba7(0x1e5)+_0x53e2fc,_0x2c3ba7(0x1cb));}}export function writeServiceRegistry(_0x478c01,_0x560b7d={}){const _0x54132d=a63_0x4a6c4b,_0x1a92c6=getServiceRegistryPath(_0x560b7d),_0x4e9c56=dirname(_0x1a92c6);!existsSync(_0x4e9c56)&&mkdirSync(_0x4e9c56,{'recursive':!![]});const _0x2957bf=_0x1a92c6+'.tmp';try{writeFileSync(_0x2957bf,JSON['stringify'](_0x478c01,null,0x2)+'\x0a',{'encoding':_0x54132d(0x1ce),'mode':0x180}),renameSync(_0x2957bf,_0x1a92c6);}catch(_0x3d88b4){try{unlinkSync(_0x2957bf);}catch{}if(_0x3d88b4?.[_0x54132d(0x1b2)]===_0x54132d(0x1e6))throw CliErrors[_0x54132d(0x1b7)](_0x54132d(0x1da)+_0x1a92c6);throw _0x3d88b4;}return _0x1a92c6;}export function loadServiceManifestFromFile(_0x17bb32){const _0x3f8ee4=a63_0x4a6c4b,_0x47cf23=resolve(_0x17bb32);if(!existsSync(_0x47cf23))throw CliErrors[_0x3f8ee4(0x1b7)](_0x3f8ee4(0x1ae)+_0x17bb32);let _0x4571e8;const _0x40252e=readFileSync(_0x47cf23,'utf8');try{_0x4571e8=JSON['parse'](_0x40252e);}catch{throw CliErrors[_0x3f8ee4(0x1b7)](_0x3f8ee4(0x1df)+_0x17bb32,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0xb39354=sha256(_0x40252e),_0xfc9747=extractLoadedServiceManifests(_0x4571e8,_0xb39354),_0x35c079=aggregateValidationReports(_0xfc9747),_0x221962=_0xfc9747[0x0];return{'filePath':_0x47cf23,'hash':_0xb39354,'kind':isServiceRegistryLike(_0x4571e8)?_0x3f8ee4(0x1e4):_0x3f8ee4(0x1b6),'manifest':_0x221962?.[_0x3f8ee4(0x1b6)]??_0x4571e8,'report':_0x35c079,'normalizedManifest':_0xfc9747[_0x3f8ee4(0x1aa)]===0x1?_0x221962?.[_0x3f8ee4(0x1d3)]:undefined,'manifests':_0xfc9747};}export function importServiceManifest(_0x50af62,_0x3e7a39={}){const _0x3720ec=a63_0x4a6c4b,_0x360e35=loadServiceManifestFromFile(_0x50af62);if(!_0x360e35[_0x3720ec(0x1bc)]['ok'])throw CliErrors[_0x3720ec(0x1b7)](formatValidationFailure(_0x360e35[_0x3720ec(0x1bc)]),_0x3720ec(0x1a6));if(_0x360e35[_0x3720ec(0x1e3)]['length']===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x3720ec(0x1e0));const _0x49da66=readServiceRegistry(_0x3e7a39),_0x1fa612=(_0x3e7a39['now']??(()=>new Date()))()[_0x3720ec(0x1ee)](),_0x29def8=[];let _0x5b5359=0x0,_0x34ed9e=0x0;for(const _0x408b8a of _0x360e35[_0x3720ec(0x1e3)]){if(!_0x408b8a[_0x3720ec(0x1d3)])continue;const _0x55c64e=_0x408b8a[_0x3720ec(0x1d3)][_0x3720ec(0x1ac)][_0x3720ec(0x1b2)],_0x378b25={'serviceCode':_0x55c64e,'version':_0x408b8a[_0x3720ec(0x1d3)][_0x3720ec(0x1b8)],'importedAt':_0x1fa612,'source':{'type':_0x3720ec(0x1b4),'path':_0x360e35[_0x3720ec(0x1f7)],'hash':_0x408b8a[_0x3720ec(0x1bd)]},'manifest':_0x408b8a['manifest'],'normalizedManifest':_0x408b8a['normalizedManifest']},_0x5e91a0=_0x49da66['services'][_0x3720ec(0x1f4)](_0x595271=>_0x595271['serviceCode']===_0x55c64e);_0x5e91a0>=0x0?(_0x49da66['services'][_0x5e91a0]=_0x378b25,_0x34ed9e++):(_0x49da66[_0x3720ec(0x1c2)]['push'](_0x378b25),_0x5b5359++),_0x29def8['push'](_0x378b25);}_0x49da66['services'][_0x3720ec(0x1d7)]((_0x25609e,_0x210cb8)=>_0x25609e['serviceCode'][_0x3720ec(0x1cc)](_0x210cb8[_0x3720ec(0x1b0)])),_0x49da66[_0x3720ec(0x1ed)]=_0x1fa612;const _0x4baaf2=writeServiceRegistry(_0x49da66,_0x3e7a39);return{'registryPath':_0x4baaf2,'entry':_0x29def8[0x0],'replaced':_0x29def8[_0x3720ec(0x1aa)]===0x1?_0x34ed9e===0x1:_0x34ed9e>0x0,'entries':_0x29def8,'imported':_0x5b5359,'updated':_0x34ed9e,'serviceCount':_0x49da66[_0x3720ec(0x1c2)][_0x3720ec(0x1aa)]};}export function exportServiceManifest(_0x5c3196,_0xb2ef8f,_0x31ca30={}){const _0x19eba0=a63_0x4a6c4b,_0x2cc7ca=getServiceRegistryPath(_0x31ca30),_0x452e90=getLocalServiceEntry(_0x5c3196,_0x31ca30);if(!_0x452e90)throw CliErrors['validation'](_0x19eba0(0x1c8)+_0x5c3196,_0x19eba0(0x1a7));const _0x15567f=resolve(_0xb2ef8f),_0x4a3cf9=dirname(_0x15567f);return!existsSync(_0x4a3cf9)&&mkdirSync(_0x4a3cf9,{'recursive':!![]}),writeFileSync(_0x15567f,JSON[_0x19eba0(0x1d1)](_0x452e90[_0x19eba0(0x1b6)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x2cc7ca,'filePath':_0x15567f,'entry':_0x452e90};}export function removeServiceManifest(_0x29238d,_0x244d74={}){const _0x4c07aa=a63_0x4a6c4b,_0x3ce813=readServiceRegistry(_0x244d74),_0x612444=_0x29238d[_0x4c07aa(0x1c4)](),_0x15f839=_0x3ce813[_0x4c07aa(0x1c2)][_0x4c07aa(0x1f4)](_0x2dafbb=>_0x2dafbb[_0x4c07aa(0x1b0)]===_0x612444);if(_0x15f839<0x0)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x612444,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x47136f]=_0x3ce813[_0x4c07aa(0x1c2)][_0x4c07aa(0x1e1)](_0x15f839,0x1),_0x8eda23=(_0x244d74['now']??(()=>new Date()))()[_0x4c07aa(0x1ee)]();_0x3ce813[_0x4c07aa(0x1ed)]=_0x8eda23;const _0x1f1936=writeServiceRegistry(_0x3ce813,_0x244d74);return{'registryPath':_0x1f1936,'entry':_0x47136f,'serviceCount':_0x3ce813[_0x4c07aa(0x1c2)][_0x4c07aa(0x1aa)]};}export function listLocalServices(_0x39ae9a={}){const _0x375a77=a63_0x4a6c4b;return readServiceRegistry(_0x39ae9a)[_0x375a77(0x1c2)];}export function getLocalServiceEntry(_0x240be3,_0x39d534={}){const _0x20265e=a63_0x4a6c4b;return readServiceRegistry(_0x39d534)[_0x20265e(0x1c2)][_0x20265e(0x1f9)](_0x26c2c7=>_0x26c2c7['serviceCode']===_0x240be3['trim']());}function a63_0x418c(_0x34a54a,_0x4298c0){_0x34a54a=_0x34a54a-0x1a6;const _0x5ab928=a63_0x5ab9();let _0x418c81=_0x5ab928[_0x34a54a];return _0x418c81;}export function listLocalServiceTrees(_0x3582a0={}){const _0x93579e=a63_0x4a6c4b;return readServiceRegistry(_0x3582a0)['services'][_0x93579e(0x1b3)](_0x40ffe0=>_0x40ffe0[_0x93579e(0x1d3)]);}export function inspectServiceRegistry(_0x5587bc={}){const _0x276eec=a63_0x4a6c4b,_0x190d83=getServiceRegistryPath(_0x5587bc);if(!existsSync(_0x190d83))return emptyServiceRegistryInspection(_0x190d83,'missing',![]);try{const _0x5ac107=readFileSync(_0x190d83,_0x276eec(0x1ce));if(!_0x5ac107[_0x276eec(0x1c4)]())return emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1f2),!![]);const _0x1fd55b=JSON[_0x276eec(0x1fa)](_0x5ac107);if(_0x1fd55b[_0x276eec(0x1dd)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1b9),!![]),'schemaVersion':_0x1fd55b[_0x276eec(0x1dd)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1fd55b['schemaVersion'])};if(!Array[_0x276eec(0x1be)](_0x1fd55b[_0x276eec(0x1c2)]))return{...emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1b9),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1fd55b[_0x276eec(0x1ed)],'message':_0x276eec(0x1c7)};const _0x398725=_0x1fd55b[_0x276eec(0x1c2)][_0x276eec(0x1b3)](summarizeLocalServiceEntry);return{'registryPath':_0x190d83,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1fd55b[_0x276eec(0x1ed)],'serviceCount':_0x398725[_0x276eec(0x1aa)],'commandCount':_0x398725[_0x276eec(0x1d0)]((_0x61e8cb,_0x1202c8)=>_0x61e8cb+_0x1202c8[_0x276eec(0x1d9)],0x0),'services':_0x398725};}catch(_0xb9eb6a){return{...emptyServiceRegistryInspection(_0x190d83,_0x276eec(0x1b9),!![]),'message':_0xb9eb6a instanceof Error?_0xb9eb6a[_0x276eec(0x1ab)]:String(_0xb9eb6a)};}}export function formatValidationFailure(_0x1c4b27){const _0xe40972=a63_0x4a6c4b,_0x35f125=_0x1c4b27[_0xe40972(0x1f0)][_0xe40972(0x1b3)](_0x506474=>_0x506474['path']+':\x20'+_0x506474['message']);return _0xe40972(0x1d2)+_0x35f125[_0xe40972(0x1e9)]('\x0a');}function extractLoadedServiceManifests(_0x233b18,_0x522930){const _0x48f6a9=a63_0x4a6c4b;if(!isServiceRegistryLike(_0x233b18)){const _0x44e4d8=_0x233b18,{manifest:_0x3be5b4,errors:_0x14b2e4}=adaptServiceTreeManifestForLegacyFramework(_0x44e4d8),_0x1348f5=validateServiceTreeManifest(_0x3be5b4),_0x5db18a=mergeValidationErrors(_0x1348f5,_0x14b2e4);return[{'manifest':_0x44e4d8,'report':_0x5db18a,'normalizedManifest':_0x5db18a['ok']?normalizeServiceTreeManifest(_0x3be5b4):undefined,'sourceHash':_0x522930}];}return _0x233b18['services'][_0x48f6a9(0x1b3)]((_0x395ef0,_0x4971f6)=>{const _0x349822=_0x48f6a9,_0x417c63=isObjectRecord(_0x395ef0)?_0x395ef0[_0x349822(0x1b6)]:undefined,{manifest:_0x27ab11,errors:_0x1c6524}=adaptServiceTreeManifestForLegacyFramework(_0x417c63),_0x9f367=validateServiceTreeManifest(_0x27ab11),_0x525eaf=mergeValidationErrors(_0x9f367,_0x1c6524),_0x31c692=isObjectRecord(_0x395ef0)&&typeof _0x395ef0[_0x349822(0x1b0)]===_0x349822(0x1c3)?_0x395ef0[_0x349822(0x1b0)]:undefined;return{'manifest':_0x417c63,'report':_0x525eaf,'normalizedManifest':_0x525eaf['ok']?normalizeServiceTreeManifest(_0x27ab11):undefined,'sourceHash':sha256(JSON['stringify'](_0x417c63,null,0x2)+'\x0a'),'registryIndex':_0x4971f6,'registryServiceCode':_0x31c692};});}function mergeValidationErrors(_0x41f753,_0x32b426){const _0x265efd=a63_0x4a6c4b,_0x1c5e5e=_0x41f753[_0x265efd(0x1f0)][_0x265efd(0x1b3)](_0x2c3949=>_0x2c3949[_0x265efd(0x1ab)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x2c3949,'message':_0x265efd(0x1e7)}:_0x2c3949),_0x921679=[..._0x32b426,..._0x1c5e5e];return{'ok':_0x921679[_0x265efd(0x1aa)]===0x0,'errors':_0x921679,'warnings':_0x41f753['warnings']};}function aggregateValidationReports(_0x466c37){const _0xef0b9b=a63_0x4a6c4b,_0x5b1a7a=_0x466c37[_0xef0b9b(0x1cd)](_0x2b9cba=>_0x2b9cba[_0xef0b9b(0x1ec)]===undefined?_0x2b9cba['report']['errors']:_0x2b9cba[_0xef0b9b(0x1bc)]['errors']['map'](_0x50787f=>({..._0x50787f,'path':prefixRegistryIssuePath(_0x2b9cba[_0xef0b9b(0x1ec)],_0x50787f[_0xef0b9b(0x1d5)])}))),_0x564cfe=_0x466c37[_0xef0b9b(0x1cd)](_0x84a61a=>_0x84a61a[_0xef0b9b(0x1ec)]===undefined?_0x84a61a[_0xef0b9b(0x1bc)][_0xef0b9b(0x1db)]:_0x84a61a['report']['warnings']['map'](_0xf236d9=>({..._0xf236d9,'path':prefixRegistryIssuePath(_0x84a61a['registryIndex'],_0xf236d9['path'])})));return{'ok':_0x5b1a7a[_0xef0b9b(0x1aa)]===0x0,'errors':_0x5b1a7a,'warnings':_0x564cfe};}function prefixRegistryIssuePath(_0x5c8311,_0x460506){const _0x405c5f=a63_0x4a6c4b;if(_0x460506==='$')return'$.services['+_0x5c8311+_0x405c5f(0x1ea);if(_0x460506[_0x405c5f(0x1c1)]('$.'))return _0x405c5f(0x1f3)+_0x5c8311+_0x405c5f(0x1ea)+_0x460506[_0x405c5f(0x1fb)](0x1);if(_0x460506[_0x405c5f(0x1c1)]('$['))return _0x405c5f(0x1f3)+_0x5c8311+_0x405c5f(0x1ea)+_0x460506[_0x405c5f(0x1fb)](0x1);return _0x405c5f(0x1f3)+_0x5c8311+_0x405c5f(0x1bf)+_0x460506;}function isServiceRegistryLike(_0x41889e){const _0x25ee20=a63_0x4a6c4b;return isObjectRecord(_0x41889e)&&_0x41889e[_0x25ee20(0x1dd)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x25ee20(0x1be)](_0x41889e[_0x25ee20(0x1c2)]);}function isObjectRecord(_0x28e25c){const _0x2dac31=a63_0x4a6c4b;return Boolean(_0x28e25c)&&typeof _0x28e25c===_0x2dac31(0x1dc)&&!Array['isArray'](_0x28e25c);}function emptyServiceRegistryInspection(_0xfe8a49,_0x581491,_0x5632d8){return{'registryPath':_0xfe8a49,'exists':_0x5632d8,'status':_0x581491,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x975292){const _0x5d1d57=a63_0x4a6c4b,_0x255df5=_0x975292['normalizedManifest'],_0x102473=_0x255df5[_0x5d1d57(0x1f1)][_0x5d1d57(0x1b3)](_0x19f9b1=>({'path':_0x19f9b1[_0x5d1d57(0x1f6)],'description':_0x19f9b1[_0x5d1d57(0x1ba)],'risk':_0x19f9b1['risk'],'targetKind':_0x19f9b1[_0x5d1d57(0x1ef)][_0x5d1d57(0x1f5)],'targetCommand':_0x19f9b1['target'][_0x5d1d57(0x1d6)]}));return{'serviceCode':_0x975292[_0x5d1d57(0x1b0)],'name':_0x255df5[_0x5d1d57(0x1ac)]['name'],'description':_0x255df5['service'][_0x5d1d57(0x1ba)],'version':_0x975292[_0x5d1d57(0x1b8)],'importedAt':_0x975292[_0x5d1d57(0x1a8)],'source':_0x975292[_0x5d1d57(0x1d4)],'commandCount':_0x102473[_0x5d1d57(0x1aa)],'commands':_0x102473};}function sha256(_0x547ca9){const _0x1d6376=a63_0x4a6c4b;return createHash(_0x1d6376(0x1e2))[_0x1d6376(0x1bb)](_0x547ca9)[_0x1d6376(0x1f8)](_0x1d6376(0x1b1));}
@@ -1 +1 @@
1
- function a64_0x3cf4(_0x54cf0b,_0x3fb8bc){_0x54cf0b=_0x54cf0b-0x151;const _0x3d6208=a64_0x3d62();let _0x3cf4be=_0x3d6208[_0x54cf0b];return _0x3cf4be;}const a64_0x35e6b4=a64_0x3cf4;(function(_0x5bb3ff,_0x48073a){const _0x507358=a64_0x3cf4,_0x4d8209=_0x5bb3ff();while(!![]){try{const _0x336018=-parseInt(_0x507358(0x158))/0x1+parseInt(_0x507358(0x169))/0x2+parseInt(_0x507358(0x16c))/0x3*(-parseInt(_0x507358(0x162))/0x4)+-parseInt(_0x507358(0x15f))/0x5+parseInt(_0x507358(0x164))/0x6+-parseInt(_0x507358(0x160))/0x7*(parseInt(_0x507358(0x165))/0x8)+-parseInt(_0x507358(0x15b))/0x9*(-parseInt(_0x507358(0x154))/0xa);if(_0x336018===_0x48073a)break;else _0x4d8209['push'](_0x4d8209['shift']());}catch(_0x4d66eb){_0x4d8209['push'](_0x4d8209['shift']());}}}(a64_0x3d62,0x8cb90));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a64_0x3d62(){const _0x5b647d=['files','230KMkOCe','trim','isSymbolicLink','WRITE','797617xFuTre','rendered','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','769059kZnfOc','validation','target','Refusing\x20to\x20overwrite\x20symlink:\x20','942960sDurPG','5649zEmtiY','name','4osrZzU','map','1755012eLEePS','872aFXIiQ','create','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','type','150012SGFfcj','skillName','Skill\x20directory\x20already\x20exists:\x20','2046927cWnaQx','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','skillDir','Created\x20local\x20Skill\x20draft\x20','str','path','skill'];a64_0x3d62=function(){return _0x5b647d;};return a64_0x3d62();}import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a64_0x35e6b4(0x152),'command':a64_0x35e6b4(0x166),'description':a64_0x35e6b4(0x15a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0xc9aab5){const _0x58e45a=a64_0x35e6b4,_0x3abe23=buildSkillCreatePlan(_0xc9aab5[_0x58e45a(0x171)](_0x58e45a(0x161)),_0xc9aab5['str'](_0x58e45a(0x168)),_0xc9aab5[_0x58e45a(0x171)]('target'));return{'method':_0x58e45a(0x157),'url':_0x3abe23[_0x58e45a(0x16f)],'body':{'skillName':_0x3abe23[_0x58e45a(0x159)][_0x58e45a(0x16a)],'type':_0x3abe23[_0x58e45a(0x159)][_0x58e45a(0x168)],'selfContained':!![],'files':_0x3abe23[_0x58e45a(0x159)]['files'][_0x58e45a(0x163)](_0x582940=>_0x582940[_0x58e45a(0x151)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x27af19){const _0x37368f=a64_0x35e6b4,_0x502f78=buildSkillCreatePlan(_0x27af19[_0x37368f(0x171)]('name'),_0x27af19['str']('type'),_0x27af19[_0x37368f(0x171)](_0x37368f(0x15d)));return writeSkillDraft(_0x502f78,_0x27af19['bool']('force')),{'ok':!![],'data':{'skillName':_0x502f78['rendered']['skillName'],'type':_0x502f78[_0x37368f(0x159)]['type'],'dir':_0x502f78['skillDir'],'files':_0x502f78[_0x37368f(0x159)][_0x37368f(0x153)][_0x37368f(0x163)](_0x2aada5=>_0x2aada5[_0x37368f(0x151)])},'message':_0x37368f(0x170)+_0x502f78[_0x37368f(0x159)][_0x37368f(0x16a)]};}};function buildSkillCreatePlan(_0x470762,_0x20536a,_0x2a6608){const _0x466024=a64_0x35e6b4,_0x43f277=_0x20536a[_0x466024(0x155)](),_0x407f28=renderSkillTemplate({'skillName':_0x470762,'type':_0x43f277});!_0x43f277&&writeCliSideChannelLine(_0x466024(0x16d));const _0x49c2a6=resolve(normalizeSkillTarget(_0x2a6608));return{'rendered':_0x407f28,'targetRoot':_0x49c2a6,'skillDir':resolve(_0x49c2a6,_0x407f28[_0x466024(0x16a)])};}function normalizeSkillTarget(_0x296a23){const _0x6d7b6a=a64_0x35e6b4;return(_0x296a23||DEFAULT_SKILL_TARGET)[_0x6d7b6a(0x155)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x19527a,_0xc746c9){const _0x2ba197=a64_0x35e6b4;if(existsSync(_0x19527a[_0x2ba197(0x16f)])){const _0x4e534d=lstatSync(_0x19527a[_0x2ba197(0x16f)]);if(!_0x4e534d['isDirectory']()||_0x4e534d['isSymbolicLink']())throw CliErrors[_0x2ba197(0x15c)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x19527a[_0x2ba197(0x16f)]);if(!_0xc746c9)throw CliErrors[_0x2ba197(0x15c)](_0x2ba197(0x16b)+_0x19527a[_0x2ba197(0x16f)],_0x2ba197(0x167));}for(const _0x48d217 of _0x19527a['rendered'][_0x2ba197(0x153)]){const _0x471361=resolve(_0x19527a[_0x2ba197(0x16f)],_0x48d217['path']),_0x2fdc03=dirname(_0x471361);mkdirSync(_0x2fdc03,{'recursive':!![]});if(existsSync(_0x471361)&&lstatSync(_0x471361)[_0x2ba197(0x156)]())throw CliErrors[_0x2ba197(0x15c)](_0x2ba197(0x15e)+_0x471361);writeFileSync(_0x471361,_0x48d217[_0x2ba197(0x16e)],'utf8');}}
1
+ const a64_0x167113=a64_0xfd7d;(function(_0x2c839a,_0xc713f9){const _0x3b4261=a64_0xfd7d,_0x582559=_0x2c839a();while(!![]){try{const _0x595818=-parseInt(_0x3b4261(0xfb))/0x1*(-parseInt(_0x3b4261(0xeb))/0x2)+parseInt(_0x3b4261(0xf9))/0x3*(parseInt(_0x3b4261(0xee))/0x4)+-parseInt(_0x3b4261(0xf1))/0x5*(parseInt(_0x3b4261(0xdc))/0x6)+-parseInt(_0x3b4261(0xde))/0x7+-parseInt(_0x3b4261(0xf0))/0x8+parseInt(_0x3b4261(0xe3))/0x9*(-parseInt(_0x3b4261(0xe9))/0xa)+parseInt(_0x3b4261(0xf5))/0xb;if(_0x595818===_0xc713f9)break;else _0x582559['push'](_0x582559['shift']());}catch(_0x5083aa){_0x582559['push'](_0x582559['shift']());}}}(a64_0x1fe7,0xbbad5));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a64_0xfd7d(_0x5a08a6,_0x652a11){_0x5a08a6=_0x5a08a6-0xdb;const _0x1fe7cc=a64_0x1fe7();let _0xfd7d86=_0x1fe7cc[_0x5a08a6];return _0xfd7d86;}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':'skill','command':'create','description':a64_0x167113(0xea),'risk':a64_0x167113(0xe2),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x2a2f0a){const _0x527d5a=a64_0x167113,_0x2c7721=buildSkillCreatePlan(_0x2a2f0a[_0x527d5a(0xfc)](_0x527d5a(0xf3)),_0x2a2f0a[_0x527d5a(0xfc)]('type'),_0x2a2f0a['str'](_0x527d5a(0xec)));return{'method':_0x527d5a(0xe7),'url':_0x2c7721['skillDir'],'body':{'skillName':_0x2c7721['rendered'][_0x527d5a(0xfa)],'type':_0x2c7721['rendered'][_0x527d5a(0xdf)],'selfContained':!![],'files':_0x2c7721['rendered'][_0x527d5a(0xe6)][_0x527d5a(0xdd)](_0x8185e4=>_0x8185e4['path'])},'description':_0x527d5a(0xe0)};},async 'execute'(_0x326614){const _0x249153=a64_0x167113,_0x378708=buildSkillCreatePlan(_0x326614[_0x249153(0xfc)](_0x249153(0xf3)),_0x326614[_0x249153(0xfc)]('type'),_0x326614[_0x249153(0xfc)](_0x249153(0xec)));return writeSkillDraft(_0x378708,_0x326614[_0x249153(0xf4)]('force')),{'ok':!![],'data':{'skillName':_0x378708[_0x249153(0xef)][_0x249153(0xfa)],'type':_0x378708[_0x249153(0xef)][_0x249153(0xdf)],'dir':_0x378708['skillDir'],'files':_0x378708[_0x249153(0xef)][_0x249153(0xe6)][_0x249153(0xdd)](_0x5eece5=>_0x5eece5[_0x249153(0xe8)])},'message':_0x249153(0xf6)+_0x378708[_0x249153(0xef)][_0x249153(0xfa)]};}};function buildSkillCreatePlan(_0x9817a9,_0x8e957e,_0x308b19){const _0x5d46e6=a64_0x167113,_0x443e40=_0x8e957e[_0x5d46e6(0xe1)](),_0x7784ef=renderSkillTemplate({'skillName':_0x9817a9,'type':_0x443e40});!_0x443e40&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x2e400f=resolve(normalizeSkillTarget(_0x308b19));return{'rendered':_0x7784ef,'targetRoot':_0x2e400f,'skillDir':resolve(_0x2e400f,_0x7784ef[_0x5d46e6(0xfa)])};}function normalizeSkillTarget(_0x442d24){const _0x56dae2=a64_0x167113;return(_0x442d24||DEFAULT_SKILL_TARGET)[_0x56dae2(0xe1)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x5805a0,_0x1e975e){const _0x11cedf=a64_0x167113;if(existsSync(_0x5805a0[_0x11cedf(0xe4)])){const _0xc8a727=lstatSync(_0x5805a0[_0x11cedf(0xe4)]);if(!_0xc8a727['isDirectory']()||_0xc8a727[_0x11cedf(0xe5)]())throw CliErrors[_0x11cedf(0xed)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x5805a0['skillDir']);if(!_0x1e975e)throw CliErrors[_0x11cedf(0xed)](_0x11cedf(0xdb)+_0x5805a0[_0x11cedf(0xe4)],_0x11cedf(0xf7));}for(const _0x1ded4f of _0x5805a0[_0x11cedf(0xef)][_0x11cedf(0xe6)]){const _0xc0d086=resolve(_0x5805a0[_0x11cedf(0xe4)],_0x1ded4f[_0x11cedf(0xe8)]),_0x266866=dirname(_0xc0d086);mkdirSync(_0x266866,{'recursive':!![]});if(existsSync(_0xc0d086)&&lstatSync(_0xc0d086)[_0x11cedf(0xe5)]())throw CliErrors[_0x11cedf(0xed)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0xc0d086);writeFileSync(_0xc0d086,_0x1ded4f[_0x11cedf(0xf8)],_0x11cedf(0xf2));}}function a64_0x1fe7(){const _0xc4dc22=['5561088PYWhWd','165yVGtKL','utf8','name','bool','39811464LUjNYL','Created\x20local\x20Skill\x20draft\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','content','30762tfEzNI','skillName','2sbuNWI','str','Skill\x20directory\x20already\x20exists:\x20','265134tyxyIV','map','6398868dSqldO','type','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','trim','read','3031146GNeIHJ','skillDir','isSymbolicLink','files','WRITE','path','10ydGanQ','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','153886bLZbFV','target','validation','156yeXJHd','rendered'];a64_0x1fe7=function(){return _0xc4dc22;};return a64_0x1fe7();}