@lovrabet/rabetbase-cli 2.2.5-beta.1 → 2.3.1-beta.2

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 (241) hide show
  1. package/README.md +1 -1
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/auth/auth-server-ui.js +1 -1
  6. package/lib/auth/auth-server.js +1 -1
  7. package/lib/auth/constant.js +1 -1
  8. package/lib/auth/get-cookie.js +1 -1
  9. package/lib/auth/get-session-user.js +1 -1
  10. package/lib/auth/is-session-valid.js +1 -1
  11. package/lib/auth/login-success-html.js +1 -1
  12. package/lib/auth/logout.js +1 -1
  13. package/lib/cli-flags.js +1 -1
  14. package/lib/cli.js +1 -1
  15. package/lib/commands/api/generate.js +1 -1
  16. package/lib/commands/api/index.js +1 -1
  17. package/lib/commands/api/list.js +1 -1
  18. package/lib/commands/api/pull.js +1 -1
  19. package/lib/commands/api/shared.js +1 -1
  20. package/lib/commands/app/add.js +1 -1
  21. package/lib/commands/app/discover.js +1 -1
  22. package/lib/commands/app/index.js +1 -1
  23. package/lib/commands/app/list.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/use.js +1 -1
  27. package/lib/commands/app-config/delete.js +1 -1
  28. package/lib/commands/app-config/get.js +1 -1
  29. package/lib/commands/app-config/index.js +1 -1
  30. package/lib/commands/app-config/list.js +1 -1
  31. package/lib/commands/app-config/set.js +1 -1
  32. package/lib/commands/app-config/shared.js +1 -1
  33. package/lib/commands/auth/index.js +1 -1
  34. package/lib/commands/bff/create.js +1 -1
  35. package/lib/commands/bff/delete.js +1 -1
  36. package/lib/commands/bff/detail.js +1 -1
  37. package/lib/commands/bff/index.js +1 -1
  38. package/lib/commands/bff/list.js +1 -1
  39. package/lib/commands/bff/pull.js +1 -1
  40. package/lib/commands/bff/push.js +1 -1
  41. package/lib/commands/bff/status.js +1 -1
  42. package/lib/commands/cli-skill/index.js +1 -0
  43. package/lib/commands/cli-update.js +1 -1
  44. package/lib/commands/codegen/index.js +1 -1
  45. package/lib/commands/codegen/sdk.js +1 -1
  46. package/lib/commands/codegen/sql.js +1 -1
  47. package/lib/commands/common/app-selector.js +1 -1
  48. package/lib/commands/common/flags.js +1 -1
  49. package/lib/commands/common/validate.js +1 -1
  50. package/lib/commands/config/get.js +1 -1
  51. package/lib/commands/config/index.js +1 -1
  52. package/lib/commands/config/list.js +1 -1
  53. package/lib/commands/config/set.js +1 -1
  54. package/lib/commands/config/shared.js +1 -1
  55. package/lib/commands/data/filter.js +1 -1
  56. package/lib/commands/data/getOne.js +1 -1
  57. package/lib/commands/data/index.js +1 -1
  58. package/lib/commands/data/shared.js +1 -1
  59. package/lib/commands/dataset/business-group-update.js +1 -1
  60. package/lib/commands/dataset/capability.js +1 -1
  61. package/lib/commands/dataset/delete.js +1 -1
  62. package/lib/commands/dataset/detail.js +1 -1
  63. package/lib/commands/dataset/extend-update.js +1 -1
  64. package/lib/commands/dataset/field-update.js +1 -1
  65. package/lib/commands/dataset/index.js +1 -1
  66. package/lib/commands/dataset/list.js +1 -1
  67. package/lib/commands/dataset/operations.js +1 -1
  68. package/lib/commands/dataset/relation-create.js +1 -1
  69. package/lib/commands/dataset/relation-delete.js +1 -1
  70. package/lib/commands/dataset/relation-shared.js +1 -1
  71. package/lib/commands/dataset/relation-update.js +1 -1
  72. package/lib/commands/dataset/relations.js +1 -1
  73. package/lib/commands/dataset/rename.js +1 -1
  74. package/lib/commands/dataset/restore.js +1 -0
  75. package/lib/commands/db/analyze-cancel.js +1 -1
  76. package/lib/commands/db/analyze-start.js +1 -1
  77. package/lib/commands/db/analyze-status.js +1 -1
  78. package/lib/commands/db/create.js +1 -1
  79. package/lib/commands/db/delete.js +1 -1
  80. package/lib/commands/db/detail.js +1 -1
  81. package/lib/commands/db/diff.js +1 -1
  82. package/lib/commands/db/index.js +1 -1
  83. package/lib/commands/db/list.js +1 -1
  84. package/lib/commands/db/shared.js +1 -1
  85. package/lib/commands/db/tables.js +1 -1
  86. package/lib/commands/db/test.js +1 -1
  87. package/lib/commands/db/update.js +1 -1
  88. package/lib/commands/doctor.js +1 -1
  89. package/lib/commands/init/index.js +1 -1
  90. package/lib/commands/issue/index.js +1 -1
  91. package/lib/commands/issue/nudge.js +1 -1
  92. package/lib/commands/issue/report.js +1 -1
  93. package/lib/commands/issue/shared.js +1 -1
  94. package/lib/commands/logs/index.js +1 -1
  95. package/lib/commands/menu/index.js +1 -1
  96. package/lib/commands/menu/list.js +1 -1
  97. package/lib/commands/menu/shared/compare-table.js +1 -1
  98. package/lib/commands/menu/shared/index.js +1 -1
  99. package/lib/commands/menu/shared/inquirer.js +1 -1
  100. package/lib/commands/menu/shared/local-pages.js +1 -1
  101. package/lib/commands/menu/shared/logic.js +1 -1
  102. package/lib/commands/menu/shared/service.js +1 -1
  103. package/lib/commands/menu/shared/sync-core.js +1 -1
  104. package/lib/commands/menu/shared/update-core.js +1 -1
  105. package/lib/commands/menu/shared/valid-url.js +1 -1
  106. package/lib/commands/menu/sync.js +1 -1
  107. package/lib/commands/menu/update.js +1 -1
  108. package/lib/commands/page/generate-start.js +1 -1
  109. package/lib/commands/page/generate-status.js +1 -1
  110. package/lib/commands/page/index.js +1 -1
  111. package/lib/commands/page/pull.js +1 -1
  112. package/lib/commands/page/push.js +1 -1
  113. package/lib/commands/page/relation-audit.js +1 -1
  114. package/lib/commands/page/shared.js +1 -1
  115. package/lib/commands/page/standard-page-status.js +1 -1
  116. package/lib/commands/page/sync.js +1 -1
  117. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  118. package/lib/commands/project/create/format-elapsed.js +1 -1
  119. package/lib/commands/project/create/main.js +1 -1
  120. package/lib/commands/project/create/non-interactive.js +1 -1
  121. package/lib/commands/project/create/project-template-path.js +1 -1
  122. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  123. package/lib/commands/project/create/use-format-code.js +1 -1
  124. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  125. package/lib/commands/project/index.js +1 -1
  126. package/lib/commands/project/init.js +1 -1
  127. package/lib/commands/project/upgrade.js +1 -1
  128. package/lib/commands/registry.js +1 -1
  129. package/lib/commands/run/index.js +1 -1
  130. package/lib/commands/schema.js +1 -1
  131. package/lib/commands/sql/create.js +1 -1
  132. package/lib/commands/sql/delete.js +1 -1
  133. package/lib/commands/sql/detail.js +1 -1
  134. package/lib/commands/sql/exec.js +1 -1
  135. package/lib/commands/sql/index.js +1 -1
  136. package/lib/commands/sql/list.js +1 -1
  137. package/lib/commands/sql/pull.js +1 -1
  138. package/lib/commands/sql/push.js +1 -1
  139. package/lib/commands/sql/save.js +1 -1
  140. package/lib/commands/sql/shared.js +1 -1
  141. package/lib/commands/sql/status.js +1 -1
  142. package/lib/commands/sql/validate.js +1 -1
  143. package/lib/commands/workspace/index.js +1 -1
  144. package/lib/config/schema.js +1 -1
  145. package/lib/constant/cdn.js +1 -1
  146. package/lib/constant/cli.js +1 -1
  147. package/lib/constant/defaults.js +1 -1
  148. package/lib/constant/domain.js +1 -1
  149. package/lib/constant/env.js +1 -1
  150. package/lib/constant/output.js +1 -1
  151. package/lib/constant/paths.js +1 -1
  152. package/lib/constant/risk.js +1 -1
  153. package/lib/context/app-resolver.js +1 -1
  154. package/lib/context/auth-resolver.js +1 -1
  155. package/lib/context/config-loader.js +1 -1
  156. package/lib/context.js +1 -1
  157. package/lib/core/alias-resolver.js +1 -1
  158. package/lib/core/api-client.js +1 -1
  159. package/lib/core/bff/config.js +1 -1
  160. package/lib/core/bff/file-system.js +1 -1
  161. package/lib/core/bff/hash.js +1 -1
  162. package/lib/core/bff/lock.js +1 -1
  163. package/lib/core/bff/utils.js +1 -1
  164. package/lib/core/db-resolver.js +1 -1
  165. package/lib/core/page/file-system.js +1 -1
  166. package/lib/core/page/hash.js +1 -1
  167. package/lib/core/page/lock.js +1 -1
  168. package/lib/core/sql-sync/config.js +1 -1
  169. package/lib/core/sql-sync/file-system.js +1 -1
  170. package/lib/core/sql-sync/hash.js +1 -1
  171. package/lib/core/sql-sync/lock.js +1 -1
  172. package/lib/core/sql-sync/utils.js +1 -1
  173. package/lib/core/sql-validator.js +1 -1
  174. package/lib/errors.js +1 -1
  175. package/lib/framework/build-all-flags.js +1 -1
  176. package/lib/framework/flags.js +1 -1
  177. package/lib/framework/help.js +1 -1
  178. package/lib/framework/index.js +1 -1
  179. package/lib/framework/output.js +1 -1
  180. package/lib/framework/response.js +1 -1
  181. package/lib/framework/runner-alias.js +1 -1
  182. package/lib/framework/runner.js +1 -1
  183. package/lib/framework/schema-export.js +1 -1
  184. package/lib/framework/types.js +1 -1
  185. package/lib/generated/build-info.js +1 -1
  186. package/lib/help.js +1 -1
  187. package/lib/skills/main.js +1 -1
  188. package/lib/skills/npx-skills-add.js +1 -1
  189. package/lib/telemetry/cli-command-trace.js +1 -1
  190. package/lib/telemetry/cli-help-trace.js +1 -1
  191. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  192. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  193. package/lib/telemetry/send-cli-trace-log.js +1 -1
  194. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  195. package/lib/utils/ai_config.js +1 -1
  196. package/lib/utils/apply-jq-filter.js +1 -1
  197. package/lib/utils/cdn-config.js +1 -1
  198. package/lib/utils/check-sdk-version.js +1 -1
  199. package/lib/utils/cli-version-check.js +1 -1
  200. package/lib/utils/cli-version-policy.js +1 -1
  201. package/lib/utils/config.js +1 -1
  202. package/lib/utils/copy-directory.js +1 -1
  203. package/lib/utils/entity-with-id.js +1 -1
  204. package/lib/utils/file-utils.js +1 -1
  205. package/lib/utils/guides-cdn.js +1 -1
  206. package/lib/utils/http-client.js +1 -1
  207. package/lib/utils/is-non-interactive.js +1 -1
  208. package/lib/utils/logger.js +1 -1
  209. package/lib/utils/params.js +1 -1
  210. package/lib/utils/platform.js +1 -1
  211. package/lib/utils/rules-cdn.js +1 -1
  212. package/lib/utils/sleep.js +1 -1
  213. package/lib/utils/template-replacer.js +1 -1
  214. package/lib/utils/update-notice.js +1 -1
  215. package/lib/utils/version.js +1 -1
  216. package/lib/utils/with-active-cookie.js +1 -1
  217. package/lib/utils/write-cli-side-channel.js +1 -1
  218. package/package.json +1 -1
  219. package/templates/README.md +15 -25
  220. package/templates/generate-api/api.ts.tpl +2 -2
  221. package/templates/generate-api/client.ts.tpl +2 -2
  222. package/templates/projects/sub-app-react-demo/CHANGELOG.md +15 -1
  223. package/templates/projects/sub-app-react-demo/README.md +159 -231
  224. package/templates/projects/sub-app-react-demo/docs/quick-start.md +145 -426
  225. package/templates/projects/sub-app-react-demo/src/api/api.ts +8 -65
  226. package/templates/projects/sub-app-react-demo/src/api/client.ts +10 -42
  227. package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.module.css +28 -0
  228. package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.tsx +55 -0
  229. package/templates/projects/sub-app-react-demo/src/layouts/MainLayout.tsx +6 -9
  230. package/templates/projects/sub-app-react-demo/src/main.tsx +10 -6
  231. package/templates/projects/sub-app-react-demo/src/pages/dashboard/index.tsx +3 -5
  232. package/templates/projects/sub-app-react-demo/src/pages/data-screen/index.tsx +153 -148
  233. package/templates/projects/sub-app-react-demo/src/pages/index.module.css +500 -0
  234. package/templates/projects/sub-app-react-demo/src/pages/index.tsx +517 -343
  235. package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +325 -242
  236. package/templates/projects/sub-app-react-demo/src/pages/workbench/index.module.css +8 -6
  237. package/templates/projects/sub-app-react-demo/src/pages/workbench/index.tsx +174 -87
  238. package/templates/projects/sub-app-react-demo/src/style.css +19 -3
  239. package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +1 -1
  240. package/lib/commands/skill/index.js +0 -1
  241. package/templates/projects/sub-app-react-demo/docs/API_RULE_CHANGE.md +0 -212
@@ -1 +1 @@
1
- const a126_0x123563=a126_0x101a;(function(_0x23e21e,_0x111224){const _0x3742c5=a126_0x101a,_0x486e4c=_0x23e21e();while(!![]){try{const _0x78f067=parseInt(_0x3742c5(0xf0))/0x1*(-parseInt(_0x3742c5(0xd6))/0x2)+parseInt(_0x3742c5(0xec))/0x3*(-parseInt(_0x3742c5(0xd8))/0x4)+parseInt(_0x3742c5(0xea))/0x5+parseInt(_0x3742c5(0x104))/0x6*(parseInt(_0x3742c5(0xf3))/0x7)+-parseInt(_0x3742c5(0xe7))/0x8+-parseInt(_0x3742c5(0xff))/0x9+-parseInt(_0x3742c5(0xce))/0xa*(-parseInt(_0x3742c5(0xd3))/0xb);if(_0x78f067===_0x111224)break;else _0x486e4c['push'](_0x486e4c['shift']());}catch(_0x478b22){_0x486e4c['push'](_0x486e4c['shift']());}}}(a126_0x4cbe,0xce7d5));import{readFileSync,existsSync}from'node:fs';function a126_0x101a(_0x59c7c6,_0x4ae350){_0x59c7c6=_0x59c7c6-0xce;const _0x4cbecb=a126_0x4cbe();let _0x101a2a=_0x4cbecb[_0x59c7c6];return _0x101a2a;}import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';function a126_0x4cbe(){const _0x179b96=['map','No\x20scripts\x20defined\x20in\x20package.json.','validation','\x20run\x20preview','593190AFzcUY','belowMinimum','boolean','build','Enable\x20watch\x20mode\x20for\x20preview','555012sGdfWe','bun.lockb','\x20\x20AVAILABLE\x20SCRIPTS\x20\x20(current\x20project)','bun.lock','30GiNCaV','\x22\x20not\x20found\x20in\x20package.json.','\x20run\x20<script>\x0a','slice','bool','6167337zwrdOP','log','\x20exited\x20with\x20code\x20','3145386zDGMKa','Script\x20\x22','561128squgeQ','length','join','padEnd','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','yarn','parse','args','push','start','inherit','preview','\x0a\x20\x20Available\x20scripts:\x0a','Script\x20name\x20defined\x20in\x20package.json','needsUpgrade','673352SJmVEQ','No\x20package.json\x20found\x20in\x20current\x20directory.','node_modules','986870NJUVRE','read','9NJKrGI','\x20run\x20','bun','keys','1rZREHp','vite','cwd','84GIIbst','error','\x20\x20\x20\x20','max','.bin','pnpm-lock.yaml','close','utf-8'];a126_0x4cbe=function(){return _0x179b96;};return a126_0x4cbe();}import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a126_0x123563(0xe1),'dev']);function readPackageScripts(_0x3d1618){const _0x118058=a126_0x123563,_0x3c7a7d=resolve(_0x3d1618,'package.json');if(!existsSync(_0x3c7a7d))return null;try{const _0x113105=JSON[_0x118058(0xde)](readFileSync(_0x3c7a7d,_0x118058(0xfa)));return _0x113105['scripts']??{};}catch{return null;}}function detectPackageManager(_0x50a0ae){const _0x37259e=a126_0x123563;if(existsSync(resolve(_0x50a0ae,_0x37259e(0x105)))||existsSync(resolve(_0x50a0ae,_0x37259e(0x107))))return _0x37259e(0xee);if(existsSync(resolve(_0x50a0ae,_0x37259e(0xf8))))return'pnpm';if(existsSync(resolve(_0x50a0ae,'yarn.lock')))return _0x37259e(0xdd);return'npm';}async function versionCheck(_0x1f2dc1){const _0x46430b=a126_0x123563,_0x2a39e4=await checkCliVersion();(_0x2a39e4[_0x46430b(0xe6)]||_0x2a39e4[_0x46430b(0x100)])&&(printCliUpgradeWarning(_0x2a39e4),assertCliVersionSupported(_0x2a39e4));const _0x667bb3=await checkSdkVersion(_0x1f2dc1);if(_0x667bb3[_0x46430b(0xe6)])printSdkUpgradeWarning(_0x667bb3);}function spawnScript(_0x40d875,_0x12db76,_0x35dc6e,_0x27e875){return new Promise((_0x306990,_0x4d72f4)=>{const _0x47752b=a126_0x101a,_0x24c6cc=['run',_0x12db76,..._0x35dc6e],_0x391d26=spawn(_0x40d875,_0x24c6cc,{'cwd':_0x27e875,'stdio':_0x47752b(0xe2),'shell':!![],'env':{...process.env,'PATH':''+join(_0x27e875,'node_modules',_0x47752b(0xf7))+delimiter+process.env.PATH}});_0x391d26['on']('close',_0x77e10a=>{const _0x3150cf=_0x47752b;if(_0x77e10a===0x0||_0x77e10a===null)_0x306990();else _0x4d72f4(new Error(_0x40d875+_0x3150cf(0xed)+_0x12db76+_0x3150cf(0xd5)+_0x77e10a));}),_0x391d26['on']('error',_0x4d72f4);});}function spawnViteBuildWatch(_0x2240e0){return new Promise((_0x2c16a4,_0x3128c5)=>{const _0x179ef6=a126_0x101a,_0x534032=spawn(_0x179ef6(0xf1),[_0x179ef6(0x102),'--watch'],{'cwd':_0x2240e0,'stdio':_0x179ef6(0xe2),'shell':!![],'env':{...process.env,'PATH':''+join(_0x2240e0,_0x179ef6(0xe9),_0x179ef6(0xf7))+delimiter+process.env.PATH}});_0x534032['on']('close',_0x4251e3=>{const _0x5786e7=_0x179ef6;if(_0x4251e3===0x0||_0x4251e3===null)_0x2c16a4();else _0x3128c5(new Error(_0x5786e7(0xdc)+_0x4251e3));}),_0x534032['on'](_0x179ef6(0xf4),_0x3128c5);});}function spawnVitePreview(_0x53f00d){return new Promise((_0xe60c,_0x370954)=>{const _0xfea353=a126_0x101a,_0x1ed85f=spawn(_0xfea353(0xf1),[_0xfea353(0xe3)],{'cwd':_0x53f00d,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x53f00d,_0xfea353(0xe9),'.bin')+delimiter+process.env.PATH}});_0x1ed85f['on'](_0xfea353(0xf9),_0x93e5e5=>{if(_0x93e5e5===0x0||_0x93e5e5===null)_0xe60c();else _0x370954(new Error('vite\x20preview\x20exited\x20with\x20code\x20'+_0x93e5e5));}),_0x1ed85f['on']('error',_0x370954);});}const runFlags=[{'name':'watch','type':a126_0x123563(0x101),'description':a126_0x123563(0x103),'default':![]}];export const runDefinition={'service':'run','command':'run','description':'Run\x20a\x20package.json\x20script','risk':a126_0x123563(0xeb),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':'script','description':a126_0x123563(0xe5),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x164248=a126_0x123563,_0x25a923=readPackageScripts(process[_0x164248(0xf2)]()),_0x274437=[];if(_0x25a923&&Object[_0x164248(0xef)](_0x25a923)['length']>0x0){const _0x23fb42=Object[_0x164248(0xef)](_0x25a923),_0x2d4620=Math[_0x164248(0xf6)](..._0x23fb42['map'](_0x15a9c1=>_0x15a9c1[_0x164248(0xd9)]));_0x274437[_0x164248(0xe0)](_0x164248(0x106));for(const [_0x4cd25d,_0x25863e]of Object['entries'](_0x25a923)){_0x274437[_0x164248(0xe0)](_0x164248(0xf5)+CLI_BIN_NAME+_0x164248(0xed)+_0x4cd25d[_0x164248(0xdb)](_0x2d4620+0x2)+'#\x20'+_0x25863e);}}else _0x274437['push']('\x20\x20EXAMPLES'),_0x274437[_0x164248(0xe0)]('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20start'),_0x274437[_0x164248(0xe0)](_0x164248(0xf5)+CLI_BIN_NAME+'\x20run\x20build'),_0x274437[_0x164248(0xe0)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x164248(0xfe)),_0x274437['push'](_0x164248(0xf5)+CLI_BIN_NAME+'\x20run\x20preview\x20--watch\x20\x20\x20#\x20parallel\x20build\x20--watch\x20+\x20preview');return _0x274437[_0x164248(0xda)]('\x0a');},async 'execute'(_0x3bd89a){const _0x3ca840=a126_0x123563,_0x3bfba1=process[_0x3ca840(0xf2)](),_0x6572e9=_0x3bd89a[_0x3ca840(0xdf)][0x0],_0x5192b3=_0x3bd89a['args'][_0x3ca840(0xd1)](0x1),_0x367401=readPackageScripts(_0x3bfba1);if(!_0x367401)throw CliErrors[_0x3ca840(0xfd)](_0x3ca840(0xe8));if(!_0x6572e9){const _0x498384=Object['keys'](_0x367401);if(_0x498384[_0x3ca840(0xd9)]===0x0)console[_0x3ca840(0xd4)](_0x3ca840(0xfc));else{console[_0x3ca840(0xd4)](_0x3ca840(0xe4));const _0xf327f3=Math['max'](..._0x498384[_0x3ca840(0xfb)](_0x278a82=>_0x278a82['length']));for(const [_0x2bfb14,_0x52c301]of Object['entries'](_0x367401)){console[_0x3ca840(0xd4)](_0x3ca840(0xf5)+_0x2bfb14[_0x3ca840(0xdb)](_0xf327f3+0x2)+_0x52c301);}console[_0x3ca840(0xd4)]('\x0a\x20\x20Usage:\x20'+CLI_BIN_NAME+_0x3ca840(0xd0));}return{'ok':!![]};}if(!_0x367401[_0x6572e9])throw CliErrors['validation'](_0x3ca840(0xd7)+_0x6572e9+_0x3ca840(0xcf),'Available:\x20'+(Object[_0x3ca840(0xef)](_0x367401)[_0x3ca840(0xda)](',\x20')||'(none)'));const _0x434286=detectPackageManager(_0x3bfba1);VERSION_CHECK_SCRIPTS['has'](_0x6572e9)&&await versionCheck(_0x3bfba1);if(_0x6572e9==='preview'&&_0x3bd89a[_0x3ca840(0xd2)]('watch'))return await Promise['all']([spawnViteBuildWatch(_0x3bfba1),spawnVitePreview(_0x3bfba1)]),{'ok':!![]};return await spawnScript(_0x434286,_0x6572e9,_0x5192b3,_0x3bfba1),{'ok':!![]};}};
1
+ const a128_0x233e1d=a128_0x4b31;(function(_0x5060e0,_0x184cdd){const _0x4018da=a128_0x4b31,_0x333df4=_0x5060e0();while(!![]){try{const _0x572a1d=parseInt(_0x4018da(0xec))/0x1+-parseInt(_0x4018da(0xf3))/0x2*(-parseInt(_0x4018da(0xf7))/0x3)+-parseInt(_0x4018da(0xfb))/0x4+parseInt(_0x4018da(0xf6))/0x5+parseInt(_0x4018da(0x10c))/0x6*(-parseInt(_0x4018da(0x101))/0x7)+-parseInt(_0x4018da(0xe5))/0x8+parseInt(_0x4018da(0x121))/0x9;if(_0x572a1d===_0x184cdd)break;else _0x333df4['push'](_0x333df4['shift']());}catch(_0x7df3e5){_0x333df4['push'](_0x333df4['shift']());}}}(a128_0x4aac,0x7747d));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';function a128_0x4b31(_0x36eff0,_0x40f964){_0x36eff0=_0x36eff0-0xe4;const _0x4aacb1=a128_0x4aac();let _0x4b3142=_0x4aacb1[_0x36eff0];return _0x4b3142;}import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a128_0x233e1d(0xf0),a128_0x233e1d(0x102)]);function a128_0x4aac(){const _0x2d5d2b=['read','scripts','\x20run\x20<script>\x0a','log','parse','pnpm','3346497BQouSC','preview','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','bool','\x20run\x20','6190864rYphMC','\x22\x20not\x20found\x20in\x20package.json.','bun.lockb','script','run','\x20\x20AVAILABLE\x20SCRIPTS\x20\x20(current\x20project)','max','359966MzIPpQ','padEnd','inherit','push','start','close','\x20run\x20preview','525304yXWLlX','bun.lock','Available:\x20','2966900IKCcrc','9yfOUGT','npm','pnpm-lock.yaml','map','820920LGMivr','Enable\x20watch\x20mode\x20for\x20preview','.bin','yarn','length','error','14fKzWGL','dev','No\x20scripts\x20defined\x20in\x20package.json.','cwd','validation','all','\x0a\x20\x20Available\x20scripts:\x0a','boolean','join','node_modules','needsUpgrade','1936422rPCHNC','\x20run\x20build','\x20\x20\x20\x20','vite\x20preview\x20exited\x20with\x20code\x20','yarn.lock','No\x20package.json\x20found\x20in\x20current\x20directory.','\x20run\x20preview\x20--watch\x20\x20\x20#\x20parallel\x20build\x20--watch\x20+\x20preview','build','args','keys','(none)','entries','\x0a\x20\x20Usage:\x20','watch','Script\x20name\x20defined\x20in\x20package.json'];a128_0x4aac=function(){return _0x2d5d2b;};return a128_0x4aac();}function readPackageScripts(_0x2301a1){const _0x3fd4aa=a128_0x233e1d,_0x441ce2=resolve(_0x2301a1,'package.json');if(!existsSync(_0x441ce2))return null;try{const _0x1927c2=JSON[_0x3fd4aa(0x11f)](readFileSync(_0x441ce2,'utf-8'));return _0x1927c2[_0x3fd4aa(0x11c)]??{};}catch{return null;}}function detectPackageManager(_0x22f216){const _0xf20946=a128_0x233e1d;if(existsSync(resolve(_0x22f216,_0xf20946(0xe7)))||existsSync(resolve(_0x22f216,_0xf20946(0xf4))))return'bun';if(existsSync(resolve(_0x22f216,_0xf20946(0xf9))))return _0xf20946(0x120);if(existsSync(resolve(_0x22f216,_0xf20946(0x110))))return _0xf20946(0xfe);return _0xf20946(0xf8);}async function versionCheck(_0x396135){const _0x1ad869=a128_0x233e1d,_0x588e8f=await checkCliVersion();(_0x588e8f['needsUpgrade']||_0x588e8f['belowMinimum'])&&(printCliUpgradeWarning(_0x588e8f),assertCliVersionSupported(_0x588e8f));const _0x1a8873=await checkSdkVersion(_0x396135);if(_0x1a8873[_0x1ad869(0x10b)])printSdkUpgradeWarning(_0x1a8873);}function spawnScript(_0x556652,_0x318e2c,_0x408a85,_0x48e086){return new Promise((_0x484ce0,_0x22e32a)=>{const _0x15a95e=a128_0x4b31,_0x3338c5=[_0x15a95e(0xe9),_0x318e2c,..._0x408a85],_0x2ad510=spawn(_0x556652,_0x3338c5,{'cwd':_0x48e086,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x48e086,_0x15a95e(0x10a),_0x15a95e(0xfd))+delimiter+process.env.PATH}});_0x2ad510['on'](_0x15a95e(0xf1),_0x41a42f=>{const _0x21b6af=_0x15a95e;if(_0x41a42f===0x0||_0x41a42f===null)_0x484ce0();else _0x22e32a(new Error(_0x556652+_0x21b6af(0xe4)+_0x318e2c+'\x20exited\x20with\x20code\x20'+_0x41a42f));}),_0x2ad510['on'](_0x15a95e(0x100),_0x22e32a);});}function spawnViteBuildWatch(_0x140188){return new Promise((_0x316218,_0xe58370)=>{const _0x22749c=a128_0x4b31,_0x5e67ff=spawn('vite',[_0x22749c(0x113),'--watch'],{'cwd':_0x140188,'stdio':_0x22749c(0xee),'shell':!![],'env':{...process.env,'PATH':''+join(_0x140188,_0x22749c(0x10a),_0x22749c(0xfd))+delimiter+process.env.PATH}});_0x5e67ff['on']('close',_0x2356a0=>{const _0xff9611=_0x22749c;if(_0x2356a0===0x0||_0x2356a0===null)_0x316218();else _0xe58370(new Error(_0xff9611(0x123)+_0x2356a0));}),_0x5e67ff['on'](_0x22749c(0x100),_0xe58370);});}function spawnVitePreview(_0x343062){return new Promise((_0x274ea9,_0x54943d)=>{const _0x3cdd64=a128_0x4b31,_0x1b436a=spawn('vite',[_0x3cdd64(0x122)],{'cwd':_0x343062,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x343062,_0x3cdd64(0x10a),_0x3cdd64(0xfd))+delimiter+process.env.PATH}});_0x1b436a['on']('close',_0x1e67a6=>{const _0x2eaccc=_0x3cdd64;if(_0x1e67a6===0x0||_0x1e67a6===null)_0x274ea9();else _0x54943d(new Error(_0x2eaccc(0x10f)+_0x1e67a6));}),_0x1b436a['on'](_0x3cdd64(0x100),_0x54943d);});}const runFlags=[{'name':a128_0x233e1d(0x119),'type':a128_0x233e1d(0x108),'description':a128_0x233e1d(0xfc),'default':![]}];export const runDefinition={'service':a128_0x233e1d(0xe9),'command':a128_0x233e1d(0xe9),'description':'Run\x20a\x20package.json\x20script','risk':a128_0x233e1d(0x11b),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a128_0x233e1d(0xe8),'description':a128_0x233e1d(0x11a),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0xeff23e=a128_0x233e1d,_0xe711cc=readPackageScripts(process[_0xeff23e(0x104)]()),_0x203aa7=[];if(_0xe711cc&&Object['keys'](_0xe711cc)[_0xeff23e(0xff)]>0x0){const _0x1d30b0=Object['keys'](_0xe711cc),_0x687cb6=Math[_0xeff23e(0xeb)](..._0x1d30b0[_0xeff23e(0xfa)](_0x27f6fa=>_0x27f6fa['length']));_0x203aa7[_0xeff23e(0xef)](_0xeff23e(0xea));for(const [_0x107d3e,_0x2b19f2]of Object[_0xeff23e(0x117)](_0xe711cc)){_0x203aa7[_0xeff23e(0xef)]('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20'+_0x107d3e['padEnd'](_0x687cb6+0x2)+'#\x20'+_0x2b19f2);}}else _0x203aa7['push']('\x20\x20EXAMPLES'),_0x203aa7['push'](_0xeff23e(0x10e)+CLI_BIN_NAME+'\x20run\x20start'),_0x203aa7['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+_0xeff23e(0x10d)),_0x203aa7[_0xeff23e(0xef)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0xeff23e(0xf2)),_0x203aa7[_0xeff23e(0xef)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0xeff23e(0x112));return _0x203aa7[_0xeff23e(0x109)]('\x0a');},async 'execute'(_0x1f85ca){const _0x5ba309=a128_0x233e1d,_0x17c278=process['cwd'](),_0x30118a=_0x1f85ca[_0x5ba309(0x114)][0x0],_0x334483=_0x1f85ca['args']['slice'](0x1),_0x1ff233=readPackageScripts(_0x17c278);if(!_0x1ff233)throw CliErrors[_0x5ba309(0x105)](_0x5ba309(0x111));if(!_0x30118a){const _0x186286=Object['keys'](_0x1ff233);if(_0x186286['length']===0x0)console[_0x5ba309(0x11e)](_0x5ba309(0x103));else{console[_0x5ba309(0x11e)](_0x5ba309(0x107));const _0x4cfa4d=Math[_0x5ba309(0xeb)](..._0x186286[_0x5ba309(0xfa)](_0x5181b2=>_0x5181b2[_0x5ba309(0xff)]));for(const [_0x3f5aec,_0xded09]of Object[_0x5ba309(0x117)](_0x1ff233)){console[_0x5ba309(0x11e)](_0x5ba309(0x10e)+_0x3f5aec[_0x5ba309(0xed)](_0x4cfa4d+0x2)+_0xded09);}console[_0x5ba309(0x11e)](_0x5ba309(0x118)+CLI_BIN_NAME+_0x5ba309(0x11d));}return{'ok':!![]};}if(!_0x1ff233[_0x30118a])throw CliErrors[_0x5ba309(0x105)]('Script\x20\x22'+_0x30118a+_0x5ba309(0xe6),_0x5ba309(0xf5)+(Object[_0x5ba309(0x115)](_0x1ff233)[_0x5ba309(0x109)](',\x20')||_0x5ba309(0x116)));const _0x2291ce=detectPackageManager(_0x17c278);VERSION_CHECK_SCRIPTS['has'](_0x30118a)&&await versionCheck(_0x17c278);if(_0x30118a==='preview'&&_0x1f85ca[_0x5ba309(0x124)](_0x5ba309(0x119)))return await Promise[_0x5ba309(0x106)]([spawnViteBuildWatch(_0x17c278),spawnVitePreview(_0x17c278)]),{'ok':!![]};return await spawnScript(_0x2291ce,_0x30118a,_0x334483,_0x17c278),{'ok':!![]};}};
@@ -1 +1 @@
1
- const a127_0x67b262=a127_0x137d;(function(_0x15410d,_0x48680c){const _0x41e76c=a127_0x137d,_0x2d6f11=_0x15410d();while(!![]){try{const _0x5ac40c=-parseInt(_0x41e76c(0x159))/0x1+-parseInt(_0x41e76c(0x15c))/0x2*(parseInt(_0x41e76c(0x15b))/0x3)+parseInt(_0x41e76c(0x160))/0x4+parseInt(_0x41e76c(0x15e))/0x5+parseInt(_0x41e76c(0x165))/0x6+-parseInt(_0x41e76c(0x15f))/0x7+parseInt(_0x41e76c(0x161))/0x8*(parseInt(_0x41e76c(0x15a))/0x9);if(_0x5ac40c===_0x48680c)break;else _0x2d6f11['push'](_0x2d6f11['shift']());}catch(_0x33249f){_0x2d6f11['push'](_0x2d6f11['shift']());}}}(a127_0x1563,0x29f31));function a127_0x137d(_0x3a1c0f,_0x2caefe){_0x3a1c0f=_0x3a1c0f-0x159;const _0x156312=a127_0x1563();let _0x137da7=_0x156312[_0x3a1c0f];return _0x137da7;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x7d2fa7){const _0xd6b96b=await buildSchemaPayload();return{'ok':!![],'data':_0xd6b96b};}function a127_0x1563(){const _0x2e6570=['679632GgbSkH','338952dhlmBV','json','Export\x20machine-readable\x20command\x20schema\x20(JSON)','read','1912758xuPthQ','152918cRNLeA','9pIBDqc','301641bZFhsU','6DGIyOz','schema','564575hpogPM','123207cNKaKv'];a127_0x1563=function(){return _0x2e6570;};return a127_0x1563();}export const schemaDefinition={'service':a127_0x67b262(0x15d),'command':'export','description':a127_0x67b262(0x163),'risk':a127_0x67b262(0x164),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a127_0x67b262(0x162),'flags':[],'execute':execute};
1
+ function a129_0x47e0(){const _0x586653=['schema','20VHqvmT','2tefjCB','381933kobnNc','5GCXOZy','161245iXGdPX','1980996uFWTIa','2755344WyuGlo','json','7LEYFqe','1072808ImaiHX','1749093UgNxZW','export','96PGsqph','read','1210868rNPrFb'];a129_0x47e0=function(){return _0x586653;};return a129_0x47e0();}const a129_0x2c5ccb=a129_0x8380;function a129_0x8380(_0x4f83c2,_0x12396d){_0x4f83c2=_0x4f83c2-0x116;const _0x47e0e5=a129_0x47e0();let _0x83802c=_0x47e0e5[_0x4f83c2];return _0x83802c;}(function(_0x310cc0,_0x29e00c){const _0x2c28ff=a129_0x8380,_0x16967d=_0x310cc0();while(!![]){try{const _0x4cd966=parseInt(_0x2c28ff(0x11e))/0x1+parseInt(_0x2c28ff(0x11b))/0x2*(-parseInt(_0x2c28ff(0x124))/0x3)+parseInt(_0x2c28ff(0x118))/0x4*(parseInt(_0x2c28ff(0x11d))/0x5)+parseInt(_0x2c28ff(0x11f))/0x6*(parseInt(_0x2c28ff(0x122))/0x7)+-parseInt(_0x2c28ff(0x116))/0x8*(-parseInt(_0x2c28ff(0x11c))/0x9)+-parseInt(_0x2c28ff(0x11a))/0xa*(parseInt(_0x2c28ff(0x123))/0xb)+-parseInt(_0x2c28ff(0x120))/0xc;if(_0x4cd966===_0x29e00c)break;else _0x16967d['push'](_0x16967d['shift']());}catch(_0x48bf53){_0x16967d['push'](_0x16967d['shift']());}}}(a129_0x47e0,0x482f9));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x5c4073){const _0xa81244=await buildSchemaPayload();return{'ok':!![],'data':_0xa81244};}export const schemaDefinition={'service':a129_0x2c5ccb(0x119),'command':a129_0x2c5ccb(0x125),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a129_0x2c5ccb(0x117),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a129_0x2c5ccb(0x121),'flags':[],'execute':execute};
@@ -1 +1 @@
1
- function a129_0x3ad5(_0x4ef833,_0x43cbf9){_0x4ef833=_0x4ef833-0xbc;const _0x12c21a=a129_0x12c2();let _0x3ad5d8=_0x12c21a[_0x4ef833];return _0x3ad5d8;}const a129_0x363d0e=a129_0x3ad5;(function(_0xf2598c,_0x2dcc0b){const _0xda292f=a129_0x3ad5,_0x57ba63=_0xf2598c();while(!![]){try{const _0x42e054=parseInt(_0xda292f(0xfa))/0x1+-parseInt(_0xda292f(0xd7))/0x2*(parseInt(_0xda292f(0xd3))/0x3)+parseInt(_0xda292f(0xcc))/0x4+parseInt(_0xda292f(0xf2))/0x5*(-parseInt(_0xda292f(0xf5))/0x6)+-parseInt(_0xda292f(0xd6))/0x7*(-parseInt(_0xda292f(0xdf))/0x8)+-parseInt(_0xda292f(0xe7))/0x9*(parseInt(_0xda292f(0xda))/0xa)+parseInt(_0xda292f(0xc2))/0xb;if(_0x42e054===_0x2dcc0b)break;else _0x57ba63['push'](_0x57ba63['shift']());}catch(_0x643ab9){_0x57ba63['push'](_0x57ba63['shift']());}}}(a129_0x12c2,0xd9fa7));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0xefcc2e){const _0x485922=a129_0x3ad5;if(_0xefcc2e==='mybatisXml')return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x485922(0xe9),_0x485922(0xef),''][_0x485922(0xf8)]('\x0a');return[_0x485922(0xee),''][_0x485922(0xf8)]('\x0a');}export const sqlCreate={'service':'sql','command':a129_0x363d0e(0xd5),'description':a129_0x363d0e(0xf1),'risk':'high-risk-write','flags':[{'name':a129_0x363d0e(0xe2),'type':a129_0x363d0e(0xf7),'description':a129_0x363d0e(0xe3)},{'name':a129_0x363d0e(0xde),'type':a129_0x363d0e(0xc7),'description':a129_0x363d0e(0xc4)},{'name':a129_0x363d0e(0xcf),'type':a129_0x363d0e(0xf7),'enum':[a129_0x363d0e(0xd1),a129_0x363d0e(0xe8)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x1630d3){const _0x5263d=a129_0x363d0e;if(!_0x1630d3[_0x5263d(0xbd)])return;if(!_0x1630d3['str'](_0x5263d(0xe2))[_0x5263d(0xf4)]())throw CliErrors[_0x5263d(0xec)](_0x5263d(0xe2),_0x5263d(0xfe));const _0x34244a=resolveProvidedDbId(_0x1630d3);if(typeof _0x34244a!=='number'||!Number[_0x5263d(0xe0)](_0x34244a)||_0x34244a<=0x0)throw CliErrors[_0x5263d(0xec)]('db-id',_0x5263d(0xdd));if(!_0x1630d3[_0x5263d(0xd0)](_0x5263d(0xcf))[_0x5263d(0xf4)]())throw CliErrors['flagMissing'](_0x5263d(0xcf),_0x5263d(0xed));},async 'dryRun'(_0x2bd782){const _0x3d224a=a129_0x363d0e,_0x4c581b=loadSqlProjectConfig(_0x2bd782[_0x3d224a(0xd4)]),{sqlName:_0x225034,dbId:_0x30daaf,dbName:_0x1adf52,mode:_0x134d3a}=await resolveSqlNewInputs(_0x2bd782),_0x555be1=buildSqlRelativePath('<server-generated-sqlCode>',_0x225034,_0x1adf52,_0x134d3a,_0x30daaf),_0x5f4d8a=_0x4c581b[_0x3d224a(0xdc)]+'/'+_0x555be1;return{'method':_0x3d224a(0xfb),'url':_0x3d224a(0xc1),'body':{'appCode':_0x2bd782[_0x3d224a(0xd4)],'sqlName':_0x225034,'dbId':_0x30daaf,'mode':_0x134d3a,'localPath':_0x5f4d8a},'description':_0x3d224a(0xbf)+_0x4c581b['sqlRootDir']};},async 'execute'(_0x41df02){const _0x131d78=a129_0x363d0e,_0x50f0b1=loadSqlProjectConfig(_0x41df02[_0x131d78(0xd4)]),{sqlName:_0x41db5b,dbId:_0x489e21,dbName:_0x293576,mode:_0x574616}=await resolveSqlNewInputs(_0x41df02),_0x2ddc21=generateSqlTemplate(_0x574616),_0x3e1b5d=await createSqlQuery({'appCode':_0x41df02[_0x131d78(0xd4)],'sqlName':_0x41db5b,'dbId':_0x489e21,'sqlContent':_0x2ddc21}),_0xbb7d78=ensureRemoteSqlContent(_0x3e1b5d),_0x4ab17c=_0x293576||await getDbName(_0x41df02['appCode'],_0x489e21)[_0x131d78(0xd9)](()=>undefined),_0x167d5f=buildSqlRelativePath(_0x3e1b5d['sqlCode'],_0x3e1b5d[_0x131d78(0xc0)],_0x4ab17c,_0x574616,_0x489e21),_0x5c3ee7=_0x50f0b1[_0x131d78(0xdc)]+'/'+_0x167d5f,_0x5ec468=buildLocalSqlFileContent({'sqlCode':_0x3e1b5d['sqlCode'],'sqlName':_0x3e1b5d[_0x131d78(0xc0)],'dbId':_0x3e1b5d[_0x131d78(0xf0)]},_0xbb7d78,{'dbName':_0x4ab17c,'mode':_0x574616,'syncedAt':new Date()[_0x131d78(0xc5)](),'description':_0x3e1b5d[_0x131d78(0xf3)]});if(await fileExists(_0x5c3ee7))throw CliErrors[_0x131d78(0xea)]('File\x20already\x20exists:\x20'+_0x5c3ee7);await ensureParentDirectory(_0x5c3ee7),await writeFile(_0x5c3ee7,_0x5ec468,_0x131d78(0xcd));const _0x101ff8=await readSqlLockFile(_0x50f0b1[_0x131d78(0xf6)]),{lockData:_0x2808ed,appLock:_0xcfa655}=ensureSqlLockScope(_0x101ff8??createEmptySqlLock(),_0x50f0b1[_0x131d78(0xd4)],_0x50f0b1[_0x131d78(0xc3)],'new');return _0xcfa655['sqls'][_0x3e1b5d[_0x131d78(0xbc)]]={...buildSqlLockEntry(_0x3e1b5d,_0xbb7d78,computeSqlContentHash(_0x5ec468),{'dbName':_0x4ab17c}),'path':_0x167d5f,'mode':_0x574616},_0xcfa655[_0x131d78(0xe6)]=new Date()[_0x131d78(0xc5)](),await writeSqlLockFile(_0x50f0b1['lockFilePath'],_0x2808ed),{'ok':!![],'data':{'id':_0x3e1b5d['id'],'sqlCode':_0x3e1b5d[_0x131d78(0xbc)],'sqlName':_0x3e1b5d[_0x131d78(0xc0)],'dbId':_0x3e1b5d[_0x131d78(0xf0)],'path':_0x5c3ee7,'mode':_0x574616},'message':_0x131d78(0xdb)+_0x3e1b5d[_0x131d78(0xbc)]};}};async function resolveSqlNewInputs(_0x41c74a){const _0x3432fa=await resolveSqlNameInput(_0x41c74a),{dbId:_0xa1b59e,dbName:_0x33ff44}=await resolveDbSelection(_0x41c74a),_0x361af2=await resolveSqlModeInput(_0x41c74a);return{'sqlName':_0x3432fa,'dbId':_0xa1b59e,'dbName':_0x33ff44,'mode':_0x361af2};}async function resolveSqlNameInput(_0x1ed448){const _0x3f4a91=a129_0x363d0e,_0xe5800e=_0x1ed448[_0x3f4a91(0xd0)]('name')['trim']();if(_0xe5800e)return _0xe5800e;if(_0x1ed448[_0x3f4a91(0xbd)])throw CliErrors['flagMissing'](_0x3f4a91(0xe2),_0x3f4a91(0xfe));return(await input({'message':_0x3f4a91(0xe4),'validate':_0x17dcee=>_0x17dcee[_0x3f4a91(0xf4)]()?!![]:_0x3f4a91(0xff)}))['trim']();}async function resolveDbSelection(_0x1ecaf9){const _0x9d5a6=a129_0x363d0e,_0x33ecb4=resolveProvidedDbId(_0x1ecaf9);if(typeof _0x33ecb4==='number'&&Number[_0x9d5a6(0xe0)](_0x33ecb4)&&_0x33ecb4>0x0)return{'dbId':_0x33ecb4,'dbName':await getDbName(_0x1ecaf9['appCode'],_0x33ecb4)['catch'](()=>undefined)};if(_0x1ecaf9[_0x9d5a6(0xbd)])throw CliErrors[_0x9d5a6(0xec)](_0x9d5a6(0xde),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x4d7e92=await listDatabases(_0x1ecaf9[_0x9d5a6(0xd4)])[_0x9d5a6(0xd9)](()=>[]);if(_0x4d7e92[_0x9d5a6(0xfd)]===0x1)return{'dbId':_0x4d7e92[0x0][_0x9d5a6(0xf0)],'dbName':_0x4d7e92[0x0][_0x9d5a6(0xe1)]};if(_0x4d7e92[_0x9d5a6(0xfd)]>0x1){const _0x50306b=await select({'message':_0x9d5a6(0xce),'choices':[..._0x4d7e92[_0x9d5a6(0xc9)](_0x15eb0c=>({'name':_0x15eb0c['dbName']+'\x20('+_0x15eb0c[_0x9d5a6(0xf0)]+')','value':serializeDbSelection(_0x15eb0c)})),{'name':'✎\x20手动输入\x20dbId','value':_0x9d5a6(0xc6)}]});if(_0x50306b!==_0x9d5a6(0xc6))return deserializeDbSelection(_0x50306b);}const _0x4aea49=await input({'message':'请输入目标数据库\x20dbId:','validate':_0x53bfff=>{const _0x597ea5=_0x9d5a6,_0x556c5d=_0x53bfff[_0x597ea5(0xf4)]();if(!_0x556c5d)return _0x597ea5(0xcb);const _0x4c8574=Number(_0x556c5d);if(!Number[_0x597ea5(0xd2)](_0x4c8574)||_0x4c8574<=0x0)return _0x597ea5(0xbe);return!![];}});return{'dbId':Number(_0x4aea49[_0x9d5a6(0xf4)]())};}async function resolveSqlModeInput(_0x2366ed){const _0x3901c1=a129_0x363d0e,_0x54a873=_0x2366ed['str'](_0x3901c1(0xcf))['trim']();if(_0x54a873===_0x3901c1(0xd1)||_0x54a873===_0x3901c1(0xe8))return _0x54a873;if(_0x2366ed['nonInteractive'])throw CliErrors[_0x3901c1(0xec)](_0x3901c1(0xcf),_0x3901c1(0xed));return await select({'message':_0x3901c1(0xd8),'choices':[{'name':_0x3901c1(0xca),'value':'sql','description':_0x3901c1(0xfc)},{'name':_0x3901c1(0xc8),'value':_0x3901c1(0xe8),'description':_0x3901c1(0xeb)}]});}function a129_0x12c2(){const _0xe826f0=['string','join','Invalid\x20database\x20selection\x20payload:\x20','1098385WCOdvB','POST','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','length','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','SQL\x20名称不能为空','sqlCode','nonInteractive','dbId\x20必须为正整数','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','sqlName','/smartapi/custom/saveUserCustomSql','19204768FzTizD','sqlRoot','Target\x20database\x20ID','toISOString','__manual__','number','MyBatis\x20XML(mybatisXml)','map','普通\x20SQL(sql)','dbId\x20不能为空','6567236mLLbZq','utf8','请选择目标数据库:','mode','str','sql','isInteger','65613SIcQKC','appCode','create','2583jHzHNa','148aXhlIB','请选择本地\x20SQL\x20模式:','catch','420130vPXbuf','Created\x20SQL\x20query\x20','sqlRootDir','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','db-id','632PAbwqo','isFinite','dbName','name','SQL\x20query\x20display\x20name','请输入\x20SQL\x20名称:','parse','lastSync','153ebUmaR','mybatisXml','\x20\x20SELECT\x201\x20AS\x20id','validation','适合带动态标签的\x20MyBatis\x20XML\x20SQL','flagMissing','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','SELECT\x201\x20AS\x20id;','</select>','dbId','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','6448595lmoVnE','description','trim','6MBVkUS','lockFilePath'];a129_0x12c2=function(){return _0xe826f0;};return a129_0x12c2();}function serializeDbSelection(_0x4c564c){const _0x3b0ab4=a129_0x363d0e;return JSON['stringify']({'dbId':_0x4c564c[_0x3b0ab4(0xf0)],'dbName':_0x4c564c[_0x3b0ab4(0xe1)]});}function deserializeDbSelection(_0x33f9c8){const _0x345255=a129_0x363d0e;try{const _0x378a82=JSON[_0x345255(0xe5)](_0x33f9c8);if(typeof _0x378a82[_0x345255(0xf0)]===_0x345255(0xc7)&&Number[_0x345255(0xe0)](_0x378a82['dbId']))return{'dbId':_0x378a82[_0x345255(0xf0)],'dbName':_0x378a82[_0x345255(0xe1)]};}catch{}throw CliErrors['validation'](_0x345255(0xf9)+_0x33f9c8);}function resolveProvidedDbId(_0x323d4d){const _0x474c6b=a129_0x363d0e,_0x3843d4=_0x323d4d['flag'](_0x474c6b(0xde));if(typeof _0x3843d4===_0x474c6b(0xc7)&&Number[_0x474c6b(0xe0)](_0x3843d4))return _0x3843d4;return undefined;}
1
+ const a130_0x371a44=a130_0x2580;(function(_0x2aea06,_0x4e4599){const _0x9d8d9f=a130_0x2580,_0x57b674=_0x2aea06();while(!![]){try{const _0x9330f3=-parseInt(_0x9d8d9f(0x1e2))/0x1+parseInt(_0x9d8d9f(0x1e4))/0x2*(parseInt(_0x9d8d9f(0x1e8))/0x3)+-parseInt(_0x9d8d9f(0x1ed))/0x4*(-parseInt(_0x9d8d9f(0x1fc))/0x5)+parseInt(_0x9d8d9f(0x1c8))/0x6*(parseInt(_0x9d8d9f(0x1ec))/0x7)+parseInt(_0x9d8d9f(0x1f4))/0x8+parseInt(_0x9d8d9f(0x1cc))/0x9*(-parseInt(_0x9d8d9f(0x1f8))/0xa)+parseInt(_0x9d8d9f(0x1f9))/0xb;if(_0x9330f3===_0x4e4599)break;else _0x57b674['push'](_0x57b674['shift']());}catch(_0x1ad25a){_0x57b674['push'](_0x57b674['shift']());}}}(a130_0x3435,0x47cfc));function a130_0x2580(_0x412fc4,_0x2d98dc){_0x412fc4=_0x412fc4-0x1c4;const _0x343558=a130_0x3435();let _0x2580a9=_0x343558[_0x412fc4];return _0x2580a9;}import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x50becd){const _0x31e1cb=a130_0x2580;if(_0x50becd===_0x31e1cb(0x1ea))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','\x20\x20SELECT\x201\x20AS\x20id','</select>','']['join']('\x0a');return['SELECT\x201\x20AS\x20id;','']['join']('\x0a');}export const sqlCreate={'service':a130_0x371a44(0x1f3),'command':a130_0x371a44(0x1f2),'description':a130_0x371a44(0x1dd),'risk':a130_0x371a44(0x1cf),'flags':[{'name':a130_0x371a44(0x1d9),'type':'string','description':'SQL\x20query\x20display\x20name'},{'name':a130_0x371a44(0x1df),'type':a130_0x371a44(0x1f0),'description':'Target\x20database\x20ID'},{'name':a130_0x371a44(0x1ce),'type':a130_0x371a44(0x1ef),'enum':[a130_0x371a44(0x1f3),a130_0x371a44(0x1ea)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x441079){const _0xd55c3e=a130_0x371a44;if(!_0x441079[_0xd55c3e(0x1d0)])return;if(!_0x441079[_0xd55c3e(0x1e1)]('name')['trim']())throw CliErrors['flagMissing'](_0xd55c3e(0x1d9),_0xd55c3e(0x1fb));const _0x307071=resolveProvidedDbId(_0x441079);if(typeof _0x307071!=='number'||!Number['isFinite'](_0x307071)||_0x307071<=0x0)throw CliErrors[_0xd55c3e(0x1d4)](_0xd55c3e(0x1df),_0xd55c3e(0x1f5));if(!_0x441079[_0xd55c3e(0x1e1)](_0xd55c3e(0x1ce))[_0xd55c3e(0x1d2)]())throw CliErrors['flagMissing'](_0xd55c3e(0x1ce),_0xd55c3e(0x201));},async 'dryRun'(_0x34ef62){const _0x94b256=a130_0x371a44,_0x41bfde=loadSqlProjectConfig(_0x34ef62[_0x94b256(0x1cb)]),{sqlName:_0xb96757,dbId:_0x254648,dbName:_0x3769ba,mode:_0x4ef298}=await resolveSqlNewInputs(_0x34ef62),_0x45554e=buildSqlRelativePath('<server-generated-sqlCode>',_0xb96757,_0x3769ba,_0x4ef298,_0x254648),_0x15d041=_0x41bfde['sqlRootDir']+'/'+_0x45554e;return{'method':'POST','url':_0x94b256(0x1fe),'body':{'appCode':_0x34ef62[_0x94b256(0x1cb)],'sqlName':_0xb96757,'dbId':_0x254648,'mode':_0x4ef298,'localPath':_0x15d041},'description':_0x94b256(0x1d5)+_0x41bfde[_0x94b256(0x1e7)]};},async 'execute'(_0xb285f2){const _0x49840a=a130_0x371a44,_0x170fd1=loadSqlProjectConfig(_0xb285f2[_0x49840a(0x1cb)]),{sqlName:_0x280dcd,dbId:_0x592221,dbName:_0x50ce59,mode:_0x19b2db}=await resolveSqlNewInputs(_0xb285f2),_0x1894a9=generateSqlTemplate(_0x19b2db),_0x3c121a=await createSqlQuery({'appCode':_0xb285f2[_0x49840a(0x1cb)],'sqlName':_0x280dcd,'dbId':_0x592221,'sqlContent':_0x1894a9}),_0x18034f=ensureRemoteSqlContent(_0x3c121a),_0x2bbc38=_0x50ce59||await getDbName(_0xb285f2[_0x49840a(0x1cb)],_0x592221)[_0x49840a(0x1cd)](()=>undefined),_0x1f4fa8=buildSqlRelativePath(_0x3c121a[_0x49840a(0x1c9)],_0x3c121a[_0x49840a(0x1e3)],_0x2bbc38,_0x19b2db,_0x592221),_0x446da0=_0x170fd1['sqlRootDir']+'/'+_0x1f4fa8,_0x5e1504=buildLocalSqlFileContent({'sqlCode':_0x3c121a[_0x49840a(0x1c9)],'sqlName':_0x3c121a[_0x49840a(0x1e3)],'dbId':_0x3c121a[_0x49840a(0x1de)]},_0x18034f,{'dbName':_0x2bbc38,'mode':_0x19b2db,'syncedAt':new Date()[_0x49840a(0x1fd)](),'description':_0x3c121a[_0x49840a(0x1ff)]});if(await fileExists(_0x446da0))throw CliErrors[_0x49840a(0x1c7)](_0x49840a(0x1d8)+_0x446da0);await ensureParentDirectory(_0x446da0),await writeFile(_0x446da0,_0x5e1504,_0x49840a(0x1f7));const _0x21c123=await readSqlLockFile(_0x170fd1[_0x49840a(0x1dc)]),{lockData:_0x42596d,appLock:_0x2b9d63}=ensureSqlLockScope(_0x21c123??createEmptySqlLock(),_0x170fd1[_0x49840a(0x1cb)],_0x170fd1['sqlRoot'],_0x49840a(0x1db));return _0x2b9d63[_0x49840a(0x202)][_0x3c121a[_0x49840a(0x1c9)]]={...buildSqlLockEntry(_0x3c121a,_0x18034f,computeSqlContentHash(_0x5e1504),{'dbName':_0x2bbc38}),'path':_0x1f4fa8,'mode':_0x19b2db},_0x2b9d63[_0x49840a(0x1c4)]=new Date()[_0x49840a(0x1fd)](),await writeSqlLockFile(_0x170fd1[_0x49840a(0x1dc)],_0x42596d),{'ok':!![],'data':{'id':_0x3c121a['id'],'sqlCode':_0x3c121a['sqlCode'],'sqlName':_0x3c121a[_0x49840a(0x1e3)],'dbId':_0x3c121a[_0x49840a(0x1de)],'path':_0x446da0,'mode':_0x19b2db},'message':_0x49840a(0x1e6)+_0x3c121a[_0x49840a(0x1c9)]};}};async function resolveSqlNewInputs(_0x375fba){const _0x506251=await resolveSqlNameInput(_0x375fba),{dbId:_0x53cc31,dbName:_0x2c76b7}=await resolveDbSelection(_0x375fba),_0x5c083b=await resolveSqlModeInput(_0x375fba);return{'sqlName':_0x506251,'dbId':_0x53cc31,'dbName':_0x2c76b7,'mode':_0x5c083b};}async function resolveSqlNameInput(_0x16403f){const _0x1165fd=a130_0x371a44,_0x34aebd=_0x16403f[_0x1165fd(0x1e1)](_0x1165fd(0x1d9))[_0x1165fd(0x1d2)]();if(_0x34aebd)return _0x34aebd;if(_0x16403f[_0x1165fd(0x1d0)])throw CliErrors[_0x1165fd(0x1d4)]('name','--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x1165fd(0x1fa),'validate':_0xa75931=>_0xa75931[_0x1165fd(0x1d2)]()?!![]:_0x1165fd(0x1e0)}))[_0x1165fd(0x1d2)]();}async function resolveDbSelection(_0x1e5e3a){const _0x1bcd66=a130_0x371a44,_0x48ab6e=resolveProvidedDbId(_0x1e5e3a);if(typeof _0x48ab6e===_0x1bcd66(0x1f0)&&Number[_0x1bcd66(0x1c5)](_0x48ab6e)&&_0x48ab6e>0x0)return{'dbId':_0x48ab6e,'dbName':await getDbName(_0x1e5e3a[_0x1bcd66(0x1cb)],_0x48ab6e)[_0x1bcd66(0x1cd)](()=>undefined)};if(_0x1e5e3a[_0x1bcd66(0x1d0)])throw CliErrors['flagMissing'](_0x1bcd66(0x1df),_0x1bcd66(0x1f5));const _0x2939f7=await listDatabases(_0x1e5e3a[_0x1bcd66(0x1cb)])[_0x1bcd66(0x1cd)](()=>[]);if(_0x2939f7['length']===0x1)return{'dbId':_0x2939f7[0x0]['dbId'],'dbName':_0x2939f7[0x0]['dbName']};if(_0x2939f7['length']>0x1){const _0x5daf15=await select({'message':_0x1bcd66(0x1da),'choices':[..._0x2939f7[_0x1bcd66(0x1d1)](_0x22861e=>({'name':_0x22861e[_0x1bcd66(0x1eb)]+'\x20('+_0x22861e['dbId']+')','value':serializeDbSelection(_0x22861e)})),{'name':'✎\x20手动输入\x20dbId','value':'__manual__'}]});if(_0x5daf15!==_0x1bcd66(0x1ee))return deserializeDbSelection(_0x5daf15);}const _0x3a17f3=await input({'message':_0x1bcd66(0x1d6),'validate':_0x2eb322=>{const _0xa56c67=_0x1bcd66,_0x2512da=_0x2eb322['trim']();if(!_0x2512da)return'dbId\x20不能为空';const _0x5056ca=Number(_0x2512da);if(!Number['isInteger'](_0x5056ca)||_0x5056ca<=0x0)return _0xa56c67(0x1e9);return!![];}});return{'dbId':Number(_0x3a17f3['trim']())};}function a130_0x3435(){const _0x5dfa20=['description','MyBatis\x20XML(mybatisXml)','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','sqls','lastSync','isFinite','parse','validation','6oZAzEm','sqlCode','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','appCode','162jgklFI','catch','mode','high-risk-write','nonInteractive','map','trim','Invalid\x20database\x20selection\x20payload:\x20','flagMissing','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','请输入目标数据库\x20dbId:','flag','File\x20already\x20exists:\x20','name','请选择目标数据库:','new','lockFilePath','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','dbId','db-id','SQL\x20名称不能为空','str','202046aTheRC','sqlName','2386UcwATF','适合带动态标签的\x20MyBatis\x20XML\x20SQL','Created\x20SQL\x20query\x20','sqlRootDir','489gutRZK','dbId\x20必须为正整数','mybatisXml','dbName','1506953BsWjFW','20EkKHKc','__manual__','string','number','普通\x20SQL(sql)','create','sql','3518248cryHTQ','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','stringify','utf8','298790SZfMYp','1652024hwOMVb','请输入\x20SQL\x20名称:','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','34305QeXDXM','toISOString','/smartapi/custom/saveUserCustomSql'];a130_0x3435=function(){return _0x5dfa20;};return a130_0x3435();}async function resolveSqlModeInput(_0x644cd3){const _0x1fa333=a130_0x371a44,_0x121144=_0x644cd3[_0x1fa333(0x1e1)](_0x1fa333(0x1ce))[_0x1fa333(0x1d2)]();if(_0x121144==='sql'||_0x121144==='mybatisXml')return _0x121144;if(_0x644cd3[_0x1fa333(0x1d0)])throw CliErrors[_0x1fa333(0x1d4)]('mode',_0x1fa333(0x201));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x1fa333(0x1f1),'value':_0x1fa333(0x1f3),'description':_0x1fa333(0x1ca)},{'name':_0x1fa333(0x200),'value':_0x1fa333(0x1ea),'description':_0x1fa333(0x1e5)}]});}function serializeDbSelection(_0x2c2214){const _0x40b38a=a130_0x371a44;return JSON[_0x40b38a(0x1f6)]({'dbId':_0x2c2214[_0x40b38a(0x1de)],'dbName':_0x2c2214[_0x40b38a(0x1eb)]});}function deserializeDbSelection(_0x20bca0){const _0x27ea8a=a130_0x371a44;try{const _0x4be340=JSON[_0x27ea8a(0x1c6)](_0x20bca0);if(typeof _0x4be340[_0x27ea8a(0x1de)]===_0x27ea8a(0x1f0)&&Number[_0x27ea8a(0x1c5)](_0x4be340[_0x27ea8a(0x1de)]))return{'dbId':_0x4be340[_0x27ea8a(0x1de)],'dbName':_0x4be340['dbName']};}catch{}throw CliErrors[_0x27ea8a(0x1c7)](_0x27ea8a(0x1d3)+_0x20bca0);}function resolveProvidedDbId(_0x56fc24){const _0x247866=a130_0x371a44,_0x3c469f=_0x56fc24[_0x247866(0x1d7)](_0x247866(0x1df));if(typeof _0x3c469f===_0x247866(0x1f0)&&Number[_0x247866(0x1c5)](_0x3c469f))return _0x3c469f;return undefined;}
@@ -1 +1 @@
1
- const a130_0x11004a=a130_0x366d;(function(_0x3a1708,_0x10c859){const _0x515009=a130_0x366d,_0x5a5ec4=_0x3a1708();while(!![]){try{const _0x1307f7=parseInt(_0x515009(0x1f6))/0x1*(-parseInt(_0x515009(0x1ed))/0x2)+parseInt(_0x515009(0x1ea))/0x3+-parseInt(_0x515009(0x207))/0x4*(-parseInt(_0x515009(0x206))/0x5)+-parseInt(_0x515009(0x1ee))/0x6*(-parseInt(_0x515009(0x1fe))/0x7)+-parseInt(_0x515009(0x1fb))/0x8*(parseInt(_0x515009(0x1fc))/0x9)+-parseInt(_0x515009(0x200))/0xa*(-parseInt(_0x515009(0x205))/0xb)+-parseInt(_0x515009(0x1f3))/0xc;if(_0x1307f7===_0x10c859)break;else _0x5a5ec4['push'](_0x5a5ec4['shift']());}catch(_0x41ed33){_0x5a5ec4['push'](_0x5a5ec4['shift']());}}}(a130_0x4e09,0x2b3c8));function a130_0x4e09(){const _0x59bb74=['str','startsWith','24ffnUvR','342585TumYcL','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','906073eNKoDX','SQL\x20lock\x20file\x20not\x20found.','1270HnxAyO','trashDir','sqlRoot','entries','replace','3949WzdfTj','77485ryffzg','84tlTGuA','POST','Deleted\x20','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','appCode','length','Would\x20delete\x20SQL\x20','validation','delete','118926SPazqT','sqlcode','projectRoot','1118nxHldw','12yfkmDP','remoteId','sqls','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','1795536cuSJUg','sql','lockFilePath','409COzJsx','toISOString','lastSync'];a130_0x4e09=function(){return _0x59bb74;};return a130_0x4e09();}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a130_0x11004a(0x1f4),'command':a130_0x11004a(0x20f),'description':a130_0x11004a(0x20a),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x5d0687){const _0x271bf8=a130_0x11004a,_0x14eb86=loadSqlProjectConfig(_0x5d0687['appCode']),_0x250c68=await readSqlLockFile(_0x14eb86[_0x271bf8(0x1f5)]);if(!_0x250c68)throw CliErrors['validation'](_0x271bf8(0x1f1));},async 'dryRun'(_0x22422a){const _0x24fecf=a130_0x11004a,_0x4f8167=loadSqlProjectConfig(_0x22422a[_0x24fecf(0x20b)]),_0x5ebdd4=await readSqlLockFile(_0x4f8167[_0x24fecf(0x1f5)]);if(!_0x5ebdd4)throw CliErrors[_0x24fecf(0x20e)](_0x24fecf(0x1f1));const {appLock:_0x1cf30c}=ensureSqlLockScope(_0x5ebdd4,_0x22422a[_0x24fecf(0x20b)],_0x4f8167[_0x24fecf(0x202)],_0x24fecf(0x20f)),_0x32a4e6=_0x22422a['str'](_0x24fecf(0x1eb)),_0x56f174=_0x1cf30c[_0x24fecf(0x1f0)][_0x32a4e6];if(!_0x56f174)throw CliErrors[_0x24fecf(0x20e)](_0x24fecf(0x1fd)+_0x32a4e6+'\x22.');return{'method':_0x24fecf(0x208),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x32a4e6,'id':_0x56f174[_0x24fecf(0x1ef)],'localPath':resolveLocalSqlFilePath(_0x4f8167,_0x32a4e6,_0x56f174)},'description':_0x24fecf(0x20d)+_0x32a4e6+_0x24fecf(0x1f2)+_0x4f8167['trashDir']};},async 'execute'(_0xb10b9f){const _0x351d0f=a130_0x11004a,_0x360743=loadSqlProjectConfig(_0xb10b9f[_0x351d0f(0x20b)]),_0x1ab206=await readSqlLockFile(_0x360743[_0x351d0f(0x1f5)]);if(!_0x1ab206)throw CliErrors[_0x351d0f(0x20e)](_0x351d0f(0x1ff));const {lockData:_0x307ffb,appLock:_0x4ae0e6}=ensureSqlLockScope(_0x1ab206,_0xb10b9f[_0x351d0f(0x20b)],_0x360743['sqlRoot'],_0x351d0f(0x20f)),_0x2a3d2a=_0xb10b9f[_0x351d0f(0x1f9)]('sqlcode'),_0x4e6a0f=_0x4ae0e6[_0x351d0f(0x1f0)][_0x2a3d2a];if(!_0x4e6a0f)throw CliErrors[_0x351d0f(0x20e)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x2a3d2a+'\x22.');await deleteSqlQuery({'id':_0x4e6a0f['remoteId'],'sqlCode':_0x2a3d2a}),_0x4ae0e6[_0x351d0f(0x1f0)]=Object['fromEntries'](Object[_0x351d0f(0x203)](_0x4ae0e6[_0x351d0f(0x1f0)])['filter'](([_0x5cd2af])=>_0x5cd2af!==_0x2a3d2a)),_0x4ae0e6[_0x351d0f(0x1f8)]=new Date()['toISOString'](),await writeSqlLockFile(_0x360743['lockFilePath'],_0x307ffb);const _0x86c101=resolveLocalSqlFilePath(_0x360743,_0x2a3d2a,_0x4e6a0f);let _0x3a24c0;await fileExists(_0x86c101)&&(_0x3a24c0=await moveToTrash(_0x360743[_0x351d0f(0x1ec)],_0x360743[_0x351d0f(0x201)],_0x86c101),await cleanupEmptyDirectories(dirname(_0x86c101),_0x360743['sqlRootDir']));const _0x565fb7={'deleted':_0x2a3d2a,'remoteId':_0x4e6a0f['remoteId']};if(_0x3a24c0)_0x565fb7['trashedTo']=_0x3a24c0;return{'ok':!![],'data':_0x565fb7,'message':_0x351d0f(0x209)+_0x2a3d2a+(_0x3a24c0?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function a130_0x366d(_0x25df24,_0x281688){_0x25df24=_0x25df24-0x1ea;const _0x4e09aa=a130_0x4e09();let _0x366d81=_0x4e09aa[_0x25df24];return _0x366d81;}async function moveToTrash(_0x46165a,_0x7fbdfe,_0x18a8dc){const _0x2956d8=a130_0x11004a,_0xc99e44=new Date()[_0x2956d8(0x1f7)]()[_0x2956d8(0x204)](/[:.]/g,'-'),_0xbf309=relative(_0x46165a,_0x18a8dc),_0x53f2b1=join(_0x7fbdfe,_0xc99e44,_0xbf309);return await mkdir(dirname(_0x53f2b1),{'recursive':!![]}),await rename(_0x18a8dc,_0x53f2b1),_0x53f2b1;}async function cleanupEmptyDirectories(_0x5a2a4e,_0x5a8277){const _0x397ffd=a130_0x11004a;let _0x3ae2fa=resolve(_0x5a2a4e);const _0x58b4b7=resolve(_0x5a8277);while(_0x3ae2fa[_0x397ffd(0x1fa)](''+_0x58b4b7+sep)||_0x3ae2fa===_0x58b4b7){if(_0x3ae2fa===_0x58b4b7)return;try{const _0x46c390=await readdir(_0x3ae2fa);if(_0x46c390[_0x397ffd(0x20c)]>0x0)return;await rmdir(_0x3ae2fa);}catch{return;}_0x3ae2fa=dirname(_0x3ae2fa);}}
1
+ const a131_0x1a026d=a131_0xba61;(function(_0x263978,_0x5ccafd){const _0x317e44=a131_0xba61,_0x4f411c=_0x263978();while(!![]){try{const _0x3b0917=parseInt(_0x317e44(0xdc))/0x1+-parseInt(_0x317e44(0xd9))/0x2+-parseInt(_0x317e44(0xcc))/0x3+-parseInt(_0x317e44(0xe1))/0x4+parseInt(_0x317e44(0xd3))/0x5*(-parseInt(_0x317e44(0xc5))/0x6)+parseInt(_0x317e44(0xd7))/0x7*(-parseInt(_0x317e44(0xcb))/0x8)+parseInt(_0x317e44(0xda))/0x9;if(_0x3b0917===_0x5ccafd)break;else _0x4f411c['push'](_0x4f411c['shift']());}catch(_0xc3af95){_0x4f411c['push'](_0x4f411c['shift']());}}}(a131_0x593b,0x882d8));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a131_0xba61(_0x37008e,_0x17b9cc){_0x37008e=_0x37008e-0xc4;const _0x593b57=a131_0x593b();let _0xba61f0=_0x593b57[_0x37008e];return _0xba61f0;}import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';function a131_0x593b(){const _0xe63632=['POST','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','lockFilePath','1534520dVLCpZ','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','replace','entries','sqlcode','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','delete','toISOString','6QRVHiF','trashDir','remoteId','Would\x20delete\x20SQL\x20','sqls','\x20(local\x20file\x20moved\x20to\x20trash)','56PMsiBl','441027hzcXKS','sqlRoot','startsWith','appCode','lastSync','length','validation','1074415mpgUua','sql','fromEntries','trashedTo','631491wuaElW','str','1686066gXTPgj','20393901KixHiT','filter','511841ANjavz','/smartapi/custom/deleteUserCustomSql'];a131_0x593b=function(){return _0xe63632;};return a131_0x593b();}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':a131_0x1a026d(0xd4),'command':a131_0x1a026d(0xe7),'description':a131_0x1a026d(0xe2),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x40f002){const _0x5e7aac=a131_0x1a026d,_0x56b4ad=loadSqlProjectConfig(_0x40f002[_0x5e7aac(0xcf)]),_0x3ec5d3=await readSqlLockFile(_0x56b4ad['lockFilePath']);if(!_0x3ec5d3)throw CliErrors[_0x5e7aac(0xd2)](_0x5e7aac(0xe6));},async 'dryRun'(_0xc98ec7){const _0x5e572d=a131_0x1a026d,_0x5d08ef=loadSqlProjectConfig(_0xc98ec7['appCode']),_0x1d02f5=await readSqlLockFile(_0x5d08ef[_0x5e572d(0xe0)]);if(!_0x1d02f5)throw CliErrors[_0x5e572d(0xd2)](_0x5e572d(0xe6));const {appLock:_0x19f8c0}=ensureSqlLockScope(_0x1d02f5,_0xc98ec7['appCode'],_0x5d08ef['sqlRoot'],_0x5e572d(0xe7)),_0x582191=_0xc98ec7[_0x5e572d(0xd8)](_0x5e572d(0xe5)),_0x44aa76=_0x19f8c0['sqls'][_0x582191];if(!_0x44aa76)throw CliErrors[_0x5e572d(0xd2)](_0x5e572d(0xdf)+_0x582191+'\x22.');return{'method':_0x5e572d(0xde),'url':_0x5e572d(0xdd),'body':{'sqlCode':_0x582191,'id':_0x44aa76[_0x5e572d(0xc7)],'localPath':resolveLocalSqlFilePath(_0x5d08ef,_0x582191,_0x44aa76)},'description':_0x5e572d(0xc8)+_0x582191+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x5d08ef[_0x5e572d(0xc6)]};},async 'execute'(_0x2321a3){const _0x5d66e7=a131_0x1a026d,_0x24369f=loadSqlProjectConfig(_0x2321a3[_0x5d66e7(0xcf)]),_0x274917=await readSqlLockFile(_0x24369f[_0x5d66e7(0xe0)]);if(!_0x274917)throw CliErrors[_0x5d66e7(0xd2)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x379dda,appLock:_0x4cc77a}=ensureSqlLockScope(_0x274917,_0x2321a3[_0x5d66e7(0xcf)],_0x24369f[_0x5d66e7(0xcd)],_0x5d66e7(0xe7)),_0x41c7eb=_0x2321a3[_0x5d66e7(0xd8)]('sqlcode'),_0x477a23=_0x4cc77a[_0x5d66e7(0xc9)][_0x41c7eb];if(!_0x477a23)throw CliErrors[_0x5d66e7(0xd2)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x41c7eb+'\x22.');await deleteSqlQuery({'id':_0x477a23[_0x5d66e7(0xc7)],'sqlCode':_0x41c7eb}),_0x4cc77a[_0x5d66e7(0xc9)]=Object[_0x5d66e7(0xd5)](Object[_0x5d66e7(0xe4)](_0x4cc77a[_0x5d66e7(0xc9)])[_0x5d66e7(0xdb)](([_0x250f59])=>_0x250f59!==_0x41c7eb)),_0x4cc77a[_0x5d66e7(0xd0)]=new Date()[_0x5d66e7(0xc4)](),await writeSqlLockFile(_0x24369f[_0x5d66e7(0xe0)],_0x379dda);const _0x4701eb=resolveLocalSqlFilePath(_0x24369f,_0x41c7eb,_0x477a23);let _0xb216fd;await fileExists(_0x4701eb)&&(_0xb216fd=await moveToTrash(_0x24369f['projectRoot'],_0x24369f[_0x5d66e7(0xc6)],_0x4701eb),await cleanupEmptyDirectories(dirname(_0x4701eb),_0x24369f['sqlRootDir']));const _0x3f8a0c={'deleted':_0x41c7eb,'remoteId':_0x477a23[_0x5d66e7(0xc7)]};if(_0xb216fd)_0x3f8a0c[_0x5d66e7(0xd6)]=_0xb216fd;return{'ok':!![],'data':_0x3f8a0c,'message':'Deleted\x20'+_0x41c7eb+(_0xb216fd?_0x5d66e7(0xca):'')};}};async function moveToTrash(_0x1eb2d9,_0x48ae59,_0xee8f0){const _0x5d5c59=a131_0x1a026d,_0x2f9326=new Date()[_0x5d5c59(0xc4)]()[_0x5d5c59(0xe3)](/[:.]/g,'-'),_0x404dab=relative(_0x1eb2d9,_0xee8f0),_0x3a4bd1=join(_0x48ae59,_0x2f9326,_0x404dab);return await mkdir(dirname(_0x3a4bd1),{'recursive':!![]}),await rename(_0xee8f0,_0x3a4bd1),_0x3a4bd1;}async function cleanupEmptyDirectories(_0x4fb892,_0x5e6a97){const _0x2f1f25=a131_0x1a026d;let _0x33b1a1=resolve(_0x4fb892);const _0x57a3c4=resolve(_0x5e6a97);while(_0x33b1a1[_0x2f1f25(0xce)](''+_0x57a3c4+sep)||_0x33b1a1===_0x57a3c4){if(_0x33b1a1===_0x57a3c4)return;try{const _0x3f3d6b=await readdir(_0x33b1a1);if(_0x3f3d6b[_0x2f1f25(0xd1)]>0x0)return;await rmdir(_0x33b1a1);}catch{return;}_0x33b1a1=dirname(_0x33b1a1);}}
@@ -1 +1 @@
1
- const a131_0x3e64ce=a131_0x336d;(function(_0x4d0fc5,_0x194fb3){const _0x3e5543=a131_0x336d,_0x2e373f=_0x4d0fc5();while(!![]){try{const _0x3343c1=parseInt(_0x3e5543(0x1ab))/0x1+parseInt(_0x3e5543(0x1b5))/0x2+parseInt(_0x3e5543(0x1a9))/0x3*(-parseInt(_0x3e5543(0x1b3))/0x4)+-parseInt(_0x3e5543(0x1a1))/0x5*(parseInt(_0x3e5543(0x1b1))/0x6)+parseInt(_0x3e5543(0x1a6))/0x7+parseInt(_0x3e5543(0x1b4))/0x8*(parseInt(_0x3e5543(0x1a2))/0x9)+-parseInt(_0x3e5543(0x1ad))/0xa;if(_0x3343c1===_0x194fb3)break;else _0x2e373f['push'](_0x2e373f['shift']());}catch(_0x139a51){_0x2e373f['push'](_0x2e373f['shift']());}}}(a131_0x31cb,0x9bf15));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a131_0x336d(_0x2a6af6,_0x8a7537){_0x2a6af6=_0x2a6af6-0x1a1;const _0x31cb7a=a131_0x31cb();let _0x336d92=_0x31cb7a[_0x2a6af6];return _0x336d92;}function a131_0x31cb(){const _0x1aa554=['1671654eUjFKy','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','1253733tFspGC','appCode','3146540zGpLNH','detail','read','sqlName','2630538TwEhkZ','boolean','4nRCxxs','40yZIwnH','1427192ojxAFK','10dJBBjz','515484NlDhVl','description','dbId','verbose','936250mBkfTB','sql','sqlcode'];a131_0x31cb=function(){return _0x1aa554;};return a131_0x31cb();}export const sqlDetail={'service':a131_0x3e64ce(0x1a7),'command':a131_0x3e64ce(0x1ae),'description':a131_0x3e64ce(0x1aa),'risk':a131_0x3e64ce(0x1af),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a131_0x3e64ce(0x1b2),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x190082){const _0x3efde5=a131_0x3e64ce,_0x84477=await getSqlQueryInfo(_0x190082[_0x3efde5(0x1ac)],_0x190082['str'](_0x3efde5(0x1a8))),_0x8c92c5=_0x190082['bool'](_0x3efde5(0x1a5));if(_0x8c92c5)return{'ok':!![],'data':_0x84477};const _0xf4c919=_0x84477[_0x3efde5(0x1a4)]?await getDbName(_0x190082[_0x3efde5(0x1ac)],_0x84477[_0x3efde5(0x1a4)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x84477['sqlCode'],'sqlName':_0x84477[_0x3efde5(0x1b0)],'db':_0xf4c919?_0xf4c919+'\x20('+_0x84477[_0x3efde5(0x1a4)]+')':_0x84477[_0x3efde5(0x1a4)]??'','description':_0x84477[_0x3efde5(0x1a3)]??'','sqlContent':_0x84477['sqlContent']??''}};}};
1
+ const a132_0x22d0e1=a132_0x2ed9;function a132_0x2ed9(_0x3a5548,_0x1b7b55){_0x3a5548=_0x3a5548-0xc7;const _0x43be1f=a132_0x43be();let _0x2ed996=_0x43be1f[_0x3a5548];return _0x2ed996;}(function(_0x593126,_0x1dc95d){const _0x875487=a132_0x2ed9,_0x1d05e9=_0x593126();while(!![]){try{const _0x541fac=-parseInt(_0x875487(0xc8))/0x1+parseInt(_0x875487(0xd7))/0x2+parseInt(_0x875487(0xd2))/0x3*(-parseInt(_0x875487(0xdd))/0x4)+-parseInt(_0x875487(0xd0))/0x5*(-parseInt(_0x875487(0xdc))/0x6)+parseInt(_0x875487(0xdf))/0x7+parseInt(_0x875487(0xd3))/0x8+parseInt(_0x875487(0xc7))/0x9*(-parseInt(_0x875487(0xcc))/0xa);if(_0x541fac===_0x1dc95d)break;else _0x1d05e9['push'](_0x1d05e9['shift']());}catch(_0x27dc2b){_0x1d05e9['push'](_0x1d05e9['shift']());}}}(a132_0x43be,0x42b1e));import{getSqlQueryInfo}from'../../core/api-client.js';function a132_0x43be(){const _0x182be9=['verbose','bool','36535RAKWev','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','51AEOofX','2618792oxAHkB','sqlName','appCode','read','769116MTTxlN','sqlcode','str','sqlContent','sql','402rJQjWO','35172WhQDVC','dbId','615328XYmtRU','144QfuOmd','469629EttEOZ','detail','Return\x20full\x20raw\x20SQL\x20query\x20object','sqlCode','248180qnCfMS','boolean'];a132_0x43be=function(){return _0x182be9;};return a132_0x43be();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a132_0x22d0e1(0xdb),'command':a132_0x22d0e1(0xc9),'description':a132_0x22d0e1(0xd1),'risk':a132_0x22d0e1(0xd6),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a132_0x22d0e1(0xcd),'description':a132_0x22d0e1(0xca)}],async 'execute'(_0x4a86a9){const _0x199b39=a132_0x22d0e1,_0x4976e3=await getSqlQueryInfo(_0x4a86a9['appCode'],_0x4a86a9[_0x199b39(0xd9)](_0x199b39(0xd8))),_0x33a7df=_0x4a86a9[_0x199b39(0xcf)](_0x199b39(0xce));if(_0x33a7df)return{'ok':!![],'data':_0x4976e3};const _0x10685c=_0x4976e3['dbId']?await getDbName(_0x4a86a9[_0x199b39(0xd5)],_0x4976e3['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0x4976e3[_0x199b39(0xcb)],'sqlName':_0x4976e3[_0x199b39(0xd4)],'db':_0x10685c?_0x10685c+'\x20('+_0x4976e3[_0x199b39(0xde)]+')':_0x4976e3['dbId']??'','description':_0x4976e3['description']??'','sqlContent':_0x4976e3[_0x199b39(0xda)]??''}};}};
@@ -1 +1 @@
1
- const a132_0x7020f=a132_0x1d2f;(function(_0x25030c,_0x63faa2){const _0x4030f7=a132_0x1d2f,_0x5689ab=_0x25030c();while(!![]){try{const _0x158654=parseInt(_0x4030f7(0x1ab))/0x1*(-parseInt(_0x4030f7(0x1b0))/0x2)+-parseInt(_0x4030f7(0x1b7))/0x3+parseInt(_0x4030f7(0x1b3))/0x4+-parseInt(_0x4030f7(0x1ac))/0x5+-parseInt(_0x4030f7(0x1b4))/0x6+parseInt(_0x4030f7(0x1bc))/0x7+parseInt(_0x4030f7(0x1b5))/0x8;if(_0x158654===_0x63faa2)break;else _0x5689ab['push'](_0x5689ab['shift']());}catch(_0x1999ad){_0x5689ab['push'](_0x5689ab['shift']());}}}(a132_0x5e45,0x8a33d));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':a132_0x7020f(0x1b8),'command':a132_0x7020f(0x1b9),'description':a132_0x7020f(0x1bb),'risk':'read','flags':[SQLCODE_FLAG,{'name':'params','type':'string','description':a132_0x7020f(0x1b1)}],async 'execute'(_0x5da5c8){const _0x145754=a132_0x7020f,_0x508982=parseJsonParams(_0x5da5c8[_0x145754(0x1b6)]('params')),_0x2ba698=Date[_0x145754(0x1bd)](),_0x5b0c0e=await executeSql(_0x5da5c8[_0x145754(0x1be)],_0x5da5c8[_0x145754(0x1b6)](_0x145754(0x1ae)),_0x508982),_0x569516=Date[_0x145754(0x1bd)]()-_0x2ba698,_0x34c648=_0x5b0c0e?.[_0x145754(0x1af)]??_0x5b0c0e,_0x30d5b6=_0x5b0c0e?.[_0x145754(0x1ad)]??!![];if(!_0x30d5b6)return{'ok':![],'data':{'error':_0x5b0c0e?.['execError']||_0x145754(0x1ba),'elapsed':_0x569516},'message':'SQL\x20execution\x20failed'};const _0x69dd07=Array['isArray'](_0x34c648)?_0x34c648:[];return{'ok':!![],'data':{'rows':_0x69dd07,'rowCount':_0x69dd07[_0x145754(0x1b2)],'elapsed':_0x569516},'message':'Returned\x20'+_0x69dd07[_0x145754(0x1b2)]+'\x20row(s)\x20in\x20'+_0x569516+'ms'};}};function a132_0x1d2f(_0x22a31d,_0x1d8b85){_0x22a31d=_0x22a31d-0x1ab;const _0x5e4517=a132_0x5e45();let _0x1d2fa1=_0x5e4517[_0x22a31d];return _0x1d2fa1;}function a132_0x5e45(){const _0x26864a=['execResult','2fRKrJy','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','length','1809620iXADmn','3984006LoaTqY','10272448hRUFXA','str','1704477RVTZBP','sql','exec','SQL\x20execution\x20failed','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','5336037gusOfw','now','appCode','404737NVhdYO','1478890gfzrdd','execSuccess','sqlcode'];a132_0x5e45=function(){return _0x26864a;};return a132_0x5e45();}
1
+ const a133_0x5b7fae=a133_0xaed9;(function(_0x4bd2ce,_0x356790){const _0x5828fc=a133_0xaed9,_0x5acd71=_0x4bd2ce();while(!![]){try{const _0x40ceef=-parseInt(_0x5828fc(0x7f))/0x1+-parseInt(_0x5828fc(0x8b))/0x2*(-parseInt(_0x5828fc(0x88))/0x3)+parseInt(_0x5828fc(0x87))/0x4+parseInt(_0x5828fc(0x8e))/0x5+-parseInt(_0x5828fc(0x8a))/0x6+parseInt(_0x5828fc(0x80))/0x7+parseInt(_0x5828fc(0x85))/0x8*(parseInt(_0x5828fc(0x7c))/0x9);if(_0x40ceef===_0x356790)break;else _0x5acd71['push'](_0x5acd71['shift']());}catch(_0x570a89){_0x5acd71['push'](_0x5acd71['shift']());}}}(a133_0x536f,0x4f6a3));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a133_0x536f(){const _0x152b22=['now','16KOhoNy','sqlcode','270908aGHhMz','105MkdvBY','sql','3623034dIiegN','7258rTwgxi','SQL\x20execution\x20failed','execError','2656980RfJDhl','length','appCode','\x20row(s)\x20in\x20','1402425xwGWru','str','params','599796YkEMVP','3437910BsuSck','string','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','execSuccess'];a133_0x536f=function(){return _0x152b22;};return a133_0x536f();}function a133_0xaed9(_0x40f4e1,_0x4b0feb){_0x40f4e1=_0x40f4e1-0x7c;const _0x536f9e=a133_0x536f();let _0xaed9d5=_0x536f9e[_0x40f4e1];return _0xaed9d5;}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a133_0x5b7fae(0x89),'command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':'params','type':a133_0x5b7fae(0x81),'description':a133_0x5b7fae(0x82)}],async 'execute'(_0x4ae3fe){const _0x1e88d6=a133_0x5b7fae,_0x20a7b1=parseJsonParams(_0x4ae3fe['str'](_0x1e88d6(0x7e))),_0x2ab0a0=Date['now'](),_0x1c2b50=await executeSql(_0x4ae3fe[_0x1e88d6(0x90)],_0x4ae3fe[_0x1e88d6(0x7d)](_0x1e88d6(0x86)),_0x20a7b1),_0x536877=Date[_0x1e88d6(0x84)]()-_0x2ab0a0,_0x4b705=_0x1c2b50?.['execResult']??_0x1c2b50,_0x3d5382=_0x1c2b50?.[_0x1e88d6(0x83)]??!![];if(!_0x3d5382)return{'ok':![],'data':{'error':_0x1c2b50?.[_0x1e88d6(0x8d)]||'SQL\x20execution\x20failed','elapsed':_0x536877},'message':_0x1e88d6(0x8c)};const _0x3a180d=Array['isArray'](_0x4b705)?_0x4b705:[];return{'ok':!![],'data':{'rows':_0x3a180d,'rowCount':_0x3a180d[_0x1e88d6(0x8f)],'elapsed':_0x536877},'message':'Returned\x20'+_0x3a180d['length']+_0x1e88d6(0x91)+_0x536877+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x1954bf,_0x4f3b51){const _0x14b73e=a133_0x547b,_0x366c86=_0x1954bf();while(!![]){try{const _0x123bfe=parseInt(_0x14b73e(0x1ba))/0x1*(parseInt(_0x14b73e(0x1c0))/0x2)+-parseInt(_0x14b73e(0x1bd))/0x3+-parseInt(_0x14b73e(0x1be))/0x4+-parseInt(_0x14b73e(0x1bf))/0x5*(-parseInt(_0x14b73e(0x1bb))/0x6)+parseInt(_0x14b73e(0x1b9))/0x7*(parseInt(_0x14b73e(0x1c2))/0x8)+-parseInt(_0x14b73e(0x1b8))/0x9*(parseInt(_0x14b73e(0x1c1))/0xa)+-parseInt(_0x14b73e(0x1bc))/0xb;if(_0x123bfe===_0x4f3b51)break;else _0x366c86['push'](_0x366c86['shift']());}catch(_0x1144f){_0x366c86['push'](_0x366c86['shift']());}}}(a133_0x4be0,0xad0eb));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';function a133_0x4be0(){const _0xb2f5a5=['9360113GEeUGy','22583RmqRaX','7362iiXYbe','14887862asxFff','667773ywJHGX','4524992fovadc','4585sHmvTw','98qqXuuM','9730ecioGb','8JEJOVD','1413WDshuB'];a133_0x4be0=function(){return _0xb2f5a5;};return a133_0x4be0();}function a133_0x547b(_0x28d442,_0x2f56f2){_0x28d442=_0x28d442-0x1b8;const _0x4be088=a133_0x4be0();let _0x547b25=_0x4be088[_0x28d442];return _0x547b25;}export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x15975a,_0x2ccd36){const _0x58ce89=a134_0xb5f5,_0x3aa22e=_0x15975a();while(!![]){try{const _0x194b14=parseInt(_0x58ce89(0x117))/0x1+parseInt(_0x58ce89(0x11c))/0x2*(parseInt(_0x58ce89(0x116))/0x3)+-parseInt(_0x58ce89(0x114))/0x4+-parseInt(_0x58ce89(0x118))/0x5+-parseInt(_0x58ce89(0x119))/0x6*(-parseInt(_0x58ce89(0x11d))/0x7)+parseInt(_0x58ce89(0x11a))/0x8+parseInt(_0x58ce89(0x115))/0x9*(-parseInt(_0x58ce89(0x11b))/0xa);if(_0x194b14===_0x2ccd36)break;else _0x3aa22e['push'](_0x3aa22e['shift']());}catch(_0x2d4a1b){_0x3aa22e['push'](_0x3aa22e['shift']());}}}(a134_0x33e2,0xf4148));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a134_0x33e2(){const _0xdfc915=['1905792ZUlFaJ','31495599TTLERQ','39JBqcoM','1115045PzYSTj','2007835AEHpRO','486PeGePC','14051080efLtiM','10gQBbPA','146266xJtpRL','134393BpiRKz'];a134_0x33e2=function(){return _0xdfc915;};return a134_0x33e2();}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 a134_0xb5f5(_0x2f90bb,_0x30b4af){_0x2f90bb=_0x2f90bb-0x114;const _0x33e233=a134_0x33e2();let _0xb5f57c=_0x33e233[_0x2f90bb];return _0xb5f57c;}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 a134_0x5391(){const _0x1bcc69=['Page\x20size','appCode','\x20SQL\x20queries\x20(total:\x20','sqlCode','description','boolean','9CLkfDR','name','Page\x20number','45508CWOyRc','read','36BxMgAV','number','verbose','No\x20custom\x20SQL\x20queries\x20found.','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','string','10pHlAwe','Found\x20','bool','2009208FtvFrb','dbId','116474OCmvny','list','sqlName','str','tableData','Filter\x20by\x20SQL\x20name','page','num','1994088AbJZkL','length','1284703LtNijl','397100zZmSOw','List\x20custom\x20SQL\x20queries','11318805ASpcbb'];a134_0x5391=function(){return _0x1bcc69;};return a134_0x5391();}function a134_0x330c(_0x25d11b,_0x1e3e1d){_0x25d11b=_0x25d11b-0x9d;const _0x539183=a134_0x5391();let _0x330c90=_0x539183[_0x25d11b];return _0x330c90;}const a134_0x4b778b=a134_0x330c;(function(_0x5a4de7,_0x3a79bc){const _0x2b7e80=a134_0x330c,_0x270abc=_0x5a4de7();while(!![]){try{const _0xa4fa84=-parseInt(_0x2b7e80(0xa8))/0x1+-parseInt(_0x2b7e80(0xbf))/0x2*(-parseInt(_0x2b7e80(0xbc))/0x3)+-parseInt(_0x2b7e80(0xb0))/0x4+parseInt(_0x2b7e80(0xb3))/0x5*(-parseInt(_0x2b7e80(0x9d))/0x6)+-parseInt(_0x2b7e80(0xb2))/0x7+parseInt(_0x2b7e80(0xa6))/0x8+parseInt(_0x2b7e80(0xb5))/0x9*(parseInt(_0x2b7e80(0xa3))/0xa);if(_0xa4fa84===_0x3a79bc)break;else _0x270abc['push'](_0x270abc['shift']());}catch(_0x23626d){_0x270abc['push'](_0x270abc['shift']());}}}(a134_0x5391,0x49bbd));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':'sql','command':a134_0x4b778b(0xa9),'description':a134_0x4b778b(0xb4),'risk':a134_0x4b778b(0xc0),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a134_0x4b778b(0xa2),'description':a134_0x4b778b(0xad)},{'name':a134_0x4b778b(0xae),'type':'number','description':a134_0x4b778b(0xbe),'default':0x1},{'name':'pagesize','type':a134_0x4b778b(0x9e),'description':a134_0x4b778b(0xb6)},{'name':a134_0x4b778b(0x9f),'type':a134_0x4b778b(0xbb),'description':a134_0x4b778b(0xa1)}],async 'execute'(_0xb9cefe){const _0x24fb12=a134_0x4b778b,_0x15a283=await listSqlQueries(_0xb9cefe['appCode'],{'sqlCode':_0xb9cefe[_0x24fb12(0xab)]('sqlcode')||undefined,'sqlName':_0xb9cefe[_0x24fb12(0xab)](_0x24fb12(0xbd))||undefined,'currentPage':_0xb9cefe[_0x24fb12(0xaf)](_0x24fb12(0xae)),'pageSize':_0xb9cefe[_0x24fb12(0xaf)]('pagesize',0x32)}),_0x47a876=_0xb9cefe[_0x24fb12(0xa5)]('verbose'),_0x33c85a=_0x15a283[_0x24fb12(0xac)]??[],_0x47b56b=_0x15a283['paging']?.['totalCount']??_0x33c85a[_0x24fb12(0xb1)];let _0x32cc6b;return _0x47a876?_0x32cc6b=_0x33c85a:_0x32cc6b=await Promise['all'](_0x33c85a['map'](async _0x52bd75=>{const _0x37a14f=_0x24fb12;let _0x64b2f1;try{_0x64b2f1=_0x52bd75[_0x37a14f(0xa7)]?await getDbName(_0xb9cefe[_0x37a14f(0xb7)],_0x52bd75[_0x37a14f(0xa7)]):undefined;}catch{}return{'sqlCode':_0x52bd75[_0x37a14f(0xb9)],'sqlName':_0x52bd75[_0x37a14f(0xaa)],'description':_0x52bd75[_0x37a14f(0xba)]??'','db':_0x64b2f1?_0x64b2f1+'\x20('+_0x52bd75[_0x37a14f(0xa7)]+')':_0x52bd75[_0x37a14f(0xa7)]??''};})),{'ok':!![],'data':_0x32cc6b,'message':_0x33c85a[_0x24fb12(0xb1)]===0x0?_0x24fb12(0xa0):_0x24fb12(0xa4)+_0x33c85a['length']+_0x24fb12(0xb8)+_0x47b56b+').'};}};
1
+ const a135_0x3b34cf=a135_0xaffc;(function(_0x2625a6,_0x1c9c0d){const _0x5ebad9=a135_0xaffc,_0x25723e=_0x2625a6();while(!![]){try{const _0x592605=parseInt(_0x5ebad9(0xed))/0x1+parseInt(_0x5ebad9(0xee))/0x2+-parseInt(_0x5ebad9(0xff))/0x3+-parseInt(_0x5ebad9(0xea))/0x4*(parseInt(_0x5ebad9(0x10a))/0x5)+parseInt(_0x5ebad9(0xf4))/0x6*(-parseInt(_0x5ebad9(0xfd))/0x7)+-parseInt(_0x5ebad9(0xf5))/0x8+parseInt(_0x5ebad9(0x107))/0x9;if(_0x592605===_0x1c9c0d)break;else _0x25723e['push'](_0x25723e['shift']());}catch(_0x399cee){_0x25723e['push'](_0x25723e['shift']());}}}(a135_0x12b8,0xa1f6e));function a135_0x12b8(){const _0x5a258a=['list','page','length','all','boolean','sqlcode','11790801eMBxZT','read','name','3935ZBQsFq','appCode','No\x20custom\x20SQL\x20queries\x20found.','sqlName','paging','Filter\x20by\x20SQL\x20name','2636iBbtVo','List\x20custom\x20SQL\x20queries','pagesize','865268bfedOY','2164100GtKaeb','Page\x20size','number','verbose','bool','num','1386FZVFBu','6390632EWNcOG','map','Found\x20','totalCount','dbId','Page\x20number','str','\x20SQL\x20queries\x20(total:\x20','22295DKtlsT','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','1622412VRvvAs','sqlCode'];a135_0x12b8=function(){return _0x5a258a;};return a135_0x12b8();}import{listSqlQueries}from'../../core/api-client.js';function a135_0xaffc(_0x58c199,_0x5e9c84){_0x58c199=_0x58c199-0xe7;const _0x12b82b=a135_0x12b8();let _0xaffcbf=_0x12b82b[_0x58c199];return _0xaffcbf;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a135_0x3b34cf(0x101),'description':a135_0x3b34cf(0xeb),'risk':a135_0x3b34cf(0x108),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a135_0x3b34cf(0x109),'type':'string','description':a135_0x3b34cf(0xe9)},{'name':'page','type':a135_0x3b34cf(0xf0),'description':a135_0x3b34cf(0xfa),'default':0x1},{'name':a135_0x3b34cf(0xec),'type':a135_0x3b34cf(0xf0),'description':a135_0x3b34cf(0xef)},{'name':a135_0x3b34cf(0xf1),'type':a135_0x3b34cf(0x105),'description':a135_0x3b34cf(0xfe)}],async 'execute'(_0x306808){const _0x4b1df4=a135_0x3b34cf,_0x5ca5cc=await listSqlQueries(_0x306808[_0x4b1df4(0x10b)],{'sqlCode':_0x306808[_0x4b1df4(0xfb)](_0x4b1df4(0x106))||undefined,'sqlName':_0x306808['str'](_0x4b1df4(0x109))||undefined,'currentPage':_0x306808['num'](_0x4b1df4(0x102)),'pageSize':_0x306808[_0x4b1df4(0xf3)]('pagesize',0x32)}),_0x26f24d=_0x306808[_0x4b1df4(0xf2)](_0x4b1df4(0xf1)),_0x1626fb=_0x5ca5cc['tableData']??[],_0x3e1536=_0x5ca5cc[_0x4b1df4(0xe8)]?.[_0x4b1df4(0xf8)]??_0x1626fb['length'];let _0x5d627a;return _0x26f24d?_0x5d627a=_0x1626fb:_0x5d627a=await Promise[_0x4b1df4(0x104)](_0x1626fb[_0x4b1df4(0xf6)](async _0x32ed03=>{const _0x517083=_0x4b1df4;let _0x408970;try{_0x408970=_0x32ed03[_0x517083(0xf9)]?await getDbName(_0x306808[_0x517083(0x10b)],_0x32ed03['dbId']):undefined;}catch{}return{'sqlCode':_0x32ed03[_0x517083(0x100)],'sqlName':_0x32ed03[_0x517083(0xe7)],'description':_0x32ed03['description']??'','db':_0x408970?_0x408970+'\x20('+_0x32ed03[_0x517083(0xf9)]+')':_0x32ed03[_0x517083(0xf9)]??''};})),{'ok':!![],'data':_0x5d627a,'message':_0x1626fb[_0x4b1df4(0x103)]===0x0?_0x4b1df4(0x10c):_0x4b1df4(0xf7)+_0x1626fb[_0x4b1df4(0x103)]+_0x4b1df4(0xfc)+_0x3e1536+').'};}};
@@ -1 +1 @@
1
- const a135_0x48a07c=a135_0x13cc;(function(_0x533646,_0x3cf815){const _0x5b76bf=a135_0x13cc,_0x32b966=_0x533646();while(!![]){try{const _0x17d49c=parseInt(_0x5b76bf(0x147))/0x1+parseInt(_0x5b76bf(0x159))/0x2*(parseInt(_0x5b76bf(0x14b))/0x3)+-parseInt(_0x5b76bf(0x151))/0x4+-parseInt(_0x5b76bf(0x127))/0x5*(-parseInt(_0x5b76bf(0x13f))/0x6)+-parseInt(_0x5b76bf(0x132))/0x7+parseInt(_0x5b76bf(0x134))/0x8*(-parseInt(_0x5b76bf(0x149))/0x9)+parseInt(_0x5b76bf(0x128))/0xa;if(_0x17d49c===_0x3cf815)break;else _0x32b966['push'](_0x32b966['shift']());}catch(_0x515585){_0x32b966['push'](_0x32b966['shift']());}}}(a135_0x1ad7,0x5e556));import{readFile,rm,writeFile}from'node:fs/promises';function a135_0x13cc(_0x3c104a,_0x425099){_0x3c104a=_0x3c104a-0x11d;const _0x1ad743=a135_0x1ad7();let _0x13ccb0=_0x1ad743[_0x3c104a];return _0x13ccb0;}import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';function a135_0x1ad7(){const _0x20ebf5=['local\x20differs\x20from\x20remote','pull','push','4261542MUsGLV','boolean','conflict','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','str','sqls','appCode','description','415908pYoMzJ','\x20written,\x20','1424349hALmvA','write','225qnHtly','join','\x20SQL\x20file(s)\x20into\x20','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','bool','nonInteractive','2277388UeTsoC','\x20skipped,\x20','message','sqlName','No\x20remote\x20SQL\x20queries\x20matched.','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','unchanged','sqlRoot','5784YemGpX','Force\x20pull\x20cancelled.','path','lastSync','sqlcode','skipped','Force\x20overwrite\x20local\x20unsynced\x20changes','utf8','sqlCode','lockFilePath','toISOString','POST','force','5MCWOow','7825580YWxmLv','sqlContent','replace','totalCount','sql','cancelled','split','\x20failed','Would\x20pull\x20','sqlRootDir','3757894zoeCDP','name','32bBBvDk','length','Filter\x20by\x20SQL\x20display\x20name','dbId','mybatisXml','test','catch','apps'];a135_0x1ad7=function(){return _0x20ebf5;};return a135_0x1ad7();}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(_0x1a7bd7,_0x5a9539){const _0x20eae4=a135_0x13cc,_0x549b54=[];let _0x3c86b1=0x1;while(!![]){const _0x3d6807=await listSqlQueries(_0x1a7bd7,{'currentPage':_0x3c86b1,'pageSize':PAGE_SIZE,'sqlCode':_0x5a9539[_0x20eae4(0x122)],'sqlName':_0x5a9539[_0x20eae4(0x154)]}),_0x43f7e1=_0x3d6807['tableData']??[];_0x549b54[_0x20eae4(0x13e)](..._0x43f7e1);if(_0x43f7e1[_0x20eae4(0x135)]===0x0)break;const _0x475d99=_0x3d6807['paging']?.[_0x20eae4(0x12b)];if(_0x475d99!=null?_0x549b54['length']>=_0x475d99:_0x43f7e1[_0x20eae4(0x135)]<PAGE_SIZE)break;_0x3c86b1++;}return _0x549b54;}async function ensureSqlContent(_0x467284){const _0x1def1f=a135_0x13cc;if(_0x467284[_0x1def1f(0x129)]!=null&&String(_0x467284['sqlContent'])['length']>0x0)return _0x467284;return getSqlQueryDetail(_0x467284[_0x1def1f(0x122)]);}export const sqlPull={'service':a135_0x48a07c(0x12c),'command':a135_0x48a07c(0x13d),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a135_0x48a07c(0x14a),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a135_0x48a07c(0x133),'type':'string','description':a135_0x48a07c(0x136)},{'name':'force','type':a135_0x48a07c(0x140),'description':a135_0x48a07c(0x120)}],async 'dryRun'(_0x2f89e3){const _0x2e7945=a135_0x48a07c,_0xd45c02=loadSqlProjectConfig(_0x2f89e3[_0x2e7945(0x145)]),_0x7755a7=await readSqlLockFile(_0xd45c02[_0x2e7945(0x123)]),{appLock:_0x171058}=ensureSqlLockScope(_0x7755a7??createEmptySqlLock(),_0xd45c02[_0x2e7945(0x145)],_0xd45c02[_0x2e7945(0x158)],'pull'),_0x3a005e=await fetchAllSqlQueries(_0x2f89e3['appCode'],{'sqlCode':_0x2f89e3[_0x2e7945(0x143)](_0x2e7945(0x11e))||undefined,'sqlName':_0x2f89e3[_0x2e7945(0x143)]('name')||undefined}),_0x23e3e6=[];for(const _0x36c311 of _0x3a005e){const _0x24397d=await ensureSqlContent(_0x36c311),_0x30fcb7=ensureRemoteSqlContent(_0x24397d),_0x2640f2=detectModeFromSql(_0x24397d),_0xaeeb8f=_0x24397d[_0x2e7945(0x137)]?await getDbName(_0x2f89e3[_0x2e7945(0x145)],Number(_0x24397d['dbId']))[_0x2e7945(0x13a)](()=>undefined):undefined,_0x5a7e75=buildLocalSqlFileContent({'sqlCode':_0x24397d[_0x2e7945(0x122)],'sqlName':_0x24397d[_0x2e7945(0x154)],'dbId':_0x24397d['dbId']},_0x30fcb7,{'dbName':_0xaeeb8f,'mode':_0x2640f2,'syncedAt':new Date()['toISOString'](),'description':_0x24397d[_0x2e7945(0x146)]}),_0x146119=buildSqlLockEntry(_0x24397d,_0x30fcb7,'',{'dbName':_0xaeeb8f}),_0x1dd780=resolveLocalSqlFilePath(_0xd45c02,_0x24397d[_0x2e7945(0x122)],_0x146119);let _0xa37bdd='would_pull',_0xe22b0b;if(await fileExists(_0x1dd780)){const _0x38c951=await readFile(_0x1dd780,_0x2e7945(0x121));isEquivalentPulledSqlFile(_0x38c951,_0x5a7e75,_0x2640f2)?(_0xa37bdd=_0x2e7945(0x11f),_0xe22b0b=_0x2e7945(0x157)):(_0xa37bdd=_0x2e7945(0x141),_0xe22b0b=_0x2e7945(0x14e));}_0x23e3e6[_0x2e7945(0x13e)]({'sqlCode':_0x24397d[_0x2e7945(0x122)],'sqlName':_0x24397d[_0x2e7945(0x154)],'filePath':_0x1dd780,'status':_0xa37bdd,'reason':_0xe22b0b});}return{'method':_0x2e7945(0x125),'url':_0x2e7945(0x142),'body':{'appCode':_0x2f89e3[_0x2e7945(0x145)],'sqlCode':_0x2f89e3[_0x2e7945(0x143)](_0x2e7945(0x11e))||null,'sqlName':_0x2f89e3[_0x2e7945(0x143)]('name')||null,'files':_0x23e3e6},'description':_0x2e7945(0x130)+_0x23e3e6[_0x2e7945(0x135)]+_0x2e7945(0x14d)+_0xd45c02[_0x2e7945(0x131)]};},async 'execute'(_0x1b3d68){const _0x12e869=a135_0x48a07c,_0x2770ab=loadSqlProjectConfig(_0x1b3d68['appCode']),_0x4f468b=await readSqlLockFile(_0x2770ab[_0x12e869(0x123)]),{lockData:_0x398e6c,appLock:_0x14ae27}=ensureSqlLockScope(_0x4f468b??createEmptySqlLock(),_0x2770ab[_0x12e869(0x145)],_0x2770ab['sqlRoot'],'pull'),_0x3f6898=_0x1b3d68[_0x12e869(0x14f)](_0x12e869(0x126)),_0x2a2b53=await fetchAllSqlQueries(_0x1b3d68['appCode'],{'sqlCode':_0x1b3d68[_0x12e869(0x143)](_0x12e869(0x11e))||undefined,'sqlName':_0x1b3d68[_0x12e869(0x143)]('name')||undefined});if(_0x2a2b53[_0x12e869(0x135)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x12e869(0x155)};const _0x250bda=[],_0x57b17=[];for(const _0x3604ba of _0x2a2b53){try{_0x250bda['push'](await ensureSqlContent(_0x3604ba));}catch(_0x2b16c4){_0x57b17[_0x12e869(0x13e)]({'sqlCode':_0x3604ba[_0x12e869(0x122)],'error':_0x2b16c4 instanceof Error?_0x2b16c4[_0x12e869(0x153)]:String(_0x2b16c4)});}}if(_0x3f6898&&!_0x1b3d68[_0x12e869(0x150)]){let _0x39d5cd=![];for(const _0x4e710a of _0x250bda){const _0x3a7cf9=detectModeFromSql(_0x4e710a),_0x2456da=_0x4e710a[_0x12e869(0x137)]?await getDbName(_0x1b3d68[_0x12e869(0x145)],Number(_0x4e710a[_0x12e869(0x137)]))[_0x12e869(0x13a)](()=>undefined):undefined,_0x2bd90c=buildLocalSqlFileContent({'sqlCode':_0x4e710a[_0x12e869(0x122)],'sqlName':_0x4e710a['sqlName'],'dbId':_0x4e710a[_0x12e869(0x137)]},ensureRemoteSqlContent(_0x4e710a),{'dbName':_0x2456da,'mode':_0x3a7cf9,'syncedAt':new Date()[_0x12e869(0x124)](),'description':_0x4e710a[_0x12e869(0x146)]}),_0x5afc49=resolveLocalSqlFilePath(_0x2770ab,_0x4e710a['sqlCode'],buildSqlLockEntry(_0x4e710a,ensureRemoteSqlContent(_0x4e710a),'',{'dbName':_0x2456da}));if(await fileExists(_0x5afc49)){const _0x2dd7bc=await readFile(_0x5afc49,_0x12e869(0x121));if(!isEquivalentPulledSqlFile(_0x2dd7bc,_0x2bd90c,_0x3a7cf9)){_0x39d5cd=!![];break;}}}if(_0x39d5cd){const _0x395fe0=await confirmForceOverwrite(_0x12e869(0x156));if(!_0x395fe0)throw CliErrors[_0x12e869(0x12d)](_0x12e869(0x15a));}}const _0xad69af=cloneSqlLockData(_0x398e6c),_0x2c7716=_0xad69af[_0x12e869(0x13b)][_0x2770ab[_0x12e869(0x145)]],_0x52b597=[],_0x268b40=[];for(const _0x54a4c4 of _0x250bda){const _0x185c32=_0x2c7716[_0x12e869(0x144)][_0x54a4c4['sqlCode']],_0x4d2de5=ensureRemoteSqlContent(_0x54a4c4),_0x4bae8a=detectModeFromSql(_0x54a4c4),_0x167b05=_0x54a4c4[_0x12e869(0x137)]?await getDbName(_0x1b3d68[_0x12e869(0x145)],Number(_0x54a4c4[_0x12e869(0x137)]))[_0x12e869(0x13a)](()=>undefined):undefined,_0x51025d=buildLocalSqlFileContent({'sqlCode':_0x54a4c4['sqlCode'],'sqlName':_0x54a4c4[_0x12e869(0x154)],'dbId':_0x54a4c4[_0x12e869(0x137)]},_0x4d2de5,{'dbName':_0x167b05,'mode':_0x4bae8a,'syncedAt':new Date()[_0x12e869(0x124)](),'description':_0x54a4c4[_0x12e869(0x146)]}),_0x144bb0=buildSqlLockEntry(_0x54a4c4,_0x4d2de5,computeSqlContentHash(_0x51025d),{'dbName':_0x167b05}),_0x56960f=_0x144bb0['path'],_0x181ee4=join(_0x2770ab['sqlRootDir'],_0x56960f);try{if(await fileExists(_0x181ee4)){const _0x3ba8ae=await readFile(_0x181ee4,_0x12e869(0x121));if(isEquivalentPulledSqlFile(_0x3ba8ae,_0x51025d,_0x4bae8a)){_0x268b40[_0x12e869(0x13e)]({'sqlCode':_0x54a4c4[_0x12e869(0x122)],'reason':_0x12e869(0x157)}),_0x2c7716[_0x12e869(0x144)][_0x54a4c4[_0x12e869(0x122)]]={..._0x144bb0,'hash':computeSqlContentHash(_0x3ba8ae),'path':_0x56960f};continue;}if(!_0x3f6898){_0x268b40[_0x12e869(0x13e)]({'sqlCode':_0x54a4c4[_0x12e869(0x122)],'reason':_0x12e869(0x13c)});continue;}}const _0x5b0076=_0x185c32?.['path']?join(_0x2770ab[_0x12e869(0x131)],_0x185c32[_0x12e869(0x15b)]):undefined;_0x5b0076&&_0x5b0076!==_0x181ee4&&await fileExists(_0x5b0076)&&await rm(_0x5b0076,{'force':!![]}),await ensureParentDirectory(_0x181ee4),await writeFile(_0x181ee4,_0x51025d,_0x12e869(0x121)),_0x2c7716[_0x12e869(0x144)][_0x54a4c4['sqlCode']]={..._0x144bb0,'path':_0x56960f},_0x52b597[_0x12e869(0x13e)]({'sqlCode':_0x54a4c4[_0x12e869(0x122)],'filePath':_0x181ee4});}catch(_0x1f16a8){_0x57b17[_0x12e869(0x13e)]({'sqlCode':_0x54a4c4[_0x12e869(0x122)],'error':_0x1f16a8 instanceof Error?_0x1f16a8[_0x12e869(0x153)]:String(_0x1f16a8)});}}return _0x2c7716[_0x12e869(0x11d)]=new Date()[_0x12e869(0x124)](),await writeSqlLockFile(_0x2770ab[_0x12e869(0x123)],_0xad69af),{'ok':_0x57b17[_0x12e869(0x135)]===0x0,'data':{'pulled':_0x52b597,'skipped':_0x268b40,'failed':_0x57b17},'message':'Pull\x20complete:\x20'+_0x52b597[_0x12e869(0x135)]+_0x12e869(0x148)+_0x268b40[_0x12e869(0x135)]+_0x12e869(0x152)+_0x57b17[_0x12e869(0x135)]+_0x12e869(0x12f)};}};function detectModeFromSql(_0x30107a){const _0x54c2ad=a135_0x48a07c,_0x2fd84f=ensureRemoteSqlContent(_0x30107a),_0x4c2ae0=stripLocalSqlMetadata(_0x2fd84f,_0x54c2ad(0x138))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x54c2ad(0x139)](_0x4c2ae0))return _0x54c2ad(0x138);return _0x54c2ad(0x12c);}function isEquivalentPulledSqlFile(_0x316e05,_0x4d19b7,_0xa58a9){return normalizePullComparableContent(_0x316e05,_0xa58a9)===normalizePullComparableContent(_0x4d19b7,_0xa58a9);}function normalizePullComparableContent(_0x13ab7d,_0x2e182a){const _0x3a99c1=a135_0x48a07c,_0x404a5c=_0x13ab7d[_0x3a99c1(0x12a)](/\r\n/g,'\x0a')[_0x3a99c1(0x12e)]('\x0a'),_0x1e11ee=_0x404a5c['filter'](_0x576e78=>!isSyncedAtMetadataLine(_0x576e78,_0x2e182a));return _0x1e11ee[_0x3a99c1(0x14c)]('\x0a');}function isSyncedAtMetadataLine(_0x2668df,_0x58ab4c){const _0x133cbd=a135_0x48a07c;if(_0x58ab4c===_0x133cbd(0x138))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x2668df);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x133cbd(0x139)](_0x2668df);}
1
+ const a136_0x5549d3=a136_0x24b6;(function(_0x14ead0,_0x28d9fa){const _0x4e2093=a136_0x24b6,_0x444f2b=_0x14ead0();while(!![]){try{const _0x540678=-parseInt(_0x4e2093(0x11d))/0x1+parseInt(_0x4e2093(0x12f))/0x2*(-parseInt(_0x4e2093(0x103))/0x3)+parseInt(_0x4e2093(0x112))/0x4*(parseInt(_0x4e2093(0x12e))/0x5)+-parseInt(_0x4e2093(0x127))/0x6+parseInt(_0x4e2093(0x13b))/0x7+-parseInt(_0x4e2093(0x111))/0x8+parseInt(_0x4e2093(0x131))/0x9;if(_0x540678===_0x28d9fa)break;else _0x444f2b['push'](_0x444f2b['shift']());}catch(_0x2b4844){_0x444f2b['push'](_0x444f2b['shift']());}}}(a136_0x4085,0x7e4f2));function a136_0x24b6(_0x472b5a,_0x2ee63a){_0x472b5a=_0x472b5a-0x101;const _0x408526=a136_0x4085();let _0x24b66c=_0x408526[_0x472b5a];return _0x24b66c;}import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';function a136_0x4085(){const _0x11b4ef=['mybatisXml','Would\x20pull\x20','POST','Force\x20overwrite\x20local\x20unsynced\x20changes','skipped','catch','833165Krepiq','58WzFaEp','totalCount','3878118iaOSWA','pull','lockFilePath','Filter\x20by\x20SQL\x20display\x20name','sqlContent','filter','bool','description','local\x20differs\x20from\x20remote','sqlRoot','3735543IvtVJI','split','sqlcode','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','boolean','60633YPBvbP','\x20SQL\x20file(s)\x20into\x20','sql','dbId','test','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','force','No\x20remote\x20SQL\x20queries\x20matched.','would_pull','Force\x20pull\x20cancelled.','utf8','\x20written,\x20','Pull\x20complete:\x20','sqlRootDir','1841064IDKUTL','20OhwFEd','write','lastSync','unchanged','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','name','push','tableData','string','str','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','92345DAsWOa','paging','sqlName','length','cancelled','toISOString','sqlCode','path','\x20skipped,\x20','appCode','2230542eutmIx'];a136_0x4085=function(){return _0x11b4ef;};return a136_0x4085();}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(_0x45c9c7,_0x4ba87f){const _0x1212df=a136_0x24b6,_0x5e728d=[];let _0xbc7fe0=0x1;while(!![]){const _0x5ead64=await listSqlQueries(_0x45c9c7,{'currentPage':_0xbc7fe0,'pageSize':PAGE_SIZE,'sqlCode':_0x4ba87f[_0x1212df(0x123)],'sqlName':_0x4ba87f[_0x1212df(0x11f)]}),_0x4d0529=_0x5ead64[_0x1212df(0x119)]??[];_0x5e728d['push'](..._0x4d0529);if(_0x4d0529[_0x1212df(0x120)]===0x0)break;const _0x281c98=_0x5ead64[_0x1212df(0x11e)]?.[_0x1212df(0x130)];if(_0x281c98!=null?_0x5e728d[_0x1212df(0x120)]>=_0x281c98:_0x4d0529['length']<PAGE_SIZE)break;_0xbc7fe0++;}return _0x5e728d;}async function ensureSqlContent(_0x445242){const _0x2e328d=a136_0x24b6;if(_0x445242[_0x2e328d(0x135)]!=null&&String(_0x445242[_0x2e328d(0x135)])['length']>0x0)return _0x445242;return getSqlQueryDetail(_0x445242[_0x2e328d(0x123)]);}export const sqlPull={'service':a136_0x5549d3(0x105),'command':a136_0x5549d3(0x132),'description':a136_0x5549d3(0x116),'risk':a136_0x5549d3(0x113),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x5549d3(0x117),'type':a136_0x5549d3(0x11a),'description':a136_0x5549d3(0x134)},{'name':'force','type':a136_0x5549d3(0x102),'description':a136_0x5549d3(0x12b)}],async 'dryRun'(_0x4a9e25){const _0x210da6=a136_0x5549d3,_0xc38489=loadSqlProjectConfig(_0x4a9e25['appCode']),_0x76bc58=await readSqlLockFile(_0xc38489[_0x210da6(0x133)]),{appLock:_0x5462a8}=ensureSqlLockScope(_0x76bc58??createEmptySqlLock(),_0xc38489[_0x210da6(0x126)],_0xc38489['sqlRoot'],'pull'),_0x377dc0=await fetchAllSqlQueries(_0x4a9e25[_0x210da6(0x126)],{'sqlCode':_0x4a9e25['str'](_0x210da6(0x13d))||undefined,'sqlName':_0x4a9e25[_0x210da6(0x11b)]('name')||undefined}),_0x394521=[];for(const _0x47661e of _0x377dc0){const _0x16349a=await ensureSqlContent(_0x47661e),_0x5e8395=ensureRemoteSqlContent(_0x16349a),_0x2db08a=detectModeFromSql(_0x16349a),_0x29b55d=_0x16349a[_0x210da6(0x106)]?await getDbName(_0x4a9e25['appCode'],Number(_0x16349a[_0x210da6(0x106)]))['catch'](()=>undefined):undefined,_0x2da5f6=buildLocalSqlFileContent({'sqlCode':_0x16349a[_0x210da6(0x123)],'sqlName':_0x16349a['sqlName'],'dbId':_0x16349a['dbId']},_0x5e8395,{'dbName':_0x29b55d,'mode':_0x2db08a,'syncedAt':new Date()[_0x210da6(0x122)](),'description':_0x16349a[_0x210da6(0x138)]}),_0x321309=buildSqlLockEntry(_0x16349a,_0x5e8395,'',{'dbName':_0x29b55d}),_0x57e96a=resolveLocalSqlFilePath(_0xc38489,_0x16349a[_0x210da6(0x123)],_0x321309);let _0xcd85e2=_0x210da6(0x10b),_0x46c4eb;if(await fileExists(_0x57e96a)){const _0x1f0a59=await readFile(_0x57e96a,_0x210da6(0x10d));isEquivalentPulledSqlFile(_0x1f0a59,_0x2da5f6,_0x2db08a)?(_0xcd85e2=_0x210da6(0x12c),_0x46c4eb=_0x210da6(0x115)):(_0xcd85e2='conflict',_0x46c4eb=_0x210da6(0x101));}_0x394521['push']({'sqlCode':_0x16349a['sqlCode'],'sqlName':_0x16349a[_0x210da6(0x11f)],'filePath':_0x57e96a,'status':_0xcd85e2,'reason':_0x46c4eb});}return{'method':_0x210da6(0x12a),'url':_0x210da6(0x11c),'body':{'appCode':_0x4a9e25[_0x210da6(0x126)],'sqlCode':_0x4a9e25['str']('sqlcode')||null,'sqlName':_0x4a9e25[_0x210da6(0x11b)](_0x210da6(0x117))||null,'files':_0x394521},'description':_0x210da6(0x129)+_0x394521[_0x210da6(0x120)]+_0x210da6(0x104)+_0xc38489['sqlRootDir']};},async 'execute'(_0x44eee6){const _0x49adab=a136_0x5549d3,_0x54e6b8=loadSqlProjectConfig(_0x44eee6[_0x49adab(0x126)]),_0x1a6d30=await readSqlLockFile(_0x54e6b8['lockFilePath']),{lockData:_0x4f366b,appLock:_0x5561cb}=ensureSqlLockScope(_0x1a6d30??createEmptySqlLock(),_0x54e6b8[_0x49adab(0x126)],_0x54e6b8[_0x49adab(0x13a)],'pull'),_0x908636=_0x44eee6[_0x49adab(0x137)](_0x49adab(0x109)),_0x455ec4=await fetchAllSqlQueries(_0x44eee6[_0x49adab(0x126)],{'sqlCode':_0x44eee6[_0x49adab(0x11b)](_0x49adab(0x13d))||undefined,'sqlName':_0x44eee6['str'](_0x49adab(0x117))||undefined});if(_0x455ec4[_0x49adab(0x120)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x49adab(0x10a)};const _0x477aeb=[],_0x59963d=[];for(const _0x340ab4 of _0x455ec4){try{_0x477aeb[_0x49adab(0x118)](await ensureSqlContent(_0x340ab4));}catch(_0x42b0cd){_0x59963d['push']({'sqlCode':_0x340ab4[_0x49adab(0x123)],'error':_0x42b0cd instanceof Error?_0x42b0cd['message']:String(_0x42b0cd)});}}if(_0x908636&&!_0x44eee6['nonInteractive']){let _0x381ebb=![];for(const _0x503270 of _0x477aeb){const _0x598dfc=detectModeFromSql(_0x503270),_0x1b1ad9=_0x503270[_0x49adab(0x106)]?await getDbName(_0x44eee6[_0x49adab(0x126)],Number(_0x503270[_0x49adab(0x106)]))['catch'](()=>undefined):undefined,_0x3b6e25=buildLocalSqlFileContent({'sqlCode':_0x503270[_0x49adab(0x123)],'sqlName':_0x503270['sqlName'],'dbId':_0x503270['dbId']},ensureRemoteSqlContent(_0x503270),{'dbName':_0x1b1ad9,'mode':_0x598dfc,'syncedAt':new Date()[_0x49adab(0x122)](),'description':_0x503270[_0x49adab(0x138)]}),_0x27e0ff=resolveLocalSqlFilePath(_0x54e6b8,_0x503270[_0x49adab(0x123)],buildSqlLockEntry(_0x503270,ensureRemoteSqlContent(_0x503270),'',{'dbName':_0x1b1ad9}));if(await fileExists(_0x27e0ff)){const _0x346cc0=await readFile(_0x27e0ff,_0x49adab(0x10d));if(!isEquivalentPulledSqlFile(_0x346cc0,_0x3b6e25,_0x598dfc)){_0x381ebb=!![];break;}}}if(_0x381ebb){const _0x3b4097=await confirmForceOverwrite(_0x49adab(0x108));if(!_0x3b4097)throw CliErrors[_0x49adab(0x121)](_0x49adab(0x10c));}}const _0x56752d=cloneSqlLockData(_0x4f366b),_0x27ea4c=_0x56752d['apps'][_0x54e6b8[_0x49adab(0x126)]],_0x301933=[],_0x484f1a=[];for(const _0x148e39 of _0x477aeb){const _0x3af83a=_0x27ea4c['sqls'][_0x148e39[_0x49adab(0x123)]],_0xb3f5a=ensureRemoteSqlContent(_0x148e39),_0x4ad4dc=detectModeFromSql(_0x148e39),_0x1fd6c7=_0x148e39[_0x49adab(0x106)]?await getDbName(_0x44eee6[_0x49adab(0x126)],Number(_0x148e39[_0x49adab(0x106)]))[_0x49adab(0x12d)](()=>undefined):undefined,_0x169fd9=buildLocalSqlFileContent({'sqlCode':_0x148e39['sqlCode'],'sqlName':_0x148e39[_0x49adab(0x11f)],'dbId':_0x148e39[_0x49adab(0x106)]},_0xb3f5a,{'dbName':_0x1fd6c7,'mode':_0x4ad4dc,'syncedAt':new Date()[_0x49adab(0x122)](),'description':_0x148e39[_0x49adab(0x138)]}),_0x1ac33e=buildSqlLockEntry(_0x148e39,_0xb3f5a,computeSqlContentHash(_0x169fd9),{'dbName':_0x1fd6c7}),_0xe216a7=_0x1ac33e[_0x49adab(0x124)],_0x45f202=join(_0x54e6b8[_0x49adab(0x110)],_0xe216a7);try{if(await fileExists(_0x45f202)){const _0x33efe9=await readFile(_0x45f202,_0x49adab(0x10d));if(isEquivalentPulledSqlFile(_0x33efe9,_0x169fd9,_0x4ad4dc)){_0x484f1a[_0x49adab(0x118)]({'sqlCode':_0x148e39[_0x49adab(0x123)],'reason':_0x49adab(0x115)}),_0x27ea4c['sqls'][_0x148e39[_0x49adab(0x123)]]={..._0x1ac33e,'hash':computeSqlContentHash(_0x33efe9),'path':_0xe216a7};continue;}if(!_0x908636){_0x484f1a['push']({'sqlCode':_0x148e39[_0x49adab(0x123)],'reason':_0x49adab(0x139)});continue;}}const _0x3e82e0=_0x3af83a?.[_0x49adab(0x124)]?join(_0x54e6b8[_0x49adab(0x110)],_0x3af83a[_0x49adab(0x124)]):undefined;_0x3e82e0&&_0x3e82e0!==_0x45f202&&await fileExists(_0x3e82e0)&&await rm(_0x3e82e0,{'force':!![]}),await ensureParentDirectory(_0x45f202),await writeFile(_0x45f202,_0x169fd9,_0x49adab(0x10d)),_0x27ea4c['sqls'][_0x148e39[_0x49adab(0x123)]]={..._0x1ac33e,'path':_0xe216a7},_0x301933[_0x49adab(0x118)]({'sqlCode':_0x148e39[_0x49adab(0x123)],'filePath':_0x45f202});}catch(_0x2b8786){_0x59963d[_0x49adab(0x118)]({'sqlCode':_0x148e39[_0x49adab(0x123)],'error':_0x2b8786 instanceof Error?_0x2b8786['message']:String(_0x2b8786)});}}return _0x27ea4c[_0x49adab(0x114)]=new Date()[_0x49adab(0x122)](),await writeSqlLockFile(_0x54e6b8[_0x49adab(0x133)],_0x56752d),{'ok':_0x59963d[_0x49adab(0x120)]===0x0,'data':{'pulled':_0x301933,'skipped':_0x484f1a,'failed':_0x59963d},'message':_0x49adab(0x10f)+_0x301933[_0x49adab(0x120)]+_0x49adab(0x10e)+_0x484f1a['length']+_0x49adab(0x125)+_0x59963d[_0x49adab(0x120)]+'\x20failed'};}};function detectModeFromSql(_0x4f1fee){const _0x2542f5=a136_0x5549d3,_0x46823c=ensureRemoteSqlContent(_0x4f1fee),_0x45c8b8=stripLocalSqlMetadata(_0x46823c,'mybatisXml')['trimStart']();if(/^<(select|insert|update|delete)\b/i['test'](_0x45c8b8))return'mybatisXml';return _0x2542f5(0x105);}function isEquivalentPulledSqlFile(_0x35fe42,_0x39d971,_0x5394a5){return normalizePullComparableContent(_0x35fe42,_0x5394a5)===normalizePullComparableContent(_0x39d971,_0x5394a5);}function normalizePullComparableContent(_0x704cab,_0x5eaa55){const _0x58b9d2=a136_0x5549d3,_0x13f9c3=_0x704cab['replace'](/\r\n/g,'\x0a')[_0x58b9d2(0x13c)]('\x0a'),_0x3f8f51=_0x13f9c3[_0x58b9d2(0x136)](_0x3beece=>!isSyncedAtMetadataLine(_0x3beece,_0x5eaa55));return _0x3f8f51['join']('\x0a');}function isSyncedAtMetadataLine(_0xae767c,_0x2ac8cb){const _0x507ad5=a136_0x5549d3;if(_0x2ac8cb===_0x507ad5(0x128))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0xae767c);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x507ad5(0x107)](_0xae767c);}
@@ -1 +1 @@
1
- const a136_0x5b3234=a136_0x40b3;(function(_0x60e61b,_0x1f6cc0){const _0x5374db=a136_0x40b3,_0x216e9e=_0x60e61b();while(!![]){try{const _0x175d46=parseInt(_0x5374db(0x190))/0x1*(-parseInt(_0x5374db(0x1a6))/0x2)+-parseInt(_0x5374db(0x1b0))/0x3*(parseInt(_0x5374db(0x197))/0x4)+-parseInt(_0x5374db(0x175))/0x5+-parseInt(_0x5374db(0x181))/0x6+-parseInt(_0x5374db(0x17f))/0x7+-parseInt(_0x5374db(0x1ab))/0x8+parseInt(_0x5374db(0x18f))/0x9*(parseInt(_0x5374db(0x1af))/0xa);if(_0x175d46===_0x1f6cc0)break;else _0x216e9e['push'](_0x216e9e['shift']());}catch(_0x31d3e2){_0x216e9e['push'](_0x216e9e['shift']());}}}(a136_0xdd0d,0xd1ea0));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';function a136_0x40b3(_0x3d6375,_0x325b7c){_0x3d6375=_0x3d6375-0x174;const _0xdd0ddc=a136_0xdd0d();let _0x40b3b1=_0xdd0ddc[_0x3d6375];return _0x40b3b1;}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';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x4eff92,_0x5aa722,_0x15bee2){const _0x255887=a136_0x40b3,_0x23bdb2=await scanLocalSqlQueries(_0x4eff92),_0x41d37d=new Map();for(const _0x486b50 of _0x23bdb2){if(_0x15bee2&&_0x486b50[_0x255887(0x19c)]!==_0x15bee2)continue;const _0x5a4dfb=_0x41d37d['get'](_0x486b50[_0x255887(0x19c)])??[];_0x5a4dfb[_0x255887(0x178)](_0x486b50),_0x41d37d[_0x255887(0x194)](_0x486b50[_0x255887(0x19c)],_0x5a4dfb);}if(_0x15bee2&&!_0x41d37d[_0x255887(0x17a)](_0x15bee2))throw CliErrors['validation'](_0x255887(0x1b2)+_0x15bee2);const _0x567283=[];for(const [_0x3d9f7c,_0x230d69]of _0x41d37d[_0x255887(0x17d)]()){if(_0x230d69[_0x255887(0x19b)]===0x1){_0x567283[_0x255887(0x178)](_0x230d69[0x0]);continue;}const _0x295936=_0x5aa722['sqls'][_0x3d9f7c],_0x564c7a=_0x295936?.[_0x255887(0x183)],_0x793b5f=_0x564c7a?_0x230d69[_0x255887(0x192)](_0x19bbf8=>_0x19bbf8[_0x255887(0x191)]!==_0x564c7a):_0x230d69;if(_0x295936&&_0x793b5f[_0x255887(0x19b)]===0x1){_0x567283[_0x255887(0x178)](_0x793b5f[0x0]);continue;}throw CliErrors[_0x255887(0x19f)]('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x3d9f7c+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x567283;}export const sqlPush={'service':a136_0x5b3234(0x187),'command':a136_0x5b3234(0x178),'description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x5b3234(0x182),'type':a136_0x5b3234(0x193),'description':a136_0x5b3234(0x19a)}],async 'dryRun'(_0x2d4aa6){const _0x103ae5=a136_0x5b3234,_0x1fd738=loadSqlProjectConfig(_0x2d4aa6[_0x103ae5(0x18e)]),_0x1b5bb3=await readSqlLockFile(_0x1fd738[_0x103ae5(0x196)]),{appLock:_0x89998f}=ensureSqlLockScope(_0x1b5bb3??createEmptySqlLock(),_0x2d4aa6[_0x103ae5(0x18e)],_0x1fd738[_0x103ae5(0x179)],_0x103ae5(0x178)),_0xfed81f=await getTargetSqlQueries(_0x1fd738,_0x89998f,_0x2d4aa6[_0x103ae5(0x180)]('sqlcode')||undefined),_0x3ed43a=[];for(const _0x44cc25 of _0xfed81f){const _0x3da2be=await computeSqlFileHash(_0x44cc25['filePath']),_0x405b31=_0x89998f[_0x103ae5(0x18b)][_0x44cc25[_0x103ae5(0x19c)]],_0x297c1e=!!_0x405b31&&(_0x405b31[_0x103ae5(0x183)]!==_0x44cc25['relativePath']||!!_0x44cc25[_0x103ae5(0x188)]&&_0x405b31[_0x103ae5(0x188)]!==_0x44cc25[_0x103ae5(0x188)]);if(!_0x2d4aa6[_0x103ae5(0x195)]('force')&&_0x405b31&&_0x405b31['hash']===_0x3da2be&&!_0x297c1e)continue;_0x3ed43a[_0x103ae5(0x178)](_0x44cc25[_0x103ae5(0x19c)]);}return{'method':_0x103ae5(0x1b3),'url':_0x103ae5(0x17b),'body':{'sqlCodes':_0x3ed43a,'appCode':_0x2d4aa6[_0x103ae5(0x18e)]},'description':_0x103ae5(0x1a8)+_0x3ed43a[_0x103ae5(0x19b)]+_0x103ae5(0x1a3)};},async 'execute'(_0x23442e){const _0x2d68b7=a136_0x5b3234,_0x26bd63=loadSqlProjectConfig(_0x23442e['appCode']),_0x1d9c33=await readSqlLockFile(_0x26bd63['lockFilePath']),{lockData:_0x41434b,appLock:_0xc82e3}=ensureSqlLockScope(_0x1d9c33??createEmptySqlLock(),_0x23442e[_0x2d68b7(0x18e)],_0x26bd63[_0x2d68b7(0x179)],_0x2d68b7(0x178)),_0x4a0872=await getTargetSqlQueries(_0x26bd63,_0xc82e3,_0x23442e[_0x2d68b7(0x180)]('sqlcode')||undefined);if(_0x4a0872['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x2d68b7(0x1b1)};const _0x4c6876=[],_0x37f237=[],_0x3573ed=[];for(const _0x51d6d2 of _0x4a0872){const _0x4485f3=_0xc82e3['sqls'][_0x51d6d2[_0x2d68b7(0x19c)]];if(!_0x4485f3){_0x3573ed[_0x2d68b7(0x178)]({'sqlCode':_0x51d6d2[_0x2d68b7(0x19c)],'error':_0x2d68b7(0x1ae)});continue;}try{const _0x203e46=await computeSqlFileHash(_0x51d6d2[_0x2d68b7(0x19e)]),_0x41a31b=_0x4485f3['path']!==_0x51d6d2[_0x2d68b7(0x191)]||!!_0x51d6d2['sqlName']&&_0x4485f3['sqlName']!==_0x51d6d2[_0x2d68b7(0x188)];if(!_0x23442e[_0x2d68b7(0x195)](_0x2d68b7(0x182))&&_0x4485f3['hash']===_0x203e46&&!_0x41a31b){_0x37f237[_0x2d68b7(0x178)]({'sqlCode':_0x51d6d2[_0x2d68b7(0x19c)],'reason':_0x2d68b7(0x1a9)});continue;}if(_0x4485f3[_0x2d68b7(0x1a1)]==null){_0x3573ed[_0x2d68b7(0x178)]({'sqlCode':_0x51d6d2[_0x2d68b7(0x19c)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x43399a=await readFile(_0x51d6d2['filePath'],_0x2d68b7(0x1ac)),_0x37a259=stripLocalSqlMetadata(_0x43399a,_0x51d6d2[_0x2d68b7(0x1a7)]),_0xb968c7=_0x51d6d2[_0x2d68b7(0x188)]||_0x4485f3[_0x2d68b7(0x188)],_0x447463=await resolveTargetDbBinding(_0x23442e[_0x2d68b7(0x18e)],_0x51d6d2,_0x4485f3),_0xd7b180=await updateSqlQuery({'id':_0x4485f3[_0x2d68b7(0x174)],'appCode':_0x23442e[_0x2d68b7(0x18e)],'sqlCode':_0x51d6d2[_0x2d68b7(0x19c)],'sqlName':_0xb968c7,'dbId':_0x447463[_0x2d68b7(0x177)],'version':_0x4485f3['version'],'sqlContent':_0x37a259,'sqlConfig':_0x4485f3['sqlConfig']??undefined}),_0x58b2d0=_0xd7b180['dbId']?await getDbName(_0x23442e[_0x2d68b7(0x18e)],Number(_0xd7b180[_0x2d68b7(0x177)]))[_0x2d68b7(0x17e)](()=>_0x447463[_0x2d68b7(0x19d)]):_0x447463['dbName'];_0xc82e3['sqls'][_0x51d6d2[_0x2d68b7(0x19c)]]={...buildSqlLockEntry(_0xd7b180,_0x37a259,_0x203e46,{'dbName':_0x58b2d0}),'path':_0x51d6d2[_0x2d68b7(0x191)],'mode':_0x4485f3['mode']},await archivePreviousSqlFileIfNeeded(_0x26bd63,_0x4485f3[_0x2d68b7(0x183)],_0x51d6d2[_0x2d68b7(0x191)]),_0x4c6876[_0x2d68b7(0x178)]({'sqlCode':_0x51d6d2[_0x2d68b7(0x19c)],'remoteId':_0x4485f3[_0x2d68b7(0x174)]});}catch(_0x40a170){_0x3573ed[_0x2d68b7(0x178)]({'sqlCode':_0x51d6d2[_0x2d68b7(0x19c)],'error':_0x40a170 instanceof Error?_0x40a170[_0x2d68b7(0x176)]:String(_0x40a170)});}}return _0xc82e3['lastSync']=new Date()[_0x2d68b7(0x1ad)](),await writeSqlLockFile(_0x26bd63['lockFilePath'],_0x41434b),{'ok':_0x3573ed['length']===0x0,'data':{'pushed':_0x4c6876,'skipped':_0x37f237,'failed':_0x3573ed},'message':'Push\x20complete:\x20'+_0x4c6876['length']+_0x2d68b7(0x186)+_0x37f237[_0x2d68b7(0x19b)]+'\x20skipped,\x20'+_0x3573ed[_0x2d68b7(0x19b)]+_0x2d68b7(0x17c)};}};async function archivePreviousSqlFileIfNeeded(_0xdefbb4,_0x5d330d,_0xe7c2cc){const _0x2d10c0=a136_0x5b3234;if(!_0x5d330d||_0x5d330d===_0xe7c2cc)return;const _0x479943=join(_0xdefbb4[_0x2d10c0(0x1a4)],_0x5d330d);if(!await fileExists(_0x479943))return;const _0x51709e=await moveToTrash(_0xdefbb4[_0x2d10c0(0x199)],_0xdefbb4[_0x2d10c0(0x18d)],_0x479943);await cleanupEmptyDirectories(dirname(_0x479943),_0xdefbb4[_0x2d10c0(0x1a4)]),void _0x51709e;}async function moveToTrash(_0x395b73,_0x5256bb,_0x27c5be){const _0xee440c=a136_0x5b3234,_0x4da2d4=new Date()[_0xee440c(0x1ad)]()['replace'](/[:.]/g,'-'),_0x4ea4cc=relative(_0x395b73,_0x27c5be),_0x30e4cc=join(_0x5256bb,_0x4da2d4,_0x4ea4cc);return await mkdir(dirname(_0x30e4cc),{'recursive':!![]}),await rename(_0x27c5be,_0x30e4cc),_0x30e4cc;}function a136_0xdd0d(){const _0x24b367=['3959070wlMEXR','force','path','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','Local\x20directory\x20\x22','\x20pushed,\x20','sql','sqlName','isFinite','No\x20database\x20matches\x20local\x20directory\x20\x22','sqls','dbDirectory','trashDir','appCode','13533354YjYhkF','1229NjOZCG','relativePath','filter','boolean','set','bool','lockFilePath','272240PLxRQx','join','projectRoot','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','length','sqlCode','dbName','filePath','validation','map','version','startsWith','\x20SQL\x20file(s)','sqlRootDir','\x22\x20for\x20sqlCode\x20','2462EGHOYJ','mode','Would\x20push\x20','unchanged','exec','8722952hKgRhs','utf8','toISOString','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','40XsdlBo','69umFPzX','No\x20local\x20SQL\x20files\x20found.','Local\x20SQL\x20not\x20found:\x20','POST','remoteId','1620040mBHkGM','message','dbId','push','sqlRoot','has','/smartapi/custom/updateUserCustomSql','\x20failed','entries','catch','17605KRNoIQ','str'];a136_0xdd0d=function(){return _0x24b367;};return a136_0xdd0d();}async function cleanupEmptyDirectories(_0x13ad00,_0x5f30d5){const _0x246ff3=a136_0x5b3234;let _0x1fb9dd=resolve(_0x13ad00);const _0x2efa42=resolve(_0x5f30d5);while(_0x1fb9dd[_0x246ff3(0x1a2)](''+_0x2efa42+sep)||_0x1fb9dd===_0x2efa42){if(_0x1fb9dd===_0x2efa42)return;try{const _0x7a87ef=await readdir(_0x1fb9dd);if(_0x7a87ef[_0x246ff3(0x19b)]>0x0)return;await rmdir(_0x1fb9dd);}catch{return;}_0x1fb9dd=dirname(_0x1fb9dd);}}async function resolveTargetDbBinding(_0x264381,_0x4a7186,_0x201c98){const _0xe549cc=a136_0x5b3234,_0x251758=_0x4a7186[_0xe549cc(0x18c)];if(!_0x251758)return{'dbId':_0x201c98[_0xe549cc(0x177)],'dbName':_0x201c98[_0xe549cc(0x19d)]};const _0x34a91d=buildDbDirectoryName(_0x201c98[_0xe549cc(0x19d)],_0x201c98[_0xe549cc(0x177)]);if(_0x251758===_0x34a91d)return{'dbId':_0x201c98['dbId'],'dbName':_0x201c98[_0xe549cc(0x19d)]};const _0x5a4837=parseExplicitDbDirectory(_0x251758);if(_0x5a4837!=null)return{'dbId':_0x5a4837,'dbName':await getDbName(_0x264381,_0x5a4837)[_0xe549cc(0x17e)](()=>undefined)};const _0x3238d4=await listDatabases(_0x264381),_0x4b6816=_0x3238d4['filter'](_0x14da0d=>buildDbDirectoryName(_0x14da0d[_0xe549cc(0x19d)],_0x14da0d[_0xe549cc(0x177)])===_0x251758);if(_0x4b6816[_0xe549cc(0x19b)]===0x1)return{'dbId':_0x4b6816[0x0][_0xe549cc(0x177)],'dbName':_0x4b6816[0x0][_0xe549cc(0x19d)]};if(_0x4b6816[_0xe549cc(0x19b)]===0x0)throw CliErrors[_0xe549cc(0x19f)](_0xe549cc(0x18a)+_0x251758+_0xe549cc(0x1a5)+_0x4a7186[_0xe549cc(0x19c)]+'.');const _0x357532=_0x4b6816[_0xe549cc(0x1a0)](_0x25e324=>_0x25e324[_0xe549cc(0x19d)]+'\x20('+_0x25e324[_0xe549cc(0x177)]+')')[_0xe549cc(0x198)](',\x20');throw CliErrors[_0xe549cc(0x19f)](_0xe549cc(0x185)+_0x251758+_0xe549cc(0x184)+_0x4a7186[_0xe549cc(0x19c)]+':\x20'+_0x357532);}function parseExplicitDbDirectory(_0x4fe074){const _0x9816e3=a136_0x5b3234,_0x20de92=/^db-(\d+)$/[_0x9816e3(0x1aa)](_0x4fe074);if(!_0x20de92)return null;const _0x41442b=Number(_0x20de92[0x1]);return Number[_0x9816e3(0x189)](_0x41442b)&&_0x41442b>0x0?_0x41442b:null;}
1
+ const a137_0x212dcb=a137_0x4618;function a137_0x4618(_0x3eee4a,_0x5e46f5){_0x3eee4a=_0x3eee4a-0xb6;const _0x1adf53=a137_0x1adf();let _0x4618b6=_0x1adf53[_0x3eee4a];return _0x4618b6;}(function(_0x156658,_0x14fe7c){const _0x1593a9=a137_0x4618,_0x39525c=_0x156658();while(!![]){try{const _0x1c9fc5=-parseInt(_0x1593a9(0xb9))/0x1*(-parseInt(_0x1593a9(0xdd))/0x2)+parseInt(_0x1593a9(0xee))/0x3*(parseInt(_0x1593a9(0xbd))/0x4)+-parseInt(_0x1593a9(0xc7))/0x5*(-parseInt(_0x1593a9(0xf1))/0x6)+-parseInt(_0x1593a9(0xc1))/0x7+-parseInt(_0x1593a9(0xde))/0x8+parseInt(_0x1593a9(0xbe))/0x9*(parseInt(_0x1593a9(0xc3))/0xa)+-parseInt(_0x1593a9(0xf6))/0xb;if(_0x1c9fc5===_0x14fe7c)break;else _0x39525c['push'](_0x39525c['shift']());}catch(_0x47c3aa){_0x39525c['push'](_0x39525c['shift']());}}}(a137_0x1adf,0x7b8a3));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';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';function a137_0x1adf(){const _0x33b419=['path','join','Push\x20local\x20SQL\x20files\x20to\x20remote','utf8','sqls','isFinite','Local\x20SQL\x20not\x20found:\x20','Push\x20complete:\x20','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','\x20failed','unchanged','dbDirectory','sqlRoot','No\x20database\x20matches\x20local\x20directory\x20\x22','sqlCode','293466NmEyzF','boolean','entries','618sgujuY','exec','lockFilePath','relativePath','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','7602639zHSYjt','hash','str','catch','mode','\x20skipped,\x20','185cJqSOz','push','dbName','\x20SQL\x20file(s)','12rIrSIf','228141YoTYMx','force','/smartapi/custom/updateUserCustomSql','1271669oZSVIj','filePath','210BmlyFp','get','startsWith','lastSync','15445mXvCKe','appCode','version','remoteId','sqlName','\x22\x20for\x20sqlCode\x20','bool','trashDir','POST','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','replace','sqlcode','\x20pushed,\x20','filter','sqlRootDir','length','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','dbId','sql','map','validation','No\x20local\x20SQL\x20files\x20found.','6710ExqgJd','3086416BBJMij'];a137_0x1adf=function(){return _0x33b419;};return a137_0x1adf();}async function getTargetSqlQueries(_0x3d6f71,_0x17706e,_0x5c0225){const _0x310b55=a137_0x4618,_0x30ef00=await scanLocalSqlQueries(_0x3d6f71),_0x51a686=new Map();for(const _0x48dc26 of _0x30ef00){if(_0x5c0225&&_0x48dc26[_0x310b55(0xed)]!==_0x5c0225)continue;const _0x222c32=_0x51a686[_0x310b55(0xc4)](_0x48dc26[_0x310b55(0xed)])??[];_0x222c32['push'](_0x48dc26),_0x51a686['set'](_0x48dc26[_0x310b55(0xed)],_0x222c32);}if(_0x5c0225&&!_0x51a686['has'](_0x5c0225))throw CliErrors['validation'](_0x310b55(0xe5)+_0x5c0225);const _0x288f8c=[];for(const [_0x131ead,_0x1c2a6e]of _0x51a686[_0x310b55(0xf0)]()){if(_0x1c2a6e[_0x310b55(0xd6)]===0x1){_0x288f8c[_0x310b55(0xba)](_0x1c2a6e[0x0]);continue;}const _0x5b246=_0x17706e[_0x310b55(0xe3)][_0x131ead],_0x2907f8=_0x5b246?.[_0x310b55(0xdf)],_0xfefbeb=_0x2907f8?_0x1c2a6e[_0x310b55(0xd4)](_0x570cb6=>_0x570cb6['relativePath']!==_0x2907f8):_0x1c2a6e;if(_0x5b246&&_0xfefbeb[_0x310b55(0xd6)]===0x1){_0x288f8c['push'](_0xfefbeb[0x0]);continue;}throw CliErrors['validation'](_0x310b55(0xd7)+_0x131ead+_0x310b55(0xe7));}return _0x288f8c;}export const sqlPush={'service':a137_0x212dcb(0xd9),'command':a137_0x212dcb(0xba),'description':a137_0x212dcb(0xe1),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x212dcb(0xbf),'type':a137_0x212dcb(0xef),'description':a137_0x212dcb(0xf5)}],async 'dryRun'(_0x6c0d17){const _0xcebc04=a137_0x212dcb,_0x10014d=loadSqlProjectConfig(_0x6c0d17[_0xcebc04(0xc8)]),_0x2d32cf=await readSqlLockFile(_0x10014d['lockFilePath']),{appLock:_0x3f5e9e}=ensureSqlLockScope(_0x2d32cf??createEmptySqlLock(),_0x6c0d17['appCode'],_0x10014d[_0xcebc04(0xeb)],_0xcebc04(0xba)),_0x2202d6=await getTargetSqlQueries(_0x10014d,_0x3f5e9e,_0x6c0d17[_0xcebc04(0xf8)](_0xcebc04(0xd2))||undefined),_0xd79cb0=[];for(const _0x166754 of _0x2202d6){const _0x53f108=await computeSqlFileHash(_0x166754[_0xcebc04(0xc2)]),_0x443663=_0x3f5e9e[_0xcebc04(0xe3)][_0x166754[_0xcebc04(0xed)]],_0x6ffb0c=!!_0x443663&&(_0x443663[_0xcebc04(0xdf)]!==_0x166754[_0xcebc04(0xf4)]||!!_0x166754[_0xcebc04(0xcb)]&&_0x443663['sqlName']!==_0x166754['sqlName']);if(!_0x6c0d17[_0xcebc04(0xcd)](_0xcebc04(0xbf))&&_0x443663&&_0x443663[_0xcebc04(0xf7)]===_0x53f108&&!_0x6ffb0c)continue;_0xd79cb0[_0xcebc04(0xba)](_0x166754[_0xcebc04(0xed)]);}return{'method':_0xcebc04(0xcf),'url':_0xcebc04(0xc0),'body':{'sqlCodes':_0xd79cb0,'appCode':_0x6c0d17[_0xcebc04(0xc8)]},'description':'Would\x20push\x20'+_0xd79cb0['length']+_0xcebc04(0xbc)};},async 'execute'(_0x284fb9){const _0x3817e6=a137_0x212dcb,_0x51999e=loadSqlProjectConfig(_0x284fb9[_0x3817e6(0xc8)]),_0x1e734e=await readSqlLockFile(_0x51999e[_0x3817e6(0xf3)]),{lockData:_0x201191,appLock:_0x2fde1d}=ensureSqlLockScope(_0x1e734e??createEmptySqlLock(),_0x284fb9[_0x3817e6(0xc8)],_0x51999e[_0x3817e6(0xeb)],_0x3817e6(0xba)),_0x42cced=await getTargetSqlQueries(_0x51999e,_0x2fde1d,_0x284fb9['str'](_0x3817e6(0xd2))||undefined);if(_0x42cced['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x3817e6(0xdc)};const _0x32f83d=[],_0x2d333a=[],_0x3ff874=[];for(const _0x32d2a9 of _0x42cced){const _0x53982b=_0x2fde1d[_0x3817e6(0xe3)][_0x32d2a9['sqlCode']];if(!_0x53982b){_0x3ff874[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x444ee7=await computeSqlFileHash(_0x32d2a9[_0x3817e6(0xc2)]),_0x48540f=_0x53982b[_0x3817e6(0xdf)]!==_0x32d2a9[_0x3817e6(0xf4)]||!!_0x32d2a9[_0x3817e6(0xcb)]&&_0x53982b[_0x3817e6(0xcb)]!==_0x32d2a9[_0x3817e6(0xcb)];if(!_0x284fb9['bool'](_0x3817e6(0xbf))&&_0x53982b[_0x3817e6(0xf7)]===_0x444ee7&&!_0x48540f){_0x2d333a[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9['sqlCode'],'reason':_0x3817e6(0xe9)});continue;}if(_0x53982b[_0x3817e6(0xc9)]==null){_0x3ff874['push']({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x22d7f4=await readFile(_0x32d2a9[_0x3817e6(0xc2)],_0x3817e6(0xe2)),_0x406b88=stripLocalSqlMetadata(_0x22d7f4,_0x32d2a9[_0x3817e6(0xb7)]),_0x3bd1ce=_0x32d2a9['sqlName']||_0x53982b[_0x3817e6(0xcb)],_0x161d22=await resolveTargetDbBinding(_0x284fb9[_0x3817e6(0xc8)],_0x32d2a9,_0x53982b),_0x28115e=await updateSqlQuery({'id':_0x53982b[_0x3817e6(0xca)],'appCode':_0x284fb9[_0x3817e6(0xc8)],'sqlCode':_0x32d2a9['sqlCode'],'sqlName':_0x3bd1ce,'dbId':_0x161d22[_0x3817e6(0xd8)],'version':_0x53982b[_0x3817e6(0xc9)],'sqlContent':_0x406b88,'sqlConfig':_0x53982b['sqlConfig']??undefined}),_0x175b9a=_0x28115e[_0x3817e6(0xd8)]?await getDbName(_0x284fb9['appCode'],Number(_0x28115e['dbId']))[_0x3817e6(0xb6)](()=>_0x161d22['dbName']):_0x161d22[_0x3817e6(0xbb)];_0x2fde1d[_0x3817e6(0xe3)][_0x32d2a9[_0x3817e6(0xed)]]={...buildSqlLockEntry(_0x28115e,_0x406b88,_0x444ee7,{'dbName':_0x175b9a}),'path':_0x32d2a9[_0x3817e6(0xf4)],'mode':_0x53982b[_0x3817e6(0xb7)]},await archivePreviousSqlFileIfNeeded(_0x51999e,_0x53982b[_0x3817e6(0xdf)],_0x32d2a9['relativePath']),_0x32f83d[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'remoteId':_0x53982b[_0x3817e6(0xca)]});}catch(_0x15f4d9){_0x3ff874[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'error':_0x15f4d9 instanceof Error?_0x15f4d9['message']:String(_0x15f4d9)});}}return _0x2fde1d[_0x3817e6(0xc6)]=new Date()['toISOString'](),await writeSqlLockFile(_0x51999e['lockFilePath'],_0x201191),{'ok':_0x3ff874[_0x3817e6(0xd6)]===0x0,'data':{'pushed':_0x32f83d,'skipped':_0x2d333a,'failed':_0x3ff874},'message':_0x3817e6(0xe6)+_0x32f83d[_0x3817e6(0xd6)]+_0x3817e6(0xd3)+_0x2d333a[_0x3817e6(0xd6)]+_0x3817e6(0xb8)+_0x3ff874[_0x3817e6(0xd6)]+_0x3817e6(0xe8)};}};async function archivePreviousSqlFileIfNeeded(_0x4eed95,_0x247404,_0x3b061f){const _0x3a3754=a137_0x212dcb;if(!_0x247404||_0x247404===_0x3b061f)return;const _0x1a1bea=join(_0x4eed95[_0x3a3754(0xd5)],_0x247404);if(!await fileExists(_0x1a1bea))return;const _0x2366c0=await moveToTrash(_0x4eed95['projectRoot'],_0x4eed95[_0x3a3754(0xce)],_0x1a1bea);await cleanupEmptyDirectories(dirname(_0x1a1bea),_0x4eed95[_0x3a3754(0xd5)]),void _0x2366c0;}async function moveToTrash(_0x555ed7,_0x5a69c8,_0x308925){const _0x31bcde=a137_0x212dcb,_0x7e1148=new Date()['toISOString']()[_0x31bcde(0xd1)](/[:.]/g,'-'),_0x1bdd22=relative(_0x555ed7,_0x308925),_0x595993=join(_0x5a69c8,_0x7e1148,_0x1bdd22);return await mkdir(dirname(_0x595993),{'recursive':!![]}),await rename(_0x308925,_0x595993),_0x595993;}async function cleanupEmptyDirectories(_0x256662,_0x19f85c){const _0x1421bc=a137_0x212dcb;let _0x6a6fea=resolve(_0x256662);const _0x51869c=resolve(_0x19f85c);while(_0x6a6fea[_0x1421bc(0xc5)](''+_0x51869c+sep)||_0x6a6fea===_0x51869c){if(_0x6a6fea===_0x51869c)return;try{const _0x266411=await readdir(_0x6a6fea);if(_0x266411[_0x1421bc(0xd6)]>0x0)return;await rmdir(_0x6a6fea);}catch{return;}_0x6a6fea=dirname(_0x6a6fea);}}async function resolveTargetDbBinding(_0x1027e3,_0x4f9140,_0x17f9a8){const _0x55b21c=a137_0x212dcb,_0x2c9176=_0x4f9140[_0x55b21c(0xea)];if(!_0x2c9176)return{'dbId':_0x17f9a8[_0x55b21c(0xd8)],'dbName':_0x17f9a8[_0x55b21c(0xbb)]};const _0x56a05a=buildDbDirectoryName(_0x17f9a8[_0x55b21c(0xbb)],_0x17f9a8[_0x55b21c(0xd8)]);if(_0x2c9176===_0x56a05a)return{'dbId':_0x17f9a8[_0x55b21c(0xd8)],'dbName':_0x17f9a8[_0x55b21c(0xbb)]};const _0x41a82c=parseExplicitDbDirectory(_0x2c9176);if(_0x41a82c!=null)return{'dbId':_0x41a82c,'dbName':await getDbName(_0x1027e3,_0x41a82c)['catch'](()=>undefined)};const _0x262413=await listDatabases(_0x1027e3),_0x74bef5=_0x262413[_0x55b21c(0xd4)](_0x37e111=>buildDbDirectoryName(_0x37e111['dbName'],_0x37e111[_0x55b21c(0xd8)])===_0x2c9176);if(_0x74bef5['length']===0x1)return{'dbId':_0x74bef5[0x0][_0x55b21c(0xd8)],'dbName':_0x74bef5[0x0]['dbName']};if(_0x74bef5[_0x55b21c(0xd6)]===0x0)throw CliErrors[_0x55b21c(0xdb)](_0x55b21c(0xec)+_0x2c9176+_0x55b21c(0xcc)+_0x4f9140[_0x55b21c(0xed)]+'.');const _0x5d2200=_0x74bef5[_0x55b21c(0xda)](_0x13e6dd=>_0x13e6dd[_0x55b21c(0xbb)]+'\x20('+_0x13e6dd[_0x55b21c(0xd8)]+')')[_0x55b21c(0xe0)](',\x20');throw CliErrors['validation']('Local\x20directory\x20\x22'+_0x2c9176+_0x55b21c(0xd0)+_0x4f9140[_0x55b21c(0xed)]+':\x20'+_0x5d2200);}function parseExplicitDbDirectory(_0x491f2a){const _0x4f8556=a137_0x212dcb,_0x3c5e38=/^db-(\d+)$/[_0x4f8556(0xf2)](_0x491f2a);if(!_0x3c5e38)return null;const _0x416609=Number(_0x3c5e38[0x1]);return Number[_0x4f8556(0xe4)](_0x416609)&&_0x416609>0x0?_0x416609:null;}
@@ -1 +1 @@
1
- const a137_0x551dc6=a137_0x3371;(function(_0x143235,_0x339cc1){const _0x16fd18=a137_0x3371,_0x443723=_0x143235();while(!![]){try{const _0x87b437=-parseInt(_0x16fd18(0x165))/0x1+parseInt(_0x16fd18(0x16b))/0x2*(-parseInt(_0x16fd18(0x167))/0x3)+parseInt(_0x16fd18(0x16a))/0x4+parseInt(_0x16fd18(0x169))/0x5*(parseInt(_0x16fd18(0x16f))/0x6)+-parseInt(_0x16fd18(0x164))/0x7+-parseInt(_0x16fd18(0x16c))/0x8*(parseInt(_0x16fd18(0x162))/0x9)+parseInt(_0x16fd18(0x16d))/0xa;if(_0x87b437===_0x339cc1)break;else _0x443723['push'](_0x443723['shift']());}catch(_0x59b38a){_0x443723['push'](_0x443723['shift']());}}}(a137_0x3cc4,0xac9e3));import{CliErrors}from'../../errors.js';function a137_0x3371(_0x156268,_0x538cd1){_0x156268=_0x156268-0x161;const _0x3cc483=a137_0x3cc4();let _0x3371db=_0x3cc483[_0x156268];return _0x3371db;}function a137_0x3cc4(){const _0x55521b=['save','3391974mZhKPh','validation','7205107MebukC','604950XUsHjN','Path\x20to\x20the\x20SQL\x20file','6yjvkhk','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','40kvVeec','2635440fpsKVT','1120954fLDAad','8VGdaCS','23371620kCUJRC','sqlname','632334ulFCbD','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','description','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','string','sql','write','join','SQL\x20query\x20display\x20name'];a137_0x3cc4=function(){return _0x55521b;};return a137_0x3cc4();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a137_0x551dc6(0x172),a137_0x551dc6(0x168),'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`.'][a137_0x551dc6(0x176)]('\x0a');export const sqlSave={'service':a137_0x551dc6(0x174),'command':a137_0x551dc6(0x161),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a137_0x551dc6(0x175),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':'string','required':!![],'description':a137_0x551dc6(0x166)},SQLCODE_FLAG_OPTIONAL,{'name':a137_0x551dc6(0x16e),'type':a137_0x551dc6(0x173),'description':a137_0x551dc6(0x177)},{'name':'db','type':'string','description':a137_0x551dc6(0x170)},{'name':a137_0x551dc6(0x171),'type':'string','description':'Query\x20description'}],async 'validate'(){const _0x4b4f95=a137_0x551dc6;throw CliErrors[_0x4b4f95(0x163)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x52d220=a137_0x551dc6;throw CliErrors[_0x52d220(0x163)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a138_0x4d36eb=a138_0x289a;(function(_0x30c9b8,_0x381440){const _0x37e339=a138_0x289a,_0x2457fa=_0x30c9b8();while(!![]){try{const _0x3d5091=-parseInt(_0x37e339(0xc6))/0x1+-parseInt(_0x37e339(0xc8))/0x2+-parseInt(_0x37e339(0xce))/0x3+-parseInt(_0x37e339(0xd8))/0x4*(-parseInt(_0x37e339(0xd5))/0x5)+-parseInt(_0x37e339(0xcc))/0x6*(parseInt(_0x37e339(0xd9))/0x7)+-parseInt(_0x37e339(0xc2))/0x8+parseInt(_0x37e339(0xc4))/0x9*(parseInt(_0x37e339(0xc7))/0xa);if(_0x3d5091===_0x381440)break;else _0x2457fa['push'](_0x2457fa['shift']());}catch(_0x28fc08){_0x2457fa['push'](_0x2457fa['shift']());}}}(a138_0x46eb,0xdde60));import{CliErrors}from'../../errors.js';function a138_0x46eb(){const _0x283c37=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','SQL\x20query\x20display\x20name','sqlname','Query\x20description','string','130eWmWBd','save','Path\x20to\x20the\x20SQL\x20file','77176rddhax','2320661dEdmZn','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','790832HdfhKz','write','38690559OIBRZX','file','927952qMsCQA','10DLWlEG','3248270JWYjeb','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','validation','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','6vQONMb','sql','2727705fBobNb','description'];a138_0x46eb=function(){return _0x283c37;};return a138_0x46eb();}function a138_0x289a(_0x774d5f,_0x8e0b5e){_0x774d5f=_0x774d5f-0xc2;const _0x46eb30=a138_0x46eb();let _0x289a56=_0x46eb30[_0x774d5f];return _0x289a56;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a138_0x4d36eb(0xd0),a138_0x4d36eb(0xc9),'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`.']['join']('\x0a');export const sqlSave={'service':a138_0x4d36eb(0xcd),'command':a138_0x4d36eb(0xd6),'description':a138_0x4d36eb(0xda),'risk':a138_0x4d36eb(0xc3),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a138_0x4d36eb(0xc5),'type':a138_0x4d36eb(0xd4),'required':!![],'description':a138_0x4d36eb(0xd7)},SQLCODE_FLAG_OPTIONAL,{'name':a138_0x4d36eb(0xd2),'type':a138_0x4d36eb(0xd4),'description':a138_0x4d36eb(0xd1)},{'name':'db','type':a138_0x4d36eb(0xd4),'description':a138_0x4d36eb(0xcb)},{'name':a138_0x4d36eb(0xcf),'type':a138_0x4d36eb(0xd4),'description':a138_0x4d36eb(0xd3)}],async 'validate'(){const _0x530fc6=a138_0x4d36eb;throw CliErrors[_0x530fc6(0xca)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x9daf32=a138_0x4d36eb;throw CliErrors[_0x9daf32(0xca)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- (function(_0x49796d,_0xd79f5d){const _0x1bf590=a138_0x2b01,_0x3463f5=_0x49796d();while(!![]){try{const _0xdd8d58=-parseInt(_0x1bf590(0x13f))/0x1+parseInt(_0x1bf590(0x144))/0x2*(parseInt(_0x1bf590(0x12d))/0x3)+parseInt(_0x1bf590(0x12a))/0x4*(-parseInt(_0x1bf590(0x140))/0x5)+-parseInt(_0x1bf590(0x126))/0x6*(-parseInt(_0x1bf590(0x133))/0x7)+-parseInt(_0x1bf590(0x139))/0x8+-parseInt(_0x1bf590(0x11f))/0x9*(-parseInt(_0x1bf590(0x122))/0xa)+-parseInt(_0x1bf590(0x141))/0xb;if(_0xdd8d58===_0xd79f5d)break;else _0x3463f5['push'](_0x3463f5['shift']());}catch(_0x4abaa2){_0x3463f5['push'](_0x3463f5['shift']());}}}(a138_0x324e,0xd9079));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x4604be,_0x50adf4,_0x44eed1,_0x5add13){const _0x560463=a138_0x2b01,_0x2ea074=detectSqlMode(_0x50adf4);return{'path':buildSqlRelativePath(_0x4604be[_0x560463(0x13b)],_0x4604be['sqlName'],_0x5add13?.[_0x560463(0x149)],_0x2ea074,_0x4604be[_0x560463(0x128)]),'hash':_0x44eed1,'remoteId':_0x4604be['id'],'version':_0x4604be[_0x560463(0x138)],'dbId':Number(_0x4604be[_0x560463(0x128)]),'dbName':_0x5add13?.[_0x560463(0x149)],'sqlName':_0x4604be[_0x560463(0x13c)],'sqlConfig':_0x4604be[_0x560463(0x132)]??undefined,'mode':_0x2ea074};}function a138_0x2b01(_0x1d0040,_0x231de0){_0x1d0040=_0x1d0040-0x11f;const _0x324ebb=a138_0x324e();let _0x2b013e=_0x324ebb[_0x1d0040];return _0x2b013e;}export function cloneSqlLockData(_0x33c5c8){const _0x557bbc=a138_0x2b01;return{'apps':Object[_0x557bbc(0x145)](Object[_0x557bbc(0x134)](_0x33c5c8[_0x557bbc(0x13a)])[_0x557bbc(0x13d)](([_0x1e8bde,_0x1b61ac])=>[_0x1e8bde,{'sqlRoot':_0x1b61ac[_0x557bbc(0x14c)],'lastSync':_0x1b61ac[_0x557bbc(0x137)],'sqls':{..._0x1b61ac[_0x557bbc(0x14b)]}}]))};}export function ensureRemoteSqlContent(_0x2a4e68){const _0x110be7=a138_0x2b01;return _0x2a4e68[_0x110be7(0x146)]??'';}export function buildLocalSqlFileContent(_0x18bab0,_0x47d29b,_0x435733){const _0x2fd662=a138_0x2b01,_0x27769d=_0x435733?.[_0x2fd662(0x12e)]??detectSqlMode(_0x47d29b),_0x102736=stripLocalSqlMetadata(_0x47d29b,_0x27769d)[_0x2fd662(0x14a)](),_0x2c5dbd=[...buildMetadataHeaderLines({'sqlCode':_0x18bab0['sqlCode'],'sqlName':_0x18bab0[_0x2fd662(0x13c)],'dbId':_0x18bab0[_0x2fd662(0x128)],'dbName':_0x435733?.[_0x2fd662(0x149)],'mode':_0x27769d,'syncedAt':_0x435733?.[_0x2fd662(0x124)],'description':_0x435733?.[_0x2fd662(0x131)]},_0x27769d),'',_0x102736],_0x21eb56=_0x2c5dbd[_0x2fd662(0x130)]('\x0a');return _0x21eb56[_0x2fd662(0x12b)]('\x0a')?_0x21eb56:_0x21eb56+'\x0a';}function a138_0x324e(){const _0x49d23b=['syncedAt','includes','168CDyfth','toLowerCase','dbId','trimStart','8VXZVcu','endsWith','\x20[y/N]\x20','1009251tfxdDH','mode','test','join','description','sqlConfig','224882MJBnRO','entries','filter','close','lastSync','version','1510792HbYxKt','apps','sqlCode','sqlName','map','stderr','7243PFfDgu','3970700jlsAwn','7825917oOQsxg','<!--\x20@lovrabet.','mybatisXml','8HrGNdn','fromEntries','sqlContent','stdin','path','dbName','trim','sqls','sqlRoot','10256184UFmnyo','replace','split','10znXmOW','yes'];a138_0x324e=function(){return _0x49d23b;};return a138_0x324e();}export function stripLocalSqlMetadata(_0x2cc6de,_0x1c55ac){const _0x228eec=a138_0x2b01,_0x6c73a2=_0x2cc6de[_0x228eec(0x120)](/\r\n/g,'\x0a')[_0x228eec(0x121)]('\x0a'),_0x41826a=[];let _0x236d1a=0x0;if(_0x1c55ac===_0x228eec(0x143))while(_0x236d1a<_0x6c73a2['length']){const _0x4195b0=_0x6c73a2[_0x236d1a]??'';if(/^\s*<!--\s*@lovrabet\./[_0x228eec(0x12f)](_0x4195b0)){_0x236d1a++;continue;}if(_0x4195b0[_0x228eec(0x14a)]()===''&&_0x236d1a>0x0){_0x236d1a++;continue;}break;}else while(_0x236d1a<_0x6c73a2['length']){const _0x5e1084=_0x6c73a2[_0x236d1a]??'';if(/^\s*--\s*@lovrabet\./[_0x228eec(0x12f)](_0x5e1084)){_0x236d1a++;continue;}if(_0x5e1084[_0x228eec(0x14a)]()===''&&_0x236d1a>0x0){_0x236d1a++;continue;}break;}for(;_0x236d1a<_0x6c73a2['length'];_0x236d1a++){_0x41826a['push'](_0x6c73a2[_0x236d1a]);}return _0x41826a['join']('\x0a')[_0x228eec(0x129)]();}export function resolveSqlMode(_0x4fba7d,_0x5df749){const _0x291dd5=a138_0x2b01;if(_0x5df749?.[_0x291dd5(0x12e)])return _0x5df749[_0x291dd5(0x12e)];return detectSqlMode(_0x4fba7d);}export function resolveSqlFileName(_0x32cf2e,_0x490d73,_0x235aa4){const _0x1add1b=a138_0x2b01;if(_0x235aa4?.['path'])return _0x235aa4[_0x1add1b(0x148)];if(_0x235aa4?.[_0x1add1b(0x13c)]||_0x235aa4?.[_0x1add1b(0x149)])return buildSqlRelativePath(_0x32cf2e,_0x235aa4?.[_0x1add1b(0x13c)],_0x235aa4?.[_0x1add1b(0x149)],resolveSqlMode(_0x490d73,_0x235aa4),_0x235aa4?.[_0x1add1b(0x128)]);return buildDefaultSqlFileName(_0x32cf2e,resolveSqlMode(_0x490d73,_0x235aa4));}export function resolveSqlLocalDir(_0x488c72,_0x2c8f14){return join(_0x488c72,SQL_LOCAL_REL_DIR,_0x2c8f14);}export async function confirmForceOverwrite(_0x1fc7b6){const _0x16e7e7=a138_0x2b01,_0xee8863=createInterface({'input':process[_0x16e7e7(0x147)],'output':process[_0x16e7e7(0x13e)]}),_0x18c4f0=await new Promise(_0x4953bb=>{const _0x23f1f4=_0x16e7e7;_0xee8863['question'](_0x1fc7b6+_0x23f1f4(0x12c),_0x4953bb);});return _0xee8863[_0x16e7e7(0x136)](),['y',_0x16e7e7(0x123)][_0x16e7e7(0x125)](_0x18c4f0[_0x16e7e7(0x14a)]()[_0x16e7e7(0x127)]());}export function findSqlLockScope(_0x31de77,_0x33cb95){const _0x3b177c=a138_0x2b01;return _0x31de77[_0x3b177c(0x13a)][_0x33cb95];}function buildMetadataHeaderLines(_0x10b503,_0x58534b){const _0x3d4d1=a138_0x2b01,_0xc290de=[['sqlCode',_0x10b503['sqlCode']],[_0x3d4d1(0x13c),_0x10b503['sqlName']],[_0x3d4d1(0x128),_0x10b503[_0x3d4d1(0x128)]],[_0x3d4d1(0x149),_0x10b503[_0x3d4d1(0x149)]],[_0x3d4d1(0x12e),_0x10b503[_0x3d4d1(0x12e)]],[_0x3d4d1(0x124),_0x10b503[_0x3d4d1(0x124)]],[_0x3d4d1(0x131),_0x10b503[_0x3d4d1(0x131)]]];if(_0x58534b===_0x3d4d1(0x143))return _0xc290de[_0x3d4d1(0x135)](([,_0x1af986])=>_0x1af986!==undefined&&_0x1af986!==null&&String(_0x1af986)[_0x3d4d1(0x14a)]()!=='')[_0x3d4d1(0x13d)](([_0x248c28,_0x715d75])=>_0x3d4d1(0x142)+_0x248c28+':\x20'+String(_0x715d75)+'\x20-->');return _0xc290de[_0x3d4d1(0x135)](([,_0xf943fc])=>_0xf943fc!==undefined&&_0xf943fc!==null&&String(_0xf943fc)[_0x3d4d1(0x14a)]()!=='')['map'](([_0x126aed,_0x4a0286])=>'--\x20@lovrabet.'+_0x126aed+':\x20'+String(_0x4a0286));}
1
+ (function(_0x139db4,_0x41c2a8){const _0x40038b=a139_0x33b7,_0x4e4734=_0x139db4();while(!![]){try{const _0x20074a=parseInt(_0x40038b(0x10c))/0x1+-parseInt(_0x40038b(0x123))/0x2*(-parseInt(_0x40038b(0x114))/0x3)+-parseInt(_0x40038b(0x10e))/0x4*(parseInt(_0x40038b(0x116))/0x5)+parseInt(_0x40038b(0x113))/0x6+parseInt(_0x40038b(0x10b))/0x7+parseInt(_0x40038b(0x105))/0x8+-parseInt(_0x40038b(0x10a))/0x9*(parseInt(_0x40038b(0x11d))/0xa);if(_0x20074a===_0x41c2a8)break;else _0x4e4734['push'](_0x4e4734['shift']());}catch(_0x3cc9e6){_0x4e4734['push'](_0x4e4734['shift']());}}}(a139_0x55e5,0x61dcf));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x2e910d,_0x431ca8,_0x607993,_0x53f90a){const _0x957146=a139_0x33b7,_0xe45536=detectSqlMode(_0x431ca8);return{'path':buildSqlRelativePath(_0x2e910d[_0x957146(0x106)],_0x2e910d[_0x957146(0x110)],_0x53f90a?.[_0x957146(0x122)],_0xe45536,_0x2e910d['dbId']),'hash':_0x607993,'remoteId':_0x2e910d['id'],'version':_0x2e910d[_0x957146(0x11a)],'dbId':Number(_0x2e910d[_0x957146(0x117)]),'dbName':_0x53f90a?.['dbName'],'sqlName':_0x2e910d[_0x957146(0x110)],'sqlConfig':_0x2e910d[_0x957146(0x125)]??undefined,'mode':_0xe45536};}export function cloneSqlLockData(_0x1f2937){const _0x586208=a139_0x33b7;return{'apps':Object[_0x586208(0x118)](Object[_0x586208(0x11e)](_0x1f2937[_0x586208(0x119)])['map'](([_0xb11dea,_0x4fefa2])=>[_0xb11dea,{'sqlRoot':_0x4fefa2['sqlRoot'],'lastSync':_0x4fefa2['lastSync'],'sqls':{..._0x4fefa2['sqls']}}]))};}export function ensureRemoteSqlContent(_0x3167e5){const _0x1fadee=a139_0x33b7;return _0x3167e5[_0x1fadee(0x109)]??'';}export function buildLocalSqlFileContent(_0x1fca36,_0x2c3c6d,_0x588e73){const _0x91fa9e=a139_0x33b7,_0x53de58=_0x588e73?.[_0x91fa9e(0x128)]??detectSqlMode(_0x2c3c6d),_0x28c7a0=stripLocalSqlMetadata(_0x2c3c6d,_0x53de58)[_0x91fa9e(0x104)](),_0x1c14ce=[...buildMetadataHeaderLines({'sqlCode':_0x1fca36[_0x91fa9e(0x106)],'sqlName':_0x1fca36[_0x91fa9e(0x110)],'dbId':_0x1fca36['dbId'],'dbName':_0x588e73?.[_0x91fa9e(0x122)],'mode':_0x53de58,'syncedAt':_0x588e73?.[_0x91fa9e(0x10f)],'description':_0x588e73?.[_0x91fa9e(0x112)]},_0x53de58),'',_0x28c7a0],_0x5d1293=_0x1c14ce[_0x91fa9e(0x11f)]('\x0a');return _0x5d1293[_0x91fa9e(0x102)]('\x0a')?_0x5d1293:_0x5d1293+'\x0a';}export function stripLocalSqlMetadata(_0x442f7f,_0x521ee8){const _0x27123b=a139_0x33b7,_0x5bb8ef=_0x442f7f['replace'](/\r\n/g,'\x0a')[_0x27123b(0x108)]('\x0a'),_0x349523=[];let _0x2813c4=0x0;if(_0x521ee8==='mybatisXml')while(_0x2813c4<_0x5bb8ef[_0x27123b(0x111)]){const _0x58c882=_0x5bb8ef[_0x2813c4]??'';if(/^\s*<!--\s*@lovrabet\./[_0x27123b(0x100)](_0x58c882)){_0x2813c4++;continue;}if(_0x58c882[_0x27123b(0x104)]()===''&&_0x2813c4>0x0){_0x2813c4++;continue;}break;}else while(_0x2813c4<_0x5bb8ef[_0x27123b(0x111)]){const _0x505378=_0x5bb8ef[_0x2813c4]??'';if(/^\s*--\s*@lovrabet\./[_0x27123b(0x100)](_0x505378)){_0x2813c4++;continue;}if(_0x505378[_0x27123b(0x104)]()===''&&_0x2813c4>0x0){_0x2813c4++;continue;}break;}for(;_0x2813c4<_0x5bb8ef[_0x27123b(0x111)];_0x2813c4++){_0x349523[_0x27123b(0x107)](_0x5bb8ef[_0x2813c4]);}return _0x349523[_0x27123b(0x11f)]('\x0a')[_0x27123b(0x115)]();}export function resolveSqlMode(_0x23ce60,_0xfd0980){const _0x3fe85a=a139_0x33b7;if(_0xfd0980?.[_0x3fe85a(0x128)])return _0xfd0980[_0x3fe85a(0x128)];return detectSqlMode(_0x23ce60);}function a139_0x33b7(_0x9c73f0,_0x28566f){_0x9c73f0=_0x9c73f0-0x100;const _0x55e526=a139_0x55e5();let _0x33b7f2=_0x55e526[_0x9c73f0];return _0x33b7f2;}export function resolveSqlFileName(_0x48039e,_0x119390,_0x527a52){const _0x1d921a=a139_0x33b7;if(_0x527a52?.['path'])return _0x527a52['path'];if(_0x527a52?.[_0x1d921a(0x110)]||_0x527a52?.[_0x1d921a(0x122)])return buildSqlRelativePath(_0x48039e,_0x527a52?.['sqlName'],_0x527a52?.['dbName'],resolveSqlMode(_0x119390,_0x527a52),_0x527a52?.[_0x1d921a(0x117)]);return buildDefaultSqlFileName(_0x48039e,resolveSqlMode(_0x119390,_0x527a52));}export function resolveSqlLocalDir(_0x525bef,_0x1a1500){return join(_0x525bef,SQL_LOCAL_REL_DIR,_0x1a1500);}export async function confirmForceOverwrite(_0xb62cc5){const _0x55b81f=a139_0x33b7,_0x5ca9c9=createInterface({'input':process[_0x55b81f(0x11c)],'output':process[_0x55b81f(0x120)]}),_0x14302b=await new Promise(_0x54f843=>{const _0x4bf138=_0x55b81f;_0x5ca9c9[_0x4bf138(0x124)](_0xb62cc5+_0x4bf138(0x101),_0x54f843);});return _0x5ca9c9['close'](),['y','yes'][_0x55b81f(0x10d)](_0x14302b[_0x55b81f(0x104)]()[_0x55b81f(0x129)]());}function a139_0x55e5(){const _0x462590=['2631cQPtAG','trimStart','5FwzlJv','dbId','fromEntries','apps','version','mybatisXml','stdin','10yFzyml','entries','join','stderr','<!--\x20@lovrabet.','dbName','334CLwzmY','question','sqlConfig','filter','\x20-->','mode','toLowerCase','test','\x20[y/N]\x20','endsWith','map','trim','580136MpRsyt','sqlCode','push','split','sqlContent','10983753LuErHy','4672948wTSAuI','486648HdtBtc','includes','72916kbVJBA','syncedAt','sqlName','length','description','1597830vQxZcy'];a139_0x55e5=function(){return _0x462590;};return a139_0x55e5();}export function findSqlLockScope(_0x5bbe21,_0x87526b){return _0x5bbe21['apps'][_0x87526b];}function buildMetadataHeaderLines(_0x3b5f15,_0x374f6d){const _0x415576=a139_0x33b7,_0x5d85bb=[['sqlCode',_0x3b5f15[_0x415576(0x106)]],[_0x415576(0x110),_0x3b5f15[_0x415576(0x110)]],['dbId',_0x3b5f15[_0x415576(0x117)]],[_0x415576(0x122),_0x3b5f15[_0x415576(0x122)]],[_0x415576(0x128),_0x3b5f15[_0x415576(0x128)]],[_0x415576(0x10f),_0x3b5f15[_0x415576(0x10f)]],['description',_0x3b5f15[_0x415576(0x112)]]];if(_0x374f6d===_0x415576(0x11b))return _0x5d85bb[_0x415576(0x126)](([,_0x538c53])=>_0x538c53!==undefined&&_0x538c53!==null&&String(_0x538c53)[_0x415576(0x104)]()!=='')['map'](([_0x255b81,_0xdab581])=>_0x415576(0x121)+_0x255b81+':\x20'+String(_0xdab581)+_0x415576(0x127));return _0x5d85bb[_0x415576(0x126)](([,_0x1f6037])=>_0x1f6037!==undefined&&_0x1f6037!==null&&String(_0x1f6037)[_0x415576(0x104)]()!=='')[_0x415576(0x103)](([_0x3c5cbd,_0x1adef2])=>'--\x20@lovrabet.'+_0x3c5cbd+':\x20'+String(_0x1adef2));}
@@ -1 +1 @@
1
- const a139_0x270e34=a139_0x5cbf;(function(_0x2f3e91,_0xb389b1){const _0x384148=a139_0x5cbf,_0x201c24=_0x2f3e91();while(!![]){try{const _0x3ca1fa=-parseInt(_0x384148(0x19d))/0x1*(parseInt(_0x384148(0x196))/0x2)+-parseInt(_0x384148(0x197))/0x3*(parseInt(_0x384148(0x19f))/0x4)+-parseInt(_0x384148(0x1a2))/0x5+-parseInt(_0x384148(0x195))/0x6*(parseInt(_0x384148(0x1a8))/0x7)+parseInt(_0x384148(0x19e))/0x8+-parseInt(_0x384148(0x194))/0x9*(-parseInt(_0x384148(0x1a9))/0xa)+-parseInt(_0x384148(0x192))/0xb*(-parseInt(_0x384148(0x193))/0xc);if(_0x3ca1fa===_0xb389b1)break;else _0x201c24['push'](_0x201c24['shift']());}catch(_0x404e63){_0x201c24['push'](_0x201c24['shift']());}}}(a139_0x4bea,0x86228));import{listSqlQueries}from'../../core/api-client.js';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;async function fetchAllSqlCodes(_0x14df52){const _0x1badea=a139_0x5cbf,_0x35669d=[];let _0x297d97=0x1;while(!![]){const _0x3f518a=await listSqlQueries(_0x14df52,{'currentPage':_0x297d97,'pageSize':PAGE_SIZE}),_0x2dca78=_0x3f518a[_0x1badea(0x1a4)]??[];_0x35669d[_0x1badea(0x1a0)](..._0x2dca78[_0x1badea(0x18d)](_0x2cb836=>_0x2cb836['sqlCode']));if(_0x2dca78[_0x1badea(0x199)]===0x0)break;const _0x358fae=_0x3f518a[_0x1badea(0x19c)]?.[_0x1badea(0x1a1)];if(_0x358fae!=null?_0x35669d['length']>=_0x358fae:_0x2dca78['length']<PAGE_SIZE)break;_0x297d97++;}return _0x35669d;}export const sqlStatus={'service':a139_0x270e34(0x18e),'command':a139_0x270e34(0x18f),'description':a139_0x270e34(0x19a),'risk':a139_0x270e34(0x1ab),'flags':[{'name':a139_0x270e34(0x1a5),'type':a139_0x270e34(0x1a6),'description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x3b3e75){const _0x2a2254=a139_0x270e34,_0x4b952b=loadSqlProjectConfig(_0x3b3e75[_0x2a2254(0x191)]),_0x290181=await readSqlLockFile(_0x4b952b['lockFilePath']),{appLock:_0x42dcf8}=ensureSqlLockScope(_0x290181??createEmptySqlLock(),_0x4b952b['appCode'],_0x4b952b['sqlRoot'],'status'),_0x5816b7=await scanLocalSqlQueries(_0x4b952b),_0x38b890=[],_0x275a44=[],_0x44646e=[],_0x525515=[],_0x36d440=new Set(_0x5816b7[_0x2a2254(0x18d)](_0x17e9f0=>_0x17e9f0[_0x2a2254(0x19b)]));for(const _0x39d64b of _0x5816b7){const _0x11fe1a=await computeSqlFileHash(_0x39d64b[_0x2a2254(0x1a7)]),_0x521328=_0x42dcf8[_0x2a2254(0x198)][_0x39d64b['lockKey']],_0x463a63=!!_0x521328&&_0x521328['path']!==_0x39d64b['relativePath'],_0x350f34=!!_0x521328&&!!_0x39d64b[_0x2a2254(0x18b)]&&_0x521328[_0x2a2254(0x18b)]!==_0x39d64b['sqlName'];if(!_0x521328)_0x38b890[_0x2a2254(0x1a0)](_0x39d64b[_0x2a2254(0x19b)]);else _0x521328['hash']!==_0x11fe1a||_0x463a63||_0x350f34?_0x275a44[_0x2a2254(0x1a0)](_0x39d64b[_0x2a2254(0x19b)]):_0x44646e[_0x2a2254(0x1a0)](_0x39d64b[_0x2a2254(0x19b)]);}for(const _0x1f4aef of Object[_0x2a2254(0x190)](_0x42dcf8[_0x2a2254(0x198)])){!_0x36d440[_0x2a2254(0x1a3)](_0x1f4aef)&&_0x525515[_0x2a2254(0x1a0)](_0x1f4aef);}const _0x3613e6=[];if(_0x3b3e75['bool'](_0x2a2254(0x1a5))){const _0x1168b7=await fetchAllSqlCodes(_0x3b3e75['appCode']);for(const _0x288575 of _0x1168b7){!_0x36d440['has'](_0x288575)&&!_0x42dcf8[_0x2a2254(0x198)][_0x288575]&&_0x3613e6[_0x2a2254(0x1a0)](_0x288575);}}const _0x384a81=_0x38b890[_0x2a2254(0x199)]===0x0&&_0x275a44[_0x2a2254(0x199)]===0x0&&_0x525515[_0x2a2254(0x199)]===0x0&&_0x3613e6['length']===0x0;return{'ok':!![],'data':{'added':_0x38b890,'modified':_0x275a44,'missing':_0x525515,'unchanged':_0x44646e,'remoteOnly':_0x3613e6},'message':_0x384a81?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x38b890[_0x2a2254(0x199)]+'\x20added,\x20'+_0x275a44[_0x2a2254(0x199)]+'\x20modified,\x20'+_0x525515['length']+'\x20missing,\x20'+_0x44646e[_0x2a2254(0x199)]+_0x2a2254(0x18c)+(_0x3613e6[_0x2a2254(0x199)]>0x0?',\x20'+_0x3613e6[_0x2a2254(0x199)]+_0x2a2254(0x1aa):'')};}};function a139_0x5cbf(_0x40caa6,_0x3c13bb){_0x40caa6=_0x40caa6-0x18b;const _0x4bea7e=a139_0x4bea();let _0x5cbfee=_0x4bea7e[_0x40caa6];return _0x5cbfee;}function a139_0x4bea(){const _0x3092db=['appCode','5089997cwRurV','72JekeRs','36lWhBzb','114RILMdb','1146pcSyMp','66UolNOx','sqls','length','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','lockKey','paging','1431nfJqoD','3636160ofoTQY','37460bURJMo','push','totalCount','4601930vJoHnK','has','tableData','remote','boolean','filePath','292327feQGck','145930EgaOre','\x20remote-only','read','sqlName','\x20unchanged','map','sql','status','keys'];a139_0x4bea=function(){return _0x3092db;};return a139_0x4bea();}
1
+ const a140_0x2e0062=a140_0x51cc;(function(_0xb9db54,_0x5853ce){const _0x27c8a2=a140_0x51cc,_0x213ec3=_0xb9db54();while(!![]){try{const _0x1322b5=-parseInt(_0x27c8a2(0x1a6))/0x1*(parseInt(_0x27c8a2(0x19c))/0x2)+-parseInt(_0x27c8a2(0x1a4))/0x3*(parseInt(_0x27c8a2(0x198))/0x4)+parseInt(_0x27c8a2(0x197))/0x5+-parseInt(_0x27c8a2(0x199))/0x6+-parseInt(_0x27c8a2(0x196))/0x7*(parseInt(_0x27c8a2(0x1a0))/0x8)+-parseInt(_0x27c8a2(0x18a))/0x9*(parseInt(_0x27c8a2(0x194))/0xa)+parseInt(_0x27c8a2(0x1a3))/0xb*(parseInt(_0x27c8a2(0x18f))/0xc);if(_0x1322b5===_0x5853ce)break;else _0x213ec3['push'](_0x213ec3['shift']());}catch(_0xd91e7d){_0x213ec3['push'](_0x213ec3['shift']());}}}(a140_0x40a6,0xedde6));import{listSqlQueries}from'../../core/api-client.js';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';function a140_0x40a6(){const _0x47ca2b=['\x20added,\x20','hash','30BVKsGW','relativePath','164227KTunLb','5126835rcsGLD','52MyCXVQ','2568636eodqhg','map','tableData','2482214oHLGuv','filePath','read','sqlName','144JhPYih','All\x20SQL\x20queries\x20are\x20in\x20sync.','sqls','85547UiHzlI','422649etilda','remote','1EgUFSm','has','lockFilePath','bool','\x20missing,\x20','\x20modified,\x20','status','sqlCode','length','path','keys','appCode','4575915jKIRfn','paging','lockKey','\x20unchanged','sqlRoot','8328WFNWsP','push','sql'];a140_0x40a6=function(){return _0x47ca2b;};return a140_0x40a6();}function a140_0x51cc(_0x439112,_0x53c6f6){_0x439112=_0x439112-0x188;const _0x40a6bf=a140_0x40a6();let _0x51ccb8=_0x40a6bf[_0x439112];return _0x51ccb8;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x5f35f7){const _0x1227ec=a140_0x51cc,_0x141e1c=[];let _0x46fa11=0x1;while(!![]){const _0x20e473=await listSqlQueries(_0x5f35f7,{'currentPage':_0x46fa11,'pageSize':PAGE_SIZE}),_0x33900f=_0x20e473[_0x1227ec(0x19b)]??[];_0x141e1c['push'](..._0x33900f[_0x1227ec(0x19a)](_0x28101a=>_0x28101a[_0x1227ec(0x1ad)]));if(_0x33900f[_0x1227ec(0x1ae)]===0x0)break;const _0x339db5=_0x20e473[_0x1227ec(0x18b)]?.['totalCount'];if(_0x339db5!=null?_0x141e1c[_0x1227ec(0x1ae)]>=_0x339db5:_0x33900f[_0x1227ec(0x1ae)]<PAGE_SIZE)break;_0x46fa11++;}return _0x141e1c;}export const sqlStatus={'service':a140_0x2e0062(0x191),'command':a140_0x2e0062(0x1ac),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a140_0x2e0062(0x19e),'flags':[{'name':'remote','type':'boolean','description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x5af525){const _0x301523=a140_0x2e0062,_0x5942ed=loadSqlProjectConfig(_0x5af525[_0x301523(0x189)]),_0x36536f=await readSqlLockFile(_0x5942ed[_0x301523(0x1a8)]),{appLock:_0x349d12}=ensureSqlLockScope(_0x36536f??createEmptySqlLock(),_0x5942ed['appCode'],_0x5942ed[_0x301523(0x18e)],_0x301523(0x1ac)),_0x211a99=await scanLocalSqlQueries(_0x5942ed),_0x352d85=[],_0x28fd49=[],_0x2fe25d=[],_0x5058f9=[],_0x18dc79=new Set(_0x211a99['map'](_0x5be55e=>_0x5be55e[_0x301523(0x18c)]));for(const _0x351cb6 of _0x211a99){const _0x282204=await computeSqlFileHash(_0x351cb6[_0x301523(0x19d)]),_0x5ceaa4=_0x349d12[_0x301523(0x1a2)][_0x351cb6['lockKey']],_0x527d2f=!!_0x5ceaa4&&_0x5ceaa4[_0x301523(0x1af)]!==_0x351cb6[_0x301523(0x195)],_0x4013f5=!!_0x5ceaa4&&!!_0x351cb6['sqlName']&&_0x5ceaa4[_0x301523(0x19f)]!==_0x351cb6[_0x301523(0x19f)];if(!_0x5ceaa4)_0x352d85[_0x301523(0x190)](_0x351cb6[_0x301523(0x18c)]);else _0x5ceaa4[_0x301523(0x193)]!==_0x282204||_0x527d2f||_0x4013f5?_0x28fd49['push'](_0x351cb6[_0x301523(0x18c)]):_0x2fe25d[_0x301523(0x190)](_0x351cb6['lockKey']);}for(const _0x7227ac of Object[_0x301523(0x188)](_0x349d12[_0x301523(0x1a2)])){!_0x18dc79['has'](_0x7227ac)&&_0x5058f9[_0x301523(0x190)](_0x7227ac);}const _0x30a3d2=[];if(_0x5af525[_0x301523(0x1a9)](_0x301523(0x1a5))){const _0x4c1db5=await fetchAllSqlCodes(_0x5af525[_0x301523(0x189)]);for(const _0x17382b of _0x4c1db5){!_0x18dc79[_0x301523(0x1a7)](_0x17382b)&&!_0x349d12[_0x301523(0x1a2)][_0x17382b]&&_0x30a3d2[_0x301523(0x190)](_0x17382b);}}const _0x26988b=_0x352d85[_0x301523(0x1ae)]===0x0&&_0x28fd49[_0x301523(0x1ae)]===0x0&&_0x5058f9[_0x301523(0x1ae)]===0x0&&_0x30a3d2[_0x301523(0x1ae)]===0x0;return{'ok':!![],'data':{'added':_0x352d85,'modified':_0x28fd49,'missing':_0x5058f9,'unchanged':_0x2fe25d,'remoteOnly':_0x30a3d2},'message':_0x26988b?_0x301523(0x1a1):_0x352d85[_0x301523(0x1ae)]+_0x301523(0x192)+_0x28fd49[_0x301523(0x1ae)]+_0x301523(0x1ab)+_0x5058f9[_0x301523(0x1ae)]+_0x301523(0x1aa)+_0x2fe25d[_0x301523(0x1ae)]+_0x301523(0x18d)+(_0x30a3d2[_0x301523(0x1ae)]>0x0?',\x20'+_0x30a3d2[_0x301523(0x1ae)]+'\x20remote-only':'')};}};