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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +1 -1
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/approval/index.js +1 -1
  13. package/lib/commands/artifact/index.js +1 -1
  14. package/lib/commands/auth/device.js +1 -1
  15. package/lib/commands/auth/index.js +1 -1
  16. package/lib/commands/auth/prompt.js +1 -1
  17. package/lib/commands/bff/detail.js +1 -1
  18. package/lib/commands/bff/exec.js +1 -1
  19. package/lib/commands/bff/index.js +1 -1
  20. package/lib/commands/cli-skill/index.js +1 -1
  21. package/lib/commands/common/config-policy.js +1 -1
  22. package/lib/commands/common/constraints.js +1 -1
  23. package/lib/commands/common/flags.js +1 -1
  24. package/lib/commands/common/local-file.js +1 -1
  25. package/lib/commands/config/definitions.js +1 -1
  26. package/lib/commands/config/init.js +1 -1
  27. package/lib/commands/config/shared.js +1 -1
  28. package/lib/commands/data/import-excel.js +1 -1
  29. package/lib/commands/data/index.js +1 -1
  30. package/lib/commands/dataset/detail.js +1 -1
  31. package/lib/commands/dataset/index.js +1 -1
  32. package/lib/commands/dataset/list.js +1 -1
  33. package/lib/commands/dataset/sdk-doc.js +1 -1
  34. package/lib/commands/doctor.js +1 -1
  35. package/lib/commands/file/index.js +1 -1
  36. package/lib/commands/init.js +1 -1
  37. package/lib/commands/kb/index.js +1 -1
  38. package/lib/commands/logs/index.js +1 -1
  39. package/lib/commands/notification/config-list.js +1 -1
  40. package/lib/commands/notification/index.js +1 -1
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.js +1 -1
  59. package/lib/commands/role/update.js +1 -1
  60. package/lib/commands/role/user-add.js +1 -1
  61. package/lib/commands/role/user-remove.js +1 -1
  62. package/lib/commands/schedule/index.js +1 -1
  63. package/lib/commands/schema.js +1 -1
  64. package/lib/commands/service/dynamic.js +1 -1
  65. package/lib/commands/service/function-name-adapter.js +1 -1
  66. package/lib/commands/service/index.js +1 -1
  67. package/lib/commands/service/registry.js +1 -1
  68. package/lib/commands/skill/commands/create.js +1 -1
  69. package/lib/commands/skill/commands/diagram.js +1 -1
  70. package/lib/commands/skill/commands/install.js +1 -1
  71. package/lib/commands/skill/commands/list.js +1 -1
  72. package/lib/commands/skill/commands/push.js +1 -1
  73. package/lib/commands/skill/commands/validate.js +1 -1
  74. package/lib/commands/skill/diagram.js +1 -1
  75. package/lib/commands/skill/flags.js +1 -1
  76. package/lib/commands/skill/index.js +1 -1
  77. package/lib/commands/skill/manifest-helpers.js +1 -1
  78. package/lib/commands/skill/push-execute.js +1 -1
  79. package/lib/commands/skill/push-flow-helpers.js +1 -1
  80. package/lib/commands/skill/push-retarget.js +1 -1
  81. package/lib/commands/skill/scopes.js +1 -1
  82. package/lib/commands/skill/summary.js +1 -1
  83. package/lib/commands/skill/templates.js +1 -1
  84. package/lib/commands/skill/validate.js +1 -1
  85. package/lib/commands/sql/detail.js +1 -1
  86. package/lib/commands/sql/exec.js +1 -1
  87. package/lib/commands/sql/index.js +1 -1
  88. package/lib/commands/update.js +1 -1
  89. package/lib/commands/user-account/bind.js +1 -1
  90. package/lib/commands/user-account/index.js +1 -1
  91. package/lib/commands/workspace/index.js +1 -1
  92. package/lib/config/domain-config.js +1 -1
  93. package/lib/config/schema.js +1 -1
  94. package/lib/constant/app.js +1 -1
  95. package/lib/constant/auth-mode.js +1 -1
  96. package/lib/constant/cli.js +1 -1
  97. package/lib/constant/defaults.js +1 -1
  98. package/lib/constant/distribution.js +1 -1
  99. package/lib/constant/domain.js +1 -1
  100. package/lib/constant/env.js +1 -1
  101. package/lib/constant/output.js +1 -1
  102. package/lib/constant/product.js +1 -1
  103. package/lib/constant/region.js +1 -1
  104. package/lib/constant/risk.js +1 -1
  105. package/lib/constant/url.js +1 -1
  106. package/lib/context.js +1 -1
  107. package/lib/core/api-client.js +1 -1
  108. package/lib/core/db-resolver.js +1 -1
  109. package/lib/core/kb-management-client.js +1 -1
  110. package/lib/core/kb-search-client.js +1 -1
  111. package/lib/core/sdk-client.js +1 -1
  112. package/lib/errors.js +1 -1
  113. package/lib/framework/access-error.js +1 -1
  114. package/lib/framework/build-all-flags.js +1 -1
  115. package/lib/framework/dryrun.js +1 -1
  116. package/lib/framework/flags.js +1 -1
  117. package/lib/framework/help.js +1 -1
  118. package/lib/framework/index.js +1 -1
  119. package/lib/framework/output.js +1 -1
  120. package/lib/framework/preparse.js +1 -1
  121. package/lib/framework/rate-limit.js +1 -1
  122. package/lib/framework/raw-flags.js +1 -1
  123. package/lib/framework/response.js +1 -1
  124. package/lib/framework/runner-confirmation.js +1 -1
  125. package/lib/framework/runner-error.js +1 -1
  126. package/lib/framework/runner.js +1 -1
  127. package/lib/framework/schema-export.js +1 -1
  128. package/lib/framework/service-order.js +1 -1
  129. package/lib/framework/types.js +1 -1
  130. package/lib/generated/build-info.d.ts +4 -4
  131. package/lib/generated/build-info.js +1 -1
  132. package/lib/generated/official-routing.js +1 -1
  133. package/lib/generated/routing-contract.js +1 -1
  134. package/lib/help.js +1 -1
  135. package/lib/postinstall.js +1 -1
  136. package/lib/runtime/confirmation.js +1 -1
  137. package/lib/runtime/event.js +1 -1
  138. package/lib/runtime/index.js +1 -1
  139. package/lib/runtime/queue.js +1 -1
  140. package/lib/runtime/resolve.js +1 -1
  141. package/lib/services/dataset-import/auto-id-runner.js +1 -1
  142. package/lib/services/dataset-import/excel-reader.js +1 -1
  143. package/lib/services/dataset-import/image-bytes.js +1 -1
  144. package/lib/services/dataset-import/image-ooxml.js +1 -1
  145. package/lib/services/dataset-import/image-runner.js +1 -1
  146. package/lib/services/dataset-import/metadata.js +1 -1
  147. package/lib/services/dataset-import/preview.js +1 -1
  148. package/lib/services/dataset-import/runner.js +1 -1
  149. package/lib/skills/builtin-skill.js +1 -1
  150. package/lib/skills/npx-skills-add.js +1 -1
  151. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  152. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  153. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  154. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  155. package/lib/skills/runtime-skill-sync/links.js +1 -1
  156. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  157. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  158. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  159. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  160. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  161. package/lib/skills/runtime-skill-sync/push.js +1 -1
  162. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  163. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  164. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  165. package/lib/skills/runtime-skill-sync.js +1 -1
  166. package/lib/skills/skill-presence.js +1 -1
  167. package/lib/utils/access-key-redaction.js +1 -1
  168. package/lib/utils/apply-jq-filter.js +1 -1
  169. package/lib/utils/cli-version-check.js +1 -1
  170. package/lib/utils/cli-version-policy.js +1 -1
  171. package/lib/utils/logger.js +1 -1
  172. package/lib/utils/lossless-json.js +1 -1
  173. package/lib/utils/params.js +1 -1
  174. package/lib/utils/positive-safe-integer.js +1 -1
  175. package/lib/utils/redaction.js +1 -1
  176. package/lib/utils/update-notice.js +1 -1
  177. package/lib/utils/version.js +1 -1
  178. package/lib/utils/write-cli-side-channel.js +1 -1
  179. package/package.json +2 -2
  180. package/skills/lovrabet/SKILL.md +2 -2
  181. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a56_0x21a27b=a56_0x5291;(function(_0x4d8923,_0x1c528b){const _0x56cd36=a56_0x5291,_0xf690e8=_0x4d8923();while(!![]){try{const _0xb4ff13=-parseInt(_0x56cd36(0xb3))/0x1*(parseInt(_0x56cd36(0x74))/0x2)+parseInt(_0x56cd36(0x78))/0x3*(parseInt(_0x56cd36(0xad))/0x4)+parseInt(_0x56cd36(0xb9))/0x5*(parseInt(_0x56cd36(0xab))/0x6)+parseInt(_0x56cd36(0x88))/0x7+parseInt(_0x56cd36(0xae))/0x8*(parseInt(_0x56cd36(0x8c))/0x9)+parseInt(_0x56cd36(0x70))/0xa*(-parseInt(_0x56cd36(0x82))/0xb)+-parseInt(_0x56cd36(0x7e))/0xc*(parseInt(_0x56cd36(0xb7))/0xd);if(_0xb4ff13===_0x1c528b)break;else _0xf690e8['push'](_0xf690e8['shift']());}catch(_0x243cb6){_0xf690e8['push'](_0xf690e8['shift']());}}}(a56_0x1bd3,0xda3ad));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x21a27b(0xb5),'USER',a56_0x21a27b(0x77),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a56_0x21a27b(0xb5),a56_0x21a27b(0x90),'OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a56_0x21a27b(0x97),'required':!![],'description':a56_0x21a27b(0x83)};export const ROLE_REF_FLAG={'name':'role','type':'string','required':!![],'description':a56_0x21a27b(0xb0)};export const ROLE_CODE_FLAG={'name':a56_0x21a27b(0x6e),'type':'string','description':'Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)'};export const USER_ID_FLAG={'name':a56_0x21a27b(0x81),'type':a56_0x21a27b(0xa5),'required':!![],'description':'Runtime\x20numeric\x20userId'};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':a56_0x21a27b(0x97),'description':a56_0x21a27b(0x7b)};export function isBuiltinRuntimeRole(_0x4c39a5){return BUILTIN_ROLE_TYPES['includes'](_0x4c39a5);}export function assertCustomRuntimeRole(_0x4c0bf3,_0x110c53){const _0x2a526e=a56_0x21a27b;if(_0x4c0bf3['roleType']!==_0x2a526e(0x95))throw CliErrors[_0x2a526e(0x7a)](_0x2a526e(0xa9)+_0x110c53+'\x20built-in\x20runtime\x20role\x20'+_0x4c0bf3[_0x2a526e(0x79)]+'\x20('+_0x4c0bf3[_0x2a526e(0x7f)]+').',_0x2a526e(0x9b));}export function projectRuntimeRole(_0x2b2488){const _0x3e39f8=a56_0x21a27b;return{'id':_0x2b2488['id'],'roleCode':_0x2b2488['roleCode'],'roleName':_0x2b2488[_0x3e39f8(0x79)],'roleType':_0x2b2488[_0x3e39f8(0x7f)],'remark':_0x2b2488[_0x3e39f8(0x8a)],'userCount':_0x2b2488['userCount']??0x0,'permitCount':_0x2b2488[_0x3e39f8(0xb1)]??0x0,'builtin':isBuiltinRuntimeRole(_0x2b2488['roleType'])};}export function readOptionalRuntimeRoleCode(_0x528564){const _0x57c611=a56_0x21a27b,_0x33c8e9=_0x528564[_0x57c611(0x8b)](_0x57c611(0x6e));if(_0x33c8e9===undefined||_0x33c8e9===null)return undefined;const _0xb5f4ab=String(_0x33c8e9)[_0x57c611(0x8e)]();if(!_0xb5f4ab)throw CliErrors[_0x57c611(0x7a)](_0x57c611(0xa1));if(_0xb5f4ab[_0x57c611(0x8d)]>0x40)throw CliErrors[_0x57c611(0x7a)](_0x57c611(0xa0));return _0xb5f4ab;}export async function getRuntimeRoleById(_0x2956f0,_0x34e30c){const _0x2f9756=a56_0x21a27b;if(!Number['isSafeInteger'](_0x34e30c)||_0x34e30c<=0x0)throw CliErrors[_0x2f9756(0x7a)](_0x2f9756(0x91));const _0x1662f2=(await listAllRuntimeRoles(_0x2956f0))[_0x2f9756(0x76)](_0xb1adde=>_0xb1adde['id']===_0x34e30c&&(!_0xb1adde[_0x2f9756(0x73)]||_0xb1adde[_0x2f9756(0x73)]===_0x2956f0));if(_0x1662f2[_0x2f9756(0x8d)]!==0x1)throw CliErrors[_0x2f9756(0x7a)]('Runtime\x20role\x20id\x20'+_0x34e30c+_0x2f9756(0xb2)+_0x2956f0+'.',_0x2f9756(0xb4));return _0x1662f2[0x0];}function a56_0x1bd3(){const _0x5b1024=['Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','runtime','Runtime\x20role\x20','--role-code\x20cannot\x20exceed\x2064\x20characters.','--role-code\x20must\x20not\x20be\x20blank.','map','\x20is\x20already\x20in\x20runtime\x20role\x20','isSafeInteger','string','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','\x22\x20was\x20not\x20found\x20in\x20app\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','Cannot\x20','totalCount','5478DQyCWj','user-add','56940swLqxA','57048dxaHFV','role','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','permitCount','\x20was\x20not\x20found\x20in\x20app\x20','106906OIxnqM','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','ADMIN','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','529867uBBDJZ','\x20is\x20not\x20in\x20runtime\x20role\x20','7075cNGnRN','\x22\x20is\x20ambiguous.','role-code','userId','54050yqyRIB','push','userList','appCode','16FbyOrZ','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','filter','OWNER','351bjLBWe','roleName','validation','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','paging','Runtime\x20role\x20name\x20\x22','516OPafrm','roleType','str','user','2519bmIcrM','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','find',',\x20found\x20','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','userName','544600upapxy','User\x20','remark','flag','2151JGUVPa','length','trim','code','USER','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','Pass\x20one\x20role\x20ID:\x20','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','CUSTOM','test','number','expect-user-count','applyUserList','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.'];a56_0x1bd3=function(){return _0x5b1024;};return a56_0x1bd3();}export async function listAllRuntimeRoles(_0x1dbfcb,_0x222e08={}){const _0x15021e=a56_0x21a27b,_0x347cf0=0x64,_0x2a593c=[];for(let _0x1c5450=0x1;;_0x1c5450+=0x1){const _0x37c641=await listRuntimeAppRoles(_0x1dbfcb,{..._0x222e08[_0x15021e(0x79)]?{'roleName':_0x222e08[_0x15021e(0x79)]}:{},'currentPage':_0x1c5450,'pageSize':_0x347cf0});_0x2a593c[_0x15021e(0x71)](..._0x37c641['items']);if(_0x37c641['items'][_0x15021e(0x8d)]<_0x347cf0||_0x37c641[_0x15021e(0x7c)]&&_0x2a593c['length']>=_0x37c641[_0x15021e(0x7c)][_0x15021e(0xaa)])return _0x2a593c;}}export async function resolveRuntimeRoleRef(_0x21819a,_0x3080ae){const _0x2205ae=a56_0x21a27b,_0x1e09e9=_0x3080ae[_0x2205ae(0x8e)]();if(!_0x1e09e9)throw CliErrors[_0x2205ae(0x7a)]('Missing\x20runtime\x20role\x20reference.','Pass\x20--role\x20<id|name>.');if(/^\d+$/[_0x2205ae(0x96)](_0x1e09e9))return getRuntimeRoleById(_0x21819a,Number(_0x1e09e9));const _0x852b13=(await listAllRuntimeRoles(_0x21819a))[_0x2205ae(0x76)](_0x4e86d2=>_0x4e86d2[_0x2205ae(0x79)]===_0x1e09e9);if(_0x852b13['length']===0x0)throw CliErrors[_0x2205ae(0x7a)](_0x2205ae(0x7d)+_0x1e09e9+_0x2205ae(0xa7)+_0x21819a+'.',_0x2205ae(0xa8));if(_0x852b13[_0x2205ae(0x8d)]>0x1)throw CliErrors[_0x2205ae(0x7a)]('Runtime\x20role\x20name\x20\x22'+_0x1e09e9+_0x2205ae(0xba),_0x2205ae(0x93)+_0x852b13[_0x2205ae(0xa2)](_0x973ee9=>_0x973ee9['id'])['join'](',\x20')+'.');return _0x852b13[0x0];}function parseRuntimeUserId(_0x297ba1){const _0x1ae58c=a56_0x21a27b,_0x16245b=_0x297ba1[_0x1ae58c(0x8e)](),_0x2393b4=normalizePositiveSafeInteger(_0x16245b);if(_0x2393b4===undefined)throw CliErrors[_0x1ae58c(0x7a)](_0x1ae58c(0x75),_0x1ae58c(0x94));return _0x2393b4;}export async function prepareRuntimeMemberMutation(_0x51b28e,_0x146194){const _0x932f67=a56_0x21a27b,_0x10c62c=await resolveRuntimeRoleRef(_0x51b28e[_0x932f67(0x73)],_0x51b28e[_0x932f67(0x80)](_0x932f67(0xaf)));if(_0x10c62c[_0x932f67(0x7f)]===_0x932f67(0x77))throw CliErrors[_0x932f67(0x7a)](_0x932f67(0x9c),_0x932f67(0x9a));const _0x1c87af=parseRuntimeUserId(_0x51b28e[_0x932f67(0x80)]('user')),_0x1ff4ce=(await listRuntimeRoleUsers(_0x51b28e['appCode']))[_0x932f67(0xa2)](_0x58f455=>({..._0x58f455,'userList':[..._0x58f455[_0x932f67(0x72)]??[]],'applyUserList':[..._0x58f455[_0x932f67(0x99)]??[]]})),_0x48a54a=_0x1ff4ce[_0x932f67(0x84)](_0x119cca=>_0x119cca['id']===_0x10c62c['id']);if(!_0x48a54a)throw CliErrors['validation'](_0x932f67(0x9f)+_0x10c62c['id']+'\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.',_0x932f67(0x9d));const _0x78d433=_0x48a54a[_0x932f67(0x72)][_0x932f67(0xa2)](_0x17d983=>_0x17d983[_0x932f67(0x6f)]),_0x5a954b=_0x51b28e[_0x932f67(0x8b)](_0x932f67(0x98));if(_0x5a954b!==undefined&&_0x5a954b!==null&&_0x5a954b!==''){const _0x4c9933=_0x51b28e['num'](_0x932f67(0x98));if(!Number[_0x932f67(0xa4)](_0x4c9933)||_0x4c9933<0x0)throw CliErrors[_0x932f67(0x7a)](_0x932f67(0x86));if(_0x78d433[_0x932f67(0x8d)]!==_0x4c9933)throw CliErrors[_0x932f67(0x7a)](_0x932f67(0xb6)+_0x4c9933+_0x932f67(0x85)+_0x78d433[_0x932f67(0x8d)]+'.',_0x932f67(0xa6));}const _0x1f860c=_0x78d433['includes'](_0x1c87af),_0x5e8c67=[];let _0x29e3f6=!![];if(_0x146194===_0x932f67(0xac)){const _0x5ebc40=await listRuntimeAppUsers(_0x51b28e[_0x932f67(0x73)]),_0x2610ab=_0x5ebc40[_0x932f67(0x76)](_0x592e41=>Number(_0x592e41[_0x932f67(0x8f)])===_0x1c87af);if(_0x2610ab['length']!==0x1||!_0x2610ab[0x0][_0x932f67(0x87)]?.[_0x932f67(0x8e)]())throw CliErrors[_0x932f67(0x7a)]('Runtime\x20user\x20'+_0x1c87af+_0x932f67(0xb2)+_0x51b28e[_0x932f67(0x73)]+'.',_0x932f67(0x92));_0x1f860c?(_0x29e3f6=![],_0x5e8c67[_0x932f67(0x71)](_0x932f67(0x89)+_0x1c87af+_0x932f67(0xa3)+_0x10c62c['id']+'.')):_0x48a54a['userList'][_0x932f67(0x71)]({'userId':_0x1c87af,'username':_0x2610ab[0x0]['userName']});}else!_0x1f860c?(_0x29e3f6=![],_0x5e8c67[_0x932f67(0x71)](_0x932f67(0x89)+_0x1c87af+_0x932f67(0xb8)+_0x10c62c['id']+'.')):_0x48a54a['userList']=_0x48a54a[_0x932f67(0x72)][_0x932f67(0x76)](_0x3f06ab=>_0x3f06ab['userId']!==_0x1c87af);return{'role':_0x10c62c,'userId':_0x1c87af,'roleList':_0x1ff4ce,'before':{'userIds':_0x78d433},'after':{'userIds':_0x48a54a['userList'][_0x932f67(0xa2)](_0x2e421a=>_0x2e421a[_0x932f67(0x6f)])},'shouldWrite':_0x29e3f6,'warnings':_0x5e8c67};}function a56_0x5291(_0x3a3c43,_0x34741d){_0x3a3c43=_0x3a3c43-0x6e;const _0x1bd310=a56_0x1bd3();let _0x529153=_0x1bd310[_0x3a3c43];return _0x529153;}export function runtimeRoleWriteResult(_0x48eed9,_0x5b9959,_0x132381,_0x1eb4fd,_0x264015,_0x41689b=[]){const _0x46e38c=a56_0x21a27b;return{'operation':_0x48eed9,'scope':_0x46e38c(0x9e),'selector':_0x5b9959,'before':_0x132381,'after':_0x1eb4fd,'dryRun':![],'backend':_0x264015,'warnings':_0x41689b};}
1
+ const a56_0x1ffb34=a56_0x95ba;(function(_0x4564ee,_0x14946f){const _0x3aaba4=a56_0x95ba,_0xe87c21=_0x4564ee();while(!![]){try{const _0x539ce1=parseInt(_0x3aaba4(0x209))/0x1*(-parseInt(_0x3aaba4(0x1fc))/0x2)+parseInt(_0x3aaba4(0x1ec))/0x3*(-parseInt(_0x3aaba4(0x227))/0x4)+parseInt(_0x3aaba4(0x1e4))/0x5*(parseInt(_0x3aaba4(0x1f9))/0x6)+parseInt(_0x3aaba4(0x225))/0x7+-parseInt(_0x3aaba4(0x1e0))/0x8*(-parseInt(_0x3aaba4(0x1ff))/0x9)+parseInt(_0x3aaba4(0x1e5))/0xa*(parseInt(_0x3aaba4(0x21a))/0xb)+parseInt(_0x3aaba4(0x221))/0xc*(-parseInt(_0x3aaba4(0x1ee))/0xd);if(_0x539ce1===_0x14946f)break;else _0xe87c21['push'](_0xe87c21['shift']());}catch(_0x58a584){_0xe87c21['push'](_0xe87c21['shift']());}}}(a56_0x3b5f,0x61309));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a56_0x3b5f(){const _0x1c3357=['remark','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','find','isSafeInteger','Cannot\x20','ADMIN','2580228ltApyp','\x20is\x20already\x20in\x20runtime\x20role\x20','--role-code\x20cannot\x20exceed\x2064\x20characters.','roleName','1376431zcdqNZ','code','4vpZkSY','Runtime\x20role\x20','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','expect-user-count','map','Runtime\x20role\x20name\x20\x22','role','user','totalCount','8Ntohwl','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list',',\x20found\x20','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','211070LFtaKR','10pFQKnn','flag','applyUserList','roleCode','roleType','appCode','filter','520671CGqOOj','number','26DclAJE','userList','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.','userId','str','test','length','Pass\x20--role\x20<id|name>.','role-code','Runtime\x20numeric\x20userId','24biZplO','--role-code\x20must\x20not\x20be\x20blank.','items','4KLNwIA','Runtime\x20user\x20','USER','5105511CjEBzW','\x20is\x20not\x20in\x20runtime\x20role\x20','Runtime\x20role\x20id\x20','validation','user-add','OWNER','Globally\x20unique\x20roleCode\x20(maximum\x2064\x20characters)','string','\x22\x20is\x20ambiguous.','User\x20','80231SmabdR','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','Missing\x20runtime\x20role\x20reference.','\x20was\x20not\x20found\x20in\x20app\x20','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','trim','permitCount','userCount','Pass\x20one\x20role\x20ID:\x20','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','includes','runtime','CUSTOM','userName','push','2523158ungbuc'];a56_0x3b5f=function(){return _0x1c3357;};return a56_0x3b5f();}import{normalizePositiveSafeInteger}from'../../utils/positive-safe-integer.js';export const RUNTIME_ROLE_TYPES=[a56_0x1ffb34(0x220),a56_0x1ffb34(0x1fe),a56_0x1ffb34(0x204),a56_0x1ffb34(0x217)];const BUILTIN_ROLE_TYPES=[a56_0x1ffb34(0x220),a56_0x1ffb34(0x1fe),'OWNER'];export const ROLE_ID_FLAG={'name':'id','type':a56_0x1ffb34(0x1ed),'required':!![],'description':a56_0x1ffb34(0x1e1)};export const ROLE_REF_FLAG={'name':a56_0x1ffb34(0x1dd),'type':a56_0x1ffb34(0x206),'required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const ROLE_CODE_FLAG={'name':'role-code','type':'string','description':a56_0x1ffb34(0x205)};export const USER_ID_FLAG={'name':a56_0x1ffb34(0x1de),'type':a56_0x1ffb34(0x206),'required':!![],'description':a56_0x1ffb34(0x1f8)};export const EXPECT_USER_COUNT_FLAG={'name':a56_0x1ffb34(0x1da),'type':'number','description':'Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed'};export function isBuiltinRuntimeRole(_0x12311c){const _0x41105d=a56_0x1ffb34;return BUILTIN_ROLE_TYPES[_0x41105d(0x215)](_0x12311c);}export function assertCustomRuntimeRole(_0x2ef0cc,_0xc09502){const _0x405246=a56_0x1ffb34;if(_0x2ef0cc[_0x405246(0x1e9)]!==_0x405246(0x217))throw CliErrors['validation'](_0x405246(0x21f)+_0xc09502+'\x20built-in\x20runtime\x20role\x20'+_0x2ef0cc[_0x405246(0x224)]+'\x20('+_0x2ef0cc[_0x405246(0x1e9)]+').','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRuntimeRole(_0x1df394){const _0x3b9b0f=a56_0x1ffb34;return{'id':_0x1df394['id'],'roleCode':_0x1df394[_0x3b9b0f(0x1e8)],'roleName':_0x1df394[_0x3b9b0f(0x224)],'roleType':_0x1df394[_0x3b9b0f(0x1e9)],'remark':_0x1df394[_0x3b9b0f(0x21b)],'userCount':_0x1df394[_0x3b9b0f(0x212)]??0x0,'permitCount':_0x1df394[_0x3b9b0f(0x211)]??0x0,'builtin':isBuiltinRuntimeRole(_0x1df394[_0x3b9b0f(0x1e9)])};}export function readOptionalRuntimeRoleCode(_0x222198){const _0x5a1c5a=a56_0x1ffb34,_0x28dce5=_0x222198[_0x5a1c5a(0x1e6)](_0x5a1c5a(0x1f7));if(_0x28dce5===undefined||_0x28dce5===null)return undefined;const _0x37dc8d=String(_0x28dce5)[_0x5a1c5a(0x210)]();if(!_0x37dc8d)throw CliErrors[_0x5a1c5a(0x202)](_0x5a1c5a(0x1fa));if(_0x37dc8d[_0x5a1c5a(0x1f5)]>0x40)throw CliErrors['validation'](_0x5a1c5a(0x223));return _0x37dc8d;}export async function getRuntimeRoleById(_0xf8bdbd,_0x2a2eb5){const _0x4a374a=a56_0x1ffb34;if(!Number[_0x4a374a(0x21e)](_0x2a2eb5)||_0x2a2eb5<=0x0)throw CliErrors[_0x4a374a(0x202)]('Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.');const _0x556e38=(await listAllRuntimeRoles(_0xf8bdbd))[_0x4a374a(0x1eb)](_0x3d157e=>_0x3d157e['id']===_0x2a2eb5&&(!_0x3d157e[_0x4a374a(0x1ea)]||_0x3d157e[_0x4a374a(0x1ea)]===_0xf8bdbd));if(_0x556e38[_0x4a374a(0x1f5)]!==0x1)throw CliErrors['validation'](_0x4a374a(0x201)+_0x2a2eb5+'\x20was\x20not\x20found\x20in\x20app\x20'+_0xf8bdbd+'.',_0x4a374a(0x1e3));return _0x556e38[0x0];}export async function listAllRuntimeRoles(_0x1df900,_0x17f226={}){const _0x5eae67=a56_0x1ffb34,_0x4300a2=0x64,_0x756430=[];for(let _0x1e1cc0=0x1;;_0x1e1cc0+=0x1){const _0x174f60=await listRuntimeAppRoles(_0x1df900,{..._0x17f226['roleName']?{'roleName':_0x17f226[_0x5eae67(0x224)]}:{},'currentPage':_0x1e1cc0,'pageSize':_0x4300a2});_0x756430[_0x5eae67(0x219)](..._0x174f60[_0x5eae67(0x1fb)]);if(_0x174f60[_0x5eae67(0x1fb)][_0x5eae67(0x1f5)]<_0x4300a2||_0x174f60['paging']&&_0x756430[_0x5eae67(0x1f5)]>=_0x174f60['paging'][_0x5eae67(0x1df)])return _0x756430;}}function a56_0x95ba(_0x49a513,_0x13d072){_0x49a513=_0x49a513-0x1d8;const _0x3b5f86=a56_0x3b5f();let _0x95baa2=_0x3b5f86[_0x49a513];return _0x95baa2;}export async function resolveRuntimeRoleRef(_0xb12665,_0xbfb630){const _0x547ae3=a56_0x1ffb34,_0x12c3f0=_0xbfb630['trim']();if(!_0x12c3f0)throw CliErrors['validation'](_0x547ae3(0x20d),_0x547ae3(0x1f6));if(/^\d+$/[_0x547ae3(0x1f4)](_0x12c3f0))return getRuntimeRoleById(_0xb12665,Number(_0x12c3f0));const _0x2e246=(await listAllRuntimeRoles(_0xb12665))[_0x547ae3(0x1eb)](_0x5d82d9=>_0x5d82d9[_0x547ae3(0x224)]===_0x12c3f0);if(_0x2e246[_0x547ae3(0x1f5)]===0x0)throw CliErrors['validation'](_0x547ae3(0x1dc)+_0x12c3f0+'\x22\x20was\x20not\x20found\x20in\x20app\x20'+_0xb12665+'.',_0x547ae3(0x20f));if(_0x2e246[_0x547ae3(0x1f5)]>0x1)throw CliErrors[_0x547ae3(0x202)](_0x547ae3(0x1dc)+_0x12c3f0+_0x547ae3(0x207),_0x547ae3(0x213)+_0x2e246[_0x547ae3(0x1db)](_0x5b3f6b=>_0x5b3f6b['id'])['join'](',\x20')+'.');return _0x2e246[0x0];}function parseRuntimeUserId(_0x38bbd7){const _0x5e242d=a56_0x1ffb34,_0x49c2b7=_0x38bbd7[_0x5e242d(0x210)](),_0x595261=normalizePositiveSafeInteger(_0x49c2b7);if(_0x595261===undefined)throw CliErrors['validation'](_0x5e242d(0x1d9),_0x5e242d(0x20b));return _0x595261;}export async function prepareRuntimeMemberMutation(_0x1268f5,_0x45db7){const _0x1ba89a=a56_0x1ffb34,_0x8cea22=await resolveRuntimeRoleRef(_0x1268f5[_0x1ba89a(0x1ea)],_0x1268f5[_0x1ba89a(0x1f3)](_0x1ba89a(0x1dd)));if(_0x8cea22[_0x1ba89a(0x1e9)]===_0x1ba89a(0x204))throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x1f0),'Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.');const _0x1689ee=parseRuntimeUserId(_0x1268f5[_0x1ba89a(0x1f3)](_0x1ba89a(0x1de))),_0x5e90c1=(await listRuntimeRoleUsers(_0x1268f5[_0x1ba89a(0x1ea)]))['map'](_0x7d9fdf=>({..._0x7d9fdf,'userList':[..._0x7d9fdf[_0x1ba89a(0x1ef)]??[]],'applyUserList':[..._0x7d9fdf[_0x1ba89a(0x1e7)]??[]]})),_0x481c52=_0x5e90c1[_0x1ba89a(0x21d)](_0x4df5e8=>_0x4df5e8['id']===_0x8cea22['id']);if(!_0x481c52)throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x1d8)+_0x8cea22['id']+'\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.',_0x1ba89a(0x20a));const _0x3ceef5=_0x481c52[_0x1ba89a(0x1ef)]['map'](_0x239050=>_0x239050[_0x1ba89a(0x1f2)]),_0x198fef=_0x1268f5['flag'](_0x1ba89a(0x1da));if(_0x198fef!==undefined&&_0x198fef!==null&&_0x198fef!==''){const _0x3abc50=_0x1268f5['num'](_0x1ba89a(0x1da));if(!Number['isSafeInteger'](_0x3abc50)||_0x3abc50<0x0)throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x21c));if(_0x3ceef5[_0x1ba89a(0x1f5)]!==_0x3abc50)throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x20c)+_0x3abc50+_0x1ba89a(0x1e2)+_0x3ceef5['length']+'.',_0x1ba89a(0x214));}const _0x37f15c=_0x3ceef5[_0x1ba89a(0x215)](_0x1689ee),_0x1f349d=[];let _0x223b44=!![];if(_0x45db7===_0x1ba89a(0x203)){const _0x563fbf=await listRuntimeAppUsers(_0x1268f5[_0x1ba89a(0x1ea)]),_0x147ad5=_0x563fbf[_0x1ba89a(0x1eb)](_0x520e0d=>Number(_0x520e0d[_0x1ba89a(0x226)])===_0x1689ee);if(_0x147ad5[_0x1ba89a(0x1f5)]!==0x1||!_0x147ad5[0x0]['userName']?.[_0x1ba89a(0x210)]())throw CliErrors[_0x1ba89a(0x202)](_0x1ba89a(0x1fd)+_0x1689ee+_0x1ba89a(0x20e)+_0x1268f5[_0x1ba89a(0x1ea)]+'.',_0x1ba89a(0x1f1));_0x37f15c?(_0x223b44=![],_0x1f349d['push'](_0x1ba89a(0x208)+_0x1689ee+_0x1ba89a(0x222)+_0x8cea22['id']+'.')):_0x481c52[_0x1ba89a(0x1ef)][_0x1ba89a(0x219)]({'userId':_0x1689ee,'username':_0x147ad5[0x0][_0x1ba89a(0x218)]});}else!_0x37f15c?(_0x223b44=![],_0x1f349d[_0x1ba89a(0x219)](_0x1ba89a(0x208)+_0x1689ee+_0x1ba89a(0x200)+_0x8cea22['id']+'.')):_0x481c52['userList']=_0x481c52[_0x1ba89a(0x1ef)][_0x1ba89a(0x1eb)](_0x6f26e1=>_0x6f26e1['userId']!==_0x1689ee);return{'role':_0x8cea22,'userId':_0x1689ee,'roleList':_0x5e90c1,'before':{'userIds':_0x3ceef5},'after':{'userIds':_0x481c52[_0x1ba89a(0x1ef)]['map'](_0x2232e8=>_0x2232e8[_0x1ba89a(0x1f2)])},'shouldWrite':_0x223b44,'warnings':_0x1f349d};}export function runtimeRoleWriteResult(_0x5873f7,_0x2f9b5d,_0x5d587f,_0x1913e3,_0x5038bc,_0x4dadb0=[]){const _0x538aae=a56_0x1ffb34;return{'operation':_0x5873f7,'scope':_0x538aae(0x216),'selector':_0x2f9b5d,'before':_0x5d587f,'after':_0x1913e3,'dryRun':![],'backend':_0x5038bc,'warnings':_0x4dadb0};}
@@ -1 +1 @@
1
- function a57_0x1010(){const _0x3b94f3=['Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','description','body','145GURzSN','451572lsQbnt','flag','42MCxOjJ','2CvPwCN','1753569IVcWBn','864966yLrRTP','name','appCode','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','validation','4676jfgpvr','--remark\x20must\x20not\x20be\x20blank.','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','101927RjqYUT','trim','675216vIBwVa','POST','New\x20non-empty\x20role\x20remark','remark','str','414988fTAcBw','110mIMuLO','high-risk-write','update'];a57_0x1010=function(){return _0x3b94f3;};return a57_0x1010();}const a57_0x83e7f1=a57_0x174c;(function(_0x4c52e9,_0x107b8c){const _0x4ff5c5=a57_0x174c,_0x111f1c=_0x4c52e9();while(!![]){try{const _0x332dd3=parseInt(_0x4ff5c5(0xa2))/0x1+parseInt(_0x4ff5c5(0x90))/0x2*(parseInt(_0x4ff5c5(0x92))/0x3)+-parseInt(_0x4ff5c5(0x98))/0x4*(parseInt(_0x4ff5c5(0x8c))/0x5)+parseInt(_0x4ff5c5(0x8f))/0x6*(parseInt(_0x4ff5c5(0x9b))/0x7)+parseInt(_0x4ff5c5(0x9d))/0x8+-parseInt(_0x4ff5c5(0x91))/0x9+parseInt(_0x4ff5c5(0xa3))/0xa*(-parseInt(_0x4ff5c5(0x8d))/0xb);if(_0x332dd3===_0x107b8c)break;else _0x111f1c['push'](_0x111f1c['shift']());}catch(_0x20dc3a){_0x111f1c['push'](_0x111f1c['shift']());}}}(a57_0x1010,0x331ad));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x5ee005){const _0x5b3b57=a57_0x174c,_0x26f686=_0x5ee005[_0x5b3b57(0x8e)]('role-code')!==undefined,_0x4870e1=_0x5ee005['flag'](_0x5b3b57(0x93))!==undefined,_0x56011e=_0x5ee005[_0x5b3b57(0x8e)](_0x5b3b57(0xa0))!==undefined;if(!_0x26f686&&!_0x4870e1&&!_0x56011e)throw CliErrors['validation'](_0x5b3b57(0x95));const _0x4525ff=readOptionalRuntimeRoleCode(_0x5ee005),_0x575b73=_0x5ee005['str'](_0x5b3b57(0x93))[_0x5b3b57(0x9c)](),_0x108341=_0x5ee005[_0x5b3b57(0xa1)](_0x5b3b57(0xa0))[_0x5b3b57(0x9c)]();if(_0x4870e1&&!_0x575b73)throw CliErrors['validation']('--name\x20must\x20not\x20be\x20blank.');if(_0x56011e&&!_0x108341)throw CliErrors[_0x5b3b57(0x97)](_0x5b3b57(0x99),_0x5b3b57(0x9a));return{..._0x4525ff?{'roleCode':_0x4525ff}:{},..._0x4870e1?{'roleName':_0x575b73}:{},..._0x56011e?{'remark':_0x108341}:{}};}function a57_0x174c(_0x8b45cb,_0x28aa99){_0x8b45cb=_0x8b45cb-0x8b;const _0x101062=a57_0x1010();let _0x174c83=_0x101062[_0x8b45cb];return _0x174c83;}async function prepare(_0x559410){const _0x42d796=a57_0x174c,_0x32916a=await getRuntimeRoleById(_0x559410[_0x42d796(0x94)],_0x559410['num']('id'));return assertCustomRuntimeRole(_0x32916a,_0x42d796(0xa5)),{'role':_0x32916a,'body':{'id':_0x32916a['id'],'appCode':_0x559410[_0x42d796(0x94)],...updateFields(_0x559410)}};}export const roleUpdate={'service':'role','command':a57_0x83e7f1(0xa5),'description':a57_0x83e7f1(0x96),'risk':a57_0x83e7f1(0xa4),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x83e7f1(0x93),'type':'string','description':'New\x20role\x20name'},{'name':a57_0x83e7f1(0xa0),'type':'string','description':a57_0x83e7f1(0x9f)}],async 'validate'(_0x8f2b81){updateFields(_0x8f2b81);},async 'dryRun'(_0x473908){const _0x5d7414=a57_0x83e7f1,{body:_0x3c9b53}=await prepare(_0x473908);return dryRun(_0x5d7414(0x9e),'/client/permit/role/update')[_0x5d7414(0x8b)](_0x3c9b53)[_0x5d7414(0xa7)](_0x5d7414(0xa6))['build']();},async 'execute'(_0x230893){const {role:_0x38ae19,body:_0x277519}=await prepare(_0x230893),_0x4d2605=await updateRuntimeAppRole(_0x277519);return{'ok':!![],'data':runtimeRoleWriteResult('update',{'roleId':_0x38ae19['id']},projectRuntimeRole(_0x38ae19),projectRuntimeRole(_0x4d2605),{'method':'POST','path':'/client/permit/role/update'})};}};
1
+ const a57_0x8d339e=a57_0x2c7a;(function(_0x4fd698,_0x404c13){const _0x59801a=a57_0x2c7a,_0x40bd6c=_0x4fd698();while(!![]){try{const _0x1bcba2=parseInt(_0x59801a(0xb8))/0x1*(parseInt(_0x59801a(0xc4))/0x2)+parseInt(_0x59801a(0xc2))/0x3*(parseInt(_0x59801a(0xba))/0x4)+-parseInt(_0x59801a(0xb3))/0x5+-parseInt(_0x59801a(0xab))/0x6*(-parseInt(_0x59801a(0xbc))/0x7)+parseInt(_0x59801a(0xaa))/0x8+-parseInt(_0x59801a(0xaf))/0x9+-parseInt(_0x59801a(0xc0))/0xa*(-parseInt(_0x59801a(0xb4))/0xb);if(_0x1bcba2===_0x404c13)break;else _0x40bd6c['push'](_0x40bd6c['shift']());}catch(_0x4693dd){_0x40bd6c['push'](_0x40bd6c['shift']());}}}(a57_0x5bf5,0xb9257));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a57_0x5bf5(){const _0x43dc59=['name','str','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','body','--remark\x20must\x20not\x20be\x20blank.','update','4735264bqOjCk','1606866DBkdBU','appCode','remark','string','11149488Wdpero','num','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','New\x20role\x20name','7527465JapMuK','187pGQRor','validation','high-risk-write','role-code','891nDueSB','description','235196ryBexY','role','14wVYpAB','flag','New\x20non-empty\x20role\x20remark','POST','589030VoFqDx','/client/permit/role/update','51FVvXSq','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','840YsQrLH'];a57_0x5bf5=function(){return _0x43dc59;};return a57_0x5bf5();}function a57_0x2c7a(_0x587f1f,_0x503c10){_0x587f1f=_0x587f1f-0xa5;const _0x5bf593=a57_0x5bf5();let _0x2c7a9c=_0x5bf593[_0x587f1f];return _0x2c7a9c;}import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x3d46b7){const _0x1acebf=a57_0x2c7a,_0x2ccfb0=_0x3d46b7[_0x1acebf(0xbd)](_0x1acebf(0xb7))!==undefined,_0x10cd91=_0x3d46b7[_0x1acebf(0xbd)](_0x1acebf(0xc5))!==undefined,_0x2045b7=_0x3d46b7[_0x1acebf(0xbd)](_0x1acebf(0xad))!==undefined;if(!_0x2ccfb0&&!_0x10cd91&&!_0x2045b7)throw CliErrors[_0x1acebf(0xb5)](_0x1acebf(0xc3));const _0x1d06ce=readOptionalRuntimeRoleCode(_0x3d46b7),_0x2ce5a7=_0x3d46b7[_0x1acebf(0xa5)](_0x1acebf(0xc5))['trim'](),_0x372996=_0x3d46b7['str'](_0x1acebf(0xad))['trim']();if(_0x10cd91&&!_0x2ce5a7)throw CliErrors[_0x1acebf(0xb5)]('--name\x20must\x20not\x20be\x20blank.');if(_0x2045b7&&!_0x372996)throw CliErrors[_0x1acebf(0xb5)](_0x1acebf(0xa8),'The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.');return{..._0x1d06ce?{'roleCode':_0x1d06ce}:{},..._0x10cd91?{'roleName':_0x2ce5a7}:{},..._0x2045b7?{'remark':_0x372996}:{}};}async function prepare(_0x4bb018){const _0x5a6a33=a57_0x2c7a,_0x2cfd7c=await getRuntimeRoleById(_0x4bb018[_0x5a6a33(0xac)],_0x4bb018[_0x5a6a33(0xb0)]('id'));return assertCustomRuntimeRole(_0x2cfd7c,'update'),{'role':_0x2cfd7c,'body':{'id':_0x2cfd7c['id'],'appCode':_0x4bb018[_0x5a6a33(0xac)],...updateFields(_0x4bb018)}};}export const roleUpdate={'service':a57_0x8d339e(0xbb),'command':'update','description':a57_0x8d339e(0xa6),'risk':a57_0x8d339e(0xb6),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x8d339e(0xc5),'type':a57_0x8d339e(0xae),'description':a57_0x8d339e(0xb2)},{'name':'remark','type':a57_0x8d339e(0xae),'description':a57_0x8d339e(0xbe)}],async 'validate'(_0x9c0407){updateFields(_0x9c0407);},async 'dryRun'(_0x587183){const _0x271693=a57_0x8d339e,{body:_0x168fd3}=await prepare(_0x587183);return dryRun(_0x271693(0xbf),_0x271693(0xc1))[_0x271693(0xa7)](_0x168fd3)[_0x271693(0xb9)](_0x271693(0xb1))['build']();},async 'execute'(_0x24a710){const _0x1a4673=a57_0x8d339e,{role:_0x35a1f8,body:_0x51ab9a}=await prepare(_0x24a710),_0x19d2da=await updateRuntimeAppRole(_0x51ab9a);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1a4673(0xa9),{'roleId':_0x35a1f8['id']},projectRuntimeRole(_0x35a1f8),projectRuntimeRole(_0x19d2da),{'method':'POST','path':'/client/permit/role/update'})};}};
@@ -1 +1 @@
1
- const a58_0x33546b=a58_0x45d1;function a58_0x4992(){const _0x4cc143=['5bMnQoW','role','314257DRjkiB','userId','6937qxdJGG','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','shouldWrite','/client/permit/user-role/update-user-list','80FUxpgQ','POST','after','6PlfMPN','body','high-risk-write','44143GObJmn','roleList','Preview:\x20add\x20runtime\x20role\x20member','warnings','user-add','description','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','build','appCode','before','7554pHRsyp','528384Gcfbge','284910mgPvUD','8282640QiNiyn','3900lSEriA','55629vRjyKg'];a58_0x4992=function(){return _0x4cc143;};return a58_0x4992();}(function(_0x5def50,_0x4d3ded){const _0xe544f5=a58_0x45d1,_0x243e32=_0x5def50();while(!![]){try{const _0x3cbc42=parseInt(_0xe544f5(0x1a5))/0x1*(-parseInt(_0xe544f5(0x1ae))/0x2)+parseInt(_0xe544f5(0x19f))/0x3+-parseInt(_0xe544f5(0x19e))/0x4*(parseInt(_0xe544f5(0x1a3))/0x5)+parseInt(_0xe544f5(0x19d))/0x6*(parseInt(_0xe544f5(0x1a7))/0x7)+-parseInt(_0xe544f5(0x1ab))/0x8*(parseInt(_0xe544f5(0x1a2))/0x9)+-parseInt(_0xe544f5(0x1a0))/0xa+-parseInt(_0xe544f5(0x1b1))/0xb*(-parseInt(_0xe544f5(0x1a1))/0xc);if(_0x3cbc42===_0x4d3ded)break;else _0x243e32['push'](_0x243e32['shift']());}catch(_0x28a533){_0x243e32['push'](_0x243e32['shift']());}}}(a58_0x4992,0xa67c3));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a58_0x45d1(_0x4991f6,_0x40437f){_0x4991f6=_0x4991f6-0x19d;const _0x499276=a58_0x4992();let _0x45d15c=_0x499276[_0x4991f6];return _0x45d15c;}export const roleUserAdd={'service':'role','command':a58_0x33546b(0x1b5),'description':a58_0x33546b(0x1a8),'risk':a58_0x33546b(0x1b0),'confirmationDescription':a58_0x33546b(0x1b7),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x19608f){const _0x513812=a58_0x33546b,_0x3a04ca=await prepareRuntimeMemberMutation(_0x19608f,_0x513812(0x1b5));return dryRun(_0x513812(0x1ac),_0x513812(0x1aa))[_0x513812(0x1af)]({'appCode':_0x19608f[_0x513812(0x1b9)],'roleList':_0x3a04ca[_0x513812(0x1b2)]})[_0x513812(0x1b6)](_0x3a04ca[_0x513812(0x1a9)]?_0x513812(0x1b3):_0x3a04ca[_0x513812(0x1b4)][0x0])[_0x513812(0x1b8)]();},async 'execute'(_0x99821){const _0x31f5ca=a58_0x33546b,_0x2cdf14=await prepareRuntimeMemberMutation(_0x99821,_0x31f5ca(0x1b5));return _0x2cdf14[_0x31f5ca(0x1a9)]&&await updateRuntimeRoleUsers(_0x99821[_0x31f5ca(0x1b9)],_0x2cdf14[_0x31f5ca(0x1b2)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x31f5ca(0x1b5),{'roleId':_0x2cdf14[_0x31f5ca(0x1a4)]['id'],'userId':_0x2cdf14[_0x31f5ca(0x1a6)]},_0x2cdf14[_0x31f5ca(0x1ba)],_0x2cdf14[_0x31f5ca(0x1ad)],{'method':_0x31f5ca(0x1ac),'path':_0x31f5ca(0x1aa)},_0x2cdf14[_0x31f5ca(0x1b4)])};}};
1
+ function a58_0x590e(_0x19a7ae,_0x521ee2){_0x19a7ae=_0x19a7ae-0x11f;const _0x33ce65=a58_0x33ce();let _0x590eeb=_0x33ce65[_0x19a7ae];return _0x590eeb;}function a58_0x33ce(){const _0x59b715=['/client/permit/user-role/update-user-list','5175412nJrNZQ','1242Bltuyw','body','95mvrhgp','3yqJmQT','roleList','1470228brNFXP','239baHhSU','build','127128mqurYX','warnings','high-risk-write','appCode','133IAzgqq','role','before','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','32694FVMvDc','user-add','userId','shouldWrite','3129795SCxjIn','426540jInuep','POST','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.'];a58_0x33ce=function(){return _0x59b715;};return a58_0x33ce();}const a58_0x4d9600=a58_0x590e;(function(_0x4b4462,_0x2e9fd6){const _0xdfcc93=a58_0x590e,_0x2dc3c1=_0x4b4462();while(!![]){try{const _0x47c79e=-parseInt(_0xdfcc93(0x120))/0x1*(-parseInt(_0xdfcc93(0x134))/0x2)+parseInt(_0xdfcc93(0x137))/0x3*(parseInt(_0xdfcc93(0x11f))/0x4)+-parseInt(_0xdfcc93(0x136))/0x5*(parseInt(_0xdfcc93(0x12a))/0x6)+parseInt(_0xdfcc93(0x126))/0x7*(-parseInt(_0xdfcc93(0x122))/0x8)+-parseInt(_0xdfcc93(0x12e))/0x9+-parseInt(_0xdfcc93(0x12f))/0xa+parseInt(_0xdfcc93(0x133))/0xb;if(_0x47c79e===_0x2e9fd6)break;else _0x2dc3c1['push'](_0x2dc3c1['shift']());}catch(_0xeae574){_0x2dc3c1['push'](_0x2dc3c1['shift']());}}}(a58_0x33ce,0x2e887));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a58_0x4d9600(0x127),'command':a58_0x4d9600(0x12b),'description':a58_0x4d9600(0x129),'risk':a58_0x4d9600(0x124),'confirmationDescription':a58_0x4d9600(0x131),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x561534){const _0x39dde9=a58_0x4d9600,_0x54fb42=await prepareRuntimeMemberMutation(_0x561534,_0x39dde9(0x12b));return dryRun(_0x39dde9(0x130),_0x39dde9(0x132))[_0x39dde9(0x135)]({'appCode':_0x561534[_0x39dde9(0x125)],'roleList':_0x54fb42['roleList']})['description'](_0x54fb42[_0x39dde9(0x12d)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x54fb42[_0x39dde9(0x123)][0x0])[_0x39dde9(0x121)]();},async 'execute'(_0x9521d0){const _0x41cb1b=a58_0x4d9600,_0x1653dd=await prepareRuntimeMemberMutation(_0x9521d0,_0x41cb1b(0x12b));return _0x1653dd[_0x41cb1b(0x12d)]&&await updateRuntimeRoleUsers(_0x9521d0['appCode'],_0x1653dd[_0x41cb1b(0x138)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x41cb1b(0x12b),{'roleId':_0x1653dd[_0x41cb1b(0x127)]['id'],'userId':_0x1653dd[_0x41cb1b(0x12c)]},_0x1653dd[_0x41cb1b(0x128)],_0x1653dd['after'],{'method':'POST','path':_0x41cb1b(0x132)},_0x1653dd[_0x41cb1b(0x123)])};}};
@@ -1 +1 @@
1
- const a59_0x20cfe8=a59_0x2b06;(function(_0x3fad1a,_0x2a96d9){const _0x2ebf26=a59_0x2b06,_0x33a7da=_0x3fad1a();while(!![]){try{const _0xdcbed5=-parseInt(_0x2ebf26(0xbe))/0x1*(parseInt(_0x2ebf26(0xc2))/0x2)+parseInt(_0x2ebf26(0xc9))/0x3*(parseInt(_0x2ebf26(0xd6))/0x4)+-parseInt(_0x2ebf26(0xc7))/0x5+-parseInt(_0x2ebf26(0xc6))/0x6+-parseInt(_0x2ebf26(0xc1))/0x7+parseInt(_0x2ebf26(0xc8))/0x8*(parseInt(_0x2ebf26(0xcd))/0x9)+parseInt(_0x2ebf26(0xd5))/0xa;if(_0xdcbed5===_0x2a96d9)break;else _0x33a7da['push'](_0x33a7da['shift']());}catch(_0x1cfb95){_0x33a7da['push'](_0x33a7da['shift']());}}}(a59_0x231e,0x52ea5));function a59_0x231e(){const _0x59ce67=['description','8861470tCnsaF','1164wsgsAn','role','2069BNChhZ','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','build','819350IGXJGq','490qfXLAP','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','/client/permit/user-role/update-user-list','warnings','3593796XEIQhB','2037765AQiYrk','4208808QJxhoq','5751NpTbNI','POST','Preview:\x20remove\x20runtime\x20role\x20member','appCode','9GcjRPp','roleList','after','high-risk-write','shouldWrite','user-remove','userId'];a59_0x231e=function(){return _0x59ce67;};return a59_0x231e();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a59_0x2b06(_0x53a2a1,_0x4a4413){_0x53a2a1=_0x53a2a1-0xbe;const _0x231e60=a59_0x231e();let _0x2b06c7=_0x231e60[_0x53a2a1];return _0x2b06c7;}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a59_0x20cfe8(0xd7),'command':'user-remove','description':a59_0x20cfe8(0xc3),'risk':a59_0x20cfe8(0xd0),'confirmationDescription':a59_0x20cfe8(0xbf),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x471039){const _0x5522e5=a59_0x20cfe8,_0x58d57a=await prepareRuntimeMemberMutation(_0x471039,_0x5522e5(0xd2));return dryRun(_0x5522e5(0xca),_0x5522e5(0xc4))['body']({'appCode':_0x471039[_0x5522e5(0xcc)],'roleList':_0x58d57a['roleList']})[_0x5522e5(0xd4)](_0x58d57a[_0x5522e5(0xd1)]?_0x5522e5(0xcb):_0x58d57a[_0x5522e5(0xc5)][0x0])[_0x5522e5(0xc0)]();},async 'execute'(_0x41836d){const _0x2ef07a=a59_0x20cfe8,_0x5976fb=await prepareRuntimeMemberMutation(_0x41836d,_0x2ef07a(0xd2));return _0x5976fb[_0x2ef07a(0xd1)]&&await updateRuntimeRoleUsers(_0x41836d[_0x2ef07a(0xcc)],_0x5976fb[_0x2ef07a(0xce)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x2ef07a(0xd2),{'roleId':_0x5976fb[_0x2ef07a(0xd7)]['id'],'userId':_0x5976fb[_0x2ef07a(0xd3)]},_0x5976fb['before'],_0x5976fb[_0x2ef07a(0xcf)],{'method':'POST','path':_0x2ef07a(0xc4)},_0x5976fb[_0x2ef07a(0xc5)])};}};
1
+ const a59_0x1fe180=a59_0xaf26;function a59_0xaf26(_0x3da057,_0x32cf9a){_0x3da057=_0x3da057-0x1d1;const _0x32746d=a59_0x3274();let _0xaf2652=_0x32746d[_0x3da057];return _0xaf2652;}function a59_0x3274(){const _0x945d08=['822930xqCAUf','description','/client/permit/user-role/update-user-list','build','shouldWrite','user-remove','79616rOdpJG','after','role','1628088NRhIyy','20Xkcutd','Preview:\x20remove\x20runtime\x20role\x20member','POST','roleList','before','67816ZJxKya','appCode','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','warnings','379304yHjFWG','890361HEQVVE','18sIvYRD','2mcuxrW','userId','body','8182170NggYUn'];a59_0x3274=function(){return _0x945d08;};return a59_0x3274();}(function(_0xc4faef,_0x27ba7a){const _0xbeb1a2=a59_0xaf26,_0x2e5ff6=_0xc4faef();while(!![]){try{const _0x42e16a=-parseInt(_0xbeb1a2(0x1da))/0x1+parseInt(_0xbeb1a2(0x1dd))/0x2*(-parseInt(_0xbeb1a2(0x1db))/0x3)+-parseInt(_0xbeb1a2(0x1ea))/0x4+-parseInt(_0xbeb1a2(0x1d1))/0x5*(-parseInt(_0xbeb1a2(0x1e1))/0x6)+parseInt(_0xbeb1a2(0x1d6))/0x7+-parseInt(_0xbeb1a2(0x1e7))/0x8*(-parseInt(_0xbeb1a2(0x1dc))/0x9)+parseInt(_0xbeb1a2(0x1e0))/0xa;if(_0x42e16a===_0x27ba7a)break;else _0x2e5ff6['push'](_0x2e5ff6['shift']());}catch(_0x2384ca){_0x2e5ff6['push'](_0x2e5ff6['shift']());}}}(a59_0x3274,0x4c7e4));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a59_0x1fe180(0x1e9),'command':a59_0x1fe180(0x1e6),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':'high-risk-write','confirmationDescription':a59_0x1fe180(0x1d8),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x12ce9e){const _0x121f91=a59_0x1fe180,_0x1c5493=await prepareRuntimeMemberMutation(_0x12ce9e,'user-remove');return dryRun(_0x121f91(0x1d3),'/client/permit/user-role/update-user-list')[_0x121f91(0x1df)]({'appCode':_0x12ce9e[_0x121f91(0x1d7)],'roleList':_0x1c5493[_0x121f91(0x1d4)]})[_0x121f91(0x1e2)](_0x1c5493[_0x121f91(0x1e5)]?_0x121f91(0x1d2):_0x1c5493[_0x121f91(0x1d9)][0x0])[_0x121f91(0x1e4)]();},async 'execute'(_0x1af277){const _0x3b627b=a59_0x1fe180,_0x54bfb0=await prepareRuntimeMemberMutation(_0x1af277,_0x3b627b(0x1e6));return _0x54bfb0[_0x3b627b(0x1e5)]&&await updateRuntimeRoleUsers(_0x1af277[_0x3b627b(0x1d7)],_0x54bfb0[_0x3b627b(0x1d4)]),{'ok':!![],'data':runtimeRoleWriteResult('user-remove',{'roleId':_0x54bfb0[_0x3b627b(0x1e9)]['id'],'userId':_0x54bfb0[_0x3b627b(0x1de)]},_0x54bfb0[_0x3b627b(0x1d5)],_0x54bfb0[_0x3b627b(0x1e8)],{'method':_0x3b627b(0x1d3),'path':_0x3b627b(0x1e3)},_0x54bfb0[_0x3b627b(0x1d9)])};}};
@@ -1 +1 @@
1
- const a60_0x532a0f=a60_0x1423;(function(_0x56d215,_0x1e32ec){const _0x32ef27=a60_0x1423,_0x5b3897=_0x56d215();while(!![]){try{const _0x1b12dd=-parseInt(_0x32ef27(0x1a7))/0x1*(-parseInt(_0x32ef27(0x186))/0x2)+parseInt(_0x32ef27(0x185))/0x3+parseInt(_0x32ef27(0x199))/0x4*(-parseInt(_0x32ef27(0x1bd))/0x5)+-parseInt(_0x32ef27(0x19f))/0x6*(-parseInt(_0x32ef27(0x1c3))/0x7)+parseInt(_0x32ef27(0x187))/0x8+-parseInt(_0x32ef27(0x1bc))/0x9*(-parseInt(_0x32ef27(0x1c7))/0xa)+parseInt(_0x32ef27(0x1b8))/0xb*(-parseInt(_0x32ef27(0x1c6))/0xc);if(_0x1b12dd===_0x1e32ec)break;else _0x5b3897['push'](_0x5b3897['shift']());}catch(_0x105700){_0x5b3897['push'](_0x5b3897['shift']());}}}(a60_0x4a56,0x2196d));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a60_0x532a0f(0x18f),'type':'string','required':!![],'enum':[a60_0x532a0f(0x1bb),a60_0x532a0f(0x184)],'description':a60_0x532a0f(0x1c1)},CRON_FLAG={'name':'cron','type':'string','description':a60_0x532a0f(0x197)},SCHEDULED_AT_FLAG={'name':a60_0x532a0f(0x198),'type':a60_0x532a0f(0x1a8),'description':a60_0x532a0f(0x1ad)},TITLE_FLAG={'name':a60_0x532a0f(0x1a4),'type':a60_0x532a0f(0x1a8),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':a60_0x532a0f(0x194),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a60_0x532a0f(0x1b5),'type':a60_0x532a0f(0x1a8),'enum':[a60_0x532a0f(0x1be),'deepseek-v4-flash-0731',a60_0x532a0f(0x1b6)],'default':a60_0x532a0f(0x19b),'description':a60_0x532a0f(0x196)},SCHEDULE_ID_FLAG={'name':a60_0x532a0f(0x1b3),'type':'string','required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x532a0f(0x18b)}},LIMIT_FLAG={'name':a60_0x532a0f(0x1ac),'type':a60_0x532a0f(0x1ab),'default':0x14,'description':a60_0x532a0f(0x1a0)},CURSOR_FLAG={'name':a60_0x532a0f(0x188),'type':a60_0x532a0f(0x1a8),'description':a60_0x532a0f(0x19d)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x4a9e77){const _0x2a0ad9=a60_0x532a0f,_0x46599f=_0x4a9e77['str'](_0x2a0ad9(0x18f)),_0x4bb315=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x1a4))[_0x2a0ad9(0x1a6)](),_0x2a4455=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x194))['trim'](),_0xf10420=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x1b5)),_0x236aec=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x1c8)),_0x5bf53b=_0x4a9e77[_0x2a0ad9(0x1b0)](_0x2a0ad9(0x198));if(!_0x4bb315)throw CliErrors[_0x2a0ad9(0x1c9)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x2a4455)throw CliErrors[_0x2a0ad9(0x1c9)](_0x2a0ad9(0x1ae));if(_0x46599f===_0x2a0ad9(0x1bb)){if(!_0x236aec||_0x5bf53b)throw CliErrors[_0x2a0ad9(0x1c9)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x46599f,'timezone':_0x2a0ad9(0x18a),'cron':_0x236aec,'title':_0x4bb315,'prompt':_0x2a4455,'model':_0xf10420};}if(_0x46599f===_0x2a0ad9(0x184)){if(!_0x5bf53b||_0x236aec)throw CliErrors[_0x2a0ad9(0x1c9)]('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x46599f,'timezone':_0x2a0ad9(0x18a),'scheduledAt':_0x5bf53b,'title':_0x4bb315,'prompt':_0x2a4455,'model':_0xf10420};}throw CliErrors['validation']('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x543e2f){const _0xb036fb=a60_0x532a0f;return _0xb036fb(0x192)+encodeURIComponent(_0x543e2f)+'/schedules';}function scheduleItemPath(_0x1a76c3,_0x468c89){return scheduleCollectionPath(_0x1a76c3)+'/'+encodeURIComponent(_0x468c89);}function a60_0x1423(_0x2997da,_0xb77524){_0x2997da=_0x2997da-0x182;const _0x4a568f=a60_0x4a56();let _0x1423ef=_0x4a568f[_0x2997da];return _0x1423ef;}const scheduleValidate={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1b2),'description':a60_0x532a0f(0x1ba),'risk':a60_0x532a0f(0x1b4),'flags':INPUT_FLAGS,async 'validate'(_0x3c4bd5){readScheduleInput(_0x3c4bd5);},async 'execute'(_0xa04b15){const _0x2bbb32=a60_0x532a0f,_0x5e1dd7=readScheduleInput(_0xa04b15),_0x2e7efd=await validateRuntimeSchedule(_0xa04b15['appCode'],_0x5e1dd7);return{'ok':!![],'data':_0x2e7efd,'message':_0x2bbb32(0x18c)};}},scheduleCreate={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1b1),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a60_0x532a0f(0x18d),'confirmationDescription':a60_0x532a0f(0x19c),'flags':INPUT_FLAGS,async 'validate'(_0x2a394f){readScheduleInput(_0x2a394f);},async 'execute'(_0x51620d){const _0x251e7b=a60_0x532a0f,_0x9329dc=readScheduleInput(_0x51620d),_0x46a541=await validateRuntimeSchedule(_0x51620d[_0x251e7b(0x1a3)],_0x9329dc),_0x1d1cbc=await createRuntimeSchedule(_0x51620d[_0x251e7b(0x1a3)],_0x46a541);return{'ok':!![],'data':_0x1d1cbc,'message':'Created\x20'+_0x1d1cbc[_0x251e7b(0x18f)]+_0x251e7b(0x1a1)+_0x1d1cbc[_0x251e7b(0x183)]};},async 'dryRun'(_0x19bf73){const _0x47549c=a60_0x532a0f,_0x4290fc=readScheduleInput(_0x19bf73);return dryRun(_0x47549c(0x1c5),scheduleCollectionPath(_0x19bf73[_0x47549c(0x1a3)]))[_0x47549c(0x189)](_0x4290fc)['description'](_0x47549c(0x1a5))[_0x47549c(0x1bf)]();}},scheduleList={'service':a60_0x532a0f(0x195),'command':'list','description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x48bc7b){const _0x587ca3=a60_0x532a0f,_0x33912e=_0x48bc7b[_0x587ca3(0x193)](_0x587ca3(0x1ac));if(!Number['isSafeInteger'](_0x33912e)||_0x33912e<0x1||_0x33912e>0x64)throw CliErrors[_0x587ca3(0x1c9)](_0x587ca3(0x1aa));const _0x4feb66=_0x48bc7b[_0x587ca3(0x1b0)](_0x587ca3(0x188));if(_0x4feb66&&(_0x4feb66['length']>0x400||_0x4feb66[_0x587ca3(0x1a6)]()!==_0x4feb66))throw CliErrors[_0x587ca3(0x1c9)](_0x587ca3(0x190));},async 'execute'(_0x41cf12){const _0x18dd21=a60_0x532a0f,_0x1113c3=_0x41cf12[_0x18dd21(0x1b0)]('cursor'),_0x487b52=await listRuntimeSchedules(_0x41cf12[_0x18dd21(0x1a3)],{'kind':_0x41cf12[_0x18dd21(0x1b0)](_0x18dd21(0x18f)),'limit':_0x41cf12[_0x18dd21(0x193)](_0x18dd21(0x1ac)),..._0x1113c3?{'cursor':_0x1113c3}:{}});return{'ok':!![],'data':_0x487b52};}},scheduleDetail={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x18e),'description':a60_0x532a0f(0x1c4),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3f7985){const _0x17793c=a60_0x532a0f,_0x5e0faa=await getRuntimeSchedule(_0x3f7985[_0x17793c(0x1a3)],_0x3f7985[_0x17793c(0x1b0)](_0x17793c(0x1b3)));return{'ok':!![],'data':_0x5e0faa};}},scheduleRun={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1b7),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':'high-risk-write','confirmationDescription':a60_0x532a0f(0x1b9),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xbc40c7){const _0x475dd7=a60_0x532a0f,_0x10043a=_0xbc40c7[_0x475dd7(0x1b0)]('schedule-id'),_0x41c35d=await runRuntimeSchedule(_0xbc40c7[_0x475dd7(0x1a3)],_0x10043a);return{'ok':!![],'data':_0x41c35d,'message':_0x475dd7(0x1c0)+_0x41c35d[_0x475dd7(0x19a)]+_0x475dd7(0x19e)+_0x10043a};},async 'dryRun'(_0x2021e3){const _0x2057bb=a60_0x532a0f,_0xe205=_0x2021e3[_0x2057bb(0x1b0)]('schedule-id');return dryRun(_0x2057bb(0x1c5),scheduleItemPath(_0x2021e3['appCode'],_0xe205)+_0x2057bb(0x1c2))[_0x2057bb(0x1a9)](_0x2057bb(0x1a2)+_0xe205+_0x2057bb(0x1ca))['build']();}},scheduleDelete={'service':a60_0x532a0f(0x195),'command':a60_0x532a0f(0x1af),'description':'Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','risk':a60_0x532a0f(0x18d),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x294ff7){const _0x38a19e=a60_0x532a0f,_0x371ab5=_0x294ff7[_0x38a19e(0x1b0)]('schedule-id'),_0x3181fe=await deleteRuntimeSchedule(_0x294ff7[_0x38a19e(0x1a3)],_0x371ab5);return{'ok':!![],'data':_0x3181fe,'message':'Deleted\x20schedule\x20'+_0x371ab5};},async 'dryRun'(_0x7d45b6){const _0xc541f8=a60_0x532a0f,_0x52e313=_0x7d45b6[_0xc541f8(0x1b0)](_0xc541f8(0x1b3));return dryRun(_0xc541f8(0x182),scheduleItemPath(_0x7d45b6[_0xc541f8(0x1a3)],_0x52e313))[_0xc541f8(0x1a9)](_0xc541f8(0x191)+_0x52e313)[_0xc541f8(0x1bf)]();}};function a60_0x4a56(){const _0x58e1fe=['POST','12CVmJik','45930JjtKDq','cron','validation','\x20immediately','DELETE','scheduleId','ONCE','569517XWunnv','86VgCLAc','393080ccIfqO','cursor','body','UTC','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Schedule\x20input\x20is\x20valid','high-risk-write','detail','kind','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Preview:\x20delete\x20schedule\x20','/api/harness/apps/','num','prompt','schedule','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','scheduled-at','10004fTomzL','taskId','deepseek-v4-flash-0731','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','\x20from\x20schedule\x20','999678UskeTi','Page\x20size\x20from\x201\x20to\x20100','\x20schedule\x20','Preview:\x20run\x20schedule\x20','appCode','title','Preview:\x20create\x20an\x20Agent\x20schedule','trim','1921BSqERe','string','description','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','number','limit','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','--prompt\x20must\x20not\x20be\x20blank.','delete','str','create','validate','schedule-id','read','model','deepseek-v4-pro-0813','run','5387437qhbsYe','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','CRON','405cTucKu','135TtDOcp','kimi/k3','build','Queued\x20Task\x20','Schedule\x20kind:\x20CRON\x20or\x20ONCE','/run','7vvpOvQ','Show\x20one\x20schedule\x20by\x20schedule\x20ID'];a60_0x4a56=function(){return _0x58e1fe;};return a60_0x4a56();}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a60_0x51ea99=a60_0x2679;(function(_0x466c50,_0x2d442c){const _0x4e8f49=a60_0x2679,_0xce73c=_0x466c50();while(!![]){try{const _0x53852d=parseInt(_0x4e8f49(0xf7))/0x1*(parseInt(_0x4e8f49(0x11d))/0x2)+-parseInt(_0x4e8f49(0xe1))/0x3+parseInt(_0x4e8f49(0xd7))/0x4*(parseInt(_0x4e8f49(0xe2))/0x5)+-parseInt(_0x4e8f49(0x11a))/0x6*(parseInt(_0x4e8f49(0xd9))/0x7)+parseInt(_0x4e8f49(0xea))/0x8+parseInt(_0x4e8f49(0x110))/0x9+parseInt(_0x4e8f49(0x113))/0xa*(-parseInt(_0x4e8f49(0x117))/0xb);if(_0x53852d===_0x2d442c)break;else _0xce73c['push'](_0xce73c['shift']());}catch(_0x5c7349){_0xce73c['push'](_0xce73c['shift']());}}}(a60_0x4f43,0xbd2dc));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a60_0x4f43(){const _0x2603bf=['Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','\x20schedule\x20','prompt','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','5416768qtilAC','Deleted\x20schedule\x20','validate','kimi/k3','UTC','scheduleId','run','Schedule\x20input\x20is\x20valid','title','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','1sTvlEa','Preview:\x20delete\x20schedule\x20','string','read','appCode','cron','validation','isSafeInteger','high-risk-write','model','POST','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','/api/harness/apps/','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','DELETE','build','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','trim','/run','scheduled-at','/schedules','\x20from\x20schedule\x20','delete','8907147CcOCuk','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE','23124860sbbHdK','taskId','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','CRON','11bGACJV','length','str','18sudYGv','limit','deepseek-v4-pro-0813','2492138LOHlud','Preview:\x20run\x20schedule\x20','detail','kind','Queued\x20Task\x20','schedule','number','description','--title\x20must\x20not\x20be\x20blank.','430156DyiydV','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','18452AhUnEe','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Schedule\x20UUID','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','num','cursor','Schedule\x20kind:\x20CRON\x20or\x20ONCE','2356287lYaLDM','45LFaYqs','Schedule\x20title','Page\x20size\x20from\x201\x20to\x20100','schedule-id'];a60_0x4f43=function(){return _0x2603bf;};return a60_0x4f43();}import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a60_0x51ea99(0x120),'type':a60_0x51ea99(0xf9),'required':!![],'enum':[a60_0x51ea99(0x116),a60_0x51ea99(0x112)],'description':a60_0x51ea99(0xe0)},CRON_FLAG={'name':a60_0x51ea99(0xfc),'type':a60_0x51ea99(0xf9),'description':a60_0x51ea99(0x107)},SCHEDULED_AT_FLAG={'name':a60_0x51ea99(0x10c),'type':'string','description':a60_0x51ea99(0x115)},TITLE_FLAG={'name':'title','type':a60_0x51ea99(0xf9),'required':!![],'description':a60_0x51ea99(0xe3)},PROMPT_FLAG={'name':a60_0x51ea99(0xe8),'type':'string','required':!![],'description':a60_0x51ea99(0xf5)},MODEL_FLAG={'name':a60_0x51ea99(0x100),'type':'string','enum':[a60_0x51ea99(0xed),'deepseek-v4-flash-0731',a60_0x51ea99(0x11c)],'default':'deepseek-v4-flash-0731','description':a60_0x51ea99(0xf4)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':'string','required':!![],'description':a60_0x51ea99(0xdc),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x51ea99(0xd8)}},LIMIT_FLAG={'name':'limit','type':a60_0x51ea99(0x123),'default':0x14,'description':a60_0x51ea99(0xe4)},CURSOR_FLAG={'name':a60_0x51ea99(0xdf),'type':a60_0x51ea99(0xf9),'description':a60_0x51ea99(0xdd)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0xf06a4f){const _0x509537=a60_0x51ea99,_0x51dd69=_0xf06a4f['str']('kind'),_0x10c7e5=_0xf06a4f['str'](_0x509537(0xf2))['trim'](),_0x276d5c=_0xf06a4f[_0x509537(0x119)](_0x509537(0xe8))[_0x509537(0x10a)](),_0x396ad9=_0xf06a4f[_0x509537(0x119)](_0x509537(0x100)),_0x14ce02=_0xf06a4f[_0x509537(0x119)](_0x509537(0xfc)),_0xcd8e21=_0xf06a4f['str']('scheduled-at');if(!_0x10c7e5)throw CliErrors[_0x509537(0xfd)](_0x509537(0xd6));if(!_0x276d5c)throw CliErrors[_0x509537(0xfd)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x51dd69===_0x509537(0x116)){if(!_0x14ce02||_0xcd8e21)throw CliErrors[_0x509537(0xfd)](_0x509537(0x104));return{'kind':_0x51dd69,'timezone':_0x509537(0xee),'cron':_0x14ce02,'title':_0x10c7e5,'prompt':_0x276d5c,'model':_0x396ad9};}if(_0x51dd69==='ONCE'){if(!_0xcd8e21||_0x14ce02)throw CliErrors[_0x509537(0xfd)](_0x509537(0x102));return{'kind':_0x51dd69,'timezone':_0x509537(0xee),'scheduledAt':_0xcd8e21,'title':_0x10c7e5,'prompt':_0x276d5c,'model':_0x396ad9};}throw CliErrors[_0x509537(0xfd)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x5b866e){const _0x5a57ab=a60_0x51ea99;return _0x5a57ab(0x103)+encodeURIComponent(_0x5b866e)+_0x5a57ab(0x10d);}function scheduleItemPath(_0x3f3261,_0x382e67){return scheduleCollectionPath(_0x3f3261)+'/'+encodeURIComponent(_0x382e67);}const scheduleValidate={'service':'schedule','command':a60_0x51ea99(0xec),'description':a60_0x51ea99(0xe6),'risk':a60_0x51ea99(0xfa),'flags':INPUT_FLAGS,async 'validate'(_0xd1448a){readScheduleInput(_0xd1448a);},async 'execute'(_0x21d04a){const _0x3dceee=a60_0x51ea99,_0x169fcd=readScheduleInput(_0x21d04a),_0x433f77=await validateRuntimeSchedule(_0x21d04a[_0x3dceee(0xfb)],_0x169fcd);return{'ok':!![],'data':_0x433f77,'message':_0x3dceee(0xf1)};}},scheduleCreate={'service':a60_0x51ea99(0x122),'command':'create','description':a60_0x51ea99(0xe9),'risk':'high-risk-write','confirmationDescription':a60_0x51ea99(0xda),'flags':INPUT_FLAGS,async 'validate'(_0x1032d0){readScheduleInput(_0x1032d0);},async 'execute'(_0x24fdd1){const _0x48f7fd=a60_0x51ea99,_0x6a4de6=readScheduleInput(_0x24fdd1),_0x227435=await validateRuntimeSchedule(_0x24fdd1[_0x48f7fd(0xfb)],_0x6a4de6),_0xe801d9=await createRuntimeSchedule(_0x24fdd1[_0x48f7fd(0xfb)],_0x227435);return{'ok':!![],'data':_0xe801d9,'message':'Created\x20'+_0xe801d9[_0x48f7fd(0x120)]+_0x48f7fd(0xe7)+_0xe801d9[_0x48f7fd(0xef)]};},async 'dryRun'(_0x4c4973){const _0x43f9db=a60_0x51ea99,_0x21e0a8=readScheduleInput(_0x4c4973);return dryRun(_0x43f9db(0x101),scheduleCollectionPath(_0x4c4973['appCode']))['body'](_0x21e0a8)[_0x43f9db(0x124)](_0x43f9db(0x111))[_0x43f9db(0x106)]();}},scheduleList={'service':'schedule','command':'list','description':a60_0x51ea99(0xf3),'risk':a60_0x51ea99(0xfa),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3f7e36){const _0xfc8a23=a60_0x51ea99,_0xab0e88=_0x3f7e36[_0xfc8a23(0xde)](_0xfc8a23(0x11b));if(!Number[_0xfc8a23(0xfe)](_0xab0e88)||_0xab0e88<0x1||_0xab0e88>0x64)throw CliErrors['validation'](_0xfc8a23(0x109));const _0x52a6e1=_0x3f7e36[_0xfc8a23(0x119)](_0xfc8a23(0xdf));if(_0x52a6e1&&(_0x52a6e1[_0xfc8a23(0x118)]>0x400||_0x52a6e1[_0xfc8a23(0x10a)]()!==_0x52a6e1))throw CliErrors['validation'](_0xfc8a23(0xdb));},async 'execute'(_0x34db4d){const _0x13a606=a60_0x51ea99,_0x3f00f8=_0x34db4d['str']('cursor'),_0x230743=await listRuntimeSchedules(_0x34db4d['appCode'],{'kind':_0x34db4d[_0x13a606(0x119)](_0x13a606(0x120)),'limit':_0x34db4d[_0x13a606(0xde)](_0x13a606(0x11b)),..._0x3f00f8?{'cursor':_0x3f00f8}:{}});return{'ok':!![],'data':_0x230743};}},scheduleDetail={'service':a60_0x51ea99(0x122),'command':a60_0x51ea99(0x11f),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x918156){const _0x4d3e40=a60_0x51ea99,_0x57fe97=await getRuntimeSchedule(_0x918156[_0x4d3e40(0xfb)],_0x918156['str'](_0x4d3e40(0xe5)));return{'ok':!![],'data':_0x57fe97};}},scheduleRun={'service':'schedule','command':a60_0x51ea99(0xf0),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a60_0x51ea99(0xff),'confirmationDescription':a60_0x51ea99(0xf6),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x161c04){const _0x68f2e6=a60_0x51ea99,_0x5dfe90=_0x161c04[_0x68f2e6(0x119)](_0x68f2e6(0xe5)),_0x3795dd=await runRuntimeSchedule(_0x161c04['appCode'],_0x5dfe90);return{'ok':!![],'data':_0x3795dd,'message':_0x68f2e6(0x121)+_0x3795dd[_0x68f2e6(0x114)]+_0x68f2e6(0x10e)+_0x5dfe90};},async 'dryRun'(_0x3b7a74){const _0x57720c=a60_0x51ea99,_0x187fab=_0x3b7a74[_0x57720c(0x119)]('schedule-id');return dryRun('POST',scheduleItemPath(_0x3b7a74['appCode'],_0x187fab)+_0x57720c(0x10b))[_0x57720c(0x124)](_0x57720c(0x11e)+_0x187fab+'\x20immediately')[_0x57720c(0x106)]();}},scheduleDelete={'service':a60_0x51ea99(0x122),'command':a60_0x51ea99(0x10f),'description':a60_0x51ea99(0x108),'risk':a60_0x51ea99(0xff),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x29e838){const _0x183584=a60_0x51ea99,_0x518b8e=_0x29e838[_0x183584(0x119)](_0x183584(0xe5)),_0x42058e=await deleteRuntimeSchedule(_0x29e838['appCode'],_0x518b8e);return{'ok':!![],'data':_0x42058e,'message':_0x183584(0xeb)+_0x518b8e};},async 'dryRun'(_0x2d716d){const _0x2d822b=a60_0x51ea99,_0x15f434=_0x2d716d[_0x2d822b(0x119)](_0x2d822b(0xe5));return dryRun(_0x2d822b(0x105),scheduleItemPath(_0x2d716d[_0x2d822b(0xfb)],_0x15f434))[_0x2d822b(0x124)](_0x2d822b(0xf8)+_0x15f434)[_0x2d822b(0x106)]();}};function a60_0x2679(_0x151e90,_0x352fdb){_0x151e90=_0x151e90-0xd6;const _0x4f43e6=a60_0x4f43();let _0x26795f=_0x4f43e6[_0x151e90];return _0x26795f;}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a61_0x1b1f8c=a61_0x15b2;function a61_0x15b2(_0x4a76c1,_0x2d5a88){_0x4a76c1=_0x4a76c1-0xe7;const _0x2d839b=a61_0x2d83();let _0x15b2ed=_0x2d839b[_0x4a76c1];return _0x15b2ed;}(function(_0x3683d3,_0x46c177){const _0x4e3331=a61_0x15b2,_0x3b7cef=_0x3683d3();while(!![]){try{const _0x191604=-parseInt(_0x4e3331(0xec))/0x1+parseInt(_0x4e3331(0xeb))/0x2*(parseInt(_0x4e3331(0xf0))/0x3)+parseInt(_0x4e3331(0xee))/0x4*(-parseInt(_0x4e3331(0xe8))/0x5)+parseInt(_0x4e3331(0xf6))/0x6+parseInt(_0x4e3331(0xf1))/0x7*(parseInt(_0x4e3331(0xed))/0x8)+parseInt(_0x4e3331(0xf3))/0x9*(-parseInt(_0x4e3331(0xe9))/0xa)+parseInt(_0x4e3331(0xe7))/0xb*(parseInt(_0x4e3331(0xf4))/0xc);if(_0x191604===_0x46c177)break;else _0x3b7cef['push'](_0x3b7cef['shift']());}catch(_0x5e0489){_0x3b7cef['push'](_0x3b7cef['shift']());}}}(a61_0x2d83,0xf01d6));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x152ab4){const _0x143b28=await buildSchemaPayload();return{'ok':!![],'data':_0x143b28};}export const schemaDefinition={'service':a61_0x1b1f8c(0xea),'command':a61_0x1b1f8c(0xf2),'description':a61_0x1b1f8c(0xf5),'risk':a61_0x1b1f8c(0xef),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a61_0x2d83(){const _0x4a9275=['6111LvpPDQ','22224IsTYNZ','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2624928FhCAkT','16588AQaaFY','3880zSvjmY','8600xLHgIu','schema','4cuERFs','619770eHYSBB','8BrvVwS','7708qJgLJj','read','343452rjBmhc','1563100hLWzTS','export'];a61_0x2d83=function(){return _0x4a9275;};return a61_0x2d83();}
1
+ const a61_0x5229e0=a61_0x36db;(function(_0x5ed748,_0x132f02){const _0x4d012d=a61_0x36db,_0x129bdd=_0x5ed748();while(!![]){try{const _0x29c016=-parseInt(_0x4d012d(0x15f))/0x1*(-parseInt(_0x4d012d(0x163))/0x2)+-parseInt(_0x4d012d(0x167))/0x3+-parseInt(_0x4d012d(0x162))/0x4*(parseInt(_0x4d012d(0x168))/0x5)+parseInt(_0x4d012d(0x161))/0x6+-parseInt(_0x4d012d(0x166))/0x7*(parseInt(_0x4d012d(0x15b))/0x8)+-parseInt(_0x4d012d(0x160))/0x9*(parseInt(_0x4d012d(0x15d))/0xa)+parseInt(_0x4d012d(0x15a))/0xb;if(_0x29c016===_0x132f02)break;else _0x129bdd['push'](_0x129bdd['shift']());}catch(_0x3aa95f){_0x129bdd['push'](_0x129bdd['shift']());}}}(a61_0x1243,0x25644));function a61_0x36db(_0x1446e4,_0x40be46){_0x1446e4=_0x1446e4-0x15a;const _0x12430b=a61_0x1243();let _0x36dbf4=_0x12430b[_0x1446e4];return _0x36dbf4;}import{buildSchemaPayload}from'../framework/schema-export.js';function a61_0x1243(){const _0x58639b=['read','169870SSTNFv','schema','4996APUGdE','45ABPHUU','1094226OOGJUL','4pWcwSA','2WDpdSn','Export\x20machine-readable\x20command\x20schema\x20(JSON)','export','7zgXbBq','842055vBSHeX','237480pxngMG','5646113PgZCdY','1075024IUQZBA'];a61_0x1243=function(){return _0x58639b;};return a61_0x1243();}async function execute(_0x1d54f2){const _0x508550=await buildSchemaPayload();return{'ok':!![],'data':_0x508550};}export const schemaDefinition={'service':a61_0x5229e0(0x15e),'command':a61_0x5229e0(0x165),'description':a61_0x5229e0(0x164),'risk':a61_0x5229e0(0x15c),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x1e5a81,_0x144116){const _0x586ad0=a62_0x49d8,_0x57c390=_0x1e5a81();while(!![]){try{const _0x1fb39a=-parseInt(_0x586ad0(0x172))/0x1*(-parseInt(_0x586ad0(0x1a7))/0x2)+parseInt(_0x586ad0(0x14e))/0x3*(parseInt(_0x586ad0(0x17b))/0x4)+-parseInt(_0x586ad0(0x1a2))/0x5*(-parseInt(_0x586ad0(0x1a6))/0x6)+parseInt(_0x586ad0(0x14c))/0x7*(-parseInt(_0x586ad0(0x152))/0x8)+parseInt(_0x586ad0(0x162))/0x9*(-parseInt(_0x586ad0(0x170))/0xa)+parseInt(_0x586ad0(0x16e))/0xb*(-parseInt(_0x586ad0(0x177))/0xc)+parseInt(_0x586ad0(0x1a8))/0xd;if(_0x1fb39a===_0x144116)break;else _0x57c390['push'](_0x57c390['shift']());}catch(_0x8d9eb0){_0x57c390['push'](_0x57c390['shift']());}}}(a62_0x34ef,0xcbf59));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x19483d,_0x447120){const _0x2948c3=a62_0x49d8,_0x27500f=listLocalServiceTrees();let _0x58db01;for(const _0x32ac3e of _0x27500f){const _0x2b67ef=matchServiceTreeCommand(_0x32ac3e,_0x19483d);if(!_0x2b67ef)continue;(!_0x58db01||_0x2b67ef[_0x2948c3(0x16a)][_0x2948c3(0x15f)][_0x2948c3(0x17d)]>_0x58db01[_0x2948c3(0x16a)][_0x2948c3(0x15f)][_0x2948c3(0x17d)])&&(_0x58db01={'tree':_0x32ac3e,'command':_0x2b67ef['command'],'remainingArgs':_0x2b67ef['remainingArgs']});}if(!_0x58db01)return undefined;const _0x2b58ea={..._0x447120};return applyAppBinding(_0x58db01[_0x2948c3(0x191)],_0x58db01[_0x2948c3(0x16a)],_0x2b58ea),{'definition':buildDynamicCommandDefinition(_0x58db01[_0x2948c3(0x191)],_0x58db01[_0x2948c3(0x16a)]),'args':_0x58db01[_0x2948c3(0x156)],'flags':_0x2b58ea,'tree':_0x58db01[_0x2948c3(0x191)],'command':_0x58db01[_0x2948c3(0x16a)]};}export function generateDynamicServiceHelp(_0x4dbf4f){const _0x7f47ab=a62_0x49d8,_0x276b38=listLocalServiceTrees()['find'](_0x95b270=>_0x95b270[_0x7f47ab(0x1a4)][_0x7f47ab(0x168)]===_0x4dbf4f);if(!_0x276b38)return undefined;const _0x228ccd=[CLI_BIN_NAME+'\x20'+_0x4dbf4f+_0x7f47ab(0x189),'',_0x276b38[_0x7f47ab(0x1a4)][_0x7f47ab(0x193)]||_0x4dbf4f,_0x276b38[_0x7f47ab(0x1a4)][_0x7f47ab(0x179)]?'\x20\x20'+_0x276b38[_0x7f47ab(0x1a4)][_0x7f47ab(0x179)]:'','','Commands:',..._0x276b38[_0x7f47ab(0x158)][_0x7f47ab(0x184)](_0x4f57ab=>{const _0x297cdf=_0x7f47ab,_0x7a4206=_0x4f57ab[_0x297cdf(0x15f)]['slice'](0x1)[_0x297cdf(0x14b)]('\x20'),_0x1fc04d=_0x4f57ab[_0x297cdf(0x142)]===_0x297cdf(0x1a9)?'':'\x20['+_0x4f57ab[_0x297cdf(0x142)]+']';return'\x20\x20'+_0x7a4206[_0x297cdf(0x1a5)](0x18)+'\x20'+(_0x4f57ab['description']||'')+_0x1fc04d;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x4dbf4f+_0x7f47ab(0x18f)][_0x7f47ab(0x154)](Boolean);return _0x228ccd[_0x7f47ab(0x14b)]('\x0a');}export function listDynamicServiceEntries(){const _0x4426a2=a62_0x49d8;return listLocalServices()[_0x4426a2(0x184)](_0x475a1c=>{const _0x285cd8=_0x4426a2,_0x3f6c94=_0x475a1c[_0x285cd8(0x181)];return{'service':_0x3f6c94[_0x285cd8(0x1a4)][_0x285cd8(0x168)],'label':_0x3f6c94[_0x285cd8(0x1a4)][_0x285cd8(0x193)]||_0x3f6c94[_0x285cd8(0x1a4)][_0x285cd8(0x168)],'commands':_0x3f6c94[_0x285cd8(0x158)][_0x285cd8(0x184)](_0xa652f2=>({'command':dynamicCommandName(_0xa652f2),'description':_0xa652f2[_0x285cd8(0x179)]||'Run\x20service\x20command\x20'+_0xa652f2[_0x285cd8(0x180)],'tag':riskTag(_0xa652f2[_0x285cd8(0x142)])}))};});}export function getDynamicServiceEntry(_0x3c5d3c){const _0x2b8428=a62_0x49d8;return listDynamicServiceEntries()[_0x2b8428(0x18c)](_0x1e9616=>_0x1e9616[_0x2b8428(0x1a4)]===_0x3c5d3c);}export function listDynamicServiceDefinitions(_0x6608c1){const _0x46273e=a62_0x49d8;return listLocalServiceTrees()['filter'](_0x174efc=>!_0x6608c1||_0x174efc[_0x46273e(0x1a4)]['code']===_0x6608c1)[_0x46273e(0x173)](_0x38bb3b=>_0x38bb3b['commands'][_0x46273e(0x184)](_0x432dfe=>buildDynamicCommandDefinition(_0x38bb3b,_0x432dfe)));}function a62_0x34ef(){const _0x445334=['dbtableConfig','join','7LhwztR','Run\x20service\x20command\x20','1416642PIrEwI','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','appBindings','app','4078288qUxaAw','\x20\x20MAP\x20TO','filter','\x20->\x20','remainingArgs','SERVICE_TREE','commands','Service\x20command\x20','kind','\x22\x20in\x20service\x20command\x20','scriptName','envName','Preview\x20dynamic\x20service\x20command:\x20','fullPath','enum','\x20\x20\x20\x20sqlCode:\x20','13202073qxpFXB','\x20\x20\x20\x20datasetCode:\x20','default','bff','string','sqlCode','code','cliName','command','appRef','Unsupported\x20service\x20target\x20kind:\x20','now','143uyVANd','\x20\x20\x20\x20datatable:\x20','10ZRziWS','required','54uREAML','flatMap','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','tableName','boolean','557724BQyCto','bffId','description','high-risk-write','12kRRwHV','\x20\x20\x20\x20command:\x20','length','employeeId','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','cliPath','normalizedManifest','\x22.\x20','appcode','map','nickname','entries','userName','type','\x20<command>\x20[flags]','args','\x20\x20\x20\x20kind:\x20\x20\x20\x20','find','userId','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20functionName:\x20','tree','datatable','name','data','push','\x20requires\x20target.functionName.','\x20requires\x20target.sqlCode.','\x20\x20SERVICE\x20TREE\x20TARGET','mapTo','appCode','operator','validation','trim','datasetCode','context.','bffCode','fromEntries','5ZCAplu','\x20completed\x20in\x20','service','padEnd','8940588OpOnNO','17540YNWmnF','467753XwAedN','read','username','env','source','risk','ctx.','Unknown\x20appRef\x20\x22','sql','number','params','nickName','target'];a62_0x34ef=function(){return _0x445334;};return a62_0x34ef();}export function getDynamicServiceDefinitions(_0x1edbff){const _0x2f8ceb=listDynamicServiceDefinitions(_0x1edbff);return _0x2f8ceb['length']>0x0?_0x2f8ceb:undefined;}export function findDynamicServiceDefinition(_0x294193,_0x3093d6){const _0x5c4acb=a62_0x49d8;return listDynamicServiceDefinitions(_0x294193)[_0x5c4acb(0x18c)](_0x437a53=>_0x437a53[_0x5c4acb(0x16a)]===_0x3093d6);}export function buildDynamicCommandDefinition(_0x335934,_0x586ab5){const _0x3a6425=a62_0x49d8;return{'service':_0x335934['service'][_0x3a6425(0x168)],'command':dynamicCommandName(_0x586ab5),'description':_0x586ab5[_0x3a6425(0x179)]||_0x3a6425(0x14d)+_0x586ab5['cliPath'],'risk':_0x586ab5['risk'],..._0x586ab5[_0x3a6425(0x142)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x586ab5)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x586ab5[_0x3a6425(0x18a)]['map'](_0x3691d3=>({'name':_0x3691d3['name'],'description':_0x3691d3[_0x3a6425(0x179)]||_0x3691d3[_0x3a6425(0x193)],'required':_0x3691d3[_0x3a6425(0x171)]})),'flags':_0x586ab5['flags'][_0x3a6425(0x184)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x586ab5),async 'dryRun'(_0x48b3e2){const _0x3c580c=_0x3a6425,_0x39e2cc=await compilePlan(_0x586ab5,_0x48b3e2);return{'method':_0x3c580c(0x157),'url':_0x586ab5[_0x3c580c(0x180)],'body':{'target':targetPreview(_0x39e2cc),'params':_0x39e2cc[_0x3c580c(0x147)]},'description':_0x3c580c(0x15e)+_0x586ab5[_0x3c580c(0x180)]};},async 'execute'(_0x995dcd){const _0x13bf11=_0x3a6425,_0x4e77b9=await compilePlan(_0x586ab5,_0x995dcd),_0x2ee081=Date[_0x13bf11(0x16d)](),_0x1ffe52=await executePlan(_0x4e77b9,_0x586ab5,_0x995dcd),_0x36b6b7=Date[_0x13bf11(0x16d)]()-_0x2ee081;return{'ok':!![],'data':{'service':_0x335934[_0x13bf11(0x1a4)],'command':_0x586ab5[_0x13bf11(0x180)],'target':targetPreview(_0x4e77b9),'result':_0x1ffe52,'elapsed':_0x36b6b7},'message':_0x13bf11(0x159)+_0x586ab5['cliPath']+_0x13bf11(0x1a3)+_0x36b6b7+'ms'};}};}function buildDynamicConfirmationDescription(_0x446bc2){const _0x8c2421=a62_0x49d8,_0x2cde91=_0x446bc2[_0x8c2421(0x179)]||_0x446bc2[_0x8c2421(0x180)],_0x5e9c4e=_0x446bc2[_0x8c2421(0x142)]===_0x8c2421(0x17a)?_0x8c2421(0x17f):'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x8c2421(0x18e)+_0x2cde91+_0x8c2421(0x182)+_0x5e9c4e;}function dynamicCommandName(_0x2b86c9){const _0x4c47ac=a62_0x49d8;return _0x2b86c9[_0x4c47ac(0x15f)]['slice'](0x1)[_0x4c47ac(0x14b)]('\x20');}function riskTag(_0xe6a0f7){const _0x4029bd=a62_0x49d8;return _0xe6a0f7===_0x4029bd(0x1a9)?'':'\x20\x20['+_0xe6a0f7+']';}function flagToCommandFlag(_0x41d247){const _0x5918c5=a62_0x49d8;return{'name':_0x41d247[_0x5918c5(0x169)],'type':_0x41d247[_0x5918c5(0x188)]==='json'?_0x5918c5(0x166):_0x41d247['type'],'description':_0x41d247[_0x5918c5(0x179)]||_0x41d247[_0x5918c5(0x193)],'required':_0x41d247['required'],'default':isPrimitiveFlagDefault(_0x41d247['default'])?_0x41d247[_0x5918c5(0x164)]:undefined,'enum':_0x41d247[_0x5918c5(0x160)]};}async function compilePlan(_0x5624b1,_0x3fcdbf){const _0x3bf23e=a62_0x49d8;return compileServiceTreeCommand(_0x5624b1,{'flags':_0x3fcdbf['rawFlags'],'args':_0x3fcdbf[_0x3bf23e(0x18a)],'context':await buildServiceContext(_0x5624b1,_0x3fcdbf)});}async function buildServiceContext(_0x2d5ded,_0x4166c2){const _0x1cd2be=a62_0x49d8,_0x54006e={'appCode':_0x4166c2[_0x1cd2be(0x19a)],'env':_0x4166c2[_0x1cd2be(0x15d)],'envName':_0x4166c2[_0x1cd2be(0x15d)]};if(!usesRuntimeContext(_0x2d5ded))return _0x54006e;const _0x2a98f3=await getLoginUserInfo(),_0x420f18=pickFirst(_0x2a98f3[_0x1cd2be(0x18d)],_0x2a98f3['id']);return{..._0x54006e,'user':_0x2a98f3,'userId':_0x420f18,'id':_0x2a98f3['id'],'username':pickFirst(_0x2a98f3[_0x1cd2be(0x13f)],_0x2a98f3[_0x1cd2be(0x187)],_0x2a98f3['loginName']),'userName':_0x2a98f3[_0x1cd2be(0x187)],'nickname':pickFirst(_0x2a98f3[_0x1cd2be(0x185)],_0x2a98f3[_0x1cd2be(0x148)]),'nickName':_0x2a98f3[_0x1cd2be(0x148)],'tenantCode':_0x2a98f3['tenantCode'],'employeeId':_0x2a98f3[_0x1cd2be(0x17e)]};}function usesRuntimeContext(_0x4ca577){const _0x539318=a62_0x49d8;return _0x4ca577[_0x539318(0x199)]['some'](_0x3f6b81=>typeof _0x3f6b81[_0x539318(0x141)]==='string'&&(_0x3f6b81['source']['startsWith'](_0x539318(0x19f))||_0x3f6b81[_0x539318(0x141)]['startsWith'](_0x539318(0x143))));}function pickFirst(..._0x3f7e8b){const _0x20eb36=a62_0x49d8;return _0x3f7e8b[_0x20eb36(0x18c)](_0x4ff5ba=>_0x4ff5ba!==undefined&&_0x4ff5ba!==null);}async function executePlan(_0x19cf01,_0x32c65b,_0x2b08f2){const _0x479fa7=a62_0x49d8;if(_0x19cf01['kind']===_0x479fa7(0x194)){const _0x3b21d3=await resolveDatasetCode(_0x19cf01,_0x32c65b,_0x2b08f2);return executeData(_0x3b21d3,_0x19cf01[_0x479fa7(0x16a)],_0x19cf01[_0x479fa7(0x147)]);}if(_0x19cf01[_0x479fa7(0x15a)]===_0x479fa7(0x145)){if(!_0x19cf01[_0x479fa7(0x167)])throw CliErrors[_0x479fa7(0x19c)]('Service\x20command\x20'+_0x32c65b['cliPath']+_0x479fa7(0x197));return executeSdkSql(_0x19cf01[_0x479fa7(0x167)],normalizeScalarParams(_0x19cf01['params']));}if(_0x19cf01[_0x479fa7(0x15a)]===_0x479fa7(0x165)){const _0x5c35cb=_0x19cf01[_0x479fa7(0x15c)]||_0x19cf01[_0x479fa7(0x1a0)]||(_0x19cf01['bffId']==null?'':String(_0x19cf01[_0x479fa7(0x178)]));if(!_0x5c35cb)throw CliErrors[_0x479fa7(0x19c)](_0x479fa7(0x159)+_0x32c65b[_0x479fa7(0x180)]+_0x479fa7(0x196));return executeSdkBff(_0x5c35cb,_0x19cf01[_0x479fa7(0x147)]);}throw CliErrors[_0x479fa7(0x19c)](_0x479fa7(0x16c)+_0x19cf01['kind']);}async function resolveDatasetCode(_0x24d4b5,_0x7b70e5,_0x3dc543){const _0x3f8262=a62_0x49d8;if(_0x24d4b5[_0x3f8262(0x19e)])return _0x24d4b5[_0x3f8262(0x19e)];if(!_0x24d4b5['datatable'])throw CliErrors['validation'](_0x3f8262(0x159)+_0x7b70e5[_0x3f8262(0x180)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x75579a=await listDatasets(_0x3dc543['appCode']),_0x4afc18=_0x75579a[_0x3f8262(0x18c)](_0x1cd310=>_0x1cd310[_0x3f8262(0x14a)]?.[_0x3f8262(0x175)]===_0x24d4b5[_0x3f8262(0x192)]);if(!_0x4afc18?.[_0x3f8262(0x168)])throw CliErrors[_0x3f8262(0x19c)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x24d4b5[_0x3f8262(0x192)]+_0x3f8262(0x14f)+_0x3dc543[_0x3f8262(0x19a)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x4afc18[_0x3f8262(0x168)];}function applyAppBinding(_0x337576,_0x5ce013,_0x49b1c9){const _0x5f3f65=a62_0x49d8,_0x2df1a3=_0x5ce013[_0x5f3f65(0x149)][_0x5f3f65(0x16b)];if(!_0x2df1a3)return;const _0x165124=_0x337576[_0x5f3f65(0x150)][_0x2df1a3];if(!_0x165124)throw CliErrors[_0x5f3f65(0x19c)](_0x5f3f65(0x144)+_0x2df1a3+_0x5f3f65(0x15b)+_0x5ce013[_0x5f3f65(0x180)]+'.',_0x5f3f65(0x174));const _0x4d00fe=_0x165124[_0x5f3f65(0x183)]||_0x165124[_0x5f3f65(0x19a)];_0x4d00fe&&!hasText(_0x49b1c9[_0x5f3f65(0x183)])&&(_0x49b1c9[_0x5f3f65(0x183)]=_0x4d00fe),_0x165124[_0x5f3f65(0x151)]&&!hasText(_0x49b1c9[_0x5f3f65(0x151)])&&!hasText(_0x49b1c9['appcode'])&&(_0x49b1c9['app']=_0x165124[_0x5f3f65(0x151)]),_0x165124[_0x5f3f65(0x140)]&&!hasText(_0x49b1c9[_0x5f3f65(0x140)])&&(_0x49b1c9[_0x5f3f65(0x140)]=_0x165124[_0x5f3f65(0x140)]);}function renderDynamicCommandHelp(_0x3e38b8){const _0x7864c5=a62_0x49d8,_0x4ce862=[_0x7864c5(0x198),_0x7864c5(0x18b)+_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x15a)],_0x7864c5(0x17c)+_0x3e38b8['target']['command']];if(_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x19e)])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x163)+_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x19e)]);if(_0x3e38b8['target']['datatable'])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x16f)+_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x192)]);if(_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x167)])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x161)+_0x3e38b8[_0x7864c5(0x149)]['sqlCode']);if(_0x3e38b8[_0x7864c5(0x149)][_0x7864c5(0x15c)])_0x4ce862[_0x7864c5(0x195)](_0x7864c5(0x190)+_0x3e38b8['target'][_0x7864c5(0x15c)]);if(_0x3e38b8[_0x7864c5(0x199)]['length']>0x0){_0x4ce862[_0x7864c5(0x195)]('',_0x7864c5(0x153));for(const _0x51e016 of _0x3e38b8[_0x7864c5(0x199)]){_0x4ce862['push']('\x20\x20\x20\x20'+(_0x51e016[_0x7864c5(0x141)]||'const')+_0x7864c5(0x155)+_0x51e016[_0x7864c5(0x149)]+(_0x51e016[_0x7864c5(0x19b)]?'.'+_0x51e016['operator']:''));}}return _0x4ce862[_0x7864c5(0x14b)]('\x0a');}function targetPreview(_0x391dba){const _0x5c7052=a62_0x49d8;return{'kind':_0x391dba[_0x5c7052(0x15a)],'command':_0x391dba[_0x5c7052(0x16a)],'appRef':_0x391dba[_0x5c7052(0x16b)],'datasetCode':_0x391dba['datasetCode'],'datatable':_0x391dba[_0x5c7052(0x192)],'sqlCode':_0x391dba[_0x5c7052(0x167)],'bffCode':_0x391dba['bffCode'],'bffId':_0x391dba[_0x5c7052(0x178)],'functionName':_0x391dba[_0x5c7052(0x15c)]};}function a62_0x49d8(_0x332764,_0x358e11){_0x332764=_0x332764-0x13f;const _0x34ef23=a62_0x34ef();let _0x49d8cd=_0x34ef23[_0x332764];return _0x49d8cd;}function normalizeScalarParams(_0x11b1a9){const _0xbb3e8f=a62_0x49d8;return Object[_0xbb3e8f(0x1a1)](Object[_0xbb3e8f(0x186)](_0x11b1a9)[_0xbb3e8f(0x154)](([,_0x4a584b])=>typeof _0x4a584b===_0xbb3e8f(0x166)||typeof _0x4a584b===_0xbb3e8f(0x146)));}function hasText(_0x39f48c){const _0x4ddae0=a62_0x49d8;return typeof _0x39f48c==='string'&&_0x39f48c[_0x4ddae0(0x19d)]()[_0x4ddae0(0x17d)]>0x0;}function isPrimitiveFlagDefault(_0x46a629){const _0x57a5b3=a62_0x49d8;return _0x46a629===undefined||typeof _0x46a629===_0x57a5b3(0x166)||typeof _0x46a629===_0x57a5b3(0x146)||typeof _0x46a629===_0x57a5b3(0x176);}
1
+ function a62_0x47d6(){const _0x201b48=['\x20\x20\x20\x20command:\x20','normalizedManifest','datatable','number','cliPath','Unsupported\x20service\x20target\x20kind:\x20','Commands:','999BKVFfI','username','SERVICE_TREE','length','service','sql','validation','appCode','1089110YUiAXI','loginName','boolean','mapTo','808fxZtgs','\x20->\x20','tree','description','find','441336pdfiuY','ctx.','Run\x20service\x20command\x20','trim','name','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','fullPath','\x20requires\x20target.sqlCode.','userId','entries','rawFlags','app','flags','map','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20datasetCode:\x20','enum','flatMap','default','\x20service\x20detail\x20--service\x20','\x22.\x20','string','3AwPIBV','\x20completed\x20in\x20','envName','appRef','bffId','\x20\x20SERVICE\x20TREE\x20TARGET','env','appBindings','startsWith','dbtableConfig','employeeId','params','\x20\x20\x20\x20','operator','bff','slice','high-risk-write','`\x20to\x20inspect\x20the\x20manifest.','117795lMrLVv','padEnd','7427gYGriz','fromEntries','Cannot\x20resolve\x20datatable\x20\x22','join','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','const','datasetCode','now','args','appcode','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20functionName:\x20','nickname','code','command','Use\x20`','type','Unknown\x20appRef\x20\x22','tableName','Service\x20command\x20','bffCode','scriptName','some','14090OKYryd','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x22\x20in\x20service\x20command\x20','\x20<command>\x20[flags]','sqlCode','data','read','filter','Preview\x20dynamic\x20service\x20command:\x20','269194WjcWrC','cliName','kind','target','36hefSFw','push','required','\x20\x20\x20\x20kind:\x20\x20\x20\x20','source','commands','risk','85206obKmGk','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.'];a62_0x47d6=function(){return _0x201b48;};return a62_0x47d6();}(function(_0x3742a5,_0x52ae6a){const _0x7d36fb=a62_0x16c5,_0x26b65b=_0x3742a5();while(!![]){try{const _0x4f23e4=-parseInt(_0x7d36fb(0x12e))/0x1+parseInt(_0x7d36fb(0x123))/0x2*(parseInt(_0x7d36fb(0xef))/0x3)+parseInt(_0x7d36fb(0x148))/0x4+-parseInt(_0x7d36fb(0x101))/0x5*(-parseInt(_0x7d36fb(0x127))/0x6)+parseInt(_0x7d36fb(0x103))/0x7*(-parseInt(_0x7d36fb(0x143))/0x8)+parseInt(_0x7d36fb(0x137))/0x9*(-parseInt(_0x7d36fb(0x11a))/0xa)+parseInt(_0x7d36fb(0x13f))/0xb;if(_0x4f23e4===_0x52ae6a)break;else _0x26b65b['push'](_0x26b65b['shift']());}catch(_0x303128){_0x26b65b['push'](_0x26b65b['shift']());}}}(a62_0x47d6,0x21551));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x5c9c53,_0x446f21){const _0x473cf5=a62_0x16c5,_0x2bd7e2=listLocalServiceTrees();let _0x3e73e7;for(const _0x26c0aa of _0x2bd7e2){const _0x20c4c9=matchServiceTreeCommand(_0x26c0aa,_0x5c9c53);if(!_0x20c4c9)continue;(!_0x3e73e7||_0x20c4c9[_0x473cf5(0x111)][_0x473cf5(0x14e)][_0x473cf5(0x13a)]>_0x3e73e7[_0x473cf5(0x111)][_0x473cf5(0x14e)][_0x473cf5(0x13a)])&&(_0x3e73e7={'tree':_0x26c0aa,'command':_0x20c4c9[_0x473cf5(0x111)],'remainingArgs':_0x20c4c9['remainingArgs']});}if(!_0x3e73e7)return undefined;const _0x3cce81={..._0x446f21};return applyAppBinding(_0x3e73e7['tree'],_0x3e73e7[_0x473cf5(0x111)],_0x3cce81),{'definition':buildDynamicCommandDefinition(_0x3e73e7[_0x473cf5(0x145)],_0x3e73e7[_0x473cf5(0x111)]),'args':_0x3e73e7['remainingArgs'],'flags':_0x3cce81,'tree':_0x3e73e7[_0x473cf5(0x145)],'command':_0x3e73e7[_0x473cf5(0x111)]};}export function generateDynamicServiceHelp(_0x377821){const _0x47fc4a=a62_0x16c5,_0x37683d=listLocalServiceTrees()[_0x47fc4a(0x147)](_0x547f31=>_0x547f31[_0x47fc4a(0x13b)]['code']===_0x377821);if(!_0x37683d)return undefined;const _0x471626=[CLI_BIN_NAME+'\x20'+_0x377821+_0x47fc4a(0x11d),'',_0x37683d[_0x47fc4a(0x13b)][_0x47fc4a(0x14c)]||_0x377821,_0x37683d[_0x47fc4a(0x13b)][_0x47fc4a(0x146)]?'\x20\x20'+_0x37683d[_0x47fc4a(0x13b)][_0x47fc4a(0x146)]:'','',_0x47fc4a(0x136),..._0x37683d[_0x47fc4a(0x12c)][_0x47fc4a(0x155)](_0xfe8e6f=>{const _0x50bba8=_0x47fc4a,_0x214c8e=_0xfe8e6f['fullPath'][_0x50bba8(0xfe)](0x1)['join']('\x20'),_0xfc0a82=_0xfe8e6f[_0x50bba8(0x12d)]===_0x50bba8(0x120)?'':'\x20['+_0xfe8e6f[_0x50bba8(0x12d)]+']';return'\x20\x20'+_0x214c8e[_0x50bba8(0x102)](0x18)+'\x20'+(_0xfe8e6f[_0x50bba8(0x146)]||'')+_0xfc0a82;}),'',_0x47fc4a(0x112)+CLI_BIN_NAME+_0x47fc4a(0xec)+_0x377821+_0x47fc4a(0x100)][_0x47fc4a(0x121)](Boolean);return _0x471626[_0x47fc4a(0x106)]('\x0a');}export function listDynamicServiceEntries(){const _0x5ede9e=a62_0x16c5;return listLocalServices()[_0x5ede9e(0x155)](_0x133950=>{const _0x2ec9ff=_0x5ede9e,_0x3a31c9=_0x133950[_0x2ec9ff(0x131)];return{'service':_0x3a31c9[_0x2ec9ff(0x13b)][_0x2ec9ff(0x110)],'label':_0x3a31c9[_0x2ec9ff(0x13b)][_0x2ec9ff(0x14c)]||_0x3a31c9['service'][_0x2ec9ff(0x110)],'commands':_0x3a31c9[_0x2ec9ff(0x12c)][_0x2ec9ff(0x155)](_0xa4c462=>({'command':dynamicCommandName(_0xa4c462),'description':_0xa4c462[_0x2ec9ff(0x146)]||_0x2ec9ff(0x14a)+_0xa4c462['cliPath'],'tag':riskTag(_0xa4c462[_0x2ec9ff(0x12d)])}))};});}export function getDynamicServiceEntry(_0x40a4cc){const _0x51cfdb=a62_0x16c5;return listDynamicServiceEntries()[_0x51cfdb(0x147)](_0x257d31=>_0x257d31[_0x51cfdb(0x13b)]===_0x40a4cc);}export function listDynamicServiceDefinitions(_0x154667){const _0x2b7515=a62_0x16c5;return listLocalServiceTrees()[_0x2b7515(0x121)](_0x1736a0=>!_0x154667||_0x1736a0[_0x2b7515(0x13b)]['code']===_0x154667)[_0x2b7515(0xea)](_0x2cba04=>_0x2cba04[_0x2b7515(0x12c)][_0x2b7515(0x155)](_0x549870=>buildDynamicCommandDefinition(_0x2cba04,_0x549870)));}export function getDynamicServiceDefinitions(_0x9d8a0){const _0x1a735c=a62_0x16c5,_0xc5aec3=listDynamicServiceDefinitions(_0x9d8a0);return _0xc5aec3[_0x1a735c(0x13a)]>0x0?_0xc5aec3:undefined;}export function findDynamicServiceDefinition(_0x26b995,_0x532fb5){const _0x4cf947=a62_0x16c5;return listDynamicServiceDefinitions(_0x26b995)['find'](_0x10c85b=>_0x10c85b[_0x4cf947(0x111)]===_0x532fb5);}export function buildDynamicCommandDefinition(_0x5a0bfd,_0x182ab0){const _0x4e5d71=a62_0x16c5;return{'service':_0x5a0bfd[_0x4e5d71(0x13b)][_0x4e5d71(0x110)],'command':dynamicCommandName(_0x182ab0),'description':_0x182ab0[_0x4e5d71(0x146)]||_0x4e5d71(0x14a)+_0x182ab0[_0x4e5d71(0x134)],'risk':_0x182ab0[_0x4e5d71(0x12d)],..._0x182ab0[_0x4e5d71(0x12d)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x182ab0)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x182ab0[_0x4e5d71(0x10b)][_0x4e5d71(0x155)](_0x84fb9d=>({'name':_0x84fb9d[_0x4e5d71(0x14c)],'description':_0x84fb9d[_0x4e5d71(0x146)]||_0x84fb9d[_0x4e5d71(0x14c)],'required':_0x84fb9d[_0x4e5d71(0x129)]})),'flags':_0x182ab0[_0x4e5d71(0x154)][_0x4e5d71(0x155)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x182ab0),async 'dryRun'(_0x2ba7e3){const _0xb1654=_0x4e5d71,_0x50414c=await compilePlan(_0x182ab0,_0x2ba7e3);return{'method':_0xb1654(0x139),'url':_0x182ab0[_0xb1654(0x134)],'body':{'target':targetPreview(_0x50414c),'params':_0x50414c['params']},'description':_0xb1654(0x122)+_0x182ab0[_0xb1654(0x134)]};},async 'execute'(_0xe4494a){const _0x498ff8=_0x4e5d71,_0x296f7b=await compilePlan(_0x182ab0,_0xe4494a),_0x5d355d=Date['now'](),_0x2914bb=await executePlan(_0x296f7b,_0x182ab0,_0xe4494a),_0x204d0c=Date[_0x498ff8(0x10a)]()-_0x5d355d;return{'ok':!![],'data':{'service':_0x5a0bfd['service'],'command':_0x182ab0[_0x498ff8(0x134)],'target':targetPreview(_0x296f7b),'result':_0x2914bb,'elapsed':_0x204d0c},'message':_0x498ff8(0x116)+_0x182ab0['cliPath']+_0x498ff8(0xf0)+_0x204d0c+'ms'};}};}function buildDynamicConfirmationDescription(_0x433ec4){const _0x14d06b=a62_0x16c5,_0x493877=_0x433ec4['description']||_0x433ec4[_0x14d06b(0x134)],_0x4e0ebe=_0x433ec4[_0x14d06b(0x12d)]===_0x14d06b(0xff)?_0x14d06b(0x11b):_0x14d06b(0x12f);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x493877+_0x14d06b(0xed)+_0x4e0ebe;}function a62_0x16c5(_0x2413ee,_0x267f09){_0x2413ee=_0x2413ee-0xea;const _0x47d614=a62_0x47d6();let _0x16c5cd=_0x47d614[_0x2413ee];return _0x16c5cd;}function dynamicCommandName(_0x53e233){const _0x4e4a7c=a62_0x16c5;return _0x53e233[_0x4e4a7c(0x14e)][_0x4e4a7c(0xfe)](0x1)['join']('\x20');}function riskTag(_0x372dcb){const _0x2ca0da=a62_0x16c5;return _0x372dcb===_0x2ca0da(0x120)?'':'\x20\x20['+_0x372dcb+']';}function flagToCommandFlag(_0x278bac){const _0x345989=a62_0x16c5;return{'name':_0x278bac[_0x345989(0x124)],'type':_0x278bac[_0x345989(0x113)]==='json'?_0x345989(0xee):_0x278bac[_0x345989(0x113)],'description':_0x278bac[_0x345989(0x146)]||_0x278bac['name'],'required':_0x278bac[_0x345989(0x129)],'default':isPrimitiveFlagDefault(_0x278bac[_0x345989(0xeb)])?_0x278bac[_0x345989(0xeb)]:undefined,'enum':_0x278bac[_0x345989(0x158)]};}async function compilePlan(_0x989c32,_0x36de9e){const _0x16d43c=a62_0x16c5;return compileServiceTreeCommand(_0x989c32,{'flags':_0x36de9e[_0x16d43c(0x152)],'args':_0x36de9e[_0x16d43c(0x10b)],'context':await buildServiceContext(_0x989c32,_0x36de9e)});}async function buildServiceContext(_0x2c77bc,_0x1b7b17){const _0x5e840c=a62_0x16c5,_0x8f1206={'appCode':_0x1b7b17[_0x5e840c(0x13e)],'env':_0x1b7b17[_0x5e840c(0xf1)],'envName':_0x1b7b17[_0x5e840c(0xf1)]};if(!usesRuntimeContext(_0x2c77bc))return _0x8f1206;const _0x19d184=await getLoginUserInfo(),_0x4e955d=pickFirst(_0x19d184[_0x5e840c(0x150)],_0x19d184['id']);return{..._0x8f1206,'user':_0x19d184,'userId':_0x4e955d,'id':_0x19d184['id'],'username':pickFirst(_0x19d184[_0x5e840c(0x138)],_0x19d184['userName'],_0x19d184[_0x5e840c(0x140)]),'userName':_0x19d184['userName'],'nickname':pickFirst(_0x19d184[_0x5e840c(0x10f)],_0x19d184['nickName']),'nickName':_0x19d184['nickName'],'tenantCode':_0x19d184['tenantCode'],'employeeId':_0x19d184[_0x5e840c(0xf9)]};}function usesRuntimeContext(_0x28cf31){const _0x25ed50=a62_0x16c5;return _0x28cf31['mapTo'][_0x25ed50(0x119)](_0x28dc4b=>typeof _0x28dc4b['source']===_0x25ed50(0xee)&&(_0x28dc4b['source'][_0x25ed50(0xf7)]('context.')||_0x28dc4b[_0x25ed50(0x12b)][_0x25ed50(0xf7)](_0x25ed50(0x149))));}function pickFirst(..._0x2cbe4f){return _0x2cbe4f['find'](_0x37a27a=>_0x37a27a!==undefined&&_0x37a27a!==null);}async function executePlan(_0x2095a1,_0x10e8dc,_0x179268){const _0x54ed49=a62_0x16c5;if(_0x2095a1[_0x54ed49(0x125)]===_0x54ed49(0x11f)){const _0x2ece2b=await resolveDatasetCode(_0x2095a1,_0x10e8dc,_0x179268);return executeData(_0x2ece2b,_0x2095a1['command'],_0x2095a1[_0x54ed49(0xfa)]);}if(_0x2095a1['kind']===_0x54ed49(0x13c)){if(!_0x2095a1[_0x54ed49(0x11e)])throw CliErrors[_0x54ed49(0x13d)]('Service\x20command\x20'+_0x10e8dc[_0x54ed49(0x134)]+_0x54ed49(0x14f));return executeSdkSql(_0x2095a1[_0x54ed49(0x11e)],normalizeScalarParams(_0x2095a1['params']));}if(_0x2095a1[_0x54ed49(0x125)]===_0x54ed49(0xfd)){const _0x1f8ac5=_0x2095a1[_0x54ed49(0x118)]||_0x2095a1[_0x54ed49(0x117)]||(_0x2095a1['bffId']==null?'':String(_0x2095a1[_0x54ed49(0xf3)]));if(!_0x1f8ac5)throw CliErrors[_0x54ed49(0x13d)](_0x54ed49(0x116)+_0x10e8dc[_0x54ed49(0x134)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x1f8ac5,_0x2095a1['params']);}throw CliErrors[_0x54ed49(0x13d)](_0x54ed49(0x135)+_0x2095a1['kind']);}async function resolveDatasetCode(_0x3752f7,_0x2a6a48,_0x11862c){const _0x263030=a62_0x16c5;if(_0x3752f7[_0x263030(0x109)])return _0x3752f7[_0x263030(0x109)];if(!_0x3752f7[_0x263030(0x132)])throw CliErrors[_0x263030(0x13d)](_0x263030(0x116)+_0x2a6a48[_0x263030(0x134)]+_0x263030(0x156));const _0x5ae24b=await listDatasets(_0x11862c['appCode']),_0x362160=_0x5ae24b[_0x263030(0x147)](_0x53c766=>_0x53c766[_0x263030(0xf8)]?.[_0x263030(0x115)]===_0x3752f7['datatable']);if(!_0x362160?.[_0x263030(0x110)])throw CliErrors[_0x263030(0x13d)](_0x263030(0x105)+_0x3752f7[_0x263030(0x132)]+_0x263030(0x107)+_0x11862c['appCode']+'.',_0x263030(0x10d));return _0x362160[_0x263030(0x110)];}function applyAppBinding(_0x64c03,_0x445733,_0x740f9){const _0x5830b4=a62_0x16c5,_0x1617cb=_0x445733[_0x5830b4(0x126)][_0x5830b4(0xf2)];if(!_0x1617cb)return;const _0x5a284f=_0x64c03[_0x5830b4(0xf6)][_0x1617cb];if(!_0x5a284f)throw CliErrors['validation'](_0x5830b4(0x114)+_0x1617cb+_0x5830b4(0x11c)+_0x445733[_0x5830b4(0x134)]+'.',_0x5830b4(0x14d));const _0x2f1db6=_0x5a284f['appcode']||_0x5a284f[_0x5830b4(0x13e)];_0x2f1db6&&!hasText(_0x740f9[_0x5830b4(0x10c)])&&(_0x740f9[_0x5830b4(0x10c)]=_0x2f1db6),_0x5a284f[_0x5830b4(0x153)]&&!hasText(_0x740f9[_0x5830b4(0x153)])&&!hasText(_0x740f9[_0x5830b4(0x10c)])&&(_0x740f9[_0x5830b4(0x153)]=_0x5a284f[_0x5830b4(0x153)]),_0x5a284f[_0x5830b4(0xf5)]&&!hasText(_0x740f9[_0x5830b4(0xf5)])&&(_0x740f9[_0x5830b4(0xf5)]=_0x5a284f['env']);}function renderDynamicCommandHelp(_0x3b5962){const _0x55578c=a62_0x16c5,_0x32cb5c=[_0x55578c(0xf4),_0x55578c(0x12a)+_0x3b5962['target'][_0x55578c(0x125)],_0x55578c(0x130)+_0x3b5962[_0x55578c(0x126)]['command']];if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x109)])_0x32cb5c[_0x55578c(0x128)](_0x55578c(0x157)+_0x3b5962[_0x55578c(0x126)]['datasetCode']);if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x132)])_0x32cb5c[_0x55578c(0x128)]('\x20\x20\x20\x20datatable:\x20'+_0x3b5962[_0x55578c(0x126)]['datatable']);if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x11e)])_0x32cb5c[_0x55578c(0x128)]('\x20\x20\x20\x20sqlCode:\x20'+_0x3b5962['target'][_0x55578c(0x11e)]);if(_0x3b5962[_0x55578c(0x126)][_0x55578c(0x118)])_0x32cb5c[_0x55578c(0x128)](_0x55578c(0x10e)+_0x3b5962[_0x55578c(0x126)]['scriptName']);if(_0x3b5962[_0x55578c(0x142)]['length']>0x0){_0x32cb5c[_0x55578c(0x128)]('','\x20\x20MAP\x20TO');for(const _0x3d3076 of _0x3b5962['mapTo']){_0x32cb5c['push'](_0x55578c(0xfb)+(_0x3d3076[_0x55578c(0x12b)]||_0x55578c(0x108))+_0x55578c(0x144)+_0x3d3076[_0x55578c(0x126)]+(_0x3d3076[_0x55578c(0xfc)]?'.'+_0x3d3076['operator']:''));}}return _0x32cb5c['join']('\x0a');}function targetPreview(_0x3ded1c){const _0x13cbdc=a62_0x16c5;return{'kind':_0x3ded1c[_0x13cbdc(0x125)],'command':_0x3ded1c[_0x13cbdc(0x111)],'appRef':_0x3ded1c[_0x13cbdc(0xf2)],'datasetCode':_0x3ded1c[_0x13cbdc(0x109)],'datatable':_0x3ded1c[_0x13cbdc(0x132)],'sqlCode':_0x3ded1c[_0x13cbdc(0x11e)],'bffCode':_0x3ded1c[_0x13cbdc(0x117)],'bffId':_0x3ded1c[_0x13cbdc(0xf3)],'functionName':_0x3ded1c[_0x13cbdc(0x118)]};}function normalizeScalarParams(_0x561edd){const _0x2fc85d=a62_0x16c5;return Object[_0x2fc85d(0x104)](Object[_0x2fc85d(0x151)](_0x561edd)[_0x2fc85d(0x121)](([,_0x5ad509])=>typeof _0x5ad509===_0x2fc85d(0xee)||typeof _0x5ad509===_0x2fc85d(0x133)));}function hasText(_0x441052){const _0x83e7bd=a62_0x16c5;return typeof _0x441052===_0x83e7bd(0xee)&&_0x441052[_0x83e7bd(0x14b)]()[_0x83e7bd(0x13a)]>0x0;}function isPrimitiveFlagDefault(_0x103d48){const _0x3370d8=a62_0x16c5;return _0x103d48===undefined||typeof _0x103d48===_0x3370d8(0xee)||typeof _0x103d48===_0x3370d8(0x133)||typeof _0x103d48===_0x3370d8(0x141);}
@@ -1 +1 @@
1
- function a63_0x5d5c(){const _0x5ae36c=['90tYSige','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','map','7449448bRPoMn','266710peEBYo','kind','object','isArray','resources','51786niiOwG','commands','5536032RwMMwG','hasOwnProperty','.scriptName','301rbZsCC','bff','.actions.','.target','functionName','681495IoQYCR','1304090ReMyRR','target','767619QbnbKp','scriptName','$.commands[','error','entries','12ddGRsb','forEach','trim','bff.exec','.resources','call','push','string','action'];a63_0x5d5c=function(){return _0x5ae36c;};return a63_0x5d5c();}(function(_0x4a260a,_0x34b864){const _0x50ff22=a63_0x1b18,_0x3fbb6a=_0x4a260a();while(!![]){try{const _0x585880=-parseInt(_0x50ff22(0x18b))/0x1*(parseInt(_0x50ff22(0x198))/0x2)+parseInt(_0x50ff22(0x183))/0x3+parseInt(_0x50ff22(0x17b))/0x4+parseInt(_0x50ff22(0x184))/0x5+-parseInt(_0x50ff22(0x179))/0x6*(-parseInt(_0x50ff22(0x17e))/0x7)+parseInt(_0x50ff22(0x197))/0x8+parseInt(_0x50ff22(0x186))/0x9*(-parseInt(_0x50ff22(0x194))/0xa);if(_0x585880===_0x34b864)break;else _0x3fbb6a['push'](_0x3fbb6a['shift']());}catch(_0x3b79b4){_0x3fbb6a['push'](_0x3fbb6a['shift']());}}}(a63_0x5d5c,0xc4e1a));function a63_0x1b18(_0x266618,_0x26138f){_0x266618=_0x266618-0x175;const _0x5d5c32=a63_0x5d5c();let _0x1b18dc=_0x5d5c32[_0x266618];return _0x1b18dc;}export function adaptServiceTreeManifestForLegacyFramework(_0x5352bd){const _0x27199b=a63_0x1b18,_0x55bbe7=cloneJsonValue(_0x5352bd),_0x1bda7e=[];if(!isObjectRecord(_0x55bbe7))return{'manifest':_0x55bbe7,'errors':_0x1bda7e};return Array[_0x27199b(0x177)](_0x55bbe7[_0x27199b(0x17a)])&&_0x55bbe7['commands'][_0x27199b(0x18c)]((_0x26c49c,_0x3c9e2e)=>{const _0x1d60f3=_0x27199b;if(!isObjectRecord(_0x26c49c))return;adaptBffTarget(_0x26c49c[_0x1d60f3(0x185)],_0x1d60f3(0x188)+_0x3c9e2e+'].target',_0x1bda7e);}),adaptResources(_0x55bbe7[_0x27199b(0x178)],'$.resources',_0x1bda7e),{'manifest':_0x55bbe7,'errors':_0x1bda7e};}export function toPublicServiceTreeTarget(_0x47bf3d){const _0x15aaf8=a63_0x1b18,{scriptName:_0x4b8098,..._0x36566a}=_0x47bf3d;return typeof _0x4b8098===_0x15aaf8(0x192)&&_0x4b8098[_0x15aaf8(0x18d)]()&&(_0x36566a['functionName']=_0x4b8098),_0x36566a;}export function toPublicNormalizedServiceTree(_0x685f7d){const _0x5833a4=a63_0x1b18;return{..._0x685f7d,'commands':_0x685f7d[_0x5833a4(0x17a)][_0x5833a4(0x196)](_0x11c92c=>({..._0x11c92c,'target':toPublicServiceTreeTarget(_0x11c92c['target'])}))};}function adaptResources(_0x3a0e17,_0x3a25b0,_0x4c88ff){const _0x2ad638=a63_0x1b18;if(!isObjectRecord(_0x3a0e17))return;for(const [_0xa8723a,_0x1aa0e4]of Object['entries'](_0x3a0e17)){if(!isObjectRecord(_0x1aa0e4))continue;const _0xa6df2f=_0x3a25b0+'.'+_0xa8723a;if(isObjectRecord(_0x1aa0e4['actions']))for(const [_0x2626fd,_0xfb51ab]of Object[_0x2ad638(0x18a)](_0x1aa0e4['actions'])){if(!isObjectRecord(_0xfb51ab))continue;const _0xce68e5=_0xa6df2f+_0x2ad638(0x180)+_0x2626fd,_0x6be425=isObjectRecord(_0xfb51ab['target'])&&_0xfb51ab['target'][_0x2ad638(0x175)]===_0x2ad638(0x17f);adaptBffTarget(_0xfb51ab['target'],_0xce68e5+_0x2ad638(0x181),_0x4c88ff),(_0x6be425||isBffAction(_0xfb51ab))&&adaptFunctionNameField(_0xfb51ab,_0xce68e5,_0x4c88ff);}adaptResources(_0x1aa0e4['resources'],_0xa6df2f+_0x2ad638(0x18f),_0x4c88ff);}}function adaptBffTarget(_0x5d6d07,_0x4af2a1,_0x2b0f9c){const _0x4924a8=a63_0x1b18;if(!isObjectRecord(_0x5d6d07)||_0x5d6d07[_0x4924a8(0x175)]!==_0x4924a8(0x17f))return;adaptFunctionNameField(_0x5d6d07,_0x4af2a1,_0x2b0f9c);}function adaptFunctionNameField(_0x2d6d82,_0x531b84,_0x177ec5){const _0xf7e0c9=a63_0x1b18;Object['prototype'][_0xf7e0c9(0x17c)][_0xf7e0c9(0x190)](_0x2d6d82,_0xf7e0c9(0x187))&&_0x177ec5[_0xf7e0c9(0x191)]({'level':'error','path':_0x531b84+_0xf7e0c9(0x17d),'message':_0xf7e0c9(0x195)});if(Object['prototype'][_0xf7e0c9(0x17c)][_0xf7e0c9(0x190)](_0x2d6d82,'functionName')){if(typeof _0x2d6d82[_0xf7e0c9(0x182)]!=='string'||!_0x2d6d82[_0xf7e0c9(0x182)][_0xf7e0c9(0x18d)]()){_0x177ec5['push']({'level':_0xf7e0c9(0x189),'path':_0x531b84+'.functionName','message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x2d6d82[_0xf7e0c9(0x182)];return;}_0x2d6d82[_0xf7e0c9(0x187)]=_0x2d6d82[_0xf7e0c9(0x182)],delete _0x2d6d82['functionName'];}}function isBffAction(_0x514998){const _0x1338e8=a63_0x1b18;return _0x514998[_0x1338e8(0x175)]==='bff'||_0x514998[_0x1338e8(0x193)]===_0x1338e8(0x18e)||_0x514998[_0x1338e8(0x185)]===_0x1338e8(0x18e);}function cloneJsonValue(_0x5c482b){const _0x143cb3=a63_0x1b18;if(Array[_0x143cb3(0x177)](_0x5c482b))return _0x5c482b[_0x143cb3(0x196)](_0x4a66df=>cloneJsonValue(_0x4a66df));if(isObjectRecord(_0x5c482b))return Object['fromEntries'](Object[_0x143cb3(0x18a)](_0x5c482b)['map'](([_0x2cf3dc,_0x5d62ec])=>[_0x2cf3dc,cloneJsonValue(_0x5d62ec)]));return _0x5c482b;}function isObjectRecord(_0x321be8){const _0x21fefa=a63_0x1b18;return Boolean(_0x321be8)&&typeof _0x321be8===_0x21fefa(0x176)&&!Array[_0x21fefa(0x177)](_0x321be8);}
1
+ (function(_0x3370d0,_0x514a34){const _0x3ec8ce=a63_0x2401,_0x224b9a=_0x3370d0();while(!![]){try{const _0x246baf=parseInt(_0x3ec8ce(0x19f))/0x1*(-parseInt(_0x3ec8ce(0x1a1))/0x2)+-parseInt(_0x3ec8ce(0x1ae))/0x3*(-parseInt(_0x3ec8ce(0x19a))/0x4)+parseInt(_0x3ec8ce(0x19b))/0x5*(parseInt(_0x3ec8ce(0x1a4))/0x6)+parseInt(_0x3ec8ce(0x1b1))/0x7*(parseInt(_0x3ec8ce(0x1ab))/0x8)+parseInt(_0x3ec8ce(0x1b6))/0x9*(-parseInt(_0x3ec8ce(0x1a2))/0xa)+parseInt(_0x3ec8ce(0x1ac))/0xb*(-parseInt(_0x3ec8ce(0x1b9))/0xc)+parseInt(_0x3ec8ce(0x1a3))/0xd*(parseInt(_0x3ec8ce(0x1aa))/0xe);if(_0x246baf===_0x514a34)break;else _0x224b9a['push'](_0x224b9a['shift']());}catch(_0x3e8cfc){_0x224b9a['push'](_0x224b9a['shift']());}}}(a63_0x29b7,0x7dbea));export function adaptServiceTreeManifestForLegacyFramework(_0x275b10){const _0x565a9c=a63_0x2401,_0x1744d3=cloneJsonValue(_0x275b10),_0x3f5e4e=[];if(!isObjectRecord(_0x1744d3))return{'manifest':_0x1744d3,'errors':_0x3f5e4e};return Array[_0x565a9c(0x194)](_0x1744d3[_0x565a9c(0x1b0)])&&_0x1744d3[_0x565a9c(0x1b0)][_0x565a9c(0x1b2)]((_0x394859,_0x506c01)=>{const _0x33875d=_0x565a9c;if(!isObjectRecord(_0x394859))return;adaptBffTarget(_0x394859[_0x33875d(0x1ad)],'$.commands['+_0x506c01+'].target',_0x3f5e4e);}),adaptResources(_0x1744d3[_0x565a9c(0x1b5)],_0x565a9c(0x19e),_0x3f5e4e),{'manifest':_0x1744d3,'errors':_0x3f5e4e};}export function toPublicServiceTreeTarget(_0x3d959e){const _0x4ecb83=a63_0x2401,{scriptName:_0x1309e4,..._0x502d0a}=_0x3d959e;return typeof _0x1309e4===_0x4ecb83(0x198)&&_0x1309e4[_0x4ecb83(0x1b8)]()&&(_0x502d0a[_0x4ecb83(0x1b4)]=_0x1309e4),_0x502d0a;}export function toPublicNormalizedServiceTree(_0x2f9aa5){const _0x4f58a3=a63_0x2401;return{..._0x2f9aa5,'commands':_0x2f9aa5[_0x4f58a3(0x1b0)][_0x4f58a3(0x1b7)](_0x12884d=>({..._0x12884d,'target':toPublicServiceTreeTarget(_0x12884d[_0x4f58a3(0x1ad)])}))};}function adaptResources(_0x1e0877,_0x2c17ff,_0x5ea6b7){const _0x470324=a63_0x2401;if(!isObjectRecord(_0x1e0877))return;for(const [_0x3dffb4,_0x54a128]of Object[_0x470324(0x1a9)](_0x1e0877)){if(!isObjectRecord(_0x54a128))continue;const _0x369ff9=_0x2c17ff+'.'+_0x3dffb4;if(isObjectRecord(_0x54a128[_0x470324(0x193)]))for(const [_0x1abf46,_0x473365]of Object[_0x470324(0x1a9)](_0x54a128[_0x470324(0x193)])){if(!isObjectRecord(_0x473365))continue;const _0x4cc153=_0x369ff9+'.actions.'+_0x1abf46,_0x500282=isObjectRecord(_0x473365[_0x470324(0x1ad)])&&_0x473365[_0x470324(0x1ad)]['kind']===_0x470324(0x1b3);adaptBffTarget(_0x473365[_0x470324(0x1ad)],_0x4cc153+_0x470324(0x199),_0x5ea6b7),(_0x500282||isBffAction(_0x473365))&&adaptFunctionNameField(_0x473365,_0x4cc153,_0x5ea6b7);}adaptResources(_0x54a128[_0x470324(0x1b5)],_0x369ff9+'.resources',_0x5ea6b7);}}function adaptBffTarget(_0x47f4c9,_0x4e8e6d,_0x43ddd0){const _0x19fa0e=a63_0x2401;if(!isObjectRecord(_0x47f4c9)||_0x47f4c9[_0x19fa0e(0x1a5)]!=='bff')return;adaptFunctionNameField(_0x47f4c9,_0x4e8e6d,_0x43ddd0);}function a63_0x29b7(){const _0x4aa942=['map','trim','24xFprvH','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','.scriptName','.functionName','actions','isArray','prototype','fromEntries','object','string','.target','4qikeJk','269655talGac','call','bff.exec','$.resources','1vCHeft','scriptName','672542aMABvd','1510wgMlFk','26ILKaKs','6pcXiGM','kind','error','functionName\x20must\x20be\x20a\x20non-empty\x20string.','hasOwnProperty','entries','7311892Eohigf','935824uzOreO','1781428XFeUtt','target','1712829WHdNNE','push','commands','21SrElXS','forEach','bff','functionName','resources','50373iFQaoS'];a63_0x29b7=function(){return _0x4aa942;};return a63_0x29b7();}function adaptFunctionNameField(_0x113c46,_0x297784,_0x31977a){const _0x293bb7=a63_0x2401;Object[_0x293bb7(0x195)][_0x293bb7(0x1a8)][_0x293bb7(0x19c)](_0x113c46,_0x293bb7(0x1a0))&&_0x31977a[_0x293bb7(0x1af)]({'level':'error','path':_0x297784+_0x293bb7(0x191),'message':_0x293bb7(0x190)});if(Object[_0x293bb7(0x195)][_0x293bb7(0x1a8)]['call'](_0x113c46,'functionName')){if(typeof _0x113c46[_0x293bb7(0x1b4)]!==_0x293bb7(0x198)||!_0x113c46[_0x293bb7(0x1b4)][_0x293bb7(0x1b8)]()){_0x31977a['push']({'level':_0x293bb7(0x1a6),'path':_0x297784+_0x293bb7(0x192),'message':_0x293bb7(0x1a7)}),delete _0x113c46['functionName'];return;}_0x113c46[_0x293bb7(0x1a0)]=_0x113c46['functionName'],delete _0x113c46[_0x293bb7(0x1b4)];}}function isBffAction(_0x1fd643){const _0x56e96e=a63_0x2401;return _0x1fd643[_0x56e96e(0x1a5)]==='bff'||_0x1fd643['action']===_0x56e96e(0x19d)||_0x1fd643[_0x56e96e(0x1ad)]===_0x56e96e(0x19d);}function cloneJsonValue(_0x1b2ff8){const _0x1a277f=a63_0x2401;if(Array['isArray'](_0x1b2ff8))return _0x1b2ff8[_0x1a277f(0x1b7)](_0x3c3c5a=>cloneJsonValue(_0x3c3c5a));if(isObjectRecord(_0x1b2ff8))return Object[_0x1a277f(0x196)](Object['entries'](_0x1b2ff8)['map'](([_0x434018,_0x556798])=>[_0x434018,cloneJsonValue(_0x556798)]));return _0x1b2ff8;}function a63_0x2401(_0x87905c,_0x38855e){_0x87905c=_0x87905c-0x190;const _0x29b7b1=a63_0x29b7();let _0x2401f7=_0x29b7b1[_0x87905c];return _0x2401f7;}function isObjectRecord(_0x1c4a42){const _0x1f30ae=a63_0x2401;return Boolean(_0x1c4a42)&&typeof _0x1c4a42===_0x1f30ae(0x197)&&!Array[_0x1f30ae(0x194)](_0x1c4a42);}
@@ -1 +1 @@
1
- function a64_0x3b44(_0x21394b,_0x2dd800){_0x21394b=_0x21394b-0xd5;const _0x243df0=a64_0x243d();let _0x3b443f=_0x243df0[_0x21394b];return _0x3b443f;}const a64_0x23d976=a64_0x3b44;(function(_0x58e919,_0x248cc9){const _0x365376=a64_0x3b44,_0x461cbd=_0x58e919();while(!![]){try{const _0x341f83=-parseInt(_0x365376(0x111))/0x1*(-parseInt(_0x365376(0xd8))/0x2)+-parseInt(_0x365376(0xdf))/0x3+-parseInt(_0x365376(0x10d))/0x4+-parseInt(_0x365376(0xd7))/0x5*(parseInt(_0x365376(0xf8))/0x6)+parseInt(_0x365376(0xe0))/0x7+-parseInt(_0x365376(0x117))/0x8*(-parseInt(_0x365376(0xfa))/0x9)+-parseInt(_0x365376(0xf3))/0xa;if(_0x341f83===_0x248cc9)break;else _0x461cbd['push'](_0x461cbd['shift']());}catch(_0x4c1198){_0x461cbd['push'](_0x461cbd['shift']());}}}(a64_0x243d,0x6e087));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a64_0x243d(){const _0xf0b9ee=['76734vtkCPA','source','string','write','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Local\x20service\x20not\x20found:\x20','map','registryPath','Removed\x20service\x20','Updated','serviceCount','remove','name','updated','hash','import','target','imported','1991068EGdEiV','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','version','16846rEWcCG','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','str','Local\x20service\x20code,\x20for\x20example\x20crm','service','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','776gMKGMw','kind','normalizedManifest','cliPath','length','list','flags','Service\x20manifest\x20validation\x20passed.','importedAt','5IHSaBz','106FcITpA','Imported','Service\x20Tree\x20manifest\x20file\x20path','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','serviceCode','\x20service\x20','manifest','726861KypPbt','2712549BnrZzy','manifests','WRITE','risk','filePath','cliName','registry','reduce','\x20service(s).','report','replaced','description','validate','lower\x20kebab-case\x20service\x20code','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','commands','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','file','errors','2877350rjcUvP','entry','registryIndex','warnings','export','3773298CYwzOJ','read'];a64_0x243d=function(){return _0xf0b9ee;};return a64_0x243d();}const FILE_FLAG={'name':'file','type':a64_0x23d976(0xfc),'required':!![],'description':a64_0x23d976(0xda)},SERVICE_FLAG={'name':a64_0x23d976(0x115),'type':a64_0x23d976(0xfc),'required':!![],'description':a64_0x23d976(0x114),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x23d976(0xed)}};function summarizeService(_0x2a6193){const _0x4df913=a64_0x23d976;return{'serviceCode':_0x2a6193['serviceCode'],'name':_0x2a6193[_0x4df913(0x119)][_0x4df913(0x115)][_0x4df913(0x107)],'version':_0x2a6193[_0x4df913(0x110)],'importedAt':_0x2a6193[_0x4df913(0xd6)],'source':_0x2a6193[_0x4df913(0xfb)],'commandCount':_0x2a6193[_0x4df913(0x119)]['commands'][_0x4df913(0x11b)],'commands':_0x2a6193[_0x4df913(0x119)][_0x4df913(0xef)][_0x4df913(0x101)](_0xfcd507=>({'path':_0xfcd507[_0x4df913(0x11a)],'description':_0xfcd507[_0x4df913(0xeb)],'risk':_0xfcd507['risk'],'target':toPublicServiceTreeTarget(_0xfcd507[_0x4df913(0x10b)]),'flags':_0xfcd507[_0x4df913(0x11d)][_0x4df913(0x101)](_0x34c32c=>({'name':_0x34c32c[_0x4df913(0x107)],'cliName':_0x34c32c[_0x4df913(0xe5)],'type':_0x34c32c['type'],'required':_0x34c32c['required']===!![]}))}))};}function summarizeLoadedManifest(_0x5a29ff){const _0x59eabf=a64_0x23d976;return{'service':_0x5a29ff[_0x59eabf(0x119)]?.[_0x59eabf(0x115)],'version':_0x5a29ff['normalizedManifest']?.[_0x59eabf(0x110)],'commandCount':_0x5a29ff[_0x59eabf(0x119)]?.[_0x59eabf(0xef)][_0x59eabf(0x11b)]??0x0,'commands':_0x5a29ff[_0x59eabf(0x119)]?.[_0x59eabf(0xef)][_0x59eabf(0x101)](_0x5479ce=>({'path':_0x5479ce[_0x59eabf(0x11a)],'risk':_0x5479ce[_0x59eabf(0xe3)],'target':toPublicServiceTreeTarget(_0x5479ce[_0x59eabf(0x10b)])}))??[],'registryIndex':_0x5a29ff[_0x59eabf(0xf5)],'registryServiceCode':_0x5a29ff['registryServiceCode'],'errors':_0x5a29ff['report'][_0x59eabf(0xf2)],'warnings':_0x5a29ff[_0x59eabf(0xe9)][_0x59eabf(0xf6)]};}export const serviceDefinitions=[{'service':a64_0x23d976(0x115),'command':a64_0x23d976(0xec),'description':a64_0x23d976(0x10f),'risk':a64_0x23d976(0xf9),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xe0062e){const _0xcd4ed6=a64_0x23d976,_0x3f8f0f=loadServiceManifestFromFile(_0xe0062e[_0xcd4ed6(0x113)](_0xcd4ed6(0xf1)));if(!_0x3f8f0f[_0xcd4ed6(0xe9)]['ok'])return{'ok':![],'data':{'file':_0x3f8f0f[_0xcd4ed6(0xe4)],'hash':_0x3f8f0f[_0xcd4ed6(0x109)],'kind':_0x3f8f0f[_0xcd4ed6(0x118)],'serviceCount':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0x11b)],'services':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0x101)](summarizeLoadedManifest),'errors':_0x3f8f0f['report']['errors'],'warnings':_0x3f8f0f[_0xcd4ed6(0xe9)]['warnings']},'message':formatValidationFailure(_0x3f8f0f[_0xcd4ed6(0xe9)])};if(_0x3f8f0f[_0xcd4ed6(0x118)]===_0xcd4ed6(0xe6)||_0x3f8f0f['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x3f8f0f[_0xcd4ed6(0xe4)],'hash':_0x3f8f0f[_0xcd4ed6(0x109)],'kind':_0x3f8f0f[_0xcd4ed6(0x118)],'serviceCount':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0x11b)],'commandCount':_0x3f8f0f[_0xcd4ed6(0xe1)][_0xcd4ed6(0xe7)]((_0x408102,_0x393c80)=>_0x408102+(_0x393c80[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0xef)][_0xcd4ed6(0x11b)]??0x0),0x0),'services':_0x3f8f0f[_0xcd4ed6(0xe1)]['map'](summarizeLoadedManifest),'warnings':_0x3f8f0f[_0xcd4ed6(0xe9)][_0xcd4ed6(0xf6)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x3f8f0f[_0xcd4ed6(0xe4)],'hash':_0x3f8f0f[_0xcd4ed6(0x109)],'kind':_0x3f8f0f[_0xcd4ed6(0x118)],'service':_0x3f8f0f[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0x115)],'version':_0x3f8f0f['normalizedManifest']?.['version'],'commandCount':_0x3f8f0f[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0xef)][_0xcd4ed6(0x11b)]??0x0,'commands':_0x3f8f0f[_0xcd4ed6(0x119)]?.[_0xcd4ed6(0xef)][_0xcd4ed6(0x101)](_0x4022c3=>({'path':_0x4022c3[_0xcd4ed6(0x11a)],'risk':_0x4022c3[_0xcd4ed6(0xe3)],'target':toPublicServiceTreeTarget(_0x4022c3['target'])})),'warnings':_0x3f8f0f[_0xcd4ed6(0xe9)][_0xcd4ed6(0xf6)]},'message':_0xcd4ed6(0xd5)};}},{'service':'service','command':a64_0x23d976(0x10a),'description':a64_0x23d976(0xff),'risk':a64_0x23d976(0xfd),'confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x58efa6){const _0x2d7dbb=a64_0x23d976,_0x36392e=loadServiceManifestFromFile(_0x58efa6[_0x2d7dbb(0x113)](_0x2d7dbb(0xf1)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x36392e[_0x2d7dbb(0xe4)],'hash':_0x36392e[_0x2d7dbb(0x109)],'kind':_0x36392e[_0x2d7dbb(0x118)],'ok':_0x36392e[_0x2d7dbb(0xe9)]['ok'],'service':_0x36392e[_0x2d7dbb(0x119)]?.[_0x2d7dbb(0x115)],'version':_0x36392e[_0x2d7dbb(0x119)]?.[_0x2d7dbb(0x110)],'serviceCount':_0x36392e['manifests'][_0x2d7dbb(0x11b)],'services':_0x36392e[_0x2d7dbb(0xe1)]['map'](_0x550bcd=>({'service':_0x550bcd['normalizedManifest']?.[_0x2d7dbb(0x115)],'version':_0x550bcd[_0x2d7dbb(0x119)]?.['version'],'commandCount':_0x550bcd[_0x2d7dbb(0x119)]?.['commands'][_0x2d7dbb(0x11b)]??0x0,'errors':_0x550bcd[_0x2d7dbb(0xe9)][_0x2d7dbb(0xf2)]})),'errors':_0x36392e[_0x2d7dbb(0xe9)][_0x2d7dbb(0xf2)],'commandCount':_0x36392e[_0x2d7dbb(0x119)]?.['commands'][_0x2d7dbb(0x11b)]??0x0},'description':_0x2d7dbb(0xfe)};},async 'execute'(_0x1fdea4){const _0x47e795=a64_0x23d976,_0x1c3bee=importServiceManifest(_0x1fdea4[_0x47e795(0x113)](_0x47e795(0xf1)));if(_0x1c3bee['entries'][_0x47e795(0x11b)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1c3bee[_0x47e795(0x102)],'imported':_0x1c3bee[_0x47e795(0x10c)],'updated':_0x1c3bee['updated'],'serviceCount':_0x1c3bee['serviceCount'],'services':_0x1c3bee['entries'][_0x47e795(0x101)](summarizeService)},'message':'Imported\x20'+_0x1c3bee[_0x47e795(0x10c)]+'\x20service(s),\x20updated\x20'+_0x1c3bee[_0x47e795(0x108)]+_0x47e795(0xe8)};return{'ok':!![],'data':{'registryPath':_0x1c3bee['registryPath'],'replaced':_0x1c3bee[_0x47e795(0xea)],'imported':_0x1c3bee[_0x47e795(0x10c)],'updated':_0x1c3bee['updated'],'serviceCount':_0x1c3bee[_0x47e795(0x105)],'service':summarizeService(_0x1c3bee[_0x47e795(0xf4)])},'message':(_0x1c3bee['replaced']?_0x47e795(0x104):_0x47e795(0xd9))+_0x47e795(0xdd)+_0x1c3bee['entry'][_0x47e795(0xdc)]+'.'};}},{'service':'service','command':a64_0x23d976(0xf7),'description':a64_0x23d976(0x10e),'risk':a64_0x23d976(0xfd),'confirmationDescription':a64_0x23d976(0x116),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x2908f5){const _0x5e1197=a64_0x23d976,_0x1c7162=getLocalServiceEntry(_0x2908f5['str'](_0x5e1197(0x115)));return{'method':_0x5e1197(0xe2),'url':_0x2908f5[_0x5e1197(0x113)](_0x5e1197(0xf1)),'body':{'service':_0x2908f5['str'](_0x5e1197(0x115)),'found':Boolean(_0x1c7162),'version':_0x1c7162?.[_0x5e1197(0x110)],'source':_0x1c7162?.[_0x5e1197(0xfb)]},'description':_0x5e1197(0xf0)};},async 'execute'(_0x310e20){const _0x2edf73=a64_0x23d976,_0x5893f6=exportServiceManifest(_0x310e20[_0x2edf73(0x113)]('service'),_0x310e20[_0x2edf73(0x113)](_0x2edf73(0xf1)));return{'ok':!![],'data':{'registryPath':_0x5893f6[_0x2edf73(0x102)],'file':_0x5893f6[_0x2edf73(0xe4)],'service':summarizeService(_0x5893f6[_0x2edf73(0xf4)])},'message':'Exported\x20service\x20'+_0x5893f6[_0x2edf73(0xf4)][_0x2edf73(0xdc)]+'.'};}},{'service':a64_0x23d976(0x115),'command':a64_0x23d976(0x11c),'description':a64_0x23d976(0xee),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xeab832=a64_0x23d976,_0x45b1b3=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x45b1b3['length'],'services':_0x45b1b3[_0xeab832(0x101)](summarizeService)}};}},{'service':a64_0x23d976(0x115),'command':a64_0x23d976(0x106),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a64_0x23d976(0xfd),'confirmationDescription':a64_0x23d976(0x112),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x181bd7){const _0x53f0cb=a64_0x23d976,_0x32db55=getLocalServiceEntry(_0x181bd7[_0x53f0cb(0x113)](_0x53f0cb(0x115)));return{'method':_0x53f0cb(0xe2),'url':getServiceRegistryPath(),'body':{'service':_0x181bd7[_0x53f0cb(0x113)]('service'),'found':Boolean(_0x32db55),'version':_0x32db55?.[_0x53f0cb(0x110)],'source':_0x32db55?.[_0x53f0cb(0xfb)]},'description':_0x53f0cb(0xdb)};},async 'execute'(_0x11820a){const _0x4861c9=a64_0x23d976,_0x43e3c=removeServiceManifest(_0x11820a['str']('service'));return{'ok':!![],'data':{'registryPath':_0x43e3c[_0x4861c9(0x102)],'serviceCount':_0x43e3c['serviceCount'],'service':summarizeService(_0x43e3c[_0x4861c9(0xf4)])},'message':_0x4861c9(0x103)+_0x43e3c[_0x4861c9(0xf4)][_0x4861c9(0xdc)]+'.'};}},{'service':a64_0x23d976(0x115),'command':'detail','description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a64_0x23d976(0xf9),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xb54223){const _0x345ebc=a64_0x23d976,_0x500ee8=getLocalServiceEntry(_0xb54223['str'](_0x345ebc(0x115)));if(!_0x500ee8)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xb54223[_0x345ebc(0x113)](_0x345ebc(0x115))},'message':_0x345ebc(0x100)+_0xb54223[_0x345ebc(0x113)](_0x345ebc(0x115))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x500ee8),'manifest':_0x500ee8[_0x345ebc(0xde)],'normalizedManifest':toPublicNormalizedServiceTree(_0x500ee8['normalizedManifest'])}};}}];
1
+ const a64_0x40d86e=a64_0x33a1;function a64_0x2a9b(){const _0x5c51eb=['2690024sPsGAM','target','9BHzSuX','warnings','normalizedManifest','450960PJCVVm','validate','cliName','manifests','commands','registryPath','Service\x20Tree\x20manifest\x20file\x20path','1116297GnVpex','Imported','\x20service(s),\x20updated\x20','remove','hash','type','Removed\x20service\x20','Service\x20manifest\x20validation\x20passed.','serviceCount','importedAt','length','flags','filePath','updated','read','reduce','Imported\x20','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','1335172gplSdY','Exported\x20service\x20','20gOSLIR','78878pVggoA','WRITE','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','str','write','service','Local\x20service\x20code,\x20for\x20example\x20crm','report','map','18CRwzXt','kind','\x20service\x20','883746GKWeAd','1491060ewZHsF','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','\x20service(s).','Local\x20service\x20not\x20found:\x20','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','detail','imported','description','lower\x20kebab-case\x20service\x20code','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','manifest','replaced','risk','required','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','export','errors','serviceCode','entries','string','file','source','name','version','cliPath','entry'];a64_0x2a9b=function(){return _0x5c51eb;};return a64_0x2a9b();}(function(_0x2f9036,_0x884848){const _0xf0170=a64_0x33a1,_0x587cf1=_0x2f9036();while(!![]){try{const _0xef60e8=-parseInt(_0xf0170(0x9c))/0x1+-parseInt(_0xf0170(0x6e))/0x2*(-parseInt(_0xf0170(0x77))/0x3)+parseInt(_0xf0170(0x6b))/0x4+-parseInt(_0xf0170(0x6d))/0x5*(-parseInt(_0xf0170(0x7a))/0x6)+parseInt(_0xf0170(0xa3))/0x7+parseInt(_0xf0170(0x97))/0x8*(-parseInt(_0xf0170(0x99))/0x9)+-parseInt(_0xf0170(0x7b))/0xa;if(_0xef60e8===_0x884848)break;else _0x587cf1['push'](_0x587cf1['shift']());}catch(_0x56119b){_0x587cf1['push'](_0x587cf1['shift']());}}}(a64_0x2a9b,0x5d717));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a64_0x40d86e(0x91),'type':a64_0x40d86e(0x90),'required':!![],'description':a64_0x40d86e(0xa2)},SERVICE_FLAG={'name':'service','type':a64_0x40d86e(0x90),'required':!![],'description':a64_0x40d86e(0x74),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x40d86e(0x85)}};function summarizeService(_0x31f4a4){const _0x14dbca=a64_0x40d86e;return{'serviceCode':_0x31f4a4[_0x14dbca(0x8e)],'name':_0x31f4a4['normalizedManifest'][_0x14dbca(0x73)][_0x14dbca(0x93)],'version':_0x31f4a4['version'],'importedAt':_0x31f4a4[_0x14dbca(0xac)],'source':_0x31f4a4[_0x14dbca(0x92)],'commandCount':_0x31f4a4[_0x14dbca(0x9b)][_0x14dbca(0xa0)]['length'],'commands':_0x31f4a4[_0x14dbca(0x9b)][_0x14dbca(0xa0)][_0x14dbca(0x76)](_0x508f90=>({'path':_0x508f90[_0x14dbca(0x95)],'description':_0x508f90[_0x14dbca(0x84)],'risk':_0x508f90[_0x14dbca(0x89)],'target':toPublicServiceTreeTarget(_0x508f90['target']),'flags':_0x508f90[_0x14dbca(0xae)][_0x14dbca(0x76)](_0x206680=>({'name':_0x206680[_0x14dbca(0x93)],'cliName':_0x206680[_0x14dbca(0x9e)],'type':_0x206680[_0x14dbca(0xa8)],'required':_0x206680[_0x14dbca(0x8a)]===!![]}))}))};}function a64_0x33a1(_0x22f7c1,_0x32cc52){_0x22f7c1=_0x22f7c1-0x6a;const _0x2a9b6b=a64_0x2a9b();let _0x33a167=_0x2a9b6b[_0x22f7c1];return _0x33a167;}function summarizeLoadedManifest(_0x5d9d62){const _0x35bd29=a64_0x40d86e;return{'service':_0x5d9d62[_0x35bd29(0x9b)]?.[_0x35bd29(0x73)],'version':_0x5d9d62['normalizedManifest']?.['version'],'commandCount':_0x5d9d62[_0x35bd29(0x9b)]?.[_0x35bd29(0xa0)][_0x35bd29(0xad)]??0x0,'commands':_0x5d9d62[_0x35bd29(0x9b)]?.[_0x35bd29(0xa0)]['map'](_0x400e1e=>({'path':_0x400e1e[_0x35bd29(0x95)],'risk':_0x400e1e['risk'],'target':toPublicServiceTreeTarget(_0x400e1e[_0x35bd29(0x98)])}))??[],'registryIndex':_0x5d9d62['registryIndex'],'registryServiceCode':_0x5d9d62['registryServiceCode'],'errors':_0x5d9d62[_0x35bd29(0x75)][_0x35bd29(0x8d)],'warnings':_0x5d9d62[_0x35bd29(0x75)][_0x35bd29(0x9a)]};}export const serviceDefinitions=[{'service':'service','command':a64_0x40d86e(0x9d),'description':a64_0x40d86e(0x86),'risk':a64_0x40d86e(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x34ce09){const _0x5b3661=a64_0x40d86e,_0x9cc1fd=loadServiceManifestFromFile(_0x34ce09[_0x5b3661(0x71)](_0x5b3661(0x91)));if(!_0x9cc1fd[_0x5b3661(0x75)]['ok'])return{'ok':![],'data':{'file':_0x9cc1fd[_0x5b3661(0xaf)],'hash':_0x9cc1fd['hash'],'kind':_0x9cc1fd[_0x5b3661(0x78)],'serviceCount':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0xad)],'services':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0x76)](summarizeLoadedManifest),'errors':_0x9cc1fd[_0x5b3661(0x75)]['errors'],'warnings':_0x9cc1fd[_0x5b3661(0x75)][_0x5b3661(0x9a)]},'message':formatValidationFailure(_0x9cc1fd['report'])};if(_0x9cc1fd[_0x5b3661(0x78)]==='registry'||_0x9cc1fd['manifests'][_0x5b3661(0xad)]!==0x1)return{'ok':!![],'data':{'file':_0x9cc1fd[_0x5b3661(0xaf)],'hash':_0x9cc1fd['hash'],'kind':_0x9cc1fd[_0x5b3661(0x78)],'serviceCount':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0xad)],'commandCount':_0x9cc1fd[_0x5b3661(0x9f)][_0x5b3661(0xb2)]((_0x3c67ab,_0x37a1ce)=>_0x3c67ab+(_0x37a1ce[_0x5b3661(0x9b)]?.[_0x5b3661(0xa0)][_0x5b3661(0xad)]??0x0),0x0),'services':_0x9cc1fd[_0x5b3661(0x9f)]['map'](summarizeLoadedManifest),'warnings':_0x9cc1fd[_0x5b3661(0x75)][_0x5b3661(0x9a)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x9cc1fd[_0x5b3661(0xaf)],'hash':_0x9cc1fd['hash'],'kind':_0x9cc1fd['kind'],'service':_0x9cc1fd[_0x5b3661(0x9b)]?.[_0x5b3661(0x73)],'version':_0x9cc1fd['normalizedManifest']?.['version'],'commandCount':_0x9cc1fd[_0x5b3661(0x9b)]?.[_0x5b3661(0xa0)][_0x5b3661(0xad)]??0x0,'commands':_0x9cc1fd[_0x5b3661(0x9b)]?.[_0x5b3661(0xa0)][_0x5b3661(0x76)](_0x5eea5=>({'path':_0x5eea5[_0x5b3661(0x95)],'risk':_0x5eea5[_0x5b3661(0x89)],'target':toPublicServiceTreeTarget(_0x5eea5[_0x5b3661(0x98)])})),'warnings':_0x9cc1fd[_0x5b3661(0x75)][_0x5b3661(0x9a)]},'message':_0x5b3661(0xaa)};}},{'service':a64_0x40d86e(0x73),'command':'import','description':a64_0x40d86e(0x7c),'risk':'write','confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x333e35){const _0x31b32f=a64_0x40d86e,_0x2c4b74=loadServiceManifestFromFile(_0x333e35[_0x31b32f(0x71)](_0x31b32f(0x91)));return{'method':_0x31b32f(0x6f),'url':getServiceRegistryPath(),'body':{'file':_0x2c4b74[_0x31b32f(0xaf)],'hash':_0x2c4b74[_0x31b32f(0xa7)],'kind':_0x2c4b74[_0x31b32f(0x78)],'ok':_0x2c4b74['report']['ok'],'service':_0x2c4b74[_0x31b32f(0x9b)]?.['service'],'version':_0x2c4b74[_0x31b32f(0x9b)]?.[_0x31b32f(0x94)],'serviceCount':_0x2c4b74[_0x31b32f(0x9f)][_0x31b32f(0xad)],'services':_0x2c4b74[_0x31b32f(0x9f)][_0x31b32f(0x76)](_0x3240a0=>({'service':_0x3240a0[_0x31b32f(0x9b)]?.['service'],'version':_0x3240a0[_0x31b32f(0x9b)]?.[_0x31b32f(0x94)],'commandCount':_0x3240a0[_0x31b32f(0x9b)]?.[_0x31b32f(0xa0)]['length']??0x0,'errors':_0x3240a0[_0x31b32f(0x75)]['errors']})),'errors':_0x2c4b74[_0x31b32f(0x75)][_0x31b32f(0x8d)],'commandCount':_0x2c4b74[_0x31b32f(0x9b)]?.[_0x31b32f(0xa0)][_0x31b32f(0xad)]??0x0},'description':_0x31b32f(0x80)};},async 'execute'(_0x212517){const _0x1e5f0d=a64_0x40d86e,_0x4900d8=importServiceManifest(_0x212517[_0x1e5f0d(0x71)]('file'));if(_0x4900d8[_0x1e5f0d(0x8f)][_0x1e5f0d(0xad)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4900d8['registryPath'],'imported':_0x4900d8[_0x1e5f0d(0x83)],'updated':_0x4900d8[_0x1e5f0d(0xb0)],'serviceCount':_0x4900d8['serviceCount'],'services':_0x4900d8[_0x1e5f0d(0x8f)][_0x1e5f0d(0x76)](summarizeService)},'message':_0x1e5f0d(0xb3)+_0x4900d8['imported']+_0x1e5f0d(0xa5)+_0x4900d8[_0x1e5f0d(0xb0)]+_0x1e5f0d(0x7e)};return{'ok':!![],'data':{'registryPath':_0x4900d8[_0x1e5f0d(0xa1)],'replaced':_0x4900d8[_0x1e5f0d(0x88)],'imported':_0x4900d8[_0x1e5f0d(0x83)],'updated':_0x4900d8['updated'],'serviceCount':_0x4900d8[_0x1e5f0d(0xab)],'service':summarizeService(_0x4900d8['entry'])},'message':(_0x4900d8[_0x1e5f0d(0x88)]?'Updated':_0x1e5f0d(0xa4))+_0x1e5f0d(0x79)+_0x4900d8['entry'][_0x1e5f0d(0x8e)]+'.'};}},{'service':a64_0x40d86e(0x73),'command':a64_0x40d86e(0x8c),'description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','confirmationDescription':a64_0x40d86e(0x8b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1ed2df){const _0x1b8429=a64_0x40d86e,_0x17e090=getLocalServiceEntry(_0x1ed2df[_0x1b8429(0x71)](_0x1b8429(0x73)));return{'method':_0x1b8429(0x6f),'url':_0x1ed2df['str'](_0x1b8429(0x91)),'body':{'service':_0x1ed2df[_0x1b8429(0x71)](_0x1b8429(0x73)),'found':Boolean(_0x17e090),'version':_0x17e090?.['version'],'source':_0x17e090?.[_0x1b8429(0x92)]},'description':_0x1b8429(0x6a)};},async 'execute'(_0x5d7c88){const _0x1086dc=a64_0x40d86e,_0x614556=exportServiceManifest(_0x5d7c88[_0x1086dc(0x71)](_0x1086dc(0x73)),_0x5d7c88[_0x1086dc(0x71)](_0x1086dc(0x91)));return{'ok':!![],'data':{'registryPath':_0x614556[_0x1086dc(0xa1)],'file':_0x614556[_0x1086dc(0xaf)],'service':summarizeService(_0x614556[_0x1086dc(0x96)])},'message':_0x1086dc(0x6c)+_0x614556[_0x1086dc(0x96)][_0x1086dc(0x8e)]+'.'};}},{'service':a64_0x40d86e(0x73),'command':'list','description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a64_0x40d86e(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xd337e1=a64_0x40d86e,_0x176232=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x176232[_0xd337e1(0xad)],'services':_0x176232[_0xd337e1(0x76)](summarizeService)}};}},{'service':a64_0x40d86e(0x73),'command':a64_0x40d86e(0xa6),'description':a64_0x40d86e(0x70),'risk':a64_0x40d86e(0x72),'confirmationDescription':a64_0x40d86e(0x81),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xe621bf){const _0x3e9cb7=a64_0x40d86e,_0x419a04=getLocalServiceEntry(_0xe621bf[_0x3e9cb7(0x71)](_0x3e9cb7(0x73)));return{'method':_0x3e9cb7(0x6f),'url':getServiceRegistryPath(),'body':{'service':_0xe621bf[_0x3e9cb7(0x71)](_0x3e9cb7(0x73)),'found':Boolean(_0x419a04),'version':_0x419a04?.[_0x3e9cb7(0x94)],'source':_0x419a04?.[_0x3e9cb7(0x92)]},'description':_0x3e9cb7(0x7d)};},async 'execute'(_0x813674){const _0x38ec67=a64_0x40d86e,_0x4528c8=removeServiceManifest(_0x813674['str'](_0x38ec67(0x73)));return{'ok':!![],'data':{'registryPath':_0x4528c8[_0x38ec67(0xa1)],'serviceCount':_0x4528c8[_0x38ec67(0xab)],'service':summarizeService(_0x4528c8[_0x38ec67(0x96)])},'message':_0x38ec67(0xa9)+_0x4528c8[_0x38ec67(0x96)][_0x38ec67(0x8e)]+'.'};}},{'service':'service','command':a64_0x40d86e(0x82),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a64_0x40d86e(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1c9898){const _0x5be97a=a64_0x40d86e,_0x54e7bc=getLocalServiceEntry(_0x1c9898['str'](_0x5be97a(0x73)));if(!_0x54e7bc)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1c9898[_0x5be97a(0x71)](_0x5be97a(0x73))},'message':_0x5be97a(0x7f)+_0x1c9898[_0x5be97a(0x71)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x54e7bc),'manifest':_0x54e7bc[_0x5be97a(0x87)],'normalizedManifest':toPublicNormalizedServiceTree(_0x54e7bc[_0x5be97a(0x9b)])}};}}];
@@ -1 +1 @@
1
- const a65_0x537d7e=a65_0x5036;(function(_0x12019b,_0x121f20){const _0x23340a=a65_0x5036,_0x18fbfc=_0x12019b();while(!![]){try{const _0x56a943=-parseInt(_0x23340a(0x21f))/0x1*(parseInt(_0x23340a(0x222))/0x2)+parseInt(_0x23340a(0x1fb))/0x3*(parseInt(_0x23340a(0x1ee))/0x4)+parseInt(_0x23340a(0x201))/0x5+parseInt(_0x23340a(0x1f5))/0x6*(-parseInt(_0x23340a(0x214))/0x7)+parseInt(_0x23340a(0x1f2))/0x8+-parseInt(_0x23340a(0x1f3))/0x9+-parseInt(_0x23340a(0x212))/0xa*(-parseInt(_0x23340a(0x1e1))/0xb);if(_0x56a943===_0x121f20)break;else _0x18fbfc['push'](_0x18fbfc['shift']());}catch(_0x2d9282){_0x18fbfc['push'](_0x18fbfc['shift']());}}}(a65_0x3334,0xde1db));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a65_0x537d7e(0x1fc);export function getServiceRegistryPath(_0x2a5f96={}){const _0x45f21f=a65_0x537d7e;return resolve(_0x2a5f96['homeDir']??homedir(),PRODUCT_CONFIG[_0x45f21f(0x1e0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}function a65_0x5036(_0xc1e5e8,_0x5e3146){_0xc1e5e8=_0xc1e5e8-0x1d7;const _0x333477=a65_0x3334();let _0x503634=_0x333477[_0xc1e5e8];return _0x503634;}export function readServiceRegistry(_0x2126ba={}){const _0x2b8918=a65_0x537d7e,_0x3c39f4=getServiceRegistryPath(_0x2126ba);if(!existsSync(_0x3c39f4))return emptyServiceRegistry();try{const _0x3ee32b=readFileSync(_0x3c39f4,_0x2b8918(0x200));if(!_0x3ee32b[_0x2b8918(0x1d7)]())return emptyServiceRegistry();const _0x460940=JSON[_0x2b8918(0x1d9)](_0x3ee32b);if(_0x460940[_0x2b8918(0x1e2)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x2b8918(0x221)+String(_0x460940[_0x2b8918(0x1e2)]),'Remove\x20or\x20migrate\x20'+_0x3c39f4+'.');if(!Array['isArray'](_0x460940['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x460940[_0x2b8918(0x1f6)],'services':_0x460940[_0x2b8918(0x1eb)]};}catch(_0x145a62){if(_0x145a62 instanceof Error&&_0x145a62['name']===_0x2b8918(0x1ea))throw _0x145a62;throw CliErrors[_0x2b8918(0x229)](_0x2b8918(0x1df)+_0x3c39f4,_0x2b8918(0x21b));}}export function writeServiceRegistry(_0x885124,_0x44381d={}){const _0x4e1721=a65_0x537d7e,_0x582892=getServiceRegistryPath(_0x44381d),_0x32f0ea=dirname(_0x582892);!existsSync(_0x32f0ea)&&mkdirSync(_0x32f0ea,{'recursive':!![]});const _0xe5f8b5=_0x582892+_0x4e1721(0x20e);try{writeFileSync(_0xe5f8b5,JSON[_0x4e1721(0x1f1)](_0x885124,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xe5f8b5,_0x582892);}catch(_0x3c36f8){try{unlinkSync(_0xe5f8b5);}catch{}if(_0x3c36f8?.[_0x4e1721(0x1da)]===_0x4e1721(0x1e4))throw CliErrors[_0x4e1721(0x229)]('Cannot\x20write\x20service\x20registry:\x20'+_0x582892);throw _0x3c36f8;}return _0x582892;}export function loadServiceManifestFromFile(_0x4566d1){const _0x135590=a65_0x537d7e,_0x5961fc=resolve(_0x4566d1);if(!existsSync(_0x5961fc))throw CliErrors[_0x135590(0x229)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x4566d1);let _0x19a967;const _0x24ade7=readFileSync(_0x5961fc,_0x135590(0x200));try{_0x19a967=JSON[_0x135590(0x1d9)](_0x24ade7);}catch{throw CliErrors[_0x135590(0x229)](_0x135590(0x205)+_0x4566d1,_0x135590(0x1fd));}const _0x2cc1da=sha256(_0x24ade7),_0x164482=extractLoadedServiceManifests(_0x19a967,_0x2cc1da),_0x4d3d8b=aggregateValidationReports(_0x164482),_0x17f7bf=_0x164482[0x0];return{'filePath':_0x5961fc,'hash':_0x2cc1da,'kind':isServiceRegistryLike(_0x19a967)?_0x135590(0x1ff):_0x135590(0x1e3),'manifest':_0x17f7bf?.[_0x135590(0x1e3)]??_0x19a967,'report':_0x4d3d8b,'normalizedManifest':_0x164482[_0x135590(0x1e8)]===0x1?_0x17f7bf?.[_0x135590(0x1db)]:undefined,'manifests':_0x164482};}export function importServiceManifest(_0x1dadf7,_0x1b09e6={}){const _0x316dd4=a65_0x537d7e,_0x630151=loadServiceManifestFromFile(_0x1dadf7);if(!_0x630151[_0x316dd4(0x226)]['ok'])throw CliErrors[_0x316dd4(0x229)](formatValidationFailure(_0x630151[_0x316dd4(0x226)]),_0x316dd4(0x223));if(_0x630151[_0x316dd4(0x1e7)][_0x316dd4(0x1e8)]===0x0)throw CliErrors[_0x316dd4(0x229)](_0x316dd4(0x219),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x43a582=readServiceRegistry(_0x1b09e6),_0x26df10=(_0x1b09e6['now']??(()=>new Date()))()[_0x316dd4(0x215)](),_0x13fa3c=[];let _0x596ac4=0x0,_0x3e2b4b=0x0;for(const _0x527b3c of _0x630151[_0x316dd4(0x1e7)]){if(!_0x527b3c[_0x316dd4(0x1db)])continue;const _0x2c21dc=_0x527b3c[_0x316dd4(0x1db)][_0x316dd4(0x1f4)][_0x316dd4(0x1da)],_0xd8d1ab={'serviceCode':_0x2c21dc,'version':_0x527b3c[_0x316dd4(0x1db)]['version'],'importedAt':_0x26df10,'source':{'type':_0x316dd4(0x208),'path':_0x630151[_0x316dd4(0x1f9)],'hash':_0x527b3c[_0x316dd4(0x1e9)]},'manifest':_0x527b3c[_0x316dd4(0x1e3)],'normalizedManifest':_0x527b3c[_0x316dd4(0x1db)]},_0x1f2a02=_0x43a582[_0x316dd4(0x1eb)][_0x316dd4(0x203)](_0x213933=>_0x213933[_0x316dd4(0x1de)]===_0x2c21dc);_0x1f2a02>=0x0?(_0x43a582['services'][_0x1f2a02]=_0xd8d1ab,_0x3e2b4b++):(_0x43a582[_0x316dd4(0x1eb)][_0x316dd4(0x1fe)](_0xd8d1ab),_0x596ac4++),_0x13fa3c[_0x316dd4(0x1fe)](_0xd8d1ab);}_0x43a582[_0x316dd4(0x1eb)]['sort']((_0x1f7c8d,_0x5f419b)=>_0x1f7c8d['serviceCode'][_0x316dd4(0x204)](_0x5f419b[_0x316dd4(0x1de)])),_0x43a582[_0x316dd4(0x1f6)]=_0x26df10;const _0x56f943=writeServiceRegistry(_0x43a582,_0x1b09e6);return{'registryPath':_0x56f943,'entry':_0x13fa3c[0x0],'replaced':_0x13fa3c[_0x316dd4(0x1e8)]===0x1?_0x3e2b4b===0x1:_0x3e2b4b>0x0,'entries':_0x13fa3c,'imported':_0x596ac4,'updated':_0x3e2b4b,'serviceCount':_0x43a582[_0x316dd4(0x1eb)]['length']};}export function exportServiceManifest(_0x410e44,_0x3559eb,_0x83de56={}){const _0x5610a2=a65_0x537d7e,_0x2f3a8d=getServiceRegistryPath(_0x83de56),_0x22c098=getLocalServiceEntry(_0x410e44,_0x83de56);if(!_0x22c098)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x410e44,_0x5610a2(0x218));const _0x48af0f=resolve(_0x3559eb),_0x5da56e=dirname(_0x48af0f);return!existsSync(_0x5da56e)&&mkdirSync(_0x5da56e,{'recursive':!![]}),writeFileSync(_0x48af0f,JSON[_0x5610a2(0x1f1)](_0x22c098[_0x5610a2(0x1e3)],null,0x2)+'\x0a',{'encoding':_0x5610a2(0x200),'mode':0x180}),{'registryPath':_0x2f3a8d,'filePath':_0x48af0f,'entry':_0x22c098};}export function removeServiceManifest(_0x430c01,_0x46fb91={}){const _0x386d49=a65_0x537d7e,_0x2f054f=readServiceRegistry(_0x46fb91),_0x2e6003=_0x430c01[_0x386d49(0x1d7)](),_0x25abdc=_0x2f054f[_0x386d49(0x1eb)][_0x386d49(0x203)](_0x46ef03=>_0x46ef03['serviceCode']===_0x2e6003);if(_0x25abdc<0x0)throw CliErrors['validation'](_0x386d49(0x1e5)+_0x2e6003,_0x386d49(0x218));const [_0x344558]=_0x2f054f['services']['splice'](_0x25abdc,0x1),_0x2d4cf2=(_0x46fb91['now']??(()=>new Date()))()[_0x386d49(0x215)]();_0x2f054f['updatedAt']=_0x2d4cf2;const _0x404c13=writeServiceRegistry(_0x2f054f,_0x46fb91);return{'registryPath':_0x404c13,'entry':_0x344558,'serviceCount':_0x2f054f[_0x386d49(0x1eb)]['length']};}export function listLocalServices(_0x56d398={}){return readServiceRegistry(_0x56d398)['services'];}export function getLocalServiceEntry(_0x2be27b,_0x34d214={}){const _0x1eb08d=a65_0x537d7e;return readServiceRegistry(_0x34d214)[_0x1eb08d(0x1eb)][_0x1eb08d(0x202)](_0x35652e=>_0x35652e['serviceCode']===_0x2be27b[_0x1eb08d(0x1d7)]());}export function listLocalServiceTrees(_0x5e6d64={}){const _0x2cc901=a65_0x537d7e;return readServiceRegistry(_0x5e6d64)[_0x2cc901(0x1eb)][_0x2cc901(0x1ec)](_0x1f3c1f=>_0x1f3c1f[_0x2cc901(0x1db)]);}export function inspectServiceRegistry(_0x486c3e={}){const _0x20b7bc=a65_0x537d7e,_0x4c0f30=getServiceRegistryPath(_0x486c3e);if(!existsSync(_0x4c0f30))return emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x210),![]);try{const _0x5d835d=readFileSync(_0x4c0f30,'utf8');if(!_0x5d835d[_0x20b7bc(0x1d7)]())return emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x21a),!![]);const _0x3f1ee2=JSON[_0x20b7bc(0x1d9)](_0x5d835d);if(_0x3f1ee2[_0x20b7bc(0x1e2)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4c0f30,'invalid',!![]),'schemaVersion':_0x3f1ee2[_0x20b7bc(0x1e2)],'message':_0x20b7bc(0x225)+String(_0x3f1ee2[_0x20b7bc(0x1e2)])};if(!Array[_0x20b7bc(0x21d)](_0x3f1ee2[_0x20b7bc(0x1eb)]))return{...emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x1e6),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3f1ee2['updatedAt'],'message':_0x20b7bc(0x207)};const _0xf724a9=_0x3f1ee2['services'][_0x20b7bc(0x1ec)](summarizeLocalServiceEntry);return{'registryPath':_0x4c0f30,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3f1ee2[_0x20b7bc(0x1f6)],'serviceCount':_0xf724a9[_0x20b7bc(0x1e8)],'commandCount':_0xf724a9['reduce']((_0x3dba9b,_0xa82753)=>_0x3dba9b+_0xa82753[_0x20b7bc(0x1ef)],0x0),'services':_0xf724a9};}catch(_0x5c9cef){return{...emptyServiceRegistryInspection(_0x4c0f30,_0x20b7bc(0x1e6),!![]),'message':_0x5c9cef instanceof Error?_0x5c9cef[_0x20b7bc(0x209)]:String(_0x5c9cef)};}}export function formatValidationFailure(_0x592208){const _0x2c0fd2=a65_0x537d7e,_0x264839=_0x592208[_0x2c0fd2(0x1d8)][_0x2c0fd2(0x1ec)](_0x3696b0=>_0x3696b0[_0x2c0fd2(0x1dc)]+':\x20'+_0x3696b0[_0x2c0fd2(0x209)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x264839['join']('\x0a');}function extractLoadedServiceManifests(_0x21a53a,_0x41d7b2){if(!isServiceRegistryLike(_0x21a53a)){const _0x1c2968=_0x21a53a,{manifest:_0x2abd07,errors:_0x11cb5c}=adaptServiceTreeManifestForLegacyFramework(_0x1c2968),_0x3df54e=validateServiceTreeManifest(_0x2abd07),_0x297761=mergeValidationErrors(_0x3df54e,_0x11cb5c);return[{'manifest':_0x1c2968,'report':_0x297761,'normalizedManifest':_0x297761['ok']?normalizeServiceTreeManifest(_0x2abd07):undefined,'sourceHash':_0x41d7b2}];}return _0x21a53a['services']['map']((_0xc442b3,_0x3fedf6)=>{const _0x5786bb=a65_0x5036,_0xe03611=isObjectRecord(_0xc442b3)?_0xc442b3[_0x5786bb(0x1e3)]:undefined,{manifest:_0xe9f240,errors:_0x138f84}=adaptServiceTreeManifestForLegacyFramework(_0xe03611),_0x4c7b0f=validateServiceTreeManifest(_0xe9f240),_0x4fddc5=mergeValidationErrors(_0x4c7b0f,_0x138f84),_0x1fc264=isObjectRecord(_0xc442b3)&&typeof _0xc442b3['serviceCode']===_0x5786bb(0x211)?_0xc442b3[_0x5786bb(0x1de)]:undefined;return{'manifest':_0xe03611,'report':_0x4fddc5,'normalizedManifest':_0x4fddc5['ok']?normalizeServiceTreeManifest(_0xe9f240):undefined,'sourceHash':sha256(JSON['stringify'](_0xe03611,null,0x2)+'\x0a'),'registryIndex':_0x3fedf6,'registryServiceCode':_0x1fc264};});}function mergeValidationErrors(_0x5e5c5a,_0x3c67ec){const _0x3864af=a65_0x537d7e,_0x3cde37=_0x5e5c5a[_0x3864af(0x1d8)][_0x3864af(0x1ec)](_0x3ed703=>_0x3ed703['message']===_0x3864af(0x220)?{..._0x3ed703,'message':'bff\x20target\x20requires\x20functionName.'}:_0x3ed703),_0x480625=[..._0x3c67ec,..._0x3cde37];return{'ok':_0x480625[_0x3864af(0x1e8)]===0x0,'errors':_0x480625,'warnings':_0x5e5c5a[_0x3864af(0x21c)]};}function a65_0x3334(){const _0x1e6f78=['serviceCode','Invalid\x20service\x20registry\x20JSON:\x20','homeDirName','8953978bNqGyh','schemaVersion','manifest','ENOENT','Local\x20service\x20not\x20found:\x20','invalid','manifests','length','sourceHash','CliError','services','map','registryIndex','5916488LjEOJU','commandCount','version','stringify','3372544REjmyR','15894252dEGTcZ','service','4285422huXbWH','updatedAt','].manifest.','description','filePath','$.services[','3Jvqwrk','service.json','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','push','registry','utf8','7713810cIMHDl','find','findIndex','localeCompare','Invalid\x20service\x20manifest\x20JSON:\x20','slice','services\x20must\x20be\x20an\x20array','file','message','flatMap','startsWith','digest','hex','.tmp','].manifest','missing','string','20QKeCrE','update','7GulSMB','toISOString','commands','target','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','empty','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','warnings','isArray','sha256','1681396XRdqpx','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','Unsupported\x20service\x20registry\x20schemaVersion:\x20','2VIgbJn','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','risk','Unsupported\x20schemaVersion:\x20','report','name','cliPath','validation','importedAt','trim','errors','parse','code','normalizedManifest','path','kind'];a65_0x3334=function(){return _0x1e6f78;};return a65_0x3334();}function aggregateValidationReports(_0x3763d0){const _0x5a8074=a65_0x537d7e,_0x78b2c6=_0x3763d0[_0x5a8074(0x20a)](_0x187eef=>_0x187eef[_0x5a8074(0x1ed)]===undefined?_0x187eef[_0x5a8074(0x226)]['errors']:_0x187eef['report']['errors']['map'](_0x2e57ee=>({..._0x2e57ee,'path':prefixRegistryIssuePath(_0x187eef[_0x5a8074(0x1ed)],_0x2e57ee[_0x5a8074(0x1dc)])}))),_0x18b665=_0x3763d0[_0x5a8074(0x20a)](_0x4e4306=>_0x4e4306['registryIndex']===undefined?_0x4e4306['report'][_0x5a8074(0x21c)]:_0x4e4306['report'][_0x5a8074(0x21c)][_0x5a8074(0x1ec)](_0x552bf1=>({..._0x552bf1,'path':prefixRegistryIssuePath(_0x4e4306[_0x5a8074(0x1ed)],_0x552bf1['path'])})));return{'ok':_0x78b2c6[_0x5a8074(0x1e8)]===0x0,'errors':_0x78b2c6,'warnings':_0x18b665};}function prefixRegistryIssuePath(_0x17ef5d,_0x1e8add){const _0xa85c5c=a65_0x537d7e;if(_0x1e8add==='$')return _0xa85c5c(0x1fa)+_0x17ef5d+_0xa85c5c(0x20f);if(_0x1e8add[_0xa85c5c(0x20b)]('$.'))return _0xa85c5c(0x1fa)+_0x17ef5d+_0xa85c5c(0x20f)+_0x1e8add[_0xa85c5c(0x206)](0x1);if(_0x1e8add[_0xa85c5c(0x20b)]('$['))return _0xa85c5c(0x1fa)+_0x17ef5d+'].manifest'+_0x1e8add[_0xa85c5c(0x206)](0x1);return _0xa85c5c(0x1fa)+_0x17ef5d+_0xa85c5c(0x1f7)+_0x1e8add;}function isServiceRegistryLike(_0x49fd45){const _0x418788=a65_0x537d7e;return isObjectRecord(_0x49fd45)&&_0x49fd45[_0x418788(0x1e2)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x418788(0x21d)](_0x49fd45[_0x418788(0x1eb)]);}function isObjectRecord(_0x263b8d){const _0xc67a8d=a65_0x537d7e;return Boolean(_0x263b8d)&&typeof _0x263b8d==='object'&&!Array[_0xc67a8d(0x21d)](_0x263b8d);}function emptyServiceRegistryInspection(_0x1bf2e8,_0x4b3403,_0x362082){return{'registryPath':_0x1bf2e8,'exists':_0x362082,'status':_0x4b3403,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1d9462){const _0x18fc94=a65_0x537d7e,_0x291c52=_0x1d9462['normalizedManifest'],_0x4afcc0=_0x291c52[_0x18fc94(0x216)]['map'](_0x3b3ab6=>({'path':_0x3b3ab6[_0x18fc94(0x228)],'description':_0x3b3ab6[_0x18fc94(0x1f8)],'risk':_0x3b3ab6[_0x18fc94(0x224)],'targetKind':_0x3b3ab6[_0x18fc94(0x217)][_0x18fc94(0x1dd)],'targetCommand':_0x3b3ab6[_0x18fc94(0x217)]['command']}));return{'serviceCode':_0x1d9462['serviceCode'],'name':_0x291c52['service'][_0x18fc94(0x227)],'description':_0x291c52[_0x18fc94(0x1f4)][_0x18fc94(0x1f8)],'version':_0x1d9462[_0x18fc94(0x1f0)],'importedAt':_0x1d9462[_0x18fc94(0x22a)],'source':_0x1d9462['source'],'commandCount':_0x4afcc0['length'],'commands':_0x4afcc0};}function sha256(_0xb070c7){const _0x331052=a65_0x537d7e;return createHash(_0x331052(0x21e))[_0x331052(0x213)](_0xb070c7)[_0x331052(0x20c)](_0x331052(0x20d));}
1
+ const a65_0x45ee83=a65_0x3aa4;(function(_0x50e956,_0x1ef61a){const _0x53b546=a65_0x3aa4,_0x43dfcc=_0x50e956();while(!![]){try{const _0x438273=parseInt(_0x53b546(0xcb))/0x1*(-parseInt(_0x53b546(0xc7))/0x2)+-parseInt(_0x53b546(0xa7))/0x3*(parseInt(_0x53b546(0xab))/0x4)+-parseInt(_0x53b546(0xe5))/0x5*(parseInt(_0x53b546(0xac))/0x6)+-parseInt(_0x53b546(0x9c))/0x7*(-parseInt(_0x53b546(0xd6))/0x8)+-parseInt(_0x53b546(0xe6))/0x9*(parseInt(_0x53b546(0xb7))/0xa)+-parseInt(_0x53b546(0xb3))/0xb+-parseInt(_0x53b546(0xd0))/0xc*(-parseInt(_0x53b546(0xdc))/0xd);if(_0x438273===_0x1ef61a)break;else _0x43dfcc['push'](_0x43dfcc['shift']());}catch(_0x483b24){_0x43dfcc['push'](_0x43dfcc['shift']());}}}(a65_0x3597,0x7ece7));function a65_0x3aa4(_0x581051,_0x341b7f){_0x581051=_0x581051-0x9c;const _0x359710=a65_0x3597();let _0x3aa4be=_0x359710[_0x581051];return _0x3aa4be;}import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a65_0x45ee83(0xbc);export function getServiceRegistryPath(_0x5eab64={}){const _0x11796d=a65_0x45ee83;return resolve(_0x5eab64['homeDir']??homedir(),PRODUCT_CONFIG[_0x11796d(0xa1)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1f83d3={}){const _0x54a0b4=a65_0x45ee83,_0x431995=getServiceRegistryPath(_0x1f83d3);if(!existsSync(_0x431995))return emptyServiceRegistry();try{const _0x136ee9=readFileSync(_0x431995,_0x54a0b4(0xaa));if(!_0x136ee9[_0x54a0b4(0xe1)]())return emptyServiceRegistry();const _0x106b61=JSON[_0x54a0b4(0xe8)](_0x136ee9);if(_0x106b61[_0x54a0b4(0xdf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x54a0b4(0xef)+String(_0x106b61[_0x54a0b4(0xdf)]),_0x54a0b4(0xd5)+_0x431995+'.');if(!Array[_0x54a0b4(0xf2)](_0x106b61[_0x54a0b4(0xb4)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x106b61[_0x54a0b4(0xc2)],'services':_0x106b61[_0x54a0b4(0xb4)]};}catch(_0x127c75){if(_0x127c75 instanceof Error&&_0x127c75[_0x54a0b4(0xdd)]===_0x54a0b4(0xbd))throw _0x127c75;throw CliErrors[_0x54a0b4(0xa9)](_0x54a0b4(0xed)+_0x431995,_0x54a0b4(0xf0));}}export function writeServiceRegistry(_0x5bc9aa,_0x107eaf={}){const _0x51a1e9=a65_0x45ee83,_0x4d7eff=getServiceRegistryPath(_0x107eaf),_0x4b79e0=dirname(_0x4d7eff);!existsSync(_0x4b79e0)&&mkdirSync(_0x4b79e0,{'recursive':!![]});const _0x36022a=_0x4d7eff+_0x51a1e9(0xe4);try{writeFileSync(_0x36022a,JSON['stringify'](_0x5bc9aa,null,0x2)+'\x0a',{'encoding':_0x51a1e9(0xaa),'mode':0x180}),renameSync(_0x36022a,_0x4d7eff);}catch(_0x1d7420){try{unlinkSync(_0x36022a);}catch{}if(_0x1d7420?.['code']==='ENOENT')throw CliErrors['validation']('Cannot\x20write\x20service\x20registry:\x20'+_0x4d7eff);throw _0x1d7420;}return _0x4d7eff;}export function loadServiceManifestFromFile(_0x14c46d){const _0x23e0a0=a65_0x45ee83,_0x773e87=resolve(_0x14c46d);if(!existsSync(_0x773e87))throw CliErrors[_0x23e0a0(0xa9)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x14c46d);let _0x50c318;const _0x3bc711=readFileSync(_0x773e87,_0x23e0a0(0xaa));try{_0x50c318=JSON['parse'](_0x3bc711);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x14c46d,_0x23e0a0(0xa5));}const _0x553b6c=sha256(_0x3bc711),_0x596356=extractLoadedServiceManifests(_0x50c318,_0x553b6c),_0x524384=aggregateValidationReports(_0x596356),_0x1cd923=_0x596356[0x0];return{'filePath':_0x773e87,'hash':_0x553b6c,'kind':isServiceRegistryLike(_0x50c318)?_0x23e0a0(0xc5):_0x23e0a0(0xe0),'manifest':_0x1cd923?.[_0x23e0a0(0xe0)]??_0x50c318,'report':_0x524384,'normalizedManifest':_0x596356[_0x23e0a0(0xae)]===0x1?_0x1cd923?.['normalizedManifest']:undefined,'manifests':_0x596356};}export function importServiceManifest(_0x3437bd,_0x2bca31={}){const _0x4a7202=a65_0x45ee83,_0x352759=loadServiceManifestFromFile(_0x3437bd);if(!_0x352759[_0x4a7202(0xbf)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x352759[_0x4a7202(0xbf)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x352759[_0x4a7202(0xcd)][_0x4a7202(0xae)]===0x0)throw CliErrors[_0x4a7202(0xa9)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x4a7202(0xc3));const _0x462de5=readServiceRegistry(_0x2bca31),_0x1fe5dd=(_0x2bca31[_0x4a7202(0xa3)]??(()=>new Date()))()[_0x4a7202(0xaf)](),_0x374dbf=[];let _0x84718b=0x0,_0x5ec19b=0x0;for(const _0x58732a of _0x352759[_0x4a7202(0xcd)]){if(!_0x58732a[_0x4a7202(0xcf)])continue;const _0x1d4e34=_0x58732a[_0x4a7202(0xcf)][_0x4a7202(0xc9)]['code'],_0x47f5f4={'serviceCode':_0x1d4e34,'version':_0x58732a[_0x4a7202(0xcf)][_0x4a7202(0x9e)],'importedAt':_0x1fe5dd,'source':{'type':_0x4a7202(0xa4),'path':_0x352759[_0x4a7202(0xbb)],'hash':_0x58732a[_0x4a7202(0xd8)]},'manifest':_0x58732a[_0x4a7202(0xe0)],'normalizedManifest':_0x58732a[_0x4a7202(0xcf)]},_0xc505ee=_0x462de5[_0x4a7202(0xb4)]['findIndex'](_0x2e5f93=>_0x2e5f93['serviceCode']===_0x1d4e34);_0xc505ee>=0x0?(_0x462de5[_0x4a7202(0xb4)][_0xc505ee]=_0x47f5f4,_0x5ec19b++):(_0x462de5[_0x4a7202(0xb4)][_0x4a7202(0xc0)](_0x47f5f4),_0x84718b++),_0x374dbf['push'](_0x47f5f4);}_0x462de5[_0x4a7202(0xb4)][_0x4a7202(0xa2)]((_0x22d8be,_0xc08513)=>_0x22d8be['serviceCode']['localeCompare'](_0xc08513[_0x4a7202(0xe2)])),_0x462de5['updatedAt']=_0x1fe5dd;const _0x575990=writeServiceRegistry(_0x462de5,_0x2bca31);return{'registryPath':_0x575990,'entry':_0x374dbf[0x0],'replaced':_0x374dbf[_0x4a7202(0xae)]===0x1?_0x5ec19b===0x1:_0x5ec19b>0x0,'entries':_0x374dbf,'imported':_0x84718b,'updated':_0x5ec19b,'serviceCount':_0x462de5[_0x4a7202(0xb4)][_0x4a7202(0xae)]};}export function exportServiceManifest(_0x5d5722,_0x4566f9,_0x596174={}){const _0x216a78=a65_0x45ee83,_0x23b6e4=getServiceRegistryPath(_0x596174),_0x42097a=getLocalServiceEntry(_0x5d5722,_0x596174);if(!_0x42097a)throw CliErrors['validation'](_0x216a78(0xca)+_0x5d5722,_0x216a78(0xf3));const _0x15ad3=resolve(_0x4566f9),_0x2e4bfc=dirname(_0x15ad3);return!existsSync(_0x2e4bfc)&&mkdirSync(_0x2e4bfc,{'recursive':!![]}),writeFileSync(_0x15ad3,JSON['stringify'](_0x42097a[_0x216a78(0xe0)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x23b6e4,'filePath':_0x15ad3,'entry':_0x42097a};}export function removeServiceManifest(_0x5b7c3e,_0x159fc8={}){const _0x28ce54=a65_0x45ee83,_0x356661=readServiceRegistry(_0x159fc8),_0x5d0dc4=_0x5b7c3e[_0x28ce54(0xe1)](),_0x5774a8=_0x356661[_0x28ce54(0xb4)][_0x28ce54(0xd2)](_0x3ff1f6=>_0x3ff1f6[_0x28ce54(0xe2)]===_0x5d0dc4);if(_0x5774a8<0x0)throw CliErrors['validation'](_0x28ce54(0xca)+_0x5d0dc4,_0x28ce54(0xf3));const [_0xfed133]=_0x356661[_0x28ce54(0xb4)][_0x28ce54(0xc6)](_0x5774a8,0x1),_0x7cac3d=(_0x159fc8[_0x28ce54(0xa3)]??(()=>new Date()))()[_0x28ce54(0xaf)]();_0x356661[_0x28ce54(0xc2)]=_0x7cac3d;const _0x87884a=writeServiceRegistry(_0x356661,_0x159fc8);return{'registryPath':_0x87884a,'entry':_0xfed133,'serviceCount':_0x356661[_0x28ce54(0xb4)]['length']};}export function listLocalServices(_0x292508={}){const _0x42da08=a65_0x45ee83;return readServiceRegistry(_0x292508)[_0x42da08(0xb4)];}export function getLocalServiceEntry(_0x1eb9c5,_0x2f73c4={}){const _0x9df0e8=a65_0x45ee83;return readServiceRegistry(_0x2f73c4)[_0x9df0e8(0xb4)][_0x9df0e8(0xa0)](_0x28518b=>_0x28518b[_0x9df0e8(0xe2)]===_0x1eb9c5['trim']());}export function listLocalServiceTrees(_0x1ba1d4={}){const _0x2b09b2=a65_0x45ee83;return readServiceRegistry(_0x1ba1d4)['services'][_0x2b09b2(0xe7)](_0x439d28=>_0x439d28['normalizedManifest']);}export function inspectServiceRegistry(_0x3a0807={}){const _0x265dbb=a65_0x45ee83,_0x589061=getServiceRegistryPath(_0x3a0807);if(!existsSync(_0x589061))return emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xeb),![]);try{const _0x21dd61=readFileSync(_0x589061,'utf8');if(!_0x21dd61[_0x265dbb(0xe1)]())return emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xb0),!![]);const _0x2fb3d5=JSON[_0x265dbb(0xe8)](_0x21dd61);if(_0x2fb3d5[_0x265dbb(0xdf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x589061,'invalid',!![]),'schemaVersion':_0x2fb3d5[_0x265dbb(0xdf)],'message':_0x265dbb(0xce)+String(_0x2fb3d5[_0x265dbb(0xdf)])};if(!Array[_0x265dbb(0xf2)](_0x2fb3d5[_0x265dbb(0xb4)]))return{...emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xcc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fb3d5['updatedAt'],'message':_0x265dbb(0xec)};const _0x537c76=_0x2fb3d5[_0x265dbb(0xb4)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x589061,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2fb3d5[_0x265dbb(0xc2)],'serviceCount':_0x537c76['length'],'commandCount':_0x537c76[_0x265dbb(0xda)]((_0x49a1cd,_0x447b92)=>_0x49a1cd+_0x447b92[_0x265dbb(0xea)],0x0),'services':_0x537c76};}catch(_0xfd3256){return{...emptyServiceRegistryInspection(_0x589061,_0x265dbb(0xcc),!![]),'message':_0xfd3256 instanceof Error?_0xfd3256[_0x265dbb(0xb5)]:String(_0xfd3256)};}}export function formatValidationFailure(_0x2283f4){const _0x94dd39=a65_0x45ee83,_0x4e13e2=_0x2283f4[_0x94dd39(0xb9)]['map'](_0x250c37=>_0x250c37[_0x94dd39(0xad)]+':\x20'+_0x250c37[_0x94dd39(0xb5)]);return _0x94dd39(0xee)+_0x4e13e2[_0x94dd39(0xe3)]('\x0a');}function extractLoadedServiceManifests(_0x1104e4,_0x2cf5cf){const _0x42f5dc=a65_0x45ee83;if(!isServiceRegistryLike(_0x1104e4)){const _0x204fd7=_0x1104e4,{manifest:_0x4a9279,errors:_0x9035e7}=adaptServiceTreeManifestForLegacyFramework(_0x204fd7),_0x182ab9=validateServiceTreeManifest(_0x4a9279),_0x2a8153=mergeValidationErrors(_0x182ab9,_0x9035e7);return[{'manifest':_0x204fd7,'report':_0x2a8153,'normalizedManifest':_0x2a8153['ok']?normalizeServiceTreeManifest(_0x4a9279):undefined,'sourceHash':_0x2cf5cf}];}return _0x1104e4[_0x42f5dc(0xb4)][_0x42f5dc(0xe7)]((_0x18de64,_0x3b5ed0)=>{const _0x1cf6a5=_0x42f5dc,_0x3b971d=isObjectRecord(_0x18de64)?_0x18de64[_0x1cf6a5(0xe0)]:undefined,{manifest:_0x1f1a70,errors:_0x176698}=adaptServiceTreeManifestForLegacyFramework(_0x3b971d),_0x82503c=validateServiceTreeManifest(_0x1f1a70),_0x588413=mergeValidationErrors(_0x82503c,_0x176698),_0x2c2a14=isObjectRecord(_0x18de64)&&typeof _0x18de64['serviceCode']===_0x1cf6a5(0xa6)?_0x18de64[_0x1cf6a5(0xe2)]:undefined;return{'manifest':_0x3b971d,'report':_0x588413,'normalizedManifest':_0x588413['ok']?normalizeServiceTreeManifest(_0x1f1a70):undefined,'sourceHash':sha256(JSON[_0x1cf6a5(0xc4)](_0x3b971d,null,0x2)+'\x0a'),'registryIndex':_0x3b5ed0,'registryServiceCode':_0x2c2a14};});}function mergeValidationErrors(_0x18562b,_0x25c7d5){const _0x42a090=a65_0x45ee83,_0x375179=_0x18562b['errors']['map'](_0x4be8e5=>_0x4be8e5[_0x42a090(0xb5)]===_0x42a090(0xd9)?{..._0x4be8e5,'message':_0x42a090(0xc1)}:_0x4be8e5),_0x40083a=[..._0x25c7d5,..._0x375179];return{'ok':_0x40083a[_0x42a090(0xae)]===0x0,'errors':_0x40083a,'warnings':_0x18562b[_0x42a090(0xba)]};}function aggregateValidationReports(_0x10fcf4){const _0x3b110d=a65_0x45ee83,_0x56f978=_0x10fcf4[_0x3b110d(0xb2)](_0x47ff60=>_0x47ff60[_0x3b110d(0xb1)]===undefined?_0x47ff60[_0x3b110d(0xbf)]['errors']:_0x47ff60[_0x3b110d(0xbf)][_0x3b110d(0xb9)]['map'](_0x2e1d67=>({..._0x2e1d67,'path':prefixRegistryIssuePath(_0x47ff60['registryIndex'],_0x2e1d67[_0x3b110d(0xad)])}))),_0x26307b=_0x10fcf4[_0x3b110d(0xb2)](_0xc52d1a=>_0xc52d1a[_0x3b110d(0xb1)]===undefined?_0xc52d1a['report'][_0x3b110d(0xba)]:_0xc52d1a['report'][_0x3b110d(0xba)][_0x3b110d(0xe7)](_0x24bca2=>({..._0x24bca2,'path':prefixRegistryIssuePath(_0xc52d1a['registryIndex'],_0x24bca2[_0x3b110d(0xad)])})));return{'ok':_0x56f978[_0x3b110d(0xae)]===0x0,'errors':_0x56f978,'warnings':_0x26307b};}function a65_0x3597(){const _0x4e81dc=['service','Local\x20service\x20not\x20found:\x20','37186IdiIqe','invalid','manifests','Unsupported\x20schemaVersion:\x20','normalizedManifest','852BCbMAq','target','findIndex','commands','kind','Remove\x20or\x20migrate\x20','8QhQBAM','description','sourceHash','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','reduce','update','521144GhYtQp','name','object','schemaVersion','manifest','trim','serviceCode','join','.tmp','5BKZIrL','28746DNMwCy','map','parse','sha256','commandCount','missing','services\x20must\x20be\x20an\x20array','Invalid\x20service\x20registry\x20JSON:\x20','Service\x20manifest\x20validation\x20failed:\x0a','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','cliPath','isArray','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','48041YuuHCr','startsWith','version','command','find','homeDirName','sort','now','file','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','string','6WSGMpA','slice','validation','utf8','906944olsyEZ','5029422jQekMh','path','length','toISOString','empty','registryIndex','flatMap','7670113okIxyL','services','message','$.services[','730ZpUWaf','].manifest','errors','warnings','filePath','service.json','CliError','risk','report','push','bff\x20target\x20requires\x20functionName.','updatedAt','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','stringify','registry','splice','6UtDcwD','hex'];a65_0x3597=function(){return _0x4e81dc;};return a65_0x3597();}function prefixRegistryIssuePath(_0x276035,_0x8c5c82){const _0x47524a=a65_0x45ee83;if(_0x8c5c82==='$')return _0x47524a(0xb6)+_0x276035+_0x47524a(0xb8);if(_0x8c5c82[_0x47524a(0x9d)]('$.'))return'$.services['+_0x276035+_0x47524a(0xb8)+_0x8c5c82['slice'](0x1);if(_0x8c5c82['startsWith']('$['))return'$.services['+_0x276035+'].manifest'+_0x8c5c82[_0x47524a(0xa8)](0x1);return _0x47524a(0xb6)+_0x276035+'].manifest.'+_0x8c5c82;}function isServiceRegistryLike(_0x317714){const _0x4b0826=a65_0x45ee83;return isObjectRecord(_0x317714)&&_0x317714[_0x4b0826(0xdf)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x4b0826(0xf2)](_0x317714[_0x4b0826(0xb4)]);}function isObjectRecord(_0x18f177){const _0x323daa=a65_0x45ee83;return Boolean(_0x18f177)&&typeof _0x18f177===_0x323daa(0xde)&&!Array[_0x323daa(0xf2)](_0x18f177);}function emptyServiceRegistryInspection(_0x1a0611,_0x5442b1,_0x456fe1){return{'registryPath':_0x1a0611,'exists':_0x456fe1,'status':_0x5442b1,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x2995b0){const _0x3f6f21=a65_0x45ee83,_0x1b6250=_0x2995b0[_0x3f6f21(0xcf)],_0x3f0bc9=_0x1b6250[_0x3f6f21(0xd3)][_0x3f6f21(0xe7)](_0x279e24=>({'path':_0x279e24[_0x3f6f21(0xf1)],'description':_0x279e24[_0x3f6f21(0xd7)],'risk':_0x279e24[_0x3f6f21(0xbe)],'targetKind':_0x279e24[_0x3f6f21(0xd1)][_0x3f6f21(0xd4)],'targetCommand':_0x279e24[_0x3f6f21(0xd1)][_0x3f6f21(0x9f)]}));return{'serviceCode':_0x2995b0['serviceCode'],'name':_0x1b6250['service'][_0x3f6f21(0xdd)],'description':_0x1b6250[_0x3f6f21(0xc9)][_0x3f6f21(0xd7)],'version':_0x2995b0[_0x3f6f21(0x9e)],'importedAt':_0x2995b0['importedAt'],'source':_0x2995b0['source'],'commandCount':_0x3f0bc9[_0x3f6f21(0xae)],'commands':_0x3f0bc9};}function sha256(_0x52bb53){const _0x51a571=a65_0x45ee83;return createHash(_0x51a571(0xe9))[_0x51a571(0xdb)](_0x52bb53)['digest'](_0x51a571(0xc8));}
@@ -1 +1 @@
1
- const a66_0x12ab6e=a66_0x521e;(function(_0x6aca00,_0x42d406){const _0x4fe751=a66_0x521e,_0x447b49=_0x6aca00();while(!![]){try{const _0x14aa65=parseInt(_0x4fe751(0x170))/0x1+parseInt(_0x4fe751(0x16c))/0x2+-parseInt(_0x4fe751(0x16a))/0x3+-parseInt(_0x4fe751(0x166))/0x4+parseInt(_0x4fe751(0x17d))/0x5+-parseInt(_0x4fe751(0x167))/0x6+parseInt(_0x4fe751(0x169))/0x7*(parseInt(_0x4fe751(0x171))/0x8);if(_0x14aa65===_0x42d406)break;else _0x447b49['push'](_0x447b49['shift']());}catch(_0x4f7726){_0x447b49['push'](_0x447b49['shift']());}}}(a66_0x54d4,0xdb97b));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a66_0x521e(_0x35bdb4,_0x17e45d){_0x35bdb4=_0x35bdb4-0x15b;const _0x54d4eb=a66_0x54d4();let _0x521e50=_0x54d4eb[_0x35bdb4];return _0x521e50;}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':a66_0x12ab6e(0x15e),'command':a66_0x12ab6e(0x15d),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a66_0x12ab6e(0x16d),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4fbb5a){const _0x1079b7=a66_0x12ab6e,_0x27a66f=buildSkillCreatePlan(_0x4fbb5a[_0x1079b7(0x16f)]('name'),_0x4fbb5a['str'](_0x1079b7(0x16b)),_0x4fbb5a[_0x1079b7(0x16f)](_0x1079b7(0x17b)));return{'method':_0x1079b7(0x162),'url':_0x27a66f[_0x1079b7(0x17c)],'body':{'skillName':_0x27a66f[_0x1079b7(0x179)][_0x1079b7(0x175)],'type':_0x27a66f[_0x1079b7(0x179)][_0x1079b7(0x16b)],'selfContained':!![],'files':_0x27a66f[_0x1079b7(0x179)][_0x1079b7(0x174)][_0x1079b7(0x15c)](_0x423d86=>_0x423d86[_0x1079b7(0x178)])},'description':_0x1079b7(0x172)};},async 'execute'(_0x594507){const _0x94f5f0=a66_0x12ab6e,_0x5018ae=buildSkillCreatePlan(_0x594507[_0x94f5f0(0x16f)](_0x94f5f0(0x168)),_0x594507['str'](_0x94f5f0(0x16b)),_0x594507['str']('target'));return writeSkillDraft(_0x5018ae,_0x594507['bool'](_0x94f5f0(0x161))),{'ok':!![],'data':{'skillName':_0x5018ae[_0x94f5f0(0x179)]['skillName'],'type':_0x5018ae[_0x94f5f0(0x179)][_0x94f5f0(0x16b)],'dir':_0x5018ae['skillDir'],'files':_0x5018ae[_0x94f5f0(0x179)][_0x94f5f0(0x174)][_0x94f5f0(0x15c)](_0x464dc2=>_0x464dc2[_0x94f5f0(0x178)])},'message':_0x94f5f0(0x176)+_0x5018ae[_0x94f5f0(0x179)]['skillName']};}};function a66_0x54d4(){const _0x2e7efc=['read','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','str','1761596LNlkNE','12289448DesbuK','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','files','skillName','Created\x20local\x20Skill\x20draft\x20','validation','path','rendered','isDirectory','target','skillDir','4038875aABNvv','Refusing\x20to\x20overwrite\x20symlink:\x20','map','create','skill','utf8','isSymbolicLink','force','WRITE','Skill\x20directory\x20already\x20exists:\x20','content','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','2408936zVWpFz','9451446ETfsMy','name','7jhhraR','4802496Rehasf','type','1144412PzNfsd'];a66_0x54d4=function(){return _0x2e7efc;};return a66_0x54d4();}function buildSkillCreatePlan(_0x43fd4a,_0x2a90d4,_0x3bcbd7){const _0xbd494c=a66_0x12ab6e,_0x53866d=_0x2a90d4['trim'](),_0x3e91ac=renderSkillTemplate({'skillName':_0x43fd4a,'type':_0x53866d});!_0x53866d&&writeCliSideChannelLine(_0xbd494c(0x16e));const _0x1995d1=resolve(normalizeSkillTarget(_0x3bcbd7));return{'rendered':_0x3e91ac,'targetRoot':_0x1995d1,'skillDir':resolve(_0x1995d1,_0x3e91ac['skillName'])};}function normalizeSkillTarget(_0x2074a9){return(_0x2074a9||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x72c47d,_0x4927f8){const _0x3b6e3e=a66_0x12ab6e;if(existsSync(_0x72c47d[_0x3b6e3e(0x17c)])){const _0x33d464=lstatSync(_0x72c47d[_0x3b6e3e(0x17c)]);if(!_0x33d464[_0x3b6e3e(0x17a)]()||_0x33d464[_0x3b6e3e(0x160)]())throw CliErrors[_0x3b6e3e(0x177)](_0x3b6e3e(0x173)+_0x72c47d['skillDir']);if(!_0x4927f8)throw CliErrors[_0x3b6e3e(0x177)](_0x3b6e3e(0x163)+_0x72c47d[_0x3b6e3e(0x17c)],_0x3b6e3e(0x165));}for(const _0x4687da of _0x72c47d[_0x3b6e3e(0x179)][_0x3b6e3e(0x174)]){const _0x437d7b=resolve(_0x72c47d[_0x3b6e3e(0x17c)],_0x4687da['path']),_0x17bca8=dirname(_0x437d7b);mkdirSync(_0x17bca8,{'recursive':!![]});if(existsSync(_0x437d7b)&&lstatSync(_0x437d7b)[_0x3b6e3e(0x160)]())throw CliErrors[_0x3b6e3e(0x177)](_0x3b6e3e(0x15b)+_0x437d7b);writeFileSync(_0x437d7b,_0x4687da[_0x3b6e3e(0x164)],_0x3b6e3e(0x15f));}}
1
+ const a66_0x50a29e=a66_0x2fe6;function a66_0x2fe6(_0x5c8a87,_0x5b663a){_0x5c8a87=_0x5c8a87-0x152;const _0x2b1435=a66_0x2b14();let _0x2fe608=_0x2b1435[_0x5c8a87];return _0x2fe608;}(function(_0x48d6a8,_0x332b8e){const _0x53b4cb=a66_0x2fe6,_0xaffedb=_0x48d6a8();while(!![]){try{const _0x303c28=-parseInt(_0x53b4cb(0x15b))/0x1*(-parseInt(_0x53b4cb(0x161))/0x2)+-parseInt(_0x53b4cb(0x15f))/0x3+parseInt(_0x53b4cb(0x15a))/0x4+-parseInt(_0x53b4cb(0x16b))/0x5+parseInt(_0x53b4cb(0x163))/0x6+-parseInt(_0x53b4cb(0x173))/0x7+parseInt(_0x53b4cb(0x157))/0x8;if(_0x303c28===_0x332b8e)break;else _0xaffedb['push'](_0xaffedb['shift']());}catch(_0x2b839c){_0xaffedb['push'](_0xaffedb['shift']());}}}(a66_0x2b14,0xb2d7f));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';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':a66_0x50a29e(0x170),'command':a66_0x50a29e(0x164),'description':a66_0x50a29e(0x16c),'risk':a66_0x50a29e(0x15d),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3ab136){const _0x89199e=a66_0x50a29e,_0x36cdea=buildSkillCreatePlan(_0x3ab136[_0x89199e(0x169)](_0x89199e(0x165)),_0x3ab136[_0x89199e(0x169)](_0x89199e(0x152)),_0x3ab136[_0x89199e(0x169)]('target'));return{'method':'WRITE','url':_0x36cdea['skillDir'],'body':{'skillName':_0x36cdea[_0x89199e(0x160)][_0x89199e(0x16d)],'type':_0x36cdea[_0x89199e(0x160)][_0x89199e(0x152)],'selfContained':!![],'files':_0x36cdea[_0x89199e(0x160)][_0x89199e(0x162)][_0x89199e(0x15c)](_0x5e9b86=>_0x5e9b86[_0x89199e(0x159)])},'description':_0x89199e(0x167)};},async 'execute'(_0x49aba1){const _0x2b80f8=a66_0x50a29e,_0xe63e79=buildSkillCreatePlan(_0x49aba1[_0x2b80f8(0x169)](_0x2b80f8(0x165)),_0x49aba1[_0x2b80f8(0x169)]('type'),_0x49aba1[_0x2b80f8(0x169)]('target'));return writeSkillDraft(_0xe63e79,_0x49aba1[_0x2b80f8(0x16e)](_0x2b80f8(0x15e))),{'ok':!![],'data':{'skillName':_0xe63e79[_0x2b80f8(0x160)]['skillName'],'type':_0xe63e79[_0x2b80f8(0x160)]['type'],'dir':_0xe63e79[_0x2b80f8(0x16a)],'files':_0xe63e79['rendered'][_0x2b80f8(0x162)]['map'](_0x5bf10e=>_0x5bf10e[_0x2b80f8(0x159)])},'message':_0x2b80f8(0x153)+_0xe63e79['rendered'][_0x2b80f8(0x16d)]};}};function buildSkillCreatePlan(_0x40f57b,_0xd2dcb9,_0x22ed90){const _0x1a649c=a66_0x50a29e,_0x1bdd0f=_0xd2dcb9[_0x1a649c(0x166)](),_0xd2e8e0=renderSkillTemplate({'skillName':_0x40f57b,'type':_0x1bdd0f});!_0x1bdd0f&&writeCliSideChannelLine(_0x1a649c(0x158));const _0x4885f8=resolve(normalizeSkillTarget(_0x22ed90));return{'rendered':_0xd2e8e0,'targetRoot':_0x4885f8,'skillDir':resolve(_0x4885f8,_0xd2e8e0[_0x1a649c(0x16d)])};}function normalizeSkillTarget(_0x51793b){const _0x51bf55=a66_0x50a29e;return(_0x51793b||DEFAULT_SKILL_TARGET)[_0x51bf55(0x166)]()||DEFAULT_SKILL_TARGET;}function a66_0x2b14(){const _0x52fc9c=['force','4164510ylSRyG','rendered','1777770utCAIU','files','8663430djRfrk','create','name','trim','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','Skill\x20directory\x20already\x20exists:\x20','str','skillDir','4854130IsSiBV','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','skillName','bool','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','skill','utf8','isSymbolicLink','6726741ncLpqL','validation','type','Created\x20local\x20Skill\x20draft\x20','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','content','Refusing\x20to\x20overwrite\x20symlink:\x20','11710600UIfRRP','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','path','1023548EuQKip','1MqZTWp','map','read'];a66_0x2b14=function(){return _0x52fc9c;};return a66_0x2b14();}function writeSkillDraft(_0x60bdea,_0xb7fc47){const _0x23e5b1=a66_0x50a29e;if(existsSync(_0x60bdea[_0x23e5b1(0x16a)])){const _0x2202a1=lstatSync(_0x60bdea[_0x23e5b1(0x16a)]);if(!_0x2202a1['isDirectory']()||_0x2202a1['isSymbolicLink']())throw CliErrors['validation'](_0x23e5b1(0x154)+_0x60bdea[_0x23e5b1(0x16a)]);if(!_0xb7fc47)throw CliErrors[_0x23e5b1(0x174)](_0x23e5b1(0x168)+_0x60bdea[_0x23e5b1(0x16a)],_0x23e5b1(0x16f));}for(const _0x1438c8 of _0x60bdea[_0x23e5b1(0x160)][_0x23e5b1(0x162)]){const _0x2ddf44=resolve(_0x60bdea[_0x23e5b1(0x16a)],_0x1438c8[_0x23e5b1(0x159)]),_0x1af0f3=dirname(_0x2ddf44);mkdirSync(_0x1af0f3,{'recursive':!![]});if(existsSync(_0x2ddf44)&&lstatSync(_0x2ddf44)[_0x23e5b1(0x172)]())throw CliErrors['validation'](_0x23e5b1(0x156)+_0x2ddf44);writeFileSync(_0x2ddf44,_0x1438c8[_0x23e5b1(0x155)],_0x23e5b1(0x171));}}