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

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 (197) 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
  197. package/templates/projects/sub-app-react-demo/README.md +1 -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_0xf85e33=a113_0x5ca5;(function(_0xac7b55,_0x4fa462){const _0x4a117b=a113_0x5ca5,_0x19553f=_0xac7b55();while(!![]){try{const _0x581dcd=-parseInt(_0x4a117b(0xac))/0x1*(-parseInt(_0x4a117b(0xb8))/0x2)+parseInt(_0x4a117b(0xab))/0x3*(parseInt(_0x4a117b(0xb6))/0x4)+parseInt(_0x4a117b(0xa3))/0x5+-parseInt(_0x4a117b(0xb3))/0x6*(-parseInt(_0x4a117b(0xa7))/0x7)+-parseInt(_0x4a117b(0xa5))/0x8+parseInt(_0x4a117b(0xb9))/0x9+-parseInt(_0x4a117b(0xa9))/0xa;if(_0x581dcd===_0x4fa462)break;else _0x19553f['push'](_0x19553f['shift']());}catch(_0x3c65b8){_0x19553f['push'](_0x19553f['shift']());}}}(a113_0x1b94,0x4d7a9));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a113_0x5ca5(_0x896b23,_0x507e8d){_0x896b23=_0x896b23-0xa0;const _0x1b946b=a113_0x1b94();let _0x5ca57f=_0x1b946b[_0x896b23];return _0x5ca57f;}import{logger}from'../../utils/logger.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':a113_0xf85e33(0xb4),'command':'install','description':a113_0xf85e33(0xa4),'risk':a113_0xf85e33(0xaa),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x433dd7){const _0x5b28b1=a113_0xf85e33;logger['setLogPath'](process[_0x5b28b1(0xaf)]()),logger['info']('skill-install',_0x5b28b1(0xb5));const {runNpxSkillsAddGlobal:_0x12b74b}=await import(_0x5b28b1(0xa6)),_0x9216b8=_0x433dd7['nonInteractive']?'pipe':_0x5b28b1(0xb7);console[_0x5b28b1(0xad)]('Installing\x20official\x20skill\x20via\x20npx\x20('+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+')...');const _0xc16e34=_0x12b74b(process[_0x5b28b1(0xaf)](),_0x5b28b1(0xb2),{'stdio':_0x9216b8});if(_0xc16e34[_0x5b28b1(0xae)])console[_0x5b28b1(0xad)](_0x5b28b1(0xa8));else{if(_0xc16e34['ok'])console[_0x5b28b1(0xad)](CLI_BIN_NAME+_0x5b28b1(0xa0));else throw CliErrors['apiError'](_0x5b28b1(0xb0)+(_0xc16e34[_0x5b28b1(0xb1)]||_0x5b28b1(0xa2)),_0x5b28b1(0xa1));}return{'ok':!![]};}}];function a113_0x1b94(){const _0x10fbea=['790674YleFIW','skill','执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)','4yqZvyF','inherit','95714KfpJkB','2964654HLsgAi','\x20skill\x20installed','Check\x20network\x20connectivity\x20and\x20try\x20again.','unknown','810455tMNqdu','Install\x20developer\x20skill\x20package','4390592JQinNh','../../skills/npx-skills-add.js','21GNbiWw','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','7341530VKRvvZ','write','704778paCWWG','10Bvmtpe','log','skipped','cwd','npx\x20skills\x20add\x20failed:\x20','error','lovrabet/rabetbase'];a113_0x1b94=function(){return _0x10fbea;};return a113_0x1b94();}
@@ -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_0x14e243=a114_0x20e0;function a114_0x2010(){const _0x2d3988=['--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlRootDir','flag','MyBatis\x20XML(mybatisXml)','dbName','length','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','mode','flagMissing','请选择目标数据库:','trim','2038779AzPRjk','sqlName','SELECT\x201\x20AS\x20id;','47312beFyAD','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','join','toISOString','165671tOFWWc','996370xgTBDm','✎\x20手动输入\x20dbId','isFinite','POST','isInteger','sqlCode','catch','Invalid\x20database\x20selection\x20payload:\x20','map','lastSync','1909857khKTRD','string','请输入目标数据库\x20dbId:','2tKRQmJ','适合带动态标签的\x20MyBatis\x20XML\x20SQL','lockFilePath','validation','number','</select>','parse','sqlRoot','mybatisXml','672mVRMyf','Target\x20database\x20ID','Created\x20SQL\x20query\x20','appCode','description','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','Local\x20SQL\x20file\x20mode','dbId\x20必须为正整数','dbId\x20不能为空','sqls','db-id','dbId','580noYAvW','请选择本地\x20SQL\x20模式:','nonInteractive','str','8zwwMHc','sql','create','name','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','high-risk-write','__manual__','2983422txjPvW','247258oQQQuO','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>'];a114_0x2010=function(){return _0x2d3988;};return a114_0x2010();}(function(_0x4b72fe,_0x42e040){const _0x2deec5=a114_0x20e0,_0x28ac2d=_0x4b72fe();while(!![]){try{const _0x5f5c52=parseInt(_0x2deec5(0x88))/0x1+-parseInt(_0x2deec5(0x96))/0x2*(parseInt(_0x2deec5(0x93))/0x3)+-parseInt(_0x2deec5(0xaf))/0x4*(-parseInt(_0x2deec5(0x89))/0x5)+-parseInt(_0x2deec5(0x73))/0x6+-parseInt(_0x2deec5(0x9f))/0x7*(parseInt(_0x2deec5(0x84))/0x8)+parseInt(_0x2deec5(0x81))/0x9+parseInt(_0x2deec5(0xab))/0xa*(parseInt(_0x2deec5(0x74))/0xb);if(_0x5f5c52===_0x42e040)break;else _0x28ac2d['push'](_0x28ac2d['shift']());}catch(_0x2f16e6){_0x28ac2d['push'](_0x28ac2d['shift']());}}}(a114_0x2010,0x5feaa));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(_0x4527ba){const _0x3ebd95=a114_0x20e0;if(_0x4527ba===_0x3ebd95(0x9e))return[_0x3ebd95(0x75),'\x20\x20SELECT\x201\x20AS\x20id',_0x3ebd95(0x9b),''][_0x3ebd95(0x86)]('\x0a');return[_0x3ebd95(0x83),'']['join']('\x0a');}export const sqlCreate={'service':'sql','command':a114_0x14e243(0xb1),'description':a114_0x14e243(0x6f),'risk':a114_0x14e243(0x71),'flags':[{'name':a114_0x14e243(0xb2),'type':a114_0x14e243(0x94),'description':'SQL\x20query\x20display\x20name'},{'name':a114_0x14e243(0xa9),'type':a114_0x14e243(0x9a),'description':a114_0x14e243(0xa0)},{'name':'mode','type':a114_0x14e243(0x94),'enum':[a114_0x14e243(0xb0),'mybatisXml'],'description':a114_0x14e243(0xa5)}],async 'validate'(_0x6e7e79){const _0x3fcf62=a114_0x14e243;if(!_0x6e7e79[_0x3fcf62(0xad)])return;if(!_0x6e7e79[_0x3fcf62(0xae)](_0x3fcf62(0xb2))[_0x3fcf62(0x80)]())throw CliErrors[_0x3fcf62(0x7e)](_0x3fcf62(0xb2),_0x3fcf62(0x7c));const _0x16437f=resolveProvidedDbId(_0x6e7e79);if(typeof _0x16437f!==_0x3fcf62(0x9a)||!Number[_0x3fcf62(0x8b)](_0x16437f)||_0x16437f<=0x0)throw CliErrors['flagMissing'](_0x3fcf62(0xa9),_0x3fcf62(0x76));if(!_0x6e7e79['str'](_0x3fcf62(0x7d))['trim']())throw CliErrors['flagMissing'](_0x3fcf62(0x7d),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x1f8933){const _0x4e94cc=a114_0x14e243,_0x5cb161=loadSqlProjectConfig(_0x1f8933[_0x4e94cc(0xa2)]),{sqlName:_0x289b7f,dbId:_0x29f557,dbName:_0x680ca5,mode:_0x17a3c7}=await resolveSqlNewInputs(_0x1f8933),_0x3eed5a=buildSqlRelativePath('<server-generated-sqlCode>',_0x289b7f,_0x680ca5,_0x17a3c7,_0x29f557),_0x15a992=_0x5cb161[_0x4e94cc(0x77)]+'/'+_0x3eed5a;return{'method':_0x4e94cc(0x8c),'url':'/smartapi/custom/saveUserCustomSql','body':{'appCode':_0x1f8933[_0x4e94cc(0xa2)],'sqlName':_0x289b7f,'dbId':_0x29f557,'mode':_0x17a3c7,'localPath':_0x15a992},'description':_0x4e94cc(0x70)+_0x5cb161[_0x4e94cc(0x77)]};},async 'execute'(_0x567c74){const _0x3d4588=a114_0x14e243,_0x464839=loadSqlProjectConfig(_0x567c74['appCode']),{sqlName:_0x3a3aa7,dbId:_0x167f4a,dbName:_0x3288c3,mode:_0x2ea37f}=await resolveSqlNewInputs(_0x567c74),_0x7cd4fc=generateSqlTemplate(_0x2ea37f),_0xc3d7ec=await createSqlQuery({'appCode':_0x567c74['appCode'],'sqlName':_0x3a3aa7,'dbId':_0x167f4a,'sqlContent':_0x7cd4fc}),_0x15fe0a=ensureRemoteSqlContent(_0xc3d7ec),_0x57b895=_0x3288c3||await getDbName(_0x567c74['appCode'],_0x167f4a)[_0x3d4588(0x8f)](()=>undefined),_0xcf119d=buildSqlRelativePath(_0xc3d7ec[_0x3d4588(0x8e)],_0xc3d7ec['sqlName'],_0x57b895,_0x2ea37f,_0x167f4a),_0x59aefa=_0x464839[_0x3d4588(0x77)]+'/'+_0xcf119d,_0x258b98=buildLocalSqlFileContent({'sqlCode':_0xc3d7ec[_0x3d4588(0x8e)],'sqlName':_0xc3d7ec[_0x3d4588(0x82)],'dbId':_0xc3d7ec['dbId']},_0x15fe0a,{'dbName':_0x57b895,'mode':_0x2ea37f,'syncedAt':new Date()[_0x3d4588(0x87)](),'description':_0xc3d7ec[_0x3d4588(0xa3)]});if(await fileExists(_0x59aefa))throw CliErrors[_0x3d4588(0x99)]('File\x20already\x20exists:\x20'+_0x59aefa);await ensureParentDirectory(_0x59aefa),await writeFile(_0x59aefa,_0x258b98,'utf8');const _0x5496e2=await readSqlLockFile(_0x464839[_0x3d4588(0x98)]),{lockData:_0x250ae4,appLock:_0x31106e}=ensureSqlLockScope(_0x5496e2??createEmptySqlLock(),_0x464839['appCode'],_0x464839[_0x3d4588(0x9d)],'new');return _0x31106e[_0x3d4588(0xa8)][_0xc3d7ec[_0x3d4588(0x8e)]]={...buildSqlLockEntry(_0xc3d7ec,_0x15fe0a,computeSqlContentHash(_0x258b98),{'dbName':_0x57b895}),'path':_0xcf119d,'mode':_0x2ea37f},_0x31106e[_0x3d4588(0x92)]=new Date()['toISOString'](),await writeSqlLockFile(_0x464839[_0x3d4588(0x98)],_0x250ae4),{'ok':!![],'data':{'id':_0xc3d7ec['id'],'sqlCode':_0xc3d7ec[_0x3d4588(0x8e)],'sqlName':_0xc3d7ec['sqlName'],'dbId':_0xc3d7ec['dbId'],'path':_0x59aefa,'mode':_0x2ea37f},'message':_0x3d4588(0xa1)+_0xc3d7ec[_0x3d4588(0x8e)]};}};function a114_0x20e0(_0xa7ecc7,_0x180c41){_0xa7ecc7=_0xa7ecc7-0x6f;const _0x2010da=a114_0x2010();let _0x20e0c0=_0x2010da[_0xa7ecc7];return _0x20e0c0;}async function resolveSqlNewInputs(_0x1ce8c3){const _0xca2ae0=await resolveSqlNameInput(_0x1ce8c3),{dbId:_0x4e1a38,dbName:_0x490cad}=await resolveDbSelection(_0x1ce8c3),_0x4c5f04=await resolveSqlModeInput(_0x1ce8c3);return{'sqlName':_0xca2ae0,'dbId':_0x4e1a38,'dbName':_0x490cad,'mode':_0x4c5f04};}async function resolveSqlNameInput(_0x2379a9){const _0x97d357=a114_0x14e243,_0xd0debc=_0x2379a9[_0x97d357(0xae)](_0x97d357(0xb2))[_0x97d357(0x80)]();if(_0xd0debc)return _0xd0debc;if(_0x2379a9[_0x97d357(0xad)])throw CliErrors[_0x97d357(0x7e)](_0x97d357(0xb2),_0x97d357(0x7c));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x5a337c=>_0x5a337c[_0x97d357(0x80)]()?!![]:'SQL\x20名称不能为空'}))[_0x97d357(0x80)]();}async function resolveDbSelection(_0xeaee61){const _0x353576=a114_0x14e243,_0x3ab00e=resolveProvidedDbId(_0xeaee61);if(typeof _0x3ab00e==='number'&&Number[_0x353576(0x8b)](_0x3ab00e)&&_0x3ab00e>0x0)return{'dbId':_0x3ab00e,'dbName':await getDbName(_0xeaee61[_0x353576(0xa2)],_0x3ab00e)['catch'](()=>undefined)};if(_0xeaee61[_0x353576(0xad)])throw CliErrors[_0x353576(0x7e)](_0x353576(0xa9),_0x353576(0x76));const _0x52df53=await listDatabases(_0xeaee61[_0x353576(0xa2)])[_0x353576(0x8f)](()=>[]);if(_0x52df53[_0x353576(0x7b)]===0x1)return{'dbId':_0x52df53[0x0][_0x353576(0xaa)],'dbName':_0x52df53[0x0]['dbName']};if(_0x52df53[_0x353576(0x7b)]>0x1){const _0xc36074=await select({'message':_0x353576(0x7f),'choices':[..._0x52df53[_0x353576(0x91)](_0x22f5c7=>({'name':_0x22f5c7[_0x353576(0x7a)]+'\x20('+_0x22f5c7[_0x353576(0xaa)]+')','value':serializeDbSelection(_0x22f5c7)})),{'name':_0x353576(0x8a),'value':_0x353576(0x72)}]});if(_0xc36074!==_0x353576(0x72))return deserializeDbSelection(_0xc36074);}const _0x24fdc6=await input({'message':_0x353576(0x95),'validate':_0x81e0b5=>{const _0x58a184=_0x353576,_0x1a1977=_0x81e0b5[_0x58a184(0x80)]();if(!_0x1a1977)return _0x58a184(0xa7);const _0x3c0eea=Number(_0x1a1977);if(!Number[_0x58a184(0x8d)](_0x3c0eea)||_0x3c0eea<=0x0)return _0x58a184(0xa6);return!![];}});return{'dbId':Number(_0x24fdc6[_0x353576(0x80)]())};}async function resolveSqlModeInput(_0x1255a3){const _0x289af1=a114_0x14e243,_0x5344c5=_0x1255a3['str'](_0x289af1(0x7d))['trim']();if(_0x5344c5===_0x289af1(0xb0)||_0x5344c5===_0x289af1(0x9e))return _0x5344c5;if(_0x1255a3['nonInteractive'])throw CliErrors[_0x289af1(0x7e)](_0x289af1(0x7d),_0x289af1(0x85));return await select({'message':_0x289af1(0xac),'choices':[{'name':'普通\x20SQL(sql)','value':_0x289af1(0xb0),'description':_0x289af1(0xa4)},{'name':_0x289af1(0x79),'value':_0x289af1(0x9e),'description':_0x289af1(0x97)}]});}function serializeDbSelection(_0x5351aa){const _0x371a2a=a114_0x14e243;return JSON['stringify']({'dbId':_0x5351aa[_0x371a2a(0xaa)],'dbName':_0x5351aa[_0x371a2a(0x7a)]});}function deserializeDbSelection(_0x4b3164){const _0x3dd270=a114_0x14e243;try{const _0x3d4121=JSON[_0x3dd270(0x9c)](_0x4b3164);if(typeof _0x3d4121[_0x3dd270(0xaa)]===_0x3dd270(0x9a)&&Number[_0x3dd270(0x8b)](_0x3d4121['dbId']))return{'dbId':_0x3d4121[_0x3dd270(0xaa)],'dbName':_0x3d4121[_0x3dd270(0x7a)]};}catch{}throw CliErrors['validation'](_0x3dd270(0x90)+_0x4b3164);}function resolveProvidedDbId(_0x4f4aa8){const _0x215884=a114_0x14e243,_0x4486b7=_0x4f4aa8[_0x215884(0x78)](_0x215884(0xa9));if(typeof _0x4486b7===_0x215884(0x9a)&&Number[_0x215884(0x8b)](_0x4486b7))return _0x4486b7;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_0x5cee90=a115_0x1892;(function(_0x54f10d,_0x54c06a){const _0x23ccb1=a115_0x1892,_0x280041=_0x54f10d();while(!![]){try{const _0x58238a=parseInt(_0x23ccb1(0x190))/0x1+parseInt(_0x23ccb1(0x1a6))/0x2*(parseInt(_0x23ccb1(0x19c))/0x3)+parseInt(_0x23ccb1(0x187))/0x4+-parseInt(_0x23ccb1(0x1ac))/0x5*(parseInt(_0x23ccb1(0x19e))/0x6)+parseInt(_0x23ccb1(0x1ab))/0x7+-parseInt(_0x23ccb1(0x198))/0x8*(parseInt(_0x23ccb1(0x188))/0x9)+-parseInt(_0x23ccb1(0x18e))/0xa;if(_0x58238a===_0x54c06a)break;else _0x280041['push'](_0x280041['shift']());}catch(_0x43c481){_0x280041['push'](_0x280041['shift']());}}}(a115_0x211d,0xe24a5));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';function a115_0x1892(_0x415743,_0x1d3668){_0x415743=_0x415743-0x186;const _0x211d16=a115_0x211d();let _0x1892e1=_0x211d16[_0x415743];return _0x1892e1;}import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a115_0x5cee90(0x1a8),'command':a115_0x5cee90(0x192),'description':a115_0x5cee90(0x1ae),'risk':a115_0x5cee90(0x19b),'flags':[SQLCODE_FLAG],async 'validate'(_0x503139){const _0x1fe8d7=a115_0x5cee90,_0x3adb24=loadSqlProjectConfig(_0x503139[_0x1fe8d7(0x18f)]),_0x561044=await readSqlLockFile(_0x3adb24[_0x1fe8d7(0x18d)]);if(!_0x561044)throw CliErrors[_0x1fe8d7(0x1a3)](_0x1fe8d7(0x1a7));},async 'dryRun'(_0x35bfe6){const _0x38e618=a115_0x5cee90,_0x7956cd=loadSqlProjectConfig(_0x35bfe6[_0x38e618(0x18f)]),_0x5f25d8=await readSqlLockFile(_0x7956cd[_0x38e618(0x18d)]);if(!_0x5f25d8)throw CliErrors[_0x38e618(0x1a3)](_0x38e618(0x1a7));const {appLock:_0x6ef5b4}=ensureSqlLockScope(_0x5f25d8,_0x35bfe6[_0x38e618(0x18f)],_0x7956cd[_0x38e618(0x19a)],_0x38e618(0x192)),_0x211dd0=_0x35bfe6[_0x38e618(0x197)](_0x38e618(0x191)),_0x3e6c22=_0x6ef5b4[_0x38e618(0x18c)][_0x211dd0];if(!_0x3e6c22)throw CliErrors['validation'](_0x38e618(0x193)+_0x211dd0+'\x22.');return{'method':_0x38e618(0x19f),'url':_0x38e618(0x1aa),'body':{'sqlCode':_0x211dd0,'id':_0x3e6c22[_0x38e618(0x1a2)],'localPath':resolveLocalSqlFilePath(_0x7956cd,_0x211dd0,_0x3e6c22)},'description':'Would\x20delete\x20SQL\x20'+_0x211dd0+_0x38e618(0x1ad)+_0x7956cd[_0x38e618(0x195)]};},async 'execute'(_0x2f3313){const _0x3ebf20=a115_0x5cee90,_0x385f80=loadSqlProjectConfig(_0x2f3313[_0x3ebf20(0x18f)]),_0x3a6b58=await readSqlLockFile(_0x385f80[_0x3ebf20(0x18d)]);if(!_0x3a6b58)throw CliErrors[_0x3ebf20(0x1a3)](_0x3ebf20(0x18b));const {lockData:_0x4485ec,appLock:_0x4292fd}=ensureSqlLockScope(_0x3a6b58,_0x2f3313[_0x3ebf20(0x18f)],_0x385f80[_0x3ebf20(0x19a)],_0x3ebf20(0x192)),_0x3e91a6=_0x2f3313[_0x3ebf20(0x197)](_0x3ebf20(0x191)),_0xb24b94=_0x4292fd[_0x3ebf20(0x18c)][_0x3e91a6];if(!_0xb24b94)throw CliErrors[_0x3ebf20(0x1a3)](_0x3ebf20(0x193)+_0x3e91a6+'\x22.');await deleteSqlQuery({'id':_0xb24b94[_0x3ebf20(0x1a2)],'sqlCode':_0x3e91a6}),_0x4292fd['sqls']=Object['fromEntries'](Object[_0x3ebf20(0x199)](_0x4292fd[_0x3ebf20(0x18c)])[_0x3ebf20(0x189)](([_0x3cc81c])=>_0x3cc81c!==_0x3e91a6)),_0x4292fd[_0x3ebf20(0x196)]=new Date()['toISOString'](),await writeSqlLockFile(_0x385f80['lockFilePath'],_0x4485ec);const _0x14f5b2=resolveLocalSqlFilePath(_0x385f80,_0x3e91a6,_0xb24b94);let _0x3bd90c;await fileExists(_0x14f5b2)&&(_0x3bd90c=await moveToTrash(_0x385f80[_0x3ebf20(0x1a5)],_0x385f80[_0x3ebf20(0x195)],_0x14f5b2),await cleanupEmptyDirectories(dirname(_0x14f5b2),_0x385f80[_0x3ebf20(0x194)]));const _0x3b5cc6={'deleted':_0x3e91a6,'remoteId':_0xb24b94[_0x3ebf20(0x1a2)]};if(_0x3bd90c)_0x3b5cc6[_0x3ebf20(0x186)]=_0x3bd90c;return{'ok':!![],'data':_0x3b5cc6,'message':_0x3ebf20(0x18a)+_0x3e91a6+(_0x3bd90c?_0x3ebf20(0x1a4):'')};}};function a115_0x211d(){const _0x474fd7=['Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','trashedTo','2577860nXVuFY','27eRDYUr','filter','Deleted\x20','SQL\x20lock\x20file\x20not\x20found.','sqls','lockFilePath','22001910vPIkif','appCode','1683282IywDRq','sqlcode','delete','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','sqlRootDir','trashDir','lastSync','str','2404464OwQzSF','entries','sqlRoot','high-risk-write','102ujbErC','startsWith','6PHuQxf','POST','length','replace','remoteId','validation','\x20(local\x20file\x20moved\x20to\x20trash)','projectRoot','94666xksDsi','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','sql','toISOString','/smartapi/custom/deleteUserCustomSql','7044660qPIkZt','4573495BPAWEB','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'];a115_0x211d=function(){return _0x474fd7;};return a115_0x211d();}async function moveToTrash(_0x70b6d8,_0x265616,_0x4e5660){const _0x1d55a1=a115_0x5cee90,_0x2cf629=new Date()[_0x1d55a1(0x1a9)]()[_0x1d55a1(0x1a1)](/[:.]/g,'-'),_0x22d0e6=relative(_0x70b6d8,_0x4e5660),_0x4cae10=join(_0x265616,_0x2cf629,_0x22d0e6);return await mkdir(dirname(_0x4cae10),{'recursive':!![]}),await rename(_0x4e5660,_0x4cae10),_0x4cae10;}async function cleanupEmptyDirectories(_0x29ec8d,_0x44b691){const _0x48200f=a115_0x5cee90;let _0x2124e8=resolve(_0x29ec8d);const _0x523a7f=resolve(_0x44b691);while(_0x2124e8[_0x48200f(0x19d)](''+_0x523a7f+sep)||_0x2124e8===_0x523a7f){if(_0x2124e8===_0x523a7f)return;try{const _0x3df4a1=await readdir(_0x2124e8);if(_0x3df4a1[_0x48200f(0x1a0)]>0x0)return;await rmdir(_0x2124e8);}catch{return;}_0x2124e8=dirname(_0x2124e8);}}
@@ -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
+ function a116_0x4043(_0x512078,_0x4f4e85){_0x512078=_0x512078-0x1c9;const _0x4222dc=a116_0x4222();let _0x404398=_0x4222dc[_0x512078];return _0x404398;}const a116_0x26603d=a116_0x4043;(function(_0x7f0194,_0x3be311){const _0x581036=a116_0x4043,_0x18e1c4=_0x7f0194();while(!![]){try{const _0x5d1a36=-parseInt(_0x581036(0x1cc))/0x1+-parseInt(_0x581036(0x1d7))/0x2+parseInt(_0x581036(0x1d6))/0x3+parseInt(_0x581036(0x1cb))/0x4*(-parseInt(_0x581036(0x1cd))/0x5)+-parseInt(_0x581036(0x1c9))/0x6+-parseInt(_0x581036(0x1d3))/0x7+parseInt(_0x581036(0x1ce))/0x8*(parseInt(_0x581036(0x1dd))/0x9);if(_0x5d1a36===_0x3be311)break;else _0x18e1c4['push'](_0x18e1c4['shift']());}catch(_0x3486ea){_0x18e1c4['push'](_0x18e1c4['shift']());}}}(a116_0x4222,0xcb8cd));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':a116_0x26603d(0x1d1),'risk':'read','flags':[SQLCODE_FLAG,{'name':'verbose','type':a116_0x26603d(0x1ca),'description':a116_0x26603d(0x1d5)}],async 'execute'(_0x2cc761){const _0x4c972b=a116_0x26603d,_0x3f74a9=await getSqlQueryInfo(_0x2cc761[_0x4c972b(0x1d9)],_0x2cc761[_0x4c972b(0x1d2)](_0x4c972b(0x1cf))),_0x4f0492=_0x2cc761[_0x4c972b(0x1dc)](_0x4c972b(0x1da));if(_0x4f0492)return{'ok':!![],'data':_0x3f74a9};const _0x3d9a54=_0x3f74a9[_0x4c972b(0x1d8)]?await getDbName(_0x2cc761[_0x4c972b(0x1d9)],_0x3f74a9[_0x4c972b(0x1d8)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x3f74a9['sqlCode'],'sqlName':_0x3f74a9[_0x4c972b(0x1db)],'db':_0x3d9a54?_0x3d9a54+'\x20('+_0x3f74a9[_0x4c972b(0x1d8)]+')':_0x3f74a9['dbId']??'','description':_0x3f74a9[_0x4c972b(0x1d4)]??'','sqlContent':_0x3f74a9[_0x4c972b(0x1d0)]??''}};}};function a116_0x4222(){const _0x4a7ff4=['7709172lOIxUr','boolean','1115760AyeILa','705133zdjeUV','5gMdXGl','200hFstpX','sqlcode','sqlContent','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','str','10540488VDUjMs','description','Return\x20full\x20raw\x20SQL\x20query\x20object','256419lhRRet','708376LZzZSP','dbId','appCode','verbose','sqlName','bool','1755783akGCbo'];a116_0x4222=function(){return _0x4a7ff4;};return a116_0x4222();}
@@ -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_0x20958c=a117_0x1e5c;(function(_0x42e1e6,_0x5afbe0){const _0x3ba3a5=a117_0x1e5c,_0x568efa=_0x42e1e6();while(!![]){try{const _0x205328=parseInt(_0x3ba3a5(0x1f5))/0x1*(-parseInt(_0x3ba3a5(0x1f3))/0x2)+-parseInt(_0x3ba3a5(0x201))/0x3+parseInt(_0x3ba3a5(0x1fc))/0x4+-parseInt(_0x3ba3a5(0x1fe))/0x5+parseInt(_0x3ba3a5(0x1fb))/0x6*(-parseInt(_0x3ba3a5(0x1f7))/0x7)+-parseInt(_0x3ba3a5(0x206))/0x8+parseInt(_0x3ba3a5(0x1fd))/0x9*(parseInt(_0x3ba3a5(0x207))/0xa);if(_0x205328===_0x5afbe0)break;else _0x568efa['push'](_0x568efa['shift']());}catch(_0xe28ee7){_0x568efa['push'](_0x568efa['shift']());}}}(a117_0x439a,0x68ac9));import{executeSql}from'../../core/api-client.js';function a117_0x1e5c(_0x14c748,_0x5ddbab){_0x14c748=_0x14c748-0x1f0;const _0x439a09=a117_0x439a();let _0x1e5cda=_0x439a09[_0x14c748];return _0x1e5cda;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a117_0x439a(){const _0x35f68d=['execResult','1836vlCeVD','SQL\x20execution\x20failed','683nrWpUy','str','7TVpEEh','string','now','exec','121782ofaqaT','2618408vqaxxj','1368aoTZNu','3458455RcPJNw','appCode','Returned\x20','1707927ygqcFi','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','execError','params','length','5217072SfMxpN','153590VuMkdv','execSuccess','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','sql'];a117_0x439a=function(){return _0x35f68d;};return a117_0x439a();}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a117_0x20958c(0x1f1),'command':a117_0x20958c(0x1fa),'description':a117_0x20958c(0x202),'risk':'read','flags':[SQLCODE_FLAG,{'name':'params','type':a117_0x20958c(0x1f8),'description':a117_0x20958c(0x1f0)}],async 'execute'(_0x5cf74c){const _0xbdef25=a117_0x20958c,_0x558804=parseJsonParams(_0x5cf74c[_0xbdef25(0x1f6)](_0xbdef25(0x204))),_0x1b15b8=Date[_0xbdef25(0x1f9)](),_0xcf7f3c=await executeSql(_0x5cf74c[_0xbdef25(0x1ff)],_0x5cf74c['str']('sqlcode'),_0x558804),_0x2b01a0=Date[_0xbdef25(0x1f9)]()-_0x1b15b8,_0x49edf6=_0xcf7f3c?.[_0xbdef25(0x1f2)]??_0xcf7f3c,_0x5d484c=_0xcf7f3c?.[_0xbdef25(0x208)]??!![];if(!_0x5d484c)return{'ok':![],'data':{'error':_0xcf7f3c?.[_0xbdef25(0x203)]||'SQL\x20execution\x20failed','elapsed':_0x2b01a0},'message':_0xbdef25(0x1f4)};const _0x15f460=Array['isArray'](_0x49edf6)?_0x49edf6:[];return{'ok':!![],'data':{'rows':_0x15f460,'rowCount':_0x15f460[_0xbdef25(0x205)],'elapsed':_0x2b01a0},'message':_0xbdef25(0x200)+_0x15f460[_0xbdef25(0x205)]+'\x20row(s)\x20in\x20'+_0x2b01a0+'ms'};}};
@@ -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(_0x409cca,_0x4195c1){const _0x48c657=a118_0x360b,_0x8a7767=_0x409cca();while(!![]){try{const _0x1b90b0=-parseInt(_0x48c657(0x138))/0x1*(parseInt(_0x48c657(0x139))/0x2)+parseInt(_0x48c657(0x13c))/0x3+parseInt(_0x48c657(0x13b))/0x4+-parseInt(_0x48c657(0x13f))/0x5*(parseInt(_0x48c657(0x137))/0x6)+-parseInt(_0x48c657(0x13a))/0x7+-parseInt(_0x48c657(0x13d))/0x8*(parseInt(_0x48c657(0x140))/0x9)+parseInt(_0x48c657(0x13e))/0xa;if(_0x1b90b0===_0x4195c1)break;else _0x8a7767['push'](_0x8a7767['shift']());}catch(_0x54a931){_0x8a7767['push'](_0x8a7767['shift']());}}}(a118_0x22dd,0x628cf));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a118_0x22dd(){const _0x459db3=['9WPxsHA','86670kIcvhB','20323NkftiC','8QixHvH','424340zvYidq','2727524ThGUyf','1834311iCoDQj','5906696ODKzht','50390PVYwGa','5nMaPmc'];a118_0x22dd=function(){return _0x459db3;};return a118_0x22dd();}import{sqlSave}from'../../commands/sql/save.js';function a118_0x360b(_0x109b71,_0x18d2ed){_0x109b71=_0x109b71-0x137;const _0x22dd36=a118_0x22dd();let _0x360b25=_0x22dd36[_0x109b71];return _0x360b25;}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const 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
+ const a119_0x3532a8=a119_0x50ed;function a119_0x50ed(_0xca4ad1,_0x5c2699){_0xca4ad1=_0xca4ad1-0x123;const _0x3fc84c=a119_0x3fc8();let _0x50ed2=_0x3fc84c[_0xca4ad1];return _0x50ed2;}(function(_0x5a9b2a,_0x15aea3){const _0x20d756=a119_0x50ed,_0xa91b2c=_0x5a9b2a();while(!![]){try{const _0x5634be=-parseInt(_0x20d756(0x12a))/0x1+parseInt(_0x20d756(0x129))/0x2+-parseInt(_0x20d756(0x128))/0x3+-parseInt(_0x20d756(0x12c))/0x4+parseInt(_0x20d756(0x132))/0x5*(-parseInt(_0x20d756(0x138))/0x6)+parseInt(_0x20d756(0x124))/0x7*(parseInt(_0x20d756(0x13d))/0x8)+-parseInt(_0x20d756(0x142))/0x9*(-parseInt(_0x20d756(0x134))/0xa);if(_0x5634be===_0x15aea3)break;else _0xa91b2c['push'](_0xa91b2c['shift']());}catch(_0x15bad2){_0xa91b2c['push'](_0xa91b2c['shift']());}}}(a119_0x3fc8,0xe967d));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a119_0x3532a8(0x140),'command':'list','description':a119_0x3532a8(0x144),'risk':a119_0x3532a8(0x143),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a119_0x3532a8(0x139),'type':a119_0x3532a8(0x12b),'description':a119_0x3532a8(0x126)},{'name':'page','type':a119_0x3532a8(0x127),'description':a119_0x3532a8(0x135),'default':0x1},{'name':a119_0x3532a8(0x123),'type':a119_0x3532a8(0x127),'description':'Page\x20size'},{'name':a119_0x3532a8(0x136),'type':a119_0x3532a8(0x13c),'description':a119_0x3532a8(0x12d)}],async 'execute'(_0x1d5dc6){const _0x40b1d6=a119_0x3532a8,_0x27d814=await listSqlQueries(_0x1d5dc6[_0x40b1d6(0x146)],{'sqlCode':_0x1d5dc6['str']('sqlcode')||undefined,'sqlName':_0x1d5dc6['str'](_0x40b1d6(0x139))||undefined,'currentPage':_0x1d5dc6[_0x40b1d6(0x137)]('page'),'pageSize':_0x1d5dc6[_0x40b1d6(0x137)](_0x40b1d6(0x123),0x32)}),_0x21244a=_0x1d5dc6[_0x40b1d6(0x133)]('verbose'),_0x22cd5d=_0x27d814[_0x40b1d6(0x125)]??[],_0x274482=_0x27d814['paging']?.[_0x40b1d6(0x12e)]??_0x22cd5d[_0x40b1d6(0x13b)];let _0xcdb587;return _0x21244a?_0xcdb587=_0x22cd5d:_0xcdb587=await Promise[_0x40b1d6(0x130)](_0x22cd5d[_0x40b1d6(0x13f)](async _0x3334f5=>{const _0x52aad0=_0x40b1d6;let _0x305717;try{_0x305717=_0x3334f5[_0x52aad0(0x131)]?await getDbName(_0x1d5dc6[_0x52aad0(0x146)],_0x3334f5[_0x52aad0(0x131)]):undefined;}catch{}return{'sqlCode':_0x3334f5['sqlCode'],'sqlName':_0x3334f5[_0x52aad0(0x12f)],'description':_0x3334f5[_0x52aad0(0x13a)]??'','db':_0x305717?_0x305717+'\x20('+_0x3334f5[_0x52aad0(0x131)]+')':_0x3334f5[_0x52aad0(0x131)]??''};})),{'ok':!![],'data':_0xcdb587,'message':_0x22cd5d['length']===0x0?_0x40b1d6(0x13e):_0x40b1d6(0x141)+_0x22cd5d[_0x40b1d6(0x13b)]+_0x40b1d6(0x145)+_0x274482+').'};}};function a119_0x3fc8(){const _0x3ab5fa=['pagesize','91JPAoYo','tableData','Filter\x20by\x20SQL\x20name','number','2994444XPVKcS','3421828HqnBrj','1770958OYzpOp','string','4787092uAtEmH','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','totalCount','sqlName','all','dbId','5SKwDTR','bool','10oUngMn','Page\x20number','verbose','num','7722942DirTAU','name','description','length','boolean','915624uMbsrw','No\x20custom\x20SQL\x20queries\x20found.','map','sql','Found\x20','27092358EUdQhV','read','List\x20custom\x20SQL\x20queries','\x20SQL\x20queries\x20(total:\x20','appCode'];a119_0x3fc8=function(){return _0x3ab5fa;};return a119_0x3fc8();}
@@ -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
+ function a120_0x29a8(){const _0x5a62d1=['replace','lastSync','appCode','678241bWsKdB','toISOString','force','Pull\x20complete:\x20','dbId','Filter\x20by\x20SQL\x20display\x20name','split','Would\x20pull\x20','mybatisXml','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','conflict','\x20skipped,\x20','path','5BCryiz','3792800aFHPko','570074oxbakb','2797668WcIsRG','\x20failed','sqlContent','write','sqlcode','lockFilePath','skipped','pull','str','string','sqls','tableData','sqlCode','message','would_pull','description','\x20written,\x20','Force\x20pull\x20cancelled.','19041273MwyuUz','POST','799496svvObN','filter','\x20SQL\x20file(s)\x20into\x20','unchanged','test','sqlName','length','totalCount','sqlRoot','nonInteractive','sqlRootDir','apps','name','catch','3239670ipwhdY','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','utf8','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','sql','No\x20remote\x20SQL\x20queries\x20matched.','6bnJPSJ','push'];a120_0x29a8=function(){return _0x5a62d1;};return a120_0x29a8();}const a120_0x541db0=a120_0x2dcf;(function(_0x423694,_0x13b3c0){const _0x319a02=a120_0x2dcf,_0x57b141=_0x423694();while(!![]){try{const _0x1dfbb1=-parseInt(_0x319a02(0x18d))/0x1+parseInt(_0x319a02(0x15f))/0x2*(-parseInt(_0x319a02(0x188))/0x3)+parseInt(_0x319a02(0x174))/0x4+parseInt(_0x319a02(0x15d))/0x5*(parseInt(_0x319a02(0x160))/0x6)+-parseInt(_0x319a02(0x182))/0x7+-parseInt(_0x319a02(0x15e))/0x8+parseInt(_0x319a02(0x172))/0x9;if(_0x1dfbb1===_0x13b3c0)break;else _0x57b141['push'](_0x57b141['shift']());}catch(_0x446d39){_0x57b141['push'](_0x57b141['shift']());}}}(a120_0x29a8,0x91a90));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';function a120_0x2dcf(_0x36cb36,_0x2c712f){_0x36cb36=_0x36cb36-0x15d;const _0x29a8ef=a120_0x29a8();let _0x2dcfaa=_0x29a8ef[_0x36cb36];return _0x2dcfaa;}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0xf9736d,_0x34d104){const _0x2ba12d=a120_0x2dcf,_0x40d2e2=[];let _0x16357a=0x1;while(!![]){const _0x33db2c=await listSqlQueries(_0xf9736d,{'currentPage':_0x16357a,'pageSize':PAGE_SIZE,'sqlCode':_0x34d104[_0x2ba12d(0x16c)],'sqlName':_0x34d104[_0x2ba12d(0x179)]}),_0x12ebb2=_0x33db2c[_0x2ba12d(0x16b)]??[];_0x40d2e2[_0x2ba12d(0x189)](..._0x12ebb2);if(_0x12ebb2[_0x2ba12d(0x17a)]===0x0)break;const _0x245cb9=_0x33db2c['paging']?.[_0x2ba12d(0x17b)];if(_0x245cb9!=null?_0x40d2e2['length']>=_0x245cb9:_0x12ebb2[_0x2ba12d(0x17a)]<PAGE_SIZE)break;_0x16357a++;}return _0x40d2e2;}async function ensureSqlContent(_0x4d89a2){const _0x2bb580=a120_0x2dcf;if(_0x4d89a2[_0x2bb580(0x162)]!=null&&String(_0x4d89a2[_0x2bb580(0x162)])['length']>0x0)return _0x4d89a2;return getSqlQueryDetail(_0x4d89a2[_0x2bb580(0x16c)]);}export const sqlPull={'service':a120_0x541db0(0x186),'command':a120_0x541db0(0x167),'description':a120_0x541db0(0x183),'risk':a120_0x541db0(0x163),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a120_0x541db0(0x180),'type':a120_0x541db0(0x169),'description':a120_0x541db0(0x192)},{'name':a120_0x541db0(0x18f),'type':'boolean','description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x2c5cbf){const _0x5f455a=a120_0x541db0,_0x5099ac=loadSqlProjectConfig(_0x2c5cbf[_0x5f455a(0x18c)]),_0x456fff=await readSqlLockFile(_0x5099ac[_0x5f455a(0x165)]),{appLock:_0x525c2a}=ensureSqlLockScope(_0x456fff??createEmptySqlLock(),_0x5099ac[_0x5f455a(0x18c)],_0x5099ac[_0x5f455a(0x17c)],_0x5f455a(0x167)),_0x1da12e=await fetchAllSqlQueries(_0x2c5cbf[_0x5f455a(0x18c)],{'sqlCode':_0x2c5cbf['str'](_0x5f455a(0x164))||undefined,'sqlName':_0x2c5cbf['str'](_0x5f455a(0x180))||undefined}),_0x529e01=[];for(const _0x2c522c of _0x1da12e){const _0x29d154=await ensureSqlContent(_0x2c522c),_0x211d3a=ensureRemoteSqlContent(_0x29d154),_0x1ae110=detectModeFromSql(_0x29d154),_0x424917=_0x29d154[_0x5f455a(0x191)]?await getDbName(_0x2c5cbf[_0x5f455a(0x18c)],Number(_0x29d154[_0x5f455a(0x191)]))[_0x5f455a(0x181)](()=>undefined):undefined,_0x1b1164=buildLocalSqlFileContent({'sqlCode':_0x29d154['sqlCode'],'sqlName':_0x29d154['sqlName'],'dbId':_0x29d154['dbId']},_0x211d3a,{'dbName':_0x424917,'mode':_0x1ae110,'syncedAt':new Date()['toISOString'](),'description':_0x29d154['description']}),_0x469206=buildSqlLockEntry(_0x29d154,_0x211d3a,'',{'dbName':_0x424917}),_0x2f860a=resolveLocalSqlFilePath(_0x5099ac,_0x29d154['sqlCode'],_0x469206);let _0x1083b5=_0x5f455a(0x16e),_0x1b1cbc;if(await fileExists(_0x2f860a)){const _0x37a147=await readFile(_0x2f860a,'utf8');isEquivalentPulledSqlFile(_0x37a147,_0x1b1164,_0x1ae110)?(_0x1083b5=_0x5f455a(0x166),_0x1b1cbc=_0x5f455a(0x177)):(_0x1083b5=_0x5f455a(0x197),_0x1b1cbc='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x529e01[_0x5f455a(0x189)]({'sqlCode':_0x29d154['sqlCode'],'sqlName':_0x29d154[_0x5f455a(0x179)],'filePath':_0x2f860a,'status':_0x1083b5,'reason':_0x1b1cbc});}return{'method':_0x5f455a(0x173),'url':_0x5f455a(0x196),'body':{'appCode':_0x2c5cbf[_0x5f455a(0x18c)],'sqlCode':_0x2c5cbf[_0x5f455a(0x168)](_0x5f455a(0x164))||null,'sqlName':_0x2c5cbf[_0x5f455a(0x168)]('name')||null,'files':_0x529e01},'description':_0x5f455a(0x194)+_0x529e01[_0x5f455a(0x17a)]+_0x5f455a(0x176)+_0x5099ac['sqlRootDir']};},async 'execute'(_0x5bfe69){const _0x2c798a=a120_0x541db0,_0x1c40bc=loadSqlProjectConfig(_0x5bfe69[_0x2c798a(0x18c)]),_0x464e4a=await readSqlLockFile(_0x1c40bc[_0x2c798a(0x165)]),{lockData:_0x3435f8,appLock:_0x56f9b9}=ensureSqlLockScope(_0x464e4a??createEmptySqlLock(),_0x1c40bc[_0x2c798a(0x18c)],_0x1c40bc[_0x2c798a(0x17c)],_0x2c798a(0x167)),_0x276675=_0x5bfe69['bool'](_0x2c798a(0x18f)),_0x1fd48d=await fetchAllSqlQueries(_0x5bfe69[_0x2c798a(0x18c)],{'sqlCode':_0x5bfe69['str'](_0x2c798a(0x164))||undefined,'sqlName':_0x5bfe69[_0x2c798a(0x168)]('name')||undefined});if(_0x1fd48d[_0x2c798a(0x17a)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x2c798a(0x187)};const _0x74c99a=[],_0x5f4aef=[];for(const _0xa21faf of _0x1fd48d){try{_0x74c99a[_0x2c798a(0x189)](await ensureSqlContent(_0xa21faf));}catch(_0xe8968e){_0x5f4aef['push']({'sqlCode':_0xa21faf[_0x2c798a(0x16c)],'error':_0xe8968e instanceof Error?_0xe8968e[_0x2c798a(0x16d)]:String(_0xe8968e)});}}if(_0x276675&&!_0x5bfe69[_0x2c798a(0x17d)]){let _0x1e6b5f=![];for(const _0x4c50ce of _0x74c99a){const _0x4ea6a3=detectModeFromSql(_0x4c50ce),_0x1a2459=_0x4c50ce[_0x2c798a(0x191)]?await getDbName(_0x5bfe69[_0x2c798a(0x18c)],Number(_0x4c50ce[_0x2c798a(0x191)]))['catch'](()=>undefined):undefined,_0x1f8143=buildLocalSqlFileContent({'sqlCode':_0x4c50ce['sqlCode'],'sqlName':_0x4c50ce[_0x2c798a(0x179)],'dbId':_0x4c50ce[_0x2c798a(0x191)]},ensureRemoteSqlContent(_0x4c50ce),{'dbName':_0x1a2459,'mode':_0x4ea6a3,'syncedAt':new Date()['toISOString'](),'description':_0x4c50ce['description']}),_0x2fb89a=resolveLocalSqlFilePath(_0x1c40bc,_0x4c50ce[_0x2c798a(0x16c)],buildSqlLockEntry(_0x4c50ce,ensureRemoteSqlContent(_0x4c50ce),'',{'dbName':_0x1a2459}));if(await fileExists(_0x2fb89a)){const _0x1d36e7=await readFile(_0x2fb89a,_0x2c798a(0x184));if(!isEquivalentPulledSqlFile(_0x1d36e7,_0x1f8143,_0x4ea6a3)){_0x1e6b5f=!![];break;}}}if(_0x1e6b5f){const _0xe5efbf=await confirmForceOverwrite(_0x2c798a(0x185));if(!_0xe5efbf)throw CliErrors['cancelled'](_0x2c798a(0x171));}}const _0x1ae033=cloneSqlLockData(_0x3435f8),_0x374230=_0x1ae033[_0x2c798a(0x17f)][_0x1c40bc[_0x2c798a(0x18c)]],_0x219054=[],_0x1d92a4=[];for(const _0x495bc0 of _0x74c99a){const _0x81ed85=_0x374230[_0x2c798a(0x16a)][_0x495bc0[_0x2c798a(0x16c)]],_0x5c4d2e=ensureRemoteSqlContent(_0x495bc0),_0x1d428d=detectModeFromSql(_0x495bc0),_0x249057=_0x495bc0[_0x2c798a(0x191)]?await getDbName(_0x5bfe69['appCode'],Number(_0x495bc0[_0x2c798a(0x191)]))[_0x2c798a(0x181)](()=>undefined):undefined,_0x46ef44=buildLocalSqlFileContent({'sqlCode':_0x495bc0['sqlCode'],'sqlName':_0x495bc0[_0x2c798a(0x179)],'dbId':_0x495bc0[_0x2c798a(0x191)]},_0x5c4d2e,{'dbName':_0x249057,'mode':_0x1d428d,'syncedAt':new Date()[_0x2c798a(0x18e)](),'description':_0x495bc0[_0x2c798a(0x16f)]}),_0x547adb=buildSqlLockEntry(_0x495bc0,_0x5c4d2e,computeSqlContentHash(_0x46ef44),{'dbName':_0x249057}),_0x1693ee=_0x547adb[_0x2c798a(0x199)],_0x57083f=join(_0x1c40bc[_0x2c798a(0x17e)],_0x1693ee);try{if(await fileExists(_0x57083f)){const _0x173878=await readFile(_0x57083f,'utf8');if(isEquivalentPulledSqlFile(_0x173878,_0x46ef44,_0x1d428d)){_0x1d92a4['push']({'sqlCode':_0x495bc0[_0x2c798a(0x16c)],'reason':_0x2c798a(0x177)}),_0x374230[_0x2c798a(0x16a)][_0x495bc0['sqlCode']]={..._0x547adb,'hash':computeSqlContentHash(_0x173878),'path':_0x1693ee};continue;}if(!_0x276675){_0x1d92a4[_0x2c798a(0x189)]({'sqlCode':_0x495bc0[_0x2c798a(0x16c)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x1e0a08=_0x81ed85?.[_0x2c798a(0x199)]?join(_0x1c40bc['sqlRootDir'],_0x81ed85[_0x2c798a(0x199)]):undefined;_0x1e0a08&&_0x1e0a08!==_0x57083f&&await fileExists(_0x1e0a08)&&await rm(_0x1e0a08,{'force':!![]}),await ensureParentDirectory(_0x57083f),await writeFile(_0x57083f,_0x46ef44,'utf8'),_0x374230[_0x2c798a(0x16a)][_0x495bc0['sqlCode']]={..._0x547adb,'path':_0x1693ee},_0x219054[_0x2c798a(0x189)]({'sqlCode':_0x495bc0[_0x2c798a(0x16c)],'filePath':_0x57083f});}catch(_0x34fb9d){_0x5f4aef['push']({'sqlCode':_0x495bc0['sqlCode'],'error':_0x34fb9d instanceof Error?_0x34fb9d[_0x2c798a(0x16d)]:String(_0x34fb9d)});}}return _0x374230[_0x2c798a(0x18b)]=new Date()[_0x2c798a(0x18e)](),await writeSqlLockFile(_0x1c40bc[_0x2c798a(0x165)],_0x1ae033),{'ok':_0x5f4aef[_0x2c798a(0x17a)]===0x0,'data':{'pulled':_0x219054,'skipped':_0x1d92a4,'failed':_0x5f4aef},'message':_0x2c798a(0x190)+_0x219054[_0x2c798a(0x17a)]+_0x2c798a(0x170)+_0x1d92a4[_0x2c798a(0x17a)]+_0x2c798a(0x198)+_0x5f4aef[_0x2c798a(0x17a)]+_0x2c798a(0x161)};}};function detectModeFromSql(_0x1104a4){const _0xf80451=a120_0x541db0,_0x5c2e25=ensureRemoteSqlContent(_0x1104a4),_0x1aae6c=stripLocalSqlMetadata(_0x5c2e25,_0xf80451(0x195))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0xf80451(0x178)](_0x1aae6c))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x30a56f,_0x313fb3,_0x5d339e){return normalizePullComparableContent(_0x30a56f,_0x5d339e)===normalizePullComparableContent(_0x313fb3,_0x5d339e);}function normalizePullComparableContent(_0x5b8cbd,_0x1a04d7){const _0x25447a=a120_0x541db0,_0x67e474=_0x5b8cbd[_0x25447a(0x18a)](/\r\n/g,'\x0a')[_0x25447a(0x193)]('\x0a'),_0x3ae138=_0x67e474[_0x25447a(0x175)](_0x36b23a=>!isSyncedAtMetadataLine(_0x36b23a,_0x1a04d7));return _0x3ae138['join']('\x0a');}function isSyncedAtMetadataLine(_0xe57b4b,_0x5268d4){const _0x35151b=a120_0x541db0;if(_0x5268d4===_0x35151b(0x195))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x35151b(0x178)](_0xe57b4b);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0xe57b4b);}
@@ -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_0x1d7dfa=a121_0x1004;(function(_0x4f0242,_0x47043c){const _0xcd6856=a121_0x1004,_0x3e87ed=_0x4f0242();while(!![]){try{const _0x9811f5=parseInt(_0xcd6856(0xd4))/0x1*(parseInt(_0xcd6856(0xc3))/0x2)+parseInt(_0xcd6856(0xdc))/0x3*(-parseInt(_0xcd6856(0xb8))/0x4)+-parseInt(_0xcd6856(0xeb))/0x5*(parseInt(_0xcd6856(0xc1))/0x6)+-parseInt(_0xcd6856(0xed))/0x7*(-parseInt(_0xcd6856(0xba))/0x8)+-parseInt(_0xcd6856(0xbb))/0x9+-parseInt(_0xcd6856(0xcd))/0xa*(parseInt(_0xcd6856(0xde))/0xb)+parseInt(_0xcd6856(0xd8))/0xc*(parseInt(_0xcd6856(0xd7))/0xd);if(_0x9811f5===_0x47043c)break;else _0x3e87ed['push'](_0x3e87ed['shift']());}catch(_0x4fb066){_0x3e87ed['push'](_0x3e87ed['shift']());}}}(a121_0x3592,0x2884e));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';function a121_0x3592(){const _0x2a5345=['399006eEQCTH','lockFilePath','projectRoot','/smartapi/custom/updateUserCustomSql','set','bool','6nSQmex','sqlRootDir','4744GsCXbK','mode','sql','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','utf8','\x22\x20for\x20sqlCode\x20','sqlCode','\x20pushed,\x20','push','dbId','159200dSWKBp','validation','unchanged','force','has','dbDirectory','dbName','121SVyJLH','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','length','91srGiFA','358116BZGrrq','sqls','str','Local\x20SQL\x20not\x20found:\x20','3AqadMl','replace','33ruizkV','hash','sqlcode','boolean','relativePath','No\x20local\x20SQL\x20files\x20found.','trashDir','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','version','path','startsWith','filter','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','1096465llUKdB','toISOString','7TIuIDs','join','entries','lastSync','sqlName','POST','sqlRoot','catch','message','appCode','remoteId','get','\x20failed','526196XQfDmf','filePath','903912uyZDej'];a121_0x3592=function(){return _0x2a5345;};return a121_0x3592();}import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0xc7a6d,_0x5a634a,_0x8bcfd6){const _0x4b98db=a121_0x1004,_0x22aec3=await scanLocalSqlQueries(_0xc7a6d),_0x127342=new Map();for(const _0x2d74bd of _0x22aec3){if(_0x8bcfd6&&_0x2d74bd[_0x4b98db(0xc9)]!==_0x8bcfd6)continue;const _0x236c5d=_0x127342[_0x4b98db(0xb6)](_0x2d74bd[_0x4b98db(0xc9)])??[];_0x236c5d[_0x4b98db(0xcb)](_0x2d74bd),_0x127342[_0x4b98db(0xbf)](_0x2d74bd[_0x4b98db(0xc9)],_0x236c5d);}if(_0x8bcfd6&&!_0x127342[_0x4b98db(0xd1)](_0x8bcfd6))throw CliErrors[_0x4b98db(0xce)](_0x4b98db(0xdb)+_0x8bcfd6);const _0x43aae6=[];for(const [_0x52348a,_0x3b17e2]of _0x127342[_0x4b98db(0xad)]()){if(_0x3b17e2[_0x4b98db(0xd6)]===0x1){_0x43aae6['push'](_0x3b17e2[0x0]);continue;}const _0x2e2811=_0x5a634a[_0x4b98db(0xd9)][_0x52348a],_0x1cf9c3=_0x2e2811?.[_0x4b98db(0xe7)],_0x5f2a18=_0x1cf9c3?_0x3b17e2[_0x4b98db(0xe9)](_0x39b298=>_0x39b298[_0x4b98db(0xe2)]!==_0x1cf9c3):_0x3b17e2;if(_0x2e2811&&_0x5f2a18[_0x4b98db(0xd6)]===0x1){_0x43aae6['push'](_0x5f2a18[0x0]);continue;}throw CliErrors[_0x4b98db(0xce)]('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x52348a+_0x4b98db(0xc6));}return _0x43aae6;}function a121_0x1004(_0x24599c,_0x344c4b){_0x24599c=_0x24599c-0xac;const _0x359207=a121_0x3592();let _0x100495=_0x359207[_0x24599c];return _0x100495;}export const sqlPush={'service':a121_0x1d7dfa(0xc5),'command':'push','description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a121_0x1d7dfa(0xd0),'type':a121_0x1d7dfa(0xe1),'description':a121_0x1d7dfa(0xd5)}],async 'dryRun'(_0x1daa3f){const _0x1881e1=a121_0x1d7dfa,_0x3290ad=loadSqlProjectConfig(_0x1daa3f[_0x1881e1(0xb4)]),_0x4fc978=await readSqlLockFile(_0x3290ad['lockFilePath']),{appLock:_0x561813}=ensureSqlLockScope(_0x4fc978??createEmptySqlLock(),_0x1daa3f['appCode'],_0x3290ad[_0x1881e1(0xb1)],'push'),_0x136d5f=await getTargetSqlQueries(_0x3290ad,_0x561813,_0x1daa3f[_0x1881e1(0xda)](_0x1881e1(0xe0))||undefined),_0x4398e3=[];for(const _0x952e80 of _0x136d5f){const _0x42c94c=await computeSqlFileHash(_0x952e80['filePath']),_0x1203f1=_0x561813[_0x1881e1(0xd9)][_0x952e80['sqlCode']],_0x34a843=!!_0x1203f1&&(_0x1203f1[_0x1881e1(0xe7)]!==_0x952e80['relativePath']||!!_0x952e80['sqlName']&&_0x1203f1['sqlName']!==_0x952e80[_0x1881e1(0xaf)]);if(!_0x1daa3f[_0x1881e1(0xc0)](_0x1881e1(0xd0))&&_0x1203f1&&_0x1203f1[_0x1881e1(0xdf)]===_0x42c94c&&!_0x34a843)continue;_0x4398e3['push'](_0x952e80[_0x1881e1(0xc9)]);}return{'method':_0x1881e1(0xb0),'url':_0x1881e1(0xbe),'body':{'sqlCodes':_0x4398e3,'appCode':_0x1daa3f['appCode']},'description':'Would\x20push\x20'+_0x4398e3[_0x1881e1(0xd6)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x362d16){const _0xaac0ef=a121_0x1d7dfa,_0x142fae=loadSqlProjectConfig(_0x362d16[_0xaac0ef(0xb4)]),_0x1892a1=await readSqlLockFile(_0x142fae[_0xaac0ef(0xbc)]),{lockData:_0x2ba7fd,appLock:_0x1f8cc2}=ensureSqlLockScope(_0x1892a1??createEmptySqlLock(),_0x362d16[_0xaac0ef(0xb4)],_0x142fae[_0xaac0ef(0xb1)],_0xaac0ef(0xcb)),_0x3ace51=await getTargetSqlQueries(_0x142fae,_0x1f8cc2,_0x362d16['str']('sqlcode')||undefined);if(_0x3ace51['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0xaac0ef(0xe3)};const _0x32e22c=[],_0x5265ed=[],_0x477802=[];for(const _0x2eba95 of _0x3ace51){const _0x51625f=_0x1f8cc2[_0xaac0ef(0xd9)][_0x2eba95[_0xaac0ef(0xc9)]];if(!_0x51625f){_0x477802[_0xaac0ef(0xcb)]({'sqlCode':_0x2eba95['sqlCode'],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x22bc8e=await computeSqlFileHash(_0x2eba95['filePath']),_0x57b5ac=_0x51625f[_0xaac0ef(0xe7)]!==_0x2eba95[_0xaac0ef(0xe2)]||!!_0x2eba95[_0xaac0ef(0xaf)]&&_0x51625f[_0xaac0ef(0xaf)]!==_0x2eba95[_0xaac0ef(0xaf)];if(!_0x362d16[_0xaac0ef(0xc0)](_0xaac0ef(0xd0))&&_0x51625f[_0xaac0ef(0xdf)]===_0x22bc8e&&!_0x57b5ac){_0x5265ed[_0xaac0ef(0xcb)]({'sqlCode':_0x2eba95[_0xaac0ef(0xc9)],'reason':_0xaac0ef(0xcf)});continue;}if(_0x51625f[_0xaac0ef(0xe6)]==null){_0x477802['push']({'sqlCode':_0x2eba95['sqlCode'],'error':_0xaac0ef(0xe5)});continue;}const _0x4bde0e=await readFile(_0x2eba95[_0xaac0ef(0xb9)],_0xaac0ef(0xc7)),_0x4ff36a=stripLocalSqlMetadata(_0x4bde0e,_0x2eba95[_0xaac0ef(0xc4)]),_0x547f16=_0x2eba95[_0xaac0ef(0xaf)]||_0x51625f['sqlName'],_0x5eb497=await resolveTargetDbBinding(_0x362d16[_0xaac0ef(0xb4)],_0x2eba95,_0x51625f),_0x105c63=await updateSqlQuery({'id':_0x51625f[_0xaac0ef(0xb5)],'appCode':_0x362d16[_0xaac0ef(0xb4)],'sqlCode':_0x2eba95[_0xaac0ef(0xc9)],'sqlName':_0x547f16,'dbId':_0x5eb497[_0xaac0ef(0xcc)],'version':_0x51625f[_0xaac0ef(0xe6)],'sqlContent':_0x4ff36a,'sqlConfig':_0x51625f['sqlConfig']??undefined}),_0x54f004=_0x105c63[_0xaac0ef(0xcc)]?await getDbName(_0x362d16[_0xaac0ef(0xb4)],Number(_0x105c63[_0xaac0ef(0xcc)]))['catch'](()=>_0x5eb497[_0xaac0ef(0xd3)]):_0x5eb497['dbName'];_0x1f8cc2['sqls'][_0x2eba95[_0xaac0ef(0xc9)]]={...buildSqlLockEntry(_0x105c63,_0x4ff36a,_0x22bc8e,{'dbName':_0x54f004}),'path':_0x2eba95['relativePath'],'mode':_0x51625f[_0xaac0ef(0xc4)]},await archivePreviousSqlFileIfNeeded(_0x142fae,_0x51625f[_0xaac0ef(0xe7)],_0x2eba95['relativePath']),_0x32e22c['push']({'sqlCode':_0x2eba95[_0xaac0ef(0xc9)],'remoteId':_0x51625f[_0xaac0ef(0xb5)]});}catch(_0x43f591){_0x477802['push']({'sqlCode':_0x2eba95[_0xaac0ef(0xc9)],'error':_0x43f591 instanceof Error?_0x43f591[_0xaac0ef(0xb3)]:String(_0x43f591)});}}return _0x1f8cc2[_0xaac0ef(0xae)]=new Date()[_0xaac0ef(0xec)](),await writeSqlLockFile(_0x142fae[_0xaac0ef(0xbc)],_0x2ba7fd),{'ok':_0x477802[_0xaac0ef(0xd6)]===0x0,'data':{'pushed':_0x32e22c,'skipped':_0x5265ed,'failed':_0x477802},'message':'Push\x20complete:\x20'+_0x32e22c[_0xaac0ef(0xd6)]+_0xaac0ef(0xca)+_0x5265ed[_0xaac0ef(0xd6)]+'\x20skipped,\x20'+_0x477802[_0xaac0ef(0xd6)]+_0xaac0ef(0xb7)};}};async function archivePreviousSqlFileIfNeeded(_0x4507d3,_0x5a0db3,_0x51436d){const _0x4785d8=a121_0x1d7dfa;if(!_0x5a0db3||_0x5a0db3===_0x51436d)return;const _0x2fd067=join(_0x4507d3[_0x4785d8(0xc2)],_0x5a0db3);if(!await fileExists(_0x2fd067))return;const _0x5e8495=await moveToTrash(_0x4507d3[_0x4785d8(0xbd)],_0x4507d3[_0x4785d8(0xe4)],_0x2fd067);await cleanupEmptyDirectories(dirname(_0x2fd067),_0x4507d3[_0x4785d8(0xc2)]),void _0x5e8495;}async function moveToTrash(_0x1c9a0c,_0x2f9131,_0x125c01){const _0x132675=a121_0x1d7dfa,_0x1d63a6=new Date()[_0x132675(0xec)]()[_0x132675(0xdd)](/[:.]/g,'-'),_0xf5331e=relative(_0x1c9a0c,_0x125c01),_0x2ea2d1=join(_0x2f9131,_0x1d63a6,_0xf5331e);return await mkdir(dirname(_0x2ea2d1),{'recursive':!![]}),await rename(_0x125c01,_0x2ea2d1),_0x2ea2d1;}async function cleanupEmptyDirectories(_0x83a92c,_0x21790){const _0x5f6d0f=a121_0x1d7dfa;let _0x9ce489=resolve(_0x83a92c);const _0x5d9b2b=resolve(_0x21790);while(_0x9ce489[_0x5f6d0f(0xe8)](''+_0x5d9b2b+sep)||_0x9ce489===_0x5d9b2b){if(_0x9ce489===_0x5d9b2b)return;try{const _0x5162da=await readdir(_0x9ce489);if(_0x5162da['length']>0x0)return;await rmdir(_0x9ce489);}catch{return;}_0x9ce489=dirname(_0x9ce489);}}async function resolveTargetDbBinding(_0x39fe4f,_0xd28b92,_0x266115){const _0x449d2e=a121_0x1d7dfa,_0x420d88=_0xd28b92[_0x449d2e(0xd2)];if(!_0x420d88)return{'dbId':_0x266115[_0x449d2e(0xcc)],'dbName':_0x266115['dbName']};const _0x57c5e=buildDbDirectoryName(_0x266115[_0x449d2e(0xd3)],_0x266115[_0x449d2e(0xcc)]);if(_0x420d88===_0x57c5e)return{'dbId':_0x266115[_0x449d2e(0xcc)],'dbName':_0x266115[_0x449d2e(0xd3)]};const _0x2aa279=parseExplicitDbDirectory(_0x420d88);if(_0x2aa279!=null)return{'dbId':_0x2aa279,'dbName':await getDbName(_0x39fe4f,_0x2aa279)[_0x449d2e(0xb2)](()=>undefined)};const _0x2a08a5=await listDatabases(_0x39fe4f),_0x106ec8=_0x2a08a5['filter'](_0x3338b6=>buildDbDirectoryName(_0x3338b6[_0x449d2e(0xd3)],_0x3338b6[_0x449d2e(0xcc)])===_0x420d88);if(_0x106ec8[_0x449d2e(0xd6)]===0x1)return{'dbId':_0x106ec8[0x0][_0x449d2e(0xcc)],'dbName':_0x106ec8[0x0][_0x449d2e(0xd3)]};if(_0x106ec8[_0x449d2e(0xd6)]===0x0)throw CliErrors[_0x449d2e(0xce)]('No\x20database\x20matches\x20local\x20directory\x20\x22'+_0x420d88+_0x449d2e(0xc8)+_0xd28b92[_0x449d2e(0xc9)]+'.');const _0x980af9=_0x106ec8['map'](_0x175e7b=>_0x175e7b[_0x449d2e(0xd3)]+'\x20('+_0x175e7b[_0x449d2e(0xcc)]+')')[_0x449d2e(0xac)](',\x20');throw CliErrors[_0x449d2e(0xce)]('Local\x20directory\x20\x22'+_0x420d88+_0x449d2e(0xea)+_0xd28b92[_0x449d2e(0xc9)]+':\x20'+_0x980af9);}function parseExplicitDbDirectory(_0x2bc483){const _0x23f369=/^db-(\d+)$/['exec'](_0x2bc483);if(!_0x23f369)return null;const _0x2d981f=Number(_0x23f369[0x1]);return Number['isFinite'](_0x2d981f)&&_0x2d981f>0x0?_0x2d981f: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
+ const a122_0x2e2e84=a122_0x4682;(function(_0x3d8a0a,_0x53e807){const _0x3b420d=a122_0x4682,_0xac5b8=_0x3d8a0a();while(!![]){try{const _0x236090=parseInt(_0x3b420d(0x155))/0x1+parseInt(_0x3b420d(0x156))/0x2+-parseInt(_0x3b420d(0x15f))/0x3+-parseInt(_0x3b420d(0x15d))/0x4+-parseInt(_0x3b420d(0x157))/0x5*(parseInt(_0x3b420d(0x158))/0x6)+parseInt(_0x3b420d(0x15e))/0x7*(parseInt(_0x3b420d(0x150))/0x8)+parseInt(_0x3b420d(0x14c))/0x9;if(_0x236090===_0x53e807)break;else _0xac5b8['push'](_0xac5b8['shift']());}catch(_0x274e3b){_0xac5b8['push'](_0xac5b8['shift']());}}}(a122_0x2a95,0x9971d));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a122_0x2a95(){const _0x1053c0=['Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','SQL\x20query\x20display\x20name','file','join','32572zGclQn','26131GkhtCV','594843FqfSmR','save','write','154539rQIcLC','description','validation','sql','1816tRVovI','string','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','Path\x20to\x20the\x20SQL\x20file','Query\x20description','412811HvHUEG','487904fQufzY','100940hPVpAt','204wZsXEb'];a122_0x2a95=function(){return _0x1053c0;};return a122_0x2a95();}const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','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`.'][a122_0x2e2e84(0x15c)]('\x0a');function a122_0x4682(_0x4f1335,_0x48cea6){_0x4f1335=_0x4f1335-0x14a;const _0x2a9524=a122_0x2a95();let _0x46822b=_0x2a9524[_0x4f1335];return _0x46822b;}export const sqlSave={'service':a122_0x2e2e84(0x14f),'command':a122_0x2e2e84(0x14a),'description':a122_0x2e2e84(0x152),'risk':a122_0x2e2e84(0x14b),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a122_0x2e2e84(0x15b),'type':'string','required':!![],'description':a122_0x2e2e84(0x153)},SQLCODE_FLAG_OPTIONAL,{'name':'sqlname','type':a122_0x2e2e84(0x151),'description':a122_0x2e2e84(0x15a)},{'name':'db','type':a122_0x2e2e84(0x151),'description':a122_0x2e2e84(0x159)},{'name':a122_0x2e2e84(0x14d),'type':a122_0x2e2e84(0x151),'description':a122_0x2e2e84(0x154)}],async 'validate'(){const _0xab2acd=a122_0x2e2e84;throw CliErrors[_0xab2acd(0x14e)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x156be0=a122_0x2e2e84;throw CliErrors[_0x156be0(0x14e)](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
+ function a123_0x5d23(){const _0x254780=['16968jPUgmY','join','includes','apps','sqlRoot','replace','dbId','sqlContent','toLowerCase','mode','52vXhTGt','filter','split','6IoVDMX','close','sqlCode','stderr','version','stdin','sqlName','75993MvPthQ','2263347sFiula','--\x20@lovrabet.','dbName','map','17060DLzevr','syncedAt','585405ssSyCQ','yes','lastSync','description','path','entries','3993lTebcj','mybatisXml','528UNjYEn','140748BPaxcv','trimStart','.rabetbase/sql','trim','length','43362SXBIYE','endsWith','question','sqlConfig','push','test'];a123_0x5d23=function(){return _0x254780;};return a123_0x5d23();}const a123_0x408f35=a123_0x30c3;(function(_0xed3db5,_0x54c29b){const _0x111b5e=a123_0x30c3,_0x523d25=_0xed3db5();while(!![]){try{const _0xfb05a4=parseInt(_0x111b5e(0xc5))/0x1+-parseInt(_0x111b5e(0xc0))/0x2+-parseInt(_0x111b5e(0xdf))/0x3*(-parseInt(_0x111b5e(0xd5))/0x4)+parseInt(_0x111b5e(0xe6))/0x5*(parseInt(_0x111b5e(0xd8))/0x6)+-parseInt(_0x111b5e(0xcb))/0x7*(-parseInt(_0x111b5e(0xbf))/0x8)+parseInt(_0x111b5e(0xe0))/0x9+-parseInt(_0x111b5e(0xe4))/0xa*(parseInt(_0x111b5e(0xec))/0xb);if(_0xfb05a4===_0x54c29b)break;else _0x523d25['push'](_0x523d25['shift']());}catch(_0xe44a5a){_0x523d25['push'](_0x523d25['shift']());}}}(a123_0x5d23,0x33a69));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=a123_0x408f35(0xc2);export function buildSqlLockEntry(_0x5d1cdb,_0x4258d1,_0x468fd3,_0x3f0f2a){const _0x58f274=a123_0x408f35,_0x38a3e2=detectSqlMode(_0x4258d1);return{'path':buildSqlRelativePath(_0x5d1cdb[_0x58f274(0xda)],_0x5d1cdb[_0x58f274(0xde)],_0x3f0f2a?.['dbName'],_0x38a3e2,_0x5d1cdb[_0x58f274(0xd1)]),'hash':_0x468fd3,'remoteId':_0x5d1cdb['id'],'version':_0x5d1cdb[_0x58f274(0xdc)],'dbId':Number(_0x5d1cdb[_0x58f274(0xd1)]),'dbName':_0x3f0f2a?.[_0x58f274(0xe2)],'sqlName':_0x5d1cdb[_0x58f274(0xde)],'sqlConfig':_0x5d1cdb[_0x58f274(0xc8)]??undefined,'mode':_0x38a3e2};}export function cloneSqlLockData(_0x3c7405){const _0x5893c5=a123_0x408f35;return{'apps':Object['fromEntries'](Object[_0x5893c5(0xeb)](_0x3c7405[_0x5893c5(0xce)])[_0x5893c5(0xe3)](([_0x36531f,_0x15be70])=>[_0x36531f,{'sqlRoot':_0x15be70[_0x5893c5(0xcf)],'lastSync':_0x15be70[_0x5893c5(0xe8)],'sqls':{..._0x15be70['sqls']}}]))};}export function ensureRemoteSqlContent(_0x1687d6){const _0x135e94=a123_0x408f35;return _0x1687d6[_0x135e94(0xd2)]??'';}export function buildLocalSqlFileContent(_0x2b1daf,_0x518c61,_0x35e8ee){const _0x5cf104=a123_0x408f35,_0x6d5760=_0x35e8ee?.['mode']??detectSqlMode(_0x518c61),_0x1004a7=stripLocalSqlMetadata(_0x518c61,_0x6d5760)['trim'](),_0x378a52=[...buildMetadataHeaderLines({'sqlCode':_0x2b1daf['sqlCode'],'sqlName':_0x2b1daf[_0x5cf104(0xde)],'dbId':_0x2b1daf['dbId'],'dbName':_0x35e8ee?.[_0x5cf104(0xe2)],'mode':_0x6d5760,'syncedAt':_0x35e8ee?.[_0x5cf104(0xe5)],'description':_0x35e8ee?.[_0x5cf104(0xe9)]},_0x6d5760),'',_0x1004a7],_0x59635c=_0x378a52['join']('\x0a');return _0x59635c[_0x5cf104(0xc6)]('\x0a')?_0x59635c:_0x59635c+'\x0a';}function a123_0x30c3(_0x2bc1a2,_0x1b3cd9){_0x2bc1a2=_0x2bc1a2-0xbf;const _0x5d2317=a123_0x5d23();let _0x30c38e=_0x5d2317[_0x2bc1a2];return _0x30c38e;}export function stripLocalSqlMetadata(_0x51b6ef,_0x1eb655){const _0x296e8b=a123_0x408f35,_0xc7d81e=_0x51b6ef[_0x296e8b(0xd0)](/\r\n/g,'\x0a')[_0x296e8b(0xd7)]('\x0a'),_0x35d6e9=[];let _0x244605=0x0;if(_0x1eb655===_0x296e8b(0xed))while(_0x244605<_0xc7d81e[_0x296e8b(0xc4)]){const _0x267697=_0xc7d81e[_0x244605]??'';if(/^\s*<!--\s*@lovrabet\./[_0x296e8b(0xca)](_0x267697)){_0x244605++;continue;}if(_0x267697['trim']()===''&&_0x244605>0x0){_0x244605++;continue;}break;}else while(_0x244605<_0xc7d81e['length']){const _0x10159e=_0xc7d81e[_0x244605]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x10159e)){_0x244605++;continue;}if(_0x10159e[_0x296e8b(0xc3)]()===''&&_0x244605>0x0){_0x244605++;continue;}break;}for(;_0x244605<_0xc7d81e[_0x296e8b(0xc4)];_0x244605++){_0x35d6e9[_0x296e8b(0xc9)](_0xc7d81e[_0x244605]);}return _0x35d6e9[_0x296e8b(0xcc)]('\x0a')[_0x296e8b(0xc1)]();}export function resolveSqlMode(_0xeeafcb,_0x556e01){const _0x53b0b9=a123_0x408f35;if(_0x556e01?.[_0x53b0b9(0xd4)])return _0x556e01['mode'];return detectSqlMode(_0xeeafcb);}export function resolveSqlFileName(_0x22692a,_0x369671,_0x37b9ce){const _0x59e49b=a123_0x408f35;if(_0x37b9ce?.[_0x59e49b(0xea)])return _0x37b9ce['path'];if(_0x37b9ce?.[_0x59e49b(0xde)]||_0x37b9ce?.[_0x59e49b(0xe2)])return buildSqlRelativePath(_0x22692a,_0x37b9ce?.[_0x59e49b(0xde)],_0x37b9ce?.['dbName'],resolveSqlMode(_0x369671,_0x37b9ce),_0x37b9ce?.[_0x59e49b(0xd1)]);return buildDefaultSqlFileName(_0x22692a,resolveSqlMode(_0x369671,_0x37b9ce));}export function resolveSqlLocalDir(_0x2a5c6c,_0x4dae77){return join(_0x2a5c6c,SQL_LOCAL_REL_DIR,_0x4dae77);}export async function confirmForceOverwrite(_0x286375){const _0x1ae2bb=a123_0x408f35,_0x139969=createInterface({'input':process[_0x1ae2bb(0xdd)],'output':process[_0x1ae2bb(0xdb)]}),_0xf74c9a=await new Promise(_0x36e629=>{const _0x3e5a45=_0x1ae2bb;_0x139969[_0x3e5a45(0xc7)](_0x286375+'\x20[y/N]\x20',_0x36e629);});return _0x139969[_0x1ae2bb(0xd9)](),['y',_0x1ae2bb(0xe7)][_0x1ae2bb(0xcd)](_0xf74c9a[_0x1ae2bb(0xc3)]()[_0x1ae2bb(0xd3)]());}export function findSqlLockScope(_0x2444c2,_0x41191b){const _0x107e64=a123_0x408f35;return _0x2444c2[_0x107e64(0xce)][_0x41191b];}function buildMetadataHeaderLines(_0x54dd2a,_0x349a38){const _0x8f8799=a123_0x408f35,_0x5c9892=[[_0x8f8799(0xda),_0x54dd2a[_0x8f8799(0xda)]],['sqlName',_0x54dd2a[_0x8f8799(0xde)]],[_0x8f8799(0xd1),_0x54dd2a[_0x8f8799(0xd1)]],[_0x8f8799(0xe2),_0x54dd2a['dbName']],[_0x8f8799(0xd4),_0x54dd2a[_0x8f8799(0xd4)]],[_0x8f8799(0xe5),_0x54dd2a[_0x8f8799(0xe5)]],[_0x8f8799(0xe9),_0x54dd2a['description']]];if(_0x349a38===_0x8f8799(0xed))return _0x5c9892[_0x8f8799(0xd6)](([,_0x2d4744])=>_0x2d4744!==undefined&&_0x2d4744!==null&&String(_0x2d4744)[_0x8f8799(0xc3)]()!=='')[_0x8f8799(0xe3)](([_0x3036a2,_0x2466a3])=>'<!--\x20@lovrabet.'+_0x3036a2+':\x20'+String(_0x2466a3)+'\x20-->');return _0x5c9892[_0x8f8799(0xd6)](([,_0x116c44])=>_0x116c44!==undefined&&_0x116c44!==null&&String(_0x116c44)[_0x8f8799(0xc3)]()!=='')[_0x8f8799(0xe3)](([_0xd1d4e0,_0x3ca5d3])=>_0x8f8799(0xe1)+_0xd1d4e0+':\x20'+String(_0x3ca5d3));}
@@ -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_0x53697e=a124_0x4a38;(function(_0xfee044,_0x4062d9){const _0x5899a0=a124_0x4a38,_0x97672c=_0xfee044();while(!![]){try{const _0x52ceab=parseInt(_0x5899a0(0xbd))/0x1*(parseInt(_0x5899a0(0xc0))/0x2)+-parseInt(_0x5899a0(0xbc))/0x3+parseInt(_0x5899a0(0xc1))/0x4+parseInt(_0x5899a0(0xbf))/0x5*(-parseInt(_0x5899a0(0xaa))/0x6)+parseInt(_0x5899a0(0xc4))/0x7*(parseInt(_0x5899a0(0xab))/0x8)+-parseInt(_0x5899a0(0xb7))/0x9+parseInt(_0x5899a0(0xb4))/0xa*(parseInt(_0x5899a0(0xa3))/0xb);if(_0x52ceab===_0x4062d9)break;else _0x97672c['push'](_0x97672c['shift']());}catch(_0x5c904b){_0x97672c['push'](_0x97672c['shift']());}}}(a124_0x2754,0xd7595));import{listSqlQueries}from'../../core/api-client.js';function a124_0x4a38(_0x279ce8,_0x3a5f05){_0x279ce8=_0x279ce8-0xa3;const _0x27540a=a124_0x2754();let _0x4a381c=_0x27540a[_0x279ce8];return _0x4a381c;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x306689){const _0x4c7ccc=a124_0x4a38,_0x28e073=[];let _0x7ba8df=0x1;while(!![]){const _0x9f26bb=await listSqlQueries(_0x306689,{'currentPage':_0x7ba8df,'pageSize':PAGE_SIZE}),_0x2149d4=_0x9f26bb[_0x4c7ccc(0xac)]??[];_0x28e073['push'](..._0x2149d4['map'](_0x72df3c=>_0x72df3c['sqlCode']));if(_0x2149d4[_0x4c7ccc(0xb3)]===0x0)break;const _0x651ab9=_0x9f26bb[_0x4c7ccc(0xb6)]?.['totalCount'];if(_0x651ab9!=null?_0x28e073['length']>=_0x651ab9:_0x2149d4['length']<PAGE_SIZE)break;_0x7ba8df++;}return _0x28e073;}export const sqlStatus={'service':a124_0x53697e(0xa8),'command':'status','description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a124_0x53697e(0xc5),'flags':[{'name':a124_0x53697e(0xc3),'type':a124_0x53697e(0xc8),'description':a124_0x53697e(0xa9)}],async 'execute'(_0x2d37b2){const _0x2d9710=a124_0x53697e,_0x275a10=loadSqlProjectConfig(_0x2d37b2['appCode']),_0x41a430=await readSqlLockFile(_0x275a10[_0x2d9710(0xb8)]),{appLock:_0x29e79c}=ensureSqlLockScope(_0x41a430??createEmptySqlLock(),_0x275a10[_0x2d9710(0xb9)],_0x275a10[_0x2d9710(0xb1)],_0x2d9710(0xbb)),_0x37598d=await scanLocalSqlQueries(_0x275a10),_0x427cc9=[],_0x544367=[],_0x23736f=[],_0x54facb=[],_0x4ed0a4=new Set(_0x37598d[_0x2d9710(0xb5)](_0x3ea60a=>_0x3ea60a[_0x2d9710(0xa5)]));for(const _0x74e804 of _0x37598d){const _0x2bc2b8=await computeSqlFileHash(_0x74e804[_0x2d9710(0xb0)]),_0x1d2a5d=_0x29e79c['sqls'][_0x74e804['lockKey']],_0x5efa7=!!_0x1d2a5d&&_0x1d2a5d['path']!==_0x74e804[_0x2d9710(0xae)],_0x174036=!!_0x1d2a5d&&!!_0x74e804[_0x2d9710(0xad)]&&_0x1d2a5d[_0x2d9710(0xad)]!==_0x74e804[_0x2d9710(0xad)];if(!_0x1d2a5d)_0x427cc9[_0x2d9710(0xa4)](_0x74e804[_0x2d9710(0xa5)]);else _0x1d2a5d[_0x2d9710(0xba)]!==_0x2bc2b8||_0x5efa7||_0x174036?_0x544367[_0x2d9710(0xa4)](_0x74e804[_0x2d9710(0xa5)]):_0x23736f[_0x2d9710(0xa4)](_0x74e804[_0x2d9710(0xa5)]);}for(const _0x1b6a5e of Object['keys'](_0x29e79c[_0x2d9710(0xaf)])){!_0x4ed0a4[_0x2d9710(0xa7)](_0x1b6a5e)&&_0x54facb[_0x2d9710(0xa4)](_0x1b6a5e);}const _0x485db8=[];if(_0x2d37b2[_0x2d9710(0xa6)](_0x2d9710(0xc3))){const _0x4a72a0=await fetchAllSqlCodes(_0x2d37b2[_0x2d9710(0xb9)]);for(const _0x50c2bd of _0x4a72a0){!_0x4ed0a4[_0x2d9710(0xa7)](_0x50c2bd)&&!_0x29e79c['sqls'][_0x50c2bd]&&_0x485db8['push'](_0x50c2bd);}}const _0x4feaed=_0x427cc9[_0x2d9710(0xb3)]===0x0&&_0x544367[_0x2d9710(0xb3)]===0x0&&_0x54facb[_0x2d9710(0xb3)]===0x0&&_0x485db8[_0x2d9710(0xb3)]===0x0;return{'ok':!![],'data':{'added':_0x427cc9,'modified':_0x544367,'missing':_0x54facb,'unchanged':_0x23736f,'remoteOnly':_0x485db8},'message':_0x4feaed?_0x2d9710(0xbe):_0x427cc9['length']+_0x2d9710(0xc7)+_0x544367['length']+_0x2d9710(0xc6)+_0x54facb[_0x2d9710(0xb3)]+'\x20missing,\x20'+_0x23736f['length']+_0x2d9710(0xc2)+(_0x485db8[_0x2d9710(0xb3)]>0x0?',\x20'+_0x485db8['length']+_0x2d9710(0xb2):'')};}};function a124_0x2754(){const _0x112533=['map','paging','8710173CuoOaT','lockFilePath','appCode','hash','status','4207092rjrUPc','62eMTavQ','All\x20SQL\x20queries\x20are\x20in\x20sync.','15DkxeqJ','14852Zaqigt','3072332wmUdDx','\x20unchanged','remote','49LzTWFF','read','\x20modified,\x20','\x20added,\x20','boolean','158796syCMRv','push','lockKey','bool','has','sql','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','1475748yaeczd','4952jWeCAP','tableData','sqlName','relativePath','sqls','filePath','sqlRoot','\x20remote-only','length','1910Dmchls'];a124_0x2754=function(){return _0x112533;};return a124_0x2754();}
@@ -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_0x3b247c=a125_0x1ac6;function a125_0x45b9(){const _0x3e3ac3=['name','map','appCode','string','isDangerous','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','dbtableConfig','utf-8','toLowerCase','isSelectOnly','from','388680rzflcp','trim','2601928azAbDZ','str','length','45eUJzCH','flagMissing','Table\x20\x22','sqlType','isArray','validation','2837256sOSIvO','tables','fields','filter','read','size','Provide\x20--file\x20or\x20--sql','push','15453frnBHI','schemas','tableName','file','\x22\x20not\x20found\x20or\x20not\x20accessible','sql','278YdicYm','3208690fZiujn','2174529dwUhZm','File\x20not\x20found:\x20','get','Dataset\x20\x22','reason','message','815CeGQyp','parameters','cwd','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','schemaWarnings','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','2936HjXQBU'];a125_0x45b9=function(){return _0x3e3ac3;};return a125_0x45b9();}function a125_0x1ac6(_0x3105d6,_0x215769){_0x3105d6=_0x3105d6-0x86;const _0x45b90f=a125_0x45b9();let _0x1ac68b=_0x45b90f[_0x3105d6];return _0x1ac68b;}(function(_0x37fcc7,_0x41e1ed){const _0x30de13=a125_0x1ac6,_0x5c55e5=_0x37fcc7();while(!![]){try{const _0x41384f=parseInt(_0x30de13(0xb8))/0x1+-parseInt(_0x30de13(0x9e))/0x2*(parseInt(_0x30de13(0x98))/0x3)+-parseInt(_0x30de13(0xac))/0x4*(parseInt(_0x30de13(0xa6))/0x5)+-parseInt(_0x30de13(0x90))/0x6+parseInt(_0x30de13(0xa0))/0x7+-parseInt(_0x30de13(0x87))/0x8+-parseInt(_0x30de13(0x8a))/0x9*(-parseInt(_0x30de13(0x9f))/0xa);if(_0x41384f===_0x41e1ed)break;else _0x5c55e5['push'](_0x5c55e5['shift']());}catch(_0x3b489a){_0x5c55e5['push'](_0x5c55e5['shift']());}}}(a125_0x45b9,0xa38e4));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':a125_0x3b247c(0x9d),'command':'validate','description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a125_0x3b247c(0x94),'flags':[{'name':'file','type':a125_0x3b247c(0xb0),'description':a125_0x3b247c(0xb2)},{'name':a125_0x3b247c(0x9d),'type':a125_0x3b247c(0xb0),'description':a125_0x3b247c(0xab)},{'name':a125_0x3b247c(0x99),'type':a125_0x3b247c(0xb0),'description':a125_0x3b247c(0xa9)}],async 'execute'(_0x3d6930){const _0x4f928e=a125_0x3b247c,_0x176162=_0x3d6930[_0x4f928e(0x88)](_0x4f928e(0x9b)),_0x58c188=_0x3d6930[_0x4f928e(0x88)](_0x4f928e(0x9d));if(!_0x176162&&!_0x58c188)throw CliErrors[_0x4f928e(0x8b)](_0x4f928e(0x9b),_0x4f928e(0x96));let _0x117851;if(_0x176162){const _0x35eba5=resolve(process[_0x4f928e(0xa8)](),_0x176162);if(!existsSync(_0x35eba5))throw CliErrors[_0x4f928e(0x8f)](_0x4f928e(0xa1)+_0x35eba5);_0x117851=readFileSync(_0x35eba5,_0x4f928e(0xb4));}else _0x117851=_0x58c188;const _0x53c99e=validateSql(_0x117851),_0x19ba72={'valid':_0x53c99e['valid'],'sqlType':_0x53c99e[_0x4f928e(0x8d)]['type'],'isSelectOnly':_0x53c99e[_0x4f928e(0x8d)][_0x4f928e(0xb6)],'isDangerous':_0x53c99e[_0x4f928e(0x8d)][_0x4f928e(0xb1)],'tables':_0x53c99e[_0x4f928e(0x91)],'parameters':_0x53c99e[_0x4f928e(0xa7)],'message':_0x53c99e[_0x4f928e(0xa5)]};_0x53c99e[_0x4f928e(0x8d)]['reason']&&(_0x19ba72[_0x4f928e(0xa4)]=_0x53c99e[_0x4f928e(0x8d)]['reason']);const _0x240963=_0x3d6930['str'](_0x4f928e(0x99));if(_0x240963&&_0x53c99e['valid']){const _0x23ee67=_0x240963['split'](',')[_0x4f928e(0xae)](_0x855e16=>_0x855e16[_0x4f928e(0x86)]())[_0x4f928e(0x93)](Boolean),_0x1c60ed=[],_0x1b5e4e=await listDatasets(_0x3d6930[_0x4f928e(0xaf)]),_0x577874=new Map(_0x1b5e4e['map'](_0x37116a=>[_0x37116a['dbtableConfig']?.['tableName']?.['toLowerCase'](),_0x37116a]));for(const _0x9ab36c of _0x53c99e[_0x4f928e(0x91)]){const _0x533524=_0x577874[_0x4f928e(0xa2)](_0x9ab36c[_0x4f928e(0xb5)]());!_0x533524&&_0x1c60ed['push'](_0x4f928e(0x8c)+_0x9ab36c+'\x22\x20not\x20found\x20in\x20any\x20dataset');}for(const _0x54f417 of _0x23ee67){try{const _0x672695=await getDatasetDetail(_0x54f417),_0x272379=Array[_0x4f928e(0x8e)](_0x672695[_0x4f928e(0x92)])?_0x672695[_0x4f928e(0x92)]:[],_0x1512a8=new Set(_0x272379[_0x4f928e(0xae)](_0x32c5be=>_0x32c5be[_0x4f928e(0xad)]?.[_0x4f928e(0xb5)]())),_0x11a5cd=_0x672695[_0x4f928e(0xb3)]?.[_0x4f928e(0x9a)]||_0x672695[_0x4f928e(0x9a)]||_0x54f417;_0x19ba72['schema:'+_0x11a5cd]={'code':_0x54f417,'tableName':_0x11a5cd,'fieldCount':_0x1512a8[_0x4f928e(0x95)],'fields':Array[_0x4f928e(0xb7)](_0x1512a8)};}catch{_0x1c60ed[_0x4f928e(0x97)](_0x4f928e(0xa3)+_0x54f417+_0x4f928e(0x9c));}}_0x1c60ed[_0x4f928e(0x89)]>0x0&&(_0x19ba72[_0x4f928e(0xaa)]=_0x1c60ed);}return{'ok':_0x53c99e['valid'],'data':_0x19ba72,'message':_0x53c99e[_0x4f928e(0xa5)]};}};
@@ -1 +1 @@
1
- const a119_0x353550=a119_0x3bd7;(function(_0x18ba3d,_0x3b9908){const _0x2d232d=a119_0x3bd7,_0x1f5376=_0x18ba3d();while(!![]){try{const _0x178986=parseInt(_0x2d232d(0xc9))/0x1*(-parseInt(_0x2d232d(0xea))/0x2)+parseInt(_0x2d232d(0xc2))/0x3+parseInt(_0x2d232d(0xd9))/0x4+parseInt(_0x2d232d(0xd2))/0x5*(parseInt(_0x2d232d(0xc7))/0x6)+-parseInt(_0x2d232d(0xc4))/0x7*(-parseInt(_0x2d232d(0xd7))/0x8)+parseInt(_0x2d232d(0xde))/0x9*(parseInt(_0x2d232d(0xc8))/0xa)+-parseInt(_0x2d232d(0xc1))/0xb;if(_0x178986===_0x3b9908)break;else _0x1f5376['push'](_0x1f5376['shift']());}catch(_0x4d4a9a){_0x1f5376['push'](_0x1f5376['shift']());}}}(a119_0x4de2,0xd65b4));import{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';import{RABETBASE_ENV_VALUES}from'../constant/env.js';import{RABETBASE_OUTPUT_FORMAT_VALUES}from'../constant/output.js';import{RISK_LEVEL_VALUES}from'../constant/risk.js';export{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';export const PROJECT_CREATE_INHERITABLE_KEYS=[a119_0x353550(0xe7),a119_0x353550(0xdc),a119_0x353550(0xcb),a119_0x353550(0xd5),a119_0x353550(0xc3)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a119_0x353550(0xcc),a119_0x353550(0xd6),'locale',a119_0x353550(0xd5),a119_0x353550(0xe7),a119_0x353550(0xdc),a119_0x353550(0xe6)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x5a61ac){const _0x593ac0=a119_0x353550;return[..._0x5a61ac][_0x593ac0(0xe2)](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x5b2a47){const _0x2daf3a=a119_0x353550;return TOP_LEVEL_CONFIG_KEYS[_0x2daf3a(0xe0)](_0x5b2a47);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){return'Config\x20key\x20('+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':'env','apiDir':a119_0x353550(0xe6),'cookie':'cookie','accessKey':a119_0x353550(0xdc),'defaultFormat':'format','pageSize':'pageSize','riskLevel':a119_0x353550(0xc3),'locale':a119_0x353550(0xcb)};function a119_0x4de2(){const _0x2c7845=['env','72NLPEoZ','Default\x20page\x20size','2544800bRjRTR','en-US','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','accessKey','entries','321426hVHNPU','length','has','number','join','filter','inherit','app','apiDir','cookie','defaultApp','apps','2AljcwO','defaultFormat','24934635mvdzCK','1497132pDrXDV','riskLevel','1241555KMDPNf','Locale','Access\x20key','1356MEZGqg','120IDfavJ','819416mVnObf','Auth\x20cookie','locale','appcode','zh-CN','string','Risk\x20level','pageSize','toLowerCase','17790yCMTTV','trim','keys','format'];a119_0x4de2=function(){return _0x2c7845;};return a119_0x4de2();}function a119_0x3bd7(_0x44b015,_0x2181b2){_0x44b015=_0x44b015-0xc0;const _0x4de2e7=a119_0x4de2();let _0x3bd7c5=_0x4de2e7[_0x44b015];return _0x3bd7c5;}export function getAppProfileFlagDefs(){const _0x4cbdc0=a119_0x353550;return[{'name':_0x4cbdc0(0xd6),'type':'string','description':'Target\x20environment','enum':[...RABETBASE_ENV_VALUES]},{'name':_0x4cbdc0(0xe6),'type':_0x4cbdc0(0xce),'description':'API\x20directory\x20path'},{'name':_0x4cbdc0(0xe7),'type':_0x4cbdc0(0xce),'description':_0x4cbdc0(0xca),'hidden':!![]},{'name':'accessKey','type':_0x4cbdc0(0xce),'description':_0x4cbdc0(0xc6),'hidden':!![]},{'name':_0x4cbdc0(0xc0),'type':'string','description':_0x4cbdc0(0xdb),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x4cbdc0(0xd0),'type':_0x4cbdc0(0xe1),'description':_0x4cbdc0(0xd8)},{'name':_0x4cbdc0(0xc3),'type':'string','description':_0x4cbdc0(0xcf),'enum':[...RISK_LEVEL_VALUES]},{'name':'locale','type':_0x4cbdc0(0xce),'description':_0x4cbdc0(0xc5)}];}export function collectAppProfileOverrides(_0x13c106){const _0x215477=a119_0x353550,_0x1ddcad={};for(const [_0x3ba30c,_0x3f2521]of Object[_0x215477(0xdd)](APP_PROFILE_FLAG_KEY_MAP)){const _0x13c588=_0x13c106(_0x3ba30c);if(!_0x13c588)continue;_0x1ddcad[_0x3f2521]=_0x3f2521===_0x215477(0xd0)?Number(_0x13c588):_0x13c588;}return _0x1ddcad;}export function buildAppProfileListFields(_0x515bb1){const _0x4da0fc=a119_0x353550;return{'env':_0x515bb1[_0x4da0fc(0xd6)]??null,'apiDir':_0x515bb1[_0x4da0fc(0xe6)]??null,'hasCookie':!!_0x515bb1[_0x4da0fc(0xe7)],'hasAccessKey':!!_0x515bb1[_0x4da0fc(0xdc)],'format':_0x515bb1[_0x4da0fc(0xd5)]??null,'pageSize':_0x515bb1[_0x4da0fc(0xd0)]??null,'riskLevel':_0x515bb1[_0x4da0fc(0xc3)]??null,'locale':_0x515bb1[_0x4da0fc(0xcb)]??null};}export function buildAppDoctorFields(_0x442391,_0x4e7455){const _0x50cb66=a119_0x353550;return{'env':{'value':_0x442391[_0x50cb66(0xd6)]||_0x4e7455[_0x50cb66(0xd6)],'source':_0x442391[_0x50cb66(0xd6)]?_0x50cb66(0xe5):_0x50cb66(0xe4)},'apiDir':{'value':_0x442391[_0x50cb66(0xe6)]||_0x4e7455['apiDir'],'source':_0x442391[_0x50cb66(0xe6)]?_0x50cb66(0xe5):'inherit'},'cookie':{'value':_0x442391['cookie']||_0x4e7455['cookie'],'source':_0x442391['cookie']?'app':'inherit'},'accessKey':{'value':_0x442391['accessKey']||_0x4e7455[_0x50cb66(0xdc)],'source':_0x442391[_0x50cb66(0xdc)]?_0x50cb66(0xe5):_0x50cb66(0xe4)}};}export function buildCanonicalAppConfig(_0x1a8764,_0x417d2a){const _0x2e9b33=a119_0x353550,_0x2db2fd=_0x1a8764['map'](_0x592d72=>String(_0x592d72||'')[_0x2e9b33(0xd3)]())[_0x2e9b33(0xe3)](Boolean);if(_0x2db2fd[_0x2e9b33(0xdf)]===0x0)return{};const _0x39fbc4={};for(const _0x5beb84 of _0x2db2fd){_0x39fbc4[_0x5beb84]=_0x417d2a?{'appcode':_0x5beb84,'env':_0x417d2a}:{'appcode':_0x5beb84};}return{'apps':_0x39fbc4,'defaultApp':_0x2db2fd[0x0]};}export function buildCanonicalProjectConfig(_0x1c85a4,_0x3fc67a){const _0x226155=a119_0x353550,{appCodes:appCodes=[],env:_0x4d014f,metadata:_0x4b2e5e}=_0x3fc67a,_0x1d6292={..._0x1c85a4,..._0x4b2e5e||{}};delete _0x1d6292[_0x226155(0xcc)],delete _0x1d6292['app'];if(_0x4d014f)_0x1d6292['env']=_0x4d014f;else!_0x1d6292['env']&&(_0x1d6292[_0x226155(0xd6)]=DEFAULT_CONFIG_VALUES[_0x226155(0xd6)]);const _0x2f826c=buildCanonicalAppConfig(appCodes,_0x1d6292[_0x226155(0xd6)]);return Object[_0x226155(0xd4)](_0x2f826c)['length']>0x0&&(_0x1d6292[_0x226155(0xe9)]=_0x2f826c[_0x226155(0xe9)],_0x1d6292[_0x226155(0xe8)]=_0x2f826c[_0x226155(0xe8)]),_0x1d6292;}const LOCALE_MAP={'zh':a119_0x353550(0xcd),'zh-cn':'zh-CN','zh_cn':'zh-CN','en':a119_0x353550(0xda),'en-us':a119_0x353550(0xda),'en_us':a119_0x353550(0xda)};export function normalizeLocale(_0x280fe1){const _0xeb824f=a119_0x353550;if(!_0x280fe1)return null;return LOCALE_MAP[_0x280fe1[_0xeb824f(0xd1)]()]??null;}
1
+ const a126_0x7cad39=a126_0x3a48;function a126_0x3a48(_0x2b3a0e,_0x1b3119){_0x2b3a0e=_0x2b3a0e-0x1be;const _0x83dc7d=a126_0x83dc();let _0x3a48a6=_0x83dc7d[_0x2b3a0e];return _0x3a48a6;}(function(_0x43a8b8,_0x7fcccd){const _0x627f30=a126_0x3a48,_0x43893d=_0x43a8b8();while(!![]){try{const _0x6a17f1=parseInt(_0x627f30(0x1d3))/0x1*(parseInt(_0x627f30(0x1df))/0x2)+parseInt(_0x627f30(0x1c7))/0x3+-parseInt(_0x627f30(0x1e5))/0x4+-parseInt(_0x627f30(0x1cd))/0x5*(-parseInt(_0x627f30(0x1d0))/0x6)+parseInt(_0x627f30(0x1d7))/0x7+parseInt(_0x627f30(0x1d6))/0x8+-parseInt(_0x627f30(0x1bf))/0x9;if(_0x6a17f1===_0x7fcccd)break;else _0x43893d['push'](_0x43893d['shift']());}catch(_0x3e96f8){_0x43893d['push'](_0x43893d['shift']());}}}(a126_0x83dc,0xe1b9f));import{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';import{RABETBASE_ENV_VALUES}from'../constant/env.js';import{RABETBASE_OUTPUT_FORMAT_VALUES}from'../constant/output.js';import{RISK_LEVEL_VALUES}from'../constant/risk.js';export{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';export const PROJECT_CREATE_INHERITABLE_KEYS=[a126_0x7cad39(0x1cc),a126_0x7cad39(0x1be),a126_0x7cad39(0x1ca),'format','riskLevel'];export const TOP_LEVEL_CONFIG_KEYS=new Set([a126_0x7cad39(0x1c6),a126_0x7cad39(0x1d8),'locale','format',a126_0x7cad39(0x1cc),a126_0x7cad39(0x1be),'apiDir']);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x3fdcf7){const _0x2e1129=a126_0x7cad39;return[..._0x3fdcf7][_0x2e1129(0x1d2)](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x1c1481){const _0x25386c=a126_0x7cad39;return TOP_LEVEL_CONFIG_KEYS[_0x25386c(0x1d9)](_0x1c1481);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){const _0x27176f=a126_0x7cad39;return _0x27176f(0x1da)+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a126_0x7cad39(0x1d8),'apiDir':'apiDir','cookie':a126_0x7cad39(0x1cc),'accessKey':a126_0x7cad39(0x1be),'defaultFormat':a126_0x7cad39(0x1c9),'pageSize':a126_0x7cad39(0x1db),'riskLevel':a126_0x7cad39(0x1c8),'locale':a126_0x7cad39(0x1ca)};export function getAppProfileFlagDefs(){const _0x28e108=a126_0x7cad39;return[{'name':'env','type':_0x28e108(0x1c5),'description':_0x28e108(0x1c0),'enum':[...RABETBASE_ENV_VALUES]},{'name':_0x28e108(0x1c3),'type':'string','description':_0x28e108(0x1cf)},{'name':'cookie','type':_0x28e108(0x1c5),'description':'Auth\x20cookie','hidden':!![]},{'name':_0x28e108(0x1be),'type':_0x28e108(0x1c5),'description':_0x28e108(0x1d4),'hidden':!![]},{'name':'defaultFormat','type':_0x28e108(0x1c5),'description':_0x28e108(0x1dc),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x28e108(0x1db),'type':'number','description':_0x28e108(0x1e4)},{'name':_0x28e108(0x1c8),'type':_0x28e108(0x1c5),'description':_0x28e108(0x1e2),'enum':[...RISK_LEVEL_VALUES]},{'name':_0x28e108(0x1ca),'type':_0x28e108(0x1c5),'description':_0x28e108(0x1cb)}];}export function collectAppProfileOverrides(_0x2855e9){const _0x59cab2=a126_0x7cad39,_0x4879be={};for(const [_0x1950e0,_0x528fb0]of Object[_0x59cab2(0x1e0)](APP_PROFILE_FLAG_KEY_MAP)){const _0x20c67b=_0x2855e9(_0x1950e0);if(!_0x20c67b)continue;_0x4879be[_0x528fb0]=_0x528fb0===_0x59cab2(0x1db)?Number(_0x20c67b):_0x20c67b;}return _0x4879be;}export function buildAppProfileListFields(_0x2cea9d){const _0x348685=a126_0x7cad39;return{'env':_0x2cea9d[_0x348685(0x1d8)]??null,'apiDir':_0x2cea9d[_0x348685(0x1c3)]??null,'hasCookie':!!_0x2cea9d[_0x348685(0x1cc)],'hasAccessKey':!!_0x2cea9d[_0x348685(0x1be)],'format':_0x2cea9d[_0x348685(0x1c9)]??null,'pageSize':_0x2cea9d[_0x348685(0x1db)]??null,'riskLevel':_0x2cea9d[_0x348685(0x1c8)]??null,'locale':_0x2cea9d['locale']??null};}export function buildAppDoctorFields(_0x1aa4d2,_0x2790ab){const _0x5c0bb6=a126_0x7cad39;return{'env':{'value':_0x1aa4d2[_0x5c0bb6(0x1d8)]||_0x2790ab[_0x5c0bb6(0x1d8)],'source':_0x1aa4d2[_0x5c0bb6(0x1d8)]?_0x5c0bb6(0x1c2):'inherit'},'apiDir':{'value':_0x1aa4d2[_0x5c0bb6(0x1c3)]||_0x2790ab[_0x5c0bb6(0x1c3)],'source':_0x1aa4d2[_0x5c0bb6(0x1c3)]?_0x5c0bb6(0x1c2):_0x5c0bb6(0x1e1)},'cookie':{'value':_0x1aa4d2[_0x5c0bb6(0x1cc)]||_0x2790ab[_0x5c0bb6(0x1cc)],'source':_0x1aa4d2['cookie']?_0x5c0bb6(0x1c2):_0x5c0bb6(0x1e1)},'accessKey':{'value':_0x1aa4d2[_0x5c0bb6(0x1be)]||_0x2790ab[_0x5c0bb6(0x1be)],'source':_0x1aa4d2[_0x5c0bb6(0x1be)]?_0x5c0bb6(0x1c2):_0x5c0bb6(0x1e1)}};}function a126_0x83dc(){const _0x3a2696=['4333864MmjibX','11955300gaVISw','env','has','Config\x20key\x20(','pageSize','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','apps','defaultApp','2vkghMa','entries','inherit','Risk\x20level','filter','Default\x20page\x20size','442472FUZzKr','accessKey','45844254PkeTBd','Target\x20environment','trim','app','apiDir','keys','string','appcode','4959135eIjtLQ','riskLevel','format','locale','Locale','cookie','3317045KTEhfQ','toLowerCase','API\x20directory\x20path','12EBDkuh','map','join','899503hrEoTB','Access\x20key','en-US'];a126_0x83dc=function(){return _0x3a2696;};return a126_0x83dc();}export function buildCanonicalAppConfig(_0x29f938,_0x20799f){const _0x28d5e9=a126_0x7cad39,_0x1abdb7=_0x29f938[_0x28d5e9(0x1d1)](_0x4a817f=>String(_0x4a817f||'')[_0x28d5e9(0x1c1)]())[_0x28d5e9(0x1e3)](Boolean);if(_0x1abdb7['length']===0x0)return{};const _0x38a429={};for(const _0xf2eea1 of _0x1abdb7){_0x38a429[_0xf2eea1]=_0x20799f?{'appcode':_0xf2eea1,'env':_0x20799f}:{'appcode':_0xf2eea1};}return{'apps':_0x38a429,'defaultApp':_0x1abdb7[0x0]};}export function buildCanonicalProjectConfig(_0x2afbf9,_0x106404){const _0x1af657=a126_0x7cad39,{appCodes:appCodes=[],env:_0x58377a,metadata:_0x4f11b8}=_0x106404,_0x150511={..._0x2afbf9,..._0x4f11b8||{}};delete _0x150511['appcode'],delete _0x150511[_0x1af657(0x1c2)];if(_0x58377a)_0x150511[_0x1af657(0x1d8)]=_0x58377a;else!_0x150511[_0x1af657(0x1d8)]&&(_0x150511[_0x1af657(0x1d8)]=DEFAULT_CONFIG_VALUES[_0x1af657(0x1d8)]);const _0x27ce66=buildCanonicalAppConfig(appCodes,_0x150511['env']);return Object[_0x1af657(0x1c4)](_0x27ce66)['length']>0x0&&(_0x150511[_0x1af657(0x1dd)]=_0x27ce66[_0x1af657(0x1dd)],_0x150511[_0x1af657(0x1de)]=_0x27ce66[_0x1af657(0x1de)]),_0x150511;}const LOCALE_MAP={'zh':'zh-CN','zh-cn':'zh-CN','zh_cn':'zh-CN','en':a126_0x7cad39(0x1d5),'en-us':'en-US','en_us':a126_0x7cad39(0x1d5)};export function normalizeLocale(_0x1ae3b5){const _0x488123=a126_0x7cad39;if(!_0x1ae3b5)return null;return LOCALE_MAP[_0x1ae3b5[_0x488123(0x1ce)]()]??null;}