@lovrabet/rabetbase-cli 2.1.6 → 2.1.7-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) 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/delete.js +1 -0
  52. package/lib/commands/dataset/detail.js +1 -1
  53. package/lib/commands/dataset/index.js +1 -1
  54. package/lib/commands/dataset/link-create.js +1 -0
  55. package/lib/commands/dataset/link-delete.js +1 -0
  56. package/lib/commands/dataset/link-shared.js +1 -0
  57. package/lib/commands/dataset/link-update.js +1 -0
  58. package/lib/commands/dataset/links.js +1 -1
  59. package/lib/commands/dataset/list.js +1 -1
  60. package/lib/commands/dataset/operations.js +1 -1
  61. package/lib/commands/db/analyze-cancel.js +1 -1
  62. package/lib/commands/db/analyze-start.js +1 -1
  63. package/lib/commands/db/analyze-status.js +1 -1
  64. package/lib/commands/db/create.js +1 -1
  65. package/lib/commands/db/delete.js +1 -1
  66. package/lib/commands/db/detail.js +1 -1
  67. package/lib/commands/db/diff.js +1 -1
  68. package/lib/commands/db/index.js +1 -1
  69. package/lib/commands/db/list.js +1 -1
  70. package/lib/commands/db/shared.js +1 -1
  71. package/lib/commands/db/tables.js +1 -1
  72. package/lib/commands/db/test.js +1 -1
  73. package/lib/commands/db/update.js +1 -1
  74. package/lib/commands/doctor.js +1 -1
  75. package/lib/commands/init/index.js +1 -1
  76. package/lib/commands/issue/index.js +1 -0
  77. package/lib/commands/issue/report.js +1 -0
  78. package/lib/commands/logs/index.js +1 -1
  79. package/lib/commands/menu/index.js +1 -1
  80. package/lib/commands/menu/shared/compare-table.js +1 -1
  81. package/lib/commands/menu/shared/index.js +1 -1
  82. package/lib/commands/menu/shared/inquirer.js +1 -1
  83. package/lib/commands/menu/shared/local-pages.js +1 -1
  84. package/lib/commands/menu/shared/logic.js +1 -1
  85. package/lib/commands/menu/shared/service.js +1 -1
  86. package/lib/commands/menu/shared/sync-core.js +1 -1
  87. package/lib/commands/menu/shared/update-core.js +1 -1
  88. package/lib/commands/menu/shared/valid-url.js +1 -1
  89. package/lib/commands/menu/sync.js +1 -1
  90. package/lib/commands/menu/update.js +1 -1
  91. package/lib/commands/page/generate-start.js +1 -1
  92. package/lib/commands/page/generate-status.js +1 -1
  93. package/lib/commands/page/index.js +1 -1
  94. package/lib/commands/page/pull.js +1 -1
  95. package/lib/commands/page/push.js +1 -1
  96. package/lib/commands/page/shared.js +1 -1
  97. package/lib/commands/page/standard-page-status.js +1 -1
  98. package/lib/commands/page/sync.js +1 -1
  99. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  100. package/lib/commands/project/create/format-elapsed.js +1 -1
  101. package/lib/commands/project/create/main.js +1 -1
  102. package/lib/commands/project/create/non-interactive.js +1 -1
  103. package/lib/commands/project/create/project-template-path.js +1 -1
  104. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  105. package/lib/commands/project/create/use-format-code.js +1 -1
  106. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  107. package/lib/commands/project/index.js +1 -1
  108. package/lib/commands/project/init.js +1 -1
  109. package/lib/commands/project/upgrade.js +1 -1
  110. package/lib/commands/registry.js +1 -1
  111. package/lib/commands/run/index.js +1 -1
  112. package/lib/commands/schema.js +1 -1
  113. package/lib/commands/skill/index.js +1 -1
  114. package/lib/commands/sql/create.js +1 -1
  115. package/lib/commands/sql/delete.js +1 -1
  116. package/lib/commands/sql/detail.js +1 -1
  117. package/lib/commands/sql/exec.js +1 -1
  118. package/lib/commands/sql/index.js +1 -1
  119. package/lib/commands/sql/list.js +1 -1
  120. package/lib/commands/sql/pull.js +1 -1
  121. package/lib/commands/sql/push.js +1 -1
  122. package/lib/commands/sql/save.js +1 -1
  123. package/lib/commands/sql/shared.js +1 -1
  124. package/lib/commands/sql/status.js +1 -1
  125. package/lib/commands/sql/validate.js +1 -1
  126. package/lib/config/schema.js +1 -1
  127. package/lib/constant/cdn.js +1 -1
  128. package/lib/constant/cli.js +1 -1
  129. package/lib/constant/defaults.js +1 -1
  130. package/lib/constant/domain.js +1 -1
  131. package/lib/constant/env.js +1 -1
  132. package/lib/constant/output.js +1 -1
  133. package/lib/constant/paths.js +1 -1
  134. package/lib/constant/risk.js +1 -1
  135. package/lib/context.js +1 -1
  136. package/lib/core/alias-resolver.js +1 -1
  137. package/lib/core/api-client.js +1 -1
  138. package/lib/core/bff/config.js +1 -1
  139. package/lib/core/bff/file-system.js +1 -1
  140. package/lib/core/bff/hash.js +1 -1
  141. package/lib/core/bff/lock.js +1 -1
  142. package/lib/core/bff/utils.js +1 -1
  143. package/lib/core/db-resolver.js +1 -1
  144. package/lib/core/page/file-system.js +1 -1
  145. package/lib/core/page/hash.js +1 -1
  146. package/lib/core/page/lock.js +1 -1
  147. package/lib/core/sql-sync/config.js +1 -1
  148. package/lib/core/sql-sync/file-system.js +1 -1
  149. package/lib/core/sql-sync/hash.js +1 -1
  150. package/lib/core/sql-sync/lock.js +1 -1
  151. package/lib/core/sql-sync/utils.js +1 -1
  152. package/lib/core/sql-validator.js +1 -1
  153. package/lib/errors.js +1 -1
  154. package/lib/framework/build-all-flags.js +1 -1
  155. package/lib/framework/flags.js +1 -1
  156. package/lib/framework/help.js +1 -1
  157. package/lib/framework/index.js +1 -1
  158. package/lib/framework/output.js +1 -1
  159. package/lib/framework/response.js +1 -1
  160. package/lib/framework/runner-alias.js +1 -1
  161. package/lib/framework/runner.js +1 -1
  162. package/lib/framework/schema-export.js +1 -1
  163. package/lib/framework/types.js +1 -1
  164. package/lib/generated/build-info.js +1 -1
  165. package/lib/help.js +1 -1
  166. package/lib/skills/main.js +1 -1
  167. package/lib/skills/npx-skills-add.js +1 -1
  168. package/lib/telemetry/cli-command-trace.js +1 -1
  169. package/lib/telemetry/cli-help-trace.js +1 -1
  170. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  171. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  172. package/lib/telemetry/send-cli-trace-log.js +1 -1
  173. package/lib/telemetry/send-platform-issue-collect-log.js +1 -0
  174. package/lib/utils/ai_config.js +1 -1
  175. package/lib/utils/apply-jq-filter.js +1 -1
  176. package/lib/utils/cdn-config.js +1 -1
  177. package/lib/utils/check-sdk-version.js +1 -1
  178. package/lib/utils/cli-version-check.js +1 -1
  179. package/lib/utils/cli-version-policy.js +1 -1
  180. package/lib/utils/config.js +1 -1
  181. package/lib/utils/copy-directory.js +1 -1
  182. package/lib/utils/entity-with-id.js +1 -1
  183. package/lib/utils/file-utils.js +1 -1
  184. package/lib/utils/guides-cdn.js +1 -1
  185. package/lib/utils/http-client.js +1 -1
  186. package/lib/utils/is-non-interactive.js +1 -1
  187. package/lib/utils/logger.js +1 -1
  188. package/lib/utils/params.js +1 -1
  189. package/lib/utils/platform.js +1 -1
  190. package/lib/utils/rules-cdn.js +1 -1
  191. package/lib/utils/sleep.js +1 -1
  192. package/lib/utils/template-replacer.js +1 -1
  193. package/lib/utils/version.js +1 -1
  194. package/lib/utils/with-active-cookie.js +1 -1
  195. package/lib/utils/write-cli-side-channel.js +1 -1
  196. package/package.json +2 -1
@@ -1 +1 @@
1
- const a106_0x122fe4=a106_0x22fb;function a106_0x22fb(_0x23608c,_0x3c14ea){_0x23608c=_0x23608c-0x88;const _0x584051=a106_0x5840();let _0x22fbc0=_0x584051[_0x23608c];return _0x22fbc0;}(function(_0x5fdfe9,_0x34fb9c){const _0x34a77e=a106_0x22fb,_0x98f49f=_0x5fdfe9();while(!![]){try{const _0x2461c8=parseInt(_0x34a77e(0x99))/0x1+parseInt(_0x34a77e(0x9f))/0x2+-parseInt(_0x34a77e(0x8a))/0x3*(-parseInt(_0x34a77e(0x98))/0x4)+-parseInt(_0x34a77e(0x8f))/0x5*(parseInt(_0x34a77e(0x92))/0x6)+parseInt(_0x34a77e(0xa2))/0x7*(-parseInt(_0x34a77e(0x8d))/0x8)+-parseInt(_0x34a77e(0x88))/0x9*(parseInt(_0x34a77e(0xa1))/0xa)+parseInt(_0x34a77e(0x9b))/0xb*(parseInt(_0x34a77e(0x91))/0xc);if(_0x2461c8===_0x34fb9c)break;else _0x98f49f['push'](_0x98f49f['shift']());}catch(_0x449cce){_0x98f49f['push'](_0x98f49f['shift']());}}}(a106_0x5840,0xcaef6));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{logger}from'../../utils/logger.js';function a106_0x5840(){const _0x37fbf6=['npx\x20skills\x20add\x20failed:\x20','Check\x20network\x20connectivity\x20and\x20try\x20again.','inherit','256MRbgVU','600909PrvyHn','\x20skill\x20installed','7810396cVJTfV','log','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','apiError','1268418ucMFIB','pipe','234810doiIGf','7480690ALPfmK','72aEZYEM','../../skills/npx-skills-add.js','31524dcwGmz','install','write','8IRQoQG','Installing\x20official\x20skill\x20via\x20npx\x20(','10oFUyVF',')...','12yMfpBs','1589778zJblwG','cwd','lovrabet/rabetbase'];a106_0x5840=function(){return _0x37fbf6;};return a106_0x5840();}import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':'skill','command':a106_0x122fe4(0x8b),'description':'Install\x20developer\x20skill\x20package','risk':a106_0x122fe4(0x8c),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x119890){const _0xe0f57b=a106_0x122fe4;logger['setLogPath'](process[_0xe0f57b(0x93)]()),logger['info']('skill-install','执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)');const {runNpxSkillsAddGlobal:_0x1e23eb}=await import(_0xe0f57b(0x89)),_0x3858d2=_0x119890['nonInteractive']?_0xe0f57b(0xa0):_0xe0f57b(0x97);console[_0xe0f57b(0x9c)](_0xe0f57b(0x8e)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+_0xe0f57b(0x90));const _0x547bc1=_0x1e23eb(process['cwd'](),_0xe0f57b(0x94),{'stdio':_0x3858d2});if(_0x547bc1['skipped'])console[_0xe0f57b(0x9c)](_0xe0f57b(0x9d));else{if(_0x547bc1['ok'])console[_0xe0f57b(0x9c)](CLI_BIN_NAME+_0xe0f57b(0x9a));else throw CliErrors[_0xe0f57b(0x9e)](_0xe0f57b(0x95)+(_0x547bc1['error']||'unknown'),_0xe0f57b(0x96));}return{'ok':!![]};}}];
1
+ const a113_0x17220b=a113_0x3386;function a113_0x3386(_0x346b03,_0x5d8a7f){_0x346b03=_0x346b03-0x1a0;const _0x3ad9b2=a113_0x3ad9();let _0x33869e=_0x3ad9b2[_0x346b03];return _0x33869e;}(function(_0x4ae8e2,_0x239656){const _0x50cc0c=a113_0x3386,_0x255c8c=_0x4ae8e2();while(!![]){try{const _0x1ddf55=parseInt(_0x50cc0c(0x1b0))/0x1+parseInt(_0x50cc0c(0x1b9))/0x2+-parseInt(_0x50cc0c(0x1b8))/0x3+-parseInt(_0x50cc0c(0x1af))/0x4+-parseInt(_0x50cc0c(0x1a0))/0x5*(parseInt(_0x50cc0c(0x1ab))/0x6)+parseInt(_0x50cc0c(0x1a5))/0x7+parseInt(_0x50cc0c(0x1b3))/0x8*(parseInt(_0x50cc0c(0x1a6))/0x9);if(_0x1ddf55===_0x239656)break;else _0x255c8c['push'](_0x255c8c['shift']());}catch(_0x530d59){_0x255c8c['push'](_0x255c8c['shift']());}}}(a113_0x3ad9,0xe7e37));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a113_0x3ad9(){const _0x1a4a85=['4325907JJrucc','801682ZYkoio','Check\x20network\x20connectivity\x20and\x20try\x20again.','nonInteractive','log','inherit','../../skills/npx-skills-add.js','write','5heuKJo','\x20skill\x20installed','skipped','install','skill-install','8296848QVBDzB','36zolBUr','cwd',')...','skill','执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)','3498822ENFRrt','unknown','error','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','4472412CfjvaZ','231615DgRvGT','Install\x20developer\x20skill\x20package','lovrabet/rabetbase','4550608iuqxSq','info','setLogPath','Installing\x20official\x20skill\x20via\x20npx\x20(','apiError'];a113_0x3ad9=function(){return _0x1a4a85;};return a113_0x3ad9();}import{logger}from'../../utils/logger.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':a113_0x17220b(0x1a9),'command':a113_0x17220b(0x1a3),'description':a113_0x17220b(0x1b1),'risk':a113_0x17220b(0x1bf),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x340b25){const _0x16a1b3=a113_0x17220b;logger[_0x16a1b3(0x1b5)](process[_0x16a1b3(0x1a7)]()),logger[_0x16a1b3(0x1b4)](_0x16a1b3(0x1a4),_0x16a1b3(0x1aa));const {runNpxSkillsAddGlobal:_0x3ab54d}=await import(_0x16a1b3(0x1be)),_0xe11983=_0x340b25[_0x16a1b3(0x1bb)]?'pipe':_0x16a1b3(0x1bd);console[_0x16a1b3(0x1bc)](_0x16a1b3(0x1b6)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+_0x16a1b3(0x1a8));const _0xefd8f5=_0x3ab54d(process['cwd'](),_0x16a1b3(0x1b2),{'stdio':_0xe11983});if(_0xefd8f5[_0x16a1b3(0x1a2)])console[_0x16a1b3(0x1bc)](_0x16a1b3(0x1ae));else{if(_0xefd8f5['ok'])console[_0x16a1b3(0x1bc)](CLI_BIN_NAME+_0x16a1b3(0x1a1));else throw CliErrors[_0x16a1b3(0x1b7)]('npx\x20skills\x20add\x20failed:\x20'+(_0xefd8f5[_0x16a1b3(0x1ad)]||_0x16a1b3(0x1ac)),_0x16a1b3(0x1ba));}return{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a107_0x221db3=a107_0x1b9e;(function(_0xda7048,_0x56e6a3){const _0x3207d9=a107_0x1b9e,_0x4280fa=_0xda7048();while(!![]){try{const _0x24039e=-parseInt(_0x3207d9(0x168))/0x1+-parseInt(_0x3207d9(0x15a))/0x2+parseInt(_0x3207d9(0x166))/0x3*(parseInt(_0x3207d9(0x15e))/0x4)+parseInt(_0x3207d9(0x155))/0x5*(parseInt(_0x3207d9(0x14a))/0x6)+parseInt(_0x3207d9(0x16f))/0x7*(parseInt(_0x3207d9(0x171))/0x8)+-parseInt(_0x3207d9(0x163))/0x9*(-parseInt(_0x3207d9(0x18b))/0xa)+-parseInt(_0x3207d9(0x17c))/0xb*(parseInt(_0x3207d9(0x172))/0xc);if(_0x24039e===_0x56e6a3)break;else _0x4280fa['push'](_0x4280fa['shift']());}catch(_0xc6985c){_0x4280fa['push'](_0x4280fa['shift']());}}}(a107_0x1034,0x31ebf));function a107_0x1034(){const _0x2f3dcc=['20KhXuuY','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','nonInteractive','<server-generated-sqlCode>','dbId','1356KRAdXy','flagMissing','/smartapi/custom/saveUserCustomSql','map','\x20\x20SELECT\x201\x20AS\x20id','create','mybatisXml','sqlRoot','mode','Created\x20SQL\x20query\x20','Local\x20SQL\x20file\x20mode','7415WMqLnf','flag','parse','str','appCode','409786dQSVMI','SQL\x20名称不能为空','catch','✎\x20手动输入\x20dbId','1223312DwIzOe','MyBatis\x20XML(mybatisXml)','dbId\x20必须为正整数','Invalid\x20database\x20selection\x20payload:\x20','isFinite','252792zZszcj','POST','Target\x20database\x20ID','3ZoZNwE','toISOString','361870CMjClS','SQL\x20query\x20display\x20name','__manual__','sqlRootDir','sqlName','请输入\x20SQL\x20名称:','new','1507786lrCQvU','sqlCode','8CvKQak','1695816rotKhx','trim','validation','string','lockFilePath','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','utf8','sql','请选择本地\x20SQL\x20模式:','sqls','11QLPQmu','length','dbId\x20不能为空','SELECT\x201\x20AS\x20id;','description','number','name','lastSync','适合带动态标签的\x20MyBatis\x20XML\x20SQL','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','stringify','join','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','db-id','isInteger'];a107_0x1034=function(){return _0x2f3dcc;};return a107_0x1034();}function a107_0x1b9e(_0x17a3d0,_0x26c4f9){_0x17a3d0=_0x17a3d0-0x149;const _0x103452=a107_0x1034();let _0x1b9e2d=_0x103452[_0x17a3d0];return _0x1b9e2d;}import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x3de735){const _0x393970=a107_0x1b9e;if(_0x3de735===_0x393970(0x150))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x393970(0x14e),'</select>',''][_0x393970(0x187)]('\x0a');return[_0x393970(0x17f),''][_0x393970(0x187)]('\x0a');}export const sqlCreate={'service':a107_0x221db3(0x179),'command':a107_0x221db3(0x14f),'description':a107_0x221db3(0x188),'risk':'high-risk-write','flags':[{'name':a107_0x221db3(0x182),'type':a107_0x221db3(0x175),'description':a107_0x221db3(0x169)},{'name':a107_0x221db3(0x189),'type':a107_0x221db3(0x181),'description':a107_0x221db3(0x165)},{'name':a107_0x221db3(0x152),'type':a107_0x221db3(0x175),'enum':[a107_0x221db3(0x179),a107_0x221db3(0x150)],'description':a107_0x221db3(0x154)}],async 'validate'(_0x406734){const _0x2c2ac3=a107_0x221db3;if(!_0x406734[_0x2c2ac3(0x18d)])return;if(!_0x406734[_0x2c2ac3(0x158)]('name')[_0x2c2ac3(0x173)]())throw CliErrors['flagMissing'](_0x2c2ac3(0x182),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x34cc79=resolveProvidedDbId(_0x406734);if(typeof _0x34cc79!==_0x2c2ac3(0x181)||!Number[_0x2c2ac3(0x162)](_0x34cc79)||_0x34cc79<=0x0)throw CliErrors[_0x2c2ac3(0x14b)](_0x2c2ac3(0x189),_0x2c2ac3(0x18c));if(!_0x406734[_0x2c2ac3(0x158)]('mode')[_0x2c2ac3(0x173)]())throw CliErrors[_0x2c2ac3(0x14b)](_0x2c2ac3(0x152),_0x2c2ac3(0x185));},async 'dryRun'(_0x37bfd9){const _0x49fec2=a107_0x221db3,_0x4f957f=loadSqlProjectConfig(_0x37bfd9[_0x49fec2(0x159)]),{sqlName:_0x2289df,dbId:_0x10f016,dbName:_0x444faa,mode:_0x4e16ec}=await resolveSqlNewInputs(_0x37bfd9),_0x1d1a3b=buildSqlRelativePath(_0x49fec2(0x18e),_0x2289df,_0x444faa,_0x4e16ec,_0x10f016),_0x3aa246=_0x4f957f[_0x49fec2(0x16b)]+'/'+_0x1d1a3b;return{'method':_0x49fec2(0x164),'url':_0x49fec2(0x14c),'body':{'appCode':_0x37bfd9[_0x49fec2(0x159)],'sqlName':_0x2289df,'dbId':_0x10f016,'mode':_0x4e16ec,'localPath':_0x3aa246},'description':_0x49fec2(0x177)+_0x4f957f[_0x49fec2(0x16b)]};},async 'execute'(_0x5a9a05){const _0x29f7be=a107_0x221db3,_0x5d17e6=loadSqlProjectConfig(_0x5a9a05[_0x29f7be(0x159)]),{sqlName:_0xb591f8,dbId:_0x317fe7,dbName:_0x1bc469,mode:_0x19c599}=await resolveSqlNewInputs(_0x5a9a05),_0x1bb594=generateSqlTemplate(_0x19c599),_0x33e96f=await createSqlQuery({'appCode':_0x5a9a05['appCode'],'sqlName':_0xb591f8,'dbId':_0x317fe7,'sqlContent':_0x1bb594}),_0x5c4342=ensureRemoteSqlContent(_0x33e96f),_0x3ffca3=_0x1bc469||await getDbName(_0x5a9a05[_0x29f7be(0x159)],_0x317fe7)['catch'](()=>undefined),_0x8b1c0b=buildSqlRelativePath(_0x33e96f[_0x29f7be(0x170)],_0x33e96f[_0x29f7be(0x16c)],_0x3ffca3,_0x19c599,_0x317fe7),_0x9582d5=_0x5d17e6[_0x29f7be(0x16b)]+'/'+_0x8b1c0b,_0x11a380=buildLocalSqlFileContent({'sqlCode':_0x33e96f[_0x29f7be(0x170)],'sqlName':_0x33e96f['sqlName'],'dbId':_0x33e96f[_0x29f7be(0x149)]},_0x5c4342,{'dbName':_0x3ffca3,'mode':_0x19c599,'syncedAt':new Date()[_0x29f7be(0x167)](),'description':_0x33e96f[_0x29f7be(0x180)]});if(await fileExists(_0x9582d5))throw CliErrors[_0x29f7be(0x174)]('File\x20already\x20exists:\x20'+_0x9582d5);await ensureParentDirectory(_0x9582d5),await writeFile(_0x9582d5,_0x11a380,_0x29f7be(0x178));const _0x4e38a3=await readSqlLockFile(_0x5d17e6[_0x29f7be(0x176)]),{lockData:_0x6fc833,appLock:_0x569a1d}=ensureSqlLockScope(_0x4e38a3??createEmptySqlLock(),_0x5d17e6[_0x29f7be(0x159)],_0x5d17e6[_0x29f7be(0x151)],_0x29f7be(0x16e));return _0x569a1d[_0x29f7be(0x17b)][_0x33e96f[_0x29f7be(0x170)]]={...buildSqlLockEntry(_0x33e96f,_0x5c4342,computeSqlContentHash(_0x11a380),{'dbName':_0x3ffca3}),'path':_0x8b1c0b,'mode':_0x19c599},_0x569a1d[_0x29f7be(0x183)]=new Date()[_0x29f7be(0x167)](),await writeSqlLockFile(_0x5d17e6[_0x29f7be(0x176)],_0x6fc833),{'ok':!![],'data':{'id':_0x33e96f['id'],'sqlCode':_0x33e96f[_0x29f7be(0x170)],'sqlName':_0x33e96f[_0x29f7be(0x16c)],'dbId':_0x33e96f['dbId'],'path':_0x9582d5,'mode':_0x19c599},'message':_0x29f7be(0x153)+_0x33e96f['sqlCode']};}};async function resolveSqlNewInputs(_0x324363){const _0x54074b=await resolveSqlNameInput(_0x324363),{dbId:_0x41c4c9,dbName:_0x2b9c74}=await resolveDbSelection(_0x324363),_0x1d2172=await resolveSqlModeInput(_0x324363);return{'sqlName':_0x54074b,'dbId':_0x41c4c9,'dbName':_0x2b9c74,'mode':_0x1d2172};}async function resolveSqlNameInput(_0x3bdda0){const _0x41ba11=a107_0x221db3,_0x2afad0=_0x3bdda0['str'](_0x41ba11(0x182))[_0x41ba11(0x173)]();if(_0x2afad0)return _0x2afad0;if(_0x3bdda0[_0x41ba11(0x18d)])throw CliErrors[_0x41ba11(0x14b)]('name','--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x41ba11(0x16d),'validate':_0x2e5d77=>_0x2e5d77[_0x41ba11(0x173)]()?!![]:_0x41ba11(0x15b)}))[_0x41ba11(0x173)]();}async function resolveDbSelection(_0x2daf3b){const _0x1cd84d=a107_0x221db3,_0x5eac69=resolveProvidedDbId(_0x2daf3b);if(typeof _0x5eac69==='number'&&Number[_0x1cd84d(0x162)](_0x5eac69)&&_0x5eac69>0x0)return{'dbId':_0x5eac69,'dbName':await getDbName(_0x2daf3b['appCode'],_0x5eac69)[_0x1cd84d(0x15c)](()=>undefined)};if(_0x2daf3b[_0x1cd84d(0x18d)])throw CliErrors[_0x1cd84d(0x14b)](_0x1cd84d(0x189),_0x1cd84d(0x18c));const _0x589895=await listDatabases(_0x2daf3b[_0x1cd84d(0x159)])['catch'](()=>[]);if(_0x589895[_0x1cd84d(0x17d)]===0x1)return{'dbId':_0x589895[0x0][_0x1cd84d(0x149)],'dbName':_0x589895[0x0]['dbName']};if(_0x589895[_0x1cd84d(0x17d)]>0x1){const _0x486de0=await select({'message':'请选择目标数据库:','choices':[..._0x589895[_0x1cd84d(0x14d)](_0xb8fb67=>({'name':_0xb8fb67['dbName']+'\x20('+_0xb8fb67['dbId']+')','value':serializeDbSelection(_0xb8fb67)})),{'name':_0x1cd84d(0x15d),'value':_0x1cd84d(0x16a)}]});if(_0x486de0!==_0x1cd84d(0x16a))return deserializeDbSelection(_0x486de0);}const _0x39ae88=await input({'message':'请输入目标数据库\x20dbId:','validate':_0x11517c=>{const _0x181451=_0x1cd84d,_0x2aa85f=_0x11517c[_0x181451(0x173)]();if(!_0x2aa85f)return _0x181451(0x17e);const _0x175d7d=Number(_0x2aa85f);if(!Number[_0x181451(0x18a)](_0x175d7d)||_0x175d7d<=0x0)return _0x181451(0x160);return!![];}});return{'dbId':Number(_0x39ae88[_0x1cd84d(0x173)]())};}async function resolveSqlModeInput(_0x8a270e){const _0x215e8c=a107_0x221db3,_0x5b590e=_0x8a270e[_0x215e8c(0x158)]('mode')['trim']();if(_0x5b590e===_0x215e8c(0x179)||_0x5b590e===_0x215e8c(0x150))return _0x5b590e;if(_0x8a270e[_0x215e8c(0x18d)])throw CliErrors[_0x215e8c(0x14b)](_0x215e8c(0x152),_0x215e8c(0x185));return await select({'message':_0x215e8c(0x17a),'choices':[{'name':'普通\x20SQL(sql)','value':_0x215e8c(0x179),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x215e8c(0x15f),'value':_0x215e8c(0x150),'description':_0x215e8c(0x184)}]});}function serializeDbSelection(_0x406d9f){const _0x4e3b57=a107_0x221db3;return JSON[_0x4e3b57(0x186)]({'dbId':_0x406d9f[_0x4e3b57(0x149)],'dbName':_0x406d9f['dbName']});}function deserializeDbSelection(_0x480994){const _0x1f950b=a107_0x221db3;try{const _0x4ae51c=JSON[_0x1f950b(0x157)](_0x480994);if(typeof _0x4ae51c[_0x1f950b(0x149)]==='number'&&Number[_0x1f950b(0x162)](_0x4ae51c[_0x1f950b(0x149)]))return{'dbId':_0x4ae51c[_0x1f950b(0x149)],'dbName':_0x4ae51c['dbName']};}catch{}throw CliErrors[_0x1f950b(0x174)](_0x1f950b(0x161)+_0x480994);}function resolveProvidedDbId(_0x5c85b9){const _0x203a66=a107_0x221db3,_0x19ece6=_0x5c85b9[_0x203a66(0x156)](_0x203a66(0x189));if(typeof _0x19ece6===_0x203a66(0x181)&&Number[_0x203a66(0x162)](_0x19ece6))return _0x19ece6;return undefined;}
1
+ const a114_0x47b3f6=a114_0x1d70;function a114_0x32d8(){const _0x4754f1=['join','<server-generated-sqlCode>','validation','sqlRootDir','map','SQL\x20query\x20display\x20name','</select>','new','适合带动态标签的\x20MyBatis\x20XML\x20SQL','POST','850042urWOsF','mybatisXml','dbId\x20不能为空','File\x20already\x20exists:\x20','dbId','__manual__','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','193521qLFXFG','str','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','\x20\x20SELECT\x201\x20AS\x20id','trim','lockFilePath','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','isFinite','普通\x20SQL(sql)','length','sqlCode','14759892ATtcPv','1305450ZwDwlM','请输入目标数据库\x20dbId:','create','dbName','db-id','请输入\x20SQL\x20名称:','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','toISOString','flagMissing','✎\x20手动输入\x20dbId','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','appCode','number','633514rIfkCv','catch','isInteger','sql','mode','parse','SELECT\x201\x20AS\x20id;','请选择本地\x20SQL\x20模式:','dbId\x20必须为正整数','4665904dijlWc','/smartapi/custom/saveUserCustomSql','7EwGCIS','4345098IBdFBp','name','24yeORwY','Target\x20database\x20ID','stringify','sqlRoot','sqlName','string','sqls','nonInteractive'];a114_0x32d8=function(){return _0x4754f1;};return a114_0x32d8();}(function(_0x1cb4cd,_0x425505){const _0x248eaa=a114_0x1d70,_0x119ba1=_0x1cb4cd();while(!![]){try{const _0x105a16=-parseInt(_0x248eaa(0x1c1))/0x1+-parseInt(_0x248eaa(0x1e1))/0x2+-parseInt(_0x248eaa(0x1e8))/0x3*(-parseInt(_0x248eaa(0x1cf))/0x4)+-parseInt(_0x248eaa(0x1f4))/0x5+-parseInt(_0x248eaa(0x1cd))/0x6+-parseInt(_0x248eaa(0x1cc))/0x7*(-parseInt(_0x248eaa(0x1ca))/0x8)+parseInt(_0x248eaa(0x1f3))/0x9;if(_0x105a16===_0x425505)break;else _0x119ba1['push'](_0x119ba1['shift']());}catch(_0x31a4c0){_0x119ba1['push'](_0x119ba1['shift']());}}}(a114_0x32d8,0x8a4bc));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x24fee5){const _0x53e986=a114_0x1d70;if(_0x24fee5===_0x53e986(0x1e2))return[_0x53e986(0x1e7),_0x53e986(0x1eb),_0x53e986(0x1dd),''][_0x53e986(0x1d7)]('\x0a');return[_0x53e986(0x1c7),''][_0x53e986(0x1d7)]('\x0a');}export const sqlCreate={'service':a114_0x47b3f6(0x1c4),'command':a114_0x47b3f6(0x1f6),'description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':'high-risk-write','flags':[{'name':a114_0x47b3f6(0x1ce),'type':'string','description':a114_0x47b3f6(0x1dc)},{'name':a114_0x47b3f6(0x1f8),'type':a114_0x47b3f6(0x1c0),'description':a114_0x47b3f6(0x1d0)},{'name':'mode','type':a114_0x47b3f6(0x1d4),'enum':[a114_0x47b3f6(0x1c4),'mybatisXml'],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x339d68){const _0x2ee392=a114_0x47b3f6;if(!_0x339d68['nonInteractive'])return;if(!_0x339d68[_0x2ee392(0x1e9)](_0x2ee392(0x1ce))[_0x2ee392(0x1ec)]())throw CliErrors['flagMissing']('name','--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0xdb4fd3=resolveProvidedDbId(_0x339d68);if(typeof _0xdb4fd3!=='number'||!Number['isFinite'](_0xdb4fd3)||_0xdb4fd3<=0x0)throw CliErrors[_0x2ee392(0x1fc)](_0x2ee392(0x1f8),_0x2ee392(0x1fe));if(!_0x339d68[_0x2ee392(0x1e9)](_0x2ee392(0x1c5))[_0x2ee392(0x1ec)]())throw CliErrors[_0x2ee392(0x1fc)](_0x2ee392(0x1c5),_0x2ee392(0x1fa));},async 'dryRun'(_0x3f333a){const _0x1d29ab=a114_0x47b3f6,_0x1ab9c1=loadSqlProjectConfig(_0x3f333a[_0x1d29ab(0x1ff)]),{sqlName:_0x51ff5b,dbId:_0x1208cd,dbName:_0x23620e,mode:_0x2fc11b}=await resolveSqlNewInputs(_0x3f333a),_0x1a8247=buildSqlRelativePath(_0x1d29ab(0x1d8),_0x51ff5b,_0x23620e,_0x2fc11b,_0x1208cd),_0x58102a=_0x1ab9c1[_0x1d29ab(0x1da)]+'/'+_0x1a8247;return{'method':_0x1d29ab(0x1e0),'url':_0x1d29ab(0x1cb),'body':{'appCode':_0x3f333a[_0x1d29ab(0x1ff)],'sqlName':_0x51ff5b,'dbId':_0x1208cd,'mode':_0x2fc11b,'localPath':_0x58102a},'description':_0x1d29ab(0x1ea)+_0x1ab9c1['sqlRootDir']};},async 'execute'(_0x461811){const _0x3789d2=a114_0x47b3f6,_0x3d6d02=loadSqlProjectConfig(_0x461811[_0x3789d2(0x1ff)]),{sqlName:_0x1aedbe,dbId:_0x1c53d7,dbName:_0x30fba7,mode:_0x5135fc}=await resolveSqlNewInputs(_0x461811),_0x5064be=generateSqlTemplate(_0x5135fc),_0x28e87b=await createSqlQuery({'appCode':_0x461811[_0x3789d2(0x1ff)],'sqlName':_0x1aedbe,'dbId':_0x1c53d7,'sqlContent':_0x5064be}),_0x29e092=ensureRemoteSqlContent(_0x28e87b),_0x1ce530=_0x30fba7||await getDbName(_0x461811[_0x3789d2(0x1ff)],_0x1c53d7)[_0x3789d2(0x1c2)](()=>undefined),_0x37d223=buildSqlRelativePath(_0x28e87b['sqlCode'],_0x28e87b['sqlName'],_0x1ce530,_0x5135fc,_0x1c53d7),_0x500d73=_0x3d6d02[_0x3789d2(0x1da)]+'/'+_0x37d223,_0x410339=buildLocalSqlFileContent({'sqlCode':_0x28e87b[_0x3789d2(0x1f2)],'sqlName':_0x28e87b['sqlName'],'dbId':_0x28e87b[_0x3789d2(0x1e5)]},_0x29e092,{'dbName':_0x1ce530,'mode':_0x5135fc,'syncedAt':new Date()[_0x3789d2(0x1fb)](),'description':_0x28e87b['description']});if(await fileExists(_0x500d73))throw CliErrors['validation'](_0x3789d2(0x1e4)+_0x500d73);await ensureParentDirectory(_0x500d73),await writeFile(_0x500d73,_0x410339,'utf8');const _0x3599a4=await readSqlLockFile(_0x3d6d02[_0x3789d2(0x1ed)]),{lockData:_0x490774,appLock:_0x2fad1b}=ensureSqlLockScope(_0x3599a4??createEmptySqlLock(),_0x3d6d02[_0x3789d2(0x1ff)],_0x3d6d02[_0x3789d2(0x1d2)],_0x3789d2(0x1de));return _0x2fad1b[_0x3789d2(0x1d5)][_0x28e87b[_0x3789d2(0x1f2)]]={...buildSqlLockEntry(_0x28e87b,_0x29e092,computeSqlContentHash(_0x410339),{'dbName':_0x1ce530}),'path':_0x37d223,'mode':_0x5135fc},_0x2fad1b['lastSync']=new Date()[_0x3789d2(0x1fb)](),await writeSqlLockFile(_0x3d6d02[_0x3789d2(0x1ed)],_0x490774),{'ok':!![],'data':{'id':_0x28e87b['id'],'sqlCode':_0x28e87b[_0x3789d2(0x1f2)],'sqlName':_0x28e87b[_0x3789d2(0x1d3)],'dbId':_0x28e87b[_0x3789d2(0x1e5)],'path':_0x500d73,'mode':_0x5135fc},'message':'Created\x20SQL\x20query\x20'+_0x28e87b[_0x3789d2(0x1f2)]};}};async function resolveSqlNewInputs(_0x3f8107){const _0x72e4ea=await resolveSqlNameInput(_0x3f8107),{dbId:_0x95d438,dbName:_0x3296c2}=await resolveDbSelection(_0x3f8107),_0x2afff7=await resolveSqlModeInput(_0x3f8107);return{'sqlName':_0x72e4ea,'dbId':_0x95d438,'dbName':_0x3296c2,'mode':_0x2afff7};}async function resolveSqlNameInput(_0x1a1390){const _0x2509ff=a114_0x47b3f6,_0x216a82=_0x1a1390[_0x2509ff(0x1e9)](_0x2509ff(0x1ce))[_0x2509ff(0x1ec)]();if(_0x216a82)return _0x216a82;if(_0x1a1390['nonInteractive'])throw CliErrors[_0x2509ff(0x1fc)](_0x2509ff(0x1ce),_0x2509ff(0x1ee));return(await input({'message':_0x2509ff(0x1f9),'validate':_0x537d9f=>_0x537d9f[_0x2509ff(0x1ec)]()?!![]:'SQL\x20名称不能为空'}))['trim']();}function a114_0x1d70(_0x16368b,_0x3c3ccb){_0x16368b=_0x16368b-0x1c0;const _0x32d8a6=a114_0x32d8();let _0x1d703d=_0x32d8a6[_0x16368b];return _0x1d703d;}async function resolveDbSelection(_0x38c315){const _0x1eeddf=a114_0x47b3f6,_0x4ac451=resolveProvidedDbId(_0x38c315);if(typeof _0x4ac451===_0x1eeddf(0x1c0)&&Number['isFinite'](_0x4ac451)&&_0x4ac451>0x0)return{'dbId':_0x4ac451,'dbName':await getDbName(_0x38c315[_0x1eeddf(0x1ff)],_0x4ac451)[_0x1eeddf(0x1c2)](()=>undefined)};if(_0x38c315[_0x1eeddf(0x1d6)])throw CliErrors[_0x1eeddf(0x1fc)](_0x1eeddf(0x1f8),_0x1eeddf(0x1fe));const _0x121435=await listDatabases(_0x38c315[_0x1eeddf(0x1ff)])[_0x1eeddf(0x1c2)](()=>[]);if(_0x121435[_0x1eeddf(0x1f1)]===0x1)return{'dbId':_0x121435[0x0]['dbId'],'dbName':_0x121435[0x0]['dbName']};if(_0x121435[_0x1eeddf(0x1f1)]>0x1){const _0x4e2557=await select({'message':'请选择目标数据库:','choices':[..._0x121435[_0x1eeddf(0x1db)](_0x22a22b=>({'name':_0x22a22b[_0x1eeddf(0x1f7)]+'\x20('+_0x22a22b[_0x1eeddf(0x1e5)]+')','value':serializeDbSelection(_0x22a22b)})),{'name':_0x1eeddf(0x1fd),'value':_0x1eeddf(0x1e6)}]});if(_0x4e2557!==_0x1eeddf(0x1e6))return deserializeDbSelection(_0x4e2557);}const _0x4ca650=await input({'message':_0x1eeddf(0x1f5),'validate':_0x323783=>{const _0x5a1691=_0x1eeddf,_0x201581=_0x323783[_0x5a1691(0x1ec)]();if(!_0x201581)return _0x5a1691(0x1e3);const _0x4298c2=Number(_0x201581);if(!Number[_0x5a1691(0x1c3)](_0x4298c2)||_0x4298c2<=0x0)return _0x5a1691(0x1c9);return!![];}});return{'dbId':Number(_0x4ca650['trim']())};}async function resolveSqlModeInput(_0x5b929b){const _0x5bb811=a114_0x47b3f6,_0x2ea194=_0x5b929b[_0x5bb811(0x1e9)](_0x5bb811(0x1c5))[_0x5bb811(0x1ec)]();if(_0x2ea194===_0x5bb811(0x1c4)||_0x2ea194===_0x5bb811(0x1e2))return _0x2ea194;if(_0x5b929b[_0x5bb811(0x1d6)])throw CliErrors[_0x5bb811(0x1fc)](_0x5bb811(0x1c5),_0x5bb811(0x1fa));return await select({'message':_0x5bb811(0x1c8),'choices':[{'name':_0x5bb811(0x1f0),'value':_0x5bb811(0x1c4),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':'MyBatis\x20XML(mybatisXml)','value':'mybatisXml','description':_0x5bb811(0x1df)}]});}function serializeDbSelection(_0x39e92e){const _0x24cb22=a114_0x47b3f6;return JSON[_0x24cb22(0x1d1)]({'dbId':_0x39e92e[_0x24cb22(0x1e5)],'dbName':_0x39e92e['dbName']});}function deserializeDbSelection(_0x352b00){const _0x1da854=a114_0x47b3f6;try{const _0x451dbd=JSON[_0x1da854(0x1c6)](_0x352b00);if(typeof _0x451dbd[_0x1da854(0x1e5)]==='number'&&Number[_0x1da854(0x1ef)](_0x451dbd['dbId']))return{'dbId':_0x451dbd[_0x1da854(0x1e5)],'dbName':_0x451dbd[_0x1da854(0x1f7)]};}catch{}throw CliErrors[_0x1da854(0x1d9)]('Invalid\x20database\x20selection\x20payload:\x20'+_0x352b00);}function resolveProvidedDbId(_0x5e87cc){const _0x5e3996=a114_0x47b3f6,_0x35cf34=_0x5e87cc['flag']('db-id');if(typeof _0x35cf34==='number'&&Number[_0x5e3996(0x1ef)](_0x35cf34))return _0x35cf34;return undefined;}
@@ -1 +1 @@
1
- const a108_0x58cf12=a108_0x4161;(function(_0x40a0e9,_0x26019e){const _0x555a23=a108_0x4161,_0x18a205=_0x40a0e9();while(!![]){try{const _0xc52a9a=parseInt(_0x555a23(0x169))/0x1*(parseInt(_0x555a23(0x161))/0x2)+-parseInt(_0x555a23(0x16b))/0x3+-parseInt(_0x555a23(0x174))/0x4*(-parseInt(_0x555a23(0x170))/0x5)+-parseInt(_0x555a23(0x175))/0x6+-parseInt(_0x555a23(0x16d))/0x7+parseInt(_0x555a23(0x177))/0x8+parseInt(_0x555a23(0x179))/0x9;if(_0xc52a9a===_0x26019e)break;else _0x18a205['push'](_0x18a205['shift']());}catch(_0x16128a){_0x18a205['push'](_0x18a205['shift']());}}}(a108_0x3824,0xe462b));function a108_0x4161(_0x428d87,_0x34e573){_0x428d87=_0x428d87-0x15f;const _0x382449=a108_0x3824();let _0x4161d2=_0x382449[_0x428d87];return _0x4161d2;}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a108_0x3824(){const _0x45f7de=['high-risk-write','sqlRoot','replace','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','appCode','entries','Would\x20delete\x20SQL\x20','trashDir','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','str','1322ZBEcZa','sqlcode','toISOString','validation','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','filter','trashedTo','\x20(local\x20file\x20moved\x20to\x20trash)','1963cjrMjq','lastSync','1329681zFLXro','POST','1666546EaICih','lockFilePath','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','472950BMybEF','Deleted\x20','delete','fromEntries','68gRDCKy','9521292vuThBz','remoteId','364760nacnEq','SQL\x20lock\x20file\x20not\x20found.','2272374ykMGhD','sqls','startsWith'];a108_0x3824=function(){return _0x45f7de;};return a108_0x3824();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':a108_0x58cf12(0x172),'description':a108_0x58cf12(0x16f),'risk':a108_0x58cf12(0x17c),'flags':[SQLCODE_FLAG],async 'validate'(_0x3df8be){const _0xbf67de=a108_0x58cf12,_0x1bf68c=loadSqlProjectConfig(_0x3df8be[_0xbf67de(0x180)]),_0x1ac8d4=await readSqlLockFile(_0x1bf68c[_0xbf67de(0x16e)]);if(!_0x1ac8d4)throw CliErrors[_0xbf67de(0x164)](_0xbf67de(0x17f));},async 'dryRun'(_0xf34de2){const _0x22c26b=a108_0x58cf12,_0x2f5583=loadSqlProjectConfig(_0xf34de2['appCode']),_0x331271=await readSqlLockFile(_0x2f5583[_0x22c26b(0x16e)]);if(!_0x331271)throw CliErrors[_0x22c26b(0x164)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x8e4345}=ensureSqlLockScope(_0x331271,_0xf34de2['appCode'],_0x2f5583['sqlRoot'],_0x22c26b(0x172)),_0x2f212f=_0xf34de2['str']('sqlcode'),_0x1dd646=_0x8e4345[_0x22c26b(0x17a)][_0x2f212f];if(!_0x1dd646)throw CliErrors[_0x22c26b(0x164)](_0x22c26b(0x165)+_0x2f212f+'\x22.');return{'method':_0x22c26b(0x16c),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x2f212f,'id':_0x1dd646[_0x22c26b(0x176)],'localPath':resolveLocalSqlFilePath(_0x2f5583,_0x2f212f,_0x1dd646)},'description':_0x22c26b(0x182)+_0x2f212f+_0x22c26b(0x15f)+_0x2f5583[_0x22c26b(0x183)]};},async 'execute'(_0x11d7df){const _0x46139c=a108_0x58cf12,_0x2ebb86=loadSqlProjectConfig(_0x11d7df['appCode']),_0x3f6443=await readSqlLockFile(_0x2ebb86[_0x46139c(0x16e)]);if(!_0x3f6443)throw CliErrors[_0x46139c(0x164)](_0x46139c(0x178));const {lockData:_0x55304c,appLock:_0x40a28f}=ensureSqlLockScope(_0x3f6443,_0x11d7df[_0x46139c(0x180)],_0x2ebb86[_0x46139c(0x17d)],_0x46139c(0x172)),_0x1cd5ef=_0x11d7df[_0x46139c(0x160)](_0x46139c(0x162)),_0x28750e=_0x40a28f['sqls'][_0x1cd5ef];if(!_0x28750e)throw CliErrors[_0x46139c(0x164)](_0x46139c(0x165)+_0x1cd5ef+'\x22.');await deleteSqlQuery({'id':_0x28750e[_0x46139c(0x176)],'sqlCode':_0x1cd5ef}),_0x40a28f[_0x46139c(0x17a)]=Object[_0x46139c(0x173)](Object[_0x46139c(0x181)](_0x40a28f[_0x46139c(0x17a)])[_0x46139c(0x166)](([_0x34d1ba])=>_0x34d1ba!==_0x1cd5ef)),_0x40a28f[_0x46139c(0x16a)]=new Date()[_0x46139c(0x163)](),await writeSqlLockFile(_0x2ebb86['lockFilePath'],_0x55304c);const _0x4f882b=resolveLocalSqlFilePath(_0x2ebb86,_0x1cd5ef,_0x28750e);let _0x2db1bc;await fileExists(_0x4f882b)&&(_0x2db1bc=await moveToTrash(_0x2ebb86['projectRoot'],_0x2ebb86['trashDir'],_0x4f882b),await cleanupEmptyDirectories(dirname(_0x4f882b),_0x2ebb86['sqlRootDir']));const _0x1db015={'deleted':_0x1cd5ef,'remoteId':_0x28750e[_0x46139c(0x176)]};if(_0x2db1bc)_0x1db015[_0x46139c(0x167)]=_0x2db1bc;return{'ok':!![],'data':_0x1db015,'message':_0x46139c(0x171)+_0x1cd5ef+(_0x2db1bc?_0x46139c(0x168):'')};}};async function moveToTrash(_0x399701,_0x505e6d,_0x10ca2b){const _0x4c65e9=a108_0x58cf12,_0x108445=new Date()[_0x4c65e9(0x163)]()[_0x4c65e9(0x17e)](/[:.]/g,'-'),_0xb3ecf7=relative(_0x399701,_0x10ca2b),_0x4e17c9=join(_0x505e6d,_0x108445,_0xb3ecf7);return await mkdir(dirname(_0x4e17c9),{'recursive':!![]}),await rename(_0x10ca2b,_0x4e17c9),_0x4e17c9;}async function cleanupEmptyDirectories(_0x367176,_0x278df2){const _0x2a6162=a108_0x58cf12;let _0xb570d9=resolve(_0x367176);const _0x2e7f62=resolve(_0x278df2);while(_0xb570d9[_0x2a6162(0x17b)](''+_0x2e7f62+sep)||_0xb570d9===_0x2e7f62){if(_0xb570d9===_0x2e7f62)return;try{const _0x366c8f=await readdir(_0xb570d9);if(_0x366c8f['length']>0x0)return;await rmdir(_0xb570d9);}catch{return;}_0xb570d9=dirname(_0xb570d9);}}
1
+ const a115_0x18961a=a115_0x56c2;(function(_0x4aa324,_0x53e79c){const _0x1cedba=a115_0x56c2,_0x2d5466=_0x4aa324();while(!![]){try{const _0x52eb03=parseInt(_0x1cedba(0x142))/0x1*(-parseInt(_0x1cedba(0x14a))/0x2)+-parseInt(_0x1cedba(0x13f))/0x3+parseInt(_0x1cedba(0x151))/0x4*(parseInt(_0x1cedba(0x156))/0x5)+-parseInt(_0x1cedba(0x14c))/0x6*(parseInt(_0x1cedba(0x158))/0x7)+-parseInt(_0x1cedba(0x152))/0x8*(parseInt(_0x1cedba(0x153))/0x9)+parseInt(_0x1cedba(0x15a))/0xa+parseInt(_0x1cedba(0x146))/0xb;if(_0x52eb03===_0x53e79c)break;else _0x2d5466['push'](_0x2d5466['shift']());}catch(_0xd430e){_0x2d5466['push'](_0x2d5466['shift']());}}}(a115_0x2753,0xb9721));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';function a115_0x2753(){const _0x536541=['/smartapi/custom/deleteUserCustomSql','toISOString','str','sqlRoot','replace','lastSync','2726799CBkoLh','sqls','filter','5lMsTIU','trashDir','sqlcode','entries','34711380TBPQLB','appCode','length','sqlRootDir','531658HoGJaG','delete','6cFrJMk','validation','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','lockFilePath','236CByBBl','968208nwWAub','9YPfqsS','Deleted\x20','sql','119425pyGbAm','remoteId','10207022lScIxo','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','120400xtcerd','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','high-risk-write','SQL\x20lock\x20file\x20not\x20found.','projectRoot'];a115_0x2753=function(){return _0x536541;};return a115_0x2753();}function a115_0x56c2(_0x5b352d,_0x45f8aa){_0x5b352d=_0x5b352d-0x13a;const _0x27530b=a115_0x2753();let _0x56c232=_0x27530b[_0x5b352d];return _0x56c232;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a115_0x18961a(0x155),'command':a115_0x18961a(0x14b),'description':a115_0x18961a(0x14f),'risk':a115_0x18961a(0x15c),'flags':[SQLCODE_FLAG],async 'validate'(_0x108777){const _0x4ac44c=a115_0x18961a,_0x117941=loadSqlProjectConfig(_0x108777[_0x4ac44c(0x147)]),_0xf8f02=await readSqlLockFile(_0x117941[_0x4ac44c(0x150)]);if(!_0xf8f02)throw CliErrors['validation'](_0x4ac44c(0x14e));},async 'dryRun'(_0x5a691c){const _0x3c2085=a115_0x18961a,_0x5456c4=loadSqlProjectConfig(_0x5a691c[_0x3c2085(0x147)]),_0x357650=await readSqlLockFile(_0x5456c4[_0x3c2085(0x150)]);if(!_0x357650)throw CliErrors[_0x3c2085(0x14d)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x4ed9cb}=ensureSqlLockScope(_0x357650,_0x5a691c['appCode'],_0x5456c4[_0x3c2085(0x13c)],_0x3c2085(0x14b)),_0x582f10=_0x5a691c[_0x3c2085(0x13b)](_0x3c2085(0x144)),_0x5c7d29=_0x4ed9cb[_0x3c2085(0x140)][_0x582f10];if(!_0x5c7d29)throw CliErrors[_0x3c2085(0x14d)](_0x3c2085(0x159)+_0x582f10+'\x22.');return{'method':'POST','url':_0x3c2085(0x15f),'body':{'sqlCode':_0x582f10,'id':_0x5c7d29['remoteId'],'localPath':resolveLocalSqlFilePath(_0x5456c4,_0x582f10,_0x5c7d29)},'description':'Would\x20delete\x20SQL\x20'+_0x582f10+_0x3c2085(0x15b)+_0x5456c4[_0x3c2085(0x143)]};},async 'execute'(_0x564eb3){const _0x462ec3=a115_0x18961a,_0x165452=loadSqlProjectConfig(_0x564eb3[_0x462ec3(0x147)]),_0x2ef3e4=await readSqlLockFile(_0x165452[_0x462ec3(0x150)]);if(!_0x2ef3e4)throw CliErrors['validation'](_0x462ec3(0x15d));const {lockData:_0x14c61c,appLock:_0x207cbf}=ensureSqlLockScope(_0x2ef3e4,_0x564eb3['appCode'],_0x165452['sqlRoot'],'delete'),_0x565785=_0x564eb3['str'](_0x462ec3(0x144)),_0x5063f8=_0x207cbf[_0x462ec3(0x140)][_0x565785];if(!_0x5063f8)throw CliErrors['validation'](_0x462ec3(0x159)+_0x565785+'\x22.');await deleteSqlQuery({'id':_0x5063f8[_0x462ec3(0x157)],'sqlCode':_0x565785}),_0x207cbf[_0x462ec3(0x140)]=Object['fromEntries'](Object[_0x462ec3(0x145)](_0x207cbf['sqls'])[_0x462ec3(0x141)](([_0x3528e7])=>_0x3528e7!==_0x565785)),_0x207cbf[_0x462ec3(0x13e)]=new Date()[_0x462ec3(0x13a)](),await writeSqlLockFile(_0x165452[_0x462ec3(0x150)],_0x14c61c);const _0x375010=resolveLocalSqlFilePath(_0x165452,_0x565785,_0x5063f8);let _0x5f1c6d;await fileExists(_0x375010)&&(_0x5f1c6d=await moveToTrash(_0x165452[_0x462ec3(0x15e)],_0x165452[_0x462ec3(0x143)],_0x375010),await cleanupEmptyDirectories(dirname(_0x375010),_0x165452[_0x462ec3(0x149)]));const _0x5a34fd={'deleted':_0x565785,'remoteId':_0x5063f8[_0x462ec3(0x157)]};if(_0x5f1c6d)_0x5a34fd['trashedTo']=_0x5f1c6d;return{'ok':!![],'data':_0x5a34fd,'message':_0x462ec3(0x154)+_0x565785+(_0x5f1c6d?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x1bcfe8,_0x458c43,_0x53ad9c){const _0x1c162c=a115_0x18961a,_0x34be1d=new Date()[_0x1c162c(0x13a)]()[_0x1c162c(0x13d)](/[:.]/g,'-'),_0x144aa7=relative(_0x1bcfe8,_0x53ad9c),_0x1ec6d5=join(_0x458c43,_0x34be1d,_0x144aa7);return await mkdir(dirname(_0x1ec6d5),{'recursive':!![]}),await rename(_0x53ad9c,_0x1ec6d5),_0x1ec6d5;}async function cleanupEmptyDirectories(_0x8e364b,_0xbeaa80){const _0x5b41aa=a115_0x18961a;let _0x5b800f=resolve(_0x8e364b);const _0xfbf7f5=resolve(_0xbeaa80);while(_0x5b800f['startsWith'](''+_0xfbf7f5+sep)||_0x5b800f===_0xfbf7f5){if(_0x5b800f===_0xfbf7f5)return;try{const _0x3b0db2=await readdir(_0x5b800f);if(_0x3b0db2[_0x5b41aa(0x148)]>0x0)return;await rmdir(_0x5b800f);}catch{return;}_0x5b800f=dirname(_0x5b800f);}}
@@ -1 +1 @@
1
- const a109_0x36a34c=a109_0x3754;(function(_0x55ac2a,_0x5288bf){const _0x215db7=a109_0x3754,_0x58e463=_0x55ac2a();while(!![]){try{const _0x38f81e=parseInt(_0x215db7(0xd5))/0x1+-parseInt(_0x215db7(0xe1))/0x2*(-parseInt(_0x215db7(0xe0))/0x3)+parseInt(_0x215db7(0xdd))/0x4*(-parseInt(_0x215db7(0xdf))/0x5)+parseInt(_0x215db7(0xe9))/0x6*(-parseInt(_0x215db7(0xe7))/0x7)+-parseInt(_0x215db7(0xde))/0x8*(parseInt(_0x215db7(0xe4))/0x9)+parseInt(_0x215db7(0xd6))/0xa*(-parseInt(_0x215db7(0xd4))/0xb)+parseInt(_0x215db7(0xe8))/0xc*(parseInt(_0x215db7(0xe2))/0xd);if(_0x38f81e===_0x5288bf)break;else _0x58e463['push'](_0x58e463['shift']());}catch(_0x1976c5){_0x58e463['push'](_0x58e463['shift']());}}}(a109_0x292d,0x76fdb));function a109_0x3754(_0x1fb73b,_0x1d5a50){_0x1fb73b=_0x1fb73b-0xd3;const _0x292d5c=a109_0x292d();let _0x375410=_0x292d5c[_0x1fb73b];return _0x375410;}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':'detail','description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a109_0x36a34c(0xd9),'type':a109_0x36a34c(0xe3),'description':a109_0x36a34c(0xd8)}],async 'execute'(_0x2f33af){const _0x184ee6=a109_0x36a34c,_0xf22973=await getSqlQueryInfo(_0x2f33af[_0x184ee6(0xda)],_0x2f33af[_0x184ee6(0xe5)](_0x184ee6(0xdb))),_0x1245b5=_0x2f33af['bool'](_0x184ee6(0xd9));if(_0x1245b5)return{'ok':!![],'data':_0xf22973};const _0x39550b=_0xf22973[_0x184ee6(0xd7)]?await getDbName(_0x2f33af['appCode'],_0xf22973[_0x184ee6(0xd7)]):undefined;return{'ok':!![],'data':{'sqlCode':_0xf22973[_0x184ee6(0xe6)],'sqlName':_0xf22973[_0x184ee6(0xd3)],'db':_0x39550b?_0x39550b+'\x20('+_0xf22973[_0x184ee6(0xd7)]+')':_0xf22973[_0x184ee6(0xd7)]??'','description':_0xf22973['description']??'','sqlContent':_0xf22973[_0x184ee6(0xdc)]??''}};}};function a109_0x292d(){const _0x1163b2=['sqlName','55cAoByb','512324wLWQdG','896570oDIHgU','dbId','Return\x20full\x20raw\x20SQL\x20query\x20object','verbose','appCode','sqlcode','sqlContent','220KxkrSJ','11040KEqlBI','20675HnRPOx','2031FNwUEy','638RVIrQJ','26kRuCEc','boolean','4203AomrxR','str','sqlCode','1157716NlhIPM','8460276qLtQcy','12gbXgXj'];a109_0x292d=function(){return _0x1163b2;};return a109_0x292d();}
1
+ const a116_0x1efc14=a116_0x15e2;(function(_0x3f2fcf,_0x393dad){const _0x5cef3d=a116_0x15e2,_0x2ba5c5=_0x3f2fcf();while(!![]){try{const _0x4f77c5=-parseInt(_0x5cef3d(0x1d9))/0x1*(parseInt(_0x5cef3d(0x1da))/0x2)+parseInt(_0x5cef3d(0x1db))/0x3*(parseInt(_0x5cef3d(0x1e5))/0x4)+parseInt(_0x5cef3d(0x1d8))/0x5+-parseInt(_0x5cef3d(0x1eb))/0x6+-parseInt(_0x5cef3d(0x1e2))/0x7*(-parseInt(_0x5cef3d(0x1ed))/0x8)+parseInt(_0x5cef3d(0x1df))/0x9*(-parseInt(_0x5cef3d(0x1ea))/0xa)+parseInt(_0x5cef3d(0x1ec))/0xb*(parseInt(_0x5cef3d(0x1ef))/0xc);if(_0x4f77c5===_0x393dad)break;else _0x2ba5c5['push'](_0x2ba5c5['shift']());}catch(_0x5ba892){_0x2ba5c5['push'](_0x2ba5c5['shift']());}}}(a116_0xde1e,0xc4aae));function a116_0x15e2(_0x3735ca,_0x3f9663){_0x3735ca=_0x3735ca-0x1d7;const _0xde1eba=a116_0xde1e();let _0x15e20d=_0xde1eba[_0x3735ca];return _0x15e20d;}import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a116_0xde1e(){const _0x111523=['2Sxgfpb','27zHhNMG','dbId','description','boolean','9YHHyqY','sqlContent','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','2282588TMZave','bool','read','569012kANksF','verbose','Return\x20full\x20raw\x20SQL\x20query\x20object','appCode','detail','8069510anMrLA','9620100akcHbL','191015dxfnPI','24lBDWPA','sql','240DYpuho','sqlCode','7901625nPwNoM','970303mJemUO'];a116_0xde1e=function(){return _0x111523;};return a116_0xde1e();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a116_0x1efc14(0x1ee),'command':a116_0x1efc14(0x1e9),'description':a116_0x1efc14(0x1e1),'risk':a116_0x1efc14(0x1e4),'flags':[SQLCODE_FLAG,{'name':a116_0x1efc14(0x1e6),'type':a116_0x1efc14(0x1de),'description':a116_0x1efc14(0x1e7)}],async 'execute'(_0x9ce8ee){const _0x520794=a116_0x1efc14,_0x1e8a3f=await getSqlQueryInfo(_0x9ce8ee[_0x520794(0x1e8)],_0x9ce8ee['str']('sqlcode')),_0x494fac=_0x9ce8ee[_0x520794(0x1e3)]('verbose');if(_0x494fac)return{'ok':!![],'data':_0x1e8a3f};const _0x471e57=_0x1e8a3f['dbId']?await getDbName(_0x9ce8ee[_0x520794(0x1e8)],_0x1e8a3f[_0x520794(0x1dc)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x1e8a3f[_0x520794(0x1d7)],'sqlName':_0x1e8a3f['sqlName'],'db':_0x471e57?_0x471e57+'\x20('+_0x1e8a3f[_0x520794(0x1dc)]+')':_0x1e8a3f[_0x520794(0x1dc)]??'','description':_0x1e8a3f[_0x520794(0x1dd)]??'','sqlContent':_0x1e8a3f[_0x520794(0x1e0)]??''}};}};
@@ -1 +1 @@
1
- const a110_0x460f25=a110_0x5aa7;(function(_0x642d6b,_0x2e63e8){const _0x4a0f6a=a110_0x5aa7,_0x10a2de=_0x642d6b();while(!![]){try{const _0x1ffd18=-parseInt(_0x4a0f6a(0x163))/0x1+parseInt(_0x4a0f6a(0x15c))/0x2*(-parseInt(_0x4a0f6a(0x15d))/0x3)+-parseInt(_0x4a0f6a(0x164))/0x4+parseInt(_0x4a0f6a(0x15a))/0x5+-parseInt(_0x4a0f6a(0x169))/0x6+-parseInt(_0x4a0f6a(0x15e))/0x7*(parseInt(_0x4a0f6a(0x154))/0x8)+-parseInt(_0x4a0f6a(0x15f))/0x9*(-parseInt(_0x4a0f6a(0x157))/0xa);if(_0x1ffd18===_0x2e63e8)break;else _0x10a2de['push'](_0x10a2de['shift']());}catch(_0x415bb1){_0x10a2de['push'](_0x10a2de['shift']());}}}(a110_0x1359,0x395ed));function a110_0x5aa7(_0x17d422,_0x260b59){_0x17d422=_0x17d422-0x151;const _0x13593f=a110_0x1359();let _0x5aa76c=_0x13593f[_0x17d422];return _0x5aa76c;}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':'sql','command':a110_0x460f25(0x151),'description':a110_0x460f25(0x167),'risk':a110_0x460f25(0x15b),'flags':[SQLCODE_FLAG,{'name':a110_0x460f25(0x160),'type':a110_0x460f25(0x153),'description':a110_0x460f25(0x156)}],async 'execute'(_0x452f15){const _0xd23b9d=a110_0x460f25,_0x17c38b=parseJsonParams(_0x452f15['str']('params')),_0x45452d=Date[_0xd23b9d(0x165)](),_0x21cc60=await executeSql(_0x452f15[_0xd23b9d(0x155)],_0x452f15[_0xd23b9d(0x168)](_0xd23b9d(0x162)),_0x17c38b),_0xa293cb=Date['now']()-_0x45452d,_0x48a0ce=_0x21cc60?.[_0xd23b9d(0x158)]??_0x21cc60,_0x3caf99=_0x21cc60?.[_0xd23b9d(0x159)]??!![];if(!_0x3caf99)return{'ok':![],'data':{'error':_0x21cc60?.[_0xd23b9d(0x166)]||'SQL\x20execution\x20failed','elapsed':_0xa293cb},'message':_0xd23b9d(0x161)};const _0x4e91a7=Array['isArray'](_0x48a0ce)?_0x48a0ce:[];return{'ok':!![],'data':{'rows':_0x4e91a7,'rowCount':_0x4e91a7['length'],'elapsed':_0xa293cb},'message':'Returned\x20'+_0x4e91a7[_0xd23b9d(0x152)]+'\x20row(s)\x20in\x20'+_0xa293cb+'ms'};}};function a110_0x1359(){const _0x50b07e=['string','40WVHMzn','appCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','533050LGLCcW','execResult','execSuccess','1044725RCJbnp','read','16DHHICE','107367oMPpjJ','174034eOKihT','171piCqaA','params','SQL\x20execution\x20failed','sqlcode','105046eOebwI','1242464nRuEon','now','execError','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','str','962802LeZHVR','exec','length'];a110_0x1359=function(){return _0x50b07e;};return a110_0x1359();}
1
+ const a117_0x7e8080=a117_0x4779;(function(_0x4f8e17,_0x55178c){const _0x4c84f3=a117_0x4779,_0x1be55e=_0x4f8e17();while(!![]){try{const _0x246a51=-parseInt(_0x4c84f3(0x1ea))/0x1+parseInt(_0x4c84f3(0x1ee))/0x2*(parseInt(_0x4c84f3(0x1e8))/0x3)+parseInt(_0x4c84f3(0x1ef))/0x4*(-parseInt(_0x4c84f3(0x1ed))/0x5)+parseInt(_0x4c84f3(0x1f6))/0x6*(parseInt(_0x4c84f3(0x1e1))/0x7)+-parseInt(_0x4c84f3(0x1f7))/0x8+parseInt(_0x4c84f3(0x1e2))/0x9+-parseInt(_0x4c84f3(0x1f8))/0xa;if(_0x246a51===_0x55178c)break;else _0x1be55e['push'](_0x1be55e['shift']());}catch(_0x91a831){_0x1be55e['push'](_0x1be55e['shift']());}}}(a117_0x1e98,0x774f1));import{executeSql}from'../../core/api-client.js';function a117_0x4779(_0x3d64c8,_0x12df97){_0x3d64c8=_0x3d64c8-0x1e0;const _0x1e982a=a117_0x1e98();let _0x4779b2=_0x1e982a[_0x3d64c8];return _0x4779b2;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':'sql','command':a117_0x7e8080(0x1f2),'description':a117_0x7e8080(0x1e4),'risk':a117_0x7e8080(0x1e5),'flags':[SQLCODE_FLAG,{'name':a117_0x7e8080(0x1eb),'type':a117_0x7e8080(0x1e9),'description':a117_0x7e8080(0x1e7)}],async 'execute'(_0x14a5e6){const _0xab51f0=a117_0x7e8080,_0x1a718d=parseJsonParams(_0x14a5e6['str'](_0xab51f0(0x1eb))),_0x41abca=Date[_0xab51f0(0x1f5)](),_0x4a0529=await executeSql(_0x14a5e6[_0xab51f0(0x1e6)],_0x14a5e6['str'](_0xab51f0(0x1ec)),_0x1a718d),_0x4e3580=Date[_0xab51f0(0x1f5)]()-_0x41abca,_0x29798a=_0x4a0529?.[_0xab51f0(0x1f3)]??_0x4a0529,_0x3e21fb=_0x4a0529?.['execSuccess']??!![];if(!_0x3e21fb)return{'ok':![],'data':{'error':_0x4a0529?.[_0xab51f0(0x1f0)]||'SQL\x20execution\x20failed','elapsed':_0x4e3580},'message':_0xab51f0(0x1e0)};const _0x2fe826=Array['isArray'](_0x29798a)?_0x29798a:[];return{'ok':!![],'data':{'rows':_0x2fe826,'rowCount':_0x2fe826[_0xab51f0(0x1e3)],'elapsed':_0x4e3580},'message':_0xab51f0(0x1f4)+_0x2fe826[_0xab51f0(0x1e3)]+_0xab51f0(0x1f1)+_0x4e3580+'ms'};}};function a117_0x1e98(){const _0x76eb07=['Returned\x20','now','5079234wVKkVS','3749544NHQLNk','13226350qkdbkI','SQL\x20execution\x20failed','7JzqngE','7064847WdWqUE','length','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','read','appCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','3qhysXV','string','35598ioZxvj','params','sqlcode','13010PWcrZC','1482674iojNxp','88TCqTGc','execError','\x20row(s)\x20in\x20','exec','execResult'];a117_0x1e98=function(){return _0x76eb07;};return a117_0x1e98();}
@@ -1 +1 @@
1
- (function(_0x49ec50,_0x198316){const _0x4629f7=a111_0x31c8,_0x34ab0a=_0x49ec50();while(!![]){try{const _0x16b6be=-parseInt(_0x4629f7(0x16f))/0x1+-parseInt(_0x4629f7(0x171))/0x2+-parseInt(_0x4629f7(0x172))/0x3+parseInt(_0x4629f7(0x173))/0x4*(-parseInt(_0x4629f7(0x16e))/0x5)+parseInt(_0x4629f7(0x174))/0x6+-parseInt(_0x4629f7(0x175))/0x7+parseInt(_0x4629f7(0x170))/0x8;if(_0x16b6be===_0x198316)break;else _0x34ab0a['push'](_0x34ab0a['shift']());}catch(_0x2fa52c){_0x34ab0a['push'](_0x34ab0a['shift']());}}}(a111_0x23f1,0xebc92));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 a111_0x31c8(_0x53c789,_0x5250e6){_0x53c789=_0x53c789-0x16e;const _0x23f1aa=a111_0x23f1();let _0x31c89c=_0x23f1aa[_0x53c789];return _0x31c89c;}function a111_0x23f1(){const _0x1e9fbb=['4DLwSzn','2526066eKEuEK','6856766fiLMCa','3070460BNFXuP','913469sWwbrW','33970112EdAqJe','1330312KnsHfC','1587726KhQTYa'];a111_0x23f1=function(){return _0x1e9fbb;};return a111_0x23f1();}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x34f6b8,_0x30ecbe){const _0x23af7c=a118_0x1cc6,_0x488c69=_0x34f6b8();while(!![]){try{const _0x18a2f9=parseInt(_0x23af7c(0x1d5))/0x1*(-parseInt(_0x23af7c(0x1d3))/0x2)+-parseInt(_0x23af7c(0x1cd))/0x3*(parseInt(_0x23af7c(0x1d2))/0x4)+-parseInt(_0x23af7c(0x1d0))/0x5*(-parseInt(_0x23af7c(0x1cc))/0x6)+-parseInt(_0x23af7c(0x1cf))/0x7+parseInt(_0x23af7c(0x1d1))/0x8+-parseInt(_0x23af7c(0x1ce))/0x9+parseInt(_0x23af7c(0x1d4))/0xa*(parseInt(_0x23af7c(0x1d6))/0xb);if(_0x18a2f9===_0x30ecbe)break;else _0x488c69['push'](_0x488c69['shift']());}catch(_0x387f77){_0x488c69['push'](_0x488c69['shift']());}}}(a118_0x8d39,0x484c6));function a118_0x8d39(){const _0x81dd83=['120860ObYUTp','1490ssMFFX','6bXhteK','32626RikUVW','1067988RPwunX','228402qSCaEL','1456155gSOiNh','3312113lMNYnV','15ARVNBz','4369136OgJFqq','12dARPXY'];a118_0x8d39=function(){return _0x81dd83;};return a118_0x8d39();}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 a118_0x1cc6(_0x3bc14f,_0x18d643){_0x3bc14f=_0x3bc14f-0x1cc;const _0x8d3976=a118_0x8d39();let _0x1cc6f7=_0x8d3976[_0x3bc14f];return _0x1cc6f7;}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a112_0x2c6624=a112_0x4c20;(function(_0xa114a3,_0x424cb1){const _0x4f3049=a112_0x4c20,_0x20aeea=_0xa114a3();while(!![]){try{const _0x1e624b=-parseInt(_0x4f3049(0x1cc))/0x1*(-parseInt(_0x4f3049(0x1ce))/0x2)+parseInt(_0x4f3049(0x1ba))/0x3*(-parseInt(_0x4f3049(0x1c0))/0x4)+-parseInt(_0x4f3049(0x1ca))/0x5+-parseInt(_0x4f3049(0x1c7))/0x6+parseInt(_0x4f3049(0x1cf))/0x7+-parseInt(_0x4f3049(0x1c6))/0x8+parseInt(_0x4f3049(0x1c1))/0x9;if(_0x1e624b===_0x424cb1)break;else _0x20aeea['push'](_0x20aeea['shift']());}catch(_0x1f0f4a){_0x20aeea['push'](_0x20aeea['shift']());}}}(a112_0x35eb,0x2f5cc));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a112_0x4c20(_0x3e7561,_0x254a4d){_0x3e7561=_0x3e7561-0x1b7;const _0x35ebc5=a112_0x35eb();let _0x4c20d9=_0x35ebc5[_0x3e7561];return _0x4c20d9;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a112_0x2c6624(0x1c9),'description':'List\x20custom\x20SQL\x20queries','risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a112_0x2c6624(0x1c5),'type':a112_0x2c6624(0x1b9),'description':a112_0x2c6624(0x1cd)},{'name':'page','type':a112_0x2c6624(0x1c3),'description':a112_0x2c6624(0x1d4),'default':0x1},{'name':a112_0x2c6624(0x1cb),'type':'number','description':a112_0x2c6624(0x1b7)},{'name':'verbose','type':'boolean','description':a112_0x2c6624(0x1bb)}],async 'execute'(_0x4c79cd){const _0x205cf2=a112_0x2c6624,_0x15d94a=await listSqlQueries(_0x4c79cd['appCode'],{'sqlCode':_0x4c79cd[_0x205cf2(0x1bc)](_0x205cf2(0x1c2))||undefined,'sqlName':_0x4c79cd['str']('name')||undefined,'currentPage':_0x4c79cd[_0x205cf2(0x1b8)](_0x205cf2(0x1d0)),'pageSize':_0x4c79cd[_0x205cf2(0x1b8)]('pagesize',0x32)}),_0x4b4997=_0x4c79cd['bool'](_0x205cf2(0x1c4)),_0x390dd7=_0x15d94a['tableData']??[],_0x516561=_0x15d94a['paging']?.['totalCount']??_0x390dd7[_0x205cf2(0x1d3)];let _0x5f0166;return _0x4b4997?_0x5f0166=_0x390dd7:_0x5f0166=await Promise[_0x205cf2(0x1d5)](_0x390dd7['map'](async _0x36a9f1=>{const _0x5d985c=_0x205cf2;let _0x55d6f4;try{_0x55d6f4=_0x36a9f1['dbId']?await getDbName(_0x4c79cd['appCode'],_0x36a9f1[_0x5d985c(0x1c8)]):undefined;}catch{}return{'sqlCode':_0x36a9f1[_0x5d985c(0x1d6)],'sqlName':_0x36a9f1[_0x5d985c(0x1be)],'description':_0x36a9f1[_0x5d985c(0x1bd)]??'','db':_0x55d6f4?_0x55d6f4+'\x20('+_0x36a9f1[_0x5d985c(0x1c8)]+')':_0x36a9f1[_0x5d985c(0x1c8)]??''};})),{'ok':!![],'data':_0x5f0166,'message':_0x390dd7[_0x205cf2(0x1d3)]===0x0?_0x205cf2(0x1d2):_0x205cf2(0x1d1)+_0x390dd7['length']+_0x205cf2(0x1bf)+_0x516561+').'};}};function a112_0x35eb(){const _0x30d70f=['1603464dNtwwd','198828hNkGPm','dbId','list','823615ummnug','pagesize','85543zjYHlr','Filter\x20by\x20SQL\x20name','2aEFubw','2187948Mccjmf','page','Found\x20','No\x20custom\x20SQL\x20queries\x20found.','length','Page\x20number','all','sqlCode','Page\x20size','num','string','62919iNkKvU','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','str','description','sqlName','\x20SQL\x20queries\x20(total:\x20','20maHuCh','2691432ShycLp','sqlcode','number','verbose','name'];a112_0x35eb=function(){return _0x30d70f;};return a112_0x35eb();}
1
+ function a119_0x394e(_0x5d8494,_0x596b04){_0x5d8494=_0x5d8494-0x189;const _0x555fd3=a119_0x555f();let _0x394e9a=_0x555fd3[_0x5d8494];return _0x394e9a;}const a119_0x378219=a119_0x394e;(function(_0x5a670d,_0x340830){const _0x377178=a119_0x394e,_0x3c0c4d=_0x5a670d();while(!![]){try{const _0x3a742c=-parseInt(_0x377178(0x191))/0x1*(parseInt(_0x377178(0x18f))/0x2)+parseInt(_0x377178(0x1aa))/0x3+-parseInt(_0x377178(0x1a1))/0x4*(parseInt(_0x377178(0x197))/0x5)+parseInt(_0x377178(0x18d))/0x6+parseInt(_0x377178(0x195))/0x7*(-parseInt(_0x377178(0x18c))/0x8)+-parseInt(_0x377178(0x1a7))/0x9*(parseInt(_0x377178(0x19d))/0xa)+parseInt(_0x377178(0x1a3))/0xb;if(_0x3a742c===_0x340830)break;else _0x3c0c4d['push'](_0x3c0c4d['shift']());}catch(_0x3cc56c){_0x3c0c4d['push'](_0x3c0c4d['shift']());}}}(a119_0x555f,0x7d5d1));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a119_0x555f(){const _0x4ee834=['1426342FPmQLO','bool','1mjLypJ','str','List\x20custom\x20SQL\x20queries','sqlName','5180TTxJxD','name','3697070tBuOvI','sql','tableData','totalCount','boolean','appCode','29570svNKWA','verbose','Page\x20number','page','4dNfYQo','pagesize','20774149xouJHc','sqlcode','map','read','2205ZKvCNp','all','length','1313589aQoYqK','dbId','list','No\x20custom\x20SQL\x20queries\x20found.','1856QiLvxt','3214782CEXtmv','number'];a119_0x555f=function(){return _0x4ee834;};return a119_0x555f();}export const sqlList={'service':a119_0x378219(0x198),'command':a119_0x378219(0x18a),'description':a119_0x378219(0x193),'risk':a119_0x378219(0x1a6),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':'Filter\x20by\x20SQL\x20name'},{'name':a119_0x378219(0x1a0),'type':'number','description':a119_0x378219(0x19f),'default':0x1},{'name':a119_0x378219(0x1a2),'type':a119_0x378219(0x18e),'description':'Page\x20size'},{'name':a119_0x378219(0x19e),'type':a119_0x378219(0x19b),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x3b2e82){const _0x2014c0=a119_0x378219,_0x36100b=await listSqlQueries(_0x3b2e82[_0x2014c0(0x19c)],{'sqlCode':_0x3b2e82['str'](_0x2014c0(0x1a4))||undefined,'sqlName':_0x3b2e82[_0x2014c0(0x192)](_0x2014c0(0x196))||undefined,'currentPage':_0x3b2e82['num'](_0x2014c0(0x1a0)),'pageSize':_0x3b2e82['num'](_0x2014c0(0x1a2),0x32)}),_0x3266e8=_0x3b2e82[_0x2014c0(0x190)](_0x2014c0(0x19e)),_0x1b1def=_0x36100b[_0x2014c0(0x199)]??[],_0xda45a2=_0x36100b['paging']?.[_0x2014c0(0x19a)]??_0x1b1def['length'];let _0x470766;return _0x3266e8?_0x470766=_0x1b1def:_0x470766=await Promise[_0x2014c0(0x1a8)](_0x1b1def[_0x2014c0(0x1a5)](async _0x225094=>{const _0x553c9d=_0x2014c0;let _0x56d5ea;try{_0x56d5ea=_0x225094[_0x553c9d(0x189)]?await getDbName(_0x3b2e82[_0x553c9d(0x19c)],_0x225094[_0x553c9d(0x189)]):undefined;}catch{}return{'sqlCode':_0x225094['sqlCode'],'sqlName':_0x225094[_0x553c9d(0x194)],'description':_0x225094['description']??'','db':_0x56d5ea?_0x56d5ea+'\x20('+_0x225094[_0x553c9d(0x189)]+')':_0x225094[_0x553c9d(0x189)]??''};})),{'ok':!![],'data':_0x470766,'message':_0x1b1def[_0x2014c0(0x1a9)]===0x0?_0x2014c0(0x18b):'Found\x20'+_0x1b1def[_0x2014c0(0x1a9)]+'\x20SQL\x20queries\x20(total:\x20'+_0xda45a2+').'};}};
@@ -1 +1 @@
1
- const a113_0x1cf11c=a113_0x5330;(function(_0x23a7c4,_0x5d51de){const _0xba1654=a113_0x5330,_0x522069=_0x23a7c4();while(!![]){try{const _0x4a076=-parseInt(_0xba1654(0xe9))/0x1*(-parseInt(_0xba1654(0xf0))/0x2)+-parseInt(_0xba1654(0x113))/0x3*(parseInt(_0xba1654(0xd9))/0x4)+parseInt(_0xba1654(0xea))/0x5*(-parseInt(_0xba1654(0xe7))/0x6)+-parseInt(_0xba1654(0xdf))/0x7+-parseInt(_0xba1654(0xe8))/0x8*(-parseInt(_0xba1654(0xf9))/0x9)+-parseInt(_0xba1654(0x107))/0xa*(parseInt(_0xba1654(0x10d))/0xb)+parseInt(_0xba1654(0xed))/0xc;if(_0x4a076===_0x5d51de)break;else _0x522069['push'](_0x522069['shift']());}catch(_0x33537d){_0x522069['push'](_0x522069['shift']());}}}(a113_0x1376,0xb5909));function a113_0x1376(){const _0x150923=['filter','skipped','write','name','appCode','bool','description','6MBukoS','65232jtLbQG','125mppoRz','3723605yEfKsn','unchanged','test','32104236FThzRD','path','lastSync','11420vBCUfv','Pull\x20complete:\x20','toISOString','mybatisXml','message','length','Force\x20overwrite\x20local\x20unsynced\x20changes','paging','Would\x20pull\x20','567UpFEoA','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','lockFilePath','sqlContent','sqlName','\x20skipped,\x20','Filter\x20by\x20SQL\x20display\x20name','sqlRootDir','\x20failed','sql','str','sqlcode','force','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','110gaxUvo','catch','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','POST','\x20written,\x20','tableData','680471lqxTAo','nonInteractive','sqls','sqlCode','sqlRoot','utf8','312891PaGbmx','string','No\x20remote\x20SQL\x20queries\x20matched.','replace','join','push','44PGatgg','conflict','boolean','dbId','pull','local\x20differs\x20from\x20remote','4106599HwluCr'];a113_0x1376=function(){return _0x150923;};return a113_0x1376();}import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x1e4127,_0x1a74ec){const _0x3cb3d3=a113_0x5330,_0x583309=[];let _0x10bd70=0x1;while(!![]){const _0x25ce9c=await listSqlQueries(_0x1e4127,{'currentPage':_0x10bd70,'pageSize':PAGE_SIZE,'sqlCode':_0x1a74ec[_0x3cb3d3(0x110)],'sqlName':_0x1a74ec['sqlName']}),_0x398979=_0x25ce9c[_0x3cb3d3(0x10c)]??[];_0x583309[_0x3cb3d3(0xd8)](..._0x398979);if(_0x398979[_0x3cb3d3(0xf5)]===0x0)break;const _0x436c01=_0x25ce9c[_0x3cb3d3(0xf7)]?.['totalCount'];if(_0x436c01!=null?_0x583309[_0x3cb3d3(0xf5)]>=_0x436c01:_0x398979[_0x3cb3d3(0xf5)]<PAGE_SIZE)break;_0x10bd70++;}return _0x583309;}async function ensureSqlContent(_0x5e4bb5){const _0x1a5bb9=a113_0x5330;if(_0x5e4bb5[_0x1a5bb9(0xfc)]!=null&&String(_0x5e4bb5['sqlContent'])['length']>0x0)return _0x5e4bb5;return getSqlQueryDetail(_0x5e4bb5[_0x1a5bb9(0x110)]);}export const sqlPull={'service':'sql','command':a113_0x1cf11c(0xdd),'description':a113_0x1cf11c(0xfa),'risk':a113_0x1cf11c(0xe2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a113_0x1cf11c(0xe3),'type':a113_0x1cf11c(0x114),'description':a113_0x1cf11c(0xff)},{'name':a113_0x1cf11c(0x105),'type':a113_0x1cf11c(0xdb),'description':a113_0x1cf11c(0xf6)}],async 'dryRun'(_0x13874f){const _0x3a0b60=a113_0x1cf11c,_0x1a7fb0=loadSqlProjectConfig(_0x13874f[_0x3a0b60(0xe4)]),_0x3408a9=await readSqlLockFile(_0x1a7fb0[_0x3a0b60(0xfb)]),{appLock:_0x35b949}=ensureSqlLockScope(_0x3408a9??createEmptySqlLock(),_0x1a7fb0['appCode'],_0x1a7fb0['sqlRoot'],'pull'),_0x9fe2eb=await fetchAllSqlQueries(_0x13874f[_0x3a0b60(0xe4)],{'sqlCode':_0x13874f[_0x3a0b60(0x103)]('sqlcode')||undefined,'sqlName':_0x13874f[_0x3a0b60(0x103)](_0x3a0b60(0xe3))||undefined}),_0x16bb60=[];for(const _0x1f76bb of _0x9fe2eb){const _0x392cd1=await ensureSqlContent(_0x1f76bb),_0x4c8fa4=ensureRemoteSqlContent(_0x392cd1),_0x31b79c=detectModeFromSql(_0x392cd1),_0x2673c9=_0x392cd1[_0x3a0b60(0xdc)]?await getDbName(_0x13874f[_0x3a0b60(0xe4)],Number(_0x392cd1['dbId']))[_0x3a0b60(0x108)](()=>undefined):undefined,_0x289e2d=buildLocalSqlFileContent({'sqlCode':_0x392cd1['sqlCode'],'sqlName':_0x392cd1[_0x3a0b60(0xfd)],'dbId':_0x392cd1[_0x3a0b60(0xdc)]},_0x4c8fa4,{'dbName':_0x2673c9,'mode':_0x31b79c,'syncedAt':new Date()[_0x3a0b60(0xf2)](),'description':_0x392cd1[_0x3a0b60(0xe6)]}),_0x23afb5=buildSqlLockEntry(_0x392cd1,_0x4c8fa4,'',{'dbName':_0x2673c9}),_0x951126=resolveLocalSqlFilePath(_0x1a7fb0,_0x392cd1[_0x3a0b60(0x110)],_0x23afb5);let _0x30cc18='would_pull',_0x29f25e;if(await fileExists(_0x951126)){const _0x339b56=await readFile(_0x951126,_0x3a0b60(0x112));isEquivalentPulledSqlFile(_0x339b56,_0x289e2d,_0x31b79c)?(_0x30cc18=_0x3a0b60(0xe1),_0x29f25e=_0x3a0b60(0xeb)):(_0x30cc18=_0x3a0b60(0xda),_0x29f25e='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x16bb60[_0x3a0b60(0xd8)]({'sqlCode':_0x392cd1['sqlCode'],'sqlName':_0x392cd1['sqlName'],'filePath':_0x951126,'status':_0x30cc18,'reason':_0x29f25e});}return{'method':_0x3a0b60(0x10a),'url':_0x3a0b60(0x109),'body':{'appCode':_0x13874f['appCode'],'sqlCode':_0x13874f[_0x3a0b60(0x103)](_0x3a0b60(0x104))||null,'sqlName':_0x13874f['str'](_0x3a0b60(0xe3))||null,'files':_0x16bb60},'description':_0x3a0b60(0xf8)+_0x16bb60[_0x3a0b60(0xf5)]+'\x20SQL\x20file(s)\x20into\x20'+_0x1a7fb0[_0x3a0b60(0x100)]};},async 'execute'(_0x316a51){const _0x9c0a08=a113_0x1cf11c,_0x6e37ce=loadSqlProjectConfig(_0x316a51[_0x9c0a08(0xe4)]),_0x4f3a25=await readSqlLockFile(_0x6e37ce[_0x9c0a08(0xfb)]),{lockData:_0x2c2bad,appLock:_0x4d1bbc}=ensureSqlLockScope(_0x4f3a25??createEmptySqlLock(),_0x6e37ce[_0x9c0a08(0xe4)],_0x6e37ce[_0x9c0a08(0x111)],_0x9c0a08(0xdd)),_0x1e406e=_0x316a51[_0x9c0a08(0xe5)](_0x9c0a08(0x105)),_0x31e06e=await fetchAllSqlQueries(_0x316a51[_0x9c0a08(0xe4)],{'sqlCode':_0x316a51[_0x9c0a08(0x103)](_0x9c0a08(0x104))||undefined,'sqlName':_0x316a51[_0x9c0a08(0x103)]('name')||undefined});if(_0x31e06e[_0x9c0a08(0xf5)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x9c0a08(0x115)};const _0x52148a=[],_0x306c1e=[];for(const _0x117375 of _0x31e06e){try{_0x52148a[_0x9c0a08(0xd8)](await ensureSqlContent(_0x117375));}catch(_0x1a6487){_0x306c1e[_0x9c0a08(0xd8)]({'sqlCode':_0x117375[_0x9c0a08(0x110)],'error':_0x1a6487 instanceof Error?_0x1a6487[_0x9c0a08(0xf4)]:String(_0x1a6487)});}}if(_0x1e406e&&!_0x316a51[_0x9c0a08(0x10e)]){let _0x3ff22f=![];for(const _0x12ed1e of _0x52148a){const _0xe1b03f=detectModeFromSql(_0x12ed1e),_0x275fa5=_0x12ed1e[_0x9c0a08(0xdc)]?await getDbName(_0x316a51['appCode'],Number(_0x12ed1e['dbId']))[_0x9c0a08(0x108)](()=>undefined):undefined,_0x193a9c=buildLocalSqlFileContent({'sqlCode':_0x12ed1e['sqlCode'],'sqlName':_0x12ed1e[_0x9c0a08(0xfd)],'dbId':_0x12ed1e[_0x9c0a08(0xdc)]},ensureRemoteSqlContent(_0x12ed1e),{'dbName':_0x275fa5,'mode':_0xe1b03f,'syncedAt':new Date()[_0x9c0a08(0xf2)](),'description':_0x12ed1e[_0x9c0a08(0xe6)]}),_0x481fda=resolveLocalSqlFilePath(_0x6e37ce,_0x12ed1e[_0x9c0a08(0x110)],buildSqlLockEntry(_0x12ed1e,ensureRemoteSqlContent(_0x12ed1e),'',{'dbName':_0x275fa5}));if(await fileExists(_0x481fda)){const _0x50cd47=await readFile(_0x481fda,'utf8');if(!isEquivalentPulledSqlFile(_0x50cd47,_0x193a9c,_0xe1b03f)){_0x3ff22f=!![];break;}}}if(_0x3ff22f){const _0x4b2cba=await confirmForceOverwrite(_0x9c0a08(0x106));if(!_0x4b2cba)throw CliErrors['cancelled']('Force\x20pull\x20cancelled.');}}const _0x59a28c=cloneSqlLockData(_0x2c2bad),_0x9b09b0=_0x59a28c['apps'][_0x6e37ce['appCode']],_0x1176df=[],_0x24f404=[];for(const _0x42f7df of _0x52148a){const _0x597e22=_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df[_0x9c0a08(0x110)]],_0x483370=ensureRemoteSqlContent(_0x42f7df),_0x208c03=detectModeFromSql(_0x42f7df),_0x4dd589=_0x42f7df[_0x9c0a08(0xdc)]?await getDbName(_0x316a51[_0x9c0a08(0xe4)],Number(_0x42f7df['dbId']))[_0x9c0a08(0x108)](()=>undefined):undefined,_0x5d3e31=buildLocalSqlFileContent({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'sqlName':_0x42f7df[_0x9c0a08(0xfd)],'dbId':_0x42f7df[_0x9c0a08(0xdc)]},_0x483370,{'dbName':_0x4dd589,'mode':_0x208c03,'syncedAt':new Date()['toISOString'](),'description':_0x42f7df['description']}),_0x40cdeb=buildSqlLockEntry(_0x42f7df,_0x483370,computeSqlContentHash(_0x5d3e31),{'dbName':_0x4dd589}),_0xcdf2a1=_0x40cdeb[_0x9c0a08(0xee)],_0x753eea=join(_0x6e37ce['sqlRootDir'],_0xcdf2a1);try{if(await fileExists(_0x753eea)){const _0x21dcca=await readFile(_0x753eea,'utf8');if(isEquivalentPulledSqlFile(_0x21dcca,_0x5d3e31,_0x208c03)){_0x24f404['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'reason':_0x9c0a08(0xeb)}),_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df['sqlCode']]={..._0x40cdeb,'hash':computeSqlContentHash(_0x21dcca),'path':_0xcdf2a1};continue;}if(!_0x1e406e){_0x24f404['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'reason':_0x9c0a08(0xde)});continue;}}const _0x3622eb=_0x597e22?.[_0x9c0a08(0xee)]?join(_0x6e37ce[_0x9c0a08(0x100)],_0x597e22[_0x9c0a08(0xee)]):undefined;_0x3622eb&&_0x3622eb!==_0x753eea&&await fileExists(_0x3622eb)&&await rm(_0x3622eb,{'force':!![]}),await ensureParentDirectory(_0x753eea),await writeFile(_0x753eea,_0x5d3e31,_0x9c0a08(0x112)),_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df[_0x9c0a08(0x110)]]={..._0x40cdeb,'path':_0xcdf2a1},_0x1176df[_0x9c0a08(0xd8)]({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'filePath':_0x753eea});}catch(_0x43c82a){_0x306c1e['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'error':_0x43c82a instanceof Error?_0x43c82a[_0x9c0a08(0xf4)]:String(_0x43c82a)});}}return _0x9b09b0[_0x9c0a08(0xef)]=new Date()[_0x9c0a08(0xf2)](),await writeSqlLockFile(_0x6e37ce[_0x9c0a08(0xfb)],_0x59a28c),{'ok':_0x306c1e[_0x9c0a08(0xf5)]===0x0,'data':{'pulled':_0x1176df,'skipped':_0x24f404,'failed':_0x306c1e},'message':_0x9c0a08(0xf1)+_0x1176df[_0x9c0a08(0xf5)]+_0x9c0a08(0x10b)+_0x24f404[_0x9c0a08(0xf5)]+_0x9c0a08(0xfe)+_0x306c1e[_0x9c0a08(0xf5)]+_0x9c0a08(0x101)};}};function detectModeFromSql(_0x2e6a9e){const _0xbb0826=a113_0x1cf11c,_0x4ddd9f=ensureRemoteSqlContent(_0x2e6a9e),_0x284bb4=stripLocalSqlMetadata(_0x4ddd9f,_0xbb0826(0xf3))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0xbb0826(0xec)](_0x284bb4))return _0xbb0826(0xf3);return _0xbb0826(0x102);}function isEquivalentPulledSqlFile(_0x383418,_0x488c44,_0x35513b){return normalizePullComparableContent(_0x383418,_0x35513b)===normalizePullComparableContent(_0x488c44,_0x35513b);}function normalizePullComparableContent(_0x1e2416,_0x9e6759){const _0x6ffc27=a113_0x1cf11c,_0x474d1a=_0x1e2416[_0x6ffc27(0xd6)](/\r\n/g,'\x0a')['split']('\x0a'),_0x1344e0=_0x474d1a[_0x6ffc27(0xe0)](_0xa61ed=>!isSyncedAtMetadataLine(_0xa61ed,_0x9e6759));return _0x1344e0[_0x6ffc27(0xd7)]('\x0a');}function a113_0x5330(_0x59a9d2,_0x35e7c4){_0x59a9d2=_0x59a9d2-0xd6;const _0x137638=a113_0x1376();let _0x533057=_0x137638[_0x59a9d2];return _0x533057;}function isSyncedAtMetadataLine(_0xe37525,_0x26f000){const _0x23469b=a113_0x1cf11c;if(_0x26f000==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x23469b(0xec)](_0xe37525);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x23469b(0xec)](_0xe37525);}
1
+ const a120_0x522f46=a120_0x114a;function a120_0x3821(){const _0x53ee0b=['812UoZreF','sqlContent','sqlCode','POST','382571YZctuE','sqlName','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','message','bool','Filter\x20by\x20SQL\x20display\x20name','tableData','dbId','description','catch','\x20SQL\x20file(s)\x20into\x20','trimStart','\x20written,\x20','test','3344830pAkZbt','skipped','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','1984730DjOIQU','appCode','lockFilePath','sqls','lastSync','filter','cancelled','580utHDbN','mybatisXml','name','push','pull','toISOString','write','force','sqlRootDir','local\x20differs\x20from\x20remote','sqlcode','5550147ErEzRw','sql','length','conflict','utf8','Force\x20overwrite\x20local\x20unsynced\x20changes','unchanged','20624SOzMci','str','2232348ZfQYWQ','15969FBuTiU','replace','\x20failed','No\x20remote\x20SQL\x20queries\x20matched.','Pull\x20complete:\x20','split','Force\x20pull\x20cancelled.','boolean','path','sqlRoot'];a120_0x3821=function(){return _0x53ee0b;};return a120_0x3821();}(function(_0x2beaac,_0x45a93c){const _0x24f3e8=a120_0x114a,_0x1e750f=_0x2beaac();while(!![]){try{const _0x128cd8=-parseInt(_0x24f3e8(0x162))/0x1+-parseInt(_0x24f3e8(0x138))/0x2+parseInt(_0x24f3e8(0x154))/0x3*(parseInt(_0x24f3e8(0x13f))/0x4)+parseInt(_0x24f3e8(0x170))/0x5+-parseInt(_0x24f3e8(0x153))/0x6+parseInt(_0x24f3e8(0x15e))/0x7*(parseInt(_0x24f3e8(0x151))/0x8)+parseInt(_0x24f3e8(0x14a))/0x9;if(_0x128cd8===_0x45a93c)break;else _0x1e750f['push'](_0x1e750f['shift']());}catch(_0x263af9){_0x1e750f['push'](_0x1e750f['shift']());}}}(a120_0x3821,0x94d02));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;function a120_0x114a(_0x594e5a,_0x40c650){_0x594e5a=_0x594e5a-0x137;const _0x38219e=a120_0x3821();let _0x114ad9=_0x38219e[_0x594e5a];return _0x114ad9;}async function fetchAllSqlQueries(_0x45b908,_0x89301b){const _0x202349=a120_0x114a,_0x37d94c=[];let _0x1b904d=0x1;while(!![]){const _0x237220=await listSqlQueries(_0x45b908,{'currentPage':_0x1b904d,'pageSize':PAGE_SIZE,'sqlCode':_0x89301b[_0x202349(0x160)],'sqlName':_0x89301b[_0x202349(0x163)]}),_0x128f5b=_0x237220[_0x202349(0x168)]??[];_0x37d94c['push'](..._0x128f5b);if(_0x128f5b[_0x202349(0x14c)]===0x0)break;const _0x43b8c0=_0x237220['paging']?.['totalCount'];if(_0x43b8c0!=null?_0x37d94c['length']>=_0x43b8c0:_0x128f5b[_0x202349(0x14c)]<PAGE_SIZE)break;_0x1b904d++;}return _0x37d94c;}async function ensureSqlContent(_0x4d10ea){const _0x1b1141=a120_0x114a;if(_0x4d10ea[_0x1b1141(0x15f)]!=null&&String(_0x4d10ea[_0x1b1141(0x15f)])[_0x1b1141(0x14c)]>0x0)return _0x4d10ea;return getSqlQueryDetail(_0x4d10ea['sqlCode']);}export const sqlPull={'service':a120_0x522f46(0x14b),'command':a120_0x522f46(0x143),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a120_0x522f46(0x145),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a120_0x522f46(0x141),'type':'string','description':a120_0x522f46(0x167)},{'name':'force','type':a120_0x522f46(0x15b),'description':a120_0x522f46(0x14f)}],async 'dryRun'(_0x29515b){const _0x115213=a120_0x522f46,_0x1d1901=loadSqlProjectConfig(_0x29515b['appCode']),_0x2018a4=await readSqlLockFile(_0x1d1901[_0x115213(0x13a)]),{appLock:_0x352e2d}=ensureSqlLockScope(_0x2018a4??createEmptySqlLock(),_0x1d1901[_0x115213(0x139)],_0x1d1901[_0x115213(0x15d)],_0x115213(0x143)),_0x51bee9=await fetchAllSqlQueries(_0x29515b[_0x115213(0x139)],{'sqlCode':_0x29515b[_0x115213(0x152)]('sqlcode')||undefined,'sqlName':_0x29515b[_0x115213(0x152)](_0x115213(0x141))||undefined}),_0x4f0e41=[];for(const _0x2e003f of _0x51bee9){const _0x434c70=await ensureSqlContent(_0x2e003f),_0xf51ef=ensureRemoteSqlContent(_0x434c70),_0x497139=detectModeFromSql(_0x434c70),_0x544e74=_0x434c70['dbId']?await getDbName(_0x29515b['appCode'],Number(_0x434c70[_0x115213(0x169)]))[_0x115213(0x16b)](()=>undefined):undefined,_0x4e4420=buildLocalSqlFileContent({'sqlCode':_0x434c70[_0x115213(0x160)],'sqlName':_0x434c70['sqlName'],'dbId':_0x434c70['dbId']},_0xf51ef,{'dbName':_0x544e74,'mode':_0x497139,'syncedAt':new Date()['toISOString'](),'description':_0x434c70[_0x115213(0x16a)]}),_0x5d2821=buildSqlLockEntry(_0x434c70,_0xf51ef,'',{'dbName':_0x544e74}),_0x93107b=resolveLocalSqlFilePath(_0x1d1901,_0x434c70[_0x115213(0x160)],_0x5d2821);let _0x39620c='would_pull',_0x4d0d12;if(await fileExists(_0x93107b)){const _0x1146bf=await readFile(_0x93107b,_0x115213(0x14e));isEquivalentPulledSqlFile(_0x1146bf,_0x4e4420,_0x497139)?(_0x39620c=_0x115213(0x171),_0x4d0d12=_0x115213(0x150)):(_0x39620c=_0x115213(0x14d),_0x4d0d12=_0x115213(0x164));}_0x4f0e41[_0x115213(0x142)]({'sqlCode':_0x434c70[_0x115213(0x160)],'sqlName':_0x434c70[_0x115213(0x163)],'filePath':_0x93107b,'status':_0x39620c,'reason':_0x4d0d12});}return{'method':_0x115213(0x161),'url':_0x115213(0x137),'body':{'appCode':_0x29515b[_0x115213(0x139)],'sqlCode':_0x29515b['str']('sqlcode')||null,'sqlName':_0x29515b[_0x115213(0x152)]('name')||null,'files':_0x4f0e41},'description':'Would\x20pull\x20'+_0x4f0e41['length']+_0x115213(0x16c)+_0x1d1901[_0x115213(0x147)]};},async 'execute'(_0x917a0f){const _0x3051a1=a120_0x522f46,_0x471018=loadSqlProjectConfig(_0x917a0f[_0x3051a1(0x139)]),_0x57248b=await readSqlLockFile(_0x471018[_0x3051a1(0x13a)]),{lockData:_0x141be0,appLock:_0x2727e3}=ensureSqlLockScope(_0x57248b??createEmptySqlLock(),_0x471018[_0x3051a1(0x139)],_0x471018[_0x3051a1(0x15d)],_0x3051a1(0x143)),_0x5a99a7=_0x917a0f[_0x3051a1(0x166)](_0x3051a1(0x146)),_0x40737c=await fetchAllSqlQueries(_0x917a0f[_0x3051a1(0x139)],{'sqlCode':_0x917a0f['str'](_0x3051a1(0x149))||undefined,'sqlName':_0x917a0f['str']('name')||undefined});if(_0x40737c[_0x3051a1(0x14c)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x3051a1(0x157)};const _0xde4294=[],_0x401aea=[];for(const _0x1a26d9 of _0x40737c){try{_0xde4294[_0x3051a1(0x142)](await ensureSqlContent(_0x1a26d9));}catch(_0x30ff94){_0x401aea[_0x3051a1(0x142)]({'sqlCode':_0x1a26d9['sqlCode'],'error':_0x30ff94 instanceof Error?_0x30ff94[_0x3051a1(0x165)]:String(_0x30ff94)});}}if(_0x5a99a7&&!_0x917a0f['nonInteractive']){let _0x1625b2=![];for(const _0xe5fc2d of _0xde4294){const _0x5c8820=detectModeFromSql(_0xe5fc2d),_0x15d6e8=_0xe5fc2d[_0x3051a1(0x169)]?await getDbName(_0x917a0f[_0x3051a1(0x139)],Number(_0xe5fc2d[_0x3051a1(0x169)]))[_0x3051a1(0x16b)](()=>undefined):undefined,_0x5ee666=buildLocalSqlFileContent({'sqlCode':_0xe5fc2d[_0x3051a1(0x160)],'sqlName':_0xe5fc2d[_0x3051a1(0x163)],'dbId':_0xe5fc2d['dbId']},ensureRemoteSqlContent(_0xe5fc2d),{'dbName':_0x15d6e8,'mode':_0x5c8820,'syncedAt':new Date()[_0x3051a1(0x144)](),'description':_0xe5fc2d[_0x3051a1(0x16a)]}),_0x4204a1=resolveLocalSqlFilePath(_0x471018,_0xe5fc2d['sqlCode'],buildSqlLockEntry(_0xe5fc2d,ensureRemoteSqlContent(_0xe5fc2d),'',{'dbName':_0x15d6e8}));if(await fileExists(_0x4204a1)){const _0x52b04b=await readFile(_0x4204a1,_0x3051a1(0x14e));if(!isEquivalentPulledSqlFile(_0x52b04b,_0x5ee666,_0x5c8820)){_0x1625b2=!![];break;}}}if(_0x1625b2){const _0x1315c4=await confirmForceOverwrite(_0x3051a1(0x172));if(!_0x1315c4)throw CliErrors[_0x3051a1(0x13e)](_0x3051a1(0x15a));}}const _0x1c18c8=cloneSqlLockData(_0x141be0),_0xbea6fc=_0x1c18c8['apps'][_0x471018[_0x3051a1(0x139)]],_0x1cc0bb=[],_0x32cd1a=[];for(const _0x5c431c of _0xde4294){const _0x3935ec=_0xbea6fc['sqls'][_0x5c431c[_0x3051a1(0x160)]],_0x372210=ensureRemoteSqlContent(_0x5c431c),_0xef3863=detectModeFromSql(_0x5c431c),_0x7d2a9d=_0x5c431c['dbId']?await getDbName(_0x917a0f[_0x3051a1(0x139)],Number(_0x5c431c[_0x3051a1(0x169)]))[_0x3051a1(0x16b)](()=>undefined):undefined,_0x549aec=buildLocalSqlFileContent({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'sqlName':_0x5c431c[_0x3051a1(0x163)],'dbId':_0x5c431c[_0x3051a1(0x169)]},_0x372210,{'dbName':_0x7d2a9d,'mode':_0xef3863,'syncedAt':new Date()[_0x3051a1(0x144)](),'description':_0x5c431c['description']}),_0x53167c=buildSqlLockEntry(_0x5c431c,_0x372210,computeSqlContentHash(_0x549aec),{'dbName':_0x7d2a9d}),_0x588af1=_0x53167c[_0x3051a1(0x15c)],_0xde30b6=join(_0x471018[_0x3051a1(0x147)],_0x588af1);try{if(await fileExists(_0xde30b6)){const _0xc31283=await readFile(_0xde30b6,_0x3051a1(0x14e));if(isEquivalentPulledSqlFile(_0xc31283,_0x549aec,_0xef3863)){_0x32cd1a[_0x3051a1(0x142)]({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'reason':_0x3051a1(0x150)}),_0xbea6fc[_0x3051a1(0x13b)][_0x5c431c[_0x3051a1(0x160)]]={..._0x53167c,'hash':computeSqlContentHash(_0xc31283),'path':_0x588af1};continue;}if(!_0x5a99a7){_0x32cd1a[_0x3051a1(0x142)]({'sqlCode':_0x5c431c['sqlCode'],'reason':_0x3051a1(0x148)});continue;}}const _0x145ef6=_0x3935ec?.['path']?join(_0x471018[_0x3051a1(0x147)],_0x3935ec[_0x3051a1(0x15c)]):undefined;_0x145ef6&&_0x145ef6!==_0xde30b6&&await fileExists(_0x145ef6)&&await rm(_0x145ef6,{'force':!![]}),await ensureParentDirectory(_0xde30b6),await writeFile(_0xde30b6,_0x549aec,_0x3051a1(0x14e)),_0xbea6fc[_0x3051a1(0x13b)][_0x5c431c[_0x3051a1(0x160)]]={..._0x53167c,'path':_0x588af1},_0x1cc0bb[_0x3051a1(0x142)]({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'filePath':_0xde30b6});}catch(_0x57055a){_0x401aea['push']({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'error':_0x57055a instanceof Error?_0x57055a['message']:String(_0x57055a)});}}return _0xbea6fc[_0x3051a1(0x13c)]=new Date()[_0x3051a1(0x144)](),await writeSqlLockFile(_0x471018[_0x3051a1(0x13a)],_0x1c18c8),{'ok':_0x401aea[_0x3051a1(0x14c)]===0x0,'data':{'pulled':_0x1cc0bb,'skipped':_0x32cd1a,'failed':_0x401aea},'message':_0x3051a1(0x158)+_0x1cc0bb[_0x3051a1(0x14c)]+_0x3051a1(0x16e)+_0x32cd1a[_0x3051a1(0x14c)]+'\x20skipped,\x20'+_0x401aea[_0x3051a1(0x14c)]+_0x3051a1(0x156)};}};function detectModeFromSql(_0x834047){const _0x3bb1ca=a120_0x522f46,_0x3862c7=ensureRemoteSqlContent(_0x834047),_0x3002c9=stripLocalSqlMetadata(_0x3862c7,_0x3bb1ca(0x140))[_0x3bb1ca(0x16d)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3002c9))return _0x3bb1ca(0x140);return _0x3bb1ca(0x14b);}function isEquivalentPulledSqlFile(_0x15678a,_0x228a9f,_0x5995ab){return normalizePullComparableContent(_0x15678a,_0x5995ab)===normalizePullComparableContent(_0x228a9f,_0x5995ab);}function normalizePullComparableContent(_0x2b3451,_0x5991fc){const _0x3ca414=a120_0x522f46,_0x37e575=_0x2b3451[_0x3ca414(0x155)](/\r\n/g,'\x0a')[_0x3ca414(0x159)]('\x0a'),_0x440183=_0x37e575[_0x3ca414(0x13d)](_0x35f680=>!isSyncedAtMetadataLine(_0x35f680,_0x5991fc));return _0x440183['join']('\x0a');}function isSyncedAtMetadataLine(_0x2aec85,_0x1e4a5b){const _0xe0c16a=a120_0x522f46;if(_0x1e4a5b===_0xe0c16a(0x140))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0xe0c16a(0x16f)](_0x2aec85);return/^\s*--\s*@lovrabet\.syncedAt:/[_0xe0c16a(0x16f)](_0x2aec85);}
@@ -1 +1 @@
1
- const a114_0x3784ff=a114_0x11fa;(function(_0x10e803,_0x4f91b8){const _0x34ba39=a114_0x11fa,_0x1f8d5e=_0x10e803();while(!![]){try{const _0x326d4b=-parseInt(_0x34ba39(0x128))/0x1+-parseInt(_0x34ba39(0x14d))/0x2*(-parseInt(_0x34ba39(0x167))/0x3)+parseInt(_0x34ba39(0x149))/0x4+parseInt(_0x34ba39(0x12f))/0x5+parseInt(_0x34ba39(0x147))/0x6*(-parseInt(_0x34ba39(0x12d))/0x7)+parseInt(_0x34ba39(0x165))/0x8+parseInt(_0x34ba39(0x14e))/0x9*(-parseInt(_0x34ba39(0x159))/0xa);if(_0x326d4b===_0x4f91b8)break;else _0x1f8d5e['push'](_0x1f8d5e['shift']());}catch(_0x180f81){_0x1f8d5e['push'](_0x1f8d5e['shift']());}}}(a114_0x3bd9,0x256ef));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';function a114_0x3bd9(){const _0x113a91=['push','Local\x20SQL\x20not\x20found:\x20','utf8','str','remoteId','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','sqlRootDir','1362918VlVfAZ','join','1114980yZtifc','bool','lockFilePath','Local\x20directory\x20\x22','2gGCqnV','3618891yjzxEG','No\x20local\x20SQL\x20files\x20found.','force','path','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','validation','Push\x20complete:\x20','lastSync','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','get','version','10bYuVEo','has','sql','toISOString','unchanged','/smartapi/custom/updateUserCustomSql','replace','set','No\x20database\x20matches\x20local\x20directory\x20\x22','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','dbDirectory','sqlRoot','2019984pGoJEE','map','141159lLJLFs','entries','filePath','74142NQytMI','\x20skipped,\x20','sqlCode','dbId','boolean','7KDgnjY','length','1392125oDaOma','startsWith','projectRoot','POST','isFinite','mode','relativePath','filter','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','message','catch','dbName','\x20failed','Push\x20local\x20SQL\x20files\x20to\x20remote','appCode','sqlName','sqls'];a114_0x3bd9=function(){return _0x113a91;};return a114_0x3bd9();}async function getTargetSqlQueries(_0x6bac02,_0x255ee4,_0x59109c){const _0x5ecc73=a114_0x11fa,_0x4d8b38=await scanLocalSqlQueries(_0x6bac02),_0x366a55=new Map();for(const _0x103a1e of _0x4d8b38){if(_0x59109c&&_0x103a1e[_0x5ecc73(0x12a)]!==_0x59109c)continue;const _0x1ec6a2=_0x366a55[_0x5ecc73(0x157)](_0x103a1e[_0x5ecc73(0x12a)])??[];_0x1ec6a2['push'](_0x103a1e),_0x366a55[_0x5ecc73(0x160)](_0x103a1e[_0x5ecc73(0x12a)],_0x1ec6a2);}if(_0x59109c&&!_0x366a55[_0x5ecc73(0x15a)](_0x59109c))throw CliErrors[_0x5ecc73(0x153)](_0x5ecc73(0x141)+_0x59109c);const _0x342b0f=[];for(const [_0x4073c0,_0x1598f2]of _0x366a55[_0x5ecc73(0x168)]()){if(_0x1598f2['length']===0x1){_0x342b0f['push'](_0x1598f2[0x0]);continue;}const _0x31c4b3=_0x255ee4[_0x5ecc73(0x13f)][_0x4073c0],_0x2be22d=_0x31c4b3?.[_0x5ecc73(0x151)],_0x5e6add=_0x2be22d?_0x1598f2['filter'](_0x2d0f7a=>_0x2d0f7a[_0x5ecc73(0x135)]!==_0x2be22d):_0x1598f2;if(_0x31c4b3&&_0x5e6add[_0x5ecc73(0x12e)]===0x1){_0x342b0f[_0x5ecc73(0x140)](_0x5e6add[0x0]);continue;}throw CliErrors['validation'](_0x5ecc73(0x137)+_0x4073c0+_0x5ecc73(0x152));}return _0x342b0f;}export const sqlPush={'service':a114_0x3784ff(0x15b),'command':a114_0x3784ff(0x140),'description':a114_0x3784ff(0x13c),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a114_0x3784ff(0x150),'type':a114_0x3784ff(0x12c),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0xae24e2){const _0x54520d=a114_0x3784ff,_0x2eb805=loadSqlProjectConfig(_0xae24e2['appCode']),_0x374620=await readSqlLockFile(_0x2eb805['lockFilePath']),{appLock:_0x22f2ca}=ensureSqlLockScope(_0x374620??createEmptySqlLock(),_0xae24e2[_0x54520d(0x13d)],_0x2eb805[_0x54520d(0x164)],'push'),_0x176ae7=await getTargetSqlQueries(_0x2eb805,_0x22f2ca,_0xae24e2[_0x54520d(0x143)]('sqlcode')||undefined),_0x650949=[];for(const _0x5e8ff5 of _0x176ae7){const _0x54f815=await computeSqlFileHash(_0x5e8ff5[_0x54520d(0x127)]),_0x59ef96=_0x22f2ca[_0x54520d(0x13f)][_0x5e8ff5['sqlCode']],_0x18e0d6=!!_0x59ef96&&(_0x59ef96['path']!==_0x5e8ff5['relativePath']||!!_0x5e8ff5[_0x54520d(0x13e)]&&_0x59ef96[_0x54520d(0x13e)]!==_0x5e8ff5[_0x54520d(0x13e)]);if(!_0xae24e2[_0x54520d(0x14a)]('force')&&_0x59ef96&&_0x59ef96['hash']===_0x54f815&&!_0x18e0d6)continue;_0x650949[_0x54520d(0x140)](_0x5e8ff5[_0x54520d(0x12a)]);}return{'method':_0x54520d(0x132),'url':_0x54520d(0x15e),'body':{'sqlCodes':_0x650949,'appCode':_0xae24e2[_0x54520d(0x13d)]},'description':'Would\x20push\x20'+_0x650949[_0x54520d(0x12e)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x55eb12){const _0x23110b=a114_0x3784ff,_0x2d4210=loadSqlProjectConfig(_0x55eb12[_0x23110b(0x13d)]),_0x8d3261=await readSqlLockFile(_0x2d4210[_0x23110b(0x14b)]),{lockData:_0x24f8ee,appLock:_0x24cba2}=ensureSqlLockScope(_0x8d3261??createEmptySqlLock(),_0x55eb12[_0x23110b(0x13d)],_0x2d4210[_0x23110b(0x164)],_0x23110b(0x140)),_0x17fd20=await getTargetSqlQueries(_0x2d4210,_0x24cba2,_0x55eb12[_0x23110b(0x143)]('sqlcode')||undefined);if(_0x17fd20['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x23110b(0x14f)};const _0x460f67=[],_0x5c092e=[],_0x2f3fb3=[];for(const _0x4d2200 of _0x17fd20){const _0x408959=_0x24cba2[_0x23110b(0x13f)][_0x4d2200[_0x23110b(0x12a)]];if(!_0x408959){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x23110b(0x145)});continue;}try{const _0x46bf55=await computeSqlFileHash(_0x4d2200[_0x23110b(0x127)]),_0x3ba9d4=_0x408959['path']!==_0x4d2200[_0x23110b(0x135)]||!!_0x4d2200[_0x23110b(0x13e)]&&_0x408959[_0x23110b(0x13e)]!==_0x4d2200['sqlName'];if(!_0x55eb12['bool'](_0x23110b(0x150))&&_0x408959['hash']===_0x46bf55&&!_0x3ba9d4){_0x5c092e['push']({'sqlCode':_0x4d2200['sqlCode'],'reason':_0x23110b(0x15d)});continue;}if(_0x408959['version']==null){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x23110b(0x156)});continue;}const _0x2f8639=await readFile(_0x4d2200[_0x23110b(0x127)],_0x23110b(0x142)),_0x15907b=stripLocalSqlMetadata(_0x2f8639,_0x4d2200[_0x23110b(0x134)]),_0x47c682=_0x4d2200[_0x23110b(0x13e)]||_0x408959['sqlName'],_0x48e898=await resolveTargetDbBinding(_0x55eb12[_0x23110b(0x13d)],_0x4d2200,_0x408959),_0x113c06=await updateSqlQuery({'id':_0x408959[_0x23110b(0x144)],'appCode':_0x55eb12[_0x23110b(0x13d)],'sqlCode':_0x4d2200['sqlCode'],'sqlName':_0x47c682,'dbId':_0x48e898[_0x23110b(0x12b)],'version':_0x408959[_0x23110b(0x158)],'sqlContent':_0x15907b,'sqlConfig':_0x408959['sqlConfig']??undefined}),_0x946e9e=_0x113c06[_0x23110b(0x12b)]?await getDbName(_0x55eb12[_0x23110b(0x13d)],Number(_0x113c06['dbId']))[_0x23110b(0x139)](()=>_0x48e898[_0x23110b(0x13a)]):_0x48e898[_0x23110b(0x13a)];_0x24cba2[_0x23110b(0x13f)][_0x4d2200[_0x23110b(0x12a)]]={...buildSqlLockEntry(_0x113c06,_0x15907b,_0x46bf55,{'dbName':_0x946e9e}),'path':_0x4d2200['relativePath'],'mode':_0x408959[_0x23110b(0x134)]},await archivePreviousSqlFileIfNeeded(_0x2d4210,_0x408959[_0x23110b(0x151)],_0x4d2200[_0x23110b(0x135)]),_0x460f67[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'remoteId':_0x408959[_0x23110b(0x144)]});}catch(_0x1ac4fe){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x1ac4fe instanceof Error?_0x1ac4fe[_0x23110b(0x138)]:String(_0x1ac4fe)});}}return _0x24cba2[_0x23110b(0x155)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2d4210[_0x23110b(0x14b)],_0x24f8ee),{'ok':_0x2f3fb3[_0x23110b(0x12e)]===0x0,'data':{'pushed':_0x460f67,'skipped':_0x5c092e,'failed':_0x2f3fb3},'message':_0x23110b(0x154)+_0x460f67['length']+'\x20pushed,\x20'+_0x5c092e[_0x23110b(0x12e)]+_0x23110b(0x129)+_0x2f3fb3[_0x23110b(0x12e)]+_0x23110b(0x13b)};}};async function archivePreviousSqlFileIfNeeded(_0x5a804b,_0x376b9f,_0x578da5){const _0x270851=a114_0x3784ff;if(!_0x376b9f||_0x376b9f===_0x578da5)return;const _0x880b75=join(_0x5a804b[_0x270851(0x146)],_0x376b9f);if(!await fileExists(_0x880b75))return;const _0x4ff63a=await moveToTrash(_0x5a804b[_0x270851(0x131)],_0x5a804b['trashDir'],_0x880b75);await cleanupEmptyDirectories(dirname(_0x880b75),_0x5a804b[_0x270851(0x146)]),void _0x4ff63a;}async function moveToTrash(_0x5f1891,_0x356532,_0x35490e){const _0x41d57a=a114_0x3784ff,_0x136a27=new Date()[_0x41d57a(0x15c)]()[_0x41d57a(0x15f)](/[:.]/g,'-'),_0x3d7b5c=relative(_0x5f1891,_0x35490e),_0x3bba32=join(_0x356532,_0x136a27,_0x3d7b5c);return await mkdir(dirname(_0x3bba32),{'recursive':!![]}),await rename(_0x35490e,_0x3bba32),_0x3bba32;}async function cleanupEmptyDirectories(_0x3207f5,_0xc6b403){const _0x3b35d5=a114_0x3784ff;let _0x56a227=resolve(_0x3207f5);const _0x17ee94=resolve(_0xc6b403);while(_0x56a227[_0x3b35d5(0x130)](''+_0x17ee94+sep)||_0x56a227===_0x17ee94){if(_0x56a227===_0x17ee94)return;try{const _0x4464f4=await readdir(_0x56a227);if(_0x4464f4[_0x3b35d5(0x12e)]>0x0)return;await rmdir(_0x56a227);}catch{return;}_0x56a227=dirname(_0x56a227);}}async function resolveTargetDbBinding(_0xb10ac5,_0x162174,_0x30a04b){const _0x29656e=a114_0x3784ff,_0x1e7140=_0x162174[_0x29656e(0x163)];if(!_0x1e7140)return{'dbId':_0x30a04b[_0x29656e(0x12b)],'dbName':_0x30a04b[_0x29656e(0x13a)]};const _0x44fbbb=buildDbDirectoryName(_0x30a04b[_0x29656e(0x13a)],_0x30a04b['dbId']);if(_0x1e7140===_0x44fbbb)return{'dbId':_0x30a04b[_0x29656e(0x12b)],'dbName':_0x30a04b[_0x29656e(0x13a)]};const _0x349938=parseExplicitDbDirectory(_0x1e7140);if(_0x349938!=null)return{'dbId':_0x349938,'dbName':await getDbName(_0xb10ac5,_0x349938)[_0x29656e(0x139)](()=>undefined)};const _0x386971=await listDatabases(_0xb10ac5),_0x81d062=_0x386971[_0x29656e(0x136)](_0x1411e1=>buildDbDirectoryName(_0x1411e1[_0x29656e(0x13a)],_0x1411e1['dbId'])===_0x1e7140);if(_0x81d062['length']===0x1)return{'dbId':_0x81d062[0x0][_0x29656e(0x12b)],'dbName':_0x81d062[0x0]['dbName']};if(_0x81d062[_0x29656e(0x12e)]===0x0)throw CliErrors['validation'](_0x29656e(0x161)+_0x1e7140+'\x22\x20for\x20sqlCode\x20'+_0x162174[_0x29656e(0x12a)]+'.');const _0x414b1c=_0x81d062[_0x29656e(0x166)](_0x436130=>_0x436130['dbName']+'\x20('+_0x436130['dbId']+')')[_0x29656e(0x148)](',\x20');throw CliErrors['validation'](_0x29656e(0x14c)+_0x1e7140+_0x29656e(0x162)+_0x162174[_0x29656e(0x12a)]+':\x20'+_0x414b1c);}function a114_0x11fa(_0x4f5324,_0x4e920e){_0x4f5324=_0x4f5324-0x127;const _0x3bd906=a114_0x3bd9();let _0x11fabb=_0x3bd906[_0x4f5324];return _0x11fabb;}function parseExplicitDbDirectory(_0x3a2ec0){const _0x50f71d=a114_0x3784ff,_0x523c29=/^db-(\d+)$/['exec'](_0x3a2ec0);if(!_0x523c29)return null;const _0x7f8b08=Number(_0x523c29[0x1]);return Number[_0x50f71d(0x133)](_0x7f8b08)&&_0x7f8b08>0x0?_0x7f8b08:null;}
1
+ const a121_0x2e0ece=a121_0x12d7;(function(_0x45d804,_0x3dbe72){const _0xbe75c=a121_0x12d7,_0x2f1038=_0x45d804();while(!![]){try{const _0x105183=-parseInt(_0xbe75c(0x87))/0x1*(-parseInt(_0xbe75c(0xa7))/0x2)+parseInt(_0xbe75c(0xa8))/0x3+parseInt(_0xbe75c(0x8c))/0x4*(-parseInt(_0xbe75c(0x67))/0x5)+-parseInt(_0xbe75c(0xa4))/0x6*(-parseInt(_0xbe75c(0x78))/0x7)+-parseInt(_0xbe75c(0x80))/0x8*(-parseInt(_0xbe75c(0x89))/0x9)+-parseInt(_0xbe75c(0x96))/0xa*(-parseInt(_0xbe75c(0xa5))/0xb)+parseInt(_0xbe75c(0x68))/0xc*(-parseInt(_0xbe75c(0x97))/0xd);if(_0x105183===_0x3dbe72)break;else _0x2f1038['push'](_0x2f1038['shift']());}catch(_0x2d7fb8){_0x2f1038['push'](_0x2f1038['shift']());}}}(a121_0x1b0f,0xb048e));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';function a121_0x12d7(_0x1d28a7,_0x288940){_0x1d28a7=_0x1d28a7-0x67;const _0x1b0f48=a121_0x1b0f();let _0x12d755=_0x1b0f48[_0x1d28a7];return _0x12d755;}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(_0x42908b,_0x5ade2b,_0x1d0ca1){const _0x227cf1=a121_0x12d7,_0x4b800d=await scanLocalSqlQueries(_0x42908b),_0x314212=new Map();for(const _0x1e8703 of _0x4b800d){if(_0x1d0ca1&&_0x1e8703[_0x227cf1(0x9d)]!==_0x1d0ca1)continue;const _0x3853e8=_0x314212[_0x227cf1(0x75)](_0x1e8703[_0x227cf1(0x9d)])??[];_0x3853e8[_0x227cf1(0x72)](_0x1e8703),_0x314212[_0x227cf1(0xa0)](_0x1e8703[_0x227cf1(0x9d)],_0x3853e8);}if(_0x1d0ca1&&!_0x314212[_0x227cf1(0x84)](_0x1d0ca1))throw CliErrors[_0x227cf1(0x6b)](_0x227cf1(0x6e)+_0x1d0ca1);const _0x44c1ce=[];for(const [_0x4fc31b,_0x505768]of _0x314212['entries']()){if(_0x505768[_0x227cf1(0x70)]===0x1){_0x44c1ce[_0x227cf1(0x72)](_0x505768[0x0]);continue;}const _0x5d2f90=_0x5ade2b[_0x227cf1(0x7e)][_0x4fc31b],_0x1ea271=_0x5d2f90?.['path'],_0x46426c=_0x1ea271?_0x505768[_0x227cf1(0x73)](_0x6ad6b5=>_0x6ad6b5[_0x227cf1(0x6c)]!==_0x1ea271):_0x505768;if(_0x5d2f90&&_0x46426c['length']===0x1){_0x44c1ce[_0x227cf1(0x72)](_0x46426c[0x0]);continue;}throw CliErrors['validation'](_0x227cf1(0x8a)+_0x4fc31b+_0x227cf1(0x9b));}return _0x44c1ce;}export const sqlPush={'service':'sql','command':a121_0x2e0ece(0x72),'description':a121_0x2e0ece(0x99),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':a121_0x2e0ece(0x7f)}],async 'dryRun'(_0x4d1490){const _0x22d890=a121_0x2e0ece,_0x8e1bde=loadSqlProjectConfig(_0x4d1490[_0x22d890(0x86)]),_0x1621ab=await readSqlLockFile(_0x8e1bde['lockFilePath']),{appLock:_0x2735b5}=ensureSqlLockScope(_0x1621ab??createEmptySqlLock(),_0x4d1490[_0x22d890(0x86)],_0x8e1bde['sqlRoot'],'push'),_0xbc754b=await getTargetSqlQueries(_0x8e1bde,_0x2735b5,_0x4d1490[_0x22d890(0x9f)](_0x22d890(0x7a))||undefined),_0x305548=[];for(const _0x7ea8a7 of _0xbc754b){const _0x3e3ed1=await computeSqlFileHash(_0x7ea8a7[_0x22d890(0x98)]),_0x12b5a6=_0x2735b5[_0x22d890(0x7e)][_0x7ea8a7[_0x22d890(0x9d)]],_0xd65402=!!_0x12b5a6&&(_0x12b5a6[_0x22d890(0x85)]!==_0x7ea8a7[_0x22d890(0x6c)]||!!_0x7ea8a7['sqlName']&&_0x12b5a6['sqlName']!==_0x7ea8a7['sqlName']);if(!_0x4d1490['bool'](_0x22d890(0xaa))&&_0x12b5a6&&_0x12b5a6[_0x22d890(0xa3)]===_0x3e3ed1&&!_0xd65402)continue;_0x305548['push'](_0x7ea8a7['sqlCode']);}return{'method':_0x22d890(0x6d),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x305548,'appCode':_0x4d1490['appCode']},'description':_0x22d890(0x7d)+_0x305548[_0x22d890(0x70)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x1c380d){const _0x1a3886=a121_0x2e0ece,_0x422000=loadSqlProjectConfig(_0x1c380d[_0x1a3886(0x86)]),_0x36a3a3=await readSqlLockFile(_0x422000[_0x1a3886(0x9c)]),{lockData:_0x5325ee,appLock:_0x87d590}=ensureSqlLockScope(_0x36a3a3??createEmptySqlLock(),_0x1c380d[_0x1a3886(0x86)],_0x422000[_0x1a3886(0x7c)],_0x1a3886(0x72)),_0x2bcad7=await getTargetSqlQueries(_0x422000,_0x87d590,_0x1c380d[_0x1a3886(0x9f)]('sqlcode')||undefined);if(_0x2bcad7[_0x1a3886(0x70)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x1a3886(0xa6)};const _0x51024b=[],_0x334de2=[],_0x18f232=[];for(const _0x5d6cb7 of _0x2bcad7){const _0x17fe0e=_0x87d590[_0x1a3886(0x7e)][_0x5d6cb7[_0x1a3886(0x9d)]];if(!_0x17fe0e){_0x18f232['push']({'sqlCode':_0x5d6cb7['sqlCode'],'error':_0x1a3886(0xa9)});continue;}try{const _0x431323=await computeSqlFileHash(_0x5d6cb7['filePath']),_0x5074d2=_0x17fe0e[_0x1a3886(0x85)]!==_0x5d6cb7['relativePath']||!!_0x5d6cb7[_0x1a3886(0x76)]&&_0x17fe0e[_0x1a3886(0x76)]!==_0x5d6cb7['sqlName'];if(!_0x1c380d[_0x1a3886(0x71)](_0x1a3886(0xaa))&&_0x17fe0e[_0x1a3886(0xa3)]===_0x431323&&!_0x5074d2){_0x334de2['push']({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'reason':'unchanged'});continue;}if(_0x17fe0e[_0x1a3886(0x7b)]==null){_0x18f232[_0x1a3886(0x72)]({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'error':_0x1a3886(0x9e)});continue;}const _0x2f3ba9=await readFile(_0x5d6cb7['filePath'],_0x1a3886(0x95)),_0x5d5af5=stripLocalSqlMetadata(_0x2f3ba9,_0x5d6cb7[_0x1a3886(0x6f)]),_0x5ac0ef=_0x5d6cb7[_0x1a3886(0x76)]||_0x17fe0e[_0x1a3886(0x76)],_0x20f641=await resolveTargetDbBinding(_0x1c380d[_0x1a3886(0x86)],_0x5d6cb7,_0x17fe0e),_0x315447=await updateSqlQuery({'id':_0x17fe0e['remoteId'],'appCode':_0x1c380d[_0x1a3886(0x86)],'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'sqlName':_0x5ac0ef,'dbId':_0x20f641['dbId'],'version':_0x17fe0e['version'],'sqlContent':_0x5d5af5,'sqlConfig':_0x17fe0e[_0x1a3886(0x8e)]??undefined}),_0x447a83=_0x315447[_0x1a3886(0x93)]?await getDbName(_0x1c380d[_0x1a3886(0x86)],Number(_0x315447[_0x1a3886(0x93)]))['catch'](()=>_0x20f641[_0x1a3886(0x74)]):_0x20f641[_0x1a3886(0x74)];_0x87d590[_0x1a3886(0x7e)][_0x5d6cb7[_0x1a3886(0x9d)]]={...buildSqlLockEntry(_0x315447,_0x5d5af5,_0x431323,{'dbName':_0x447a83}),'path':_0x5d6cb7['relativePath'],'mode':_0x17fe0e[_0x1a3886(0x6f)]},await archivePreviousSqlFileIfNeeded(_0x422000,_0x17fe0e[_0x1a3886(0x85)],_0x5d6cb7['relativePath']),_0x51024b[_0x1a3886(0x72)]({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'remoteId':_0x17fe0e[_0x1a3886(0x83)]});}catch(_0x10ed0b){_0x18f232[_0x1a3886(0x72)]({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'error':_0x10ed0b instanceof Error?_0x10ed0b[_0x1a3886(0x77)]:String(_0x10ed0b)});}}return _0x87d590[_0x1a3886(0x92)]=new Date()[_0x1a3886(0x8d)](),await writeSqlLockFile(_0x422000[_0x1a3886(0x9c)],_0x5325ee),{'ok':_0x18f232[_0x1a3886(0x70)]===0x0,'data':{'pushed':_0x51024b,'skipped':_0x334de2,'failed':_0x18f232},'message':'Push\x20complete:\x20'+_0x51024b[_0x1a3886(0x70)]+'\x20pushed,\x20'+_0x334de2[_0x1a3886(0x70)]+_0x1a3886(0x88)+_0x18f232[_0x1a3886(0x70)]+_0x1a3886(0x91)};}};async function archivePreviousSqlFileIfNeeded(_0x3982bb,_0x29667d,_0x5e4b33){const _0x5ec4b5=a121_0x2e0ece;if(!_0x29667d||_0x29667d===_0x5e4b33)return;const _0x558bb7=join(_0x3982bb[_0x5ec4b5(0x6a)],_0x29667d);if(!await fileExists(_0x558bb7))return;const _0x10ca4c=await moveToTrash(_0x3982bb[_0x5ec4b5(0x79)],_0x3982bb[_0x5ec4b5(0x82)],_0x558bb7);await cleanupEmptyDirectories(dirname(_0x558bb7),_0x3982bb['sqlRootDir']),void _0x10ca4c;}async function moveToTrash(_0x29c8d9,_0x503ad7,_0x7a2255){const _0x388fcd=a121_0x2e0ece,_0x545052=new Date()['toISOString']()[_0x388fcd(0x8f)](/[:.]/g,'-'),_0x5b0056=relative(_0x29c8d9,_0x7a2255),_0x11d19f=join(_0x503ad7,_0x545052,_0x5b0056);return await mkdir(dirname(_0x11d19f),{'recursive':!![]}),await rename(_0x7a2255,_0x11d19f),_0x11d19f;}async function cleanupEmptyDirectories(_0x467531,_0x39a853){const _0x4fe855=a121_0x2e0ece;let _0x333e10=resolve(_0x467531);const _0x169bd1=resolve(_0x39a853);while(_0x333e10[_0x4fe855(0x81)](''+_0x169bd1+sep)||_0x333e10===_0x169bd1){if(_0x333e10===_0x169bd1)return;try{const _0xc215a4=await readdir(_0x333e10);if(_0xc215a4[_0x4fe855(0x70)]>0x0)return;await rmdir(_0x333e10);}catch{return;}_0x333e10=dirname(_0x333e10);}}function a121_0x1b0f(){const _0x3577db=['version','sqlRoot','Would\x20push\x20','sqls','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','28984NQOXfG','startsWith','trashDir','remoteId','has','path','appCode','3jMONgQ','\x20skipped,\x20','2880OusOHb','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','map','8jfaQDo','toISOString','sqlConfig','replace','\x22\x20for\x20sqlCode\x20','\x20failed','lastSync','dbId','catch','utf8','1405710ILfarL','6456710wjfpUT','filePath','Push\x20local\x20SQL\x20files\x20to\x20remote','join','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','lockFilePath','sqlCode','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','str','set','isFinite','No\x20database\x20matches\x20local\x20directory\x20\x22','hash','894RVnnZk','22pxzWPu','No\x20local\x20SQL\x20files\x20found.','716122Keqezn','1802163ySlBoQ','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','force','2160235uWlXgB','48TucMma','exec','sqlRootDir','validation','relativePath','POST','Local\x20SQL\x20not\x20found:\x20','mode','length','bool','push','filter','dbName','get','sqlName','message','21490sXfyYu','projectRoot','sqlcode'];a121_0x1b0f=function(){return _0x3577db;};return a121_0x1b0f();}async function resolveTargetDbBinding(_0x54ffab,_0x5390f4,_0x4a6d19){const _0x334f75=a121_0x2e0ece,_0x379fc7=_0x5390f4['dbDirectory'];if(!_0x379fc7)return{'dbId':_0x4a6d19[_0x334f75(0x93)],'dbName':_0x4a6d19[_0x334f75(0x74)]};const _0xeff393=buildDbDirectoryName(_0x4a6d19[_0x334f75(0x74)],_0x4a6d19[_0x334f75(0x93)]);if(_0x379fc7===_0xeff393)return{'dbId':_0x4a6d19[_0x334f75(0x93)],'dbName':_0x4a6d19[_0x334f75(0x74)]};const _0xa40703=parseExplicitDbDirectory(_0x379fc7);if(_0xa40703!=null)return{'dbId':_0xa40703,'dbName':await getDbName(_0x54ffab,_0xa40703)[_0x334f75(0x94)](()=>undefined)};const _0xa08413=await listDatabases(_0x54ffab),_0x174cca=_0xa08413[_0x334f75(0x73)](_0x545899=>buildDbDirectoryName(_0x545899['dbName'],_0x545899[_0x334f75(0x93)])===_0x379fc7);if(_0x174cca[_0x334f75(0x70)]===0x1)return{'dbId':_0x174cca[0x0]['dbId'],'dbName':_0x174cca[0x0][_0x334f75(0x74)]};if(_0x174cca[_0x334f75(0x70)]===0x0)throw CliErrors['validation'](_0x334f75(0xa2)+_0x379fc7+_0x334f75(0x90)+_0x5390f4['sqlCode']+'.');const _0x41f5d9=_0x174cca[_0x334f75(0x8b)](_0x24aaf9=>_0x24aaf9['dbName']+'\x20('+_0x24aaf9[_0x334f75(0x93)]+')')[_0x334f75(0x9a)](',\x20');throw CliErrors['validation']('Local\x20directory\x20\x22'+_0x379fc7+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x5390f4[_0x334f75(0x9d)]+':\x20'+_0x41f5d9);}function parseExplicitDbDirectory(_0x50afdd){const _0x241307=a121_0x2e0ece,_0xfef79f=/^db-(\d+)$/[_0x241307(0x69)](_0x50afdd);if(!_0xfef79f)return null;const _0x5a651c=Number(_0xfef79f[0x1]);return Number[_0x241307(0xa1)](_0x5a651c)&&_0x5a651c>0x0?_0x5a651c:null;}
@@ -1 +1 @@
1
- const a115_0x376874=a115_0x5880;(function(_0x2cb953,_0x4b1c62){const _0x5e51cb=a115_0x5880,_0x2ca7ed=_0x2cb953();while(!![]){try{const _0x136003=parseInt(_0x5e51cb(0x1e3))/0x1+-parseInt(_0x5e51cb(0x1d1))/0x2*(-parseInt(_0x5e51cb(0x1d4))/0x3)+-parseInt(_0x5e51cb(0x1d7))/0x4*(parseInt(_0x5e51cb(0x1da))/0x5)+-parseInt(_0x5e51cb(0x1e1))/0x6*(parseInt(_0x5e51cb(0x1df))/0x7)+-parseInt(_0x5e51cb(0x1e0))/0x8+parseInt(_0x5e51cb(0x1d5))/0x9*(-parseInt(_0x5e51cb(0x1de))/0xa)+-parseInt(_0x5e51cb(0x1e2))/0xb*(-parseInt(_0x5e51cb(0x1d3))/0xc);if(_0x136003===_0x4b1c62)break;else _0x2ca7ed['push'](_0x2ca7ed['shift']());}catch(_0x19ba3a){_0x2ca7ed['push'](_0x2ca7ed['shift']());}}}(a115_0x1fd8,0x4cfe3));function a115_0x1fd8(){const _0x2af5a7=['Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','2iAQsYK','join','77124FKcpOB','1681635PnDRYG','108NCzsmn','write','852qSUGzq','save','string','7815EdknLj','SQL\x20query\x20display\x20name','validation','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','20090ZTxHAY','575169lVjiIX','4767344tvzRUn','18IRqxfY','1199rxLtLt','253721BwOSXQ','description','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','sqlname'];a115_0x1fd8=function(){return _0x2af5a7;};return a115_0x1fd8();}import{CliErrors}from'../../errors.js';function a115_0x5880(_0x3175ad,_0xb6f26){_0x3175ad=_0x3175ad-0x1cd;const _0x1fd8d3=a115_0x1fd8();let _0x588013=_0x1fd8d3[_0x3175ad];return _0x588013;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a115_0x376874(0x1ce),'Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','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`.'][a115_0x376874(0x1d2)]('\x0a');export const sqlSave={'service':'sql','command':a115_0x376874(0x1d8),'description':a115_0x376874(0x1d0),'risk':a115_0x376874(0x1d6),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':a115_0x376874(0x1d9),'required':!![],'description':'Path\x20to\x20the\x20SQL\x20file'},SQLCODE_FLAG_OPTIONAL,{'name':a115_0x376874(0x1cf),'type':a115_0x376874(0x1d9),'description':a115_0x376874(0x1db)},{'name':'db','type':a115_0x376874(0x1d9),'description':a115_0x376874(0x1dd)},{'name':a115_0x376874(0x1cd),'type':a115_0x376874(0x1d9),'description':'Query\x20description'}],async 'validate'(){const _0x26f9c1=a115_0x376874;throw CliErrors[_0x26f9c1(0x1dc)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x53c0ca=a115_0x376874;throw CliErrors[_0x53c0ca(0x1dc)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ function a122_0x37e3(_0x2fe1be,_0x2e4aca){_0x2fe1be=_0x2fe1be-0x12c;const _0x1d37a8=a122_0x1d37();let _0x37e326=_0x1d37a8[_0x2fe1be];return _0x37e326;}const a122_0x47293c=a122_0x37e3;(function(_0x5c8a1f,_0x2d1dec){const _0x3dcc7b=a122_0x37e3,_0x515afa=_0x5c8a1f();while(!![]){try{const _0x4ff9ee=-parseInt(_0x3dcc7b(0x134))/0x1*(parseInt(_0x3dcc7b(0x145))/0x2)+-parseInt(_0x3dcc7b(0x12d))/0x3*(-parseInt(_0x3dcc7b(0x131))/0x4)+-parseInt(_0x3dcc7b(0x144))/0x5*(-parseInt(_0x3dcc7b(0x135))/0x6)+parseInt(_0x3dcc7b(0x140))/0x7+-parseInt(_0x3dcc7b(0x136))/0x8*(-parseInt(_0x3dcc7b(0x137))/0x9)+parseInt(_0x3dcc7b(0x130))/0xa*(parseInt(_0x3dcc7b(0x13f))/0xb)+parseInt(_0x3dcc7b(0x13e))/0xc*(-parseInt(_0x3dcc7b(0x138))/0xd);if(_0x4ff9ee===_0x2d1dec)break;else _0x515afa['push'](_0x515afa['shift']());}catch(_0x18429a){_0x515afa['push'](_0x515afa['shift']());}}}(a122_0x1d37,0xa57b3));function a122_0x1d37(){const _0x469bca=['696054CxmwbT','description','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','621160rflwQm','4mRBIXe','write','save','145037KndnBs','12ErEPnq','497416fSjkHs','9RxrSaz','78xPfmcM','string','Path\x20to\x20the\x20SQL\x20file','validation','Query\x20description','sqlname','1735320hrsyZD','66TFXQQh','5858629iWRoOl','sql','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','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`.','466675jDvcGN','2pSgmRq','file'];a122_0x1d37=function(){return _0x469bca;};return a122_0x1d37();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a122_0x47293c(0x142),'Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.',a122_0x47293c(0x143)]['join']('\x0a');export const sqlSave={'service':a122_0x47293c(0x141),'command':a122_0x47293c(0x133),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a122_0x47293c(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a122_0x47293c(0x12c),'type':'string','required':!![],'description':a122_0x47293c(0x13a)},SQLCODE_FLAG_OPTIONAL,{'name':a122_0x47293c(0x13d),'type':a122_0x47293c(0x139),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':'string','description':a122_0x47293c(0x12f)},{'name':a122_0x47293c(0x12e),'type':a122_0x47293c(0x139),'description':a122_0x47293c(0x13c)}],async 'validate'(){const _0x14720c=a122_0x47293c;throw CliErrors[_0x14720c(0x13b)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x391324=a122_0x47293c;throw CliErrors[_0x391324(0x13b)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- (function(_0x41c10d,_0x534c0a){const _0x5851f7=a116_0x4d1a,_0xa8799d=_0x41c10d();while(!![]){try{const _0x26b732=-parseInt(_0x5851f7(0x203))/0x1*(-parseInt(_0x5851f7(0x205))/0x2)+-parseInt(_0x5851f7(0x1ec))/0x3+parseInt(_0x5851f7(0x1fc))/0x4+parseInt(_0x5851f7(0x1e1))/0x5+parseInt(_0x5851f7(0x1e7))/0x6*(-parseInt(_0x5851f7(0x20a))/0x7)+parseInt(_0x5851f7(0x206))/0x8*(parseInt(_0x5851f7(0x1ee))/0x9)+-parseInt(_0x5851f7(0x1e2))/0xa*(parseInt(_0x5851f7(0x1f0))/0xb);if(_0x26b732===_0x534c0a)break;else _0xa8799d['push'](_0xa8799d['shift']());}catch(_0x591ad6){_0xa8799d['push'](_0xa8799d['shift']());}}}(a116_0x428d,0xc4cbf));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x3cf1e4,_0x156b51,_0x71c608,_0xa1602e){const _0x358d0a=a116_0x4d1a,_0x1d6faa=detectSqlMode(_0x156b51);return{'path':buildSqlRelativePath(_0x3cf1e4['sqlCode'],_0x3cf1e4[_0x358d0a(0x1ed)],_0xa1602e?.[_0x358d0a(0x1e6)],_0x1d6faa,_0x3cf1e4[_0x358d0a(0x1ff)]),'hash':_0x71c608,'remoteId':_0x3cf1e4['id'],'version':_0x3cf1e4[_0x358d0a(0x1f9)],'dbId':Number(_0x3cf1e4['dbId']),'dbName':_0xa1602e?.[_0x358d0a(0x1e6)],'sqlName':_0x3cf1e4[_0x358d0a(0x1ed)],'sqlConfig':_0x3cf1e4['sqlConfig']??undefined,'mode':_0x1d6faa};}function a116_0x428d(){const _0x373dcc=['553cAAAWD','sqls','toLowerCase','7373505FpwxoV','10KbLMUg','mode','split','push','dbName','40362MEsJiF','apps','--\x20@lovrabet.','question','trim','1298343PBfQkg','sqlName','20322pogXFB','includes','4956963NlucDv','length','syncedAt','\x20-->','endsWith','trimStart','<!--\x20@lovrabet.','sqlRoot','close','version','stdin','lastSync','76032lPuEma','fromEntries','filter','dbId','replace','yes','sqlCode','329809BJcTmB','entries','2jFGxsC','1408zsJoTp','join','mybatisXml','description'];a116_0x428d=function(){return _0x373dcc;};return a116_0x428d();}function a116_0x4d1a(_0x3539da,_0x257f78){_0x3539da=_0x3539da-0x1e1;const _0x428d5b=a116_0x428d();let _0x4d1a0d=_0x428d5b[_0x3539da];return _0x4d1a0d;}export function cloneSqlLockData(_0x568492){const _0x330277=a116_0x4d1a;return{'apps':Object[_0x330277(0x1fd)](Object[_0x330277(0x204)](_0x568492[_0x330277(0x1e8)])['map'](([_0x4abcfb,_0x224e2b])=>[_0x4abcfb,{'sqlRoot':_0x224e2b[_0x330277(0x1f7)],'lastSync':_0x224e2b[_0x330277(0x1fb)],'sqls':{..._0x224e2b[_0x330277(0x20b)]}}]))};}export function ensureRemoteSqlContent(_0xb7cf0f){return _0xb7cf0f['sqlContent']??'';}export function buildLocalSqlFileContent(_0x498988,_0x14e2fc,_0x533b9e){const _0x47963c=a116_0x4d1a,_0xd95a81=_0x533b9e?.['mode']??detectSqlMode(_0x14e2fc),_0x4e397c=stripLocalSqlMetadata(_0x14e2fc,_0xd95a81)['trim'](),_0x1ebe51=[...buildMetadataHeaderLines({'sqlCode':_0x498988[_0x47963c(0x202)],'sqlName':_0x498988[_0x47963c(0x1ed)],'dbId':_0x498988[_0x47963c(0x1ff)],'dbName':_0x533b9e?.[_0x47963c(0x1e6)],'mode':_0xd95a81,'syncedAt':_0x533b9e?.['syncedAt'],'description':_0x533b9e?.[_0x47963c(0x209)]},_0xd95a81),'',_0x4e397c],_0x303fd2=_0x1ebe51[_0x47963c(0x207)]('\x0a');return _0x303fd2[_0x47963c(0x1f4)]('\x0a')?_0x303fd2:_0x303fd2+'\x0a';}export function stripLocalSqlMetadata(_0x3d18e2,_0x12e55c){const _0x28693e=a116_0x4d1a,_0x5de045=_0x3d18e2[_0x28693e(0x200)](/\r\n/g,'\x0a')[_0x28693e(0x1e4)]('\x0a'),_0xb598e3=[];let _0x4b9b55=0x0;if(_0x12e55c===_0x28693e(0x208))while(_0x4b9b55<_0x5de045['length']){const _0x4e2ea9=_0x5de045[_0x4b9b55]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x4e2ea9)){_0x4b9b55++;continue;}if(_0x4e2ea9[_0x28693e(0x1eb)]()===''&&_0x4b9b55>0x0){_0x4b9b55++;continue;}break;}else while(_0x4b9b55<_0x5de045[_0x28693e(0x1f1)]){const _0x3e3e77=_0x5de045[_0x4b9b55]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x3e3e77)){_0x4b9b55++;continue;}if(_0x3e3e77['trim']()===''&&_0x4b9b55>0x0){_0x4b9b55++;continue;}break;}for(;_0x4b9b55<_0x5de045[_0x28693e(0x1f1)];_0x4b9b55++){_0xb598e3[_0x28693e(0x1e5)](_0x5de045[_0x4b9b55]);}return _0xb598e3[_0x28693e(0x207)]('\x0a')[_0x28693e(0x1f5)]();}export function resolveSqlMode(_0x441467,_0x3a5723){const _0x35d198=a116_0x4d1a;if(_0x3a5723?.[_0x35d198(0x1e3)])return _0x3a5723['mode'];return detectSqlMode(_0x441467);}export function resolveSqlFileName(_0x3f44c4,_0x172e8c,_0x53bf4d){const _0x569ea8=a116_0x4d1a;if(_0x53bf4d?.['path'])return _0x53bf4d['path'];if(_0x53bf4d?.[_0x569ea8(0x1ed)]||_0x53bf4d?.[_0x569ea8(0x1e6)])return buildSqlRelativePath(_0x3f44c4,_0x53bf4d?.[_0x569ea8(0x1ed)],_0x53bf4d?.[_0x569ea8(0x1e6)],resolveSqlMode(_0x172e8c,_0x53bf4d),_0x53bf4d?.[_0x569ea8(0x1ff)]);return buildDefaultSqlFileName(_0x3f44c4,resolveSqlMode(_0x172e8c,_0x53bf4d));}export function resolveSqlLocalDir(_0x537bc8,_0x496c19){return join(_0x537bc8,SQL_LOCAL_REL_DIR,_0x496c19);}export async function confirmForceOverwrite(_0x54c064){const _0x296da8=a116_0x4d1a,_0x19a172=createInterface({'input':process[_0x296da8(0x1fa)],'output':process['stderr']}),_0x332803=await new Promise(_0x4f4e66=>{const _0x12ea44=_0x296da8;_0x19a172[_0x12ea44(0x1ea)](_0x54c064+'\x20[y/N]\x20',_0x4f4e66);});return _0x19a172[_0x296da8(0x1f8)](),['y',_0x296da8(0x201)][_0x296da8(0x1ef)](_0x332803['trim']()[_0x296da8(0x20c)]());}export function findSqlLockScope(_0x3265ce,_0xeb3b7c){return _0x3265ce['apps'][_0xeb3b7c];}function buildMetadataHeaderLines(_0x31032c,_0x5a95ee){const _0x12bf68=a116_0x4d1a,_0xd71bea=[[_0x12bf68(0x202),_0x31032c['sqlCode']],[_0x12bf68(0x1ed),_0x31032c[_0x12bf68(0x1ed)]],['dbId',_0x31032c[_0x12bf68(0x1ff)]],[_0x12bf68(0x1e6),_0x31032c['dbName']],[_0x12bf68(0x1e3),_0x31032c[_0x12bf68(0x1e3)]],[_0x12bf68(0x1f2),_0x31032c[_0x12bf68(0x1f2)]],['description',_0x31032c[_0x12bf68(0x209)]]];if(_0x5a95ee==='mybatisXml')return _0xd71bea[_0x12bf68(0x1fe)](([,_0x3ae0b1])=>_0x3ae0b1!==undefined&&_0x3ae0b1!==null&&String(_0x3ae0b1)[_0x12bf68(0x1eb)]()!=='')['map'](([_0x3da9d9,_0x598ea2])=>_0x12bf68(0x1f6)+_0x3da9d9+':\x20'+String(_0x598ea2)+_0x12bf68(0x1f3));return _0xd71bea['filter'](([,_0x4fa139])=>_0x4fa139!==undefined&&_0x4fa139!==null&&String(_0x4fa139)[_0x12bf68(0x1eb)]()!=='')['map'](([_0x2327ab,_0x25542b])=>_0x12bf68(0x1e9)+_0x2327ab+':\x20'+String(_0x25542b));}
1
+ const a123_0x2cdd85=a123_0x4660;(function(_0x2d47c3,_0x136960){const _0x5e94e0=a123_0x4660,_0x47f91e=_0x2d47c3();while(!![]){try{const _0x5cf1f9=parseInt(_0x5e94e0(0x1ac))/0x1+-parseInt(_0x5e94e0(0x1a6))/0x2+parseInt(_0x5e94e0(0x1c1))/0x3+parseInt(_0x5e94e0(0x1a3))/0x4+parseInt(_0x5e94e0(0x1bb))/0x5*(parseInt(_0x5e94e0(0x1a9))/0x6)+-parseInt(_0x5e94e0(0x1c8))/0x7+-parseInt(_0x5e94e0(0x1b2))/0x8*(parseInt(_0x5e94e0(0x1a5))/0x9);if(_0x5cf1f9===_0x136960)break;else _0x47f91e['push'](_0x47f91e['shift']());}catch(_0x5eecf4){_0x47f91e['push'](_0x47f91e['shift']());}}}(a123_0x3c11,0xb53a2));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';function a123_0x3c11(){const _0x180091=['close','sqlCode','filter','sqls','endsWith','2929854tmqelW','stdin','length','test','.rabetbase/sql','version','join','7633731avzHvX','replace','trim','mybatisXml','4693596bTugsI','mode','201105oTnYdq','2619604WMNfzM','path','apps','1026yDTgkl','stderr','push','635786FZuMYi','sqlName','--\x20@lovrabet.','\x20[y/N]\x20','question','dbId','312vIVjmq','dbName','lastSync','yes','sqlRoot','description','map','fromEntries','syncedAt','35915gzBJwR'];a123_0x3c11=function(){return _0x180091;};return a123_0x3c11();}function a123_0x4660(_0x3a85a3,_0x574d65){_0x3a85a3=_0x3a85a3-0x1a1;const _0x3c11bb=a123_0x3c11();let _0x4660ec=_0x3c11bb[_0x3a85a3];return _0x4660ec;}export const SQL_LOCAL_REL_DIR=a123_0x2cdd85(0x1c5);export function buildSqlLockEntry(_0xd6c9b1,_0x1b3a51,_0x3c1dbe,_0x504e10){const _0x1749bf=a123_0x2cdd85,_0x3e50e7=detectSqlMode(_0x1b3a51);return{'path':buildSqlRelativePath(_0xd6c9b1['sqlCode'],_0xd6c9b1['sqlName'],_0x504e10?.['dbName'],_0x3e50e7,_0xd6c9b1[_0x1749bf(0x1b1)]),'hash':_0x3c1dbe,'remoteId':_0xd6c9b1['id'],'version':_0xd6c9b1[_0x1749bf(0x1c6)],'dbId':Number(_0xd6c9b1[_0x1749bf(0x1b1)]),'dbName':_0x504e10?.[_0x1749bf(0x1b3)],'sqlName':_0xd6c9b1['sqlName'],'sqlConfig':_0xd6c9b1['sqlConfig']??undefined,'mode':_0x3e50e7};}export function cloneSqlLockData(_0x3aece5){const _0x58af63=a123_0x2cdd85;return{'apps':Object[_0x58af63(0x1b9)](Object['entries'](_0x3aece5['apps'])[_0x58af63(0x1b8)](([_0x510893,_0x349449])=>[_0x510893,{'sqlRoot':_0x349449[_0x58af63(0x1b6)],'lastSync':_0x349449[_0x58af63(0x1b4)],'sqls':{..._0x349449[_0x58af63(0x1bf)]}}]))};}export function ensureRemoteSqlContent(_0x4eeeb6){return _0x4eeeb6['sqlContent']??'';}export function buildLocalSqlFileContent(_0x413529,_0x544205,_0x1e5df3){const _0x1baf9e=a123_0x2cdd85,_0x2cbb79=_0x1e5df3?.[_0x1baf9e(0x1a4)]??detectSqlMode(_0x544205),_0x57096c=stripLocalSqlMetadata(_0x544205,_0x2cbb79)[_0x1baf9e(0x1a1)](),_0x20ac64=[...buildMetadataHeaderLines({'sqlCode':_0x413529[_0x1baf9e(0x1bd)],'sqlName':_0x413529[_0x1baf9e(0x1ad)],'dbId':_0x413529[_0x1baf9e(0x1b1)],'dbName':_0x1e5df3?.['dbName'],'mode':_0x2cbb79,'syncedAt':_0x1e5df3?.[_0x1baf9e(0x1ba)],'description':_0x1e5df3?.['description']},_0x2cbb79),'',_0x57096c],_0x4feea0=_0x20ac64[_0x1baf9e(0x1c7)]('\x0a');return _0x4feea0[_0x1baf9e(0x1c0)]('\x0a')?_0x4feea0:_0x4feea0+'\x0a';}export function stripLocalSqlMetadata(_0x3695fd,_0x4331bb){const _0x4a7b37=a123_0x2cdd85,_0x2ce222=_0x3695fd[_0x4a7b37(0x1c9)](/\r\n/g,'\x0a')['split']('\x0a'),_0x35a2e3=[];let _0x4595ec=0x0;if(_0x4331bb===_0x4a7b37(0x1a2))while(_0x4595ec<_0x2ce222[_0x4a7b37(0x1c3)]){const _0xb1fd2c=_0x2ce222[_0x4595ec]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0xb1fd2c)){_0x4595ec++;continue;}if(_0xb1fd2c['trim']()===''&&_0x4595ec>0x0){_0x4595ec++;continue;}break;}else while(_0x4595ec<_0x2ce222[_0x4a7b37(0x1c3)]){const _0x5bbadf=_0x2ce222[_0x4595ec]??'';if(/^\s*--\s*@lovrabet\./[_0x4a7b37(0x1c4)](_0x5bbadf)){_0x4595ec++;continue;}if(_0x5bbadf[_0x4a7b37(0x1a1)]()===''&&_0x4595ec>0x0){_0x4595ec++;continue;}break;}for(;_0x4595ec<_0x2ce222[_0x4a7b37(0x1c3)];_0x4595ec++){_0x35a2e3[_0x4a7b37(0x1ab)](_0x2ce222[_0x4595ec]);}return _0x35a2e3[_0x4a7b37(0x1c7)]('\x0a')['trimStart']();}export function resolveSqlMode(_0x5db442,_0x4e24a7){const _0x218523=a123_0x2cdd85;if(_0x4e24a7?.[_0x218523(0x1a4)])return _0x4e24a7[_0x218523(0x1a4)];return detectSqlMode(_0x5db442);}export function resolveSqlFileName(_0x458f0d,_0xbd1c70,_0xc333c1){const _0xa7e8f1=a123_0x2cdd85;if(_0xc333c1?.[_0xa7e8f1(0x1a7)])return _0xc333c1[_0xa7e8f1(0x1a7)];if(_0xc333c1?.[_0xa7e8f1(0x1ad)]||_0xc333c1?.[_0xa7e8f1(0x1b3)])return buildSqlRelativePath(_0x458f0d,_0xc333c1?.['sqlName'],_0xc333c1?.[_0xa7e8f1(0x1b3)],resolveSqlMode(_0xbd1c70,_0xc333c1),_0xc333c1?.[_0xa7e8f1(0x1b1)]);return buildDefaultSqlFileName(_0x458f0d,resolveSqlMode(_0xbd1c70,_0xc333c1));}export function resolveSqlLocalDir(_0x2a209f,_0x51fc7f){return join(_0x2a209f,SQL_LOCAL_REL_DIR,_0x51fc7f);}export async function confirmForceOverwrite(_0x67e561){const _0x38baa4=a123_0x2cdd85,_0x2e15ca=createInterface({'input':process[_0x38baa4(0x1c2)],'output':process[_0x38baa4(0x1aa)]}),_0x567099=await new Promise(_0x323845=>{const _0x204ea3=_0x38baa4;_0x2e15ca[_0x204ea3(0x1b0)](_0x67e561+_0x204ea3(0x1af),_0x323845);});return _0x2e15ca[_0x38baa4(0x1bc)](),['y',_0x38baa4(0x1b5)]['includes'](_0x567099[_0x38baa4(0x1a1)]()['toLowerCase']());}export function findSqlLockScope(_0x213d7f,_0x4ea24a){const _0xa2c4f8=a123_0x2cdd85;return _0x213d7f[_0xa2c4f8(0x1a8)][_0x4ea24a];}function buildMetadataHeaderLines(_0x52bba6,_0x552a1c){const _0x76f0b0=a123_0x2cdd85,_0x258716=[[_0x76f0b0(0x1bd),_0x52bba6[_0x76f0b0(0x1bd)]],['sqlName',_0x52bba6['sqlName']],['dbId',_0x52bba6[_0x76f0b0(0x1b1)]],[_0x76f0b0(0x1b3),_0x52bba6[_0x76f0b0(0x1b3)]],[_0x76f0b0(0x1a4),_0x52bba6['mode']],[_0x76f0b0(0x1ba),_0x52bba6[_0x76f0b0(0x1ba)]],[_0x76f0b0(0x1b7),_0x52bba6[_0x76f0b0(0x1b7)]]];if(_0x552a1c==='mybatisXml')return _0x258716['filter'](([,_0x4c0278])=>_0x4c0278!==undefined&&_0x4c0278!==null&&String(_0x4c0278)['trim']()!=='')[_0x76f0b0(0x1b8)](([_0x363fc1,_0x1dc64f])=>'<!--\x20@lovrabet.'+_0x363fc1+':\x20'+String(_0x1dc64f)+'\x20-->');return _0x258716[_0x76f0b0(0x1be)](([,_0x70d15a])=>_0x70d15a!==undefined&&_0x70d15a!==null&&String(_0x70d15a)[_0x76f0b0(0x1a1)]()!=='')[_0x76f0b0(0x1b8)](([_0x840183,_0x290a75])=>_0x76f0b0(0x1ae)+_0x840183+':\x20'+String(_0x290a75));}
@@ -1 +1 @@
1
- const a117_0xea72ab=a117_0x34dd;(function(_0x37c28b,_0x42e73d){const _0x53eef4=a117_0x34dd,_0xc99cc0=_0x37c28b();while(!![]){try{const _0x34af01=parseInt(_0x53eef4(0x1a8))/0x1+parseInt(_0x53eef4(0x19d))/0x2*(parseInt(_0x53eef4(0x1b5))/0x3)+parseInt(_0x53eef4(0x1ac))/0x4+parseInt(_0x53eef4(0x1ab))/0x5+-parseInt(_0x53eef4(0x192))/0x6*(parseInt(_0x53eef4(0x194))/0x7)+parseInt(_0x53eef4(0x1a9))/0x8*(parseInt(_0x53eef4(0x1a1))/0x9)+parseInt(_0x53eef4(0x195))/0xa*(-parseInt(_0x53eef4(0x1a3))/0xb);if(_0x34af01===_0x42e73d)break;else _0xc99cc0['push'](_0xc99cc0['shift']());}catch(_0x20db55){_0xc99cc0['push'](_0xc99cc0['shift']());}}}(a117_0x213d,0x4ccfe));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a117_0x213d(){const _0x4c6937=['\x20added,\x20','status','54926rJDJUA','filePath','\x20missing,\x20','remote','18gbNjPs','push','4345zsiTqX','lockKey','map','paging','appCode','312943iXGAxV','878208gLdGnn','keys','2454785mbZPVO','1585752dGmFFm','hash','sqlCode','has','sql','totalCount','path','boolean','tableData','9XFzSGo','bool','sqls','6mOiuGr','\x20remote-only','1157779wnZpnE','25880QaYsQP','\x20unchanged','All\x20SQL\x20queries\x20are\x20in\x20sync.','sqlName','\x20modified,\x20','length'];a117_0x213d=function(){return _0x4c6937;};return a117_0x213d();}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(_0x2890d7){const _0x501a92=a117_0x34dd,_0x4812f6=[];let _0x10ca18=0x1;while(!![]){const _0x387306=await listSqlQueries(_0x2890d7,{'currentPage':_0x10ca18,'pageSize':PAGE_SIZE}),_0x316513=_0x387306[_0x501a92(0x1b4)]??[];_0x4812f6[_0x501a92(0x1a2)](..._0x316513[_0x501a92(0x1a5)](_0x29c76e=>_0x29c76e[_0x501a92(0x1ae)]));if(_0x316513[_0x501a92(0x19a)]===0x0)break;const _0x5145eb=_0x387306[_0x501a92(0x1a6)]?.[_0x501a92(0x1b1)];if(_0x5145eb!=null?_0x4812f6[_0x501a92(0x19a)]>=_0x5145eb:_0x316513[_0x501a92(0x19a)]<PAGE_SIZE)break;_0x10ca18++;}return _0x4812f6;}function a117_0x34dd(_0x27d389,_0xfda5f1){_0x27d389=_0x27d389-0x192;const _0x213d0d=a117_0x213d();let _0x34ddef=_0x213d0d[_0x27d389];return _0x34ddef;}export const sqlStatus={'service':a117_0xea72ab(0x1b0),'command':a117_0xea72ab(0x19c),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':'read','flags':[{'name':'remote','type':a117_0xea72ab(0x1b3),'description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x397177){const _0x77bb92=a117_0xea72ab,_0x597de1=loadSqlProjectConfig(_0x397177[_0x77bb92(0x1a7)]),_0x2f36a0=await readSqlLockFile(_0x597de1['lockFilePath']),{appLock:_0x415e8d}=ensureSqlLockScope(_0x2f36a0??createEmptySqlLock(),_0x597de1[_0x77bb92(0x1a7)],_0x597de1['sqlRoot'],_0x77bb92(0x19c)),_0x533e8e=await scanLocalSqlQueries(_0x597de1),_0x3eb122=[],_0x30d592=[],_0x11a94c=[],_0x102d72=[],_0x157dbe=new Set(_0x533e8e[_0x77bb92(0x1a5)](_0x4d9bd6=>_0x4d9bd6[_0x77bb92(0x1a4)]));for(const _0x70c00a of _0x533e8e){const _0x1c6b2f=await computeSqlFileHash(_0x70c00a[_0x77bb92(0x19e)]),_0x43a8b6=_0x415e8d[_0x77bb92(0x1b7)][_0x70c00a[_0x77bb92(0x1a4)]],_0x340928=!!_0x43a8b6&&_0x43a8b6[_0x77bb92(0x1b2)]!==_0x70c00a['relativePath'],_0x3c20f1=!!_0x43a8b6&&!!_0x70c00a['sqlName']&&_0x43a8b6[_0x77bb92(0x198)]!==_0x70c00a[_0x77bb92(0x198)];if(!_0x43a8b6)_0x3eb122[_0x77bb92(0x1a2)](_0x70c00a['lockKey']);else _0x43a8b6[_0x77bb92(0x1ad)]!==_0x1c6b2f||_0x340928||_0x3c20f1?_0x30d592['push'](_0x70c00a[_0x77bb92(0x1a4)]):_0x11a94c['push'](_0x70c00a[_0x77bb92(0x1a4)]);}for(const _0x2d8171 of Object[_0x77bb92(0x1aa)](_0x415e8d[_0x77bb92(0x1b7)])){!_0x157dbe['has'](_0x2d8171)&&_0x102d72[_0x77bb92(0x1a2)](_0x2d8171);}const _0x508a9c=[];if(_0x397177[_0x77bb92(0x1b6)](_0x77bb92(0x1a0))){const _0x6a92d3=await fetchAllSqlCodes(_0x397177['appCode']);for(const _0x465d1a of _0x6a92d3){!_0x157dbe[_0x77bb92(0x1af)](_0x465d1a)&&!_0x415e8d[_0x77bb92(0x1b7)][_0x465d1a]&&_0x508a9c['push'](_0x465d1a);}}const _0x152514=_0x3eb122[_0x77bb92(0x19a)]===0x0&&_0x30d592[_0x77bb92(0x19a)]===0x0&&_0x102d72[_0x77bb92(0x19a)]===0x0&&_0x508a9c[_0x77bb92(0x19a)]===0x0;return{'ok':!![],'data':{'added':_0x3eb122,'modified':_0x30d592,'missing':_0x102d72,'unchanged':_0x11a94c,'remoteOnly':_0x508a9c},'message':_0x152514?_0x77bb92(0x197):_0x3eb122[_0x77bb92(0x19a)]+_0x77bb92(0x19b)+_0x30d592[_0x77bb92(0x19a)]+_0x77bb92(0x199)+_0x102d72[_0x77bb92(0x19a)]+_0x77bb92(0x19f)+_0x11a94c[_0x77bb92(0x19a)]+_0x77bb92(0x196)+(_0x508a9c[_0x77bb92(0x19a)]>0x0?',\x20'+_0x508a9c['length']+_0x77bb92(0x193):'')};}};
1
+ const a124_0x32c515=a124_0x58da;function a124_0x45db(){const _0x3e6862=['read','hash','99084yDhpjh','4180QCcvXp','\x20modified,\x20','length','1661eylOKg','appCode','bool','5OWvrJZ','boolean','has','lockKey','\x20missing,\x20','map','sqls','872235TRwNPY','totalCount','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','51316EfoVgk','9fNXTMO','remote','6XwSuBZ','518945dVeAGr','sqlName','filePath','1611744gvyttX','\x20added,\x20','lockFilePath','push','status','sqlCode','sqlRoot','83234MjIIlw','\x20remote-only','sql','\x20unchanged'];a124_0x45db=function(){return _0x3e6862;};return a124_0x45db();}(function(_0x45512c,_0x45da5f){const _0x489023=a124_0x58da,_0x2f0072=_0x45512c();while(!![]){try{const _0x37ffa0=parseInt(_0x489023(0xaa))/0x1+parseInt(_0x489023(0xa4))/0x2*(-parseInt(_0x489023(0x97))/0x3)+parseInt(_0x489023(0x96))/0x4*(-parseInt(_0x489023(0xb1))/0x5)+-parseInt(_0x489023(0x99))/0x6*(parseInt(_0x489023(0x9a))/0x7)+parseInt(_0x489023(0x9d))/0x8+parseInt(_0x489023(0x93))/0x9+-parseInt(_0x489023(0xab))/0xa*(parseInt(_0x489023(0xae))/0xb);if(_0x37ffa0===_0x45da5f)break;else _0x2f0072['push'](_0x2f0072['shift']());}catch(_0x58d0ae){_0x2f0072['push'](_0x2f0072['shift']());}}}(a124_0x45db,0x1dea6));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 a124_0x58da(_0xc6d9aa,_0x59b397){_0xc6d9aa=_0xc6d9aa-0x92;const _0x45db15=a124_0x45db();let _0x58da70=_0x45db15[_0xc6d9aa];return _0x58da70;}async function fetchAllSqlCodes(_0x112a7f){const _0x46523f=a124_0x58da,_0xcd3a99=[];let _0x253e56=0x1;while(!![]){const _0x3d153d=await listSqlQueries(_0x112a7f,{'currentPage':_0x253e56,'pageSize':PAGE_SIZE}),_0x25163d=_0x3d153d['tableData']??[];_0xcd3a99['push'](..._0x25163d['map'](_0x222253=>_0x222253[_0x46523f(0xa2)]));if(_0x25163d[_0x46523f(0xad)]===0x0)break;const _0x2bd7df=_0x3d153d['paging']?.[_0x46523f(0x94)];if(_0x2bd7df!=null?_0xcd3a99[_0x46523f(0xad)]>=_0x2bd7df:_0x25163d[_0x46523f(0xad)]<PAGE_SIZE)break;_0x253e56++;}return _0xcd3a99;}export const sqlStatus={'service':a124_0x32c515(0xa6),'command':a124_0x32c515(0xa1),'description':a124_0x32c515(0x95),'risk':a124_0x32c515(0xa8),'flags':[{'name':a124_0x32c515(0x98),'type':a124_0x32c515(0xb2),'description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x4f81b3){const _0x4ce7d6=a124_0x32c515,_0x17ad63=loadSqlProjectConfig(_0x4f81b3[_0x4ce7d6(0xaf)]),_0x14b553=await readSqlLockFile(_0x17ad63[_0x4ce7d6(0x9f)]),{appLock:_0x2a341a}=ensureSqlLockScope(_0x14b553??createEmptySqlLock(),_0x17ad63[_0x4ce7d6(0xaf)],_0x17ad63[_0x4ce7d6(0xa3)],'status'),_0x102ed4=await scanLocalSqlQueries(_0x17ad63),_0x897faa=[],_0x490ebe=[],_0xf2b8=[],_0x197a74=[],_0x8d55ee=new Set(_0x102ed4[_0x4ce7d6(0xb6)](_0x519279=>_0x519279[_0x4ce7d6(0xb4)]));for(const _0x55f1ef of _0x102ed4){const _0x472104=await computeSqlFileHash(_0x55f1ef[_0x4ce7d6(0x9c)]),_0x4cd772=_0x2a341a[_0x4ce7d6(0x92)][_0x55f1ef['lockKey']],_0x49d45f=!!_0x4cd772&&_0x4cd772['path']!==_0x55f1ef['relativePath'],_0x1060d3=!!_0x4cd772&&!!_0x55f1ef[_0x4ce7d6(0x9b)]&&_0x4cd772[_0x4ce7d6(0x9b)]!==_0x55f1ef[_0x4ce7d6(0x9b)];if(!_0x4cd772)_0x897faa[_0x4ce7d6(0xa0)](_0x55f1ef[_0x4ce7d6(0xb4)]);else _0x4cd772[_0x4ce7d6(0xa9)]!==_0x472104||_0x49d45f||_0x1060d3?_0x490ebe[_0x4ce7d6(0xa0)](_0x55f1ef[_0x4ce7d6(0xb4)]):_0xf2b8[_0x4ce7d6(0xa0)](_0x55f1ef[_0x4ce7d6(0xb4)]);}for(const _0x3cda5c of Object['keys'](_0x2a341a[_0x4ce7d6(0x92)])){!_0x8d55ee[_0x4ce7d6(0xb3)](_0x3cda5c)&&_0x197a74[_0x4ce7d6(0xa0)](_0x3cda5c);}const _0x2fa323=[];if(_0x4f81b3[_0x4ce7d6(0xb0)](_0x4ce7d6(0x98))){const _0x38e55e=await fetchAllSqlCodes(_0x4f81b3[_0x4ce7d6(0xaf)]);for(const _0x1b26e9 of _0x38e55e){!_0x8d55ee[_0x4ce7d6(0xb3)](_0x1b26e9)&&!_0x2a341a['sqls'][_0x1b26e9]&&_0x2fa323[_0x4ce7d6(0xa0)](_0x1b26e9);}}const _0x2754d6=_0x897faa[_0x4ce7d6(0xad)]===0x0&&_0x490ebe[_0x4ce7d6(0xad)]===0x0&&_0x197a74['length']===0x0&&_0x2fa323[_0x4ce7d6(0xad)]===0x0;return{'ok':!![],'data':{'added':_0x897faa,'modified':_0x490ebe,'missing':_0x197a74,'unchanged':_0xf2b8,'remoteOnly':_0x2fa323},'message':_0x2754d6?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x897faa[_0x4ce7d6(0xad)]+_0x4ce7d6(0x9e)+_0x490ebe[_0x4ce7d6(0xad)]+_0x4ce7d6(0xac)+_0x197a74['length']+_0x4ce7d6(0xb5)+_0xf2b8['length']+_0x4ce7d6(0xa7)+(_0x2fa323[_0x4ce7d6(0xad)]>0x0?',\x20'+_0x2fa323['length']+_0x4ce7d6(0xa5):'')};}};
@@ -1 +1 @@
1
- const a118_0xee8931=a118_0x4b60;function a118_0x4b60(_0x49e3e2,_0x2b784b){_0x49e3e2=_0x49e3e2-0x7c;const _0x3873c9=a118_0x3873();let _0x4b60fa=_0x3873c9[_0x49e3e2];return _0x4b60fa;}(function(_0x285585,_0x365715){const _0x421c50=a118_0x4b60,_0x195c57=_0x285585();while(!![]){try{const _0x575eb1=-parseInt(_0x421c50(0x8a))/0x1+parseInt(_0x421c50(0xa1))/0x2+-parseInt(_0x421c50(0x7e))/0x3*(-parseInt(_0x421c50(0x8b))/0x4)+-parseInt(_0x421c50(0x94))/0x5*(-parseInt(_0x421c50(0x95))/0x6)+parseInt(_0x421c50(0x82))/0x7+-parseInt(_0x421c50(0x9e))/0x8+-parseInt(_0x421c50(0x97))/0x9;if(_0x575eb1===_0x365715)break;else _0x195c57['push'](_0x195c57['shift']());}catch(_0xeed143){_0x195c57['push'](_0x195c57['shift']());}}}(a118_0x3873,0x63eda));import{readFileSync,existsSync}from'node:fs';function a118_0x3873(){const _0xb0790f=['split','reason','toLowerCase','flagMissing','trim','6075560vCFDGr','utf-8','validation','563668lOqVBR','validate','Table\x20\x22','push','string','parameters','240153TeiKxp','tableName','read','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','5609324NEgCIW','length','dbtableConfig','valid','sqlType','fields','schemas','isDangerous','168577QpUpuo','28kCcKoX','str','sql','message','name','isSelectOnly','cwd','file','map','5biXjif','518244dLtrzI','tables','3533121QZvuEK','Provide\x20--file\x20or\x20--sql'];a118_0x3873=function(){return _0xb0790f;};return a118_0x3873();}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';export const sqlValidate={'service':a118_0xee8931(0x8d),'command':a118_0xee8931(0xa2),'description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a118_0xee8931(0x80),'flags':[{'name':a118_0xee8931(0x92),'type':a118_0xee8931(0x7c),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':a118_0xee8931(0x8d),'type':'string','description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a118_0xee8931(0x88),'type':a118_0xee8931(0x7c),'description':a118_0xee8931(0x81)}],async 'execute'(_0x222dd5){const _0x496f00=a118_0xee8931,_0x5ea004=_0x222dd5[_0x496f00(0x8c)](_0x496f00(0x92)),_0xff892d=_0x222dd5[_0x496f00(0x8c)]('sql');if(!_0x5ea004&&!_0xff892d)throw CliErrors[_0x496f00(0x9c)]('file',_0x496f00(0x98));let _0x3d2ba6;if(_0x5ea004){const _0x5448c5=resolve(process[_0x496f00(0x91)](),_0x5ea004);if(!existsSync(_0x5448c5))throw CliErrors[_0x496f00(0xa0)]('File\x20not\x20found:\x20'+_0x5448c5);_0x3d2ba6=readFileSync(_0x5448c5,_0x496f00(0x9f));}else _0x3d2ba6=_0xff892d;const _0x4948=validateSql(_0x3d2ba6),_0x55db8f={'valid':_0x4948[_0x496f00(0x85)],'sqlType':_0x4948['sqlType']['type'],'isSelectOnly':_0x4948[_0x496f00(0x86)][_0x496f00(0x90)],'isDangerous':_0x4948['sqlType'][_0x496f00(0x89)],'tables':_0x4948[_0x496f00(0x96)],'parameters':_0x4948[_0x496f00(0x7d)],'message':_0x4948[_0x496f00(0x8e)]};_0x4948['sqlType']['reason']&&(_0x55db8f[_0x496f00(0x9a)]=_0x4948[_0x496f00(0x86)][_0x496f00(0x9a)]);const _0x42f5ec=_0x222dd5[_0x496f00(0x8c)](_0x496f00(0x88));if(_0x42f5ec&&_0x4948['valid']){const _0x4363fd=_0x42f5ec[_0x496f00(0x99)](',')[_0x496f00(0x93)](_0x175d1f=>_0x175d1f[_0x496f00(0x9d)]())['filter'](Boolean),_0x26c19c=[],_0x39720b=await listDatasets(_0x222dd5['appCode']),_0x20ebb1=new Map(_0x39720b[_0x496f00(0x93)](_0x4b3c03=>[_0x4b3c03[_0x496f00(0x84)]?.[_0x496f00(0x7f)]?.[_0x496f00(0x9b)](),_0x4b3c03]));for(const _0x171ba2 of _0x4948['tables']){const _0x2d664d=_0x20ebb1['get'](_0x171ba2[_0x496f00(0x9b)]());!_0x2d664d&&_0x26c19c[_0x496f00(0xa4)](_0x496f00(0xa3)+_0x171ba2+'\x22\x20not\x20found\x20in\x20any\x20dataset');}for(const _0xf9bb35 of _0x4363fd){try{const _0x51e1c4=await getDatasetDetail(_0xf9bb35),_0x18549e=Array['isArray'](_0x51e1c4[_0x496f00(0x87)])?_0x51e1c4[_0x496f00(0x87)]:[],_0x44f8db=new Set(_0x18549e[_0x496f00(0x93)](_0x5855f1=>_0x5855f1[_0x496f00(0x8f)]?.['toLowerCase']())),_0x4f4c80=_0x51e1c4['dbtableConfig']?.[_0x496f00(0x7f)]||_0x51e1c4[_0x496f00(0x7f)]||_0xf9bb35;_0x55db8f['schema:'+_0x4f4c80]={'code':_0xf9bb35,'tableName':_0x4f4c80,'fieldCount':_0x44f8db['size'],'fields':Array['from'](_0x44f8db)};}catch{_0x26c19c['push']('Dataset\x20\x22'+_0xf9bb35+'\x22\x20not\x20found\x20or\x20not\x20accessible');}}_0x26c19c[_0x496f00(0x83)]>0x0&&(_0x55db8f['schemaWarnings']=_0x26c19c);}return{'ok':_0x4948[_0x496f00(0x85)],'data':_0x55db8f,'message':_0x4948[_0x496f00(0x8e)]};}};
1
+ const a125_0x298cf9=a125_0x1978;(function(_0x2fb6b9,_0x371526){const _0xcb05ca=a125_0x1978,_0x5fb92a=_0x2fb6b9();while(!![]){try{const _0x442e99=parseInt(_0xcb05ca(0x18b))/0x1+parseInt(_0xcb05ca(0x183))/0x2+parseInt(_0xcb05ca(0x197))/0x3*(-parseInt(_0xcb05ca(0x18f))/0x4)+-parseInt(_0xcb05ca(0x189))/0x5+parseInt(_0xcb05ca(0x194))/0x6*(-parseInt(_0xcb05ca(0x177))/0x7)+parseInt(_0xcb05ca(0x178))/0x8*(-parseInt(_0xcb05ca(0x16e))/0x9)+parseInt(_0xcb05ca(0x174))/0xa;if(_0x442e99===_0x371526)break;else _0x5fb92a['push'](_0x5fb92a['shift']());}catch(_0x484fb1){_0x5fb92a['push'](_0x5fb92a['shift']());}}}(a125_0x3007,0xc705a));function a125_0x1978(_0x2d242c,_0x4fafb3){_0x2d242c=_0x2d242c-0x16e;const _0x3007a7=a125_0x3007();let _0x1978df=_0x3007a7[_0x2d242c];return _0x1978df;}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';export const sqlValidate={'service':'sql','command':a125_0x298cf9(0x193),'description':a125_0x298cf9(0x19b),'risk':a125_0x298cf9(0x16f),'flags':[{'name':a125_0x298cf9(0x199),'type':a125_0x298cf9(0x17d),'description':a125_0x298cf9(0x179)},{'name':a125_0x298cf9(0x176),'type':'string','description':a125_0x298cf9(0x192)},{'name':a125_0x298cf9(0x18a),'type':a125_0x298cf9(0x17d),'description':a125_0x298cf9(0x182)}],async 'execute'(_0x436e5c){const _0x2178af=a125_0x298cf9,_0x1a778a=_0x436e5c[_0x2178af(0x198)](_0x2178af(0x199)),_0x2091fd=_0x436e5c[_0x2178af(0x198)]('sql');if(!_0x1a778a&&!_0x2091fd)throw CliErrors[_0x2178af(0x195)](_0x2178af(0x199),_0x2178af(0x17a));let _0x304e02;if(_0x1a778a){const _0xc2ed81=resolve(process[_0x2178af(0x18c)](),_0x1a778a);if(!existsSync(_0xc2ed81))throw CliErrors[_0x2178af(0x17e)](_0x2178af(0x185)+_0xc2ed81);_0x304e02=readFileSync(_0xc2ed81,'utf-8');}else _0x304e02=_0x2091fd;const _0x46aac1=validateSql(_0x304e02),_0x1a5ff3={'valid':_0x46aac1[_0x2178af(0x184)],'sqlType':_0x46aac1[_0x2178af(0x17f)][_0x2178af(0x180)],'isSelectOnly':_0x46aac1['sqlType']['isSelectOnly'],'isDangerous':_0x46aac1[_0x2178af(0x17f)][_0x2178af(0x18e)],'tables':_0x46aac1[_0x2178af(0x171)],'parameters':_0x46aac1[_0x2178af(0x191)],'message':_0x46aac1[_0x2178af(0x188)]};_0x46aac1['sqlType'][_0x2178af(0x186)]&&(_0x1a5ff3[_0x2178af(0x186)]=_0x46aac1[_0x2178af(0x17f)]['reason']);const _0x46bdaa=_0x436e5c[_0x2178af(0x198)](_0x2178af(0x18a));if(_0x46bdaa&&_0x46aac1[_0x2178af(0x184)]){const _0x504d61=_0x46bdaa['split'](',')[_0x2178af(0x19c)](_0x341c1e=>_0x341c1e['trim']())[_0x2178af(0x170)](Boolean),_0x35e0a1=[],_0x171d37=await listDatasets(_0x436e5c['appCode']),_0x3bd4d3=new Map(_0x171d37['map'](_0x4a4479=>[_0x4a4479[_0x2178af(0x187)]?.['tableName']?.['toLowerCase'](),_0x4a4479]));for(const _0x38ba2c of _0x46aac1['tables']){const _0x3bc893=_0x3bd4d3['get'](_0x38ba2c[_0x2178af(0x172)]());!_0x3bc893&&_0x35e0a1['push']('Table\x20\x22'+_0x38ba2c+_0x2178af(0x173));}for(const _0x118eb8 of _0x504d61){try{const _0x2f6620=await getDatasetDetail(_0x118eb8),_0x3166f3=Array[_0x2178af(0x190)](_0x2f6620[_0x2178af(0x175)])?_0x2f6620['fields']:[],_0x321d74=new Set(_0x3166f3[_0x2178af(0x19c)](_0xd19d3e=>_0xd19d3e[_0x2178af(0x196)]?.[_0x2178af(0x172)]())),_0x34157d=_0x2f6620[_0x2178af(0x187)]?.[_0x2178af(0x181)]||_0x2f6620['tableName']||_0x118eb8;_0x1a5ff3['schema:'+_0x34157d]={'code':_0x118eb8,'tableName':_0x34157d,'fieldCount':_0x321d74[_0x2178af(0x17b)],'fields':Array[_0x2178af(0x18d)](_0x321d74)};}catch{_0x35e0a1[_0x2178af(0x17c)]('Dataset\x20\x22'+_0x118eb8+'\x22\x20not\x20found\x20or\x20not\x20accessible');}}_0x35e0a1['length']>0x0&&(_0x1a5ff3[_0x2178af(0x19a)]=_0x35e0a1);}return{'ok':_0x46aac1[_0x2178af(0x184)],'data':_0x1a5ff3,'message':_0x46aac1[_0x2178af(0x188)]};}};function a125_0x3007(){const _0x4e5ebd=['type','tableName','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','1371602EjXIyp','valid','File\x20not\x20found:\x20','reason','dbtableConfig','message','2362235LozmQx','schemas','1152496oFfDtv','cwd','from','isDangerous','36CQfIYf','isArray','parameters','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','validate','2092638DjTkaH','flagMissing','name','539262jiyIhe','str','file','schemaWarnings','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','map','12627UMPuzc','read','filter','tables','toLowerCase','\x22\x20not\x20found\x20in\x20any\x20dataset','24846700GoPInd','fields','sql','28lZrIOk','128uwWMcW','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','Provide\x20--file\x20or\x20--sql','size','push','string','validation','sqlType'];a125_0x3007=function(){return _0x4e5ebd;};return a125_0x3007();}