@lovrabet/rabetbase-cli 2.3.13-beta.2 → 2.3.13

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 (263) hide show
  1. package/README.md +1 -1
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/auth/auth-server-ui.js +1 -1
  6. package/lib/auth/auth-server.js +1 -1
  7. package/lib/auth/constant.js +1 -1
  8. package/lib/auth/get-cookie.js +1 -1
  9. package/lib/auth/get-session-user.js +1 -1
  10. package/lib/auth/is-session-valid.js +1 -1
  11. package/lib/auth/login-success-html.js +1 -1
  12. package/lib/auth/logout.js +1 -1
  13. package/lib/cli-flags.js +1 -1
  14. package/lib/cli.js +1 -1
  15. package/lib/commands/api/generate.js +1 -1
  16. package/lib/commands/api/index.js +1 -1
  17. package/lib/commands/api/list.js +1 -1
  18. package/lib/commands/api/pull.js +1 -1
  19. package/lib/commands/api/shared.js +1 -1
  20. package/lib/commands/app/add.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.js +1 -1
  23. package/lib/commands/app/remote-directory.js +1 -1
  24. package/lib/commands/app/remove.js +1 -1
  25. package/lib/commands/app/shared.js +1 -1
  26. package/lib/commands/app-config/delete.js +1 -1
  27. package/lib/commands/app-config/get.js +1 -1
  28. package/lib/commands/app-config/index.js +1 -1
  29. package/lib/commands/app-config/list.js +1 -1
  30. package/lib/commands/app-config/set.js +1 -1
  31. package/lib/commands/app-config/shared.js +1 -1
  32. package/lib/commands/auth/index.js +1 -1
  33. package/lib/commands/bff/create.js +1 -1
  34. package/lib/commands/bff/delete.js +1 -1
  35. package/lib/commands/bff/detail.js +1 -1
  36. package/lib/commands/bff/index.js +1 -1
  37. package/lib/commands/bff/list.js +1 -1
  38. package/lib/commands/bff/pull.js +1 -1
  39. package/lib/commands/bff/push.js +1 -1
  40. package/lib/commands/bff/status.js +1 -1
  41. package/lib/commands/cli-skill/index.js +1 -1
  42. package/lib/commands/cli-update.js +1 -1
  43. package/lib/commands/codegen/index.js +1 -1
  44. package/lib/commands/codegen/sdk.js +1 -1
  45. package/lib/commands/codegen/sql.js +1 -1
  46. package/lib/commands/common/app-registry.js +1 -1
  47. package/lib/commands/common/app-selector.js +1 -1
  48. package/lib/commands/common/async-task.js +1 -1
  49. package/lib/commands/common/dry-run.js +1 -1
  50. package/lib/commands/common/flags.js +1 -1
  51. package/lib/commands/common/local-file.js +1 -1
  52. package/lib/commands/common/validate.js +1 -1
  53. package/lib/commands/config/get.js +1 -1
  54. package/lib/commands/config/index.js +1 -1
  55. package/lib/commands/config/list.js +1 -1
  56. package/lib/commands/config/set.js +1 -1
  57. package/lib/commands/config/shared.js +1 -1
  58. package/lib/commands/data/filter.js +1 -1
  59. package/lib/commands/data/getOne.js +1 -1
  60. package/lib/commands/data/index.js +1 -1
  61. package/lib/commands/data/shared.js +1 -1
  62. package/lib/commands/dataset/business-group-update.js +1 -1
  63. package/lib/commands/dataset/capability.js +1 -1
  64. package/lib/commands/dataset/delete.js +1 -1
  65. package/lib/commands/dataset/detail.js +1 -1
  66. package/lib/commands/dataset/extend-update.js +1 -1
  67. package/lib/commands/dataset/field-update.js +1 -1
  68. package/lib/commands/dataset/generate.js +1 -1
  69. package/lib/commands/dataset/index.js +1 -1
  70. package/lib/commands/dataset/list.js +1 -1
  71. package/lib/commands/dataset/operations.js +1 -1
  72. package/lib/commands/dataset/relation-audit.js +1 -1
  73. package/lib/commands/dataset/relation-create.js +1 -1
  74. package/lib/commands/dataset/relation-delete.js +1 -1
  75. package/lib/commands/dataset/relation-shared.js +1 -1
  76. package/lib/commands/dataset/relation-update.js +1 -1
  77. package/lib/commands/dataset/relations.js +1 -1
  78. package/lib/commands/dataset/rename.js +1 -1
  79. package/lib/commands/dataset/restore.js +1 -1
  80. package/lib/commands/db/analysis-batching.js +1 -1
  81. package/lib/commands/db/analyze-batch-plan.js +1 -1
  82. package/lib/commands/db/analyze-cancel.js +1 -1
  83. package/lib/commands/db/analyze-start.js +1 -1
  84. package/lib/commands/db/analyze-status.js +1 -1
  85. package/lib/commands/db/create.js +1 -1
  86. package/lib/commands/db/delete.js +1 -1
  87. package/lib/commands/db/detail.js +1 -1
  88. package/lib/commands/db/diff.js +1 -1
  89. package/lib/commands/db/index.js +1 -1
  90. package/lib/commands/db/list.js +1 -1
  91. package/lib/commands/db/shared.js +1 -1
  92. package/lib/commands/db/tables.js +1 -1
  93. package/lib/commands/db/test.js +1 -1
  94. package/lib/commands/db/update.js +1 -1
  95. package/lib/commands/doctor.js +1 -1
  96. package/lib/commands/file/index.js +1 -1
  97. package/lib/commands/init/index.js +1 -1
  98. package/lib/commands/issue/index.js +1 -1
  99. package/lib/commands/issue/nudge.js +1 -1
  100. package/lib/commands/issue/report.js +1 -1
  101. package/lib/commands/issue/shared.js +1 -1
  102. package/lib/commands/logs/index.js +1 -1
  103. package/lib/commands/menu/asset-update.js +1 -0
  104. package/lib/commands/menu/delete.js +1 -1
  105. package/lib/commands/menu/external-link-create.js +1 -1
  106. package/lib/commands/menu/external-link-update.js +1 -0
  107. package/lib/commands/menu/group-create.js +1 -1
  108. package/lib/commands/menu/group-update.js +1 -1
  109. package/lib/commands/menu/index.js +1 -1
  110. package/lib/commands/menu/list.js +1 -1
  111. package/lib/commands/menu/move.js +1 -1
  112. package/lib/commands/menu/regroup-start.js +1 -1
  113. package/lib/commands/menu/shared/compare-table.js +1 -1
  114. package/lib/commands/menu/shared/delete-plan.js +1 -1
  115. package/lib/commands/menu/shared/facts.js +1 -1
  116. package/lib/commands/menu/shared/index.js +1 -1
  117. package/lib/commands/menu/shared/inquirer.js +1 -1
  118. package/lib/commands/menu/shared/local-pages.js +1 -1
  119. package/lib/commands/menu/shared/logic.js +1 -1
  120. package/lib/commands/menu/shared/mutations.js +1 -1
  121. package/lib/commands/menu/shared/service.js +1 -1
  122. package/lib/commands/menu/shared/sync-core.js +1 -1
  123. package/lib/commands/menu/shared/update-core.js +1 -1
  124. package/lib/commands/menu/shared/valid-url.js +1 -1
  125. package/lib/commands/menu/sync.js +1 -1
  126. package/lib/commands/notification/config-list.js +1 -1
  127. package/lib/commands/notification/index.js +1 -1
  128. package/lib/commands/page/generate-start.js +1 -1
  129. package/lib/commands/page/generate-status.js +1 -1
  130. package/lib/commands/page/index.js +1 -1
  131. package/lib/commands/page/pull.js +1 -1
  132. package/lib/commands/page/push.js +1 -1
  133. package/lib/commands/page/relation-audit.js +1 -1
  134. package/lib/commands/page/shared.js +1 -1
  135. package/lib/commands/page/standard-page-status.js +1 -1
  136. package/lib/commands/page/sync.js +1 -1
  137. package/lib/commands/permit/index.js +1 -1
  138. package/lib/commands/permit/page-get.js +1 -1
  139. package/lib/commands/permit/page-set.js +1 -1
  140. package/lib/commands/permit/role-apis-set.js +1 -1
  141. package/lib/commands/permit/role-menus-set.js +1 -1
  142. package/lib/commands/permit/role-menus.js +1 -1
  143. package/lib/commands/permit/shared.js +1 -1
  144. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  145. package/lib/commands/project/create/format-elapsed.js +1 -1
  146. package/lib/commands/project/create/main.js +1 -1
  147. package/lib/commands/project/create/non-interactive.js +1 -1
  148. package/lib/commands/project/create/project-template-path.js +1 -1
  149. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  150. package/lib/commands/project/create/use-format-code.js +1 -1
  151. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  152. package/lib/commands/project/index.js +1 -1
  153. package/lib/commands/project/init.js +1 -1
  154. package/lib/commands/project/upgrade.js +1 -1
  155. package/lib/commands/registry.js +1 -1
  156. package/lib/commands/role/create.js +1 -1
  157. package/lib/commands/role/delete.js +1 -1
  158. package/lib/commands/role/detail.js +1 -1
  159. package/lib/commands/role/index.js +1 -1
  160. package/lib/commands/role/list.js +1 -1
  161. package/lib/commands/role/shared.js +1 -1
  162. package/lib/commands/role/update.js +1 -1
  163. package/lib/commands/role/user-add.js +1 -1
  164. package/lib/commands/role/user-remove.js +1 -1
  165. package/lib/commands/role/user-resolve.js +1 -1
  166. package/lib/commands/run/index.js +1 -1
  167. package/lib/commands/schema.js +1 -1
  168. package/lib/commands/sql/create.js +1 -1
  169. package/lib/commands/sql/delete.js +1 -1
  170. package/lib/commands/sql/detail.js +1 -1
  171. package/lib/commands/sql/exec.js +1 -1
  172. package/lib/commands/sql/index.js +1 -1
  173. package/lib/commands/sql/list.js +1 -1
  174. package/lib/commands/sql/pull.js +1 -1
  175. package/lib/commands/sql/push.js +1 -1
  176. package/lib/commands/sql/save.js +1 -1
  177. package/lib/commands/sql/shared.js +1 -1
  178. package/lib/commands/sql/status.js +1 -1
  179. package/lib/commands/sql/validate.js +1 -1
  180. package/lib/commands/task/index.js +1 -1
  181. package/lib/commands/task/status.js +1 -1
  182. package/lib/commands/workspace/add.js +1 -1
  183. package/lib/commands/workspace/index.js +1 -1
  184. package/lib/commands/workspace/remove.js +1 -1
  185. package/lib/config/schema.js +1 -1
  186. package/lib/constant/cdn.js +1 -1
  187. package/lib/constant/cli.js +1 -1
  188. package/lib/constant/defaults.js +1 -1
  189. package/lib/constant/domain.js +1 -1
  190. package/lib/constant/env.js +1 -1
  191. package/lib/constant/output.js +1 -1
  192. package/lib/constant/paths.js +1 -1
  193. package/lib/constant/risk.js +1 -1
  194. package/lib/context/app-resolver.js +1 -1
  195. package/lib/context/auth-resolver.js +1 -1
  196. package/lib/context/config-loader.js +1 -1
  197. package/lib/context.js +1 -1
  198. package/lib/core/alias-resolver.js +1 -1
  199. package/lib/core/api-client.js +1 -1
  200. package/lib/core/bff/config.js +1 -1
  201. package/lib/core/bff/file-system.js +1 -1
  202. package/lib/core/bff/hash.js +1 -1
  203. package/lib/core/bff/lock.js +1 -1
  204. package/lib/core/bff/utils.js +1 -1
  205. package/lib/core/db-resolver.js +1 -1
  206. package/lib/core/page/file-system.js +1 -1
  207. package/lib/core/page/hash.js +1 -1
  208. package/lib/core/page/lock.js +1 -1
  209. package/lib/core/sql-index-auditor.js +1 -1
  210. package/lib/core/sql-sync/config.js +1 -1
  211. package/lib/core/sql-sync/file-system.js +1 -1
  212. package/lib/core/sql-sync/hash.js +1 -1
  213. package/lib/core/sql-sync/lock.js +1 -1
  214. package/lib/core/sql-sync/utils.js +1 -1
  215. package/lib/core/sql-validator.js +1 -1
  216. package/lib/errors.js +1 -1
  217. package/lib/framework/build-all-flags.js +1 -1
  218. package/lib/framework/error-output.js +1 -1
  219. package/lib/framework/explicit-yes.js +1 -1
  220. package/lib/framework/flags.js +1 -1
  221. package/lib/framework/help.js +1 -1
  222. package/lib/framework/index.js +1 -1
  223. package/lib/framework/output.js +1 -1
  224. package/lib/framework/response.js +1 -1
  225. package/lib/framework/runner-alias.js +1 -1
  226. package/lib/framework/runner.js +1 -1
  227. package/lib/framework/schema-export.js +1 -1
  228. package/lib/framework/types.js +1 -1
  229. package/lib/generated/build-info.js +1 -1
  230. package/lib/help.js +1 -1
  231. package/lib/skills/main.js +1 -1
  232. package/lib/skills/npx-skills-add.js +1 -1
  233. package/lib/telemetry/cli-command-trace.js +1 -1
  234. package/lib/telemetry/cli-help-trace.js +1 -1
  235. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  236. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  237. package/lib/telemetry/send-cli-trace-log.js +1 -1
  238. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  239. package/lib/utils/ai_config.js +1 -1
  240. package/lib/utils/apply-jq-filter.js +1 -1
  241. package/lib/utils/cdn-config.js +1 -1
  242. package/lib/utils/check-sdk-version.js +1 -1
  243. package/lib/utils/cli-version-check.js +1 -1
  244. package/lib/utils/cli-version-policy.js +1 -1
  245. package/lib/utils/config.js +1 -1
  246. package/lib/utils/copy-directory.js +1 -1
  247. package/lib/utils/entity-with-id.js +1 -1
  248. package/lib/utils/file-utils.js +1 -1
  249. package/lib/utils/guides-cdn.js +1 -1
  250. package/lib/utils/http-client.js +1 -1
  251. package/lib/utils/is-non-interactive.js +1 -1
  252. package/lib/utils/logger.js +1 -1
  253. package/lib/utils/params.js +1 -1
  254. package/lib/utils/platform.js +1 -1
  255. package/lib/utils/rules-cdn.js +1 -1
  256. package/lib/utils/sleep.js +1 -1
  257. package/lib/utils/template-replacer.js +1 -1
  258. package/lib/utils/update-notice.js +1 -1
  259. package/lib/utils/version.js +1 -1
  260. package/lib/utils/with-active-cookie.js +1 -1
  261. package/lib/utils/write-cli-side-channel.js +1 -1
  262. package/package.json +1 -1
  263. package/lib/commands/menu/update.js +0 -1
@@ -1 +1 @@
1
- const a159_0x5982d2=a159_0x9419;(function(_0x2300f1,_0x1f5af2){const _0x4ae676=a159_0x9419,_0x50eeb7=_0x2300f1();while(!![]){try{const _0x5879df=-parseInt(_0x4ae676(0xe8))/0x1+parseInt(_0x4ae676(0x10a))/0x2*(-parseInt(_0x4ae676(0xf3))/0x3)+-parseInt(_0x4ae676(0x101))/0x4+parseInt(_0x4ae676(0xf1))/0x5*(parseInt(_0x4ae676(0x112))/0x6)+-parseInt(_0x4ae676(0xed))/0x7*(parseInt(_0x4ae676(0xf8))/0x8)+-parseInt(_0x4ae676(0xf5))/0x9*(parseInt(_0x4ae676(0xdf))/0xa)+parseInt(_0x4ae676(0x111))/0xb;if(_0x5879df===_0x1f5af2)break;else _0x50eeb7['push'](_0x50eeb7['shift']());}catch(_0x698c56){_0x50eeb7['push'](_0x50eeb7['shift']());}}}(a159_0x5b76,0x596fc));import{getAppRole,getTenantMembers,listAppRoles,listRoleUsers}from'../../core/api-client.js';import{getSessionUserInfo}from'../../auth/get-session-user.js';import{CliErrors}from'../../errors.js';export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a159_0x5982d2(0xef)};export const ROLE_REF_FLAG={'name':a159_0x5982d2(0xe9),'type':a159_0x5982d2(0x108),'required':!![],'description':a159_0x5982d2(0x10b)};export const USER_REF_FLAG={'name':'user','type':a159_0x5982d2(0x108),'required':!![],'description':a159_0x5982d2(0xd8)};export const NAME_FLAG={'name':a159_0x5982d2(0x113),'type':a159_0x5982d2(0x108),'required':!![],'description':a159_0x5982d2(0x10d)};export const USER_NAME_FLAG={'name':'name','type':'string','required':!![],'description':a159_0x5982d2(0xe1)};export const REMARK_FLAG={'name':a159_0x5982d2(0x11a),'type':a159_0x5982d2(0x108),'required':![],'description':a159_0x5982d2(0xfb)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':'number','required':![],'description':'Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs'};export const BUILTIN_ROLE_TYPES=['ADMIN',a159_0x5982d2(0xee),a159_0x5982d2(0x10f)];export function isBuiltinRole(_0x25ecf5){const _0x3131d7=a159_0x5982d2;return BUILTIN_ROLE_TYPES[_0x3131d7(0x100)](_0x25ecf5);}export function assertCustomRole(_0x1e8df0,_0x4fff87){const _0x14cc8d=a159_0x5982d2;if(_0x1e8df0['roleType']!==_0x14cc8d(0x11b))throw CliErrors['validation'](_0x14cc8d(0x10e)+_0x4fff87+_0x14cc8d(0xf7)+_0x1e8df0[_0x14cc8d(0x104)]+'\x20('+_0x1e8df0['roleType']+').',_0x14cc8d(0x120));}export function assertPermConfigurable(_0x5bbc4b){const _0x7425b4=a159_0x5982d2;if(_0x5bbc4b[_0x7425b4(0xde)]===_0x7425b4(0xee)||_0x5bbc4b[_0x7425b4(0xde)]===_0x7425b4(0xfd))throw CliErrors[_0x7425b4(0xf6)](_0x7425b4(0x121)+_0x5bbc4b[_0x7425b4(0x104)]+'\x20('+_0x5bbc4b['roleType']+').',_0x7425b4(0xdb));}export function projectRole(_0x9afa1b){const _0x483cff=a159_0x5982d2;return{'id':_0x9afa1b['id'],'roleName':_0x9afa1b[_0x483cff(0x104)],'roleType':_0x9afa1b[_0x483cff(0xde)],'remark':_0x9afa1b[_0x483cff(0x11a)],'userCount':_0x9afa1b['userCount'],'permitCount':_0x9afa1b[_0x483cff(0xdd)],'builtin':isBuiltinRole(_0x9afa1b['roleType'])};}export async function resolveRoleRef(_0xd9571f,_0x42173b){const _0x298a24=a159_0x5982d2,_0x127e1c=_0x42173b[_0x298a24(0x109)]();if(!_0x127e1c)throw CliErrors[_0x298a24(0xf6)](_0x298a24(0x117),_0x298a24(0xe6));if(/^\d+$/[_0x298a24(0xff)](_0x127e1c))return getRoleById(_0xd9571f,Number(_0x127e1c));const _0xa2dafe=await listAllAppRoles(_0xd9571f),_0x2aff54=_0xa2dafe[_0x298a24(0xdc)](_0x231a38=>_0x231a38[_0x298a24(0x104)]===_0x127e1c);if(_0x2aff54[_0x298a24(0x11c)]===0x0)throw CliErrors[_0x298a24(0xf6)](_0x298a24(0xe7)+_0x127e1c+'\x22\x20not\x20found\x20in\x20app\x20'+_0xd9571f+'.',_0x298a24(0xe3));if(_0x2aff54[_0x298a24(0x11c)]>0x1){const _0x1a8271=_0x2aff54[_0x298a24(0x110)](_0x4d475c=>_0x4d475c['id'])[_0x298a24(0x11d)](',\x20');throw CliErrors[_0x298a24(0xf6)](_0x298a24(0xe7)+_0x127e1c+_0x298a24(0x115)+_0x1a8271+').','Disambiguate\x20with\x20--role\x20<id>.');}return _0x2aff54[0x0];}export async function getRoleById(_0x2492ef,_0x52e499){const _0x278864=a159_0x5982d2,_0x33570a=await getAppRole(_0x52e499);if(!_0x33570a)throw CliErrors[_0x278864(0xf6)](_0x278864(0xd7)+_0x52e499+'\x20not\x20found\x20in\x20app\x20'+_0x2492ef+'.',_0x278864(0x114));return _0x33570a;}async function listAllAppRoles(_0x372362){const _0x4c7bf4=a159_0x5982d2,_0x43fb68=0x64,_0x24116d=[];for(let _0x2b210c=0x1;;_0x2b210c+=0x1){const {items:_0x102863,paging:_0x498591}=await listAppRoles(_0x372362,{'currentPage':_0x2b210c,'pageSize':_0x43fb68});_0x24116d[_0x4c7bf4(0xf0)](..._0x102863);if(_0x102863[_0x4c7bf4(0x11c)]<_0x43fb68||_0x498591&&_0x24116d[_0x4c7bf4(0x11c)]>=_0x498591['totalCount'])return _0x24116d;}}export async function resolveTenantCode(){const _0x18c19d=a159_0x5982d2,_0x566e45=await getSessionUserInfo(),_0xc292f6=_0x566e45?.[_0x18c19d(0x118)]?.['tenant']?.[_0x18c19d(0xec)];if(!_0xc292f6)throw CliErrors['authRequired'](_0x18c19d(0x10c));return _0xc292f6;}function matchMember(_0x3c95f8,_0x1c60e9){const _0x5d8c28=a159_0x5982d2,_0x559287=_0x1c60e9[_0x5d8c28(0x109)]()[_0x5d8c28(0x107)]();return(_0x3c95f8[_0x5d8c28(0x122)]??'')[_0x5d8c28(0x107)]()===_0x559287||(_0x3c95f8[_0x5d8c28(0x116)]??'')['toLowerCase']()===_0x559287;}export async function resolveUserRef(_0x1c1ab2){const _0x3b3c57=a159_0x5982d2,_0x373ad9=_0x1c1ab2['trim']();if(!_0x373ad9)throw CliErrors[_0x3b3c57(0xf6)]('Missing\x20user\x20reference.',_0x3b3c57(0xfe));const _0x4e07fc=await resolveTenantCode(),_0x125091=await getTenantMembers(_0x4e07fc);if(/^\d+$/['test'](_0x373ad9)){const _0x5e18cf=Number(_0x373ad9),_0x5bc0e8=_0x125091[_0x3b3c57(0x102)](_0x278631=>_0x278631[_0x3b3c57(0x11f)]===_0x5e18cf);return{'userId':_0x5e18cf,'username':_0x5bc0e8?.['username']??String(_0x5e18cf),'nickname':_0x5bc0e8?.[_0x3b3c57(0x122)],'matchedBy':'id'};}const _0x46d8f9=_0x125091[_0x3b3c57(0xdc)](_0x1a68d3=>matchMember(_0x1a68d3,_0x373ad9));if(_0x46d8f9[_0x3b3c57(0x11c)]===0x0)throw CliErrors[_0x3b3c57(0xf6)](_0x3b3c57(0xeb)+_0x373ad9+'\x22.',_0x3b3c57(0x119));if(_0x46d8f9['length']>0x1){const _0x3c06cb=_0x46d8f9[_0x3b3c57(0x110)](_0x13e65b=>(_0x13e65b[_0x3b3c57(0x122)]??_0x13e65b[_0x3b3c57(0x116)]??'?')+'('+_0x13e65b[_0x3b3c57(0x11f)]+')')[_0x3b3c57(0x11d)](',\x20');throw CliErrors[_0x3b3c57(0xf6)](_0x3b3c57(0xe2)+_0x373ad9+_0x3b3c57(0xd6)+_0x3c06cb+'.','Disambiguate\x20with\x20--user\x20<id>.');}const _0x4d0b9b=_0x46d8f9[0x0];return{'userId':_0x4d0b9b[_0x3b3c57(0x11f)],'username':_0x4d0b9b[_0x3b3c57(0x116)]??String(_0x4d0b9b[_0x3b3c57(0x11f)]),'nickname':_0x4d0b9b[_0x3b3c57(0x122)],'matchedBy':_0x3b3c57(0x113)};}export const UPDATE_USER_LIST_PATH='/smartapi/permit/user-role/update-user-list';function userIdsOf(_0x24f3a5){const _0x5eab94=a159_0x5982d2;return(_0x24f3a5?.[_0x5eab94(0xf9)]??[])[_0x5eab94(0x110)](_0x469bbb=>_0x469bbb[_0x5eab94(0x11f)]);}export function computeRoleUserMutation(_0x43234d){const _0x25c9fb=a159_0x5982d2,{operation:_0x3a09d1,appCode:_0x5afb2e,roleUsers:_0x40a9eb,targetRoleId:_0x3f341a,user:_0xf7d95}=_0x43234d,_0x2eb5ca=_0x40a9eb[_0x25c9fb(0x102)](_0x454aad=>_0x454aad['id']===_0x3f341a);if(!_0x2eb5ca)throw CliErrors[_0x25c9fb(0xf6)](_0x25c9fb(0xd7)+_0x3f341a+'\x20not\x20found\x20in\x20the\x20user-role\x20list.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.');const _0x5df2bb=userIdsOf(_0x2eb5ca),_0x4e7818=[];if(_0x43234d[_0x25c9fb(0xf4)]!==undefined&&_0x43234d[_0x25c9fb(0xf4)]!==_0x5df2bb[_0x25c9fb(0x11c)])throw CliErrors['validation'](_0x25c9fb(0xd9)+_0x43234d[_0x25c9fb(0xf4)]+_0x25c9fb(0x105)+_0x5df2bb[_0x25c9fb(0x11c)]+'.',_0x25c9fb(0xe0));const _0x198ab4=_0x5df2bb['includes'](_0xf7d95[_0x25c9fb(0x11f)]);let _0x1a7739=![];const _0x31e010=[..._0x2eb5ca[_0x25c9fb(0xf9)]];if(_0x3a09d1===_0x25c9fb(0xf2))_0x198ab4?_0x4e7818[_0x25c9fb(0xf0)](_0x25c9fb(0xfc)+_0xf7d95[_0x25c9fb(0x11f)]+_0x25c9fb(0x106)+_0x2eb5ca[_0x25c9fb(0x104)]+';\x20no\x20change.'):(_0x31e010['push']({'userId':_0xf7d95[_0x25c9fb(0x11f)],'username':_0xf7d95[_0x25c9fb(0x116)],..._0xf7d95[_0x25c9fb(0x122)]?{'nickname':_0xf7d95['nickname']}:{}}),_0x1a7739=!![]);else{if(!_0x198ab4)_0x4e7818[_0x25c9fb(0xf0)](_0x25c9fb(0xfc)+_0xf7d95['userId']+_0x25c9fb(0x11e)+_0x2eb5ca[_0x25c9fb(0x104)]+';\x20no\x20change.');else{const _0x40de2a=_0x31e010['findIndex'](_0x1d9af4=>_0x1d9af4['userId']===_0xf7d95['userId']);if(_0x40de2a>=0x0)_0x31e010[_0x25c9fb(0x103)](_0x40de2a,0x1);_0x1a7739=!![];}}const _0x90781=_0x40a9eb['map'](_0x4fdf74=>_0x4fdf74['id']===_0x3f341a?{..._0x4fdf74,'userList':_0x31e010}:_0x4fdf74),_0x5204ce=_0x31e010[_0x25c9fb(0x110)](_0x28b01b=>_0x28b01b['userId']),_0x222024={'operation':_0x3a09d1,'selector':{'appCode':_0x5afb2e,'roleId':_0x3f341a,'roleName':_0x2eb5ca[_0x25c9fb(0x104)],'userId':_0xf7d95['userId']},'before':{'userIds':_0x5df2bb},'after':{'userIds':_0x5204ce},'dryRun':_0x43234d[_0x25c9fb(0xe5)],'backend':{'method':'POST','path':UPDATE_USER_LIST_PATH},'warnings':_0x4e7818};return{'roleList':_0x90781,'mutation':_0x222024,'changed':_0x1a7739};}function a159_0x9419(_0x425dba,_0x4ab4cf){_0x425dba=_0x425dba-0xd6;const _0x5b76f8=a159_0x5b76();let _0x94193c=_0x5b76f8[_0x425dba];return _0x94193c;}function a159_0x5b76(){const _0x5c874=['dryRun','Pass\x20--role\x20<id|name>.','Role\x20name\x20\x22','342818btYmTc','role','flag','No\x20tenant\x20member\x20matches\x20\x22','tenant_code','45024yKyqFR','DEV','Role\x20id\x20(from\x20`role\x20list`)','push','10uEwmFH','user-add','14613pOFISv','expectUserCount','1746FSIZPP','validation','\x20built-in\x20role\x20','304zLZwuw','userList','flagMissing','Optional\x20role\x20remark/description','User\x20','ADMIN','Pass\x20--user\x20<id|name>.','test','includes','2413704ASooVK','find','splice','roleName','\x20member(s)\x20but\x20role\x20has\x20','\x20is\x20already\x20a\x20member\x20of\x20role\x20','toLowerCase','string','trim','214gINDad','Role\x20id\x20or\x20role\x20name\x20(CUSTOM\x20roles\x20may\x20be\x20referenced\x20by\x20name)','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','Role\x20name','Cannot\x20','USER','map','19586127Sztdim','2033034xBfuQn','name','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.','\x22\x20is\x20ambiguous\x20(ids:\x20','username','Missing\x20role\x20reference.','user','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.','remark','CUSTOM','length','join','\x20is\x20not\x20a\x20member\x20of\x20role\x20','userId','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','Cannot\x20change\x20the\x20permission\x20matrix\x20of\x20built-in\x20role\x20','nickname','expect-user-count','\x22:\x20','Role\x20id\x20','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','Anti-drift\x20check\x20failed:\x20expected\x20','str','DEV\x20/\x20ADMIN\x20keep\x20full\x20access\x20by\x20design;\x20configure\x20a\x20CUSTOM\x20role\x20instead.','filter','permitCount','roleType','19590piOZqt','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.','Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId','Multiple\x20tenant\x20members\x20match\x20\x22','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.','appCode'];a159_0x5b76=function(){return _0x5c874;};return a159_0x5b76();}export async function loadRoleUsers(_0x11d8f5){return listRoleUsers(_0x11d8f5);}export function readRoleRef(_0x28ad9a){const _0x2b9311=a159_0x5982d2,_0x55dec7=_0x28ad9a[_0x2b9311(0xda)](_0x2b9311(0xe9))[_0x2b9311(0x109)]();if(!_0x55dec7)throw CliErrors['flagMissing']('role',_0x2b9311(0xe6));return _0x55dec7;}export async function prepareUserMutation(_0x435a77,_0x448015,_0x595f76){const _0x427c3c=a159_0x5982d2,_0x1c20e6=readRoleRef(_0x435a77),_0xbfc475=_0x435a77[_0x427c3c(0xda)](_0x427c3c(0x118))['trim']();if(!_0xbfc475)throw CliErrors[_0x427c3c(0xfa)](_0x427c3c(0x118),_0x427c3c(0xfe));const _0x4fe010=_0x435a77[_0x427c3c(0xea)](_0x427c3c(0x123)),_0x58b12f=_0x4fe010===undefined||_0x4fe010===null?undefined:Number(_0x4fe010),_0x470851=await resolveRoleRef(_0x435a77[_0x427c3c(0xe4)],_0x1c20e6),_0x38add3=await resolveUserRef(_0xbfc475),_0x25ea5e=await loadRoleUsers(_0x435a77['appCode']);return computeRoleUserMutation({'operation':_0x448015,'appCode':_0x435a77[_0x427c3c(0xe4)],'roleUsers':_0x25ea5e,'targetRoleId':_0x470851['id'],'user':{'userId':_0x38add3['userId'],'username':_0x38add3['username'],'nickname':_0x38add3[_0x427c3c(0x122)]},'dryRun':_0x595f76,..._0x58b12f!==undefined?{'expectUserCount':_0x58b12f}:{}});}
1
+ const a160_0x435d4d=a160_0x5602;(function(_0x122b7d,_0x485c83){const _0x8d2907=a160_0x5602,_0x4cc9ef=_0x122b7d();while(!![]){try{const _0x3da389=-parseInt(_0x8d2907(0x1b9))/0x1+-parseInt(_0x8d2907(0x1c0))/0x2*(parseInt(_0x8d2907(0x17d))/0x3)+parseInt(_0x8d2907(0x17c))/0x4+-parseInt(_0x8d2907(0x1a7))/0x5*(parseInt(_0x8d2907(0x19f))/0x6)+-parseInt(_0x8d2907(0x192))/0x7*(-parseInt(_0x8d2907(0x1be))/0x8)+parseInt(_0x8d2907(0x1b1))/0x9+-parseInt(_0x8d2907(0x19b))/0xa;if(_0x3da389===_0x485c83)break;else _0x4cc9ef['push'](_0x4cc9ef['shift']());}catch(_0x1f19d){_0x4cc9ef['push'](_0x4cc9ef['shift']());}}}(a160_0x3888,0xa2f12));import{getAppRole,getTenantMembers,listAppRoles,listRoleUsers}from'../../core/api-client.js';import{getSessionUserInfo}from'../../auth/get-session-user.js';import{CliErrors}from'../../errors.js';export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':a160_0x435d4d(0x183)};export const ROLE_REF_FLAG={'name':a160_0x435d4d(0x18a),'type':a160_0x435d4d(0x1c1),'required':!![],'description':'Role\x20id\x20or\x20role\x20name\x20(CUSTOM\x20roles\x20may\x20be\x20referenced\x20by\x20name)'};export const USER_REF_FLAG={'name':a160_0x435d4d(0x18f),'type':a160_0x435d4d(0x1c1),'required':!![],'description':a160_0x435d4d(0x1a0)};export const NAME_FLAG={'name':a160_0x435d4d(0x172),'type':a160_0x435d4d(0x1c1),'required':!![],'description':a160_0x435d4d(0x1b7)};export const USER_NAME_FLAG={'name':a160_0x435d4d(0x172),'type':'string','required':!![],'description':'Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId'};export const REMARK_FLAG={'name':a160_0x435d4d(0x195),'type':a160_0x435d4d(0x1c1),'required':![],'description':a160_0x435d4d(0x1ad)};export const EXPECT_USER_COUNT_FLAG={'name':a160_0x435d4d(0x1aa),'type':a160_0x435d4d(0x191),'required':![],'description':'Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs'};export const BUILTIN_ROLE_TYPES=[a160_0x435d4d(0x19c),a160_0x435d4d(0x1ba),'USER'];export function isBuiltinRole(_0x49fd98){const _0x10a594=a160_0x435d4d;return BUILTIN_ROLE_TYPES[_0x10a594(0x1bf)](_0x49fd98);}export function assertCustomRole(_0x4359ca,_0x268387){const _0x43d031=a160_0x435d4d;if(_0x4359ca[_0x43d031(0x173)]!=='CUSTOM')throw CliErrors[_0x43d031(0x1a8)](_0x43d031(0x18d)+_0x268387+_0x43d031(0x19e)+_0x4359ca[_0x43d031(0x1a3)]+'\x20('+_0x4359ca[_0x43d031(0x173)]+').',_0x43d031(0x1a4));}export function assertPermConfigurable(_0x1ccadf){const _0x3c124c=a160_0x435d4d;if(_0x1ccadf[_0x3c124c(0x173)]===_0x3c124c(0x1ba)||_0x1ccadf['roleType']==='ADMIN')throw CliErrors[_0x3c124c(0x1a8)]('Cannot\x20change\x20the\x20permission\x20matrix\x20of\x20built-in\x20role\x20'+_0x1ccadf[_0x3c124c(0x1a3)]+'\x20('+_0x1ccadf['roleType']+').',_0x3c124c(0x181));}function a160_0x5602(_0x5528d8,_0x51b873){_0x5528d8=_0x5528d8-0x172;const _0x3888bb=a160_0x3888();let _0x560288=_0x3888bb[_0x5528d8];return _0x560288;}export function projectRole(_0x4fcfc0){const _0x5ae911=a160_0x435d4d;return{'id':_0x4fcfc0['id'],'roleName':_0x4fcfc0[_0x5ae911(0x1a3)],'roleType':_0x4fcfc0[_0x5ae911(0x173)],'remark':_0x4fcfc0['remark'],'userCount':_0x4fcfc0[_0x5ae911(0x18c)],'permitCount':_0x4fcfc0[_0x5ae911(0x193)],'builtin':isBuiltinRole(_0x4fcfc0[_0x5ae911(0x173)])};}export async function resolveRoleRef(_0x40ef20,_0x4e60c8){const _0x857b4d=a160_0x435d4d,_0x2a4631=_0x4e60c8[_0x857b4d(0x176)]();if(!_0x2a4631)throw CliErrors[_0x857b4d(0x1a8)]('Missing\x20role\x20reference.',_0x857b4d(0x18b));if(/^\d+$/[_0x857b4d(0x1bb)](_0x2a4631))return getRoleById(_0x40ef20,Number(_0x2a4631));const _0x330c27=await listAllAppRoles(_0x40ef20),_0x3be0d6=_0x330c27['filter'](_0x6551f8=>_0x6551f8[_0x857b4d(0x1a3)]===_0x2a4631);if(_0x3be0d6[_0x857b4d(0x184)]===0x0)throw CliErrors[_0x857b4d(0x1a8)](_0x857b4d(0x194)+_0x2a4631+_0x857b4d(0x1ab)+_0x40ef20+'.',_0x857b4d(0x19d));if(_0x3be0d6['length']>0x1){const _0x572c99=_0x3be0d6[_0x857b4d(0x1a1)](_0x1ad3d9=>_0x1ad3d9['id'])[_0x857b4d(0x1a2)](',\x20');throw CliErrors[_0x857b4d(0x1a8)]('Role\x20name\x20\x22'+_0x2a4631+_0x857b4d(0x199)+_0x572c99+').','Disambiguate\x20with\x20--role\x20<id>.');}return _0x3be0d6[0x0];}export async function getRoleById(_0x146510,_0x4610c6){const _0x1ed7c3=a160_0x435d4d,_0x1cbe49=await getAppRole(_0x4610c6);if(!_0x1cbe49)throw CliErrors[_0x1ed7c3(0x1a8)](_0x1ed7c3(0x17f)+_0x4610c6+_0x1ed7c3(0x1bd)+_0x146510+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.');return _0x1cbe49;}async function listAllAppRoles(_0x164e75){const _0x51acbf=a160_0x435d4d,_0x242a5a=0x64,_0x1e2f19=[];for(let _0x3a47c0=0x1;;_0x3a47c0+=0x1){const {items:_0x1a5d47,paging:_0x25917f}=await listAppRoles(_0x164e75,{'currentPage':_0x3a47c0,'pageSize':_0x242a5a});_0x1e2f19['push'](..._0x1a5d47);if(_0x1a5d47['length']<_0x242a5a||_0x25917f&&_0x1e2f19[_0x51acbf(0x184)]>=_0x25917f[_0x51acbf(0x1a5)])return _0x1e2f19;}}export async function resolveTenantCode(){const _0x34bb8c=a160_0x435d4d,_0x413048=await getSessionUserInfo(),_0x16bb18=_0x413048?.[_0x34bb8c(0x18f)]?.[_0x34bb8c(0x18e)]?.[_0x34bb8c(0x175)];if(!_0x16bb18)throw CliErrors[_0x34bb8c(0x17a)](_0x34bb8c(0x177));return _0x16bb18;}function matchMember(_0x10c088,_0x35f288){const _0x318607=a160_0x435d4d,_0x5d7beb=_0x35f288['trim']()[_0x318607(0x197)]();return(_0x10c088[_0x318607(0x1b4)]??'')[_0x318607(0x197)]()===_0x5d7beb||(_0x10c088[_0x318607(0x182)]??'')['toLowerCase']()===_0x5d7beb;}export async function resolveUserRef(_0x1a9f9e){const _0x2bf0c7=a160_0x435d4d,_0x8d3b42=_0x1a9f9e['trim']();if(!_0x8d3b42)throw CliErrors['validation'](_0x2bf0c7(0x1a6),'Pass\x20--user\x20<id|name>.');const _0x4ab9fe=await resolveTenantCode(),_0x19148b=await getTenantMembers(_0x4ab9fe);if(/^\d+$/['test'](_0x8d3b42)){const _0x4aef99=Number(_0x8d3b42),_0x59429a=_0x19148b['find'](_0x33b483=>_0x33b483[_0x2bf0c7(0x198)]===_0x4aef99);return{'userId':_0x4aef99,'username':_0x59429a?.[_0x2bf0c7(0x182)]??String(_0x4aef99),'nickname':_0x59429a?.['nickname'],'matchedBy':'id'};}const _0x5c799a=_0x19148b[_0x2bf0c7(0x1b5)](_0xb7df0=>matchMember(_0xb7df0,_0x8d3b42));if(_0x5c799a[_0x2bf0c7(0x184)]===0x0)throw CliErrors['validation'](_0x2bf0c7(0x179)+_0x8d3b42+'\x22.',_0x2bf0c7(0x1bc));if(_0x5c799a[_0x2bf0c7(0x184)]>0x1){const _0xf7915d=_0x5c799a['map'](_0x386773=>(_0x386773[_0x2bf0c7(0x1b4)]??_0x386773[_0x2bf0c7(0x182)]??'?')+'('+_0x386773[_0x2bf0c7(0x198)]+')')[_0x2bf0c7(0x1a2)](',\x20');throw CliErrors[_0x2bf0c7(0x1a8)](_0x2bf0c7(0x1b8)+_0x8d3b42+_0x2bf0c7(0x1ac)+_0xf7915d+'.',_0x2bf0c7(0x1b3));}const _0x2b6d67=_0x5c799a[0x0];return{'userId':_0x2b6d67[_0x2bf0c7(0x198)],'username':_0x2b6d67[_0x2bf0c7(0x182)]??String(_0x2b6d67[_0x2bf0c7(0x198)]),'nickname':_0x2b6d67[_0x2bf0c7(0x1b4)],'matchedBy':_0x2bf0c7(0x172)};}function a160_0x3888(){const _0x2b12e2=['DEV','test','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.','\x20not\x20found\x20in\x20app\x20','4190440yvjFAJ','includes','45542wLVthh','string','name','roleType','Pass\x20--user\x20<id|name>.','tenant_code','trim','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','\x20member(s)\x20but\x20role\x20has\x20','No\x20tenant\x20member\x20matches\x20\x22','authRequired','\x20is\x20not\x20a\x20member\x20of\x20role\x20','2396524aNFcED','171PxitPU','userList','Role\x20id\x20','expectUserCount','DEV\x20/\x20ADMIN\x20keep\x20full\x20access\x20by\x20design;\x20configure\x20a\x20CUSTOM\x20role\x20instead.','username','Role\x20id\x20(from\x20`role\x20list`)','length','str',';\x20no\x20change.','dryRun','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.','appCode','role','Pass\x20--role\x20<id|name>.','userCount','Cannot\x20','tenant','user','push','number','14McYYsI','permitCount','Role\x20name\x20\x22','remark','splice','toLowerCase','userId','\x22\x20is\x20ambiguous\x20(ids:\x20','Anti-drift\x20check\x20failed:\x20expected\x20','3575170dMmkvw','ADMIN','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.','\x20built-in\x20role\x20','156mTnQNz','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','map','join','roleName','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','totalCount','Missing\x20user\x20reference.','11395mmemMH','validation','flagMissing','expect-user-count','\x22\x20not\x20found\x20in\x20app\x20','\x22:\x20','Optional\x20role\x20remark/description','user-add','/smartapi/permit/user-role/update-user-list','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.','9569772qIXSdh','\x20is\x20already\x20a\x20member\x20of\x20role\x20','Disambiguate\x20with\x20--user\x20<id>.','nickname','filter','User\x20','Role\x20name','Multiple\x20tenant\x20members\x20match\x20\x22','327921JFZZNu'];a160_0x3888=function(){return _0x2b12e2;};return a160_0x3888();}export const UPDATE_USER_LIST_PATH=a160_0x435d4d(0x1af);function userIdsOf(_0x5e01d6){const _0x3ff344=a160_0x435d4d;return(_0x5e01d6?.[_0x3ff344(0x17e)]??[])[_0x3ff344(0x1a1)](_0x5b052a=>_0x5b052a['userId']);}export function computeRoleUserMutation(_0x5e272e){const _0x3a975a=a160_0x435d4d,{operation:_0x5ea7c8,appCode:_0x5a1ede,roleUsers:_0xa96052,targetRoleId:_0xb0090,user:_0x18a318}=_0x5e272e,_0x555eb1=_0xa96052['find'](_0x299b7e=>_0x299b7e['id']===_0xb0090);if(!_0x555eb1)throw CliErrors[_0x3a975a(0x1a8)](_0x3a975a(0x17f)+_0xb0090+'\x20not\x20found\x20in\x20the\x20user-role\x20list.',_0x3a975a(0x1b0));const _0x4e45f0=userIdsOf(_0x555eb1),_0x21e7d0=[];if(_0x5e272e[_0x3a975a(0x180)]!==undefined&&_0x5e272e[_0x3a975a(0x180)]!==_0x4e45f0[_0x3a975a(0x184)])throw CliErrors[_0x3a975a(0x1a8)](_0x3a975a(0x19a)+_0x5e272e[_0x3a975a(0x180)]+_0x3a975a(0x178)+_0x4e45f0['length']+'.',_0x3a975a(0x188));const _0x1d2bcd=_0x4e45f0['includes'](_0x18a318['userId']);let _0x46de3b=![];const _0xa52398=[..._0x555eb1[_0x3a975a(0x17e)]];if(_0x5ea7c8===_0x3a975a(0x1ae))_0x1d2bcd?_0x21e7d0[_0x3a975a(0x190)](_0x3a975a(0x1b6)+_0x18a318[_0x3a975a(0x198)]+_0x3a975a(0x1b2)+_0x555eb1[_0x3a975a(0x1a3)]+_0x3a975a(0x186)):(_0xa52398[_0x3a975a(0x190)]({'userId':_0x18a318[_0x3a975a(0x198)],'username':_0x18a318[_0x3a975a(0x182)],..._0x18a318[_0x3a975a(0x1b4)]?{'nickname':_0x18a318['nickname']}:{}}),_0x46de3b=!![]);else{if(!_0x1d2bcd)_0x21e7d0['push'](_0x3a975a(0x1b6)+_0x18a318[_0x3a975a(0x198)]+_0x3a975a(0x17b)+_0x555eb1[_0x3a975a(0x1a3)]+_0x3a975a(0x186));else{const _0x3297bc=_0xa52398['findIndex'](_0x20949c=>_0x20949c[_0x3a975a(0x198)]===_0x18a318[_0x3a975a(0x198)]);if(_0x3297bc>=0x0)_0xa52398[_0x3a975a(0x196)](_0x3297bc,0x1);_0x46de3b=!![];}}const _0x5ef457=_0xa96052[_0x3a975a(0x1a1)](_0x683fbd=>_0x683fbd['id']===_0xb0090?{..._0x683fbd,'userList':_0xa52398}:_0x683fbd),_0x5e7abd=_0xa52398[_0x3a975a(0x1a1)](_0x1d88ee=>_0x1d88ee[_0x3a975a(0x198)]),_0x41d03a={'operation':_0x5ea7c8,'selector':{'appCode':_0x5a1ede,'roleId':_0xb0090,'roleName':_0x555eb1[_0x3a975a(0x1a3)],'userId':_0x18a318[_0x3a975a(0x198)]},'before':{'userIds':_0x4e45f0},'after':{'userIds':_0x5e7abd},'dryRun':_0x5e272e[_0x3a975a(0x187)],'backend':{'method':'POST','path':UPDATE_USER_LIST_PATH},'warnings':_0x21e7d0};return{'roleList':_0x5ef457,'mutation':_0x41d03a,'changed':_0x46de3b};}export async function loadRoleUsers(_0xdbcacd){return listRoleUsers(_0xdbcacd);}export function readRoleRef(_0x333f1c){const _0x267ef6=a160_0x435d4d,_0x233746=_0x333f1c[_0x267ef6(0x185)](_0x267ef6(0x18a))[_0x267ef6(0x176)]();if(!_0x233746)throw CliErrors[_0x267ef6(0x1a9)](_0x267ef6(0x18a),_0x267ef6(0x18b));return _0x233746;}export async function prepareUserMutation(_0x1525e1,_0x49f64b,_0x1142c0){const _0x20f6f0=a160_0x435d4d,_0x16e472=readRoleRef(_0x1525e1),_0x558b44=_0x1525e1[_0x20f6f0(0x185)]('user')[_0x20f6f0(0x176)]();if(!_0x558b44)throw CliErrors['flagMissing'](_0x20f6f0(0x18f),_0x20f6f0(0x174));const _0x520f83=_0x1525e1['flag'](_0x20f6f0(0x1aa)),_0x35e8ee=_0x520f83===undefined||_0x520f83===null?undefined:Number(_0x520f83),_0x31562a=await resolveRoleRef(_0x1525e1[_0x20f6f0(0x189)],_0x16e472),_0x534022=await resolveUserRef(_0x558b44),_0x62808a=await loadRoleUsers(_0x1525e1[_0x20f6f0(0x189)]);return computeRoleUserMutation({'operation':_0x49f64b,'appCode':_0x1525e1[_0x20f6f0(0x189)],'roleUsers':_0x62808a,'targetRoleId':_0x31562a['id'],'user':{'userId':_0x534022['userId'],'username':_0x534022[_0x20f6f0(0x182)],'nickname':_0x534022[_0x20f6f0(0x1b4)]},'dryRun':_0x1142c0,..._0x35e8ee!==undefined?{'expectUserCount':_0x35e8ee}:{}});}
@@ -1 +1 @@
1
- const a160_0x54e229=a160_0x208a;(function(_0xd92db6,_0x4edf84){const _0x10b687=a160_0x208a,_0x54e5bf=_0xd92db6();while(!![]){try{const _0x4f7764=-parseInt(_0x10b687(0xdb))/0x1+-parseInt(_0x10b687(0xda))/0x2*(parseInt(_0x10b687(0xd0))/0x3)+-parseInt(_0x10b687(0xcf))/0x4*(-parseInt(_0x10b687(0xdc))/0x5)+-parseInt(_0x10b687(0xc9))/0x6+-parseInt(_0x10b687(0xd1))/0x7*(parseInt(_0x10b687(0xc5))/0x8)+parseInt(_0x10b687(0xd6))/0x9+parseInt(_0x10b687(0xdd))/0xa;if(_0x4f7764===_0x4edf84)break;else _0x54e5bf['push'](_0x54e5bf['shift']());}catch(_0xe2be36){_0x54e5bf['push'](_0x54e5bf['shift']());}}}(a160_0x562b,0x97a03));import{updateAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a160_0x562b(){const _0x5a2a02=['POST','appCode','update','3843084RJuElJ','177NxEqZl','2619239lkggVI','num','/smartapi/permit/role/update','Pass\x20at\x20least\x20one\x20of\x20--name\x20/\x20--remark.','validation','6148476NTwLIe','name','write','--name\x20cannot\x20be\x20empty.','9394lgxkCu','1037828Uhssuh','5VsfbLn','14461400UTzOZP','role','Role\x20name\x20cannot\x20exceed\x2064\x20characters.','\x20(id=','roleName','string','8pSNzAu','flag','trim','Updated\x20role\x20','4679328lIJnXU','New\x20role\x20name','remark'];a160_0x562b=function(){return _0x5a2a02;};return a160_0x562b();}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';function a160_0x208a(_0x59cb5a,_0xec869d){_0x59cb5a=_0x59cb5a-0xc5;const _0x562ba7=a160_0x562b();let _0x208a72=_0x562ba7[_0x59cb5a];return _0x208a72;}import{assertCustomRole,getRoleById,projectRole,REMARK_FLAG,ROLE_ID_FLAG}from'../../commands/role/shared.js';const UPDATE_PATH=a160_0x54e229(0xd3);function readPatch(_0x529d05){const _0x14a1b6=a160_0x54e229,_0x2dab0a=_0x529d05[_0x14a1b6(0xc6)](_0x14a1b6(0xd7)),_0x2427d4=_0x529d05[_0x14a1b6(0xc6)]('remark'),_0x1a13b8={};if(_0x2dab0a!==undefined&&_0x2dab0a!==null){const _0xd7108b=String(_0x2dab0a)[_0x14a1b6(0xc7)]();if(!_0xd7108b)throw CliErrors[_0x14a1b6(0xd5)](_0x14a1b6(0xd9));if(_0xd7108b['length']>0x40)throw CliErrors[_0x14a1b6(0xd5)](_0x14a1b6(0xdf));_0x1a13b8[_0x14a1b6(0xe1)]=_0xd7108b;}_0x2427d4!==undefined&&_0x2427d4!==null&&(_0x1a13b8[_0x14a1b6(0xcb)]=String(_0x2427d4));if(_0x1a13b8[_0x14a1b6(0xe1)]===undefined&&_0x1a13b8['remark']===undefined)throw CliErrors[_0x14a1b6(0xd5)]('Nothing\x20to\x20update.',_0x14a1b6(0xd4));return _0x1a13b8;}export const roleUpdate={'service':a160_0x54e229(0xde),'command':a160_0x54e229(0xce),'description':'Update\x20a\x20CUSTOM\x20role\x27s\x20name/remark\x20(DEV/ADMIN\x20rejected)','risk':a160_0x54e229(0xd8),'flags':[ROLE_ID_FLAG,{...REMARK_FLAG},{'name':'name','type':a160_0x54e229(0xe2),'required':![],'description':a160_0x54e229(0xca)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x3721a4){readPatch(_0x3721a4);},async 'dryRun'(_0x5b9b65){const _0x534dd3=a160_0x54e229,_0x486d5f=_0x5b9b65[_0x534dd3(0xd2)]('id'),_0x1b0184=readPatch(_0x5b9b65),_0x4dc1b7=await getRoleById(_0x5b9b65[_0x534dd3(0xcd)],_0x486d5f);return assertCustomRole(_0x4dc1b7,_0x534dd3(0xce)),asDryRunResult({'operation':_0x534dd3(0xce),'selector':{'appCode':_0x5b9b65[_0x534dd3(0xcd)],'roleId':_0x486d5f,'roleName':_0x4dc1b7['roleName']},'before':projectRole(_0x4dc1b7),'after':projectRole({..._0x4dc1b7,..._0x1b0184[_0x534dd3(0xe1)]!==undefined?{'roleName':_0x1b0184[_0x534dd3(0xe1)]}:{},..._0x1b0184[_0x534dd3(0xcb)]!==undefined?{'remark':_0x1b0184[_0x534dd3(0xcb)]}:{}}),'dryRun':!![],'backend':{'method':_0x534dd3(0xcc),'path':UPDATE_PATH},'warnings':[]},{'method':'POST','url':UPDATE_PATH});},async 'execute'(_0x4e8e70){const _0x32b571=a160_0x54e229,_0x46b4af=_0x4e8e70[_0x32b571(0xd2)]('id'),_0x20e8f4=readPatch(_0x4e8e70),_0x2f32e3=await getRoleById(_0x4e8e70[_0x32b571(0xcd)],_0x46b4af);assertCustomRole(_0x2f32e3,_0x32b571(0xce)),await updateAppRole({'id':_0x46b4af,'appCode':_0x4e8e70['appCode'],..._0x20e8f4['roleName']!==undefined?{'roleName':_0x20e8f4[_0x32b571(0xe1)]}:{},..._0x20e8f4[_0x32b571(0xcb)]!==undefined?{'remark':_0x20e8f4[_0x32b571(0xcb)]}:{}});const _0x5de9ec=await getRoleById(_0x4e8e70[_0x32b571(0xcd)],_0x46b4af);return{'ok':!![],'data':{'operation':_0x32b571(0xce),'selector':{'appCode':_0x4e8e70[_0x32b571(0xcd)],'roleId':_0x46b4af,'roleName':_0x5de9ec[_0x32b571(0xe1)]},'before':projectRole(_0x2f32e3),'after':projectRole(_0x5de9ec),'dryRun':![],'backend':{'method':_0x32b571(0xcc),'path':UPDATE_PATH},'warnings':[]},'message':_0x32b571(0xc8)+_0x5de9ec[_0x32b571(0xe1)]+_0x32b571(0xe0)+_0x46b4af+')'};}};
1
+ const a161_0x32b476=a161_0x3e7d;(function(_0x20a914,_0xd071ec){const _0x23d6b9=a161_0x3e7d,_0x456c5b=_0x20a914();while(!![]){try{const _0x5e89aa=-parseInt(_0x23d6b9(0x118))/0x1+-parseInt(_0x23d6b9(0x11c))/0x2*(parseInt(_0x23d6b9(0x119))/0x3)+-parseInt(_0x23d6b9(0x123))/0x4+-parseInt(_0x23d6b9(0x121))/0x5+-parseInt(_0x23d6b9(0x10a))/0x6*(-parseInt(_0x23d6b9(0x114))/0x7)+parseInt(_0x23d6b9(0x11f))/0x8*(parseInt(_0x23d6b9(0x10f))/0x9)+-parseInt(_0x23d6b9(0x10c))/0xa*(-parseInt(_0x23d6b9(0x11e))/0xb);if(_0x5e89aa===_0xd071ec)break;else _0x456c5b['push'](_0x456c5b['shift']());}catch(_0x1a9e65){_0x456c5b['push'](_0x456c5b['shift']());}}}(a161_0x4f2a,0xa9bc1));import{updateAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a161_0x4f2a(){const _0x5ea743=['16304180uQQBDi','Pass\x20at\x20least\x20one\x20of\x20--name\x20/\x20--remark.','/smartapi/permit/role/update','9AxiNdt','New\x20role\x20name','num','role','POST','7Scrpeb','appCode','--name\x20cannot\x20be\x20empty.','Role\x20name\x20cannot\x20exceed\x2064\x20characters.','1381234gzCDQF','36330pLzYWa','\x20(id=','trim','16ttDlHv','write','11lPLgxW','160408IKDkEz','string','1083495NrbSbL','update','2259588XvXqnz','remark','flag','roleName','Update\x20a\x20CUSTOM\x20role\x27s\x20name/remark\x20(DEV/ADMIN\x20rejected)','validation','7826844edYHoy','name'];a161_0x4f2a=function(){return _0x5ea743;};return a161_0x4f2a();}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a161_0x3e7d(_0x3c1441,_0x4364f6){_0x3c1441=_0x3c1441-0x105;const _0x4f2a18=a161_0x4f2a();let _0x3e7d4a=_0x4f2a18[_0x3c1441];return _0x3e7d4a;}import{asDryRunResult}from'../../commands/common/dry-run.js';import{assertCustomRole,getRoleById,projectRole,REMARK_FLAG,ROLE_ID_FLAG}from'../../commands/role/shared.js';const UPDATE_PATH=a161_0x32b476(0x10e);function readPatch(_0x44d2bb){const _0x1953a9=a161_0x32b476,_0x333d4d=_0x44d2bb[_0x1953a9(0x106)](_0x1953a9(0x10b)),_0x555752=_0x44d2bb['flag'](_0x1953a9(0x105)),_0x4b181b={};if(_0x333d4d!==undefined&&_0x333d4d!==null){const _0x32b0d0=String(_0x333d4d)[_0x1953a9(0x11b)]();if(!_0x32b0d0)throw CliErrors[_0x1953a9(0x109)](_0x1953a9(0x116));if(_0x32b0d0['length']>0x40)throw CliErrors[_0x1953a9(0x109)](_0x1953a9(0x117));_0x4b181b[_0x1953a9(0x107)]=_0x32b0d0;}_0x555752!==undefined&&_0x555752!==null&&(_0x4b181b[_0x1953a9(0x105)]=String(_0x555752));if(_0x4b181b['roleName']===undefined&&_0x4b181b[_0x1953a9(0x105)]===undefined)throw CliErrors[_0x1953a9(0x109)]('Nothing\x20to\x20update.',_0x1953a9(0x10d));return _0x4b181b;}export const roleUpdate={'service':a161_0x32b476(0x112),'command':a161_0x32b476(0x122),'description':a161_0x32b476(0x108),'risk':a161_0x32b476(0x11d),'flags':[ROLE_ID_FLAG,{...REMARK_FLAG},{'name':'name','type':a161_0x32b476(0x120),'required':![],'description':a161_0x32b476(0x110)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x52882f){readPatch(_0x52882f);},async 'dryRun'(_0x1a6d66){const _0x3223f7=a161_0x32b476,_0x27fd64=_0x1a6d66[_0x3223f7(0x111)]('id'),_0x4a7f41=readPatch(_0x1a6d66),_0x35f8b6=await getRoleById(_0x1a6d66[_0x3223f7(0x115)],_0x27fd64);return assertCustomRole(_0x35f8b6,_0x3223f7(0x122)),asDryRunResult({'operation':_0x3223f7(0x122),'selector':{'appCode':_0x1a6d66[_0x3223f7(0x115)],'roleId':_0x27fd64,'roleName':_0x35f8b6['roleName']},'before':projectRole(_0x35f8b6),'after':projectRole({..._0x35f8b6,..._0x4a7f41['roleName']!==undefined?{'roleName':_0x4a7f41[_0x3223f7(0x107)]}:{},..._0x4a7f41[_0x3223f7(0x105)]!==undefined?{'remark':_0x4a7f41[_0x3223f7(0x105)]}:{}}),'dryRun':!![],'backend':{'method':_0x3223f7(0x113),'path':UPDATE_PATH},'warnings':[]},{'method':_0x3223f7(0x113),'url':UPDATE_PATH});},async 'execute'(_0x5922da){const _0x57093a=a161_0x32b476,_0x44c501=_0x5922da[_0x57093a(0x111)]('id'),_0x11ccdc=readPatch(_0x5922da),_0x2c990b=await getRoleById(_0x5922da['appCode'],_0x44c501);assertCustomRole(_0x2c990b,_0x57093a(0x122)),await updateAppRole({'id':_0x44c501,'appCode':_0x5922da[_0x57093a(0x115)],..._0x11ccdc[_0x57093a(0x107)]!==undefined?{'roleName':_0x11ccdc['roleName']}:{},..._0x11ccdc[_0x57093a(0x105)]!==undefined?{'remark':_0x11ccdc[_0x57093a(0x105)]}:{}});const _0x442c7b=await getRoleById(_0x5922da[_0x57093a(0x115)],_0x44c501);return{'ok':!![],'data':{'operation':_0x57093a(0x122),'selector':{'appCode':_0x5922da[_0x57093a(0x115)],'roleId':_0x44c501,'roleName':_0x442c7b['roleName']},'before':projectRole(_0x2c990b),'after':projectRole(_0x442c7b),'dryRun':![],'backend':{'method':_0x57093a(0x113),'path':UPDATE_PATH},'warnings':[]},'message':'Updated\x20role\x20'+_0x442c7b['roleName']+_0x57093a(0x11a)+_0x44c501+')'};}};
@@ -1 +1 @@
1
- const a161_0x4cdbeb=a161_0x3fb9;function a161_0x3fb9(_0x318071,_0x4113b4){_0x318071=_0x318071-0x1bd;const _0x55ffa1=a161_0x55ff();let _0x3fb927=_0x55ffa1[_0x318071];return _0x3fb927;}(function(_0x332449,_0x3ca5e0){const _0x161e76=a161_0x3fb9,_0x47fc19=_0x332449();while(!![]){try{const _0x53645a=parseInt(_0x161e76(0x1bd))/0x1+-parseInt(_0x161e76(0x1cd))/0x2+parseInt(_0x161e76(0x1d1))/0x3+parseInt(_0x161e76(0x1c2))/0x4*(parseInt(_0x161e76(0x1cf))/0x5)+parseInt(_0x161e76(0x1be))/0x6*(parseInt(_0x161e76(0x1c9))/0x7)+parseInt(_0x161e76(0x1c8))/0x8+parseInt(_0x161e76(0x1d0))/0x9*(-parseInt(_0x161e76(0x1d3))/0xa);if(_0x53645a===_0x3ca5e0)break;else _0x47fc19['push'](_0x47fc19['shift']());}catch(_0x43e0cb){_0x47fc19['push'](_0x47fc19['shift']());}}}(a161_0x55ff,0x1eee6));import{updateRoleUsers}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{EXPECT_USER_COUNT_FLAG,prepareUserMutation,ROLE_REF_FLAG,UPDATE_USER_LIST_PATH,USER_REF_FLAG}from'../../commands/role/shared.js';function a161_0x55ff(){const _0xb99efe=['\x20already\x20in\x20role\x20','292780jbPUgt','selector','827990ALJisK','9BYEGoi','733572oESkAA','userId','2191260QARxLi','39980wpNCNE','624vKpxKW','roleName','POST','role','4YMzRqX','user-add','\x20to\x20role\x20','No\x20change:\x20user\x20','Added\x20user\x20','high-risk-write','103072rPBlQX','1967CyZzpt','Add\x20a\x20user\x20to\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','appCode'];a161_0x55ff=function(){return _0xb99efe;};return a161_0x55ff();}export const roleUserAdd={'service':a161_0x4cdbeb(0x1c1),'command':a161_0x4cdbeb(0x1c3),'description':a161_0x4cdbeb(0x1ca),'risk':a161_0x4cdbeb(0x1c7),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x2558d6){const _0xe1614f=a161_0x4cdbeb,{mutation:_0x359984}=await prepareUserMutation(_0x2558d6,_0xe1614f(0x1c3),!![]);return asDryRunResult(_0x359984,{'method':_0xe1614f(0x1c0),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0xe95894){const _0x987e06=a161_0x4cdbeb,{roleList:_0x37b6a5,mutation:_0x2fc592,changed:_0x56bf}=await prepareUserMutation(_0xe95894,_0x987e06(0x1c3),![]);return _0x56bf&&await updateRoleUsers(_0xe95894[_0x987e06(0x1cb)],_0x37b6a5),{'ok':!![],'data':_0x2fc592,'message':_0x56bf?_0x987e06(0x1c6)+_0x2fc592[_0x987e06(0x1ce)]['userId']+_0x987e06(0x1c4)+_0x2fc592[_0x987e06(0x1ce)][_0x987e06(0x1bf)]:_0x987e06(0x1c5)+_0x2fc592[_0x987e06(0x1ce)][_0x987e06(0x1d2)]+_0x987e06(0x1cc)+_0x2fc592['selector'][_0x987e06(0x1bf)]};}};
1
+ const a162_0x593be6=a162_0x53e4;(function(_0x25669d,_0x896fb1){const _0x358498=a162_0x53e4,_0x18c113=_0x25669d();while(!![]){try{const _0xc142a4=-parseInt(_0x358498(0x13b))/0x1*(parseInt(_0x358498(0x13e))/0x2)+parseInt(_0x358498(0x12f))/0x3*(parseInt(_0x358498(0x131))/0x4)+parseInt(_0x358498(0x12b))/0x5+parseInt(_0x358498(0x13f))/0x6*(-parseInt(_0x358498(0x134))/0x7)+-parseInt(_0x358498(0x139))/0x8+parseInt(_0x358498(0x133))/0x9*(parseInt(_0x358498(0x135))/0xa)+-parseInt(_0x358498(0x137))/0xb*(-parseInt(_0x358498(0x138))/0xc);if(_0xc142a4===_0x896fb1)break;else _0x18c113['push'](_0x18c113['shift']());}catch(_0x24e9f1){_0x18c113['push'](_0x18c113['shift']());}}}(a162_0x36e5,0xdb96c));import{updateRoleUsers}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';function a162_0x53e4(_0x34e474,_0x4b3beb){_0x34e474=_0x34e474-0x12b;const _0x36e50d=a162_0x36e5();let _0x53e4d8=_0x36e50d[_0x34e474];return _0x53e4d8;}import{EXPECT_USER_COUNT_FLAG,prepareUserMutation,ROLE_REF_FLAG,UPDATE_USER_LIST_PATH,USER_REF_FLAG}from'../../commands/role/shared.js';function a162_0x36e5(){const _0x4d648=['Add\x20a\x20user\x20to\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','223663JZJfia','132dYcviM','3452912cASCMc','high-risk-write','68751XhmAuo','appCode','user-add','18PoMngX','131118XGEVJD','4535810QmheoB','\x20to\x20role\x20','POST','userId','7173hEpXHu','No\x20change:\x20user\x20','412RCzTmw','selector','9ByiCGc','42XfUxgW','7038290tIOapj'];a162_0x36e5=function(){return _0x4d648;};return a162_0x36e5();}export const roleUserAdd={'service':'role','command':'user-add','description':a162_0x593be6(0x136),'risk':a162_0x593be6(0x13a),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x1bc93d){const _0x440256=a162_0x593be6,{mutation:_0xd7f3fb}=await prepareUserMutation(_0x1bc93d,'user-add',!![]);return asDryRunResult(_0xd7f3fb,{'method':_0x440256(0x12d),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x382f96){const _0x3b0a46=a162_0x593be6,{roleList:_0x29ba5a,mutation:_0x131cec,changed:_0x3e2067}=await prepareUserMutation(_0x382f96,_0x3b0a46(0x13d),![]);return _0x3e2067&&await updateRoleUsers(_0x382f96[_0x3b0a46(0x13c)],_0x29ba5a),{'ok':!![],'data':_0x131cec,'message':_0x3e2067?'Added\x20user\x20'+_0x131cec[_0x3b0a46(0x132)][_0x3b0a46(0x12e)]+_0x3b0a46(0x12c)+_0x131cec['selector']['roleName']:_0x3b0a46(0x130)+_0x131cec[_0x3b0a46(0x132)]['userId']+'\x20already\x20in\x20role\x20'+_0x131cec['selector']['roleName']};}};
@@ -1 +1 @@
1
- const a162_0x359e40=a162_0x1878;(function(_0x32095b,_0x4dc105){const _0x5771c1=a162_0x1878,_0x14a0be=_0x32095b();while(!![]){try{const _0x341280=-parseInt(_0x5771c1(0x12f))/0x1+-parseInt(_0x5771c1(0x139))/0x2+-parseInt(_0x5771c1(0x136))/0x3+-parseInt(_0x5771c1(0x13b))/0x4*(-parseInt(_0x5771c1(0x132))/0x5)+-parseInt(_0x5771c1(0x135))/0x6+-parseInt(_0x5771c1(0x130))/0x7*(-parseInt(_0x5771c1(0x134))/0x8)+parseInt(_0x5771c1(0x129))/0x9;if(_0x341280===_0x4dc105)break;else _0x14a0be['push'](_0x14a0be['shift']());}catch(_0x435dfb){_0x14a0be['push'](_0x14a0be['shift']());}}}(a162_0x14cd,0x4a6e1));function a162_0x1878(_0x3cb2b8,_0x1866e1){_0x3cb2b8=_0x3cb2b8-0x128;const _0x14cde4=a162_0x14cd();let _0x187810=_0x14cde4[_0x3cb2b8];return _0x187810;}import{updateRoleUsers}from'../../core/api-client.js';function a162_0x14cd(){const _0x391f85=['appCode','role','userId','roleName','227128RbsFxg','7wvOLOv','user-remove','1065UAcwdF','No\x20change:\x20user\x20','3622072ujQKtt','2701068vqBrLx','944343uUZqpL','POST','high-risk-write','199020mApvBq','Removed\x20user\x20','9796IiilGp','\x20from\x20role\x20','3798594MEgLks','selector'];a162_0x14cd=function(){return _0x391f85;};return a162_0x14cd();}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{EXPECT_USER_COUNT_FLAG,prepareUserMutation,ROLE_REF_FLAG,UPDATE_USER_LIST_PATH,USER_REF_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a162_0x359e40(0x12c),'command':a162_0x359e40(0x131),'description':'Remove\x20a\x20user\x20from\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','risk':a162_0x359e40(0x138),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x345077){const _0x407215=a162_0x359e40,{mutation:_0x1830c3}=await prepareUserMutation(_0x345077,_0x407215(0x131),!![]);return asDryRunResult(_0x1830c3,{'method':_0x407215(0x137),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x14d42a){const _0x3dbb91=a162_0x359e40,{roleList:_0x187fe9,mutation:_0x181ccb,changed:_0xed2cdc}=await prepareUserMutation(_0x14d42a,'user-remove',![]);return _0xed2cdc&&await updateRoleUsers(_0x14d42a[_0x3dbb91(0x12b)],_0x187fe9),{'ok':!![],'data':_0x181ccb,'message':_0xed2cdc?_0x3dbb91(0x13a)+_0x181ccb[_0x3dbb91(0x12a)][_0x3dbb91(0x12d)]+_0x3dbb91(0x128)+_0x181ccb[_0x3dbb91(0x12a)][_0x3dbb91(0x12e)]:_0x3dbb91(0x133)+_0x181ccb['selector']['userId']+'\x20not\x20in\x20role\x20'+_0x181ccb['selector'][_0x3dbb91(0x12e)]};}};
1
+ const a163_0x342fe5=a163_0x282e;(function(_0x5aaa74,_0x125d30){const _0x523c73=a163_0x282e,_0x20de9d=_0x5aaa74();while(!![]){try{const _0x53dd4a=-parseInt(_0x523c73(0xa9))/0x1*(parseInt(_0x523c73(0xab))/0x2)+parseInt(_0x523c73(0xac))/0x3*(-parseInt(_0x523c73(0xad))/0x4)+parseInt(_0x523c73(0xa3))/0x5*(-parseInt(_0x523c73(0xae))/0x6)+parseInt(_0x523c73(0xa0))/0x7+-parseInt(_0x523c73(0x9a))/0x8*(-parseInt(_0x523c73(0x9f))/0x9)+-parseInt(_0x523c73(0x99))/0xa+-parseInt(_0x523c73(0x9e))/0xb*(-parseInt(_0x523c73(0xa7))/0xc);if(_0x53dd4a===_0x125d30)break;else _0x20de9d['push'](_0x20de9d['shift']());}catch(_0x3290b0){_0x20de9d['push'](_0x20de9d['shift']());}}}(a163_0x35de,0x6e197));function a163_0x35de(){const _0x417df6=['39171gTYQGH','Removed\x20user\x20','2FOkGxc','4161HXPRGI','1228urLOqk','186342TpGUwL','6978030CUcvRP','4544WojTdm','No\x20change:\x20user\x20','selector','user-remove','88WPVYgR','9747iXLPFJ','561764WcHokb','high-risk-write','roleName','70LiLEGA','userId','Remove\x20a\x20user\x20from\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','appCode','2029728IjzKfN','\x20from\x20role\x20'];a163_0x35de=function(){return _0x417df6;};return a163_0x35de();}import{updateRoleUsers}from'../../core/api-client.js';function a163_0x282e(_0x21bcc2,_0x4f34b9){_0x21bcc2=_0x21bcc2-0x99;const _0x35de93=a163_0x35de();let _0x282ed2=_0x35de93[_0x21bcc2];return _0x282ed2;}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{EXPECT_USER_COUNT_FLAG,prepareUserMutation,ROLE_REF_FLAG,UPDATE_USER_LIST_PATH,USER_REF_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':'role','command':'user-remove','description':a163_0x342fe5(0xa5),'risk':a163_0x342fe5(0xa1),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x207cda){const _0x2d9e3e=a163_0x342fe5,{mutation:_0x3190c3}=await prepareUserMutation(_0x207cda,_0x2d9e3e(0x9d),!![]);return asDryRunResult(_0x3190c3,{'method':'POST','url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x5b7da0){const _0x2a6975=a163_0x342fe5,{roleList:_0x58a371,mutation:_0x1438c8,changed:_0x5f78f4}=await prepareUserMutation(_0x5b7da0,_0x2a6975(0x9d),![]);return _0x5f78f4&&await updateRoleUsers(_0x5b7da0[_0x2a6975(0xa6)],_0x58a371),{'ok':!![],'data':_0x1438c8,'message':_0x5f78f4?_0x2a6975(0xaa)+_0x1438c8['selector']['userId']+_0x2a6975(0xa8)+_0x1438c8[_0x2a6975(0x9c)][_0x2a6975(0xa2)]:_0x2a6975(0x9b)+_0x1438c8['selector'][_0x2a6975(0xa4)]+'\x20not\x20in\x20role\x20'+_0x1438c8[_0x2a6975(0x9c)][_0x2a6975(0xa2)]};}};
@@ -1 +1 @@
1
- const a163_0x5f1401=a163_0x39b3;function a163_0x39b3(_0x4e5210,_0x5807b1){_0x4e5210=_0x4e5210-0x1c1;const _0x15fbf2=a163_0x15fb();let _0x39b3c6=_0x15fbf2[_0x4e5210];return _0x39b3c6;}(function(_0x48b30c,_0x9e1b25){const _0x2d76db=a163_0x39b3,_0xe356e4=_0x48b30c();while(!![]){try{const _0x1be9f3=-parseInt(_0x2d76db(0x1d1))/0x1+-parseInt(_0x2d76db(0x1c2))/0x2*(-parseInt(_0x2d76db(0x1c9))/0x3)+parseInt(_0x2d76db(0x1c3))/0x4*(parseInt(_0x2d76db(0x1c4))/0x5)+-parseInt(_0x2d76db(0x1d5))/0x6+-parseInt(_0x2d76db(0x1d6))/0x7*(-parseInt(_0x2d76db(0x1c8))/0x8)+-parseInt(_0x2d76db(0x1c6))/0x9*(-parseInt(_0x2d76db(0x1d4))/0xa)+-parseInt(_0x2d76db(0x1d7))/0xb*(parseInt(_0x2d76db(0x1ce))/0xc);if(_0x1be9f3===_0x9e1b25)break;else _0xe356e4['push'](_0xe356e4['shift']());}catch(_0x3f9e0b){_0xe356e4['push'](_0xe356e4['shift']());}}}(a163_0x15fb,0xdeb47));function a163_0x15fb(){const _0x2ce27c=['user-resolve','9tkZBXF','read','2224MFerxA','12Usyzdq','name','matchedBy','str','userId','105972mmMuBp','username','Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','901351yTURty','\x22\x20→\x20userId\x20','flagMissing','1745090fdxzDY','482256HERdNC','27062QGbHgO','737PTGinV','trim','446698btEhpi','760wduDaV','9025BtuRvw'];a163_0x15fb=function(){return _0x2ce27c;};return a163_0x15fb();}import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':'role','command':a163_0x5f1401(0x1c5),'description':a163_0x5f1401(0x1d0),'risk':a163_0x5f1401(0x1c7),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x5f15b4){const _0x41802f=a163_0x5f1401;if(!_0x5f15b4['str'](_0x41802f(0x1ca))[_0x41802f(0x1c1)]())throw CliErrors[_0x41802f(0x1d3)](_0x41802f(0x1ca),'Pass\x20--name\x20<nickname|username>.');},async 'execute'(_0x471a70){const _0xff374f=a163_0x5f1401,_0x4fd129=_0x471a70[_0xff374f(0x1cc)](_0xff374f(0x1ca))[_0xff374f(0x1c1)](),_0x2bfc90=await resolveUserRef(_0x4fd129);return{'ok':!![],'data':{'user':{'userId':_0x2bfc90[_0xff374f(0x1cd)],'username':_0x2bfc90[_0xff374f(0x1cf)],'nickname':_0x2bfc90['nickname'],'matchedBy':_0x2bfc90[_0xff374f(0x1cb)]}},'message':'Resolved\x20\x22'+_0x4fd129+_0xff374f(0x1d2)+_0x2bfc90[_0xff374f(0x1cd)]};}};
1
+ function a164_0x5f2b(){const _0x3b8c9f=['Resolved\x20\x22','str','40QGDuKx','flagMissing','name','trim','userId','matchedBy','132865ZHdNqr','Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','\x22\x20→\x20userId\x20','12754035qQJnSR','148761dwEkqt','1847472Ckltdw','username','Pass\x20--name\x20<nickname|username>.','1092623GCAcMe','role','nickname','read','414826bIRLkI','21378BfQQig','user-resolve','335vSikmc'];a164_0x5f2b=function(){return _0x3b8c9f;};return a164_0x5f2b();}function a164_0xf5be(_0x9c250f,_0x56d86e){_0x9c250f=_0x9c250f-0xb3;const _0x5f2b46=a164_0x5f2b();let _0xf5bee6=_0x5f2b46[_0x9c250f];return _0xf5bee6;}const a164_0x10a750=a164_0xf5be;(function(_0x4f3945,_0x47c007){const _0x49111c=a164_0xf5be,_0x286d0c=_0x4f3945();while(!![]){try{const _0x142b22=parseInt(_0x49111c(0xbd))/0x1+parseInt(_0x49111c(0xc9))/0x2+parseInt(_0x49111c(0xc1))/0x3+parseInt(_0x49111c(0xc2))/0x4+parseInt(_0x49111c(0xb4))/0x5*(parseInt(_0x49111c(0xca))/0x6)+-parseInt(_0x49111c(0xc5))/0x7*(-parseInt(_0x49111c(0xb7))/0x8)+-parseInt(_0x49111c(0xc0))/0x9;if(_0x142b22===_0x47c007)break;else _0x286d0c['push'](_0x286d0c['shift']());}catch(_0x3d7eb7){_0x286d0c['push'](_0x286d0c['shift']());}}}(a164_0x5f2b,0x6ec98));import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':a164_0x10a750(0xc6),'command':a164_0x10a750(0xb3),'description':a164_0x10a750(0xbe),'risk':a164_0x10a750(0xc8),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x36265a){const _0x58432c=a164_0x10a750;if(!_0x36265a['str'](_0x58432c(0xb9))[_0x58432c(0xba)]())throw CliErrors[_0x58432c(0xb8)](_0x58432c(0xb9),_0x58432c(0xc4));},async 'execute'(_0x46472a){const _0x28e99a=a164_0x10a750,_0x1739f6=_0x46472a[_0x28e99a(0xb6)](_0x28e99a(0xb9))[_0x28e99a(0xba)](),_0x59283a=await resolveUserRef(_0x1739f6);return{'ok':!![],'data':{'user':{'userId':_0x59283a[_0x28e99a(0xbb)],'username':_0x59283a[_0x28e99a(0xc3)],'nickname':_0x59283a[_0x28e99a(0xc7)],'matchedBy':_0x59283a[_0x28e99a(0xbc)]}},'message':_0x28e99a(0xb5)+_0x1739f6+_0x28e99a(0xbf)+_0x59283a['userId']};}};
@@ -1 +1 @@
1
- const a164_0x20cf8d=a164_0x200c;(function(_0x58b51c,_0x45100c){const _0x2e61d1=a164_0x200c,_0x34f1f1=_0x58b51c();while(!![]){try{const _0x360029=-parseInt(_0x2e61d1(0xd7))/0x1+parseInt(_0x2e61d1(0xd6))/0x2*(parseInt(_0x2e61d1(0xf3))/0x3)+parseInt(_0x2e61d1(0xf1))/0x4*(parseInt(_0x2e61d1(0xc7))/0x5)+-parseInt(_0x2e61d1(0xeb))/0x6+-parseInt(_0x2e61d1(0xea))/0x7+-parseInt(_0x2e61d1(0xc1))/0x8+-parseInt(_0x2e61d1(0xd8))/0x9*(-parseInt(_0x2e61d1(0xf5))/0xa);if(_0x360029===_0x45100c)break;else _0x34f1f1['push'](_0x34f1f1['shift']());}catch(_0x4b07df){_0x34f1f1['push'](_0x34f1f1['shift']());}}}(a164_0x19c3,0x84e67));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';function a164_0x19c3(){const _0x4b6f28=['cwd','script','\x20exited\x20with\x20code\x20','2124896HPEvDE','pnpm','No\x20package.json\x20found\x20in\x20current\x20directory.','preview','slice','bun.lockb','25mdfbJt','scripts','start','node_modules','.bin','bun','join','\x0a\x20\x20Available\x20scripts:\x0a','read','Script\x20name\x20defined\x20in\x20package.json','error','package.json','args','parse','close','2UNnOuw','660078HBGNuQ','597267HtoDnz','\x20run\x20preview\x20--watch','dev','npm','build','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','inherit','has','run','boolean','(none)','push','needsUpgrade','bool','Available:\x20','vite\x20preview\x20exited\x20with\x20code\x20','pnpm-lock.yaml','\x20run\x20','4282789sWvIyH','6398826JsRClm','keys','\x20\x20\x20\x20','vite','\x20run\x20preview','Run\x20a\x20package.json\x20script','290708WfqCSf','\x20\x20EXAMPLES','2780394xCBfrc','belowMinimum','280VkNRGX','validation','log'];a164_0x19c3=function(){return _0x4b6f28;};return a164_0x19c3();}function a164_0x200c(_0x403962,_0x333fbd){_0x403962=_0x403962-0xbe;const _0x19c39e=a164_0x19c3();let _0x200c1d=_0x19c39e[_0x403962];return _0x200c1d;}const VERSION_CHECK_SCRIPTS=new Set([a164_0x20cf8d(0xc9),a164_0x20cf8d(0xda)]);function readPackageScripts(_0x10d461){const _0x2cb3f1=a164_0x20cf8d,_0x374386=resolve(_0x10d461,_0x2cb3f1(0xd2));if(!existsSync(_0x374386))return null;try{const _0x603091=JSON[_0x2cb3f1(0xd4)](readFileSync(_0x374386,'utf-8'));return _0x603091[_0x2cb3f1(0xc8)]??{};}catch{return null;}}function detectPackageManager(_0x10355b){const _0x5ae08c=a164_0x20cf8d;if(existsSync(resolve(_0x10355b,_0x5ae08c(0xc6)))||existsSync(resolve(_0x10355b,'bun.lock')))return _0x5ae08c(0xcc);if(existsSync(resolve(_0x10355b,_0x5ae08c(0xe8))))return _0x5ae08c(0xc2);if(existsSync(resolve(_0x10355b,'yarn.lock')))return'yarn';return _0x5ae08c(0xdb);}async function versionCheck(_0x19492e){const _0x298090=a164_0x20cf8d,_0x2d36b7=await checkCliVersion();(_0x2d36b7['needsUpgrade']||_0x2d36b7[_0x298090(0xf4)])&&(printCliUpgradeWarning(_0x2d36b7),assertCliVersionSupported(_0x2d36b7));const _0x238ddf=await checkSdkVersion(_0x19492e);if(_0x238ddf[_0x298090(0xe4)])printSdkUpgradeWarning(_0x238ddf);}function spawnScript(_0x25ee79,_0x56302c,_0x4b58dd,_0x26a512){return new Promise((_0x2967c0,_0x7fa99a)=>{const _0x27ad02=a164_0x200c,_0x458e1d=['run',_0x56302c,..._0x4b58dd],_0x4547bb=spawn(_0x25ee79,_0x458e1d,{'cwd':_0x26a512,'stdio':_0x27ad02(0xde),'shell':!![],'env':{...process.env,'PATH':''+join(_0x26a512,'node_modules',_0x27ad02(0xcb))+delimiter+process.env.PATH}});_0x4547bb['on'](_0x27ad02(0xd5),_0x35f42b=>{const _0xe127be=_0x27ad02;if(_0x35f42b===0x0||_0x35f42b===null)_0x2967c0();else _0x7fa99a(new Error(_0x25ee79+_0xe127be(0xe9)+_0x56302c+_0xe127be(0xc0)+_0x35f42b));}),_0x4547bb['on'](_0x27ad02(0xd1),_0x7fa99a);});}function spawnViteBuildWatch(_0x46f9a2){return new Promise((_0x4ecb6b,_0x1c63fc)=>{const _0x413753=a164_0x200c,_0x5df8e0=spawn(_0x413753(0xee),[_0x413753(0xdc),'--watch'],{'cwd':_0x46f9a2,'stdio':_0x413753(0xde),'shell':!![],'env':{...process.env,'PATH':''+join(_0x46f9a2,'node_modules',_0x413753(0xcb))+delimiter+process.env.PATH}});_0x5df8e0['on'](_0x413753(0xd5),_0xf33228=>{const _0x20214c=_0x413753;if(_0xf33228===0x0||_0xf33228===null)_0x4ecb6b();else _0x1c63fc(new Error(_0x20214c(0xdd)+_0xf33228));}),_0x5df8e0['on'](_0x413753(0xd1),_0x1c63fc);});}function spawnVitePreview(_0x28a44e){return new Promise((_0x19c9e1,_0x4e86c7)=>{const _0xf09635=a164_0x200c,_0xb0b77b=spawn(_0xf09635(0xee),['preview'],{'cwd':_0x28a44e,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x28a44e,_0xf09635(0xca),_0xf09635(0xcb))+delimiter+process.env.PATH}});_0xb0b77b['on'](_0xf09635(0xd5),_0x1df94c=>{const _0x31f124=_0xf09635;if(_0x1df94c===0x0||_0x1df94c===null)_0x19c9e1();else _0x4e86c7(new Error(_0x31f124(0xe7)+_0x1df94c));}),_0xb0b77b['on'](_0xf09635(0xd1),_0x4e86c7);});}const runFlags=[{'name':'watch','type':a164_0x20cf8d(0xe1),'description':'Enable\x20watch\x20mode\x20for\x20preview','default':![]}];export const runDefinition={'service':a164_0x20cf8d(0xe0),'command':a164_0x20cf8d(0xe0),'description':a164_0x20cf8d(0xf0),'risk':a164_0x20cf8d(0xcf),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a164_0x20cf8d(0xbf),'description':a164_0x20cf8d(0xd0),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x53dae8=a164_0x20cf8d,_0x4511c2=[];return _0x4511c2[_0x53dae8(0xe3)](_0x53dae8(0xf2)),_0x4511c2[_0x53dae8(0xe3)](_0x53dae8(0xed)+CLI_BIN_NAME+'\x20run\x20start'),_0x4511c2['push'](_0x53dae8(0xed)+CLI_BIN_NAME+'\x20run\x20build'),_0x4511c2[_0x53dae8(0xe3)](_0x53dae8(0xed)+CLI_BIN_NAME+_0x53dae8(0xef)),_0x4511c2[_0x53dae8(0xe3)](_0x53dae8(0xed)+CLI_BIN_NAME+_0x53dae8(0xd9)),_0x4511c2[_0x53dae8(0xcd)]('\x0a');},async 'execute'(_0x40ac14){const _0xb6024a=a164_0x20cf8d,_0xe419ff=process[_0xb6024a(0xbe)](),_0x440123=_0x40ac14['args'][0x0],_0x5d9ede=_0x40ac14[_0xb6024a(0xd3)][_0xb6024a(0xc5)](0x1),_0x51e7bb=readPackageScripts(_0xe419ff);if(!_0x51e7bb)throw CliErrors['validation'](_0xb6024a(0xc3));if(!_0x440123){const _0x10fe88=Object[_0xb6024a(0xec)](_0x51e7bb);if(_0x10fe88['length']===0x0)console[_0xb6024a(0xf7)]('No\x20scripts\x20defined\x20in\x20package.json.');else{console[_0xb6024a(0xf7)](_0xb6024a(0xce));for(const _0x5545d2 of _0x10fe88){console[_0xb6024a(0xf7)](_0xb6024a(0xed)+_0x5545d2);}console[_0xb6024a(0xf7)]('\x0a\x20\x20Usage:\x20'+CLI_BIN_NAME+'\x20run\x20<script>\x0a');}return{'ok':!![]};}if(!_0x51e7bb[_0x440123])throw CliErrors[_0xb6024a(0xf6)]('Script\x20\x22'+_0x440123+'\x22\x20not\x20found\x20in\x20package.json.',_0xb6024a(0xe6)+(Object['keys'](_0x51e7bb)[_0xb6024a(0xcd)](',\x20')||_0xb6024a(0xe2)));const _0x509b11=detectPackageManager(_0xe419ff);VERSION_CHECK_SCRIPTS[_0xb6024a(0xdf)](_0x440123)&&await versionCheck(_0xe419ff);if(_0x440123===_0xb6024a(0xc4)&&_0x40ac14[_0xb6024a(0xe5)]('watch'))return await Promise['all']([spawnViteBuildWatch(_0xe419ff),spawnVitePreview(_0xe419ff)]),{'ok':!![]};return await spawnScript(_0x509b11,_0x440123,_0x5d9ede,_0xe419ff),{'ok':!![]};}};
1
+ const a165_0xb37270=a165_0x50bf;function a165_0x10f9(){const _0x3072db=['yarn.lock','(none)','bun.lock','\x20run\x20preview\x20--watch','vite\x20preview\x20exited\x20with\x20code\x20','utf-8','\x20run\x20<script>\x0a','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','all','\x20\x20\x20\x20','2027586RQwbxb','slice','run','34vuefol','5553190SvcPBA','451427NgSKWo','bun.lockb','Enable\x20watch\x20mode\x20for\x20preview','inherit','join','Script\x20name\x20defined\x20in\x20package.json','\x20\x20EXAMPLES','8RDZJdZ','\x0a\x20\x20Usage:\x20','npm','\x20run\x20build','belowMinimum','3692017OcLzKZ','has','needsUpgrade','push','\x20run\x20preview','script','\x20exited\x20with\x20code\x20','package.json','preview','1611QTEior','keys','error','validation','vite','--watch','bun','args','watch','No\x20scripts\x20defined\x20in\x20package.json.','20ajWuPI','.bin','No\x20package.json\x20found\x20in\x20current\x20directory.','length','boolean','\x0a\x20\x20Available\x20scripts:\x0a','node_modules','log','parse','bool','3747933DukEpA','close','\x20run\x20','pnpm-lock.yaml','start','713990rcsGWa','yarn','\x20run\x20start'];a165_0x10f9=function(){return _0x3072db;};return a165_0x10f9();}(function(_0x48d718,_0x4d1e90){const _0x214770=a165_0x50bf,_0x548376=_0x48d718();while(!![]){try{const _0x490858=parseInt(_0x214770(0x11a))/0x1+parseInt(_0x214770(0x118))/0x2*(-parseInt(_0x214770(0xef))/0x3)+parseInt(_0x214770(0xf9))/0x4*(parseInt(_0x214770(0x108))/0x5)+-parseInt(_0x214770(0x115))/0x6+-parseInt(_0x214770(0xe6))/0x7*(parseInt(_0x214770(0x121))/0x8)+-parseInt(_0x214770(0x103))/0x9+parseInt(_0x214770(0x119))/0xa;if(_0x490858===_0x4d1e90)break;else _0x548376['push'](_0x548376['shift']());}catch(_0x2d093e){_0x548376['push'](_0x548376['shift']());}}}(a165_0x10f9,0x68ef0));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a165_0xb37270(0x107),'dev']);function readPackageScripts(_0x4361a3){const _0xe88691=a165_0xb37270,_0x118e5b=resolve(_0x4361a3,_0xe88691(0xed));if(!existsSync(_0x118e5b))return null;try{const _0x27964a=JSON[_0xe88691(0x101)](readFileSync(_0x118e5b,_0xe88691(0x110)));return _0x27964a['scripts']??{};}catch{return null;}}function detectPackageManager(_0x244d76){const _0x21a622=a165_0xb37270;if(existsSync(resolve(_0x244d76,_0x21a622(0x11b)))||existsSync(resolve(_0x244d76,_0x21a622(0x10d))))return _0x21a622(0xf5);if(existsSync(resolve(_0x244d76,_0x21a622(0x106))))return'pnpm';if(existsSync(resolve(_0x244d76,_0x21a622(0x10b))))return _0x21a622(0x109);return _0x21a622(0x123);}async function versionCheck(_0x16dead){const _0x2f553f=a165_0xb37270,_0x377f4d=await checkCliVersion();(_0x377f4d[_0x2f553f(0xe8)]||_0x377f4d[_0x2f553f(0xe5)])&&(printCliUpgradeWarning(_0x377f4d),assertCliVersionSupported(_0x377f4d));const _0x348837=await checkSdkVersion(_0x16dead);if(_0x348837['needsUpgrade'])printSdkUpgradeWarning(_0x348837);}function spawnScript(_0x4ad33a,_0x5b36fc,_0x1e6f52,_0x3853e5){return new Promise((_0x281a5a,_0x5cfaf4)=>{const _0x88ff02=a165_0x50bf,_0xa69442=[_0x88ff02(0x117),_0x5b36fc,..._0x1e6f52],_0x4d77e4=spawn(_0x4ad33a,_0xa69442,{'cwd':_0x3853e5,'stdio':_0x88ff02(0x11d),'shell':!![],'env':{...process.env,'PATH':''+join(_0x3853e5,_0x88ff02(0xff),_0x88ff02(0xfa))+delimiter+process.env.PATH}});_0x4d77e4['on'](_0x88ff02(0x104),_0x5b6133=>{const _0x2dc370=_0x88ff02;if(_0x5b6133===0x0||_0x5b6133===null)_0x281a5a();else _0x5cfaf4(new Error(_0x4ad33a+_0x2dc370(0x105)+_0x5b36fc+_0x2dc370(0xec)+_0x5b6133));}),_0x4d77e4['on'](_0x88ff02(0xf1),_0x5cfaf4);});}function spawnViteBuildWatch(_0x495493){return new Promise((_0x372a21,_0x40bd86)=>{const _0x53deda=a165_0x50bf,_0x262bef=spawn(_0x53deda(0xf3),['build',_0x53deda(0xf4)],{'cwd':_0x495493,'stdio':_0x53deda(0x11d),'shell':!![],'env':{...process.env,'PATH':''+join(_0x495493,_0x53deda(0xff),_0x53deda(0xfa))+delimiter+process.env.PATH}});_0x262bef['on'](_0x53deda(0x104),_0x5e698b=>{const _0x524d12=_0x53deda;if(_0x5e698b===0x0||_0x5e698b===null)_0x372a21();else _0x40bd86(new Error(_0x524d12(0x112)+_0x5e698b));}),_0x262bef['on'](_0x53deda(0xf1),_0x40bd86);});}function spawnVitePreview(_0x19e187){return new Promise((_0x4e0f3f,_0x59c2f5)=>{const _0x1e5808=a165_0x50bf,_0x36cfd6=spawn('vite',[_0x1e5808(0xee)],{'cwd':_0x19e187,'stdio':_0x1e5808(0x11d),'shell':!![],'env':{...process.env,'PATH':''+join(_0x19e187,_0x1e5808(0xff),_0x1e5808(0xfa))+delimiter+process.env.PATH}});_0x36cfd6['on'](_0x1e5808(0x104),_0x180102=>{const _0x40c5cf=_0x1e5808;if(_0x180102===0x0||_0x180102===null)_0x4e0f3f();else _0x59c2f5(new Error(_0x40c5cf(0x10f)+_0x180102));}),_0x36cfd6['on']('error',_0x59c2f5);});}function a165_0x50bf(_0x38fa6d,_0x1a064e){_0x38fa6d=_0x38fa6d-0xe4;const _0x10f944=a165_0x10f9();let _0x50bf02=_0x10f944[_0x38fa6d];return _0x50bf02;}const runFlags=[{'name':a165_0xb37270(0xf7),'type':a165_0xb37270(0xfd),'description':a165_0xb37270(0x11c),'default':![]}];export const runDefinition={'service':'run','command':a165_0xb37270(0x117),'description':'Run\x20a\x20package.json\x20script','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a165_0xb37270(0xeb),'description':a165_0xb37270(0x11f),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0xdc5a61=a165_0xb37270,_0x3ae12e=[];return _0x3ae12e['push'](_0xdc5a61(0x120)),_0x3ae12e[_0xdc5a61(0xe9)](_0xdc5a61(0x114)+CLI_BIN_NAME+_0xdc5a61(0x10a)),_0x3ae12e['push'](_0xdc5a61(0x114)+CLI_BIN_NAME+_0xdc5a61(0xe4)),_0x3ae12e[_0xdc5a61(0xe9)](_0xdc5a61(0x114)+CLI_BIN_NAME+_0xdc5a61(0xea)),_0x3ae12e[_0xdc5a61(0xe9)](_0xdc5a61(0x114)+CLI_BIN_NAME+_0xdc5a61(0x10e)),_0x3ae12e['join']('\x0a');},async 'execute'(_0x1f16b4){const _0x1f78bb=a165_0xb37270,_0x57875f=process['cwd'](),_0xbe9a17=_0x1f16b4[_0x1f78bb(0xf6)][0x0],_0xca47aa=_0x1f16b4[_0x1f78bb(0xf6)][_0x1f78bb(0x116)](0x1),_0x224c78=readPackageScripts(_0x57875f);if(!_0x224c78)throw CliErrors[_0x1f78bb(0xf2)](_0x1f78bb(0xfb));if(!_0xbe9a17){const _0x27a60f=Object[_0x1f78bb(0xf0)](_0x224c78);if(_0x27a60f[_0x1f78bb(0xfc)]===0x0)console[_0x1f78bb(0x100)](_0x1f78bb(0xf8));else{console[_0x1f78bb(0x100)](_0x1f78bb(0xfe));for(const _0x5daea6 of _0x27a60f){console[_0x1f78bb(0x100)](_0x1f78bb(0x114)+_0x5daea6);}console[_0x1f78bb(0x100)](_0x1f78bb(0x122)+CLI_BIN_NAME+_0x1f78bb(0x111));}return{'ok':!![]};}if(!_0x224c78[_0xbe9a17])throw CliErrors[_0x1f78bb(0xf2)]('Script\x20\x22'+_0xbe9a17+'\x22\x20not\x20found\x20in\x20package.json.','Available:\x20'+(Object['keys'](_0x224c78)[_0x1f78bb(0x11e)](',\x20')||_0x1f78bb(0x10c)));const _0x7c29cd=detectPackageManager(_0x57875f);VERSION_CHECK_SCRIPTS[_0x1f78bb(0xe7)](_0xbe9a17)&&await versionCheck(_0x57875f);if(_0xbe9a17===_0x1f78bb(0xee)&&_0x1f16b4[_0x1f78bb(0x102)](_0x1f78bb(0xf7)))return await Promise[_0x1f78bb(0x113)]([spawnViteBuildWatch(_0x57875f),spawnVitePreview(_0x57875f)]),{'ok':!![]};return await spawnScript(_0x7c29cd,_0xbe9a17,_0xca47aa,_0x57875f),{'ok':!![]};}};
@@ -1 +1 @@
1
- const a165_0x42fc38=a165_0x407c;(function(_0x16d801,_0x3a773e){const _0x1233b2=a165_0x407c,_0x48ec8e=_0x16d801();while(!![]){try{const _0x32d036=parseInt(_0x1233b2(0xa4))/0x1+parseInt(_0x1233b2(0xa2))/0x2+parseInt(_0x1233b2(0xa9))/0x3+parseInt(_0x1233b2(0x9c))/0x4*(-parseInt(_0x1233b2(0xa7))/0x5)+-parseInt(_0x1233b2(0xa3))/0x6*(parseInt(_0x1233b2(0xa6))/0x7)+parseInt(_0x1233b2(0xa1))/0x8*(-parseInt(_0x1233b2(0xa5))/0x9)+parseInt(_0x1233b2(0x9f))/0xa*(parseInt(_0x1233b2(0x9e))/0xb);if(_0x32d036===_0x3a773e)break;else _0x48ec8e['push'](_0x48ec8e['shift']());}catch(_0x414394){_0x48ec8e['push'](_0x48ec8e['shift']());}}}(a165_0x261d,0x738e6));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x5045c8){const _0x5d0bca=await buildSchemaPayload();return{'ok':!![],'data':_0x5d0bca};}function a165_0x407c(_0x21cc46,_0x2e40bf){_0x21cc46=_0x21cc46-0x9b;const _0x261d5e=a165_0x261d();let _0x407cb8=_0x261d5e[_0x21cc46];return _0x407cb8;}export const schemaDefinition={'service':a165_0x42fc38(0x9d),'command':'export','description':a165_0x42fc38(0xa8),'risk':a165_0x42fc38(0xa0),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a165_0x42fc38(0x9b),'flags':[],'execute':execute};function a165_0x261d(){const _0x1b1095=['534VcnQid','274376UHkIIE','45nddZIB','28133fjrfpw','5ZVgjdZ','Export\x20machine-readable\x20command\x20schema\x20(JSON)','511446nZjRcR','json','234220ABLZyZ','schema','54945ynrHMx','2150runqKh','read','1389400ANFQHf','478312lJSOms'];a165_0x261d=function(){return _0x1b1095;};return a165_0x261d();}
1
+ const a166_0x1991b9=a166_0x3465;function a166_0x3465(_0x219f1b,_0x36ba36){_0x219f1b=_0x219f1b-0x1cc;const _0x2f0660=a166_0x2f06();let _0x34650a=_0x2f0660[_0x219f1b];return _0x34650a;}(function(_0x222989,_0x3cfe10){const _0x26fd2e=a166_0x3465,_0x5073c7=_0x222989();while(!![]){try{const _0xdab1a=parseInt(_0x26fd2e(0x1cf))/0x1*(parseInt(_0x26fd2e(0x1d1))/0x2)+-parseInt(_0x26fd2e(0x1cc))/0x3*(parseInt(_0x26fd2e(0x1d2))/0x4)+-parseInt(_0x26fd2e(0x1d5))/0x5+-parseInt(_0x26fd2e(0x1cd))/0x6+-parseInt(_0x26fd2e(0x1ce))/0x7+parseInt(_0x26fd2e(0x1d8))/0x8+parseInt(_0x26fd2e(0x1d0))/0x9;if(_0xdab1a===_0x3cfe10)break;else _0x5073c7['push'](_0x5073c7['shift']());}catch(_0x3b36e0){_0x5073c7['push'](_0x5073c7['shift']());}}}(a166_0x2f06,0x9365d));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1c9f1f){const _0x5f3025=await buildSchemaPayload();return{'ok':!![],'data':_0x5f3025};}function a166_0x2f06(){const _0x5ad038=['3311385WKkTRD','Export\x20machine-readable\x20command\x20schema\x20(JSON)','schema','7245824fTVTUN','read','173487AgQhIa','4172898jJEchj','3963855IgEIdW','1OzcIGe','20053494GYjqFj','638272QagVGw','64OibuZA','json','export'];a166_0x2f06=function(){return _0x5ad038;};return a166_0x2f06();}export const schemaDefinition={'service':a166_0x1991b9(0x1d7),'command':a166_0x1991b9(0x1d4),'description':a166_0x1991b9(0x1d6),'risk':a166_0x1991b9(0x1d9),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a166_0x1991b9(0x1d3),'flags':[],'execute':execute};
@@ -1 +1 @@
1
- const a166_0x23a21e=a166_0x1447;(function(_0x2c44e2,_0x15f315){const _0x693205=a166_0x1447,_0x1660a7=_0x2c44e2();while(!![]){try{const _0x325033=parseInt(_0x693205(0xab))/0x1+-parseInt(_0x693205(0xbf))/0x2+parseInt(_0x693205(0x9e))/0x3+-parseInt(_0x693205(0xb8))/0x4*(parseInt(_0x693205(0x93))/0x5)+parseInt(_0x693205(0xc4))/0x6*(parseInt(_0x693205(0x81))/0x7)+-parseInt(_0x693205(0x8c))/0x8+parseInt(_0x693205(0x8a))/0x9;if(_0x325033===_0x15f315)break;else _0x1660a7['push'](_0x1660a7['shift']());}catch(_0x3373fd){_0x1660a7['push'](_0x1660a7['shift']());}}}(a166_0x4041,0x4aeca));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x148b7e){const _0x4a9b5f=a166_0x1447;if(_0x148b7e==='mybatisXml')return[_0x4a9b5f(0xa5),_0x4a9b5f(0xad),'</select>',''][_0x4a9b5f(0xbd)]('\x0a');return[_0x4a9b5f(0x9b),''][_0x4a9b5f(0xbd)]('\x0a');}export const sqlCreate={'service':a166_0x23a21e(0x9f),'command':a166_0x23a21e(0x99),'description':a166_0x23a21e(0x87),'risk':a166_0x23a21e(0xa6),'flags':[{'name':a166_0x23a21e(0xa9),'type':a166_0x23a21e(0x8d),'description':a166_0x23a21e(0x9d)},{'name':a166_0x23a21e(0x8e),'type':a166_0x23a21e(0xae),'description':'Target\x20database\x20ID'},{'name':a166_0x23a21e(0x95),'type':a166_0x23a21e(0x8d),'enum':[a166_0x23a21e(0x9f),'mybatisXml'],'description':a166_0x23a21e(0x98)}],async 'validate'(_0x411729){const _0x25dd64=a166_0x23a21e;if(!_0x411729[_0x25dd64(0xc3)])return;if(!_0x411729['str'](_0x25dd64(0xa9))[_0x25dd64(0x84)]())throw CliErrors[_0x25dd64(0x90)](_0x25dd64(0xa9),_0x25dd64(0xba));const _0x349df6=resolveProvidedDbId(_0x411729);if(typeof _0x349df6!==_0x25dd64(0xae)||!Number['isFinite'](_0x349df6)||_0x349df6<=0x0)throw CliErrors[_0x25dd64(0x90)](_0x25dd64(0x8e),_0x25dd64(0x97));if(!_0x411729[_0x25dd64(0x8f)](_0x25dd64(0x95))['trim']())throw CliErrors[_0x25dd64(0x90)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x738888){const _0x3525b1=a166_0x23a21e,_0x4abdbf=loadSqlProjectConfig(_0x738888[_0x3525b1(0xac)]),{sqlName:_0x33fa2c,dbId:_0x591784,dbName:_0x4e3e2e,mode:_0x146aa3}=await resolveSqlNewInputs(_0x738888),_0x52ce84=buildSqlRelativePath(_0x3525b1(0xc6),_0x33fa2c,_0x4e3e2e,_0x146aa3,_0x591784),_0x20d3ac=_0x4abdbf[_0x3525b1(0x92)]+'/'+_0x52ce84;return{'method':_0x3525b1(0xa7),'url':_0x3525b1(0x85),'body':{'appCode':_0x738888[_0x3525b1(0xac)],'sqlName':_0x33fa2c,'dbId':_0x591784,'mode':_0x146aa3,'localPath':_0x20d3ac},'description':_0x3525b1(0xb3)+_0x4abdbf['sqlRootDir']};},async 'execute'(_0x33b614){const _0xabee42=a166_0x23a21e,_0x51b4d7=loadSqlProjectConfig(_0x33b614[_0xabee42(0xac)]),{sqlName:_0x5fd8b0,dbId:_0x44f879,dbName:_0x5b9c17,mode:_0x362b06}=await resolveSqlNewInputs(_0x33b614),_0xf8d7e1=generateSqlTemplate(_0x362b06),_0x87cf4d=await createSqlQuery({'appCode':_0x33b614[_0xabee42(0xac)],'sqlName':_0x5fd8b0,'dbId':_0x44f879,'sqlContent':_0xf8d7e1}),_0xfb2e7c=ensureRemoteSqlContent(_0x87cf4d),_0x9c4a7=_0x5b9c17||await getDbName(_0x33b614[_0xabee42(0xac)],_0x44f879)['catch'](()=>undefined),_0x285289=buildSqlRelativePath(_0x87cf4d['sqlCode'],_0x87cf4d[_0xabee42(0x91)],_0x9c4a7,_0x362b06,_0x44f879),_0x428793=_0x51b4d7[_0xabee42(0x92)]+'/'+_0x285289,_0x418266=buildLocalSqlFileContent({'sqlCode':_0x87cf4d['sqlCode'],'sqlName':_0x87cf4d[_0xabee42(0x91)],'dbId':_0x87cf4d['dbId']},_0xfb2e7c,{'dbName':_0x9c4a7,'mode':_0x362b06,'syncedAt':new Date()[_0xabee42(0xb2)](),'description':_0x87cf4d['description']});if(await fileExists(_0x428793))throw CliErrors[_0xabee42(0xb9)](_0xabee42(0x9a)+_0x428793);await ensureParentDirectory(_0x428793),await writeFile(_0x428793,_0x418266,'utf8');const _0x4c5f2e=await readSqlLockFile(_0x51b4d7['lockFilePath']),{lockData:_0x3e4fcc,appLock:_0x472c77}=ensureSqlLockScope(_0x4c5f2e??createEmptySqlLock(),_0x51b4d7['appCode'],_0x51b4d7[_0xabee42(0xa4)],_0xabee42(0x80));return _0x472c77[_0xabee42(0xb6)][_0x87cf4d['sqlCode']]={...buildSqlLockEntry(_0x87cf4d,_0xfb2e7c,computeSqlContentHash(_0x418266),{'dbName':_0x9c4a7}),'path':_0x285289,'mode':_0x362b06},_0x472c77[_0xabee42(0xc0)]=new Date()['toISOString'](),await writeSqlLockFile(_0x51b4d7[_0xabee42(0xbe)],_0x3e4fcc),{'ok':!![],'data':{'id':_0x87cf4d['id'],'sqlCode':_0x87cf4d['sqlCode'],'sqlName':_0x87cf4d['sqlName'],'dbId':_0x87cf4d[_0xabee42(0xaf)],'path':_0x428793,'mode':_0x362b06},'message':_0xabee42(0xaa)+_0x87cf4d[_0xabee42(0xb0)]};}};async function resolveSqlNewInputs(_0x1dadd4){const _0x2d62a8=await resolveSqlNameInput(_0x1dadd4),{dbId:_0x4d171d,dbName:_0x22f415}=await resolveDbSelection(_0x1dadd4),_0x2adf56=await resolveSqlModeInput(_0x1dadd4);return{'sqlName':_0x2d62a8,'dbId':_0x4d171d,'dbName':_0x22f415,'mode':_0x2adf56};}function a166_0x1447(_0x16b174,_0x5dacfa){_0x16b174=_0x16b174-0x80;const _0x404181=a166_0x4041();let _0x14471b=_0x404181[_0x16b174];return _0x14471b;}async function resolveSqlNameInput(_0x1d0cd4){const _0x44cd2d=a166_0x23a21e,_0x109c80=_0x1d0cd4['str'](_0x44cd2d(0xa9))[_0x44cd2d(0x84)]();if(_0x109c80)return _0x109c80;if(_0x1d0cd4[_0x44cd2d(0xc3)])throw CliErrors[_0x44cd2d(0x90)](_0x44cd2d(0xa9),_0x44cd2d(0xba));return(await input({'message':_0x44cd2d(0xb7),'validate':_0x46c42b=>_0x46c42b[_0x44cd2d(0x84)]()?!![]:_0x44cd2d(0xbc)}))[_0x44cd2d(0x84)]();}async function resolveDbSelection(_0xf89b8a){const _0xc91b4e=a166_0x23a21e,_0x277983=resolveProvidedDbId(_0xf89b8a);if(typeof _0x277983===_0xc91b4e(0xae)&&Number['isFinite'](_0x277983)&&_0x277983>0x0)return{'dbId':_0x277983,'dbName':await getDbName(_0xf89b8a[_0xc91b4e(0xac)],_0x277983)[_0xc91b4e(0xc2)](()=>undefined)};if(_0xf89b8a[_0xc91b4e(0xc3)])throw CliErrors['flagMissing'](_0xc91b4e(0x8e),_0xc91b4e(0x97));const _0x12efd2=await listDatabases(_0xf89b8a[_0xc91b4e(0xac)])[_0xc91b4e(0xc2)](()=>[]);if(_0x12efd2[_0xc91b4e(0x9c)]===0x1)return{'dbId':_0x12efd2[0x0][_0xc91b4e(0xaf)],'dbName':_0x12efd2[0x0][_0xc91b4e(0xb4)]};if(_0x12efd2['length']>0x1){const _0x4ebd53=await select({'message':_0xc91b4e(0xa1),'choices':[..._0x12efd2[_0xc91b4e(0xb5)](_0x4483cd=>({'name':_0x4483cd['dbName']+'\x20('+_0x4483cd[_0xc91b4e(0xaf)]+')','value':serializeDbSelection(_0x4483cd)})),{'name':_0xc91b4e(0x82),'value':_0xc91b4e(0xa2)}]});if(_0x4ebd53!==_0xc91b4e(0xa2))return deserializeDbSelection(_0x4ebd53);}const _0x1de467=await input({'message':_0xc91b4e(0xb1),'validate':_0x2125b0=>{const _0x4128d8=_0xc91b4e,_0x69e686=_0x2125b0[_0x4128d8(0x84)]();if(!_0x69e686)return _0x4128d8(0xbb);const _0x51fd4c=Number(_0x69e686);if(!Number[_0x4128d8(0x86)](_0x51fd4c)||_0x51fd4c<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x1de467[_0xc91b4e(0x84)]())};}async function resolveSqlModeInput(_0x55c91f){const _0x3627f6=a166_0x23a21e,_0x11243b=_0x55c91f[_0x3627f6(0x8f)]('mode')['trim']();if(_0x11243b===_0x3627f6(0x9f)||_0x11243b===_0x3627f6(0x89))return _0x11243b;if(_0x55c91f[_0x3627f6(0xc3)])throw CliErrors[_0x3627f6(0x90)]('mode',_0x3627f6(0x83));return await select({'message':_0x3627f6(0x96),'choices':[{'name':_0x3627f6(0xa8),'value':_0x3627f6(0x9f),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x3627f6(0x88),'value':'mybatisXml','description':_0x3627f6(0xa3)}]});}function serializeDbSelection(_0x1bb0c4){const _0x375c2f=a166_0x23a21e;return JSON[_0x375c2f(0xa0)]({'dbId':_0x1bb0c4[_0x375c2f(0xaf)],'dbName':_0x1bb0c4[_0x375c2f(0xb4)]});}function deserializeDbSelection(_0x1da922){const _0x44140d=a166_0x23a21e;try{const _0x5e873b=JSON[_0x44140d(0x8b)](_0x1da922);if(typeof _0x5e873b['dbId']===_0x44140d(0xae)&&Number[_0x44140d(0x94)](_0x5e873b[_0x44140d(0xaf)]))return{'dbId':_0x5e873b[_0x44140d(0xaf)],'dbName':_0x5e873b['dbName']};}catch{}throw CliErrors['validation'](_0x44140d(0xc1)+_0x1da922);}function a166_0x4041(){const _0x3d1f2f=['SQL\x20名称不能为空','join','lockFilePath','306166Cfrkwu','lastSync','Invalid\x20database\x20selection\x20payload:\x20','catch','nonInteractive','107838rOVKVN','flag','<server-generated-sqlCode>','new','91QoAVTj','✎\x20手动输入\x20dbId','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','trim','/smartapi/custom/saveUserCustomSql','isInteger','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','MyBatis\x20XML(mybatisXml)','mybatisXml','2589174BSmXRu','parse','1733392PDYTyj','string','db-id','str','flagMissing','sqlName','sqlRootDir','1014835dDuTuS','isFinite','mode','请选择本地\x20SQL\x20模式:','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','Local\x20SQL\x20file\x20mode','create','File\x20already\x20exists:\x20','SELECT\x201\x20AS\x20id;','length','SQL\x20query\x20display\x20name','1713195NZVtEF','sql','stringify','请选择目标数据库:','__manual__','适合带动态标签的\x20MyBatis\x20XML\x20SQL','sqlRoot','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','high-risk-write','POST','普通\x20SQL(sql)','name','Created\x20SQL\x20query\x20','193148WoNDMk','appCode','\x20\x20SELECT\x201\x20AS\x20id','number','dbId','sqlCode','请输入目标数据库\x20dbId:','toISOString','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','dbName','map','sqls','请输入\x20SQL\x20名称:','12MixvgN','validation','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','dbId\x20不能为空'];a166_0x4041=function(){return _0x3d1f2f;};return a166_0x4041();}function resolveProvidedDbId(_0x339a0e){const _0x5c7ace=a166_0x23a21e,_0x1ef87a=_0x339a0e[_0x5c7ace(0xc5)](_0x5c7ace(0x8e));if(typeof _0x1ef87a===_0x5c7ace(0xae)&&Number[_0x5c7ace(0x94)](_0x1ef87a))return _0x1ef87a;return undefined;}
1
+ const a167_0x86492d=a167_0x3f38;function a167_0x5c74(){const _0x31690f=['db-id','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','str','high-risk-write','parse','请选择目标数据库:','/smartapi/custom/saveUserCustomSql','string','Local\x20SQL\x20file\x20mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','SQL\x20名称不能为空','mybatisXml','mode','2782935Fphksy','11598XGTlQh','nonInteractive','flag','name','stringify','isInteger','validation','trim','请输入目标数据库\x20dbId:','lastSync','join','File\x20already\x20exists:\x20','dbName','413200bJIdzr','sql','number','SELECT\x201\x20AS\x20id;','sqls','MyBatis\x20XML(mybatisXml)','description','flagMissing','486302snUjCP','70ZEhfnY','dbId','13676faWneq','<server-generated-sqlCode>','268NHKkML','isFinite','Target\x20database\x20ID','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','请选择本地\x20SQL\x20模式:','2112hRQlOJ','Created\x20SQL\x20query\x20','普通\x20SQL(sql)','14330JAfsbZ','length','6054294ZcDpRD','SQL\x20query\x20display\x20name','__manual__','sqlCode','1195RpdQOM','sqlRoot','appCode','toISOString','sqlName','catch','lockFilePath','sqlRootDir'];a167_0x5c74=function(){return _0x31690f;};return a167_0x5c74();}(function(_0x501bac,_0x894aff){const _0x56ec81=a167_0x3f38,_0x14faea=_0x501bac();while(!![]){try{const _0x134d67=parseInt(_0x56ec81(0xd9))/0x1+parseInt(_0x56ec81(0xde))/0x2*(parseInt(_0x56ec81(0xc4))/0x3)+-parseInt(_0x56ec81(0xdc))/0x4*(parseInt(_0x56ec81(0xec))/0x5)+parseInt(_0x56ec81(0xe8))/0x6+-parseInt(_0x56ec81(0xda))/0x7*(parseInt(_0x56ec81(0xd1))/0x8)+-parseInt(_0x56ec81(0xc3))/0x9+parseInt(_0x56ec81(0xe6))/0xa*(parseInt(_0x56ec81(0xe3))/0xb);if(_0x134d67===_0x894aff)break;else _0x14faea['push'](_0x14faea['shift']());}catch(_0x3f4ce7){_0x14faea['push'](_0x14faea['shift']());}}}(a167_0x5c74,0x9da2b));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function a167_0x3f38(_0xde62fd,_0x4ef1bb){_0xde62fd=_0xde62fd-0xae;const _0x5c743b=a167_0x5c74();let _0x3f383=_0x5c743b[_0xde62fd];return _0x3f383;}function generateSqlTemplate(_0x4a96ab){const _0x39882c=a167_0x3f38;if(_0x4a96ab==='mybatisXml')return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','\x20\x20SELECT\x201\x20AS\x20id','</select>',''][_0x39882c(0xce)]('\x0a');return[_0x39882c(0xd4),''][_0x39882c(0xce)]('\x0a');}export const sqlCreate={'service':a167_0x86492d(0xd2),'command':'create','description':a167_0x86492d(0xb5),'risk':a167_0x86492d(0xb7),'flags':[{'name':'name','type':a167_0x86492d(0xbb),'description':a167_0x86492d(0xe9)},{'name':'db-id','type':'number','description':a167_0x86492d(0xe0)},{'name':a167_0x86492d(0xc2),'type':a167_0x86492d(0xbb),'enum':[a167_0x86492d(0xd2),a167_0x86492d(0xc1)],'description':a167_0x86492d(0xbc)}],async 'validate'(_0x30ce29){const _0x4e624f=a167_0x86492d;if(!_0x30ce29[_0x4e624f(0xc5)])return;if(!_0x30ce29[_0x4e624f(0xb6)](_0x4e624f(0xc7))[_0x4e624f(0xcb)]())throw CliErrors[_0x4e624f(0xd8)](_0x4e624f(0xc7),_0x4e624f(0xbe));const _0x5bddd0=resolveProvidedDbId(_0x30ce29);if(typeof _0x5bddd0!=='number'||!Number['isFinite'](_0x5bddd0)||_0x5bddd0<=0x0)throw CliErrors[_0x4e624f(0xd8)](_0x4e624f(0xb4),_0x4e624f(0xe1));if(!_0x30ce29['str'](_0x4e624f(0xc2))[_0x4e624f(0xcb)]())throw CliErrors['flagMissing'](_0x4e624f(0xc2),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x3147cf){const _0x1ca2ae=a167_0x86492d,_0xe4441=loadSqlProjectConfig(_0x3147cf[_0x1ca2ae(0xae)]),{sqlName:_0x246627,dbId:_0x3e1332,dbName:_0x2bb0e7,mode:_0x39d2c1}=await resolveSqlNewInputs(_0x3147cf),_0x18e1d8=buildSqlRelativePath(_0x1ca2ae(0xdd),_0x246627,_0x2bb0e7,_0x39d2c1,_0x3e1332),_0x913509=_0xe4441[_0x1ca2ae(0xb3)]+'/'+_0x18e1d8;return{'method':'POST','url':_0x1ca2ae(0xba),'body':{'appCode':_0x3147cf[_0x1ca2ae(0xae)],'sqlName':_0x246627,'dbId':_0x3e1332,'mode':_0x39d2c1,'localPath':_0x913509},'description':_0x1ca2ae(0xbf)+_0xe4441['sqlRootDir']};},async 'execute'(_0x12a0e6){const _0x23f627=a167_0x86492d,_0x6b57df=loadSqlProjectConfig(_0x12a0e6[_0x23f627(0xae)]),{sqlName:_0x328736,dbId:_0x33bba8,dbName:_0x265944,mode:_0x513e4d}=await resolveSqlNewInputs(_0x12a0e6),_0x28d32c=generateSqlTemplate(_0x513e4d),_0x9cb1b7=await createSqlQuery({'appCode':_0x12a0e6[_0x23f627(0xae)],'sqlName':_0x328736,'dbId':_0x33bba8,'sqlContent':_0x28d32c}),_0x4a7290=ensureRemoteSqlContent(_0x9cb1b7),_0x2d26b1=_0x265944||await getDbName(_0x12a0e6[_0x23f627(0xae)],_0x33bba8)[_0x23f627(0xb1)](()=>undefined),_0x1db040=buildSqlRelativePath(_0x9cb1b7[_0x23f627(0xeb)],_0x9cb1b7[_0x23f627(0xb0)],_0x2d26b1,_0x513e4d,_0x33bba8),_0x17f28c=_0x6b57df[_0x23f627(0xb3)]+'/'+_0x1db040,_0x415553=buildLocalSqlFileContent({'sqlCode':_0x9cb1b7[_0x23f627(0xeb)],'sqlName':_0x9cb1b7[_0x23f627(0xb0)],'dbId':_0x9cb1b7['dbId']},_0x4a7290,{'dbName':_0x2d26b1,'mode':_0x513e4d,'syncedAt':new Date()[_0x23f627(0xaf)](),'description':_0x9cb1b7[_0x23f627(0xd7)]});if(await fileExists(_0x17f28c))throw CliErrors[_0x23f627(0xca)](_0x23f627(0xcf)+_0x17f28c);await ensureParentDirectory(_0x17f28c),await writeFile(_0x17f28c,_0x415553,'utf8');const _0x17af42=await readSqlLockFile(_0x6b57df[_0x23f627(0xb2)]),{lockData:_0x1bb759,appLock:_0x398741}=ensureSqlLockScope(_0x17af42??createEmptySqlLock(),_0x6b57df[_0x23f627(0xae)],_0x6b57df[_0x23f627(0xed)],'new');return _0x398741[_0x23f627(0xd5)][_0x9cb1b7[_0x23f627(0xeb)]]={...buildSqlLockEntry(_0x9cb1b7,_0x4a7290,computeSqlContentHash(_0x415553),{'dbName':_0x2d26b1}),'path':_0x1db040,'mode':_0x513e4d},_0x398741[_0x23f627(0xcd)]=new Date()[_0x23f627(0xaf)](),await writeSqlLockFile(_0x6b57df[_0x23f627(0xb2)],_0x1bb759),{'ok':!![],'data':{'id':_0x9cb1b7['id'],'sqlCode':_0x9cb1b7[_0x23f627(0xeb)],'sqlName':_0x9cb1b7[_0x23f627(0xb0)],'dbId':_0x9cb1b7[_0x23f627(0xdb)],'path':_0x17f28c,'mode':_0x513e4d},'message':_0x23f627(0xe4)+_0x9cb1b7['sqlCode']};}};async function resolveSqlNewInputs(_0x21b861){const _0x3ec5d3=await resolveSqlNameInput(_0x21b861),{dbId:_0x1ad300,dbName:_0x4ab4e5}=await resolveDbSelection(_0x21b861),_0x536cc3=await resolveSqlModeInput(_0x21b861);return{'sqlName':_0x3ec5d3,'dbId':_0x1ad300,'dbName':_0x4ab4e5,'mode':_0x536cc3};}async function resolveSqlNameInput(_0x3099d5){const _0x39a9ee=a167_0x86492d,_0x363949=_0x3099d5[_0x39a9ee(0xb6)](_0x39a9ee(0xc7))[_0x39a9ee(0xcb)]();if(_0x363949)return _0x363949;if(_0x3099d5['nonInteractive'])throw CliErrors[_0x39a9ee(0xd8)](_0x39a9ee(0xc7),_0x39a9ee(0xbe));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x287ba2=>_0x287ba2[_0x39a9ee(0xcb)]()?!![]:_0x39a9ee(0xc0)}))['trim']();}async function resolveDbSelection(_0x10cbe9){const _0x20226a=a167_0x86492d,_0x382302=resolveProvidedDbId(_0x10cbe9);if(typeof _0x382302===_0x20226a(0xd3)&&Number[_0x20226a(0xdf)](_0x382302)&&_0x382302>0x0)return{'dbId':_0x382302,'dbName':await getDbName(_0x10cbe9[_0x20226a(0xae)],_0x382302)[_0x20226a(0xb1)](()=>undefined)};if(_0x10cbe9[_0x20226a(0xc5)])throw CliErrors[_0x20226a(0xd8)]('db-id','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x55a5ef=await listDatabases(_0x10cbe9[_0x20226a(0xae)])['catch'](()=>[]);if(_0x55a5ef['length']===0x1)return{'dbId':_0x55a5ef[0x0][_0x20226a(0xdb)],'dbName':_0x55a5ef[0x0][_0x20226a(0xd0)]};if(_0x55a5ef[_0x20226a(0xe7)]>0x1){const _0x19866a=await select({'message':_0x20226a(0xb9),'choices':[..._0x55a5ef['map'](_0xd37a8b=>({'name':_0xd37a8b['dbName']+'\x20('+_0xd37a8b[_0x20226a(0xdb)]+')','value':serializeDbSelection(_0xd37a8b)})),{'name':'✎\x20手动输入\x20dbId','value':_0x20226a(0xea)}]});if(_0x19866a!==_0x20226a(0xea))return deserializeDbSelection(_0x19866a);}const _0x119f1d=await input({'message':_0x20226a(0xcc),'validate':_0x40cf02=>{const _0x44c10a=_0x20226a,_0x298a8f=_0x40cf02[_0x44c10a(0xcb)]();if(!_0x298a8f)return'dbId\x20不能为空';const _0x4b8437=Number(_0x298a8f);if(!Number[_0x44c10a(0xc9)](_0x4b8437)||_0x4b8437<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x119f1d[_0x20226a(0xcb)]())};}async function resolveSqlModeInput(_0xd000c8){const _0x7579da=a167_0x86492d,_0x2fab02=_0xd000c8[_0x7579da(0xb6)](_0x7579da(0xc2))[_0x7579da(0xcb)]();if(_0x2fab02===_0x7579da(0xd2)||_0x2fab02===_0x7579da(0xc1))return _0x2fab02;if(_0xd000c8['nonInteractive'])throw CliErrors['flagMissing'](_0x7579da(0xc2),_0x7579da(0xbd));return await select({'message':_0x7579da(0xe2),'choices':[{'name':_0x7579da(0xe5),'value':_0x7579da(0xd2),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x7579da(0xd6),'value':_0x7579da(0xc1),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x3a7d91){const _0x3f69dc=a167_0x86492d;return JSON[_0x3f69dc(0xc8)]({'dbId':_0x3a7d91[_0x3f69dc(0xdb)],'dbName':_0x3a7d91[_0x3f69dc(0xd0)]});}function deserializeDbSelection(_0x1866d5){const _0x1f19cb=a167_0x86492d;try{const _0x528efd=JSON[_0x1f19cb(0xb8)](_0x1866d5);if(typeof _0x528efd['dbId']===_0x1f19cb(0xd3)&&Number[_0x1f19cb(0xdf)](_0x528efd[_0x1f19cb(0xdb)]))return{'dbId':_0x528efd[_0x1f19cb(0xdb)],'dbName':_0x528efd[_0x1f19cb(0xd0)]};}catch{}throw CliErrors[_0x1f19cb(0xca)]('Invalid\x20database\x20selection\x20payload:\x20'+_0x1866d5);}function resolveProvidedDbId(_0x20027e){const _0x42943f=a167_0x86492d,_0x3392ee=_0x20027e[_0x42943f(0xc6)](_0x42943f(0xb4));if(typeof _0x3392ee===_0x42943f(0xd3)&&Number[_0x42943f(0xdf)](_0x3392ee))return _0x3392ee;return undefined;}
@@ -1 +1 @@
1
- const a167_0x25af45=a167_0x27e6;(function(_0x2a29fb,_0x464055){const _0x8ad3af=a167_0x27e6,_0x22598d=_0x2a29fb();while(!![]){try{const _0x2b5193=parseInt(_0x8ad3af(0x12c))/0x1*(-parseInt(_0x8ad3af(0x132))/0x2)+parseInt(_0x8ad3af(0x12d))/0x3*(-parseInt(_0x8ad3af(0x14a))/0x4)+-parseInt(_0x8ad3af(0x148))/0x5+parseInt(_0x8ad3af(0x13a))/0x6+parseInt(_0x8ad3af(0x134))/0x7+-parseInt(_0x8ad3af(0x126))/0x8+-parseInt(_0x8ad3af(0x13f))/0x9*(-parseInt(_0x8ad3af(0x127))/0xa);if(_0x2b5193===_0x464055)break;else _0x22598d['push'](_0x22598d['shift']());}catch(_0x109617){_0x22598d['push'](_0x22598d['shift']());}}}(a167_0x2a0d,0xd218d));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';function a167_0x2a0d(){const _0x3b32c8=['92olKszu','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','8752872JkKkcR','6573030UxDAhL','Deleted\x20','entries','lockFilePath','filter','5LFcsmO','43473VgLzdT','SQL\x20lock\x20file\x20not\x20found.','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','startsWith','sqlRoot','86582qmGNMT','sqlRootDir','1383781sGhrBI','delete','fromEntries','appCode','str','sqlcode','1713654UlGsIH','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','projectRoot','toISOString','validation','36DKqnec','Would\x20delete\x20SQL\x20','lastSync','sql','length','replace','remoteId','\x20(local\x20file\x20moved\x20to\x20trash)','sqls','3040450pZaUqJ','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.'];a167_0x2a0d=function(){return _0x3b32c8;};return a167_0x2a0d();}import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a167_0x27e6(_0x174d6b,_0x1650eb){_0x174d6b=_0x174d6b-0x126;const _0x2a0d11=a167_0x2a0d();let _0x27e63f=_0x2a0d11[_0x174d6b];return _0x27e63f;}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a167_0x25af45(0x142),'command':'delete','description':a167_0x25af45(0x14b),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x5e5592){const _0x2820a9=a167_0x25af45,_0x4b6158=loadSqlProjectConfig(_0x5e5592[_0x2820a9(0x137)]),_0xa7da8c=await readSqlLockFile(_0x4b6158['lockFilePath']);if(!_0xa7da8c)throw CliErrors[_0x2820a9(0x13e)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x2e1b8b){const _0x22abbd=a167_0x25af45,_0x5b4f67=loadSqlProjectConfig(_0x2e1b8b['appCode']),_0x1cdf40=await readSqlLockFile(_0x5b4f67[_0x22abbd(0x12a)]);if(!_0x1cdf40)throw CliErrors[_0x22abbd(0x13e)](_0x22abbd(0x149));const {appLock:_0x49ec92}=ensureSqlLockScope(_0x1cdf40,_0x2e1b8b[_0x22abbd(0x137)],_0x5b4f67[_0x22abbd(0x131)],_0x22abbd(0x135)),_0x2f5ca2=_0x2e1b8b[_0x22abbd(0x138)]('sqlcode'),_0x4cf386=_0x49ec92[_0x22abbd(0x147)][_0x2f5ca2];if(!_0x4cf386)throw CliErrors[_0x22abbd(0x13e)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x2f5ca2+'\x22.');return{'method':'POST','url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x2f5ca2,'id':_0x4cf386['remoteId'],'localPath':resolveLocalSqlFilePath(_0x5b4f67,_0x2f5ca2,_0x4cf386)},'description':_0x22abbd(0x140)+_0x2f5ca2+_0x22abbd(0x13b)+_0x5b4f67['trashDir']};},async 'execute'(_0x27791c){const _0x23e3c3=a167_0x25af45,_0x20b1fc=loadSqlProjectConfig(_0x27791c[_0x23e3c3(0x137)]),_0x269b03=await readSqlLockFile(_0x20b1fc[_0x23e3c3(0x12a)]);if(!_0x269b03)throw CliErrors['validation'](_0x23e3c3(0x12e));const {lockData:_0x1fa83c,appLock:_0x592b42}=ensureSqlLockScope(_0x269b03,_0x27791c[_0x23e3c3(0x137)],_0x20b1fc[_0x23e3c3(0x131)],_0x23e3c3(0x135)),_0x304e15=_0x27791c[_0x23e3c3(0x138)](_0x23e3c3(0x139)),_0x48e7fe=_0x592b42['sqls'][_0x304e15];if(!_0x48e7fe)throw CliErrors[_0x23e3c3(0x13e)](_0x23e3c3(0x12f)+_0x304e15+'\x22.');await deleteSqlQuery({'id':_0x48e7fe[_0x23e3c3(0x145)],'sqlCode':_0x304e15}),_0x592b42[_0x23e3c3(0x147)]=Object[_0x23e3c3(0x136)](Object[_0x23e3c3(0x129)](_0x592b42['sqls'])[_0x23e3c3(0x12b)](([_0x99571d])=>_0x99571d!==_0x304e15)),_0x592b42[_0x23e3c3(0x141)]=new Date()[_0x23e3c3(0x13d)](),await writeSqlLockFile(_0x20b1fc['lockFilePath'],_0x1fa83c);const _0x2bf8c9=resolveLocalSqlFilePath(_0x20b1fc,_0x304e15,_0x48e7fe);let _0x515e00;await fileExists(_0x2bf8c9)&&(_0x515e00=await moveToTrash(_0x20b1fc[_0x23e3c3(0x13c)],_0x20b1fc['trashDir'],_0x2bf8c9),await cleanupEmptyDirectories(dirname(_0x2bf8c9),_0x20b1fc[_0x23e3c3(0x133)]));const _0x340da6={'deleted':_0x304e15,'remoteId':_0x48e7fe[_0x23e3c3(0x145)]};if(_0x515e00)_0x340da6['trashedTo']=_0x515e00;return{'ok':!![],'data':_0x340da6,'message':_0x23e3c3(0x128)+_0x304e15+(_0x515e00?_0x23e3c3(0x146):'')};}};async function moveToTrash(_0x1e0936,_0x40d838,_0xed4bab){const _0x507f63=a167_0x25af45,_0xc93bc8=new Date()[_0x507f63(0x13d)]()[_0x507f63(0x144)](/[:.]/g,'-'),_0x2d0d61=relative(_0x1e0936,_0xed4bab),_0x10796d=join(_0x40d838,_0xc93bc8,_0x2d0d61);return await mkdir(dirname(_0x10796d),{'recursive':!![]}),await rename(_0xed4bab,_0x10796d),_0x10796d;}async function cleanupEmptyDirectories(_0x5281c3,_0x2aadc7){const _0x438973=a167_0x25af45;let _0x399ddd=resolve(_0x5281c3);const _0xf12f4b=resolve(_0x2aadc7);while(_0x399ddd[_0x438973(0x130)](''+_0xf12f4b+sep)||_0x399ddd===_0xf12f4b){if(_0x399ddd===_0xf12f4b)return;try{const _0x1bfdfb=await readdir(_0x399ddd);if(_0x1bfdfb[_0x438973(0x143)]>0x0)return;await rmdir(_0x399ddd);}catch{return;}_0x399ddd=dirname(_0x399ddd);}}
1
+ const a168_0x3dd5b1=a168_0x2367;(function(_0x1301f6,_0x53f0a7){const _0x33adad=a168_0x2367,_0x11c3c8=_0x1301f6();while(!![]){try{const _0x58794c=-parseInt(_0x33adad(0xf6))/0x1+parseInt(_0x33adad(0x106))/0x2+-parseInt(_0x33adad(0x10d))/0x3*(-parseInt(_0x33adad(0x107))/0x4)+parseInt(_0x33adad(0x100))/0x5+-parseInt(_0x33adad(0x103))/0x6+-parseInt(_0x33adad(0x115))/0x7*(parseInt(_0x33adad(0xfa))/0x8)+parseInt(_0x33adad(0x110))/0x9*(parseInt(_0x33adad(0x10e))/0xa);if(_0x58794c===_0x53f0a7)break;else _0x11c3c8['push'](_0x11c3c8['shift']());}catch(_0x4438ba){_0x11c3c8['push'](_0x11c3c8['shift']());}}}(a168_0x14e7,0x34904));function a168_0x2367(_0x258e25,_0x3f78d1){_0x258e25=_0x258e25-0xf4;const _0x14e702=a168_0x14e7();let _0x2367c3=_0x14e702[_0x258e25];return _0x2367c3;}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a168_0x14e7(){const _0x43aaaf=['SQL\x20lock\x20file\x20not\x20found.','trashedTo','delete','106127zMXZDc','sqlRootDir','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','229724frwGvZ','filter','sql','sqlRoot','144gSEZpY','\x20(local\x20file\x20moved\x20to\x20trash)','remoteId','high-risk-write','Would\x20delete\x20SQL\x20','sqlcode','1236850QBGYSW','length','appCode','1834506hMYFHL','trashDir','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','413904sffxzh','4xmkIqn','entries','lockFilePath','fromEntries','lastSync','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','67899xVPoct','10arssKA','str','4920462vzDtPj','validation'];a168_0x14e7=function(){return _0x43aaaf;};return a168_0x14e7();}export const sqlDelete={'service':a168_0x3dd5b1(0xf8),'command':'delete','description':a168_0x3dd5b1(0x10c),'risk':a168_0x3dd5b1(0xfd),'flags':[SQLCODE_FLAG],async 'validate'(_0x483c4b){const _0x3ae1c5=a168_0x3dd5b1,_0x50f2fb=loadSqlProjectConfig(_0x483c4b[_0x3ae1c5(0x102)]),_0x2e2a14=await readSqlLockFile(_0x50f2fb[_0x3ae1c5(0x109)]);if(!_0x2e2a14)throw CliErrors[_0x3ae1c5(0x111)](_0x3ae1c5(0x105));},async 'dryRun'(_0x4b1814){const _0x2e3d4b=a168_0x3dd5b1,_0x55feeb=loadSqlProjectConfig(_0x4b1814[_0x2e3d4b(0x102)]),_0x458806=await readSqlLockFile(_0x55feeb[_0x2e3d4b(0x109)]);if(!_0x458806)throw CliErrors[_0x2e3d4b(0x111)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x1d9f57}=ensureSqlLockScope(_0x458806,_0x4b1814[_0x2e3d4b(0x102)],_0x55feeb[_0x2e3d4b(0xf9)],_0x2e3d4b(0x114)),_0x27c9f5=_0x4b1814[_0x2e3d4b(0x10f)]('sqlcode'),_0x58a1a1=_0x1d9f57['sqls'][_0x27c9f5];if(!_0x58a1a1)throw CliErrors[_0x2e3d4b(0x111)](_0x2e3d4b(0xf5)+_0x27c9f5+'\x22.');return{'method':'POST','url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x27c9f5,'id':_0x58a1a1[_0x2e3d4b(0xfc)],'localPath':resolveLocalSqlFilePath(_0x55feeb,_0x27c9f5,_0x58a1a1)},'description':_0x2e3d4b(0xfe)+_0x27c9f5+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x55feeb[_0x2e3d4b(0x104)]};},async 'execute'(_0x2f79aa){const _0x5a586d=a168_0x3dd5b1,_0x4a38fa=loadSqlProjectConfig(_0x2f79aa['appCode']),_0x4a1d3f=await readSqlLockFile(_0x4a38fa[_0x5a586d(0x109)]);if(!_0x4a1d3f)throw CliErrors['validation'](_0x5a586d(0x112));const {lockData:_0x57bdc8,appLock:_0x32f5c9}=ensureSqlLockScope(_0x4a1d3f,_0x2f79aa[_0x5a586d(0x102)],_0x4a38fa[_0x5a586d(0xf9)],_0x5a586d(0x114)),_0x5b7897=_0x2f79aa['str'](_0x5a586d(0xff)),_0x3ac35a=_0x32f5c9['sqls'][_0x5b7897];if(!_0x3ac35a)throw CliErrors[_0x5a586d(0x111)](_0x5a586d(0xf5)+_0x5b7897+'\x22.');await deleteSqlQuery({'id':_0x3ac35a[_0x5a586d(0xfc)],'sqlCode':_0x5b7897}),_0x32f5c9['sqls']=Object[_0x5a586d(0x10a)](Object[_0x5a586d(0x108)](_0x32f5c9['sqls'])[_0x5a586d(0xf7)](([_0x49af5e])=>_0x49af5e!==_0x5b7897)),_0x32f5c9[_0x5a586d(0x10b)]=new Date()['toISOString'](),await writeSqlLockFile(_0x4a38fa[_0x5a586d(0x109)],_0x57bdc8);const _0x54481a=resolveLocalSqlFilePath(_0x4a38fa,_0x5b7897,_0x3ac35a);let _0x242f00;await fileExists(_0x54481a)&&(_0x242f00=await moveToTrash(_0x4a38fa['projectRoot'],_0x4a38fa[_0x5a586d(0x104)],_0x54481a),await cleanupEmptyDirectories(dirname(_0x54481a),_0x4a38fa[_0x5a586d(0xf4)]));const _0x5e829d={'deleted':_0x5b7897,'remoteId':_0x3ac35a[_0x5a586d(0xfc)]};if(_0x242f00)_0x5e829d[_0x5a586d(0x113)]=_0x242f00;return{'ok':!![],'data':_0x5e829d,'message':'Deleted\x20'+_0x5b7897+(_0x242f00?_0x5a586d(0xfb):'')};}};async function moveToTrash(_0x1baff7,_0x1e8289,_0x334bef){const _0x3370b8=new Date()['toISOString']()['replace'](/[:.]/g,'-'),_0x13f20c=relative(_0x1baff7,_0x334bef),_0x5745fb=join(_0x1e8289,_0x3370b8,_0x13f20c);return await mkdir(dirname(_0x5745fb),{'recursive':!![]}),await rename(_0x334bef,_0x5745fb),_0x5745fb;}async function cleanupEmptyDirectories(_0xd9cddc,_0x1f2e45){const _0x374303=a168_0x3dd5b1;let _0x58d3bd=resolve(_0xd9cddc);const _0x351b18=resolve(_0x1f2e45);while(_0x58d3bd['startsWith'](''+_0x351b18+sep)||_0x58d3bd===_0x351b18){if(_0x58d3bd===_0x351b18)return;try{const _0x2392c1=await readdir(_0x58d3bd);if(_0x2392c1[_0x374303(0x101)]>0x0)return;await rmdir(_0x58d3bd);}catch{return;}_0x58d3bd=dirname(_0x58d3bd);}}
@@ -1 +1 @@
1
- function a168_0x3174(_0x3b9cf2,_0x5dfede){_0x3b9cf2=_0x3b9cf2-0xe3;const _0x2563d2=a168_0x2563();let _0x3174d7=_0x2563d2[_0x3b9cf2];return _0x3174d7;}function a168_0x2563(){const _0x1ec165=['sqlcode','verbose','sql','sqlName','1317411CVomuf','28NKzCEs','sqlContent','166745FzlyXi','3vCEsNk','7145730tGvXVc','appCode','414144JiAuXQ','27145900LlCQKm','str','2277486LkAoSI','38278smPHaX','Return\x20full\x20raw\x20SQL\x20query\x20object','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','dbId','boolean','bool','detail','28KtbaSR'];a168_0x2563=function(){return _0x1ec165;};return a168_0x2563();}const a168_0x1821eb=a168_0x3174;(function(_0x309fdb,_0x2f8162){const _0x5a6150=a168_0x3174,_0x12f50e=_0x309fdb();while(!![]){try{const _0x28221a=-parseInt(_0x5a6150(0xed))/0x1+parseInt(_0x5a6150(0xf8))/0x2*(parseInt(_0x5a6150(0xf1))/0x3)+parseInt(_0x5a6150(0xee))/0x4*(parseInt(_0x5a6150(0xf0))/0x5)+-parseInt(_0x5a6150(0xf7))/0x6+parseInt(_0x5a6150(0xe8))/0x7*(parseInt(_0x5a6150(0xf4))/0x8)+-parseInt(_0x5a6150(0xf2))/0x9+parseInt(_0x5a6150(0xf5))/0xa;if(_0x28221a===_0x2f8162)break;else _0x12f50e['push'](_0x12f50e['shift']());}catch(_0x19c2c2){_0x12f50e['push'](_0x12f50e['shift']());}}}(a168_0x2563,0xa6d12));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a168_0x1821eb(0xeb),'command':a168_0x1821eb(0xe7),'description':a168_0x1821eb(0xe3),'risk':'read','flags':[SQLCODE_FLAG,{'name':a168_0x1821eb(0xea),'type':a168_0x1821eb(0xe5),'description':a168_0x1821eb(0xf9)}],async 'execute'(_0x4fb901){const _0x4a29ee=a168_0x1821eb,_0x68cc7b=await getSqlQueryInfo(_0x4fb901['appCode'],_0x4fb901[_0x4a29ee(0xf6)](_0x4a29ee(0xe9))),_0x147f0e=_0x4fb901[_0x4a29ee(0xe6)](_0x4a29ee(0xea));if(_0x147f0e)return{'ok':!![],'data':_0x68cc7b};const _0x1b4570=_0x68cc7b['dbId']?await getDbName(_0x4fb901[_0x4a29ee(0xf3)],_0x68cc7b[_0x4a29ee(0xe4)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x68cc7b['sqlCode'],'sqlName':_0x68cc7b[_0x4a29ee(0xec)],'db':_0x1b4570?_0x1b4570+'\x20('+_0x68cc7b[_0x4a29ee(0xe4)]+')':_0x68cc7b[_0x4a29ee(0xe4)]??'','description':_0x68cc7b['description']??'','sqlContent':_0x68cc7b[_0x4a29ee(0xef)]??''}};}};
1
+ const a169_0x683743=a169_0x59be;function a169_0x59be(_0x242dba,_0x137612){_0x242dba=_0x242dba-0x127;const _0xee7c52=a169_0xee7c();let _0x59be64=_0xee7c52[_0x242dba];return _0x59be64;}(function(_0x5d82a1,_0xe311a1){const _0x1c1240=a169_0x59be,_0x2642be=_0x5d82a1();while(!![]){try{const _0x46d2e6=-parseInt(_0x1c1240(0x12c))/0x1*(-parseInt(_0x1c1240(0x133))/0x2)+-parseInt(_0x1c1240(0x12a))/0x3*(parseInt(_0x1c1240(0x12d))/0x4)+-parseInt(_0x1c1240(0x135))/0x5*(-parseInt(_0x1c1240(0x137))/0x6)+-parseInt(_0x1c1240(0x128))/0x7*(-parseInt(_0x1c1240(0x12b))/0x8)+-parseInt(_0x1c1240(0x139))/0x9*(parseInt(_0x1c1240(0x12f))/0xa)+-parseInt(_0x1c1240(0x132))/0xb+parseInt(_0x1c1240(0x13a))/0xc;if(_0x46d2e6===_0xe311a1)break;else _0x2642be['push'](_0x2642be['shift']());}catch(_0x9e5cbd){_0x2642be['push'](_0x2642be['shift']());}}}(a169_0xee7c,0x3720c));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a169_0xee7c(){const _0x839b4=['2588LBlQXw','dbId','2697070WWkgFf','sqlName','sqlcode','4017442fFQPyN','8348RegEbU','detail','11885TUDCXf','bool','828itzClD','appCode','9dbAOyj','5436300bUyERP','verbose','sqlContent','5131IVuIjU','boolean','891nmUAQf','2648Sodfyu','7thiDia'];a169_0xee7c=function(){return _0x839b4;};return a169_0xee7c();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':a169_0x683743(0x134),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a169_0x683743(0x13b),'type':a169_0x683743(0x129),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0xec1988){const _0x9fcb18=a169_0x683743,_0x3df3f7=await getSqlQueryInfo(_0xec1988[_0x9fcb18(0x138)],_0xec1988['str'](_0x9fcb18(0x131))),_0x323d20=_0xec1988[_0x9fcb18(0x136)](_0x9fcb18(0x13b));if(_0x323d20)return{'ok':!![],'data':_0x3df3f7};const _0x44477b=_0x3df3f7[_0x9fcb18(0x12e)]?await getDbName(_0xec1988['appCode'],_0x3df3f7[_0x9fcb18(0x12e)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x3df3f7['sqlCode'],'sqlName':_0x3df3f7[_0x9fcb18(0x130)],'db':_0x44477b?_0x44477b+'\x20('+_0x3df3f7[_0x9fcb18(0x12e)]+')':_0x3df3f7[_0x9fcb18(0x12e)]??'','description':_0x3df3f7['description']??'','sqlContent':_0x3df3f7[_0x9fcb18(0x127)]??''}};}};
@@ -1 +1 @@
1
- const a169_0x4cbc70=a169_0x1079;(function(_0x218212,_0xa0f34d){const _0x2ce25b=a169_0x1079,_0x32bf02=_0x218212();while(!![]){try{const _0x50e590=-parseInt(_0x2ce25b(0xe4))/0x1+parseInt(_0x2ce25b(0xe3))/0x2*(-parseInt(_0x2ce25b(0xe0))/0x3)+parseInt(_0x2ce25b(0xdb))/0x4*(-parseInt(_0x2ce25b(0xd1))/0x5)+parseInt(_0x2ce25b(0xdd))/0x6+parseInt(_0x2ce25b(0xda))/0x7+parseInt(_0x2ce25b(0xd3))/0x8*(parseInt(_0x2ce25b(0xd0))/0x9)+parseInt(_0x2ce25b(0xd9))/0xa;if(_0x50e590===_0xa0f34d)break;else _0x32bf02['push'](_0x32bf02['shift']());}catch(_0x177bd3){_0x32bf02['push'](_0x32bf02['shift']());}}}(a169_0x4597,0xb4012));function a169_0x1079(_0x3a4924,_0x2e1e48){_0x3a4924=_0x3a4924-0xcb;const _0x459719=a169_0x4597();let _0x107914=_0x459719[_0x3a4924];return _0x107914;}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a169_0x4597(){const _0x405e0a=['\x20row(s)\x20in\x20','params','appCode','now','24234640XEKMWJ','5051921HdFaHR','2080060utIuVT','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','599370pUntsh','length','isArray','2962887rzNOQo','execResult','read','2wlAncK','1391165OkmpcF','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','str','exec','sql','Returned\x20','3573Udtlra','5NvubFX','SQL\x20execution\x20failed','7880filxCX','string'];a169_0x4597=function(){return _0x405e0a;};return a169_0x4597();}export const sqlExec={'service':a169_0x4cbc70(0xce),'command':a169_0x4cbc70(0xcd),'description':a169_0x4cbc70(0xcb),'risk':a169_0x4cbc70(0xe2),'flags':[SQLCODE_FLAG,{'name':a169_0x4cbc70(0xd6),'type':a169_0x4cbc70(0xd4),'description':a169_0x4cbc70(0xdc)}],async 'execute'(_0x1197b5){const _0x2c67eb=a169_0x4cbc70,_0x11d2e8=parseJsonParams(_0x1197b5[_0x2c67eb(0xcc)](_0x2c67eb(0xd6))),_0x3b15e1=Date['now'](),_0x5335d3=await executeSql(_0x1197b5[_0x2c67eb(0xd7)],_0x1197b5[_0x2c67eb(0xcc)]('sqlcode'),_0x11d2e8),_0x38320e=Date[_0x2c67eb(0xd8)]()-_0x3b15e1,_0x3e55df=_0x5335d3?.[_0x2c67eb(0xe1)]??_0x5335d3,_0x3e83f7=_0x5335d3?.['execSuccess']??!![];if(!_0x3e83f7)return{'ok':![],'data':{'error':_0x5335d3?.['execError']||_0x2c67eb(0xd2),'elapsed':_0x38320e},'message':_0x2c67eb(0xd2)};const _0x492a66=Array[_0x2c67eb(0xdf)](_0x3e55df)?_0x3e55df:[];return{'ok':!![],'data':{'rows':_0x492a66,'rowCount':_0x492a66['length'],'elapsed':_0x38320e},'message':_0x2c67eb(0xcf)+_0x492a66[_0x2c67eb(0xde)]+_0x2c67eb(0xd5)+_0x38320e+'ms'};}};
1
+ function a170_0x3ebb(){const _0x57e794=['read','14176eYseVJ','9567921TiwRVr','\x20row(s)\x20in\x20','execSuccess','235787OrMIad','42iDTPEK','str','9zEthWn','7233232cGAmSc','2097465zzvsbu','string','Returned\x20','145NCAnIg','18630720TRbrHw','SQL\x20execution\x20failed','sql','sqlcode','10qIkqvB','2afQdiK','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','length','now','330701UrFOdV','appCode'];a170_0x3ebb=function(){return _0x57e794;};return a170_0x3ebb();}const a170_0x2a5aa9=a170_0x2d61;(function(_0x4c1725,_0x139a90){const _0x4d37fc=a170_0x2d61,_0x1317a9=_0x4c1725();while(!![]){try{const _0x25f537=-parseInt(_0x4d37fc(0x1b2))/0x1*(parseInt(_0x4d37fc(0x1c0))/0x2)+parseInt(_0x4d37fc(0x1b7))/0x3+parseInt(_0x4d37fc(0x1ae))/0x4*(-parseInt(_0x4d37fc(0x1ba))/0x5)+parseInt(_0x4d37fc(0x1b3))/0x6*(parseInt(_0x4d37fc(0x1ab))/0x7)+-parseInt(_0x4d37fc(0x1b6))/0x8*(parseInt(_0x4d37fc(0x1b5))/0x9)+-parseInt(_0x4d37fc(0x1bf))/0xa*(parseInt(_0x4d37fc(0x1af))/0xb)+parseInt(_0x4d37fc(0x1bb))/0xc;if(_0x25f537===_0x139a90)break;else _0x1317a9['push'](_0x1317a9['shift']());}catch(_0x5df7b1){_0x1317a9['push'](_0x1317a9['shift']());}}}(a170_0x3ebb,0x72b80));import{executeSql}from'../../core/api-client.js';function a170_0x2d61(_0x3fc880,_0x16b54f){_0x3fc880=_0x3fc880-0x1a9;const _0x3ebb17=a170_0x3ebb();let _0x2d61c9=_0x3ebb17[_0x3fc880];return _0x2d61c9;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a170_0x2a5aa9(0x1bd),'command':'exec','description':a170_0x2a5aa9(0x1c1),'risk':a170_0x2a5aa9(0x1ad),'flags':[SQLCODE_FLAG,{'name':'params','type':a170_0x2a5aa9(0x1b8),'description':'SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)'}],async 'execute'(_0x33918e){const _0x4c1348=a170_0x2a5aa9,_0x5988f4=parseJsonParams(_0x33918e[_0x4c1348(0x1b4)]('params')),_0x5551ce=Date[_0x4c1348(0x1aa)](),_0x129078=await executeSql(_0x33918e[_0x4c1348(0x1ac)],_0x33918e[_0x4c1348(0x1b4)](_0x4c1348(0x1be)),_0x5988f4),_0x3bdbee=Date['now']()-_0x5551ce,_0x29f927=_0x129078?.['execResult']??_0x129078,_0x45ff0b=_0x129078?.[_0x4c1348(0x1b1)]??!![];if(!_0x45ff0b)return{'ok':![],'data':{'error':_0x129078?.['execError']||_0x4c1348(0x1bc),'elapsed':_0x3bdbee},'message':'SQL\x20execution\x20failed'};const _0x6a1aab=Array['isArray'](_0x29f927)?_0x29f927:[];return{'ok':!![],'data':{'rows':_0x6a1aab,'rowCount':_0x6a1aab[_0x4c1348(0x1a9)],'elapsed':_0x3bdbee},'message':_0x4c1348(0x1b9)+_0x6a1aab['length']+_0x4c1348(0x1b0)+_0x3bdbee+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x337afa,_0x35f2f0){const _0x1f5cbb=a170_0x2820,_0x16d2ef=_0x337afa();while(!![]){try{const _0x50ff2d=-parseInt(_0x1f5cbb(0x93))/0x1+-parseInt(_0x1f5cbb(0x8e))/0x2*(-parseInt(_0x1f5cbb(0x8d))/0x3)+parseInt(_0x1f5cbb(0x8f))/0x4*(-parseInt(_0x1f5cbb(0x8a))/0x5)+parseInt(_0x1f5cbb(0x92))/0x6*(-parseInt(_0x1f5cbb(0x90))/0x7)+parseInt(_0x1f5cbb(0x8c))/0x8+-parseInt(_0x1f5cbb(0x91))/0x9+parseInt(_0x1f5cbb(0x8b))/0xa;if(_0x50ff2d===_0x35f2f0)break;else _0x16d2ef['push'](_0x16d2ef['shift']());}catch(_0x5e6e7d){_0x16d2ef['push'](_0x16d2ef['shift']());}}}(a170_0x4fc5,0x5884a));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';function a170_0x4fc5(){const _0x10c92e=['35kfQdqQ','11996280etAeYs','3779064XsyKDX','156306dAOjRW','4xNnUWd','183184GOUxBd','77GQAXnC','2548116kMGBZE','193092xCYYbh','455947gZSXxT'];a170_0x4fc5=function(){return _0x10c92e;};return a170_0x4fc5();}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';function a170_0x2820(_0x3bb88a,_0x46cea5){_0x3bb88a=_0x3bb88a-0x8a;const _0x4fc582=a170_0x4fc5();let _0x282083=_0x4fc582[_0x3bb88a];return _0x282083;}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x3afebd,_0x1968f6){const _0x31253d=a171_0x5c2c,_0x5f7fd9=_0x3afebd();while(!![]){try{const _0x527dd6=parseInt(_0x31253d(0x10b))/0x1+-parseInt(_0x31253d(0x105))/0x2+parseInt(_0x31253d(0x10a))/0x3*(parseInt(_0x31253d(0x107))/0x4)+-parseInt(_0x31253d(0x109))/0x5*(-parseInt(_0x31253d(0x108))/0x6)+parseInt(_0x31253d(0x106))/0x7*(parseInt(_0x31253d(0x103))/0x8)+-parseInt(_0x31253d(0x10c))/0x9+-parseInt(_0x31253d(0x104))/0xa;if(_0x527dd6===_0x1968f6)break;else _0x5f7fd9['push'](_0x5f7fd9['shift']());}catch(_0x285002){_0x5f7fd9['push'](_0x5f7fd9['shift']());}}}(a171_0x13ce,0xc4139));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';function a171_0x5c2c(_0x35e794,_0x3e1004){_0x35e794=_0x35e794-0x103;const _0x13ce2f=a171_0x13ce();let _0x5c2c72=_0x13ce2f[_0x35e794];return _0x5c2c72;}import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a171_0x13ce(){const _0x5b0f9c=['65ZMEzvj','4371897Rhtamq','494724FcmnDZ','7958511lJdREf','8eMYsOE','808280KxTtRu','2352276uCbiCF','3940909upicxV','4xAZGMT','198168TjWsZO'];a171_0x13ce=function(){return _0x5b0f9c;};return a171_0x13ce();}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a171_0x454035=a171_0x5092;(function(_0x3b7dea,_0x5cb2cb){const _0x5f5d0c=a171_0x5092,_0xf77215=_0x3b7dea();while(!![]){try{const _0x209579=-parseInt(_0x5f5d0c(0x167))/0x1*(parseInt(_0x5f5d0c(0x16d))/0x2)+-parseInt(_0x5f5d0c(0x16f))/0x3+-parseInt(_0x5f5d0c(0x171))/0x4*(-parseInt(_0x5f5d0c(0x160))/0x5)+-parseInt(_0x5f5d0c(0x177))/0x6+-parseInt(_0x5f5d0c(0x16a))/0x7*(parseInt(_0x5f5d0c(0x16e))/0x8)+parseInt(_0x5f5d0c(0x166))/0x9+parseInt(_0x5f5d0c(0x170))/0xa;if(_0x209579===_0x5cb2cb)break;else _0xf77215['push'](_0xf77215['shift']());}catch(_0x293501){_0xf77215['push'](_0xf77215['shift']());}}}(a171_0x45f6,0x87ac0));import{listSqlQueries}from'../../core/api-client.js';function a171_0x45f6(){const _0x1e5e1d=['19035070PRbqlF','74956XElukA','tableData','dbId','string','Filter\x20by\x20SQL\x20name','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','4156980lzbSxc','Page\x20size','Found\x20','\x20SQL\x20queries\x20(total:\x20','str','sqlCode','length','sqlName','number','45PmQPzY','verbose','boolean','sql','name','bool','9221724HJyaCP','3xlpAuj','No\x20custom\x20SQL\x20queries\x20found.','appCode','1475159eJIniV','read','page','686130HRDNxn','16fBFHcb','1192749zSHXHK'];a171_0x45f6=function(){return _0x1e5e1d;};return a171_0x45f6();}function a171_0x5092(_0x54aa9b,_0x596d46){_0x54aa9b=_0x54aa9b-0x15c;const _0x45f656=a171_0x45f6();let _0x509260=_0x45f656[_0x54aa9b];return _0x509260;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a171_0x454035(0x163),'command':'list','description':'List\x20custom\x20SQL\x20queries','risk':a171_0x454035(0x16b),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a171_0x454035(0x164),'type':a171_0x454035(0x174),'description':a171_0x454035(0x175)},{'name':a171_0x454035(0x16c),'type':a171_0x454035(0x15f),'description':'Page\x20number','default':0x1},{'name':'pagesize','type':a171_0x454035(0x15f),'description':a171_0x454035(0x178)},{'name':a171_0x454035(0x161),'type':a171_0x454035(0x162),'description':a171_0x454035(0x176)}],async 'execute'(_0x38736d){const _0x205fa7=a171_0x454035,_0x40567c=await listSqlQueries(_0x38736d[_0x205fa7(0x169)],{'sqlCode':_0x38736d[_0x205fa7(0x17b)]('sqlcode')||undefined,'sqlName':_0x38736d[_0x205fa7(0x17b)](_0x205fa7(0x164))||undefined,'currentPage':_0x38736d['num']('page'),'pageSize':_0x38736d['num']('pagesize',0x32)}),_0x3eb8a0=_0x38736d[_0x205fa7(0x165)](_0x205fa7(0x161)),_0x23dfe3=_0x40567c[_0x205fa7(0x172)]??[],_0x52d688=_0x40567c['paging']?.['totalCount']??_0x23dfe3['length'];let _0x6386f2;return _0x3eb8a0?_0x6386f2=_0x23dfe3:_0x6386f2=await Promise['all'](_0x23dfe3['map'](async _0x3dbb56=>{const _0x287199=_0x205fa7;let _0x43dd4b;try{_0x43dd4b=_0x3dbb56[_0x287199(0x173)]?await getDbName(_0x38736d['appCode'],_0x3dbb56[_0x287199(0x173)]):undefined;}catch{}return{'sqlCode':_0x3dbb56[_0x287199(0x15c)],'sqlName':_0x3dbb56[_0x287199(0x15e)],'description':_0x3dbb56['description']??'','db':_0x43dd4b?_0x43dd4b+'\x20('+_0x3dbb56[_0x287199(0x173)]+')':_0x3dbb56[_0x287199(0x173)]??''};})),{'ok':!![],'data':_0x6386f2,'message':_0x23dfe3['length']===0x0?_0x205fa7(0x168):_0x205fa7(0x179)+_0x23dfe3[_0x205fa7(0x15d)]+_0x205fa7(0x17a)+_0x52d688+').'};}};
1
+ const a172_0x189c49=a172_0x1b06;(function(_0x19ddcf,_0x46ad1b){const _0xe08909=a172_0x1b06,_0x19ef9d=_0x19ddcf();while(!![]){try{const _0x5c35ab=parseInt(_0xe08909(0x1b1))/0x1*(parseInt(_0xe08909(0x1a7))/0x2)+-parseInt(_0xe08909(0x1a0))/0x3*(parseInt(_0xe08909(0x192))/0x4)+parseInt(_0xe08909(0x19e))/0x5+parseInt(_0xe08909(0x18f))/0x6*(-parseInt(_0xe08909(0x1b0))/0x7)+-parseInt(_0xe08909(0x1a2))/0x8*(parseInt(_0xe08909(0x19d))/0x9)+-parseInt(_0xe08909(0x1ad))/0xa*(-parseInt(_0xe08909(0x1ae))/0xb)+parseInt(_0xe08909(0x1a8))/0xc*(parseInt(_0xe08909(0x19b))/0xd);if(_0x5c35ab===_0x46ad1b)break;else _0x19ef9d['push'](_0x19ef9d['shift']());}catch(_0x25c8ed){_0x19ef9d['push'](_0x19ef9d['shift']());}}}(a172_0x4ba9,0x557e4));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a172_0x1b06(_0x3e9084,_0x229c61){_0x3e9084=_0x3e9084-0x18e;const _0x4ba91f=a172_0x4ba9();let _0x1b060b=_0x4ba91f[_0x3e9084];return _0x1b060b;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a172_0x189c49(0x1b3),'command':a172_0x189c49(0x1b4),'description':a172_0x189c49(0x193),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a172_0x189c49(0x191),'type':'string','description':a172_0x189c49(0x195)},{'name':'page','type':a172_0x189c49(0x1a9),'description':a172_0x189c49(0x1a3),'default':0x1},{'name':a172_0x189c49(0x194),'type':a172_0x189c49(0x1a9),'description':'Page\x20size'},{'name':a172_0x189c49(0x196),'type':a172_0x189c49(0x1ac),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x990cb1){const _0x40511b=a172_0x189c49,_0x2d695f=await listSqlQueries(_0x990cb1[_0x40511b(0x1a4)],{'sqlCode':_0x990cb1['str'](_0x40511b(0x1aa))||undefined,'sqlName':_0x990cb1[_0x40511b(0x1af)](_0x40511b(0x191))||undefined,'currentPage':_0x990cb1['num'](_0x40511b(0x197)),'pageSize':_0x990cb1[_0x40511b(0x18e)](_0x40511b(0x194),0x32)}),_0x4db54e=_0x990cb1[_0x40511b(0x19c)](_0x40511b(0x196)),_0xb63f89=_0x2d695f[_0x40511b(0x19f)]??[],_0x59855c=_0x2d695f[_0x40511b(0x19a)]?.[_0x40511b(0x199)]??_0xb63f89['length'];let _0x147e76;return _0x4db54e?_0x147e76=_0xb63f89:_0x147e76=await Promise['all'](_0xb63f89['map'](async _0xefebaf=>{const _0x1ac942=_0x40511b;let _0x1d3fe6;try{_0x1d3fe6=_0xefebaf[_0x1ac942(0x190)]?await getDbName(_0x990cb1['appCode'],_0xefebaf['dbId']):undefined;}catch{}return{'sqlCode':_0xefebaf[_0x1ac942(0x1a1)],'sqlName':_0xefebaf[_0x1ac942(0x198)],'description':_0xefebaf[_0x1ac942(0x1a6)]??'','db':_0x1d3fe6?_0x1d3fe6+'\x20('+_0xefebaf[_0x1ac942(0x190)]+')':_0xefebaf[_0x1ac942(0x190)]??''};})),{'ok':!![],'data':_0x147e76,'message':_0xb63f89[_0x40511b(0x1b2)]===0x0?_0x40511b(0x1a5):'Found\x20'+_0xb63f89[_0x40511b(0x1b2)]+_0x40511b(0x1ab)+_0x59855c+').'};}};function a172_0x4ba9(){const _0x2e86c6=['sqlCode','4362488erYWFA','Page\x20number','appCode','No\x20custom\x20SQL\x20queries\x20found.','description','58150Tdwxaq','1596cPPtWv','number','sqlcode','\x20SQL\x20queries\x20(total:\x20','boolean','10ZayePZ','182083JZUXuE','str','406lmGLLe','21xbLcOi','length','sql','list','num','9426fgmqqP','dbId','name','652wnRgEp','List\x20custom\x20SQL\x20queries','pagesize','Filter\x20by\x20SQL\x20name','verbose','page','sqlName','totalCount','paging','34437FYzjLl','bool','9ZbDJQM','387085CvPRhP','tableData','1293SfQVnt'];a172_0x4ba9=function(){return _0x2e86c6;};return a172_0x4ba9();}
@@ -1 +1 @@
1
- const a172_0x198c14=a172_0x17af;function a172_0x17af(_0x47e8e4,_0x3bbc27){_0x47e8e4=_0x47e8e4-0x105;const _0x4762ca=a172_0x4762();let _0x17af51=_0x4762ca[_0x47e8e4];return _0x17af51;}(function(_0x5a673e,_0xa925fe){const _0x241e32=a172_0x17af,_0x5c421b=_0x5a673e();while(!![]){try{const _0x11de17=-parseInt(_0x241e32(0x10a))/0x1*(-parseInt(_0x241e32(0x115))/0x2)+parseInt(_0x241e32(0x110))/0x3*(-parseInt(_0x241e32(0x138))/0x4)+-parseInt(_0x241e32(0x12f))/0x5*(-parseInt(_0x241e32(0x12a))/0x6)+-parseInt(_0x241e32(0x144))/0x7+-parseInt(_0x241e32(0x13e))/0x8+parseInt(_0x241e32(0x112))/0x9*(-parseInt(_0x241e32(0x13f))/0xa)+-parseInt(_0x241e32(0x137))/0xb*(-parseInt(_0x241e32(0x11c))/0xc);if(_0x11de17===_0xa925fe)break;else _0x5c421b['push'](_0x5c421b['shift']());}catch(_0x26fc48){_0x5c421b['push'](_0x5c421b['shift']());}}}(a172_0x4762,0xe108c));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x13e1c1,_0x1fed43){const _0x40015f=a172_0x17af,_0xc77ffa=[];let _0x5cb7f8=0x1;while(!![]){const _0xe1b409=await listSqlQueries(_0x13e1c1,{'currentPage':_0x5cb7f8,'pageSize':PAGE_SIZE,'sqlCode':_0x1fed43[_0x40015f(0x118)],'sqlName':_0x1fed43[_0x40015f(0x111)]}),_0x17309f=_0xe1b409[_0x40015f(0x13b)]??[];_0xc77ffa[_0x40015f(0x119)](..._0x17309f);if(_0x17309f[_0x40015f(0x107)]===0x0)break;const _0x44165a=_0xe1b409[_0x40015f(0x120)]?.[_0x40015f(0x12d)];if(_0x44165a!=null?_0xc77ffa[_0x40015f(0x107)]>=_0x44165a:_0x17309f['length']<PAGE_SIZE)break;_0x5cb7f8++;}return _0xc77ffa;}async function ensureSqlContent(_0x387a85){const _0x9aac6e=a172_0x17af;if(_0x387a85[_0x9aac6e(0x117)]!=null&&String(_0x387a85[_0x9aac6e(0x117)])['length']>0x0)return _0x387a85;return getSqlQueryDetail(_0x387a85[_0x9aac6e(0x118)]);}export const sqlPull={'service':a172_0x198c14(0x141),'command':a172_0x198c14(0x11a),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a172_0x198c14(0x11b),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a172_0x198c14(0x126),'type':a172_0x198c14(0x134),'description':a172_0x198c14(0x108)},{'name':a172_0x198c14(0x132),'type':a172_0x198c14(0x13c),'description':a172_0x198c14(0x10f)}],async 'dryRun'(_0xd2eee1){const _0x442026=a172_0x198c14,_0x140b69=loadSqlProjectConfig(_0xd2eee1['appCode']),_0x3e0c27=await readSqlLockFile(_0x140b69['lockFilePath']),{appLock:_0x30fa7f}=ensureSqlLockScope(_0x3e0c27??createEmptySqlLock(),_0x140b69['appCode'],_0x140b69[_0x442026(0x142)],_0x442026(0x11a)),_0x507865=await fetchAllSqlQueries(_0xd2eee1['appCode'],{'sqlCode':_0xd2eee1[_0x442026(0x109)](_0x442026(0x127))||undefined,'sqlName':_0xd2eee1[_0x442026(0x109)](_0x442026(0x126))||undefined}),_0xc563eb=[];for(const _0x4e03c2 of _0x507865){const _0x1e4de0=await ensureSqlContent(_0x4e03c2),_0x3297a3=ensureRemoteSqlContent(_0x1e4de0),_0x5c2344=detectModeFromSql(_0x1e4de0),_0x4967bd=_0x1e4de0['dbId']?await getDbName(_0xd2eee1[_0x442026(0x11e)],Number(_0x1e4de0[_0x442026(0x116)]))[_0x442026(0x11f)](()=>undefined):undefined,_0xeed0db=buildLocalSqlFileContent({'sqlCode':_0x1e4de0['sqlCode'],'sqlName':_0x1e4de0[_0x442026(0x111)],'dbId':_0x1e4de0[_0x442026(0x116)]},_0x3297a3,{'dbName':_0x4967bd,'mode':_0x5c2344,'syncedAt':new Date()['toISOString'](),'description':_0x1e4de0[_0x442026(0x13d)]}),_0x50acdf=buildSqlLockEntry(_0x1e4de0,_0x3297a3,'',{'dbName':_0x4967bd}),_0x320bc5=resolveLocalSqlFilePath(_0x140b69,_0x1e4de0['sqlCode'],_0x50acdf);let _0x438718=_0x442026(0x10c),_0x43478c;if(await fileExists(_0x320bc5)){const _0x4fe838=await readFile(_0x320bc5,'utf8');isEquivalentPulledSqlFile(_0x4fe838,_0xeed0db,_0x5c2344)?(_0x438718=_0x442026(0x130),_0x43478c=_0x442026(0x106)):(_0x438718='conflict',_0x43478c=_0x442026(0x140));}_0xc563eb[_0x442026(0x119)]({'sqlCode':_0x1e4de0[_0x442026(0x118)],'sqlName':_0x1e4de0[_0x442026(0x111)],'filePath':_0x320bc5,'status':_0x438718,'reason':_0x43478c});}return{'method':_0x442026(0x10d),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0xd2eee1[_0x442026(0x11e)],'sqlCode':_0xd2eee1[_0x442026(0x109)]('sqlcode')||null,'sqlName':_0xd2eee1['str']('name')||null,'files':_0xc563eb},'description':_0x442026(0x10e)+_0xc563eb[_0x442026(0x107)]+_0x442026(0x145)+_0x140b69['sqlRootDir']};},async 'execute'(_0x139a0b){const _0x271d68=a172_0x198c14,_0x5bcaed=loadSqlProjectConfig(_0x139a0b[_0x271d68(0x11e)]),_0x264e51=await readSqlLockFile(_0x5bcaed[_0x271d68(0x121)]),{lockData:_0x1c7cbd,appLock:_0x28bd1f}=ensureSqlLockScope(_0x264e51??createEmptySqlLock(),_0x5bcaed[_0x271d68(0x11e)],_0x5bcaed[_0x271d68(0x142)],_0x271d68(0x11a)),_0x2afb0b=_0x139a0b['bool'](_0x271d68(0x132)),_0x5363d0=await fetchAllSqlQueries(_0x139a0b[_0x271d68(0x11e)],{'sqlCode':_0x139a0b[_0x271d68(0x109)](_0x271d68(0x127))||undefined,'sqlName':_0x139a0b['str'](_0x271d68(0x126))||undefined});if(_0x5363d0[_0x271d68(0x107)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x271d68(0x128)};const _0x5dc5e9=[],_0x10d60c=[];for(const _0x35f9a4 of _0x5363d0){try{_0x5dc5e9[_0x271d68(0x119)](await ensureSqlContent(_0x35f9a4));}catch(_0x2ee05e){_0x10d60c[_0x271d68(0x119)]({'sqlCode':_0x35f9a4[_0x271d68(0x118)],'error':_0x2ee05e instanceof Error?_0x2ee05e['message']:String(_0x2ee05e)});}}if(_0x2afb0b&&!_0x139a0b[_0x271d68(0x12c)]){let _0x296790=![];for(const _0x119797 of _0x5dc5e9){const _0x19758d=detectModeFromSql(_0x119797),_0x47893b=_0x119797[_0x271d68(0x116)]?await getDbName(_0x139a0b['appCode'],Number(_0x119797[_0x271d68(0x116)]))[_0x271d68(0x11f)](()=>undefined):undefined,_0x229a22=buildLocalSqlFileContent({'sqlCode':_0x119797[_0x271d68(0x118)],'sqlName':_0x119797[_0x271d68(0x111)],'dbId':_0x119797[_0x271d68(0x116)]},ensureRemoteSqlContent(_0x119797),{'dbName':_0x47893b,'mode':_0x19758d,'syncedAt':new Date()[_0x271d68(0x114)](),'description':_0x119797['description']}),_0x3f86b0=resolveLocalSqlFilePath(_0x5bcaed,_0x119797[_0x271d68(0x118)],buildSqlLockEntry(_0x119797,ensureRemoteSqlContent(_0x119797),'',{'dbName':_0x47893b}));if(await fileExists(_0x3f86b0)){const _0x28ed9f=await readFile(_0x3f86b0,_0x271d68(0x131));if(!isEquivalentPulledSqlFile(_0x28ed9f,_0x229a22,_0x19758d)){_0x296790=!![];break;}}}if(_0x296790){const _0x3a3aa4=await confirmForceOverwrite(_0x271d68(0x13a));if(!_0x3a3aa4)throw CliErrors[_0x271d68(0x129)]('Force\x20pull\x20cancelled.');}}const _0x173da6=cloneSqlLockData(_0x1c7cbd),_0x33da70=_0x173da6[_0x271d68(0x124)][_0x5bcaed[_0x271d68(0x11e)]],_0x247d79=[],_0x2bbe05=[];for(const _0xb52b01 of _0x5dc5e9){const _0x55b60d=_0x33da70[_0x271d68(0x143)][_0xb52b01[_0x271d68(0x118)]],_0x54e71b=ensureRemoteSqlContent(_0xb52b01),_0x19cf5f=detectModeFromSql(_0xb52b01),_0x4209df=_0xb52b01[_0x271d68(0x116)]?await getDbName(_0x139a0b[_0x271d68(0x11e)],Number(_0xb52b01[_0x271d68(0x116)]))[_0x271d68(0x11f)](()=>undefined):undefined,_0x30425b=buildLocalSqlFileContent({'sqlCode':_0xb52b01[_0x271d68(0x118)],'sqlName':_0xb52b01[_0x271d68(0x111)],'dbId':_0xb52b01[_0x271d68(0x116)]},_0x54e71b,{'dbName':_0x4209df,'mode':_0x19cf5f,'syncedAt':new Date()[_0x271d68(0x114)](),'description':_0xb52b01[_0x271d68(0x13d)]}),_0x4bff0f=buildSqlLockEntry(_0xb52b01,_0x54e71b,computeSqlContentHash(_0x30425b),{'dbName':_0x4209df}),_0x53eb11=_0x4bff0f[_0x271d68(0x12e)],_0x5a8a94=join(_0x5bcaed[_0x271d68(0x133)],_0x53eb11);try{if(await fileExists(_0x5a8a94)){const _0x49e9d2=await readFile(_0x5a8a94,_0x271d68(0x131));if(isEquivalentPulledSqlFile(_0x49e9d2,_0x30425b,_0x19cf5f)){_0x2bbe05[_0x271d68(0x119)]({'sqlCode':_0xb52b01[_0x271d68(0x118)],'reason':'unchanged'}),_0x33da70[_0x271d68(0x143)][_0xb52b01[_0x271d68(0x118)]]={..._0x4bff0f,'hash':computeSqlContentHash(_0x49e9d2),'path':_0x53eb11};continue;}if(!_0x2afb0b){_0x2bbe05['push']({'sqlCode':_0xb52b01['sqlCode'],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x588e20=_0x55b60d?.[_0x271d68(0x12e)]?join(_0x5bcaed[_0x271d68(0x133)],_0x55b60d['path']):undefined;_0x588e20&&_0x588e20!==_0x5a8a94&&await fileExists(_0x588e20)&&await rm(_0x588e20,{'force':!![]}),await ensureParentDirectory(_0x5a8a94),await writeFile(_0x5a8a94,_0x30425b,_0x271d68(0x131)),_0x33da70[_0x271d68(0x143)][_0xb52b01[_0x271d68(0x118)]]={..._0x4bff0f,'path':_0x53eb11},_0x247d79[_0x271d68(0x119)]({'sqlCode':_0xb52b01[_0x271d68(0x118)],'filePath':_0x5a8a94});}catch(_0x1612f6){_0x10d60c[_0x271d68(0x119)]({'sqlCode':_0xb52b01[_0x271d68(0x118)],'error':_0x1612f6 instanceof Error?_0x1612f6[_0x271d68(0x123)]:String(_0x1612f6)});}}return _0x33da70[_0x271d68(0x122)]=new Date()[_0x271d68(0x114)](),await writeSqlLockFile(_0x5bcaed[_0x271d68(0x121)],_0x173da6),{'ok':_0x10d60c[_0x271d68(0x107)]===0x0,'data':{'pulled':_0x247d79,'skipped':_0x2bbe05,'failed':_0x10d60c},'message':_0x271d68(0x136)+_0x247d79[_0x271d68(0x107)]+_0x271d68(0x105)+_0x2bbe05[_0x271d68(0x107)]+_0x271d68(0x139)+_0x10d60c[_0x271d68(0x107)]+_0x271d68(0x10b)};}};function detectModeFromSql(_0x4f07ea){const _0x3c13e7=a172_0x198c14,_0x5d28b9=ensureRemoteSqlContent(_0x4f07ea),_0x337f85=stripLocalSqlMetadata(_0x5d28b9,_0x3c13e7(0x135))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x3c13e7(0x125)](_0x337f85))return _0x3c13e7(0x135);return _0x3c13e7(0x141);}function isEquivalentPulledSqlFile(_0x1cd122,_0x427c66,_0x37b588){return normalizePullComparableContent(_0x1cd122,_0x37b588)===normalizePullComparableContent(_0x427c66,_0x37b588);}function normalizePullComparableContent(_0x15f3c3,_0x344ac5){const _0x44c08e=a172_0x198c14,_0x4fc601=_0x15f3c3['replace'](/\r\n/g,'\x0a')[_0x44c08e(0x113)]('\x0a'),_0x50fc38=_0x4fc601[_0x44c08e(0x11d)](_0x527b7b=>!isSyncedAtMetadataLine(_0x527b7b,_0x344ac5));return _0x50fc38[_0x44c08e(0x12b)]('\x0a');}function a172_0x4762(){const _0x27442a=['split','toISOString','10mJnXNL','dbId','sqlContent','sqlCode','push','pull','write','12gLCmYZ','filter','appCode','catch','paging','lockFilePath','lastSync','message','apps','test','name','sqlcode','No\x20remote\x20SQL\x20queries\x20matched.','cancelled','4029708ECbpPa','join','nonInteractive','totalCount','path','10ExVJkP','skipped','utf8','force','sqlRootDir','string','mybatisXml','Pull\x20complete:\x20','44506330GdMwBD','2012352XEPETh','\x20skipped,\x20','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','tableData','boolean','description','7752888kayXqW','3160900ZwckFN','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','sql','sqlRoot','sqls','10595137niOFuO','\x20SQL\x20file(s)\x20into\x20','\x20written,\x20','unchanged','length','Filter\x20by\x20SQL\x20display\x20name','str','31324DibiSq','\x20failed','would_pull','POST','Would\x20pull\x20','Force\x20overwrite\x20local\x20unsynced\x20changes','9abqzIX','sqlName','18abJYpZ'];a172_0x4762=function(){return _0x27442a;};return a172_0x4762();}function isSyncedAtMetadataLine(_0x37867e,_0x37c40a){const _0x27b94a=a172_0x198c14;if(_0x37c40a===_0x27b94a(0x135))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x27b94a(0x125)](_0x37867e);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x37867e);}
1
+ const a173_0x54d893=a173_0x9e74;(function(_0x5ae218,_0x39c93e){const _0x17f031=a173_0x9e74,_0x12d82f=_0x5ae218();while(!![]){try{const _0x273006=parseInt(_0x17f031(0x1cb))/0x1*(-parseInt(_0x17f031(0x1d5))/0x2)+parseInt(_0x17f031(0x1ce))/0x3+-parseInt(_0x17f031(0x1e1))/0x4*(parseInt(_0x17f031(0x1af))/0x5)+parseInt(_0x17f031(0x1d9))/0x6*(parseInt(_0x17f031(0x1b5))/0x7)+parseInt(_0x17f031(0x1db))/0x8+-parseInt(_0x17f031(0x1d4))/0x9*(-parseInt(_0x17f031(0x1d2))/0xa)+-parseInt(_0x17f031(0x1de))/0xb;if(_0x273006===_0x39c93e)break;else _0x12d82f['push'](_0x12d82f['shift']());}catch(_0x21403b){_0x12d82f['push'](_0x12d82f['shift']());}}}(a173_0x1b3a,0xc695a));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';function a173_0x9e74(_0x547e8f,_0x322674){_0x547e8f=_0x547e8f-0x1aa;const _0x1b3a11=a173_0x1b3a();let _0x9e74c5=_0x1b3a11[_0x547e8f];return _0x9e74c5;}import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x3cadc8,_0x5c0dcc){const _0x334f19=a173_0x9e74,_0x3b67ae=[];let _0x14d0f8=0x1;while(!![]){const _0x35f5a6=await listSqlQueries(_0x3cadc8,{'currentPage':_0x14d0f8,'pageSize':PAGE_SIZE,'sqlCode':_0x5c0dcc['sqlCode'],'sqlName':_0x5c0dcc['sqlName']}),_0x3c2d38=_0x35f5a6[_0x334f19(0x1d3)]??[];_0x3b67ae['push'](..._0x3c2d38);if(_0x3c2d38[_0x334f19(0x1c6)]===0x0)break;const _0x3151cf=_0x35f5a6[_0x334f19(0x1d8)]?.[_0x334f19(0x1ad)];if(_0x3151cf!=null?_0x3b67ae[_0x334f19(0x1c6)]>=_0x3151cf:_0x3c2d38[_0x334f19(0x1c6)]<PAGE_SIZE)break;_0x14d0f8++;}return _0x3b67ae;}async function ensureSqlContent(_0x429013){const _0x17ae53=a173_0x9e74;if(_0x429013[_0x17ae53(0x1c7)]!=null&&String(_0x429013['sqlContent'])[_0x17ae53(0x1c6)]>0x0)return _0x429013;return getSqlQueryDetail(_0x429013[_0x17ae53(0x1dc)]);}export const sqlPull={'service':a173_0x54d893(0x1b1),'command':a173_0x54d893(0x1bd),'description':a173_0x54d893(0x1ab),'risk':a173_0x54d893(0x1c9),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a173_0x54d893(0x1df)},{'name':a173_0x54d893(0x1d0),'type':'boolean','description':a173_0x54d893(0x1be)}],async 'dryRun'(_0x4924c1){const _0x240f61=a173_0x54d893,_0x235e92=loadSqlProjectConfig(_0x4924c1[_0x240f61(0x1d1)]),_0x171d7a=await readSqlLockFile(_0x235e92[_0x240f61(0x1cf)]),{appLock:_0x56f9c7}=ensureSqlLockScope(_0x171d7a??createEmptySqlLock(),_0x235e92['appCode'],_0x235e92[_0x240f61(0x1c5)],_0x240f61(0x1bd)),_0x11fe2e=await fetchAllSqlQueries(_0x4924c1['appCode'],{'sqlCode':_0x4924c1['str'](_0x240f61(0x1bc))||undefined,'sqlName':_0x4924c1[_0x240f61(0x1dd)](_0x240f61(0x1b4))||undefined}),_0x1cb0c4=[];for(const _0x29055d of _0x11fe2e){const _0x111016=await ensureSqlContent(_0x29055d),_0x14875c=ensureRemoteSqlContent(_0x111016),_0x36eee1=detectModeFromSql(_0x111016),_0x2fcf25=_0x111016['dbId']?await getDbName(_0x4924c1['appCode'],Number(_0x111016[_0x240f61(0x1cd)]))[_0x240f61(0x1c2)](()=>undefined):undefined,_0x1f6544=buildLocalSqlFileContent({'sqlCode':_0x111016[_0x240f61(0x1dc)],'sqlName':_0x111016[_0x240f61(0x1aa)],'dbId':_0x111016['dbId']},_0x14875c,{'dbName':_0x2fcf25,'mode':_0x36eee1,'syncedAt':new Date()[_0x240f61(0x1c4)](),'description':_0x111016['description']}),_0xbe7da5=buildSqlLockEntry(_0x111016,_0x14875c,'',{'dbName':_0x2fcf25}),_0x5629ef=resolveLocalSqlFilePath(_0x235e92,_0x111016[_0x240f61(0x1dc)],_0xbe7da5);let _0x5af5d0=_0x240f61(0x1da),_0x3332f6;if(await fileExists(_0x5629ef)){const _0x2c4470=await readFile(_0x5629ef,'utf8');isEquivalentPulledSqlFile(_0x2c4470,_0x1f6544,_0x36eee1)?(_0x5af5d0='skipped',_0x3332f6=_0x240f61(0x1ca)):(_0x5af5d0='conflict',_0x3332f6=_0x240f61(0x1ba));}_0x1cb0c4['push']({'sqlCode':_0x111016[_0x240f61(0x1dc)],'sqlName':_0x111016[_0x240f61(0x1aa)],'filePath':_0x5629ef,'status':_0x5af5d0,'reason':_0x3332f6});}return{'method':'POST','url':_0x240f61(0x1e0),'body':{'appCode':_0x4924c1[_0x240f61(0x1d1)],'sqlCode':_0x4924c1[_0x240f61(0x1dd)]('sqlcode')||null,'sqlName':_0x4924c1[_0x240f61(0x1dd)]('name')||null,'files':_0x1cb0c4},'description':_0x240f61(0x1c0)+_0x1cb0c4['length']+_0x240f61(0x1cc)+_0x235e92['sqlRootDir']};},async 'execute'(_0x563eb4){const _0x1abd21=a173_0x54d893,_0x1f94e3=loadSqlProjectConfig(_0x563eb4['appCode']),_0x5efbb0=await readSqlLockFile(_0x1f94e3['lockFilePath']),{lockData:_0x4f9000,appLock:_0xf1b447}=ensureSqlLockScope(_0x5efbb0??createEmptySqlLock(),_0x1f94e3['appCode'],_0x1f94e3[_0x1abd21(0x1c5)],'pull'),_0x4d0372=_0x563eb4[_0x1abd21(0x1c8)](_0x1abd21(0x1d0)),_0x1f6bdb=await fetchAllSqlQueries(_0x563eb4['appCode'],{'sqlCode':_0x563eb4[_0x1abd21(0x1dd)](_0x1abd21(0x1bc))||undefined,'sqlName':_0x563eb4['str']('name')||undefined});if(_0x1f6bdb[_0x1abd21(0x1c6)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x1abd21(0x1b9)};const _0x2b7cfc=[],_0x1d630c=[];for(const _0x124d8d of _0x1f6bdb){try{_0x2b7cfc[_0x1abd21(0x1b7)](await ensureSqlContent(_0x124d8d));}catch(_0x3d1646){_0x1d630c[_0x1abd21(0x1b7)]({'sqlCode':_0x124d8d[_0x1abd21(0x1dc)],'error':_0x3d1646 instanceof Error?_0x3d1646['message']:String(_0x3d1646)});}}if(_0x4d0372&&!_0x563eb4[_0x1abd21(0x1e2)]){let _0x1f8f8b=![];for(const _0x1dca5e of _0x2b7cfc){const _0x43283b=detectModeFromSql(_0x1dca5e),_0x33ba01=_0x1dca5e[_0x1abd21(0x1cd)]?await getDbName(_0x563eb4['appCode'],Number(_0x1dca5e[_0x1abd21(0x1cd)]))['catch'](()=>undefined):undefined,_0x3e478c=buildLocalSqlFileContent({'sqlCode':_0x1dca5e['sqlCode'],'sqlName':_0x1dca5e[_0x1abd21(0x1aa)],'dbId':_0x1dca5e['dbId']},ensureRemoteSqlContent(_0x1dca5e),{'dbName':_0x33ba01,'mode':_0x43283b,'syncedAt':new Date()['toISOString'](),'description':_0x1dca5e[_0x1abd21(0x1b6)]}),_0x26ed75=resolveLocalSqlFilePath(_0x1f94e3,_0x1dca5e[_0x1abd21(0x1dc)],buildSqlLockEntry(_0x1dca5e,ensureRemoteSqlContent(_0x1dca5e),'',{'dbName':_0x33ba01}));if(await fileExists(_0x26ed75)){const _0x420b76=await readFile(_0x26ed75,_0x1abd21(0x1d6));if(!isEquivalentPulledSqlFile(_0x420b76,_0x3e478c,_0x43283b)){_0x1f8f8b=!![];break;}}}if(_0x1f8f8b){const _0x3c9c0b=await confirmForceOverwrite(_0x1abd21(0x1bf));if(!_0x3c9c0b)throw CliErrors['cancelled']('Force\x20pull\x20cancelled.');}}const _0x2a5aaf=cloneSqlLockData(_0x4f9000),_0x2618cd=_0x2a5aaf[_0x1abd21(0x1ac)][_0x1f94e3[_0x1abd21(0x1d1)]],_0x201edf=[],_0x306dd9=[];for(const _0x33bbb1 of _0x2b7cfc){const _0x9f8828=_0x2618cd[_0x1abd21(0x1ae)][_0x33bbb1[_0x1abd21(0x1dc)]],_0x24bc77=ensureRemoteSqlContent(_0x33bbb1),_0x2ed319=detectModeFromSql(_0x33bbb1),_0x54a104=_0x33bbb1[_0x1abd21(0x1cd)]?await getDbName(_0x563eb4[_0x1abd21(0x1d1)],Number(_0x33bbb1[_0x1abd21(0x1cd)]))[_0x1abd21(0x1c2)](()=>undefined):undefined,_0x3acecc=buildLocalSqlFileContent({'sqlCode':_0x33bbb1['sqlCode'],'sqlName':_0x33bbb1[_0x1abd21(0x1aa)],'dbId':_0x33bbb1[_0x1abd21(0x1cd)]},_0x24bc77,{'dbName':_0x54a104,'mode':_0x2ed319,'syncedAt':new Date()[_0x1abd21(0x1c4)](),'description':_0x33bbb1['description']}),_0x50a6fe=buildSqlLockEntry(_0x33bbb1,_0x24bc77,computeSqlContentHash(_0x3acecc),{'dbName':_0x54a104}),_0x318600=_0x50a6fe['path'],_0x442e57=join(_0x1f94e3['sqlRootDir'],_0x318600);try{if(await fileExists(_0x442e57)){const _0x3cc63c=await readFile(_0x442e57,'utf8');if(isEquivalentPulledSqlFile(_0x3cc63c,_0x3acecc,_0x2ed319)){_0x306dd9['push']({'sqlCode':_0x33bbb1[_0x1abd21(0x1dc)],'reason':_0x1abd21(0x1ca)}),_0x2618cd[_0x1abd21(0x1ae)][_0x33bbb1['sqlCode']]={..._0x50a6fe,'hash':computeSqlContentHash(_0x3cc63c),'path':_0x318600};continue;}if(!_0x4d0372){_0x306dd9[_0x1abd21(0x1b7)]({'sqlCode':_0x33bbb1[_0x1abd21(0x1dc)],'reason':_0x1abd21(0x1b3)});continue;}}const _0x4f425d=_0x9f8828?.[_0x1abd21(0x1b0)]?join(_0x1f94e3[_0x1abd21(0x1b2)],_0x9f8828[_0x1abd21(0x1b0)]):undefined;_0x4f425d&&_0x4f425d!==_0x442e57&&await fileExists(_0x4f425d)&&await rm(_0x4f425d,{'force':!![]}),await ensureParentDirectory(_0x442e57),await writeFile(_0x442e57,_0x3acecc,'utf8'),_0x2618cd[_0x1abd21(0x1ae)][_0x33bbb1['sqlCode']]={..._0x50a6fe,'path':_0x318600},_0x201edf[_0x1abd21(0x1b7)]({'sqlCode':_0x33bbb1['sqlCode'],'filePath':_0x442e57});}catch(_0x3d798f){_0x1d630c['push']({'sqlCode':_0x33bbb1[_0x1abd21(0x1dc)],'error':_0x3d798f instanceof Error?_0x3d798f['message']:String(_0x3d798f)});}}return _0x2618cd['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x1f94e3[_0x1abd21(0x1cf)],_0x2a5aaf),{'ok':_0x1d630c[_0x1abd21(0x1c6)]===0x0,'data':{'pulled':_0x201edf,'skipped':_0x306dd9,'failed':_0x1d630c},'message':'Pull\x20complete:\x20'+_0x201edf[_0x1abd21(0x1c6)]+'\x20written,\x20'+_0x306dd9['length']+_0x1abd21(0x1d7)+_0x1d630c[_0x1abd21(0x1c6)]+'\x20failed'};}};function a173_0x1b3a(){const _0x54e0e0=['5610848xAipFl','sqlCode','str','5829241DfOUYD','Filter\x20by\x20SQL\x20display\x20name','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','1373024YEcnKT','nonInteractive','mybatisXml','sqlName','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','apps','totalCount','sqls','10RdzyIs','path','sql','sqlRootDir','local\x20differs\x20from\x20remote','name','8939zkERwF','description','push','test','No\x20remote\x20SQL\x20queries\x20matched.','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','join','sqlcode','pull','Force\x20overwrite\x20local\x20unsynced\x20changes','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','Would\x20pull\x20','split','catch','trimStart','toISOString','sqlRoot','length','sqlContent','bool','write','unchanged','2oiprOA','\x20SQL\x20file(s)\x20into\x20','dbId','2054655HHlQGa','lockFilePath','force','appCode','32770PnctCY','tableData','1017MLLtST','540146vSzdjp','utf8','\x20skipped,\x20','paging','3822jCaFyv','would_pull'];a173_0x1b3a=function(){return _0x54e0e0;};return a173_0x1b3a();}function detectModeFromSql(_0x5c3e85){const _0x1eadbf=a173_0x54d893,_0xf67f4c=ensureRemoteSqlContent(_0x5c3e85),_0x421451=stripLocalSqlMetadata(_0xf67f4c,_0x1eadbf(0x1e3))[_0x1eadbf(0x1c3)]();if(/^<(select|insert|update|delete)\b/i[_0x1eadbf(0x1b8)](_0x421451))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x16c8b4,_0x57d01c,_0x496716){return normalizePullComparableContent(_0x16c8b4,_0x496716)===normalizePullComparableContent(_0x57d01c,_0x496716);}function normalizePullComparableContent(_0x295345,_0x556328){const _0xf1503b=a173_0x54d893,_0x43d56b=_0x295345['replace'](/\r\n/g,'\x0a')[_0xf1503b(0x1c1)]('\x0a'),_0x5572ff=_0x43d56b['filter'](_0x4631f3=>!isSyncedAtMetadataLine(_0x4631f3,_0x556328));return _0x5572ff[_0xf1503b(0x1bb)]('\x0a');}function isSyncedAtMetadataLine(_0x3d08ad,_0x556fa4){const _0x4b6e32=a173_0x54d893;if(_0x556fa4===_0x4b6e32(0x1e3))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x4b6e32(0x1b8)](_0x3d08ad);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x4b6e32(0x1b8)](_0x3d08ad);}