@lovrabet/rabetbase-cli 2.3.15-beta.2 → 2.3.16-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +7 -2
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/auth/auth-server-ui.js +1 -1
  6. package/lib/auth/auth-server.js +1 -1
  7. package/lib/auth/constant.js +1 -1
  8. package/lib/auth/get-cookie.js +1 -1
  9. package/lib/auth/get-session-user.js +1 -1
  10. package/lib/auth/is-session-valid.js +1 -1
  11. package/lib/auth/login-success-html.js +1 -1
  12. package/lib/auth/logout.js +1 -1
  13. package/lib/cli-flags.js +1 -1
  14. package/lib/cli.js +1 -1
  15. package/lib/commands/api/generate.js +1 -1
  16. package/lib/commands/api/index.js +1 -1
  17. package/lib/commands/api/list.js +1 -1
  18. package/lib/commands/api/pull.js +1 -1
  19. package/lib/commands/api/shared.js +1 -1
  20. package/lib/commands/app/add.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.js +1 -1
  23. package/lib/commands/app/remote-directory.js +1 -1
  24. package/lib/commands/app/remove.js +1 -1
  25. package/lib/commands/app/shared.js +1 -1
  26. package/lib/commands/app-config/delete.js +1 -1
  27. package/lib/commands/app-config/get.js +1 -1
  28. package/lib/commands/app-config/index.js +1 -1
  29. package/lib/commands/app-config/list.js +1 -1
  30. package/lib/commands/app-config/set.js +1 -1
  31. package/lib/commands/app-config/shared.js +1 -1
  32. package/lib/commands/auth/index.js +1 -1
  33. package/lib/commands/bff/create.js +1 -1
  34. package/lib/commands/bff/delete.js +1 -1
  35. package/lib/commands/bff/detail.js +1 -1
  36. package/lib/commands/bff/index.js +1 -1
  37. package/lib/commands/bff/list.js +1 -1
  38. package/lib/commands/bff/pull.js +1 -1
  39. package/lib/commands/bff/push.js +1 -1
  40. package/lib/commands/bff/status.js +1 -1
  41. package/lib/commands/cli-skill/index.js +1 -1
  42. package/lib/commands/cli-update.js +1 -1
  43. package/lib/commands/codegen/index.js +1 -1
  44. package/lib/commands/codegen/sdk.js +1 -1
  45. package/lib/commands/codegen/sql.js +1 -1
  46. package/lib/commands/common/app-registry.js +1 -1
  47. package/lib/commands/common/app-selector.js +1 -1
  48. package/lib/commands/common/async-task.js +1 -1
  49. package/lib/commands/common/dry-run.js +1 -1
  50. package/lib/commands/common/flags.js +1 -1
  51. package/lib/commands/common/local-file.js +1 -1
  52. package/lib/commands/common/validate.js +1 -1
  53. package/lib/commands/config/get.js +1 -1
  54. package/lib/commands/config/index.js +1 -1
  55. package/lib/commands/config/list.js +1 -1
  56. package/lib/commands/config/set.js +1 -1
  57. package/lib/commands/config/shared.js +1 -1
  58. package/lib/commands/data/filter.js +1 -1
  59. package/lib/commands/data/getOne.js +1 -1
  60. package/lib/commands/data/index.js +1 -1
  61. package/lib/commands/data/shared.js +1 -1
  62. package/lib/commands/dataset/business-group-update.js +1 -1
  63. package/lib/commands/dataset/capability.js +1 -1
  64. package/lib/commands/dataset/delete.js +1 -1
  65. package/lib/commands/dataset/detail.js +1 -1
  66. package/lib/commands/dataset/extend-update.js +1 -1
  67. package/lib/commands/dataset/field-update.js +1 -1
  68. package/lib/commands/dataset/generate.js +1 -1
  69. package/lib/commands/dataset/index.js +1 -1
  70. package/lib/commands/dataset/list.js +1 -1
  71. package/lib/commands/dataset/operations.js +1 -1
  72. package/lib/commands/dataset/relation-audit.js +1 -1
  73. package/lib/commands/dataset/relation-create.js +1 -1
  74. package/lib/commands/dataset/relation-delete.js +1 -1
  75. package/lib/commands/dataset/relation-shared.js +1 -1
  76. package/lib/commands/dataset/relation-update.js +1 -1
  77. package/lib/commands/dataset/relations.js +1 -1
  78. package/lib/commands/dataset/rename.js +1 -1
  79. package/lib/commands/dataset/restore.js +1 -1
  80. package/lib/commands/db/analysis-batching.js +1 -1
  81. package/lib/commands/db/analyze-batch-plan.js +1 -1
  82. package/lib/commands/db/analyze-cancel.js +1 -1
  83. package/lib/commands/db/analyze-start.js +1 -1
  84. package/lib/commands/db/analyze-status.js +1 -1
  85. package/lib/commands/db/create.js +1 -1
  86. package/lib/commands/db/delete.js +1 -1
  87. package/lib/commands/db/detail.js +1 -1
  88. package/lib/commands/db/diff.js +1 -1
  89. package/lib/commands/db/index.js +1 -1
  90. package/lib/commands/db/list.js +1 -1
  91. package/lib/commands/db/shared.js +1 -1
  92. package/lib/commands/db/tables.js +1 -1
  93. package/lib/commands/db/test.js +1 -1
  94. package/lib/commands/db/update.js +1 -1
  95. package/lib/commands/doctor.js +1 -1
  96. package/lib/commands/file/index.js +1 -1
  97. package/lib/commands/init/index.js +1 -1
  98. package/lib/commands/issue/index.js +1 -1
  99. package/lib/commands/issue/nudge.js +1 -1
  100. package/lib/commands/issue/report.js +1 -1
  101. package/lib/commands/issue/shared.js +1 -1
  102. package/lib/commands/kb/create.js +1 -0
  103. package/lib/commands/kb/delete.js +1 -0
  104. package/lib/commands/kb/detail.js +1 -0
  105. package/lib/commands/kb/index.js +1 -0
  106. package/lib/commands/kb/list.js +1 -0
  107. package/lib/commands/kb/shared.js +1 -0
  108. package/lib/commands/kb/update.js +1 -0
  109. package/lib/commands/logs/index.js +1 -1
  110. package/lib/commands/menu/asset-update.js +1 -1
  111. package/lib/commands/menu/delete.js +1 -1
  112. package/lib/commands/menu/external-link-create.js +1 -1
  113. package/lib/commands/menu/external-link-update.js +1 -1
  114. package/lib/commands/menu/group-create.js +1 -1
  115. package/lib/commands/menu/group-update.js +1 -1
  116. package/lib/commands/menu/index.js +1 -1
  117. package/lib/commands/menu/list.js +1 -1
  118. package/lib/commands/menu/move.js +1 -1
  119. package/lib/commands/menu/regroup-start.js +1 -1
  120. package/lib/commands/menu/rename.js +1 -1
  121. package/lib/commands/menu/shared/compare-table.js +1 -1
  122. package/lib/commands/menu/shared/delete-plan.js +1 -1
  123. package/lib/commands/menu/shared/facts.js +1 -1
  124. package/lib/commands/menu/shared/index.js +1 -1
  125. package/lib/commands/menu/shared/inquirer.js +1 -1
  126. package/lib/commands/menu/shared/local-pages.js +1 -1
  127. package/lib/commands/menu/shared/logic.js +1 -1
  128. package/lib/commands/menu/shared/mutations.js +1 -1
  129. package/lib/commands/menu/shared/service.js +1 -1
  130. package/lib/commands/menu/shared/sync-core.js +1 -1
  131. package/lib/commands/menu/shared/update-core.js +1 -1
  132. package/lib/commands/menu/shared/valid-url.js +1 -1
  133. package/lib/commands/menu/sync.js +1 -1
  134. package/lib/commands/notification/config-list.js +1 -1
  135. package/lib/commands/notification/index.js +1 -1
  136. package/lib/commands/ocr/index.js +1 -1
  137. package/lib/commands/page/generate-start.js +1 -1
  138. package/lib/commands/page/generate-status.js +1 -1
  139. package/lib/commands/page/index.js +1 -1
  140. package/lib/commands/page/pull.js +1 -1
  141. package/lib/commands/page/push.js +1 -1
  142. package/lib/commands/page/relation-audit.js +1 -1
  143. package/lib/commands/page/restore.js +1 -1
  144. package/lib/commands/page/shared.js +1 -1
  145. package/lib/commands/page/standard-page-status.js +1 -1
  146. package/lib/commands/page/sync.js +1 -1
  147. package/lib/commands/permit/index.js +1 -1
  148. package/lib/commands/permit/page-get.js +1 -1
  149. package/lib/commands/permit/page-set.js +1 -1
  150. package/lib/commands/permit/role-apis-set.js +1 -1
  151. package/lib/commands/permit/role-menus-set.js +1 -1
  152. package/lib/commands/permit/role-menus.js +1 -1
  153. package/lib/commands/permit/shared.js +1 -1
  154. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  155. package/lib/commands/project/create/format-elapsed.js +1 -1
  156. package/lib/commands/project/create/main.js +1 -1
  157. package/lib/commands/project/create/non-interactive.js +1 -1
  158. package/lib/commands/project/create/project-template-path.js +1 -1
  159. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  160. package/lib/commands/project/create/use-format-code.js +1 -1
  161. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  162. package/lib/commands/project/index.js +1 -1
  163. package/lib/commands/project/init.js +1 -1
  164. package/lib/commands/project/upgrade.js +1 -1
  165. package/lib/commands/registry.js +1 -1
  166. package/lib/commands/role/create.js +1 -1
  167. package/lib/commands/role/delete.js +1 -1
  168. package/lib/commands/role/detail.js +1 -1
  169. package/lib/commands/role/index.js +1 -1
  170. package/lib/commands/role/list.js +1 -1
  171. package/lib/commands/role/shared.js +1 -1
  172. package/lib/commands/role/update.js +1 -1
  173. package/lib/commands/role/user-add.js +1 -1
  174. package/lib/commands/role/user-remove.js +1 -1
  175. package/lib/commands/role/user-resolve.js +1 -1
  176. package/lib/commands/run/index.js +1 -1
  177. package/lib/commands/schema.js +1 -1
  178. package/lib/commands/sql/create.js +1 -1
  179. package/lib/commands/sql/delete.js +1 -1
  180. package/lib/commands/sql/detail.js +1 -1
  181. package/lib/commands/sql/exec.js +1 -1
  182. package/lib/commands/sql/index.js +1 -1
  183. package/lib/commands/sql/list.js +1 -1
  184. package/lib/commands/sql/pull.js +1 -1
  185. package/lib/commands/sql/push.js +1 -1
  186. package/lib/commands/sql/save.js +1 -1
  187. package/lib/commands/sql/shared.js +1 -1
  188. package/lib/commands/sql/status.js +1 -1
  189. package/lib/commands/sql/validate.js +1 -1
  190. package/lib/commands/task/index.js +1 -1
  191. package/lib/commands/task/status.js +1 -1
  192. package/lib/commands/workspace/add.js +1 -1
  193. package/lib/commands/workspace/index.js +1 -1
  194. package/lib/commands/workspace/remove.js +1 -1
  195. package/lib/config/schema.js +1 -1
  196. package/lib/constant/cdn.js +1 -1
  197. package/lib/constant/cli.js +1 -1
  198. package/lib/constant/defaults.js +1 -1
  199. package/lib/constant/domain.js +1 -1
  200. package/lib/constant/env.js +1 -1
  201. package/lib/constant/output.js +1 -1
  202. package/lib/constant/paths.js +1 -1
  203. package/lib/constant/risk.js +1 -1
  204. package/lib/context/app-resolver.js +1 -1
  205. package/lib/context/auth-resolver.js +1 -1
  206. package/lib/context/config-loader.js +1 -1
  207. package/lib/context.js +1 -1
  208. package/lib/core/alias-resolver.js +1 -1
  209. package/lib/core/api-client.js +1 -1
  210. package/lib/core/bff/config.js +1 -1
  211. package/lib/core/bff/file-system.js +1 -1
  212. package/lib/core/bff/hash.js +1 -1
  213. package/lib/core/bff/lock.js +1 -1
  214. package/lib/core/bff/utils.js +1 -1
  215. package/lib/core/db-resolver.js +1 -1
  216. package/lib/core/page/file-system.js +1 -1
  217. package/lib/core/page/hash.js +1 -1
  218. package/lib/core/page/lock.js +1 -1
  219. package/lib/core/sql-index-auditor.js +1 -1
  220. package/lib/core/sql-sync/config.js +1 -1
  221. package/lib/core/sql-sync/file-system.js +1 -1
  222. package/lib/core/sql-sync/hash.js +1 -1
  223. package/lib/core/sql-sync/lock.js +1 -1
  224. package/lib/core/sql-sync/utils.js +1 -1
  225. package/lib/core/sql-validator.js +1 -1
  226. package/lib/errors.js +1 -1
  227. package/lib/framework/build-all-flags.js +1 -1
  228. package/lib/framework/error-output.js +1 -1
  229. package/lib/framework/explicit-yes.js +1 -1
  230. package/lib/framework/flags.js +1 -1
  231. package/lib/framework/help.js +1 -1
  232. package/lib/framework/index.js +1 -1
  233. package/lib/framework/output.js +1 -1
  234. package/lib/framework/response.js +1 -1
  235. package/lib/framework/runner-alias.js +1 -1
  236. package/lib/framework/runner.js +1 -1
  237. package/lib/framework/schema-export.js +1 -1
  238. package/lib/framework/types.js +1 -1
  239. package/lib/generated/build-info.js +1 -1
  240. package/lib/help.js +1 -1
  241. package/lib/skills/main.js +1 -1
  242. package/lib/skills/npx-skills-add.js +1 -1
  243. package/lib/skills/skill-presence.js +1 -0
  244. package/lib/telemetry/cli-command-trace.js +1 -1
  245. package/lib/telemetry/cli-help-trace.js +1 -1
  246. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  247. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  248. package/lib/telemetry/send-cli-trace-log.js +1 -1
  249. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  250. package/lib/utils/ai_config.js +1 -1
  251. package/lib/utils/apply-jq-filter.js +1 -1
  252. package/lib/utils/cdn-config.js +1 -1
  253. package/lib/utils/check-sdk-version.js +1 -1
  254. package/lib/utils/cli-version-check.js +1 -1
  255. package/lib/utils/cli-version-policy.js +1 -1
  256. package/lib/utils/config.js +1 -1
  257. package/lib/utils/copy-directory.js +1 -1
  258. package/lib/utils/entity-with-id.js +1 -1
  259. package/lib/utils/file-utils.js +1 -1
  260. package/lib/utils/guides-cdn.js +1 -1
  261. package/lib/utils/http-client.js +1 -1
  262. package/lib/utils/is-non-interactive.js +1 -1
  263. package/lib/utils/logger.js +1 -1
  264. package/lib/utils/params.js +1 -1
  265. package/lib/utils/platform.js +1 -1
  266. package/lib/utils/rules-cdn.js +1 -1
  267. package/lib/utils/sleep.js +1 -1
  268. package/lib/utils/template-replacer.js +1 -1
  269. package/lib/utils/update-notice.js +1 -1
  270. package/lib/utils/version.js +1 -1
  271. package/lib/utils/with-active-cookie.js +1 -1
  272. package/lib/utils/write-cli-side-channel.js +1 -1
  273. package/package.json +1 -1
@@ -1 +1 @@
1
- const a168_0x6b8239=a168_0x2f00;(function(_0x166126,_0xb046c1){const _0x2fd445=a168_0x2f00,_0x2780f0=_0x166126();while(!![]){try{const _0x43e157=parseInt(_0x2fd445(0x179))/0x1*(parseInt(_0x2fd445(0x164))/0x2)+parseInt(_0x2fd445(0x177))/0x3+parseInt(_0x2fd445(0x160))/0x4+parseInt(_0x2fd445(0x187))/0x5+-parseInt(_0x2fd445(0x154))/0x6+parseInt(_0x2fd445(0x180))/0x7*(-parseInt(_0x2fd445(0x166))/0x8)+-parseInt(_0x2fd445(0x182))/0x9*(parseInt(_0x2fd445(0x16c))/0xa);if(_0x43e157===_0xb046c1)break;else _0x2780f0['push'](_0x2780f0['shift']());}catch(_0x482e2f){_0x2780f0['push'](_0x2780f0['shift']());}}}(a168_0x578e,0x43975));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';function a168_0x2f00(_0x4ea734,_0x26b37e){_0x4ea734=_0x4ea734-0x150;const _0x578ef8=a168_0x578e();let _0x2f0017=_0x578ef8[_0x4ea734];return _0x2f0017;}import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set(['start',a168_0x6b8239(0x17f)]);function readPackageScripts(_0x273de9){const _0x3b4781=a168_0x6b8239,_0x354397=resolve(_0x273de9,'package.json');if(!existsSync(_0x354397))return null;try{const _0x307905=JSON[_0x3b4781(0x17e)](readFileSync(_0x354397,'utf-8'));return _0x307905['scripts']??{};}catch{return null;}}function detectPackageManager(_0x4871b5){const _0x3da2dc=a168_0x6b8239;if(existsSync(resolve(_0x4871b5,_0x3da2dc(0x184)))||existsSync(resolve(_0x4871b5,_0x3da2dc(0x167))))return _0x3da2dc(0x157);if(existsSync(resolve(_0x4871b5,'pnpm-lock.yaml')))return _0x3da2dc(0x16f);if(existsSync(resolve(_0x4871b5,_0x3da2dc(0x176))))return'yarn';return'npm';}async function versionCheck(_0x48f090){const _0x349bf6=a168_0x6b8239,_0x2e9f41=await checkCliVersion();(_0x2e9f41[_0x349bf6(0x15e)]||_0x2e9f41['belowMinimum'])&&(printCliUpgradeWarning(_0x2e9f41),assertCliVersionSupported(_0x2e9f41));const _0x1ad35a=await checkSdkVersion(_0x48f090);if(_0x1ad35a[_0x349bf6(0x15e)])printSdkUpgradeWarning(_0x1ad35a);}function spawnScript(_0x2f052f,_0x32d177,_0x4d6a51,_0x2e12f1){return new Promise((_0x2cd0e5,_0x13d259)=>{const _0x221032=a168_0x2f00,_0x4c22fe=[_0x221032(0x181),_0x32d177,..._0x4d6a51],_0x16a770=spawn(_0x2f052f,_0x4c22fe,{'cwd':_0x2e12f1,'stdio':_0x221032(0x175),'shell':!![],'env':{...process.env,'PATH':''+join(_0x2e12f1,'node_modules',_0x221032(0x15a))+delimiter+process.env.PATH}});_0x16a770['on'](_0x221032(0x162),_0x2142a1=>{const _0x4547f1=_0x221032;if(_0x2142a1===0x0||_0x2142a1===null)_0x2cd0e5();else _0x13d259(new Error(_0x2f052f+'\x20run\x20'+_0x32d177+_0x4547f1(0x17c)+_0x2142a1));}),_0x16a770['on'](_0x221032(0x174),_0x13d259);});}function a168_0x578e(){const _0x348ee9=['parse','dev','112hReVGs','run','21969FMgQxH','read','bun.lockb','No\x20scripts\x20defined\x20in\x20package.json.','\x20\x20EXAMPLES','1766145cJaaIq','script','\x20run\x20start','push','preview','node_modules','779496mNVkJt','\x20\x20\x20\x20','args','bun','join','Script\x20\x22','.bin','Available:\x20','slice','boolean','needsUpgrade','vite','1761536iRvtqr','all','close','\x20run\x20build','26Vkklbk','bool','233072YDEUBb','bun.lock','watch','\x0a\x20\x20Usage:\x20','length','Script\x20name\x20defined\x20in\x20package.json','1800rFhmsk','--watch','validation','pnpm','No\x20package.json\x20found\x20in\x20current\x20directory.','Run\x20a\x20package.json\x20script','keys','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','error','inherit','yarn.lock','52317SGLCGV','cwd','38557shHGFj','vite\x20preview\x20exited\x20with\x20code\x20','\x20run\x20preview','\x20exited\x20with\x20code\x20','log'];a168_0x578e=function(){return _0x348ee9;};return a168_0x578e();}function spawnViteBuildWatch(_0x1fe210){return new Promise((_0x2d7e12,_0x16d257)=>{const _0x355135=a168_0x2f00,_0x466bbf=spawn(_0x355135(0x15f),['build',_0x355135(0x16d)],{'cwd':_0x1fe210,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x1fe210,'node_modules',_0x355135(0x15a))+delimiter+process.env.PATH}});_0x466bbf['on']('close',_0x29a3eb=>{const _0x589956=_0x355135;if(_0x29a3eb===0x0||_0x29a3eb===null)_0x2d7e12();else _0x16d257(new Error(_0x589956(0x173)+_0x29a3eb));}),_0x466bbf['on'](_0x355135(0x174),_0x16d257);});}function spawnVitePreview(_0x5848e9){return new Promise((_0x25744d,_0xb8b280)=>{const _0x2dbefc=a168_0x2f00,_0x2b6c7d=spawn(_0x2dbefc(0x15f),[_0x2dbefc(0x152)],{'cwd':_0x5848e9,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x5848e9,_0x2dbefc(0x153),_0x2dbefc(0x15a))+delimiter+process.env.PATH}});_0x2b6c7d['on'](_0x2dbefc(0x162),_0x1354bf=>{const _0x57b4d6=_0x2dbefc;if(_0x1354bf===0x0||_0x1354bf===null)_0x25744d();else _0xb8b280(new Error(_0x57b4d6(0x17a)+_0x1354bf));}),_0x2b6c7d['on'](_0x2dbefc(0x174),_0xb8b280);});}const runFlags=[{'name':a168_0x6b8239(0x168),'type':a168_0x6b8239(0x15d),'description':'Enable\x20watch\x20mode\x20for\x20preview','default':![]}];export const runDefinition={'service':a168_0x6b8239(0x181),'command':a168_0x6b8239(0x181),'description':a168_0x6b8239(0x171),'risk':a168_0x6b8239(0x183),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a168_0x6b8239(0x188),'description':a168_0x6b8239(0x16b),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x596922=a168_0x6b8239,_0x31fd62=[];return _0x31fd62[_0x596922(0x151)](_0x596922(0x186)),_0x31fd62[_0x596922(0x151)](_0x596922(0x155)+CLI_BIN_NAME+_0x596922(0x150)),_0x31fd62['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x596922(0x163)),_0x31fd62[_0x596922(0x151)](_0x596922(0x155)+CLI_BIN_NAME+_0x596922(0x17b)),_0x31fd62[_0x596922(0x151)](_0x596922(0x155)+CLI_BIN_NAME+'\x20run\x20preview\x20--watch'),_0x31fd62[_0x596922(0x158)]('\x0a');},async 'execute'(_0x33a5a6){const _0x33396=a168_0x6b8239,_0x24ce95=process[_0x33396(0x178)](),_0x2aaf4e=_0x33a5a6[_0x33396(0x156)][0x0],_0x998b74=_0x33a5a6[_0x33396(0x156)][_0x33396(0x15c)](0x1),_0x127fb0=readPackageScripts(_0x24ce95);if(!_0x127fb0)throw CliErrors[_0x33396(0x16e)](_0x33396(0x170));if(!_0x2aaf4e){const _0x3dbff4=Object[_0x33396(0x172)](_0x127fb0);if(_0x3dbff4[_0x33396(0x16a)]===0x0)console['log'](_0x33396(0x185));else{console[_0x33396(0x17d)]('\x0a\x20\x20Available\x20scripts:\x0a');for(const _0xc6d59 of _0x3dbff4){console[_0x33396(0x17d)]('\x20\x20\x20\x20'+_0xc6d59);}console[_0x33396(0x17d)](_0x33396(0x169)+CLI_BIN_NAME+'\x20run\x20<script>\x0a');}return{'ok':!![]};}if(!_0x127fb0[_0x2aaf4e])throw CliErrors[_0x33396(0x16e)](_0x33396(0x159)+_0x2aaf4e+'\x22\x20not\x20found\x20in\x20package.json.',_0x33396(0x15b)+(Object[_0x33396(0x172)](_0x127fb0)['join'](',\x20')||'(none)'));const _0x2a891d=detectPackageManager(_0x24ce95);VERSION_CHECK_SCRIPTS['has'](_0x2aaf4e)&&await versionCheck(_0x24ce95);if(_0x2aaf4e===_0x33396(0x152)&&_0x33a5a6[_0x33396(0x165)](_0x33396(0x168)))return await Promise[_0x33396(0x161)]([spawnViteBuildWatch(_0x24ce95),spawnVitePreview(_0x24ce95)]),{'ok':!![]};return await spawnScript(_0x2a891d,_0x2aaf4e,_0x998b74,_0x24ce95),{'ok':!![]};}};
1
+ const a175_0x5617d9=a175_0x5cae;(function(_0xa49d87,_0x171ff7){const _0x85ea6=a175_0x5cae,_0x402e12=_0xa49d87();while(!![]){try{const _0x328226=parseInt(_0x85ea6(0x18f))/0x1+-parseInt(_0x85ea6(0x18d))/0x2*(parseInt(_0x85ea6(0x192))/0x3)+-parseInt(_0x85ea6(0x1b1))/0x4*(parseInt(_0x85ea6(0x1c4))/0x5)+-parseInt(_0x85ea6(0x1b0))/0x6*(-parseInt(_0x85ea6(0x1b7))/0x7)+-parseInt(_0x85ea6(0x18c))/0x8*(-parseInt(_0x85ea6(0x1a5))/0x9)+parseInt(_0x85ea6(0x1ab))/0xa*(-parseInt(_0x85ea6(0x188))/0xb)+-parseInt(_0x85ea6(0x1c1))/0xc*(-parseInt(_0x85ea6(0x1bf))/0xd);if(_0x328226===_0x171ff7)break;else _0x402e12['push'](_0x402e12['shift']());}catch(_0x1612e5){_0x402e12['push'](_0x402e12['shift']());}}}(a175_0x5c3e,0xc955b));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';function a175_0x5c3e(){const _0x5847ba=['419871Ntqwax','needsUpgrade','\x20run\x20preview\x20--watch','15QhQGBw','validation','vite\x20preview\x20exited\x20with\x20code\x20','length','push','\x20\x20\x20\x20','Available:\x20','has','error','boolean','\x20run\x20<script>\x0a','yarn.lock','bool','bun','pnpm','args','Script\x20name\x20defined\x20in\x20package.json','\x20run\x20','log','9FaQRVS','slice','No\x20scripts\x20defined\x20in\x20package.json.','npm','--watch','.bin','10cmwSdJ','belowMinimum','keys','Enable\x20watch\x20mode\x20for\x20preview','No\x20package.json\x20found\x20in\x20current\x20directory.','614892hvcknK','35676JmQeAu','inherit','join','package.json','\x20exited\x20with\x20code\x20','run','105RktyXa','build','Run\x20a\x20package.json\x20script','bun.lockb','\x22\x20not\x20found\x20in\x20package.json.','Script\x20\x22','\x0a\x20\x20Usage:\x20','start','8727862YmnLKI','watch','12HEXiWL','script','node_modules','835urMWXV','\x0a\x20\x20Available\x20scripts:\x0a','scripts','\x20run\x20preview','utf-8','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','vite','\x20\x20EXAMPLES','(none)','13283831Ohgrnt','all','\x20run\x20build','close','12832088mPeYug','284290tivvLT','preview'];a175_0x5c3e=function(){return _0x5847ba;};return a175_0x5c3e();}import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';function a175_0x5cae(_0x3806cd,_0x651c26){_0x3806cd=_0x3806cd-0x183;const _0x5c3eb9=a175_0x5c3e();let _0x5cae59=_0x5c3eb9[_0x3806cd];return _0x5cae59;}const VERSION_CHECK_SCRIPTS=new Set([a175_0x5617d9(0x1be),'dev']);function readPackageScripts(_0x295514){const _0xf6f9ac=a175_0x5617d9,_0x5c3a30=resolve(_0x295514,_0xf6f9ac(0x1b4));if(!existsSync(_0x5c3a30))return null;try{const _0x1b4f98=JSON['parse'](readFileSync(_0x5c3a30,_0xf6f9ac(0x183)));return _0x1b4f98[_0xf6f9ac(0x1c6)]??{};}catch{return null;}}function detectPackageManager(_0x52a1f9){const _0x155add=a175_0x5617d9;if(existsSync(resolve(_0x52a1f9,_0x155add(0x1ba)))||existsSync(resolve(_0x52a1f9,'bun.lock')))return _0x155add(0x19f);if(existsSync(resolve(_0x52a1f9,'pnpm-lock.yaml')))return _0x155add(0x1a0);if(existsSync(resolve(_0x52a1f9,_0x155add(0x19d))))return'yarn';return _0x155add(0x1a8);}async function versionCheck(_0x3ca0ad){const _0xd577ed=a175_0x5617d9,_0x4c81db=await checkCliVersion();(_0x4c81db['needsUpgrade']||_0x4c81db[_0xd577ed(0x1ac)])&&(printCliUpgradeWarning(_0x4c81db),assertCliVersionSupported(_0x4c81db));const _0x28dc79=await checkSdkVersion(_0x3ca0ad);if(_0x28dc79[_0xd577ed(0x190)])printSdkUpgradeWarning(_0x28dc79);}function spawnScript(_0x38a2cd,_0x216f7,_0x4b4b39,_0x5d0abb){return new Promise((_0x19429e,_0x25d7aa)=>{const _0xac3a42=a175_0x5cae,_0x307ad4=[_0xac3a42(0x1b6),_0x216f7,..._0x4b4b39],_0x26d320=spawn(_0x38a2cd,_0x307ad4,{'cwd':_0x5d0abb,'stdio':_0xac3a42(0x1b2),'shell':!![],'env':{...process.env,'PATH':''+join(_0x5d0abb,'node_modules',_0xac3a42(0x1aa))+delimiter+process.env.PATH}});_0x26d320['on']('close',_0x525591=>{const _0x3b26f1=_0xac3a42;if(_0x525591===0x0||_0x525591===null)_0x19429e();else _0x25d7aa(new Error(_0x38a2cd+_0x3b26f1(0x1a3)+_0x216f7+_0x3b26f1(0x1b5)+_0x525591));}),_0x26d320['on'](_0xac3a42(0x19a),_0x25d7aa);});}function spawnViteBuildWatch(_0x83f4f2){return new Promise((_0x2e082d,_0x1249df)=>{const _0x22ae18=a175_0x5cae,_0x31ffa5=spawn('vite',[_0x22ae18(0x1b8),_0x22ae18(0x1a9)],{'cwd':_0x83f4f2,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x83f4f2,_0x22ae18(0x1c3),'.bin')+delimiter+process.env.PATH}});_0x31ffa5['on']('close',_0x3120b9=>{const _0x19c1f6=_0x22ae18;if(_0x3120b9===0x0||_0x3120b9===null)_0x2e082d();else _0x1249df(new Error(_0x19c1f6(0x184)+_0x3120b9));}),_0x31ffa5['on'](_0x22ae18(0x19a),_0x1249df);});}function spawnVitePreview(_0x49a6e3){return new Promise((_0xb554b9,_0x1f0eaf)=>{const _0x396084=a175_0x5cae,_0x1b7c6c=spawn(_0x396084(0x185),['preview'],{'cwd':_0x49a6e3,'stdio':_0x396084(0x1b2),'shell':!![],'env':{...process.env,'PATH':''+join(_0x49a6e3,_0x396084(0x1c3),_0x396084(0x1aa))+delimiter+process.env.PATH}});_0x1b7c6c['on'](_0x396084(0x18b),_0x57794c=>{const _0x460628=_0x396084;if(_0x57794c===0x0||_0x57794c===null)_0xb554b9();else _0x1f0eaf(new Error(_0x460628(0x194)+_0x57794c));}),_0x1b7c6c['on'](_0x396084(0x19a),_0x1f0eaf);});}const runFlags=[{'name':a175_0x5617d9(0x1c0),'type':a175_0x5617d9(0x19b),'description':a175_0x5617d9(0x1ae),'default':![]}];export const runDefinition={'service':a175_0x5617d9(0x1b6),'command':a175_0x5617d9(0x1b6),'description':a175_0x5617d9(0x1b9),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a175_0x5617d9(0x1c2),'description':a175_0x5617d9(0x1a2),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x3a53c5=a175_0x5617d9,_0x375a64=[];return _0x375a64[_0x3a53c5(0x196)](_0x3a53c5(0x186)),_0x375a64[_0x3a53c5(0x196)]('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20start'),_0x375a64[_0x3a53c5(0x196)](_0x3a53c5(0x197)+CLI_BIN_NAME+_0x3a53c5(0x18a)),_0x375a64[_0x3a53c5(0x196)](_0x3a53c5(0x197)+CLI_BIN_NAME+_0x3a53c5(0x1c7)),_0x375a64[_0x3a53c5(0x196)](_0x3a53c5(0x197)+CLI_BIN_NAME+_0x3a53c5(0x191)),_0x375a64[_0x3a53c5(0x1b3)]('\x0a');},async 'execute'(_0x28a4e5){const _0x56fbd6=a175_0x5617d9,_0x4ef46e=process['cwd'](),_0x107994=_0x28a4e5[_0x56fbd6(0x1a1)][0x0],_0x2464ca=_0x28a4e5[_0x56fbd6(0x1a1)][_0x56fbd6(0x1a6)](0x1),_0x1ee2e5=readPackageScripts(_0x4ef46e);if(!_0x1ee2e5)throw CliErrors['validation'](_0x56fbd6(0x1af));if(!_0x107994){const _0x37d010=Object[_0x56fbd6(0x1ad)](_0x1ee2e5);if(_0x37d010[_0x56fbd6(0x195)]===0x0)console[_0x56fbd6(0x1a4)](_0x56fbd6(0x1a7));else{console[_0x56fbd6(0x1a4)](_0x56fbd6(0x1c5));for(const _0x1469ba of _0x37d010){console[_0x56fbd6(0x1a4)](_0x56fbd6(0x197)+_0x1469ba);}console[_0x56fbd6(0x1a4)](_0x56fbd6(0x1bd)+CLI_BIN_NAME+_0x56fbd6(0x19c));}return{'ok':!![]};}if(!_0x1ee2e5[_0x107994])throw CliErrors[_0x56fbd6(0x193)](_0x56fbd6(0x1bc)+_0x107994+_0x56fbd6(0x1bb),_0x56fbd6(0x198)+(Object[_0x56fbd6(0x1ad)](_0x1ee2e5)[_0x56fbd6(0x1b3)](',\x20')||_0x56fbd6(0x187)));const _0x4acdb7=detectPackageManager(_0x4ef46e);VERSION_CHECK_SCRIPTS[_0x56fbd6(0x199)](_0x107994)&&await versionCheck(_0x4ef46e);if(_0x107994===_0x56fbd6(0x18e)&&_0x28a4e5[_0x56fbd6(0x19e)](_0x56fbd6(0x1c0)))return await Promise[_0x56fbd6(0x189)]([spawnViteBuildWatch(_0x4ef46e),spawnVitePreview(_0x4ef46e)]),{'ok':!![]};return await spawnScript(_0x4acdb7,_0x107994,_0x2464ca,_0x4ef46e),{'ok':!![]};}};
@@ -1 +1 @@
1
- const a169_0x589942=a169_0x43bf;(function(_0x382882,_0xf6ca83){const _0x1fb58a=a169_0x43bf,_0x4ec9c2=_0x382882();while(!![]){try{const _0x2508e3=-parseInt(_0x1fb58a(0x113))/0x1+parseInt(_0x1fb58a(0x114))/0x2*(-parseInt(_0x1fb58a(0x10e))/0x3)+-parseInt(_0x1fb58a(0x10f))/0x4+-parseInt(_0x1fb58a(0x111))/0x5+-parseInt(_0x1fb58a(0x10d))/0x6+parseInt(_0x1fb58a(0x10a))/0x7*(parseInt(_0x1fb58a(0x112))/0x8)+parseInt(_0x1fb58a(0x10b))/0x9;if(_0x2508e3===_0xf6ca83)break;else _0x4ec9c2['push'](_0x4ec9c2['shift']());}catch(_0x19f06c){_0x4ec9c2['push'](_0x4ec9c2['shift']());}}}(a169_0x4643,0x1df36));import{buildSchemaPayload}from'../framework/schema-export.js';function a169_0x43bf(_0x44e27d,_0x47eb03){_0x44e27d=_0x44e27d-0x10a;const _0x464378=a169_0x4643();let _0x43bf23=_0x464378[_0x44e27d];return _0x43bf23;}async function execute(_0x4b6086){const _0x5bc040=await buildSchemaPayload();return{'ok':!![],'data':_0x5bc040};}export const schemaDefinition={'service':a169_0x589942(0x115),'command':a169_0x589942(0x10c),'description':a169_0x589942(0x116),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a169_0x589942(0x110),'flags':[],'execute':execute};function a169_0x4643(){const _0x496303=['schema','Export\x20machine-readable\x20command\x20schema\x20(JSON)','682087AyAtIQ','5091462qFXpIg','export','999390bkhMJJ','24UzZYQu','492696BQxFDk','json','1065560EEGfqQ','8IgdLdH','16638xFSZuZ','5248GgEotP'];a169_0x4643=function(){return _0x496303;};return a169_0x4643();}
1
+ const a176_0x50b5cc=a176_0x2301;function a176_0x2301(_0x1b5161,_0x46db69){_0x1b5161=_0x1b5161-0x1ee;const _0x1489d8=a176_0x1489();let _0x23018d=_0x1489d8[_0x1b5161];return _0x23018d;}(function(_0x3e4cde,_0x4c2782){const _0x225e8f=a176_0x2301,_0x452d08=_0x3e4cde();while(!![]){try{const _0xf73bfd=parseInt(_0x225e8f(0x1fb))/0x1+-parseInt(_0x225e8f(0x1f9))/0x2+parseInt(_0x225e8f(0x1ef))/0x3*(-parseInt(_0x225e8f(0x1f1))/0x4)+parseInt(_0x225e8f(0x1f3))/0x5+-parseInt(_0x225e8f(0x1f5))/0x6*(-parseInt(_0x225e8f(0x1f2))/0x7)+-parseInt(_0x225e8f(0x1ee))/0x8+-parseInt(_0x225e8f(0x1f0))/0x9*(parseInt(_0x225e8f(0x1fa))/0xa);if(_0xf73bfd===_0x4c2782)break;else _0x452d08['push'](_0x452d08['shift']());}catch(_0x14880a){_0x452d08['push'](_0x452d08['shift']());}}}(a176_0x1489,0xc0d2a));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x589247){const _0x1d1559=await buildSchemaPayload();return{'ok':!![],'data':_0x1d1559};}function a176_0x1489(){const _0x594a85=['11864272ahIJfj','125049WqMtRo','64413iVyjLf','4WqPieU','168nYyRGv','5340395YdYptA','read','320184XjZNac','schema','Export\x20machine-readable\x20command\x20schema\x20(JSON)','json','265968Ncbuat','1220UrcKZZ','971842mRvaag'];a176_0x1489=function(){return _0x594a85;};return a176_0x1489();}export const schemaDefinition={'service':a176_0x50b5cc(0x1f6),'command':'export','description':a176_0x50b5cc(0x1f7),'risk':a176_0x50b5cc(0x1f4),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a176_0x50b5cc(0x1f8),'flags':[],'execute':execute};
@@ -1 +1 @@
1
- const a170_0x5d6a56=a170_0x27a3;(function(_0x4af347,_0x3160cf){const _0x4e26f7=a170_0x27a3,_0x3a0885=_0x4af347();while(!![]){try{const _0x463c51=-parseInt(_0x4e26f7(0x1a5))/0x1*(parseInt(_0x4e26f7(0x1a7))/0x2)+parseInt(_0x4e26f7(0x1ba))/0x3*(-parseInt(_0x4e26f7(0x1a4))/0x4)+-parseInt(_0x4e26f7(0x1ab))/0x5*(-parseInt(_0x4e26f7(0x19a))/0x6)+parseInt(_0x4e26f7(0x19d))/0x7+-parseInt(_0x4e26f7(0x1bf))/0x8+parseInt(_0x4e26f7(0x19f))/0x9+parseInt(_0x4e26f7(0x1b6))/0xa*(parseInt(_0x4e26f7(0x1b4))/0xb);if(_0x463c51===_0x3160cf)break;else _0x3a0885['push'](_0x3a0885['shift']());}catch(_0x20738b){_0x3a0885['push'](_0x3a0885['shift']());}}}(a170_0x3dea,0xe7774));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';function a170_0x3dea(){const _0x291113=['126271IQqRYx','dbId\x20必须为正整数','16FFfMLT','sql','isInteger','POST','5wMzOnt','lastSync','Target\x20database\x20ID','name','join','string','trim','length','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','3239731NPESKN','db-id','100CzllfX','适合带动态标签的\x20MyBatis\x20XML\x20SQL','description','map','432354eiYvzf','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','stringify','sqlRootDir','isFinite','13702048sUjtlD','SELECT\x201\x20AS\x20id;','__manual__','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','utf8','catch','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','mybatisXml','create','sqls','Invalid\x20database\x20selection\x20payload:\x20','dbId\x20不能为空','请选择目标数据库:','high-risk-write','Created\x20SQL\x20query\x20','File\x20already\x20exists:\x20','sqlName','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','/smartapi/custom/saveUserCustomSql','<server-generated-sqlCode>','请输入目标数据库\x20dbId:','dbName','dbId','mode','请输入\x20SQL\x20名称:','flag','new','nonInteractive','appCode','validation','sqlRoot','toISOString','sqlCode','普通\x20SQL(sql)','2194926SEUDCU','SQL\x20query\x20display\x20name','SQL\x20名称不能为空','2433242CXunIr','str','2705463iDYKDH','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','flagMissing','number','MyBatis\x20XML(mybatisXml)','8AIuTqL'];a170_0x3dea=function(){return _0x291113;};return a170_0x3dea();}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(_0x32fccc){const _0x4c5e0a=a170_0x27a3;if(_0x32fccc===_0x4c5e0a(0x1c7))return[_0x4c5e0a(0x189),'\x20\x20SELECT\x201\x20AS\x20id','</select>',''][_0x4c5e0a(0x1af)]('\x0a');return[_0x4c5e0a(0x1c0),''][_0x4c5e0a(0x1af)]('\x0a');}export const sqlCreate={'service':a170_0x5d6a56(0x1a8),'command':a170_0x5d6a56(0x1c8),'description':a170_0x5d6a56(0x1a0),'risk':a170_0x5d6a56(0x185),'flags':[{'name':a170_0x5d6a56(0x1ae),'type':a170_0x5d6a56(0x1b0),'description':a170_0x5d6a56(0x19b)},{'name':'db-id','type':a170_0x5d6a56(0x1a2),'description':a170_0x5d6a56(0x1ad)},{'name':a170_0x5d6a56(0x18f),'type':a170_0x5d6a56(0x1b0),'enum':[a170_0x5d6a56(0x1a8),'mybatisXml'],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x4ea50a){const _0x1f34f6=a170_0x5d6a56;if(!_0x4ea50a['nonInteractive'])return;if(!_0x4ea50a['str'](_0x1f34f6(0x1ae))[_0x1f34f6(0x1b1)]())throw CliErrors['flagMissing'](_0x1f34f6(0x1ae),_0x1f34f6(0x1b3));const _0x1514c9=resolveProvidedDbId(_0x4ea50a);if(typeof _0x1514c9!=='number'||!Number[_0x1f34f6(0x1be)](_0x1514c9)||_0x1514c9<=0x0)throw CliErrors[_0x1f34f6(0x1a1)]('db-id',_0x1f34f6(0x1bb));if(!_0x4ea50a['str']('mode')[_0x1f34f6(0x1b1)]())throw CliErrors[_0x1f34f6(0x1a1)](_0x1f34f6(0x18f),_0x1f34f6(0x1c6));},async 'dryRun'(_0x2b8794){const _0x19d9d9=a170_0x5d6a56,_0x2ac67b=loadSqlProjectConfig(_0x2b8794[_0x19d9d9(0x194)]),{sqlName:_0xa3a9ce,dbId:_0x5122e5,dbName:_0x59f184,mode:_0x2f3b84}=await resolveSqlNewInputs(_0x2b8794),_0x119517=buildSqlRelativePath(_0x19d9d9(0x18b),_0xa3a9ce,_0x59f184,_0x2f3b84,_0x5122e5),_0x1eb419=_0x2ac67b['sqlRootDir']+'/'+_0x119517;return{'method':_0x19d9d9(0x1aa),'url':_0x19d9d9(0x18a),'body':{'appCode':_0x2b8794[_0x19d9d9(0x194)],'sqlName':_0xa3a9ce,'dbId':_0x5122e5,'mode':_0x2f3b84,'localPath':_0x1eb419},'description':_0x19d9d9(0x1c5)+_0x2ac67b[_0x19d9d9(0x1bd)]};},async 'execute'(_0x4688a9){const _0x5adcb1=a170_0x5d6a56,_0x14e4b0=loadSqlProjectConfig(_0x4688a9['appCode']),{sqlName:_0x5329ba,dbId:_0x53562c,dbName:_0x5ef57f,mode:_0x27f148}=await resolveSqlNewInputs(_0x4688a9),_0x863f98=generateSqlTemplate(_0x27f148),_0xfb3fb7=await createSqlQuery({'appCode':_0x4688a9[_0x5adcb1(0x194)],'sqlName':_0x5329ba,'dbId':_0x53562c,'sqlContent':_0x863f98}),_0x405d0c=ensureRemoteSqlContent(_0xfb3fb7),_0x4c4843=_0x5ef57f||await getDbName(_0x4688a9[_0x5adcb1(0x194)],_0x53562c)['catch'](()=>undefined),_0x25f4b2=buildSqlRelativePath(_0xfb3fb7[_0x5adcb1(0x198)],_0xfb3fb7[_0x5adcb1(0x188)],_0x4c4843,_0x27f148,_0x53562c),_0x19d320=_0x14e4b0[_0x5adcb1(0x1bd)]+'/'+_0x25f4b2,_0x3482b3=buildLocalSqlFileContent({'sqlCode':_0xfb3fb7[_0x5adcb1(0x198)],'sqlName':_0xfb3fb7['sqlName'],'dbId':_0xfb3fb7[_0x5adcb1(0x18e)]},_0x405d0c,{'dbName':_0x4c4843,'mode':_0x27f148,'syncedAt':new Date()[_0x5adcb1(0x197)](),'description':_0xfb3fb7[_0x5adcb1(0x1b8)]});if(await fileExists(_0x19d320))throw CliErrors[_0x5adcb1(0x195)](_0x5adcb1(0x187)+_0x19d320);await ensureParentDirectory(_0x19d320),await writeFile(_0x19d320,_0x3482b3,_0x5adcb1(0x1c3));const _0x1e4536=await readSqlLockFile(_0x14e4b0['lockFilePath']),{lockData:_0xeee8f5,appLock:_0x46988e}=ensureSqlLockScope(_0x1e4536??createEmptySqlLock(),_0x14e4b0[_0x5adcb1(0x194)],_0x14e4b0[_0x5adcb1(0x196)],_0x5adcb1(0x192));return _0x46988e[_0x5adcb1(0x181)][_0xfb3fb7[_0x5adcb1(0x198)]]={...buildSqlLockEntry(_0xfb3fb7,_0x405d0c,computeSqlContentHash(_0x3482b3),{'dbName':_0x4c4843}),'path':_0x25f4b2,'mode':_0x27f148},_0x46988e[_0x5adcb1(0x1ac)]=new Date()[_0x5adcb1(0x197)](),await writeSqlLockFile(_0x14e4b0['lockFilePath'],_0xeee8f5),{'ok':!![],'data':{'id':_0xfb3fb7['id'],'sqlCode':_0xfb3fb7[_0x5adcb1(0x198)],'sqlName':_0xfb3fb7[_0x5adcb1(0x188)],'dbId':_0xfb3fb7[_0x5adcb1(0x18e)],'path':_0x19d320,'mode':_0x27f148},'message':_0x5adcb1(0x186)+_0xfb3fb7[_0x5adcb1(0x198)]};}};function a170_0x27a3(_0x46b5ad,_0x3d36a2){_0x46b5ad=_0x46b5ad-0x181;const _0x3dea3c=a170_0x3dea();let _0x27a381=_0x3dea3c[_0x46b5ad];return _0x27a381;}async function resolveSqlNewInputs(_0x14c9e4){const _0x34cf2e=await resolveSqlNameInput(_0x14c9e4),{dbId:_0xeac400,dbName:_0x1d92b3}=await resolveDbSelection(_0x14c9e4),_0x259fdc=await resolveSqlModeInput(_0x14c9e4);return{'sqlName':_0x34cf2e,'dbId':_0xeac400,'dbName':_0x1d92b3,'mode':_0x259fdc};}async function resolveSqlNameInput(_0x4815dd){const _0x81e4ff=a170_0x5d6a56,_0x78fc53=_0x4815dd[_0x81e4ff(0x19e)]('name')[_0x81e4ff(0x1b1)]();if(_0x78fc53)return _0x78fc53;if(_0x4815dd[_0x81e4ff(0x193)])throw CliErrors[_0x81e4ff(0x1a1)]('name',_0x81e4ff(0x1b3));return(await input({'message':_0x81e4ff(0x190),'validate':_0x160ffb=>_0x160ffb['trim']()?!![]:_0x81e4ff(0x19c)}))['trim']();}async function resolveDbSelection(_0x1be62c){const _0x3ded1b=a170_0x5d6a56,_0x4f8646=resolveProvidedDbId(_0x1be62c);if(typeof _0x4f8646==='number'&&Number['isFinite'](_0x4f8646)&&_0x4f8646>0x0)return{'dbId':_0x4f8646,'dbName':await getDbName(_0x1be62c[_0x3ded1b(0x194)],_0x4f8646)[_0x3ded1b(0x1c4)](()=>undefined)};if(_0x1be62c[_0x3ded1b(0x193)])throw CliErrors[_0x3ded1b(0x1a1)]('db-id',_0x3ded1b(0x1bb));const _0x3c6428=await listDatabases(_0x1be62c[_0x3ded1b(0x194)])[_0x3ded1b(0x1c4)](()=>[]);if(_0x3c6428[_0x3ded1b(0x1b2)]===0x1)return{'dbId':_0x3c6428[0x0][_0x3ded1b(0x18e)],'dbName':_0x3c6428[0x0][_0x3ded1b(0x18d)]};if(_0x3c6428[_0x3ded1b(0x1b2)]>0x1){const _0x5e2c32=await select({'message':_0x3ded1b(0x184),'choices':[..._0x3c6428[_0x3ded1b(0x1b9)](_0xc8496c=>({'name':_0xc8496c[_0x3ded1b(0x18d)]+'\x20('+_0xc8496c[_0x3ded1b(0x18e)]+')','value':serializeDbSelection(_0xc8496c)})),{'name':'✎\x20手动输入\x20dbId','value':_0x3ded1b(0x1c1)}]});if(_0x5e2c32!==_0x3ded1b(0x1c1))return deserializeDbSelection(_0x5e2c32);}const _0x32b2e7=await input({'message':_0x3ded1b(0x18c),'validate':_0x1fc008=>{const _0x49a0ec=_0x3ded1b,_0x36fcd2=_0x1fc008[_0x49a0ec(0x1b1)]();if(!_0x36fcd2)return _0x49a0ec(0x183);const _0x2a4161=Number(_0x36fcd2);if(!Number[_0x49a0ec(0x1a9)](_0x2a4161)||_0x2a4161<=0x0)return _0x49a0ec(0x1a6);return!![];}});return{'dbId':Number(_0x32b2e7['trim']())};}async function resolveSqlModeInput(_0x23791a){const _0x136495=a170_0x5d6a56,_0x58eaf4=_0x23791a[_0x136495(0x19e)]('mode')[_0x136495(0x1b1)]();if(_0x58eaf4==='sql'||_0x58eaf4===_0x136495(0x1c7))return _0x58eaf4;if(_0x23791a[_0x136495(0x193)])throw CliErrors[_0x136495(0x1a1)](_0x136495(0x18f),_0x136495(0x1c6));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x136495(0x199),'value':_0x136495(0x1a8),'description':_0x136495(0x1c2)},{'name':_0x136495(0x1a3),'value':_0x136495(0x1c7),'description':_0x136495(0x1b7)}]});}function serializeDbSelection(_0x55474a){const _0x467437=a170_0x5d6a56;return JSON[_0x467437(0x1bc)]({'dbId':_0x55474a['dbId'],'dbName':_0x55474a[_0x467437(0x18d)]});}function deserializeDbSelection(_0x387f18){const _0x5da544=a170_0x5d6a56;try{const _0x276229=JSON['parse'](_0x387f18);if(typeof _0x276229['dbId']===_0x5da544(0x1a2)&&Number['isFinite'](_0x276229[_0x5da544(0x18e)]))return{'dbId':_0x276229[_0x5da544(0x18e)],'dbName':_0x276229[_0x5da544(0x18d)]};}catch{}throw CliErrors[_0x5da544(0x195)](_0x5da544(0x182)+_0x387f18);}function resolveProvidedDbId(_0x49dfb8){const _0x89f3c8=a170_0x5d6a56,_0x53b4a3=_0x49dfb8[_0x89f3c8(0x191)](_0x89f3c8(0x1b5));if(typeof _0x53b4a3==='number'&&Number[_0x89f3c8(0x1be)](_0x53b4a3))return _0x53b4a3;return undefined;}
1
+ const a177_0x29b9fc=a177_0x1efd;(function(_0x3f988a,_0x129c78){const _0x17b313=a177_0x1efd,_0x348ae5=_0x3f988a();while(!![]){try{const _0x855f8d=parseInt(_0x17b313(0xfa))/0x1*(parseInt(_0x17b313(0xe3))/0x2)+parseInt(_0x17b313(0x11d))/0x3*(parseInt(_0x17b313(0xe4))/0x4)+parseInt(_0x17b313(0xee))/0x5+-parseInt(_0x17b313(0xe6))/0x6+-parseInt(_0x17b313(0xec))/0x7+-parseInt(_0x17b313(0x104))/0x8+-parseInt(_0x17b313(0x10d))/0x9*(-parseInt(_0x17b313(0xfe))/0xa);if(_0x855f8d===_0x129c78)break;else _0x348ae5['push'](_0x348ae5['shift']());}catch(_0x542d0e){_0x348ae5['push'](_0x348ae5['shift']());}}}(a177_0xb593,0xdbd50));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';function a177_0xb593(){const _0x22b83d=['lastSync','sqlCode','number','toISOString','validation','isInteger','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','create','appCode','dbName','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','sql','nonInteractive','/smartapi/custom/saveUserCustomSql','3ZegmpU','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','Created\x20SQL\x20query\x20','trim','length','20jcLiNQ','2885752tqQvRN','sqlRoot','8966742sidyuv','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','catch','请输入\x20SQL\x20名称:','flagMissing','dbId\x20不能为空','11464467hSRKQk','sqlName','3304550QNSzqK','lockFilePath','str','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','name','mode','File\x20already\x20exists:\x20','sqls','mybatisXml','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','isFinite','SQL\x20名称不能为空','31114RvhcjE','Invalid\x20database\x20selection\x20payload:\x20','db-id','dbId','10850HYWslV','Target\x20database\x20ID','join','适合带动态标签的\x20MyBatis\x20XML\x20SQL','SQL\x20query\x20display\x20name','flag','9505224ZGIpjU','sqlRootDir','__manual__','<server-generated-sqlCode>','parse','utf8','MyBatis\x20XML(mybatisXml)','Local\x20SQL\x20file\x20mode','请选择目标数据库:','29259kELiPh','</select>'];a177_0xb593=function(){return _0x22b83d;};return a177_0xb593();}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(_0x2d5420){const _0x8b085c=a177_0x1efd;if(_0x2d5420==='mybatisXml')return[_0x8b085c(0xf1),'\x20\x20SELECT\x201\x20AS\x20id',_0x8b085c(0x10e),''][_0x8b085c(0x100)]('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x8b085c(0x100)]('\x0a');}export const sqlCreate={'service':a177_0x29b9fc(0x11a),'command':a177_0x29b9fc(0x116),'description':a177_0x29b9fc(0xf7),'risk':'high-risk-write','flags':[{'name':a177_0x29b9fc(0xf2),'type':'string','description':a177_0x29b9fc(0x102)},{'name':a177_0x29b9fc(0xfc),'type':a177_0x29b9fc(0x111),'description':a177_0x29b9fc(0xff)},{'name':a177_0x29b9fc(0xf3),'type':'string','enum':[a177_0x29b9fc(0x11a),a177_0x29b9fc(0xf6)],'description':a177_0x29b9fc(0x10b)}],async 'validate'(_0x2339ab){const _0x221311=a177_0x29b9fc;if(!_0x2339ab[_0x221311(0x11b)])return;if(!_0x2339ab['str'](_0x221311(0xf2))[_0x221311(0xe1)]())throw CliErrors[_0x221311(0xea)](_0x221311(0xf2),_0x221311(0x11e));const _0x287614=resolveProvidedDbId(_0x2339ab);if(typeof _0x287614!==_0x221311(0x111)||!Number[_0x221311(0xf8)](_0x287614)||_0x287614<=0x0)throw CliErrors['flagMissing']('db-id',_0x221311(0xe7));if(!_0x2339ab[_0x221311(0xf0)]('mode')['trim']())throw CliErrors[_0x221311(0xea)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x39a193){const _0x4f9f17=a177_0x29b9fc,_0x178122=loadSqlProjectConfig(_0x39a193['appCode']),{sqlName:_0x2eefeb,dbId:_0x4a4019,dbName:_0x2fdc3a,mode:_0x396ebe}=await resolveSqlNewInputs(_0x39a193),_0xd15e9a=buildSqlRelativePath(_0x4f9f17(0x107),_0x2eefeb,_0x2fdc3a,_0x396ebe,_0x4a4019),_0x3430d2=_0x178122[_0x4f9f17(0x105)]+'/'+_0xd15e9a;return{'method':'POST','url':_0x4f9f17(0x11c),'body':{'appCode':_0x39a193[_0x4f9f17(0x117)],'sqlName':_0x2eefeb,'dbId':_0x4a4019,'mode':_0x396ebe,'localPath':_0x3430d2},'description':_0x4f9f17(0x119)+_0x178122[_0x4f9f17(0x105)]};},async 'execute'(_0xaf8054){const _0x2809b4=a177_0x29b9fc,_0x34f561=loadSqlProjectConfig(_0xaf8054[_0x2809b4(0x117)]),{sqlName:_0x4a1ea1,dbId:_0x577895,dbName:_0x224bb7,mode:_0x5b88ba}=await resolveSqlNewInputs(_0xaf8054),_0x24f741=generateSqlTemplate(_0x5b88ba),_0x41e15c=await createSqlQuery({'appCode':_0xaf8054[_0x2809b4(0x117)],'sqlName':_0x4a1ea1,'dbId':_0x577895,'sqlContent':_0x24f741}),_0x14ecb5=ensureRemoteSqlContent(_0x41e15c),_0x4b485b=_0x224bb7||await getDbName(_0xaf8054[_0x2809b4(0x117)],_0x577895)[_0x2809b4(0xe8)](()=>undefined),_0x3cbcfd=buildSqlRelativePath(_0x41e15c[_0x2809b4(0x110)],_0x41e15c[_0x2809b4(0xed)],_0x4b485b,_0x5b88ba,_0x577895),_0x2f9969=_0x34f561[_0x2809b4(0x105)]+'/'+_0x3cbcfd,_0x39ce95=buildLocalSqlFileContent({'sqlCode':_0x41e15c[_0x2809b4(0x110)],'sqlName':_0x41e15c[_0x2809b4(0xed)],'dbId':_0x41e15c[_0x2809b4(0xfd)]},_0x14ecb5,{'dbName':_0x4b485b,'mode':_0x5b88ba,'syncedAt':new Date()[_0x2809b4(0x112)](),'description':_0x41e15c['description']});if(await fileExists(_0x2f9969))throw CliErrors[_0x2809b4(0x113)](_0x2809b4(0xf4)+_0x2f9969);await ensureParentDirectory(_0x2f9969),await writeFile(_0x2f9969,_0x39ce95,_0x2809b4(0x109));const _0x19836a=await readSqlLockFile(_0x34f561['lockFilePath']),{lockData:_0x56294e,appLock:_0x26e5b6}=ensureSqlLockScope(_0x19836a??createEmptySqlLock(),_0x34f561[_0x2809b4(0x117)],_0x34f561[_0x2809b4(0xe5)],'new');return _0x26e5b6[_0x2809b4(0xf5)][_0x41e15c[_0x2809b4(0x110)]]={...buildSqlLockEntry(_0x41e15c,_0x14ecb5,computeSqlContentHash(_0x39ce95),{'dbName':_0x4b485b}),'path':_0x3cbcfd,'mode':_0x5b88ba},_0x26e5b6[_0x2809b4(0x10f)]=new Date()[_0x2809b4(0x112)](),await writeSqlLockFile(_0x34f561[_0x2809b4(0xef)],_0x56294e),{'ok':!![],'data':{'id':_0x41e15c['id'],'sqlCode':_0x41e15c[_0x2809b4(0x110)],'sqlName':_0x41e15c[_0x2809b4(0xed)],'dbId':_0x41e15c[_0x2809b4(0xfd)],'path':_0x2f9969,'mode':_0x5b88ba},'message':_0x2809b4(0xe0)+_0x41e15c[_0x2809b4(0x110)]};}};async function resolveSqlNewInputs(_0x49bac3){const _0x495af1=await resolveSqlNameInput(_0x49bac3),{dbId:_0x434df3,dbName:_0x212937}=await resolveDbSelection(_0x49bac3),_0x454c80=await resolveSqlModeInput(_0x49bac3);return{'sqlName':_0x495af1,'dbId':_0x434df3,'dbName':_0x212937,'mode':_0x454c80};}function a177_0x1efd(_0xa919e8,_0x528a56){_0xa919e8=_0xa919e8-0xe0;const _0xb59340=a177_0xb593();let _0x1efdba=_0xb59340[_0xa919e8];return _0x1efdba;}async function resolveSqlNameInput(_0x1632d7){const _0x5f54c5=a177_0x29b9fc,_0x9d6284=_0x1632d7[_0x5f54c5(0xf0)]('name')[_0x5f54c5(0xe1)]();if(_0x9d6284)return _0x9d6284;if(_0x1632d7['nonInteractive'])throw CliErrors[_0x5f54c5(0xea)]('name',_0x5f54c5(0x11e));return(await input({'message':_0x5f54c5(0xe9),'validate':_0x7bd9bc=>_0x7bd9bc['trim']()?!![]:_0x5f54c5(0xf9)}))[_0x5f54c5(0xe1)]();}async function resolveDbSelection(_0x59bdc3){const _0x3cebc5=a177_0x29b9fc,_0x2e638e=resolveProvidedDbId(_0x59bdc3);if(typeof _0x2e638e==='number'&&Number['isFinite'](_0x2e638e)&&_0x2e638e>0x0)return{'dbId':_0x2e638e,'dbName':await getDbName(_0x59bdc3[_0x3cebc5(0x117)],_0x2e638e)[_0x3cebc5(0xe8)](()=>undefined)};if(_0x59bdc3['nonInteractive'])throw CliErrors[_0x3cebc5(0xea)](_0x3cebc5(0xfc),_0x3cebc5(0xe7));const _0x3de581=await listDatabases(_0x59bdc3[_0x3cebc5(0x117)])['catch'](()=>[]);if(_0x3de581[_0x3cebc5(0xe2)]===0x1)return{'dbId':_0x3de581[0x0][_0x3cebc5(0xfd)],'dbName':_0x3de581[0x0]['dbName']};if(_0x3de581[_0x3cebc5(0xe2)]>0x1){const _0x67a454=await select({'message':_0x3cebc5(0x10c),'choices':[..._0x3de581['map'](_0x53024d=>({'name':_0x53024d['dbName']+'\x20('+_0x53024d[_0x3cebc5(0xfd)]+')','value':serializeDbSelection(_0x53024d)})),{'name':'✎\x20手动输入\x20dbId','value':_0x3cebc5(0x106)}]});if(_0x67a454!==_0x3cebc5(0x106))return deserializeDbSelection(_0x67a454);}const _0x106e1e=await input({'message':'请输入目标数据库\x20dbId:','validate':_0x2d3ca1=>{const _0x279822=_0x3cebc5,_0x44c4fd=_0x2d3ca1[_0x279822(0xe1)]();if(!_0x44c4fd)return _0x279822(0xeb);const _0x10298e=Number(_0x44c4fd);if(!Number[_0x279822(0x114)](_0x10298e)||_0x10298e<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x106e1e[_0x3cebc5(0xe1)]())};}async function resolveSqlModeInput(_0x4a3f16){const _0xeda318=a177_0x29b9fc,_0xfde804=_0x4a3f16[_0xeda318(0xf0)](_0xeda318(0xf3))[_0xeda318(0xe1)]();if(_0xfde804===_0xeda318(0x11a)||_0xfde804===_0xeda318(0xf6))return _0xfde804;if(_0x4a3f16[_0xeda318(0x11b)])throw CliErrors[_0xeda318(0xea)](_0xeda318(0xf3),_0xeda318(0x115));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':'普通\x20SQL(sql)','value':_0xeda318(0x11a),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0xeda318(0x10a),'value':_0xeda318(0xf6),'description':_0xeda318(0x101)}]});}function serializeDbSelection(_0x3123bf){const _0x4b60f7=a177_0x29b9fc;return JSON['stringify']({'dbId':_0x3123bf[_0x4b60f7(0xfd)],'dbName':_0x3123bf[_0x4b60f7(0x118)]});}function deserializeDbSelection(_0x2691af){const _0x5d0030=a177_0x29b9fc;try{const _0x326e1e=JSON[_0x5d0030(0x108)](_0x2691af);if(typeof _0x326e1e[_0x5d0030(0xfd)]==='number'&&Number[_0x5d0030(0xf8)](_0x326e1e[_0x5d0030(0xfd)]))return{'dbId':_0x326e1e['dbId'],'dbName':_0x326e1e['dbName']};}catch{}throw CliErrors['validation'](_0x5d0030(0xfb)+_0x2691af);}function resolveProvidedDbId(_0x69e85a){const _0x1f0705=a177_0x29b9fc,_0x4a3184=_0x69e85a[_0x1f0705(0x103)](_0x1f0705(0xfc));if(typeof _0x4a3184===_0x1f0705(0x111)&&Number['isFinite'](_0x4a3184))return _0x4a3184;return undefined;}
@@ -1 +1 @@
1
- const a171_0x2d4f34=a171_0x4cab;(function(_0x1d1d9c,_0x25ad0a){const _0xbfd4fa=a171_0x4cab,_0x38e70e=_0x1d1d9c();while(!![]){try{const _0x16e9fc=parseInt(_0xbfd4fa(0x1ee))/0x1+parseInt(_0xbfd4fa(0x1e7))/0x2*(-parseInt(_0xbfd4fa(0x205))/0x3)+parseInt(_0xbfd4fa(0x1f2))/0x4+-parseInt(_0xbfd4fa(0x1eb))/0x5*(parseInt(_0xbfd4fa(0x1e6))/0x6)+-parseInt(_0xbfd4fa(0x201))/0x7*(parseInt(_0xbfd4fa(0x200))/0x8)+parseInt(_0xbfd4fa(0x1e5))/0x9+parseInt(_0xbfd4fa(0x1f8))/0xa*(parseInt(_0xbfd4fa(0x1ea))/0xb);if(_0x16e9fc===_0x25ad0a)break;else _0x38e70e['push'](_0x38e70e['shift']());}catch(_0x436589){_0x38e70e['push'](_0x38e70e['shift']());}}}(a171_0x4a45,0x2ea27));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a171_0x4cab(_0x91a938,_0x3b62f8){_0x91a938=_0x91a938-0x1df;const _0x4a4564=a171_0x4a45();let _0x4cab24=_0x4a4564[_0x91a938];return _0x4cab24;}import{CliErrors}from'../../errors.js';function a171_0x4a45(){const _0x556f2c=['SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','Deleted\x20','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','481323NzrWnl','trashedTo','appCode','\x20(local\x20file\x20moved\x20to\x20trash)','fromEntries','sqlcode','high-risk-write','remoteId','1195875TxaOio','1095162zaQJfx','4tuYZLo','length','delete','66EfqebW','10sKzkwP','lockFilePath','POST','255331GfxiEb','sqlRoot','entries','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','994888nySGxI','replace','SQL\x20lock\x20file\x20not\x20found.','validation','startsWith','toISOString','773560cCJqkH','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','sqlRootDir','str','lastSync','sqls','projectRoot','trashDir','8MCWJcy','1568791CzKooM'];a171_0x4a45=function(){return _0x556f2c;};return a171_0x4a45();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':a171_0x2d4f34(0x1e9),'description':a171_0x2d4f34(0x204),'risk':a171_0x2d4f34(0x1e3),'flags':[SQLCODE_FLAG],async 'validate'(_0x3f7605){const _0x2a4868=a171_0x2d4f34,_0x51bdb2=loadSqlProjectConfig(_0x3f7605[_0x2a4868(0x1df)]),_0x37900a=await readSqlLockFile(_0x51bdb2['lockFilePath']);if(!_0x37900a)throw CliErrors[_0x2a4868(0x1f5)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x2878e0){const _0x53dddf=a171_0x2d4f34,_0x96af6f=loadSqlProjectConfig(_0x2878e0['appCode']),_0x452bf0=await readSqlLockFile(_0x96af6f[_0x53dddf(0x1ec)]);if(!_0x452bf0)throw CliErrors[_0x53dddf(0x1f5)](_0x53dddf(0x202));const {appLock:_0xe0e268}=ensureSqlLockScope(_0x452bf0,_0x2878e0[_0x53dddf(0x1df)],_0x96af6f['sqlRoot'],_0x53dddf(0x1e9)),_0x1b137a=_0x2878e0[_0x53dddf(0x1fb)](_0x53dddf(0x1e2)),_0xa289e4=_0xe0e268[_0x53dddf(0x1fd)][_0x1b137a];if(!_0xa289e4)throw CliErrors[_0x53dddf(0x1f5)](_0x53dddf(0x1f9)+_0x1b137a+'\x22.');return{'method':_0x53dddf(0x1ed),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x1b137a,'id':_0xa289e4[_0x53dddf(0x1e4)],'localPath':resolveLocalSqlFilePath(_0x96af6f,_0x1b137a,_0xa289e4)},'description':'Would\x20delete\x20SQL\x20'+_0x1b137a+_0x53dddf(0x1f1)+_0x96af6f[_0x53dddf(0x1ff)]};},async 'execute'(_0x39a072){const _0x5856dd=a171_0x2d4f34,_0xc180f3=loadSqlProjectConfig(_0x39a072['appCode']),_0x12bba7=await readSqlLockFile(_0xc180f3[_0x5856dd(0x1ec)]);if(!_0x12bba7)throw CliErrors[_0x5856dd(0x1f5)](_0x5856dd(0x1f4));const {lockData:_0x25d8e1,appLock:_0xeef71c}=ensureSqlLockScope(_0x12bba7,_0x39a072['appCode'],_0xc180f3[_0x5856dd(0x1ef)],_0x5856dd(0x1e9)),_0x432168=_0x39a072[_0x5856dd(0x1fb)](_0x5856dd(0x1e2)),_0x23308a=_0xeef71c[_0x5856dd(0x1fd)][_0x432168];if(!_0x23308a)throw CliErrors[_0x5856dd(0x1f5)](_0x5856dd(0x1f9)+_0x432168+'\x22.');await deleteSqlQuery({'id':_0x23308a[_0x5856dd(0x1e4)],'sqlCode':_0x432168}),_0xeef71c[_0x5856dd(0x1fd)]=Object[_0x5856dd(0x1e1)](Object[_0x5856dd(0x1f0)](_0xeef71c[_0x5856dd(0x1fd)])['filter'](([_0x1c9125])=>_0x1c9125!==_0x432168)),_0xeef71c[_0x5856dd(0x1fc)]=new Date()[_0x5856dd(0x1f7)](),await writeSqlLockFile(_0xc180f3[_0x5856dd(0x1ec)],_0x25d8e1);const _0x2fb2b8=resolveLocalSqlFilePath(_0xc180f3,_0x432168,_0x23308a);let _0x414bcd;await fileExists(_0x2fb2b8)&&(_0x414bcd=await moveToTrash(_0xc180f3[_0x5856dd(0x1fe)],_0xc180f3[_0x5856dd(0x1ff)],_0x2fb2b8),await cleanupEmptyDirectories(dirname(_0x2fb2b8),_0xc180f3[_0x5856dd(0x1fa)]));const _0x19d539={'deleted':_0x432168,'remoteId':_0x23308a[_0x5856dd(0x1e4)]};if(_0x414bcd)_0x19d539[_0x5856dd(0x206)]=_0x414bcd;return{'ok':!![],'data':_0x19d539,'message':_0x5856dd(0x203)+_0x432168+(_0x414bcd?_0x5856dd(0x1e0):'')};}};async function moveToTrash(_0x1b6498,_0x10eede,_0x583d06){const _0x4cf258=a171_0x2d4f34,_0x59aeb8=new Date()[_0x4cf258(0x1f7)]()[_0x4cf258(0x1f3)](/[:.]/g,'-'),_0x115e6f=relative(_0x1b6498,_0x583d06),_0x1553c9=join(_0x10eede,_0x59aeb8,_0x115e6f);return await mkdir(dirname(_0x1553c9),{'recursive':!![]}),await rename(_0x583d06,_0x1553c9),_0x1553c9;}async function cleanupEmptyDirectories(_0x56382c,_0x161d94){const _0x7ec99=a171_0x2d4f34;let _0x59224f=resolve(_0x56382c);const _0x3d59e9=resolve(_0x161d94);while(_0x59224f[_0x7ec99(0x1f6)](''+_0x3d59e9+sep)||_0x59224f===_0x3d59e9){if(_0x59224f===_0x3d59e9)return;try{const _0x298611=await readdir(_0x59224f);if(_0x298611[_0x7ec99(0x1e8)]>0x0)return;await rmdir(_0x59224f);}catch{return;}_0x59224f=dirname(_0x59224f);}}
1
+ const a178_0x1df11f=a178_0x4c3f;function a178_0x427a(){const _0x1203c0=['POST','high-risk-write','SQL\x20lock\x20file\x20not\x20found.','str','replace','1891040NPZidr','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','5McPSBq','lastSync','fromEntries','validation','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','projectRoot','delete','1872717SvRBUp','remoteId','Would\x20delete\x20SQL\x20','5262363HdDRRo','10TdtEQu','sqls','appCode','91JSVXnO','\x20(local\x20file\x20moved\x20to\x20trash)','252730iCEcTv','1626216Fbfxlp','lockFilePath','filter','/smartapi/custom/deleteUserCustomSql','70352xrbknt','3516348rnMvKc','sqlRootDir','startsWith','trashDir','trashedTo','Deleted\x20','toISOString'];a178_0x427a=function(){return _0x1203c0;};return a178_0x427a();}(function(_0x3d510c,_0x176b66){const _0x7a8ade=a178_0x4c3f,_0x175bec=_0x3d510c();while(!![]){try{const _0xefd776=parseInt(_0x7a8ade(0x19c))/0x1+parseInt(_0x7a8ade(0x18a))/0x2+-parseInt(_0x7a8ade(0x193))/0x3+-parseInt(_0x7a8ade(0x17e))/0x4*(parseInt(_0x7a8ade(0x18c))/0x5)+parseInt(_0x7a8ade(0x19d))/0x6+parseInt(_0x7a8ade(0x19a))/0x7*(parseInt(_0x7a8ade(0x17d))/0x8)+parseInt(_0x7a8ade(0x196))/0x9*(parseInt(_0x7a8ade(0x197))/0xa);if(_0xefd776===_0x176b66)break;else _0x175bec['push'](_0x175bec['shift']());}catch(_0x1ba0ba){_0x175bec['push'](_0x175bec['shift']());}}}(a178_0x427a,0xa259d));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';function a178_0x4c3f(_0x3b6ee0,_0x3afd1c){_0x3b6ee0=_0x3b6ee0-0x17a;const _0x427ad8=a178_0x427a();let _0x4c3f77=_0x427ad8[_0x3b6ee0];return _0x4c3f77;}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':'sql','command':a178_0x1df11f(0x192),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a178_0x1df11f(0x186),'flags':[SQLCODE_FLAG],async 'validate'(_0x23d69b){const _0x178903=a178_0x1df11f,_0x3903fb=loadSqlProjectConfig(_0x23d69b[_0x178903(0x199)]),_0x15dbe1=await readSqlLockFile(_0x3903fb[_0x178903(0x17a)]);if(!_0x15dbe1)throw CliErrors['validation'](_0x178903(0x190));},async 'dryRun'(_0x37f2cd){const _0x2ee747=a178_0x1df11f,_0xbedcc1=loadSqlProjectConfig(_0x37f2cd[_0x2ee747(0x199)]),_0x5b2550=await readSqlLockFile(_0xbedcc1[_0x2ee747(0x17a)]);if(!_0x5b2550)throw CliErrors[_0x2ee747(0x18f)](_0x2ee747(0x190));const {appLock:_0x44d32e}=ensureSqlLockScope(_0x5b2550,_0x37f2cd[_0x2ee747(0x199)],_0xbedcc1['sqlRoot'],'delete'),_0x40687f=_0x37f2cd[_0x2ee747(0x188)]('sqlcode'),_0x1ce2ce=_0x44d32e['sqls'][_0x40687f];if(!_0x1ce2ce)throw CliErrors[_0x2ee747(0x18f)](_0x2ee747(0x18b)+_0x40687f+'\x22.');return{'method':_0x2ee747(0x185),'url':_0x2ee747(0x17c),'body':{'sqlCode':_0x40687f,'id':_0x1ce2ce[_0x2ee747(0x194)],'localPath':resolveLocalSqlFilePath(_0xbedcc1,_0x40687f,_0x1ce2ce)},'description':_0x2ee747(0x195)+_0x40687f+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0xbedcc1[_0x2ee747(0x181)]};},async 'execute'(_0x22f596){const _0x5f3c9f=a178_0x1df11f,_0x39f8ed=loadSqlProjectConfig(_0x22f596[_0x5f3c9f(0x199)]),_0x471598=await readSqlLockFile(_0x39f8ed['lockFilePath']);if(!_0x471598)throw CliErrors[_0x5f3c9f(0x18f)](_0x5f3c9f(0x187));const {lockData:_0x207259,appLock:_0x549e06}=ensureSqlLockScope(_0x471598,_0x22f596[_0x5f3c9f(0x199)],_0x39f8ed['sqlRoot'],_0x5f3c9f(0x192)),_0x359b24=_0x22f596[_0x5f3c9f(0x188)]('sqlcode'),_0x2e5429=_0x549e06['sqls'][_0x359b24];if(!_0x2e5429)throw CliErrors[_0x5f3c9f(0x18f)](_0x5f3c9f(0x18b)+_0x359b24+'\x22.');await deleteSqlQuery({'id':_0x2e5429[_0x5f3c9f(0x194)],'sqlCode':_0x359b24}),_0x549e06[_0x5f3c9f(0x198)]=Object[_0x5f3c9f(0x18e)](Object['entries'](_0x549e06[_0x5f3c9f(0x198)])[_0x5f3c9f(0x17b)](([_0x6eaa4e])=>_0x6eaa4e!==_0x359b24)),_0x549e06[_0x5f3c9f(0x18d)]=new Date()[_0x5f3c9f(0x184)](),await writeSqlLockFile(_0x39f8ed[_0x5f3c9f(0x17a)],_0x207259);const _0x4d473c=resolveLocalSqlFilePath(_0x39f8ed,_0x359b24,_0x2e5429);let _0x4e6817;await fileExists(_0x4d473c)&&(_0x4e6817=await moveToTrash(_0x39f8ed[_0x5f3c9f(0x191)],_0x39f8ed[_0x5f3c9f(0x181)],_0x4d473c),await cleanupEmptyDirectories(dirname(_0x4d473c),_0x39f8ed[_0x5f3c9f(0x17f)]));const _0x19f5eb={'deleted':_0x359b24,'remoteId':_0x2e5429['remoteId']};if(_0x4e6817)_0x19f5eb[_0x5f3c9f(0x182)]=_0x4e6817;return{'ok':!![],'data':_0x19f5eb,'message':_0x5f3c9f(0x183)+_0x359b24+(_0x4e6817?_0x5f3c9f(0x19b):'')};}};async function moveToTrash(_0x718c06,_0x4ffe94,_0x176650){const _0x809bc6=a178_0x1df11f,_0x577b49=new Date()[_0x809bc6(0x184)]()[_0x809bc6(0x189)](/[:.]/g,'-'),_0x5e875c=relative(_0x718c06,_0x176650),_0x5a4279=join(_0x4ffe94,_0x577b49,_0x5e875c);return await mkdir(dirname(_0x5a4279),{'recursive':!![]}),await rename(_0x176650,_0x5a4279),_0x5a4279;}async function cleanupEmptyDirectories(_0x78b0f2,_0x2acf9d){const _0x18016a=a178_0x1df11f;let _0x5e14c5=resolve(_0x78b0f2);const _0x18367c=resolve(_0x2acf9d);while(_0x5e14c5[_0x18016a(0x180)](''+_0x18367c+sep)||_0x5e14c5===_0x18367c){if(_0x5e14c5===_0x18367c)return;try{const _0x11fd47=await readdir(_0x5e14c5);if(_0x11fd47['length']>0x0)return;await rmdir(_0x5e14c5);}catch{return;}_0x5e14c5=dirname(_0x5e14c5);}}
@@ -1 +1 @@
1
- const a172_0xa3d0f0=a172_0x1232;(function(_0x137b60,_0x3b9586){const _0xf2c6=a172_0x1232,_0x4e9cfd=_0x137b60();while(!![]){try{const _0x2619b0=parseInt(_0xf2c6(0x143))/0x1*(-parseInt(_0xf2c6(0x13b))/0x2)+-parseInt(_0xf2c6(0x147))/0x3*(-parseInt(_0xf2c6(0x139))/0x4)+-parseInt(_0xf2c6(0x138))/0x5*(-parseInt(_0xf2c6(0x13a))/0x6)+-parseInt(_0xf2c6(0x14a))/0x7*(-parseInt(_0xf2c6(0x133))/0x8)+parseInt(_0xf2c6(0x148))/0x9+parseInt(_0xf2c6(0x141))/0xa*(parseInt(_0xf2c6(0x134))/0xb)+-parseInt(_0xf2c6(0x136))/0xc;if(_0x2619b0===_0x3b9586)break;else _0x4e9cfd['push'](_0x4e9cfd['shift']());}catch(_0x95a84d){_0x4e9cfd['push'](_0x4e9cfd['shift']());}}}(a172_0x1108,0xc2306));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a172_0x1232(_0x99dc98,_0x1ebcc3){_0x99dc98=_0x99dc98-0x132;const _0x1108a7=a172_0x1108();let _0x1232fb=_0x1108a7[_0x99dc98];return _0x1232fb;}function a172_0x1108(){const _0xa7cc3c=['sqlcode','read','Return\x20full\x20raw\x20SQL\x20query\x20object','3FUoFaE','13231602TNrVlK','sql','5789BBHEDM','sqlCode','str','appCode','2536XuBRKM','44SETIHi','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','21715404BCtrTp','bool','1137155MlAIbK','2900396tFMbzE','18PWQYJG','14DlBQfd','dbId','sqlContent','verbose','sqlName','boolean','2301920JFVHyO','detail','207926AWYBJZ'];a172_0x1108=function(){return _0xa7cc3c;};return a172_0x1108();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a172_0xa3d0f0(0x149),'command':a172_0xa3d0f0(0x142),'description':a172_0xa3d0f0(0x135),'risk':a172_0xa3d0f0(0x145),'flags':[SQLCODE_FLAG,{'name':a172_0xa3d0f0(0x13e),'type':a172_0xa3d0f0(0x140),'description':a172_0xa3d0f0(0x146)}],async 'execute'(_0x5c9b2a){const _0x2d6311=a172_0xa3d0f0,_0x3c95b8=await getSqlQueryInfo(_0x5c9b2a[_0x2d6311(0x132)],_0x5c9b2a[_0x2d6311(0x14c)](_0x2d6311(0x144))),_0x18ece0=_0x5c9b2a[_0x2d6311(0x137)](_0x2d6311(0x13e));if(_0x18ece0)return{'ok':!![],'data':_0x3c95b8};const _0x2edb7c=_0x3c95b8['dbId']?await getDbName(_0x5c9b2a[_0x2d6311(0x132)],_0x3c95b8[_0x2d6311(0x13c)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x3c95b8[_0x2d6311(0x14b)],'sqlName':_0x3c95b8[_0x2d6311(0x13f)],'db':_0x2edb7c?_0x2edb7c+'\x20('+_0x3c95b8[_0x2d6311(0x13c)]+')':_0x3c95b8['dbId']??'','description':_0x3c95b8['description']??'','sqlContent':_0x3c95b8[_0x2d6311(0x13d)]??''}};}};
1
+ function a179_0x4bd2(){const _0x4c219a=['1009464LOyUIO','description','7HjTlSD','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','1764OAvxcB','detail','44vitEFx','907470dJeNdE','appCode','verbose','7928HVJKnm','78IAxBAA','420504XroEFy','str','1590570HmsJkO','sqlcode','sqlCode','Return\x20full\x20raw\x20SQL\x20query\x20object','dbId','10rTeuKn','82398chXVlO','18746UgDusD'];a179_0x4bd2=function(){return _0x4c219a;};return a179_0x4bd2();}const a179_0x4921c3=a179_0x4d21;(function(_0x36561f,_0x4b7900){const _0x1cab27=a179_0x4d21,_0x1f5169=_0x36561f();while(!![]){try{const _0x5b38aa=-parseInt(_0x1cab27(0x1aa))/0x1+-parseInt(_0x1cab27(0x1ab))/0x2*(parseInt(_0x1cab27(0x1b7))/0x3)+parseInt(_0x1cab27(0x1b8))/0x4*(parseInt(_0x1cab27(0x1a9))/0x5)+-parseInt(_0x1cab27(0x1a4))/0x6*(parseInt(_0x1cab27(0x1ae))/0x7)+-parseInt(_0x1cab27(0x1b6))/0x8*(-parseInt(_0x1cab27(0x1b0))/0x9)+parseInt(_0x1cab27(0x1b3))/0xa+-parseInt(_0x1cab27(0x1b2))/0xb*(-parseInt(_0x1cab27(0x1ac))/0xc);if(_0x5b38aa===_0x4b7900)break;else _0x1f5169['push'](_0x1f5169['shift']());}catch(_0x4728d2){_0x1f5169['push'](_0x1f5169['shift']());}}}(a179_0x4bd2,0x3ab94));import{getSqlQueryInfo}from'../../core/api-client.js';function a179_0x4d21(_0x30cd8f,_0x529176){_0x30cd8f=_0x30cd8f-0x1a3;const _0x4bd2ed=a179_0x4bd2();let _0x4d213b=_0x4bd2ed[_0x30cd8f];return _0x4d213b;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':a179_0x4921c3(0x1b1),'description':a179_0x4921c3(0x1af),'risk':'read','flags':[SQLCODE_FLAG,{'name':a179_0x4921c3(0x1b5),'type':'boolean','description':a179_0x4921c3(0x1a7)}],async 'execute'(_0x205510){const _0x14c593=a179_0x4921c3,_0x1e9b07=await getSqlQueryInfo(_0x205510['appCode'],_0x205510[_0x14c593(0x1a3)](_0x14c593(0x1a5))),_0xd156=_0x205510['bool']('verbose');if(_0xd156)return{'ok':!![],'data':_0x1e9b07};const _0x13d5df=_0x1e9b07['dbId']?await getDbName(_0x205510[_0x14c593(0x1b4)],_0x1e9b07[_0x14c593(0x1a8)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x1e9b07[_0x14c593(0x1a6)],'sqlName':_0x1e9b07['sqlName'],'db':_0x13d5df?_0x13d5df+'\x20('+_0x1e9b07[_0x14c593(0x1a8)]+')':_0x1e9b07['dbId']??'','description':_0x1e9b07[_0x14c593(0x1ad)]??'','sqlContent':_0x1e9b07['sqlContent']??''}};}};
@@ -1 +1 @@
1
- const a173_0x2f5841=a173_0x1ec8;(function(_0x1ba0f9,_0x200ad5){const _0x5762a7=a173_0x1ec8,_0x3997d6=_0x1ba0f9();while(!![]){try{const _0x4039ed=-parseInt(_0x5762a7(0xe1))/0x1+-parseInt(_0x5762a7(0xe7))/0x2+-parseInt(_0x5762a7(0xdc))/0x3+parseInt(_0x5762a7(0xe9))/0x4*(parseInt(_0x5762a7(0xe5))/0x5)+-parseInt(_0x5762a7(0xe4))/0x6+-parseInt(_0x5762a7(0xda))/0x7*(parseInt(_0x5762a7(0xf1))/0x8)+parseInt(_0x5762a7(0xea))/0x9;if(_0x4039ed===_0x200ad5)break;else _0x3997d6['push'](_0x3997d6['shift']());}catch(_0x4dc7aa){_0x3997d6['push'](_0x3997d6['shift']());}}}(a173_0x1cb7,0x5d5a1));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a173_0x1ec8(_0xe5aa7e,_0x237499){_0xe5aa7e=_0xe5aa7e-0xda;const _0x1cb74f=a173_0x1cb7();let _0x1ec8da=_0x1cb74f[_0xe5aa7e];return _0x1ec8da;}function a173_0x1cb7(){const _0x321311=['3294120CfsIxr','10VxzZPk','execResult','454264ASAdTf','length','247716kFtLIi','19585593DoNerz','str','now','execError','read','sql','\x20row(s)\x20in\x20','8yPBSyR','2016511cMrwWl','execSuccess','802653MVdcZG','appCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','isArray','exec','585890QonjkT','sqlcode','params'];a173_0x1cb7=function(){return _0x321311;};return a173_0x1cb7();}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a173_0x2f5841(0xef),'command':a173_0x2f5841(0xe0),'description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a173_0x2f5841(0xee),'flags':[SQLCODE_FLAG,{'name':a173_0x2f5841(0xe3),'type':'string','description':a173_0x2f5841(0xde)}],async 'execute'(_0x10c379){const _0x2a4d0e=a173_0x2f5841,_0x558a37=parseJsonParams(_0x10c379[_0x2a4d0e(0xeb)](_0x2a4d0e(0xe3))),_0x16561d=Date[_0x2a4d0e(0xec)](),_0x50f7a3=await executeSql(_0x10c379[_0x2a4d0e(0xdd)],_0x10c379[_0x2a4d0e(0xeb)](_0x2a4d0e(0xe2)),_0x558a37),_0x3f2ad3=Date['now']()-_0x16561d,_0x2d5c88=_0x50f7a3?.[_0x2a4d0e(0xe6)]??_0x50f7a3,_0x51afed=_0x50f7a3?.[_0x2a4d0e(0xdb)]??!![];if(!_0x51afed)return{'ok':![],'data':{'error':_0x50f7a3?.[_0x2a4d0e(0xed)]||'SQL\x20execution\x20failed','elapsed':_0x3f2ad3},'message':'SQL\x20execution\x20failed'};const _0x3a1b63=Array[_0x2a4d0e(0xdf)](_0x2d5c88)?_0x2d5c88:[];return{'ok':!![],'data':{'rows':_0x3a1b63,'rowCount':_0x3a1b63[_0x2a4d0e(0xe8)],'elapsed':_0x3f2ad3},'message':'Returned\x20'+_0x3a1b63['length']+_0x2a4d0e(0xf0)+_0x3f2ad3+'ms'};}};
1
+ function a180_0x2b71(_0x17fb82,_0x53da71){_0x17fb82=_0x17fb82-0x119;const _0x274464=a180_0x2744();let _0x2b71d9=_0x274464[_0x17fb82];return _0x2b71d9;}const a180_0x5aa633=a180_0x2b71;(function(_0x4e7b51,_0x39a9fc){const _0x118766=a180_0x2b71,_0x1605b2=_0x4e7b51();while(!![]){try{const _0x3fd7c0=parseInt(_0x118766(0x11d))/0x1+-parseInt(_0x118766(0x11e))/0x2*(parseInt(_0x118766(0x12b))/0x3)+parseInt(_0x118766(0x128))/0x4*(-parseInt(_0x118766(0x11f))/0x5)+-parseInt(_0x118766(0x132))/0x6*(-parseInt(_0x118766(0x119))/0x7)+-parseInt(_0x118766(0x12e))/0x8+parseInt(_0x118766(0x121))/0x9*(parseInt(_0x118766(0x130))/0xa)+-parseInt(_0x118766(0x11c))/0xb*(-parseInt(_0x118766(0x12a))/0xc);if(_0x3fd7c0===_0x39a9fc)break;else _0x1605b2['push'](_0x1605b2['shift']());}catch(_0x35f736){_0x1605b2['push'](_0x1605b2['shift']());}}}(a180_0x2744,0x8dcc1));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':'sql','command':a180_0x5aa633(0x12f),'description':a180_0x5aa633(0x12c),'risk':a180_0x5aa633(0x11b),'flags':[SQLCODE_FLAG,{'name':a180_0x5aa633(0x120),'type':a180_0x5aa633(0x131),'description':a180_0x5aa633(0x125)}],async 'execute'(_0x1efbc1){const _0x466445=a180_0x5aa633,_0x3f8c51=parseJsonParams(_0x1efbc1[_0x466445(0x126)](_0x466445(0x120))),_0x19ce99=Date['now'](),_0xd4f1bb=await executeSql(_0x1efbc1['appCode'],_0x1efbc1[_0x466445(0x126)]('sqlcode'),_0x3f8c51),_0x42b1d3=Date[_0x466445(0x12d)]()-_0x19ce99,_0x10355c=_0xd4f1bb?.[_0x466445(0x123)]??_0xd4f1bb,_0x4e3b4e=_0xd4f1bb?.[_0x466445(0x127)]??!![];if(!_0x4e3b4e)return{'ok':![],'data':{'error':_0xd4f1bb?.[_0x466445(0x129)]||_0x466445(0x11a),'elapsed':_0x42b1d3},'message':'SQL\x20execution\x20failed'};const _0x1c90fd=Array[_0x466445(0x122)](_0x10355c)?_0x10355c:[];return{'ok':!![],'data':{'rows':_0x1c90fd,'rowCount':_0x1c90fd[_0x466445(0x124)],'elapsed':_0x42b1d3},'message':'Returned\x20'+_0x1c90fd['length']+'\x20row(s)\x20in\x20'+_0x42b1d3+'ms'};}};function a180_0x2744(){const _0x5ae0ce=['2paNVtd','3180msiYcz','params','9stCZcc','isArray','execResult','length','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','str','execSuccess','5588dGpsoe','execError','12924UAIlAY','405837eyFOCw','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','now','7411184iCyBLO','exec','3834170fvtSoW','string','3896154bUzMdv','7moBVba','SQL\x20execution\x20failed','read','12793HdtNnw','245643uVHLJv'];a180_0x2744=function(){return _0x5ae0ce;};return a180_0x2744();}
@@ -1 +1 @@
1
- (function(_0x38c1b1,_0x440b9f){const _0x4bcdab=a174_0x3219,_0x3a2acb=_0x38c1b1();while(!![]){try{const _0x23b36a=parseInt(_0x4bcdab(0x1df))/0x1*(parseInt(_0x4bcdab(0x1d7))/0x2)+-parseInt(_0x4bcdab(0x1dc))/0x3*(parseInt(_0x4bcdab(0x1db))/0x4)+parseInt(_0x4bcdab(0x1dd))/0x5*(parseInt(_0x4bcdab(0x1de))/0x6)+-parseInt(_0x4bcdab(0x1e2))/0x7*(-parseInt(_0x4bcdab(0x1e1))/0x8)+-parseInt(_0x4bcdab(0x1d9))/0x9+-parseInt(_0x4bcdab(0x1d8))/0xa*(-parseInt(_0x4bcdab(0x1da))/0xb)+-parseInt(_0x4bcdab(0x1e0))/0xc;if(_0x23b36a===_0x440b9f)break;else _0x3a2acb['push'](_0x3a2acb['shift']());}catch(_0x18e960){_0x3a2acb['push'](_0x3a2acb['shift']());}}}(a174_0x5953,0x58332));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';function a174_0x5953(){const _0x1dffd8=['4dLlLbX','392556oCtFNn','185wOaDWK','35844qLDNRP','117dyQNJd','11875080EQNMME','16dVETFE','2081947xyTzdm','5010hzzeyf','39820bLGRtR','766683FxTABt','1265CQAvqd'];a174_0x5953=function(){return _0x1dffd8;};return a174_0x5953();}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a174_0x3219(_0xda8ba5,_0x3d184b){_0xda8ba5=_0xda8ba5-0x1d7;const _0x59532b=a174_0x5953();let _0x321952=_0x59532b[_0xda8ba5];return _0x321952;}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x356864,_0x36b210){const _0x24397c=a181_0x5c2c,_0x2334b1=_0x356864();while(!![]){try{const _0x3a98d5=-parseInt(_0x24397c(0x89))/0x1*(-parseInt(_0x24397c(0x8d))/0x2)+-parseInt(_0x24397c(0x8f))/0x3*(-parseInt(_0x24397c(0x8c))/0x4)+parseInt(_0x24397c(0x8b))/0x5*(-parseInt(_0x24397c(0x90))/0x6)+parseInt(_0x24397c(0x91))/0x7*(-parseInt(_0x24397c(0x94))/0x8)+parseInt(_0x24397c(0x95))/0x9*(parseInt(_0x24397c(0x8e))/0xa)+parseInt(_0x24397c(0x8a))/0xb+-parseInt(_0x24397c(0x93))/0xc*(parseInt(_0x24397c(0x92))/0xd);if(_0x3a98d5===_0x36b210)break;else _0x2334b1['push'](_0x2334b1['shift']());}catch(_0x283441){_0x2334b1['push'](_0x2334b1['shift']());}}}(a181_0x5970,0xd8479));function a181_0x5970(){const _0x265431=['612828zhGnEI','9txzukl','18925819gtMXry','1930ZuXZoD','4134908nIoPKX','291602IgHEGj','90hLQTet','3jmhJzM','10794zcJvVE','418663kXIEXp','416CHEjEM','668700OSuoug','176EGnUlJ'];a181_0x5970=function(){return _0x265431;};return a181_0x5970();}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';function a181_0x5c2c(_0x5b1e32,_0x3cb90d){_0x5b1e32=_0x5b1e32-0x89;const _0x5970b8=a181_0x5970();let _0x5c2cb5=_0x5970b8[_0x5b1e32];return _0x5c2cb5;}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
- function a175_0x2a29(_0x6f5b72,_0x48c74a){_0x6f5b72=_0x6f5b72-0xcc;const _0x1c0555=a175_0x1c05();let _0x2a299e=_0x1c0555[_0x6f5b72];return _0x2a299e;}const a175_0x16cad4=a175_0x2a29;function a175_0x1c05(){const _0x4b6852=['bool','568572upzjiw','Found\x20','10CgHkZk','128IhkDMs','No\x20custom\x20SQL\x20queries\x20found.','sqlcode','463836hvzKSD','boolean','all','328372yxbCfy','number','pagesize','sqlCode','string','length','22054Uodfxa','sql','appCode','Filter\x20by\x20SQL\x20name','Page\x20number','7zZPHYG','dbId','map','page','verbose','read','num','27693AqRTsO','77046KYlGNy','paging','Page\x20size','\x20SQL\x20queries\x20(total:\x20','str','1AiifaP','name','348705yDYCfB','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','description'];a175_0x1c05=function(){return _0x4b6852;};return a175_0x1c05();}(function(_0x543209,_0x2e6d8e){const _0x46c576=a175_0x2a29,_0x308129=_0x543209();while(!![]){try{const _0x402560=parseInt(_0x46c576(0xf1))/0x1*(parseInt(_0x46c576(0xdf))/0x2)+parseInt(_0x46c576(0xec))/0x3+parseInt(_0x46c576(0xd0))/0x4+-parseInt(_0x46c576(0xcc))/0x5+parseInt(_0x46c576(0xd6))/0x6*(-parseInt(_0x46c576(0xe4))/0x7)+-parseInt(_0x46c576(0xd3))/0x8*(-parseInt(_0x46c576(0xeb))/0x9)+-parseInt(_0x46c576(0xd2))/0xa*(-parseInt(_0x46c576(0xd9))/0xb);if(_0x402560===_0x2e6d8e)break;else _0x308129['push'](_0x308129['shift']());}catch(_0x2b9ec2){_0x308129['push'](_0x308129['shift']());}}}(a175_0x1c05,0x1b129));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a175_0x16cad4(0xe0),'command':'list','description':'List\x20custom\x20SQL\x20queries','risk':a175_0x16cad4(0xe9),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a175_0x16cad4(0xf2),'type':a175_0x16cad4(0xdd),'description':a175_0x16cad4(0xe2)},{'name':a175_0x16cad4(0xe7),'type':'number','description':a175_0x16cad4(0xe3),'default':0x1},{'name':a175_0x16cad4(0xdb),'type':a175_0x16cad4(0xda),'description':a175_0x16cad4(0xee)},{'name':a175_0x16cad4(0xe8),'type':a175_0x16cad4(0xd7),'description':a175_0x16cad4(0xcd)}],async 'execute'(_0x1aecf7){const _0x3ac529=a175_0x16cad4,_0x56039a=await listSqlQueries(_0x1aecf7['appCode'],{'sqlCode':_0x1aecf7[_0x3ac529(0xf0)](_0x3ac529(0xd5))||undefined,'sqlName':_0x1aecf7['str']('name')||undefined,'currentPage':_0x1aecf7[_0x3ac529(0xea)](_0x3ac529(0xe7)),'pageSize':_0x1aecf7['num'](_0x3ac529(0xdb),0x32)}),_0x6baa56=_0x1aecf7[_0x3ac529(0xcf)](_0x3ac529(0xe8)),_0x3c9768=_0x56039a['tableData']??[],_0x2c95e6=_0x56039a[_0x3ac529(0xed)]?.['totalCount']??_0x3c9768[_0x3ac529(0xde)];let _0x51f608;return _0x6baa56?_0x51f608=_0x3c9768:_0x51f608=await Promise[_0x3ac529(0xd8)](_0x3c9768[_0x3ac529(0xe6)](async _0x5e1064=>{const _0x2547cf=_0x3ac529;let _0x37789c;try{_0x37789c=_0x5e1064['dbId']?await getDbName(_0x1aecf7[_0x2547cf(0xe1)],_0x5e1064['dbId']):undefined;}catch{}return{'sqlCode':_0x5e1064[_0x2547cf(0xdc)],'sqlName':_0x5e1064['sqlName'],'description':_0x5e1064[_0x2547cf(0xce)]??'','db':_0x37789c?_0x37789c+'\x20('+_0x5e1064[_0x2547cf(0xe5)]+')':_0x5e1064['dbId']??''};})),{'ok':!![],'data':_0x51f608,'message':_0x3c9768['length']===0x0?_0x3ac529(0xd4):_0x3ac529(0xd1)+_0x3c9768[_0x3ac529(0xde)]+_0x3ac529(0xef)+_0x2c95e6+').'};}};
1
+ function a182_0x582b(){const _0x4c188a=['string','2341420dKWdxy','List\x20custom\x20SQL\x20queries','page','Found\x20','4146376hVImcv','name','read','number','Page\x20number','verbose','16qnnzeA','10SVzlHW','1047483NbfTTu','16705678NNhOuw','sqlCode','dbId','sqlName','\x20SQL\x20queries\x20(total:\x20','pagesize','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','appCode','all','list','map','paging','91899iHoaUK','5268sLCJPu','sql','22SsueUf','146176QEBIVB','532NuJlXG','boolean','num','length','str'];a182_0x582b=function(){return _0x4c188a;};return a182_0x582b();}function a182_0x4c3f(_0x169afa,_0x2a233b){_0x169afa=_0x169afa-0x92;const _0x582b01=a182_0x582b();let _0x4c3fd3=_0x582b01[_0x169afa];return _0x4c3fd3;}const a182_0x9b7291=a182_0x4c3f;(function(_0x272f5d,_0x194634){const _0xc24598=a182_0x4c3f,_0x21c38c=_0x272f5d();while(!![]){try{const _0x163697=parseInt(_0xc24598(0xac))/0x1+-parseInt(_0xc24598(0xab))/0x2*(-parseInt(_0xc24598(0xa8))/0x3)+-parseInt(_0xc24598(0x93))/0x4+-parseInt(_0xc24598(0xb3))/0x5+-parseInt(_0xc24598(0xa9))/0x6*(-parseInt(_0xc24598(0xad))/0x7)+parseInt(_0xc24598(0x99))/0x8*(parseInt(_0xc24598(0x9b))/0x9)+parseInt(_0xc24598(0x9a))/0xa*(parseInt(_0xc24598(0x9c))/0xb);if(_0x163697===_0x194634)break;else _0x21c38c['push'](_0x21c38c['shift']());}catch(_0x1b49df){_0x21c38c['push'](_0x21c38c['shift']());}}}(a182_0x582b,0xc272d));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a182_0x9b7291(0xaa),'command':a182_0x9b7291(0xa5),'description':a182_0x9b7291(0xb4),'risk':a182_0x9b7291(0x95),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a182_0x9b7291(0x94),'type':a182_0x9b7291(0xb2),'description':'Filter\x20by\x20SQL\x20name'},{'name':a182_0x9b7291(0xb5),'type':a182_0x9b7291(0x96),'description':a182_0x9b7291(0x97),'default':0x1},{'name':'pagesize','type':a182_0x9b7291(0x96),'description':'Page\x20size'},{'name':a182_0x9b7291(0x98),'type':a182_0x9b7291(0xae),'description':a182_0x9b7291(0xa2)}],async 'execute'(_0x82c7e9){const _0x5089b7=a182_0x9b7291,_0x19307c=await listSqlQueries(_0x82c7e9['appCode'],{'sqlCode':_0x82c7e9[_0x5089b7(0xb1)]('sqlcode')||undefined,'sqlName':_0x82c7e9['str'](_0x5089b7(0x94))||undefined,'currentPage':_0x82c7e9['num'](_0x5089b7(0xb5)),'pageSize':_0x82c7e9[_0x5089b7(0xaf)](_0x5089b7(0xa1),0x32)}),_0x45d1cd=_0x82c7e9['bool'](_0x5089b7(0x98)),_0x2ea766=_0x19307c['tableData']??[],_0xd79a7d=_0x19307c[_0x5089b7(0xa7)]?.['totalCount']??_0x2ea766['length'];let _0xd21a92;return _0x45d1cd?_0xd21a92=_0x2ea766:_0xd21a92=await Promise[_0x5089b7(0xa4)](_0x2ea766[_0x5089b7(0xa6)](async _0x3ee66a=>{const _0x134b86=_0x5089b7;let _0x5371e3;try{_0x5371e3=_0x3ee66a[_0x134b86(0x9e)]?await getDbName(_0x82c7e9[_0x134b86(0xa3)],_0x3ee66a['dbId']):undefined;}catch{}return{'sqlCode':_0x3ee66a[_0x134b86(0x9d)],'sqlName':_0x3ee66a[_0x134b86(0x9f)],'description':_0x3ee66a['description']??'','db':_0x5371e3?_0x5371e3+'\x20('+_0x3ee66a[_0x134b86(0x9e)]+')':_0x3ee66a[_0x134b86(0x9e)]??''};})),{'ok':!![],'data':_0xd21a92,'message':_0x2ea766[_0x5089b7(0xb0)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0x5089b7(0x92)+_0x2ea766['length']+_0x5089b7(0xa0)+_0xd79a7d+').'};}};
@@ -1 +1 @@
1
- const a176_0x2f54b9=a176_0x5852;(function(_0x1cde32,_0x43e159){const _0x44c50a=a176_0x5852,_0x5c9ce6=_0x1cde32();while(!![]){try{const _0x2b368f=-parseInt(_0x44c50a(0x168))/0x1+-parseInt(_0x44c50a(0x147))/0x2*(parseInt(_0x44c50a(0x165))/0x3)+-parseInt(_0x44c50a(0x174))/0x4*(-parseInt(_0x44c50a(0x167))/0x5)+-parseInt(_0x44c50a(0x173))/0x6*(-parseInt(_0x44c50a(0x171))/0x7)+-parseInt(_0x44c50a(0x14f))/0x8+-parseInt(_0x44c50a(0x153))/0x9*(-parseInt(_0x44c50a(0x157))/0xa)+parseInt(_0x44c50a(0x149))/0xb;if(_0x2b368f===_0x43e159)break;else _0x5c9ce6['push'](_0x5c9ce6['shift']());}catch(_0x37e0a8){_0x5c9ce6['push'](_0x5c9ce6['shift']());}}}(a176_0x46e0,0xda4a2));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a176_0x5852(_0x37be70,_0x596aa4){_0x37be70=_0x37be70-0x13b;const _0x46e020=a176_0x46e0();let _0x5852b7=_0x46e020[_0x37be70];return _0x5852b7;}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 a176_0x46e0(){const _0x28f5be=['split','appCode','\x20SQL\x20file(s)\x20into\x20','description','unchanged','58MyLDsB','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','8410303wsvNiT','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','POST','Force\x20pull\x20cancelled.','str','test','1277960uuTlbI','bool','No\x20remote\x20SQL\x20queries\x20matched.','mybatisXml','36XHRKsh','sqlRoot','totalCount','Filter\x20by\x20SQL\x20display\x20name','2123340ZrFWku','force','sqlContent','length','lockFilePath','sqlRootDir','toISOString','utf8','sqlcode','path','sqls','pull','paging','catch','170673DRpmcQ','apps','5ALpjHx','195527zPEMob','write','name','tableData','lastSync','dbId','sqlName','replace','string','3724GNzhQs','trimStart','11046naFmdg','1223616BWMqte','Pull\x20complete:\x20','\x20failed','push','Force\x20overwrite\x20local\x20unsynced\x20changes','sqlCode','message','cancelled','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','sql'];a176_0x46e0=function(){return _0x28f5be;};return a176_0x46e0();}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x1d82ea,_0x5a0a26){const _0x48d45a=a176_0x5852,_0x2ad502=[];let _0x237f43=0x1;while(!![]){const _0x3be9f0=await listSqlQueries(_0x1d82ea,{'currentPage':_0x237f43,'pageSize':PAGE_SIZE,'sqlCode':_0x5a0a26[_0x48d45a(0x13d)],'sqlName':_0x5a0a26[_0x48d45a(0x16e)]}),_0x170dbb=_0x3be9f0[_0x48d45a(0x16b)]??[];_0x2ad502['push'](..._0x170dbb);if(_0x170dbb['length']===0x0)break;const _0x4f98ae=_0x3be9f0[_0x48d45a(0x163)]?.[_0x48d45a(0x155)];if(_0x4f98ae!=null?_0x2ad502['length']>=_0x4f98ae:_0x170dbb[_0x48d45a(0x15a)]<PAGE_SIZE)break;_0x237f43++;}return _0x2ad502;}async function ensureSqlContent(_0x44118f){const _0x1b259a=a176_0x5852;if(_0x44118f[_0x1b259a(0x159)]!=null&&String(_0x44118f['sqlContent'])[_0x1b259a(0x15a)]>0x0)return _0x44118f;return getSqlQueryDetail(_0x44118f['sqlCode']);}export const sqlPull={'service':a176_0x2f54b9(0x141),'command':a176_0x2f54b9(0x162),'description':a176_0x2f54b9(0x148),'risk':a176_0x2f54b9(0x169),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a176_0x2f54b9(0x16a),'type':a176_0x2f54b9(0x170),'description':a176_0x2f54b9(0x156)},{'name':a176_0x2f54b9(0x158),'type':'boolean','description':a176_0x2f54b9(0x13c)}],async 'dryRun'(_0x503e2e){const _0x435655=a176_0x2f54b9,_0x1509c5=loadSqlProjectConfig(_0x503e2e[_0x435655(0x143)]),_0x2f1b13=await readSqlLockFile(_0x1509c5[_0x435655(0x15b)]),{appLock:_0x168f0b}=ensureSqlLockScope(_0x2f1b13??createEmptySqlLock(),_0x1509c5[_0x435655(0x143)],_0x1509c5['sqlRoot'],_0x435655(0x162)),_0x267e65=await fetchAllSqlQueries(_0x503e2e['appCode'],{'sqlCode':_0x503e2e['str']('sqlcode')||undefined,'sqlName':_0x503e2e[_0x435655(0x14d)]('name')||undefined}),_0x265c12=[];for(const _0x174255 of _0x267e65){const _0x27cfb4=await ensureSqlContent(_0x174255),_0x5b27e0=ensureRemoteSqlContent(_0x27cfb4),_0x24ec06=detectModeFromSql(_0x27cfb4),_0x184dbd=_0x27cfb4[_0x435655(0x16d)]?await getDbName(_0x503e2e[_0x435655(0x143)],Number(_0x27cfb4[_0x435655(0x16d)]))[_0x435655(0x164)](()=>undefined):undefined,_0x21d160=buildLocalSqlFileContent({'sqlCode':_0x27cfb4[_0x435655(0x13d)],'sqlName':_0x27cfb4['sqlName'],'dbId':_0x27cfb4['dbId']},_0x5b27e0,{'dbName':_0x184dbd,'mode':_0x24ec06,'syncedAt':new Date()[_0x435655(0x15d)](),'description':_0x27cfb4[_0x435655(0x145)]}),_0x4d012c=buildSqlLockEntry(_0x27cfb4,_0x5b27e0,'',{'dbName':_0x184dbd}),_0x2902f9=resolveLocalSqlFilePath(_0x1509c5,_0x27cfb4[_0x435655(0x13d)],_0x4d012c);let _0x4d6d73='would_pull',_0x572b56;if(await fileExists(_0x2902f9)){const _0x1daa4f=await readFile(_0x2902f9,'utf8');isEquivalentPulledSqlFile(_0x1daa4f,_0x21d160,_0x24ec06)?(_0x4d6d73='skipped',_0x572b56='unchanged'):(_0x4d6d73='conflict',_0x572b56=_0x435655(0x140));}_0x265c12[_0x435655(0x13b)]({'sqlCode':_0x27cfb4[_0x435655(0x13d)],'sqlName':_0x27cfb4[_0x435655(0x16e)],'filePath':_0x2902f9,'status':_0x4d6d73,'reason':_0x572b56});}return{'method':_0x435655(0x14b),'url':_0x435655(0x14a),'body':{'appCode':_0x503e2e[_0x435655(0x143)],'sqlCode':_0x503e2e[_0x435655(0x14d)](_0x435655(0x15f))||null,'sqlName':_0x503e2e[_0x435655(0x14d)](_0x435655(0x16a))||null,'files':_0x265c12},'description':'Would\x20pull\x20'+_0x265c12[_0x435655(0x15a)]+_0x435655(0x144)+_0x1509c5[_0x435655(0x15c)]};},async 'execute'(_0x4d928c){const _0x34443f=a176_0x2f54b9,_0x3dea2e=loadSqlProjectConfig(_0x4d928c[_0x34443f(0x143)]),_0x341232=await readSqlLockFile(_0x3dea2e[_0x34443f(0x15b)]),{lockData:_0x1c8bff,appLock:_0x5cd14e}=ensureSqlLockScope(_0x341232??createEmptySqlLock(),_0x3dea2e[_0x34443f(0x143)],_0x3dea2e[_0x34443f(0x154)],_0x34443f(0x162)),_0x1f78ea=_0x4d928c[_0x34443f(0x150)]('force'),_0x19b2eb=await fetchAllSqlQueries(_0x4d928c[_0x34443f(0x143)],{'sqlCode':_0x4d928c[_0x34443f(0x14d)](_0x34443f(0x15f))||undefined,'sqlName':_0x4d928c[_0x34443f(0x14d)](_0x34443f(0x16a))||undefined});if(_0x19b2eb[_0x34443f(0x15a)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x34443f(0x151)};const _0x290bb8=[],_0x3a0161=[];for(const _0xa7116e of _0x19b2eb){try{_0x290bb8[_0x34443f(0x13b)](await ensureSqlContent(_0xa7116e));}catch(_0xdec0e3){_0x3a0161['push']({'sqlCode':_0xa7116e[_0x34443f(0x13d)],'error':_0xdec0e3 instanceof Error?_0xdec0e3[_0x34443f(0x13e)]:String(_0xdec0e3)});}}if(_0x1f78ea&&!_0x4d928c['nonInteractive']){let _0x3185db=![];for(const _0x53acb4 of _0x290bb8){const _0x3bb733=detectModeFromSql(_0x53acb4),_0x4f5261=_0x53acb4[_0x34443f(0x16d)]?await getDbName(_0x4d928c[_0x34443f(0x143)],Number(_0x53acb4[_0x34443f(0x16d)]))[_0x34443f(0x164)](()=>undefined):undefined,_0x45ae34=buildLocalSqlFileContent({'sqlCode':_0x53acb4[_0x34443f(0x13d)],'sqlName':_0x53acb4[_0x34443f(0x16e)],'dbId':_0x53acb4['dbId']},ensureRemoteSqlContent(_0x53acb4),{'dbName':_0x4f5261,'mode':_0x3bb733,'syncedAt':new Date()[_0x34443f(0x15d)](),'description':_0x53acb4[_0x34443f(0x145)]}),_0x5ebd29=resolveLocalSqlFilePath(_0x3dea2e,_0x53acb4[_0x34443f(0x13d)],buildSqlLockEntry(_0x53acb4,ensureRemoteSqlContent(_0x53acb4),'',{'dbName':_0x4f5261}));if(await fileExists(_0x5ebd29)){const _0x5c6080=await readFile(_0x5ebd29,_0x34443f(0x15e));if(!isEquivalentPulledSqlFile(_0x5c6080,_0x45ae34,_0x3bb733)){_0x3185db=!![];break;}}}if(_0x3185db){const _0x4e8e09=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x4e8e09)throw CliErrors[_0x34443f(0x13f)](_0x34443f(0x14c));}}const _0x228273=cloneSqlLockData(_0x1c8bff),_0x2be0ee=_0x228273[_0x34443f(0x166)][_0x3dea2e['appCode']],_0x5e8a8f=[],_0x2666be=[];for(const _0x104d21 of _0x290bb8){const _0x5d136f=_0x2be0ee['sqls'][_0x104d21[_0x34443f(0x13d)]],_0x166cb1=ensureRemoteSqlContent(_0x104d21),_0x3be0b1=detectModeFromSql(_0x104d21),_0x1ac2a0=_0x104d21[_0x34443f(0x16d)]?await getDbName(_0x4d928c[_0x34443f(0x143)],Number(_0x104d21[_0x34443f(0x16d)]))['catch'](()=>undefined):undefined,_0x50278d=buildLocalSqlFileContent({'sqlCode':_0x104d21['sqlCode'],'sqlName':_0x104d21['sqlName'],'dbId':_0x104d21[_0x34443f(0x16d)]},_0x166cb1,{'dbName':_0x1ac2a0,'mode':_0x3be0b1,'syncedAt':new Date()['toISOString'](),'description':_0x104d21[_0x34443f(0x145)]}),_0x40525e=buildSqlLockEntry(_0x104d21,_0x166cb1,computeSqlContentHash(_0x50278d),{'dbName':_0x1ac2a0}),_0x5bb207=_0x40525e['path'],_0x197643=join(_0x3dea2e['sqlRootDir'],_0x5bb207);try{if(await fileExists(_0x197643)){const _0x31c5a8=await readFile(_0x197643,_0x34443f(0x15e));if(isEquivalentPulledSqlFile(_0x31c5a8,_0x50278d,_0x3be0b1)){_0x2666be[_0x34443f(0x13b)]({'sqlCode':_0x104d21[_0x34443f(0x13d)],'reason':_0x34443f(0x146)}),_0x2be0ee[_0x34443f(0x161)][_0x104d21[_0x34443f(0x13d)]]={..._0x40525e,'hash':computeSqlContentHash(_0x31c5a8),'path':_0x5bb207};continue;}if(!_0x1f78ea){_0x2666be[_0x34443f(0x13b)]({'sqlCode':_0x104d21[_0x34443f(0x13d)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x58e272=_0x5d136f?.[_0x34443f(0x160)]?join(_0x3dea2e[_0x34443f(0x15c)],_0x5d136f[_0x34443f(0x160)]):undefined;_0x58e272&&_0x58e272!==_0x197643&&await fileExists(_0x58e272)&&await rm(_0x58e272,{'force':!![]}),await ensureParentDirectory(_0x197643),await writeFile(_0x197643,_0x50278d,_0x34443f(0x15e)),_0x2be0ee[_0x34443f(0x161)][_0x104d21['sqlCode']]={..._0x40525e,'path':_0x5bb207},_0x5e8a8f[_0x34443f(0x13b)]({'sqlCode':_0x104d21['sqlCode'],'filePath':_0x197643});}catch(_0xb820ff){_0x3a0161[_0x34443f(0x13b)]({'sqlCode':_0x104d21[_0x34443f(0x13d)],'error':_0xb820ff instanceof Error?_0xb820ff[_0x34443f(0x13e)]:String(_0xb820ff)});}}return _0x2be0ee[_0x34443f(0x16c)]=new Date()[_0x34443f(0x15d)](),await writeSqlLockFile(_0x3dea2e['lockFilePath'],_0x228273),{'ok':_0x3a0161[_0x34443f(0x15a)]===0x0,'data':{'pulled':_0x5e8a8f,'skipped':_0x2666be,'failed':_0x3a0161},'message':_0x34443f(0x175)+_0x5e8a8f['length']+'\x20written,\x20'+_0x2666be[_0x34443f(0x15a)]+'\x20skipped,\x20'+_0x3a0161[_0x34443f(0x15a)]+_0x34443f(0x176)};}};function detectModeFromSql(_0x363ca6){const _0x10520d=a176_0x2f54b9,_0xe63b5a=ensureRemoteSqlContent(_0x363ca6),_0x23e8b1=stripLocalSqlMetadata(_0xe63b5a,_0x10520d(0x152))[_0x10520d(0x172)]();if(/^<(select|insert|update|delete)\b/i[_0x10520d(0x14e)](_0x23e8b1))return _0x10520d(0x152);return'sql';}function isEquivalentPulledSqlFile(_0x3c69ec,_0x404c73,_0xef6a4b){return normalizePullComparableContent(_0x3c69ec,_0xef6a4b)===normalizePullComparableContent(_0x404c73,_0xef6a4b);}function normalizePullComparableContent(_0x45adac,_0x356616){const _0x56e9e3=a176_0x2f54b9,_0x47cbcb=_0x45adac[_0x56e9e3(0x16f)](/\r\n/g,'\x0a')[_0x56e9e3(0x142)]('\x0a'),_0x5dbe74=_0x47cbcb['filter'](_0xbe51e4=>!isSyncedAtMetadataLine(_0xbe51e4,_0x356616));return _0x5dbe74['join']('\x0a');}function isSyncedAtMetadataLine(_0x2c143f,_0x5a7c42){const _0x392dcf=a176_0x2f54b9;if(_0x5a7c42==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x392dcf(0x14e)](_0x2c143f);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x2c143f);}
1
+ const a183_0x336927=a183_0x2e58;(function(_0x568b2d,_0x210547){const _0x1af825=a183_0x2e58,_0x36d633=_0x568b2d();while(!![]){try{const _0x281e2f=parseInt(_0x1af825(0x121))/0x1*(-parseInt(_0x1af825(0xfe))/0x2)+-parseInt(_0x1af825(0x10c))/0x3*(parseInt(_0x1af825(0x10d))/0x4)+-parseInt(_0x1af825(0x102))/0x5*(parseInt(_0x1af825(0xfd))/0x6)+parseInt(_0x1af825(0xee))/0x7+-parseInt(_0x1af825(0x10a))/0x8*(parseInt(_0x1af825(0xf9))/0x9)+-parseInt(_0x1af825(0xf1))/0xa*(parseInt(_0x1af825(0xfa))/0xb)+parseInt(_0x1af825(0x10e))/0xc*(parseInt(_0x1af825(0x10b))/0xd);if(_0x281e2f===_0x210547)break;else _0x36d633['push'](_0x36d633['shift']());}catch(_0x51b8f9){_0x36d633['push'](_0x36d633['shift']());}}}(a183_0x1540,0x7b041));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x1781ea,_0x528655){const _0x229f80=a183_0x2e58,_0x38a735=[];let _0x50ae7b=0x1;while(!![]){const _0x5ba5e2=await listSqlQueries(_0x1781ea,{'currentPage':_0x50ae7b,'pageSize':PAGE_SIZE,'sqlCode':_0x528655[_0x229f80(0x119)],'sqlName':_0x528655['sqlName']}),_0x2670c1=_0x5ba5e2['tableData']??[];_0x38a735['push'](..._0x2670c1);if(_0x2670c1[_0x229f80(0xfc)]===0x0)break;const _0x453a8f=_0x5ba5e2[_0x229f80(0x118)]?.[_0x229f80(0x124)];if(_0x453a8f!=null?_0x38a735[_0x229f80(0xfc)]>=_0x453a8f:_0x2670c1[_0x229f80(0xfc)]<PAGE_SIZE)break;_0x50ae7b++;}return _0x38a735;}async function ensureSqlContent(_0x172cec){const _0x42a692=a183_0x2e58;if(_0x172cec['sqlContent']!=null&&String(_0x172cec[_0x42a692(0xed)])[_0x42a692(0xfc)]>0x0)return _0x172cec;return getSqlQueryDetail(_0x172cec['sqlCode']);}export const sqlPull={'service':a183_0x336927(0x11c),'command':a183_0x336927(0x103),'description':a183_0x336927(0x126),'risk':a183_0x336927(0x123),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a183_0x336927(0x100),'description':a183_0x336927(0x113)},{'name':'force','type':a183_0x336927(0xec),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x319493){const _0x1af55f=a183_0x336927,_0x40d2de=loadSqlProjectConfig(_0x319493[_0x1af55f(0xf6)]),_0x2162d0=await readSqlLockFile(_0x40d2de[_0x1af55f(0xf7)]),{appLock:_0x3f4d3e}=ensureSqlLockScope(_0x2162d0??createEmptySqlLock(),_0x40d2de[_0x1af55f(0xf6)],_0x40d2de[_0x1af55f(0xf2)],_0x1af55f(0x103)),_0x596a0b=await fetchAllSqlQueries(_0x319493['appCode'],{'sqlCode':_0x319493[_0x1af55f(0x116)](_0x1af55f(0x11b))||undefined,'sqlName':_0x319493[_0x1af55f(0x116)](_0x1af55f(0x101))||undefined}),_0x12e5b5=[];for(const _0x3b9294 of _0x596a0b){const _0x2ea9e4=await ensureSqlContent(_0x3b9294),_0x300feb=ensureRemoteSqlContent(_0x2ea9e4),_0x3d2913=detectModeFromSql(_0x2ea9e4),_0x29ba51=_0x2ea9e4[_0x1af55f(0x106)]?await getDbName(_0x319493[_0x1af55f(0xf6)],Number(_0x2ea9e4[_0x1af55f(0x106)]))[_0x1af55f(0x114)](()=>undefined):undefined,_0x1e8f6c=buildLocalSqlFileContent({'sqlCode':_0x2ea9e4[_0x1af55f(0x119)],'sqlName':_0x2ea9e4[_0x1af55f(0xff)],'dbId':_0x2ea9e4[_0x1af55f(0x106)]},_0x300feb,{'dbName':_0x29ba51,'mode':_0x3d2913,'syncedAt':new Date()[_0x1af55f(0x11f)](),'description':_0x2ea9e4[_0x1af55f(0x11d)]}),_0x41fa97=buildSqlLockEntry(_0x2ea9e4,_0x300feb,'',{'dbName':_0x29ba51}),_0x3af40b=resolveLocalSqlFilePath(_0x40d2de,_0x2ea9e4[_0x1af55f(0x119)],_0x41fa97);let _0xf899be='would_pull',_0xd9230f;if(await fileExists(_0x3af40b)){const _0x6cedb4=await readFile(_0x3af40b,_0x1af55f(0xf3));isEquivalentPulledSqlFile(_0x6cedb4,_0x1e8f6c,_0x3d2913)?(_0xf899be='skipped',_0xd9230f=_0x1af55f(0x10f)):(_0xf899be='conflict',_0xd9230f='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x12e5b5[_0x1af55f(0xf8)]({'sqlCode':_0x2ea9e4[_0x1af55f(0x119)],'sqlName':_0x2ea9e4['sqlName'],'filePath':_0x3af40b,'status':_0xf899be,'reason':_0xd9230f});}return{'method':_0x1af55f(0x117),'url':_0x1af55f(0x122),'body':{'appCode':_0x319493[_0x1af55f(0xf6)],'sqlCode':_0x319493['str'](_0x1af55f(0x11b))||null,'sqlName':_0x319493[_0x1af55f(0x116)](_0x1af55f(0x101))||null,'files':_0x12e5b5},'description':'Would\x20pull\x20'+_0x12e5b5[_0x1af55f(0xfc)]+_0x1af55f(0x128)+_0x40d2de['sqlRootDir']};},async 'execute'(_0x1992d6){const _0x52a091=a183_0x336927,_0x4be2e3=loadSqlProjectConfig(_0x1992d6[_0x52a091(0xf6)]),_0xb4f2aa=await readSqlLockFile(_0x4be2e3[_0x52a091(0xf7)]),{lockData:_0x37884a,appLock:_0x395d4f}=ensureSqlLockScope(_0xb4f2aa??createEmptySqlLock(),_0x4be2e3[_0x52a091(0xf6)],_0x4be2e3['sqlRoot'],_0x52a091(0x103)),_0x32bf4f=_0x1992d6[_0x52a091(0x127)](_0x52a091(0x112)),_0x409cd0=await fetchAllSqlQueries(_0x1992d6[_0x52a091(0xf6)],{'sqlCode':_0x1992d6['str'](_0x52a091(0x11b))||undefined,'sqlName':_0x1992d6[_0x52a091(0x116)](_0x52a091(0x101))||undefined});if(_0x409cd0[_0x52a091(0xfc)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0xf76ebb=[],_0x4afeb2=[];for(const _0x569751 of _0x409cd0){try{_0xf76ebb['push'](await ensureSqlContent(_0x569751));}catch(_0x2cec8c){_0x4afeb2[_0x52a091(0xf8)]({'sqlCode':_0x569751[_0x52a091(0x119)],'error':_0x2cec8c instanceof Error?_0x2cec8c[_0x52a091(0xf0)]:String(_0x2cec8c)});}}if(_0x32bf4f&&!_0x1992d6[_0x52a091(0x108)]){let _0x2fc256=![];for(const _0x2a04dc of _0xf76ebb){const _0x6c833a=detectModeFromSql(_0x2a04dc),_0x384fb6=_0x2a04dc[_0x52a091(0x106)]?await getDbName(_0x1992d6[_0x52a091(0xf6)],Number(_0x2a04dc[_0x52a091(0x106)]))[_0x52a091(0x114)](()=>undefined):undefined,_0x2ac128=buildLocalSqlFileContent({'sqlCode':_0x2a04dc['sqlCode'],'sqlName':_0x2a04dc[_0x52a091(0xff)],'dbId':_0x2a04dc['dbId']},ensureRemoteSqlContent(_0x2a04dc),{'dbName':_0x384fb6,'mode':_0x6c833a,'syncedAt':new Date()[_0x52a091(0x11f)](),'description':_0x2a04dc[_0x52a091(0x11d)]}),_0x319f2e=resolveLocalSqlFilePath(_0x4be2e3,_0x2a04dc[_0x52a091(0x119)],buildSqlLockEntry(_0x2a04dc,ensureRemoteSqlContent(_0x2a04dc),'',{'dbName':_0x384fb6}));if(await fileExists(_0x319f2e)){const _0x112b00=await readFile(_0x319f2e,_0x52a091(0xf3));if(!isEquivalentPulledSqlFile(_0x112b00,_0x2ac128,_0x6c833a)){_0x2fc256=!![];break;}}}if(_0x2fc256){const _0x42a761=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x42a761)throw CliErrors[_0x52a091(0xef)](_0x52a091(0x110));}}const _0x2f87f3=cloneSqlLockData(_0x37884a),_0x35aa1f=_0x2f87f3[_0x52a091(0x105)][_0x4be2e3[_0x52a091(0xf6)]],_0x372bca=[],_0x54f85e=[];for(const _0x146435 of _0xf76ebb){const _0x31e7e8=_0x35aa1f[_0x52a091(0x109)][_0x146435[_0x52a091(0x119)]],_0x1119cd=ensureRemoteSqlContent(_0x146435),_0x182f3c=detectModeFromSql(_0x146435),_0x1f7e7a=_0x146435[_0x52a091(0x106)]?await getDbName(_0x1992d6[_0x52a091(0xf6)],Number(_0x146435[_0x52a091(0x106)]))[_0x52a091(0x114)](()=>undefined):undefined,_0x21ed88=buildLocalSqlFileContent({'sqlCode':_0x146435[_0x52a091(0x119)],'sqlName':_0x146435[_0x52a091(0xff)],'dbId':_0x146435[_0x52a091(0x106)]},_0x1119cd,{'dbName':_0x1f7e7a,'mode':_0x182f3c,'syncedAt':new Date()['toISOString'](),'description':_0x146435[_0x52a091(0x11d)]}),_0xf91bd=buildSqlLockEntry(_0x146435,_0x1119cd,computeSqlContentHash(_0x21ed88),{'dbName':_0x1f7e7a}),_0x463459=_0xf91bd[_0x52a091(0x104)],_0x361f58=join(_0x4be2e3[_0x52a091(0x115)],_0x463459);try{if(await fileExists(_0x361f58)){const _0x5558c4=await readFile(_0x361f58,_0x52a091(0xf3));if(isEquivalentPulledSqlFile(_0x5558c4,_0x21ed88,_0x182f3c)){_0x54f85e[_0x52a091(0xf8)]({'sqlCode':_0x146435['sqlCode'],'reason':_0x52a091(0x10f)}),_0x35aa1f[_0x52a091(0x109)][_0x146435[_0x52a091(0x119)]]={..._0xf91bd,'hash':computeSqlContentHash(_0x5558c4),'path':_0x463459};continue;}if(!_0x32bf4f){_0x54f85e[_0x52a091(0xf8)]({'sqlCode':_0x146435[_0x52a091(0x119)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0xbdd1e2=_0x31e7e8?.[_0x52a091(0x104)]?join(_0x4be2e3['sqlRootDir'],_0x31e7e8[_0x52a091(0x104)]):undefined;_0xbdd1e2&&_0xbdd1e2!==_0x361f58&&await fileExists(_0xbdd1e2)&&await rm(_0xbdd1e2,{'force':!![]}),await ensureParentDirectory(_0x361f58),await writeFile(_0x361f58,_0x21ed88,'utf8'),_0x35aa1f[_0x52a091(0x109)][_0x146435[_0x52a091(0x119)]]={..._0xf91bd,'path':_0x463459},_0x372bca['push']({'sqlCode':_0x146435[_0x52a091(0x119)],'filePath':_0x361f58});}catch(_0x2a917a){_0x4afeb2[_0x52a091(0xf8)]({'sqlCode':_0x146435['sqlCode'],'error':_0x2a917a instanceof Error?_0x2a917a[_0x52a091(0xf0)]:String(_0x2a917a)});}}return _0x35aa1f[_0x52a091(0x111)]=new Date()[_0x52a091(0x11f)](),await writeSqlLockFile(_0x4be2e3[_0x52a091(0xf7)],_0x2f87f3),{'ok':_0x4afeb2[_0x52a091(0xfc)]===0x0,'data':{'pulled':_0x372bca,'skipped':_0x54f85e,'failed':_0x4afeb2},'message':_0x52a091(0x11a)+_0x372bca[_0x52a091(0xfc)]+_0x52a091(0x125)+_0x54f85e[_0x52a091(0xfc)]+'\x20skipped,\x20'+_0x4afeb2[_0x52a091(0xfc)]+'\x20failed'};}};function detectModeFromSql(_0x5ca4d7){const _0x2159d0=a183_0x336927,_0x1f6428=ensureRemoteSqlContent(_0x5ca4d7),_0x10ad8b=stripLocalSqlMetadata(_0x1f6428,'mybatisXml')[_0x2159d0(0xf4)]();if(/^<(select|insert|update|delete)\b/i[_0x2159d0(0x120)](_0x10ad8b))return _0x2159d0(0x107);return'sql';}function isEquivalentPulledSqlFile(_0x36d7c7,_0x2b388a,_0x3e8f82){return normalizePullComparableContent(_0x36d7c7,_0x3e8f82)===normalizePullComparableContent(_0x2b388a,_0x3e8f82);}function a183_0x1540(){const _0x2ffd1a=['lastSync','force','Filter\x20by\x20SQL\x20display\x20name','catch','sqlRootDir','str','POST','paging','sqlCode','Pull\x20complete:\x20','sqlcode','sql','description','split','toISOString','test','27325DzAEmj','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','write','totalCount','\x20written,\x20','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','bool','\x20SQL\x20file(s)\x20into\x20','boolean','sqlContent','2207254MuMCxw','cancelled','message','170tnHUCW','sqlRoot','utf8','trimStart','replace','appCode','lockFilePath','push','9ZawdMn','18271RFqHAE','join','length','1716WdGSff','14bBdVul','sqlName','string','name','4705ctGHzH','pull','path','apps','dbId','mybatisXml','nonInteractive','sqls','3012056CMaaPN','156ncUuVW','627fqqybv','3504BspVBf','1236780iTcNQi','unchanged','Force\x20pull\x20cancelled.'];a183_0x1540=function(){return _0x2ffd1a;};return a183_0x1540();}function normalizePullComparableContent(_0x34ed21,_0x11f3d6){const _0x585643=a183_0x336927,_0x35efac=_0x34ed21[_0x585643(0xf5)](/\r\n/g,'\x0a')[_0x585643(0x11e)]('\x0a'),_0x401066=_0x35efac['filter'](_0x4555d6=>!isSyncedAtMetadataLine(_0x4555d6,_0x11f3d6));return _0x401066[_0x585643(0xfb)]('\x0a');}function a183_0x2e58(_0x419b79,_0x11da6b){_0x419b79=_0x419b79-0xec;const _0x15401c=a183_0x1540();let _0x2e5839=_0x15401c[_0x419b79];return _0x2e5839;}function isSyncedAtMetadataLine(_0x221698,_0xaeab59){const _0x500756=a183_0x336927;if(_0xaeab59===_0x500756(0x107))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x500756(0x120)](_0x221698);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x221698);}
@@ -1 +1 @@
1
- const a177_0x16cc7b=a177_0x1b71;(function(_0x192c95,_0x588b85){const _0x297b33=a177_0x1b71,_0x325a21=_0x192c95();while(!![]){try{const _0x54c69b=-parseInt(_0x297b33(0x18c))/0x1*(parseInt(_0x297b33(0x188))/0x2)+parseInt(_0x297b33(0x181))/0x3*(parseInt(_0x297b33(0x18e))/0x4)+-parseInt(_0x297b33(0x187))/0x5+parseInt(_0x297b33(0x1aa))/0x6+parseInt(_0x297b33(0x18a))/0x7*(-parseInt(_0x297b33(0x1bd))/0x8)+parseInt(_0x297b33(0x1be))/0x9+parseInt(_0x297b33(0x1b3))/0xa*(-parseInt(_0x297b33(0x185))/0xb);if(_0x54c69b===_0x588b85)break;else _0x325a21['push'](_0x325a21['shift']());}catch(_0x32f151){_0x325a21['push'](_0x325a21['shift']());}}}(a177_0x196f,0x90e3e));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';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';function a177_0x1b71(_0x5c461c,_0x323ecb){_0x5c461c=_0x5c461c-0x17d;const _0x196f58=a177_0x196f();let _0x1b7118=_0x196f58[_0x5c461c];return _0x1b7118;}import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x14a5f2,_0x304fe9,_0x372126){const _0x12f85b=a177_0x1b71,_0x47a205=await scanLocalSqlQueries(_0x14a5f2),_0x28a9fc=new Map();for(const _0x63ca64 of _0x47a205){if(_0x372126&&_0x63ca64[_0x12f85b(0x183)]!==_0x372126)continue;const _0xe71bb0=_0x28a9fc[_0x12f85b(0x17e)](_0x63ca64[_0x12f85b(0x183)])??[];_0xe71bb0[_0x12f85b(0x1b6)](_0x63ca64),_0x28a9fc[_0x12f85b(0x17f)](_0x63ca64[_0x12f85b(0x183)],_0xe71bb0);}if(_0x372126&&!_0x28a9fc[_0x12f85b(0x180)](_0x372126))throw CliErrors['validation'](_0x12f85b(0x19f)+_0x372126);const _0x1d0445=[];for(const [_0xf77b8a,_0x4628da]of _0x28a9fc[_0x12f85b(0x1bc)]()){if(_0x4628da[_0x12f85b(0x1a6)]===0x1){_0x1d0445[_0x12f85b(0x1b6)](_0x4628da[0x0]);continue;}const _0xcfa773=_0x304fe9[_0x12f85b(0x1c1)][_0xf77b8a],_0x42353f=_0xcfa773?.[_0x12f85b(0x19b)],_0x369360=_0x42353f?_0x4628da[_0x12f85b(0x1b5)](_0x4ca03b=>_0x4ca03b['relativePath']!==_0x42353f):_0x4628da;if(_0xcfa773&&_0x369360[_0x12f85b(0x1a6)]===0x1){_0x1d0445[_0x12f85b(0x1b6)](_0x369360[0x0]);continue;}throw CliErrors[_0x12f85b(0x1b1)](_0x12f85b(0x184)+_0xf77b8a+_0x12f85b(0x18b));}return _0x1d0445;}export const sqlPush={'service':'sql','command':'push','description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':a177_0x16cc7b(0x195),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a177_0x16cc7b(0x18d),'type':a177_0x16cc7b(0x1b2),'description':a177_0x16cc7b(0x1a8)}],async 'dryRun'(_0x27b7f0){const _0x5de01d=a177_0x16cc7b,_0xbe9497=loadSqlProjectConfig(_0x27b7f0[_0x5de01d(0x186)]),_0x21e1c1=await readSqlLockFile(_0xbe9497[_0x5de01d(0x1ad)]),{appLock:_0x3ae1eb}=ensureSqlLockScope(_0x21e1c1??createEmptySqlLock(),_0x27b7f0[_0x5de01d(0x186)],_0xbe9497[_0x5de01d(0x1af)],'push'),_0x3469c3=await getTargetSqlQueries(_0xbe9497,_0x3ae1eb,_0x27b7f0['str'](_0x5de01d(0x190))||undefined),_0xac091b=[];for(const _0x4d2f96 of _0x3469c3){const _0x40a828=await computeSqlFileHash(_0x4d2f96[_0x5de01d(0x1a7)]),_0x532fb5=_0x3ae1eb[_0x5de01d(0x1c1)][_0x4d2f96[_0x5de01d(0x183)]],_0x373bba=!!_0x532fb5&&(_0x532fb5[_0x5de01d(0x19b)]!==_0x4d2f96[_0x5de01d(0x1ac)]||!!_0x4d2f96['sqlName']&&_0x532fb5[_0x5de01d(0x199)]!==_0x4d2f96[_0x5de01d(0x199)]);if(!_0x27b7f0[_0x5de01d(0x194)]('force')&&_0x532fb5&&_0x532fb5[_0x5de01d(0x1b8)]===_0x40a828&&!_0x373bba)continue;_0xac091b[_0x5de01d(0x1b6)](_0x4d2f96['sqlCode']);}return{'method':_0x5de01d(0x1b4),'url':_0x5de01d(0x1a4),'body':{'sqlCodes':_0xac091b,'appCode':_0x27b7f0[_0x5de01d(0x186)]},'description':_0x5de01d(0x189)+_0xac091b[_0x5de01d(0x1a6)]+_0x5de01d(0x17d)};},async 'execute'(_0x9052c7){const _0x7e8377=a177_0x16cc7b,_0x39c4bd=loadSqlProjectConfig(_0x9052c7[_0x7e8377(0x186)]),_0x292178=await readSqlLockFile(_0x39c4bd[_0x7e8377(0x1ad)]),{lockData:_0x4e6409,appLock:_0x599480}=ensureSqlLockScope(_0x292178??createEmptySqlLock(),_0x9052c7[_0x7e8377(0x186)],_0x39c4bd[_0x7e8377(0x1af)],_0x7e8377(0x1b6)),_0x46fca6=await getTargetSqlQueries(_0x39c4bd,_0x599480,_0x9052c7['str'](_0x7e8377(0x190))||undefined);if(_0x46fca6[_0x7e8377(0x1a6)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x7e8377(0x1a1)};const _0x7768ef=[],_0x142f72=[],_0x3da50f=[];for(const _0x3841b9 of _0x46fca6){const _0x1e76e0=_0x599480[_0x7e8377(0x1c1)][_0x3841b9[_0x7e8377(0x183)]];if(!_0x1e76e0){_0x3da50f[_0x7e8377(0x1b6)]({'sqlCode':_0x3841b9[_0x7e8377(0x183)],'error':_0x7e8377(0x1ba)});continue;}try{const _0x54b6c9=await computeSqlFileHash(_0x3841b9[_0x7e8377(0x1a7)]),_0x440636=_0x1e76e0['path']!==_0x3841b9[_0x7e8377(0x1ac)]||!!_0x3841b9[_0x7e8377(0x199)]&&_0x1e76e0[_0x7e8377(0x199)]!==_0x3841b9['sqlName'];if(!_0x9052c7[_0x7e8377(0x194)]('force')&&_0x1e76e0[_0x7e8377(0x1b8)]===_0x54b6c9&&!_0x440636){_0x142f72[_0x7e8377(0x1b6)]({'sqlCode':_0x3841b9[_0x7e8377(0x183)],'reason':'unchanged'});continue;}if(_0x1e76e0[_0x7e8377(0x196)]==null){_0x3da50f[_0x7e8377(0x1b6)]({'sqlCode':_0x3841b9[_0x7e8377(0x183)],'error':_0x7e8377(0x1a9)});continue;}const _0x59b8c7=await readFile(_0x3841b9['filePath'],_0x7e8377(0x182)),_0x40021d=stripLocalSqlMetadata(_0x59b8c7,_0x3841b9[_0x7e8377(0x1b0)]),_0xb8efbc=_0x3841b9[_0x7e8377(0x199)]||_0x1e76e0[_0x7e8377(0x199)],_0x1f3190=await resolveTargetDbBinding(_0x9052c7[_0x7e8377(0x186)],_0x3841b9,_0x1e76e0),_0x130742=await updateSqlQuery({'id':_0x1e76e0['remoteId'],'appCode':_0x9052c7[_0x7e8377(0x186)],'sqlCode':_0x3841b9[_0x7e8377(0x183)],'sqlName':_0xb8efbc,'dbId':_0x1f3190['dbId'],'version':_0x1e76e0[_0x7e8377(0x196)],'sqlContent':_0x40021d,'sqlConfig':_0x1e76e0['sqlConfig']??undefined}),_0x2e65dc=_0x130742[_0x7e8377(0x198)]?await getDbName(_0x9052c7[_0x7e8377(0x186)],Number(_0x130742[_0x7e8377(0x198)]))[_0x7e8377(0x1c0)](()=>_0x1f3190[_0x7e8377(0x1b7)]):_0x1f3190[_0x7e8377(0x1b7)];_0x599480[_0x7e8377(0x1c1)][_0x3841b9['sqlCode']]={...buildSqlLockEntry(_0x130742,_0x40021d,_0x54b6c9,{'dbName':_0x2e65dc}),'path':_0x3841b9['relativePath'],'mode':_0x1e76e0[_0x7e8377(0x1b0)]},await archivePreviousSqlFileIfNeeded(_0x39c4bd,_0x1e76e0['path'],_0x3841b9[_0x7e8377(0x1ac)]),_0x7768ef[_0x7e8377(0x1b6)]({'sqlCode':_0x3841b9[_0x7e8377(0x183)],'remoteId':_0x1e76e0[_0x7e8377(0x19e)]});}catch(_0x572123){_0x3da50f[_0x7e8377(0x1b6)]({'sqlCode':_0x3841b9[_0x7e8377(0x183)],'error':_0x572123 instanceof Error?_0x572123[_0x7e8377(0x1ab)]:String(_0x572123)});}}return _0x599480[_0x7e8377(0x1ae)]=new Date()[_0x7e8377(0x18f)](),await writeSqlLockFile(_0x39c4bd[_0x7e8377(0x1ad)],_0x4e6409),{'ok':_0x3da50f['length']===0x0,'data':{'pushed':_0x7768ef,'skipped':_0x142f72,'failed':_0x3da50f},'message':_0x7e8377(0x19a)+_0x7768ef[_0x7e8377(0x1a6)]+_0x7e8377(0x19d)+_0x142f72['length']+_0x7e8377(0x1a5)+_0x3da50f[_0x7e8377(0x1a6)]+_0x7e8377(0x1a2)};}};async function archivePreviousSqlFileIfNeeded(_0x43aabb,_0x5ecd73,_0x1be57b){const _0x2a5f3e=a177_0x16cc7b;if(!_0x5ecd73||_0x5ecd73===_0x1be57b)return;const _0x22c109=join(_0x43aabb[_0x2a5f3e(0x192)],_0x5ecd73);if(!await fileExists(_0x22c109))return;const _0x21441e=await moveToTrash(_0x43aabb[_0x2a5f3e(0x1b9)],_0x43aabb['trashDir'],_0x22c109);await cleanupEmptyDirectories(dirname(_0x22c109),_0x43aabb[_0x2a5f3e(0x192)]),void _0x21441e;}function a177_0x196f(){const _0x1c11a1=['replace','dbId','sqlName','Push\x20complete:\x20','path','startsWith','\x20pushed,\x20','remoteId','Local\x20SQL\x20not\x20found:\x20','No\x20database\x20matches\x20local\x20directory\x20\x22','No\x20local\x20SQL\x20files\x20found.','\x20failed','\x22\x20for\x20sqlCode\x20','/smartapi/custom/updateUserCustomSql','\x20skipped,\x20','length','filePath','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','6998016ZUBhYw','message','relativePath','lockFilePath','lastSync','sqlRoot','mode','validation','boolean','7353090OptyXP','POST','filter','push','dbName','hash','projectRoot','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','map','entries','28400ViHIsQ','336159fjlXvC','join','catch','sqls','\x20SQL\x20file(s)','get','set','has','930GJSyWG','utf8','sqlCode','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','11AEnnsQ','appCode','1897395VVRXvf','13754ONnNjr','Would\x20push\x20','140unzwOf','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','67ApvGOU','force','13372myCiXC','toISOString','sqlcode','Local\x20directory\x20\x22','sqlRootDir','isFinite','bool','high-risk-write','version'];a177_0x196f=function(){return _0x1c11a1;};return a177_0x196f();}async function moveToTrash(_0x2d3760,_0x237f2a,_0x30d902){const _0x1f2f84=a177_0x16cc7b,_0x3c6178=new Date()['toISOString']()[_0x1f2f84(0x197)](/[:.]/g,'-'),_0x439c83=relative(_0x2d3760,_0x30d902),_0x215d36=join(_0x237f2a,_0x3c6178,_0x439c83);return await mkdir(dirname(_0x215d36),{'recursive':!![]}),await rename(_0x30d902,_0x215d36),_0x215d36;}async function cleanupEmptyDirectories(_0x5b83a3,_0x458460){const _0x2bed2e=a177_0x16cc7b;let _0x3e89f0=resolve(_0x5b83a3);const _0x15b247=resolve(_0x458460);while(_0x3e89f0[_0x2bed2e(0x19c)](''+_0x15b247+sep)||_0x3e89f0===_0x15b247){if(_0x3e89f0===_0x15b247)return;try{const _0x2221dc=await readdir(_0x3e89f0);if(_0x2221dc[_0x2bed2e(0x1a6)]>0x0)return;await rmdir(_0x3e89f0);}catch{return;}_0x3e89f0=dirname(_0x3e89f0);}}async function resolveTargetDbBinding(_0x113a7c,_0x3f51e3,_0x5a6e2b){const _0x2a7b4e=a177_0x16cc7b,_0x55a3a0=_0x3f51e3['dbDirectory'];if(!_0x55a3a0)return{'dbId':_0x5a6e2b[_0x2a7b4e(0x198)],'dbName':_0x5a6e2b['dbName']};const _0x230684=buildDbDirectoryName(_0x5a6e2b['dbName'],_0x5a6e2b[_0x2a7b4e(0x198)]);if(_0x55a3a0===_0x230684)return{'dbId':_0x5a6e2b['dbId'],'dbName':_0x5a6e2b[_0x2a7b4e(0x1b7)]};const _0x5800f0=parseExplicitDbDirectory(_0x55a3a0);if(_0x5800f0!=null)return{'dbId':_0x5800f0,'dbName':await getDbName(_0x113a7c,_0x5800f0)[_0x2a7b4e(0x1c0)](()=>undefined)};const _0x5960b2=await listDatabases(_0x113a7c),_0xe5b878=_0x5960b2[_0x2a7b4e(0x1b5)](_0x4c810b=>buildDbDirectoryName(_0x4c810b[_0x2a7b4e(0x1b7)],_0x4c810b[_0x2a7b4e(0x198)])===_0x55a3a0);if(_0xe5b878[_0x2a7b4e(0x1a6)]===0x1)return{'dbId':_0xe5b878[0x0][_0x2a7b4e(0x198)],'dbName':_0xe5b878[0x0][_0x2a7b4e(0x1b7)]};if(_0xe5b878[_0x2a7b4e(0x1a6)]===0x0)throw CliErrors[_0x2a7b4e(0x1b1)](_0x2a7b4e(0x1a0)+_0x55a3a0+_0x2a7b4e(0x1a3)+_0x3f51e3['sqlCode']+'.');const _0x286e43=_0xe5b878[_0x2a7b4e(0x1bb)](_0x2c3fc6=>_0x2c3fc6[_0x2a7b4e(0x1b7)]+'\x20('+_0x2c3fc6['dbId']+')')[_0x2a7b4e(0x1bf)](',\x20');throw CliErrors[_0x2a7b4e(0x1b1)](_0x2a7b4e(0x191)+_0x55a3a0+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x3f51e3[_0x2a7b4e(0x183)]+':\x20'+_0x286e43);}function parseExplicitDbDirectory(_0x1ea97a){const _0x3991c6=a177_0x16cc7b,_0x7f8871=/^db-(\d+)$/['exec'](_0x1ea97a);if(!_0x7f8871)return null;const _0x2c7649=Number(_0x7f8871[0x1]);return Number[_0x3991c6(0x193)](_0x2c7649)&&_0x2c7649>0x0?_0x2c7649:null;}
1
+ const a184_0x502892=a184_0xe019;(function(_0x42a8dd,_0x44f4bf){const _0x456345=a184_0xe019,_0x19f44f=_0x42a8dd();while(!![]){try{const _0x337af1=-parseInt(_0x456345(0x13f))/0x1*(parseInt(_0x456345(0x15b))/0x2)+-parseInt(_0x456345(0x169))/0x3+parseInt(_0x456345(0x141))/0x4*(parseInt(_0x456345(0x136))/0x5)+parseInt(_0x456345(0x165))/0x6*(parseInt(_0x456345(0x14e))/0x7)+parseInt(_0x456345(0x150))/0x8+parseInt(_0x456345(0x16b))/0x9+parseInt(_0x456345(0x13d))/0xa*(parseInt(_0x456345(0x163))/0xb);if(_0x337af1===_0x44f4bf)break;else _0x19f44f['push'](_0x19f44f['shift']());}catch(_0x21fbac){_0x19f44f['push'](_0x19f44f['shift']());}}}(a184_0x377d,0xb475b));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';function a184_0x377d(){const _0x438a0a=['set','90PQGnuB','utf8','1tUNomb','version','19640ZrSyaF','sqlName','relativePath','unchanged','path','validation','trashDir','length','dbName','Would\x20push\x20','sqlRootDir','dbId','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','27447GMWLqo','str','3315408lsBwrQ','sqls','entries','bool','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','Local\x20directory\x20\x22','replace','sqlRoot','sqlConfig','startsWith','lockFilePath','2878882zVLYzF','isFinite','high-risk-write','toISOString','filter','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','force','sqlcode','1092718UdJGtT','filePath','996sQaUFC','catch','No\x20database\x20matches\x20local\x20directory\x20\x22','sqlCode','4187397WOQoiZ','\x20skipped,\x20','3974031WNCazk','hash','dbDirectory','Push\x20local\x20SQL\x20files\x20to\x20remote','Push\x20complete:\x20','sql','\x20pushed,\x20','Local\x20SQL\x20not\x20found:\x20','push','1195EjNGcl','boolean','mode','has','appCode','map'];a184_0x377d=function(){return _0x438a0a;};return a184_0x377d();}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';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(_0x1d41a4,_0x5ca07a,_0x39eb8a){const _0x508aff=a184_0xe019,_0xe2e459=await scanLocalSqlQueries(_0x1d41a4),_0x37da4b=new Map();for(const _0x57d711 of _0xe2e459){if(_0x39eb8a&&_0x57d711[_0x508aff(0x168)]!==_0x39eb8a)continue;const _0x83369c=_0x37da4b['get'](_0x57d711['sqlCode'])??[];_0x83369c['push'](_0x57d711),_0x37da4b[_0x508aff(0x13c)](_0x57d711[_0x508aff(0x168)],_0x83369c);}if(_0x39eb8a&&!_0x37da4b[_0x508aff(0x139)](_0x39eb8a))throw CliErrors[_0x508aff(0x146)](_0x508aff(0x134)+_0x39eb8a);const _0x211f1b=[];for(const [_0x5d9383,_0x2fc5fc]of _0x37da4b[_0x508aff(0x152)]()){if(_0x2fc5fc['length']===0x1){_0x211f1b['push'](_0x2fc5fc[0x0]);continue;}const _0x563c52=_0x5ca07a[_0x508aff(0x151)][_0x5d9383],_0x290143=_0x563c52?.[_0x508aff(0x145)],_0x1f764f=_0x290143?_0x2fc5fc['filter'](_0x81db15=>_0x81db15['relativePath']!==_0x290143):_0x2fc5fc;if(_0x563c52&&_0x1f764f['length']===0x1){_0x211f1b['push'](_0x1f764f[0x0]);continue;}throw CliErrors[_0x508aff(0x146)](_0x508aff(0x14d)+_0x5d9383+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x211f1b;}export const sqlPush={'service':a184_0x502892(0x170),'command':a184_0x502892(0x135),'description':a184_0x502892(0x16e),'risk':a184_0x502892(0x15d),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':a184_0x502892(0x137),'description':a184_0x502892(0x160)}],async 'dryRun'(_0x208c13){const _0x32a182=a184_0x502892,_0x479469=loadSqlProjectConfig(_0x208c13['appCode']),_0x243adf=await readSqlLockFile(_0x479469[_0x32a182(0x15a)]),{appLock:_0x6dcda6}=ensureSqlLockScope(_0x243adf??createEmptySqlLock(),_0x208c13['appCode'],_0x479469[_0x32a182(0x157)],_0x32a182(0x135)),_0x581a63=await getTargetSqlQueries(_0x479469,_0x6dcda6,_0x208c13[_0x32a182(0x14f)](_0x32a182(0x162))||undefined),_0x217820=[];for(const _0x2641a6 of _0x581a63){const _0x1db95b=await computeSqlFileHash(_0x2641a6[_0x32a182(0x164)]),_0xe79b6=_0x6dcda6[_0x32a182(0x151)][_0x2641a6[_0x32a182(0x168)]],_0x1f18c7=!!_0xe79b6&&(_0xe79b6[_0x32a182(0x145)]!==_0x2641a6[_0x32a182(0x143)]||!!_0x2641a6[_0x32a182(0x142)]&&_0xe79b6['sqlName']!==_0x2641a6[_0x32a182(0x142)]);if(!_0x208c13['bool'](_0x32a182(0x161))&&_0xe79b6&&_0xe79b6[_0x32a182(0x16c)]===_0x1db95b&&!_0x1f18c7)continue;_0x217820['push'](_0x2641a6[_0x32a182(0x168)]);}return{'method':'POST','url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x217820,'appCode':_0x208c13[_0x32a182(0x13a)]},'description':_0x32a182(0x14a)+_0x217820['length']+'\x20SQL\x20file(s)'};},async 'execute'(_0x322b6f){const _0x2ab60c=a184_0x502892,_0x241abc=loadSqlProjectConfig(_0x322b6f[_0x2ab60c(0x13a)]),_0x20e0e2=await readSqlLockFile(_0x241abc[_0x2ab60c(0x15a)]),{lockData:_0xa78c83,appLock:_0xffffd0}=ensureSqlLockScope(_0x20e0e2??createEmptySqlLock(),_0x322b6f['appCode'],_0x241abc[_0x2ab60c(0x157)],'push'),_0x4eaa11=await getTargetSqlQueries(_0x241abc,_0xffffd0,_0x322b6f['str'](_0x2ab60c(0x162))||undefined);if(_0x4eaa11['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x2130e1=[],_0x10eb0c=[],_0x2894ec=[];for(const _0x1815e1 of _0x4eaa11){const _0x292bbf=_0xffffd0[_0x2ab60c(0x151)][_0x1815e1['sqlCode']];if(!_0x292bbf){_0x2894ec[_0x2ab60c(0x135)]({'sqlCode':_0x1815e1[_0x2ab60c(0x168)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x5da0d5=await computeSqlFileHash(_0x1815e1['filePath']),_0x1cc1ca=_0x292bbf[_0x2ab60c(0x145)]!==_0x1815e1[_0x2ab60c(0x143)]||!!_0x1815e1[_0x2ab60c(0x142)]&&_0x292bbf[_0x2ab60c(0x142)]!==_0x1815e1[_0x2ab60c(0x142)];if(!_0x322b6f[_0x2ab60c(0x153)](_0x2ab60c(0x161))&&_0x292bbf[_0x2ab60c(0x16c)]===_0x5da0d5&&!_0x1cc1ca){_0x10eb0c[_0x2ab60c(0x135)]({'sqlCode':_0x1815e1[_0x2ab60c(0x168)],'reason':_0x2ab60c(0x144)});continue;}if(_0x292bbf[_0x2ab60c(0x140)]==null){_0x2894ec['push']({'sqlCode':_0x1815e1[_0x2ab60c(0x168)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x2beafb=await readFile(_0x1815e1[_0x2ab60c(0x164)],_0x2ab60c(0x13e)),_0x2dcbff=stripLocalSqlMetadata(_0x2beafb,_0x1815e1[_0x2ab60c(0x138)]),_0x4badcb=_0x1815e1[_0x2ab60c(0x142)]||_0x292bbf[_0x2ab60c(0x142)],_0x149a80=await resolveTargetDbBinding(_0x322b6f[_0x2ab60c(0x13a)],_0x1815e1,_0x292bbf),_0x3bc8bb=await updateSqlQuery({'id':_0x292bbf['remoteId'],'appCode':_0x322b6f[_0x2ab60c(0x13a)],'sqlCode':_0x1815e1[_0x2ab60c(0x168)],'sqlName':_0x4badcb,'dbId':_0x149a80[_0x2ab60c(0x14c)],'version':_0x292bbf[_0x2ab60c(0x140)],'sqlContent':_0x2dcbff,'sqlConfig':_0x292bbf[_0x2ab60c(0x158)]??undefined}),_0x3b1b2d=_0x3bc8bb[_0x2ab60c(0x14c)]?await getDbName(_0x322b6f[_0x2ab60c(0x13a)],Number(_0x3bc8bb[_0x2ab60c(0x14c)]))[_0x2ab60c(0x166)](()=>_0x149a80[_0x2ab60c(0x149)]):_0x149a80['dbName'];_0xffffd0[_0x2ab60c(0x151)][_0x1815e1[_0x2ab60c(0x168)]]={...buildSqlLockEntry(_0x3bc8bb,_0x2dcbff,_0x5da0d5,{'dbName':_0x3b1b2d}),'path':_0x1815e1['relativePath'],'mode':_0x292bbf[_0x2ab60c(0x138)]},await archivePreviousSqlFileIfNeeded(_0x241abc,_0x292bbf['path'],_0x1815e1[_0x2ab60c(0x143)]),_0x2130e1[_0x2ab60c(0x135)]({'sqlCode':_0x1815e1[_0x2ab60c(0x168)],'remoteId':_0x292bbf['remoteId']});}catch(_0x23edb9){_0x2894ec[_0x2ab60c(0x135)]({'sqlCode':_0x1815e1['sqlCode'],'error':_0x23edb9 instanceof Error?_0x23edb9['message']:String(_0x23edb9)});}}return _0xffffd0['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x241abc[_0x2ab60c(0x15a)],_0xa78c83),{'ok':_0x2894ec['length']===0x0,'data':{'pushed':_0x2130e1,'skipped':_0x10eb0c,'failed':_0x2894ec},'message':_0x2ab60c(0x16f)+_0x2130e1['length']+_0x2ab60c(0x171)+_0x10eb0c[_0x2ab60c(0x148)]+_0x2ab60c(0x16a)+_0x2894ec['length']+'\x20failed'};}};function a184_0xe019(_0x3cf575,_0x29c16e){_0x3cf575=_0x3cf575-0x134;const _0x377d01=a184_0x377d();let _0xe01981=_0x377d01[_0x3cf575];return _0xe01981;}async function archivePreviousSqlFileIfNeeded(_0x510636,_0x5024c6,_0x5b1752){const _0x344995=a184_0x502892;if(!_0x5024c6||_0x5024c6===_0x5b1752)return;const _0x45d083=join(_0x510636[_0x344995(0x14b)],_0x5024c6);if(!await fileExists(_0x45d083))return;const _0x54020b=await moveToTrash(_0x510636['projectRoot'],_0x510636[_0x344995(0x147)],_0x45d083);await cleanupEmptyDirectories(dirname(_0x45d083),_0x510636[_0x344995(0x14b)]),void _0x54020b;}async function moveToTrash(_0x1274fb,_0x116c8c,_0x1cf68b){const _0x3732d2=a184_0x502892,_0x955e8f=new Date()[_0x3732d2(0x15e)]()[_0x3732d2(0x156)](/[:.]/g,'-'),_0xf8b02=relative(_0x1274fb,_0x1cf68b),_0x5fd1b2=join(_0x116c8c,_0x955e8f,_0xf8b02);return await mkdir(dirname(_0x5fd1b2),{'recursive':!![]}),await rename(_0x1cf68b,_0x5fd1b2),_0x5fd1b2;}async function cleanupEmptyDirectories(_0x538d20,_0x4274e5){const _0x4d6201=a184_0x502892;let _0x30ea9d=resolve(_0x538d20);const _0x3976f5=resolve(_0x4274e5);while(_0x30ea9d[_0x4d6201(0x159)](''+_0x3976f5+sep)||_0x30ea9d===_0x3976f5){if(_0x30ea9d===_0x3976f5)return;try{const _0x1c0f07=await readdir(_0x30ea9d);if(_0x1c0f07[_0x4d6201(0x148)]>0x0)return;await rmdir(_0x30ea9d);}catch{return;}_0x30ea9d=dirname(_0x30ea9d);}}async function resolveTargetDbBinding(_0x4f3f1f,_0x4f75d0,_0x196372){const _0x20be9d=a184_0x502892,_0x1f539c=_0x4f75d0[_0x20be9d(0x16d)];if(!_0x1f539c)return{'dbId':_0x196372[_0x20be9d(0x14c)],'dbName':_0x196372['dbName']};const _0x1a7132=buildDbDirectoryName(_0x196372[_0x20be9d(0x149)],_0x196372['dbId']);if(_0x1f539c===_0x1a7132)return{'dbId':_0x196372[_0x20be9d(0x14c)],'dbName':_0x196372['dbName']};const _0x2b0c71=parseExplicitDbDirectory(_0x1f539c);if(_0x2b0c71!=null)return{'dbId':_0x2b0c71,'dbName':await getDbName(_0x4f3f1f,_0x2b0c71)['catch'](()=>undefined)};const _0x50d659=await listDatabases(_0x4f3f1f),_0x2988bd=_0x50d659[_0x20be9d(0x15f)](_0x2c7d32=>buildDbDirectoryName(_0x2c7d32[_0x20be9d(0x149)],_0x2c7d32[_0x20be9d(0x14c)])===_0x1f539c);if(_0x2988bd[_0x20be9d(0x148)]===0x1)return{'dbId':_0x2988bd[0x0][_0x20be9d(0x14c)],'dbName':_0x2988bd[0x0][_0x20be9d(0x149)]};if(_0x2988bd[_0x20be9d(0x148)]===0x0)throw CliErrors[_0x20be9d(0x146)](_0x20be9d(0x167)+_0x1f539c+'\x22\x20for\x20sqlCode\x20'+_0x4f75d0[_0x20be9d(0x168)]+'.');const _0x520279=_0x2988bd[_0x20be9d(0x13b)](_0x7cdebe=>_0x7cdebe[_0x20be9d(0x149)]+'\x20('+_0x7cdebe[_0x20be9d(0x14c)]+')')['join'](',\x20');throw CliErrors[_0x20be9d(0x146)](_0x20be9d(0x155)+_0x1f539c+_0x20be9d(0x154)+_0x4f75d0[_0x20be9d(0x168)]+':\x20'+_0x520279);}function parseExplicitDbDirectory(_0x5d78e2){const _0x3758d4=a184_0x502892,_0x2feb1e=/^db-(\d+)$/['exec'](_0x5d78e2);if(!_0x2feb1e)return null;const _0x3b44d0=Number(_0x2feb1e[0x1]);return Number[_0x3758d4(0x15c)](_0x3b44d0)&&_0x3b44d0>0x0?_0x3b44d0:null;}
@@ -1 +1 @@
1
- function a178_0x362c(){const _0x1b17f5=['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','1588413NXWsaK','Query\x20description','write','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','file','2660lNjzJo','9ipWwhK','11142490oSmKRf','save','description','string','sql','8410296JMgQOH','839Enqrlt','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','validation','SQL\x20query\x20display\x20name','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`.','26928BBVhpI','21541949RelSCQ','3122upNdAh','1581700bVjcMC','5HNMqes'];a178_0x362c=function(){return _0x1b17f5;};return a178_0x362c();}const a178_0x21ccad=a178_0x3780;(function(_0x26edae,_0x25d142){const _0x4b7aa7=a178_0x3780,_0x27416a=_0x26edae();while(!![]){try{const _0x20a7b3=parseInt(_0x4b7aa7(0x12e))/0x1*(parseInt(_0x4b7aa7(0x135))/0x2)+parseInt(_0x4b7aa7(0x13a))/0x3+-parseInt(_0x4b7aa7(0x136))/0x4+parseInt(_0x4b7aa7(0x137))/0x5*(parseInt(_0x4b7aa7(0x12d))/0x6)+parseInt(_0x4b7aa7(0x13f))/0x7*(-parseInt(_0x4b7aa7(0x133))/0x8)+parseInt(_0x4b7aa7(0x127))/0x9*(parseInt(_0x4b7aa7(0x128))/0xa)+-parseInt(_0x4b7aa7(0x134))/0xb;if(_0x20a7b3===_0x25d142)break;else _0x27416a['push'](_0x27416a['shift']());}catch(_0xe23ff5){_0x27416a['push'](_0x27416a['shift']());}}}(a178_0x362c,0xb054b));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a178_0x21ccad(0x13d),a178_0x21ccad(0x138),a178_0x21ccad(0x132)]['join']('\x0a');function a178_0x3780(_0x161d8b,_0x4b7e04){_0x161d8b=_0x161d8b-0x127;const _0x362cbd=a178_0x362c();let _0x3780dd=_0x362cbd[_0x161d8b];return _0x3780dd;}export const sqlSave={'service':a178_0x21ccad(0x12c),'command':a178_0x21ccad(0x129),'description':a178_0x21ccad(0x139),'risk':a178_0x21ccad(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a178_0x21ccad(0x13e),'type':a178_0x21ccad(0x12b),'required':!![],'description':'Path\x20to\x20the\x20SQL\x20file'},SQLCODE_FLAG_OPTIONAL,{'name':'sqlname','type':a178_0x21ccad(0x12b),'description':a178_0x21ccad(0x131)},{'name':'db','type':a178_0x21ccad(0x12b),'description':a178_0x21ccad(0x12f)},{'name':a178_0x21ccad(0x12a),'type':'string','description':a178_0x21ccad(0x13b)}],async 'validate'(){const _0xf22cec=a178_0x21ccad;throw CliErrors[_0xf22cec(0x130)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x27f39a=a178_0x21ccad;throw CliErrors[_0x27f39a(0x130)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ function a185_0x41d5(_0x2c9099,_0x34067c){_0x2c9099=_0x2c9099-0x101;const _0x38ccea=a185_0x38cc();let _0x41d598=_0x38ccea[_0x2c9099];return _0x41d598;}function a185_0x38cc(){const _0x2b7829=['file','502131QWcRaz','36RIaBlh','608839MyeoTz','76628oFKKZv','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','sql','sqlname','Query\x20description','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','40xzmebv','3180176pQfDGk','40TOzXfc','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`.','write','5mlAEeW','75RBAruC','SQL\x20query\x20display\x20name','Path\x20to\x20the\x20SQL\x20file','1566324uyuQzS','1561909bUyHTO','7330086gvRZOB','string','validation'];a185_0x38cc=function(){return _0x2b7829;};return a185_0x38cc();}const a185_0x26927e=a185_0x41d5;(function(_0x354487,_0x9f3eb9){const _0x4f6a85=a185_0x41d5,_0x292589=_0x354487();while(!![]){try{const _0x6f803=-parseInt(_0x4f6a85(0x10c))/0x1+-parseInt(_0x4f6a85(0x114))/0x2*(-parseInt(_0x4f6a85(0x108))/0x3)+-parseInt(_0x4f6a85(0x103))/0x4*(-parseInt(_0x4f6a85(0x107))/0x5)+parseInt(_0x4f6a85(0x10d))/0x6+-parseInt(_0x4f6a85(0x111))/0x7*(-parseInt(_0x4f6a85(0x102))/0x8)+parseInt(_0x4f6a85(0x10b))/0x9*(-parseInt(_0x4f6a85(0x104))/0xa)+-parseInt(_0x4f6a85(0x113))/0xb*(parseInt(_0x4f6a85(0x112))/0xc);if(_0x6f803===_0x9f3eb9)break;else _0x292589['push'](_0x292589['shift']());}catch(_0x83b207){_0x292589['push'](_0x292589['shift']());}}}(a185_0x38cc,0xddf54));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a185_0x26927e(0x101),a185_0x26927e(0x115),a185_0x26927e(0x105)]['join']('\x0a');export const sqlSave={'service':a185_0x26927e(0x117),'command':'save','description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a185_0x26927e(0x106),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a185_0x26927e(0x110),'type':a185_0x26927e(0x10e),'required':!![],'description':a185_0x26927e(0x10a)},SQLCODE_FLAG_OPTIONAL,{'name':a185_0x26927e(0x118),'type':a185_0x26927e(0x10e),'description':a185_0x26927e(0x109)},{'name':'db','type':a185_0x26927e(0x10e),'description':a185_0x26927e(0x116)},{'name':'description','type':'string','description':a185_0x26927e(0x119)}],async 'validate'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x3dba4b=a185_0x26927e;throw CliErrors[_0x3dba4b(0x10f)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- (function(_0x1abe96,_0x35f6da){const _0x71ac57=a179_0x44a9,_0x2aba6f=_0x1abe96();while(!![]){try{const _0xfe66fb=-parseInt(_0x71ac57(0xb9))/0x1+parseInt(_0x71ac57(0xa8))/0x2*(parseInt(_0x71ac57(0xb5))/0x3)+-parseInt(_0x71ac57(0xb3))/0x4+parseInt(_0x71ac57(0xa4))/0x5+-parseInt(_0x71ac57(0xb1))/0x6+parseInt(_0x71ac57(0xc1))/0x7*(-parseInt(_0x71ac57(0xaf))/0x8)+-parseInt(_0x71ac57(0xb2))/0x9*(-parseInt(_0x71ac57(0xa5))/0xa);if(_0xfe66fb===_0x35f6da)break;else _0x2aba6f['push'](_0x2aba6f['shift']());}catch(_0x13b998){_0x2aba6f['push'](_0x2aba6f['shift']());}}}(a179_0x4efb,0x3f540));import{createInterface}from'node:readline';import{join}from'node:path';function a179_0x4efb(){const _0x23e7d6=['sqlConfig','toLowerCase','test','\x20-->','lastSync','map','trimStart','question','stdin','yes','sqlRoot','dbId','897025xuSZkF','9530cMuGoo','close','syncedAt','269678LxJjhK','split','mybatisXml','mode','sqlName','length','filter','720PLuegY','join','2820180hPShXA','10269BaxDaR','1173608RYrAXK','version','3SzgyeT','replace','description','trim','310573arinWZ','endsWith','sqlCode','includes','\x20[y/N]\x20','path','stderr','dbName','5306CEtxeP'];a179_0x4efb=function(){return _0x23e7d6;};return a179_0x4efb();}import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';function a179_0x44a9(_0x241193,_0x52b407){_0x241193=_0x241193-0xa4;const _0x4efb03=a179_0x4efb();let _0x44a959=_0x4efb03[_0x241193];return _0x44a959;}export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x4c6d0f,_0x193e8b,_0x30bcac,_0x4c5633){const _0x1ca8ac=a179_0x44a9,_0x16b7ce=detectSqlMode(_0x193e8b);return{'path':buildSqlRelativePath(_0x4c6d0f[_0x1ca8ac(0xbb)],_0x4c6d0f['sqlName'],_0x4c5633?.['dbName'],_0x16b7ce,_0x4c6d0f[_0x1ca8ac(0xcd)]),'hash':_0x30bcac,'remoteId':_0x4c6d0f['id'],'version':_0x4c6d0f[_0x1ca8ac(0xb4)],'dbId':Number(_0x4c6d0f[_0x1ca8ac(0xcd)]),'dbName':_0x4c5633?.[_0x1ca8ac(0xc0)],'sqlName':_0x4c6d0f[_0x1ca8ac(0xac)],'sqlConfig':_0x4c6d0f[_0x1ca8ac(0xc2)]??undefined,'mode':_0x16b7ce};}export function cloneSqlLockData(_0x40ac0d){const _0x1bfc02=a179_0x44a9;return{'apps':Object['fromEntries'](Object['entries'](_0x40ac0d['apps'])[_0x1bfc02(0xc7)](([_0x3c3314,_0x3d2a78])=>[_0x3c3314,{'sqlRoot':_0x3d2a78[_0x1bfc02(0xcc)],'lastSync':_0x3d2a78[_0x1bfc02(0xc6)],'sqls':{..._0x3d2a78['sqls']}}]))};}export function ensureRemoteSqlContent(_0x549524){return _0x549524['sqlContent']??'';}export function buildLocalSqlFileContent(_0x240aef,_0x194852,_0x218c6b){const _0x3eb9a2=a179_0x44a9,_0xd24ecd=_0x218c6b?.['mode']??detectSqlMode(_0x194852),_0x3a2897=stripLocalSqlMetadata(_0x194852,_0xd24ecd)[_0x3eb9a2(0xb8)](),_0x5aff38=[...buildMetadataHeaderLines({'sqlCode':_0x240aef['sqlCode'],'sqlName':_0x240aef[_0x3eb9a2(0xac)],'dbId':_0x240aef[_0x3eb9a2(0xcd)],'dbName':_0x218c6b?.[_0x3eb9a2(0xc0)],'mode':_0xd24ecd,'syncedAt':_0x218c6b?.[_0x3eb9a2(0xa7)],'description':_0x218c6b?.[_0x3eb9a2(0xb7)]},_0xd24ecd),'',_0x3a2897],_0x42efc5=_0x5aff38[_0x3eb9a2(0xb0)]('\x0a');return _0x42efc5[_0x3eb9a2(0xba)]('\x0a')?_0x42efc5:_0x42efc5+'\x0a';}export function stripLocalSqlMetadata(_0x2253ca,_0x4de9a1){const _0x250b42=a179_0x44a9,_0xe0fd9e=_0x2253ca[_0x250b42(0xb6)](/\r\n/g,'\x0a')[_0x250b42(0xa9)]('\x0a'),_0x521b14=[];let _0x5e6eb0=0x0;if(_0x4de9a1===_0x250b42(0xaa))while(_0x5e6eb0<_0xe0fd9e[_0x250b42(0xad)]){const _0x1a376c=_0xe0fd9e[_0x5e6eb0]??'';if(/^\s*<!--\s*@lovrabet\./[_0x250b42(0xc4)](_0x1a376c)){_0x5e6eb0++;continue;}if(_0x1a376c[_0x250b42(0xb8)]()===''&&_0x5e6eb0>0x0){_0x5e6eb0++;continue;}break;}else while(_0x5e6eb0<_0xe0fd9e[_0x250b42(0xad)]){const _0x3a9b05=_0xe0fd9e[_0x5e6eb0]??'';if(/^\s*--\s*@lovrabet\./[_0x250b42(0xc4)](_0x3a9b05)){_0x5e6eb0++;continue;}if(_0x3a9b05[_0x250b42(0xb8)]()===''&&_0x5e6eb0>0x0){_0x5e6eb0++;continue;}break;}for(;_0x5e6eb0<_0xe0fd9e[_0x250b42(0xad)];_0x5e6eb0++){_0x521b14['push'](_0xe0fd9e[_0x5e6eb0]);}return _0x521b14[_0x250b42(0xb0)]('\x0a')[_0x250b42(0xc8)]();}export function resolveSqlMode(_0x41ef4b,_0x209b12){const _0x263302=a179_0x44a9;if(_0x209b12?.['mode'])return _0x209b12[_0x263302(0xab)];return detectSqlMode(_0x41ef4b);}export function resolveSqlFileName(_0x5dcc2b,_0x9d6333,_0x10afc0){const _0x1a9691=a179_0x44a9;if(_0x10afc0?.[_0x1a9691(0xbe)])return _0x10afc0['path'];if(_0x10afc0?.[_0x1a9691(0xac)]||_0x10afc0?.[_0x1a9691(0xc0)])return buildSqlRelativePath(_0x5dcc2b,_0x10afc0?.['sqlName'],_0x10afc0?.[_0x1a9691(0xc0)],resolveSqlMode(_0x9d6333,_0x10afc0),_0x10afc0?.[_0x1a9691(0xcd)]);return buildDefaultSqlFileName(_0x5dcc2b,resolveSqlMode(_0x9d6333,_0x10afc0));}export function resolveSqlLocalDir(_0x176ba7,_0x52c350){return join(_0x176ba7,SQL_LOCAL_REL_DIR,_0x52c350);}export async function confirmForceOverwrite(_0x4a143c){const _0x18727f=a179_0x44a9,_0x35c9bf=createInterface({'input':process[_0x18727f(0xca)],'output':process[_0x18727f(0xbf)]}),_0x44e3bb=await new Promise(_0x2ab878=>{const _0x7adfd1=_0x18727f;_0x35c9bf[_0x7adfd1(0xc9)](_0x4a143c+_0x7adfd1(0xbd),_0x2ab878);});return _0x35c9bf[_0x18727f(0xa6)](),['y',_0x18727f(0xcb)][_0x18727f(0xbc)](_0x44e3bb['trim']()[_0x18727f(0xc3)]());}export function findSqlLockScope(_0x117ae3,_0x5148ee){return _0x117ae3['apps'][_0x5148ee];}function buildMetadataHeaderLines(_0x48d98b,_0x2a75fc){const _0x1566a0=a179_0x44a9,_0x2c96c5=[[_0x1566a0(0xbb),_0x48d98b[_0x1566a0(0xbb)]],[_0x1566a0(0xac),_0x48d98b['sqlName']],[_0x1566a0(0xcd),_0x48d98b[_0x1566a0(0xcd)]],[_0x1566a0(0xc0),_0x48d98b[_0x1566a0(0xc0)]],[_0x1566a0(0xab),_0x48d98b[_0x1566a0(0xab)]],[_0x1566a0(0xa7),_0x48d98b['syncedAt']],['description',_0x48d98b[_0x1566a0(0xb7)]]];if(_0x2a75fc===_0x1566a0(0xaa))return _0x2c96c5['filter'](([,_0x4d3fe9])=>_0x4d3fe9!==undefined&&_0x4d3fe9!==null&&String(_0x4d3fe9)['trim']()!=='')[_0x1566a0(0xc7)](([_0x3b6131,_0x38cbff])=>'<!--\x20@lovrabet.'+_0x3b6131+':\x20'+String(_0x38cbff)+_0x1566a0(0xc5));return _0x2c96c5[_0x1566a0(0xae)](([,_0x1911cc])=>_0x1911cc!==undefined&&_0x1911cc!==null&&String(_0x1911cc)[_0x1566a0(0xb8)]()!=='')[_0x1566a0(0xc7)](([_0x5116b1,_0x4b5566])=>'--\x20@lovrabet.'+_0x5116b1+':\x20'+String(_0x4b5566));}
1
+ function a186_0xb1ab(_0x28f7cb,_0x4f8ffc){_0x28f7cb=_0x28f7cb-0x14d;const _0xc90161=a186_0xc901();let _0xb1abe0=_0xc90161[_0x28f7cb];return _0xb1abe0;}(function(_0x308275,_0x798ac2){const _0x5e65be=a186_0xb1ab,_0x3ad640=_0x308275();while(!![]){try{const _0x36687c=-parseInt(_0x5e65be(0x158))/0x1+parseInt(_0x5e65be(0x16a))/0x2+-parseInt(_0x5e65be(0x168))/0x3+parseInt(_0x5e65be(0x15b))/0x4+parseInt(_0x5e65be(0x165))/0x5*(-parseInt(_0x5e65be(0x16c))/0x6)+parseInt(_0x5e65be(0x155))/0x7*(parseInt(_0x5e65be(0x170))/0x8)+parseInt(_0x5e65be(0x16f))/0x9;if(_0x36687c===_0x798ac2)break;else _0x3ad640['push'](_0x3ad640['shift']());}catch(_0xb15133){_0x3ad640['push'](_0x3ad640['shift']());}}}(a186_0xc901,0x2bd50));import{createInterface}from'node:readline';function a186_0xc901(){const _0x2628b0=['question','fromEntries','join','yes','sqlConfig','mode','description','filter','dbId','test','sqlName','7315DQEYND','split','includes','50910RWzDBE','lastSync','sqlCode','1078260FgeZzv','map','<!--\x20@lovrabet.','version','mybatisXml','dbName','apps','length','stderr','toLowerCase','1152815TmZXMj','sqlContent','push','860388Yzldph','\x20[y/N]\x20','24926TRvaxZ','close','6ZTKwMA','syncedAt','trim','3317328ibDegz','744YaqgRT','sqlRoot'];a186_0xc901=function(){return _0x2628b0;};return a186_0xc901();}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x4f5889,_0x4cd577,_0x1dda70,_0x3b85bc){const _0x287614=a186_0xb1ab,_0x310d8f=detectSqlMode(_0x4cd577);return{'path':buildSqlRelativePath(_0x4f5889[_0x287614(0x15a)],_0x4f5889['sqlName'],_0x3b85bc?.[_0x287614(0x160)],_0x310d8f,_0x4f5889['dbId']),'hash':_0x1dda70,'remoteId':_0x4f5889['id'],'version':_0x4f5889[_0x287614(0x15e)],'dbId':Number(_0x4f5889[_0x287614(0x152)]),'dbName':_0x3b85bc?.['dbName'],'sqlName':_0x4f5889[_0x287614(0x154)],'sqlConfig':_0x4f5889[_0x287614(0x14e)]??undefined,'mode':_0x310d8f};}export function cloneSqlLockData(_0x11e5af){const _0x218af2=a186_0xb1ab;return{'apps':Object[_0x218af2(0x173)](Object['entries'](_0x11e5af[_0x218af2(0x161)])['map'](([_0x2a8273,_0x45cf20])=>[_0x2a8273,{'sqlRoot':_0x45cf20[_0x218af2(0x171)],'lastSync':_0x45cf20[_0x218af2(0x159)],'sqls':{..._0x45cf20['sqls']}}]))};}export function ensureRemoteSqlContent(_0x477d6c){const _0x16f01f=a186_0xb1ab;return _0x477d6c[_0x16f01f(0x166)]??'';}export function buildLocalSqlFileContent(_0x4918c8,_0x4b087a,_0xf4741){const _0x12bf1b=a186_0xb1ab,_0x36793d=_0xf4741?.['mode']??detectSqlMode(_0x4b087a),_0x37a6b3=stripLocalSqlMetadata(_0x4b087a,_0x36793d)[_0x12bf1b(0x16e)](),_0x3e2043=[...buildMetadataHeaderLines({'sqlCode':_0x4918c8[_0x12bf1b(0x15a)],'sqlName':_0x4918c8[_0x12bf1b(0x154)],'dbId':_0x4918c8[_0x12bf1b(0x152)],'dbName':_0xf4741?.['dbName'],'mode':_0x36793d,'syncedAt':_0xf4741?.[_0x12bf1b(0x16d)],'description':_0xf4741?.['description']},_0x36793d),'',_0x37a6b3],_0x4ff192=_0x3e2043[_0x12bf1b(0x174)]('\x0a');return _0x4ff192['endsWith']('\x0a')?_0x4ff192:_0x4ff192+'\x0a';}export function stripLocalSqlMetadata(_0x3bad0f,_0x476451){const _0x547472=a186_0xb1ab,_0x3ac4fd=_0x3bad0f['replace'](/\r\n/g,'\x0a')[_0x547472(0x156)]('\x0a'),_0x4cfb60=[];let _0x387040=0x0;if(_0x476451===_0x547472(0x15f))while(_0x387040<_0x3ac4fd[_0x547472(0x162)]){const _0x31b659=_0x3ac4fd[_0x387040]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x31b659)){_0x387040++;continue;}if(_0x31b659[_0x547472(0x16e)]()===''&&_0x387040>0x0){_0x387040++;continue;}break;}else while(_0x387040<_0x3ac4fd[_0x547472(0x162)]){const _0x307d95=_0x3ac4fd[_0x387040]??'';if(/^\s*--\s*@lovrabet\./[_0x547472(0x153)](_0x307d95)){_0x387040++;continue;}if(_0x307d95[_0x547472(0x16e)]()===''&&_0x387040>0x0){_0x387040++;continue;}break;}for(;_0x387040<_0x3ac4fd['length'];_0x387040++){_0x4cfb60[_0x547472(0x167)](_0x3ac4fd[_0x387040]);}return _0x4cfb60[_0x547472(0x174)]('\x0a')['trimStart']();}export function resolveSqlMode(_0x1d41b6,_0xce699c){const _0x5684d7=a186_0xb1ab;if(_0xce699c?.[_0x5684d7(0x14f)])return _0xce699c[_0x5684d7(0x14f)];return detectSqlMode(_0x1d41b6);}export function resolveSqlFileName(_0x287ab0,_0x25f850,_0x4fb0d6){const _0x4203f2=a186_0xb1ab;if(_0x4fb0d6?.['path'])return _0x4fb0d6['path'];if(_0x4fb0d6?.[_0x4203f2(0x154)]||_0x4fb0d6?.[_0x4203f2(0x160)])return buildSqlRelativePath(_0x287ab0,_0x4fb0d6?.[_0x4203f2(0x154)],_0x4fb0d6?.[_0x4203f2(0x160)],resolveSqlMode(_0x25f850,_0x4fb0d6),_0x4fb0d6?.[_0x4203f2(0x152)]);return buildDefaultSqlFileName(_0x287ab0,resolveSqlMode(_0x25f850,_0x4fb0d6));}export function resolveSqlLocalDir(_0x433089,_0x3439cd){return join(_0x433089,SQL_LOCAL_REL_DIR,_0x3439cd);}export async function confirmForceOverwrite(_0x52091d){const _0xf13577=a186_0xb1ab,_0x15d735=createInterface({'input':process['stdin'],'output':process[_0xf13577(0x163)]}),_0x1c9301=await new Promise(_0x3dcb99=>{const _0xe8f2f0=_0xf13577;_0x15d735[_0xe8f2f0(0x172)](_0x52091d+_0xe8f2f0(0x169),_0x3dcb99);});return _0x15d735[_0xf13577(0x16b)](),['y',_0xf13577(0x14d)][_0xf13577(0x157)](_0x1c9301[_0xf13577(0x16e)]()[_0xf13577(0x164)]());}export function findSqlLockScope(_0x13927a,_0xaa965d){const _0x50a5e5=a186_0xb1ab;return _0x13927a[_0x50a5e5(0x161)][_0xaa965d];}function buildMetadataHeaderLines(_0x6218c9,_0x28fe3b){const _0x579f44=a186_0xb1ab,_0x120f70=[['sqlCode',_0x6218c9[_0x579f44(0x15a)]],[_0x579f44(0x154),_0x6218c9[_0x579f44(0x154)]],[_0x579f44(0x152),_0x6218c9[_0x579f44(0x152)]],[_0x579f44(0x160),_0x6218c9[_0x579f44(0x160)]],['mode',_0x6218c9[_0x579f44(0x14f)]],['syncedAt',_0x6218c9[_0x579f44(0x16d)]],['description',_0x6218c9[_0x579f44(0x150)]]];if(_0x28fe3b===_0x579f44(0x15f))return _0x120f70[_0x579f44(0x151)](([,_0x4d4c13])=>_0x4d4c13!==undefined&&_0x4d4c13!==null&&String(_0x4d4c13)['trim']()!=='')['map'](([_0x56c335,_0x37f914])=>_0x579f44(0x15d)+_0x56c335+':\x20'+String(_0x37f914)+'\x20-->');return _0x120f70['filter'](([,_0x56cc8e])=>_0x56cc8e!==undefined&&_0x56cc8e!==null&&String(_0x56cc8e)[_0x579f44(0x16e)]()!=='')[_0x579f44(0x15c)](([_0x314c41,_0x4f4a9b])=>'--\x20@lovrabet.'+_0x314c41+':\x20'+String(_0x4f4a9b));}
@@ -1 +1 @@
1
- const a180_0x1cb147=a180_0x3c63;(function(_0x2d113e,_0x4996ba){const _0x283400=a180_0x3c63,_0xcca602=_0x2d113e();while(!![]){try{const _0x2186ff=-parseInt(_0x283400(0x1a1))/0x1+parseInt(_0x283400(0x1a4))/0x2+-parseInt(_0x283400(0x1a6))/0x3+-parseInt(_0x283400(0x1b4))/0x4+-parseInt(_0x283400(0x1bb))/0x5+-parseInt(_0x283400(0x1a0))/0x6*(-parseInt(_0x283400(0x1b5))/0x7)+parseInt(_0x283400(0x1ac))/0x8;if(_0x2186ff===_0x4996ba)break;else _0xcca602['push'](_0xcca602['shift']());}catch(_0x198b51){_0xcca602['push'](_0xcca602['shift']());}}}(a180_0x2c67,0xd041e));import{listSqlQueries}from'../../core/api-client.js';function a180_0x2c67(){const _0xc3a499=['hash','bool','\x20remote-only','keys','All\x20SQL\x20queries\x20are\x20in\x20sync.','\x20modified,\x20','2110974qCdqcu','1083285OVlkMI','length','path','416334afkRfc','lockKey','2115363ZdjHRr','\x20unchanged','tableData','sqlName','sqlRoot','status','32280392rCzaIe','appCode','lockFilePath','push','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','relativePath','remote','has','4327892WMMNuN','7eIbGOQ','filePath','sql','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','boolean','\x20missing,\x20','4358220bVWuoe','map','read'];a180_0x2c67=function(){return _0xc3a499;};return a180_0x2c67();}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a180_0x3c63(_0x25760f,_0x5a8c40){_0x25760f=_0x25760f-0x19b;const _0x2c671e=a180_0x2c67();let _0x3c63d2=_0x2c671e[_0x25760f];return _0x3c63d2;}async function fetchAllSqlCodes(_0x29d106){const _0x1219d7=a180_0x3c63,_0x202701=[];let _0x5a3a2e=0x1;while(!![]){const _0x27ac2d=await listSqlQueries(_0x29d106,{'currentPage':_0x5a3a2e,'pageSize':PAGE_SIZE}),_0x1b8bcb=_0x27ac2d[_0x1219d7(0x1a8)]??[];_0x202701[_0x1219d7(0x1af)](..._0x1b8bcb[_0x1219d7(0x1bc)](_0x943b53=>_0x943b53['sqlCode']));if(_0x1b8bcb[_0x1219d7(0x1a2)]===0x0)break;const _0x51a1db=_0x27ac2d['paging']?.['totalCount'];if(_0x51a1db!=null?_0x202701[_0x1219d7(0x1a2)]>=_0x51a1db:_0x1b8bcb[_0x1219d7(0x1a2)]<PAGE_SIZE)break;_0x5a3a2e++;}return _0x202701;}export const sqlStatus={'service':a180_0x1cb147(0x1b7),'command':a180_0x1cb147(0x1ab),'description':a180_0x1cb147(0x1b0),'risk':a180_0x1cb147(0x1bd),'flags':[{'name':a180_0x1cb147(0x1b2),'type':a180_0x1cb147(0x1b9),'description':a180_0x1cb147(0x1b8)}],async 'execute'(_0x31413c){const _0x17d3a2=a180_0x1cb147,_0xc3ba1c=loadSqlProjectConfig(_0x31413c['appCode']),_0x14d4bd=await readSqlLockFile(_0xc3ba1c[_0x17d3a2(0x1ae)]),{appLock:_0x1e8674}=ensureSqlLockScope(_0x14d4bd??createEmptySqlLock(),_0xc3ba1c[_0x17d3a2(0x1ad)],_0xc3ba1c[_0x17d3a2(0x1aa)],_0x17d3a2(0x1ab)),_0x366ef7=await scanLocalSqlQueries(_0xc3ba1c),_0x5c95d1=[],_0x17ad81=[],_0xfd577=[],_0x342c86=[],_0x129e4e=new Set(_0x366ef7[_0x17d3a2(0x1bc)](_0x525688=>_0x525688[_0x17d3a2(0x1a5)]));for(const _0x52dde7 of _0x366ef7){const _0x41b056=await computeSqlFileHash(_0x52dde7[_0x17d3a2(0x1b6)]),_0x3517b4=_0x1e8674['sqls'][_0x52dde7[_0x17d3a2(0x1a5)]],_0x3c3bb2=!!_0x3517b4&&_0x3517b4[_0x17d3a2(0x1a3)]!==_0x52dde7[_0x17d3a2(0x1b1)],_0x4f3ec3=!!_0x3517b4&&!!_0x52dde7[_0x17d3a2(0x1a9)]&&_0x3517b4[_0x17d3a2(0x1a9)]!==_0x52dde7[_0x17d3a2(0x1a9)];if(!_0x3517b4)_0x5c95d1[_0x17d3a2(0x1af)](_0x52dde7['lockKey']);else _0x3517b4[_0x17d3a2(0x1be)]!==_0x41b056||_0x3c3bb2||_0x4f3ec3?_0x17ad81[_0x17d3a2(0x1af)](_0x52dde7['lockKey']):_0xfd577[_0x17d3a2(0x1af)](_0x52dde7[_0x17d3a2(0x1a5)]);}for(const _0x5e50b2 of Object[_0x17d3a2(0x19d)](_0x1e8674['sqls'])){!_0x129e4e['has'](_0x5e50b2)&&_0x342c86[_0x17d3a2(0x1af)](_0x5e50b2);}const _0x3a51cf=[];if(_0x31413c[_0x17d3a2(0x19b)](_0x17d3a2(0x1b2))){const _0x39bb2e=await fetchAllSqlCodes(_0x31413c[_0x17d3a2(0x1ad)]);for(const _0x5bd99b of _0x39bb2e){!_0x129e4e[_0x17d3a2(0x1b3)](_0x5bd99b)&&!_0x1e8674['sqls'][_0x5bd99b]&&_0x3a51cf[_0x17d3a2(0x1af)](_0x5bd99b);}}const _0x5f3470=_0x5c95d1[_0x17d3a2(0x1a2)]===0x0&&_0x17ad81[_0x17d3a2(0x1a2)]===0x0&&_0x342c86[_0x17d3a2(0x1a2)]===0x0&&_0x3a51cf[_0x17d3a2(0x1a2)]===0x0;return{'ok':!![],'data':{'added':_0x5c95d1,'modified':_0x17ad81,'missing':_0x342c86,'unchanged':_0xfd577,'remoteOnly':_0x3a51cf},'message':_0x5f3470?_0x17d3a2(0x19e):_0x5c95d1[_0x17d3a2(0x1a2)]+'\x20added,\x20'+_0x17ad81[_0x17d3a2(0x1a2)]+_0x17d3a2(0x19f)+_0x342c86['length']+_0x17d3a2(0x1ba)+_0xfd577[_0x17d3a2(0x1a2)]+_0x17d3a2(0x1a7)+(_0x3a51cf[_0x17d3a2(0x1a2)]>0x0?',\x20'+_0x3a51cf[_0x17d3a2(0x1a2)]+_0x17d3a2(0x19c):'')};}};
1
+ const a187_0x1ced66=a187_0x1d44;(function(_0x17683e,_0x1c63c5){const _0x41b231=a187_0x1d44,_0x4dc5e3=_0x17683e();while(!![]){try{const _0x181eb5=-parseInt(_0x41b231(0xc8))/0x1*(parseInt(_0x41b231(0xcf))/0x2)+-parseInt(_0x41b231(0xcd))/0x3*(-parseInt(_0x41b231(0xe1))/0x4)+-parseInt(_0x41b231(0xde))/0x5*(-parseInt(_0x41b231(0xc6))/0x6)+-parseInt(_0x41b231(0xe3))/0x7*(-parseInt(_0x41b231(0xd1))/0x8)+parseInt(_0x41b231(0xca))/0x9+parseInt(_0x41b231(0xd0))/0xa*(parseInt(_0x41b231(0xc4))/0xb)+parseInt(_0x41b231(0xc5))/0xc*(-parseInt(_0x41b231(0xd2))/0xd);if(_0x181eb5===_0x1c63c5)break;else _0x4dc5e3['push'](_0x4dc5e3['shift']());}catch(_0x291e0d){_0x4dc5e3['push'](_0x4dc5e3['shift']());}}}(a187_0x7085,0x4c011));function a187_0x7085(){const _0x549a99=['sqlCode','has','sqls','sqlRoot','2887247Rhxyjx','2568Mhhkzq','6iBPnkz','lockFilePath','1mehFyw','appCode','2772135xwgZyO','length','paging','1770621BTDfTU','\x20missing,\x20','58468uQgPev','10TyXFOg','156888CaHjUY','79066XjhOjj','read','tableData','keys','relativePath','push','sqlName','boolean','status','path','lockKey','map','1524485ZukQTw','sql','\x20unchanged','4xyLpma','remote','63ZHernA','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','filePath'];a187_0x7085=function(){return _0x549a99;};return a187_0x7085();}import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a187_0x1d44(_0x11258a,_0x562db0){_0x11258a=_0x11258a-0xbe;const _0x70857c=a187_0x7085();let _0x1d4474=_0x70857c[_0x11258a];return _0x1d4474;}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x3ae2a6){const _0x2b755e=a187_0x1d44,_0xd24479=[];let _0x5d2579=0x1;while(!![]){const _0x2233da=await listSqlQueries(_0x3ae2a6,{'currentPage':_0x5d2579,'pageSize':PAGE_SIZE}),_0x3d5bc0=_0x2233da[_0x2b755e(0xd4)]??[];_0xd24479[_0x2b755e(0xd7)](..._0x3d5bc0['map'](_0x32867f=>_0x32867f[_0x2b755e(0xc0)]));if(_0x3d5bc0['length']===0x0)break;const _0x10ee35=_0x2233da[_0x2b755e(0xcc)]?.['totalCount'];if(_0x10ee35!=null?_0xd24479['length']>=_0x10ee35:_0x3d5bc0[_0x2b755e(0xcb)]<PAGE_SIZE)break;_0x5d2579++;}return _0xd24479;}export const sqlStatus={'service':a187_0x1ced66(0xdf),'command':a187_0x1ced66(0xda),'description':a187_0x1ced66(0xbe),'risk':a187_0x1ced66(0xd3),'flags':[{'name':'remote','type':a187_0x1ced66(0xd9),'description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x57e1db){const _0x2e8a51=a187_0x1ced66,_0x2166e9=loadSqlProjectConfig(_0x57e1db[_0x2e8a51(0xc9)]),_0x6224ef=await readSqlLockFile(_0x2166e9[_0x2e8a51(0xc7)]),{appLock:_0x163125}=ensureSqlLockScope(_0x6224ef??createEmptySqlLock(),_0x2166e9[_0x2e8a51(0xc9)],_0x2166e9[_0x2e8a51(0xc3)],_0x2e8a51(0xda)),_0x35c279=await scanLocalSqlQueries(_0x2166e9),_0x337f47=[],_0x3c3fb7=[],_0x1637bf=[],_0x58c5a6=[],_0x35cda8=new Set(_0x35c279[_0x2e8a51(0xdd)](_0x333f1d=>_0x333f1d[_0x2e8a51(0xdc)]));for(const _0x453cbc of _0x35c279){const _0x1378ec=await computeSqlFileHash(_0x453cbc[_0x2e8a51(0xbf)]),_0x44a5e8=_0x163125[_0x2e8a51(0xc2)][_0x453cbc['lockKey']],_0x2b12a9=!!_0x44a5e8&&_0x44a5e8[_0x2e8a51(0xdb)]!==_0x453cbc[_0x2e8a51(0xd6)],_0x59ad79=!!_0x44a5e8&&!!_0x453cbc[_0x2e8a51(0xd8)]&&_0x44a5e8['sqlName']!==_0x453cbc[_0x2e8a51(0xd8)];if(!_0x44a5e8)_0x337f47['push'](_0x453cbc[_0x2e8a51(0xdc)]);else _0x44a5e8['hash']!==_0x1378ec||_0x2b12a9||_0x59ad79?_0x3c3fb7[_0x2e8a51(0xd7)](_0x453cbc['lockKey']):_0x1637bf[_0x2e8a51(0xd7)](_0x453cbc[_0x2e8a51(0xdc)]);}for(const _0x5f3295 of Object[_0x2e8a51(0xd5)](_0x163125[_0x2e8a51(0xc2)])){!_0x35cda8['has'](_0x5f3295)&&_0x58c5a6[_0x2e8a51(0xd7)](_0x5f3295);}const _0x22e8b3=[];if(_0x57e1db['bool'](_0x2e8a51(0xe2))){const _0x4642ac=await fetchAllSqlCodes(_0x57e1db[_0x2e8a51(0xc9)]);for(const _0x241d45 of _0x4642ac){!_0x35cda8[_0x2e8a51(0xc1)](_0x241d45)&&!_0x163125['sqls'][_0x241d45]&&_0x22e8b3[_0x2e8a51(0xd7)](_0x241d45);}}const _0xf049e=_0x337f47['length']===0x0&&_0x3c3fb7['length']===0x0&&_0x58c5a6[_0x2e8a51(0xcb)]===0x0&&_0x22e8b3[_0x2e8a51(0xcb)]===0x0;return{'ok':!![],'data':{'added':_0x337f47,'modified':_0x3c3fb7,'missing':_0x58c5a6,'unchanged':_0x1637bf,'remoteOnly':_0x22e8b3},'message':_0xf049e?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x337f47[_0x2e8a51(0xcb)]+'\x20added,\x20'+_0x3c3fb7['length']+'\x20modified,\x20'+_0x58c5a6['length']+_0x2e8a51(0xce)+_0x1637bf['length']+_0x2e8a51(0xe0)+(_0x22e8b3[_0x2e8a51(0xcb)]>0x0?',\x20'+_0x22e8b3[_0x2e8a51(0xcb)]+'\x20remote-only':'')};}};