@lovrabet/rabetbase-cli 2.1.14-beta.2 → 2.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/add.js +1 -1
  20. package/lib/commands/app/discover.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.js +1 -1
  23. package/lib/commands/app/remove.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app/use.js +1 -1
  26. package/lib/commands/auth/index.js +1 -1
  27. package/lib/commands/bff/create.js +1 -1
  28. package/lib/commands/bff/delete.js +1 -1
  29. package/lib/commands/bff/detail.js +1 -1
  30. package/lib/commands/bff/index.js +1 -1
  31. package/lib/commands/bff/list.js +1 -1
  32. package/lib/commands/bff/pull.js +1 -1
  33. package/lib/commands/bff/push.js +1 -1
  34. package/lib/commands/bff/status.js +1 -1
  35. package/lib/commands/cli-update.js +1 -1
  36. package/lib/commands/codegen/index.js +1 -1
  37. package/lib/commands/codegen/sdk.js +1 -1
  38. package/lib/commands/codegen/sql.js +1 -1
  39. package/lib/commands/common/app-selector.js +1 -1
  40. package/lib/commands/common/flags.js +1 -1
  41. package/lib/commands/common/validate.js +1 -1
  42. package/lib/commands/config/get.js +1 -1
  43. package/lib/commands/config/index.js +1 -1
  44. package/lib/commands/config/list.js +1 -1
  45. package/lib/commands/config/set.js +1 -1
  46. package/lib/commands/config/shared.js +1 -1
  47. package/lib/commands/data/filter.js +1 -1
  48. package/lib/commands/data/getOne.js +1 -1
  49. package/lib/commands/data/index.js +1 -1
  50. package/lib/commands/data/shared.js +1 -1
  51. package/lib/commands/dataset/capability.js +1 -1
  52. package/lib/commands/dataset/delete.js +1 -1
  53. package/lib/commands/dataset/detail.js +1 -1
  54. package/lib/commands/dataset/extend-update.js +1 -1
  55. package/lib/commands/dataset/field-update.js +1 -1
  56. package/lib/commands/dataset/index.js +1 -1
  57. package/lib/commands/dataset/list.js +1 -1
  58. package/lib/commands/dataset/operations.js +1 -1
  59. package/lib/commands/dataset/relation-create.js +1 -0
  60. package/lib/commands/dataset/relation-delete.js +1 -0
  61. package/lib/commands/dataset/relation-shared.js +1 -0
  62. package/lib/commands/dataset/relation-update.js +1 -0
  63. package/lib/commands/dataset/relations.js +1 -0
  64. package/lib/commands/dataset/rename.js +1 -1
  65. package/lib/commands/db/analyze-cancel.js +1 -1
  66. package/lib/commands/db/analyze-start.js +1 -1
  67. package/lib/commands/db/analyze-status.js +1 -1
  68. package/lib/commands/db/create.js +1 -1
  69. package/lib/commands/db/delete.js +1 -1
  70. package/lib/commands/db/detail.js +1 -1
  71. package/lib/commands/db/diff.js +1 -1
  72. package/lib/commands/db/index.js +1 -1
  73. package/lib/commands/db/list.js +1 -1
  74. package/lib/commands/db/shared.js +1 -1
  75. package/lib/commands/db/tables.js +1 -1
  76. package/lib/commands/db/test.js +1 -1
  77. package/lib/commands/db/update.js +1 -1
  78. package/lib/commands/doctor.js +1 -1
  79. package/lib/commands/init/index.js +1 -1
  80. package/lib/commands/issue/index.js +1 -1
  81. package/lib/commands/issue/nudge.js +1 -1
  82. package/lib/commands/issue/report.js +1 -1
  83. package/lib/commands/issue/shared.js +1 -1
  84. package/lib/commands/logs/index.js +1 -1
  85. package/lib/commands/menu/index.js +1 -1
  86. package/lib/commands/menu/shared/compare-table.js +1 -1
  87. package/lib/commands/menu/shared/index.js +1 -1
  88. package/lib/commands/menu/shared/inquirer.js +1 -1
  89. package/lib/commands/menu/shared/local-pages.js +1 -1
  90. package/lib/commands/menu/shared/logic.js +1 -1
  91. package/lib/commands/menu/shared/service.js +1 -1
  92. package/lib/commands/menu/shared/sync-core.js +1 -1
  93. package/lib/commands/menu/shared/update-core.js +1 -1
  94. package/lib/commands/menu/shared/valid-url.js +1 -1
  95. package/lib/commands/menu/sync.js +1 -1
  96. package/lib/commands/menu/update.js +1 -1
  97. package/lib/commands/page/generate-start.js +1 -1
  98. package/lib/commands/page/generate-status.js +1 -1
  99. package/lib/commands/page/index.js +1 -1
  100. package/lib/commands/page/pull.js +1 -1
  101. package/lib/commands/page/push.js +1 -1
  102. package/lib/commands/page/relation-audit.js +1 -0
  103. package/lib/commands/page/shared.js +1 -1
  104. package/lib/commands/page/standard-page-status.js +1 -1
  105. package/lib/commands/page/sync.js +1 -1
  106. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  107. package/lib/commands/project/create/format-elapsed.js +1 -1
  108. package/lib/commands/project/create/main.js +1 -1
  109. package/lib/commands/project/create/non-interactive.js +1 -1
  110. package/lib/commands/project/create/project-template-path.js +1 -1
  111. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  112. package/lib/commands/project/create/use-format-code.js +1 -1
  113. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  114. package/lib/commands/project/index.js +1 -1
  115. package/lib/commands/project/init.js +1 -1
  116. package/lib/commands/project/upgrade.js +1 -1
  117. package/lib/commands/registry.js +1 -1
  118. package/lib/commands/run/index.js +1 -1
  119. package/lib/commands/schema.js +1 -1
  120. package/lib/commands/skill/index.js +1 -1
  121. package/lib/commands/sql/create.js +1 -1
  122. package/lib/commands/sql/delete.js +1 -1
  123. package/lib/commands/sql/detail.js +1 -1
  124. package/lib/commands/sql/exec.js +1 -1
  125. package/lib/commands/sql/index.js +1 -1
  126. package/lib/commands/sql/list.js +1 -1
  127. package/lib/commands/sql/pull.js +1 -1
  128. package/lib/commands/sql/push.js +1 -1
  129. package/lib/commands/sql/save.js +1 -1
  130. package/lib/commands/sql/shared.js +1 -1
  131. package/lib/commands/sql/status.js +1 -1
  132. package/lib/commands/sql/validate.js +1 -1
  133. package/lib/config/schema.js +1 -1
  134. package/lib/constant/cdn.js +1 -1
  135. package/lib/constant/cli.js +1 -1
  136. package/lib/constant/defaults.js +1 -1
  137. package/lib/constant/domain.js +1 -1
  138. package/lib/constant/env.js +1 -1
  139. package/lib/constant/output.js +1 -1
  140. package/lib/constant/paths.js +1 -1
  141. package/lib/constant/risk.js +1 -1
  142. package/lib/context.js +1 -1
  143. package/lib/core/alias-resolver.js +1 -1
  144. package/lib/core/api-client.js +1 -1
  145. package/lib/core/bff/config.js +1 -1
  146. package/lib/core/bff/file-system.js +1 -1
  147. package/lib/core/bff/hash.js +1 -1
  148. package/lib/core/bff/lock.js +1 -1
  149. package/lib/core/bff/utils.js +1 -1
  150. package/lib/core/db-resolver.js +1 -1
  151. package/lib/core/page/file-system.js +1 -1
  152. package/lib/core/page/hash.js +1 -1
  153. package/lib/core/page/lock.js +1 -1
  154. package/lib/core/sql-sync/config.js +1 -1
  155. package/lib/core/sql-sync/file-system.js +1 -1
  156. package/lib/core/sql-sync/hash.js +1 -1
  157. package/lib/core/sql-sync/lock.js +1 -1
  158. package/lib/core/sql-sync/utils.js +1 -1
  159. package/lib/core/sql-validator.js +1 -1
  160. package/lib/errors.js +1 -1
  161. package/lib/framework/build-all-flags.js +1 -1
  162. package/lib/framework/flags.js +1 -1
  163. package/lib/framework/help.js +1 -1
  164. package/lib/framework/index.js +1 -1
  165. package/lib/framework/output.js +1 -1
  166. package/lib/framework/response.js +1 -1
  167. package/lib/framework/runner-alias.js +1 -1
  168. package/lib/framework/runner.js +1 -1
  169. package/lib/framework/schema-export.js +1 -1
  170. package/lib/framework/types.js +1 -1
  171. package/lib/generated/build-info.js +1 -1
  172. package/lib/help.js +1 -1
  173. package/lib/skills/main.js +1 -1
  174. package/lib/skills/npx-skills-add.js +1 -1
  175. package/lib/telemetry/cli-command-trace.js +1 -1
  176. package/lib/telemetry/cli-help-trace.js +1 -1
  177. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  178. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  179. package/lib/telemetry/send-cli-trace-log.js +1 -1
  180. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  181. package/lib/utils/ai_config.js +1 -1
  182. package/lib/utils/apply-jq-filter.js +1 -1
  183. package/lib/utils/cdn-config.js +1 -1
  184. package/lib/utils/check-sdk-version.js +1 -1
  185. package/lib/utils/cli-version-check.js +1 -1
  186. package/lib/utils/cli-version-policy.js +1 -1
  187. package/lib/utils/config.js +1 -1
  188. package/lib/utils/copy-directory.js +1 -1
  189. package/lib/utils/entity-with-id.js +1 -1
  190. package/lib/utils/file-utils.js +1 -1
  191. package/lib/utils/guides-cdn.js +1 -1
  192. package/lib/utils/http-client.js +1 -1
  193. package/lib/utils/is-non-interactive.js +1 -1
  194. package/lib/utils/logger.js +1 -1
  195. package/lib/utils/params.js +1 -1
  196. package/lib/utils/platform.js +1 -1
  197. package/lib/utils/rules-cdn.js +1 -1
  198. package/lib/utils/sleep.js +1 -1
  199. package/lib/utils/template-replacer.js +1 -1
  200. package/lib/utils/update-notice.js +1 -0
  201. package/lib/utils/version.js +1 -1
  202. package/lib/utils/with-active-cookie.js +1 -1
  203. package/lib/utils/write-cli-side-channel.js +1 -1
  204. package/package.json +1 -1
  205. package/lib/commands/dataset/link-create.js +0 -1
  206. package/lib/commands/dataset/link-delete.js +0 -1
  207. package/lib/commands/dataset/link-shared.js +0 -1
  208. package/lib/commands/dataset/link-update.js +0 -1
  209. package/lib/commands/dataset/links.js +0 -1
@@ -1 +1 @@
1
- const a119_0x43367d=a119_0x7565;(function(_0x51dbf2,_0x87626f){const _0x3344ab=a119_0x7565,_0x101230=_0x51dbf2();while(!![]){try{const _0x46ccf0=-parseInt(_0x3344ab(0x1ec))/0x1*(-parseInt(_0x3344ab(0x1eb))/0x2)+-parseInt(_0x3344ab(0x204))/0x3*(parseInt(_0x3344ab(0x1f7))/0x4)+-parseInt(_0x3344ab(0x201))/0x5*(parseInt(_0x3344ab(0x1e7))/0x6)+parseInt(_0x3344ab(0x1e9))/0x7*(parseInt(_0x3344ab(0x1ff))/0x8)+parseInt(_0x3344ab(0x1f8))/0x9+parseInt(_0x3344ab(0x1f3))/0xa*(parseInt(_0x3344ab(0x1f2))/0xb)+parseInt(_0x3344ab(0x1fa))/0xc;if(_0x46ccf0===_0x87626f)break;else _0x101230['push'](_0x101230['shift']());}catch(_0x35e28f){_0x101230['push'](_0x101230['shift']());}}}(a119_0x2790,0x9ef40));function a119_0x2790(){const _0x1c2f4e=['nonInteractive','setLogPath','skill-install','inherit','21670uqMQrm','5230nTkZaN','unknown','cwd','log','4JAglOz','307800whPEkd','../../skills/npx-skills-add.js','1125876FVXSzV','error','Install\x20developer\x20skill\x20package','\x20skill\x20installed','lovrabet/rabetbase','8HLSdoD','Check\x20network\x20connectivity\x20and\x20try\x20again.','2556585VuvxPy',')...','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','1307919utQyts','6SsPHpb','write','755237dCCarc','install','4678RpHsUD','142WGbrzM','info'];a119_0x2790=function(){return _0x1c2f4e;};return a119_0x2790();}function a119_0x7565(_0x2fad4a,_0x41f0cc){_0x2fad4a=_0x2fad4a-0x1e7;const _0x279092=a119_0x2790();let _0x75650f=_0x279092[_0x2fad4a];return _0x75650f;}import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';import{logger}from'../../utils/logger.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':'skill','command':a119_0x43367d(0x1ea),'description':a119_0x43367d(0x1fc),'risk':a119_0x43367d(0x1e8),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x1f2fcd){const _0x8160cb=a119_0x43367d;logger[_0x8160cb(0x1ef)](process['cwd']()),logger[_0x8160cb(0x1ed)](_0x8160cb(0x1f0),'执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)');const {runNpxSkillsAddGlobal:_0x18f3e4}=await import(_0x8160cb(0x1f9)),_0x4b342a=_0x1f2fcd[_0x8160cb(0x1ee)]?'pipe':_0x8160cb(0x1f1);console['log']('Installing\x20official\x20skill\x20via\x20npx\x20('+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+_0x8160cb(0x202));const _0x20ea21=_0x18f3e4(process[_0x8160cb(0x1f5)](),_0x8160cb(0x1fe),{'stdio':_0x4b342a});if(_0x20ea21['skipped'])console['log'](_0x8160cb(0x203));else{if(_0x20ea21['ok'])console[_0x8160cb(0x1f6)](CLI_BIN_NAME+_0x8160cb(0x1fd));else throw CliErrors['apiError']('npx\x20skills\x20add\x20failed:\x20'+(_0x20ea21[_0x8160cb(0x1fb)]||_0x8160cb(0x1f4)),_0x8160cb(0x200));}return{'ok':!![]};}}];
1
+ function a120_0x3bbb(_0x1c22d9,_0x1ad292){_0x1c22d9=_0x1c22d9-0xd2;const _0x3b7db1=a120_0x3b7d();let _0x3bbb34=_0x3b7db1[_0x1c22d9];return _0x3bbb34;}const a120_0x57cd38=a120_0x3bbb;(function(_0x507f10,_0x5d6b5c){const _0x21af1f=a120_0x3bbb,_0x13b712=_0x507f10();while(!![]){try{const _0x42e91f=parseInt(_0x21af1f(0xec))/0x1*(parseInt(_0x21af1f(0xd6))/0x2)+-parseInt(_0x21af1f(0xde))/0x3+parseInt(_0x21af1f(0xd7))/0x4+-parseInt(_0x21af1f(0xdb))/0x5*(parseInt(_0x21af1f(0xdc))/0x6)+-parseInt(_0x21af1f(0xdd))/0x7+parseInt(_0x21af1f(0xd5))/0x8+-parseInt(_0x21af1f(0xea))/0x9;if(_0x42e91f===_0x5d6b5c)break;else _0x13b712['push'](_0x13b712['shift']());}catch(_0x4ec205){_0x13b712['push'](_0x13b712['shift']());}}}(a120_0x3b7d,0xa3298));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a120_0x3b7d(){const _0x4e296c=['skipped','log','10970397MRolQZ','apiError','186265VZGJGe','info','write','Installing\x20official\x20skill\x20via\x20npx\x20(','nonInteractive','install','10188360TVyjjz','2ipRMow','4511080Pojdke','cwd','skill','Install\x20developer\x20skill\x20package','15QrXUqK','311214sirmoh','1648556wARovY','927660TznjMT','lovrabet/rabetbase','npx\x20skills\x20add\x20failed:\x20','setLogPath','Check\x20network\x20connectivity\x20and\x20try\x20again.','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','unknown','skill-install','执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)','\x20skill\x20installed'];a120_0x3b7d=function(){return _0x4e296c;};return a120_0x3b7d();}import{logger}from'../../utils/logger.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':a120_0x57cd38(0xd9),'command':a120_0x57cd38(0xd4),'description':a120_0x57cd38(0xda),'risk':a120_0x57cd38(0xee),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x4d24ef){const _0x2638e4=a120_0x57cd38;logger[_0x2638e4(0xe1)](process[_0x2638e4(0xd8)]()),logger[_0x2638e4(0xed)](_0x2638e4(0xe5),_0x2638e4(0xe6));const {runNpxSkillsAddGlobal:_0x5e1aea}=await import('../../skills/npx-skills-add.js'),_0x238765=_0x4d24ef[_0x2638e4(0xd3)]?'pipe':'inherit';console[_0x2638e4(0xe9)](_0x2638e4(0xd2)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+')...');const _0x454687=_0x5e1aea(process[_0x2638e4(0xd8)](),_0x2638e4(0xdf),{'stdio':_0x238765});if(_0x454687[_0x2638e4(0xe8)])console[_0x2638e4(0xe9)](_0x2638e4(0xe3));else{if(_0x454687['ok'])console[_0x2638e4(0xe9)](CLI_BIN_NAME+_0x2638e4(0xe7));else throw CliErrors[_0x2638e4(0xeb)](_0x2638e4(0xe0)+(_0x454687['error']||_0x2638e4(0xe4)),_0x2638e4(0xe2));}return{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a120_0x5d801a=a120_0x45bb;function a120_0x45bb(_0x1544fe,_0x238ff3){_0x1544fe=_0x1544fe-0xfe;const _0x3e3f3f=a120_0x3e3f();let _0x45bbc8=_0x3e3f3f[_0x1544fe];return _0x45bbc8;}(function(_0x52eb76,_0x1c9289){const _0x34d308=a120_0x45bb,_0x5b5b0d=_0x52eb76();while(!![]){try{const _0x1875a4=-parseInt(_0x34d308(0x138))/0x1*(-parseInt(_0x34d308(0x129))/0x2)+-parseInt(_0x34d308(0x105))/0x3*(parseInt(_0x34d308(0x130))/0x4)+parseInt(_0x34d308(0x104))/0x5*(-parseInt(_0x34d308(0x146))/0x6)+-parseInt(_0x34d308(0x134))/0x7*(-parseInt(_0x34d308(0x10e))/0x8)+-parseInt(_0x34d308(0x11a))/0x9*(parseInt(_0x34d308(0x121))/0xa)+parseInt(_0x34d308(0x128))/0xb*(parseInt(_0x34d308(0x10c))/0xc)+parseInt(_0x34d308(0x102))/0xd*(-parseInt(_0x34d308(0xfe))/0xe);if(_0x1875a4===_0x1c9289)break;else _0x5b5b0d['push'](_0x5b5b0d['shift']());}catch(_0x43e3b7){_0x5b5b0d['push'](_0x5b5b0d['shift']());}}}(a120_0x3e3f,0xd40e9));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(_0x1a560c){const _0x3f3f0f=a120_0x45bb;if(_0x1a560c===_0x3f3f0f(0x103))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x3f3f0f(0x127),_0x3f3f0f(0x122),''][_0x3f3f0f(0x13e)]('\x0a');return[_0x3f3f0f(0x10b),''][_0x3f3f0f(0x13e)]('\x0a');}export const sqlCreate={'service':a120_0x5d801a(0x12a),'command':a120_0x5d801a(0x13d),'description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':'high-risk-write','flags':[{'name':'name','type':a120_0x5d801a(0x135),'description':'SQL\x20query\x20display\x20name'},{'name':a120_0x5d801a(0x12e),'type':'number','description':a120_0x5d801a(0x12d)},{'name':a120_0x5d801a(0xff),'type':a120_0x5d801a(0x135),'enum':[a120_0x5d801a(0x12a),a120_0x5d801a(0x103)],'description':a120_0x5d801a(0x109)}],async 'validate'(_0x1eeb69){const _0x78bbdc=a120_0x5d801a;if(!_0x1eeb69[_0x78bbdc(0x124)])return;if(!_0x1eeb69[_0x78bbdc(0x113)]('name')[_0x78bbdc(0x111)]())throw CliErrors[_0x78bbdc(0x116)](_0x78bbdc(0x118),_0x78bbdc(0x123));const _0x496cfb=resolveProvidedDbId(_0x1eeb69);if(typeof _0x496cfb!==_0x78bbdc(0x13b)||!Number['isFinite'](_0x496cfb)||_0x496cfb<=0x0)throw CliErrors[_0x78bbdc(0x116)](_0x78bbdc(0x12e),_0x78bbdc(0x137));if(!_0x1eeb69[_0x78bbdc(0x113)](_0x78bbdc(0xff))[_0x78bbdc(0x111)]())throw CliErrors[_0x78bbdc(0x116)](_0x78bbdc(0xff),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x4f07ac){const _0x53b334=a120_0x5d801a,_0xb8fb9d=loadSqlProjectConfig(_0x4f07ac[_0x53b334(0x140)]),{sqlName:_0x4f90ac,dbId:_0x5b9315,dbName:_0x576530,mode:_0x2b6840}=await resolveSqlNewInputs(_0x4f07ac),_0x2f9663=buildSqlRelativePath(_0x53b334(0x100),_0x4f90ac,_0x576530,_0x2b6840,_0x5b9315),_0x323412=_0xb8fb9d[_0x53b334(0x106)]+'/'+_0x2f9663;return{'method':'POST','url':_0x53b334(0x13c),'body':{'appCode':_0x4f07ac[_0x53b334(0x140)],'sqlName':_0x4f90ac,'dbId':_0x5b9315,'mode':_0x2b6840,'localPath':_0x323412},'description':_0x53b334(0x117)+_0xb8fb9d[_0x53b334(0x106)]};},async 'execute'(_0x596f6e){const _0x47a565=a120_0x5d801a,_0x4807fe=loadSqlProjectConfig(_0x596f6e[_0x47a565(0x140)]),{sqlName:_0x4b4c79,dbId:_0x2ae7a1,dbName:_0x6eb39,mode:_0x3ec77d}=await resolveSqlNewInputs(_0x596f6e),_0x2129bd=generateSqlTemplate(_0x3ec77d),_0x22d77e=await createSqlQuery({'appCode':_0x596f6e[_0x47a565(0x140)],'sqlName':_0x4b4c79,'dbId':_0x2ae7a1,'sqlContent':_0x2129bd}),_0x18c09d=ensureRemoteSqlContent(_0x22d77e),_0xf61889=_0x6eb39||await getDbName(_0x596f6e[_0x47a565(0x140)],_0x2ae7a1)[_0x47a565(0x10f)](()=>undefined),_0x1d2d84=buildSqlRelativePath(_0x22d77e[_0x47a565(0x110)],_0x22d77e[_0x47a565(0x115)],_0xf61889,_0x3ec77d,_0x2ae7a1),_0x11e250=_0x4807fe[_0x47a565(0x106)]+'/'+_0x1d2d84,_0x42f781=buildLocalSqlFileContent({'sqlCode':_0x22d77e[_0x47a565(0x110)],'sqlName':_0x22d77e[_0x47a565(0x115)],'dbId':_0x22d77e[_0x47a565(0x114)]},_0x18c09d,{'dbName':_0xf61889,'mode':_0x3ec77d,'syncedAt':new Date()[_0x47a565(0x133)](),'description':_0x22d77e[_0x47a565(0x131)]});if(await fileExists(_0x11e250))throw CliErrors[_0x47a565(0x136)](_0x47a565(0x11b)+_0x11e250);await ensureParentDirectory(_0x11e250),await writeFile(_0x11e250,_0x42f781,_0x47a565(0x11f));const _0x515f7e=await readSqlLockFile(_0x4807fe[_0x47a565(0x142)]),{lockData:_0x2fc8fe,appLock:_0x7e7735}=ensureSqlLockScope(_0x515f7e??createEmptySqlLock(),_0x4807fe[_0x47a565(0x140)],_0x4807fe['sqlRoot'],_0x47a565(0x12f));return _0x7e7735[_0x47a565(0x10a)][_0x22d77e[_0x47a565(0x110)]]={...buildSqlLockEntry(_0x22d77e,_0x18c09d,computeSqlContentHash(_0x42f781),{'dbName':_0xf61889}),'path':_0x1d2d84,'mode':_0x3ec77d},_0x7e7735[_0x47a565(0x101)]=new Date()[_0x47a565(0x133)](),await writeSqlLockFile(_0x4807fe[_0x47a565(0x142)],_0x2fc8fe),{'ok':!![],'data':{'id':_0x22d77e['id'],'sqlCode':_0x22d77e[_0x47a565(0x110)],'sqlName':_0x22d77e[_0x47a565(0x115)],'dbId':_0x22d77e[_0x47a565(0x114)],'path':_0x11e250,'mode':_0x3ec77d},'message':_0x47a565(0x143)+_0x22d77e[_0x47a565(0x110)]};}};async function resolveSqlNewInputs(_0x3573f1){const _0x5cbfbc=await resolveSqlNameInput(_0x3573f1),{dbId:_0x535eb5,dbName:_0x122305}=await resolveDbSelection(_0x3573f1),_0x26997b=await resolveSqlModeInput(_0x3573f1);return{'sqlName':_0x5cbfbc,'dbId':_0x535eb5,'dbName':_0x122305,'mode':_0x26997b};}function a120_0x3e3f(){const _0x305411=['请输入目标数据库\x20dbId:','普通\x20SQL(sql)','utf8','__manual__','90zEojQo','</select>','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','nonInteractive','请输入\x20SQL\x20名称:','SQL\x20名称不能为空','\x20\x20SELECT\x201\x20AS\x20id','1012ZNqkGd','38xyisPk','sql','dbId\x20必须为正整数','dbId\x20不能为空','Target\x20database\x20ID','db-id','new','8784uoxhvk','description','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','toISOString','1799LTvWcq','string','validation','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','39049VNNDna','Invalid\x20database\x20selection\x20payload:\x20','请选择本地\x20SQL\x20模式:','number','/smartapi/custom/saveUserCustomSql','create','join','isInteger','appCode','length','lockFilePath','Created\x20SQL\x20query\x20','dbName','请选择目标数据库:','3552gnNvMe','16040794BiDCKD','mode','<server-generated-sqlCode>','lastSync','13ENzLwq','mybatisXml','4895uRmTMX','1104AVPvKD','sqlRootDir','✎\x20手动输入\x20dbId','parse','Local\x20SQL\x20file\x20mode','sqls','SELECT\x201\x20AS\x20id;','222024LNkqJI','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','36856qtnRFn','catch','sqlCode','trim','isFinite','str','dbId','sqlName','flagMissing','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','name','MyBatis\x20XML(mybatisXml)','226062buTWsI','File\x20already\x20exists:\x20','适合带动态标签的\x20MyBatis\x20XML\x20SQL'];a120_0x3e3f=function(){return _0x305411;};return a120_0x3e3f();}async function resolveSqlNameInput(_0x22e8fe){const _0x5d4378=a120_0x5d801a,_0x333e3b=_0x22e8fe[_0x5d4378(0x113)](_0x5d4378(0x118))[_0x5d4378(0x111)]();if(_0x333e3b)return _0x333e3b;if(_0x22e8fe[_0x5d4378(0x124)])throw CliErrors['flagMissing'](_0x5d4378(0x118),_0x5d4378(0x123));return(await input({'message':_0x5d4378(0x125),'validate':_0x22ad2f=>_0x22ad2f[_0x5d4378(0x111)]()?!![]:_0x5d4378(0x126)}))[_0x5d4378(0x111)]();}async function resolveDbSelection(_0x10424d){const _0x11b3e4=a120_0x5d801a,_0x41b60b=resolveProvidedDbId(_0x10424d);if(typeof _0x41b60b===_0x11b3e4(0x13b)&&Number[_0x11b3e4(0x112)](_0x41b60b)&&_0x41b60b>0x0)return{'dbId':_0x41b60b,'dbName':await getDbName(_0x10424d[_0x11b3e4(0x140)],_0x41b60b)['catch'](()=>undefined)};if(_0x10424d['nonInteractive'])throw CliErrors[_0x11b3e4(0x116)](_0x11b3e4(0x12e),_0x11b3e4(0x137));const _0xc7a57e=await listDatabases(_0x10424d['appCode'])[_0x11b3e4(0x10f)](()=>[]);if(_0xc7a57e['length']===0x1)return{'dbId':_0xc7a57e[0x0][_0x11b3e4(0x114)],'dbName':_0xc7a57e[0x0][_0x11b3e4(0x144)]};if(_0xc7a57e[_0x11b3e4(0x141)]>0x1){const _0x509b56=await select({'message':_0x11b3e4(0x145),'choices':[..._0xc7a57e['map'](_0x4f0b17=>({'name':_0x4f0b17[_0x11b3e4(0x144)]+'\x20('+_0x4f0b17[_0x11b3e4(0x114)]+')','value':serializeDbSelection(_0x4f0b17)})),{'name':_0x11b3e4(0x107),'value':_0x11b3e4(0x120)}]});if(_0x509b56!==_0x11b3e4(0x120))return deserializeDbSelection(_0x509b56);}const _0x4ff771=await input({'message':_0x11b3e4(0x11d),'validate':_0x3e5437=>{const _0x1de4ed=_0x11b3e4,_0xab486e=_0x3e5437[_0x1de4ed(0x111)]();if(!_0xab486e)return _0x1de4ed(0x12c);const _0x54f7a0=Number(_0xab486e);if(!Number[_0x1de4ed(0x13f)](_0x54f7a0)||_0x54f7a0<=0x0)return _0x1de4ed(0x12b);return!![];}});return{'dbId':Number(_0x4ff771['trim']())};}async function resolveSqlModeInput(_0x5644ca){const _0x4c55e3=a120_0x5d801a,_0x14c262=_0x5644ca['str'](_0x4c55e3(0xff))['trim']();if(_0x14c262===_0x4c55e3(0x12a)||_0x14c262===_0x4c55e3(0x103))return _0x14c262;if(_0x5644ca[_0x4c55e3(0x124)])throw CliErrors[_0x4c55e3(0x116)](_0x4c55e3(0xff),_0x4c55e3(0x132));return await select({'message':_0x4c55e3(0x13a),'choices':[{'name':_0x4c55e3(0x11e),'value':'sql','description':_0x4c55e3(0x10d)},{'name':_0x4c55e3(0x119),'value':_0x4c55e3(0x103),'description':_0x4c55e3(0x11c)}]});}function serializeDbSelection(_0xbdf4d6){const _0x542909=a120_0x5d801a;return JSON['stringify']({'dbId':_0xbdf4d6[_0x542909(0x114)],'dbName':_0xbdf4d6[_0x542909(0x144)]});}function deserializeDbSelection(_0x18eb18){const _0x3cd24a=a120_0x5d801a;try{const _0x28181f=JSON[_0x3cd24a(0x108)](_0x18eb18);if(typeof _0x28181f[_0x3cd24a(0x114)]===_0x3cd24a(0x13b)&&Number[_0x3cd24a(0x112)](_0x28181f[_0x3cd24a(0x114)]))return{'dbId':_0x28181f[_0x3cd24a(0x114)],'dbName':_0x28181f[_0x3cd24a(0x144)]};}catch{}throw CliErrors[_0x3cd24a(0x136)](_0x3cd24a(0x139)+_0x18eb18);}function resolveProvidedDbId(_0x12f12e){const _0x3a159a=a120_0x5d801a,_0x300c32=_0x12f12e['flag']('db-id');if(typeof _0x300c32===_0x3a159a(0x13b)&&Number['isFinite'](_0x300c32))return _0x300c32;return undefined;}
1
+ const a121_0x574df9=a121_0x4c4d;(function(_0x44f5f2,_0x5e3712){const _0x74f01f=a121_0x4c4d,_0x875ad=_0x44f5f2();while(!![]){try{const _0x2a91ae=parseInt(_0x74f01f(0x203))/0x1*(-parseInt(_0x74f01f(0x1f1))/0x2)+parseInt(_0x74f01f(0x1fa))/0x3+-parseInt(_0x74f01f(0x206))/0x4*(-parseInt(_0x74f01f(0x22b))/0x5)+parseInt(_0x74f01f(0x1f0))/0x6+-parseInt(_0x74f01f(0x20e))/0x7*(-parseInt(_0x74f01f(0x216))/0x8)+-parseInt(_0x74f01f(0x228))/0x9+-parseInt(_0x74f01f(0x1ec))/0xa;if(_0x2a91ae===_0x5e3712)break;else _0x875ad['push'](_0x875ad['shift']());}catch(_0x66cc40){_0x875ad['push'](_0x875ad['shift']());}}}(a121_0xd4f3,0x7ca88));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(_0x2bb077){const _0x583cc2=a121_0x4c4d;if(_0x2bb077==='mybatisXml')return[_0x583cc2(0x1ee),_0x583cc2(0x210),_0x583cc2(0x220),''][_0x583cc2(0x226)]('\x0a');return[_0x583cc2(0x1f4),''][_0x583cc2(0x226)]('\x0a');}export const sqlCreate={'service':'sql','command':a121_0x574df9(0x214),'description':a121_0x574df9(0x1f5),'risk':a121_0x574df9(0x1f3),'flags':[{'name':a121_0x574df9(0x200),'type':'string','description':a121_0x574df9(0x217)},{'name':a121_0x574df9(0x1ea),'type':a121_0x574df9(0x211),'description':a121_0x574df9(0x21b)},{'name':a121_0x574df9(0x1fc),'type':a121_0x574df9(0x218),'enum':['sql',a121_0x574df9(0x1f9)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x260bb3){const _0x396cd1=a121_0x574df9;if(!_0x260bb3[_0x396cd1(0x1eb)])return;if(!_0x260bb3[_0x396cd1(0x224)]('name')[_0x396cd1(0x1e8)]())throw CliErrors[_0x396cd1(0x21c)](_0x396cd1(0x200),_0x396cd1(0x20f));const _0x450fc5=resolveProvidedDbId(_0x260bb3);if(typeof _0x450fc5!==_0x396cd1(0x211)||!Number[_0x396cd1(0x20a)](_0x450fc5)||_0x450fc5<=0x0)throw CliErrors[_0x396cd1(0x21c)](_0x396cd1(0x1ea),_0x396cd1(0x21d));if(!_0x260bb3[_0x396cd1(0x224)](_0x396cd1(0x1fc))['trim']())throw CliErrors[_0x396cd1(0x21c)](_0x396cd1(0x1fc),_0x396cd1(0x21a));},async 'dryRun'(_0x453b3d){const _0x28c94f=a121_0x574df9,_0x131553=loadSqlProjectConfig(_0x453b3d['appCode']),{sqlName:_0x1db35e,dbId:_0x5096f8,dbName:_0x47e01a,mode:_0x1de5b0}=await resolveSqlNewInputs(_0x453b3d),_0x596fc3=buildSqlRelativePath(_0x28c94f(0x1fb),_0x1db35e,_0x47e01a,_0x1de5b0,_0x5096f8),_0x61ebc2=_0x131553[_0x28c94f(0x20c)]+'/'+_0x596fc3;return{'method':'POST','url':_0x28c94f(0x204),'body':{'appCode':_0x453b3d['appCode'],'sqlName':_0x1db35e,'dbId':_0x5096f8,'mode':_0x1de5b0,'localPath':_0x61ebc2},'description':_0x28c94f(0x1f8)+_0x131553['sqlRootDir']};},async 'execute'(_0x3df61e){const _0x230fa9=a121_0x574df9,_0x5dc875=loadSqlProjectConfig(_0x3df61e['appCode']),{sqlName:_0x142008,dbId:_0x5b45fc,dbName:_0x55b2ec,mode:_0x28eb0b}=await resolveSqlNewInputs(_0x3df61e),_0x412d18=generateSqlTemplate(_0x28eb0b),_0x344c76=await createSqlQuery({'appCode':_0x3df61e[_0x230fa9(0x1f2)],'sqlName':_0x142008,'dbId':_0x5b45fc,'sqlContent':_0x412d18}),_0x4b93da=ensureRemoteSqlContent(_0x344c76),_0x4cb8c4=_0x55b2ec||await getDbName(_0x3df61e[_0x230fa9(0x1f2)],_0x5b45fc)[_0x230fa9(0x20d)](()=>undefined),_0x1d4e8c=buildSqlRelativePath(_0x344c76[_0x230fa9(0x219)],_0x344c76[_0x230fa9(0x213)],_0x4cb8c4,_0x28eb0b,_0x5b45fc),_0x38a3a5=_0x5dc875['sqlRootDir']+'/'+_0x1d4e8c,_0x17a8fe=buildLocalSqlFileContent({'sqlCode':_0x344c76[_0x230fa9(0x219)],'sqlName':_0x344c76[_0x230fa9(0x213)],'dbId':_0x344c76[_0x230fa9(0x1e7)]},_0x4b93da,{'dbName':_0x4cb8c4,'mode':_0x28eb0b,'syncedAt':new Date()[_0x230fa9(0x205)](),'description':_0x344c76['description']});if(await fileExists(_0x38a3a5))throw CliErrors[_0x230fa9(0x222)](_0x230fa9(0x21e)+_0x38a3a5);await ensureParentDirectory(_0x38a3a5),await writeFile(_0x38a3a5,_0x17a8fe,_0x230fa9(0x1f7));const _0x247a8d=await readSqlLockFile(_0x5dc875[_0x230fa9(0x225)]),{lockData:_0x850e58,appLock:_0x516535}=ensureSqlLockScope(_0x247a8d??createEmptySqlLock(),_0x5dc875[_0x230fa9(0x1f2)],_0x5dc875[_0x230fa9(0x1ef)],_0x230fa9(0x229));return _0x516535['sqls'][_0x344c76[_0x230fa9(0x219)]]={...buildSqlLockEntry(_0x344c76,_0x4b93da,computeSqlContentHash(_0x17a8fe),{'dbName':_0x4cb8c4}),'path':_0x1d4e8c,'mode':_0x28eb0b},_0x516535[_0x230fa9(0x202)]=new Date()[_0x230fa9(0x205)](),await writeSqlLockFile(_0x5dc875[_0x230fa9(0x225)],_0x850e58),{'ok':!![],'data':{'id':_0x344c76['id'],'sqlCode':_0x344c76[_0x230fa9(0x219)],'sqlName':_0x344c76['sqlName'],'dbId':_0x344c76[_0x230fa9(0x1e7)],'path':_0x38a3a5,'mode':_0x28eb0b},'message':_0x230fa9(0x1ff)+_0x344c76[_0x230fa9(0x219)]};}};function a121_0xd4f3(){const _0x505060=['sql','str','lockFilePath','join','map','8059959awDiol','new','dbName','15rtTxXQ','dbId','trim','isInteger','db-id','nonInteractive','14757650xNVdKI','dbId\x20必须为正整数','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','sqlRoot','4555032jiZitM','482PxQRCt','appCode','high-risk-write','SELECT\x201\x20AS\x20id;','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','Invalid\x20database\x20selection\x20payload:\x20','utf8','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','mybatisXml','2477925fHSkRe','<server-generated-sqlCode>','mode','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','普通\x20SQL(sql)','Created\x20SQL\x20query\x20','name','length','lastSync','625xWbSoE','/smartapi/custom/saveUserCustomSql','toISOString','800692UyREgg','flag','stringify','请选择目标数据库:','isFinite','请选择本地\x20SQL\x20模式:','sqlRootDir','catch','4375ekFAFe','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','\x20\x20SELECT\x201\x20AS\x20id','number','parse','sqlName','create','MyBatis\x20XML(mybatisXml)','10840RpMhKS','SQL\x20query\x20display\x20name','string','sqlCode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','Target\x20database\x20ID','flagMissing','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','File\x20already\x20exists:\x20','请输入\x20SQL\x20名称:','</select>','__manual__','validation'];a121_0xd4f3=function(){return _0x505060;};return a121_0xd4f3();}async function resolveSqlNewInputs(_0x1998c7){const _0x3900d2=await resolveSqlNameInput(_0x1998c7),{dbId:_0xf7553a,dbName:_0x3a3747}=await resolveDbSelection(_0x1998c7),_0x24eec7=await resolveSqlModeInput(_0x1998c7);return{'sqlName':_0x3900d2,'dbId':_0xf7553a,'dbName':_0x3a3747,'mode':_0x24eec7};}async function resolveSqlNameInput(_0x4fbbdf){const _0x1b78fe=a121_0x574df9,_0x2b2120=_0x4fbbdf['str'](_0x1b78fe(0x200))['trim']();if(_0x2b2120)return _0x2b2120;if(_0x4fbbdf[_0x1b78fe(0x1eb)])throw CliErrors[_0x1b78fe(0x21c)](_0x1b78fe(0x200),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x1b78fe(0x21f),'validate':_0x3e1f78=>_0x3e1f78[_0x1b78fe(0x1e8)]()?!![]:'SQL\x20名称不能为空'}))[_0x1b78fe(0x1e8)]();}async function resolveDbSelection(_0x35e0c7){const _0x32fff1=a121_0x574df9,_0x388151=resolveProvidedDbId(_0x35e0c7);if(typeof _0x388151===_0x32fff1(0x211)&&Number['isFinite'](_0x388151)&&_0x388151>0x0)return{'dbId':_0x388151,'dbName':await getDbName(_0x35e0c7[_0x32fff1(0x1f2)],_0x388151)[_0x32fff1(0x20d)](()=>undefined)};if(_0x35e0c7['nonInteractive'])throw CliErrors['flagMissing'](_0x32fff1(0x1ea),_0x32fff1(0x21d));const _0x4423cc=await listDatabases(_0x35e0c7[_0x32fff1(0x1f2)])[_0x32fff1(0x20d)](()=>[]);if(_0x4423cc[_0x32fff1(0x201)]===0x1)return{'dbId':_0x4423cc[0x0][_0x32fff1(0x1e7)],'dbName':_0x4423cc[0x0]['dbName']};if(_0x4423cc['length']>0x1){const _0x5f050e=await select({'message':_0x32fff1(0x209),'choices':[..._0x4423cc[_0x32fff1(0x227)](_0x7c665f=>({'name':_0x7c665f[_0x32fff1(0x22a)]+'\x20('+_0x7c665f[_0x32fff1(0x1e7)]+')','value':serializeDbSelection(_0x7c665f)})),{'name':'✎\x20手动输入\x20dbId','value':_0x32fff1(0x221)}]});if(_0x5f050e!=='__manual__')return deserializeDbSelection(_0x5f050e);}const _0x1d3a23=await input({'message':'请输入目标数据库\x20dbId:','validate':_0x5473e1=>{const _0x43db67=_0x32fff1,_0x338a44=_0x5473e1['trim']();if(!_0x338a44)return'dbId\x20不能为空';const _0x32863c=Number(_0x338a44);if(!Number[_0x43db67(0x1e9)](_0x32863c)||_0x32863c<=0x0)return _0x43db67(0x1ed);return!![];}});return{'dbId':Number(_0x1d3a23[_0x32fff1(0x1e8)]())};}async function resolveSqlModeInput(_0x15e949){const _0x350b3f=a121_0x574df9,_0x2f5a4f=_0x15e949[_0x350b3f(0x224)](_0x350b3f(0x1fc))['trim']();if(_0x2f5a4f===_0x350b3f(0x223)||_0x2f5a4f===_0x350b3f(0x1f9))return _0x2f5a4f;if(_0x15e949[_0x350b3f(0x1eb)])throw CliErrors[_0x350b3f(0x21c)](_0x350b3f(0x1fc),_0x350b3f(0x21a));return await select({'message':_0x350b3f(0x20b),'choices':[{'name':_0x350b3f(0x1fe),'value':_0x350b3f(0x223),'description':_0x350b3f(0x1fd)},{'name':_0x350b3f(0x215),'value':_0x350b3f(0x1f9),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function a121_0x4c4d(_0x32da65,_0x5bf592){_0x32da65=_0x32da65-0x1e7;const _0xd4f3f2=a121_0xd4f3();let _0x4c4deb=_0xd4f3f2[_0x32da65];return _0x4c4deb;}function serializeDbSelection(_0x53d0be){const _0x3e3bbe=a121_0x574df9;return JSON[_0x3e3bbe(0x208)]({'dbId':_0x53d0be[_0x3e3bbe(0x1e7)],'dbName':_0x53d0be[_0x3e3bbe(0x22a)]});}function deserializeDbSelection(_0xcb6955){const _0x2ce8ca=a121_0x574df9;try{const _0x1f4984=JSON[_0x2ce8ca(0x212)](_0xcb6955);if(typeof _0x1f4984[_0x2ce8ca(0x1e7)]===_0x2ce8ca(0x211)&&Number['isFinite'](_0x1f4984['dbId']))return{'dbId':_0x1f4984[_0x2ce8ca(0x1e7)],'dbName':_0x1f4984[_0x2ce8ca(0x22a)]};}catch{}throw CliErrors[_0x2ce8ca(0x222)](_0x2ce8ca(0x1f6)+_0xcb6955);}function resolveProvidedDbId(_0x46bd93){const _0xaa2654=a121_0x574df9,_0x5b2016=_0x46bd93[_0xaa2654(0x207)](_0xaa2654(0x1ea));if(typeof _0x5b2016===_0xaa2654(0x211)&&Number[_0xaa2654(0x20a)](_0x5b2016))return _0x5b2016;return undefined;}
@@ -1 +1 @@
1
- const a121_0x3fe64a=a121_0x3ffc;(function(_0x68f9bc,_0x5bf3dc){const _0x571e37=a121_0x3ffc,_0xdd19ab=_0x68f9bc();while(!![]){try{const _0x3cad1a=-parseInt(_0x571e37(0xac))/0x1+parseInt(_0x571e37(0xa9))/0x2*(-parseInt(_0x571e37(0xb1))/0x3)+parseInt(_0x571e37(0xb7))/0x4+-parseInt(_0x571e37(0xc4))/0x5+-parseInt(_0x571e37(0xa0))/0x6+-parseInt(_0x571e37(0xc2))/0x7*(parseInt(_0x571e37(0xbc))/0x8)+parseInt(_0x571e37(0xbb))/0x9*(parseInt(_0x571e37(0xbe))/0xa);if(_0x3cad1a===_0x5bf3dc)break;else _0xdd19ab['push'](_0xdd19ab['shift']());}catch(_0x273ea7){_0xdd19ab['push'](_0xdd19ab['shift']());}}}(a121_0x19f2,0x37358));function a121_0x19f2(){const _0x36692d=['360792uiVwyE','remoteId','SQL\x20lock\x20file\x20not\x20found.','Deleted\x20','sqlRoot','projectRoot','delete','startsWith','sqlRootDir','60646cWfmKw','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','Would\x20delete\x20SQL\x20','134438chXnHo','sql','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','filter','POST','15lTSbsG','validation','trashedTo','entries','fromEntries','toISOString','1803872Feixmn','sqls','lastSync','replace','23445pmOubw','136sAYZfP','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','2690uFLoLs','str','trashDir','appCode','115731cOelyG','sqlcode','1491655rYoXzK','lockFilePath'];a121_0x19f2=function(){return _0x36692d;};return a121_0x19f2();}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a121_0x3ffc(_0x37d1c7,_0x4131fd){_0x37d1c7=_0x37d1c7-0xa0;const _0x19f25f=a121_0x19f2();let _0x3ffc0f=_0x19f25f[_0x37d1c7];return _0x3ffc0f;}export const sqlDelete={'service':a121_0x3fe64a(0xad),'command':'delete','description':a121_0x3fe64a(0xaa),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x237009){const _0x20e335=a121_0x3fe64a,_0x2927c8=loadSqlProjectConfig(_0x237009[_0x20e335(0xc1)]),_0x236962=await readSqlLockFile(_0x2927c8[_0x20e335(0xc5)]);if(!_0x236962)throw CliErrors[_0x20e335(0xb2)](_0x20e335(0xae));},async 'dryRun'(_0x36c72b){const _0x456204=a121_0x3fe64a,_0x1eca76=loadSqlProjectConfig(_0x36c72b['appCode']),_0x54f76b=await readSqlLockFile(_0x1eca76[_0x456204(0xc5)]);if(!_0x54f76b)throw CliErrors[_0x456204(0xb2)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x2ed61f}=ensureSqlLockScope(_0x54f76b,_0x36c72b[_0x456204(0xc1)],_0x1eca76[_0x456204(0xa4)],_0x456204(0xa6)),_0x3932fa=_0x36c72b[_0x456204(0xbf)]('sqlcode'),_0x3da15e=_0x2ed61f[_0x456204(0xb8)][_0x3932fa];if(!_0x3da15e)throw CliErrors[_0x456204(0xb2)](_0x456204(0xbd)+_0x3932fa+'\x22.');return{'method':_0x456204(0xb0),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x3932fa,'id':_0x3da15e[_0x456204(0xa1)],'localPath':resolveLocalSqlFilePath(_0x1eca76,_0x3932fa,_0x3da15e)},'description':_0x456204(0xab)+_0x3932fa+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x1eca76['trashDir']};},async 'execute'(_0x2afb8e){const _0x30858e=a121_0x3fe64a,_0x2eead3=loadSqlProjectConfig(_0x2afb8e[_0x30858e(0xc1)]),_0x6febda=await readSqlLockFile(_0x2eead3[_0x30858e(0xc5)]);if(!_0x6febda)throw CliErrors[_0x30858e(0xb2)](_0x30858e(0xa2));const {lockData:_0x45634c,appLock:_0x3e7f79}=ensureSqlLockScope(_0x6febda,_0x2afb8e[_0x30858e(0xc1)],_0x2eead3[_0x30858e(0xa4)],_0x30858e(0xa6)),_0x409c90=_0x2afb8e[_0x30858e(0xbf)](_0x30858e(0xc3)),_0x1ffed6=_0x3e7f79[_0x30858e(0xb8)][_0x409c90];if(!_0x1ffed6)throw CliErrors[_0x30858e(0xb2)](_0x30858e(0xbd)+_0x409c90+'\x22.');await deleteSqlQuery({'id':_0x1ffed6[_0x30858e(0xa1)],'sqlCode':_0x409c90}),_0x3e7f79[_0x30858e(0xb8)]=Object[_0x30858e(0xb5)](Object[_0x30858e(0xb4)](_0x3e7f79[_0x30858e(0xb8)])[_0x30858e(0xaf)](([_0x4a7172])=>_0x4a7172!==_0x409c90)),_0x3e7f79[_0x30858e(0xb9)]=new Date()[_0x30858e(0xb6)](),await writeSqlLockFile(_0x2eead3[_0x30858e(0xc5)],_0x45634c);const _0x4e770a=resolveLocalSqlFilePath(_0x2eead3,_0x409c90,_0x1ffed6);let _0xacf1f3;await fileExists(_0x4e770a)&&(_0xacf1f3=await moveToTrash(_0x2eead3[_0x30858e(0xa5)],_0x2eead3[_0x30858e(0xc0)],_0x4e770a),await cleanupEmptyDirectories(dirname(_0x4e770a),_0x2eead3[_0x30858e(0xa8)]));const _0x3a96dc={'deleted':_0x409c90,'remoteId':_0x1ffed6[_0x30858e(0xa1)]};if(_0xacf1f3)_0x3a96dc[_0x30858e(0xb3)]=_0xacf1f3;return{'ok':!![],'data':_0x3a96dc,'message':_0x30858e(0xa3)+_0x409c90+(_0xacf1f3?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x125b38,_0x17207a,_0x2d740b){const _0x6979d5=a121_0x3fe64a,_0x229676=new Date()[_0x6979d5(0xb6)]()[_0x6979d5(0xba)](/[:.]/g,'-'),_0xf5e6b8=relative(_0x125b38,_0x2d740b),_0x300bc5=join(_0x17207a,_0x229676,_0xf5e6b8);return await mkdir(dirname(_0x300bc5),{'recursive':!![]}),await rename(_0x2d740b,_0x300bc5),_0x300bc5;}async function cleanupEmptyDirectories(_0x15723f,_0x4ffb04){const _0x324ac6=a121_0x3fe64a;let _0x210762=resolve(_0x15723f);const _0x44c23b=resolve(_0x4ffb04);while(_0x210762[_0x324ac6(0xa7)](''+_0x44c23b+sep)||_0x210762===_0x44c23b){if(_0x210762===_0x44c23b)return;try{const _0x38a182=await readdir(_0x210762);if(_0x38a182['length']>0x0)return;await rmdir(_0x210762);}catch{return;}_0x210762=dirname(_0x210762);}}
1
+ const a122_0x3c2e99=a122_0x3709;(function(_0x25de21,_0x11f3a7){const _0x1515d7=a122_0x3709,_0x38508b=_0x25de21();while(!![]){try{const _0x128eb8=parseInt(_0x1515d7(0x1c6))/0x1*(-parseInt(_0x1515d7(0x1de))/0x2)+-parseInt(_0x1515d7(0x1e1))/0x3*(parseInt(_0x1515d7(0x1d9))/0x4)+-parseInt(_0x1515d7(0x1cc))/0x5*(parseInt(_0x1515d7(0x1d7))/0x6)+-parseInt(_0x1515d7(0x1cd))/0x7+-parseInt(_0x1515d7(0x1d2))/0x8*(-parseInt(_0x1515d7(0x1ce))/0x9)+parseInt(_0x1515d7(0x1d1))/0xa*(-parseInt(_0x1515d7(0x1da))/0xb)+parseInt(_0x1515d7(0x1bf))/0xc*(parseInt(_0x1515d7(0x1dd))/0xd);if(_0x128eb8===_0x11f3a7)break;else _0x38508b['push'](_0x38508b['shift']());}catch(_0x1d3269){_0x38508b['push'](_0x38508b['shift']());}}}(a122_0x409a,0xb68c6));function a122_0x409a(){const _0xd06144=['638zuNEtZ','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','high-risk-write','13RJMcQB','1660XBcLGd','Deleted\x20','lastSync','868431CpxMMd','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','projectRoot','filter','\x20(local\x20file\x20moved\x20to\x20trash)','/smartapi/custom/deleteUserCustomSql','40186860IJusur','trashDir','startsWith','sql','appCode','sqlcode','sqlRootDir','521Mlddgs','fromEntries','SQL\x20lock\x20file\x20not\x20found.','replace','validation','remoteId','2855Nzwryb','3649331WtHivZ','936DWKVjb','sqlRoot','sqls','84020hxPYpm','8trlIBX','delete','toISOString','lockFilePath','str','3066LKNifp','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','12pRFirn'];a122_0x409a=function(){return _0xd06144;};return a122_0x409a();}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';function a122_0x3709(_0xd59bab,_0x5b7ec1){_0xd59bab=_0xd59bab-0x1be;const _0x409ad8=a122_0x409a();let _0x3709e8=_0x409ad8[_0xd59bab];return _0x3709e8;}import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a122_0x3c2e99(0x1c2),'command':a122_0x3c2e99(0x1d3),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a122_0x3c2e99(0x1dc),'flags':[SQLCODE_FLAG],async 'validate'(_0x40a74b){const _0x3ec3f0=a122_0x3c2e99,_0x78afeb=loadSqlProjectConfig(_0x40a74b[_0x3ec3f0(0x1c3)]),_0x46a8de=await readSqlLockFile(_0x78afeb[_0x3ec3f0(0x1d5)]);if(!_0x46a8de)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x4ac4ba){const _0x565beb=a122_0x3c2e99,_0x589c89=loadSqlProjectConfig(_0x4ac4ba[_0x565beb(0x1c3)]),_0x356c9f=await readSqlLockFile(_0x589c89[_0x565beb(0x1d5)]);if(!_0x356c9f)throw CliErrors[_0x565beb(0x1ca)](_0x565beb(0x1db));const {appLock:_0x670fc9}=ensureSqlLockScope(_0x356c9f,_0x4ac4ba['appCode'],_0x589c89['sqlRoot'],_0x565beb(0x1d3)),_0x4a99e7=_0x4ac4ba[_0x565beb(0x1d6)]('sqlcode'),_0x37c54d=_0x670fc9['sqls'][_0x4a99e7];if(!_0x37c54d)throw CliErrors[_0x565beb(0x1ca)](_0x565beb(0x1d8)+_0x4a99e7+'\x22.');return{'method':'POST','url':_0x565beb(0x1be),'body':{'sqlCode':_0x4a99e7,'id':_0x37c54d[_0x565beb(0x1cb)],'localPath':resolveLocalSqlFilePath(_0x589c89,_0x4a99e7,_0x37c54d)},'description':'Would\x20delete\x20SQL\x20'+_0x4a99e7+_0x565beb(0x1e2)+_0x589c89[_0x565beb(0x1c0)]};},async 'execute'(_0x489431){const _0x4a58fd=a122_0x3c2e99,_0x490cd8=loadSqlProjectConfig(_0x489431[_0x4a58fd(0x1c3)]),_0x47466f=await readSqlLockFile(_0x490cd8[_0x4a58fd(0x1d5)]);if(!_0x47466f)throw CliErrors['validation'](_0x4a58fd(0x1c8));const {lockData:_0x482971,appLock:_0x192fc9}=ensureSqlLockScope(_0x47466f,_0x489431[_0x4a58fd(0x1c3)],_0x490cd8[_0x4a58fd(0x1cf)],_0x4a58fd(0x1d3)),_0x57e474=_0x489431[_0x4a58fd(0x1d6)](_0x4a58fd(0x1c4)),_0x231be5=_0x192fc9[_0x4a58fd(0x1d0)][_0x57e474];if(!_0x231be5)throw CliErrors[_0x4a58fd(0x1ca)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x57e474+'\x22.');await deleteSqlQuery({'id':_0x231be5[_0x4a58fd(0x1cb)],'sqlCode':_0x57e474}),_0x192fc9[_0x4a58fd(0x1d0)]=Object[_0x4a58fd(0x1c7)](Object['entries'](_0x192fc9[_0x4a58fd(0x1d0)])[_0x4a58fd(0x1e4)](([_0x5a7118])=>_0x5a7118!==_0x57e474)),_0x192fc9[_0x4a58fd(0x1e0)]=new Date()[_0x4a58fd(0x1d4)](),await writeSqlLockFile(_0x490cd8['lockFilePath'],_0x482971);const _0x586a04=resolveLocalSqlFilePath(_0x490cd8,_0x57e474,_0x231be5);let _0x443715;await fileExists(_0x586a04)&&(_0x443715=await moveToTrash(_0x490cd8[_0x4a58fd(0x1e3)],_0x490cd8['trashDir'],_0x586a04),await cleanupEmptyDirectories(dirname(_0x586a04),_0x490cd8[_0x4a58fd(0x1c5)]));const _0x4a1a1f={'deleted':_0x57e474,'remoteId':_0x231be5[_0x4a58fd(0x1cb)]};if(_0x443715)_0x4a1a1f['trashedTo']=_0x443715;return{'ok':!![],'data':_0x4a1a1f,'message':_0x4a58fd(0x1df)+_0x57e474+(_0x443715?_0x4a58fd(0x1e5):'')};}};async function moveToTrash(_0x213407,_0x3e948a,_0x2601a6){const _0x59993a=a122_0x3c2e99,_0x5eefc4=new Date()[_0x59993a(0x1d4)]()[_0x59993a(0x1c9)](/[:.]/g,'-'),_0x14866c=relative(_0x213407,_0x2601a6),_0x4cf9e4=join(_0x3e948a,_0x5eefc4,_0x14866c);return await mkdir(dirname(_0x4cf9e4),{'recursive':!![]}),await rename(_0x2601a6,_0x4cf9e4),_0x4cf9e4;}async function cleanupEmptyDirectories(_0x243ef1,_0x3e2db5){const _0x20c08b=a122_0x3c2e99;let _0x284e5a=resolve(_0x243ef1);const _0x101200=resolve(_0x3e2db5);while(_0x284e5a[_0x20c08b(0x1c1)](''+_0x101200+sep)||_0x284e5a===_0x101200){if(_0x284e5a===_0x101200)return;try{const _0x4b75fc=await readdir(_0x284e5a);if(_0x4b75fc['length']>0x0)return;await rmdir(_0x284e5a);}catch{return;}_0x284e5a=dirname(_0x284e5a);}}
@@ -1 +1 @@
1
- const a122_0x279415=a122_0x304e;(function(_0x324ecf,_0x4f47b5){const _0x190d1f=a122_0x304e,_0x2c63f0=_0x324ecf();while(!![]){try{const _0x1c4073=-parseInt(_0x190d1f(0x8a))/0x1*(-parseInt(_0x190d1f(0x9c))/0x2)+parseInt(_0x190d1f(0x96))/0x3+parseInt(_0x190d1f(0x9e))/0x4+-parseInt(_0x190d1f(0x94))/0x5+parseInt(_0x190d1f(0x99))/0x6*(parseInt(_0x190d1f(0x9b))/0x7)+-parseInt(_0x190d1f(0x9f))/0x8+-parseInt(_0x190d1f(0x97))/0x9;if(_0x1c4073===_0x4f47b5)break;else _0x2c63f0['push'](_0x2c63f0['shift']());}catch(_0x59f5d5){_0x2c63f0['push'](_0x2c63f0['shift']());}}}(a122_0x1364,0x8d75d));import{getSqlQueryInfo}from'../../core/api-client.js';function a122_0x1364(){const _0x1faa62=['737184KzymkO','sqlcode','sqlContent','1PDEmXv','sqlName','detail','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','verbose','sqlCode','sql','boolean','read','bool','5172670Njngdt','description','2594784kDKJuI','8952939kDljBA','dbId','10794SkVdzt','Return\x20full\x20raw\x20SQL\x20query\x20object','1141Bdtunn','1327276mDaTrj','appCode','3516284XhoRjc'];a122_0x1364=function(){return _0x1faa62;};return a122_0x1364();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a122_0x304e(_0x2b60cf,_0x80dbe8){_0x2b60cf=_0x2b60cf-0x89;const _0x136467=a122_0x1364();let _0x304e55=_0x136467[_0x2b60cf];return _0x304e55;}export const sqlDetail={'service':a122_0x279415(0x90),'command':a122_0x279415(0x8c),'description':a122_0x279415(0x8d),'risk':a122_0x279415(0x92),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a122_0x279415(0x91),'description':a122_0x279415(0x9a)}],async 'execute'(_0x134f7a){const _0x53cfc1=a122_0x279415,_0x70783e=await getSqlQueryInfo(_0x134f7a[_0x53cfc1(0x9d)],_0x134f7a['str'](_0x53cfc1(0xa0))),_0x26a55e=_0x134f7a[_0x53cfc1(0x93)](_0x53cfc1(0x8e));if(_0x26a55e)return{'ok':!![],'data':_0x70783e};const _0x16e2de=_0x70783e[_0x53cfc1(0x98)]?await getDbName(_0x134f7a[_0x53cfc1(0x9d)],_0x70783e[_0x53cfc1(0x98)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x70783e[_0x53cfc1(0x8f)],'sqlName':_0x70783e[_0x53cfc1(0x8b)],'db':_0x16e2de?_0x16e2de+'\x20('+_0x70783e[_0x53cfc1(0x98)]+')':_0x70783e[_0x53cfc1(0x98)]??'','description':_0x70783e[_0x53cfc1(0x95)]??'','sqlContent':_0x70783e[_0x53cfc1(0x89)]??''}};}};
1
+ function a123_0x4a7d(_0x3d5ee8,_0x14b619){_0x3d5ee8=_0x3d5ee8-0xb9;const _0x2aff4b=a123_0x2aff();let _0x4a7d12=_0x2aff4b[_0x3d5ee8];return _0x4a7d12;}const a123_0x26a27d=a123_0x4a7d;function a123_0x2aff(){const _0x1e0dc9=['sql','396CsKxJu','7351190cWdHdd','218142EOVNcU','str','168jHplkz','verbose','description','sqlCode','102573apYvmz','read','sqlContent','Return\x20full\x20raw\x20SQL\x20query\x20object','appCode','sqlcode','2218664JlJxIV','bool','58IbZDjh','dbId','boolean','sqlName','11495rxHJEt','30156iOPgdA','detail','11012qIGmyk'];a123_0x2aff=function(){return _0x1e0dc9;};return a123_0x2aff();}(function(_0x4a7c19,_0x38f382){const _0x56832b=a123_0x4a7d,_0x147372=_0x4a7c19();while(!![]){try{const _0x2a90ac=-parseInt(_0x56832b(0xc3))/0x1*(-parseInt(_0x56832b(0xbc))/0x2)+-parseInt(_0x56832b(0xc7))/0x3+-parseInt(_0x56832b(0xc5))/0x4*(parseInt(_0x56832b(0xc0))/0x5)+-parseInt(_0x56832b(0xc1))/0x6*(parseInt(_0x56832b(0xc9))/0x7)+-parseInt(_0x56832b(0xba))/0x8+-parseInt(_0x56832b(0xcd))/0x9+parseInt(_0x56832b(0xc6))/0xa;if(_0x2a90ac===_0x38f382)break;else _0x147372['push'](_0x147372['shift']());}catch(_0x5234ba){_0x147372['push'](_0x147372['shift']());}}}(a123_0x2aff,0x542de));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':a123_0x26a27d(0xc4),'command':a123_0x26a27d(0xc2),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':a123_0x26a27d(0xce),'flags':[SQLCODE_FLAG,{'name':a123_0x26a27d(0xca),'type':a123_0x26a27d(0xbe),'description':a123_0x26a27d(0xd0)}],async 'execute'(_0x1d80ff){const _0xf141f6=a123_0x26a27d,_0x2205f1=await getSqlQueryInfo(_0x1d80ff[_0xf141f6(0xd1)],_0x1d80ff[_0xf141f6(0xc8)](_0xf141f6(0xb9))),_0x362f3e=_0x1d80ff[_0xf141f6(0xbb)](_0xf141f6(0xca));if(_0x362f3e)return{'ok':!![],'data':_0x2205f1};const _0x4f2848=_0x2205f1['dbId']?await getDbName(_0x1d80ff[_0xf141f6(0xd1)],_0x2205f1[_0xf141f6(0xbd)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x2205f1[_0xf141f6(0xcc)],'sqlName':_0x2205f1[_0xf141f6(0xbf)],'db':_0x4f2848?_0x4f2848+'\x20('+_0x2205f1[_0xf141f6(0xbd)]+')':_0x2205f1[_0xf141f6(0xbd)]??'','description':_0x2205f1[_0xf141f6(0xcb)]??'','sqlContent':_0x2205f1[_0xf141f6(0xcf)]??''}};}};
@@ -1 +1 @@
1
- const a123_0x2b836d=a123_0x4fd9;(function(_0x5af709,_0x1fe541){const _0x523133=a123_0x4fd9,_0x14656b=_0x5af709();while(!![]){try{const _0x726ce7=-parseInt(_0x523133(0xaf))/0x1*(parseInt(_0x523133(0xa6))/0x2)+-parseInt(_0x523133(0xa0))/0x3*(-parseInt(_0x523133(0xaa))/0x4)+parseInt(_0x523133(0xa8))/0x5+-parseInt(_0x523133(0xad))/0x6+-parseInt(_0x523133(0xa3))/0x7+parseInt(_0x523133(0xb2))/0x8*(parseInt(_0x523133(0x9b))/0x9)+parseInt(_0x523133(0xa2))/0xa*(-parseInt(_0x523133(0x9e))/0xb);if(_0x726ce7===_0x1fe541)break;else _0x14656b['push'](_0x14656b['shift']());}catch(_0x4bd8fb){_0x14656b['push'](_0x14656b['shift']());}}}(a123_0x424e,0x748eb));import{executeSql}from'../../core/api-client.js';function a123_0x424e(){const _0x2f8c3f=['now','1206wTAOWp','exec','2530060GiwdLp','str','1424344TpUEXx','isArray','string','282210OVOdIe','appCode','417pgFwhH','params','sqlcode','6646480yeKLYp','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','read','execSuccess','SQL\x20execution\x20failed','9SaJnqM','sql','execResult','491524uhJMDw','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','3saBtxK','\x20row(s)\x20in\x20','70uSHHmj','4229505BLAgSh','execError'];a123_0x424e=function(){return _0x2f8c3f;};return a123_0x424e();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a123_0x4fd9(_0x3f3a57,_0x4d42ac){_0x3f3a57=_0x3f3a57-0x99;const _0x424e58=a123_0x424e();let _0x4fd987=_0x424e58[_0x3f3a57];return _0x4fd987;}export const sqlExec={'service':a123_0x2b836d(0x9c),'command':a123_0x2b836d(0xa7),'description':a123_0x2b836d(0x9f),'risk':a123_0x2b836d(0xb4),'flags':[SQLCODE_FLAG,{'name':a123_0x2b836d(0xb0),'type':a123_0x2b836d(0xac),'description':a123_0x2b836d(0xb3)}],async 'execute'(_0xd6bb1b){const _0x281d6e=a123_0x2b836d,_0xfc603e=parseJsonParams(_0xd6bb1b['str'](_0x281d6e(0xb0))),_0x6be6b0=Date[_0x281d6e(0xa5)](),_0x4c154f=await executeSql(_0xd6bb1b[_0x281d6e(0xae)],_0xd6bb1b[_0x281d6e(0xa9)](_0x281d6e(0xb1)),_0xfc603e),_0xcbeef0=Date['now']()-_0x6be6b0,_0x1ba4da=_0x4c154f?.[_0x281d6e(0x9d)]??_0x4c154f,_0x4eb4bb=_0x4c154f?.[_0x281d6e(0x99)]??!![];if(!_0x4eb4bb)return{'ok':![],'data':{'error':_0x4c154f?.[_0x281d6e(0xa4)]||_0x281d6e(0x9a),'elapsed':_0xcbeef0},'message':_0x281d6e(0x9a)};const _0x15cabc=Array[_0x281d6e(0xab)](_0x1ba4da)?_0x1ba4da:[];return{'ok':!![],'data':{'rows':_0x15cabc,'rowCount':_0x15cabc['length'],'elapsed':_0xcbeef0},'message':'Returned\x20'+_0x15cabc['length']+_0x281d6e(0xa1)+_0xcbeef0+'ms'};}};
1
+ const a124_0x1a5227=a124_0x2b25;(function(_0x2d8090,_0x450611){const _0x1d6134=a124_0x2b25,_0x5ba377=_0x2d8090();while(!![]){try{const _0x2a0cef=parseInt(_0x1d6134(0x80))/0x1*(-parseInt(_0x1d6134(0x7f))/0x2)+-parseInt(_0x1d6134(0x6d))/0x3*(-parseInt(_0x1d6134(0x79))/0x4)+-parseInt(_0x1d6134(0x74))/0x5*(-parseInt(_0x1d6134(0x81))/0x6)+-parseInt(_0x1d6134(0x78))/0x7*(-parseInt(_0x1d6134(0x7b))/0x8)+parseInt(_0x1d6134(0x70))/0x9*(parseInt(_0x1d6134(0x73))/0xa)+parseInt(_0x1d6134(0x7d))/0xb*(parseInt(_0x1d6134(0x72))/0xc)+-parseInt(_0x1d6134(0x6e))/0xd*(parseInt(_0x1d6134(0x68))/0xe);if(_0x2a0cef===_0x450611)break;else _0x5ba377['push'](_0x5ba377['shift']());}catch(_0x1d2b8e){_0x5ba377['push'](_0x5ba377['shift']());}}}(a124_0x9540,0x7066f));function a124_0x9540(){const _0x210a29=['params','3041857wECeIZ','12cGxbLY','length','16AeLZWE','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','11XKulJJ','SQL\x20execution\x20failed','6VAHjza','28851QOovYN','2532xyzmFS','1661744qkvMIB','execResult','execSuccess','now','isArray','130077wfAZJg','234WyAYoX','str','620388fZomRH','appCode','5718060fxCpJF','60pudUog','9410fgHZGY','\x20row(s)\x20in\x20','sqlcode'];a124_0x9540=function(){return _0x210a29;};return a124_0x9540();}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a124_0x2b25(_0x6adb5e,_0xc8cdaa){_0x6adb5e=_0x6adb5e-0x68;const _0x9540ec=a124_0x9540();let _0x2b2566=_0x9540ec[_0x6adb5e];return _0x2b2566;}export const sqlExec={'service':'sql','command':'exec','description':a124_0x1a5227(0x7c),'risk':'read','flags':[SQLCODE_FLAG,{'name':a124_0x1a5227(0x77),'type':'string','description':'SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)'}],async 'execute'(_0x1622e1){const _0x43561b=a124_0x1a5227,_0x975fd1=parseJsonParams(_0x1622e1[_0x43561b(0x6f)](_0x43561b(0x77))),_0x293149=Date[_0x43561b(0x6b)](),_0x13cf23=await executeSql(_0x1622e1[_0x43561b(0x71)],_0x1622e1[_0x43561b(0x6f)](_0x43561b(0x76)),_0x975fd1),_0x378d2e=Date['now']()-_0x293149,_0x287c84=_0x13cf23?.[_0x43561b(0x69)]??_0x13cf23,_0x2824f3=_0x13cf23?.[_0x43561b(0x6a)]??!![];if(!_0x2824f3)return{'ok':![],'data':{'error':_0x13cf23?.['execError']||_0x43561b(0x7e),'elapsed':_0x378d2e},'message':'SQL\x20execution\x20failed'};const _0xebfe61=Array[_0x43561b(0x6c)](_0x287c84)?_0x287c84:[];return{'ok':!![],'data':{'rows':_0xebfe61,'rowCount':_0xebfe61[_0x43561b(0x7a)],'elapsed':_0x378d2e},'message':'Returned\x20'+_0xebfe61[_0x43561b(0x7a)]+_0x43561b(0x75)+_0x378d2e+'ms'};}};
@@ -1 +1 @@
1
- function a124_0x4eca(_0x1470ff,_0x319d9a){_0x1470ff=_0x1470ff-0xa2;const _0x493d53=a124_0x493d();let _0x4eca0d=_0x493d53[_0x1470ff];return _0x4eca0d;}(function(_0x4b79f5,_0x1aa697){const _0x4b9b0b=a124_0x4eca,_0x11ff40=_0x4b79f5();while(!![]){try{const _0x54fb5e=-parseInt(_0x4b9b0b(0xa2))/0x1+-parseInt(_0x4b9b0b(0xa9))/0x2*(-parseInt(_0x4b9b0b(0xa7))/0x3)+-parseInt(_0x4b9b0b(0xa3))/0x4+parseInt(_0x4b9b0b(0xa5))/0x5*(-parseInt(_0x4b9b0b(0xa6))/0x6)+-parseInt(_0x4b9b0b(0xaa))/0x7+-parseInt(_0x4b9b0b(0xa4))/0x8+parseInt(_0x4b9b0b(0xa8))/0x9;if(_0x54fb5e===_0x1aa697)break;else _0x11ff40['push'](_0x11ff40['shift']());}catch(_0x4da4bc){_0x11ff40['push'](_0x11ff40['shift']());}}}(a124_0x493d,0x1d3bf));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 a124_0x493d(){const _0x22b512=['161720RnFSdw','1139928rotpSh','325BzdrdT','6432risNyo','1080LlmFfM','4556529IZFGWg','740HJpWkO','269087rCcLRX','228696mPzQqL'];a124_0x493d=function(){return _0x22b512;};return a124_0x493d();}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(_0x20eb4c,_0x2158ef){const _0x15c357=a125_0x5545,_0x4c5084=_0x20eb4c();while(!![]){try{const _0x2111de=-parseInt(_0x15c357(0x12d))/0x1*(parseInt(_0x15c357(0x12a))/0x2)+parseInt(_0x15c357(0x12c))/0x3*(-parseInt(_0x15c357(0x12e))/0x4)+parseInt(_0x15c357(0x12b))/0x5+-parseInt(_0x15c357(0x132))/0x6+parseInt(_0x15c357(0x12f))/0x7*(parseInt(_0x15c357(0x127))/0x8)+parseInt(_0x15c357(0x128))/0x9*(-parseInt(_0x15c357(0x131))/0xa)+-parseInt(_0x15c357(0x130))/0xb*(-parseInt(_0x15c357(0x129))/0xc);if(_0x2111de===_0x2158ef)break;else _0x4c5084['push'](_0x4c5084['shift']());}catch(_0x52551a){_0x4c5084['push'](_0x4c5084['shift']());}}}(a125_0xc04d,0x95544));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';function a125_0xc04d(){const _0x30c0c2=['4yVoObD','224IniQiq','27168757ImtWCc','90pSQhbc','6136506KoEHIm','49304RkEZaX','1205064kYhHzs','12rmpAii','452782mbeArD','4025580lWdHeU','1219083IbDONF','1mHzxrq'];a125_0xc04d=function(){return _0x30c0c2;};return a125_0xc04d();}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';function a125_0x5545(_0x2e9557,_0x167232){_0x2e9557=_0x2e9557-0x127;const _0xc04dea=a125_0xc04d();let _0x5545a6=_0xc04dea[_0x2e9557];return _0x5545a6;}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
- function a125_0x4aa0(_0x11ead3,_0x39b5b4){_0x11ead3=_0x11ead3-0x69;const _0x36d7de=a125_0x36d7();let _0x4aa003=_0x36d7de[_0x11ead3];return _0x4aa003;}const a125_0x267076=a125_0x4aa0;(function(_0x554191,_0x5c7f7f){const _0x119c46=a125_0x4aa0,_0x41a366=_0x554191();while(!![]){try{const _0x1e4218=parseInt(_0x119c46(0x6c))/0x1+-parseInt(_0x119c46(0x84))/0x2*(parseInt(_0x119c46(0x8f))/0x3)+parseInt(_0x119c46(0x82))/0x4*(-parseInt(_0x119c46(0x7d))/0x5)+parseInt(_0x119c46(0x7b))/0x6*(-parseInt(_0x119c46(0x7e))/0x7)+-parseInt(_0x119c46(0x75))/0x8*(-parseInt(_0x119c46(0x74))/0x9)+-parseInt(_0x119c46(0x6d))/0xa+parseInt(_0x119c46(0x8d))/0xb*(parseInt(_0x119c46(0x85))/0xc);if(_0x1e4218===_0x5c7f7f)break;else _0x41a366['push'](_0x41a366['shift']());}catch(_0x4963b8){_0x41a366['push'](_0x41a366['shift']());}}}(a125_0x36d7,0x32e4a));import{listSqlQueries}from'../../core/api-client.js';function a125_0x36d7(){const _0x38f5e4=['83430pyGzUF','155700VJmjYY','string','List\x20custom\x20SQL\x20queries','Page\x20number','sqlName','page','list','2736BQdswi','4184WvFMft','dbId','num','Found\x20','sql','name','9006WoasdM','appCode','15775eDjuUH','903AZJFHI','totalCount','tableData','bool','12eyRRWR','length','40536tPzuRR','96wohdbs','verbose','str','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','description','read','paging','Filter\x20by\x20SQL\x20name','281831IZQNlL','Page\x20size','3coevDd','No\x20custom\x20SQL\x20queries\x20found.','sqlCode','\x20SQL\x20queries\x20(total:\x20','pagesize','sqlcode','number','boolean'];a125_0x36d7=function(){return _0x38f5e4;};return a125_0x36d7();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a125_0x267076(0x79),'command':a125_0x267076(0x73),'description':a125_0x267076(0x6f),'risk':a125_0x267076(0x8a),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a125_0x267076(0x7a),'type':a125_0x267076(0x6e),'description':a125_0x267076(0x8c)},{'name':a125_0x267076(0x72),'type':a125_0x267076(0x6a),'description':a125_0x267076(0x70),'default':0x1},{'name':'pagesize','type':a125_0x267076(0x6a),'description':a125_0x267076(0x8e)},{'name':a125_0x267076(0x86),'type':a125_0x267076(0x6b),'description':a125_0x267076(0x88)}],async 'execute'(_0x415479){const _0x4fee90=a125_0x267076,_0x5f40d4=await listSqlQueries(_0x415479['appCode'],{'sqlCode':_0x415479[_0x4fee90(0x87)](_0x4fee90(0x69))||undefined,'sqlName':_0x415479[_0x4fee90(0x87)](_0x4fee90(0x7a))||undefined,'currentPage':_0x415479[_0x4fee90(0x77)]('page'),'pageSize':_0x415479[_0x4fee90(0x77)](_0x4fee90(0x93),0x32)}),_0x567916=_0x415479[_0x4fee90(0x81)]('verbose'),_0x6c544a=_0x5f40d4[_0x4fee90(0x80)]??[],_0x3f9824=_0x5f40d4[_0x4fee90(0x8b)]?.[_0x4fee90(0x7f)]??_0x6c544a[_0x4fee90(0x83)];let _0x90dcc6;return _0x567916?_0x90dcc6=_0x6c544a:_0x90dcc6=await Promise['all'](_0x6c544a['map'](async _0x2132f8=>{const _0x461737=_0x4fee90;let _0x594b94;try{_0x594b94=_0x2132f8['dbId']?await getDbName(_0x415479[_0x461737(0x7c)],_0x2132f8[_0x461737(0x76)]):undefined;}catch{}return{'sqlCode':_0x2132f8[_0x461737(0x91)],'sqlName':_0x2132f8[_0x461737(0x71)],'description':_0x2132f8[_0x461737(0x89)]??'','db':_0x594b94?_0x594b94+'\x20('+_0x2132f8[_0x461737(0x76)]+')':_0x2132f8[_0x461737(0x76)]??''};})),{'ok':!![],'data':_0x90dcc6,'message':_0x6c544a[_0x4fee90(0x83)]===0x0?_0x4fee90(0x90):_0x4fee90(0x78)+_0x6c544a[_0x4fee90(0x83)]+_0x4fee90(0x92)+_0x3f9824+').'};}};
1
+ const a126_0x179432=a126_0x5b18;(function(_0x83bea4,_0x1fa725){const _0x191205=a126_0x5b18,_0x3e6562=_0x83bea4();while(!![]){try{const _0x2d888a=-parseInt(_0x191205(0x1bb))/0x1*(-parseInt(_0x191205(0x1a7))/0x2)+parseInt(_0x191205(0x1ac))/0x3+parseInt(_0x191205(0x1b8))/0x4+parseInt(_0x191205(0x1bc))/0x5+-parseInt(_0x191205(0x1c4))/0x6+-parseInt(_0x191205(0x1ad))/0x7+parseInt(_0x191205(0x1b2))/0x8;if(_0x2d888a===_0x1fa725)break;else _0x3e6562['push'](_0x3e6562['shift']());}catch(_0x1f98f3){_0x3e6562['push'](_0x3e6562['shift']());}}}(a126_0x1004,0xec573));function a126_0x5b18(_0x224ffe,_0xae8792){_0x224ffe=_0x224ffe-0x1a2;const _0x1004af=a126_0x1004();let _0x5b18dd=_0x1004af[_0x224ffe];return _0x5b18dd;}import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':'list','description':a126_0x179432(0x1be),'risk':a126_0x179432(0x1c1),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a126_0x179432(0x1a5),'description':a126_0x179432(0x1c2)},{'name':a126_0x179432(0x1b6),'type':'number','description':a126_0x179432(0x1a9),'default':0x1},{'name':'pagesize','type':a126_0x179432(0x1b9),'description':a126_0x179432(0x1c0)},{'name':a126_0x179432(0x1b4),'type':a126_0x179432(0x1a6),'description':a126_0x179432(0x1a8)}],async 'execute'(_0x1c69e3){const _0x414a0a=a126_0x179432,_0x4f914b=await listSqlQueries(_0x1c69e3[_0x414a0a(0x1b7)],{'sqlCode':_0x1c69e3[_0x414a0a(0x1b5)](_0x414a0a(0x1ba))||undefined,'sqlName':_0x1c69e3[_0x414a0a(0x1b5)]('name')||undefined,'currentPage':_0x1c69e3[_0x414a0a(0x1b3)](_0x414a0a(0x1b6)),'pageSize':_0x1c69e3[_0x414a0a(0x1b3)](_0x414a0a(0x1af),0x32)}),_0x2359f0=_0x1c69e3['bool'](_0x414a0a(0x1b4)),_0x399ddc=_0x4f914b[_0x414a0a(0x1a2)]??[],_0x2cff5f=_0x4f914b[_0x414a0a(0x1aa)]?.[_0x414a0a(0x1ab)]??_0x399ddc[_0x414a0a(0x1a3)];let _0x25a12b;return _0x2359f0?_0x25a12b=_0x399ddc:_0x25a12b=await Promise[_0x414a0a(0x1b0)](_0x399ddc[_0x414a0a(0x1c3)](async _0xa9c61c=>{const _0x1c1252=_0x414a0a;let _0x57f3f8;try{_0x57f3f8=_0xa9c61c[_0x1c1252(0x1bd)]?await getDbName(_0x1c69e3['appCode'],_0xa9c61c[_0x1c1252(0x1bd)]):undefined;}catch{}return{'sqlCode':_0xa9c61c[_0x1c1252(0x1bf)],'sqlName':_0xa9c61c[_0x1c1252(0x1c5)],'description':_0xa9c61c[_0x1c1252(0x1a4)]??'','db':_0x57f3f8?_0x57f3f8+'\x20('+_0xa9c61c[_0x1c1252(0x1bd)]+')':_0xa9c61c[_0x1c1252(0x1bd)]??''};})),{'ok':!![],'data':_0x25a12b,'message':_0x399ddc['length']===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0x414a0a(0x1ae)+_0x399ddc[_0x414a0a(0x1a3)]+_0x414a0a(0x1b1)+_0x2cff5f+').'};}};function a126_0x1004(){const _0x47aa6b=['paging','totalCount','5817qjPNCg','11846919XIYnLa','Found\x20','pagesize','all','\x20SQL\x20queries\x20(total:\x20','20203264AjbqPx','num','verbose','str','page','appCode','2227056zJmECF','number','sqlcode','3utkExf','2073445HjicrG','dbId','List\x20custom\x20SQL\x20queries','sqlCode','Page\x20size','read','Filter\x20by\x20SQL\x20name','map','10722600kBOJTc','sqlName','tableData','length','description','string','boolean','632512otcOuk','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','Page\x20number'];a126_0x1004=function(){return _0x47aa6b;};return a126_0x1004();}
@@ -1 +1 @@
1
- const a126_0xab83f6=a126_0x12dc;(function(_0x44eac1,_0x1899f1){const _0x57ece2=a126_0x12dc,_0x474684=_0x44eac1();while(!![]){try{const _0x469da0=-parseInt(_0x57ece2(0x9d))/0x1+-parseInt(_0x57ece2(0x90))/0x2+parseInt(_0x57ece2(0x9c))/0x3*(-parseInt(_0x57ece2(0xa3))/0x4)+parseInt(_0x57ece2(0x89))/0x5+parseInt(_0x57ece2(0xaa))/0x6+-parseInt(_0x57ece2(0x88))/0x7+parseInt(_0x57ece2(0xa4))/0x8*(parseInt(_0x57ece2(0x85))/0x9);if(_0x469da0===_0x1899f1)break;else _0x474684['push'](_0x474684['shift']());}catch(_0x256818){_0x474684['push'](_0x474684['shift']());}}}(a126_0x3f35,0x72f59));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';function a126_0x12dc(_0x5931a7,_0x2c02c7){_0x5931a7=_0x5931a7-0x7f;const _0x3f35e2=a126_0x3f35();let _0x12dca7=_0x3f35e2[_0x5931a7];return _0x12dca7;}import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';function a126_0x3f35(){const _0x19dcef=['sqlName','force','catch','tableData','297sOdGwH','toISOString','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','3695972IrLeht','2247195oXQlpY','\x20skipped,\x20','dbId','totalCount','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','sqlRootDir','conflict','936362fCzyJZ','boolean','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','write','description','sqls','string','cancelled','mybatisXml','push','str','length','9171Ykpnmc','568010hILPsZ','message','sqlCode','replace','Force\x20pull\x20cancelled.','lockFilePath','772CGRNoZ','432664TDLYmb','local\x20differs\x20from\x20remote','sqlcode','utf8','sqlRoot','appCode','2345298mUOScm','join','sqlContent','test','name','lastSync','Filter\x20by\x20SQL\x20display\x20name','path','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','apps','pull'];a126_0x3f35=function(){return _0x19dcef;};return a126_0x3f35();}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(_0x1d77cc,_0x479362){const _0xf1a373=a126_0x12dc,_0x2d4663=[];let _0xd05a05=0x1;while(!![]){const _0x524e1b=await listSqlQueries(_0x1d77cc,{'currentPage':_0xd05a05,'pageSize':PAGE_SIZE,'sqlCode':_0x479362[_0xf1a373(0x9f)],'sqlName':_0x479362[_0xf1a373(0x81)]}),_0x2bca25=_0x524e1b[_0xf1a373(0x84)]??[];_0x2d4663['push'](..._0x2bca25);if(_0x2bca25[_0xf1a373(0x9b)]===0x0)break;const _0xf0a802=_0x524e1b['paging']?.[_0xf1a373(0x8c)];if(_0xf0a802!=null?_0x2d4663['length']>=_0xf0a802:_0x2bca25[_0xf1a373(0x9b)]<PAGE_SIZE)break;_0xd05a05++;}return _0x2d4663;}async function ensureSqlContent(_0x227073){const _0x2b8131=a126_0x12dc;if(_0x227073['sqlContent']!=null&&String(_0x227073[_0x2b8131(0xac)])['length']>0x0)return _0x227073;return getSqlQueryDetail(_0x227073[_0x2b8131(0x9f)]);}export const sqlPull={'service':'sql','command':a126_0xab83f6(0x80),'description':a126_0xab83f6(0xb2),'risk':a126_0xab83f6(0x93),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a126_0xab83f6(0xae),'type':a126_0xab83f6(0x96),'description':a126_0xab83f6(0xb0)},{'name':a126_0xab83f6(0x82),'type':a126_0xab83f6(0x91),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x3e8575){const _0xb1b01f=a126_0xab83f6,_0x1266d4=loadSqlProjectConfig(_0x3e8575['appCode']),_0x324ffb=await readSqlLockFile(_0x1266d4['lockFilePath']),{appLock:_0x201a8a}=ensureSqlLockScope(_0x324ffb??createEmptySqlLock(),_0x1266d4['appCode'],_0x1266d4[_0xb1b01f(0xa8)],_0xb1b01f(0x80)),_0x43f1fa=await fetchAllSqlQueries(_0x3e8575[_0xb1b01f(0xa9)],{'sqlCode':_0x3e8575[_0xb1b01f(0x9a)](_0xb1b01f(0xa6))||undefined,'sqlName':_0x3e8575[_0xb1b01f(0x9a)](_0xb1b01f(0xae))||undefined}),_0x570394=[];for(const _0x3f938d of _0x43f1fa){const _0x300c87=await ensureSqlContent(_0x3f938d),_0x48ffbd=ensureRemoteSqlContent(_0x300c87),_0x5dc6de=detectModeFromSql(_0x300c87),_0x203572=_0x300c87[_0xb1b01f(0x8b)]?await getDbName(_0x3e8575[_0xb1b01f(0xa9)],Number(_0x300c87[_0xb1b01f(0x8b)]))[_0xb1b01f(0x83)](()=>undefined):undefined,_0x5174a0=buildLocalSqlFileContent({'sqlCode':_0x300c87[_0xb1b01f(0x9f)],'sqlName':_0x300c87[_0xb1b01f(0x81)],'dbId':_0x300c87[_0xb1b01f(0x8b)]},_0x48ffbd,{'dbName':_0x203572,'mode':_0x5dc6de,'syncedAt':new Date()[_0xb1b01f(0x86)](),'description':_0x300c87[_0xb1b01f(0x94)]}),_0x592f48=buildSqlLockEntry(_0x300c87,_0x48ffbd,'',{'dbName':_0x203572}),_0x806f29=resolveLocalSqlFilePath(_0x1266d4,_0x300c87[_0xb1b01f(0x9f)],_0x592f48);let _0x5218c6='would_pull',_0x24d955;if(await fileExists(_0x806f29)){const _0x15b93b=await readFile(_0x806f29,_0xb1b01f(0xa7));isEquivalentPulledSqlFile(_0x15b93b,_0x5174a0,_0x5dc6de)?(_0x5218c6='skipped',_0x24d955='unchanged'):(_0x5218c6=_0xb1b01f(0x8f),_0x24d955=_0xb1b01f(0x92));}_0x570394[_0xb1b01f(0x99)]({'sqlCode':_0x300c87[_0xb1b01f(0x9f)],'sqlName':_0x300c87[_0xb1b01f(0x81)],'filePath':_0x806f29,'status':_0x5218c6,'reason':_0x24d955});}return{'method':'POST','url':_0xb1b01f(0x87),'body':{'appCode':_0x3e8575['appCode'],'sqlCode':_0x3e8575['str'](_0xb1b01f(0xa6))||null,'sqlName':_0x3e8575[_0xb1b01f(0x9a)](_0xb1b01f(0xae))||null,'files':_0x570394},'description':'Would\x20pull\x20'+_0x570394[_0xb1b01f(0x9b)]+'\x20SQL\x20file(s)\x20into\x20'+_0x1266d4['sqlRootDir']};},async 'execute'(_0xd33bbd){const _0x30700e=a126_0xab83f6,_0x5848c8=loadSqlProjectConfig(_0xd33bbd['appCode']),_0x587364=await readSqlLockFile(_0x5848c8[_0x30700e(0xa2)]),{lockData:_0x2a90e7,appLock:_0x54d79b}=ensureSqlLockScope(_0x587364??createEmptySqlLock(),_0x5848c8['appCode'],_0x5848c8['sqlRoot'],_0x30700e(0x80)),_0x458df1=_0xd33bbd['bool'](_0x30700e(0x82)),_0x462e94=await fetchAllSqlQueries(_0xd33bbd[_0x30700e(0xa9)],{'sqlCode':_0xd33bbd[_0x30700e(0x9a)](_0x30700e(0xa6))||undefined,'sqlName':_0xd33bbd['str']('name')||undefined});if(_0x462e94[_0x30700e(0x9b)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x3fbd12=[],_0x237ca0=[];for(const _0x549041 of _0x462e94){try{_0x3fbd12['push'](await ensureSqlContent(_0x549041));}catch(_0x3a1d9f){_0x237ca0[_0x30700e(0x99)]({'sqlCode':_0x549041[_0x30700e(0x9f)],'error':_0x3a1d9f instanceof Error?_0x3a1d9f[_0x30700e(0x9e)]:String(_0x3a1d9f)});}}if(_0x458df1&&!_0xd33bbd['nonInteractive']){let _0x279b0b=![];for(const _0x1a00be of _0x3fbd12){const _0x1fefa1=detectModeFromSql(_0x1a00be),_0x5ade2e=_0x1a00be[_0x30700e(0x8b)]?await getDbName(_0xd33bbd[_0x30700e(0xa9)],Number(_0x1a00be[_0x30700e(0x8b)]))[_0x30700e(0x83)](()=>undefined):undefined,_0x3c2f5a=buildLocalSqlFileContent({'sqlCode':_0x1a00be[_0x30700e(0x9f)],'sqlName':_0x1a00be[_0x30700e(0x81)],'dbId':_0x1a00be[_0x30700e(0x8b)]},ensureRemoteSqlContent(_0x1a00be),{'dbName':_0x5ade2e,'mode':_0x1fefa1,'syncedAt':new Date()['toISOString'](),'description':_0x1a00be[_0x30700e(0x94)]}),_0x717bd1=resolveLocalSqlFilePath(_0x5848c8,_0x1a00be['sqlCode'],buildSqlLockEntry(_0x1a00be,ensureRemoteSqlContent(_0x1a00be),'',{'dbName':_0x5ade2e}));if(await fileExists(_0x717bd1)){const _0x3f327c=await readFile(_0x717bd1,'utf8');if(!isEquivalentPulledSqlFile(_0x3f327c,_0x3c2f5a,_0x1fefa1)){_0x279b0b=!![];break;}}}if(_0x279b0b){const _0x3fe4bf=await confirmForceOverwrite(_0x30700e(0x8d));if(!_0x3fe4bf)throw CliErrors[_0x30700e(0x97)](_0x30700e(0xa1));}}const _0x5e060f=cloneSqlLockData(_0x2a90e7),_0x561303=_0x5e060f[_0x30700e(0x7f)][_0x5848c8[_0x30700e(0xa9)]],_0x39607c=[],_0x5798d2=[];for(const _0x263e1f of _0x3fbd12){const _0x1b6d98=_0x561303['sqls'][_0x263e1f[_0x30700e(0x9f)]],_0x4d3979=ensureRemoteSqlContent(_0x263e1f),_0x57576e=detectModeFromSql(_0x263e1f),_0x483934=_0x263e1f[_0x30700e(0x8b)]?await getDbName(_0xd33bbd[_0x30700e(0xa9)],Number(_0x263e1f[_0x30700e(0x8b)]))[_0x30700e(0x83)](()=>undefined):undefined,_0x13f1a3=buildLocalSqlFileContent({'sqlCode':_0x263e1f[_0x30700e(0x9f)],'sqlName':_0x263e1f[_0x30700e(0x81)],'dbId':_0x263e1f[_0x30700e(0x8b)]},_0x4d3979,{'dbName':_0x483934,'mode':_0x57576e,'syncedAt':new Date()[_0x30700e(0x86)](),'description':_0x263e1f[_0x30700e(0x94)]}),_0xabbb35=buildSqlLockEntry(_0x263e1f,_0x4d3979,computeSqlContentHash(_0x13f1a3),{'dbName':_0x483934}),_0x2e933b=_0xabbb35[_0x30700e(0xb1)],_0x4a3aee=join(_0x5848c8[_0x30700e(0x8e)],_0x2e933b);try{if(await fileExists(_0x4a3aee)){const _0x30448a=await readFile(_0x4a3aee,'utf8');if(isEquivalentPulledSqlFile(_0x30448a,_0x13f1a3,_0x57576e)){_0x5798d2[_0x30700e(0x99)]({'sqlCode':_0x263e1f[_0x30700e(0x9f)],'reason':'unchanged'}),_0x561303[_0x30700e(0x95)][_0x263e1f[_0x30700e(0x9f)]]={..._0xabbb35,'hash':computeSqlContentHash(_0x30448a),'path':_0x2e933b};continue;}if(!_0x458df1){_0x5798d2[_0x30700e(0x99)]({'sqlCode':_0x263e1f[_0x30700e(0x9f)],'reason':_0x30700e(0xa5)});continue;}}const _0x3c87a0=_0x1b6d98?.['path']?join(_0x5848c8[_0x30700e(0x8e)],_0x1b6d98[_0x30700e(0xb1)]):undefined;_0x3c87a0&&_0x3c87a0!==_0x4a3aee&&await fileExists(_0x3c87a0)&&await rm(_0x3c87a0,{'force':!![]}),await ensureParentDirectory(_0x4a3aee),await writeFile(_0x4a3aee,_0x13f1a3,_0x30700e(0xa7)),_0x561303['sqls'][_0x263e1f[_0x30700e(0x9f)]]={..._0xabbb35,'path':_0x2e933b},_0x39607c[_0x30700e(0x99)]({'sqlCode':_0x263e1f['sqlCode'],'filePath':_0x4a3aee});}catch(_0x53c781){_0x237ca0[_0x30700e(0x99)]({'sqlCode':_0x263e1f['sqlCode'],'error':_0x53c781 instanceof Error?_0x53c781[_0x30700e(0x9e)]:String(_0x53c781)});}}return _0x561303[_0x30700e(0xaf)]=new Date()[_0x30700e(0x86)](),await writeSqlLockFile(_0x5848c8[_0x30700e(0xa2)],_0x5e060f),{'ok':_0x237ca0[_0x30700e(0x9b)]===0x0,'data':{'pulled':_0x39607c,'skipped':_0x5798d2,'failed':_0x237ca0},'message':'Pull\x20complete:\x20'+_0x39607c['length']+'\x20written,\x20'+_0x5798d2[_0x30700e(0x9b)]+_0x30700e(0x8a)+_0x237ca0[_0x30700e(0x9b)]+'\x20failed'};}};function detectModeFromSql(_0x3452bd){const _0x287dd8=a126_0xab83f6,_0x5d497e=ensureRemoteSqlContent(_0x3452bd),_0x2bcd43=stripLocalSqlMetadata(_0x5d497e,'mybatisXml')['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x287dd8(0xad)](_0x2bcd43))return _0x287dd8(0x98);return'sql';}function isEquivalentPulledSqlFile(_0x1592a2,_0x17ce10,_0x133db2){return normalizePullComparableContent(_0x1592a2,_0x133db2)===normalizePullComparableContent(_0x17ce10,_0x133db2);}function normalizePullComparableContent(_0x38c227,_0x284f6b){const _0x3416e6=a126_0xab83f6,_0x110c4e=_0x38c227[_0x3416e6(0xa0)](/\r\n/g,'\x0a')['split']('\x0a'),_0x55ca16=_0x110c4e['filter'](_0x596285=>!isSyncedAtMetadataLine(_0x596285,_0x284f6b));return _0x55ca16[_0x3416e6(0xab)]('\x0a');}function isSyncedAtMetadataLine(_0x52efdc,_0x2c5982){if(_0x2c5982==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x52efdc);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x52efdc);}
1
+ const a127_0x59095a=a127_0x59ea;(function(_0x43e946,_0x24e600){const _0x4667f2=a127_0x59ea,_0x23b888=_0x43e946();while(!![]){try{const _0x5ebe7b=parseInt(_0x4667f2(0xb7))/0x1*(parseInt(_0x4667f2(0xc1))/0x2)+-parseInt(_0x4667f2(0x99))/0x3*(-parseInt(_0x4667f2(0xa0))/0x4)+-parseInt(_0x4667f2(0x98))/0x5+-parseInt(_0x4667f2(0x95))/0x6+-parseInt(_0x4667f2(0xa4))/0x7+parseInt(_0x4667f2(0xc4))/0x8+parseInt(_0x4667f2(0xbb))/0x9;if(_0x5ebe7b===_0x24e600)break;else _0x23b888['push'](_0x23b888['shift']());}catch(_0x5a71b5){_0x23b888['push'](_0x23b888['shift']());}}}(a127_0x315b,0xdabd3));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';function a127_0x59ea(_0x569cee,_0x4476be){_0x569cee=_0x569cee-0x94;const _0x315b0b=a127_0x315b();let _0x59eae1=_0x315b0b[_0x569cee];return _0x59eae1;}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(_0x1e042e,_0x5bb34c){const _0x2b17fe=a127_0x59ea,_0x95eaef=[];let _0x50e6a3=0x1;while(!![]){const _0x32da6f=await listSqlQueries(_0x1e042e,{'currentPage':_0x50e6a3,'pageSize':PAGE_SIZE,'sqlCode':_0x5bb34c[_0x2b17fe(0x96)],'sqlName':_0x5bb34c['sqlName']}),_0x4e5850=_0x32da6f['tableData']??[];_0x95eaef[_0x2b17fe(0xc8)](..._0x4e5850);if(_0x4e5850[_0x2b17fe(0x9e)]===0x0)break;const _0x5254f9=_0x32da6f[_0x2b17fe(0xae)]?.[_0x2b17fe(0xa1)];if(_0x5254f9!=null?_0x95eaef[_0x2b17fe(0x9e)]>=_0x5254f9:_0x4e5850[_0x2b17fe(0x9e)]<PAGE_SIZE)break;_0x50e6a3++;}return _0x95eaef;}async function ensureSqlContent(_0x5b3bc8){const _0x3c8156=a127_0x59ea;if(_0x5b3bc8[_0x3c8156(0xc3)]!=null&&String(_0x5b3bc8[_0x3c8156(0xc3)])[_0x3c8156(0x9e)]>0x0)return _0x5b3bc8;return getSqlQueryDetail(_0x5b3bc8[_0x3c8156(0x96)]);}export const sqlPull={'service':a127_0x59095a(0xa5),'command':a127_0x59095a(0xac),'description':a127_0x59095a(0xc7),'risk':'write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a127_0x59095a(0xa6),'type':a127_0x59095a(0xab),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':a127_0x59095a(0x94),'type':a127_0x59095a(0xca),'description':a127_0x59095a(0xa3)}],async 'dryRun'(_0x162c72){const _0xbb0a8=a127_0x59095a,_0x1974cc=loadSqlProjectConfig(_0x162c72[_0xbb0a8(0xcb)]),_0x1ec4cc=await readSqlLockFile(_0x1974cc[_0xbb0a8(0x9a)]),{appLock:_0x3ed5c1}=ensureSqlLockScope(_0x1ec4cc??createEmptySqlLock(),_0x1974cc[_0xbb0a8(0xcb)],_0x1974cc['sqlRoot'],_0xbb0a8(0xac)),_0x2856ea=await fetchAllSqlQueries(_0x162c72['appCode'],{'sqlCode':_0x162c72[_0xbb0a8(0xad)](_0xbb0a8(0xb5))||undefined,'sqlName':_0x162c72['str'](_0xbb0a8(0xa6))||undefined}),_0x26116a=[];for(const _0x3454a7 of _0x2856ea){const _0x5cf991=await ensureSqlContent(_0x3454a7),_0x2dca5e=ensureRemoteSqlContent(_0x5cf991),_0x3eef35=detectModeFromSql(_0x5cf991),_0x71980=_0x5cf991[_0xbb0a8(0x97)]?await getDbName(_0x162c72[_0xbb0a8(0xcb)],Number(_0x5cf991[_0xbb0a8(0x97)]))[_0xbb0a8(0xc2)](()=>undefined):undefined,_0x2a3f1b=buildLocalSqlFileContent({'sqlCode':_0x5cf991[_0xbb0a8(0x96)],'sqlName':_0x5cf991[_0xbb0a8(0xb6)],'dbId':_0x5cf991[_0xbb0a8(0x97)]},_0x2dca5e,{'dbName':_0x71980,'mode':_0x3eef35,'syncedAt':new Date()[_0xbb0a8(0x9f)](),'description':_0x5cf991['description']}),_0x1f22c8=buildSqlLockEntry(_0x5cf991,_0x2dca5e,'',{'dbName':_0x71980}),_0x46d0e5=resolveLocalSqlFilePath(_0x1974cc,_0x5cf991[_0xbb0a8(0x96)],_0x1f22c8);let _0x455b56='would_pull',_0x560bbf;if(await fileExists(_0x46d0e5)){const _0x4c0bd6=await readFile(_0x46d0e5,_0xbb0a8(0xba));isEquivalentPulledSqlFile(_0x4c0bd6,_0x2a3f1b,_0x3eef35)?(_0x455b56=_0xbb0a8(0xaa),_0x560bbf=_0xbb0a8(0xcd)):(_0x455b56=_0xbb0a8(0xb0),_0x560bbf='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x26116a[_0xbb0a8(0xc8)]({'sqlCode':_0x5cf991[_0xbb0a8(0x96)],'sqlName':_0x5cf991[_0xbb0a8(0xb6)],'filePath':_0x46d0e5,'status':_0x455b56,'reason':_0x560bbf});}return{'method':_0xbb0a8(0xa2),'url':_0xbb0a8(0xb2),'body':{'appCode':_0x162c72[_0xbb0a8(0xcb)],'sqlCode':_0x162c72[_0xbb0a8(0xad)](_0xbb0a8(0xb5))||null,'sqlName':_0x162c72['str'](_0xbb0a8(0xa6))||null,'files':_0x26116a},'description':_0xbb0a8(0xb9)+_0x26116a[_0xbb0a8(0x9e)]+_0xbb0a8(0xa9)+_0x1974cc['sqlRootDir']};},async 'execute'(_0x2f192e){const _0x5b82d5=a127_0x59095a,_0x29abbc=loadSqlProjectConfig(_0x2f192e[_0x5b82d5(0xcb)]),_0x4208d6=await readSqlLockFile(_0x29abbc['lockFilePath']),{lockData:_0x3408a8,appLock:_0x302939}=ensureSqlLockScope(_0x4208d6??createEmptySqlLock(),_0x29abbc['appCode'],_0x29abbc[_0x5b82d5(0x9c)],_0x5b82d5(0xac)),_0x20903a=_0x2f192e['bool']('force'),_0x5e0c03=await fetchAllSqlQueries(_0x2f192e[_0x5b82d5(0xcb)],{'sqlCode':_0x2f192e['str']('sqlcode')||undefined,'sqlName':_0x2f192e[_0x5b82d5(0xad)](_0x5b82d5(0xa6))||undefined});if(_0x5e0c03[_0x5b82d5(0x9e)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x5b82d5(0xb8)};const _0x4bcc54=[],_0x1742e4=[];for(const _0x38b5c1 of _0x5e0c03){try{_0x4bcc54[_0x5b82d5(0xc8)](await ensureSqlContent(_0x38b5c1));}catch(_0x1d1e91){_0x1742e4['push']({'sqlCode':_0x38b5c1[_0x5b82d5(0x96)],'error':_0x1d1e91 instanceof Error?_0x1d1e91[_0x5b82d5(0x9b)]:String(_0x1d1e91)});}}if(_0x20903a&&!_0x2f192e[_0x5b82d5(0xc6)]){let _0x4ac106=![];for(const _0x2818aa of _0x4bcc54){const _0x15c4bd=detectModeFromSql(_0x2818aa),_0x3f7de4=_0x2818aa[_0x5b82d5(0x97)]?await getDbName(_0x2f192e[_0x5b82d5(0xcb)],Number(_0x2818aa[_0x5b82d5(0x97)]))[_0x5b82d5(0xc2)](()=>undefined):undefined,_0x4d9794=buildLocalSqlFileContent({'sqlCode':_0x2818aa[_0x5b82d5(0x96)],'sqlName':_0x2818aa['sqlName'],'dbId':_0x2818aa['dbId']},ensureRemoteSqlContent(_0x2818aa),{'dbName':_0x3f7de4,'mode':_0x15c4bd,'syncedAt':new Date()[_0x5b82d5(0x9f)](),'description':_0x2818aa['description']}),_0x73deef=resolveLocalSqlFilePath(_0x29abbc,_0x2818aa[_0x5b82d5(0x96)],buildSqlLockEntry(_0x2818aa,ensureRemoteSqlContent(_0x2818aa),'',{'dbName':_0x3f7de4}));if(await fileExists(_0x73deef)){const _0x579935=await readFile(_0x73deef,'utf8');if(!isEquivalentPulledSqlFile(_0x579935,_0x4d9794,_0x15c4bd)){_0x4ac106=!![];break;}}}if(_0x4ac106){const _0x401e6f=await confirmForceOverwrite(_0x5b82d5(0xaf));if(!_0x401e6f)throw CliErrors['cancelled'](_0x5b82d5(0xa7));}}const _0x44ae6b=cloneSqlLockData(_0x3408a8),_0xe0b35d=_0x44ae6b[_0x5b82d5(0xc5)][_0x29abbc[_0x5b82d5(0xcb)]],_0x201ab2=[],_0x5ae448=[];for(const _0x1b256c of _0x4bcc54){const _0x12c570=_0xe0b35d[_0x5b82d5(0x9d)][_0x1b256c[_0x5b82d5(0x96)]],_0x1ba3fb=ensureRemoteSqlContent(_0x1b256c),_0x4a5b78=detectModeFromSql(_0x1b256c),_0x24e44c=_0x1b256c[_0x5b82d5(0x97)]?await getDbName(_0x2f192e[_0x5b82d5(0xcb)],Number(_0x1b256c['dbId']))[_0x5b82d5(0xc2)](()=>undefined):undefined,_0x1781ce=buildLocalSqlFileContent({'sqlCode':_0x1b256c['sqlCode'],'sqlName':_0x1b256c['sqlName'],'dbId':_0x1b256c[_0x5b82d5(0x97)]},_0x1ba3fb,{'dbName':_0x24e44c,'mode':_0x4a5b78,'syncedAt':new Date()['toISOString'](),'description':_0x1b256c[_0x5b82d5(0xc9)]}),_0x57e7d3=buildSqlLockEntry(_0x1b256c,_0x1ba3fb,computeSqlContentHash(_0x1781ce),{'dbName':_0x24e44c}),_0x3b3ccd=_0x57e7d3[_0x5b82d5(0xb1)],_0x191aac=join(_0x29abbc['sqlRootDir'],_0x3b3ccd);try{if(await fileExists(_0x191aac)){const _0x375900=await readFile(_0x191aac,_0x5b82d5(0xba));if(isEquivalentPulledSqlFile(_0x375900,_0x1781ce,_0x4a5b78)){_0x5ae448[_0x5b82d5(0xc8)]({'sqlCode':_0x1b256c[_0x5b82d5(0x96)],'reason':_0x5b82d5(0xcd)}),_0xe0b35d[_0x5b82d5(0x9d)][_0x1b256c['sqlCode']]={..._0x57e7d3,'hash':computeSqlContentHash(_0x375900),'path':_0x3b3ccd};continue;}if(!_0x20903a){_0x5ae448[_0x5b82d5(0xc8)]({'sqlCode':_0x1b256c['sqlCode'],'reason':_0x5b82d5(0xb3)});continue;}}const _0x23d3a9=_0x12c570?.[_0x5b82d5(0xb1)]?join(_0x29abbc['sqlRootDir'],_0x12c570[_0x5b82d5(0xb1)]):undefined;_0x23d3a9&&_0x23d3a9!==_0x191aac&&await fileExists(_0x23d3a9)&&await rm(_0x23d3a9,{'force':!![]}),await ensureParentDirectory(_0x191aac),await writeFile(_0x191aac,_0x1781ce,_0x5b82d5(0xba)),_0xe0b35d[_0x5b82d5(0x9d)][_0x1b256c[_0x5b82d5(0x96)]]={..._0x57e7d3,'path':_0x3b3ccd},_0x201ab2[_0x5b82d5(0xc8)]({'sqlCode':_0x1b256c['sqlCode'],'filePath':_0x191aac});}catch(_0x19bd20){_0x1742e4[_0x5b82d5(0xc8)]({'sqlCode':_0x1b256c[_0x5b82d5(0x96)],'error':_0x19bd20 instanceof Error?_0x19bd20['message']:String(_0x19bd20)});}}return _0xe0b35d['lastSync']=new Date()[_0x5b82d5(0x9f)](),await writeSqlLockFile(_0x29abbc[_0x5b82d5(0x9a)],_0x44ae6b),{'ok':_0x1742e4['length']===0x0,'data':{'pulled':_0x201ab2,'skipped':_0x5ae448,'failed':_0x1742e4},'message':'Pull\x20complete:\x20'+_0x201ab2[_0x5b82d5(0x9e)]+_0x5b82d5(0xbe)+_0x5ae448[_0x5b82d5(0x9e)]+'\x20skipped,\x20'+_0x1742e4[_0x5b82d5(0x9e)]+_0x5b82d5(0xcc)};}};function detectModeFromSql(_0x5f0ce4){const _0x3d091c=a127_0x59095a,_0x301969=ensureRemoteSqlContent(_0x5f0ce4),_0x513726=stripLocalSqlMetadata(_0x301969,_0x3d091c(0xb4))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x3d091c(0xbc)](_0x513726))return _0x3d091c(0xb4);return _0x3d091c(0xa5);}function a127_0x315b(){const _0x3c16f8=['test','split','\x20written,\x20','filter','join','52504fpxGYh','catch','sqlContent','3269872ftRwIC','apps','nonInteractive','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','push','description','boolean','appCode','\x20failed','unchanged','force','2075574WjpeuG','sqlCode','dbId','6624770paYFFi','794001CYGTFF','lockFilePath','message','sqlRoot','sqls','length','toISOString','20OeuePm','totalCount','POST','Force\x20overwrite\x20local\x20unsynced\x20changes','5673857lKxbNS','sql','name','Force\x20pull\x20cancelled.','replace','\x20SQL\x20file(s)\x20into\x20','skipped','string','pull','str','paging','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','conflict','path','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','local\x20differs\x20from\x20remote','mybatisXml','sqlcode','sqlName','41uZpKhS','No\x20remote\x20SQL\x20queries\x20matched.','Would\x20pull\x20','utf8','5120892KKbDcB'];a127_0x315b=function(){return _0x3c16f8;};return a127_0x315b();}function isEquivalentPulledSqlFile(_0x142ba1,_0x17546c,_0x2d51c7){return normalizePullComparableContent(_0x142ba1,_0x2d51c7)===normalizePullComparableContent(_0x17546c,_0x2d51c7);}function normalizePullComparableContent(_0x2ad8e3,_0x124a2e){const _0x259878=a127_0x59095a,_0x191c2b=_0x2ad8e3[_0x259878(0xa8)](/\r\n/g,'\x0a')[_0x259878(0xbd)]('\x0a'),_0x43b221=_0x191c2b[_0x259878(0xbf)](_0x400610=>!isSyncedAtMetadataLine(_0x400610,_0x124a2e));return _0x43b221[_0x259878(0xc0)]('\x0a');}function isSyncedAtMetadataLine(_0x233739,_0x4e3149){const _0x4add92=a127_0x59095a;if(_0x4e3149===_0x4add92(0xb4))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x4add92(0xbc)](_0x233739);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x4add92(0xbc)](_0x233739);}
@@ -1 +1 @@
1
- const a127_0x4d9fa9=a127_0x1956;(function(_0x2a2886,_0x1b0f65){const _0x1c32ed=a127_0x1956,_0xdd75d=_0x2a2886();while(!![]){try{const _0x263d86=-parseInt(_0x1c32ed(0x144))/0x1*(parseInt(_0x1c32ed(0x14f))/0x2)+-parseInt(_0x1c32ed(0x169))/0x3*(parseInt(_0x1c32ed(0x171))/0x4)+parseInt(_0x1c32ed(0x13b))/0x5*(parseInt(_0x1c32ed(0x161))/0x6)+-parseInt(_0x1c32ed(0x15c))/0x7*(-parseInt(_0x1c32ed(0x142))/0x8)+-parseInt(_0x1c32ed(0x133))/0x9*(parseInt(_0x1c32ed(0x14e))/0xa)+parseInt(_0x1c32ed(0x151))/0xb*(-parseInt(_0x1c32ed(0x14c))/0xc)+parseInt(_0x1c32ed(0x163))/0xd;if(_0x263d86===_0x1b0f65)break;else _0xdd75d['push'](_0xdd75d['shift']());}catch(_0x2b1ad4){_0xdd75d['push'](_0xdd75d['shift']());}}}(a127_0x83ea,0x53b85));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';function a127_0x83ea(){const _0x205b61=['remoteId','sqlCode','push','length','dbName','993XAyjUF','trashDir','replace','projectRoot','filter','sqlRoot','Push\x20complete:\x20','Would\x20push\x20','3868hrKTaF','exec','sqlName','\x20SQL\x20file(s)','508779zUnwTT','isFinite','\x20skipped,\x20','path','bool','has','join','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','35cqttvS','hash','/smartapi/custom/updateUserCustomSql','map','\x20failed','No\x20database\x20matches\x20local\x20directory\x20\x22','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','1092008TaaDBR','lockFilePath','431kvoYSU','utf8','sqlRootDir','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','sqls','sqlConfig','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','str','84tIJCbn','appCode','80BpFdoW','2282TIPQoI','POST','492877iVJOBU','sqlcode','get','\x20pushed,\x20','startsWith','force','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','relativePath','version','set','filePath','7PxVDeX','validation','toISOString','sql','dbId','434874HNCPam','mode','16598504aWeBZJ'];a127_0x83ea=function(){return _0x205b61;};return a127_0x83ea();}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';function a127_0x1956(_0x3d5225,_0x3bf40f){_0x3d5225=_0x3d5225-0x131;const _0x83ea6=a127_0x83ea();let _0x195688=_0x83ea6[_0x3d5225];return _0x195688;}import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x1e5e44,_0x3bc290,_0x24b38a){const _0x1a8aa2=a127_0x1956,_0x4cc198=await scanLocalSqlQueries(_0x1e5e44),_0x59eea7=new Map();for(const _0x517bab of _0x4cc198){if(_0x24b38a&&_0x517bab[_0x1a8aa2(0x165)]!==_0x24b38a)continue;const _0x4d6ef6=_0x59eea7[_0x1a8aa2(0x153)](_0x517bab[_0x1a8aa2(0x165)])??[];_0x4d6ef6['push'](_0x517bab),_0x59eea7[_0x1a8aa2(0x15a)](_0x517bab[_0x1a8aa2(0x165)],_0x4d6ef6);}if(_0x24b38a&&!_0x59eea7[_0x1a8aa2(0x138)](_0x24b38a))throw CliErrors[_0x1a8aa2(0x15d)]('Local\x20SQL\x20not\x20found:\x20'+_0x24b38a);const _0x20d65b=[];for(const [_0x39223a,_0x1cfb24]of _0x59eea7['entries']()){if(_0x1cfb24[_0x1a8aa2(0x167)]===0x1){_0x20d65b[_0x1a8aa2(0x166)](_0x1cfb24[0x0]);continue;}const _0xfe6d35=_0x3bc290[_0x1a8aa2(0x148)][_0x39223a],_0x1b4dd3=_0xfe6d35?.['path'],_0x3d181e=_0x1b4dd3?_0x1cfb24[_0x1a8aa2(0x16d)](_0x1130fb=>_0x1130fb[_0x1a8aa2(0x158)]!==_0x1b4dd3):_0x1cfb24;if(_0xfe6d35&&_0x3d181e[_0x1a8aa2(0x167)]===0x1){_0x20d65b[_0x1a8aa2(0x166)](_0x3d181e[0x0]);continue;}throw CliErrors[_0x1a8aa2(0x15d)](_0x1a8aa2(0x13a)+_0x39223a+_0x1a8aa2(0x157));}return _0x20d65b;}export const sqlPush={'service':a127_0x4d9fa9(0x15f),'command':a127_0x4d9fa9(0x166),'description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':a127_0x4d9fa9(0x147)}],async 'dryRun'(_0x4bc7e7){const _0x9228e=a127_0x4d9fa9,_0x4871c0=loadSqlProjectConfig(_0x4bc7e7[_0x9228e(0x14d)]),_0x3aea27=await readSqlLockFile(_0x4871c0['lockFilePath']),{appLock:_0x45f756}=ensureSqlLockScope(_0x3aea27??createEmptySqlLock(),_0x4bc7e7[_0x9228e(0x14d)],_0x4871c0['sqlRoot'],_0x9228e(0x166)),_0x51b2dc=await getTargetSqlQueries(_0x4871c0,_0x45f756,_0x4bc7e7[_0x9228e(0x14b)](_0x9228e(0x152))||undefined),_0x208764=[];for(const _0x54aade of _0x51b2dc){const _0x1a935c=await computeSqlFileHash(_0x54aade[_0x9228e(0x15b)]),_0x4af8da=_0x45f756[_0x9228e(0x148)][_0x54aade[_0x9228e(0x165)]],_0x3c46bc=!!_0x4af8da&&(_0x4af8da[_0x9228e(0x136)]!==_0x54aade['relativePath']||!!_0x54aade[_0x9228e(0x131)]&&_0x4af8da['sqlName']!==_0x54aade[_0x9228e(0x131)]);if(!_0x4bc7e7[_0x9228e(0x137)](_0x9228e(0x156))&&_0x4af8da&&_0x4af8da[_0x9228e(0x13c)]===_0x1a935c&&!_0x3c46bc)continue;_0x208764[_0x9228e(0x166)](_0x54aade[_0x9228e(0x165)]);}return{'method':_0x9228e(0x150),'url':_0x9228e(0x13d),'body':{'sqlCodes':_0x208764,'appCode':_0x4bc7e7[_0x9228e(0x14d)]},'description':_0x9228e(0x170)+_0x208764[_0x9228e(0x167)]+_0x9228e(0x132)};},async 'execute'(_0x438320){const _0x37f7bb=a127_0x4d9fa9,_0x32c2af=loadSqlProjectConfig(_0x438320[_0x37f7bb(0x14d)]),_0x452a1e=await readSqlLockFile(_0x32c2af[_0x37f7bb(0x143)]),{lockData:_0x43faaf,appLock:_0x10886a}=ensureSqlLockScope(_0x452a1e??createEmptySqlLock(),_0x438320[_0x37f7bb(0x14d)],_0x32c2af[_0x37f7bb(0x16e)],_0x37f7bb(0x166)),_0x20fe39=await getTargetSqlQueries(_0x32c2af,_0x10886a,_0x438320[_0x37f7bb(0x14b)]('sqlcode')||undefined);if(_0x20fe39[_0x37f7bb(0x167)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x1371d5=[],_0x2cd18a=[],_0x261130=[];for(const _0x247a7a of _0x20fe39){const _0x21726b=_0x10886a[_0x37f7bb(0x148)][_0x247a7a[_0x37f7bb(0x165)]];if(!_0x21726b){_0x261130[_0x37f7bb(0x166)]({'sqlCode':_0x247a7a['sqlCode'],'error':_0x37f7bb(0x14a)});continue;}try{const _0x1c1583=await computeSqlFileHash(_0x247a7a[_0x37f7bb(0x15b)]),_0x165815=_0x21726b[_0x37f7bb(0x136)]!==_0x247a7a['relativePath']||!!_0x247a7a[_0x37f7bb(0x131)]&&_0x21726b[_0x37f7bb(0x131)]!==_0x247a7a[_0x37f7bb(0x131)];if(!_0x438320['bool']('force')&&_0x21726b[_0x37f7bb(0x13c)]===_0x1c1583&&!_0x165815){_0x2cd18a[_0x37f7bb(0x166)]({'sqlCode':_0x247a7a[_0x37f7bb(0x165)],'reason':'unchanged'});continue;}if(_0x21726b[_0x37f7bb(0x159)]==null){_0x261130['push']({'sqlCode':_0x247a7a[_0x37f7bb(0x165)],'error':_0x37f7bb(0x141)});continue;}const _0x367337=await readFile(_0x247a7a['filePath'],_0x37f7bb(0x145)),_0x294843=stripLocalSqlMetadata(_0x367337,_0x247a7a[_0x37f7bb(0x162)]),_0x930af7=_0x247a7a[_0x37f7bb(0x131)]||_0x21726b[_0x37f7bb(0x131)],_0x10823f=await resolveTargetDbBinding(_0x438320[_0x37f7bb(0x14d)],_0x247a7a,_0x21726b),_0x483428=await updateSqlQuery({'id':_0x21726b[_0x37f7bb(0x164)],'appCode':_0x438320[_0x37f7bb(0x14d)],'sqlCode':_0x247a7a[_0x37f7bb(0x165)],'sqlName':_0x930af7,'dbId':_0x10823f['dbId'],'version':_0x21726b['version'],'sqlContent':_0x294843,'sqlConfig':_0x21726b[_0x37f7bb(0x149)]??undefined}),_0x25c35c=_0x483428[_0x37f7bb(0x160)]?await getDbName(_0x438320[_0x37f7bb(0x14d)],Number(_0x483428['dbId']))['catch'](()=>_0x10823f[_0x37f7bb(0x168)]):_0x10823f[_0x37f7bb(0x168)];_0x10886a[_0x37f7bb(0x148)][_0x247a7a[_0x37f7bb(0x165)]]={...buildSqlLockEntry(_0x483428,_0x294843,_0x1c1583,{'dbName':_0x25c35c}),'path':_0x247a7a[_0x37f7bb(0x158)],'mode':_0x21726b[_0x37f7bb(0x162)]},await archivePreviousSqlFileIfNeeded(_0x32c2af,_0x21726b[_0x37f7bb(0x136)],_0x247a7a[_0x37f7bb(0x158)]),_0x1371d5[_0x37f7bb(0x166)]({'sqlCode':_0x247a7a[_0x37f7bb(0x165)],'remoteId':_0x21726b[_0x37f7bb(0x164)]});}catch(_0x7b2eff){_0x261130['push']({'sqlCode':_0x247a7a['sqlCode'],'error':_0x7b2eff instanceof Error?_0x7b2eff['message']:String(_0x7b2eff)});}}return _0x10886a['lastSync']=new Date()[_0x37f7bb(0x15e)](),await writeSqlLockFile(_0x32c2af[_0x37f7bb(0x143)],_0x43faaf),{'ok':_0x261130['length']===0x0,'data':{'pushed':_0x1371d5,'skipped':_0x2cd18a,'failed':_0x261130},'message':_0x37f7bb(0x16f)+_0x1371d5[_0x37f7bb(0x167)]+_0x37f7bb(0x154)+_0x2cd18a[_0x37f7bb(0x167)]+_0x37f7bb(0x135)+_0x261130[_0x37f7bb(0x167)]+_0x37f7bb(0x13f)};}};async function archivePreviousSqlFileIfNeeded(_0x5d7f83,_0x1b05d7,_0x4e748a){const _0x515d7f=a127_0x4d9fa9;if(!_0x1b05d7||_0x1b05d7===_0x4e748a)return;const _0x3b49c1=join(_0x5d7f83[_0x515d7f(0x146)],_0x1b05d7);if(!await fileExists(_0x3b49c1))return;const _0x78c716=await moveToTrash(_0x5d7f83[_0x515d7f(0x16c)],_0x5d7f83[_0x515d7f(0x16a)],_0x3b49c1);await cleanupEmptyDirectories(dirname(_0x3b49c1),_0x5d7f83['sqlRootDir']),void _0x78c716;}async function moveToTrash(_0x4c8fd4,_0x40746e,_0x1394a5){const _0x5082ac=a127_0x4d9fa9,_0x301bbb=new Date()[_0x5082ac(0x15e)]()[_0x5082ac(0x16b)](/[:.]/g,'-'),_0x278883=relative(_0x4c8fd4,_0x1394a5),_0x2b8113=join(_0x40746e,_0x301bbb,_0x278883);return await mkdir(dirname(_0x2b8113),{'recursive':!![]}),await rename(_0x1394a5,_0x2b8113),_0x2b8113;}async function cleanupEmptyDirectories(_0x4a73b7,_0x5dbb9a){const _0x29b4f7=a127_0x4d9fa9;let _0x121c20=resolve(_0x4a73b7);const _0x524bac=resolve(_0x5dbb9a);while(_0x121c20[_0x29b4f7(0x155)](''+_0x524bac+sep)||_0x121c20===_0x524bac){if(_0x121c20===_0x524bac)return;try{const _0x421bad=await readdir(_0x121c20);if(_0x421bad[_0x29b4f7(0x167)]>0x0)return;await rmdir(_0x121c20);}catch{return;}_0x121c20=dirname(_0x121c20);}}async function resolveTargetDbBinding(_0x2a0c43,_0x35df56,_0x4012d1){const _0xfd9830=a127_0x4d9fa9,_0x25529f=_0x35df56['dbDirectory'];if(!_0x25529f)return{'dbId':_0x4012d1[_0xfd9830(0x160)],'dbName':_0x4012d1['dbName']};const _0x49a850=buildDbDirectoryName(_0x4012d1[_0xfd9830(0x168)],_0x4012d1['dbId']);if(_0x25529f===_0x49a850)return{'dbId':_0x4012d1[_0xfd9830(0x160)],'dbName':_0x4012d1[_0xfd9830(0x168)]};const _0x34e4ba=parseExplicitDbDirectory(_0x25529f);if(_0x34e4ba!=null)return{'dbId':_0x34e4ba,'dbName':await getDbName(_0x2a0c43,_0x34e4ba)['catch'](()=>undefined)};const _0x33b8ff=await listDatabases(_0x2a0c43),_0x512e9b=_0x33b8ff[_0xfd9830(0x16d)](_0x4b2556=>buildDbDirectoryName(_0x4b2556[_0xfd9830(0x168)],_0x4b2556[_0xfd9830(0x160)])===_0x25529f);if(_0x512e9b[_0xfd9830(0x167)]===0x1)return{'dbId':_0x512e9b[0x0]['dbId'],'dbName':_0x512e9b[0x0][_0xfd9830(0x168)]};if(_0x512e9b[_0xfd9830(0x167)]===0x0)throw CliErrors[_0xfd9830(0x15d)](_0xfd9830(0x140)+_0x25529f+'\x22\x20for\x20sqlCode\x20'+_0x35df56['sqlCode']+'.');const _0x1c36ec=_0x512e9b[_0xfd9830(0x13e)](_0xdc1b19=>_0xdc1b19[_0xfd9830(0x168)]+'\x20('+_0xdc1b19[_0xfd9830(0x160)]+')')[_0xfd9830(0x139)](',\x20');throw CliErrors['validation']('Local\x20directory\x20\x22'+_0x25529f+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x35df56['sqlCode']+':\x20'+_0x1c36ec);}function parseExplicitDbDirectory(_0x14fb4d){const _0xc853be=a127_0x4d9fa9,_0x2da4da=/^db-(\d+)$/[_0xc853be(0x172)](_0x14fb4d);if(!_0x2da4da)return null;const _0x22714b=Number(_0x2da4da[0x1]);return Number[_0xc853be(0x134)](_0x22714b)&&_0x22714b>0x0?_0x22714b:null;}
1
+ const a128_0x1ba9e3=a128_0x145e;(function(_0x4e84e7,_0x177a01){const _0x3e0dbb=a128_0x145e,_0x273c70=_0x4e84e7();while(!![]){try{const _0x2e3a3c=-parseInt(_0x3e0dbb(0x15e))/0x1*(-parseInt(_0x3e0dbb(0x15b))/0x2)+parseInt(_0x3e0dbb(0x162))/0x3*(parseInt(_0x3e0dbb(0x17d))/0x4)+parseInt(_0x3e0dbb(0x17c))/0x5+-parseInt(_0x3e0dbb(0x15c))/0x6*(parseInt(_0x3e0dbb(0x186))/0x7)+-parseInt(_0x3e0dbb(0x180))/0x8*(parseInt(_0x3e0dbb(0x167))/0x9)+-parseInt(_0x3e0dbb(0x18b))/0xa+parseInt(_0x3e0dbb(0x17b))/0xb*(parseInt(_0x3e0dbb(0x160))/0xc);if(_0x2e3a3c===_0x177a01)break;else _0x273c70['push'](_0x273c70['shift']());}catch(_0x2e9933){_0x273c70['push'](_0x273c70['shift']());}}}(a128_0x5103,0x6a93d));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';function a128_0x5103(){const _0x19978f=['replace','lastSync','26978CUKbln','\x22\x20for\x20sqlCode\x20','remoteId','\x20SQL\x20file(s)','lockFilePath','7056120lOxCUz','sqlCode','sqlRoot','sqlName','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','catch','Push\x20complete:\x20','filter','path','version','map','dbDirectory','sql','\x20pushed,\x20','\x20failed','sqlcode','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','4JKANyU','660zFkMJB','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','397031Xtpdtu','exec','5781576zuaFmu','No\x20local\x20SQL\x20files\x20found.','237oEUHfP','push','bool','length','sqlConfig','657RunQpM','\x20skipped,\x20','filePath','startsWith','unchanged','join','appCode','toISOString','Would\x20push\x20','sqlRootDir','message','entries','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','dbName','hash','utf8','dbId','POST','Local\x20SQL\x20not\x20found:\x20','force','11jjwjlc','3584530StlviT','8VOSFOk','sqls','validation','46776gKwiTq','set','mode','relativePath'];a128_0x5103=function(){return _0x19978f;};return a128_0x5103();}import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x3fc62d,_0x5be10c,_0x4d4a2f){const _0x1212ce=a128_0x145e,_0x12b524=await scanLocalSqlQueries(_0x3fc62d),_0x4739b1=new Map();for(const _0x51c6e6 of _0x12b524){if(_0x4d4a2f&&_0x51c6e6[_0x1212ce(0x18c)]!==_0x4d4a2f)continue;const _0x2681d3=_0x4739b1['get'](_0x51c6e6[_0x1212ce(0x18c)])??[];_0x2681d3[_0x1212ce(0x163)](_0x51c6e6),_0x4739b1[_0x1212ce(0x181)](_0x51c6e6[_0x1212ce(0x18c)],_0x2681d3);}if(_0x4d4a2f&&!_0x4739b1['has'](_0x4d4a2f))throw CliErrors[_0x1212ce(0x17f)](_0x1212ce(0x179)+_0x4d4a2f);const _0x11f021=[];for(const [_0xc4da41,_0x1322cf]of _0x4739b1[_0x1212ce(0x172)]()){if(_0x1322cf[_0x1212ce(0x165)]===0x1){_0x11f021['push'](_0x1322cf[0x0]);continue;}const _0x1eb25c=_0x5be10c[_0x1212ce(0x17e)][_0xc4da41],_0x4dff02=_0x1eb25c?.['path'],_0x47c4b0=_0x4dff02?_0x1322cf[_0x1212ce(0x192)](_0x58c7b5=>_0x58c7b5[_0x1212ce(0x183)]!==_0x4dff02):_0x1322cf;if(_0x1eb25c&&_0x47c4b0[_0x1212ce(0x165)]===0x1){_0x11f021[_0x1212ce(0x163)](_0x47c4b0[0x0]);continue;}throw CliErrors['validation'](_0x1212ce(0x15d)+_0xc4da41+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x11f021;}export const sqlPush={'service':a128_0x1ba9e3(0x197),'command':a128_0x1ba9e3(0x163),'description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a128_0x1ba9e3(0x17a),'type':'boolean','description':a128_0x1ba9e3(0x173)}],async 'dryRun'(_0x461a6e){const _0x3225f8=a128_0x1ba9e3,_0x28ac9a=loadSqlProjectConfig(_0x461a6e[_0x3225f8(0x16d)]),_0x41fa7c=await readSqlLockFile(_0x28ac9a['lockFilePath']),{appLock:_0x18b212}=ensureSqlLockScope(_0x41fa7c??createEmptySqlLock(),_0x461a6e[_0x3225f8(0x16d)],_0x28ac9a['sqlRoot'],_0x3225f8(0x163)),_0x2d2c2f=await getTargetSqlQueries(_0x28ac9a,_0x18b212,_0x461a6e['str'](_0x3225f8(0x159))||undefined),_0x275eda=[];for(const _0x2576c2 of _0x2d2c2f){const _0x5564cc=await computeSqlFileHash(_0x2576c2[_0x3225f8(0x169)]),_0x3ebbae=_0x18b212[_0x3225f8(0x17e)][_0x2576c2['sqlCode']],_0x35c1db=!!_0x3ebbae&&(_0x3ebbae[_0x3225f8(0x193)]!==_0x2576c2[_0x3225f8(0x183)]||!!_0x2576c2[_0x3225f8(0x18e)]&&_0x3ebbae[_0x3225f8(0x18e)]!==_0x2576c2[_0x3225f8(0x18e)]);if(!_0x461a6e[_0x3225f8(0x164)](_0x3225f8(0x17a))&&_0x3ebbae&&_0x3ebbae[_0x3225f8(0x175)]===_0x5564cc&&!_0x35c1db)continue;_0x275eda[_0x3225f8(0x163)](_0x2576c2[_0x3225f8(0x18c)]);}return{'method':_0x3225f8(0x178),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x275eda,'appCode':_0x461a6e[_0x3225f8(0x16d)]},'description':_0x3225f8(0x16f)+_0x275eda[_0x3225f8(0x165)]+_0x3225f8(0x189)};},async 'execute'(_0x4a1570){const _0x565f24=a128_0x1ba9e3,_0x407d81=loadSqlProjectConfig(_0x4a1570[_0x565f24(0x16d)]),_0x19cf8d=await readSqlLockFile(_0x407d81['lockFilePath']),{lockData:_0x5c9412,appLock:_0x392cfe}=ensureSqlLockScope(_0x19cf8d??createEmptySqlLock(),_0x4a1570[_0x565f24(0x16d)],_0x407d81[_0x565f24(0x18d)],'push'),_0x2090ea=await getTargetSqlQueries(_0x407d81,_0x392cfe,_0x4a1570['str'](_0x565f24(0x159))||undefined);if(_0x2090ea[_0x565f24(0x165)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x565f24(0x161)};const _0x29e60f=[],_0x2fb909=[],_0x2fab0c=[];for(const _0x103aef of _0x2090ea){const _0x5e4fd4=_0x392cfe['sqls'][_0x103aef['sqlCode']];if(!_0x5e4fd4){_0x2fab0c['push']({'sqlCode':_0x103aef['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 _0x50564d=await computeSqlFileHash(_0x103aef[_0x565f24(0x169)]),_0xb44578=_0x5e4fd4[_0x565f24(0x193)]!==_0x103aef['relativePath']||!!_0x103aef[_0x565f24(0x18e)]&&_0x5e4fd4[_0x565f24(0x18e)]!==_0x103aef[_0x565f24(0x18e)];if(!_0x4a1570[_0x565f24(0x164)](_0x565f24(0x17a))&&_0x5e4fd4[_0x565f24(0x175)]===_0x50564d&&!_0xb44578){_0x2fb909[_0x565f24(0x163)]({'sqlCode':_0x103aef['sqlCode'],'reason':_0x565f24(0x16b)});continue;}if(_0x5e4fd4[_0x565f24(0x194)]==null){_0x2fab0c[_0x565f24(0x163)]({'sqlCode':_0x103aef[_0x565f24(0x18c)],'error':_0x565f24(0x18f)});continue;}const _0x23fc5c=await readFile(_0x103aef['filePath'],_0x565f24(0x176)),_0x1a5454=stripLocalSqlMetadata(_0x23fc5c,_0x103aef[_0x565f24(0x182)]),_0x15122c=_0x103aef[_0x565f24(0x18e)]||_0x5e4fd4[_0x565f24(0x18e)],_0x28cd23=await resolveTargetDbBinding(_0x4a1570[_0x565f24(0x16d)],_0x103aef,_0x5e4fd4),_0x264a39=await updateSqlQuery({'id':_0x5e4fd4[_0x565f24(0x188)],'appCode':_0x4a1570[_0x565f24(0x16d)],'sqlCode':_0x103aef[_0x565f24(0x18c)],'sqlName':_0x15122c,'dbId':_0x28cd23[_0x565f24(0x177)],'version':_0x5e4fd4['version'],'sqlContent':_0x1a5454,'sqlConfig':_0x5e4fd4[_0x565f24(0x166)]??undefined}),_0x3482fa=_0x264a39[_0x565f24(0x177)]?await getDbName(_0x4a1570[_0x565f24(0x16d)],Number(_0x264a39[_0x565f24(0x177)]))[_0x565f24(0x190)](()=>_0x28cd23[_0x565f24(0x174)]):_0x28cd23[_0x565f24(0x174)];_0x392cfe[_0x565f24(0x17e)][_0x103aef[_0x565f24(0x18c)]]={...buildSqlLockEntry(_0x264a39,_0x1a5454,_0x50564d,{'dbName':_0x3482fa}),'path':_0x103aef[_0x565f24(0x183)],'mode':_0x5e4fd4['mode']},await archivePreviousSqlFileIfNeeded(_0x407d81,_0x5e4fd4[_0x565f24(0x193)],_0x103aef['relativePath']),_0x29e60f[_0x565f24(0x163)]({'sqlCode':_0x103aef[_0x565f24(0x18c)],'remoteId':_0x5e4fd4[_0x565f24(0x188)]});}catch(_0x2ca5a8){_0x2fab0c[_0x565f24(0x163)]({'sqlCode':_0x103aef[_0x565f24(0x18c)],'error':_0x2ca5a8 instanceof Error?_0x2ca5a8[_0x565f24(0x171)]:String(_0x2ca5a8)});}}return _0x392cfe[_0x565f24(0x185)]=new Date()[_0x565f24(0x16e)](),await writeSqlLockFile(_0x407d81[_0x565f24(0x18a)],_0x5c9412),{'ok':_0x2fab0c[_0x565f24(0x165)]===0x0,'data':{'pushed':_0x29e60f,'skipped':_0x2fb909,'failed':_0x2fab0c},'message':_0x565f24(0x191)+_0x29e60f[_0x565f24(0x165)]+_0x565f24(0x157)+_0x2fb909[_0x565f24(0x165)]+_0x565f24(0x168)+_0x2fab0c[_0x565f24(0x165)]+_0x565f24(0x158)};}};async function archivePreviousSqlFileIfNeeded(_0x2bf2ac,_0x391351,_0x3e2cfb){const _0x213c30=a128_0x1ba9e3;if(!_0x391351||_0x391351===_0x3e2cfb)return;const _0x449b08=join(_0x2bf2ac[_0x213c30(0x170)],_0x391351);if(!await fileExists(_0x449b08))return;const _0x2eaf85=await moveToTrash(_0x2bf2ac['projectRoot'],_0x2bf2ac['trashDir'],_0x449b08);await cleanupEmptyDirectories(dirname(_0x449b08),_0x2bf2ac[_0x213c30(0x170)]),void _0x2eaf85;}async function moveToTrash(_0x43e9d8,_0x48770f,_0x2f613b){const _0x5ed645=a128_0x1ba9e3,_0x9b384e=new Date()[_0x5ed645(0x16e)]()[_0x5ed645(0x184)](/[:.]/g,'-'),_0x3269b8=relative(_0x43e9d8,_0x2f613b),_0x364c34=join(_0x48770f,_0x9b384e,_0x3269b8);return await mkdir(dirname(_0x364c34),{'recursive':!![]}),await rename(_0x2f613b,_0x364c34),_0x364c34;}function a128_0x145e(_0x5abce7,_0x5a0e98){_0x5abce7=_0x5abce7-0x157;const _0x51030d=a128_0x5103();let _0x145e34=_0x51030d[_0x5abce7];return _0x145e34;}async function cleanupEmptyDirectories(_0xbb2518,_0x436909){const _0x247c1a=a128_0x1ba9e3;let _0x172908=resolve(_0xbb2518);const _0x38e9fc=resolve(_0x436909);while(_0x172908[_0x247c1a(0x16a)](''+_0x38e9fc+sep)||_0x172908===_0x38e9fc){if(_0x172908===_0x38e9fc)return;try{const _0x58f65a=await readdir(_0x172908);if(_0x58f65a[_0x247c1a(0x165)]>0x0)return;await rmdir(_0x172908);}catch{return;}_0x172908=dirname(_0x172908);}}async function resolveTargetDbBinding(_0x311888,_0x3a9049,_0x726201){const _0xcdb69b=a128_0x1ba9e3,_0x196dca=_0x3a9049[_0xcdb69b(0x196)];if(!_0x196dca)return{'dbId':_0x726201['dbId'],'dbName':_0x726201[_0xcdb69b(0x174)]};const _0x424ef1=buildDbDirectoryName(_0x726201['dbName'],_0x726201['dbId']);if(_0x196dca===_0x424ef1)return{'dbId':_0x726201[_0xcdb69b(0x177)],'dbName':_0x726201['dbName']};const _0x1ca608=parseExplicitDbDirectory(_0x196dca);if(_0x1ca608!=null)return{'dbId':_0x1ca608,'dbName':await getDbName(_0x311888,_0x1ca608)[_0xcdb69b(0x190)](()=>undefined)};const _0xedc438=await listDatabases(_0x311888),_0x48fcc2=_0xedc438[_0xcdb69b(0x192)](_0x49d493=>buildDbDirectoryName(_0x49d493[_0xcdb69b(0x174)],_0x49d493[_0xcdb69b(0x177)])===_0x196dca);if(_0x48fcc2[_0xcdb69b(0x165)]===0x1)return{'dbId':_0x48fcc2[0x0][_0xcdb69b(0x177)],'dbName':_0x48fcc2[0x0][_0xcdb69b(0x174)]};if(_0x48fcc2[_0xcdb69b(0x165)]===0x0)throw CliErrors[_0xcdb69b(0x17f)]('No\x20database\x20matches\x20local\x20directory\x20\x22'+_0x196dca+_0xcdb69b(0x187)+_0x3a9049['sqlCode']+'.');const _0x9bd4b6=_0x48fcc2[_0xcdb69b(0x195)](_0x1118df=>_0x1118df[_0xcdb69b(0x174)]+'\x20('+_0x1118df[_0xcdb69b(0x177)]+')')[_0xcdb69b(0x16c)](',\x20');throw CliErrors[_0xcdb69b(0x17f)]('Local\x20directory\x20\x22'+_0x196dca+_0xcdb69b(0x15a)+_0x3a9049[_0xcdb69b(0x18c)]+':\x20'+_0x9bd4b6);}function parseExplicitDbDirectory(_0x3b029c){const _0x1939f9=a128_0x1ba9e3,_0x4aa22f=/^db-(\d+)$/[_0x1939f9(0x15f)](_0x3b029c);if(!_0x4aa22f)return null;const _0x1acb1a=Number(_0x4aa22f[0x1]);return Number['isFinite'](_0x1acb1a)&&_0x1acb1a>0x0?_0x1acb1a:null;}
@@ -1 +1 @@
1
- const a128_0x320e14=a128_0x33eb;function a128_0x3835(){const _0x885683=['Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','352647OHZfaV','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','2259pPNurU','134DanBcX','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','sqlname','join','2658220JyLIdP','write','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`.','file','string','2730904OoiPKi','1454680PRBhZq','Path\x20to\x20the\x20SQL\x20file','validation','112QdKRYo','144eUhTHT','445464vCdlnp','134406tkYUHW'];a128_0x3835=function(){return _0x885683;};return a128_0x3835();}(function(_0xe0655f,_0x2c8ed6){const _0xc2a593=a128_0x33eb,_0x526366=_0xe0655f();while(!![]){try{const _0x178589=parseInt(_0xc2a593(0x1ac))/0x1*(-parseInt(_0xc2a593(0x1ad))/0x2)+parseInt(_0xc2a593(0x1a7))/0x3+-parseInt(_0xc2a593(0x1a1))/0x4+parseInt(_0xc2a593(0x1a2))/0x5+parseInt(_0xc2a593(0x1a8))/0x6*(parseInt(_0xc2a593(0x1a5))/0x7)+-parseInt(_0xc2a593(0x1a6))/0x8*(-parseInt(_0xc2a593(0x1aa))/0x9)+-parseInt(_0xc2a593(0x19c))/0xa;if(_0x178589===_0x2c8ed6)break;else _0x526366['push'](_0x526366['shift']());}catch(_0xddeeea){_0x526366['push'](_0x526366['shift']());}}}(a128_0x3835,0x62721));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a128_0x320e14(0x199),a128_0x320e14(0x1ab),a128_0x320e14(0x19e)][a128_0x320e14(0x19b)]('\x0a');function a128_0x33eb(_0x19090c,_0xdb909f){_0x19090c=_0x19090c-0x199;const _0x383546=a128_0x3835();let _0x33eb0d=_0x383546[_0x19090c];return _0x33eb0d;}export const sqlSave={'service':'sql','command':'save','description':a128_0x320e14(0x1a9),'risk':a128_0x320e14(0x19d),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a128_0x320e14(0x19f),'type':a128_0x320e14(0x1a0),'required':!![],'description':a128_0x320e14(0x1a3)},SQLCODE_FLAG_OPTIONAL,{'name':a128_0x320e14(0x19a),'type':'string','description':'SQL\x20query\x20display\x20name'},{'name':'db','type':a128_0x320e14(0x1a0),'description':'Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'},{'name':'description','type':a128_0x320e14(0x1a0),'description':'Query\x20description'}],async 'validate'(){const _0x4e5c72=a128_0x320e14;throw CliErrors[_0x4e5c72(0x1a4)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x7aed72=a128_0x320e14;throw CliErrors[_0x7aed72(0x1a4)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a129_0x3d52ed=a129_0x3148;(function(_0x52b2e2,_0x390b6b){const _0x504065=a129_0x3148,_0x408226=_0x52b2e2();while(!![]){try{const _0x254e9c=-parseInt(_0x504065(0xe6))/0x1+parseInt(_0x504065(0xe5))/0x2+-parseInt(_0x504065(0xd5))/0x3*(-parseInt(_0x504065(0xd9))/0x4)+-parseInt(_0x504065(0xe7))/0x5+-parseInt(_0x504065(0xdc))/0x6*(parseInt(_0x504065(0xe3))/0x7)+-parseInt(_0x504065(0xdb))/0x8+parseInt(_0x504065(0xe9))/0x9*(parseInt(_0x504065(0xdf))/0xa);if(_0x254e9c===_0x390b6b)break;else _0x408226['push'](_0x408226['shift']());}catch(_0x2eab69){_0x408226['push'](_0x408226['shift']());}}}(a129_0x4206,0xa67e4));function a129_0x3148(_0x5a1e91,_0x5e7a62){_0x5a1e91=_0x5a1e91-0xd5;const _0x420685=a129_0x4206();let _0x314864=_0x420685[_0x5a1e91];return _0x314864;}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a129_0x4206(){const _0x334fb0=['description','11910681Fslfuv','1273176MexWeS','join','string','sql','8PcsYwU','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','3871496lJQAKq','209256TqxyQc','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Query\x20description','10MJKpht','validation','Path\x20to\x20the\x20SQL\x20file','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','28ufXdIS','sqlname','2698576vgwDpS','995871JqhcFd','6101065YDMaam'];a129_0x4206=function(){return _0x334fb0;};return a129_0x4206();}const SQL_SAVE_DEPRECATED_HINT=[a129_0x3d52ed(0xda),a129_0x3d52ed(0xdd),'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`.'][a129_0x3d52ed(0xd6)]('\x0a');export const sqlSave={'service':a129_0x3d52ed(0xd8),'command':'save','description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':a129_0x3d52ed(0xd7),'required':!![],'description':a129_0x3d52ed(0xe1)},SQLCODE_FLAG_OPTIONAL,{'name':a129_0x3d52ed(0xe4),'type':a129_0x3d52ed(0xd7),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':a129_0x3d52ed(0xd7),'description':a129_0x3d52ed(0xe2)},{'name':a129_0x3d52ed(0xe8),'type':a129_0x3d52ed(0xd7),'description':a129_0x3d52ed(0xde)}],async 'validate'(){const _0x2209c0=a129_0x3d52ed;throw CliErrors[_0x2209c0(0xe0)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x28f581=a129_0x3d52ed;throw CliErrors[_0x28f581(0xe0)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a129_0x552975=a129_0x4462;(function(_0x4fa858,_0x48e89b){const _0x2631c2=a129_0x4462,_0x284bf7=_0x4fa858();while(!![]){try{const _0x37df23=parseInt(_0x2631c2(0x1c7))/0x1+parseInt(_0x2631c2(0x1e1))/0x2*(parseInt(_0x2631c2(0x1be))/0x3)+parseInt(_0x2631c2(0x1c9))/0x4+-parseInt(_0x2631c2(0x1c6))/0x5*(parseInt(_0x2631c2(0x1e5))/0x6)+-parseInt(_0x2631c2(0x1d3))/0x7*(-parseInt(_0x2631c2(0x1e7))/0x8)+parseInt(_0x2631c2(0x1e9))/0x9*(-parseInt(_0x2631c2(0x1d9))/0xa)+-parseInt(_0x2631c2(0x1da))/0xb;if(_0x37df23===_0x48e89b)break;else _0x284bf7['push'](_0x284bf7['shift']());}catch(_0x50dbdc){_0x284bf7['push'](_0x284bf7['shift']());}}}(a129_0x1afc,0x82396));import{createInterface}from'node:readline';function a129_0x4462(_0x8e6148,_0x116577){_0x8e6148=_0x8e6148-0x1be;const _0x1afc6e=a129_0x1afc();let _0x4462f5=_0x1afc6e[_0x8e6148];return _0x4462f5;}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a129_0x552975(0x1d4);export function buildSqlLockEntry(_0xd0aebf,_0xa90d93,_0x1a77c9,_0x114155){const _0x284c5e=a129_0x552975,_0x2b7579=detectSqlMode(_0xa90d93);return{'path':buildSqlRelativePath(_0xd0aebf[_0x284c5e(0x1cf)],_0xd0aebf[_0x284c5e(0x1eb)],_0x114155?.['dbName'],_0x2b7579,_0xd0aebf[_0x284c5e(0x1d2)]),'hash':_0x1a77c9,'remoteId':_0xd0aebf['id'],'version':_0xd0aebf[_0x284c5e(0x1dd)],'dbId':Number(_0xd0aebf[_0x284c5e(0x1d2)]),'dbName':_0x114155?.[_0x284c5e(0x1e0)],'sqlName':_0xd0aebf[_0x284c5e(0x1eb)],'sqlConfig':_0xd0aebf[_0x284c5e(0x1cd)]??undefined,'mode':_0x2b7579};}export function cloneSqlLockData(_0x43c696){const _0x163989=a129_0x552975;return{'apps':Object['fromEntries'](Object[_0x163989(0x1c0)](_0x43c696[_0x163989(0x1ca)])[_0x163989(0x1e8)](([_0xadd1a0,_0x13d67e])=>[_0xadd1a0,{'sqlRoot':_0x13d67e[_0x163989(0x1c1)],'lastSync':_0x13d67e['lastSync'],'sqls':{..._0x13d67e[_0x163989(0x1d5)]}}]))};}export function ensureRemoteSqlContent(_0x2c51ae){const _0x390f9d=a129_0x552975;return _0x2c51ae[_0x390f9d(0x1c5)]??'';}export function buildLocalSqlFileContent(_0x415828,_0x3613fa,_0x39fdf0){const _0x5c9356=a129_0x552975,_0x557e74=_0x39fdf0?.[_0x5c9356(0x1ec)]??detectSqlMode(_0x3613fa),_0x46c105=stripLocalSqlMetadata(_0x3613fa,_0x557e74)[_0x5c9356(0x1e6)](),_0x5c0950=[...buildMetadataHeaderLines({'sqlCode':_0x415828[_0x5c9356(0x1cf)],'sqlName':_0x415828['sqlName'],'dbId':_0x415828[_0x5c9356(0x1d2)],'dbName':_0x39fdf0?.['dbName'],'mode':_0x557e74,'syncedAt':_0x39fdf0?.['syncedAt'],'description':_0x39fdf0?.[_0x5c9356(0x1c8)]},_0x557e74),'',_0x46c105],_0x2fa5ef=_0x5c0950[_0x5c9356(0x1c3)]('\x0a');return _0x2fa5ef[_0x5c9356(0x1e2)]('\x0a')?_0x2fa5ef:_0x2fa5ef+'\x0a';}export function stripLocalSqlMetadata(_0x5eb41e,_0x253d26){const _0x738206=a129_0x552975,_0x1d9576=_0x5eb41e[_0x738206(0x1cc)](/\r\n/g,'\x0a')[_0x738206(0x1d8)]('\x0a'),_0xa2a392=[];let _0x38bcd6=0x0;if(_0x253d26===_0x738206(0x1df))while(_0x38bcd6<_0x1d9576[_0x738206(0x1d0)]){const _0x214267=_0x1d9576[_0x38bcd6]??'';if(/^\s*<!--\s*@lovrabet\./[_0x738206(0x1d7)](_0x214267)){_0x38bcd6++;continue;}if(_0x214267[_0x738206(0x1e6)]()===''&&_0x38bcd6>0x0){_0x38bcd6++;continue;}break;}else while(_0x38bcd6<_0x1d9576[_0x738206(0x1d0)]){const _0x6730a4=_0x1d9576[_0x38bcd6]??'';if(/^\s*--\s*@lovrabet\./[_0x738206(0x1d7)](_0x6730a4)){_0x38bcd6++;continue;}if(_0x6730a4['trim']()===''&&_0x38bcd6>0x0){_0x38bcd6++;continue;}break;}for(;_0x38bcd6<_0x1d9576['length'];_0x38bcd6++){_0xa2a392[_0x738206(0x1cb)](_0x1d9576[_0x38bcd6]);}return _0xa2a392[_0x738206(0x1c3)]('\x0a')['trimStart']();}export function resolveSqlMode(_0x1827a5,_0x2ae7f2){const _0x33fdb5=a129_0x552975;if(_0x2ae7f2?.['mode'])return _0x2ae7f2[_0x33fdb5(0x1ec)];return detectSqlMode(_0x1827a5);}export function resolveSqlFileName(_0x6f27d7,_0x3d5980,_0x13e091){const _0x46644c=a129_0x552975;if(_0x13e091?.[_0x46644c(0x1c2)])return _0x13e091[_0x46644c(0x1c2)];if(_0x13e091?.[_0x46644c(0x1eb)]||_0x13e091?.[_0x46644c(0x1e0)])return buildSqlRelativePath(_0x6f27d7,_0x13e091?.[_0x46644c(0x1eb)],_0x13e091?.[_0x46644c(0x1e0)],resolveSqlMode(_0x3d5980,_0x13e091),_0x13e091?.[_0x46644c(0x1d2)]);return buildDefaultSqlFileName(_0x6f27d7,resolveSqlMode(_0x3d5980,_0x13e091));}export function resolveSqlLocalDir(_0x5cd915,_0x228244){return join(_0x5cd915,SQL_LOCAL_REL_DIR,_0x228244);}export async function confirmForceOverwrite(_0x12632a){const _0x3824fd=a129_0x552975,_0x581c89=createInterface({'input':process[_0x3824fd(0x1c4)],'output':process['stderr']}),_0x1b2640=await new Promise(_0x49bd2d=>{const _0xb1df38=_0x3824fd;_0x581c89[_0xb1df38(0x1e4)](_0x12632a+_0xb1df38(0x1db),_0x49bd2d);});return _0x581c89['close'](),['y',_0x3824fd(0x1bf)][_0x3824fd(0x1d1)](_0x1b2640[_0x3824fd(0x1e6)]()[_0x3824fd(0x1ea)]());}export function findSqlLockScope(_0x3c6575,_0x473abe){const _0x36894=a129_0x552975;return _0x3c6575[_0x36894(0x1ca)][_0x473abe];}function buildMetadataHeaderLines(_0xe4d640,_0xed0a0c){const _0x1a1ecd=a129_0x552975,_0x504a79=[['sqlCode',_0xe4d640[_0x1a1ecd(0x1cf)]],[_0x1a1ecd(0x1eb),_0xe4d640[_0x1a1ecd(0x1eb)]],[_0x1a1ecd(0x1d2),_0xe4d640['dbId']],['dbName',_0xe4d640[_0x1a1ecd(0x1e0)]],[_0x1a1ecd(0x1ec),_0xe4d640[_0x1a1ecd(0x1ec)]],[_0x1a1ecd(0x1de),_0xe4d640['syncedAt']],[_0x1a1ecd(0x1c8),_0xe4d640[_0x1a1ecd(0x1c8)]]];if(_0xed0a0c==='mybatisXml')return _0x504a79['filter'](([,_0x13b90c])=>_0x13b90c!==undefined&&_0x13b90c!==null&&String(_0x13b90c)[_0x1a1ecd(0x1e6)]()!=='')[_0x1a1ecd(0x1e8)](([_0x3fbb8a,_0x35720a])=>_0x1a1ecd(0x1ce)+_0x3fbb8a+':\x20'+String(_0x35720a)+_0x1a1ecd(0x1e3));return _0x504a79[_0x1a1ecd(0x1d6)](([,_0x2cc44a])=>_0x2cc44a!==undefined&&_0x2cc44a!==null&&String(_0x2cc44a)['trim']()!=='')[_0x1a1ecd(0x1e8)](([_0x1ab379,_0x5ed412])=>_0x1a1ecd(0x1dc)+_0x1ab379+':\x20'+String(_0x5ed412));}function a129_0x1afc(){const _0xa09146=['mode','7677HTbrbU','yes','entries','sqlRoot','path','join','stdin','sqlContent','70sSpBvj','334942LIYONk','description','1361936BkvGSe','apps','push','replace','sqlConfig','<!--\x20@lovrabet.','sqlCode','length','includes','dbId','147zgmajJ','.rabetbase/sql','sqls','filter','test','split','32570fubnIQ','1372833UjrmKP','\x20[y/N]\x20','--\x20@lovrabet.','version','syncedAt','mybatisXml','dbName','724rozcIA','endsWith','\x20-->','question','278130RDbNCo','trim','20528kLodrK','map','963irrwyt','toLowerCase','sqlName'];a129_0x1afc=function(){return _0xa09146;};return a129_0x1afc();}
1
+ (function(_0x193e85,_0xbfbdb6){const _0x521da9=a130_0x20b4,_0x5b74c1=_0x193e85();while(!![]){try{const _0x354a5f=parseInt(_0x521da9(0x187))/0x1*(-parseInt(_0x521da9(0x16f))/0x2)+-parseInt(_0x521da9(0x181))/0x3+-parseInt(_0x521da9(0x17e))/0x4*(parseInt(_0x521da9(0x171))/0x5)+parseInt(_0x521da9(0x196))/0x6*(parseInt(_0x521da9(0x17d))/0x7)+-parseInt(_0x521da9(0x17b))/0x8+-parseInt(_0x521da9(0x191))/0x9*(parseInt(_0x521da9(0x17a))/0xa)+parseInt(_0x521da9(0x177))/0xb;if(_0x354a5f===_0xbfbdb6)break;else _0x5b74c1['push'](_0x5b74c1['shift']());}catch(_0x32a774){_0x5b74c1['push'](_0x5b74c1['shift']());}}}(a130_0x5356,0x27211));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';function a130_0x5356(){const _0x269072=['trimStart','filter','yes','toLowerCase','sqlCode','push','9gncWGh','join','sqlConfig','map','sqlName','4728OoFXGj','mybatisXml','stdin','version','4iFSaze','stderr','5HYVwdH','length','entries','split','lastSync','<!--\x20@lovrabet.','6395675jwhSHI','path','syncedAt','339060pxhNVS','743144lgIaIA','test','140xAWtDa','676708oPupgC','question','apps','403812NlpanV','dbId','trim','sqlContent','dbName','mode','3166TcZINp','endsWith','\x20-->','sqls'];a130_0x5356=function(){return _0x269072;};return a130_0x5356();}export function buildSqlLockEntry(_0x345e72,_0x15223e,_0x3a2cb8,_0x333500){const _0x1ca7ed=a130_0x20b4,_0x262edb=detectSqlMode(_0x15223e);return{'path':buildSqlRelativePath(_0x345e72['sqlCode'],_0x345e72['sqlName'],_0x333500?.[_0x1ca7ed(0x185)],_0x262edb,_0x345e72['dbId']),'hash':_0x3a2cb8,'remoteId':_0x345e72['id'],'version':_0x345e72[_0x1ca7ed(0x16e)],'dbId':Number(_0x345e72[_0x1ca7ed(0x182)]),'dbName':_0x333500?.['dbName'],'sqlName':_0x345e72[_0x1ca7ed(0x195)],'sqlConfig':_0x345e72[_0x1ca7ed(0x193)]??undefined,'mode':_0x262edb};}export function cloneSqlLockData(_0x5c0ab0){const _0x18083d=a130_0x20b4;return{'apps':Object['fromEntries'](Object[_0x18083d(0x173)](_0x5c0ab0[_0x18083d(0x180)])[_0x18083d(0x194)](([_0x1ca76f,_0x5b6795])=>[_0x1ca76f,{'sqlRoot':_0x5b6795['sqlRoot'],'lastSync':_0x5b6795[_0x18083d(0x175)],'sqls':{..._0x5b6795[_0x18083d(0x18a)]}}]))};}export function ensureRemoteSqlContent(_0x537fa1){const _0x5458bd=a130_0x20b4;return _0x537fa1[_0x5458bd(0x184)]??'';}export function buildLocalSqlFileContent(_0x53f451,_0x5dc08e,_0x237281){const _0x4b0842=a130_0x20b4,_0x4bedad=_0x237281?.[_0x4b0842(0x186)]??detectSqlMode(_0x5dc08e),_0x4c7475=stripLocalSqlMetadata(_0x5dc08e,_0x4bedad)[_0x4b0842(0x183)](),_0xfc1a07=[...buildMetadataHeaderLines({'sqlCode':_0x53f451[_0x4b0842(0x18f)],'sqlName':_0x53f451[_0x4b0842(0x195)],'dbId':_0x53f451[_0x4b0842(0x182)],'dbName':_0x237281?.[_0x4b0842(0x185)],'mode':_0x4bedad,'syncedAt':_0x237281?.[_0x4b0842(0x179)],'description':_0x237281?.['description']},_0x4bedad),'',_0x4c7475],_0x28a153=_0xfc1a07[_0x4b0842(0x192)]('\x0a');return _0x28a153[_0x4b0842(0x188)]('\x0a')?_0x28a153:_0x28a153+'\x0a';}export function stripLocalSqlMetadata(_0x4f542c,_0x1ce496){const _0x2f4a51=a130_0x20b4,_0x462b40=_0x4f542c['replace'](/\r\n/g,'\x0a')[_0x2f4a51(0x174)]('\x0a'),_0x253f5c=[];let _0xe2793f=0x0;if(_0x1ce496==='mybatisXml')while(_0xe2793f<_0x462b40[_0x2f4a51(0x172)]){const _0x110552=_0x462b40[_0xe2793f]??'';if(/^\s*<!--\s*@lovrabet\./[_0x2f4a51(0x17c)](_0x110552)){_0xe2793f++;continue;}if(_0x110552[_0x2f4a51(0x183)]()===''&&_0xe2793f>0x0){_0xe2793f++;continue;}break;}else while(_0xe2793f<_0x462b40['length']){const _0xe0920e=_0x462b40[_0xe2793f]??'';if(/^\s*--\s*@lovrabet\./[_0x2f4a51(0x17c)](_0xe0920e)){_0xe2793f++;continue;}if(_0xe0920e[_0x2f4a51(0x183)]()===''&&_0xe2793f>0x0){_0xe2793f++;continue;}break;}for(;_0xe2793f<_0x462b40[_0x2f4a51(0x172)];_0xe2793f++){_0x253f5c[_0x2f4a51(0x190)](_0x462b40[_0xe2793f]);}return _0x253f5c[_0x2f4a51(0x192)]('\x0a')[_0x2f4a51(0x18b)]();}export function resolveSqlMode(_0x273e15,_0x27dde8){const _0xdcf23f=a130_0x20b4;if(_0x27dde8?.['mode'])return _0x27dde8[_0xdcf23f(0x186)];return detectSqlMode(_0x273e15);}export function resolveSqlFileName(_0x560951,_0x390119,_0x446cc5){const _0x2b648e=a130_0x20b4;if(_0x446cc5?.[_0x2b648e(0x178)])return _0x446cc5['path'];if(_0x446cc5?.[_0x2b648e(0x195)]||_0x446cc5?.[_0x2b648e(0x185)])return buildSqlRelativePath(_0x560951,_0x446cc5?.[_0x2b648e(0x195)],_0x446cc5?.[_0x2b648e(0x185)],resolveSqlMode(_0x390119,_0x446cc5),_0x446cc5?.[_0x2b648e(0x182)]);return buildDefaultSqlFileName(_0x560951,resolveSqlMode(_0x390119,_0x446cc5));}function a130_0x20b4(_0x286cda,_0x1519b8){_0x286cda=_0x286cda-0x16e;const _0x535678=a130_0x5356();let _0x20b4d1=_0x535678[_0x286cda];return _0x20b4d1;}export function resolveSqlLocalDir(_0x39859d,_0x30dde6){return join(_0x39859d,SQL_LOCAL_REL_DIR,_0x30dde6);}export async function confirmForceOverwrite(_0x510eec){const _0x47ce5b=a130_0x20b4,_0x404a42=createInterface({'input':process[_0x47ce5b(0x198)],'output':process[_0x47ce5b(0x170)]}),_0x3588c6=await new Promise(_0x5e449e=>{const _0xff510b=_0x47ce5b;_0x404a42[_0xff510b(0x17f)](_0x510eec+'\x20[y/N]\x20',_0x5e449e);});return _0x404a42['close'](),['y',_0x47ce5b(0x18d)]['includes'](_0x3588c6['trim']()[_0x47ce5b(0x18e)]());}export function findSqlLockScope(_0x5a8710,_0x1f47f8){const _0x4f898e=a130_0x20b4;return _0x5a8710[_0x4f898e(0x180)][_0x1f47f8];}function buildMetadataHeaderLines(_0x255c61,_0x3d5a51){const _0x5e003=a130_0x20b4,_0x2a84f1=[[_0x5e003(0x18f),_0x255c61[_0x5e003(0x18f)]],['sqlName',_0x255c61[_0x5e003(0x195)]],[_0x5e003(0x182),_0x255c61[_0x5e003(0x182)]],[_0x5e003(0x185),_0x255c61[_0x5e003(0x185)]],[_0x5e003(0x186),_0x255c61[_0x5e003(0x186)]],[_0x5e003(0x179),_0x255c61['syncedAt']],['description',_0x255c61['description']]];if(_0x3d5a51===_0x5e003(0x197))return _0x2a84f1[_0x5e003(0x18c)](([,_0x5b4916])=>_0x5b4916!==undefined&&_0x5b4916!==null&&String(_0x5b4916)[_0x5e003(0x183)]()!=='')[_0x5e003(0x194)](([_0x4e990a,_0x49b5d3])=>_0x5e003(0x176)+_0x4e990a+':\x20'+String(_0x49b5d3)+_0x5e003(0x189));return _0x2a84f1[_0x5e003(0x18c)](([,_0x2ab4f3])=>_0x2ab4f3!==undefined&&_0x2ab4f3!==null&&String(_0x2ab4f3)[_0x5e003(0x183)]()!=='')[_0x5e003(0x194)](([_0x5e13b2,_0x2544a6])=>'--\x20@lovrabet.'+_0x5e13b2+':\x20'+String(_0x2544a6));}
@@ -1 +1 @@
1
- function a130_0x2f1b(){const _0x39a6a8=['relativePath','lockFilePath','lockKey','bool','\x20missing,\x20','tableData','remote','map','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','paging','5HVGceC','sql','1611lvtojF','\x20added,\x20','\x20unchanged','sqlName','sqls','All\x20SQL\x20queries\x20are\x20in\x20sync.','919264MioGtQ','1036752nFWtzn','push','totalCount','39290xcsAuK','sqlRoot','\x20remote-only','41864SLUcqy','\x20modified,\x20','140100kdWWUE','sqlCode','keys','length','has','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','path','filePath','status','appCode','1559142tbrmVb','boolean','hash','read','107020wmDnOa','91bFEdql'];a130_0x2f1b=function(){return _0x39a6a8;};return a130_0x2f1b();}const a130_0x559432=a130_0x5327;(function(_0x565fc3,_0x155790){const _0x5df3a0=a130_0x5327,_0x4f38d3=_0x565fc3();while(!![]){try{const _0x400336=parseInt(_0x5df3a0(0x19c))/0x1+parseInt(_0x5df3a0(0x17f))/0x2+-parseInt(_0x5df3a0(0x1a6))/0x3+-parseInt(_0x5df3a0(0x193))/0x4*(-parseInt(_0x5df3a0(0x18b))/0x5)+-parseInt(_0x5df3a0(0x194))/0x6+-parseInt(_0x5df3a0(0x180))/0x7*(parseInt(_0x5df3a0(0x19a))/0x8)+-parseInt(_0x5df3a0(0x18d))/0x9*(-parseInt(_0x5df3a0(0x197))/0xa);if(_0x400336===_0x155790)break;else _0x4f38d3['push'](_0x4f38d3['shift']());}catch(_0x3930c5){_0x4f38d3['push'](_0x4f38d3['shift']());}}}(a130_0x2f1b,0x59666));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x1dd08e){const _0x255d38=a130_0x5327,_0x8751c0=[];let _0x5b1adc=0x1;while(!![]){const _0x1eddd4=await listSqlQueries(_0x1dd08e,{'currentPage':_0x5b1adc,'pageSize':PAGE_SIZE}),_0x3c04f5=_0x1eddd4[_0x255d38(0x186)]??[];_0x8751c0[_0x255d38(0x195)](..._0x3c04f5[_0x255d38(0x188)](_0x5ac0b7=>_0x5ac0b7[_0x255d38(0x19d)]));if(_0x3c04f5[_0x255d38(0x19f)]===0x0)break;const _0x488db4=_0x1eddd4[_0x255d38(0x18a)]?.[_0x255d38(0x196)];if(_0x488db4!=null?_0x8751c0[_0x255d38(0x19f)]>=_0x488db4:_0x3c04f5[_0x255d38(0x19f)]<PAGE_SIZE)break;_0x5b1adc++;}return _0x8751c0;}function a130_0x5327(_0x49db7d,_0x3864f0){_0x49db7d=_0x49db7d-0x17f;const _0x2f1bc0=a130_0x2f1b();let _0x53277e=_0x2f1bc0[_0x49db7d];return _0x53277e;}export const sqlStatus={'service':a130_0x559432(0x18c),'command':a130_0x559432(0x1a4),'description':a130_0x559432(0x1a1),'risk':a130_0x559432(0x1a9),'flags':[{'name':a130_0x559432(0x187),'type':a130_0x559432(0x1a7),'description':a130_0x559432(0x189)}],async 'execute'(_0x44ee96){const _0x43c91e=a130_0x559432,_0x2f33d3=loadSqlProjectConfig(_0x44ee96[_0x43c91e(0x1a5)]),_0x2d3d09=await readSqlLockFile(_0x2f33d3[_0x43c91e(0x182)]),{appLock:_0x42d991}=ensureSqlLockScope(_0x2d3d09??createEmptySqlLock(),_0x2f33d3[_0x43c91e(0x1a5)],_0x2f33d3[_0x43c91e(0x198)],_0x43c91e(0x1a4)),_0x349599=await scanLocalSqlQueries(_0x2f33d3),_0x5c8055=[],_0x211b14=[],_0x5a294e=[],_0x2d3beb=[],_0x3bb91=new Set(_0x349599[_0x43c91e(0x188)](_0x19699a=>_0x19699a['lockKey']));for(const _0x444df6 of _0x349599){const _0x3b30d1=await computeSqlFileHash(_0x444df6[_0x43c91e(0x1a3)]),_0x59b521=_0x42d991[_0x43c91e(0x191)][_0x444df6[_0x43c91e(0x183)]],_0x43e2e8=!!_0x59b521&&_0x59b521[_0x43c91e(0x1a2)]!==_0x444df6[_0x43c91e(0x181)],_0x34371b=!!_0x59b521&&!!_0x444df6['sqlName']&&_0x59b521['sqlName']!==_0x444df6[_0x43c91e(0x190)];if(!_0x59b521)_0x5c8055['push'](_0x444df6[_0x43c91e(0x183)]);else _0x59b521[_0x43c91e(0x1a8)]!==_0x3b30d1||_0x43e2e8||_0x34371b?_0x211b14['push'](_0x444df6[_0x43c91e(0x183)]):_0x5a294e[_0x43c91e(0x195)](_0x444df6[_0x43c91e(0x183)]);}for(const _0x1828db of Object[_0x43c91e(0x19e)](_0x42d991[_0x43c91e(0x191)])){!_0x3bb91[_0x43c91e(0x1a0)](_0x1828db)&&_0x2d3beb[_0x43c91e(0x195)](_0x1828db);}const _0x3ccfb7=[];if(_0x44ee96[_0x43c91e(0x184)](_0x43c91e(0x187))){const _0xeb9297=await fetchAllSqlCodes(_0x44ee96[_0x43c91e(0x1a5)]);for(const _0x47f98f of _0xeb9297){!_0x3bb91[_0x43c91e(0x1a0)](_0x47f98f)&&!_0x42d991[_0x43c91e(0x191)][_0x47f98f]&&_0x3ccfb7['push'](_0x47f98f);}}const _0x129272=_0x5c8055[_0x43c91e(0x19f)]===0x0&&_0x211b14[_0x43c91e(0x19f)]===0x0&&_0x2d3beb[_0x43c91e(0x19f)]===0x0&&_0x3ccfb7[_0x43c91e(0x19f)]===0x0;return{'ok':!![],'data':{'added':_0x5c8055,'modified':_0x211b14,'missing':_0x2d3beb,'unchanged':_0x5a294e,'remoteOnly':_0x3ccfb7},'message':_0x129272?_0x43c91e(0x192):_0x5c8055['length']+_0x43c91e(0x18e)+_0x211b14['length']+_0x43c91e(0x19b)+_0x2d3beb[_0x43c91e(0x19f)]+_0x43c91e(0x185)+_0x5a294e[_0x43c91e(0x19f)]+_0x43c91e(0x18f)+(_0x3ccfb7['length']>0x0?',\x20'+_0x3ccfb7[_0x43c91e(0x19f)]+_0x43c91e(0x199):'')};}};
1
+ const a131_0x276042=a131_0x22ba;(function(_0x1cb49c,_0x45b20b){const _0x47cff1=a131_0x22ba,_0x17a9af=_0x1cb49c();while(!![]){try{const _0x2cf41b=-parseInt(_0x47cff1(0x8d))/0x1+parseInt(_0x47cff1(0x7c))/0x2+parseInt(_0x47cff1(0x98))/0x3*(parseInt(_0x47cff1(0x7e))/0x4)+parseInt(_0x47cff1(0x85))/0x5*(parseInt(_0x47cff1(0x8a))/0x6)+parseInt(_0x47cff1(0x90))/0x7*(parseInt(_0x47cff1(0x80))/0x8)+parseInt(_0x47cff1(0x9b))/0x9+-parseInt(_0x47cff1(0x86))/0xa;if(_0x2cf41b===_0x45b20b)break;else _0x17a9af['push'](_0x17a9af['shift']());}catch(_0xd3fb54){_0x17a9af['push'](_0x17a9af['shift']());}}}(a131_0x3f00,0xf33a3));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a131_0x22ba(_0x482fa1,_0x1fd71b){_0x482fa1=_0x482fa1-0x78;const _0x3f00be=a131_0x3f00();let _0x22ba40=_0x3f00be[_0x482fa1];return _0x22ba40;}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(_0x4752be){const _0x53373e=a131_0x22ba,_0xf4142b=[];let _0x1dbf56=0x1;while(!![]){const _0x11b449=await listSqlQueries(_0x4752be,{'currentPage':_0x1dbf56,'pageSize':PAGE_SIZE}),_0x387128=_0x11b449['tableData']??[];_0xf4142b[_0x53373e(0x88)](..._0x387128['map'](_0x5ac67f=>_0x5ac67f[_0x53373e(0x8c)]));if(_0x387128['length']===0x0)break;const _0x31de92=_0x11b449['paging']?.[_0x53373e(0x95)];if(_0x31de92!=null?_0xf4142b[_0x53373e(0x79)]>=_0x31de92:_0x387128[_0x53373e(0x79)]<PAGE_SIZE)break;_0x1dbf56++;}return _0xf4142b;}export const sqlStatus={'service':a131_0x276042(0x81),'command':a131_0x276042(0x8e),'description':a131_0x276042(0x87),'risk':a131_0x276042(0x82),'flags':[{'name':'remote','type':a131_0x276042(0x99),'description':a131_0x276042(0x91)}],async 'execute'(_0x2fb523){const _0x199487=a131_0x276042,_0x5c65ad=loadSqlProjectConfig(_0x2fb523[_0x199487(0x7b)]),_0x5a42b2=await readSqlLockFile(_0x5c65ad[_0x199487(0x97)]),{appLock:_0x1a1106}=ensureSqlLockScope(_0x5a42b2??createEmptySqlLock(),_0x5c65ad[_0x199487(0x7b)],_0x5c65ad[_0x199487(0x89)],'status'),_0x524123=await scanLocalSqlQueries(_0x5c65ad),_0x5bda4e=[],_0x3a3dab=[],_0x26ae2d=[],_0xf03787=[],_0x327c5d=new Set(_0x524123[_0x199487(0x94)](_0x5e1063=>_0x5e1063['lockKey']));for(const _0x411479 of _0x524123){const _0x3f8172=await computeSqlFileHash(_0x411479[_0x199487(0x83)]),_0x4a1c27=_0x1a1106['sqls'][_0x411479['lockKey']],_0x171599=!!_0x4a1c27&&_0x4a1c27['path']!==_0x411479[_0x199487(0x7f)],_0x59d206=!!_0x4a1c27&&!!_0x411479[_0x199487(0x7d)]&&_0x4a1c27['sqlName']!==_0x411479[_0x199487(0x7d)];if(!_0x4a1c27)_0x5bda4e['push'](_0x411479['lockKey']);else _0x4a1c27[_0x199487(0x78)]!==_0x3f8172||_0x171599||_0x59d206?_0x3a3dab[_0x199487(0x88)](_0x411479[_0x199487(0x93)]):_0x26ae2d[_0x199487(0x88)](_0x411479[_0x199487(0x93)]);}for(const _0x2702c4 of Object[_0x199487(0x92)](_0x1a1106[_0x199487(0x84)])){!_0x327c5d[_0x199487(0x8f)](_0x2702c4)&&_0xf03787[_0x199487(0x88)](_0x2702c4);}const _0x5bda83=[];if(_0x2fb523['bool'](_0x199487(0x9a))){const _0x3da46e=await fetchAllSqlCodes(_0x2fb523['appCode']);for(const _0x69984a of _0x3da46e){!_0x327c5d[_0x199487(0x8f)](_0x69984a)&&!_0x1a1106[_0x199487(0x84)][_0x69984a]&&_0x5bda83['push'](_0x69984a);}}const _0x4aef0d=_0x5bda4e[_0x199487(0x79)]===0x0&&_0x3a3dab[_0x199487(0x79)]===0x0&&_0xf03787[_0x199487(0x79)]===0x0&&_0x5bda83['length']===0x0;return{'ok':!![],'data':{'added':_0x5bda4e,'modified':_0x3a3dab,'missing':_0xf03787,'unchanged':_0x26ae2d,'remoteOnly':_0x5bda83},'message':_0x4aef0d?_0x199487(0x8b):_0x5bda4e[_0x199487(0x79)]+'\x20added,\x20'+_0x3a3dab[_0x199487(0x79)]+_0x199487(0x96)+_0xf03787[_0x199487(0x79)]+'\x20missing,\x20'+_0x26ae2d[_0x199487(0x79)]+'\x20unchanged'+(_0x5bda83['length']>0x0?',\x20'+_0x5bda83[_0x199487(0x79)]+_0x199487(0x7a):'')};}};function a131_0x3f00(){const _0x59954f=['keys','lockKey','map','totalCount','\x20modified,\x20','lockFilePath','3rPnSaS','boolean','remote','1559655RZtqhB','hash','length','\x20remote-only','appCode','1302880YoOuxr','sqlName','1237048shnnBC','relativePath','1736WXUqCd','sql','read','filePath','sqls','6322600QtxdHk','12644920IMXmKx','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','push','sqlRoot','6bitiLZ','All\x20SQL\x20queries\x20are\x20in\x20sync.','sqlCode','1975322yWDHRZ','status','has','59276tpyfQU','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'];a131_0x3f00=function(){return _0x59954f;};return a131_0x3f00();}
@@ -1 +1 @@
1
- const a131_0x2764f6=a131_0x5d46;(function(_0x2c2267,_0x229a43){const _0x2993d2=a131_0x5d46,_0x15501a=_0x2c2267();while(!![]){try{const _0x1ecc03=parseInt(_0x2993d2(0x1a5))/0x1+parseInt(_0x2993d2(0x19b))/0x2+parseInt(_0x2993d2(0x19a))/0x3+-parseInt(_0x2993d2(0x18c))/0x4+-parseInt(_0x2993d2(0x17e))/0x5*(parseInt(_0x2993d2(0x195))/0x6)+parseInt(_0x2993d2(0x1a4))/0x7+parseInt(_0x2993d2(0x19c))/0x8;if(_0x1ecc03===_0x229a43)break;else _0x15501a['push'](_0x15501a['shift']());}catch(_0x3860e0){_0x15501a['push'](_0x15501a['shift']());}}}(a131_0x42fb,0x7dfd4));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';function a131_0x5d46(_0x100e04,_0x57b490){_0x100e04=_0x100e04-0x17b;const _0x42fbcc=a131_0x42fb();let _0x5d4677=_0x42fbcc[_0x100e04];return _0x5d4677;}import{assertDatasetSupportsLocalDevelopment,filterDbBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':'sql','command':a131_0x2764f6(0x18a),'description':a131_0x2764f6(0x185),'risk':'read','flags':[{'name':a131_0x2764f6(0x1a0),'type':a131_0x2764f6(0x19e),'description':a131_0x2764f6(0x194)},{'name':a131_0x2764f6(0x192),'type':a131_0x2764f6(0x19e),'description':a131_0x2764f6(0x187)},{'name':a131_0x2764f6(0x190),'type':a131_0x2764f6(0x19e),'description':a131_0x2764f6(0x181)}],async 'execute'(_0x1849d0){const _0x325187=a131_0x2764f6,_0x3ee4fb=_0x1849d0[_0x325187(0x191)]('file'),_0x3d3b2d=_0x1849d0[_0x325187(0x191)](_0x325187(0x192));if(!_0x3ee4fb&&!_0x3d3b2d)throw CliErrors[_0x325187(0x18f)](_0x325187(0x1a0),'Provide\x20--file\x20or\x20--sql');let _0x1b6103;if(_0x3ee4fb){const _0x57ea83=resolve(process[_0x325187(0x19f)](),_0x3ee4fb);if(!existsSync(_0x57ea83))throw CliErrors['validation']('File\x20not\x20found:\x20'+_0x57ea83);_0x1b6103=readFileSync(_0x57ea83,'utf-8');}else _0x1b6103=_0x3d3b2d;const _0x305dee=validateSql(_0x1b6103),_0x54e467={'valid':_0x305dee[_0x325187(0x197)],'sqlType':_0x305dee[_0x325187(0x183)]['type'],'isSelectOnly':_0x305dee[_0x325187(0x183)][_0x325187(0x19d)],'isDangerous':_0x305dee[_0x325187(0x183)][_0x325187(0x186)],'tables':_0x305dee['tables'],'parameters':_0x305dee['parameters'],'message':_0x305dee[_0x325187(0x193)]};_0x305dee['sqlType'][_0x325187(0x18e)]&&(_0x54e467[_0x325187(0x18e)]=_0x305dee[_0x325187(0x183)]['reason']);const _0x2c0f2a=_0x1849d0['str'](_0x325187(0x190));if(_0x2c0f2a&&_0x305dee[_0x325187(0x197)]){const _0x39d938=_0x2c0f2a[_0x325187(0x1a2)](',')[_0x325187(0x1a3)](_0x1f01a0=>_0x1f01a0[_0x325187(0x1a1)]())[_0x325187(0x198)](Boolean),_0x5e310e=[],_0x3e9709=filterDbBackedDatasets(await listDatasets(_0x1849d0['appCode'])),_0x15cae1=new Map(_0x3e9709[_0x325187(0x1a3)](_0x10c081=>[_0x10c081['dbtableConfig']?.[_0x325187(0x188)]?.[_0x325187(0x182)](),_0x10c081]));for(const _0x5d3d01 of _0x305dee['tables']){const _0x2c24e2=_0x15cae1[_0x325187(0x17b)](_0x5d3d01['toLowerCase']());!_0x2c24e2&&_0x5e310e['push'](_0x325187(0x18d)+_0x5d3d01+_0x325187(0x17f));}for(const _0x3cabf4 of _0x39d938){let _0x31fb03;try{_0x31fb03=await getDatasetDetail(_0x3cabf4);}catch{_0x5e310e['push'](_0x325187(0x17d)+_0x3cabf4+_0x325187(0x189));continue;}assertDatasetSupportsLocalDevelopment(_0x31fb03,'SQL\x20schema\x20validation');const _0xfd1f8e=Array['isArray'](_0x31fb03[_0x325187(0x18b)])?_0x31fb03[_0x325187(0x18b)]:[],_0x504aa9=new Set(_0xfd1f8e[_0x325187(0x1a3)](_0x23469f=>_0x23469f['name']?.['toLowerCase']())),_0x50863b=_0x31fb03[_0x325187(0x184)]?.[_0x325187(0x188)]||_0x31fb03[_0x325187(0x188)]||_0x3cabf4;_0x54e467[_0x325187(0x1a6)+_0x50863b]={'code':_0x3cabf4,'tableName':_0x50863b,'fieldCount':_0x504aa9[_0x325187(0x199)],'fields':Array[_0x325187(0x17c)](_0x504aa9)};}_0x5e310e[_0x325187(0x180)]>0x0&&(_0x54e467[_0x325187(0x196)]=_0x5e310e);}return{'ok':_0x305dee[_0x325187(0x197)],'data':_0x54e467,'message':_0x305dee[_0x325187(0x193)]};}};function a131_0x42fb(){const _0x4d72ea=['226532KsLoRa','schema:','get','from','Dataset\x20\x22','1032165NRxXSC','\x22\x20not\x20found\x20in\x20any\x20dataset','length','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','toLowerCase','sqlType','dbtableConfig','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','isDangerous','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','tableName','\x22\x20not\x20found\x20or\x20not\x20accessible','validate','fields','2891636cmHxAs','Table\x20\x22','reason','flagMissing','schemas','str','sql','message','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','12acnIix','schemaWarnings','valid','filter','size','2447904SXEjBr','99442BYYAag','1345000xffNpn','isSelectOnly','string','cwd','file','trim','split','map','2740367MZzGEH'];a131_0x42fb=function(){return _0x4d72ea;};return a131_0x42fb();}
1
+ const a132_0x40d3a8=a132_0x1325;(function(_0x5b2426,_0x2b9335){const _0x2a95f0=a132_0x1325,_0x57d874=_0x5b2426();while(!![]){try{const _0x44e3a1=parseInt(_0x2a95f0(0x18d))/0x1*(parseInt(_0x2a95f0(0x189))/0x2)+-parseInt(_0x2a95f0(0x194))/0x3+-parseInt(_0x2a95f0(0x1a6))/0x4+parseInt(_0x2a95f0(0x19e))/0x5+parseInt(_0x2a95f0(0x18c))/0x6*(parseInt(_0x2a95f0(0x1aa))/0x7)+-parseInt(_0x2a95f0(0x188))/0x8+parseInt(_0x2a95f0(0x19c))/0x9;if(_0x44e3a1===_0x2b9335)break;else _0x57d874['push'](_0x57d874['shift']());}catch(_0x325aab){_0x57d874['push'](_0x57d874['shift']());}}}(a132_0x1903,0x65639));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';function a132_0x1325(_0x57d4cf,_0x5b12fa){_0x57d4cf=_0x57d4cf-0x176;const _0x190392=a132_0x1903();let _0x13258f=_0x190392[_0x57d4cf];return _0x13258f;}import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a132_0x1903(){const _0x4d0395=['isDangerous','File\x20not\x20found:\x20','file','type','str','6642376ykfsWs','2kWfvfJ','sqlType','tables','4455834LIBZNz','166121HyIHTG','Table\x20\x22','split','parameters','filter','push','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','265446MEXudq','string','schemas','sql','validation','appCode','size','message','2193021lWVfNy','read','1712540BfCIEz','SQL\x20schema\x20validation','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','schema:','utf-8','map','Provide\x20--file\x20or\x20--sql','get','643476BmyEFO','schemaWarnings','from','valid','7HrCOSf','\x22\x20not\x20found\x20or\x20not\x20accessible','tableName','dbtableConfig','cwd','\x22\x20not\x20found\x20in\x20any\x20dataset','length','Dataset\x20\x22','fields','reason','flagMissing','toLowerCase','isArray','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','validate'];a132_0x1903=function(){return _0x4d0395;};return a132_0x1903();}import{CliErrors}from'../../errors.js';import{assertDatasetSupportsLocalDevelopment,filterDbBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a132_0x40d3a8(0x197),'command':a132_0x40d3a8(0x182),'description':a132_0x40d3a8(0x181),'risk':a132_0x40d3a8(0x19d),'flags':[{'name':a132_0x40d3a8(0x185),'type':a132_0x40d3a8(0x195),'description':a132_0x40d3a8(0x1a0)},{'name':'sql','type':'string','description':a132_0x40d3a8(0x193)},{'name':a132_0x40d3a8(0x196),'type':a132_0x40d3a8(0x195),'description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'}],async 'execute'(_0x2119e8){const _0x46782e=a132_0x40d3a8,_0x4a02c7=_0x2119e8['str'](_0x46782e(0x185)),_0x1f55a9=_0x2119e8[_0x46782e(0x187)](_0x46782e(0x197));if(!_0x4a02c7&&!_0x1f55a9)throw CliErrors[_0x46782e(0x17e)](_0x46782e(0x185),_0x46782e(0x1a4));let _0x275814;if(_0x4a02c7){const _0x3f3cbd=resolve(process[_0x46782e(0x178)](),_0x4a02c7);if(!existsSync(_0x3f3cbd))throw CliErrors[_0x46782e(0x198)](_0x46782e(0x184)+_0x3f3cbd);_0x275814=readFileSync(_0x3f3cbd,_0x46782e(0x1a2));}else _0x275814=_0x1f55a9;const _0x2bde72=validateSql(_0x275814),_0x548e4e={'valid':_0x2bde72[_0x46782e(0x1a9)],'sqlType':_0x2bde72['sqlType'][_0x46782e(0x186)],'isSelectOnly':_0x2bde72[_0x46782e(0x18a)]['isSelectOnly'],'isDangerous':_0x2bde72[_0x46782e(0x18a)][_0x46782e(0x183)],'tables':_0x2bde72[_0x46782e(0x18b)],'parameters':_0x2bde72[_0x46782e(0x190)],'message':_0x2bde72[_0x46782e(0x19b)]};_0x2bde72[_0x46782e(0x18a)]['reason']&&(_0x548e4e['reason']=_0x2bde72[_0x46782e(0x18a)][_0x46782e(0x17d)]);const _0x4d501d=_0x2119e8[_0x46782e(0x187)](_0x46782e(0x196));if(_0x4d501d&&_0x2bde72['valid']){const _0x42327c=_0x4d501d[_0x46782e(0x18f)](',')[_0x46782e(0x1a3)](_0x11eac4=>_0x11eac4['trim']())[_0x46782e(0x191)](Boolean),_0x2015ee=[],_0x363f0a=filterDbBackedDatasets(await listDatasets(_0x2119e8[_0x46782e(0x199)])),_0x41d4c5=new Map(_0x363f0a[_0x46782e(0x1a3)](_0x105fb2=>[_0x105fb2[_0x46782e(0x177)]?.[_0x46782e(0x176)]?.[_0x46782e(0x17f)](),_0x105fb2]));for(const _0x3bde27 of _0x2bde72[_0x46782e(0x18b)]){const _0x29e78a=_0x41d4c5[_0x46782e(0x1a5)](_0x3bde27['toLowerCase']());!_0x29e78a&&_0x2015ee[_0x46782e(0x192)](_0x46782e(0x18e)+_0x3bde27+_0x46782e(0x179));}for(const _0x5ad07a of _0x42327c){let _0x3dab81;try{_0x3dab81=await getDatasetDetail(_0x5ad07a);}catch{_0x2015ee[_0x46782e(0x192)](_0x46782e(0x17b)+_0x5ad07a+_0x46782e(0x1ab));continue;}assertDatasetSupportsLocalDevelopment(_0x3dab81,_0x46782e(0x19f));const _0x3e524c=Array[_0x46782e(0x180)](_0x3dab81['fields'])?_0x3dab81[_0x46782e(0x17c)]:[],_0xf63a76=new Set(_0x3e524c[_0x46782e(0x1a3)](_0x37968a=>_0x37968a['name']?.[_0x46782e(0x17f)]())),_0x291718=_0x3dab81['dbtableConfig']?.[_0x46782e(0x176)]||_0x3dab81['tableName']||_0x5ad07a;_0x548e4e[_0x46782e(0x1a1)+_0x291718]={'code':_0x5ad07a,'tableName':_0x291718,'fieldCount':_0xf63a76[_0x46782e(0x19a)],'fields':Array[_0x46782e(0x1a8)](_0xf63a76)};}_0x2015ee[_0x46782e(0x17a)]>0x0&&(_0x548e4e[_0x46782e(0x1a7)]=_0x2015ee);}return{'ok':_0x2bde72[_0x46782e(0x1a9)],'data':_0x548e4e,'message':_0x2bde72[_0x46782e(0x19b)]};}};