@lovrabet/rabetbase-cli 2.1.13 → 2.1.14-beta.0

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 (201) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/add.js +1 -1
  20. package/lib/commands/app/discover.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.js +1 -1
  23. package/lib/commands/app/remove.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app/use.js +1 -1
  26. package/lib/commands/auth/index.js +1 -1
  27. package/lib/commands/bff/create.js +1 -1
  28. package/lib/commands/bff/delete.js +1 -1
  29. package/lib/commands/bff/detail.js +1 -1
  30. package/lib/commands/bff/index.js +1 -1
  31. package/lib/commands/bff/list.js +1 -1
  32. package/lib/commands/bff/pull.js +1 -1
  33. package/lib/commands/bff/push.js +1 -1
  34. package/lib/commands/bff/status.js +1 -1
  35. package/lib/commands/cli-update.js +1 -1
  36. package/lib/commands/codegen/index.js +1 -1
  37. package/lib/commands/codegen/sdk.js +1 -1
  38. package/lib/commands/codegen/sql.js +1 -1
  39. package/lib/commands/common/app-selector.js +1 -1
  40. package/lib/commands/common/flags.js +1 -1
  41. package/lib/commands/common/validate.js +1 -1
  42. package/lib/commands/config/get.js +1 -1
  43. package/lib/commands/config/index.js +1 -1
  44. package/lib/commands/config/list.js +1 -1
  45. package/lib/commands/config/set.js +1 -1
  46. package/lib/commands/config/shared.js +1 -1
  47. package/lib/commands/data/filter.js +1 -1
  48. package/lib/commands/data/getOne.js +1 -1
  49. package/lib/commands/data/index.js +1 -1
  50. package/lib/commands/data/shared.js +1 -1
  51. package/lib/commands/dataset/capability.js +1 -1
  52. package/lib/commands/dataset/delete.js +1 -1
  53. package/lib/commands/dataset/detail.js +1 -1
  54. package/lib/commands/dataset/field-update.js +1 -1
  55. package/lib/commands/dataset/index.js +1 -1
  56. package/lib/commands/dataset/link-create.js +1 -1
  57. package/lib/commands/dataset/link-delete.js +1 -1
  58. package/lib/commands/dataset/link-shared.js +1 -1
  59. package/lib/commands/dataset/link-update.js +1 -1
  60. package/lib/commands/dataset/links.js +1 -1
  61. package/lib/commands/dataset/list.js +1 -1
  62. package/lib/commands/dataset/operations.js +1 -1
  63. package/lib/commands/dataset/rename.js +1 -0
  64. package/lib/commands/db/analyze-cancel.js +1 -1
  65. package/lib/commands/db/analyze-start.js +1 -1
  66. package/lib/commands/db/analyze-status.js +1 -1
  67. package/lib/commands/db/create.js +1 -1
  68. package/lib/commands/db/delete.js +1 -1
  69. package/lib/commands/db/detail.js +1 -1
  70. package/lib/commands/db/diff.js +1 -1
  71. package/lib/commands/db/index.js +1 -1
  72. package/lib/commands/db/list.js +1 -1
  73. package/lib/commands/db/shared.js +1 -1
  74. package/lib/commands/db/tables.js +1 -1
  75. package/lib/commands/db/test.js +1 -1
  76. package/lib/commands/db/update.js +1 -1
  77. package/lib/commands/doctor.js +1 -1
  78. package/lib/commands/init/index.js +1 -1
  79. package/lib/commands/issue/index.js +1 -1
  80. package/lib/commands/issue/nudge.js +1 -1
  81. package/lib/commands/issue/report.js +1 -1
  82. package/lib/commands/issue/shared.js +1 -1
  83. package/lib/commands/logs/index.js +1 -1
  84. package/lib/commands/menu/index.js +1 -1
  85. package/lib/commands/menu/shared/compare-table.js +1 -1
  86. package/lib/commands/menu/shared/index.js +1 -1
  87. package/lib/commands/menu/shared/inquirer.js +1 -1
  88. package/lib/commands/menu/shared/local-pages.js +1 -1
  89. package/lib/commands/menu/shared/logic.js +1 -1
  90. package/lib/commands/menu/shared/service.js +1 -1
  91. package/lib/commands/menu/shared/sync-core.js +1 -1
  92. package/lib/commands/menu/shared/update-core.js +1 -1
  93. package/lib/commands/menu/shared/valid-url.js +1 -1
  94. package/lib/commands/menu/sync.js +1 -1
  95. package/lib/commands/menu/update.js +1 -1
  96. package/lib/commands/page/generate-start.js +1 -1
  97. package/lib/commands/page/generate-status.js +1 -1
  98. package/lib/commands/page/index.js +1 -1
  99. package/lib/commands/page/pull.js +1 -1
  100. package/lib/commands/page/push.js +1 -1
  101. package/lib/commands/page/shared.js +1 -1
  102. package/lib/commands/page/standard-page-status.js +1 -1
  103. package/lib/commands/page/sync.js +1 -1
  104. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  105. package/lib/commands/project/create/format-elapsed.js +1 -1
  106. package/lib/commands/project/create/main.js +1 -1
  107. package/lib/commands/project/create/non-interactive.js +1 -1
  108. package/lib/commands/project/create/project-template-path.js +1 -1
  109. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  110. package/lib/commands/project/create/use-format-code.js +1 -1
  111. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  112. package/lib/commands/project/index.js +1 -1
  113. package/lib/commands/project/init.js +1 -1
  114. package/lib/commands/project/upgrade.js +1 -1
  115. package/lib/commands/registry.js +1 -1
  116. package/lib/commands/run/index.js +1 -1
  117. package/lib/commands/schema.js +1 -1
  118. package/lib/commands/skill/index.js +1 -1
  119. package/lib/commands/sql/create.js +1 -1
  120. package/lib/commands/sql/delete.js +1 -1
  121. package/lib/commands/sql/detail.js +1 -1
  122. package/lib/commands/sql/exec.js +1 -1
  123. package/lib/commands/sql/index.js +1 -1
  124. package/lib/commands/sql/list.js +1 -1
  125. package/lib/commands/sql/pull.js +1 -1
  126. package/lib/commands/sql/push.js +1 -1
  127. package/lib/commands/sql/save.js +1 -1
  128. package/lib/commands/sql/shared.js +1 -1
  129. package/lib/commands/sql/status.js +1 -1
  130. package/lib/commands/sql/validate.js +1 -1
  131. package/lib/config/schema.js +1 -1
  132. package/lib/constant/cdn.js +1 -1
  133. package/lib/constant/cli.js +1 -1
  134. package/lib/constant/defaults.js +1 -1
  135. package/lib/constant/domain.js +1 -1
  136. package/lib/constant/env.js +1 -1
  137. package/lib/constant/output.js +1 -1
  138. package/lib/constant/paths.js +1 -1
  139. package/lib/constant/risk.js +1 -1
  140. package/lib/context.js +1 -1
  141. package/lib/core/alias-resolver.js +1 -1
  142. package/lib/core/api-client.js +1 -1
  143. package/lib/core/bff/config.js +1 -1
  144. package/lib/core/bff/file-system.js +1 -1
  145. package/lib/core/bff/hash.js +1 -1
  146. package/lib/core/bff/lock.js +1 -1
  147. package/lib/core/bff/utils.js +1 -1
  148. package/lib/core/db-resolver.js +1 -1
  149. package/lib/core/page/file-system.js +1 -1
  150. package/lib/core/page/hash.js +1 -1
  151. package/lib/core/page/lock.js +1 -1
  152. package/lib/core/sql-sync/config.js +1 -1
  153. package/lib/core/sql-sync/file-system.js +1 -1
  154. package/lib/core/sql-sync/hash.js +1 -1
  155. package/lib/core/sql-sync/lock.js +1 -1
  156. package/lib/core/sql-sync/utils.js +1 -1
  157. package/lib/core/sql-validator.js +1 -1
  158. package/lib/errors.js +1 -1
  159. package/lib/framework/build-all-flags.js +1 -1
  160. package/lib/framework/flags.js +1 -1
  161. package/lib/framework/help.js +1 -1
  162. package/lib/framework/index.js +1 -1
  163. package/lib/framework/output.js +1 -1
  164. package/lib/framework/response.js +1 -1
  165. package/lib/framework/runner-alias.js +1 -1
  166. package/lib/framework/runner.js +1 -1
  167. package/lib/framework/schema-export.js +1 -1
  168. package/lib/framework/types.js +1 -1
  169. package/lib/generated/build-info.js +1 -1
  170. package/lib/help.js +1 -1
  171. package/lib/skills/main.js +1 -1
  172. package/lib/skills/npx-skills-add.js +1 -1
  173. package/lib/telemetry/cli-command-trace.js +1 -1
  174. package/lib/telemetry/cli-help-trace.js +1 -1
  175. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  176. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  177. package/lib/telemetry/send-cli-trace-log.js +1 -1
  178. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  179. package/lib/utils/ai_config.js +1 -1
  180. package/lib/utils/apply-jq-filter.js +1 -1
  181. package/lib/utils/cdn-config.js +1 -1
  182. package/lib/utils/check-sdk-version.js +1 -1
  183. package/lib/utils/cli-version-check.js +1 -1
  184. package/lib/utils/cli-version-policy.js +1 -1
  185. package/lib/utils/config.js +1 -1
  186. package/lib/utils/copy-directory.js +1 -1
  187. package/lib/utils/entity-with-id.js +1 -1
  188. package/lib/utils/file-utils.js +1 -1
  189. package/lib/utils/guides-cdn.js +1 -1
  190. package/lib/utils/http-client.js +1 -1
  191. package/lib/utils/is-non-interactive.js +1 -1
  192. package/lib/utils/logger.js +1 -1
  193. package/lib/utils/params.js +1 -1
  194. package/lib/utils/platform.js +1 -1
  195. package/lib/utils/rules-cdn.js +1 -1
  196. package/lib/utils/sleep.js +1 -1
  197. package/lib/utils/template-replacer.js +1 -1
  198. package/lib/utils/version.js +1 -1
  199. package/lib/utils/with-active-cookie.js +1 -1
  200. package/lib/utils/write-cli-side-channel.js +1 -1
  201. package/package.json +1 -1
@@ -1 +1 @@
1
- function a117_0x2871(_0x52fc68,_0x31d3ff){_0x52fc68=_0x52fc68-0x146;const _0x359152=a117_0x3591();let _0x2871bd=_0x359152[_0x52fc68];return _0x2871bd;}const a117_0x32b381=a117_0x2871;(function(_0x5f5445,_0x1c4fcb){const _0x389d68=a117_0x2871,_0x137f64=_0x5f5445();while(!![]){try{const _0x36b651=-parseInt(_0x389d68(0x149))/0x1*(parseInt(_0x389d68(0x150))/0x2)+parseInt(_0x389d68(0x14e))/0x3+-parseInt(_0x389d68(0x156))/0x4*(parseInt(_0x389d68(0x155))/0x5)+parseInt(_0x389d68(0x154))/0x6+-parseInt(_0x389d68(0x146))/0x7+-parseInt(_0x389d68(0x15a))/0x8+parseInt(_0x389d68(0x151))/0x9*(parseInt(_0x389d68(0x14a))/0xa);if(_0x36b651===_0x1c4fcb)break;else _0x137f64['push'](_0x137f64['shift']());}catch(_0x5cd14d){_0x137f64['push'](_0x137f64['shift']());}}}(a117_0x3591,0xb32e6));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a117_0x3591(){const _0x740f00=['31313943GPnZbM','Installing\x20official\x20skill\x20via\x20npx\x20(','log','4746078iDHvRN','5aIpQma','5132916PPgqhE','lovrabet/rabetbase',')...','skipped','5245512SqsqXD','inherit','info','cwd','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','unknown','install','Check\x20network\x20connectivity\x20and\x20try\x20again.','7814121vxltvn','setLogPath','skill','1hARWVz','10rqEiyx','nonInteractive','apiError','write','1703736peuMYK','执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)','2098210zDZjeK'];a117_0x3591=function(){return _0x740f00;};return a117_0x3591();}import{logger}from'../../utils/logger.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':a117_0x32b381(0x148),'command':a117_0x32b381(0x160),'description':'Install\x20developer\x20skill\x20package','risk':a117_0x32b381(0x14d),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x7933f8){const _0x4766fd=a117_0x32b381;logger[_0x4766fd(0x147)](process[_0x4766fd(0x15d)]()),logger[_0x4766fd(0x15c)]('skill-install',_0x4766fd(0x14f));const {runNpxSkillsAddGlobal:_0x1763a3}=await import('../../skills/npx-skills-add.js'),_0x3afe3c=_0x7933f8[_0x4766fd(0x14b)]?'pipe':_0x4766fd(0x15b);console['log'](_0x4766fd(0x152)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+_0x4766fd(0x158));const _0x40b784=_0x1763a3(process[_0x4766fd(0x15d)](),_0x4766fd(0x157),{'stdio':_0x3afe3c});if(_0x40b784[_0x4766fd(0x159)])console[_0x4766fd(0x153)](_0x4766fd(0x15e));else{if(_0x40b784['ok'])console[_0x4766fd(0x153)](CLI_BIN_NAME+'\x20skill\x20installed');else throw CliErrors[_0x4766fd(0x14c)]('npx\x20skills\x20add\x20failed:\x20'+(_0x40b784['error']||_0x4766fd(0x15f)),_0x4766fd(0x161));}return{'ok':!![]};}}];
1
+ function a118_0xbba0(){const _0x7ed06d=[')...','1693398BGxpFQ','301263ezpJQz','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','2919inSDtJ','cwd','117010Btnmhw','inherit','pipe','info','386uIUXqC','36gdvTbP','153eaTqjU','535432mcGhWj','Install\x20developer\x20skill\x20package','380172tRrIdx','install','log','write','setLogPath','npx\x20skills\x20add\x20failed:\x20','lovrabet/rabetbase','Check\x20network\x20connectivity\x20and\x20try\x20again.','15455MmzYYP','Installing\x20official\x20skill\x20via\x20npx\x20(','../../skills/npx-skills-add.js','\x20skill\x20installed','apiError','nonInteractive','skipped'];a118_0xbba0=function(){return _0x7ed06d;};return a118_0xbba0();}const a118_0x187179=a118_0x2641;(function(_0x535300,_0x5b052e){const _0x1acaf5=a118_0x2641,_0xc8ac43=_0x535300();while(!![]){try{const _0x3f3575=-parseInt(_0x1acaf5(0xff))/0x1+-parseInt(_0x1acaf5(0x107))/0x2*(-parseInt(_0x1acaf5(0x101))/0x3)+parseInt(_0x1acaf5(0x108))/0x4*(-parseInt(_0x1acaf5(0xf6))/0x5)+-parseInt(_0x1acaf5(0xee))/0x6+parseInt(_0x1acaf5(0xfe))/0x7+-parseInt(_0x1acaf5(0x10a))/0x8+-parseInt(_0x1acaf5(0x109))/0x9*(-parseInt(_0x1acaf5(0x103))/0xa);if(_0x3f3575===_0x5b052e)break;else _0xc8ac43['push'](_0xc8ac43['shift']());}catch(_0x2b4a76){_0xc8ac43['push'](_0xc8ac43['shift']());}}}(a118_0xbba0,0x2951f));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a118_0x2641(_0x54dd15,_0x42e56a){_0x54dd15=_0x54dd15-0xed;const _0xbba0f9=a118_0xbba0();let _0x264147=_0xbba0f9[_0x54dd15];return _0x264147;}import{logger}from'../../utils/logger.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':'skill','command':a118_0x187179(0xef),'description':a118_0x187179(0xed),'risk':a118_0x187179(0xf1),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0xe1a53c){const _0xca1b1e=a118_0x187179;logger[_0xca1b1e(0xf2)](process[_0xca1b1e(0x102)]()),logger[_0xca1b1e(0x106)]('skill-install','执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)');const {runNpxSkillsAddGlobal:_0x4ddb58}=await import(_0xca1b1e(0xf8)),_0x2d9a18=_0xe1a53c[_0xca1b1e(0xfb)]?_0xca1b1e(0x105):_0xca1b1e(0x104);console[_0xca1b1e(0xf0)](_0xca1b1e(0xf7)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+_0xca1b1e(0xfd));const _0x18d71d=_0x4ddb58(process[_0xca1b1e(0x102)](),_0xca1b1e(0xf4),{'stdio':_0x2d9a18});if(_0x18d71d[_0xca1b1e(0xfc)])console['log'](_0xca1b1e(0x100));else{if(_0x18d71d['ok'])console[_0xca1b1e(0xf0)](CLI_BIN_NAME+_0xca1b1e(0xf9));else throw CliErrors[_0xca1b1e(0xfa)](_0xca1b1e(0xf3)+(_0x18d71d['error']||'unknown'),_0xca1b1e(0xf5));}return{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a118_0x47a6aa=a118_0x4ca4;(function(_0x56e8e2,_0x29d8e1){const _0x5000ff=a118_0x4ca4,_0x25416e=_0x56e8e2();while(!![]){try{const _0x57a73f=parseInt(_0x5000ff(0xff))/0x1+parseInt(_0x5000ff(0xed))/0x2*(-parseInt(_0x5000ff(0x123))/0x3)+-parseInt(_0x5000ff(0x102))/0x4+-parseInt(_0x5000ff(0x120))/0x5*(-parseInt(_0x5000ff(0x105))/0x6)+parseInt(_0x5000ff(0xf5))/0x7+parseInt(_0x5000ff(0x108))/0x8*(parseInt(_0x5000ff(0x10a))/0x9)+parseInt(_0x5000ff(0x106))/0xa*(-parseInt(_0x5000ff(0x119))/0xb);if(_0x57a73f===_0x29d8e1)break;else _0x25416e['push'](_0x25416e['shift']());}catch(_0x659a2){_0x25416e['push'](_0x25416e['shift']());}}}(a118_0x26ae,0xa64e1));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';function a118_0x26ae(){const _0xe6c52=['sqls','mode','string','flagMissing','str','db-id','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','3750802STUifH','SQL\x20query\x20display\x20name','name','description','Target\x20database\x20ID','dbId\x20必须为正整数','dbId','307630VfyMyY','new','Local\x20SQL\x20file\x20mode','3lRMQbj','isInteger','map','请选择本地\x20SQL\x20模式:','flag','请输入\x20SQL\x20名称:','File\x20already\x20exists:\x20','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','isFinite','\x20\x20SELECT\x201\x20AS\x20id','length','2172746DtQHMp','✎\x20手动输入\x20dbId','parse','sqlCode','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','MyBatis\x20XML(mybatisXml)','nonInteractive','validation','3142713GcblLk','sqlName','/smartapi/custom/saveUserCustomSql','join','sql','stringify','number','appCode','Created\x20SQL\x20query\x20','mybatisXml','1077464iCLBDT','__manual__','请输入目标数据库\x20dbId:','1599304APuyHE','SQL\x20名称不能为空','trim','78NVNqbL','10yxabCt','sqlRootDir','4840GJERcT','请选择目标数据库:','2709CqExDY','<server-generated-sqlCode>','catch','Invalid\x20database\x20selection\x20payload:\x20','dbName','普通\x20SQL(sql)','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.'];a118_0x26ae=function(){return _0xe6c52;};return a118_0x26ae();}function a118_0x4ca4(_0x59643c,_0x5bde5a){_0x59643c=_0x59643c-0xe8;const _0x26ae4a=a118_0x26ae();let _0x4ca4ee=_0x26ae4a[_0x59643c];return _0x4ca4ee;}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(_0x417782){const _0x584607=a118_0x4ca4;if(_0x417782===_0x584607(0xfe))return[_0x584607(0xe8),_0x584607(0xeb),'</select>',''][_0x584607(0xf8)]('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x584607(0xf8)]('\x0a');}export const sqlCreate={'service':a118_0x47a6aa(0xf9),'command':'create','description':a118_0x47a6aa(0x118),'risk':'high-risk-write','flags':[{'name':a118_0x47a6aa(0x11b),'type':a118_0x47a6aa(0x114),'description':a118_0x47a6aa(0x11a)},{'name':a118_0x47a6aa(0x117),'type':a118_0x47a6aa(0xfb),'description':a118_0x47a6aa(0x11d)},{'name':a118_0x47a6aa(0x113),'type':a118_0x47a6aa(0x114),'enum':[a118_0x47a6aa(0xf9),a118_0x47a6aa(0xfe)],'description':a118_0x47a6aa(0x122)}],async 'validate'(_0x1917db){const _0x3ee430=a118_0x47a6aa;if(!_0x1917db[_0x3ee430(0xf3)])return;if(!_0x1917db[_0x3ee430(0x116)](_0x3ee430(0x11b))[_0x3ee430(0x104)]())throw CliErrors[_0x3ee430(0x115)](_0x3ee430(0x11b),_0x3ee430(0xe9));const _0xdcd64=resolveProvidedDbId(_0x1917db);if(typeof _0xdcd64!=='number'||!Number[_0x3ee430(0xea)](_0xdcd64)||_0xdcd64<=0x0)throw CliErrors[_0x3ee430(0x115)](_0x3ee430(0x117),_0x3ee430(0x111));if(!_0x1917db[_0x3ee430(0x116)](_0x3ee430(0x113))['trim']())throw CliErrors[_0x3ee430(0x115)](_0x3ee430(0x113),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x26a3c2){const _0x3f8dd4=a118_0x47a6aa,_0x126345=loadSqlProjectConfig(_0x26a3c2['appCode']),{sqlName:_0x5d0cf6,dbId:_0x3457d1,dbName:_0xe2bbdf,mode:_0x40e747}=await resolveSqlNewInputs(_0x26a3c2),_0x2b2af9=buildSqlRelativePath(_0x3f8dd4(0x10b),_0x5d0cf6,_0xe2bbdf,_0x40e747,_0x3457d1),_0x35a4ef=_0x126345['sqlRootDir']+'/'+_0x2b2af9;return{'method':'POST','url':_0x3f8dd4(0xf7),'body':{'appCode':_0x26a3c2[_0x3f8dd4(0xfc)],'sqlName':_0x5d0cf6,'dbId':_0x3457d1,'mode':_0x40e747,'localPath':_0x35a4ef},'description':_0x3f8dd4(0xf1)+_0x126345[_0x3f8dd4(0x107)]};},async 'execute'(_0x41c9a5){const _0xb391f0=a118_0x47a6aa,_0x51c8ce=loadSqlProjectConfig(_0x41c9a5[_0xb391f0(0xfc)]),{sqlName:_0x16811c,dbId:_0x2c86cb,dbName:_0x672850,mode:_0x40f5b5}=await resolveSqlNewInputs(_0x41c9a5),_0xd0d657=generateSqlTemplate(_0x40f5b5),_0x418df8=await createSqlQuery({'appCode':_0x41c9a5[_0xb391f0(0xfc)],'sqlName':_0x16811c,'dbId':_0x2c86cb,'sqlContent':_0xd0d657}),_0x219f13=ensureRemoteSqlContent(_0x418df8),_0x405c47=_0x672850||await getDbName(_0x41c9a5[_0xb391f0(0xfc)],_0x2c86cb)[_0xb391f0(0x10c)](()=>undefined),_0x572642=buildSqlRelativePath(_0x418df8[_0xb391f0(0xf0)],_0x418df8[_0xb391f0(0xf6)],_0x405c47,_0x40f5b5,_0x2c86cb),_0x1f03db=_0x51c8ce[_0xb391f0(0x107)]+'/'+_0x572642,_0x3fe627=buildLocalSqlFileContent({'sqlCode':_0x418df8[_0xb391f0(0xf0)],'sqlName':_0x418df8[_0xb391f0(0xf6)],'dbId':_0x418df8[_0xb391f0(0x11f)]},_0x219f13,{'dbName':_0x405c47,'mode':_0x40f5b5,'syncedAt':new Date()['toISOString'](),'description':_0x418df8[_0xb391f0(0x11c)]});if(await fileExists(_0x1f03db))throw CliErrors['validation'](_0xb391f0(0x129)+_0x1f03db);await ensureParentDirectory(_0x1f03db),await writeFile(_0x1f03db,_0x3fe627,'utf8');const _0x19d551=await readSqlLockFile(_0x51c8ce['lockFilePath']),{lockData:_0x3caa25,appLock:_0x337513}=ensureSqlLockScope(_0x19d551??createEmptySqlLock(),_0x51c8ce[_0xb391f0(0xfc)],_0x51c8ce['sqlRoot'],_0xb391f0(0x121));return _0x337513[_0xb391f0(0x112)][_0x418df8['sqlCode']]={...buildSqlLockEntry(_0x418df8,_0x219f13,computeSqlContentHash(_0x3fe627),{'dbName':_0x405c47}),'path':_0x572642,'mode':_0x40f5b5},_0x337513['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x51c8ce['lockFilePath'],_0x3caa25),{'ok':!![],'data':{'id':_0x418df8['id'],'sqlCode':_0x418df8['sqlCode'],'sqlName':_0x418df8[_0xb391f0(0xf6)],'dbId':_0x418df8['dbId'],'path':_0x1f03db,'mode':_0x40f5b5},'message':_0xb391f0(0xfd)+_0x418df8[_0xb391f0(0xf0)]};}};async function resolveSqlNewInputs(_0xb03057){const _0x35a5a3=await resolveSqlNameInput(_0xb03057),{dbId:_0x25f61b,dbName:_0x3e79f1}=await resolveDbSelection(_0xb03057),_0x40d1e9=await resolveSqlModeInput(_0xb03057);return{'sqlName':_0x35a5a3,'dbId':_0x25f61b,'dbName':_0x3e79f1,'mode':_0x40d1e9};}async function resolveSqlNameInput(_0x3b6b78){const _0xc093d2=a118_0x47a6aa,_0x116604=_0x3b6b78['str'](_0xc093d2(0x11b))[_0xc093d2(0x104)]();if(_0x116604)return _0x116604;if(_0x3b6b78['nonInteractive'])throw CliErrors[_0xc093d2(0x115)](_0xc093d2(0x11b),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0xc093d2(0x128),'validate':_0x3d6882=>_0x3d6882[_0xc093d2(0x104)]()?!![]:_0xc093d2(0x103)}))[_0xc093d2(0x104)]();}async function resolveDbSelection(_0x58f77f){const _0x42418b=a118_0x47a6aa,_0x9079d8=resolveProvidedDbId(_0x58f77f);if(typeof _0x9079d8===_0x42418b(0xfb)&&Number['isFinite'](_0x9079d8)&&_0x9079d8>0x0)return{'dbId':_0x9079d8,'dbName':await getDbName(_0x58f77f['appCode'],_0x9079d8)[_0x42418b(0x10c)](()=>undefined)};if(_0x58f77f[_0x42418b(0xf3)])throw CliErrors[_0x42418b(0x115)](_0x42418b(0x117),_0x42418b(0x111));const _0x3c7516=await listDatabases(_0x58f77f[_0x42418b(0xfc)])[_0x42418b(0x10c)](()=>[]);if(_0x3c7516['length']===0x1)return{'dbId':_0x3c7516[0x0][_0x42418b(0x11f)],'dbName':_0x3c7516[0x0]['dbName']};if(_0x3c7516[_0x42418b(0xec)]>0x1){const _0x4a9aa4=await select({'message':_0x42418b(0x109),'choices':[..._0x3c7516[_0x42418b(0x125)](_0xb945a2=>({'name':_0xb945a2[_0x42418b(0x10e)]+'\x20('+_0xb945a2[_0x42418b(0x11f)]+')','value':serializeDbSelection(_0xb945a2)})),{'name':_0x42418b(0xee),'value':_0x42418b(0x100)}]});if(_0x4a9aa4!=='__manual__')return deserializeDbSelection(_0x4a9aa4);}const _0x2a056e=await input({'message':_0x42418b(0x101),'validate':_0x176811=>{const _0x366901=_0x42418b,_0x30600f=_0x176811[_0x366901(0x104)]();if(!_0x30600f)return'dbId\x20不能为空';const _0x2e6cdf=Number(_0x30600f);if(!Number[_0x366901(0x124)](_0x2e6cdf)||_0x2e6cdf<=0x0)return _0x366901(0x11e);return!![];}});return{'dbId':Number(_0x2a056e[_0x42418b(0x104)]())};}async function resolveSqlModeInput(_0x2728e3){const _0x25b5a3=a118_0x47a6aa,_0x4b48d4=_0x2728e3[_0x25b5a3(0x116)](_0x25b5a3(0x113))[_0x25b5a3(0x104)]();if(_0x4b48d4===_0x25b5a3(0xf9)||_0x4b48d4===_0x25b5a3(0xfe))return _0x4b48d4;if(_0x2728e3[_0x25b5a3(0xf3)])throw CliErrors['flagMissing'](_0x25b5a3(0x113),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':_0x25b5a3(0x126),'choices':[{'name':_0x25b5a3(0x10f),'value':'sql','description':_0x25b5a3(0x110)},{'name':_0x25b5a3(0xf2),'value':'mybatisXml','description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x5b7e80){const _0x1137bb=a118_0x47a6aa;return JSON[_0x1137bb(0xfa)]({'dbId':_0x5b7e80['dbId'],'dbName':_0x5b7e80[_0x1137bb(0x10e)]});}function deserializeDbSelection(_0x3bf6ab){const _0x1cd121=a118_0x47a6aa;try{const _0x181af4=JSON[_0x1cd121(0xef)](_0x3bf6ab);if(typeof _0x181af4[_0x1cd121(0x11f)]===_0x1cd121(0xfb)&&Number['isFinite'](_0x181af4[_0x1cd121(0x11f)]))return{'dbId':_0x181af4['dbId'],'dbName':_0x181af4[_0x1cd121(0x10e)]};}catch{}throw CliErrors[_0x1cd121(0xf4)](_0x1cd121(0x10d)+_0x3bf6ab);}function resolveProvidedDbId(_0x154fa0){const _0x239335=a118_0x47a6aa,_0x518bf1=_0x154fa0[_0x239335(0x127)](_0x239335(0x117));if(typeof _0x518bf1===_0x239335(0xfb)&&Number[_0x239335(0xea)](_0x518bf1))return _0x518bf1;return undefined;}
1
+ const a119_0x375a38=a119_0x39b5;(function(_0x3e472c,_0x5ddcf8){const _0xb9e50=a119_0x39b5,_0x3c501b=_0x3e472c();while(!![]){try{const _0x37cb27=parseInt(_0xb9e50(0xc1))/0x1+-parseInt(_0xb9e50(0xc8))/0x2*(-parseInt(_0xb9e50(0xbb))/0x3)+parseInt(_0xb9e50(0xca))/0x4*(-parseInt(_0xb9e50(0xd5))/0x5)+-parseInt(_0xb9e50(0xae))/0x6*(parseInt(_0xb9e50(0xd4))/0x7)+parseInt(_0xb9e50(0xb5))/0x8+-parseInt(_0xb9e50(0xd2))/0x9*(-parseInt(_0xb9e50(0xb6))/0xa)+-parseInt(_0xb9e50(0xbc))/0xb;if(_0x37cb27===_0x5ddcf8)break;else _0x3c501b['push'](_0x3c501b['shift']());}catch(_0x39b525){_0x3c501b['push'](_0x3c501b['shift']());}}}(a119_0xd902,0xde683));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';function a119_0xd902(){const _0xc9947e=['high-risk-write','flag','parse','sqlRoot','适合带动态标签的\x20MyBatis\x20XML\x20SQL','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','4968186RgdTBI','utf8','isFinite','Target\x20database\x20ID','description','mode','join','11765008mKUyVm','7825900oAHMbR','lockFilePath','appCode','dbId\x20必须为正整数','mybatisXml','3785466WCreYR','25833038njRNKv','sql','db-id','name','lastSync','1755797XBQZtz','sqlCode','dbName','dbId\x20不能为空','<server-generated-sqlCode>','map','toISOString','2oRAwxE','number','4eguEZq','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','string','sqlName','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','flagMissing','trim','SQL\x20query\x20display\x20name','9HBCtBv','catch','14LKRgRg','1776680bBlSCl','sqlRootDir','new','Invalid\x20database\x20selection\x20payload:\x20','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','File\x20already\x20exists:\x20','Created\x20SQL\x20query\x20','length','nonInteractive','Local\x20SQL\x20file\x20mode','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','普通\x20SQL(sql)','/smartapi/custom/saveUserCustomSql','isInteger','str','请输入目标数据库\x20dbId:','SELECT\x201\x20AS\x20id;','\x20\x20SELECT\x201\x20AS\x20id','dbId','✎\x20手动输入\x20dbId'];a119_0xd902=function(){return _0xc9947e;};return a119_0xd902();}function a119_0x39b5(_0x31dabb,_0x5e6de9){_0x31dabb=_0x31dabb-0x97;const _0xd902ce=a119_0xd902();let _0x39b5e9=_0xd902ce[_0x31dabb];return _0x39b5e9;}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(_0x3ea45e){const _0x2abde0=a119_0x39b5;if(_0x3ea45e===_0x2abde0(0xba))return[_0x2abde0(0xad),_0x2abde0(0xa5),'</select>',''][_0x2abde0(0xb4)]('\x0a');return[_0x2abde0(0xa4),''][_0x2abde0(0xb4)]('\x0a');}export const sqlCreate={'service':a119_0x375a38(0xbd),'command':'create','description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':a119_0x375a38(0xa8),'flags':[{'name':'name','type':a119_0x375a38(0xcc),'description':a119_0x375a38(0xd1)},{'name':'db-id','type':a119_0x375a38(0xc9),'description':a119_0x375a38(0xb1)},{'name':a119_0x375a38(0xb3),'type':a119_0x375a38(0xcc),'enum':['sql',a119_0x375a38(0xba)],'description':a119_0x375a38(0x9c)}],async 'validate'(_0x51704b){const _0x1f5320=a119_0x375a38;if(!_0x51704b[_0x1f5320(0x9b)])return;if(!_0x51704b[_0x1f5320(0xa2)](_0x1f5320(0xbf))['trim']())throw CliErrors[_0x1f5320(0xcf)](_0x1f5320(0xbf),_0x1f5320(0x9d));const _0x1630d2=resolveProvidedDbId(_0x51704b);if(typeof _0x1630d2!==_0x1f5320(0xc9)||!Number[_0x1f5320(0xb0)](_0x1630d2)||_0x1630d2<=0x0)throw CliErrors[_0x1f5320(0xcf)](_0x1f5320(0xbe),_0x1f5320(0x97));if(!_0x51704b[_0x1f5320(0xa2)](_0x1f5320(0xb3))[_0x1f5320(0xd0)]())throw CliErrors['flagMissing'](_0x1f5320(0xb3),_0x1f5320(0x9e));},async 'dryRun'(_0x20bfec){const _0x2dd784=a119_0x375a38,_0x52194a=loadSqlProjectConfig(_0x20bfec[_0x2dd784(0xb8)]),{sqlName:_0x5d1ddf,dbId:_0x3bf742,dbName:_0x26aebd,mode:_0x2bc5a3}=await resolveSqlNewInputs(_0x20bfec),_0x1452f2=buildSqlRelativePath(_0x2dd784(0xc5),_0x5d1ddf,_0x26aebd,_0x2bc5a3,_0x3bf742),_0x19374c=_0x52194a['sqlRootDir']+'/'+_0x1452f2;return{'method':'POST','url':_0x2dd784(0xa0),'body':{'appCode':_0x20bfec[_0x2dd784(0xb8)],'sqlName':_0x5d1ddf,'dbId':_0x3bf742,'mode':_0x2bc5a3,'localPath':_0x19374c},'description':_0x2dd784(0xce)+_0x52194a['sqlRootDir']};},async 'execute'(_0xec69a6){const _0x61171d=a119_0x375a38,_0x2dfd58=loadSqlProjectConfig(_0xec69a6['appCode']),{sqlName:_0x46ce16,dbId:_0x2b8b74,dbName:_0x328668,mode:_0x13801d}=await resolveSqlNewInputs(_0xec69a6),_0x2528fc=generateSqlTemplate(_0x13801d),_0x51c159=await createSqlQuery({'appCode':_0xec69a6[_0x61171d(0xb8)],'sqlName':_0x46ce16,'dbId':_0x2b8b74,'sqlContent':_0x2528fc}),_0x3dd8ba=ensureRemoteSqlContent(_0x51c159),_0x27b906=_0x328668||await getDbName(_0xec69a6[_0x61171d(0xb8)],_0x2b8b74)[_0x61171d(0xd3)](()=>undefined),_0x2d73d5=buildSqlRelativePath(_0x51c159[_0x61171d(0xc2)],_0x51c159[_0x61171d(0xcd)],_0x27b906,_0x13801d,_0x2b8b74),_0x42d0db=_0x2dfd58[_0x61171d(0xd6)]+'/'+_0x2d73d5,_0x1f02a2=buildLocalSqlFileContent({'sqlCode':_0x51c159[_0x61171d(0xc2)],'sqlName':_0x51c159[_0x61171d(0xcd)],'dbId':_0x51c159[_0x61171d(0xa6)]},_0x3dd8ba,{'dbName':_0x27b906,'mode':_0x13801d,'syncedAt':new Date()[_0x61171d(0xc7)](),'description':_0x51c159[_0x61171d(0xb2)]});if(await fileExists(_0x42d0db))throw CliErrors['validation'](_0x61171d(0x98)+_0x42d0db);await ensureParentDirectory(_0x42d0db),await writeFile(_0x42d0db,_0x1f02a2,_0x61171d(0xaf));const _0x15e26f=await readSqlLockFile(_0x2dfd58[_0x61171d(0xb7)]),{lockData:_0x529cf5,appLock:_0x1f2df8}=ensureSqlLockScope(_0x15e26f??createEmptySqlLock(),_0x2dfd58['appCode'],_0x2dfd58[_0x61171d(0xab)],_0x61171d(0xd7));return _0x1f2df8['sqls'][_0x51c159[_0x61171d(0xc2)]]={...buildSqlLockEntry(_0x51c159,_0x3dd8ba,computeSqlContentHash(_0x1f02a2),{'dbName':_0x27b906}),'path':_0x2d73d5,'mode':_0x13801d},_0x1f2df8[_0x61171d(0xc0)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2dfd58[_0x61171d(0xb7)],_0x529cf5),{'ok':!![],'data':{'id':_0x51c159['id'],'sqlCode':_0x51c159[_0x61171d(0xc2)],'sqlName':_0x51c159['sqlName'],'dbId':_0x51c159[_0x61171d(0xa6)],'path':_0x42d0db,'mode':_0x13801d},'message':_0x61171d(0x99)+_0x51c159[_0x61171d(0xc2)]};}};async function resolveSqlNewInputs(_0x16cb3b){const _0x523d3c=await resolveSqlNameInput(_0x16cb3b),{dbId:_0x24e455,dbName:_0x24dd72}=await resolveDbSelection(_0x16cb3b),_0x5b1146=await resolveSqlModeInput(_0x16cb3b);return{'sqlName':_0x523d3c,'dbId':_0x24e455,'dbName':_0x24dd72,'mode':_0x5b1146};}async function resolveSqlNameInput(_0x455742){const _0x3be89f=a119_0x375a38,_0x4dc393=_0x455742[_0x3be89f(0xa2)](_0x3be89f(0xbf))['trim']();if(_0x4dc393)return _0x4dc393;if(_0x455742[_0x3be89f(0x9b)])throw CliErrors['flagMissing'](_0x3be89f(0xbf),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x2624c8=>_0x2624c8['trim']()?!![]:'SQL\x20名称不能为空'}))[_0x3be89f(0xd0)]();}async function resolveDbSelection(_0x73e11){const _0x1cabe2=a119_0x375a38,_0x1b21c0=resolveProvidedDbId(_0x73e11);if(typeof _0x1b21c0==='number'&&Number['isFinite'](_0x1b21c0)&&_0x1b21c0>0x0)return{'dbId':_0x1b21c0,'dbName':await getDbName(_0x73e11['appCode'],_0x1b21c0)[_0x1cabe2(0xd3)](()=>undefined)};if(_0x73e11[_0x1cabe2(0x9b)])throw CliErrors['flagMissing'](_0x1cabe2(0xbe),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0xcb4092=await listDatabases(_0x73e11['appCode'])['catch'](()=>[]);if(_0xcb4092[_0x1cabe2(0x9a)]===0x1)return{'dbId':_0xcb4092[0x0][_0x1cabe2(0xa6)],'dbName':_0xcb4092[0x0][_0x1cabe2(0xc3)]};if(_0xcb4092['length']>0x1){const _0x5f4003=await select({'message':'请选择目标数据库:','choices':[..._0xcb4092[_0x1cabe2(0xc6)](_0x44ae84=>({'name':_0x44ae84[_0x1cabe2(0xc3)]+'\x20('+_0x44ae84[_0x1cabe2(0xa6)]+')','value':serializeDbSelection(_0x44ae84)})),{'name':_0x1cabe2(0xa7),'value':'__manual__'}]});if(_0x5f4003!=='__manual__')return deserializeDbSelection(_0x5f4003);}const _0xbcdfa7=await input({'message':_0x1cabe2(0xa3),'validate':_0x4c1d20=>{const _0x39d0f1=_0x1cabe2,_0x285415=_0x4c1d20[_0x39d0f1(0xd0)]();if(!_0x285415)return _0x39d0f1(0xc4);const _0xe83050=Number(_0x285415);if(!Number[_0x39d0f1(0xa1)](_0xe83050)||_0xe83050<=0x0)return _0x39d0f1(0xb9);return!![];}});return{'dbId':Number(_0xbcdfa7[_0x1cabe2(0xd0)]())};}async function resolveSqlModeInput(_0x12285a){const _0x2b1a4a=a119_0x375a38,_0x263312=_0x12285a[_0x2b1a4a(0xa2)](_0x2b1a4a(0xb3))[_0x2b1a4a(0xd0)]();if(_0x263312===_0x2b1a4a(0xbd)||_0x263312===_0x2b1a4a(0xba))return _0x263312;if(_0x12285a['nonInteractive'])throw CliErrors[_0x2b1a4a(0xcf)](_0x2b1a4a(0xb3),_0x2b1a4a(0x9e));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x2b1a4a(0x9f),'value':_0x2b1a4a(0xbd),'description':_0x2b1a4a(0xcb)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0x2b1a4a(0xba),'description':_0x2b1a4a(0xac)}]});}function serializeDbSelection(_0x781600){const _0x4d11de=a119_0x375a38;return JSON['stringify']({'dbId':_0x781600[_0x4d11de(0xa6)],'dbName':_0x781600[_0x4d11de(0xc3)]});}function deserializeDbSelection(_0x284693){const _0x3f09f9=a119_0x375a38;try{const _0x5258fd=JSON[_0x3f09f9(0xaa)](_0x284693);if(typeof _0x5258fd[_0x3f09f9(0xa6)]===_0x3f09f9(0xc9)&&Number[_0x3f09f9(0xb0)](_0x5258fd[_0x3f09f9(0xa6)]))return{'dbId':_0x5258fd[_0x3f09f9(0xa6)],'dbName':_0x5258fd['dbName']};}catch{}throw CliErrors['validation'](_0x3f09f9(0xd8)+_0x284693);}function resolveProvidedDbId(_0x327ddf){const _0xd6d43=a119_0x375a38,_0x1d3b9c=_0x327ddf[_0xd6d43(0xa9)](_0xd6d43(0xbe));if(typeof _0x1d3b9c===_0xd6d43(0xc9)&&Number[_0xd6d43(0xb0)](_0x1d3b9c))return _0x1d3b9c;return undefined;}
@@ -1 +1 @@
1
- const a119_0x4a888d=a119_0x3e36;(function(_0x2132c4,_0x318248){const _0x2008e5=a119_0x3e36,_0x6ced3d=_0x2132c4();while(!![]){try{const _0x59945b=-parseInt(_0x2008e5(0x8c))/0x1+-parseInt(_0x2008e5(0x92))/0x2*(-parseInt(_0x2008e5(0x86))/0x3)+-parseInt(_0x2008e5(0x8d))/0x4+parseInt(_0x2008e5(0x7c))/0x5+-parseInt(_0x2008e5(0x7b))/0x6+parseInt(_0x2008e5(0x94))/0x7*(-parseInt(_0x2008e5(0x77))/0x8)+parseInt(_0x2008e5(0x8a))/0x9;if(_0x59945b===_0x318248)break;else _0x6ced3d['push'](_0x6ced3d['shift']());}catch(_0x4c43a8){_0x6ced3d['push'](_0x6ced3d['shift']());}}}(a119_0x5809,0xbc845));function a119_0x3e36(_0x30e76d,_0x2dcbf7){_0x30e76d=_0x30e76d-0x75;const _0x5809b0=a119_0x5809();let _0x3e36d1=_0x5809b0[_0x30e76d];return _0x3e36d1;}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a119_0x5809(){const _0x25bab5=['No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','7662414YxNtii','73815jIDpFE','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','sqlcode','sql','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','projectRoot','filter','str','lockFilePath','replace','285pHkbhx','lastSync','/smartapi/custom/deleteUserCustomSql','validation','31866912aXGcuT','remoteId','189400JuvsgS','4074304eObnRQ','entries','toISOString','POST','trashDir','7902tccYWD','Deleted\x20','98nbjewA','sqls','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','\x20(local\x20file\x20moved\x20to\x20trash)','trashedTo','fromEntries','sqlRoot','appCode','384952tvUdqV','SQL\x20lock\x20file\x20not\x20found.','startsWith'];a119_0x5809=function(){return _0x25bab5;};return a119_0x5809();}export const sqlDelete={'service':a119_0x4a888d(0x7f),'command':'delete','description':a119_0x4a888d(0x80),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x2c7d17){const _0x58bd33=a119_0x4a888d,_0x37e2c4=loadSqlProjectConfig(_0x2c7d17[_0x58bd33(0x76)]),_0x380564=await readSqlLockFile(_0x37e2c4[_0x58bd33(0x84)]);if(!_0x380564)throw CliErrors[_0x58bd33(0x89)](_0x58bd33(0x96));},async 'dryRun'(_0x5338e5){const _0x1f2d9f=a119_0x4a888d,_0x2f285a=loadSqlProjectConfig(_0x5338e5[_0x1f2d9f(0x76)]),_0x599660=await readSqlLockFile(_0x2f285a[_0x1f2d9f(0x84)]);if(!_0x599660)throw CliErrors[_0x1f2d9f(0x89)](_0x1f2d9f(0x96));const {appLock:_0x5e3f81}=ensureSqlLockScope(_0x599660,_0x5338e5[_0x1f2d9f(0x76)],_0x2f285a['sqlRoot'],'delete'),_0x3c6d72=_0x5338e5[_0x1f2d9f(0x83)]('sqlcode'),_0x1b5637=_0x5e3f81[_0x1f2d9f(0x95)][_0x3c6d72];if(!_0x1b5637)throw CliErrors[_0x1f2d9f(0x89)](_0x1f2d9f(0x7a)+_0x3c6d72+'\x22.');return{'method':_0x1f2d9f(0x90),'url':_0x1f2d9f(0x88),'body':{'sqlCode':_0x3c6d72,'id':_0x1b5637[_0x1f2d9f(0x8b)],'localPath':resolveLocalSqlFilePath(_0x2f285a,_0x3c6d72,_0x1b5637)},'description':'Would\x20delete\x20SQL\x20'+_0x3c6d72+_0x1f2d9f(0x7d)+_0x2f285a[_0x1f2d9f(0x91)]};},async 'execute'(_0x29a8d9){const _0xfffd1=a119_0x4a888d,_0x2d9110=loadSqlProjectConfig(_0x29a8d9[_0xfffd1(0x76)]),_0x5a3b4e=await readSqlLockFile(_0x2d9110[_0xfffd1(0x84)]);if(!_0x5a3b4e)throw CliErrors['validation'](_0xfffd1(0x78));const {lockData:_0x5c3c48,appLock:_0x2b8a5c}=ensureSqlLockScope(_0x5a3b4e,_0x29a8d9[_0xfffd1(0x76)],_0x2d9110[_0xfffd1(0x75)],'delete'),_0x59592e=_0x29a8d9[_0xfffd1(0x83)](_0xfffd1(0x7e)),_0x3b1f4f=_0x2b8a5c[_0xfffd1(0x95)][_0x59592e];if(!_0x3b1f4f)throw CliErrors[_0xfffd1(0x89)](_0xfffd1(0x7a)+_0x59592e+'\x22.');await deleteSqlQuery({'id':_0x3b1f4f[_0xfffd1(0x8b)],'sqlCode':_0x59592e}),_0x2b8a5c['sqls']=Object[_0xfffd1(0x99)](Object[_0xfffd1(0x8e)](_0x2b8a5c[_0xfffd1(0x95)])[_0xfffd1(0x82)](([_0x5ed170])=>_0x5ed170!==_0x59592e)),_0x2b8a5c[_0xfffd1(0x87)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2d9110[_0xfffd1(0x84)],_0x5c3c48);const _0x37a165=resolveLocalSqlFilePath(_0x2d9110,_0x59592e,_0x3b1f4f);let _0x225241;await fileExists(_0x37a165)&&(_0x225241=await moveToTrash(_0x2d9110[_0xfffd1(0x81)],_0x2d9110[_0xfffd1(0x91)],_0x37a165),await cleanupEmptyDirectories(dirname(_0x37a165),_0x2d9110['sqlRootDir']));const _0x46f424={'deleted':_0x59592e,'remoteId':_0x3b1f4f[_0xfffd1(0x8b)]};if(_0x225241)_0x46f424[_0xfffd1(0x98)]=_0x225241;return{'ok':!![],'data':_0x46f424,'message':_0xfffd1(0x93)+_0x59592e+(_0x225241?_0xfffd1(0x97):'')};}};async function moveToTrash(_0x241102,_0x1464ea,_0x54b7dc){const _0x4dc7f1=a119_0x4a888d,_0x48aecb=new Date()[_0x4dc7f1(0x8f)]()[_0x4dc7f1(0x85)](/[:.]/g,'-'),_0xf141a0=relative(_0x241102,_0x54b7dc),_0x4c7bb3=join(_0x1464ea,_0x48aecb,_0xf141a0);return await mkdir(dirname(_0x4c7bb3),{'recursive':!![]}),await rename(_0x54b7dc,_0x4c7bb3),_0x4c7bb3;}async function cleanupEmptyDirectories(_0x2c43b2,_0x4467c9){const _0x217ce4=a119_0x4a888d;let _0x168b2e=resolve(_0x2c43b2);const _0x4963dc=resolve(_0x4467c9);while(_0x168b2e[_0x217ce4(0x79)](''+_0x4963dc+sep)||_0x168b2e===_0x4963dc){if(_0x168b2e===_0x4963dc)return;try{const _0x36d7b2=await readdir(_0x168b2e);if(_0x36d7b2['length']>0x0)return;await rmdir(_0x168b2e);}catch{return;}_0x168b2e=dirname(_0x168b2e);}}
1
+ const a120_0x19a0e7=a120_0x2284;(function(_0x51b950,_0x3058bf){const _0x31b7c7=a120_0x2284,_0xfe368d=_0x51b950();while(!![]){try{const _0x5739b2=-parseInt(_0x31b7c7(0x184))/0x1*(parseInt(_0x31b7c7(0x185))/0x2)+parseInt(_0x31b7c7(0x197))/0x3+parseInt(_0x31b7c7(0x19b))/0x4+-parseInt(_0x31b7c7(0x186))/0x5+-parseInt(_0x31b7c7(0x180))/0x6*(-parseInt(_0x31b7c7(0x196))/0x7)+-parseInt(_0x31b7c7(0x198))/0x8+parseInt(_0x31b7c7(0x18c))/0x9*(parseInt(_0x31b7c7(0x1a2))/0xa);if(_0x5739b2===_0x3058bf)break;else _0xfe368d['push'](_0xfe368d['shift']());}catch(_0x71bbb6){_0xfe368d['push'](_0xfe368d['shift']());}}}(a120_0x2207,0x40572));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';function a120_0x2284(_0x30e2e6,_0x131fee){_0x30e2e6=_0x30e2e6-0x180;const _0x22075e=a120_0x2207();let _0x22840b=_0x22075e[_0x30e2e6];return _0x22840b;}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':a120_0x19a0e7(0x191),'command':'delete','description':a120_0x19a0e7(0x199),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x313541){const _0x3bed46=a120_0x19a0e7,_0x211678=loadSqlProjectConfig(_0x313541['appCode']),_0x230360=await readSqlLockFile(_0x211678[_0x3bed46(0x18d)]);if(!_0x230360)throw CliErrors[_0x3bed46(0x190)](_0x3bed46(0x182));},async 'dryRun'(_0x177d5e){const _0x420efc=a120_0x19a0e7,_0x41e01c=loadSqlProjectConfig(_0x177d5e['appCode']),_0x23249c=await readSqlLockFile(_0x41e01c[_0x420efc(0x18d)]);if(!_0x23249c)throw CliErrors[_0x420efc(0x190)](_0x420efc(0x182));const {appLock:_0x1bf5d1}=ensureSqlLockScope(_0x23249c,_0x177d5e[_0x420efc(0x19e)],_0x41e01c['sqlRoot'],_0x420efc(0x193)),_0xfdcee2=_0x177d5e[_0x420efc(0x19d)](_0x420efc(0x19a)),_0x7ebdc5=_0x1bf5d1[_0x420efc(0x1a0)][_0xfdcee2];if(!_0x7ebdc5)throw CliErrors[_0x420efc(0x190)](_0x420efc(0x189)+_0xfdcee2+'\x22.');return{'method':_0x420efc(0x183),'url':_0x420efc(0x19c),'body':{'sqlCode':_0xfdcee2,'id':_0x7ebdc5[_0x420efc(0x195)],'localPath':resolveLocalSqlFilePath(_0x41e01c,_0xfdcee2,_0x7ebdc5)},'description':_0x420efc(0x18a)+_0xfdcee2+_0x420efc(0x18b)+_0x41e01c['trashDir']};},async 'execute'(_0x3601dd){const _0x41da51=a120_0x19a0e7,_0x20d1b7=loadSqlProjectConfig(_0x3601dd[_0x41da51(0x19e)]),_0x6f92c1=await readSqlLockFile(_0x20d1b7['lockFilePath']);if(!_0x6f92c1)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x1bd114,appLock:_0x4bfd61}=ensureSqlLockScope(_0x6f92c1,_0x3601dd[_0x41da51(0x19e)],_0x20d1b7[_0x41da51(0x18e)],'delete'),_0x442400=_0x3601dd['str'](_0x41da51(0x19a)),_0x32332c=_0x4bfd61['sqls'][_0x442400];if(!_0x32332c)throw CliErrors[_0x41da51(0x190)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x442400+'\x22.');await deleteSqlQuery({'id':_0x32332c[_0x41da51(0x195)],'sqlCode':_0x442400}),_0x4bfd61[_0x41da51(0x1a0)]=Object[_0x41da51(0x181)](Object[_0x41da51(0x19f)](_0x4bfd61['sqls'])['filter'](([_0x405bf3])=>_0x405bf3!==_0x442400)),_0x4bfd61['lastSync']=new Date()[_0x41da51(0x194)](),await writeSqlLockFile(_0x20d1b7[_0x41da51(0x18d)],_0x1bd114);const _0x2ae04e=resolveLocalSqlFilePath(_0x20d1b7,_0x442400,_0x32332c);let _0x3c0d8d;await fileExists(_0x2ae04e)&&(_0x3c0d8d=await moveToTrash(_0x20d1b7[_0x41da51(0x192)],_0x20d1b7['trashDir'],_0x2ae04e),await cleanupEmptyDirectories(dirname(_0x2ae04e),_0x20d1b7[_0x41da51(0x1a1)]));const _0x2ab655={'deleted':_0x442400,'remoteId':_0x32332c['remoteId']};if(_0x3c0d8d)_0x2ab655[_0x41da51(0x187)]=_0x3c0d8d;return{'ok':!![],'data':_0x2ab655,'message':_0x41da51(0x1a3)+_0x442400+(_0x3c0d8d?_0x41da51(0x188):'')};}};function a120_0x2207(){const _0x35002c=['1745928PCkTkF','/smartapi/custom/deleteUserCustomSql','str','appCode','entries','sqls','sqlRootDir','450680cTiBHt','Deleted\x20','284574wTWbts','fromEntries','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','POST','5ZogJti','188332rUXSpC','1967065tMAESr','trashedTo','\x20(local\x20file\x20moved\x20to\x20trash)','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','Would\x20delete\x20SQL\x20','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','18FyHYEw','lockFilePath','sqlRoot','startsWith','validation','sql','projectRoot','delete','toISOString','remoteId','42ppzLlC','1083630YrRUJs','356968NjHyiG','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','sqlcode'];a120_0x2207=function(){return _0x35002c;};return a120_0x2207();}async function moveToTrash(_0x1af88c,_0x2ffcea,_0x422fe6){const _0x13082a=a120_0x19a0e7,_0xee80f2=new Date()[_0x13082a(0x194)]()['replace'](/[:.]/g,'-'),_0x2bd805=relative(_0x1af88c,_0x422fe6),_0x529bb0=join(_0x2ffcea,_0xee80f2,_0x2bd805);return await mkdir(dirname(_0x529bb0),{'recursive':!![]}),await rename(_0x422fe6,_0x529bb0),_0x529bb0;}async function cleanupEmptyDirectories(_0x589507,_0x579630){const _0x5c4d03=a120_0x19a0e7;let _0x3ca10c=resolve(_0x589507);const _0x31b796=resolve(_0x579630);while(_0x3ca10c[_0x5c4d03(0x18f)](''+_0x31b796+sep)||_0x3ca10c===_0x31b796){if(_0x3ca10c===_0x31b796)return;try{const _0x3c9956=await readdir(_0x3ca10c);if(_0x3c9956['length']>0x0)return;await rmdir(_0x3ca10c);}catch{return;}_0x3ca10c=dirname(_0x3ca10c);}}
@@ -1 +1 @@
1
- const a120_0xc4f94b=a120_0x1253;(function(_0x5e3d01,_0x185c7b){const _0x4bea2a=a120_0x1253,_0x2fdeb9=_0x5e3d01();while(!![]){try{const _0x5cbd00=parseInt(_0x4bea2a(0x118))/0x1+-parseInt(_0x4bea2a(0x11a))/0x2+parseInt(_0x4bea2a(0x122))/0x3+parseInt(_0x4bea2a(0x120))/0x4*(parseInt(_0x4bea2a(0x11d))/0x5)+parseInt(_0x4bea2a(0x121))/0x6*(parseInt(_0x4bea2a(0x116))/0x7)+parseInt(_0x4bea2a(0x115))/0x8*(-parseInt(_0x4bea2a(0x11b))/0x9)+-parseInt(_0x4bea2a(0x11c))/0xa*(parseInt(_0x4bea2a(0x11f))/0xb);if(_0x5cbd00===_0x185c7b)break;else _0x2fdeb9['push'](_0x2fdeb9['shift']());}catch(_0x5e5ff2){_0x2fdeb9['push'](_0x2fdeb9['shift']());}}}(a120_0x51b5,0x53736));import{getSqlQueryInfo}from'../../core/api-client.js';function a120_0x1253(_0x1a3705,_0x13a512){_0x1a3705=_0x1a3705-0x10e;const _0x51b5f6=a120_0x51b5();let _0x1253ae=_0x51b5f6[_0x1a3705];return _0x1253ae;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a120_0x51b5(){const _0x157a1b=['150flwKXd','10SqCbEZ','sqlCode','549923vlondp','669076vyxUeY','895614RFtOYZ','1135206KxnxRZ','sql','sqlcode','sqlContent','appCode','verbose','bool','sqlName','boolean','detail','8ZBdYlq','28mRIijt','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','334764kLTVCH','dbId','771356CvpmxM','1506537DCiPby'];a120_0x51b5=function(){return _0x157a1b;};return a120_0x51b5();}export const sqlDetail={'service':a120_0xc4f94b(0x123),'command':a120_0xc4f94b(0x114),'description':a120_0xc4f94b(0x117),'risk':'read','flags':[SQLCODE_FLAG,{'name':a120_0xc4f94b(0x110),'type':a120_0xc4f94b(0x113),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x13fd0b){const _0x20e3b7=a120_0xc4f94b,_0x4f9af7=await getSqlQueryInfo(_0x13fd0b['appCode'],_0x13fd0b['str'](_0x20e3b7(0x124))),_0x5e78a3=_0x13fd0b[_0x20e3b7(0x111)]('verbose');if(_0x5e78a3)return{'ok':!![],'data':_0x4f9af7};const _0x3e642a=_0x4f9af7[_0x20e3b7(0x119)]?await getDbName(_0x13fd0b[_0x20e3b7(0x10f)],_0x4f9af7[_0x20e3b7(0x119)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x4f9af7[_0x20e3b7(0x11e)],'sqlName':_0x4f9af7[_0x20e3b7(0x112)],'db':_0x3e642a?_0x3e642a+'\x20('+_0x4f9af7['dbId']+')':_0x4f9af7['dbId']??'','description':_0x4f9af7['description']??'','sqlContent':_0x4f9af7[_0x20e3b7(0x10e)]??''}};}};
1
+ function a121_0x18a4(){const _0x313e10=['37539UgbLdC','sqlName','detail','36UPMUjy','read','3364900vBPCUS','appCode','sqlCode','664onRHpd','4675eBnumy','1252gGCogd','verbose','3AmImLW','11026730PajVVE','85988NVYUqV','sqlcode','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','724622wFTMqT','dbId','246835eAzczg','Return\x20full\x20raw\x20SQL\x20query\x20object','str'];a121_0x18a4=function(){return _0x313e10;};return a121_0x18a4();}function a121_0x2a96(_0x4f90cd,_0x48c267){_0x4f90cd=_0x4f90cd-0xd7;const _0x18a49a=a121_0x18a4();let _0x2a96c8=_0x18a49a[_0x4f90cd];return _0x2a96c8;}const a121_0x40ef3b=a121_0x2a96;(function(_0x47360e,_0x2a27cd){const _0x2fac39=a121_0x2a96,_0x310463=_0x47360e();while(!![]){try{const _0x4a6135=-parseInt(_0x2fac39(0xe8))/0x1+-parseInt(_0x2fac39(0xe6))/0x2*(parseInt(_0x2fac39(0xe1))/0x3)+parseInt(_0x2fac39(0xdf))/0x4*(-parseInt(_0x2fac39(0xde))/0x5)+parseInt(_0x2fac39(0xd8))/0x6*(parseInt(_0x2fac39(0xe3))/0x7)+-parseInt(_0x2fac39(0xdd))/0x8*(-parseInt(_0x2fac39(0xeb))/0x9)+-parseInt(_0x2fac39(0xda))/0xa+parseInt(_0x2fac39(0xe2))/0xb;if(_0x4a6135===_0x2a27cd)break;else _0x310463['push'](_0x310463['shift']());}catch(_0x3d814d){_0x310463['push'](_0x310463['shift']());}}}(a121_0x18a4,0x2cee4));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':a121_0x40ef3b(0xd7),'description':a121_0x40ef3b(0xe5),'risk':a121_0x40ef3b(0xd9),'flags':[SQLCODE_FLAG,{'name':a121_0x40ef3b(0xe0),'type':'boolean','description':a121_0x40ef3b(0xe9)}],async 'execute'(_0x58807a){const _0x29f8f7=a121_0x40ef3b,_0x2c8381=await getSqlQueryInfo(_0x58807a[_0x29f8f7(0xdb)],_0x58807a[_0x29f8f7(0xea)](_0x29f8f7(0xe4))),_0x95306a=_0x58807a['bool'](_0x29f8f7(0xe0));if(_0x95306a)return{'ok':!![],'data':_0x2c8381};const _0x120ebf=_0x2c8381[_0x29f8f7(0xe7)]?await getDbName(_0x58807a['appCode'],_0x2c8381[_0x29f8f7(0xe7)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x2c8381[_0x29f8f7(0xdc)],'sqlName':_0x2c8381[_0x29f8f7(0xec)],'db':_0x120ebf?_0x120ebf+'\x20('+_0x2c8381[_0x29f8f7(0xe7)]+')':_0x2c8381[_0x29f8f7(0xe7)]??'','description':_0x2c8381['description']??'','sqlContent':_0x2c8381['sqlContent']??''}};}};
@@ -1 +1 @@
1
- const a121_0x22e7d6=a121_0x1cc0;(function(_0x54201a,_0x25d6ab){const _0x2e6b91=a121_0x1cc0,_0x155dbf=_0x54201a();while(!![]){try{const _0x2e6cf5=-parseInt(_0x2e6b91(0x1d6))/0x1*(parseInt(_0x2e6b91(0x1cc))/0x2)+-parseInt(_0x2e6b91(0x1c6))/0x3+-parseInt(_0x2e6b91(0x1c8))/0x4+-parseInt(_0x2e6b91(0x1c1))/0x5+-parseInt(_0x2e6b91(0x1cb))/0x6*(parseInt(_0x2e6b91(0x1c3))/0x7)+parseInt(_0x2e6b91(0x1d5))/0x8*(-parseInt(_0x2e6b91(0x1d7))/0x9)+-parseInt(_0x2e6b91(0x1bf))/0xa*(-parseInt(_0x2e6b91(0x1c5))/0xb);if(_0x2e6cf5===_0x25d6ab)break;else _0x155dbf['push'](_0x155dbf['shift']());}catch(_0x40aef5){_0x155dbf['push'](_0x155dbf['shift']());}}}(a121_0x1ab1,0xe8179));function a121_0x1cc0(_0xff74de,_0x2d964f){_0xff74de=_0xff74de-0x1bf;const _0x1ab19a=a121_0x1ab1();let _0x1cc09f=_0x1ab19a[_0xff74de];return _0x1cc09f;}import{executeSql}from'../../core/api-client.js';function a121_0x1ab1(){const _0x514aff=['280260yAHRDJ','isArray','6382229uQxjCT','execResult','11GEvFUE','5191344KZfYdt','execSuccess','3543344ILhXXR','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','exec','6qCtPWW','1979540GOMMxu','Returned\x20','SQL\x20execution\x20failed','params','appCode','\x20row(s)\x20in\x20','sql','now','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','136xEVbxf','1txnfCX','502155MdXzkG','str','sqlcode','execError','64730170KgCLRF','length'];a121_0x1ab1=function(){return _0x514aff;};return a121_0x1ab1();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a121_0x22e7d6(0x1d2),'command':a121_0x22e7d6(0x1ca),'description':a121_0x22e7d6(0x1c9),'risk':'read','flags':[SQLCODE_FLAG,{'name':a121_0x22e7d6(0x1cf),'type':'string','description':a121_0x22e7d6(0x1d4)}],async 'execute'(_0x585923){const _0x3bc946=a121_0x22e7d6,_0x1cb810=parseJsonParams(_0x585923[_0x3bc946(0x1d8)](_0x3bc946(0x1cf))),_0x43ea8a=Date[_0x3bc946(0x1d3)](),_0x1e2068=await executeSql(_0x585923[_0x3bc946(0x1d0)],_0x585923[_0x3bc946(0x1d8)](_0x3bc946(0x1d9)),_0x1cb810),_0x36dd27=Date[_0x3bc946(0x1d3)]()-_0x43ea8a,_0x51ca42=_0x1e2068?.[_0x3bc946(0x1c4)]??_0x1e2068,_0x4e429e=_0x1e2068?.[_0x3bc946(0x1c7)]??!![];if(!_0x4e429e)return{'ok':![],'data':{'error':_0x1e2068?.[_0x3bc946(0x1da)]||_0x3bc946(0x1ce),'elapsed':_0x36dd27},'message':_0x3bc946(0x1ce)};const _0x20c29b=Array[_0x3bc946(0x1c2)](_0x51ca42)?_0x51ca42:[];return{'ok':!![],'data':{'rows':_0x20c29b,'rowCount':_0x20c29b[_0x3bc946(0x1c0)],'elapsed':_0x36dd27},'message':_0x3bc946(0x1cd)+_0x20c29b[_0x3bc946(0x1c0)]+_0x3bc946(0x1d1)+_0x36dd27+'ms'};}};
1
+ const a122_0x4a5c57=a122_0x937e;function a122_0x5a5d(){const _0x626946=['284410ieqrIf','267211TVRYBH','24qWzCBh','\x20row(s)\x20in\x20','execResult','read','execSuccess','string','length','appCode','isArray','SQL\x20execution\x20failed','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','362295Qbswvh','798184DmkKIk','str','sqlcode','84117MRvgNu','exec','36coksmT','Returned\x20','156430FZmLwn','params','22uvkcgr','now','4677exKRmr','352JHqhZM'];a122_0x5a5d=function(){return _0x626946;};return a122_0x5a5d();}(function(_0x5e5c9b,_0x1337a5){const _0x5162f8=a122_0x937e,_0x3a4ee9=_0x5e5c9b();while(!![]){try{const _0x2b5208=parseInt(_0x5162f8(0xd5))/0x1+parseInt(_0x5162f8(0xd3))/0x2*(-parseInt(_0x5162f8(0xcd))/0x3)+-parseInt(_0x5162f8(0xca))/0x4+parseInt(_0x5162f8(0xd7))/0x5+-parseInt(_0x5162f8(0xcf))/0x6*(-parseInt(_0x5162f8(0xd8))/0x7)+parseInt(_0x5162f8(0xd9))/0x8*(-parseInt(_0x5162f8(0xc9))/0x9)+-parseInt(_0x5162f8(0xd1))/0xa*(-parseInt(_0x5162f8(0xd6))/0xb);if(_0x2b5208===_0x1337a5)break;else _0x3a4ee9['push'](_0x3a4ee9['shift']());}catch(_0x5208c2){_0x3a4ee9['push'](_0x3a4ee9['shift']());}}}(a122_0x5a5d,0x27a81));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a122_0x937e(_0x55a5ba,_0x74e4f6){_0x55a5ba=_0x55a5ba-0xc7;const _0x5a5d44=a122_0x5a5d();let _0x937e1a=_0x5a5d44[_0x55a5ba];return _0x937e1a;}export const sqlExec={'service':'sql','command':a122_0x4a5c57(0xce),'description':a122_0x4a5c57(0xc7),'risk':a122_0x4a5c57(0xdc),'flags':[SQLCODE_FLAG,{'name':'params','type':a122_0x4a5c57(0xde),'description':a122_0x4a5c57(0xc8)}],async 'execute'(_0x333130){const _0x3a0ea6=a122_0x4a5c57,_0x356e6b=parseJsonParams(_0x333130[_0x3a0ea6(0xcb)](_0x3a0ea6(0xd2))),_0x51543c=Date[_0x3a0ea6(0xd4)](),_0x494f04=await executeSql(_0x333130[_0x3a0ea6(0xe0)],_0x333130[_0x3a0ea6(0xcb)](_0x3a0ea6(0xcc)),_0x356e6b),_0x29fdc9=Date['now']()-_0x51543c,_0x268716=_0x494f04?.[_0x3a0ea6(0xdb)]??_0x494f04,_0x303dca=_0x494f04?.[_0x3a0ea6(0xdd)]??!![];if(!_0x303dca)return{'ok':![],'data':{'error':_0x494f04?.['execError']||'SQL\x20execution\x20failed','elapsed':_0x29fdc9},'message':_0x3a0ea6(0xe2)};const _0x547dff=Array[_0x3a0ea6(0xe1)](_0x268716)?_0x268716:[];return{'ok':!![],'data':{'rows':_0x547dff,'rowCount':_0x547dff[_0x3a0ea6(0xdf)],'elapsed':_0x29fdc9},'message':_0x3a0ea6(0xd0)+_0x547dff['length']+_0x3a0ea6(0xda)+_0x29fdc9+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x4fd616,_0x3590e1){const _0x295312=a122_0x3110,_0x1750bf=_0x4fd616();while(!![]){try{const _0x19b471=-parseInt(_0x295312(0x15e))/0x1*(parseInt(_0x295312(0x158))/0x2)+parseInt(_0x295312(0x15a))/0x3+parseInt(_0x295312(0x15d))/0x4*(parseInt(_0x295312(0x15c))/0x5)+parseInt(_0x295312(0x162))/0x6*(parseInt(_0x295312(0x161))/0x7)+parseInt(_0x295312(0x159))/0x8+-parseInt(_0x295312(0x160))/0x9*(parseInt(_0x295312(0x163))/0xa)+parseInt(_0x295312(0x15f))/0xb*(-parseInt(_0x295312(0x15b))/0xc);if(_0x19b471===_0x3590e1)break;else _0x1750bf['push'](_0x1750bf['shift']());}catch(_0x2e04cf){_0x1750bf['push'](_0x1750bf['shift']());}}}(a122_0x2bc2,0xec61c));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';function a122_0x2bc2(){const _0x221ada=['7697216uUbphF','1422183hDTeMr','461340DLiWQZ','9810CUOFXY','2564pVzvIf','1IFjzTL','363viKjBn','531IpkQKE','126bQvDrf','433860pEHBvc','179010AxmDWK','1404742FaXkjg'];a122_0x2bc2=function(){return _0x221ada;};return a122_0x2bc2();}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a122_0x3110(_0x3dd9f0,_0x4a36fc){_0x3dd9f0=_0x3dd9f0-0x158;const _0x2bc21b=a122_0x2bc2();let _0x311082=_0x2bc21b[_0x3dd9f0];return _0x311082;}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x2985eb,_0x5e84e7){const _0x251023=a123_0x2a1e,_0x2263a9=_0x2985eb();while(!![]){try{const _0x5a3638=-parseInt(_0x251023(0x1b0))/0x1+parseInt(_0x251023(0x1b3))/0x2+parseInt(_0x251023(0x1af))/0x3+parseInt(_0x251023(0x1ae))/0x4*(parseInt(_0x251023(0x1b5))/0x5)+-parseInt(_0x251023(0x1b4))/0x6*(-parseInt(_0x251023(0x1b8))/0x7)+parseInt(_0x251023(0x1b2))/0x8*(parseInt(_0x251023(0x1b7))/0x9)+parseInt(_0x251023(0x1b6))/0xa*(-parseInt(_0x251023(0x1b1))/0xb);if(_0x5a3638===_0x5e84e7)break;else _0x2263a9['push'](_0x2263a9['shift']());}catch(_0x2a5958){_0x2263a9['push'](_0x2263a9['shift']());}}}(a123_0x2556,0x957b7));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a123_0x2a1e(_0x52955b,_0x1f930f){_0x52955b=_0x52955b-0x1ae;const _0x255622=a123_0x2556();let _0x2a1e43=_0x255622[_0x52955b];return _0x2a1e43;}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 a123_0x2556(){const _0x316c8d=['1027545ttijTB','20vxvSzI','2169JUtsad','448kOveuP','12ThpmFV','2793543uisGic','493037XjDTvi','8833913PSanTb','10664SMZaVd','921650aNLTGN','35784lhaNFO'];a123_0x2556=function(){return _0x316c8d;};return a123_0x2556();}export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- function a123_0x1378(_0x56ff44,_0x5a0647){_0x56ff44=_0x56ff44-0x9c;const _0x3c3256=a123_0x3c32();let _0x1378ac=_0x3c3256[_0x56ff44];return _0x1378ac;}const a123_0x531ecd=a123_0x1378;(function(_0x1cfa56,_0x21d28d){const _0x5e802d=a123_0x1378,_0x359b0a=_0x1cfa56();while(!![]){try{const _0x239be9=-parseInt(_0x5e802d(0xb5))/0x1+-parseInt(_0x5e802d(0xb0))/0x2+parseInt(_0x5e802d(0xb8))/0x3*(-parseInt(_0x5e802d(0xad))/0x4)+parseInt(_0x5e802d(0xae))/0x5+-parseInt(_0x5e802d(0xa6))/0x6+parseInt(_0x5e802d(0xb3))/0x7*(parseInt(_0x5e802d(0xbe))/0x8)+-parseInt(_0x5e802d(0xa0))/0x9*(-parseInt(_0x5e802d(0xa3))/0xa);if(_0x239be9===_0x21d28d)break;else _0x359b0a['push'](_0x359b0a['shift']());}catch(_0x3ce6a2){_0x359b0a['push'](_0x359b0a['shift']());}}}(a123_0x3c32,0xbea17));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':a123_0x531ecd(0x9e),'command':a123_0x531ecd(0xc0),'description':a123_0x531ecd(0xa4),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a123_0x531ecd(0xaa),'type':a123_0x531ecd(0x9d),'description':a123_0x531ecd(0xb6)},{'name':'page','type':a123_0x531ecd(0xa1),'description':a123_0x531ecd(0x9c),'default':0x1},{'name':'pagesize','type':a123_0x531ecd(0xa1),'description':a123_0x531ecd(0xa7)},{'name':a123_0x531ecd(0x9f),'type':a123_0x531ecd(0xa5),'description':a123_0x531ecd(0xa8)}],async 'execute'(_0x452724){const _0x47b828=a123_0x531ecd,_0x480c93=await listSqlQueries(_0x452724[_0x47b828(0xbf)],{'sqlCode':_0x452724[_0x47b828(0xbc)](_0x47b828(0xb7))||undefined,'sqlName':_0x452724[_0x47b828(0xbc)](_0x47b828(0xaa))||undefined,'currentPage':_0x452724[_0x47b828(0xa2)]('page'),'pageSize':_0x452724[_0x47b828(0xa2)](_0x47b828(0xac),0x32)}),_0x9a9fb=_0x452724[_0x47b828(0xb2)](_0x47b828(0x9f)),_0x50a08a=_0x480c93[_0x47b828(0xb1)]??[],_0x346ea2=_0x480c93['paging']?.[_0x47b828(0xbd)]??_0x50a08a[_0x47b828(0xb9)];let _0x4da8dc;return _0x9a9fb?_0x4da8dc=_0x50a08a:_0x4da8dc=await Promise[_0x47b828(0xb4)](_0x50a08a[_0x47b828(0xaf)](async _0x36307b=>{const _0x40a594=_0x47b828;let _0x21edcb;try{_0x21edcb=_0x36307b['dbId']?await getDbName(_0x452724['appCode'],_0x36307b[_0x40a594(0xba)]):undefined;}catch{}return{'sqlCode':_0x36307b[_0x40a594(0xab)],'sqlName':_0x36307b[_0x40a594(0xbb)],'description':_0x36307b[_0x40a594(0xa9)]??'','db':_0x21edcb?_0x21edcb+'\x20('+_0x36307b[_0x40a594(0xba)]+')':_0x36307b[_0x40a594(0xba)]??''};})),{'ok':!![],'data':_0x4da8dc,'message':_0x50a08a[_0x47b828(0xb9)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':'Found\x20'+_0x50a08a[_0x47b828(0xb9)]+'\x20SQL\x20queries\x20(total:\x20'+_0x346ea2+').'};}};function a123_0x3c32(){const _0x2cca6f=['376292UizPAJ','tableData','bool','7863114Wtbptj','all','310632EliGkw','Filter\x20by\x20SQL\x20name','sqlcode','142323renshq','length','dbId','sqlName','str','totalCount','8wSWqWF','appCode','list','Page\x20number','string','sql','verbose','119997XwIHDe','number','num','940rTfftb','List\x20custom\x20SQL\x20queries','boolean','3628704lpIPSz','Page\x20size','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','description','name','sqlCode','pagesize','84RKkSrT','2520210GwBCzA','map'];a123_0x3c32=function(){return _0x2cca6f;};return a123_0x3c32();}
1
+ const a124_0x3848e1=a124_0x5a64;(function(_0x359524,_0x21656b){const _0x18f0e0=a124_0x5a64,_0x1047b1=_0x359524();while(!![]){try{const _0x19dade=parseInt(_0x18f0e0(0x99))/0x1*(-parseInt(_0x18f0e0(0xb7))/0x2)+-parseInt(_0x18f0e0(0xa8))/0x3+-parseInt(_0x18f0e0(0xab))/0x4*(parseInt(_0x18f0e0(0xaa))/0x5)+parseInt(_0x18f0e0(0xaf))/0x6+-parseInt(_0x18f0e0(0xb6))/0x7*(parseInt(_0x18f0e0(0xb8))/0x8)+parseInt(_0x18f0e0(0xb3))/0x9+parseInt(_0x18f0e0(0x9a))/0xa;if(_0x19dade===_0x21656b)break;else _0x1047b1['push'](_0x1047b1['shift']());}catch(_0x4fc545){_0x1047b1['push'](_0x1047b1['shift']());}}}(a124_0x1fb7,0xbf63a));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a124_0x5a64(_0x61bb2e,_0x55b7a9){_0x61bb2e=_0x61bb2e-0x98;const _0x1fb795=a124_0x1fb7();let _0x5a648a=_0x1fb795[_0x61bb2e];return _0x5a648a;}function a124_0x1fb7(){const _0x36c4ce=['sqlName','pagesize','sqlCode','paging','bool','3682218wEhoRq','str','85hFRYoL','53524vkohfh','length','name','page','4112526JQwuqf','verbose','Filter\x20by\x20SQL\x20name','boolean','3635784KDzMTY','num','Page\x20number','7rbPphp','14hvvYIF','6677304lOqqjE','Found\x20','number','145335ssxxCG','30014240kLbXXK','map','dbId','\x20SQL\x20queries\x20(total:\x20','No\x20custom\x20SQL\x20queries\x20found.','appCode','sqlcode','Page\x20size','list'];a124_0x1fb7=function(){return _0x36c4ce;};return a124_0x1fb7();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a124_0x3848e1(0xa2),'description':'List\x20custom\x20SQL\x20queries','risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a124_0x3848e1(0xb1)},{'name':a124_0x3848e1(0xae),'type':a124_0x3848e1(0x98),'description':a124_0x3848e1(0xb5),'default':0x1},{'name':a124_0x3848e1(0xa4),'type':a124_0x3848e1(0x98),'description':a124_0x3848e1(0xa1)},{'name':'verbose','type':a124_0x3848e1(0xb2),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x1b98be){const _0x349ccb=a124_0x3848e1,_0x2cd730=await listSqlQueries(_0x1b98be[_0x349ccb(0x9f)],{'sqlCode':_0x1b98be['str'](_0x349ccb(0xa0))||undefined,'sqlName':_0x1b98be[_0x349ccb(0xa9)](_0x349ccb(0xad))||undefined,'currentPage':_0x1b98be[_0x349ccb(0xb4)](_0x349ccb(0xae)),'pageSize':_0x1b98be[_0x349ccb(0xb4)](_0x349ccb(0xa4),0x32)}),_0x3f3fb4=_0x1b98be[_0x349ccb(0xa7)](_0x349ccb(0xb0)),_0x51f23a=_0x2cd730['tableData']??[],_0x2b0322=_0x2cd730[_0x349ccb(0xa6)]?.['totalCount']??_0x51f23a['length'];let _0x16a92a;return _0x3f3fb4?_0x16a92a=_0x51f23a:_0x16a92a=await Promise['all'](_0x51f23a[_0x349ccb(0x9b)](async _0x29babd=>{const _0x48aef1=_0x349ccb;let _0x3fd921;try{_0x3fd921=_0x29babd[_0x48aef1(0x9c)]?await getDbName(_0x1b98be[_0x48aef1(0x9f)],_0x29babd[_0x48aef1(0x9c)]):undefined;}catch{}return{'sqlCode':_0x29babd[_0x48aef1(0xa5)],'sqlName':_0x29babd[_0x48aef1(0xa3)],'description':_0x29babd['description']??'','db':_0x3fd921?_0x3fd921+'\x20('+_0x29babd[_0x48aef1(0x9c)]+')':_0x29babd[_0x48aef1(0x9c)]??''};})),{'ok':!![],'data':_0x16a92a,'message':_0x51f23a[_0x349ccb(0xac)]===0x0?_0x349ccb(0x9e):_0x349ccb(0xb9)+_0x51f23a[_0x349ccb(0xac)]+_0x349ccb(0x9d)+_0x2b0322+').'};}};
@@ -1 +1 @@
1
- const a124_0x18ba4d=a124_0x2d92;(function(_0xa6ab9c,_0x2996b2){const _0x30d76b=a124_0x2d92,_0x3bb7c1=_0xa6ab9c();while(!![]){try{const _0x15c8fb=parseInt(_0x30d76b(0x177))/0x1+parseInt(_0x30d76b(0x165))/0x2+-parseInt(_0x30d76b(0x172))/0x3+parseInt(_0x30d76b(0x180))/0x4*(-parseInt(_0x30d76b(0x164))/0x5)+-parseInt(_0x30d76b(0x178))/0x6*(parseInt(_0x30d76b(0x155))/0x7)+-parseInt(_0x30d76b(0x174))/0x8+parseInt(_0x30d76b(0x170))/0x9;if(_0x15c8fb===_0x2996b2)break;else _0x3bb7c1['push'](_0x3bb7c1['shift']());}catch(_0x44d14d){_0x3bb7c1['push'](_0x3bb7c1['shift']());}}}(a124_0x4cb2,0xda636));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a124_0x2d92(_0x30811b,_0x15b216){_0x30811b=_0x30811b-0x153;const _0x4cb2f2=a124_0x4cb2();let _0x2d9240=_0x4cb2f2[_0x30811b];return _0x2d9240;}import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x3842bd,_0x4ecd7d){const _0x17df03=a124_0x2d92,_0x1c7e01=[];let _0x2a300e=0x1;while(!![]){const _0x4de75e=await listSqlQueries(_0x3842bd,{'currentPage':_0x2a300e,'pageSize':PAGE_SIZE,'sqlCode':_0x4ecd7d[_0x17df03(0x182)],'sqlName':_0x4ecd7d['sqlName']}),_0x4ca2db=_0x4de75e[_0x17df03(0x168)]??[];_0x1c7e01[_0x17df03(0x16b)](..._0x4ca2db);if(_0x4ca2db[_0x17df03(0x159)]===0x0)break;const _0xbee75=_0x4de75e[_0x17df03(0x17c)]?.[_0x17df03(0x160)];if(_0xbee75!=null?_0x1c7e01[_0x17df03(0x159)]>=_0xbee75:_0x4ca2db[_0x17df03(0x159)]<PAGE_SIZE)break;_0x2a300e++;}return _0x1c7e01;}async function ensureSqlContent(_0x42e9d5){const _0x44de43=a124_0x2d92;if(_0x42e9d5[_0x44de43(0x17d)]!=null&&String(_0x42e9d5[_0x44de43(0x17d)])[_0x44de43(0x159)]>0x0)return _0x42e9d5;return getSqlQueryDetail(_0x42e9d5['sqlCode']);}export const sqlPull={'service':'sql','command':a124_0x18ba4d(0x15e),'description':a124_0x18ba4d(0x16c),'risk':a124_0x18ba4d(0x18a),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a124_0x18ba4d(0x156),'type':'string','description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':'force','type':a124_0x18ba4d(0x154),'description':a124_0x18ba4d(0x162)}],async 'dryRun'(_0x5d6f1b){const _0x1bdc0d=a124_0x18ba4d,_0x5eb7e5=loadSqlProjectConfig(_0x5d6f1b[_0x1bdc0d(0x166)]),_0xbb5e8f=await readSqlLockFile(_0x5eb7e5['lockFilePath']),{appLock:_0x3bb5e6}=ensureSqlLockScope(_0xbb5e8f??createEmptySqlLock(),_0x5eb7e5[_0x1bdc0d(0x166)],_0x5eb7e5[_0x1bdc0d(0x16d)],_0x1bdc0d(0x15e)),_0x260da7=await fetchAllSqlQueries(_0x5d6f1b['appCode'],{'sqlCode':_0x5d6f1b[_0x1bdc0d(0x167)](_0x1bdc0d(0x15a))||undefined,'sqlName':_0x5d6f1b['str'](_0x1bdc0d(0x156))||undefined}),_0x268115=[];for(const _0xf5e9be of _0x260da7){const _0x4247bf=await ensureSqlContent(_0xf5e9be),_0x47e257=ensureRemoteSqlContent(_0x4247bf),_0x1c05b1=detectModeFromSql(_0x4247bf),_0x1069f1=_0x4247bf[_0x1bdc0d(0x186)]?await getDbName(_0x5d6f1b[_0x1bdc0d(0x166)],Number(_0x4247bf[_0x1bdc0d(0x186)]))[_0x1bdc0d(0x175)](()=>undefined):undefined,_0x4b076c=buildLocalSqlFileContent({'sqlCode':_0x4247bf[_0x1bdc0d(0x182)],'sqlName':_0x4247bf[_0x1bdc0d(0x188)],'dbId':_0x4247bf[_0x1bdc0d(0x186)]},_0x47e257,{'dbName':_0x1069f1,'mode':_0x1c05b1,'syncedAt':new Date()[_0x1bdc0d(0x179)](),'description':_0x4247bf[_0x1bdc0d(0x17e)]}),_0x439414=buildSqlLockEntry(_0x4247bf,_0x47e257,'',{'dbName':_0x1069f1}),_0x581064=resolveLocalSqlFilePath(_0x5eb7e5,_0x4247bf[_0x1bdc0d(0x182)],_0x439414);let _0x2bbab9=_0x1bdc0d(0x15d),_0x2a790d;if(await fileExists(_0x581064)){const _0x1165a3=await readFile(_0x581064,'utf8');isEquivalentPulledSqlFile(_0x1165a3,_0x4b076c,_0x1c05b1)?(_0x2bbab9=_0x1bdc0d(0x17f),_0x2a790d=_0x1bdc0d(0x161)):(_0x2bbab9='conflict',_0x2a790d='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x268115[_0x1bdc0d(0x16b)]({'sqlCode':_0x4247bf[_0x1bdc0d(0x182)],'sqlName':_0x4247bf[_0x1bdc0d(0x188)],'filePath':_0x581064,'status':_0x2bbab9,'reason':_0x2a790d});}return{'method':_0x1bdc0d(0x15f),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x5d6f1b[_0x1bdc0d(0x166)],'sqlCode':_0x5d6f1b[_0x1bdc0d(0x167)](_0x1bdc0d(0x15a))||null,'sqlName':_0x5d6f1b['str'](_0x1bdc0d(0x156))||null,'files':_0x268115},'description':_0x1bdc0d(0x171)+_0x268115[_0x1bdc0d(0x159)]+_0x1bdc0d(0x18c)+_0x5eb7e5[_0x1bdc0d(0x157)]};},async 'execute'(_0x570847){const _0x1e348f=a124_0x18ba4d,_0x5810b0=loadSqlProjectConfig(_0x570847[_0x1e348f(0x166)]),_0x6d194a=await readSqlLockFile(_0x5810b0['lockFilePath']),{lockData:_0x9e62d4,appLock:_0x65cea4}=ensureSqlLockScope(_0x6d194a??createEmptySqlLock(),_0x5810b0[_0x1e348f(0x166)],_0x5810b0['sqlRoot'],'pull'),_0x3b2b82=_0x570847['bool'](_0x1e348f(0x187)),_0x2b2391=await fetchAllSqlQueries(_0x570847[_0x1e348f(0x166)],{'sqlCode':_0x570847['str']('sqlcode')||undefined,'sqlName':_0x570847[_0x1e348f(0x167)](_0x1e348f(0x156))||undefined});if(_0x2b2391[_0x1e348f(0x159)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x44edbe=[],_0x7d0fef=[];for(const _0x281540 of _0x2b2391){try{_0x44edbe[_0x1e348f(0x16b)](await ensureSqlContent(_0x281540));}catch(_0x2c03b8){_0x7d0fef[_0x1e348f(0x16b)]({'sqlCode':_0x281540[_0x1e348f(0x182)],'error':_0x2c03b8 instanceof Error?_0x2c03b8['message']:String(_0x2c03b8)});}}if(_0x3b2b82&&!_0x570847['nonInteractive']){let _0x4eaad0=![];for(const _0x49759b of _0x44edbe){const _0x52ecd7=detectModeFromSql(_0x49759b),_0x260e95=_0x49759b[_0x1e348f(0x186)]?await getDbName(_0x570847[_0x1e348f(0x166)],Number(_0x49759b[_0x1e348f(0x186)]))[_0x1e348f(0x175)](()=>undefined):undefined,_0x2af4cf=buildLocalSqlFileContent({'sqlCode':_0x49759b[_0x1e348f(0x182)],'sqlName':_0x49759b[_0x1e348f(0x188)],'dbId':_0x49759b[_0x1e348f(0x186)]},ensureRemoteSqlContent(_0x49759b),{'dbName':_0x260e95,'mode':_0x52ecd7,'syncedAt':new Date()[_0x1e348f(0x179)](),'description':_0x49759b[_0x1e348f(0x17e)]}),_0x844fba=resolveLocalSqlFilePath(_0x5810b0,_0x49759b['sqlCode'],buildSqlLockEntry(_0x49759b,ensureRemoteSqlContent(_0x49759b),'',{'dbName':_0x260e95}));if(await fileExists(_0x844fba)){const _0x55b6dc=await readFile(_0x844fba,_0x1e348f(0x16f));if(!isEquivalentPulledSqlFile(_0x55b6dc,_0x2af4cf,_0x52ecd7)){_0x4eaad0=!![];break;}}}if(_0x4eaad0){const _0x4cb99f=await confirmForceOverwrite(_0x1e348f(0x17b));if(!_0x4cb99f)throw CliErrors[_0x1e348f(0x176)](_0x1e348f(0x181));}}const _0x32048e=cloneSqlLockData(_0x9e62d4),_0x19c354=_0x32048e[_0x1e348f(0x173)][_0x5810b0['appCode']],_0x5e10fa=[],_0x135a00=[];for(const _0x40f5e of _0x44edbe){const _0x888025=_0x19c354[_0x1e348f(0x169)][_0x40f5e[_0x1e348f(0x182)]],_0x1e463f=ensureRemoteSqlContent(_0x40f5e),_0x388c41=detectModeFromSql(_0x40f5e),_0x3423da=_0x40f5e[_0x1e348f(0x186)]?await getDbName(_0x570847[_0x1e348f(0x166)],Number(_0x40f5e[_0x1e348f(0x186)]))[_0x1e348f(0x175)](()=>undefined):undefined,_0x7aad19=buildLocalSqlFileContent({'sqlCode':_0x40f5e['sqlCode'],'sqlName':_0x40f5e[_0x1e348f(0x188)],'dbId':_0x40f5e[_0x1e348f(0x186)]},_0x1e463f,{'dbName':_0x3423da,'mode':_0x388c41,'syncedAt':new Date()[_0x1e348f(0x179)](),'description':_0x40f5e['description']}),_0x3e4878=buildSqlLockEntry(_0x40f5e,_0x1e463f,computeSqlContentHash(_0x7aad19),{'dbName':_0x3423da}),_0xa8ad09=_0x3e4878['path'],_0x35c8e5=join(_0x5810b0[_0x1e348f(0x157)],_0xa8ad09);try{if(await fileExists(_0x35c8e5)){const _0x4f7579=await readFile(_0x35c8e5,_0x1e348f(0x16f));if(isEquivalentPulledSqlFile(_0x4f7579,_0x7aad19,_0x388c41)){_0x135a00[_0x1e348f(0x16b)]({'sqlCode':_0x40f5e['sqlCode'],'reason':_0x1e348f(0x161)}),_0x19c354[_0x1e348f(0x169)][_0x40f5e['sqlCode']]={..._0x3e4878,'hash':computeSqlContentHash(_0x4f7579),'path':_0xa8ad09};continue;}if(!_0x3b2b82){_0x135a00['push']({'sqlCode':_0x40f5e[_0x1e348f(0x182)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x20d4f1=_0x888025?.['path']?join(_0x5810b0[_0x1e348f(0x157)],_0x888025[_0x1e348f(0x17a)]):undefined;_0x20d4f1&&_0x20d4f1!==_0x35c8e5&&await fileExists(_0x20d4f1)&&await rm(_0x20d4f1,{'force':!![]}),await ensureParentDirectory(_0x35c8e5),await writeFile(_0x35c8e5,_0x7aad19,_0x1e348f(0x16f)),_0x19c354['sqls'][_0x40f5e[_0x1e348f(0x182)]]={..._0x3e4878,'path':_0xa8ad09},_0x5e10fa[_0x1e348f(0x16b)]({'sqlCode':_0x40f5e[_0x1e348f(0x182)],'filePath':_0x35c8e5});}catch(_0x2e2ff3){_0x7d0fef[_0x1e348f(0x16b)]({'sqlCode':_0x40f5e['sqlCode'],'error':_0x2e2ff3 instanceof Error?_0x2e2ff3[_0x1e348f(0x15c)]:String(_0x2e2ff3)});}}return _0x19c354[_0x1e348f(0x183)]=new Date()['toISOString'](),await writeSqlLockFile(_0x5810b0[_0x1e348f(0x16e)],_0x32048e),{'ok':_0x7d0fef[_0x1e348f(0x159)]===0x0,'data':{'pulled':_0x5e10fa,'skipped':_0x135a00,'failed':_0x7d0fef},'message':_0x1e348f(0x158)+_0x5e10fa[_0x1e348f(0x159)]+_0x1e348f(0x16a)+_0x135a00[_0x1e348f(0x159)]+'\x20skipped,\x20'+_0x7d0fef['length']+_0x1e348f(0x163)};}};function a124_0x4cb2(){const _0x431653=['trimStart','\x20SQL\x20file(s)\x20into\x20','join','boolean','9246377Mawkhe','name','sqlRootDir','Pull\x20complete:\x20','length','sqlcode','mybatisXml','message','would_pull','pull','POST','totalCount','unchanged','Force\x20overwrite\x20local\x20unsynced\x20changes','\x20failed','44245qDgvEt','2256110JElpaV','appCode','str','tableData','sqls','\x20written,\x20','push','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','sqlRoot','lockFilePath','utf8','22590288kCXpkB','Would\x20pull\x20','2439717wRUtRT','apps','10376680KTwhOq','catch','cancelled','891193XECgZA','6UWbbgE','toISOString','path','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','paging','sqlContent','description','skipped','92DVkxLA','Force\x20pull\x20cancelled.','sqlCode','lastSync','replace','test','dbId','force','sqlName','filter','write'];a124_0x4cb2=function(){return _0x431653;};return a124_0x4cb2();}function detectModeFromSql(_0x1acdc7){const _0x32b8d0=a124_0x18ba4d,_0x1334f1=ensureRemoteSqlContent(_0x1acdc7),_0x39ea86=stripLocalSqlMetadata(_0x1334f1,_0x32b8d0(0x15b))[_0x32b8d0(0x18b)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x39ea86))return _0x32b8d0(0x15b);return'sql';}function isEquivalentPulledSqlFile(_0x4af65e,_0x56f89c,_0x4b5b07){return normalizePullComparableContent(_0x4af65e,_0x4b5b07)===normalizePullComparableContent(_0x56f89c,_0x4b5b07);}function normalizePullComparableContent(_0x5935f9,_0x2b6fd7){const _0x38426b=a124_0x18ba4d,_0x49b90b=_0x5935f9[_0x38426b(0x184)](/\r\n/g,'\x0a')['split']('\x0a'),_0x17992b=_0x49b90b[_0x38426b(0x189)](_0x4384e1=>!isSyncedAtMetadataLine(_0x4384e1,_0x2b6fd7));return _0x17992b[_0x38426b(0x153)]('\x0a');}function isSyncedAtMetadataLine(_0x18027c,_0x485e27){const _0x142914=a124_0x18ba4d;if(_0x485e27==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x142914(0x185)](_0x18027c);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x18027c);}
1
+ const a125_0x3d11ec=a125_0x75d5;(function(_0x3077ba,_0x568b85){const _0x1ebf2f=a125_0x75d5,_0x2aa5c1=_0x3077ba();while(!![]){try{const _0x3d04d2=-parseInt(_0x1ebf2f(0x118))/0x1*(-parseInt(_0x1ebf2f(0x134))/0x2)+parseInt(_0x1ebf2f(0x117))/0x3+parseInt(_0x1ebf2f(0x12f))/0x4*(-parseInt(_0x1ebf2f(0x120))/0x5)+parseInt(_0x1ebf2f(0x144))/0x6+-parseInt(_0x1ebf2f(0x114))/0x7*(-parseInt(_0x1ebf2f(0x11e))/0x8)+-parseInt(_0x1ebf2f(0x123))/0x9+-parseInt(_0x1ebf2f(0x12d))/0xa;if(_0x3d04d2===_0x568b85)break;else _0x2aa5c1['push'](_0x2aa5c1['shift']());}catch(_0x59a0ce){_0x2aa5c1['push'](_0x2aa5c1['shift']());}}}(a125_0x22b3,0x95f03));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a125_0x22b3(){const _0xd7f13c=['apps','Pull\x20complete:\x20','Would\x20pull\x20','dbId','totalCount','pull','toISOString','24612xQRdZH','skipped','unchanged','624924JeZsAy','3IOSYkX','sql','lockFilePath','sqls','sqlcode','replace','2408JOUyAI','filter','3062665CVnhha','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','Filter\x20by\x20SQL\x20display\x20name','73134vizhdy','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','str','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','sqlRootDir','\x20failed','conflict','\x20written,\x20','test','appCode','8264100plHIAC','local\x20differs\x20from\x20remote','4VMXrIr','path','catch','trimStart','sqlCode','406622JMNvma','\x20skipped,\x20','name','cancelled','utf8','sqlName','bool','\x20SQL\x20file(s)\x20into\x20','No\x20remote\x20SQL\x20queries\x20matched.','push','write','length','force','paging','sqlRoot','POST','1107954atVeHr','boolean'];a125_0x22b3=function(){return _0xd7f13c;};return a125_0x22b3();}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';function a125_0x75d5(_0x5c4fcc,_0x1538d4){_0x5c4fcc=_0x5c4fcc-0x10d;const _0x22b38f=a125_0x22b3();let _0x75d5e5=_0x22b38f[_0x5c4fcc];return _0x75d5e5;}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(_0x3f3afc,_0x1c44c1){const _0x5adf5a=a125_0x75d5,_0x33f604=[];let _0x158dc8=0x1;while(!![]){const _0x4cbc29=await listSqlQueries(_0x3f3afc,{'currentPage':_0x158dc8,'pageSize':PAGE_SIZE,'sqlCode':_0x1c44c1[_0x5adf5a(0x133)],'sqlName':_0x1c44c1['sqlName']}),_0x1fad07=_0x4cbc29['tableData']??[];_0x33f604[_0x5adf5a(0x13d)](..._0x1fad07);if(_0x1fad07[_0x5adf5a(0x13f)]===0x0)break;const _0x1e7a8f=_0x4cbc29[_0x5adf5a(0x141)]?.[_0x5adf5a(0x111)];if(_0x1e7a8f!=null?_0x33f604['length']>=_0x1e7a8f:_0x1fad07[_0x5adf5a(0x13f)]<PAGE_SIZE)break;_0x158dc8++;}return _0x33f604;}async function ensureSqlContent(_0x13c8a4){const _0xcd9eea=a125_0x75d5;if(_0x13c8a4['sqlContent']!=null&&String(_0x13c8a4['sqlContent'])[_0xcd9eea(0x13f)]>0x0)return _0x13c8a4;return getSqlQueryDetail(_0x13c8a4[_0xcd9eea(0x133)]);}export const sqlPull={'service':a125_0x3d11ec(0x119),'command':a125_0x3d11ec(0x112),'description':a125_0x3d11ec(0x126),'risk':a125_0x3d11ec(0x13e),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a125_0x3d11ec(0x122)},{'name':a125_0x3d11ec(0x140),'type':a125_0x3d11ec(0x145),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x200340){const _0x35d687=a125_0x3d11ec,_0x5ed846=loadSqlProjectConfig(_0x200340[_0x35d687(0x12c)]),_0x3cfba4=await readSqlLockFile(_0x5ed846[_0x35d687(0x11a)]),{appLock:_0x3599b2}=ensureSqlLockScope(_0x3cfba4??createEmptySqlLock(),_0x5ed846[_0x35d687(0x12c)],_0x5ed846[_0x35d687(0x142)],_0x35d687(0x112)),_0x4a21e0=await fetchAllSqlQueries(_0x200340[_0x35d687(0x12c)],{'sqlCode':_0x200340[_0x35d687(0x125)]('sqlcode')||undefined,'sqlName':_0x200340['str'](_0x35d687(0x136))||undefined}),_0x54b1b2=[];for(const _0x2896a3 of _0x4a21e0){const _0x33baed=await ensureSqlContent(_0x2896a3),_0x2598b6=ensureRemoteSqlContent(_0x33baed),_0x13ad04=detectModeFromSql(_0x33baed),_0x5da7bb=_0x33baed[_0x35d687(0x110)]?await getDbName(_0x200340[_0x35d687(0x12c)],Number(_0x33baed['dbId']))[_0x35d687(0x131)](()=>undefined):undefined,_0x34fade=buildLocalSqlFileContent({'sqlCode':_0x33baed[_0x35d687(0x133)],'sqlName':_0x33baed[_0x35d687(0x139)],'dbId':_0x33baed[_0x35d687(0x110)]},_0x2598b6,{'dbName':_0x5da7bb,'mode':_0x13ad04,'syncedAt':new Date()[_0x35d687(0x113)](),'description':_0x33baed['description']}),_0x28511e=buildSqlLockEntry(_0x33baed,_0x2598b6,'',{'dbName':_0x5da7bb}),_0xa58275=resolveLocalSqlFilePath(_0x5ed846,_0x33baed[_0x35d687(0x133)],_0x28511e);let _0x3b9b30='would_pull',_0x1b4aac;if(await fileExists(_0xa58275)){const _0x34487b=await readFile(_0xa58275,_0x35d687(0x138));isEquivalentPulledSqlFile(_0x34487b,_0x34fade,_0x13ad04)?(_0x3b9b30=_0x35d687(0x115),_0x1b4aac=_0x35d687(0x116)):(_0x3b9b30=_0x35d687(0x129),_0x1b4aac=_0x35d687(0x124));}_0x54b1b2['push']({'sqlCode':_0x33baed[_0x35d687(0x133)],'sqlName':_0x33baed[_0x35d687(0x139)],'filePath':_0xa58275,'status':_0x3b9b30,'reason':_0x1b4aac});}return{'method':_0x35d687(0x143),'url':_0x35d687(0x121),'body':{'appCode':_0x200340['appCode'],'sqlCode':_0x200340[_0x35d687(0x125)](_0x35d687(0x11c))||null,'sqlName':_0x200340[_0x35d687(0x125)](_0x35d687(0x136))||null,'files':_0x54b1b2},'description':_0x35d687(0x10f)+_0x54b1b2[_0x35d687(0x13f)]+_0x35d687(0x13b)+_0x5ed846['sqlRootDir']};},async 'execute'(_0x4d45f7){const _0x486853=a125_0x3d11ec,_0x3966bb=loadSqlProjectConfig(_0x4d45f7[_0x486853(0x12c)]),_0x3d75e7=await readSqlLockFile(_0x3966bb[_0x486853(0x11a)]),{lockData:_0x375050,appLock:_0x1efdeb}=ensureSqlLockScope(_0x3d75e7??createEmptySqlLock(),_0x3966bb[_0x486853(0x12c)],_0x3966bb[_0x486853(0x142)],'pull'),_0x1afcc2=_0x4d45f7[_0x486853(0x13a)](_0x486853(0x140)),_0x587f4b=await fetchAllSqlQueries(_0x4d45f7[_0x486853(0x12c)],{'sqlCode':_0x4d45f7[_0x486853(0x125)](_0x486853(0x11c))||undefined,'sqlName':_0x4d45f7[_0x486853(0x125)](_0x486853(0x136))||undefined});if(_0x587f4b[_0x486853(0x13f)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x486853(0x13c)};const _0x16eb06=[],_0x69ab76=[];for(const _0x22cbce of _0x587f4b){try{_0x16eb06['push'](await ensureSqlContent(_0x22cbce));}catch(_0x2c2132){_0x69ab76[_0x486853(0x13d)]({'sqlCode':_0x22cbce[_0x486853(0x133)],'error':_0x2c2132 instanceof Error?_0x2c2132['message']:String(_0x2c2132)});}}if(_0x1afcc2&&!_0x4d45f7['nonInteractive']){let _0x4e7f0e=![];for(const _0x4f88f7 of _0x16eb06){const _0x2d524b=detectModeFromSql(_0x4f88f7),_0x1abad3=_0x4f88f7['dbId']?await getDbName(_0x4d45f7[_0x486853(0x12c)],Number(_0x4f88f7[_0x486853(0x110)]))[_0x486853(0x131)](()=>undefined):undefined,_0x33f7ff=buildLocalSqlFileContent({'sqlCode':_0x4f88f7[_0x486853(0x133)],'sqlName':_0x4f88f7['sqlName'],'dbId':_0x4f88f7[_0x486853(0x110)]},ensureRemoteSqlContent(_0x4f88f7),{'dbName':_0x1abad3,'mode':_0x2d524b,'syncedAt':new Date()[_0x486853(0x113)](),'description':_0x4f88f7['description']}),_0x5568cd=resolveLocalSqlFilePath(_0x3966bb,_0x4f88f7[_0x486853(0x133)],buildSqlLockEntry(_0x4f88f7,ensureRemoteSqlContent(_0x4f88f7),'',{'dbName':_0x1abad3}));if(await fileExists(_0x5568cd)){const _0x581d06=await readFile(_0x5568cd,_0x486853(0x138));if(!isEquivalentPulledSqlFile(_0x581d06,_0x33f7ff,_0x2d524b)){_0x4e7f0e=!![];break;}}}if(_0x4e7f0e){const _0x1486f6=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x1486f6)throw CliErrors[_0x486853(0x137)]('Force\x20pull\x20cancelled.');}}const _0x541bc5=cloneSqlLockData(_0x375050),_0x165141=_0x541bc5[_0x486853(0x10d)][_0x3966bb['appCode']],_0x374f1b=[],_0xe8ee1c=[];for(const _0x5971c6 of _0x16eb06){const _0x1c65e7=_0x165141[_0x486853(0x11b)][_0x5971c6[_0x486853(0x133)]],_0x4cba49=ensureRemoteSqlContent(_0x5971c6),_0x5c4a23=detectModeFromSql(_0x5971c6),_0x24da0e=_0x5971c6[_0x486853(0x110)]?await getDbName(_0x4d45f7['appCode'],Number(_0x5971c6[_0x486853(0x110)]))[_0x486853(0x131)](()=>undefined):undefined,_0x21253f=buildLocalSqlFileContent({'sqlCode':_0x5971c6[_0x486853(0x133)],'sqlName':_0x5971c6['sqlName'],'dbId':_0x5971c6['dbId']},_0x4cba49,{'dbName':_0x24da0e,'mode':_0x5c4a23,'syncedAt':new Date()[_0x486853(0x113)](),'description':_0x5971c6['description']}),_0x31a107=buildSqlLockEntry(_0x5971c6,_0x4cba49,computeSqlContentHash(_0x21253f),{'dbName':_0x24da0e}),_0x4d6bb3=_0x31a107[_0x486853(0x130)],_0x26b600=join(_0x3966bb['sqlRootDir'],_0x4d6bb3);try{if(await fileExists(_0x26b600)){const _0x3c5b8f=await readFile(_0x26b600,_0x486853(0x138));if(isEquivalentPulledSqlFile(_0x3c5b8f,_0x21253f,_0x5c4a23)){_0xe8ee1c[_0x486853(0x13d)]({'sqlCode':_0x5971c6[_0x486853(0x133)],'reason':'unchanged'}),_0x165141['sqls'][_0x5971c6[_0x486853(0x133)]]={..._0x31a107,'hash':computeSqlContentHash(_0x3c5b8f),'path':_0x4d6bb3};continue;}if(!_0x1afcc2){_0xe8ee1c['push']({'sqlCode':_0x5971c6[_0x486853(0x133)],'reason':_0x486853(0x12e)});continue;}}const _0x5a9b45=_0x1c65e7?.[_0x486853(0x130)]?join(_0x3966bb[_0x486853(0x127)],_0x1c65e7['path']):undefined;_0x5a9b45&&_0x5a9b45!==_0x26b600&&await fileExists(_0x5a9b45)&&await rm(_0x5a9b45,{'force':!![]}),await ensureParentDirectory(_0x26b600),await writeFile(_0x26b600,_0x21253f,'utf8'),_0x165141[_0x486853(0x11b)][_0x5971c6['sqlCode']]={..._0x31a107,'path':_0x4d6bb3},_0x374f1b[_0x486853(0x13d)]({'sqlCode':_0x5971c6[_0x486853(0x133)],'filePath':_0x26b600});}catch(_0x8cfeae){_0x69ab76[_0x486853(0x13d)]({'sqlCode':_0x5971c6[_0x486853(0x133)],'error':_0x8cfeae instanceof Error?_0x8cfeae['message']:String(_0x8cfeae)});}}return _0x165141['lastSync']=new Date()[_0x486853(0x113)](),await writeSqlLockFile(_0x3966bb[_0x486853(0x11a)],_0x541bc5),{'ok':_0x69ab76[_0x486853(0x13f)]===0x0,'data':{'pulled':_0x374f1b,'skipped':_0xe8ee1c,'failed':_0x69ab76},'message':_0x486853(0x10e)+_0x374f1b['length']+_0x486853(0x12a)+_0xe8ee1c[_0x486853(0x13f)]+_0x486853(0x135)+_0x69ab76[_0x486853(0x13f)]+_0x486853(0x128)};}};function detectModeFromSql(_0x258993){const _0x1dcef2=a125_0x3d11ec,_0x1906af=ensureRemoteSqlContent(_0x258993),_0x2978a2=stripLocalSqlMetadata(_0x1906af,'mybatisXml')[_0x1dcef2(0x132)]();if(/^<(select|insert|update|delete)\b/i[_0x1dcef2(0x12b)](_0x2978a2))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x514b0e,_0x25d8bf,_0x29f727){return normalizePullComparableContent(_0x514b0e,_0x29f727)===normalizePullComparableContent(_0x25d8bf,_0x29f727);}function normalizePullComparableContent(_0x41aaf0,_0x5ec9e3){const _0x150074=a125_0x3d11ec,_0x37f44f=_0x41aaf0[_0x150074(0x11d)](/\r\n/g,'\x0a')['split']('\x0a'),_0x5691c0=_0x37f44f[_0x150074(0x11f)](_0x35e6da=>!isSyncedAtMetadataLine(_0x35e6da,_0x5ec9e3));return _0x5691c0['join']('\x0a');}function isSyncedAtMetadataLine(_0x8ff1af,_0x498416){const _0x4c7fe4=a125_0x3d11ec;if(_0x498416==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x4c7fe4(0x12b)](_0x8ff1af);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x4c7fe4(0x12b)](_0x8ff1af);}
@@ -1 +1 @@
1
- const a125_0x37d38b=a125_0x1b4c;(function(_0x2d05b8,_0x1f1c3f){const _0x50430c=a125_0x1b4c,_0x3269e1=_0x2d05b8();while(!![]){try{const _0x8072bc=parseInt(_0x50430c(0xbd))/0x1+-parseInt(_0x50430c(0xd5))/0x2*(-parseInt(_0x50430c(0xda))/0x3)+parseInt(_0x50430c(0xb6))/0x4*(-parseInt(_0x50430c(0x9f))/0x5)+parseInt(_0x50430c(0xb8))/0x6*(-parseInt(_0x50430c(0xc7))/0x7)+-parseInt(_0x50430c(0xb0))/0x8*(parseInt(_0x50430c(0xa7))/0x9)+-parseInt(_0x50430c(0xce))/0xa+parseInt(_0x50430c(0xa5))/0xb;if(_0x8072bc===_0x1f1c3f)break;else _0x3269e1['push'](_0x3269e1['shift']());}catch(_0x3a7f98){_0x3269e1['push'](_0x3269e1['shift']());}}}(a125_0x3166,0xc3533));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';function a125_0x3166(){const _0x4fdbe8=['toISOString','filter','sqls','10quIXZr','exec','dbDirectory','Push\x20local\x20SQL\x20files\x20to\x20remote','projectRoot','mode','26545728ipnjYQ','push','9INKEER','catch','has','join','trashDir','utf8','high-risk-write','sql','lockFilePath','6273376OWfuVl','path','\x20skipped,\x20','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','appCode','lastSync','2740856zhgdMM','message','4153794tTPvQv','No\x20local\x20SQL\x20files\x20found.','dbName','/smartapi/custom/updateUserCustomSql','Push\x20complete:\x20','901503QmiLtM','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','hash','version','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','bool','No\x20database\x20matches\x20local\x20directory\x20\x22','Would\x20push\x20','Local\x20directory\x20\x22','str','7dxMXfS','replace','validation','\x22\x20for\x20sqlCode\x20','filePath','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','length','5056490zGzONh','sqlConfig','isFinite','sqlRootDir','\x20SQL\x20file(s)','sqlCode','Local\x20SQL\x20not\x20found:\x20','22lMUYNO','sqlName','dbId','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','force','228504sixZIQ','sqlRoot','get','map','relativePath'];a125_0x3166=function(){return _0x4fdbe8;};return a125_0x3166();}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';async function getTargetSqlQueries(_0x2498d7,_0x250c99,_0x21eb7a){const _0x2ff8d5=a125_0x1b4c,_0x4f4880=await scanLocalSqlQueries(_0x2498d7),_0x1d12ce=new Map();for(const _0x3aabc4 of _0x4f4880){if(_0x21eb7a&&_0x3aabc4[_0x2ff8d5(0xd3)]!==_0x21eb7a)continue;const _0xe7e4f9=_0x1d12ce[_0x2ff8d5(0xdc)](_0x3aabc4['sqlCode'])??[];_0xe7e4f9[_0x2ff8d5(0xa6)](_0x3aabc4),_0x1d12ce['set'](_0x3aabc4[_0x2ff8d5(0xd3)],_0xe7e4f9);}if(_0x21eb7a&&!_0x1d12ce[_0x2ff8d5(0xa9)](_0x21eb7a))throw CliErrors[_0x2ff8d5(0xc9)](_0x2ff8d5(0xd4)+_0x21eb7a);const _0x505b06=[];for(const [_0x2de997,_0x1f5fda]of _0x1d12ce['entries']()){if(_0x1f5fda[_0x2ff8d5(0xcd)]===0x1){_0x505b06[_0x2ff8d5(0xa6)](_0x1f5fda[0x0]);continue;}const _0x26c385=_0x250c99['sqls'][_0x2de997],_0x4a7416=_0x26c385?.['path'],_0x431b02=_0x4a7416?_0x1f5fda[_0x2ff8d5(0xe0)](_0x103269=>_0x103269[_0x2ff8d5(0xde)]!==_0x4a7416):_0x1f5fda;if(_0x26c385&&_0x431b02[_0x2ff8d5(0xcd)]===0x1){_0x505b06[_0x2ff8d5(0xa6)](_0x431b02[0x0]);continue;}throw CliErrors[_0x2ff8d5(0xc9)](_0x2ff8d5(0xb3)+_0x2de997+_0x2ff8d5(0xbe));}return _0x505b06;}function a125_0x1b4c(_0x56e049,_0x5ac513){_0x56e049=_0x56e049-0x9f;const _0x3166b0=a125_0x3166();let _0x1b4ca4=_0x3166b0[_0x56e049];return _0x1b4ca4;}export const sqlPush={'service':a125_0x37d38b(0xae),'command':a125_0x37d38b(0xa6),'description':a125_0x37d38b(0xa2),'risk':a125_0x37d38b(0xad),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':a125_0x37d38b(0xc1)}],async 'dryRun'(_0x5b85af){const _0x1520ba=a125_0x37d38b,_0x3d4ffb=loadSqlProjectConfig(_0x5b85af[_0x1520ba(0xb4)]),_0x32642b=await readSqlLockFile(_0x3d4ffb[_0x1520ba(0xaf)]),{appLock:_0x4c5d15}=ensureSqlLockScope(_0x32642b??createEmptySqlLock(),_0x5b85af[_0x1520ba(0xb4)],_0x3d4ffb[_0x1520ba(0xdb)],_0x1520ba(0xa6)),_0x4d3c0b=await getTargetSqlQueries(_0x3d4ffb,_0x4c5d15,_0x5b85af[_0x1520ba(0xc6)]('sqlcode')||undefined),_0x18d583=[];for(const _0x5b3f3a of _0x4d3c0b){const _0x3a9dfa=await computeSqlFileHash(_0x5b3f3a[_0x1520ba(0xcb)]),_0x10b9c3=_0x4c5d15[_0x1520ba(0xe1)][_0x5b3f3a[_0x1520ba(0xd3)]],_0xb79f3c=!!_0x10b9c3&&(_0x10b9c3[_0x1520ba(0xb1)]!==_0x5b3f3a['relativePath']||!!_0x5b3f3a[_0x1520ba(0xd6)]&&_0x10b9c3[_0x1520ba(0xd6)]!==_0x5b3f3a['sqlName']);if(!_0x5b85af[_0x1520ba(0xc2)](_0x1520ba(0xd9))&&_0x10b9c3&&_0x10b9c3[_0x1520ba(0xbf)]===_0x3a9dfa&&!_0xb79f3c)continue;_0x18d583[_0x1520ba(0xa6)](_0x5b3f3a[_0x1520ba(0xd3)]);}return{'method':'POST','url':_0x1520ba(0xbb),'body':{'sqlCodes':_0x18d583,'appCode':_0x5b85af[_0x1520ba(0xb4)]},'description':_0x1520ba(0xc4)+_0x18d583[_0x1520ba(0xcd)]+_0x1520ba(0xd2)};},async 'execute'(_0x41ed3f){const _0x513f01=a125_0x37d38b,_0x5a7a2e=loadSqlProjectConfig(_0x41ed3f['appCode']),_0x42881d=await readSqlLockFile(_0x5a7a2e['lockFilePath']),{lockData:_0x1765f6,appLock:_0x4ac61b}=ensureSqlLockScope(_0x42881d??createEmptySqlLock(),_0x41ed3f[_0x513f01(0xb4)],_0x5a7a2e[_0x513f01(0xdb)],_0x513f01(0xa6)),_0x55b276=await getTargetSqlQueries(_0x5a7a2e,_0x4ac61b,_0x41ed3f['str']('sqlcode')||undefined);if(_0x55b276[_0x513f01(0xcd)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x513f01(0xb9)};const _0x2e554e=[],_0x104437=[],_0x296c1d=[];for(const _0x6523b7 of _0x55b276){const _0x2a8dca=_0x4ac61b[_0x513f01(0xe1)][_0x6523b7['sqlCode']];if(!_0x2a8dca){_0x296c1d[_0x513f01(0xa6)]({'sqlCode':_0x6523b7['sqlCode'],'error':_0x513f01(0xcc)});continue;}try{const _0x20ded3=await computeSqlFileHash(_0x6523b7[_0x513f01(0xcb)]),_0x28601a=_0x2a8dca[_0x513f01(0xb1)]!==_0x6523b7[_0x513f01(0xde)]||!!_0x6523b7['sqlName']&&_0x2a8dca[_0x513f01(0xd6)]!==_0x6523b7['sqlName'];if(!_0x41ed3f[_0x513f01(0xc2)](_0x513f01(0xd9))&&_0x2a8dca[_0x513f01(0xbf)]===_0x20ded3&&!_0x28601a){_0x104437[_0x513f01(0xa6)]({'sqlCode':_0x6523b7[_0x513f01(0xd3)],'reason':'unchanged'});continue;}if(_0x2a8dca[_0x513f01(0xc0)]==null){_0x296c1d[_0x513f01(0xa6)]({'sqlCode':_0x6523b7[_0x513f01(0xd3)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x3908d0=await readFile(_0x6523b7[_0x513f01(0xcb)],_0x513f01(0xac)),_0x2269cf=stripLocalSqlMetadata(_0x3908d0,_0x6523b7[_0x513f01(0xa4)]),_0x6cf765=_0x6523b7['sqlName']||_0x2a8dca[_0x513f01(0xd6)],_0x170596=await resolveTargetDbBinding(_0x41ed3f[_0x513f01(0xb4)],_0x6523b7,_0x2a8dca),_0x23bf28=await updateSqlQuery({'id':_0x2a8dca['remoteId'],'appCode':_0x41ed3f['appCode'],'sqlCode':_0x6523b7[_0x513f01(0xd3)],'sqlName':_0x6cf765,'dbId':_0x170596[_0x513f01(0xd7)],'version':_0x2a8dca[_0x513f01(0xc0)],'sqlContent':_0x2269cf,'sqlConfig':_0x2a8dca[_0x513f01(0xcf)]??undefined}),_0x528ff3=_0x23bf28[_0x513f01(0xd7)]?await getDbName(_0x41ed3f[_0x513f01(0xb4)],Number(_0x23bf28[_0x513f01(0xd7)]))[_0x513f01(0xa8)](()=>_0x170596[_0x513f01(0xba)]):_0x170596['dbName'];_0x4ac61b[_0x513f01(0xe1)][_0x6523b7[_0x513f01(0xd3)]]={...buildSqlLockEntry(_0x23bf28,_0x2269cf,_0x20ded3,{'dbName':_0x528ff3}),'path':_0x6523b7[_0x513f01(0xde)],'mode':_0x2a8dca[_0x513f01(0xa4)]},await archivePreviousSqlFileIfNeeded(_0x5a7a2e,_0x2a8dca[_0x513f01(0xb1)],_0x6523b7[_0x513f01(0xde)]),_0x2e554e[_0x513f01(0xa6)]({'sqlCode':_0x6523b7['sqlCode'],'remoteId':_0x2a8dca['remoteId']});}catch(_0x1939d9){_0x296c1d[_0x513f01(0xa6)]({'sqlCode':_0x6523b7[_0x513f01(0xd3)],'error':_0x1939d9 instanceof Error?_0x1939d9[_0x513f01(0xb7)]:String(_0x1939d9)});}}return _0x4ac61b[_0x513f01(0xb5)]=new Date()[_0x513f01(0xdf)](),await writeSqlLockFile(_0x5a7a2e[_0x513f01(0xaf)],_0x1765f6),{'ok':_0x296c1d[_0x513f01(0xcd)]===0x0,'data':{'pushed':_0x2e554e,'skipped':_0x104437,'failed':_0x296c1d},'message':_0x513f01(0xbc)+_0x2e554e[_0x513f01(0xcd)]+'\x20pushed,\x20'+_0x104437[_0x513f01(0xcd)]+_0x513f01(0xb2)+_0x296c1d[_0x513f01(0xcd)]+'\x20failed'};}};async function archivePreviousSqlFileIfNeeded(_0x484953,_0x4f8660,_0x3b8e53){const _0x4d22df=a125_0x37d38b;if(!_0x4f8660||_0x4f8660===_0x3b8e53)return;const _0x2b73dd=join(_0x484953[_0x4d22df(0xd1)],_0x4f8660);if(!await fileExists(_0x2b73dd))return;const _0x4e8f69=await moveToTrash(_0x484953[_0x4d22df(0xa3)],_0x484953[_0x4d22df(0xab)],_0x2b73dd);await cleanupEmptyDirectories(dirname(_0x2b73dd),_0x484953['sqlRootDir']),void _0x4e8f69;}async function moveToTrash(_0x51ae53,_0x20eb01,_0x5d6e3f){const _0x376f8b=a125_0x37d38b,_0x2aad63=new Date()[_0x376f8b(0xdf)]()[_0x376f8b(0xc8)](/[:.]/g,'-'),_0x26f28c=relative(_0x51ae53,_0x5d6e3f),_0x4c17dc=join(_0x20eb01,_0x2aad63,_0x26f28c);return await mkdir(dirname(_0x4c17dc),{'recursive':!![]}),await rename(_0x5d6e3f,_0x4c17dc),_0x4c17dc;}async function cleanupEmptyDirectories(_0x4896ad,_0x311eed){let _0x22c2c2=resolve(_0x4896ad);const _0xb92127=resolve(_0x311eed);while(_0x22c2c2['startsWith'](''+_0xb92127+sep)||_0x22c2c2===_0xb92127){if(_0x22c2c2===_0xb92127)return;try{const _0x13dd51=await readdir(_0x22c2c2);if(_0x13dd51['length']>0x0)return;await rmdir(_0x22c2c2);}catch{return;}_0x22c2c2=dirname(_0x22c2c2);}}async function resolveTargetDbBinding(_0x308b9b,_0x1634df,_0x26cfeb){const _0x505e12=a125_0x37d38b,_0x1a6640=_0x1634df[_0x505e12(0xa1)];if(!_0x1a6640)return{'dbId':_0x26cfeb[_0x505e12(0xd7)],'dbName':_0x26cfeb[_0x505e12(0xba)]};const _0x5d27c0=buildDbDirectoryName(_0x26cfeb[_0x505e12(0xba)],_0x26cfeb['dbId']);if(_0x1a6640===_0x5d27c0)return{'dbId':_0x26cfeb[_0x505e12(0xd7)],'dbName':_0x26cfeb[_0x505e12(0xba)]};const _0x2cde08=parseExplicitDbDirectory(_0x1a6640);if(_0x2cde08!=null)return{'dbId':_0x2cde08,'dbName':await getDbName(_0x308b9b,_0x2cde08)[_0x505e12(0xa8)](()=>undefined)};const _0x36af73=await listDatabases(_0x308b9b),_0x698106=_0x36af73['filter'](_0x14103b=>buildDbDirectoryName(_0x14103b['dbName'],_0x14103b[_0x505e12(0xd7)])===_0x1a6640);if(_0x698106[_0x505e12(0xcd)]===0x1)return{'dbId':_0x698106[0x0][_0x505e12(0xd7)],'dbName':_0x698106[0x0]['dbName']};if(_0x698106[_0x505e12(0xcd)]===0x0)throw CliErrors[_0x505e12(0xc9)](_0x505e12(0xc3)+_0x1a6640+_0x505e12(0xca)+_0x1634df['sqlCode']+'.');const _0x2eedf6=_0x698106[_0x505e12(0xdd)](_0x3f5a29=>_0x3f5a29['dbName']+'\x20('+_0x3f5a29[_0x505e12(0xd7)]+')')[_0x505e12(0xaa)](',\x20');throw CliErrors[_0x505e12(0xc9)](_0x505e12(0xc5)+_0x1a6640+_0x505e12(0xd8)+_0x1634df[_0x505e12(0xd3)]+':\x20'+_0x2eedf6);}function parseExplicitDbDirectory(_0x2dd010){const _0x5f1cad=a125_0x37d38b,_0x215a31=/^db-(\d+)$/[_0x5f1cad(0xa0)](_0x2dd010);if(!_0x215a31)return null;const _0x217957=Number(_0x215a31[0x1]);return Number[_0x5f1cad(0xd0)](_0x217957)&&_0x217957>0x0?_0x217957:null;}
1
+ const a126_0x5723fd=a126_0x4277;(function(_0x19ca59,_0x3e6d30){const _0x2ff840=a126_0x4277,_0x4d0f2c=_0x19ca59();while(!![]){try{const _0x3d07cc=-parseInt(_0x2ff840(0x118))/0x1+parseInt(_0x2ff840(0xe4))/0x2+parseInt(_0x2ff840(0xf4))/0x3+-parseInt(_0x2ff840(0xf2))/0x4+-parseInt(_0x2ff840(0xf3))/0x5+parseInt(_0x2ff840(0xfb))/0x6*(-parseInt(_0x2ff840(0x108))/0x7)+parseInt(_0x2ff840(0x10f))/0x8;if(_0x3d07cc===_0x3e6d30)break;else _0x4d0f2c['push'](_0x4d0f2c['shift']());}catch(_0x39af15){_0x4d0f2c['push'](_0x4d0f2c['shift']());}}}(a126_0x10ec,0x94a18));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';function a126_0x4277(_0x61b4e1,_0x52f506){_0x61b4e1=_0x61b4e1-0xe1;const _0x10ec57=a126_0x10ec();let _0x4277a3=_0x10ec57[_0x61b4e1];return _0x4277a3;}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(_0x7301bf,_0x18e189,_0x5894e1){const _0x128d53=a126_0x4277,_0x253459=await scanLocalSqlQueries(_0x7301bf),_0xf99b3b=new Map();for(const _0x1df4b3 of _0x253459){if(_0x5894e1&&_0x1df4b3[_0x128d53(0x10c)]!==_0x5894e1)continue;const _0x25d4cc=_0xf99b3b[_0x128d53(0x113)](_0x1df4b3[_0x128d53(0x10c)])??[];_0x25d4cc[_0x128d53(0x107)](_0x1df4b3),_0xf99b3b[_0x128d53(0x117)](_0x1df4b3['sqlCode'],_0x25d4cc);}if(_0x5894e1&&!_0xf99b3b[_0x128d53(0xf0)](_0x5894e1))throw CliErrors[_0x128d53(0x102)](_0x128d53(0x11e)+_0x5894e1);const _0x355886=[];for(const [_0x4abafe,_0xee18b8]of _0xf99b3b['entries']()){if(_0xee18b8[_0x128d53(0xf6)]===0x1){_0x355886[_0x128d53(0x107)](_0xee18b8[0x0]);continue;}const _0x266e98=_0x18e189[_0x128d53(0x122)][_0x4abafe],_0x1505d9=_0x266e98?.[_0x128d53(0xe1)],_0x515183=_0x1505d9?_0xee18b8[_0x128d53(0xed)](_0x1548c9=>_0x1548c9['relativePath']!==_0x1505d9):_0xee18b8;if(_0x266e98&&_0x515183[_0x128d53(0xf6)]===0x1){_0x355886['push'](_0x515183[0x0]);continue;}throw CliErrors[_0x128d53(0x102)]('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x4abafe+_0x128d53(0x104));}return _0x355886;}export const sqlPush={'service':a126_0x5723fd(0xfd),'command':'push','description':a126_0x5723fd(0x106),'risk':a126_0x5723fd(0xe8),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a126_0x5723fd(0xe9),'type':a126_0x5723fd(0x11f),'description':a126_0x5723fd(0x11c)}],async 'dryRun'(_0x4760c3){const _0x33b33d=a126_0x5723fd,_0x23c322=loadSqlProjectConfig(_0x4760c3[_0x33b33d(0x10d)]),_0x4d8fa2=await readSqlLockFile(_0x23c322[_0x33b33d(0xee)]),{appLock:_0x166d60}=ensureSqlLockScope(_0x4d8fa2??createEmptySqlLock(),_0x4760c3[_0x33b33d(0x10d)],_0x23c322[_0x33b33d(0x100)],_0x33b33d(0x107)),_0x16d4a2=await getTargetSqlQueries(_0x23c322,_0x166d60,_0x4760c3['str']('sqlcode')||undefined),_0x3a7165=[];for(const _0x9e5979 of _0x16d4a2){const _0x4522ba=await computeSqlFileHash(_0x9e5979[_0x33b33d(0x116)]),_0x651d1e=_0x166d60[_0x33b33d(0x122)][_0x9e5979[_0x33b33d(0x10c)]],_0x4531f9=!!_0x651d1e&&(_0x651d1e[_0x33b33d(0xe1)]!==_0x9e5979['relativePath']||!!_0x9e5979['sqlName']&&_0x651d1e[_0x33b33d(0xe6)]!==_0x9e5979[_0x33b33d(0xe6)]);if(!_0x4760c3['bool'](_0x33b33d(0xe9))&&_0x651d1e&&_0x651d1e['hash']===_0x4522ba&&!_0x4531f9)continue;_0x3a7165['push'](_0x9e5979['sqlCode']);}return{'method':_0x33b33d(0x112),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x3a7165,'appCode':_0x4760c3[_0x33b33d(0x10d)]},'description':_0x33b33d(0xea)+_0x3a7165[_0x33b33d(0xf6)]+_0x33b33d(0x11b)};},async 'execute'(_0x5587a8){const _0x1cb0f7=a126_0x5723fd,_0x5daab6=loadSqlProjectConfig(_0x5587a8[_0x1cb0f7(0x10d)]),_0x13d435=await readSqlLockFile(_0x5daab6[_0x1cb0f7(0xee)]),{lockData:_0x55355f,appLock:_0x2f9f06}=ensureSqlLockScope(_0x13d435??createEmptySqlLock(),_0x5587a8[_0x1cb0f7(0x10d)],_0x5daab6[_0x1cb0f7(0x100)],'push'),_0xce4e58=await getTargetSqlQueries(_0x5daab6,_0x2f9f06,_0x5587a8[_0x1cb0f7(0xfe)](_0x1cb0f7(0xec))||undefined);if(_0xce4e58[_0x1cb0f7(0xf6)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x377e8d=[],_0x5170d6=[],_0x4d3b28=[];for(const _0x539dfb of _0xce4e58){const _0x347235=_0x2f9f06[_0x1cb0f7(0x122)][_0x539dfb['sqlCode']];if(!_0x347235){_0x4d3b28[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'error':_0x1cb0f7(0xe2)});continue;}try{const _0x506333=await computeSqlFileHash(_0x539dfb[_0x1cb0f7(0x116)]),_0x25dc90=_0x347235[_0x1cb0f7(0xe1)]!==_0x539dfb[_0x1cb0f7(0xff)]||!!_0x539dfb[_0x1cb0f7(0xe6)]&&_0x347235['sqlName']!==_0x539dfb['sqlName'];if(!_0x5587a8[_0x1cb0f7(0x110)](_0x1cb0f7(0xe9))&&_0x347235['hash']===_0x506333&&!_0x25dc90){_0x5170d6[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'reason':_0x1cb0f7(0x109)});continue;}if(_0x347235[_0x1cb0f7(0x11a)]==null){_0x4d3b28[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'error':_0x1cb0f7(0x121)});continue;}const _0x2dda41=await readFile(_0x539dfb['filePath'],_0x1cb0f7(0x11d)),_0x573241=stripLocalSqlMetadata(_0x2dda41,_0x539dfb[_0x1cb0f7(0xe5)]),_0x498ba4=_0x539dfb[_0x1cb0f7(0xe6)]||_0x347235[_0x1cb0f7(0xe6)],_0x3eb5b1=await resolveTargetDbBinding(_0x5587a8[_0x1cb0f7(0x10d)],_0x539dfb,_0x347235),_0xe600f8=await updateSqlQuery({'id':_0x347235[_0x1cb0f7(0x114)],'appCode':_0x5587a8[_0x1cb0f7(0x10d)],'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'sqlName':_0x498ba4,'dbId':_0x3eb5b1[_0x1cb0f7(0x111)],'version':_0x347235[_0x1cb0f7(0x11a)],'sqlContent':_0x573241,'sqlConfig':_0x347235[_0x1cb0f7(0x103)]??undefined}),_0x46b116=_0xe600f8[_0x1cb0f7(0x111)]?await getDbName(_0x5587a8['appCode'],Number(_0xe600f8[_0x1cb0f7(0x111)]))[_0x1cb0f7(0x115)](()=>_0x3eb5b1[_0x1cb0f7(0xeb)]):_0x3eb5b1[_0x1cb0f7(0xeb)];_0x2f9f06['sqls'][_0x539dfb['sqlCode']]={...buildSqlLockEntry(_0xe600f8,_0x573241,_0x506333,{'dbName':_0x46b116}),'path':_0x539dfb[_0x1cb0f7(0xff)],'mode':_0x347235[_0x1cb0f7(0xe5)]},await archivePreviousSqlFileIfNeeded(_0x5daab6,_0x347235['path'],_0x539dfb[_0x1cb0f7(0xff)]),_0x377e8d['push']({'sqlCode':_0x539dfb['sqlCode'],'remoteId':_0x347235[_0x1cb0f7(0x114)]});}catch(_0x40e580){_0x4d3b28[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'error':_0x40e580 instanceof Error?_0x40e580[_0x1cb0f7(0x119)]:String(_0x40e580)});}}return _0x2f9f06[_0x1cb0f7(0xfa)]=new Date()[_0x1cb0f7(0x101)](),await writeSqlLockFile(_0x5daab6[_0x1cb0f7(0xee)],_0x55355f),{'ok':_0x4d3b28[_0x1cb0f7(0xf6)]===0x0,'data':{'pushed':_0x377e8d,'skipped':_0x5170d6,'failed':_0x4d3b28},'message':_0x1cb0f7(0xf7)+_0x377e8d['length']+_0x1cb0f7(0xf1)+_0x5170d6[_0x1cb0f7(0xf6)]+'\x20skipped,\x20'+_0x4d3b28[_0x1cb0f7(0xf6)]+_0x1cb0f7(0xf5)};}};async function archivePreviousSqlFileIfNeeded(_0x45894e,_0x57f0e4,_0x1385cb){const _0x5151dc=a126_0x5723fd;if(!_0x57f0e4||_0x57f0e4===_0x1385cb)return;const _0xe32531=join(_0x45894e['sqlRootDir'],_0x57f0e4);if(!await fileExists(_0xe32531))return;const _0x239562=await moveToTrash(_0x45894e['projectRoot'],_0x45894e[_0x5151dc(0x10b)],_0xe32531);await cleanupEmptyDirectories(dirname(_0xe32531),_0x45894e[_0x5151dc(0xf8)]),void _0x239562;}async function moveToTrash(_0x306862,_0x427b55,_0x3eb803){const _0x5078a3=a126_0x5723fd,_0x52f8db=new Date()[_0x5078a3(0x101)]()[_0x5078a3(0x120)](/[:.]/g,'-'),_0x2d754f=relative(_0x306862,_0x3eb803),_0x229032=join(_0x427b55,_0x52f8db,_0x2d754f);return await mkdir(dirname(_0x229032),{'recursive':!![]}),await rename(_0x3eb803,_0x229032),_0x229032;}function a126_0x10ec(){const _0x3b0d7f=['.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','exec','Push\x20local\x20SQL\x20files\x20to\x20remote','push','42QgwpYT','unchanged','No\x20database\x20matches\x20local\x20directory\x20\x22','trashDir','sqlCode','appCode','isFinite','8060888cTdMUQ','bool','dbId','POST','get','remoteId','catch','filePath','set','574695qhPJmC','message','version','\x20SQL\x20file(s)','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','utf8','Local\x20SQL\x20not\x20found:\x20','boolean','replace','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','sqls','path','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','dbDirectory','2073254fOWbAV','mode','sqlName','map','high-risk-write','force','Would\x20push\x20','dbName','sqlcode','filter','lockFilePath','\x22\x20for\x20sqlCode\x20','has','\x20pushed,\x20','2171180IpaycE','918075SMrAZw','1866723vlKMGk','\x20failed','length','Push\x20complete:\x20','sqlRootDir','startsWith','lastSync','756582ICHNYB','join','sql','str','relativePath','sqlRoot','toISOString','validation','sqlConfig'];a126_0x10ec=function(){return _0x3b0d7f;};return a126_0x10ec();}async function cleanupEmptyDirectories(_0x3d4219,_0x3512fe){const _0x2fb236=a126_0x5723fd;let _0x2c023c=resolve(_0x3d4219);const _0x155e72=resolve(_0x3512fe);while(_0x2c023c[_0x2fb236(0xf9)](''+_0x155e72+sep)||_0x2c023c===_0x155e72){if(_0x2c023c===_0x155e72)return;try{const _0x1ee84c=await readdir(_0x2c023c);if(_0x1ee84c['length']>0x0)return;await rmdir(_0x2c023c);}catch{return;}_0x2c023c=dirname(_0x2c023c);}}async function resolveTargetDbBinding(_0x48ead5,_0x37e4dc,_0x15704d){const _0x20a47a=a126_0x5723fd,_0x456e14=_0x37e4dc[_0x20a47a(0xe3)];if(!_0x456e14)return{'dbId':_0x15704d[_0x20a47a(0x111)],'dbName':_0x15704d['dbName']};const _0xd23dc4=buildDbDirectoryName(_0x15704d['dbName'],_0x15704d[_0x20a47a(0x111)]);if(_0x456e14===_0xd23dc4)return{'dbId':_0x15704d[_0x20a47a(0x111)],'dbName':_0x15704d[_0x20a47a(0xeb)]};const _0x5de247=parseExplicitDbDirectory(_0x456e14);if(_0x5de247!=null)return{'dbId':_0x5de247,'dbName':await getDbName(_0x48ead5,_0x5de247)[_0x20a47a(0x115)](()=>undefined)};const _0x3c479d=await listDatabases(_0x48ead5),_0x5f541d=_0x3c479d['filter'](_0x4c02cb=>buildDbDirectoryName(_0x4c02cb[_0x20a47a(0xeb)],_0x4c02cb['dbId'])===_0x456e14);if(_0x5f541d[_0x20a47a(0xf6)]===0x1)return{'dbId':_0x5f541d[0x0][_0x20a47a(0x111)],'dbName':_0x5f541d[0x0][_0x20a47a(0xeb)]};if(_0x5f541d[_0x20a47a(0xf6)]===0x0)throw CliErrors[_0x20a47a(0x102)](_0x20a47a(0x10a)+_0x456e14+_0x20a47a(0xef)+_0x37e4dc['sqlCode']+'.');const _0x464272=_0x5f541d[_0x20a47a(0xe7)](_0x3c74af=>_0x3c74af[_0x20a47a(0xeb)]+'\x20('+_0x3c74af[_0x20a47a(0x111)]+')')[_0x20a47a(0xfc)](',\x20');throw CliErrors[_0x20a47a(0x102)]('Local\x20directory\x20\x22'+_0x456e14+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x37e4dc[_0x20a47a(0x10c)]+':\x20'+_0x464272);}function parseExplicitDbDirectory(_0x1d93ee){const _0x531962=a126_0x5723fd,_0x203f2b=/^db-(\d+)$/[_0x531962(0x105)](_0x1d93ee);if(!_0x203f2b)return null;const _0x43dbc6=Number(_0x203f2b[0x1]);return Number[_0x531962(0x10e)](_0x43dbc6)&&_0x43dbc6>0x0?_0x43dbc6:null;}
@@ -1 +1 @@
1
- const a126_0x1109fc=a126_0x1c4f;(function(_0x1c2864,_0x101488){const _0x1cd1af=a126_0x1c4f,_0x394cda=_0x1c2864();while(!![]){try{const _0x328bc7=-parseInt(_0x1cd1af(0x82))/0x1+parseInt(_0x1cd1af(0x84))/0x2+parseInt(_0x1cd1af(0x85))/0x3*(parseInt(_0x1cd1af(0x88))/0x4)+-parseInt(_0x1cd1af(0x8c))/0x5*(parseInt(_0x1cd1af(0x8b))/0x6)+parseInt(_0x1cd1af(0x93))/0x7+-parseInt(_0x1cd1af(0x81))/0x8+parseInt(_0x1cd1af(0x87))/0x9*(parseInt(_0x1cd1af(0x8d))/0xa);if(_0x328bc7===_0x101488)break;else _0x394cda['push'](_0x394cda['shift']());}catch(_0x1f9fb1){_0x394cda['push'](_0x394cda['shift']());}}}(a126_0x4641,0x51d29));function a126_0x4641(){const _0xce0c5f=['file','2691437fcfcGm','3961976vxowYs','410815ulDwvY','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','1325600INnFsQ','2703dghQYS','string','2670174jgBYVB','1560EcyVHB','validation','Path\x20to\x20the\x20SQL\x20file','97320hUDouO','140KHFfms','10RlMzJQ','write','save','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`.','SQL\x20query\x20display\x20name'];a126_0x4641=function(){return _0xce0c5f;};return a126_0x4641();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.',a126_0x1109fc(0x90)]['join']('\x0a');function a126_0x1c4f(_0x4fae3b,_0x2b1ea2){_0x4fae3b=_0x4fae3b-0x81;const _0x464120=a126_0x4641();let _0x1c4f3b=_0x464120[_0x4fae3b];return _0x1c4f3b;}export const sqlSave={'service':'sql','command':a126_0x1109fc(0x8f),'description':a126_0x1109fc(0x83),'risk':a126_0x1109fc(0x8e),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a126_0x1109fc(0x92),'type':a126_0x1109fc(0x86),'required':!![],'description':a126_0x1109fc(0x8a)},SQLCODE_FLAG_OPTIONAL,{'name':'sqlname','type':a126_0x1109fc(0x86),'description':a126_0x1109fc(0x91)},{'name':'db','type':'string','description':'Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'},{'name':'description','type':a126_0x1109fc(0x86),'description':'Query\x20description'}],async 'validate'(){const _0x22f5fa=a126_0x1109fc;throw CliErrors[_0x22f5fa(0x89)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x25b162=a126_0x1109fc;throw CliErrors[_0x25b162(0x89)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a127_0x1db5e1=a127_0x54cf;function a127_0x38f6(){const _0x225441=['save','239490qhTHGT','Path\x20to\x20the\x20SQL\x20file','Query\x20description','30084WbZVJm','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','file','917432QJjVxT','validation','28LQIejd','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','join','sqlname','string','sql','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','342685aZqacs','SQL\x20query\x20display\x20name','write','653564dIXVya','2HBOhST','1468227NPyKLS','9423rkkkwq','6700xSGfxi'];a127_0x38f6=function(){return _0x225441;};return a127_0x38f6();}(function(_0x4e9bd8,_0x940f4e){const _0x5b3dc2=a127_0x54cf,_0x5a8b9c=_0x4e9bd8();while(!![]){try{const _0x2733ef=parseInt(_0x5b3dc2(0xf2))/0x1+-parseInt(_0x5b3dc2(0xf6))/0x2*(parseInt(_0x5b3dc2(0xf7))/0x3)+parseInt(_0x5b3dc2(0xf5))/0x4+parseInt(_0x5b3dc2(0xe3))/0x5+-parseInt(_0x5b3dc2(0xe6))/0x6+parseInt(_0x5b3dc2(0xeb))/0x7*(-parseInt(_0x5b3dc2(0xe9))/0x8)+-parseInt(_0x5b3dc2(0xf8))/0x9*(-parseInt(_0x5b3dc2(0xe1))/0xa);if(_0x2733ef===_0x940f4e)break;else _0x5a8b9c['push'](_0x5a8b9c['shift']());}catch(_0xc69989){_0x5a8b9c['push'](_0x5a8b9c['shift']());}}}(a127_0x38f6,0x49cf5));import{CliErrors}from'../../errors.js';function a127_0x54cf(_0x525174,_0x22c521){_0x525174=_0x525174-0xe1;const _0x38f6b3=a127_0x38f6();let _0x54cf78=_0x38f6b3[_0x525174];return _0x54cf78;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.',a127_0x1db5e1(0xec),'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`.'][a127_0x1db5e1(0xed)]('\x0a');export const sqlSave={'service':a127_0x1db5e1(0xf0),'command':a127_0x1db5e1(0xe2),'description':a127_0x1db5e1(0xf1),'risk':a127_0x1db5e1(0xf4),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a127_0x1db5e1(0xe8),'type':a127_0x1db5e1(0xef),'required':!![],'description':a127_0x1db5e1(0xe4)},SQLCODE_FLAG_OPTIONAL,{'name':a127_0x1db5e1(0xee),'type':a127_0x1db5e1(0xef),'description':a127_0x1db5e1(0xf3)},{'name':'db','type':'string','description':a127_0x1db5e1(0xe7)},{'name':'description','type':a127_0x1db5e1(0xef),'description':a127_0x1db5e1(0xe5)}],async 'validate'(){const _0x54dded=a127_0x1db5e1;throw CliErrors[_0x54dded(0xea)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x38b897=a127_0x1db5e1;throw CliErrors[_0x38b897(0xea)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a127_0x42ad09=a127_0x387b;(function(_0x46f51b,_0x5514d2){const _0x55f629=a127_0x387b,_0xcf35f8=_0x46f51b();while(!![]){try{const _0x372025=-parseInt(_0x55f629(0x1bd))/0x1+parseInt(_0x55f629(0x1a6))/0x2*(-parseInt(_0x55f629(0x1a2))/0x3)+parseInt(_0x55f629(0x1bc))/0x4+-parseInt(_0x55f629(0x19f))/0x5*(parseInt(_0x55f629(0x1be))/0x6)+parseInt(_0x55f629(0x1ab))/0x7*(parseInt(_0x55f629(0x1af))/0x8)+-parseInt(_0x55f629(0x1a5))/0x9+parseInt(_0x55f629(0x19a))/0xa;if(_0x372025===_0x5514d2)break;else _0xcf35f8['push'](_0xcf35f8['shift']());}catch(_0x5b8ef1){_0xcf35f8['push'](_0xcf35f8['shift']());}}}(a127_0x206c,0xbe2b5));import{createInterface}from'node:readline';function a127_0x206c(){const _0x2f47db=['2KnYxIu','.rabetbase/sql','apps','trimStart','<!--\x20@lovrabet.','98FBcixx','sqlRoot','trim','sqlCode','413784EPocVA','path','mode','question','--\x20@lovrabet.','join','sqls','push','entries','dbId','dbName','syncedAt','description','3394948nNoYRG','880611cKgxPO','61080jYoBgG','endsWith','toLowerCase','\x20[y/N]\x20','replace','split','lastSync','12837950bcspnm','sqlName','yes','sqlConfig','length','240PDcEAJ','filter','map','920001XmucXw','stdin','includes','3616227KoZWOv'];a127_0x206c=function(){return _0x2f47db;};return a127_0x206c();}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a127_0x42ad09(0x1a7);export function buildSqlLockEntry(_0x1d8f86,_0x2a0611,_0x279cd6,_0x293146){const _0x94b0ce=a127_0x42ad09,_0x2c3f5a=detectSqlMode(_0x2a0611);return{'path':buildSqlRelativePath(_0x1d8f86[_0x94b0ce(0x1ae)],_0x1d8f86[_0x94b0ce(0x19b)],_0x293146?.[_0x94b0ce(0x1b9)],_0x2c3f5a,_0x1d8f86['dbId']),'hash':_0x279cd6,'remoteId':_0x1d8f86['id'],'version':_0x1d8f86['version'],'dbId':Number(_0x1d8f86['dbId']),'dbName':_0x293146?.[_0x94b0ce(0x1b9)],'sqlName':_0x1d8f86[_0x94b0ce(0x19b)],'sqlConfig':_0x1d8f86[_0x94b0ce(0x19d)]??undefined,'mode':_0x2c3f5a};}export function cloneSqlLockData(_0x56d6c0){const _0x56a942=a127_0x42ad09;return{'apps':Object['fromEntries'](Object[_0x56a942(0x1b7)](_0x56d6c0[_0x56a942(0x1a8)])[_0x56a942(0x1a1)](([_0x5b359d,_0x4196ea])=>[_0x5b359d,{'sqlRoot':_0x4196ea[_0x56a942(0x1ac)],'lastSync':_0x4196ea[_0x56a942(0x199)],'sqls':{..._0x4196ea[_0x56a942(0x1b5)]}}]))};}export function ensureRemoteSqlContent(_0x466485){return _0x466485['sqlContent']??'';}export function buildLocalSqlFileContent(_0x128cb0,_0x492fdf,_0x32fd0e){const _0x289b8c=a127_0x42ad09,_0x55f421=_0x32fd0e?.[_0x289b8c(0x1b1)]??detectSqlMode(_0x492fdf),_0x51bf1f=stripLocalSqlMetadata(_0x492fdf,_0x55f421)['trim'](),_0x464d79=[...buildMetadataHeaderLines({'sqlCode':_0x128cb0[_0x289b8c(0x1ae)],'sqlName':_0x128cb0[_0x289b8c(0x19b)],'dbId':_0x128cb0[_0x289b8c(0x1b8)],'dbName':_0x32fd0e?.[_0x289b8c(0x1b9)],'mode':_0x55f421,'syncedAt':_0x32fd0e?.[_0x289b8c(0x1ba)],'description':_0x32fd0e?.[_0x289b8c(0x1bb)]},_0x55f421),'',_0x51bf1f],_0x142a8d=_0x464d79['join']('\x0a');return _0x142a8d[_0x289b8c(0x1bf)]('\x0a')?_0x142a8d:_0x142a8d+'\x0a';}export function stripLocalSqlMetadata(_0x4a4c21,_0x3fc171){const _0x49638f=a127_0x42ad09,_0x3be32f=_0x4a4c21[_0x49638f(0x197)](/\r\n/g,'\x0a')[_0x49638f(0x198)]('\x0a'),_0x531a1a=[];let _0x4ea609=0x0;if(_0x3fc171==='mybatisXml')while(_0x4ea609<_0x3be32f[_0x49638f(0x19e)]){const _0x5f449d=_0x3be32f[_0x4ea609]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x5f449d)){_0x4ea609++;continue;}if(_0x5f449d['trim']()===''&&_0x4ea609>0x0){_0x4ea609++;continue;}break;}else while(_0x4ea609<_0x3be32f[_0x49638f(0x19e)]){const _0x1d9608=_0x3be32f[_0x4ea609]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x1d9608)){_0x4ea609++;continue;}if(_0x1d9608[_0x49638f(0x1ad)]()===''&&_0x4ea609>0x0){_0x4ea609++;continue;}break;}for(;_0x4ea609<_0x3be32f[_0x49638f(0x19e)];_0x4ea609++){_0x531a1a[_0x49638f(0x1b6)](_0x3be32f[_0x4ea609]);}return _0x531a1a[_0x49638f(0x1b4)]('\x0a')[_0x49638f(0x1a9)]();}export function resolveSqlMode(_0x28b06b,_0x4c98e9){if(_0x4c98e9?.['mode'])return _0x4c98e9['mode'];return detectSqlMode(_0x28b06b);}export function resolveSqlFileName(_0x4c0eff,_0x285705,_0x26def5){const _0x3d4c97=a127_0x42ad09;if(_0x26def5?.[_0x3d4c97(0x1b0)])return _0x26def5[_0x3d4c97(0x1b0)];if(_0x26def5?.[_0x3d4c97(0x19b)]||_0x26def5?.['dbName'])return buildSqlRelativePath(_0x4c0eff,_0x26def5?.[_0x3d4c97(0x19b)],_0x26def5?.[_0x3d4c97(0x1b9)],resolveSqlMode(_0x285705,_0x26def5),_0x26def5?.[_0x3d4c97(0x1b8)]);return buildDefaultSqlFileName(_0x4c0eff,resolveSqlMode(_0x285705,_0x26def5));}export function resolveSqlLocalDir(_0x1a794f,_0xa7f8da){return join(_0x1a794f,SQL_LOCAL_REL_DIR,_0xa7f8da);}function a127_0x387b(_0x904484,_0x5e6e5d){_0x904484=_0x904484-0x196;const _0x206c94=a127_0x206c();let _0x387b93=_0x206c94[_0x904484];return _0x387b93;}export async function confirmForceOverwrite(_0x3dd26a){const _0x2ba9f1=a127_0x42ad09,_0xd45e3a=createInterface({'input':process[_0x2ba9f1(0x1a3)],'output':process['stderr']}),_0x47d891=await new Promise(_0x30be06=>{const _0x798351=_0x2ba9f1;_0xd45e3a[_0x798351(0x1b2)](_0x3dd26a+_0x798351(0x196),_0x30be06);});return _0xd45e3a['close'](),['y',_0x2ba9f1(0x19c)][_0x2ba9f1(0x1a4)](_0x47d891[_0x2ba9f1(0x1ad)]()[_0x2ba9f1(0x1c0)]());}export function findSqlLockScope(_0x32082f,_0xee8569){return _0x32082f['apps'][_0xee8569];}function buildMetadataHeaderLines(_0x176a91,_0x33c241){const _0x3f232d=a127_0x42ad09,_0x580924=[[_0x3f232d(0x1ae),_0x176a91['sqlCode']],['sqlName',_0x176a91[_0x3f232d(0x19b)]],[_0x3f232d(0x1b8),_0x176a91[_0x3f232d(0x1b8)]],[_0x3f232d(0x1b9),_0x176a91['dbName']],[_0x3f232d(0x1b1),_0x176a91[_0x3f232d(0x1b1)]],['syncedAt',_0x176a91[_0x3f232d(0x1ba)]],[_0x3f232d(0x1bb),_0x176a91[_0x3f232d(0x1bb)]]];if(_0x33c241==='mybatisXml')return _0x580924[_0x3f232d(0x1a0)](([,_0x5da2bd])=>_0x5da2bd!==undefined&&_0x5da2bd!==null&&String(_0x5da2bd)[_0x3f232d(0x1ad)]()!=='')[_0x3f232d(0x1a1)](([_0x710b57,_0x3f7465])=>_0x3f232d(0x1aa)+_0x710b57+':\x20'+String(_0x3f7465)+'\x20-->');return _0x580924[_0x3f232d(0x1a0)](([,_0x1177b2])=>_0x1177b2!==undefined&&_0x1177b2!==null&&String(_0x1177b2)['trim']()!=='')[_0x3f232d(0x1a1)](([_0x5c9bc9,_0x451a8c])=>_0x3f232d(0x1b3)+_0x5c9bc9+':\x20'+String(_0x451a8c));}
1
+ const a128_0x232b9f=a128_0x3184;(function(_0x2da3bb,_0x4dbfd6){const _0x94588e=a128_0x3184,_0x5e5155=_0x2da3bb();while(!![]){try{const _0x4028f4=-parseInt(_0x94588e(0x181))/0x1*(parseInt(_0x94588e(0x18f))/0x2)+parseInt(_0x94588e(0x16b))/0x3+-parseInt(_0x94588e(0x166))/0x4*(-parseInt(_0x94588e(0x17e))/0x5)+parseInt(_0x94588e(0x167))/0x6*(parseInt(_0x94588e(0x178))/0x7)+-parseInt(_0x94588e(0x183))/0x8*(parseInt(_0x94588e(0x170))/0x9)+-parseInt(_0x94588e(0x180))/0xa*(parseInt(_0x94588e(0x18b))/0xb)+parseInt(_0x94588e(0x176))/0xc;if(_0x4028f4===_0x4dbfd6)break;else _0x5e5155['push'](_0x5e5155['shift']());}catch(_0x50d1f1){_0x5e5155['push'](_0x5e5155['shift']());}}}(a128_0x1f79,0x5189c));function a128_0x3184(_0x3e4cf9,_0x4ea038){_0x3e4cf9=_0x3e4cf9-0x163;const _0x1f7905=a128_0x1f79();let _0x31844e=_0x1f7905[_0x3e4cf9];return _0x31844e;}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=a128_0x232b9f(0x182);function a128_0x1f79(){const _0x506009=['4222251CsNnqb','mode','version','--\x20@lovrabet.','dbId','includes','777252fTSqZH','endsWith','859733AmOynA','path','sqlCode','sqlContent','\x20-->','question','15JpPguQ','mybatisXml','738550TxWZcc','13FIidHC','.rabetbase/sql','8RqvSgO','sqlRoot','length','lastSync','sqls','join','stderr','replace','66Wdgwyd','test','sqlName','map','9580JGSqik','\x20[y/N]\x20','filter','split','fromEntries','trimStart','trim','apps','572012ktLDcR','18nPnFbc','description','toLowerCase','dbName','1338846wrGbpP','push','<!--\x20@lovrabet.','syncedAt','yes'];a128_0x1f79=function(){return _0x506009;};return a128_0x1f79();}export function buildSqlLockEntry(_0x4c30be,_0x23e0cc,_0x5f2eaa,_0x30d1b3){const _0x2d9c7b=a128_0x232b9f,_0x39f661=detectSqlMode(_0x23e0cc);return{'path':buildSqlRelativePath(_0x4c30be['sqlCode'],_0x4c30be[_0x2d9c7b(0x18d)],_0x30d1b3?.[_0x2d9c7b(0x16a)],_0x39f661,_0x4c30be[_0x2d9c7b(0x174)]),'hash':_0x5f2eaa,'remoteId':_0x4c30be['id'],'version':_0x4c30be[_0x2d9c7b(0x172)],'dbId':Number(_0x4c30be[_0x2d9c7b(0x174)]),'dbName':_0x30d1b3?.['dbName'],'sqlName':_0x4c30be[_0x2d9c7b(0x18d)],'sqlConfig':_0x4c30be['sqlConfig']??undefined,'mode':_0x39f661};}export function cloneSqlLockData(_0x52b259){const _0x4c2093=a128_0x232b9f;return{'apps':Object[_0x4c2093(0x193)](Object['entries'](_0x52b259[_0x4c2093(0x165)])[_0x4c2093(0x18e)](([_0x4de50f,_0x2bbd8b])=>[_0x4de50f,{'sqlRoot':_0x2bbd8b[_0x4c2093(0x184)],'lastSync':_0x2bbd8b[_0x4c2093(0x186)],'sqls':{..._0x2bbd8b[_0x4c2093(0x187)]}}]))};}export function ensureRemoteSqlContent(_0xd90890){const _0x441493=a128_0x232b9f;return _0xd90890[_0x441493(0x17b)]??'';}export function buildLocalSqlFileContent(_0x31217b,_0x21add1,_0x1f723d){const _0x514abb=a128_0x232b9f,_0x4f3b82=_0x1f723d?.[_0x514abb(0x171)]??detectSqlMode(_0x21add1),_0x472ac6=stripLocalSqlMetadata(_0x21add1,_0x4f3b82)[_0x514abb(0x164)](),_0x38c7bf=[...buildMetadataHeaderLines({'sqlCode':_0x31217b['sqlCode'],'sqlName':_0x31217b[_0x514abb(0x18d)],'dbId':_0x31217b[_0x514abb(0x174)],'dbName':_0x1f723d?.['dbName'],'mode':_0x4f3b82,'syncedAt':_0x1f723d?.[_0x514abb(0x16e)],'description':_0x1f723d?.[_0x514abb(0x168)]},_0x4f3b82),'',_0x472ac6],_0x17d1ff=_0x38c7bf['join']('\x0a');return _0x17d1ff[_0x514abb(0x177)]('\x0a')?_0x17d1ff:_0x17d1ff+'\x0a';}export function stripLocalSqlMetadata(_0x5cbff5,_0x1052ec){const _0x54512a=a128_0x232b9f,_0x282ac1=_0x5cbff5[_0x54512a(0x18a)](/\r\n/g,'\x0a')[_0x54512a(0x192)]('\x0a'),_0x22a328=[];let _0x181246=0x0;if(_0x1052ec===_0x54512a(0x17f))while(_0x181246<_0x282ac1[_0x54512a(0x185)]){const _0xe5896b=_0x282ac1[_0x181246]??'';if(/^\s*<!--\s*@lovrabet\./[_0x54512a(0x18c)](_0xe5896b)){_0x181246++;continue;}if(_0xe5896b[_0x54512a(0x164)]()===''&&_0x181246>0x0){_0x181246++;continue;}break;}else while(_0x181246<_0x282ac1['length']){const _0x268e0f=_0x282ac1[_0x181246]??'';if(/^\s*--\s*@lovrabet\./[_0x54512a(0x18c)](_0x268e0f)){_0x181246++;continue;}if(_0x268e0f[_0x54512a(0x164)]()===''&&_0x181246>0x0){_0x181246++;continue;}break;}for(;_0x181246<_0x282ac1['length'];_0x181246++){_0x22a328[_0x54512a(0x16c)](_0x282ac1[_0x181246]);}return _0x22a328[_0x54512a(0x188)]('\x0a')[_0x54512a(0x163)]();}export function resolveSqlMode(_0x3b0743,_0x36d573){const _0x292785=a128_0x232b9f;if(_0x36d573?.[_0x292785(0x171)])return _0x36d573[_0x292785(0x171)];return detectSqlMode(_0x3b0743);}export function resolveSqlFileName(_0x531310,_0x1658ea,_0x174465){const _0x42ad41=a128_0x232b9f;if(_0x174465?.[_0x42ad41(0x179)])return _0x174465[_0x42ad41(0x179)];if(_0x174465?.[_0x42ad41(0x18d)]||_0x174465?.['dbName'])return buildSqlRelativePath(_0x531310,_0x174465?.['sqlName'],_0x174465?.[_0x42ad41(0x16a)],resolveSqlMode(_0x1658ea,_0x174465),_0x174465?.[_0x42ad41(0x174)]);return buildDefaultSqlFileName(_0x531310,resolveSqlMode(_0x1658ea,_0x174465));}export function resolveSqlLocalDir(_0x1c978d,_0x4f3018){return join(_0x1c978d,SQL_LOCAL_REL_DIR,_0x4f3018);}export async function confirmForceOverwrite(_0x558833){const _0x4b8ec6=a128_0x232b9f,_0x5acbf1=createInterface({'input':process['stdin'],'output':process[_0x4b8ec6(0x189)]}),_0x2a5731=await new Promise(_0x469b6b=>{const _0x5d87da=_0x4b8ec6;_0x5acbf1[_0x5d87da(0x17d)](_0x558833+_0x5d87da(0x190),_0x469b6b);});return _0x5acbf1['close'](),['y',_0x4b8ec6(0x16f)][_0x4b8ec6(0x175)](_0x2a5731['trim']()[_0x4b8ec6(0x169)]());}export function findSqlLockScope(_0xf33e78,_0x292eb6){return _0xf33e78['apps'][_0x292eb6];}function buildMetadataHeaderLines(_0x1280f4,_0x1ddbe4){const _0x3cc869=a128_0x232b9f,_0x3464a4=[[_0x3cc869(0x17a),_0x1280f4[_0x3cc869(0x17a)]],['sqlName',_0x1280f4[_0x3cc869(0x18d)]],[_0x3cc869(0x174),_0x1280f4[_0x3cc869(0x174)]],[_0x3cc869(0x16a),_0x1280f4[_0x3cc869(0x16a)]],['mode',_0x1280f4[_0x3cc869(0x171)]],[_0x3cc869(0x16e),_0x1280f4['syncedAt']],[_0x3cc869(0x168),_0x1280f4[_0x3cc869(0x168)]]];if(_0x1ddbe4===_0x3cc869(0x17f))return _0x3464a4[_0x3cc869(0x191)](([,_0x20571c])=>_0x20571c!==undefined&&_0x20571c!==null&&String(_0x20571c)[_0x3cc869(0x164)]()!=='')[_0x3cc869(0x18e)](([_0x28a5b8,_0x3fc555])=>_0x3cc869(0x16d)+_0x28a5b8+':\x20'+String(_0x3fc555)+_0x3cc869(0x17c));return _0x3464a4['filter'](([,_0x1248bb])=>_0x1248bb!==undefined&&_0x1248bb!==null&&String(_0x1248bb)[_0x3cc869(0x164)]()!=='')[_0x3cc869(0x18e)](([_0x1f7bae,_0x315cd2])=>_0x3cc869(0x173)+_0x1f7bae+':\x20'+String(_0x315cd2));}
@@ -1 +1 @@
1
- const a128_0x5e9985=a128_0x293a;(function(_0x471710,_0x1c8e31){const _0x31966a=a128_0x293a,_0x28486f=_0x471710();while(!![]){try{const _0x5c251a=parseInt(_0x31966a(0x8f))/0x1+parseInt(_0x31966a(0x83))/0x2*(parseInt(_0x31966a(0x9a))/0x3)+parseInt(_0x31966a(0x80))/0x4+-parseInt(_0x31966a(0xa0))/0x5*(parseInt(_0x31966a(0x9b))/0x6)+parseInt(_0x31966a(0x95))/0x7*(parseInt(_0x31966a(0x81))/0x8)+-parseInt(_0x31966a(0x97))/0x9*(parseInt(_0x31966a(0x8d))/0xa)+-parseInt(_0x31966a(0x8a))/0xb;if(_0x5c251a===_0x1c8e31)break;else _0x28486f['push'](_0x28486f['shift']());}catch(_0x5d537a){_0x28486f['push'](_0x28486f['shift']());}}}(a128_0xa805,0x410b1));function a128_0xa805(){const _0x422f1d=['appCode','\x20remote-only','91Xegeva','keys','1143QVYBYz','sqls','\x20modified,\x20','17679MLLaqY','438HrxHDn','status','remote','All\x20SQL\x20queries\x20are\x20in\x20sync.','sql','2540qOtbvk','sqlName','\x20added,\x20','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','sqlRoot','has','\x20missing,\x20','1906940KraEeS','123832hCoVsA','sqlCode','58YvSgnv','push','totalCount','filePath','lockKey','boolean','lockFilePath','4108412tiSkhO','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','length','30890qmJeTR','map','220437hzaLuS','read','relativePath','path'];a128_0xa805=function(){return _0x422f1d;};return a128_0xa805();}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;function a128_0x293a(_0x5e8066,_0x34358d){_0x5e8066=_0x5e8066-0x7b;const _0xa805c=a128_0xa805();let _0x293a21=_0xa805c[_0x5e8066];return _0x293a21;}async function fetchAllSqlCodes(_0x29c1e9){const _0x234d48=a128_0x293a,_0x71c2ac=[];let _0x2e53bd=0x1;while(!![]){const _0x27f8ab=await listSqlQueries(_0x29c1e9,{'currentPage':_0x2e53bd,'pageSize':PAGE_SIZE}),_0x74dbdc=_0x27f8ab['tableData']??[];_0x71c2ac[_0x234d48(0x84)](..._0x74dbdc[_0x234d48(0x8e)](_0x29a7be=>_0x29a7be[_0x234d48(0x82)]));if(_0x74dbdc[_0x234d48(0x8c)]===0x0)break;const _0x2db576=_0x27f8ab['paging']?.[_0x234d48(0x85)];if(_0x2db576!=null?_0x71c2ac['length']>=_0x2db576:_0x74dbdc[_0x234d48(0x8c)]<PAGE_SIZE)break;_0x2e53bd++;}return _0x71c2ac;}export const sqlStatus={'service':a128_0x5e9985(0x9f),'command':a128_0x5e9985(0x9c),'description':a128_0x5e9985(0x8b),'risk':a128_0x5e9985(0x90),'flags':[{'name':'remote','type':a128_0x5e9985(0x88),'description':a128_0x5e9985(0x7c)}],async 'execute'(_0x9b164f){const _0x5bb6f0=a128_0x5e9985,_0x315fc6=loadSqlProjectConfig(_0x9b164f[_0x5bb6f0(0x93)]),_0x8c85df=await readSqlLockFile(_0x315fc6[_0x5bb6f0(0x89)]),{appLock:_0xed4300}=ensureSqlLockScope(_0x8c85df??createEmptySqlLock(),_0x315fc6[_0x5bb6f0(0x93)],_0x315fc6[_0x5bb6f0(0x7d)],_0x5bb6f0(0x9c)),_0x38e8cf=await scanLocalSqlQueries(_0x315fc6),_0x30b420=[],_0x4296c5=[],_0x147fa0=[],_0xd8e25c=[],_0xb76cd2=new Set(_0x38e8cf[_0x5bb6f0(0x8e)](_0x5e10ab=>_0x5e10ab['lockKey']));for(const _0x5d04dc of _0x38e8cf){const _0x45482e=await computeSqlFileHash(_0x5d04dc[_0x5bb6f0(0x86)]),_0x1e64ac=_0xed4300[_0x5bb6f0(0x98)][_0x5d04dc[_0x5bb6f0(0x87)]],_0x3b6a58=!!_0x1e64ac&&_0x1e64ac[_0x5bb6f0(0x92)]!==_0x5d04dc[_0x5bb6f0(0x91)],_0xf9a6ac=!!_0x1e64ac&&!!_0x5d04dc['sqlName']&&_0x1e64ac['sqlName']!==_0x5d04dc[_0x5bb6f0(0xa1)];if(!_0x1e64ac)_0x30b420['push'](_0x5d04dc['lockKey']);else _0x1e64ac['hash']!==_0x45482e||_0x3b6a58||_0xf9a6ac?_0x4296c5[_0x5bb6f0(0x84)](_0x5d04dc[_0x5bb6f0(0x87)]):_0x147fa0[_0x5bb6f0(0x84)](_0x5d04dc[_0x5bb6f0(0x87)]);}for(const _0x379a19 of Object[_0x5bb6f0(0x96)](_0xed4300[_0x5bb6f0(0x98)])){!_0xb76cd2[_0x5bb6f0(0x7e)](_0x379a19)&&_0xd8e25c[_0x5bb6f0(0x84)](_0x379a19);}const _0x54c00a=[];if(_0x9b164f['bool'](_0x5bb6f0(0x9d))){const _0x2534de=await fetchAllSqlCodes(_0x9b164f['appCode']);for(const _0xdc7519 of _0x2534de){!_0xb76cd2[_0x5bb6f0(0x7e)](_0xdc7519)&&!_0xed4300[_0x5bb6f0(0x98)][_0xdc7519]&&_0x54c00a[_0x5bb6f0(0x84)](_0xdc7519);}}const _0x29cb85=_0x30b420['length']===0x0&&_0x4296c5['length']===0x0&&_0xd8e25c[_0x5bb6f0(0x8c)]===0x0&&_0x54c00a['length']===0x0;return{'ok':!![],'data':{'added':_0x30b420,'modified':_0x4296c5,'missing':_0xd8e25c,'unchanged':_0x147fa0,'remoteOnly':_0x54c00a},'message':_0x29cb85?_0x5bb6f0(0x9e):_0x30b420[_0x5bb6f0(0x8c)]+_0x5bb6f0(0x7b)+_0x4296c5['length']+_0x5bb6f0(0x99)+_0xd8e25c[_0x5bb6f0(0x8c)]+_0x5bb6f0(0x7f)+_0x147fa0[_0x5bb6f0(0x8c)]+'\x20unchanged'+(_0x54c00a[_0x5bb6f0(0x8c)]>0x0?',\x20'+_0x54c00a[_0x5bb6f0(0x8c)]+_0x5bb6f0(0x94):'')};}};
1
+ const a129_0x113e32=a129_0x2681;(function(_0x5c6f46,_0x2ac201){const _0x4d24c6=a129_0x2681,_0x4ddf21=_0x5c6f46();while(!![]){try{const _0x548468=-parseInt(_0x4d24c6(0xe2))/0x1*(-parseInt(_0x4d24c6(0xce))/0x2)+-parseInt(_0x4d24c6(0xc3))/0x3*(-parseInt(_0x4d24c6(0xd8))/0x4)+-parseInt(_0x4d24c6(0xe1))/0x5*(parseInt(_0x4d24c6(0xdc))/0x6)+parseInt(_0x4d24c6(0xc1))/0x7*(parseInt(_0x4d24c6(0xdf))/0x8)+parseInt(_0x4d24c6(0xd0))/0x9+parseInt(_0x4d24c6(0xd3))/0xa+-parseInt(_0x4d24c6(0xde))/0xb;if(_0x548468===_0x2ac201)break;else _0x4ddf21['push'](_0x4ddf21['shift']());}catch(_0x137a60){_0x4ddf21['push'](_0x4ddf21['shift']());}}}(a129_0x4350,0xe5ee9));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a129_0x2681(_0x2ce467,_0x31b97a){_0x2ce467=_0x2ce467-0xbf;const _0x435057=a129_0x4350();let _0x268173=_0x435057[_0x2ce467];return _0x268173;}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(_0x1737fb){const _0x458d2e=a129_0x2681,_0x5bd6b4=[];let _0x123220=0x1;while(!![]){const _0x2c9b55=await listSqlQueries(_0x1737fb,{'currentPage':_0x123220,'pageSize':PAGE_SIZE}),_0xed8d38=_0x2c9b55[_0x458d2e(0xd7)]??[];_0x5bd6b4[_0x458d2e(0xc2)](..._0xed8d38['map'](_0x564b00=>_0x564b00[_0x458d2e(0xc6)]));if(_0xed8d38[_0x458d2e(0xd4)]===0x0)break;const _0x52871e=_0x2c9b55[_0x458d2e(0xc7)]?.['totalCount'];if(_0x52871e!=null?_0x5bd6b4[_0x458d2e(0xd4)]>=_0x52871e:_0xed8d38[_0x458d2e(0xd4)]<PAGE_SIZE)break;_0x123220++;}return _0x5bd6b4;}function a129_0x4350(){const _0x43d587=['2IDLepb','hash','2798280FbgFae','\x20modified,\x20','read','5756260XijHmZ','length','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','appCode','tableData','5635180LcZYTo','keys','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','lockFilePath','690BoWvQm','status','16709297rCseqv','16296ozExZW','\x20remote-only','41695oKxnPX','336153piDoGl','sqlName','sql','bool','lockKey','2709fFSUjU','push','3jChRaj','remote','sqls','sqlCode','paging','\x20unchanged','boolean','\x20missing,\x20','has','map','path'];a129_0x4350=function(){return _0x43d587;};return a129_0x4350();}export const sqlStatus={'service':a129_0x113e32(0xe4),'command':a129_0x113e32(0xdd),'description':a129_0x113e32(0xda),'risk':a129_0x113e32(0xd2),'flags':[{'name':a129_0x113e32(0xc4),'type':a129_0x113e32(0xc9),'description':a129_0x113e32(0xd5)}],async 'execute'(_0x5f0900){const _0x4402a9=a129_0x113e32,_0x3efbde=loadSqlProjectConfig(_0x5f0900[_0x4402a9(0xd6)]),_0xb4ce39=await readSqlLockFile(_0x3efbde[_0x4402a9(0xdb)]),{appLock:_0x4a26fd}=ensureSqlLockScope(_0xb4ce39??createEmptySqlLock(),_0x3efbde[_0x4402a9(0xd6)],_0x3efbde['sqlRoot'],_0x4402a9(0xdd)),_0x497d49=await scanLocalSqlQueries(_0x3efbde),_0x245d45=[],_0x2cf851=[],_0x535414=[],_0x581a98=[],_0xb52ac5=new Set(_0x497d49[_0x4402a9(0xcc)](_0xbbe0bb=>_0xbbe0bb[_0x4402a9(0xc0)]));for(const _0xe8bcb5 of _0x497d49){const _0x5e72a9=await computeSqlFileHash(_0xe8bcb5['filePath']),_0x505096=_0x4a26fd['sqls'][_0xe8bcb5[_0x4402a9(0xc0)]],_0x1ad2d1=!!_0x505096&&_0x505096[_0x4402a9(0xcd)]!==_0xe8bcb5['relativePath'],_0x57b4bc=!!_0x505096&&!!_0xe8bcb5[_0x4402a9(0xe3)]&&_0x505096[_0x4402a9(0xe3)]!==_0xe8bcb5['sqlName'];if(!_0x505096)_0x245d45['push'](_0xe8bcb5['lockKey']);else _0x505096[_0x4402a9(0xcf)]!==_0x5e72a9||_0x1ad2d1||_0x57b4bc?_0x2cf851['push'](_0xe8bcb5[_0x4402a9(0xc0)]):_0x535414[_0x4402a9(0xc2)](_0xe8bcb5[_0x4402a9(0xc0)]);}for(const _0x115538 of Object[_0x4402a9(0xd9)](_0x4a26fd[_0x4402a9(0xc5)])){!_0xb52ac5['has'](_0x115538)&&_0x581a98[_0x4402a9(0xc2)](_0x115538);}const _0x217234=[];if(_0x5f0900[_0x4402a9(0xbf)]('remote')){const _0x171dc9=await fetchAllSqlCodes(_0x5f0900[_0x4402a9(0xd6)]);for(const _0x3fe845 of _0x171dc9){!_0xb52ac5[_0x4402a9(0xcb)](_0x3fe845)&&!_0x4a26fd[_0x4402a9(0xc5)][_0x3fe845]&&_0x217234[_0x4402a9(0xc2)](_0x3fe845);}}const _0x9964f5=_0x245d45[_0x4402a9(0xd4)]===0x0&&_0x2cf851[_0x4402a9(0xd4)]===0x0&&_0x581a98['length']===0x0&&_0x217234[_0x4402a9(0xd4)]===0x0;return{'ok':!![],'data':{'added':_0x245d45,'modified':_0x2cf851,'missing':_0x581a98,'unchanged':_0x535414,'remoteOnly':_0x217234},'message':_0x9964f5?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x245d45[_0x4402a9(0xd4)]+'\x20added,\x20'+_0x2cf851[_0x4402a9(0xd4)]+_0x4402a9(0xd1)+_0x581a98[_0x4402a9(0xd4)]+_0x4402a9(0xca)+_0x535414[_0x4402a9(0xd4)]+_0x4402a9(0xc8)+(_0x217234['length']>0x0?',\x20'+_0x217234[_0x4402a9(0xd4)]+_0x4402a9(0xe0):'')};}};
@@ -1 +1 @@
1
- const a129_0x13ea74=a129_0x3da2;(function(_0x248342,_0x4245f7){const _0x14ef9f=a129_0x3da2,_0x5046c7=_0x248342();while(!![]){try{const _0x3da49b=parseInt(_0x14ef9f(0x124))/0x1*(-parseInt(_0x14ef9f(0x121))/0x2)+-parseInt(_0x14ef9f(0x122))/0x3*(parseInt(_0x14ef9f(0x113))/0x4)+parseInt(_0x14ef9f(0x101))/0x5*(parseInt(_0x14ef9f(0x109))/0x6)+parseInt(_0x14ef9f(0xfd))/0x7+parseInt(_0x14ef9f(0x10d))/0x8+-parseInt(_0x14ef9f(0x119))/0x9*(-parseInt(_0x14ef9f(0x12d))/0xa)+-parseInt(_0x14ef9f(0x114))/0xb;if(_0x3da49b===_0x4245f7)break;else _0x5046c7['push'](_0x5046c7['shift']());}catch(_0x2c2925){_0x5046c7['push'](_0x5046c7['shift']());}}}(a129_0x53c2,0x23311));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';function a129_0x53c2(){const _0x463078=['sql','valid','toLowerCase','tableName','1924317iVabgD','file','type','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','\x22\x20not\x20found\x20in\x20any\x20dataset','\x22\x20not\x20found\x20or\x20not\x20accessible','schema:','cwd','5384zhdkDJ','235884BTlbzH','parameters','29vzhKny','isSelectOnly','flagMissing','read','isDangerous','from','validate','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','validation','10HQNnhG','tables','schemas','str','size','125937uSplYb','Table\x20\x22','schemaWarnings','map','303425bXhjIn','get','reason','trim','message','sqlType','dbtableConfig','name','6QemzBb','File\x20not\x20found:\x20','Dataset\x20\x22','filter','1761120mfhZbO','Provide\x20--file\x20or\x20--sql','string','appCode','fields','length','8HCktSG','1464760yCJxdo'];a129_0x53c2=function(){return _0x463078;};return a129_0x53c2();}import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a129_0x3da2(_0x45d373,_0x1f1e98){_0x45d373=_0x45d373-0xfb;const _0x53c21e=a129_0x53c2();let _0x3da2d2=_0x53c21e[_0x45d373];return _0x3da2d2;}import{CliErrors}from'../../errors.js';import{assertDatasetSupportsLocalDevelopment,filterDbBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a129_0x13ea74(0x115),'command':a129_0x13ea74(0x12a),'description':a129_0x13ea74(0x12b),'risk':a129_0x13ea74(0x127),'flags':[{'name':a129_0x13ea74(0x11a),'type':a129_0x13ea74(0x10f),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':a129_0x13ea74(0x115),'type':a129_0x13ea74(0x10f),'description':a129_0x13ea74(0x11c)},{'name':a129_0x13ea74(0x12f),'type':'string','description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'}],async 'execute'(_0x14a07d){const _0x29f1bc=a129_0x13ea74,_0x51d749=_0x14a07d['str'](_0x29f1bc(0x11a)),_0x431123=_0x14a07d[_0x29f1bc(0xfb)]('sql');if(!_0x51d749&&!_0x431123)throw CliErrors[_0x29f1bc(0x126)]('file',_0x29f1bc(0x10e));let _0x3ea86d;if(_0x51d749){const _0x3d7cf7=resolve(process[_0x29f1bc(0x120)](),_0x51d749);if(!existsSync(_0x3d7cf7))throw CliErrors[_0x29f1bc(0x12c)](_0x29f1bc(0x10a)+_0x3d7cf7);_0x3ea86d=readFileSync(_0x3d7cf7,'utf-8');}else _0x3ea86d=_0x431123;const _0x51b24a=validateSql(_0x3ea86d),_0x252597={'valid':_0x51b24a[_0x29f1bc(0x116)],'sqlType':_0x51b24a[_0x29f1bc(0x106)][_0x29f1bc(0x11b)],'isSelectOnly':_0x51b24a['sqlType'][_0x29f1bc(0x125)],'isDangerous':_0x51b24a[_0x29f1bc(0x106)][_0x29f1bc(0x128)],'tables':_0x51b24a[_0x29f1bc(0x12e)],'parameters':_0x51b24a[_0x29f1bc(0x123)],'message':_0x51b24a[_0x29f1bc(0x105)]};_0x51b24a['sqlType'][_0x29f1bc(0x103)]&&(_0x252597['reason']=_0x51b24a[_0x29f1bc(0x106)][_0x29f1bc(0x103)]);const _0x5afee5=_0x14a07d[_0x29f1bc(0xfb)](_0x29f1bc(0x12f));if(_0x5afee5&&_0x51b24a['valid']){const _0x57eccd=_0x5afee5['split'](',')[_0x29f1bc(0x100)](_0x5e2622=>_0x5e2622[_0x29f1bc(0x104)]())[_0x29f1bc(0x10c)](Boolean),_0x5d9f92=[],_0x1d8483=filterDbBackedDatasets(await listDatasets(_0x14a07d[_0x29f1bc(0x110)])),_0x2b8fce=new Map(_0x1d8483[_0x29f1bc(0x100)](_0x22b6e0=>[_0x22b6e0[_0x29f1bc(0x107)]?.['tableName']?.[_0x29f1bc(0x117)](),_0x22b6e0]));for(const _0x3138ea of _0x51b24a[_0x29f1bc(0x12e)]){const _0x11c08e=_0x2b8fce[_0x29f1bc(0x102)](_0x3138ea[_0x29f1bc(0x117)]());!_0x11c08e&&_0x5d9f92['push'](_0x29f1bc(0xfe)+_0x3138ea+_0x29f1bc(0x11d));}for(const _0x24a9d8 of _0x57eccd){let _0x36ca60;try{_0x36ca60=await getDatasetDetail(_0x24a9d8);}catch{_0x5d9f92['push'](_0x29f1bc(0x10b)+_0x24a9d8+_0x29f1bc(0x11e));continue;}assertDatasetSupportsLocalDevelopment(_0x36ca60,'SQL\x20schema\x20validation');const _0x45e699=Array['isArray'](_0x36ca60[_0x29f1bc(0x111)])?_0x36ca60[_0x29f1bc(0x111)]:[],_0x1823a7=new Set(_0x45e699['map'](_0x7de995=>_0x7de995[_0x29f1bc(0x108)]?.[_0x29f1bc(0x117)]())),_0x2088c2=_0x36ca60['dbtableConfig']?.['tableName']||_0x36ca60[_0x29f1bc(0x118)]||_0x24a9d8;_0x252597[_0x29f1bc(0x11f)+_0x2088c2]={'code':_0x24a9d8,'tableName':_0x2088c2,'fieldCount':_0x1823a7[_0x29f1bc(0xfc)],'fields':Array[_0x29f1bc(0x129)](_0x1823a7)};}_0x5d9f92[_0x29f1bc(0x112)]>0x0&&(_0x252597[_0x29f1bc(0xff)]=_0x5d9f92);}return{'ok':_0x51b24a[_0x29f1bc(0x116)],'data':_0x252597,'message':_0x51b24a['message']};}};
1
+ function a130_0xc7cd(){const _0x23411e=['fields','file','trim','filter','valid','38yVLoTw','parameters','validate','dbtableConfig','schemas','appCode','1007280bRblKX','3Oeoynr','558NUOBSI','sqlType','1341361nhJknr','validation','775899ZpDQxI','2968648boFSsa','SQL\x20schema\x20validation','map','sql','41465PcfSqZ','get','str','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','Table\x20\x22','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','read','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','flagMissing','tables','Dataset\x20\x22','134770tkvCyM','schemaWarnings','File\x20not\x20found:\x20','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','isDangerous','reason','toLowerCase','length','isArray','from','tableName','string','21302NkfRUH','cwd','\x22\x20not\x20found\x20or\x20not\x20accessible','1023sVCLgs'];a130_0xc7cd=function(){return _0x23411e;};return a130_0xc7cd();}const a130_0x1aebb0=a130_0x5cb8;(function(_0xb2eb3,_0x5d9d98){const _0x8ce323=a130_0x5cb8,_0x511d45=_0xb2eb3();while(!![]){try{const _0xf41d93=-parseInt(_0x8ce323(0x209))/0x1*(-parseInt(_0x8ce323(0x200))/0x2)+parseInt(_0x8ce323(0x210))/0x3*(parseInt(_0x8ce323(0x216))/0x4)+parseInt(_0x8ce323(0x21a))/0x5*(parseInt(_0x8ce323(0x211))/0x6)+-parseInt(_0x8ce323(0x213))/0x7+-parseInt(_0x8ce323(0x20f))/0x8+parseInt(_0x8ce323(0x215))/0x9+-parseInt(_0x8ce323(0x1f4))/0xa*(parseInt(_0x8ce323(0x203))/0xb);if(_0xf41d93===_0x5d9d98)break;else _0x511d45['push'](_0x511d45['shift']());}catch(_0x2ee4e7){_0x511d45['push'](_0x511d45['shift']());}}}(a130_0xc7cd,0x69d3a));function a130_0x5cb8(_0x343821,_0x20b92c){_0x343821=_0x343821-0x1f3;const _0xc7cd1c=a130_0xc7cd();let _0x5cb8c9=_0xc7cd1c[_0x343821];return _0x5cb8c9;}import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetSupportsLocalDevelopment,filterDbBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a130_0x1aebb0(0x219),'command':a130_0x1aebb0(0x20b),'description':a130_0x1aebb0(0x1f7),'risk':a130_0x1aebb0(0x220),'flags':[{'name':'file','type':'string','description':a130_0x1aebb0(0x21f)},{'name':a130_0x1aebb0(0x219),'type':'string','description':a130_0x1aebb0(0x221)},{'name':'schemas','type':a130_0x1aebb0(0x1ff),'description':a130_0x1aebb0(0x21d)}],async 'execute'(_0x456327){const _0x52c4b8=a130_0x1aebb0,_0x5cc6cc=_0x456327[_0x52c4b8(0x21c)]('file'),_0x5c2e75=_0x456327['str'](_0x52c4b8(0x219));if(!_0x5cc6cc&&!_0x5c2e75)throw CliErrors[_0x52c4b8(0x222)](_0x52c4b8(0x205),'Provide\x20--file\x20or\x20--sql');let _0x53f6a6;if(_0x5cc6cc){const _0x324249=resolve(process[_0x52c4b8(0x201)](),_0x5cc6cc);if(!existsSync(_0x324249))throw CliErrors[_0x52c4b8(0x214)](_0x52c4b8(0x1f6)+_0x324249);_0x53f6a6=readFileSync(_0x324249,'utf-8');}else _0x53f6a6=_0x5c2e75;const _0x845b2a=validateSql(_0x53f6a6),_0x1ec52b={'valid':_0x845b2a['valid'],'sqlType':_0x845b2a[_0x52c4b8(0x212)]['type'],'isSelectOnly':_0x845b2a[_0x52c4b8(0x212)]['isSelectOnly'],'isDangerous':_0x845b2a[_0x52c4b8(0x212)][_0x52c4b8(0x1f8)],'tables':_0x845b2a[_0x52c4b8(0x223)],'parameters':_0x845b2a[_0x52c4b8(0x20a)],'message':_0x845b2a['message']};_0x845b2a[_0x52c4b8(0x212)][_0x52c4b8(0x1f9)]&&(_0x1ec52b['reason']=_0x845b2a[_0x52c4b8(0x212)]['reason']);const _0x3e6ce2=_0x456327[_0x52c4b8(0x21c)](_0x52c4b8(0x20d));if(_0x3e6ce2&&_0x845b2a[_0x52c4b8(0x208)]){const _0x57c3b2=_0x3e6ce2['split'](',')[_0x52c4b8(0x218)](_0x5d7df1=>_0x5d7df1[_0x52c4b8(0x206)]())[_0x52c4b8(0x207)](Boolean),_0x606bdf=[],_0x393692=filterDbBackedDatasets(await listDatasets(_0x456327[_0x52c4b8(0x20e)])),_0x4e6b50=new Map(_0x393692['map'](_0x4d291f=>[_0x4d291f[_0x52c4b8(0x20c)]?.[_0x52c4b8(0x1fe)]?.[_0x52c4b8(0x1fa)](),_0x4d291f]));for(const _0x284914 of _0x845b2a[_0x52c4b8(0x223)]){const _0x989770=_0x4e6b50[_0x52c4b8(0x21b)](_0x284914[_0x52c4b8(0x1fa)]());!_0x989770&&_0x606bdf['push'](_0x52c4b8(0x21e)+_0x284914+'\x22\x20not\x20found\x20in\x20any\x20dataset');}for(const _0x2b4a9d of _0x57c3b2){let _0x1d7e21;try{_0x1d7e21=await getDatasetDetail(_0x2b4a9d);}catch{_0x606bdf['push'](_0x52c4b8(0x1f3)+_0x2b4a9d+_0x52c4b8(0x202));continue;}assertDatasetSupportsLocalDevelopment(_0x1d7e21,_0x52c4b8(0x217));const _0x5d484e=Array[_0x52c4b8(0x1fc)](_0x1d7e21[_0x52c4b8(0x204)])?_0x1d7e21['fields']:[],_0x1a2a7b=new Set(_0x5d484e[_0x52c4b8(0x218)](_0xed8371=>_0xed8371['name']?.['toLowerCase']())),_0x30dc3e=_0x1d7e21[_0x52c4b8(0x20c)]?.[_0x52c4b8(0x1fe)]||_0x1d7e21[_0x52c4b8(0x1fe)]||_0x2b4a9d;_0x1ec52b['schema:'+_0x30dc3e]={'code':_0x2b4a9d,'tableName':_0x30dc3e,'fieldCount':_0x1a2a7b['size'],'fields':Array[_0x52c4b8(0x1fd)](_0x1a2a7b)};}_0x606bdf[_0x52c4b8(0x1fb)]>0x0&&(_0x1ec52b[_0x52c4b8(0x1f5)]=_0x606bdf);}return{'ok':_0x845b2a[_0x52c4b8(0x208)],'data':_0x1ec52b,'message':_0x845b2a['message']};}};