@lovrabet/rabetbase-cli 2.3.9-beta.2 → 2.3.9-beta.3

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 (258) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/add.js +1 -1
  20. package/lib/commands/app/index.js +1 -1
  21. package/lib/commands/app/list.js +1 -1
  22. package/lib/commands/app/remote-directory.js +1 -1
  23. package/lib/commands/app/remove.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app-config/delete.js +1 -1
  26. package/lib/commands/app-config/get.js +1 -1
  27. package/lib/commands/app-config/index.js +1 -1
  28. package/lib/commands/app-config/list.js +1 -1
  29. package/lib/commands/app-config/set.js +1 -1
  30. package/lib/commands/app-config/shared.js +1 -1
  31. package/lib/commands/auth/index.js +1 -1
  32. package/lib/commands/bff/create.js +1 -1
  33. package/lib/commands/bff/delete.js +1 -1
  34. package/lib/commands/bff/detail.js +1 -1
  35. package/lib/commands/bff/index.js +1 -1
  36. package/lib/commands/bff/list.js +1 -1
  37. package/lib/commands/bff/pull.js +1 -1
  38. package/lib/commands/bff/push.js +1 -1
  39. package/lib/commands/bff/status.js +1 -1
  40. package/lib/commands/cli-skill/index.js +1 -1
  41. package/lib/commands/cli-update.js +1 -1
  42. package/lib/commands/codegen/index.js +1 -1
  43. package/lib/commands/codegen/sdk.js +1 -1
  44. package/lib/commands/codegen/sql.js +1 -1
  45. package/lib/commands/common/app-registry.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/async-task.js +1 -0
  48. package/lib/commands/common/dry-run.js +1 -1
  49. package/lib/commands/common/flags.js +1 -1
  50. package/lib/commands/common/local-file.js +1 -1
  51. package/lib/commands/common/validate.js +1 -1
  52. package/lib/commands/config/get.js +1 -1
  53. package/lib/commands/config/index.js +1 -1
  54. package/lib/commands/config/list.js +1 -1
  55. package/lib/commands/config/set.js +1 -1
  56. package/lib/commands/config/shared.js +1 -1
  57. package/lib/commands/data/filter.js +1 -1
  58. package/lib/commands/data/getOne.js +1 -1
  59. package/lib/commands/data/index.js +1 -1
  60. package/lib/commands/data/shared.js +1 -1
  61. package/lib/commands/dataset/business-group-update.js +1 -1
  62. package/lib/commands/dataset/capability.js +1 -1
  63. package/lib/commands/dataset/delete.js +1 -1
  64. package/lib/commands/dataset/detail.js +1 -1
  65. package/lib/commands/dataset/extend-update.js +1 -1
  66. package/lib/commands/dataset/field-update.js +1 -1
  67. package/lib/commands/dataset/generate.js +1 -1
  68. package/lib/commands/dataset/index.js +1 -1
  69. package/lib/commands/dataset/list.js +1 -1
  70. package/lib/commands/dataset/operations.js +1 -1
  71. package/lib/commands/dataset/relation-audit.js +1 -1
  72. package/lib/commands/dataset/relation-create.js +1 -1
  73. package/lib/commands/dataset/relation-delete.js +1 -1
  74. package/lib/commands/dataset/relation-shared.js +1 -1
  75. package/lib/commands/dataset/relation-update.js +1 -1
  76. package/lib/commands/dataset/relations.js +1 -1
  77. package/lib/commands/dataset/rename.js +1 -1
  78. package/lib/commands/dataset/restore.js +1 -1
  79. package/lib/commands/db/analysis-batching.js +1 -1
  80. package/lib/commands/db/analyze-batch-plan.js +1 -1
  81. package/lib/commands/db/analyze-cancel.js +1 -1
  82. package/lib/commands/db/analyze-start.js +1 -1
  83. package/lib/commands/db/analyze-status.js +1 -1
  84. package/lib/commands/db/create.js +1 -1
  85. package/lib/commands/db/delete.js +1 -1
  86. package/lib/commands/db/detail.js +1 -1
  87. package/lib/commands/db/diff.js +1 -1
  88. package/lib/commands/db/index.js +1 -1
  89. package/lib/commands/db/list.js +1 -1
  90. package/lib/commands/db/shared.js +1 -1
  91. package/lib/commands/db/tables.js +1 -1
  92. package/lib/commands/db/test.js +1 -1
  93. package/lib/commands/db/update.js +1 -1
  94. package/lib/commands/doctor.js +1 -1
  95. package/lib/commands/file/index.js +1 -1
  96. package/lib/commands/init/index.js +1 -1
  97. package/lib/commands/issue/index.js +1 -1
  98. package/lib/commands/issue/nudge.js +1 -1
  99. package/lib/commands/issue/report.js +1 -1
  100. package/lib/commands/issue/shared.js +1 -1
  101. package/lib/commands/logs/index.js +1 -1
  102. package/lib/commands/menu/delete.js +1 -0
  103. package/lib/commands/menu/group-create.js +1 -0
  104. package/lib/commands/menu/group-update.js +1 -0
  105. package/lib/commands/menu/index.js +1 -1
  106. package/lib/commands/menu/list.js +1 -1
  107. package/lib/commands/menu/regroup-start.js +1 -0
  108. package/lib/commands/menu/shared/compare-table.js +1 -1
  109. package/lib/commands/menu/shared/delete-plan.js +1 -0
  110. package/lib/commands/menu/shared/facts.js +1 -0
  111. package/lib/commands/menu/shared/index.js +1 -1
  112. package/lib/commands/menu/shared/inquirer.js +1 -1
  113. package/lib/commands/menu/shared/local-pages.js +1 -1
  114. package/lib/commands/menu/shared/logic.js +1 -1
  115. package/lib/commands/menu/shared/mutations.js +1 -0
  116. package/lib/commands/menu/shared/service.js +1 -1
  117. package/lib/commands/menu/shared/sync-core.js +1 -1
  118. package/lib/commands/menu/shared/update-core.js +1 -1
  119. package/lib/commands/menu/shared/valid-url.js +1 -1
  120. package/lib/commands/menu/sync.js +1 -1
  121. package/lib/commands/menu/update.js +1 -1
  122. package/lib/commands/notification/config-list.js +1 -1
  123. package/lib/commands/notification/index.js +1 -1
  124. package/lib/commands/page/generate-start.js +1 -1
  125. package/lib/commands/page/generate-status.js +1 -1
  126. package/lib/commands/page/index.js +1 -1
  127. package/lib/commands/page/pull.js +1 -1
  128. package/lib/commands/page/push.js +1 -1
  129. package/lib/commands/page/relation-audit.js +1 -1
  130. package/lib/commands/page/shared.js +1 -1
  131. package/lib/commands/page/standard-page-status.js +1 -1
  132. package/lib/commands/page/sync.js +1 -1
  133. package/lib/commands/permit/index.js +1 -1
  134. package/lib/commands/permit/page-get.js +1 -1
  135. package/lib/commands/permit/page-set.js +1 -1
  136. package/lib/commands/permit/role-apis-set.js +1 -1
  137. package/lib/commands/permit/role-menus-set.js +1 -1
  138. package/lib/commands/permit/role-menus.js +1 -1
  139. package/lib/commands/permit/shared.js +1 -1
  140. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  141. package/lib/commands/project/create/format-elapsed.js +1 -1
  142. package/lib/commands/project/create/main.js +1 -1
  143. package/lib/commands/project/create/non-interactive.js +1 -1
  144. package/lib/commands/project/create/project-template-path.js +1 -1
  145. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  146. package/lib/commands/project/create/use-format-code.js +1 -1
  147. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  148. package/lib/commands/project/index.js +1 -1
  149. package/lib/commands/project/init.js +1 -1
  150. package/lib/commands/project/upgrade.js +1 -1
  151. package/lib/commands/registry.js +1 -1
  152. package/lib/commands/role/create.js +1 -1
  153. package/lib/commands/role/delete.js +1 -1
  154. package/lib/commands/role/detail.js +1 -1
  155. package/lib/commands/role/index.js +1 -1
  156. package/lib/commands/role/list.js +1 -1
  157. package/lib/commands/role/shared.js +1 -1
  158. package/lib/commands/role/update.js +1 -1
  159. package/lib/commands/role/user-add.js +1 -1
  160. package/lib/commands/role/user-remove.js +1 -1
  161. package/lib/commands/role/user-resolve.js +1 -1
  162. package/lib/commands/run/index.js +1 -1
  163. package/lib/commands/schema.js +1 -1
  164. package/lib/commands/sql/create.js +1 -1
  165. package/lib/commands/sql/delete.js +1 -1
  166. package/lib/commands/sql/detail.js +1 -1
  167. package/lib/commands/sql/exec.js +1 -1
  168. package/lib/commands/sql/index.js +1 -1
  169. package/lib/commands/sql/list.js +1 -1
  170. package/lib/commands/sql/pull.js +1 -1
  171. package/lib/commands/sql/push.js +1 -1
  172. package/lib/commands/sql/save.js +1 -1
  173. package/lib/commands/sql/shared.js +1 -1
  174. package/lib/commands/sql/status.js +1 -1
  175. package/lib/commands/sql/validate.js +1 -1
  176. package/lib/commands/task/index.js +1 -0
  177. package/lib/commands/task/status.js +1 -0
  178. package/lib/commands/workspace/add.js +1 -1
  179. package/lib/commands/workspace/index.js +1 -1
  180. package/lib/commands/workspace/remove.js +1 -1
  181. package/lib/config/schema.js +1 -1
  182. package/lib/constant/cdn.js +1 -1
  183. package/lib/constant/cli.js +1 -1
  184. package/lib/constant/defaults.js +1 -1
  185. package/lib/constant/domain.js +1 -1
  186. package/lib/constant/env.js +1 -1
  187. package/lib/constant/output.js +1 -1
  188. package/lib/constant/paths.js +1 -1
  189. package/lib/constant/risk.js +1 -1
  190. package/lib/context/app-resolver.js +1 -1
  191. package/lib/context/auth-resolver.js +1 -1
  192. package/lib/context/config-loader.js +1 -1
  193. package/lib/context.js +1 -1
  194. package/lib/core/alias-resolver.js +1 -1
  195. package/lib/core/api-client.js +1 -1
  196. package/lib/core/bff/config.js +1 -1
  197. package/lib/core/bff/file-system.js +1 -1
  198. package/lib/core/bff/hash.js +1 -1
  199. package/lib/core/bff/lock.js +1 -1
  200. package/lib/core/bff/utils.js +1 -1
  201. package/lib/core/db-resolver.js +1 -1
  202. package/lib/core/page/file-system.js +1 -1
  203. package/lib/core/page/hash.js +1 -1
  204. package/lib/core/page/lock.js +1 -1
  205. package/lib/core/sql-index-auditor.js +1 -0
  206. package/lib/core/sql-sync/config.js +1 -1
  207. package/lib/core/sql-sync/file-system.js +1 -1
  208. package/lib/core/sql-sync/hash.js +1 -1
  209. package/lib/core/sql-sync/lock.js +1 -1
  210. package/lib/core/sql-sync/utils.js +1 -1
  211. package/lib/core/sql-validator.js +1 -1
  212. package/lib/errors.js +1 -1
  213. package/lib/framework/build-all-flags.js +1 -1
  214. package/lib/framework/error-output.js +1 -0
  215. package/lib/framework/explicit-yes.js +1 -0
  216. package/lib/framework/flags.js +1 -1
  217. package/lib/framework/help.js +1 -1
  218. package/lib/framework/index.js +1 -1
  219. package/lib/framework/output.js +1 -1
  220. package/lib/framework/response.js +1 -1
  221. package/lib/framework/runner-alias.js +1 -1
  222. package/lib/framework/runner.js +1 -1
  223. package/lib/framework/schema-export.js +1 -1
  224. package/lib/framework/types.js +1 -1
  225. package/lib/generated/build-info.js +1 -1
  226. package/lib/help.js +1 -1
  227. package/lib/skills/main.js +1 -1
  228. package/lib/skills/npx-skills-add.js +1 -1
  229. package/lib/telemetry/cli-command-trace.js +1 -1
  230. package/lib/telemetry/cli-help-trace.js +1 -1
  231. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  232. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  233. package/lib/telemetry/send-cli-trace-log.js +1 -1
  234. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  235. package/lib/utils/ai_config.js +1 -1
  236. package/lib/utils/apply-jq-filter.js +1 -1
  237. package/lib/utils/cdn-config.js +1 -1
  238. package/lib/utils/check-sdk-version.js +1 -1
  239. package/lib/utils/cli-version-check.js +1 -1
  240. package/lib/utils/cli-version-policy.js +1 -1
  241. package/lib/utils/config.js +1 -1
  242. package/lib/utils/copy-directory.js +1 -1
  243. package/lib/utils/entity-with-id.js +1 -1
  244. package/lib/utils/file-utils.js +1 -1
  245. package/lib/utils/guides-cdn.js +1 -1
  246. package/lib/utils/http-client.js +1 -1
  247. package/lib/utils/is-non-interactive.js +1 -1
  248. package/lib/utils/logger.js +1 -1
  249. package/lib/utils/params.js +1 -1
  250. package/lib/utils/platform.js +1 -1
  251. package/lib/utils/rules-cdn.js +1 -1
  252. package/lib/utils/sleep.js +1 -1
  253. package/lib/utils/template-replacer.js +1 -1
  254. package/lib/utils/update-notice.js +1 -1
  255. package/lib/utils/version.js +1 -1
  256. package/lib/utils/with-active-cookie.js +1 -1
  257. package/lib/utils/write-cli-side-channel.js +1 -1
  258. package/package.json +1 -1
@@ -1 +1 @@
1
- const a152_0x4b5247=a152_0xdb35;(function(_0x4a3bed,_0xce1f8c){const _0xd2620c=a152_0xdb35,_0x9ae517=_0x4a3bed();while(!![]){try{const _0x32de95=-parseInt(_0xd2620c(0x183))/0x1+parseInt(_0xd2620c(0x18b))/0x2+parseInt(_0xd2620c(0x182))/0x3+-parseInt(_0xd2620c(0x189))/0x4*(parseInt(_0xd2620c(0x18c))/0x5)+-parseInt(_0xd2620c(0x187))/0x6*(parseInt(_0xd2620c(0x17c))/0x7)+parseInt(_0xd2620c(0x185))/0x8*(parseInt(_0xd2620c(0x188))/0x9)+parseInt(_0xd2620c(0x180))/0xa;if(_0x32de95===_0xce1f8c)break;else _0x9ae517['push'](_0x9ae517['shift']());}catch(_0x4fc1b9){_0x9ae517['push'](_0x9ae517['shift']());}}}(a152_0x364e,0x522e7));import{updateRoleUsers}from'../../core/api-client.js';function a152_0x364e(){const _0x1c19ff=['1119354PjNlRB','35DxRinu','user-remove','selector','high-risk-write','18452qmSPga','POST','No\x20change:\x20user\x20','role','4833370KTsTKV','userId','268563oRxBxK','489469VyXohU','roleName','512VSNsml','\x20not\x20in\x20role\x20','636HCynIp','31113KAJiyG','141876JJYvOa','Remove\x20a\x20user\x20from\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes'];a152_0x364e=function(){return _0x1c19ff;};return a152_0x364e();}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 a152_0xdb35(_0x44fee4,_0xcbf06b){_0x44fee4=_0x44fee4-0x17b;const _0x364e45=a152_0x364e();let _0xdb350d=_0x364e45[_0x44fee4];return _0xdb350d;}export const roleUserRemove={'service':a152_0x4b5247(0x17f),'command':'user-remove','description':a152_0x4b5247(0x18a),'risk':a152_0x4b5247(0x17b),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0xc63b60){const _0x338d9e=a152_0x4b5247,{mutation:_0x5e2445}=await prepareUserMutation(_0xc63b60,_0x338d9e(0x18d),!![]);return asDryRunResult(_0x5e2445,{'method':_0x338d9e(0x17d),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x4fec6c){const _0x651b3=a152_0x4b5247,{roleList:_0x3b3311,mutation:_0x397afe,changed:_0x26a80d}=await prepareUserMutation(_0x4fec6c,_0x651b3(0x18d),![]);return _0x26a80d&&await updateRoleUsers(_0x4fec6c['appCode'],_0x3b3311),{'ok':!![],'data':_0x397afe,'message':_0x26a80d?'Removed\x20user\x20'+_0x397afe['selector'][_0x651b3(0x181)]+'\x20from\x20role\x20'+_0x397afe[_0x651b3(0x18e)]['roleName']:_0x651b3(0x17e)+_0x397afe[_0x651b3(0x18e)][_0x651b3(0x181)]+_0x651b3(0x186)+_0x397afe[_0x651b3(0x18e)][_0x651b3(0x184)]};}};
1
+ function a160_0xc295(_0x205f08,_0x19c205){_0x205f08=_0x205f08-0x167;const _0x18ca54=a160_0x18ca();let _0xc295d2=_0x18ca54[_0x205f08];return _0xc295d2;}const a160_0x106787=a160_0xc295;(function(_0xa0586e,_0x30774c){const _0x539071=a160_0xc295,_0x5653bc=_0xa0586e();while(!![]){try{const _0x3af7d7=-parseInt(_0x539071(0x177))/0x1+parseInt(_0x539071(0x178))/0x2+-parseInt(_0x539071(0x171))/0x3*(parseInt(_0x539071(0x173))/0x4)+-parseInt(_0x539071(0x16e))/0x5*(-parseInt(_0x539071(0x176))/0x6)+-parseInt(_0x539071(0x167))/0x7+-parseInt(_0x539071(0x16d))/0x8+parseInt(_0x539071(0x16c))/0x9;if(_0x3af7d7===_0x30774c)break;else _0x5653bc['push'](_0x5653bc['shift']());}catch(_0x1e2581){_0x5653bc['push'](_0x5653bc['shift']());}}}(a160_0x18ca,0x64786));function a160_0x18ca(){const _0x16aed5=['19236618xNnMYt','5257720wntkFp','151005zcrQfb','user-remove','\x20from\x20role\x20','2613rtsIkY','userId','3116PfbmbY','role','Remove\x20a\x20user\x20from\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','96CZnwSZ','212428emwlIA','102200ueNxmD','No\x20change:\x20user\x20','4984280fsbPHl','selector','\x20not\x20in\x20role\x20','roleName','Removed\x20user\x20'];a160_0x18ca=function(){return _0x16aed5;};return a160_0x18ca();}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';export const roleUserRemove={'service':a160_0x106787(0x174),'command':a160_0x106787(0x16f),'description':a160_0x106787(0x175),'risk':'high-risk-write','flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x4e3b56){const _0x529d7e=a160_0x106787,{mutation:_0x5a32dd}=await prepareUserMutation(_0x4e3b56,_0x529d7e(0x16f),!![]);return asDryRunResult(_0x5a32dd,{'method':'POST','url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x61cbfb){const _0x434d6b=a160_0x106787,{roleList:_0x9bf496,mutation:_0xf6ffc5,changed:_0x39f608}=await prepareUserMutation(_0x61cbfb,_0x434d6b(0x16f),![]);return _0x39f608&&await updateRoleUsers(_0x61cbfb['appCode'],_0x9bf496),{'ok':!![],'data':_0xf6ffc5,'message':_0x39f608?_0x434d6b(0x16b)+_0xf6ffc5['selector'][_0x434d6b(0x172)]+_0x434d6b(0x170)+_0xf6ffc5[_0x434d6b(0x168)][_0x434d6b(0x16a)]:_0x434d6b(0x179)+_0xf6ffc5[_0x434d6b(0x168)][_0x434d6b(0x172)]+_0x434d6b(0x169)+_0xf6ffc5[_0x434d6b(0x168)][_0x434d6b(0x16a)]};}};
@@ -1 +1 @@
1
- const a153_0x21f146=a153_0x45ac;(function(_0x332701,_0x49754d){const _0x352349=a153_0x45ac,_0x5c553b=_0x332701();while(!![]){try{const _0x2e89f1=parseInt(_0x352349(0x1cd))/0x1+-parseInt(_0x352349(0x1c9))/0x2*(parseInt(_0x352349(0x1d2))/0x3)+parseInt(_0x352349(0x1d9))/0x4+-parseInt(_0x352349(0x1cf))/0x5*(-parseInt(_0x352349(0x1d1))/0x6)+parseInt(_0x352349(0x1da))/0x7+parseInt(_0x352349(0x1d0))/0x8*(-parseInt(_0x352349(0x1c7))/0x9)+parseInt(_0x352349(0x1d7))/0xa;if(_0x2e89f1===_0x49754d)break;else _0x5c553b['push'](_0x5c553b['shift']());}catch(_0x49edd3){_0x5c553b['push'](_0x5c553b['shift']());}}}(a153_0x3685,0x35094));function a153_0x3685(){const _0x4ce23e=['192437ZBpQHl','str','\x22\x20→\x20userId\x20','183798MtsZMo','nickname','11724ZGcZCW','flagMissing','user-resolve','role','256295OxGzRz','username','30gBYzka','56uPdqri','2238ruliPU','186ZkUANF','userId','name','trim','matchedBy','3746700oGlxVD','read','251760dxOQwz'];a153_0x3685=function(){return _0x4ce23e;};return a153_0x3685();}import{CliErrors}from'../../errors.js';function a153_0x45ac(_0x22d595,_0x2ddb4a){_0x22d595=_0x22d595-0x1c7;const _0x36850c=a153_0x3685();let _0x45ac1e=_0x36850c[_0x22d595];return _0x45ac1e;}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':a153_0x21f146(0x1cc),'command':a153_0x21f146(0x1cb),'description':'Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','risk':a153_0x21f146(0x1d8),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x34654f){const _0x813ac7=a153_0x21f146;if(!_0x34654f[_0x813ac7(0x1db)](_0x813ac7(0x1d4))[_0x813ac7(0x1d5)]())throw CliErrors[_0x813ac7(0x1ca)](_0x813ac7(0x1d4),'Pass\x20--name\x20<nickname|username>.');},async 'execute'(_0x19a4da){const _0x4e2e01=a153_0x21f146,_0x4c0aa6=_0x19a4da[_0x4e2e01(0x1db)](_0x4e2e01(0x1d4))[_0x4e2e01(0x1d5)](),_0x50882f=await resolveUserRef(_0x4c0aa6);return{'ok':!![],'data':{'user':{'userId':_0x50882f[_0x4e2e01(0x1d3)],'username':_0x50882f[_0x4e2e01(0x1ce)],'nickname':_0x50882f[_0x4e2e01(0x1c8)],'matchedBy':_0x50882f[_0x4e2e01(0x1d6)]}},'message':'Resolved\x20\x22'+_0x4c0aa6+_0x4e2e01(0x1dc)+_0x50882f[_0x4e2e01(0x1d3)]};}};
1
+ const a161_0x41315b=a161_0x1ae9;(function(_0x1f5d5a,_0x3dd326){const _0xdcd8da=a161_0x1ae9,_0x12706c=_0x1f5d5a();while(!![]){try{const _0x7a8340=-parseInt(_0xdcd8da(0x139))/0x1*(-parseInt(_0xdcd8da(0x130))/0x2)+-parseInt(_0xdcd8da(0x13e))/0x3+-parseInt(_0xdcd8da(0x146))/0x4*(parseInt(_0xdcd8da(0x140))/0x5)+parseInt(_0xdcd8da(0x145))/0x6*(parseInt(_0xdcd8da(0x12e))/0x7)+parseInt(_0xdcd8da(0x12f))/0x8*(parseInt(_0xdcd8da(0x138))/0x9)+-parseInt(_0xdcd8da(0x13c))/0xa*(parseInt(_0xdcd8da(0x13f))/0xb)+parseInt(_0xdcd8da(0x144))/0xc*(parseInt(_0xdcd8da(0x143))/0xd);if(_0x7a8340===_0x3dd326)break;else _0x12706c['push'](_0x12706c['shift']());}catch(_0x3dff10){_0x12706c['push'](_0x12706c['shift']());}}}(a161_0x248f,0x6aa8a));import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a161_0x1ae9(_0x36a2ab,_0x172038){_0x36a2ab=_0x36a2ab-0x12e;const _0x248ff3=a161_0x248f();let _0x1ae958=_0x248ff3[_0x36a2ab];return _0x1ae958;}function a161_0x248f(){const _0x4c5793=['408rXxVkV','4MpLAas','39795pRzssL','250232wiPqZM','969454zTdsQL','Pass\x20--name\x20<nickname|username>.','nickname','Resolved\x20\x22','trim','read','name','str','45mbRUho','1wiqqBJ','userId','username','1963270nmAVIh','flagMissing','183756kLuBQG','11vLyhjD','3611315YXJSHV','Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','user-resolve','13XxQnII','4668168XmcSli'];a161_0x248f=function(){return _0x4c5793;};return a161_0x248f();}import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':'role','command':a161_0x41315b(0x142),'description':a161_0x41315b(0x141),'risk':a161_0x41315b(0x135),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x47cddb){const _0xe40e77=a161_0x41315b;if(!_0x47cddb[_0xe40e77(0x137)]('name')[_0xe40e77(0x134)]())throw CliErrors[_0xe40e77(0x13d)](_0xe40e77(0x136),_0xe40e77(0x131));},async 'execute'(_0x5b0c2b){const _0x4b68da=a161_0x41315b,_0x167cc5=_0x5b0c2b[_0x4b68da(0x137)]('name')[_0x4b68da(0x134)](),_0x3201d9=await resolveUserRef(_0x167cc5);return{'ok':!![],'data':{'user':{'userId':_0x3201d9[_0x4b68da(0x13a)],'username':_0x3201d9[_0x4b68da(0x13b)],'nickname':_0x3201d9[_0x4b68da(0x132)],'matchedBy':_0x3201d9['matchedBy']}},'message':_0x4b68da(0x133)+_0x167cc5+'\x22\x20→\x20userId\x20'+_0x3201d9[_0x4b68da(0x13a)]};}};
@@ -1 +1 @@
1
- const a154_0x49f937=a154_0x38b7;(function(_0x486d4b,_0x5e494a){const _0x3df7c5=a154_0x38b7,_0x5616b2=_0x486d4b();while(!![]){try{const _0x1be22f=-parseInt(_0x3df7c5(0x1aa))/0x1*(parseInt(_0x3df7c5(0x1b1))/0x2)+parseInt(_0x3df7c5(0x1d3))/0x3+-parseInt(_0x3df7c5(0x1d2))/0x4*(-parseInt(_0x3df7c5(0x1b5))/0x5)+-parseInt(_0x3df7c5(0x1b2))/0x6*(parseInt(_0x3df7c5(0x1d8))/0x7)+parseInt(_0x3df7c5(0x1b8))/0x8+-parseInt(_0x3df7c5(0x1c7))/0x9+-parseInt(_0x3df7c5(0x1bc))/0xa;if(_0x1be22f===_0x5e494a)break;else _0x5616b2['push'](_0x5616b2['shift']());}catch(_0x1c39d1){_0x5616b2['push'](_0x5616b2['shift']());}}}(a154_0x15a1,0x27bdd));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([a154_0x49f937(0x1c6),a154_0x49f937(0x1b3)]);function readPackageScripts(_0x68a261){const _0x515200=a154_0x49f937,_0x4d5d06=resolve(_0x68a261,_0x515200(0x1e5));if(!existsSync(_0x4d5d06))return null;try{const _0x2a2f6f=JSON[_0x515200(0x1e0)](readFileSync(_0x4d5d06,_0x515200(0x1be)));return _0x2a2f6f[_0x515200(0x1bd)]??{};}catch{return null;}}function detectPackageManager(_0x4f8367){const _0x3fc8fd=a154_0x49f937;if(existsSync(resolve(_0x4f8367,'bun.lockb'))||existsSync(resolve(_0x4f8367,_0x3fc8fd(0x1e1))))return _0x3fc8fd(0x1d4);if(existsSync(resolve(_0x4f8367,_0x3fc8fd(0x1b6))))return _0x3fc8fd(0x1df);if(existsSync(resolve(_0x4f8367,'yarn.lock')))return _0x3fc8fd(0x1d7);return'npm';}async function versionCheck(_0x4762d1){const _0x30e29a=a154_0x49f937,_0x25981a=await checkCliVersion();(_0x25981a[_0x30e29a(0x1bb)]||_0x25981a['belowMinimum'])&&(printCliUpgradeWarning(_0x25981a),assertCliVersionSupported(_0x25981a));const _0x325729=await checkSdkVersion(_0x4762d1);if(_0x325729[_0x30e29a(0x1bb)])printSdkUpgradeWarning(_0x325729);}function spawnScript(_0x3970d0,_0x4bac04,_0x340dab,_0x56d501){return new Promise((_0xd63fd5,_0x41198f)=>{const _0x351cb2=a154_0x38b7,_0x384213=['run',_0x4bac04,..._0x340dab],_0x47a569=spawn(_0x3970d0,_0x384213,{'cwd':_0x56d501,'stdio':_0x351cb2(0x1e4),'shell':!![],'env':{...process.env,'PATH':''+join(_0x56d501,'node_modules',_0x351cb2(0x1d9))+delimiter+process.env.PATH}});_0x47a569['on'](_0x351cb2(0x1c5),_0xb25e1b=>{const _0x46edce=_0x351cb2;if(_0xb25e1b===0x0||_0xb25e1b===null)_0xd63fd5();else _0x41198f(new Error(_0x3970d0+'\x20run\x20'+_0x4bac04+_0x46edce(0x1ac)+_0xb25e1b));}),_0x47a569['on'](_0x351cb2(0x1a8),_0x41198f);});}function spawnViteBuildWatch(_0x17cc4d){return new Promise((_0x57bf6f,_0x226861)=>{const _0x522244=a154_0x38b7,_0x288b0d=spawn(_0x522244(0x1c9),['build',_0x522244(0x1d0)],{'cwd':_0x17cc4d,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x17cc4d,_0x522244(0x1d6),_0x522244(0x1d9))+delimiter+process.env.PATH}});_0x288b0d['on'](_0x522244(0x1c5),_0xb4d8c9=>{const _0x36a83d=_0x522244;if(_0xb4d8c9===0x0||_0xb4d8c9===null)_0x57bf6f();else _0x226861(new Error(_0x36a83d(0x1c1)+_0xb4d8c9));}),_0x288b0d['on'](_0x522244(0x1a8),_0x226861);});}function a154_0x38b7(_0x45e648,_0x364af9){_0x45e648=_0x45e648-0x1a8;const _0x15a183=a154_0x15a1();let _0x38b7ab=_0x15a183[_0x45e648];return _0x38b7ab;}function spawnVitePreview(_0x1479c8){return new Promise((_0x392b83,_0x5255b2)=>{const _0x141c74=a154_0x38b7,_0x20068b=spawn('vite',['preview'],{'cwd':_0x1479c8,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x1479c8,_0x141c74(0x1d6),_0x141c74(0x1d9))+delimiter+process.env.PATH}});_0x20068b['on'](_0x141c74(0x1c5),_0x4ad1d6=>{const _0x1239f5=_0x141c74;if(_0x4ad1d6===0x0||_0x4ad1d6===null)_0x392b83();else _0x5255b2(new Error(_0x1239f5(0x1af)+_0x4ad1d6));}),_0x20068b['on'](_0x141c74(0x1a8),_0x5255b2);});}function a154_0x15a1(){const _0x19837a=['bun','args','node_modules','yarn','954814WWyWbV','.bin','bool','cwd','push','Available:\x20','\x20\x20\x20\x20','pnpm','parse','bun.lock','all','run','inherit','package.json','error','script','29EnWSce','slice','\x20exited\x20with\x20code\x20','Script\x20\x22','\x0a\x20\x20Available\x20scripts:\x0a','vite\x20preview\x20exited\x20with\x20code\x20','\x20run\x20preview\x20--watch','2798DZEmyO','12GIGydd','dev','join','5LaZjrt','pnpm-lock.yaml','Script\x20name\x20defined\x20in\x20package.json','2404760CALrzn','\x20\x20EXAMPLES','\x22\x20not\x20found\x20in\x20package.json.','needsUpgrade','2382980eIMpem','scripts','utf-8','No\x20package.json\x20found\x20in\x20current\x20directory.','preview','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','\x20run\x20preview','watch','\x20run\x20build','close','start','325431hVHCAP','length','vite','log','validation','Enable\x20watch\x20mode\x20for\x20preview','No\x20scripts\x20defined\x20in\x20package.json.','(none)','boolean','--watch','\x20run\x20<script>\x0a','1006268mNDYxv','595353jslENO'];a154_0x15a1=function(){return _0x19837a;};return a154_0x15a1();}const runFlags=[{'name':a154_0x49f937(0x1c3),'type':a154_0x49f937(0x1cf),'description':a154_0x49f937(0x1cc),'default':![]}];export const runDefinition={'service':a154_0x49f937(0x1e3),'command':a154_0x49f937(0x1e3),'description':'Run\x20a\x20package.json\x20script','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a154_0x49f937(0x1a9),'description':a154_0x49f937(0x1b7),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x3bbf20=a154_0x49f937,_0x38c052=[];return _0x38c052[_0x3bbf20(0x1dc)](_0x3bbf20(0x1b9)),_0x38c052['push'](_0x3bbf20(0x1de)+CLI_BIN_NAME+'\x20run\x20start'),_0x38c052['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x3bbf20(0x1c4)),_0x38c052[_0x3bbf20(0x1dc)](_0x3bbf20(0x1de)+CLI_BIN_NAME+_0x3bbf20(0x1c2)),_0x38c052[_0x3bbf20(0x1dc)](_0x3bbf20(0x1de)+CLI_BIN_NAME+_0x3bbf20(0x1b0)),_0x38c052[_0x3bbf20(0x1b4)]('\x0a');},async 'execute'(_0x16ffec){const _0x7a2b63=a154_0x49f937,_0x293bc6=process[_0x7a2b63(0x1db)](),_0x17dca9=_0x16ffec[_0x7a2b63(0x1d5)][0x0],_0x45f592=_0x16ffec[_0x7a2b63(0x1d5)][_0x7a2b63(0x1ab)](0x1),_0x19d234=readPackageScripts(_0x293bc6);if(!_0x19d234)throw CliErrors[_0x7a2b63(0x1cb)](_0x7a2b63(0x1bf));if(!_0x17dca9){const _0x5e2c23=Object['keys'](_0x19d234);if(_0x5e2c23[_0x7a2b63(0x1c8)]===0x0)console[_0x7a2b63(0x1ca)](_0x7a2b63(0x1cd));else{console['log'](_0x7a2b63(0x1ae));for(const _0x549c19 of _0x5e2c23){console[_0x7a2b63(0x1ca)](_0x7a2b63(0x1de)+_0x549c19);}console[_0x7a2b63(0x1ca)]('\x0a\x20\x20Usage:\x20'+CLI_BIN_NAME+_0x7a2b63(0x1d1));}return{'ok':!![]};}if(!_0x19d234[_0x17dca9])throw CliErrors[_0x7a2b63(0x1cb)](_0x7a2b63(0x1ad)+_0x17dca9+_0x7a2b63(0x1ba),_0x7a2b63(0x1dd)+(Object['keys'](_0x19d234)['join'](',\x20')||_0x7a2b63(0x1ce)));const _0x57467a=detectPackageManager(_0x293bc6);VERSION_CHECK_SCRIPTS['has'](_0x17dca9)&&await versionCheck(_0x293bc6);if(_0x17dca9===_0x7a2b63(0x1c0)&&_0x16ffec[_0x7a2b63(0x1da)](_0x7a2b63(0x1c3)))return await Promise[_0x7a2b63(0x1e2)]([spawnViteBuildWatch(_0x293bc6),spawnVitePreview(_0x293bc6)]),{'ok':!![]};return await spawnScript(_0x57467a,_0x17dca9,_0x45f592,_0x293bc6),{'ok':!![]};}};
1
+ const a162_0x2faa03=a162_0x1d1a;(function(_0x3708b9,_0x4cc552){const _0x511f14=a162_0x1d1a,_0xb92d8f=_0x3708b9();while(!![]){try{const _0x25a6d2=parseInt(_0x511f14(0x1d6))/0x1*(-parseInt(_0x511f14(0x1e3))/0x2)+parseInt(_0x511f14(0x1dd))/0x3*(-parseInt(_0x511f14(0x1bf))/0x4)+-parseInt(_0x511f14(0x1e8))/0x5*(-parseInt(_0x511f14(0x1ec))/0x6)+parseInt(_0x511f14(0x1ee))/0x7+-parseInt(_0x511f14(0x1cf))/0x8*(-parseInt(_0x511f14(0x1d7))/0x9)+-parseInt(_0x511f14(0x1cc))/0xa*(parseInt(_0x511f14(0x1d2))/0xb)+-parseInt(_0x511f14(0x1c7))/0xc;if(_0x25a6d2===_0x4cc552)break;else _0xb92d8f['push'](_0xb92d8f['shift']());}catch(_0x5e420f){_0xb92d8f['push'](_0xb92d8f['shift']());}}}(a162_0x240a,0x40f91));function a162_0x240a(){const _0x1e468e=['script','belowMinimum','read','6WXfVDV','dev','3110492EHrZab','\x20run\x20preview\x20--watch','node_modules','\x0a\x20\x20Available\x20scripts:\x0a','.bin','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','pnpm-lock.yaml','\x22\x20not\x20found\x20in\x20package.json.','join','\x20run\x20','No\x20package.json\x20found\x20in\x20current\x20directory.','bool','\x20\x20\x20\x20','\x0a\x20\x20Usage:\x20','boolean','utf-8','92GIQeDA','yarn.lock','npm','Available:\x20','bun.lock','Run\x20a\x20package.json\x20script','\x20run\x20<script>\x0a','preview','4830408bAtIGu','vite','run','slice','push','342730ImTmRt','parse','start','8936IaXEHt','inherit','Script\x20name\x20defined\x20in\x20package.json','11kRTpep','\x20run\x20preview','keys','package.json','1hyAkLv','2547TwMNWu','--watch','args','validation','Script\x20\x22','watch','44079CQMsyl','needsUpgrade','build','vite\x20preview\x20exited\x20with\x20code\x20','\x20run\x20start','scripts','155886dMXkvP','log','has','yarn','error','1791755ZzFFmz'];a162_0x240a=function(){return _0x1e468e;};return a162_0x240a();}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';function a162_0x1d1a(_0x51a1b9,_0x447f73){_0x51a1b9=_0x51a1b9-0x1b9;const _0x240a3d=a162_0x240a();let _0x1d1a09=_0x240a3d[_0x51a1b9];return _0x1d1a09;}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([a162_0x2faa03(0x1ce),a162_0x2faa03(0x1ed)]);function readPackageScripts(_0x611547){const _0x335817=a162_0x2faa03,_0x1c3ed6=resolve(_0x611547,_0x335817(0x1d5));if(!existsSync(_0x1c3ed6))return null;try{const _0x3bb99a=JSON[_0x335817(0x1cd)](readFileSync(_0x1c3ed6,_0x335817(0x1be)));return _0x3bb99a[_0x335817(0x1e2)]??{};}catch{return null;}}function detectPackageManager(_0x1e7a71){const _0x29b23d=a162_0x2faa03;if(existsSync(resolve(_0x1e7a71,'bun.lockb'))||existsSync(resolve(_0x1e7a71,_0x29b23d(0x1c3))))return'bun';if(existsSync(resolve(_0x1e7a71,_0x29b23d(0x1f4))))return'pnpm';if(existsSync(resolve(_0x1e7a71,_0x29b23d(0x1c0))))return _0x29b23d(0x1e6);return _0x29b23d(0x1c1);}async function versionCheck(_0x246b78){const _0x5880ae=a162_0x2faa03,_0x1ab83c=await checkCliVersion();(_0x1ab83c[_0x5880ae(0x1de)]||_0x1ab83c[_0x5880ae(0x1ea)])&&(printCliUpgradeWarning(_0x1ab83c),assertCliVersionSupported(_0x1ab83c));const _0x40ceb6=await checkSdkVersion(_0x246b78);if(_0x40ceb6[_0x5880ae(0x1de)])printSdkUpgradeWarning(_0x40ceb6);}function spawnScript(_0x5bc59b,_0x390da6,_0x545b24,_0x304890){return new Promise((_0x5edcf2,_0x36605b)=>{const _0x27fb4b=a162_0x1d1a,_0x1434bc=[_0x27fb4b(0x1c9),_0x390da6,..._0x545b24],_0x5916c0=spawn(_0x5bc59b,_0x1434bc,{'cwd':_0x304890,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x304890,_0x27fb4b(0x1f0),_0x27fb4b(0x1f2))+delimiter+process.env.PATH}});_0x5916c0['on']('close',_0x5c0c36=>{const _0x13543f=_0x27fb4b;if(_0x5c0c36===0x0||_0x5c0c36===null)_0x5edcf2();else _0x36605b(new Error(_0x5bc59b+_0x13543f(0x1f7)+_0x390da6+'\x20exited\x20with\x20code\x20'+_0x5c0c36));}),_0x5916c0['on'](_0x27fb4b(0x1e7),_0x36605b);});}function spawnViteBuildWatch(_0x269ffa){return new Promise((_0x37aae4,_0x100aa7)=>{const _0x36b5d3=a162_0x1d1a,_0x2538db=spawn('vite',[_0x36b5d3(0x1df),_0x36b5d3(0x1d8)],{'cwd':_0x269ffa,'stdio':_0x36b5d3(0x1d0),'shell':!![],'env':{...process.env,'PATH':''+join(_0x269ffa,_0x36b5d3(0x1f0),_0x36b5d3(0x1f2))+delimiter+process.env.PATH}});_0x2538db['on']('close',_0x5d870f=>{const _0x58d50d=_0x36b5d3;if(_0x5d870f===0x0||_0x5d870f===null)_0x37aae4();else _0x100aa7(new Error(_0x58d50d(0x1f3)+_0x5d870f));}),_0x2538db['on']('error',_0x100aa7);});}function spawnVitePreview(_0x36e717){return new Promise((_0x447458,_0x52de85)=>{const _0x202c22=a162_0x1d1a,_0x230a2b=spawn(_0x202c22(0x1c8),[_0x202c22(0x1c6)],{'cwd':_0x36e717,'stdio':_0x202c22(0x1d0),'shell':!![],'env':{...process.env,'PATH':''+join(_0x36e717,_0x202c22(0x1f0),'.bin')+delimiter+process.env.PATH}});_0x230a2b['on']('close',_0x2ae814=>{const _0x245fde=_0x202c22;if(_0x2ae814===0x0||_0x2ae814===null)_0x447458();else _0x52de85(new Error(_0x245fde(0x1e0)+_0x2ae814));}),_0x230a2b['on'](_0x202c22(0x1e7),_0x52de85);});}const runFlags=[{'name':a162_0x2faa03(0x1dc),'type':a162_0x2faa03(0x1bd),'description':'Enable\x20watch\x20mode\x20for\x20preview','default':![]}];export const runDefinition={'service':a162_0x2faa03(0x1c9),'command':a162_0x2faa03(0x1c9),'description':a162_0x2faa03(0x1c4),'risk':a162_0x2faa03(0x1eb),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a162_0x2faa03(0x1e9),'description':a162_0x2faa03(0x1d1),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x73a8c9=a162_0x2faa03,_0x86eb52=[];return _0x86eb52[_0x73a8c9(0x1cb)]('\x20\x20EXAMPLES'),_0x86eb52[_0x73a8c9(0x1cb)](_0x73a8c9(0x1bb)+CLI_BIN_NAME+_0x73a8c9(0x1e1)),_0x86eb52[_0x73a8c9(0x1cb)](_0x73a8c9(0x1bb)+CLI_BIN_NAME+'\x20run\x20build'),_0x86eb52[_0x73a8c9(0x1cb)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x73a8c9(0x1d3)),_0x86eb52[_0x73a8c9(0x1cb)](_0x73a8c9(0x1bb)+CLI_BIN_NAME+_0x73a8c9(0x1ef)),_0x86eb52[_0x73a8c9(0x1f6)]('\x0a');},async 'execute'(_0xf2e787){const _0x8c963a=a162_0x2faa03,_0x51c871=process['cwd'](),_0x33a8f7=_0xf2e787[_0x8c963a(0x1d9)][0x0],_0x59ea25=_0xf2e787[_0x8c963a(0x1d9)][_0x8c963a(0x1ca)](0x1),_0x1101d3=readPackageScripts(_0x51c871);if(!_0x1101d3)throw CliErrors[_0x8c963a(0x1da)](_0x8c963a(0x1b9));if(!_0x33a8f7){const _0x4cbfd3=Object[_0x8c963a(0x1d4)](_0x1101d3);if(_0x4cbfd3['length']===0x0)console[_0x8c963a(0x1e4)]('No\x20scripts\x20defined\x20in\x20package.json.');else{console[_0x8c963a(0x1e4)](_0x8c963a(0x1f1));for(const _0x2dfede of _0x4cbfd3){console['log'](_0x8c963a(0x1bb)+_0x2dfede);}console[_0x8c963a(0x1e4)](_0x8c963a(0x1bc)+CLI_BIN_NAME+_0x8c963a(0x1c5));}return{'ok':!![]};}if(!_0x1101d3[_0x33a8f7])throw CliErrors[_0x8c963a(0x1da)](_0x8c963a(0x1db)+_0x33a8f7+_0x8c963a(0x1f5),_0x8c963a(0x1c2)+(Object[_0x8c963a(0x1d4)](_0x1101d3)[_0x8c963a(0x1f6)](',\x20')||'(none)'));const _0x1e67b9=detectPackageManager(_0x51c871);VERSION_CHECK_SCRIPTS[_0x8c963a(0x1e5)](_0x33a8f7)&&await versionCheck(_0x51c871);if(_0x33a8f7===_0x8c963a(0x1c6)&&_0xf2e787[_0x8c963a(0x1ba)](_0x8c963a(0x1dc)))return await Promise['all']([spawnViteBuildWatch(_0x51c871),spawnVitePreview(_0x51c871)]),{'ok':!![]};return await spawnScript(_0x1e67b9,_0x33a8f7,_0x59ea25,_0x51c871),{'ok':!![]};}};
@@ -1 +1 @@
1
- const a155_0x5c7721=a155_0x5b0a;(function(_0x4d326a,_0x542608){const _0x59c1a3=a155_0x5b0a,_0x4ea0cd=_0x4d326a();while(!![]){try{const _0x1d42f5=parseInt(_0x59c1a3(0x8a))/0x1+parseInt(_0x59c1a3(0x8f))/0x2+parseInt(_0x59c1a3(0x8b))/0x3+-parseInt(_0x59c1a3(0x8c))/0x4+-parseInt(_0x59c1a3(0x95))/0x5+parseInt(_0x59c1a3(0x92))/0x6*(-parseInt(_0x59c1a3(0x8d))/0x7)+-parseInt(_0x59c1a3(0x94))/0x8*(parseInt(_0x59c1a3(0x90))/0x9);if(_0x1d42f5===_0x542608)break;else _0x4ea0cd['push'](_0x4ea0cd['shift']());}catch(_0x463b75){_0x4ea0cd['push'](_0x4ea0cd['shift']());}}}(a155_0xfb6d,0xa2007));import{buildSchemaPayload}from'../framework/schema-export.js';function a155_0x5b0a(_0x29a19d,_0x5bb990){_0x29a19d=_0x29a19d-0x8a;const _0xfb6dc9=a155_0xfb6d();let _0x5b0aea=_0xfb6dc9[_0x29a19d];return _0x5b0aea;}function a155_0xfb6d(){const _0x27f35a=['1224267UlmYpb','3264165GcORpA','1887340PdKXou','66710qPOReN','export','2557320qUPMhu','18pvRQCH','schema','24KWdjqj','read','5471448pDVTZg','5248030pbaQlZ','json'];a155_0xfb6d=function(){return _0x27f35a;};return a155_0xfb6d();}async function execute(_0x42bd33){const _0x291894=await buildSchemaPayload();return{'ok':!![],'data':_0x291894};}export const schemaDefinition={'service':a155_0x5c7721(0x91),'command':a155_0x5c7721(0x8e),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a155_0x5c7721(0x93),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a155_0x5c7721(0x96),'flags':[],'execute':execute};
1
+ const a163_0x53f834=a163_0x3003;(function(_0x268542,_0x622f40){const _0x47d969=a163_0x3003,_0x1c1698=_0x268542();while(!![]){try{const _0x32e661=-parseInt(_0x47d969(0x140))/0x1+-parseInt(_0x47d969(0x145))/0x2+-parseInt(_0x47d969(0x142))/0x3+parseInt(_0x47d969(0x13f))/0x4*(parseInt(_0x47d969(0x144))/0x5)+parseInt(_0x47d969(0x147))/0x6+-parseInt(_0x47d969(0x146))/0x7*(parseInt(_0x47d969(0x13e))/0x8)+parseInt(_0x47d969(0x143))/0x9;if(_0x32e661===_0x622f40)break;else _0x1c1698['push'](_0x1c1698['shift']());}catch(_0x36cb47){_0x1c1698['push'](_0x1c1698['shift']());}}}(a163_0x4bbf,0x460c1));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x4b04d){const _0x578ab9=await buildSchemaPayload();return{'ok':!![],'data':_0x578ab9};}function a163_0x4bbf(){const _0x19ed5e=['7JsGICn','294402SHCEgG','read','schema','1728032UgQRyE','29336bxVYAl','165770DbGzcw','json','133566tSiyRi','4596759udPNEt','335GHBBlg','675974kOchmv'];a163_0x4bbf=function(){return _0x19ed5e;};return a163_0x4bbf();}function a163_0x3003(_0x400812,_0x30723a){_0x400812=_0x400812-0x13d;const _0x4bbff0=a163_0x4bbf();let _0x30036d=_0x4bbff0[_0x400812];return _0x30036d;}export const schemaDefinition={'service':a163_0x53f834(0x13d),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a163_0x53f834(0x148),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a163_0x53f834(0x141),'flags':[],'execute':execute};
@@ -1 +1 @@
1
- const a156_0x50e9e7=a156_0x42dd;(function(_0x142527,_0x4b75f1){const _0x3fd3ec=a156_0x42dd,_0x3f4cf4=_0x142527();while(!![]){try{const _0x5f3961=-parseInt(_0x3fd3ec(0x120))/0x1*(-parseInt(_0x3fd3ec(0x12a))/0x2)+-parseInt(_0x3fd3ec(0x145))/0x3*(parseInt(_0x3fd3ec(0x11b))/0x4)+-parseInt(_0x3fd3ec(0x11c))/0x5+-parseInt(_0x3fd3ec(0x146))/0x6+parseInt(_0x3fd3ec(0x114))/0x7*(-parseInt(_0x3fd3ec(0x117))/0x8)+parseInt(_0x3fd3ec(0x149))/0x9*(parseInt(_0x3fd3ec(0x108))/0xa)+parseInt(_0x3fd3ec(0x133))/0xb;if(_0x5f3961===_0x4b75f1)break;else _0x3f4cf4['push'](_0x3f4cf4['shift']());}catch(_0x3364d3){_0x3f4cf4['push'](_0x3f4cf4['shift']());}}}(a156_0x38f0,0xdf558));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';function a156_0x38f0(){const _0x96559b=['2AfXQNu','Local\x20SQL\x20file\x20mode','string','请输入目标数据库\x20dbId:','sql','dbId','flag','Created\x20SQL\x20query\x20','name','flagMissing','495346jVhHxB','dbId\x20必须为正整数','普通\x20SQL(sql)','mybatisXml','create','isInteger','map','✎\x20手动输入\x20dbId','isFinite','41112478fNZvqs','POST','请输入\x20SQL\x20名称:','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','请选择本地\x20SQL\x20模式:','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','/smartapi/custom/saveUserCustomSql','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','stringify','sqlCode','lockFilePath','<server-generated-sqlCode>','str','__manual__','length','catch','high-risk-write','db-id','148233jPHuPD','5039610GwSRbX','number','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','664695wRKirY','SELECT\x201\x20AS\x20id;','20bXNAIm','validation','toISOString','Invalid\x20database\x20selection\x20payload:\x20','utf8','parse','nonInteractive','sqls','trim','mode','\x20\x20SELECT\x201\x20AS\x20id','appCode','2261FXBxNo','Target\x20database\x20ID','dbName','25768AdsyyP','sqlName','join','dbId\x20不能为空','12rHqccH','7186135zDIFEG','SQL\x20query\x20display\x20name','new','sqlRootDir'];a156_0x38f0=function(){return _0x96559b;};return a156_0x38f0();}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(_0x271e4e){const _0x593dd2=a156_0x42dd;if(_0x271e4e===_0x593dd2(0x12d))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x593dd2(0x112),'</select>',''][_0x593dd2(0x119)]('\x0a');return[_0x593dd2(0x14a),''][_0x593dd2(0x119)]('\x0a');}function a156_0x42dd(_0x341641,_0x4b2f71){_0x341641=_0x341641-0x108;const _0x38f07c=a156_0x38f0();let _0x42dd95=_0x38f07c[_0x341641];return _0x42dd95;}export const sqlCreate={'service':a156_0x50e9e7(0x124),'command':a156_0x50e9e7(0x12e),'description':a156_0x50e9e7(0x148),'risk':a156_0x50e9e7(0x143),'flags':[{'name':a156_0x50e9e7(0x128),'type':'string','description':a156_0x50e9e7(0x11d)},{'name':a156_0x50e9e7(0x144),'type':a156_0x50e9e7(0x147),'description':a156_0x50e9e7(0x115)},{'name':'mode','type':a156_0x50e9e7(0x122),'enum':['sql','mybatisXml'],'description':a156_0x50e9e7(0x121)}],async 'validate'(_0x1286bf){const _0x363557=a156_0x50e9e7;if(!_0x1286bf[_0x363557(0x10e)])return;if(!_0x1286bf[_0x363557(0x13f)](_0x363557(0x128))[_0x363557(0x110)]())throw CliErrors[_0x363557(0x129)](_0x363557(0x128),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0xb0cd54=resolveProvidedDbId(_0x1286bf);if(typeof _0xb0cd54!==_0x363557(0x147)||!Number[_0x363557(0x132)](_0xb0cd54)||_0xb0cd54<=0x0)throw CliErrors[_0x363557(0x129)](_0x363557(0x144),_0x363557(0x138));if(!_0x1286bf[_0x363557(0x13f)](_0x363557(0x111))[_0x363557(0x110)]())throw CliErrors[_0x363557(0x129)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x53fd27){const _0x597f00=a156_0x50e9e7,_0x518407=loadSqlProjectConfig(_0x53fd27[_0x597f00(0x113)]),{sqlName:_0x28923b,dbId:_0x2ad01d,dbName:_0x1139ef,mode:_0x2b43a4}=await resolveSqlNewInputs(_0x53fd27),_0x46b088=buildSqlRelativePath(_0x597f00(0x13e),_0x28923b,_0x1139ef,_0x2b43a4,_0x2ad01d),_0x1e76c3=_0x518407['sqlRootDir']+'/'+_0x46b088;return{'method':_0x597f00(0x134),'url':_0x597f00(0x139),'body':{'appCode':_0x53fd27['appCode'],'sqlName':_0x28923b,'dbId':_0x2ad01d,'mode':_0x2b43a4,'localPath':_0x1e76c3},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x518407[_0x597f00(0x11f)]};},async 'execute'(_0x20711a){const _0x4dc13f=a156_0x50e9e7,_0x39b038=loadSqlProjectConfig(_0x20711a[_0x4dc13f(0x113)]),{sqlName:_0x32331b,dbId:_0x461a46,dbName:_0x1a7010,mode:_0x53274b}=await resolveSqlNewInputs(_0x20711a),_0x1f6924=generateSqlTemplate(_0x53274b),_0x273d13=await createSqlQuery({'appCode':_0x20711a[_0x4dc13f(0x113)],'sqlName':_0x32331b,'dbId':_0x461a46,'sqlContent':_0x1f6924}),_0x507f4f=ensureRemoteSqlContent(_0x273d13),_0x13765e=_0x1a7010||await getDbName(_0x20711a[_0x4dc13f(0x113)],_0x461a46)['catch'](()=>undefined),_0x3cb21d=buildSqlRelativePath(_0x273d13[_0x4dc13f(0x13c)],_0x273d13[_0x4dc13f(0x118)],_0x13765e,_0x53274b,_0x461a46),_0x3dc2a9=_0x39b038[_0x4dc13f(0x11f)]+'/'+_0x3cb21d,_0x45719d=buildLocalSqlFileContent({'sqlCode':_0x273d13[_0x4dc13f(0x13c)],'sqlName':_0x273d13[_0x4dc13f(0x118)],'dbId':_0x273d13[_0x4dc13f(0x125)]},_0x507f4f,{'dbName':_0x13765e,'mode':_0x53274b,'syncedAt':new Date()[_0x4dc13f(0x10a)](),'description':_0x273d13['description']});if(await fileExists(_0x3dc2a9))throw CliErrors[_0x4dc13f(0x109)]('File\x20already\x20exists:\x20'+_0x3dc2a9);await ensureParentDirectory(_0x3dc2a9),await writeFile(_0x3dc2a9,_0x45719d,_0x4dc13f(0x10c));const _0x562d9c=await readSqlLockFile(_0x39b038['lockFilePath']),{lockData:_0x1bc38b,appLock:_0x5d483a}=ensureSqlLockScope(_0x562d9c??createEmptySqlLock(),_0x39b038[_0x4dc13f(0x113)],_0x39b038['sqlRoot'],_0x4dc13f(0x11e));return _0x5d483a[_0x4dc13f(0x10f)][_0x273d13[_0x4dc13f(0x13c)]]={...buildSqlLockEntry(_0x273d13,_0x507f4f,computeSqlContentHash(_0x45719d),{'dbName':_0x13765e}),'path':_0x3cb21d,'mode':_0x53274b},_0x5d483a['lastSync']=new Date()[_0x4dc13f(0x10a)](),await writeSqlLockFile(_0x39b038[_0x4dc13f(0x13d)],_0x1bc38b),{'ok':!![],'data':{'id':_0x273d13['id'],'sqlCode':_0x273d13[_0x4dc13f(0x13c)],'sqlName':_0x273d13[_0x4dc13f(0x118)],'dbId':_0x273d13['dbId'],'path':_0x3dc2a9,'mode':_0x53274b},'message':_0x4dc13f(0x127)+_0x273d13[_0x4dc13f(0x13c)]};}};async function resolveSqlNewInputs(_0x12cc4d){const _0x48063d=await resolveSqlNameInput(_0x12cc4d),{dbId:_0x10631d,dbName:_0x2f6748}=await resolveDbSelection(_0x12cc4d),_0x608336=await resolveSqlModeInput(_0x12cc4d);return{'sqlName':_0x48063d,'dbId':_0x10631d,'dbName':_0x2f6748,'mode':_0x608336};}async function resolveSqlNameInput(_0x436dd9){const _0x41e461=a156_0x50e9e7,_0x764e1e=_0x436dd9[_0x41e461(0x13f)](_0x41e461(0x128))[_0x41e461(0x110)]();if(_0x764e1e)return _0x764e1e;if(_0x436dd9['nonInteractive'])throw CliErrors['flagMissing'](_0x41e461(0x128),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x41e461(0x135),'validate':_0x51108a=>_0x51108a[_0x41e461(0x110)]()?!![]:'SQL\x20名称不能为空'}))['trim']();}async function resolveDbSelection(_0x92dd20){const _0xae0806=a156_0x50e9e7,_0x1f5d74=resolveProvidedDbId(_0x92dd20);if(typeof _0x1f5d74===_0xae0806(0x147)&&Number[_0xae0806(0x132)](_0x1f5d74)&&_0x1f5d74>0x0)return{'dbId':_0x1f5d74,'dbName':await getDbName(_0x92dd20[_0xae0806(0x113)],_0x1f5d74)[_0xae0806(0x142)](()=>undefined)};if(_0x92dd20[_0xae0806(0x10e)])throw CliErrors[_0xae0806(0x129)]('db-id',_0xae0806(0x138));const _0x1d3b1c=await listDatabases(_0x92dd20['appCode'])['catch'](()=>[]);if(_0x1d3b1c['length']===0x1)return{'dbId':_0x1d3b1c[0x0][_0xae0806(0x125)],'dbName':_0x1d3b1c[0x0]['dbName']};if(_0x1d3b1c[_0xae0806(0x141)]>0x1){const _0x58a634=await select({'message':'请选择目标数据库:','choices':[..._0x1d3b1c[_0xae0806(0x130)](_0x6837d2=>({'name':_0x6837d2[_0xae0806(0x116)]+'\x20('+_0x6837d2[_0xae0806(0x125)]+')','value':serializeDbSelection(_0x6837d2)})),{'name':_0xae0806(0x131),'value':'__manual__'}]});if(_0x58a634!==_0xae0806(0x140))return deserializeDbSelection(_0x58a634);}const _0x29e453=await input({'message':_0xae0806(0x123),'validate':_0x4f750a=>{const _0x3ff48d=_0xae0806,_0x616320=_0x4f750a[_0x3ff48d(0x110)]();if(!_0x616320)return _0x3ff48d(0x11a);const _0x4645d0=Number(_0x616320);if(!Number[_0x3ff48d(0x12f)](_0x4645d0)||_0x4645d0<=0x0)return _0x3ff48d(0x12b);return!![];}});return{'dbId':Number(_0x29e453[_0xae0806(0x110)]())};}async function resolveSqlModeInput(_0x32a7d7){const _0xd912f9=a156_0x50e9e7,_0x588c27=_0x32a7d7['str'](_0xd912f9(0x111))[_0xd912f9(0x110)]();if(_0x588c27==='sql'||_0x588c27===_0xd912f9(0x12d))return _0x588c27;if(_0x32a7d7[_0xd912f9(0x10e)])throw CliErrors[_0xd912f9(0x129)]('mode',_0xd912f9(0x13a));return await select({'message':_0xd912f9(0x137),'choices':[{'name':_0xd912f9(0x12c),'value':_0xd912f9(0x124),'description':_0xd912f9(0x136)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0xd912f9(0x12d),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x13c395){const _0x24e148=a156_0x50e9e7;return JSON[_0x24e148(0x13b)]({'dbId':_0x13c395['dbId'],'dbName':_0x13c395[_0x24e148(0x116)]});}function deserializeDbSelection(_0x548fb6){const _0x172485=a156_0x50e9e7;try{const _0x44fa51=JSON[_0x172485(0x10d)](_0x548fb6);if(typeof _0x44fa51['dbId']===_0x172485(0x147)&&Number[_0x172485(0x132)](_0x44fa51['dbId']))return{'dbId':_0x44fa51[_0x172485(0x125)],'dbName':_0x44fa51['dbName']};}catch{}throw CliErrors[_0x172485(0x109)](_0x172485(0x10b)+_0x548fb6);}function resolveProvidedDbId(_0x3ec298){const _0x34e2f3=a156_0x50e9e7,_0x3f6767=_0x3ec298[_0x34e2f3(0x126)](_0x34e2f3(0x144));if(typeof _0x3f6767===_0x34e2f3(0x147)&&Number[_0x34e2f3(0x132)](_0x3f6767))return _0x3f6767;return undefined;}
1
+ const a164_0x5a2ef4=a164_0x4e09;(function(_0x15ee02,_0x26fc7d){const _0x3bb970=a164_0x4e09,_0x18fbf3=_0x15ee02();while(!![]){try{const _0x2e61fa=parseInt(_0x3bb970(0x1cb))/0x1+-parseInt(_0x3bb970(0x19f))/0x2*(parseInt(_0x3bb970(0x1c9))/0x3)+-parseInt(_0x3bb970(0x1cf))/0x4+parseInt(_0x3bb970(0x1a3))/0x5*(-parseInt(_0x3bb970(0x1a4))/0x6)+-parseInt(_0x3bb970(0x1b9))/0x7+parseInt(_0x3bb970(0x1b2))/0x8+parseInt(_0x3bb970(0x1a1))/0x9;if(_0x2e61fa===_0x26fc7d)break;else _0x18fbf3['push'](_0x18fbf3['shift']());}catch(_0x1e5697){_0x18fbf3['push'](_0x18fbf3['shift']());}}}(a164_0xe0ab,0xee62c));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';function a164_0xe0ab(){const _0x183e8b=['dbName','create','nonInteractive','407958CGgkIm','/smartapi/custom/saveUserCustomSql','230046HwUzyC','__manual__','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','普通\x20SQL(sql)','323980oKtfNd','POST','SQL\x20名称不能为空','number','\x20\x20SELECT\x201\x20AS\x20id','length','trim','File\x20already\x20exists:\x20','flagMissing','db-id','catch','sqlRoot','sql','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','dbId\x20不能为空','new','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','12rWeFaJ','mybatisXml','32513715ONQDpQ','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','3707095TMKXwv','6eXKGKV','MyBatis\x20XML(mybatisXml)','sqls','sqlRootDir','sqlName','sqlCode','</select>','utf8','lockFilePath','dbId\x20必须为正整数','SELECT\x201\x20AS\x20id;','请选择目标数据库:','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','parse','736192nHudVf','Local\x20SQL\x20file\x20mode','Created\x20SQL\x20query\x20','mode','请输入目标数据库\x20dbId:','appCode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','9239629Fpuyrq','<server-generated-sqlCode>','description','name','toISOString','string','SQL\x20query\x20display\x20name','str','validation','isFinite','适合带动态标签的\x20MyBatis\x20XML\x20SQL','dbId','join'];a164_0xe0ab=function(){return _0x183e8b;};return a164_0xe0ab();}import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a164_0x4e09(_0x4a8015,_0x26e290){_0x4a8015=_0x4a8015-0x19f;const _0xe0ab30=a164_0xe0ab();let _0x4e0999=_0xe0ab30[_0x4a8015];return _0x4e0999;}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(_0x43970a){const _0x17abc5=a164_0x4e09;if(_0x43970a===_0x17abc5(0x1a0))return[_0x17abc5(0x1a2),_0x17abc5(0x1d3),_0x17abc5(0x1aa),''][_0x17abc5(0x1c5)]('\x0a');return[_0x17abc5(0x1ae),'']['join']('\x0a');}export const sqlCreate={'service':a164_0x5a2ef4(0x1db),'command':a164_0x5a2ef4(0x1c7),'description':a164_0x5a2ef4(0x1dc),'risk':'high-risk-write','flags':[{'name':a164_0x5a2ef4(0x1bc),'type':a164_0x5a2ef4(0x1be),'description':a164_0x5a2ef4(0x1bf)},{'name':a164_0x5a2ef4(0x1d8),'type':'number','description':'Target\x20database\x20ID'},{'name':a164_0x5a2ef4(0x1b5),'type':a164_0x5a2ef4(0x1be),'enum':['sql','mybatisXml'],'description':a164_0x5a2ef4(0x1b3)}],async 'validate'(_0x1098b2){const _0x5a7845=a164_0x5a2ef4;if(!_0x1098b2[_0x5a7845(0x1c8)])return;if(!_0x1098b2[_0x5a7845(0x1c0)](_0x5a7845(0x1bc))[_0x5a7845(0x1d5)]())throw CliErrors['flagMissing'](_0x5a7845(0x1bc),_0x5a7845(0x1cd));const _0x3a61dc=resolveProvidedDbId(_0x1098b2);if(typeof _0x3a61dc!=='number'||!Number[_0x5a7845(0x1c2)](_0x3a61dc)||_0x3a61dc<=0x0)throw CliErrors['flagMissing'](_0x5a7845(0x1d8),_0x5a7845(0x1b0));if(!_0x1098b2['str'](_0x5a7845(0x1b5))['trim']())throw CliErrors[_0x5a7845(0x1d7)](_0x5a7845(0x1b5),_0x5a7845(0x1b8));},async 'dryRun'(_0xe398ec){const _0x1348da=a164_0x5a2ef4,_0x3a61ce=loadSqlProjectConfig(_0xe398ec[_0x1348da(0x1b7)]),{sqlName:_0x39d16f,dbId:_0x165a81,dbName:_0x159207,mode:_0x13b27b}=await resolveSqlNewInputs(_0xe398ec),_0x22ec63=buildSqlRelativePath(_0x1348da(0x1ba),_0x39d16f,_0x159207,_0x13b27b,_0x165a81),_0x57b5a1=_0x3a61ce['sqlRootDir']+'/'+_0x22ec63;return{'method':_0x1348da(0x1d0),'url':_0x1348da(0x1ca),'body':{'appCode':_0xe398ec[_0x1348da(0x1b7)],'sqlName':_0x39d16f,'dbId':_0x165a81,'mode':_0x13b27b,'localPath':_0x57b5a1},'description':_0x1348da(0x1df)+_0x3a61ce['sqlRootDir']};},async 'execute'(_0x5e7f63){const _0x43eed2=a164_0x5a2ef4,_0x2ca017=loadSqlProjectConfig(_0x5e7f63[_0x43eed2(0x1b7)]),{sqlName:_0x57832c,dbId:_0x11291d,dbName:_0x453de6,mode:_0x5ea0bd}=await resolveSqlNewInputs(_0x5e7f63),_0x198197=generateSqlTemplate(_0x5ea0bd),_0x18e253=await createSqlQuery({'appCode':_0x5e7f63['appCode'],'sqlName':_0x57832c,'dbId':_0x11291d,'sqlContent':_0x198197}),_0x52ed27=ensureRemoteSqlContent(_0x18e253),_0x3e3535=_0x453de6||await getDbName(_0x5e7f63[_0x43eed2(0x1b7)],_0x11291d)[_0x43eed2(0x1d9)](()=>undefined),_0xaaf74f=buildSqlRelativePath(_0x18e253[_0x43eed2(0x1a9)],_0x18e253[_0x43eed2(0x1a8)],_0x3e3535,_0x5ea0bd,_0x11291d),_0xfbc677=_0x2ca017[_0x43eed2(0x1a7)]+'/'+_0xaaf74f,_0xcd28f0=buildLocalSqlFileContent({'sqlCode':_0x18e253[_0x43eed2(0x1a9)],'sqlName':_0x18e253[_0x43eed2(0x1a8)],'dbId':_0x18e253[_0x43eed2(0x1c4)]},_0x52ed27,{'dbName':_0x3e3535,'mode':_0x5ea0bd,'syncedAt':new Date()[_0x43eed2(0x1bd)](),'description':_0x18e253[_0x43eed2(0x1bb)]});if(await fileExists(_0xfbc677))throw CliErrors[_0x43eed2(0x1c1)](_0x43eed2(0x1d6)+_0xfbc677);await ensureParentDirectory(_0xfbc677),await writeFile(_0xfbc677,_0xcd28f0,_0x43eed2(0x1ab));const _0x328631=await readSqlLockFile(_0x2ca017['lockFilePath']),{lockData:_0x1f1b40,appLock:_0x27de0f}=ensureSqlLockScope(_0x328631??createEmptySqlLock(),_0x2ca017[_0x43eed2(0x1b7)],_0x2ca017[_0x43eed2(0x1da)],_0x43eed2(0x1de));return _0x27de0f[_0x43eed2(0x1a6)][_0x18e253[_0x43eed2(0x1a9)]]={...buildSqlLockEntry(_0x18e253,_0x52ed27,computeSqlContentHash(_0xcd28f0),{'dbName':_0x3e3535}),'path':_0xaaf74f,'mode':_0x5ea0bd},_0x27de0f['lastSync']=new Date()[_0x43eed2(0x1bd)](),await writeSqlLockFile(_0x2ca017[_0x43eed2(0x1ac)],_0x1f1b40),{'ok':!![],'data':{'id':_0x18e253['id'],'sqlCode':_0x18e253['sqlCode'],'sqlName':_0x18e253[_0x43eed2(0x1a8)],'dbId':_0x18e253[_0x43eed2(0x1c4)],'path':_0xfbc677,'mode':_0x5ea0bd},'message':_0x43eed2(0x1b4)+_0x18e253[_0x43eed2(0x1a9)]};}};async function resolveSqlNewInputs(_0x2d947e){const _0x57f8ae=await resolveSqlNameInput(_0x2d947e),{dbId:_0x1a2b24,dbName:_0xcb7eae}=await resolveDbSelection(_0x2d947e),_0x18c5b2=await resolveSqlModeInput(_0x2d947e);return{'sqlName':_0x57f8ae,'dbId':_0x1a2b24,'dbName':_0xcb7eae,'mode':_0x18c5b2};}async function resolveSqlNameInput(_0x340f43){const _0x100613=a164_0x5a2ef4,_0x3f59f6=_0x340f43[_0x100613(0x1c0)](_0x100613(0x1bc))[_0x100613(0x1d5)]();if(_0x3f59f6)return _0x3f59f6;if(_0x340f43[_0x100613(0x1c8)])throw CliErrors['flagMissing'](_0x100613(0x1bc),_0x100613(0x1cd));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0xb4f2e3=>_0xb4f2e3[_0x100613(0x1d5)]()?!![]:_0x100613(0x1d1)}))[_0x100613(0x1d5)]();}async function resolveDbSelection(_0x626782){const _0x12db64=a164_0x5a2ef4,_0x43cbfa=resolveProvidedDbId(_0x626782);if(typeof _0x43cbfa==='number'&&Number[_0x12db64(0x1c2)](_0x43cbfa)&&_0x43cbfa>0x0)return{'dbId':_0x43cbfa,'dbName':await getDbName(_0x626782[_0x12db64(0x1b7)],_0x43cbfa)[_0x12db64(0x1d9)](()=>undefined)};if(_0x626782['nonInteractive'])throw CliErrors['flagMissing'](_0x12db64(0x1d8),_0x12db64(0x1b0));const _0x1f00cd=await listDatabases(_0x626782[_0x12db64(0x1b7)])[_0x12db64(0x1d9)](()=>[]);if(_0x1f00cd[_0x12db64(0x1d4)]===0x1)return{'dbId':_0x1f00cd[0x0][_0x12db64(0x1c4)],'dbName':_0x1f00cd[0x0]['dbName']};if(_0x1f00cd[_0x12db64(0x1d4)]>0x1){const _0x18e383=await select({'message':_0x12db64(0x1af),'choices':[..._0x1f00cd['map'](_0x431c21=>({'name':_0x431c21[_0x12db64(0x1c6)]+'\x20('+_0x431c21[_0x12db64(0x1c4)]+')','value':serializeDbSelection(_0x431c21)})),{'name':'✎\x20手动输入\x20dbId','value':_0x12db64(0x1cc)}]});if(_0x18e383!=='__manual__')return deserializeDbSelection(_0x18e383);}const _0x5c27b6=await input({'message':_0x12db64(0x1b6),'validate':_0x4a36d5=>{const _0x340c33=_0x12db64,_0x1bb1c5=_0x4a36d5[_0x340c33(0x1d5)]();if(!_0x1bb1c5)return _0x340c33(0x1dd);const _0x24cd8e=Number(_0x1bb1c5);if(!Number['isInteger'](_0x24cd8e)||_0x24cd8e<=0x0)return _0x340c33(0x1ad);return!![];}});return{'dbId':Number(_0x5c27b6['trim']())};}async function resolveSqlModeInput(_0x149818){const _0x4feb5b=a164_0x5a2ef4,_0x481cf2=_0x149818[_0x4feb5b(0x1c0)](_0x4feb5b(0x1b5))[_0x4feb5b(0x1d5)]();if(_0x481cf2===_0x4feb5b(0x1db)||_0x481cf2===_0x4feb5b(0x1a0))return _0x481cf2;if(_0x149818['nonInteractive'])throw CliErrors[_0x4feb5b(0x1d7)](_0x4feb5b(0x1b5),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x4feb5b(0x1ce),'value':_0x4feb5b(0x1db),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x4feb5b(0x1a5),'value':_0x4feb5b(0x1a0),'description':_0x4feb5b(0x1c3)}]});}function serializeDbSelection(_0x1762ed){const _0x474e52=a164_0x5a2ef4;return JSON['stringify']({'dbId':_0x1762ed[_0x474e52(0x1c4)],'dbName':_0x1762ed['dbName']});}function deserializeDbSelection(_0x1643f0){const _0x5a20e4=a164_0x5a2ef4;try{const _0x5ea944=JSON[_0x5a20e4(0x1b1)](_0x1643f0);if(typeof _0x5ea944[_0x5a20e4(0x1c4)]==='number'&&Number[_0x5a20e4(0x1c2)](_0x5ea944[_0x5a20e4(0x1c4)]))return{'dbId':_0x5ea944[_0x5a20e4(0x1c4)],'dbName':_0x5ea944['dbName']};}catch{}throw CliErrors[_0x5a20e4(0x1c1)]('Invalid\x20database\x20selection\x20payload:\x20'+_0x1643f0);}function resolveProvidedDbId(_0x471f33){const _0x563131=a164_0x5a2ef4,_0x4353ab=_0x471f33['flag']('db-id');if(typeof _0x4353ab===_0x563131(0x1d2)&&Number['isFinite'](_0x4353ab))return _0x4353ab;return undefined;}
@@ -1 +1 @@
1
- function a157_0x1fa9(){const _0x3808c2=['3197552IdhVdL','trashedTo','str','replace','entries','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','POST','sqlcode','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','/smartapi/custom/deleteUserCustomSql','length','sqlRootDir','validation','high-risk-write','Deleted\x20','appCode','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','lockFilePath','10323131LqRlUM','trashDir','5275OzfOoQ','1757267OdSfMA','sqlRoot','sql','1190829RkvQGO','remoteId','2918876XIHoWh','projectRoot','SQL\x20lock\x20file\x20not\x20found.','3468XgpQqj','sqls','delete','189GWFieQ','7123344iTxmuH'];a157_0x1fa9=function(){return _0x3808c2;};return a157_0x1fa9();}const a157_0x46a1bf=a157_0x42c2;(function(_0x58c9ce,_0x14e916){const _0x42c543=a157_0x42c2,_0x2206ac=_0x58c9ce();while(!![]){try{const _0x41a70e=-parseInt(_0x42c543(0x1e7))/0x1+-parseInt(_0x42c543(0x1ec))/0x2+-parseInt(_0x42c543(0x1ea))/0x3+-parseInt(_0x42c543(0x1f3))/0x4+parseInt(_0x42c543(0x1e6))/0x5*(-parseInt(_0x42c543(0x1ef))/0x6)+-parseInt(_0x42c543(0x1e4))/0x7+parseInt(_0x42c543(0x1f4))/0x8*(parseInt(_0x42c543(0x1f2))/0x9);if(_0x41a70e===_0x14e916)break;else _0x2206ac['push'](_0x2206ac['shift']());}catch(_0x3e235a){_0x2206ac['push'](_0x2206ac['shift']());}}}(a157_0x1fa9,0xdf487));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a157_0x42c2(_0x51d5ac,_0x47ee1c){_0x51d5ac=_0x51d5ac-0x1d9;const _0x1fa927=a157_0x1fa9();let _0x42c2a5=_0x1fa927[_0x51d5ac];return _0x42c2a5;}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';export const sqlDelete={'service':a157_0x46a1bf(0x1e9),'command':a157_0x46a1bf(0x1f1),'description':a157_0x46a1bf(0x1f9),'risk':a157_0x46a1bf(0x1df),'flags':[SQLCODE_FLAG],async 'validate'(_0x2598a0){const _0x1d3609=a157_0x46a1bf,_0x274460=loadSqlProjectConfig(_0x2598a0['appCode']),_0xae9b2f=await readSqlLockFile(_0x274460['lockFilePath']);if(!_0xae9b2f)throw CliErrors[_0x1d3609(0x1de)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x3966e5){const _0x3ae789=a157_0x46a1bf,_0x5b1824=loadSqlProjectConfig(_0x3966e5[_0x3ae789(0x1e1)]),_0x5d4b48=await readSqlLockFile(_0x5b1824[_0x3ae789(0x1e3)]);if(!_0x5d4b48)throw CliErrors[_0x3ae789(0x1de)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x392951}=ensureSqlLockScope(_0x5d4b48,_0x3966e5[_0x3ae789(0x1e1)],_0x5b1824['sqlRoot'],_0x3ae789(0x1f1)),_0x278b6d=_0x3966e5['str'](_0x3ae789(0x1d9)),_0x1b57d9=_0x392951[_0x3ae789(0x1f0)][_0x278b6d];if(!_0x1b57d9)throw CliErrors[_0x3ae789(0x1de)](_0x3ae789(0x1da)+_0x278b6d+'\x22.');return{'method':_0x3ae789(0x1fa),'url':_0x3ae789(0x1db),'body':{'sqlCode':_0x278b6d,'id':_0x1b57d9[_0x3ae789(0x1eb)],'localPath':resolveLocalSqlFilePath(_0x5b1824,_0x278b6d,_0x1b57d9)},'description':'Would\x20delete\x20SQL\x20'+_0x278b6d+_0x3ae789(0x1e2)+_0x5b1824[_0x3ae789(0x1e5)]};},async 'execute'(_0x2a3352){const _0x382a36=a157_0x46a1bf,_0x557e1d=loadSqlProjectConfig(_0x2a3352['appCode']),_0x536b98=await readSqlLockFile(_0x557e1d[_0x382a36(0x1e3)]);if(!_0x536b98)throw CliErrors[_0x382a36(0x1de)](_0x382a36(0x1ee));const {lockData:_0x54eaba,appLock:_0x5ec5e2}=ensureSqlLockScope(_0x536b98,_0x2a3352[_0x382a36(0x1e1)],_0x557e1d[_0x382a36(0x1e8)],_0x382a36(0x1f1)),_0x137efa=_0x2a3352[_0x382a36(0x1f6)]('sqlcode'),_0x31deca=_0x5ec5e2[_0x382a36(0x1f0)][_0x137efa];if(!_0x31deca)throw CliErrors[_0x382a36(0x1de)](_0x382a36(0x1da)+_0x137efa+'\x22.');await deleteSqlQuery({'id':_0x31deca[_0x382a36(0x1eb)],'sqlCode':_0x137efa}),_0x5ec5e2['sqls']=Object['fromEntries'](Object[_0x382a36(0x1f8)](_0x5ec5e2[_0x382a36(0x1f0)])['filter'](([_0x2e758c])=>_0x2e758c!==_0x137efa)),_0x5ec5e2['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x557e1d['lockFilePath'],_0x54eaba);const _0x2ebf25=resolveLocalSqlFilePath(_0x557e1d,_0x137efa,_0x31deca);let _0x40ef47;await fileExists(_0x2ebf25)&&(_0x40ef47=await moveToTrash(_0x557e1d[_0x382a36(0x1ed)],_0x557e1d[_0x382a36(0x1e5)],_0x2ebf25),await cleanupEmptyDirectories(dirname(_0x2ebf25),_0x557e1d[_0x382a36(0x1dd)]));const _0x30c07a={'deleted':_0x137efa,'remoteId':_0x31deca['remoteId']};if(_0x40ef47)_0x30c07a[_0x382a36(0x1f5)]=_0x40ef47;return{'ok':!![],'data':_0x30c07a,'message':_0x382a36(0x1e0)+_0x137efa+(_0x40ef47?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x5d81c0,_0x125b1f,_0x1d9bee){const _0x41cb33=a157_0x46a1bf,_0x5f4de3=new Date()['toISOString']()[_0x41cb33(0x1f7)](/[:.]/g,'-'),_0x2bdb14=relative(_0x5d81c0,_0x1d9bee),_0x40e96f=join(_0x125b1f,_0x5f4de3,_0x2bdb14);return await mkdir(dirname(_0x40e96f),{'recursive':!![]}),await rename(_0x1d9bee,_0x40e96f),_0x40e96f;}async function cleanupEmptyDirectories(_0x5401e9,_0x5cd805){const _0x4bedfa=a157_0x46a1bf;let _0x3df264=resolve(_0x5401e9);const _0x222628=resolve(_0x5cd805);while(_0x3df264['startsWith'](''+_0x222628+sep)||_0x3df264===_0x222628){if(_0x3df264===_0x222628)return;try{const _0x4da142=await readdir(_0x3df264);if(_0x4da142[_0x4bedfa(0x1dc)]>0x0)return;await rmdir(_0x3df264);}catch{return;}_0x3df264=dirname(_0x3df264);}}
1
+ const a165_0x1a4577=a165_0x5676;(function(_0x2de7b1,_0x21765a){const _0x560446=a165_0x5676,_0x1f3297=_0x2de7b1();while(!![]){try{const _0x45028f=-parseInt(_0x560446(0xe7))/0x1+parseInt(_0x560446(0xe5))/0x2+parseInt(_0x560446(0xd5))/0x3+-parseInt(_0x560446(0xe3))/0x4*(-parseInt(_0x560446(0xd2))/0x5)+-parseInt(_0x560446(0xee))/0x6+-parseInt(_0x560446(0xda))/0x7*(parseInt(_0x560446(0xd8))/0x8)+-parseInt(_0x560446(0xe9))/0x9*(-parseInt(_0x560446(0xd4))/0xa);if(_0x45028f===_0x21765a)break;else _0x1f3297['push'](_0x1f3297['shift']());}catch(_0x2a1435){_0x1f3297['push'](_0x1f3297['shift']());}}}(a165_0x2cf6,0x7eb0e));function a165_0x2cf6(){const _0x56a2c4=['No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','sqls','5KMYdwL','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','10ZzpCTD','1262430fdETfn','\x20(local\x20file\x20moved\x20to\x20trash)','projectRoot','16CGNHtW','Deleted\x20','2220813qXJASV','remoteId','/smartapi/custom/deleteUserCustomSql','fromEntries','lockFilePath','filter','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','lastSync','POST','3003780lUDGyN','entries','281708UtwhLd','trashDir','950817ufyZwn','validation','12672432GqeeUN','delete','str','sqlcode','startsWith','3698376DqGZdC','sqlRoot','sql','high-risk-write','appCode'];a165_0x2cf6=function(){return _0x56a2c4;};return a165_0x2cf6();}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';function a165_0x5676(_0x2cdd0c,_0x280b1f){_0x2cdd0c=_0x2cdd0c-0xcc;const _0x2cf658=a165_0x2cf6();let _0x567650=_0x2cf658[_0x2cdd0c];return _0x567650;}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';export const sqlDelete={'service':a165_0x1a4577(0xcd),'command':a165_0x1a4577(0xea),'description':a165_0x1a4577(0xe0),'risk':a165_0x1a4577(0xce),'flags':[SQLCODE_FLAG],async 'validate'(_0x2343cc){const _0x2a7258=a165_0x1a4577,_0x601a98=loadSqlProjectConfig(_0x2343cc['appCode']),_0x286bd6=await readSqlLockFile(_0x601a98[_0x2a7258(0xde)]);if(!_0x286bd6)throw CliErrors[_0x2a7258(0xe8)](_0x2a7258(0xd3));},async 'dryRun'(_0x17623d){const _0x27f3ee=a165_0x1a4577,_0x4c431c=loadSqlProjectConfig(_0x17623d[_0x27f3ee(0xcf)]),_0x1261b0=await readSqlLockFile(_0x4c431c['lockFilePath']);if(!_0x1261b0)throw CliErrors[_0x27f3ee(0xe8)](_0x27f3ee(0xd3));const {appLock:_0x1ef624}=ensureSqlLockScope(_0x1261b0,_0x17623d[_0x27f3ee(0xcf)],_0x4c431c[_0x27f3ee(0xcc)],_0x27f3ee(0xea)),_0x34e9f7=_0x17623d[_0x27f3ee(0xeb)]('sqlcode'),_0x3f5440=_0x1ef624[_0x27f3ee(0xd1)][_0x34e9f7];if(!_0x3f5440)throw CliErrors['validation']('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x34e9f7+'\x22.');return{'method':_0x27f3ee(0xe2),'url':_0x27f3ee(0xdc),'body':{'sqlCode':_0x34e9f7,'id':_0x3f5440[_0x27f3ee(0xdb)],'localPath':resolveLocalSqlFilePath(_0x4c431c,_0x34e9f7,_0x3f5440)},'description':'Would\x20delete\x20SQL\x20'+_0x34e9f7+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x4c431c[_0x27f3ee(0xe6)]};},async 'execute'(_0x4772e7){const _0x1243cc=a165_0x1a4577,_0x4830fa=loadSqlProjectConfig(_0x4772e7[_0x1243cc(0xcf)]),_0x48e7dd=await readSqlLockFile(_0x4830fa[_0x1243cc(0xde)]);if(!_0x48e7dd)throw CliErrors[_0x1243cc(0xe8)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x22b3c4,appLock:_0xe83de1}=ensureSqlLockScope(_0x48e7dd,_0x4772e7['appCode'],_0x4830fa[_0x1243cc(0xcc)],'delete'),_0xd2538a=_0x4772e7[_0x1243cc(0xeb)](_0x1243cc(0xec)),_0x84638a=_0xe83de1['sqls'][_0xd2538a];if(!_0x84638a)throw CliErrors[_0x1243cc(0xe8)](_0x1243cc(0xd0)+_0xd2538a+'\x22.');await deleteSqlQuery({'id':_0x84638a[_0x1243cc(0xdb)],'sqlCode':_0xd2538a}),_0xe83de1[_0x1243cc(0xd1)]=Object[_0x1243cc(0xdd)](Object[_0x1243cc(0xe4)](_0xe83de1[_0x1243cc(0xd1)])[_0x1243cc(0xdf)](([_0x1b740c])=>_0x1b740c!==_0xd2538a)),_0xe83de1[_0x1243cc(0xe1)]=new Date()['toISOString'](),await writeSqlLockFile(_0x4830fa['lockFilePath'],_0x22b3c4);const _0x41faed=resolveLocalSqlFilePath(_0x4830fa,_0xd2538a,_0x84638a);let _0x5619a6;await fileExists(_0x41faed)&&(_0x5619a6=await moveToTrash(_0x4830fa[_0x1243cc(0xd7)],_0x4830fa[_0x1243cc(0xe6)],_0x41faed),await cleanupEmptyDirectories(dirname(_0x41faed),_0x4830fa['sqlRootDir']));const _0x4505d0={'deleted':_0xd2538a,'remoteId':_0x84638a[_0x1243cc(0xdb)]};if(_0x5619a6)_0x4505d0['trashedTo']=_0x5619a6;return{'ok':!![],'data':_0x4505d0,'message':_0x1243cc(0xd9)+_0xd2538a+(_0x5619a6?_0x1243cc(0xd6):'')};}};async function moveToTrash(_0xa3a40a,_0x199f6d,_0x552a2a){const _0x34368e=new Date()['toISOString']()['replace'](/[:.]/g,'-'),_0x2c6a4c=relative(_0xa3a40a,_0x552a2a),_0x47b383=join(_0x199f6d,_0x34368e,_0x2c6a4c);return await mkdir(dirname(_0x47b383),{'recursive':!![]}),await rename(_0x552a2a,_0x47b383),_0x47b383;}async function cleanupEmptyDirectories(_0x380ff6,_0x43edfb){const _0x28b44f=a165_0x1a4577;let _0x3cb327=resolve(_0x380ff6);const _0x41e875=resolve(_0x43edfb);while(_0x3cb327[_0x28b44f(0xed)](''+_0x41e875+sep)||_0x3cb327===_0x41e875){if(_0x3cb327===_0x41e875)return;try{const _0x5bfe0a=await readdir(_0x3cb327);if(_0x5bfe0a['length']>0x0)return;await rmdir(_0x3cb327);}catch{return;}_0x3cb327=dirname(_0x3cb327);}}
@@ -1 +1 @@
1
- const a158_0x655f9a=a158_0x545f;(function(_0x25f8a6,_0x218b7a){const _0x27ecab=a158_0x545f,_0xdce7ea=_0x25f8a6();while(!![]){try{const _0x428bf7=-parseInt(_0x27ecab(0x1e7))/0x1*(parseInt(_0x27ecab(0x1ea))/0x2)+parseInt(_0x27ecab(0x1e9))/0x3*(-parseInt(_0x27ecab(0x1ef))/0x4)+-parseInt(_0x27ecab(0x1f1))/0x5*(-parseInt(_0x27ecab(0x1fe))/0x6)+parseInt(_0x27ecab(0x1f5))/0x7+parseInt(_0x27ecab(0x1fb))/0x8+-parseInt(_0x27ecab(0x1fa))/0x9+-parseInt(_0x27ecab(0x1f2))/0xa*(parseInt(_0x27ecab(0x1f0))/0xb);if(_0x428bf7===_0x218b7a)break;else _0xdce7ea['push'](_0xdce7ea['shift']());}catch(_0x4409d7){_0xdce7ea['push'](_0xdce7ea['shift']());}}}(a158_0x57aa,0x6eaa1));import{getSqlQueryInfo}from'../../core/api-client.js';function a158_0x545f(_0x3b7b52,_0xe9f9d4){_0x3b7b52=_0x3b7b52-0x1e7;const _0x57aad6=a158_0x57aa();let _0x545f44=_0x57aad6[_0x3b7b52];return _0x545f44;}import{getDbName}from'../../core/db-resolver.js';function a158_0x57aa(){const _0x42efa4=['88gdWfWf','appCode','679845hdkDKG','492lmEnFo','sqlName','sqlContent','sql','sqlCode','4qQrHoV','3597418ZMMhxp','235vKzPsf','40WlAzZd','boolean','read','4375049sjaedK','dbId','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','bool','Return\x20full\x20raw\x20SQL\x20query\x20object','220491pSjCav','5252616GBqKth','sqlcode','str','96078TYYvGT'];a158_0x57aa=function(){return _0x42efa4;};return a158_0x57aa();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a158_0x655f9a(0x1ed),'command':'detail','description':a158_0x655f9a(0x1f7),'risk':a158_0x655f9a(0x1f4),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a158_0x655f9a(0x1f3),'description':a158_0x655f9a(0x1f9)}],async 'execute'(_0xe88f5f){const _0x335c22=a158_0x655f9a,_0x4bc64b=await getSqlQueryInfo(_0xe88f5f[_0x335c22(0x1e8)],_0xe88f5f[_0x335c22(0x1fd)](_0x335c22(0x1fc))),_0x1d275f=_0xe88f5f[_0x335c22(0x1f8)]('verbose');if(_0x1d275f)return{'ok':!![],'data':_0x4bc64b};const _0x3b71c2=_0x4bc64b[_0x335c22(0x1f6)]?await getDbName(_0xe88f5f[_0x335c22(0x1e8)],_0x4bc64b[_0x335c22(0x1f6)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x4bc64b[_0x335c22(0x1ee)],'sqlName':_0x4bc64b[_0x335c22(0x1eb)],'db':_0x3b71c2?_0x3b71c2+'\x20('+_0x4bc64b[_0x335c22(0x1f6)]+')':_0x4bc64b['dbId']??'','description':_0x4bc64b['description']??'','sqlContent':_0x4bc64b[_0x335c22(0x1ec)]??''}};}};
1
+ const a166_0x953501=a166_0x190a;(function(_0x410488,_0x501de5){const _0x2b97e4=a166_0x190a,_0x23f452=_0x410488();while(!![]){try{const _0x24e1ad=-parseInt(_0x2b97e4(0x1c6))/0x1+-parseInt(_0x2b97e4(0x1c2))/0x2*(parseInt(_0x2b97e4(0x1be))/0x3)+parseInt(_0x2b97e4(0x1cc))/0x4*(parseInt(_0x2b97e4(0x1ba))/0x5)+parseInt(_0x2b97e4(0x1c5))/0x6*(-parseInt(_0x2b97e4(0x1bc))/0x7)+parseInt(_0x2b97e4(0x1c8))/0x8+parseInt(_0x2b97e4(0x1c3))/0x9*(parseInt(_0x2b97e4(0x1cf))/0xa)+parseInt(_0x2b97e4(0x1ce))/0xb*(-parseInt(_0x2b97e4(0x1c9))/0xc);if(_0x24e1ad===_0x501de5)break;else _0x23f452['push'](_0x23f452['shift']());}catch(_0x58a7ce){_0x23f452['push'](_0x23f452['shift']());}}}(a166_0xd32d,0x591c3));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a166_0xd32d(){const _0xfd132e=['9QKxdre','verbose','102hDKvEe','152623wjfJBi','sql','4059136ShYWjg','192bimXEi','detail','boolean','4NadeFw','sqlName','140646RaxFmn','5160920uXLrQq','sqlcode','description','2488220HqtJwQ','dbId','167342tTuMKk','Return\x20full\x20raw\x20SQL\x20query\x20object','42lGNQAn','str','read','sqlContent','56076HwAZWS'];a166_0xd32d=function(){return _0xfd132e;};return a166_0xd32d();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a166_0x190a(_0xf06c5a,_0x479e20){_0xf06c5a=_0xf06c5a-0x1ba;const _0xd32d40=a166_0xd32d();let _0x190aa4=_0xd32d40[_0xf06c5a];return _0x190aa4;}export const sqlDetail={'service':a166_0x953501(0x1c7),'command':a166_0x953501(0x1ca),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':a166_0x953501(0x1c0),'flags':[SQLCODE_FLAG,{'name':a166_0x953501(0x1c4),'type':a166_0x953501(0x1cb),'description':a166_0x953501(0x1bd)}],async 'execute'(_0xf03453){const _0x1ecea1=a166_0x953501,_0x176358=await getSqlQueryInfo(_0xf03453['appCode'],_0xf03453[_0x1ecea1(0x1bf)](_0x1ecea1(0x1d0))),_0x5d661a=_0xf03453['bool'](_0x1ecea1(0x1c4));if(_0x5d661a)return{'ok':!![],'data':_0x176358};const _0x516d74=_0x176358[_0x1ecea1(0x1bb)]?await getDbName(_0xf03453['appCode'],_0x176358[_0x1ecea1(0x1bb)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x176358['sqlCode'],'sqlName':_0x176358[_0x1ecea1(0x1cd)],'db':_0x516d74?_0x516d74+'\x20('+_0x176358[_0x1ecea1(0x1bb)]+')':_0x176358[_0x1ecea1(0x1bb)]??'','description':_0x176358[_0x1ecea1(0x1d1)]??'','sqlContent':_0x176358[_0x1ecea1(0x1c1)]??''}};}};
@@ -1 +1 @@
1
- function a159_0x4fd2(){const _0x41e75e=['Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','693TASPQH','appCode','exec','2446446FSFaPv','168590kPnUmR','20hmavBn','params','str','2lfkzfL','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','execSuccess','456975zTXisB','now','execResult','658180hrQVlk','12624eqeBQl','512073MiIXZP','SQL\x20execution\x20failed','sql','string','sqlcode','167022ccQgeN','read','Returned\x20','1246vLfzri'];a159_0x4fd2=function(){return _0x41e75e;};return a159_0x4fd2();}const a159_0x5031d3=a159_0x2a21;function a159_0x2a21(_0x2b2062,_0x5638cf){_0x2b2062=_0x2b2062-0xc8;const _0x4fd20b=a159_0x4fd2();let _0x2a2169=_0x4fd20b[_0x2b2062];return _0x2a2169;}(function(_0xa4a427,_0x7f3ebf){const _0xbcd4cd=a159_0x2a21,_0x5031da=_0xa4a427();while(!![]){try{const _0x1486b2=parseInt(_0xbcd4cd(0xcf))/0x1*(parseInt(_0xbcd4cd(0xe1))/0x2)+parseInt(_0xbcd4cd(0xca))/0x3+-parseInt(_0xbcd4cd(0xde))/0x4*(parseInt(_0xbcd4cd(0xcd))/0x5)+-parseInt(_0xbcd4cd(0xdc))/0x6+parseInt(_0xbcd4cd(0xd7))/0x7*(-parseInt(_0xbcd4cd(0xce))/0x8)+-parseInt(_0xbcd4cd(0xd4))/0x9+parseInt(_0xbcd4cd(0xdd))/0xa*(parseInt(_0xbcd4cd(0xd9))/0xb);if(_0x1486b2===_0x7f3ebf)break;else _0x5031da['push'](_0x5031da['shift']());}catch(_0xfbd674){_0x5031da['push'](_0x5031da['shift']());}}}(a159_0x4fd2,0x582c0));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a159_0x5031d3(0xd1),'command':a159_0x5031d3(0xdb),'description':a159_0x5031d3(0xd8),'risk':a159_0x5031d3(0xd5),'flags':[SQLCODE_FLAG,{'name':'params','type':a159_0x5031d3(0xd2),'description':a159_0x5031d3(0xc8)}],async 'execute'(_0x4829f6){const _0x20e200=a159_0x5031d3,_0x4aa09a=parseJsonParams(_0x4829f6[_0x20e200(0xe0)](_0x20e200(0xdf))),_0x3dd180=Date[_0x20e200(0xcb)](),_0x540db9=await executeSql(_0x4829f6[_0x20e200(0xda)],_0x4829f6['str'](_0x20e200(0xd3)),_0x4aa09a),_0x37621c=Date[_0x20e200(0xcb)]()-_0x3dd180,_0x32069c=_0x540db9?.[_0x20e200(0xcc)]??_0x540db9,_0x35f37c=_0x540db9?.[_0x20e200(0xc9)]??!![];if(!_0x35f37c)return{'ok':![],'data':{'error':_0x540db9?.['execError']||_0x20e200(0xd0),'elapsed':_0x37621c},'message':_0x20e200(0xd0)};const _0x438faf=Array['isArray'](_0x32069c)?_0x32069c:[];return{'ok':!![],'data':{'rows':_0x438faf,'rowCount':_0x438faf['length'],'elapsed':_0x37621c},'message':_0x20e200(0xd6)+_0x438faf['length']+'\x20row(s)\x20in\x20'+_0x37621c+'ms'};}};
1
+ const a167_0x57b265=a167_0x45d9;(function(_0x3bbc8f,_0x26489b){const _0x34a3a5=a167_0x45d9,_0x28ff3a=_0x3bbc8f();while(!![]){try{const _0x1caf55=parseInt(_0x34a3a5(0x15c))/0x1*(-parseInt(_0x34a3a5(0x173))/0x2)+-parseInt(_0x34a3a5(0x16a))/0x3*(-parseInt(_0x34a3a5(0x165))/0x4)+parseInt(_0x34a3a5(0x161))/0x5*(-parseInt(_0x34a3a5(0x15e))/0x6)+-parseInt(_0x34a3a5(0x16d))/0x7+parseInt(_0x34a3a5(0x168))/0x8*(parseInt(_0x34a3a5(0x16b))/0x9)+parseInt(_0x34a3a5(0x16c))/0xa*(-parseInt(_0x34a3a5(0x160))/0xb)+parseInt(_0x34a3a5(0x175))/0xc;if(_0x1caf55===_0x26489b)break;else _0x28ff3a['push'](_0x28ff3a['shift']());}catch(_0x53e05a){_0x28ff3a['push'](_0x28ff3a['shift']());}}}(a167_0x58d4,0xa9cbc));function a167_0x45d9(_0x88d973,_0x3bbab5){_0x88d973=_0x88d973-0x15c;const _0x58d4a8=a167_0x58d4();let _0x45d91d=_0x58d4a8[_0x88d973];return _0x45d91d;}function a167_0x58d4(){const _0x4c3688=['execError','exec','read','322958gZlCDD','SQL\x20execution\x20failed','40785924rHhsts','8bFaxPk','Returned\x20','252aGLIoY','appCode','110EUmpEm','84770XDCDKF','isArray','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','857176qQaphD','length','sql','196296njdEzd','string','6BAYqXR','27GVyjBt','878270kacHaP','2263604xIVuut','params','execSuccess'];a167_0x58d4=function(){return _0x4c3688;};return a167_0x58d4();}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a167_0x57b265(0x167),'command':a167_0x57b265(0x171),'description':a167_0x57b265(0x163),'risk':a167_0x57b265(0x172),'flags':[SQLCODE_FLAG,{'name':a167_0x57b265(0x16e),'type':a167_0x57b265(0x169),'description':a167_0x57b265(0x164)}],async 'execute'(_0x4c60f1){const _0x45b4eb=a167_0x57b265,_0x5af389=parseJsonParams(_0x4c60f1['str'](_0x45b4eb(0x16e))),_0x3070f1=Date['now'](),_0x1e15a9=await executeSql(_0x4c60f1[_0x45b4eb(0x15f)],_0x4c60f1['str']('sqlcode'),_0x5af389),_0x48255a=Date['now']()-_0x3070f1,_0x919aef=_0x1e15a9?.['execResult']??_0x1e15a9,_0x3cecf6=_0x1e15a9?.[_0x45b4eb(0x16f)]??!![];if(!_0x3cecf6)return{'ok':![],'data':{'error':_0x1e15a9?.[_0x45b4eb(0x170)]||'SQL\x20execution\x20failed','elapsed':_0x48255a},'message':_0x45b4eb(0x174)};const _0x50e8f7=Array[_0x45b4eb(0x162)](_0x919aef)?_0x919aef:[];return{'ok':!![],'data':{'rows':_0x50e8f7,'rowCount':_0x50e8f7['length'],'elapsed':_0x48255a},'message':_0x45b4eb(0x15d)+_0x50e8f7[_0x45b4eb(0x166)]+'\x20row(s)\x20in\x20'+_0x48255a+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x525047,_0x20d1aa){const _0x4078e9=a160_0x42d6,_0x1dac95=_0x525047();while(!![]){try{const _0x4d21fb=parseInt(_0x4078e9(0xce))/0x1*(-parseInt(_0x4078e9(0xca))/0x2)+parseInt(_0x4078e9(0xc8))/0x3*(parseInt(_0x4078e9(0xc4))/0x4)+-parseInt(_0x4078e9(0xcd))/0x5*(parseInt(_0x4078e9(0xc9))/0x6)+-parseInt(_0x4078e9(0xcb))/0x7*(-parseInt(_0x4078e9(0xcc))/0x8)+parseInt(_0x4078e9(0xc6))/0x9*(-parseInt(_0x4078e9(0xc7))/0xa)+parseInt(_0x4078e9(0xc2))/0xb+parseInt(_0x4078e9(0xc5))/0xc*(parseInt(_0x4078e9(0xc3))/0xd);if(_0x4d21fb===_0x20d1aa)break;else _0x1dac95['push'](_0x1dac95['shift']());}catch(_0x97fdaa){_0x1dac95['push'](_0x1dac95['shift']());}}}(a160_0x5846,0xac2fa));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';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 a160_0x42d6(_0x14d6d2,_0x25aa39){_0x14d6d2=_0x14d6d2-0xc2;const _0x584690=a160_0x5846();let _0x42d6ff=_0x584690[_0x14d6d2];return _0x42d6ff;}import{sqlDelete}from'../../commands/sql/delete.js';function a160_0x5846(){const _0xc448f1=['4997484XUDoVZ','5580531oPpOPo','10GQQxkk','2043NmDKxc','6wHohrf','6YoMYZe','7WXZxZC','8658536dciIec','4555015vdvigg','398901socJyQ','1455168OnouIz','39MbyhnH','5692odETfZ'];a160_0x5846=function(){return _0xc448f1;};return a160_0x5846();}export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x4ca99a,_0x37f7af){const _0x2246b6=a168_0x7da1,_0x5b7024=_0x4ca99a();while(!![]){try{const _0x5ab8a9=parseInt(_0x2246b6(0x139))/0x1*(-parseInt(_0x2246b6(0x13b))/0x2)+-parseInt(_0x2246b6(0x13e))/0x3*(parseInt(_0x2246b6(0x13c))/0x4)+parseInt(_0x2246b6(0x141))/0x5+-parseInt(_0x2246b6(0x142))/0x6+parseInt(_0x2246b6(0x140))/0x7*(-parseInt(_0x2246b6(0x13d))/0x8)+-parseInt(_0x2246b6(0x13a))/0x9+parseInt(_0x2246b6(0x13f))/0xa;if(_0x5ab8a9===_0x37f7af)break;else _0x5b7024['push'](_0x5b7024['shift']());}catch(_0xaa93a8){_0x5b7024['push'](_0x5b7024['shift']());}}}(a168_0x2494,0x5cc1e));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a168_0x2494(){const _0x5e3710=['3740EmQAKL','5656024Xrxodk','1608gjIzjS','20110170Vmamfl','7BLHbjX','1407765KdxcLj','169038FejdXe','13zlheWH','3412665Tcoxjh','45710LVpajs'];a168_0x2494=function(){return _0x5e3710;};return a168_0x2494();}function a168_0x7da1(_0xa7ce99,_0x53050e){_0xa7ce99=_0xa7ce99-0x139;const _0x249428=a168_0x2494();let _0x7da18e=_0x249428[_0xa7ce99];return _0x7da18e;}import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';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';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a161_0x1c4230=a161_0x38b5;(function(_0x153008,_0x1a48dd){const _0x3dd33d=a161_0x38b5,_0x30d89f=_0x153008();while(!![]){try{const _0x4d6009=-parseInt(_0x3dd33d(0x1d5))/0x1*(-parseInt(_0x3dd33d(0x1cd))/0x2)+parseInt(_0x3dd33d(0x1c9))/0x3+-parseInt(_0x3dd33d(0x1da))/0x4*(-parseInt(_0x3dd33d(0x1c6))/0x5)+-parseInt(_0x3dd33d(0x1dd))/0x6+-parseInt(_0x3dd33d(0x1df))/0x7+-parseInt(_0x3dd33d(0x1ce))/0x8*(parseInt(_0x3dd33d(0x1cb))/0x9)+parseInt(_0x3dd33d(0x1de))/0xa;if(_0x4d6009===_0x1a48dd)break;else _0x30d89f['push'](_0x30d89f['shift']());}catch(_0x2af48d){_0x30d89f['push'](_0x30d89f['shift']());}}}(a161_0x4295,0x9ac26));import{listSqlQueries}from'../../core/api-client.js';function a161_0x38b5(_0x2b0f44,_0x3b86af){_0x2b0f44=_0x2b0f44-0x1c6;const _0x4295be=a161_0x4295();let _0x38b5aa=_0x4295be[_0x2b0f44];return _0x38b5aa;}import{getDbName}from'../../core/db-resolver.js';function a161_0x4295(){const _0x274508=['tableData','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','verbose','name','description','read','Filter\x20by\x20SQL\x20name','List\x20custom\x20SQL\x20queries','165JeHvrA','num','boolean','1537578KKFWav','str','249273TETTkY','sqlcode','4704bDVcjy','80MLwTZk','totalCount','appCode','Found\x20','sqlCode','string','sql','139LFuuNn','length','all','pagesize','dbId','101128iQniic','page','paging','5857410yPIwmk','8209850ZQAunJ','4253522zenpQe'];a161_0x4295=function(){return _0x274508;};return a161_0x4295();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a161_0x1c4230(0x1d4),'command':'list','description':a161_0x1c4230(0x1e7),'risk':a161_0x1c4230(0x1e5),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a161_0x1c4230(0x1e3),'type':a161_0x1c4230(0x1d3),'description':a161_0x1c4230(0x1e6)},{'name':a161_0x1c4230(0x1db),'type':'number','description':'Page\x20number','default':0x1},{'name':a161_0x1c4230(0x1d8),'type':'number','description':'Page\x20size'},{'name':a161_0x1c4230(0x1e2),'type':a161_0x1c4230(0x1c8),'description':a161_0x1c4230(0x1e1)}],async 'execute'(_0x1b8fb1){const _0xd19b74=a161_0x1c4230,_0x2f0997=await listSqlQueries(_0x1b8fb1[_0xd19b74(0x1d0)],{'sqlCode':_0x1b8fb1[_0xd19b74(0x1ca)](_0xd19b74(0x1cc))||undefined,'sqlName':_0x1b8fb1[_0xd19b74(0x1ca)](_0xd19b74(0x1e3))||undefined,'currentPage':_0x1b8fb1[_0xd19b74(0x1c7)](_0xd19b74(0x1db)),'pageSize':_0x1b8fb1[_0xd19b74(0x1c7)](_0xd19b74(0x1d8),0x32)}),_0x5a5cdf=_0x1b8fb1['bool']('verbose'),_0x3cb29b=_0x2f0997[_0xd19b74(0x1e0)]??[],_0x2628b1=_0x2f0997[_0xd19b74(0x1dc)]?.[_0xd19b74(0x1cf)]??_0x3cb29b[_0xd19b74(0x1d6)];let _0x32a160;return _0x5a5cdf?_0x32a160=_0x3cb29b:_0x32a160=await Promise[_0xd19b74(0x1d7)](_0x3cb29b['map'](async _0x53de65=>{const _0x493e26=_0xd19b74;let _0x4747ea;try{_0x4747ea=_0x53de65[_0x493e26(0x1d9)]?await getDbName(_0x1b8fb1[_0x493e26(0x1d0)],_0x53de65['dbId']):undefined;}catch{}return{'sqlCode':_0x53de65[_0x493e26(0x1d2)],'sqlName':_0x53de65['sqlName'],'description':_0x53de65[_0x493e26(0x1e4)]??'','db':_0x4747ea?_0x4747ea+'\x20('+_0x53de65[_0x493e26(0x1d9)]+')':_0x53de65[_0x493e26(0x1d9)]??''};})),{'ok':!![],'data':_0x32a160,'message':_0x3cb29b[_0xd19b74(0x1d6)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0xd19b74(0x1d1)+_0x3cb29b[_0xd19b74(0x1d6)]+'\x20SQL\x20queries\x20(total:\x20'+_0x2628b1+').'};}};
1
+ const a169_0x4a5d19=a169_0x3cdc;(function(_0x36b29a,_0x426f69){const _0x54aadb=a169_0x3cdc,_0x394dac=_0x36b29a();while(!![]){try{const _0x2b46c3=-parseInt(_0x54aadb(0x9a))/0x1*(-parseInt(_0x54aadb(0x9e))/0x2)+-parseInt(_0x54aadb(0xb7))/0x3+-parseInt(_0x54aadb(0xa8))/0x4*(parseInt(_0x54aadb(0x95))/0x5)+-parseInt(_0x54aadb(0xad))/0x6+-parseInt(_0x54aadb(0xaf))/0x7*(parseInt(_0x54aadb(0xb6))/0x8)+-parseInt(_0x54aadb(0x96))/0x9*(parseInt(_0x54aadb(0xaa))/0xa)+-parseInt(_0x54aadb(0xb4))/0xb*(-parseInt(_0x54aadb(0xab))/0xc);if(_0x2b46c3===_0x426f69)break;else _0x394dac['push'](_0x394dac['shift']());}catch(_0x564012){_0x394dac['push'](_0x394dac['shift']());}}}(a169_0xd015,0x3000b));import{listSqlQueries}from'../../core/api-client.js';function a169_0x3cdc(_0x4a919f,_0x530863){_0x4a919f=_0x4a919f-0x91;const _0xd01515=a169_0xd015();let _0x3cdc57=_0xd01515[_0x4a919f];return _0x3cdc57;}import{getDbName}from'../../core/db-resolver.js';function a169_0xd015(){const _0x61f30e=['Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','537hcXiiU','string','description','boolean','1378vhwNVe','str','No\x20custom\x20SQL\x20queries\x20found.','paging','list','read','Found\x20','Page\x20number','sqlName','Page\x20size','165848IZQpHM','map','1926590MTrRha','468RNmvKl','\x20SQL\x20queries\x20(total:\x20','251460KuwVAM','all','28LVEhOn','name','number','verbose','num','205183NqhqRu','length','643432kLPeco','38580uNRhPR','List\x20custom\x20SQL\x20queries','pagesize','appCode','sqlCode','Filter\x20by\x20SQL\x20name','page','40RNoCCb','9POQbwN','sqlcode','dbId'];a169_0xd015=function(){return _0x61f30e;};return a169_0xd015();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a169_0x4a5d19(0xa2),'description':a169_0x4a5d19(0xb8),'risk':a169_0x4a5d19(0xa3),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a169_0x4a5d19(0xb0),'type':a169_0x4a5d19(0x9b),'description':a169_0x4a5d19(0x93)},{'name':a169_0x4a5d19(0x94),'type':a169_0x4a5d19(0xb1),'description':a169_0x4a5d19(0xa5),'default':0x1},{'name':a169_0x4a5d19(0xb9),'type':'number','description':a169_0x4a5d19(0xa7)},{'name':a169_0x4a5d19(0xb2),'type':a169_0x4a5d19(0x9d),'description':a169_0x4a5d19(0x99)}],async 'execute'(_0x58af5f){const _0x90f90e=a169_0x4a5d19,_0x215db3=await listSqlQueries(_0x58af5f[_0x90f90e(0x91)],{'sqlCode':_0x58af5f[_0x90f90e(0x9f)](_0x90f90e(0x97))||undefined,'sqlName':_0x58af5f[_0x90f90e(0x9f)](_0x90f90e(0xb0))||undefined,'currentPage':_0x58af5f[_0x90f90e(0xb3)](_0x90f90e(0x94)),'pageSize':_0x58af5f['num'](_0x90f90e(0xb9),0x32)}),_0x10c5b1=_0x58af5f['bool']('verbose'),_0x1d4636=_0x215db3['tableData']??[],_0x3baf9f=_0x215db3[_0x90f90e(0xa1)]?.['totalCount']??_0x1d4636[_0x90f90e(0xb5)];let _0x34c750;return _0x10c5b1?_0x34c750=_0x1d4636:_0x34c750=await Promise[_0x90f90e(0xae)](_0x1d4636[_0x90f90e(0xa9)](async _0x5034cc=>{const _0x48257c=_0x90f90e;let _0x40454b;try{_0x40454b=_0x5034cc[_0x48257c(0x98)]?await getDbName(_0x58af5f[_0x48257c(0x91)],_0x5034cc[_0x48257c(0x98)]):undefined;}catch{}return{'sqlCode':_0x5034cc[_0x48257c(0x92)],'sqlName':_0x5034cc[_0x48257c(0xa6)],'description':_0x5034cc[_0x48257c(0x9c)]??'','db':_0x40454b?_0x40454b+'\x20('+_0x5034cc[_0x48257c(0x98)]+')':_0x5034cc[_0x48257c(0x98)]??''};})),{'ok':!![],'data':_0x34c750,'message':_0x1d4636[_0x90f90e(0xb5)]===0x0?_0x90f90e(0xa0):_0x90f90e(0xa4)+_0x1d4636[_0x90f90e(0xb5)]+_0x90f90e(0xac)+_0x3baf9f+').'};}};
@@ -1 +1 @@
1
- const a162_0x2a547e=a162_0x35e3;(function(_0x1b0447,_0x16df77){const _0xb85dd9=a162_0x35e3,_0x5cd78d=_0x1b0447();while(!![]){try{const _0x478b88=-parseInt(_0xb85dd9(0xb7))/0x1+-parseInt(_0xb85dd9(0xa9))/0x2+parseInt(_0xb85dd9(0xb0))/0x3+-parseInt(_0xb85dd9(0xc6))/0x4*(-parseInt(_0xb85dd9(0xaf))/0x5)+parseInt(_0xb85dd9(0xcf))/0x6+parseInt(_0xb85dd9(0x9a))/0x7*(parseInt(_0xb85dd9(0xb9))/0x8)+parseInt(_0xb85dd9(0xc3))/0x9*(-parseInt(_0xb85dd9(0xb2))/0xa);if(_0x478b88===_0x16df77)break;else _0x5cd78d['push'](_0x5cd78d['shift']());}catch(_0x21ee17){_0x5cd78d['push'](_0x5cd78d['shift']());}}}(a162_0x19a7,0x89e68));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';function a162_0x19a7(){const _0x373475=['str','appCode','length','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','1389438HAvyKe','tableData','nonInteractive','utf8','sql','\x20skipped,\x20','\x20SQL\x20file(s)\x20into\x20','560RVoOOV','lockFilePath','totalCount','\x20failed','conflict','message','push','trimStart','pull','catch','local\x20differs\x20from\x20remote','sqlCode','sqls','dbId','sqlRoot','324850oyibXs','mybatisXml','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','unchanged','force','skipped','170245SMPjmh','2415345XlNEXM','sqlcode','47930SSYTkt','test','write','No\x20remote\x20SQL\x20queries\x20matched.','Pull\x20complete:\x20','216095PZJfQH','\x20written,\x20','27704CjVzyO','string','cancelled','split','filter','sqlName','toISOString','description','sqlRootDir','path','1143RdXLaO','Filter\x20by\x20SQL\x20display\x20name','POST','28gyUOgH','name','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','lastSync','apps'];a162_0x19a7=function(){return _0x373475;};return a162_0x19a7();}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x59e07f,_0x561fa8){const _0x111093=a162_0x35e3,_0x365a66=[];let _0x82c8df=0x1;while(!![]){const _0x1c1fbf=await listSqlQueries(_0x59e07f,{'currentPage':_0x82c8df,'pageSize':PAGE_SIZE,'sqlCode':_0x561fa8[_0x111093(0xa5)],'sqlName':_0x561fa8[_0x111093(0xbe)]}),_0x130591=_0x1c1fbf[_0x111093(0xd0)]??[];_0x365a66['push'](..._0x130591);if(_0x130591[_0x111093(0xcd)]===0x0)break;const _0x3d86bd=_0x1c1fbf['paging']?.[_0x111093(0x9c)];if(_0x3d86bd!=null?_0x365a66[_0x111093(0xcd)]>=_0x3d86bd:_0x130591[_0x111093(0xcd)]<PAGE_SIZE)break;_0x82c8df++;}return _0x365a66;}async function ensureSqlContent(_0x5a156b){const _0x371331=a162_0x35e3;if(_0x5a156b['sqlContent']!=null&&String(_0x5a156b['sqlContent'])[_0x371331(0xcd)]>0x0)return _0x5a156b;return getSqlQueryDetail(_0x5a156b[_0x371331(0xa5)]);}export const sqlPull={'service':a162_0x2a547e(0xd3),'command':a162_0x2a547e(0xa2),'description':a162_0x2a547e(0xab),'risk':a162_0x2a547e(0xb4),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a162_0x2a547e(0xc7),'type':a162_0x2a547e(0xba),'description':a162_0x2a547e(0xc4)},{'name':a162_0x2a547e(0xad),'type':'boolean','description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x308b49){const _0x4fe9a7=a162_0x2a547e,_0x24d759=loadSqlProjectConfig(_0x308b49[_0x4fe9a7(0xcc)]),_0x27653b=await readSqlLockFile(_0x24d759[_0x4fe9a7(0x9b)]),{appLock:_0x42c38b}=ensureSqlLockScope(_0x27653b??createEmptySqlLock(),_0x24d759[_0x4fe9a7(0xcc)],_0x24d759[_0x4fe9a7(0xa8)],_0x4fe9a7(0xa2)),_0x44722a=await fetchAllSqlQueries(_0x308b49[_0x4fe9a7(0xcc)],{'sqlCode':_0x308b49['str'](_0x4fe9a7(0xb1))||undefined,'sqlName':_0x308b49['str'](_0x4fe9a7(0xc7))||undefined}),_0x3867b7=[];for(const _0x4b374f of _0x44722a){const _0x5e7665=await ensureSqlContent(_0x4b374f),_0x503fa1=ensureRemoteSqlContent(_0x5e7665),_0xfef6f5=detectModeFromSql(_0x5e7665),_0xddff76=_0x5e7665[_0x4fe9a7(0xa7)]?await getDbName(_0x308b49[_0x4fe9a7(0xcc)],Number(_0x5e7665['dbId']))[_0x4fe9a7(0xa3)](()=>undefined):undefined,_0x28d050=buildLocalSqlFileContent({'sqlCode':_0x5e7665[_0x4fe9a7(0xa5)],'sqlName':_0x5e7665[_0x4fe9a7(0xbe)],'dbId':_0x5e7665['dbId']},_0x503fa1,{'dbName':_0xddff76,'mode':_0xfef6f5,'syncedAt':new Date()[_0x4fe9a7(0xbf)](),'description':_0x5e7665[_0x4fe9a7(0xc0)]}),_0x23fbd1=buildSqlLockEntry(_0x5e7665,_0x503fa1,'',{'dbName':_0xddff76}),_0x1a3e9b=resolveLocalSqlFilePath(_0x24d759,_0x5e7665[_0x4fe9a7(0xa5)],_0x23fbd1);let _0x19fb40='would_pull',_0x362d20;if(await fileExists(_0x1a3e9b)){const _0x26d5d4=await readFile(_0x1a3e9b,_0x4fe9a7(0xd2));isEquivalentPulledSqlFile(_0x26d5d4,_0x28d050,_0xfef6f5)?(_0x19fb40=_0x4fe9a7(0xae),_0x362d20=_0x4fe9a7(0xac)):(_0x19fb40=_0x4fe9a7(0x9e),_0x362d20='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x3867b7[_0x4fe9a7(0xa0)]({'sqlCode':_0x5e7665[_0x4fe9a7(0xa5)],'sqlName':_0x5e7665['sqlName'],'filePath':_0x1a3e9b,'status':_0x19fb40,'reason':_0x362d20});}return{'method':_0x4fe9a7(0xc5),'url':_0x4fe9a7(0xce),'body':{'appCode':_0x308b49[_0x4fe9a7(0xcc)],'sqlCode':_0x308b49[_0x4fe9a7(0xcb)](_0x4fe9a7(0xb1))||null,'sqlName':_0x308b49[_0x4fe9a7(0xcb)](_0x4fe9a7(0xc7))||null,'files':_0x3867b7},'description':'Would\x20pull\x20'+_0x3867b7[_0x4fe9a7(0xcd)]+_0x4fe9a7(0xd5)+_0x24d759[_0x4fe9a7(0xc1)]};},async 'execute'(_0x5eb5cc){const _0x25a10a=a162_0x2a547e,_0x4b1aa9=loadSqlProjectConfig(_0x5eb5cc['appCode']),_0x5e93b1=await readSqlLockFile(_0x4b1aa9[_0x25a10a(0x9b)]),{lockData:_0x35ef6e,appLock:_0x527ced}=ensureSqlLockScope(_0x5e93b1??createEmptySqlLock(),_0x4b1aa9[_0x25a10a(0xcc)],_0x4b1aa9[_0x25a10a(0xa8)],_0x25a10a(0xa2)),_0x383e3e=_0x5eb5cc['bool']('force'),_0x430aba=await fetchAllSqlQueries(_0x5eb5cc[_0x25a10a(0xcc)],{'sqlCode':_0x5eb5cc[_0x25a10a(0xcb)](_0x25a10a(0xb1))||undefined,'sqlName':_0x5eb5cc['str'](_0x25a10a(0xc7))||undefined});if(_0x430aba[_0x25a10a(0xcd)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x25a10a(0xb5)};const _0x5b0780=[],_0x25d772=[];for(const _0x4ce917 of _0x430aba){try{_0x5b0780['push'](await ensureSqlContent(_0x4ce917));}catch(_0x7644a2){_0x25d772['push']({'sqlCode':_0x4ce917[_0x25a10a(0xa5)],'error':_0x7644a2 instanceof Error?_0x7644a2['message']:String(_0x7644a2)});}}if(_0x383e3e&&!_0x5eb5cc[_0x25a10a(0xd1)]){let _0xb8a486=![];for(const _0x5cc3d3 of _0x5b0780){const _0x8d2924=detectModeFromSql(_0x5cc3d3),_0x4483c3=_0x5cc3d3[_0x25a10a(0xa7)]?await getDbName(_0x5eb5cc[_0x25a10a(0xcc)],Number(_0x5cc3d3[_0x25a10a(0xa7)]))[_0x25a10a(0xa3)](()=>undefined):undefined,_0x5624f2=buildLocalSqlFileContent({'sqlCode':_0x5cc3d3[_0x25a10a(0xa5)],'sqlName':_0x5cc3d3[_0x25a10a(0xbe)],'dbId':_0x5cc3d3['dbId']},ensureRemoteSqlContent(_0x5cc3d3),{'dbName':_0x4483c3,'mode':_0x8d2924,'syncedAt':new Date()['toISOString'](),'description':_0x5cc3d3['description']}),_0x1b7aeb=resolveLocalSqlFilePath(_0x4b1aa9,_0x5cc3d3[_0x25a10a(0xa5)],buildSqlLockEntry(_0x5cc3d3,ensureRemoteSqlContent(_0x5cc3d3),'',{'dbName':_0x4483c3}));if(await fileExists(_0x1b7aeb)){const _0x19b9f1=await readFile(_0x1b7aeb,_0x25a10a(0xd2));if(!isEquivalentPulledSqlFile(_0x19b9f1,_0x5624f2,_0x8d2924)){_0xb8a486=!![];break;}}}if(_0xb8a486){const _0x142955=await confirmForceOverwrite(_0x25a10a(0xc8));if(!_0x142955)throw CliErrors[_0x25a10a(0xbb)]('Force\x20pull\x20cancelled.');}}const _0x385563=cloneSqlLockData(_0x35ef6e),_0x1f05d6=_0x385563[_0x25a10a(0xca)][_0x4b1aa9['appCode']],_0x11c9cf=[],_0x3d48bb=[];for(const _0x1ae8c3 of _0x5b0780){const _0x5f42c4=_0x1f05d6[_0x25a10a(0xa6)][_0x1ae8c3[_0x25a10a(0xa5)]],_0x214c90=ensureRemoteSqlContent(_0x1ae8c3),_0x2f9c4a=detectModeFromSql(_0x1ae8c3),_0x2836ac=_0x1ae8c3[_0x25a10a(0xa7)]?await getDbName(_0x5eb5cc[_0x25a10a(0xcc)],Number(_0x1ae8c3['dbId']))[_0x25a10a(0xa3)](()=>undefined):undefined,_0x2d54fd=buildLocalSqlFileContent({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'sqlName':_0x1ae8c3[_0x25a10a(0xbe)],'dbId':_0x1ae8c3['dbId']},_0x214c90,{'dbName':_0x2836ac,'mode':_0x2f9c4a,'syncedAt':new Date()[_0x25a10a(0xbf)](),'description':_0x1ae8c3[_0x25a10a(0xc0)]}),_0x3daf6a=buildSqlLockEntry(_0x1ae8c3,_0x214c90,computeSqlContentHash(_0x2d54fd),{'dbName':_0x2836ac}),_0x4eca34=_0x3daf6a['path'],_0x59f5a7=join(_0x4b1aa9['sqlRootDir'],_0x4eca34);try{if(await fileExists(_0x59f5a7)){const _0x58f8ac=await readFile(_0x59f5a7,_0x25a10a(0xd2));if(isEquivalentPulledSqlFile(_0x58f8ac,_0x2d54fd,_0x2f9c4a)){_0x3d48bb[_0x25a10a(0xa0)]({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'reason':'unchanged'}),_0x1f05d6[_0x25a10a(0xa6)][_0x1ae8c3[_0x25a10a(0xa5)]]={..._0x3daf6a,'hash':computeSqlContentHash(_0x58f8ac),'path':_0x4eca34};continue;}if(!_0x383e3e){_0x3d48bb[_0x25a10a(0xa0)]({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'reason':_0x25a10a(0xa4)});continue;}}const _0x1fd97b=_0x5f42c4?.[_0x25a10a(0xc2)]?join(_0x4b1aa9[_0x25a10a(0xc1)],_0x5f42c4[_0x25a10a(0xc2)]):undefined;_0x1fd97b&&_0x1fd97b!==_0x59f5a7&&await fileExists(_0x1fd97b)&&await rm(_0x1fd97b,{'force':!![]}),await ensureParentDirectory(_0x59f5a7),await writeFile(_0x59f5a7,_0x2d54fd,_0x25a10a(0xd2)),_0x1f05d6[_0x25a10a(0xa6)][_0x1ae8c3[_0x25a10a(0xa5)]]={..._0x3daf6a,'path':_0x4eca34},_0x11c9cf['push']({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'filePath':_0x59f5a7});}catch(_0x40d628){_0x25d772[_0x25a10a(0xa0)]({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'error':_0x40d628 instanceof Error?_0x40d628[_0x25a10a(0x9f)]:String(_0x40d628)});}}return _0x1f05d6[_0x25a10a(0xc9)]=new Date()[_0x25a10a(0xbf)](),await writeSqlLockFile(_0x4b1aa9['lockFilePath'],_0x385563),{'ok':_0x25d772[_0x25a10a(0xcd)]===0x0,'data':{'pulled':_0x11c9cf,'skipped':_0x3d48bb,'failed':_0x25d772},'message':_0x25a10a(0xb6)+_0x11c9cf[_0x25a10a(0xcd)]+_0x25a10a(0xb8)+_0x3d48bb[_0x25a10a(0xcd)]+_0x25a10a(0xd4)+_0x25d772[_0x25a10a(0xcd)]+_0x25a10a(0x9d)};}};function a162_0x35e3(_0x513578,_0x40dcdc){_0x513578=_0x513578-0x9a;const _0x19a780=a162_0x19a7();let _0x35e319=_0x19a780[_0x513578];return _0x35e319;}function detectModeFromSql(_0x5b0a36){const _0x3e6847=a162_0x2a547e,_0x3f10c9=ensureRemoteSqlContent(_0x5b0a36),_0x5e5655=stripLocalSqlMetadata(_0x3f10c9,_0x3e6847(0xaa))[_0x3e6847(0xa1)]();if(/^<(select|insert|update|delete)\b/i[_0x3e6847(0xb3)](_0x5e5655))return'mybatisXml';return _0x3e6847(0xd3);}function isEquivalentPulledSqlFile(_0xd9e965,_0x455b91,_0x6b2b14){return normalizePullComparableContent(_0xd9e965,_0x6b2b14)===normalizePullComparableContent(_0x455b91,_0x6b2b14);}function normalizePullComparableContent(_0x96d904,_0x1dd9a0){const _0x573244=a162_0x2a547e,_0x33bcbf=_0x96d904['replace'](/\r\n/g,'\x0a')[_0x573244(0xbc)]('\x0a'),_0x4b9987=_0x33bcbf[_0x573244(0xbd)](_0x196110=>!isSyncedAtMetadataLine(_0x196110,_0x1dd9a0));return _0x4b9987['join']('\x0a');}function isSyncedAtMetadataLine(_0x5db16c,_0x1496dd){const _0x4a7ddc=a162_0x2a547e;if(_0x1496dd===_0x4a7ddc(0xaa))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x4a7ddc(0xb3)](_0x5db16c);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x5db16c);}
1
+ const a170_0x5e992d=a170_0x4467;function a170_0x4467(_0x430a70,_0x42ce95){_0x430a70=_0x430a70-0x1f4;const _0x2c4a4d=a170_0x2c4a();let _0x4467b5=_0x2c4a4d[_0x430a70];return _0x4467b5;}(function(_0x5ec66f,_0x2a3f48){const _0x702463=a170_0x4467,_0x9c3b6b=_0x5ec66f();while(!![]){try{const _0x58231d=-parseInt(_0x702463(0x208))/0x1+-parseInt(_0x702463(0x202))/0x2+parseInt(_0x702463(0x22a))/0x3*(parseInt(_0x702463(0x205))/0x4)+parseInt(_0x702463(0x201))/0x5*(parseInt(_0x702463(0x210))/0x6)+parseInt(_0x702463(0x221))/0x7*(-parseInt(_0x702463(0x225))/0x8)+parseInt(_0x702463(0x1f4))/0x9+parseInt(_0x702463(0x1ff))/0xa;if(_0x58231d===_0x2a3f48)break;else _0x9c3b6b['push'](_0x9c3b6b['shift']());}catch(_0x25fb03){_0x9c3b6b['push'](_0x9c3b6b['shift']());}}}(a170_0x2c4a,0x415bd));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';function a170_0x2c4a(){const _0x5cd5a4=['150uKmOkk','path','mybatisXml','Would\x20pull\x20','lockFilePath','utf8','POST','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','string','cancelled','Force\x20pull\x20cancelled.','split','lastSync','paging','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','push','trimStart','7NxJAPN','appCode','conflict','force','3865624VmazxS','dbId','length','sqls','bool','1593105gUOaAf','\x20skipped,\x20','filter','sqlContent','Pull\x20complete:\x20','\x20written,\x20','boolean','totalCount','str','1574343IVtkpH','sqlcode','catch','sqlRootDir','sqlName','Filter\x20by\x20SQL\x20display\x20name','message','description','sqlCode','\x20SQL\x20file(s)\x20into\x20','replace','3731770OhUpap','write','39085zzbXpf','823912bFHHLX','skipped','toISOString','4NtCNRS','would_pull','pull','111696gFeCwj','name','unchanged','test','apps','sql','\x20failed','No\x20remote\x20SQL\x20queries\x20matched.'];a170_0x2c4a=function(){return _0x5cd5a4;};return a170_0x2c4a();}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(_0x21fe2e,_0x44a1cb){const _0x484887=a170_0x4467,_0x424ba3=[];let _0x515a11=0x1;while(!![]){const _0x2ae78c=await listSqlQueries(_0x21fe2e,{'currentPage':_0x515a11,'pageSize':PAGE_SIZE,'sqlCode':_0x44a1cb['sqlCode'],'sqlName':_0x44a1cb['sqlName']}),_0x453aa7=_0x2ae78c['tableData']??[];_0x424ba3['push'](..._0x453aa7);if(_0x453aa7[_0x484887(0x227)]===0x0)break;const _0x2fd06c=_0x2ae78c[_0x484887(0x21d)]?.[_0x484887(0x231)];if(_0x2fd06c!=null?_0x424ba3[_0x484887(0x227)]>=_0x2fd06c:_0x453aa7[_0x484887(0x227)]<PAGE_SIZE)break;_0x515a11++;}return _0x424ba3;}async function ensureSqlContent(_0x171511){const _0x38cba7=a170_0x4467;if(_0x171511[_0x38cba7(0x22d)]!=null&&String(_0x171511[_0x38cba7(0x22d)])[_0x38cba7(0x227)]>0x0)return _0x171511;return getSqlQueryDetail(_0x171511[_0x38cba7(0x1fc)]);}export const sqlPull={'service':a170_0x5e992d(0x20d),'command':'pull','description':a170_0x5e992d(0x21e),'risk':a170_0x5e992d(0x200),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a170_0x5e992d(0x209),'type':a170_0x5e992d(0x218),'description':a170_0x5e992d(0x1f9)},{'name':a170_0x5e992d(0x224),'type':a170_0x5e992d(0x230),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x536783){const _0x7b59a3=a170_0x5e992d,_0x7491be=loadSqlProjectConfig(_0x536783[_0x7b59a3(0x222)]),_0x23703b=await readSqlLockFile(_0x7491be['lockFilePath']),{appLock:_0x2a528d}=ensureSqlLockScope(_0x23703b??createEmptySqlLock(),_0x7491be[_0x7b59a3(0x222)],_0x7491be['sqlRoot'],'pull'),_0x52652b=await fetchAllSqlQueries(_0x536783['appCode'],{'sqlCode':_0x536783[_0x7b59a3(0x232)](_0x7b59a3(0x1f5))||undefined,'sqlName':_0x536783[_0x7b59a3(0x232)]('name')||undefined}),_0x62290b=[];for(const _0x1d2706 of _0x52652b){const _0x9d7a9e=await ensureSqlContent(_0x1d2706),_0x4653a8=ensureRemoteSqlContent(_0x9d7a9e),_0x5d447a=detectModeFromSql(_0x9d7a9e),_0x3104ef=_0x9d7a9e[_0x7b59a3(0x226)]?await getDbName(_0x536783[_0x7b59a3(0x222)],Number(_0x9d7a9e[_0x7b59a3(0x226)]))[_0x7b59a3(0x1f6)](()=>undefined):undefined,_0xfeaf40=buildLocalSqlFileContent({'sqlCode':_0x9d7a9e[_0x7b59a3(0x1fc)],'sqlName':_0x9d7a9e[_0x7b59a3(0x1f8)],'dbId':_0x9d7a9e[_0x7b59a3(0x226)]},_0x4653a8,{'dbName':_0x3104ef,'mode':_0x5d447a,'syncedAt':new Date()[_0x7b59a3(0x204)](),'description':_0x9d7a9e[_0x7b59a3(0x1fb)]}),_0x1340f8=buildSqlLockEntry(_0x9d7a9e,_0x4653a8,'',{'dbName':_0x3104ef}),_0xa99426=resolveLocalSqlFilePath(_0x7491be,_0x9d7a9e[_0x7b59a3(0x1fc)],_0x1340f8);let _0x31cfab=_0x7b59a3(0x206),_0x22f7bd;if(await fileExists(_0xa99426)){const _0x148114=await readFile(_0xa99426,_0x7b59a3(0x215));isEquivalentPulledSqlFile(_0x148114,_0xfeaf40,_0x5d447a)?(_0x31cfab=_0x7b59a3(0x203),_0x22f7bd=_0x7b59a3(0x20a)):(_0x31cfab=_0x7b59a3(0x223),_0x22f7bd='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x62290b[_0x7b59a3(0x21f)]({'sqlCode':_0x9d7a9e[_0x7b59a3(0x1fc)],'sqlName':_0x9d7a9e[_0x7b59a3(0x1f8)],'filePath':_0xa99426,'status':_0x31cfab,'reason':_0x22f7bd});}return{'method':_0x7b59a3(0x216),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x536783[_0x7b59a3(0x222)],'sqlCode':_0x536783[_0x7b59a3(0x232)](_0x7b59a3(0x1f5))||null,'sqlName':_0x536783[_0x7b59a3(0x232)](_0x7b59a3(0x209))||null,'files':_0x62290b},'description':_0x7b59a3(0x213)+_0x62290b[_0x7b59a3(0x227)]+_0x7b59a3(0x1fd)+_0x7491be['sqlRootDir']};},async 'execute'(_0x53f1da){const _0x4225fa=a170_0x5e992d,_0x503fbf=loadSqlProjectConfig(_0x53f1da[_0x4225fa(0x222)]),_0x260aac=await readSqlLockFile(_0x503fbf[_0x4225fa(0x214)]),{lockData:_0x343548,appLock:_0x30ac60}=ensureSqlLockScope(_0x260aac??createEmptySqlLock(),_0x503fbf['appCode'],_0x503fbf['sqlRoot'],_0x4225fa(0x207)),_0x35e5de=_0x53f1da[_0x4225fa(0x229)]('force'),_0x23489b=await fetchAllSqlQueries(_0x53f1da['appCode'],{'sqlCode':_0x53f1da[_0x4225fa(0x232)](_0x4225fa(0x1f5))||undefined,'sqlName':_0x53f1da[_0x4225fa(0x232)](_0x4225fa(0x209))||undefined});if(_0x23489b[_0x4225fa(0x227)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x4225fa(0x20f)};const _0x2adc52=[],_0x3f545e=[];for(const _0x5da422 of _0x23489b){try{_0x2adc52[_0x4225fa(0x21f)](await ensureSqlContent(_0x5da422));}catch(_0x11cc8c){_0x3f545e[_0x4225fa(0x21f)]({'sqlCode':_0x5da422['sqlCode'],'error':_0x11cc8c instanceof Error?_0x11cc8c[_0x4225fa(0x1fa)]:String(_0x11cc8c)});}}if(_0x35e5de&&!_0x53f1da['nonInteractive']){let _0x3da236=![];for(const _0x592f0a of _0x2adc52){const _0x5ce742=detectModeFromSql(_0x592f0a),_0x33e0f5=_0x592f0a[_0x4225fa(0x226)]?await getDbName(_0x53f1da[_0x4225fa(0x222)],Number(_0x592f0a[_0x4225fa(0x226)]))[_0x4225fa(0x1f6)](()=>undefined):undefined,_0xed62a6=buildLocalSqlFileContent({'sqlCode':_0x592f0a['sqlCode'],'sqlName':_0x592f0a['sqlName'],'dbId':_0x592f0a['dbId']},ensureRemoteSqlContent(_0x592f0a),{'dbName':_0x33e0f5,'mode':_0x5ce742,'syncedAt':new Date()[_0x4225fa(0x204)](),'description':_0x592f0a['description']}),_0x4f12b9=resolveLocalSqlFilePath(_0x503fbf,_0x592f0a[_0x4225fa(0x1fc)],buildSqlLockEntry(_0x592f0a,ensureRemoteSqlContent(_0x592f0a),'',{'dbName':_0x33e0f5}));if(await fileExists(_0x4f12b9)){const _0x5f5d26=await readFile(_0x4f12b9,'utf8');if(!isEquivalentPulledSqlFile(_0x5f5d26,_0xed62a6,_0x5ce742)){_0x3da236=!![];break;}}}if(_0x3da236){const _0x12760d=await confirmForceOverwrite(_0x4225fa(0x217));if(!_0x12760d)throw CliErrors[_0x4225fa(0x219)](_0x4225fa(0x21a));}}const _0x4d2d96=cloneSqlLockData(_0x343548),_0x449c36=_0x4d2d96[_0x4225fa(0x20c)][_0x503fbf['appCode']],_0x54f9da=[],_0x35e6fd=[];for(const _0x577fdc of _0x2adc52){const _0x2fe978=_0x449c36['sqls'][_0x577fdc[_0x4225fa(0x1fc)]],_0x2df48e=ensureRemoteSqlContent(_0x577fdc),_0x337c57=detectModeFromSql(_0x577fdc),_0x4e86d5=_0x577fdc[_0x4225fa(0x226)]?await getDbName(_0x53f1da[_0x4225fa(0x222)],Number(_0x577fdc[_0x4225fa(0x226)]))[_0x4225fa(0x1f6)](()=>undefined):undefined,_0x288df8=buildLocalSqlFileContent({'sqlCode':_0x577fdc[_0x4225fa(0x1fc)],'sqlName':_0x577fdc[_0x4225fa(0x1f8)],'dbId':_0x577fdc[_0x4225fa(0x226)]},_0x2df48e,{'dbName':_0x4e86d5,'mode':_0x337c57,'syncedAt':new Date()[_0x4225fa(0x204)](),'description':_0x577fdc[_0x4225fa(0x1fb)]}),_0x45abf7=buildSqlLockEntry(_0x577fdc,_0x2df48e,computeSqlContentHash(_0x288df8),{'dbName':_0x4e86d5}),_0x15dfe8=_0x45abf7[_0x4225fa(0x211)],_0x439f3f=join(_0x503fbf[_0x4225fa(0x1f7)],_0x15dfe8);try{if(await fileExists(_0x439f3f)){const _0xeff5d=await readFile(_0x439f3f,_0x4225fa(0x215));if(isEquivalentPulledSqlFile(_0xeff5d,_0x288df8,_0x337c57)){_0x35e6fd['push']({'sqlCode':_0x577fdc[_0x4225fa(0x1fc)],'reason':_0x4225fa(0x20a)}),_0x449c36['sqls'][_0x577fdc[_0x4225fa(0x1fc)]]={..._0x45abf7,'hash':computeSqlContentHash(_0xeff5d),'path':_0x15dfe8};continue;}if(!_0x35e5de){_0x35e6fd['push']({'sqlCode':_0x577fdc['sqlCode'],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x444bdb=_0x2fe978?.[_0x4225fa(0x211)]?join(_0x503fbf[_0x4225fa(0x1f7)],_0x2fe978[_0x4225fa(0x211)]):undefined;_0x444bdb&&_0x444bdb!==_0x439f3f&&await fileExists(_0x444bdb)&&await rm(_0x444bdb,{'force':!![]}),await ensureParentDirectory(_0x439f3f),await writeFile(_0x439f3f,_0x288df8,_0x4225fa(0x215)),_0x449c36[_0x4225fa(0x228)][_0x577fdc[_0x4225fa(0x1fc)]]={..._0x45abf7,'path':_0x15dfe8},_0x54f9da['push']({'sqlCode':_0x577fdc[_0x4225fa(0x1fc)],'filePath':_0x439f3f});}catch(_0x482541){_0x3f545e[_0x4225fa(0x21f)]({'sqlCode':_0x577fdc['sqlCode'],'error':_0x482541 instanceof Error?_0x482541[_0x4225fa(0x1fa)]:String(_0x482541)});}}return _0x449c36[_0x4225fa(0x21c)]=new Date()[_0x4225fa(0x204)](),await writeSqlLockFile(_0x503fbf['lockFilePath'],_0x4d2d96),{'ok':_0x3f545e[_0x4225fa(0x227)]===0x0,'data':{'pulled':_0x54f9da,'skipped':_0x35e6fd,'failed':_0x3f545e},'message':_0x4225fa(0x22e)+_0x54f9da[_0x4225fa(0x227)]+_0x4225fa(0x22f)+_0x35e6fd[_0x4225fa(0x227)]+_0x4225fa(0x22b)+_0x3f545e[_0x4225fa(0x227)]+_0x4225fa(0x20e)};}};function detectModeFromSql(_0x21a84c){const _0x1f7a4f=a170_0x5e992d,_0x44e8c4=ensureRemoteSqlContent(_0x21a84c),_0x287550=stripLocalSqlMetadata(_0x44e8c4,'mybatisXml')[_0x1f7a4f(0x220)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x287550))return _0x1f7a4f(0x212);return _0x1f7a4f(0x20d);}function isEquivalentPulledSqlFile(_0x423167,_0x47c9b9,_0x4f5be9){return normalizePullComparableContent(_0x423167,_0x4f5be9)===normalizePullComparableContent(_0x47c9b9,_0x4f5be9);}function normalizePullComparableContent(_0x360577,_0x5d8cf6){const _0x3733d1=a170_0x5e992d,_0x5e9692=_0x360577[_0x3733d1(0x1fe)](/\r\n/g,'\x0a')[_0x3733d1(0x21b)]('\x0a'),_0x1528fb=_0x5e9692[_0x3733d1(0x22c)](_0xf69d95=>!isSyncedAtMetadataLine(_0xf69d95,_0x5d8cf6));return _0x1528fb['join']('\x0a');}function isSyncedAtMetadataLine(_0x29319a,_0x3725d5){const _0x55347e=a170_0x5e992d;if(_0x3725d5===_0x55347e(0x212))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x55347e(0x20b)](_0x29319a);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x29319a);}
@@ -1 +1 @@
1
- const a163_0x4fcb02=a163_0x2602;(function(_0x133872,_0x2af96a){const _0x42f86a=a163_0x2602,_0xd5f45a=_0x133872();while(!![]){try{const _0x5aa851=parseInt(_0x42f86a(0xd7))/0x1*(-parseInt(_0x42f86a(0xbc))/0x2)+parseInt(_0x42f86a(0xda))/0x3+parseInt(_0x42f86a(0xca))/0x4*(parseInt(_0x42f86a(0xe8))/0x5)+-parseInt(_0x42f86a(0xf5))/0x6*(-parseInt(_0x42f86a(0xd8))/0x7)+-parseInt(_0x42f86a(0xdd))/0x8*(-parseInt(_0x42f86a(0xe9))/0x9)+parseInt(_0x42f86a(0xee))/0xa*(parseInt(_0x42f86a(0xbb))/0xb)+-parseInt(_0x42f86a(0xeb))/0xc;if(_0x5aa851===_0x2af96a)break;else _0xd5f45a['push'](_0xd5f45a['shift']());}catch(_0x2368c1){_0xd5f45a['push'](_0xd5f45a['shift']());}}}(a163_0x44a6,0x72254));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a163_0x2602(_0x251ad2,_0x2c51af){_0x251ad2=_0x251ad2-0xb9;const _0x44a615=a163_0x44a6();let _0x260226=_0x44a615[_0x251ad2];return _0x260226;}import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a163_0x44a6(){const _0x3cfff3=['Push\x20local\x20SQL\x20files\x20to\x20remote','Push\x20complete:\x20','validation','projectRoot','relativePath','sqlConfig','unchanged','replace','bool','force','sqlRootDir','\x20failed','1316624aTpuXK','dbDirectory','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','No\x20database\x20matches\x20local\x20directory\x20\x22','sqls','lockFilePath','push','dbName','sqlName','has','sql','Local\x20SQL\x20not\x20found:\x20','417406fOJnZv','352422wxWIjL','catch','2487723RPmtHB','str','filter','3352yNEfDq','toISOString','Would\x20push\x20','sqlCode','lastSync','trashDir','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','length','high-risk-write','sqlcode','hash','5GJCQil','11259qzLkbL','mode','16840260UnsuPE','dbId','remoteId','8217570DThhtW','path','version','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','get','exec','24GdZEhl','boolean','Local\x20directory\x20\x22','filePath','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','map','utf8','appCode','/smartapi/custom/updateUserCustomSql','join','11inpxWu','4bbNPev','isFinite'];a163_0x44a6=function(){return _0x3cfff3;};return a163_0x44a6();}import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x19dfd5,_0x47c83c,_0x484e8d){const _0x5c7e04=a163_0x2602,_0x2fe03a=await scanLocalSqlQueries(_0x19dfd5),_0x136324=new Map();for(const _0x49b014 of _0x2fe03a){if(_0x484e8d&&_0x49b014['sqlCode']!==_0x484e8d)continue;const _0x2d2cc9=_0x136324[_0x5c7e04(0xf3)](_0x49b014[_0x5c7e04(0xe0)])??[];_0x2d2cc9[_0x5c7e04(0xd1)](_0x49b014),_0x136324['set'](_0x49b014['sqlCode'],_0x2d2cc9);}if(_0x484e8d&&!_0x136324[_0x5c7e04(0xd4)](_0x484e8d))throw CliErrors[_0x5c7e04(0xc0)](_0x5c7e04(0xd6)+_0x484e8d);const _0x23250b=[];for(const [_0xe4a954,_0x13ba36]of _0x136324['entries']()){if(_0x13ba36[_0x5c7e04(0xe4)]===0x1){_0x23250b[_0x5c7e04(0xd1)](_0x13ba36[0x0]);continue;}const _0x49d652=_0x47c83c[_0x5c7e04(0xcf)][_0xe4a954],_0x1accd4=_0x49d652?.[_0x5c7e04(0xef)],_0x75453c=_0x1accd4?_0x13ba36['filter'](_0x365c49=>_0x365c49[_0x5c7e04(0xc2)]!==_0x1accd4):_0x13ba36;if(_0x49d652&&_0x75453c[_0x5c7e04(0xe4)]===0x1){_0x23250b[_0x5c7e04(0xd1)](_0x75453c[0x0]);continue;}throw CliErrors[_0x5c7e04(0xc0)](_0x5c7e04(0xf9)+_0xe4a954+_0x5c7e04(0xcd));}return _0x23250b;}export const sqlPush={'service':a163_0x4fcb02(0xd5),'command':'push','description':a163_0x4fcb02(0xbe),'risk':a163_0x4fcb02(0xe5),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a163_0x4fcb02(0xc7),'type':a163_0x4fcb02(0xf6),'description':a163_0x4fcb02(0xcc)}],async 'dryRun'(_0x254499){const _0x72bc74=a163_0x4fcb02,_0xa1e0fb=loadSqlProjectConfig(_0x254499[_0x72bc74(0xfc)]),_0x5b0dfa=await readSqlLockFile(_0xa1e0fb[_0x72bc74(0xd0)]),{appLock:_0x17eaac}=ensureSqlLockScope(_0x5b0dfa??createEmptySqlLock(),_0x254499[_0x72bc74(0xfc)],_0xa1e0fb['sqlRoot'],_0x72bc74(0xd1)),_0x2ceecc=await getTargetSqlQueries(_0xa1e0fb,_0x17eaac,_0x254499[_0x72bc74(0xdb)](_0x72bc74(0xe6))||undefined),_0x2bca84=[];for(const _0x4949a8 of _0x2ceecc){const _0x339de8=await computeSqlFileHash(_0x4949a8[_0x72bc74(0xf8)]),_0x191d00=_0x17eaac[_0x72bc74(0xcf)][_0x4949a8[_0x72bc74(0xe0)]],_0xfdce85=!!_0x191d00&&(_0x191d00[_0x72bc74(0xef)]!==_0x4949a8[_0x72bc74(0xc2)]||!!_0x4949a8[_0x72bc74(0xd3)]&&_0x191d00[_0x72bc74(0xd3)]!==_0x4949a8['sqlName']);if(!_0x254499[_0x72bc74(0xc6)](_0x72bc74(0xc7))&&_0x191d00&&_0x191d00[_0x72bc74(0xe7)]===_0x339de8&&!_0xfdce85)continue;_0x2bca84[_0x72bc74(0xd1)](_0x4949a8[_0x72bc74(0xe0)]);}return{'method':'POST','url':_0x72bc74(0xb9),'body':{'sqlCodes':_0x2bca84,'appCode':_0x254499[_0x72bc74(0xfc)]},'description':_0x72bc74(0xdf)+_0x2bca84[_0x72bc74(0xe4)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x549bff){const _0x3cde4a=a163_0x4fcb02,_0x30bad7=loadSqlProjectConfig(_0x549bff[_0x3cde4a(0xfc)]),_0x4b70a3=await readSqlLockFile(_0x30bad7[_0x3cde4a(0xd0)]),{lockData:_0x4d765c,appLock:_0x2a0103}=ensureSqlLockScope(_0x4b70a3??createEmptySqlLock(),_0x549bff['appCode'],_0x30bad7['sqlRoot'],'push'),_0xfb7219=await getTargetSqlQueries(_0x30bad7,_0x2a0103,_0x549bff[_0x3cde4a(0xdb)](_0x3cde4a(0xe6))||undefined);if(_0xfb7219[_0x3cde4a(0xe4)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x3374c1=[],_0xa7a657=[],_0x2a2ecb=[];for(const _0x1bc7bf of _0xfb7219){const _0x3a4555=_0x2a0103['sqls'][_0x1bc7bf[_0x3cde4a(0xe0)]];if(!_0x3a4555){_0x2a2ecb[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'error':_0x3cde4a(0xe3)});continue;}try{const _0x157b1d=await computeSqlFileHash(_0x1bc7bf['filePath']),_0x1f0e66=_0x3a4555[_0x3cde4a(0xef)]!==_0x1bc7bf[_0x3cde4a(0xc2)]||!!_0x1bc7bf[_0x3cde4a(0xd3)]&&_0x3a4555[_0x3cde4a(0xd3)]!==_0x1bc7bf[_0x3cde4a(0xd3)];if(!_0x549bff[_0x3cde4a(0xc6)](_0x3cde4a(0xc7))&&_0x3a4555['hash']===_0x157b1d&&!_0x1f0e66){_0xa7a657[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'reason':_0x3cde4a(0xc4)});continue;}if(_0x3a4555['version']==null){_0x2a2ecb[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'error':_0x3cde4a(0xf1)});continue;}const _0x4f7c38=await readFile(_0x1bc7bf[_0x3cde4a(0xf8)],_0x3cde4a(0xfb)),_0x411c1a=stripLocalSqlMetadata(_0x4f7c38,_0x1bc7bf[_0x3cde4a(0xea)]),_0x366988=_0x1bc7bf[_0x3cde4a(0xd3)]||_0x3a4555[_0x3cde4a(0xd3)],_0x9316d3=await resolveTargetDbBinding(_0x549bff[_0x3cde4a(0xfc)],_0x1bc7bf,_0x3a4555),_0x3d0ee5=await updateSqlQuery({'id':_0x3a4555[_0x3cde4a(0xed)],'appCode':_0x549bff[_0x3cde4a(0xfc)],'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'sqlName':_0x366988,'dbId':_0x9316d3[_0x3cde4a(0xec)],'version':_0x3a4555[_0x3cde4a(0xf0)],'sqlContent':_0x411c1a,'sqlConfig':_0x3a4555[_0x3cde4a(0xc3)]??undefined}),_0x3c6184=_0x3d0ee5[_0x3cde4a(0xec)]?await getDbName(_0x549bff[_0x3cde4a(0xfc)],Number(_0x3d0ee5[_0x3cde4a(0xec)]))['catch'](()=>_0x9316d3[_0x3cde4a(0xd2)]):_0x9316d3[_0x3cde4a(0xd2)];_0x2a0103[_0x3cde4a(0xcf)][_0x1bc7bf[_0x3cde4a(0xe0)]]={...buildSqlLockEntry(_0x3d0ee5,_0x411c1a,_0x157b1d,{'dbName':_0x3c6184}),'path':_0x1bc7bf['relativePath'],'mode':_0x3a4555['mode']},await archivePreviousSqlFileIfNeeded(_0x30bad7,_0x3a4555['path'],_0x1bc7bf['relativePath']),_0x3374c1['push']({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'remoteId':_0x3a4555[_0x3cde4a(0xed)]});}catch(_0x3e61d9){_0x2a2ecb[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'error':_0x3e61d9 instanceof Error?_0x3e61d9['message']:String(_0x3e61d9)});}}return _0x2a0103[_0x3cde4a(0xe1)]=new Date()[_0x3cde4a(0xde)](),await writeSqlLockFile(_0x30bad7['lockFilePath'],_0x4d765c),{'ok':_0x2a2ecb[_0x3cde4a(0xe4)]===0x0,'data':{'pushed':_0x3374c1,'skipped':_0xa7a657,'failed':_0x2a2ecb},'message':_0x3cde4a(0xbf)+_0x3374c1[_0x3cde4a(0xe4)]+'\x20pushed,\x20'+_0xa7a657[_0x3cde4a(0xe4)]+'\x20skipped,\x20'+_0x2a2ecb[_0x3cde4a(0xe4)]+_0x3cde4a(0xc9)};}};async function archivePreviousSqlFileIfNeeded(_0x3fdb63,_0x291e21,_0xa809c6){const _0x928827=a163_0x4fcb02;if(!_0x291e21||_0x291e21===_0xa809c6)return;const _0x161f6e=join(_0x3fdb63['sqlRootDir'],_0x291e21);if(!await fileExists(_0x161f6e))return;const _0x5c078e=await moveToTrash(_0x3fdb63[_0x928827(0xc1)],_0x3fdb63[_0x928827(0xe2)],_0x161f6e);await cleanupEmptyDirectories(dirname(_0x161f6e),_0x3fdb63[_0x928827(0xc8)]),void _0x5c078e;}async function moveToTrash(_0x55650c,_0xbb6a2d,_0x116648){const _0x2e8c70=a163_0x4fcb02,_0x6b2cef=new Date()['toISOString']()[_0x2e8c70(0xc5)](/[:.]/g,'-'),_0x5a322d=relative(_0x55650c,_0x116648),_0x3ec852=join(_0xbb6a2d,_0x6b2cef,_0x5a322d);return await mkdir(dirname(_0x3ec852),{'recursive':!![]}),await rename(_0x116648,_0x3ec852),_0x3ec852;}async function cleanupEmptyDirectories(_0x5a5a76,_0x576707){let _0x2c08c3=resolve(_0x5a5a76);const _0x3802d4=resolve(_0x576707);while(_0x2c08c3['startsWith'](''+_0x3802d4+sep)||_0x2c08c3===_0x3802d4){if(_0x2c08c3===_0x3802d4)return;try{const _0x35498a=await readdir(_0x2c08c3);if(_0x35498a['length']>0x0)return;await rmdir(_0x2c08c3);}catch{return;}_0x2c08c3=dirname(_0x2c08c3);}}async function resolveTargetDbBinding(_0x5c60fa,_0x2f846d,_0x16a94b){const _0x22afbc=a163_0x4fcb02,_0x5d5f03=_0x2f846d[_0x22afbc(0xcb)];if(!_0x5d5f03)return{'dbId':_0x16a94b['dbId'],'dbName':_0x16a94b['dbName']};const _0x19c723=buildDbDirectoryName(_0x16a94b[_0x22afbc(0xd2)],_0x16a94b[_0x22afbc(0xec)]);if(_0x5d5f03===_0x19c723)return{'dbId':_0x16a94b[_0x22afbc(0xec)],'dbName':_0x16a94b[_0x22afbc(0xd2)]};const _0x465d99=parseExplicitDbDirectory(_0x5d5f03);if(_0x465d99!=null)return{'dbId':_0x465d99,'dbName':await getDbName(_0x5c60fa,_0x465d99)[_0x22afbc(0xd9)](()=>undefined)};const _0x46d888=await listDatabases(_0x5c60fa),_0x35c957=_0x46d888[_0x22afbc(0xdc)](_0x153eda=>buildDbDirectoryName(_0x153eda[_0x22afbc(0xd2)],_0x153eda['dbId'])===_0x5d5f03);if(_0x35c957[_0x22afbc(0xe4)]===0x1)return{'dbId':_0x35c957[0x0][_0x22afbc(0xec)],'dbName':_0x35c957[0x0]['dbName']};if(_0x35c957['length']===0x0)throw CliErrors['validation'](_0x22afbc(0xce)+_0x5d5f03+'\x22\x20for\x20sqlCode\x20'+_0x2f846d[_0x22afbc(0xe0)]+'.');const _0x1876aa=_0x35c957[_0x22afbc(0xfa)](_0x3337a6=>_0x3337a6['dbName']+'\x20('+_0x3337a6[_0x22afbc(0xec)]+')')[_0x22afbc(0xba)](',\x20');throw CliErrors[_0x22afbc(0xc0)](_0x22afbc(0xf7)+_0x5d5f03+_0x22afbc(0xf2)+_0x2f846d['sqlCode']+':\x20'+_0x1876aa);}function parseExplicitDbDirectory(_0x4a9e2b){const _0x86548f=a163_0x4fcb02,_0xc9edbe=/^db-(\d+)$/[_0x86548f(0xf4)](_0x4a9e2b);if(!_0xc9edbe)return null;const _0x44c1ce=Number(_0xc9edbe[0x1]);return Number[_0x86548f(0xbd)](_0x44c1ce)&&_0x44c1ce>0x0?_0x44c1ce:null;}
1
+ const a171_0x42c8cb=a171_0x4512;(function(_0x9c5b34,_0x228b4f){const _0x3dc3bf=a171_0x4512,_0x57890e=_0x9c5b34();while(!![]){try{const _0x54bcb5=parseInt(_0x3dc3bf(0x1d8))/0x1*(parseInt(_0x3dc3bf(0x1b8))/0x2)+parseInt(_0x3dc3bf(0x1a6))/0x3*(parseInt(_0x3dc3bf(0x1bd))/0x4)+-parseInt(_0x3dc3bf(0x1c2))/0x5+-parseInt(_0x3dc3bf(0x1bc))/0x6*(-parseInt(_0x3dc3bf(0x1c8))/0x7)+parseInt(_0x3dc3bf(0x1d9))/0x8*(parseInt(_0x3dc3bf(0x1b1))/0x9)+parseInt(_0x3dc3bf(0x1dc))/0xa+-parseInt(_0x3dc3bf(0x1c0))/0xb*(parseInt(_0x3dc3bf(0x1a1))/0xc);if(_0x54bcb5===_0x228b4f)break;else _0x57890e['push'](_0x57890e['shift']());}catch(_0x545ba6){_0x57890e['push'](_0x57890e['shift']());}}}(a171_0x55c3,0x7d526));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a171_0x55c3(){const _0x456cc0=['entries','Local\x20directory\x20\x22','lockFilePath','filePath','hash','str','sqls','mode','length','exec','set','\x20failed','1011048nwiwBe','4448968veiiyh','sqlCode','sql','3937420vgEXtP','sqlcode','\x20SQL\x20file(s)','sqlRoot','path','push','24eXFdCa','message','force','validation','replace','24NmoeDf','/smartapi/custom/updateUserCustomSql','map','boolean','sqlConfig','dbName','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','sqlName','\x22\x20for\x20sqlCode\x20','POST','relativePath','9yTcYbj','isFinite','join','projectRoot','filter','\x20skipped,\x20','trashDir','2uFBsnT','version','dbId','startsWith','5634IVtcYP','111312SZwecw','bool','appCode','9122146YnPxjH','high-risk-write','4110010IChpEF','toISOString','remoteId','\x20pushed,\x20','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','Push\x20local\x20SQL\x20files\x20to\x20remote','6041MqSKpz','catch','sqlRootDir','Local\x20SQL\x20not\x20found:\x20'];a171_0x55c3=function(){return _0x456cc0;};return a171_0x55c3();}import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x22b9d5,_0x2b292f,_0x3eecff){const _0x594058=a171_0x4512,_0x54c42f=await scanLocalSqlQueries(_0x22b9d5),_0x5ade90=new Map();for(const _0x8579bf of _0x54c42f){if(_0x3eecff&&_0x8579bf[_0x594058(0x1da)]!==_0x3eecff)continue;const _0x327eb3=_0x5ade90['get'](_0x8579bf[_0x594058(0x1da)])??[];_0x327eb3[_0x594058(0x1a0)](_0x8579bf),_0x5ade90[_0x594058(0x1d6)](_0x8579bf['sqlCode'],_0x327eb3);}if(_0x3eecff&&!_0x5ade90['has'](_0x3eecff))throw CliErrors['validation'](_0x594058(0x1cb)+_0x3eecff);const _0xf373b9=[];for(const [_0x300e98,_0x2f27ab]of _0x5ade90[_0x594058(0x1cc)]()){if(_0x2f27ab[_0x594058(0x1d4)]===0x1){_0xf373b9[_0x594058(0x1a0)](_0x2f27ab[0x0]);continue;}const _0x32df4e=_0x2b292f[_0x594058(0x1d2)][_0x300e98],_0x4bbff8=_0x32df4e?.[_0x594058(0x19f)],_0xd7a07d=_0x4bbff8?_0x2f27ab[_0x594058(0x1b5)](_0x29138b=>_0x29138b['relativePath']!==_0x4bbff8):_0x2f27ab;if(_0x32df4e&&_0xd7a07d[_0x594058(0x1d4)]===0x1){_0xf373b9[_0x594058(0x1a0)](_0xd7a07d[0x0]);continue;}throw CliErrors[_0x594058(0x1a4)](_0x594058(0x1ac)+_0x300e98+_0x594058(0x1c6));}return _0xf373b9;}export const sqlPush={'service':a171_0x42c8cb(0x1db),'command':a171_0x42c8cb(0x1a0),'description':a171_0x42c8cb(0x1c7),'risk':a171_0x42c8cb(0x1c1),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a171_0x42c8cb(0x1a3),'type':a171_0x42c8cb(0x1a9),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0x225ef5){const _0xec2b84=a171_0x42c8cb,_0xfe3fa9=loadSqlProjectConfig(_0x225ef5[_0xec2b84(0x1bf)]),_0x3e662e=await readSqlLockFile(_0xfe3fa9[_0xec2b84(0x1ce)]),{appLock:_0x4697b1}=ensureSqlLockScope(_0x3e662e??createEmptySqlLock(),_0x225ef5[_0xec2b84(0x1bf)],_0xfe3fa9[_0xec2b84(0x19e)],'push'),_0x260b88=await getTargetSqlQueries(_0xfe3fa9,_0x4697b1,_0x225ef5[_0xec2b84(0x1d1)](_0xec2b84(0x19c))||undefined),_0x5c86fa=[];for(const _0x49e70e of _0x260b88){const _0x2ada87=await computeSqlFileHash(_0x49e70e[_0xec2b84(0x1cf)]),_0x361266=_0x4697b1[_0xec2b84(0x1d2)][_0x49e70e['sqlCode']],_0x23a712=!!_0x361266&&(_0x361266['path']!==_0x49e70e['relativePath']||!!_0x49e70e[_0xec2b84(0x1ad)]&&_0x361266['sqlName']!==_0x49e70e[_0xec2b84(0x1ad)]);if(!_0x225ef5[_0xec2b84(0x1be)](_0xec2b84(0x1a3))&&_0x361266&&_0x361266[_0xec2b84(0x1d0)]===_0x2ada87&&!_0x23a712)continue;_0x5c86fa['push'](_0x49e70e[_0xec2b84(0x1da)]);}return{'method':_0xec2b84(0x1af),'url':_0xec2b84(0x1a7),'body':{'sqlCodes':_0x5c86fa,'appCode':_0x225ef5[_0xec2b84(0x1bf)]},'description':'Would\x20push\x20'+_0x5c86fa['length']+_0xec2b84(0x19d)};},async 'execute'(_0x38b7a4){const _0x3e721a=a171_0x42c8cb,_0x381ff9=loadSqlProjectConfig(_0x38b7a4[_0x3e721a(0x1bf)]),_0x16086d=await readSqlLockFile(_0x381ff9[_0x3e721a(0x1ce)]),{lockData:_0x26588a,appLock:_0x15765a}=ensureSqlLockScope(_0x16086d??createEmptySqlLock(),_0x38b7a4[_0x3e721a(0x1bf)],_0x381ff9[_0x3e721a(0x19e)],_0x3e721a(0x1a0)),_0x539015=await getTargetSqlQueries(_0x381ff9,_0x15765a,_0x38b7a4[_0x3e721a(0x1d1)](_0x3e721a(0x19c))||undefined);if(_0x539015['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x38e79e=[],_0x2efac2=[],_0x33da19=[];for(const _0x6c3b3d of _0x539015){const _0x2e63eb=_0x15765a[_0x3e721a(0x1d2)][_0x6c3b3d[_0x3e721a(0x1da)]];if(!_0x2e63eb){_0x33da19[_0x3e721a(0x1a0)]({'sqlCode':_0x6c3b3d[_0x3e721a(0x1da)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x3a44e7=await computeSqlFileHash(_0x6c3b3d[_0x3e721a(0x1cf)]),_0x4eeff3=_0x2e63eb[_0x3e721a(0x19f)]!==_0x6c3b3d[_0x3e721a(0x1b0)]||!!_0x6c3b3d[_0x3e721a(0x1ad)]&&_0x2e63eb[_0x3e721a(0x1ad)]!==_0x6c3b3d[_0x3e721a(0x1ad)];if(!_0x38b7a4[_0x3e721a(0x1be)]('force')&&_0x2e63eb[_0x3e721a(0x1d0)]===_0x3a44e7&&!_0x4eeff3){_0x2efac2[_0x3e721a(0x1a0)]({'sqlCode':_0x6c3b3d[_0x3e721a(0x1da)],'reason':'unchanged'});continue;}if(_0x2e63eb[_0x3e721a(0x1b9)]==null){_0x33da19[_0x3e721a(0x1a0)]({'sqlCode':_0x6c3b3d[_0x3e721a(0x1da)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x5781a0=await readFile(_0x6c3b3d[_0x3e721a(0x1cf)],'utf8'),_0x371297=stripLocalSqlMetadata(_0x5781a0,_0x6c3b3d[_0x3e721a(0x1d3)]),_0x2ef228=_0x6c3b3d[_0x3e721a(0x1ad)]||_0x2e63eb[_0x3e721a(0x1ad)],_0x591430=await resolveTargetDbBinding(_0x38b7a4[_0x3e721a(0x1bf)],_0x6c3b3d,_0x2e63eb),_0x1d0e97=await updateSqlQuery({'id':_0x2e63eb[_0x3e721a(0x1c4)],'appCode':_0x38b7a4[_0x3e721a(0x1bf)],'sqlCode':_0x6c3b3d[_0x3e721a(0x1da)],'sqlName':_0x2ef228,'dbId':_0x591430[_0x3e721a(0x1ba)],'version':_0x2e63eb[_0x3e721a(0x1b9)],'sqlContent':_0x371297,'sqlConfig':_0x2e63eb[_0x3e721a(0x1aa)]??undefined}),_0x2b322d=_0x1d0e97[_0x3e721a(0x1ba)]?await getDbName(_0x38b7a4['appCode'],Number(_0x1d0e97['dbId']))['catch'](()=>_0x591430[_0x3e721a(0x1ab)]):_0x591430[_0x3e721a(0x1ab)];_0x15765a[_0x3e721a(0x1d2)][_0x6c3b3d[_0x3e721a(0x1da)]]={...buildSqlLockEntry(_0x1d0e97,_0x371297,_0x3a44e7,{'dbName':_0x2b322d}),'path':_0x6c3b3d[_0x3e721a(0x1b0)],'mode':_0x2e63eb[_0x3e721a(0x1d3)]},await archivePreviousSqlFileIfNeeded(_0x381ff9,_0x2e63eb['path'],_0x6c3b3d[_0x3e721a(0x1b0)]),_0x38e79e[_0x3e721a(0x1a0)]({'sqlCode':_0x6c3b3d[_0x3e721a(0x1da)],'remoteId':_0x2e63eb[_0x3e721a(0x1c4)]});}catch(_0x3701d3){_0x33da19[_0x3e721a(0x1a0)]({'sqlCode':_0x6c3b3d[_0x3e721a(0x1da)],'error':_0x3701d3 instanceof Error?_0x3701d3[_0x3e721a(0x1a2)]:String(_0x3701d3)});}}return _0x15765a['lastSync']=new Date()[_0x3e721a(0x1c3)](),await writeSqlLockFile(_0x381ff9['lockFilePath'],_0x26588a),{'ok':_0x33da19['length']===0x0,'data':{'pushed':_0x38e79e,'skipped':_0x2efac2,'failed':_0x33da19},'message':'Push\x20complete:\x20'+_0x38e79e['length']+_0x3e721a(0x1c5)+_0x2efac2[_0x3e721a(0x1d4)]+_0x3e721a(0x1b6)+_0x33da19['length']+_0x3e721a(0x1d7)};}};function a171_0x4512(_0x3dc8ec,_0x2ca977){_0x3dc8ec=_0x3dc8ec-0x19c;const _0x55c3c1=a171_0x55c3();let _0x451257=_0x55c3c1[_0x3dc8ec];return _0x451257;}async function archivePreviousSqlFileIfNeeded(_0x8f9f30,_0x2e3daf,_0x176511){const _0x199a38=a171_0x42c8cb;if(!_0x2e3daf||_0x2e3daf===_0x176511)return;const _0x63e4ae=join(_0x8f9f30['sqlRootDir'],_0x2e3daf);if(!await fileExists(_0x63e4ae))return;const _0x3257d0=await moveToTrash(_0x8f9f30[_0x199a38(0x1b4)],_0x8f9f30[_0x199a38(0x1b7)],_0x63e4ae);await cleanupEmptyDirectories(dirname(_0x63e4ae),_0x8f9f30[_0x199a38(0x1ca)]),void _0x3257d0;}async function moveToTrash(_0x4581ba,_0xe33702,_0x79588c){const _0x571ca9=a171_0x42c8cb,_0x3dcdf5=new Date()[_0x571ca9(0x1c3)]()[_0x571ca9(0x1a5)](/[:.]/g,'-'),_0x23fe62=relative(_0x4581ba,_0x79588c),_0x30940a=join(_0xe33702,_0x3dcdf5,_0x23fe62);return await mkdir(dirname(_0x30940a),{'recursive':!![]}),await rename(_0x79588c,_0x30940a),_0x30940a;}async function cleanupEmptyDirectories(_0x3370c3,_0x4b2598){const _0x3913c9=a171_0x42c8cb;let _0x37a155=resolve(_0x3370c3);const _0x4e249b=resolve(_0x4b2598);while(_0x37a155[_0x3913c9(0x1bb)](''+_0x4e249b+sep)||_0x37a155===_0x4e249b){if(_0x37a155===_0x4e249b)return;try{const _0x4396b2=await readdir(_0x37a155);if(_0x4396b2[_0x3913c9(0x1d4)]>0x0)return;await rmdir(_0x37a155);}catch{return;}_0x37a155=dirname(_0x37a155);}}async function resolveTargetDbBinding(_0x57f600,_0x2db5b1,_0x3c544f){const _0xe3293c=a171_0x42c8cb,_0x555e73=_0x2db5b1['dbDirectory'];if(!_0x555e73)return{'dbId':_0x3c544f[_0xe3293c(0x1ba)],'dbName':_0x3c544f[_0xe3293c(0x1ab)]};const _0x5db6ca=buildDbDirectoryName(_0x3c544f[_0xe3293c(0x1ab)],_0x3c544f[_0xe3293c(0x1ba)]);if(_0x555e73===_0x5db6ca)return{'dbId':_0x3c544f['dbId'],'dbName':_0x3c544f[_0xe3293c(0x1ab)]};const _0x24ec36=parseExplicitDbDirectory(_0x555e73);if(_0x24ec36!=null)return{'dbId':_0x24ec36,'dbName':await getDbName(_0x57f600,_0x24ec36)[_0xe3293c(0x1c9)](()=>undefined)};const _0x5a5759=await listDatabases(_0x57f600),_0x45e154=_0x5a5759[_0xe3293c(0x1b5)](_0x4dc58c=>buildDbDirectoryName(_0x4dc58c[_0xe3293c(0x1ab)],_0x4dc58c[_0xe3293c(0x1ba)])===_0x555e73);if(_0x45e154[_0xe3293c(0x1d4)]===0x1)return{'dbId':_0x45e154[0x0]['dbId'],'dbName':_0x45e154[0x0][_0xe3293c(0x1ab)]};if(_0x45e154['length']===0x0)throw CliErrors[_0xe3293c(0x1a4)]('No\x20database\x20matches\x20local\x20directory\x20\x22'+_0x555e73+_0xe3293c(0x1ae)+_0x2db5b1['sqlCode']+'.');const _0x2d6ba8=_0x45e154[_0xe3293c(0x1a8)](_0x702f7a=>_0x702f7a[_0xe3293c(0x1ab)]+'\x20('+_0x702f7a[_0xe3293c(0x1ba)]+')')[_0xe3293c(0x1b3)](',\x20');throw CliErrors[_0xe3293c(0x1a4)](_0xe3293c(0x1cd)+_0x555e73+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x2db5b1[_0xe3293c(0x1da)]+':\x20'+_0x2d6ba8);}function parseExplicitDbDirectory(_0x14b40e){const _0x34c836=a171_0x42c8cb,_0x3083d0=/^db-(\d+)$/[_0x34c836(0x1d5)](_0x14b40e);if(!_0x3083d0)return null;const _0xad0868=Number(_0x3083d0[0x1]);return Number[_0x34c836(0x1b2)](_0xad0868)&&_0xad0868>0x0?_0xad0868:null;}
@@ -1 +1 @@
1
- const a164_0x1300b7=a164_0x4260;(function(_0x39d2f7,_0x271860){const _0x47e23e=a164_0x4260,_0x555d65=_0x39d2f7();while(!![]){try{const _0x5b7d11=parseInt(_0x47e23e(0x174))/0x1*(-parseInt(_0x47e23e(0x179))/0x2)+-parseInt(_0x47e23e(0x178))/0x3*(-parseInt(_0x47e23e(0x17a))/0x4)+parseInt(_0x47e23e(0x172))/0x5+parseInt(_0x47e23e(0x176))/0x6+parseInt(_0x47e23e(0x16a))/0x7+parseInt(_0x47e23e(0x16e))/0x8*(-parseInt(_0x47e23e(0x175))/0x9)+-parseInt(_0x47e23e(0x173))/0xa;if(_0x5b7d11===_0x271860)break;else _0x555d65['push'](_0x555d65['shift']());}catch(_0x15c287){_0x555d65['push'](_0x555d65['shift']());}}}(a164_0x3cb9,0xb8a8c));import{CliErrors}from'../../errors.js';function a164_0x4260(_0x3b6480,_0x4f7c59){_0x3b6480=_0x3b6480-0x16a;const _0x3cb957=a164_0x3cb9();let _0x4260e4=_0x3cb957[_0x3b6480];return _0x4260e4;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a164_0x1300b7(0x170),a164_0x1300b7(0x17c),a164_0x1300b7(0x180)][a164_0x1300b7(0x16f)]('\x0a');function a164_0x3cb9(){const _0x446755=['116999dvsJQP','2996235XymIMb','8272716vqJiXc','file','153921kvwvkr','8XjbuKg','104cUHHVv','sqlname','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','string','Path\x20to\x20the\x20SQL\x20file','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','5324291HKSSPO','write','sql','validation','8bERkQX','join','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','save','6459285KnBAyM','32079630VuwzWE'];a164_0x3cb9=function(){return _0x446755;};return a164_0x3cb9();}export const sqlSave={'service':a164_0x1300b7(0x16c),'command':a164_0x1300b7(0x171),'description':a164_0x1300b7(0x17d),'risk':a164_0x1300b7(0x16b),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a164_0x1300b7(0x177),'type':a164_0x1300b7(0x17e),'required':!![],'description':a164_0x1300b7(0x17f)},SQLCODE_FLAG_OPTIONAL,{'name':a164_0x1300b7(0x17b),'type':a164_0x1300b7(0x17e),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':a164_0x1300b7(0x17e),'description':'Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'},{'name':'description','type':'string','description':'Query\x20description'}],async 'validate'(){const _0x45d6c0=a164_0x1300b7;throw CliErrors[_0x45d6c0(0x16d)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a172_0x132828=a172_0x3f65;function a172_0x16b0(){const _0x3aca32=['validation','739208qUXmVz','Path\x20to\x20the\x20SQL\x20file','sql','Query\x20description','string','469680QdwUZb','write','760108Twijxo','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','402455LQURNe','join','114036YWMaQk','description','74635koquzC','sqlname','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','file','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','4497395cPLlWp'];a172_0x16b0=function(){return _0x3aca32;};return a172_0x16b0();}(function(_0x5b6346,_0x12da50){const _0x1bacdd=a172_0x3f65,_0xbf5a36=_0x5b6346();while(!![]){try{const _0x207121=-parseInt(_0x1bacdd(0x8f))/0x1+-parseInt(_0x1bacdd(0x89))/0x2+parseInt(_0x1bacdd(0x8d))/0x3+-parseInt(_0x1bacdd(0x96))/0x4+parseInt(_0x1bacdd(0x8b))/0x5+parseInt(_0x1bacdd(0x87))/0x6+parseInt(_0x1bacdd(0x94))/0x7;if(_0x207121===_0x12da50)break;else _0xbf5a36['push'](_0xbf5a36['shift']());}catch(_0x2cbbf6){_0xbf5a36['push'](_0xbf5a36['shift']());}}}(a172_0x16b0,0x30c61));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a172_0x132828(0x91),'Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.',a172_0x132828(0x93)][a172_0x132828(0x8c)]('\x0a');function a172_0x3f65(_0x196d8f,_0x24988e){_0x196d8f=_0x196d8f-0x84;const _0x16b0b5=a172_0x16b0();let _0x3f65b9=_0x16b0b5[_0x196d8f];return _0x3f65b9;}export const sqlSave={'service':a172_0x132828(0x84),'command':'save','description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a172_0x132828(0x88),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a172_0x132828(0x92),'type':a172_0x132828(0x86),'required':!![],'description':a172_0x132828(0x97)},SQLCODE_FLAG_OPTIONAL,{'name':a172_0x132828(0x90),'type':'string','description':'SQL\x20query\x20display\x20name'},{'name':'db','type':'string','description':a172_0x132828(0x8a)},{'name':a172_0x132828(0x8e),'type':a172_0x132828(0x86),'description':a172_0x132828(0x85)}],async 'validate'(){const _0x46eefb=a172_0x132828;throw CliErrors[_0x46eefb(0x95)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x2be8fe=a172_0x132828;throw CliErrors[_0x2be8fe(0x95)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a165_0x17a4bc=a165_0x48c4;(function(_0x584429,_0x39f5b7){const _0x2e73b2=a165_0x48c4,_0x5e9c63=_0x584429();while(!![]){try{const _0x39ad2f=parseInt(_0x2e73b2(0xf2))/0x1+parseInt(_0x2e73b2(0x115))/0x2*(parseInt(_0x2e73b2(0x10e))/0x3)+-parseInt(_0x2e73b2(0xf5))/0x4+parseInt(_0x2e73b2(0x113))/0x5*(-parseInt(_0x2e73b2(0xf8))/0x6)+-parseInt(_0x2e73b2(0x108))/0x7*(parseInt(_0x2e73b2(0x100))/0x8)+parseInt(_0x2e73b2(0x106))/0x9+-parseInt(_0x2e73b2(0xe8))/0xa*(-parseInt(_0x2e73b2(0xf4))/0xb);if(_0x39ad2f===_0x39f5b7)break;else _0x5e9c63['push'](_0x5e9c63['shift']());}catch(_0x55a8f1){_0x5e9c63['push'](_0x5e9c63['shift']());}}}(a165_0x13e1,0x41f98));import{createInterface}from'node:readline';function a165_0x48c4(_0x11a2da,_0x49ad77){_0x11a2da=_0x11a2da-0xe8;const _0x13e1c3=a165_0x13e1();let _0x48c4f8=_0x13e1c3[_0x11a2da];return _0x48c4f8;}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a165_0x17a4bc(0xfe);export function buildSqlLockEntry(_0x15adae,_0x248b0a,_0x477103,_0x1fb956){const _0x318078=a165_0x17a4bc,_0xf8f53a=detectSqlMode(_0x248b0a);return{'path':buildSqlRelativePath(_0x15adae['sqlCode'],_0x15adae[_0x318078(0xf6)],_0x1fb956?.['dbName'],_0xf8f53a,_0x15adae[_0x318078(0xff)]),'hash':_0x477103,'remoteId':_0x15adae['id'],'version':_0x15adae[_0x318078(0x112)],'dbId':Number(_0x15adae['dbId']),'dbName':_0x1fb956?.['dbName'],'sqlName':_0x15adae[_0x318078(0xf6)],'sqlConfig':_0x15adae['sqlConfig']??undefined,'mode':_0xf8f53a};}export function cloneSqlLockData(_0x4baa6f){const _0x1ca22b=a165_0x17a4bc;return{'apps':Object[_0x1ca22b(0x103)](Object[_0x1ca22b(0xfd)](_0x4baa6f[_0x1ca22b(0xfc)])[_0x1ca22b(0x104)](([_0x451973,_0x303c50])=>[_0x451973,{'sqlRoot':_0x303c50['sqlRoot'],'lastSync':_0x303c50[_0x1ca22b(0x10f)],'sqls':{..._0x303c50['sqls']}}]))};}export function ensureRemoteSqlContent(_0x58baef){const _0x30d799=a165_0x17a4bc;return _0x58baef[_0x30d799(0xea)]??'';}export function buildLocalSqlFileContent(_0x2e355e,_0x13f355,_0x220418){const _0x3dd1f8=a165_0x17a4bc,_0x3d2eb9=_0x220418?.[_0x3dd1f8(0xf0)]??detectSqlMode(_0x13f355),_0xbc0931=stripLocalSqlMetadata(_0x13f355,_0x3d2eb9)[_0x3dd1f8(0x105)](),_0x5cc791=[...buildMetadataHeaderLines({'sqlCode':_0x2e355e['sqlCode'],'sqlName':_0x2e355e['sqlName'],'dbId':_0x2e355e['dbId'],'dbName':_0x220418?.[_0x3dd1f8(0xed)],'mode':_0x3d2eb9,'syncedAt':_0x220418?.['syncedAt'],'description':_0x220418?.[_0x3dd1f8(0xf7)]},_0x3d2eb9),'',_0xbc0931],_0x10662c=_0x5cc791[_0x3dd1f8(0xfb)]('\x0a');return _0x10662c[_0x3dd1f8(0xf3)]('\x0a')?_0x10662c:_0x10662c+'\x0a';}export function stripLocalSqlMetadata(_0xeff373,_0x20df7f){const _0x557070=a165_0x17a4bc,_0x510006=_0xeff373[_0x557070(0x10a)](/\r\n/g,'\x0a')[_0x557070(0x10d)]('\x0a'),_0x39c703=[];let _0x22c4df=0x0;if(_0x20df7f===_0x557070(0xf1))while(_0x22c4df<_0x510006[_0x557070(0x114)]){const _0x280d6b=_0x510006[_0x22c4df]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x280d6b)){_0x22c4df++;continue;}if(_0x280d6b[_0x557070(0x105)]()===''&&_0x22c4df>0x0){_0x22c4df++;continue;}break;}else while(_0x22c4df<_0x510006[_0x557070(0x114)]){const _0x4605bd=_0x510006[_0x22c4df]??'';if(/^\s*--\s*@lovrabet\./[_0x557070(0xf9)](_0x4605bd)){_0x22c4df++;continue;}if(_0x4605bd[_0x557070(0x105)]()===''&&_0x22c4df>0x0){_0x22c4df++;continue;}break;}for(;_0x22c4df<_0x510006[_0x557070(0x114)];_0x22c4df++){_0x39c703[_0x557070(0x111)](_0x510006[_0x22c4df]);}return _0x39c703[_0x557070(0xfb)]('\x0a')[_0x557070(0xec)]();}export function resolveSqlMode(_0x1412df,_0x1cd9fe){const _0x7a3f40=a165_0x17a4bc;if(_0x1cd9fe?.[_0x7a3f40(0xf0)])return _0x1cd9fe[_0x7a3f40(0xf0)];return detectSqlMode(_0x1412df);}export function resolveSqlFileName(_0xbc10dc,_0x3a1d42,_0x14e159){const _0x1ec154=a165_0x17a4bc;if(_0x14e159?.['path'])return _0x14e159['path'];if(_0x14e159?.[_0x1ec154(0xf6)]||_0x14e159?.['dbName'])return buildSqlRelativePath(_0xbc10dc,_0x14e159?.[_0x1ec154(0xf6)],_0x14e159?.['dbName'],resolveSqlMode(_0x3a1d42,_0x14e159),_0x14e159?.['dbId']);return buildDefaultSqlFileName(_0xbc10dc,resolveSqlMode(_0x3a1d42,_0x14e159));}export function resolveSqlLocalDir(_0x3403a1,_0x9e6b43){return join(_0x3403a1,SQL_LOCAL_REL_DIR,_0x9e6b43);}function a165_0x13e1(){const _0x4370b2=['55PmHVUr','983880zQpoWq','sqlName','description','33162WsaWyJ','test','sqlCode','join','apps','entries','.rabetbase/sql','dbId','1346848KgHHjJ','--\x20@lovrabet.','yes','fromEntries','map','trim','3140856MvsFvr','filter','7aVNdeB','\x20-->','replace','stderr','close','split','522711iCJlOx','lastSync','includes','push','version','485ajvQfD','length','4MawUrg','705230gBIJax','<!--\x20@lovrabet.','sqlContent','\x20[y/N]\x20','trimStart','dbName','syncedAt','question','mode','mybatisXml','170604FUbeOE','endsWith'];a165_0x13e1=function(){return _0x4370b2;};return a165_0x13e1();}export async function confirmForceOverwrite(_0x147bd1){const _0x4c9942=a165_0x17a4bc,_0x1fa38b=createInterface({'input':process['stdin'],'output':process[_0x4c9942(0x10b)]}),_0x2ae0bd=await new Promise(_0x1d274f=>{const _0x56584b=_0x4c9942;_0x1fa38b[_0x56584b(0xef)](_0x147bd1+_0x56584b(0xeb),_0x1d274f);});return _0x1fa38b[_0x4c9942(0x10c)](),['y',_0x4c9942(0x102)][_0x4c9942(0x110)](_0x2ae0bd[_0x4c9942(0x105)]()['toLowerCase']());}export function findSqlLockScope(_0x5e35de,_0x35e069){const _0x304c63=a165_0x17a4bc;return _0x5e35de[_0x304c63(0xfc)][_0x35e069];}function buildMetadataHeaderLines(_0x3efc01,_0x435b43){const _0x49314d=a165_0x17a4bc,_0x31818d=[[_0x49314d(0xfa),_0x3efc01[_0x49314d(0xfa)]],[_0x49314d(0xf6),_0x3efc01[_0x49314d(0xf6)]],[_0x49314d(0xff),_0x3efc01[_0x49314d(0xff)]],[_0x49314d(0xed),_0x3efc01['dbName']],[_0x49314d(0xf0),_0x3efc01[_0x49314d(0xf0)]],['syncedAt',_0x3efc01[_0x49314d(0xee)]],[_0x49314d(0xf7),_0x3efc01[_0x49314d(0xf7)]]];if(_0x435b43==='mybatisXml')return _0x31818d[_0x49314d(0x107)](([,_0x5b6050])=>_0x5b6050!==undefined&&_0x5b6050!==null&&String(_0x5b6050)['trim']()!=='')[_0x49314d(0x104)](([_0x43e377,_0x323af2])=>_0x49314d(0xe9)+_0x43e377+':\x20'+String(_0x323af2)+_0x49314d(0x109));return _0x31818d['filter'](([,_0x2b2906])=>_0x2b2906!==undefined&&_0x2b2906!==null&&String(_0x2b2906)[_0x49314d(0x105)]()!=='')[_0x49314d(0x104)](([_0x2500b7,_0x3b38dd])=>_0x49314d(0x101)+_0x2500b7+':\x20'+String(_0x3b38dd));}
1
+ const a173_0xa143e9=a173_0x7d51;(function(_0x2feca1,_0x39ffda){const _0x7eb3f=a173_0x7d51,_0x241373=_0x2feca1();while(!![]){try{const _0x162d8e=-parseInt(_0x7eb3f(0xc0))/0x1*(-parseInt(_0x7eb3f(0xab))/0x2)+parseInt(_0x7eb3f(0xc5))/0x3*(parseInt(_0x7eb3f(0xca))/0x4)+parseInt(_0x7eb3f(0xc9))/0x5*(-parseInt(_0x7eb3f(0xd1))/0x6)+-parseInt(_0x7eb3f(0xcd))/0x7*(-parseInt(_0x7eb3f(0xbc))/0x8)+parseInt(_0x7eb3f(0xd4))/0x9+parseInt(_0x7eb3f(0xbd))/0xa+-parseInt(_0x7eb3f(0xbe))/0xb;if(_0x162d8e===_0x39ffda)break;else _0x241373['push'](_0x241373['shift']());}catch(_0x8c327b){_0x241373['push'](_0x241373['shift']());}}}(a173_0x4c5d,0x8ebeb));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a173_0xa143e9(0xb8);export function buildSqlLockEntry(_0x3e39d6,_0x6991fe,_0x2e0138,_0x2f9f2e){const _0x46035a=a173_0xa143e9,_0x3ef706=detectSqlMode(_0x6991fe);return{'path':buildSqlRelativePath(_0x3e39d6['sqlCode'],_0x3e39d6['sqlName'],_0x2f9f2e?.[_0x46035a(0xd6)],_0x3ef706,_0x3e39d6[_0x46035a(0xb9)]),'hash':_0x2e0138,'remoteId':_0x3e39d6['id'],'version':_0x3e39d6[_0x46035a(0xba)],'dbId':Number(_0x3e39d6['dbId']),'dbName':_0x2f9f2e?.[_0x46035a(0xd6)],'sqlName':_0x3e39d6[_0x46035a(0xbf)],'sqlConfig':_0x3e39d6[_0x46035a(0xb5)]??undefined,'mode':_0x3ef706};}export function cloneSqlLockData(_0x2ca02e){const _0x3e0f94=a173_0xa143e9;return{'apps':Object[_0x3e0f94(0xce)](Object['entries'](_0x2ca02e[_0x3e0f94(0xb6)])[_0x3e0f94(0xd0)](([_0x71de35,_0x4fc0da])=>[_0x71de35,{'sqlRoot':_0x4fc0da['sqlRoot'],'lastSync':_0x4fc0da[_0x3e0f94(0xac)],'sqls':{..._0x4fc0da[_0x3e0f94(0xc1)]}}]))};}export function ensureRemoteSqlContent(_0x20ca10){const _0x3f4936=a173_0xa143e9;return _0x20ca10[_0x3f4936(0xb0)]??'';}export function buildLocalSqlFileContent(_0x2bd321,_0x1a5d97,_0x5b7b76){const _0x1b636e=a173_0xa143e9,_0x3cc7ca=_0x5b7b76?.[_0x1b636e(0xc3)]??detectSqlMode(_0x1a5d97),_0x4988f9=stripLocalSqlMetadata(_0x1a5d97,_0x3cc7ca)[_0x1b636e(0xcf)](),_0x2b19ce=[...buildMetadataHeaderLines({'sqlCode':_0x2bd321[_0x1b636e(0xc4)],'sqlName':_0x2bd321[_0x1b636e(0xbf)],'dbId':_0x2bd321[_0x1b636e(0xb9)],'dbName':_0x5b7b76?.[_0x1b636e(0xd6)],'mode':_0x3cc7ca,'syncedAt':_0x5b7b76?.[_0x1b636e(0xad)],'description':_0x5b7b76?.[_0x1b636e(0xd7)]},_0x3cc7ca),'',_0x4988f9],_0x36507f=_0x2b19ce[_0x1b636e(0xaa)]('\x0a');return _0x36507f['endsWith']('\x0a')?_0x36507f:_0x36507f+'\x0a';}export function stripLocalSqlMetadata(_0x443128,_0x1d841e){const _0x110fd6=a173_0xa143e9,_0x4d8f3f=_0x443128[_0x110fd6(0xc2)](/\r\n/g,'\x0a')[_0x110fd6(0xb2)]('\x0a'),_0xe63bf5=[];let _0x3f3243=0x0;if(_0x1d841e===_0x110fd6(0xb7))while(_0x3f3243<_0x4d8f3f[_0x110fd6(0xb4)]){const _0x44839a=_0x4d8f3f[_0x3f3243]??'';if(/^\s*<!--\s*@lovrabet\./[_0x110fd6(0xc7)](_0x44839a)){_0x3f3243++;continue;}if(_0x44839a[_0x110fd6(0xcf)]()===''&&_0x3f3243>0x0){_0x3f3243++;continue;}break;}else while(_0x3f3243<_0x4d8f3f['length']){const _0x7919ff=_0x4d8f3f[_0x3f3243]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x7919ff)){_0x3f3243++;continue;}if(_0x7919ff[_0x110fd6(0xcf)]()===''&&_0x3f3243>0x0){_0x3f3243++;continue;}break;}for(;_0x3f3243<_0x4d8f3f['length'];_0x3f3243++){_0xe63bf5[_0x110fd6(0xd2)](_0x4d8f3f[_0x3f3243]);}return _0xe63bf5[_0x110fd6(0xaa)]('\x0a')[_0x110fd6(0xc6)]();}export function resolveSqlMode(_0x23c196,_0x6d1dcc){const _0x330e73=a173_0xa143e9;if(_0x6d1dcc?.[_0x330e73(0xc3)])return _0x6d1dcc[_0x330e73(0xc3)];return detectSqlMode(_0x23c196);}export function resolveSqlFileName(_0x56a06e,_0xe3ba8e,_0x4a8499){const _0x45641f=a173_0xa143e9;if(_0x4a8499?.[_0x45641f(0xbb)])return _0x4a8499['path'];if(_0x4a8499?.[_0x45641f(0xbf)]||_0x4a8499?.[_0x45641f(0xd6)])return buildSqlRelativePath(_0x56a06e,_0x4a8499?.[_0x45641f(0xbf)],_0x4a8499?.['dbName'],resolveSqlMode(_0xe3ba8e,_0x4a8499),_0x4a8499?.['dbId']);return buildDefaultSqlFileName(_0x56a06e,resolveSqlMode(_0xe3ba8e,_0x4a8499));}function a173_0x7d51(_0x50551c,_0x211d18){_0x50551c=_0x50551c-0xaa;const _0x4c5d3a=a173_0x4c5d();let _0x7d513b=_0x4c5d3a[_0x50551c];return _0x7d513b;}export function resolveSqlLocalDir(_0x2cee8d,_0x846948){return join(_0x2cee8d,SQL_LOCAL_REL_DIR,_0x846948);}function a173_0x4c5d(){const _0x4d7169=['dbId','version','path','248xUXvDP','4406940eHZWNL','18784557aNUClH','sqlName','3psaCMB','sqls','replace','mode','sqlCode','6zWpphs','trimStart','test','close','215wazEQO','2307560MFhBVw','yes','stdin','58107YQMJsl','fromEntries','trim','map','20766rBNoHo','push','\x20[y/N]\x20','23481ybIvAA','<!--\x20@lovrabet.','dbName','description','filter','join','391186Uwotuu','lastSync','syncedAt','question','stderr','sqlContent','\x20-->','split','includes','length','sqlConfig','apps','mybatisXml','.rabetbase/sql'];a173_0x4c5d=function(){return _0x4d7169;};return a173_0x4c5d();}export async function confirmForceOverwrite(_0x481488){const _0xd1cdb8=a173_0xa143e9,_0x1f84a2=createInterface({'input':process[_0xd1cdb8(0xcc)],'output':process[_0xd1cdb8(0xaf)]}),_0x3f3b7e=await new Promise(_0x1384e8=>{const _0x53f7a5=_0xd1cdb8;_0x1f84a2[_0x53f7a5(0xae)](_0x481488+_0x53f7a5(0xd3),_0x1384e8);});return _0x1f84a2[_0xd1cdb8(0xc8)](),['y',_0xd1cdb8(0xcb)][_0xd1cdb8(0xb3)](_0x3f3b7e['trim']()['toLowerCase']());}export function findSqlLockScope(_0x5cf0ab,_0x4d30bf){return _0x5cf0ab['apps'][_0x4d30bf];}function buildMetadataHeaderLines(_0xebff1b,_0x337e50){const _0x3f78a7=a173_0xa143e9,_0x4a3b56=[[_0x3f78a7(0xc4),_0xebff1b[_0x3f78a7(0xc4)]],[_0x3f78a7(0xbf),_0xebff1b[_0x3f78a7(0xbf)]],[_0x3f78a7(0xb9),_0xebff1b[_0x3f78a7(0xb9)]],[_0x3f78a7(0xd6),_0xebff1b[_0x3f78a7(0xd6)]],['mode',_0xebff1b['mode']],[_0x3f78a7(0xad),_0xebff1b['syncedAt']],[_0x3f78a7(0xd7),_0xebff1b['description']]];if(_0x337e50===_0x3f78a7(0xb7))return _0x4a3b56[_0x3f78a7(0xd8)](([,_0x54af7c])=>_0x54af7c!==undefined&&_0x54af7c!==null&&String(_0x54af7c)[_0x3f78a7(0xcf)]()!=='')['map'](([_0x2a8054,_0x33cbca])=>_0x3f78a7(0xd5)+_0x2a8054+':\x20'+String(_0x33cbca)+_0x3f78a7(0xb1));return _0x4a3b56[_0x3f78a7(0xd8)](([,_0x225031])=>_0x225031!==undefined&&_0x225031!==null&&String(_0x225031)[_0x3f78a7(0xcf)]()!=='')[_0x3f78a7(0xd0)](([_0x244a8b,_0x1f456b])=>'--\x20@lovrabet.'+_0x244a8b+':\x20'+String(_0x1f456b));}