@lovrabet/rabetbase-cli 2.3.10-beta.1 → 2.3.10-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) 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/index.js +1 -1
  21. package/lib/commands/app/list.js +1 -1
  22. package/lib/commands/app/remote-directory.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-config/delete.js +1 -1
  26. package/lib/commands/app-config/get.js +1 -1
  27. package/lib/commands/app-config/index.js +1 -1
  28. package/lib/commands/app-config/list.js +1 -1
  29. package/lib/commands/app-config/set.js +1 -1
  30. package/lib/commands/app-config/shared.js +1 -1
  31. package/lib/commands/auth/index.js +1 -1
  32. package/lib/commands/bff/create.js +1 -1
  33. package/lib/commands/bff/delete.js +1 -1
  34. package/lib/commands/bff/detail.js +1 -1
  35. package/lib/commands/bff/index.js +1 -1
  36. package/lib/commands/bff/list.js +1 -1
  37. package/lib/commands/bff/pull.js +1 -1
  38. package/lib/commands/bff/push.js +1 -1
  39. package/lib/commands/bff/status.js +1 -1
  40. package/lib/commands/cli-skill/index.js +1 -1
  41. package/lib/commands/cli-update.js +1 -1
  42. package/lib/commands/codegen/index.js +1 -1
  43. package/lib/commands/codegen/sdk.js +1 -1
  44. package/lib/commands/codegen/sql.js +1 -1
  45. package/lib/commands/common/app-registry.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/async-task.js +1 -1
  48. package/lib/commands/common/dry-run.js +1 -1
  49. package/lib/commands/common/flags.js +1 -1
  50. package/lib/commands/common/local-file.js +1 -1
  51. package/lib/commands/common/validate.js +1 -1
  52. package/lib/commands/config/get.js +1 -1
  53. package/lib/commands/config/index.js +1 -1
  54. package/lib/commands/config/list.js +1 -1
  55. package/lib/commands/config/set.js +1 -1
  56. package/lib/commands/config/shared.js +1 -1
  57. package/lib/commands/data/filter.js +1 -1
  58. package/lib/commands/data/getOne.js +1 -1
  59. package/lib/commands/data/index.js +1 -1
  60. package/lib/commands/data/shared.js +1 -1
  61. package/lib/commands/dataset/business-group-update.js +1 -1
  62. package/lib/commands/dataset/capability.js +1 -1
  63. package/lib/commands/dataset/delete.js +1 -1
  64. package/lib/commands/dataset/detail.js +1 -1
  65. package/lib/commands/dataset/extend-update.js +1 -1
  66. package/lib/commands/dataset/field-update.js +1 -1
  67. package/lib/commands/dataset/generate.js +1 -1
  68. package/lib/commands/dataset/index.js +1 -1
  69. package/lib/commands/dataset/list.js +1 -1
  70. package/lib/commands/dataset/operations.js +1 -1
  71. package/lib/commands/dataset/relation-audit.js +1 -1
  72. package/lib/commands/dataset/relation-create.js +1 -1
  73. package/lib/commands/dataset/relation-delete.js +1 -1
  74. package/lib/commands/dataset/relation-shared.js +1 -1
  75. package/lib/commands/dataset/relation-update.js +1 -1
  76. package/lib/commands/dataset/relations.js +1 -1
  77. package/lib/commands/dataset/rename.js +1 -1
  78. package/lib/commands/dataset/restore.js +1 -1
  79. package/lib/commands/db/analysis-batching.js +1 -1
  80. package/lib/commands/db/analyze-batch-plan.js +1 -1
  81. package/lib/commands/db/analyze-cancel.js +1 -1
  82. package/lib/commands/db/analyze-start.js +1 -1
  83. package/lib/commands/db/analyze-status.js +1 -1
  84. package/lib/commands/db/create.js +1 -1
  85. package/lib/commands/db/delete.js +1 -1
  86. package/lib/commands/db/detail.js +1 -1
  87. package/lib/commands/db/diff.js +1 -1
  88. package/lib/commands/db/index.js +1 -1
  89. package/lib/commands/db/list.js +1 -1
  90. package/lib/commands/db/shared.js +1 -1
  91. package/lib/commands/db/tables.js +1 -1
  92. package/lib/commands/db/test.js +1 -1
  93. package/lib/commands/db/update.js +1 -1
  94. package/lib/commands/doctor.js +1 -1
  95. package/lib/commands/file/index.js +1 -1
  96. package/lib/commands/init/index.js +1 -1
  97. package/lib/commands/issue/index.js +1 -1
  98. package/lib/commands/issue/nudge.js +1 -1
  99. package/lib/commands/issue/report.js +1 -1
  100. package/lib/commands/issue/shared.js +1 -1
  101. package/lib/commands/logs/index.js +1 -1
  102. package/lib/commands/menu/delete.js +1 -1
  103. package/lib/commands/menu/external-link-create.js +1 -0
  104. package/lib/commands/menu/group-create.js +1 -1
  105. package/lib/commands/menu/group-update.js +1 -1
  106. package/lib/commands/menu/index.js +1 -1
  107. package/lib/commands/menu/list.js +1 -1
  108. package/lib/commands/menu/regroup-start.js +1 -1
  109. package/lib/commands/menu/shared/compare-table.js +1 -1
  110. package/lib/commands/menu/shared/delete-plan.js +1 -1
  111. package/lib/commands/menu/shared/facts.js +1 -1
  112. package/lib/commands/menu/shared/index.js +1 -1
  113. package/lib/commands/menu/shared/inquirer.js +1 -1
  114. package/lib/commands/menu/shared/local-pages.js +1 -1
  115. package/lib/commands/menu/shared/logic.js +1 -1
  116. package/lib/commands/menu/shared/mutations.js +1 -1
  117. package/lib/commands/menu/shared/service.js +1 -1
  118. package/lib/commands/menu/shared/sync-core.js +1 -1
  119. package/lib/commands/menu/shared/update-core.js +1 -1
  120. package/lib/commands/menu/shared/valid-url.js +1 -1
  121. package/lib/commands/menu/sync.js +1 -1
  122. package/lib/commands/menu/update.js +1 -1
  123. package/lib/commands/notification/config-list.js +1 -1
  124. package/lib/commands/notification/index.js +1 -1
  125. package/lib/commands/page/generate-start.js +1 -1
  126. package/lib/commands/page/generate-status.js +1 -1
  127. package/lib/commands/page/index.js +1 -1
  128. package/lib/commands/page/pull.js +1 -1
  129. package/lib/commands/page/push.js +1 -1
  130. package/lib/commands/page/relation-audit.js +1 -1
  131. package/lib/commands/page/shared.js +1 -1
  132. package/lib/commands/page/standard-page-status.js +1 -1
  133. package/lib/commands/page/sync.js +1 -1
  134. package/lib/commands/permit/index.js +1 -1
  135. package/lib/commands/permit/page-get.js +1 -1
  136. package/lib/commands/permit/page-set.js +1 -1
  137. package/lib/commands/permit/role-apis-set.js +1 -1
  138. package/lib/commands/permit/role-menus-set.js +1 -1
  139. package/lib/commands/permit/role-menus.js +1 -1
  140. package/lib/commands/permit/shared.js +1 -1
  141. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  142. package/lib/commands/project/create/format-elapsed.js +1 -1
  143. package/lib/commands/project/create/main.js +1 -1
  144. package/lib/commands/project/create/non-interactive.js +1 -1
  145. package/lib/commands/project/create/project-template-path.js +1 -1
  146. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  147. package/lib/commands/project/create/use-format-code.js +1 -1
  148. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  149. package/lib/commands/project/index.js +1 -1
  150. package/lib/commands/project/init.js +1 -1
  151. package/lib/commands/project/upgrade.js +1 -1
  152. package/lib/commands/registry.js +1 -1
  153. package/lib/commands/role/create.js +1 -1
  154. package/lib/commands/role/delete.js +1 -1
  155. package/lib/commands/role/detail.js +1 -1
  156. package/lib/commands/role/index.js +1 -1
  157. package/lib/commands/role/list.js +1 -1
  158. package/lib/commands/role/shared.js +1 -1
  159. package/lib/commands/role/update.js +1 -1
  160. package/lib/commands/role/user-add.js +1 -1
  161. package/lib/commands/role/user-remove.js +1 -1
  162. package/lib/commands/role/user-resolve.js +1 -1
  163. package/lib/commands/run/index.js +1 -1
  164. package/lib/commands/schema.js +1 -1
  165. package/lib/commands/sql/create.js +1 -1
  166. package/lib/commands/sql/delete.js +1 -1
  167. package/lib/commands/sql/detail.js +1 -1
  168. package/lib/commands/sql/exec.js +1 -1
  169. package/lib/commands/sql/index.js +1 -1
  170. package/lib/commands/sql/list.js +1 -1
  171. package/lib/commands/sql/pull.js +1 -1
  172. package/lib/commands/sql/push.js +1 -1
  173. package/lib/commands/sql/save.js +1 -1
  174. package/lib/commands/sql/shared.js +1 -1
  175. package/lib/commands/sql/status.js +1 -1
  176. package/lib/commands/sql/validate.js +1 -1
  177. package/lib/commands/task/index.js +1 -1
  178. package/lib/commands/task/status.js +1 -1
  179. package/lib/commands/workspace/add.js +1 -1
  180. package/lib/commands/workspace/index.js +1 -1
  181. package/lib/commands/workspace/remove.js +1 -1
  182. package/lib/config/schema.js +1 -1
  183. package/lib/constant/cdn.js +1 -1
  184. package/lib/constant/cli.js +1 -1
  185. package/lib/constant/defaults.js +1 -1
  186. package/lib/constant/domain.js +1 -1
  187. package/lib/constant/env.js +1 -1
  188. package/lib/constant/output.js +1 -1
  189. package/lib/constant/paths.js +1 -1
  190. package/lib/constant/risk.js +1 -1
  191. package/lib/context/app-resolver.js +1 -1
  192. package/lib/context/auth-resolver.js +1 -1
  193. package/lib/context/config-loader.js +1 -1
  194. package/lib/context.js +1 -1
  195. package/lib/core/alias-resolver.js +1 -1
  196. package/lib/core/api-client.js +1 -1
  197. package/lib/core/bff/config.js +1 -1
  198. package/lib/core/bff/file-system.js +1 -1
  199. package/lib/core/bff/hash.js +1 -1
  200. package/lib/core/bff/lock.js +1 -1
  201. package/lib/core/bff/utils.js +1 -1
  202. package/lib/core/db-resolver.js +1 -1
  203. package/lib/core/page/file-system.js +1 -1
  204. package/lib/core/page/hash.js +1 -1
  205. package/lib/core/page/lock.js +1 -1
  206. package/lib/core/sql-index-auditor.js +1 -1
  207. package/lib/core/sql-sync/config.js +1 -1
  208. package/lib/core/sql-sync/file-system.js +1 -1
  209. package/lib/core/sql-sync/hash.js +1 -1
  210. package/lib/core/sql-sync/lock.js +1 -1
  211. package/lib/core/sql-sync/utils.js +1 -1
  212. package/lib/core/sql-validator.js +1 -1
  213. package/lib/errors.js +1 -1
  214. package/lib/framework/build-all-flags.js +1 -1
  215. package/lib/framework/error-output.js +1 -1
  216. package/lib/framework/explicit-yes.js +1 -1
  217. package/lib/framework/flags.js +1 -1
  218. package/lib/framework/help.js +1 -1
  219. package/lib/framework/index.js +1 -1
  220. package/lib/framework/output.js +1 -1
  221. package/lib/framework/response.js +1 -1
  222. package/lib/framework/runner-alias.js +1 -1
  223. package/lib/framework/runner.js +1 -1
  224. package/lib/framework/schema-export.js +1 -1
  225. package/lib/framework/types.js +1 -1
  226. package/lib/generated/build-info.js +1 -1
  227. package/lib/help.js +1 -1
  228. package/lib/skills/main.js +1 -1
  229. package/lib/skills/npx-skills-add.js +1 -1
  230. package/lib/telemetry/cli-command-trace.js +1 -1
  231. package/lib/telemetry/cli-help-trace.js +1 -1
  232. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  233. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  234. package/lib/telemetry/send-cli-trace-log.js +1 -1
  235. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  236. package/lib/utils/ai_config.js +1 -1
  237. package/lib/utils/apply-jq-filter.js +1 -1
  238. package/lib/utils/cdn-config.js +1 -1
  239. package/lib/utils/check-sdk-version.js +1 -1
  240. package/lib/utils/cli-version-check.js +1 -1
  241. package/lib/utils/cli-version-policy.js +1 -1
  242. package/lib/utils/config.js +1 -1
  243. package/lib/utils/copy-directory.js +1 -1
  244. package/lib/utils/entity-with-id.js +1 -1
  245. package/lib/utils/file-utils.js +1 -1
  246. package/lib/utils/guides-cdn.js +1 -1
  247. package/lib/utils/http-client.js +1 -1
  248. package/lib/utils/is-non-interactive.js +1 -1
  249. package/lib/utils/logger.js +1 -1
  250. package/lib/utils/params.js +1 -1
  251. package/lib/utils/platform.js +1 -1
  252. package/lib/utils/rules-cdn.js +1 -1
  253. package/lib/utils/sleep.js +1 -1
  254. package/lib/utils/template-replacer.js +1 -1
  255. package/lib/utils/update-notice.js +1 -1
  256. package/lib/utils/version.js +1 -1
  257. package/lib/utils/with-active-cookie.js +1 -1
  258. package/lib/utils/write-cli-side-channel.js +1 -1
  259. package/package.json +1 -1
@@ -1 +1 @@
1
- function a164_0x167d(_0x522920,_0x158462){_0x522920=_0x522920-0x138;const _0x1c3056=a164_0x1c30();let _0x167d1e=_0x1c3056[_0x522920];return _0x167d1e;}const a164_0x5ec471=a164_0x167d;(function(_0x16d1f6,_0x3f1066){const _0x445cd2=a164_0x167d,_0x182455=_0x16d1f6();while(!![]){try{const _0x2bec65=parseInt(_0x445cd2(0x145))/0x1+parseInt(_0x445cd2(0x16a))/0x2+-parseInt(_0x445cd2(0x17a))/0x3+parseInt(_0x445cd2(0x142))/0x4+parseInt(_0x445cd2(0x16b))/0x5+parseInt(_0x445cd2(0x157))/0x6*(-parseInt(_0x445cd2(0x139))/0x7)+-parseInt(_0x445cd2(0x15c))/0x8;if(_0x2bec65===_0x3f1066)break;else _0x182455['push'](_0x182455['shift']());}catch(_0x17a539){_0x182455['push'](_0x182455['shift']());}}}(a164_0x1c30,0x85f63));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';function a164_0x1c30(){const _0x1f1ca3=['new','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','mybatisXml','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','1837080EUuFAY','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','Created\x20SQL\x20query\x20','875891JsbUqD','str','trim','sqlName','Invalid\x20database\x20selection\x20payload:\x20','name','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','validation','nonInteractive','high-risk-write','sqlRootDir','flag','SQL\x20名称不能为空','description','mode','dbId\x20不能为空','请输入\x20SQL\x20名称:','2075802HDamWH','<server-generated-sqlCode>','dbId\x20必须为正整数','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','SQL\x20query\x20display\x20name','12082472cVNgjb','File\x20already\x20exists:\x20','请选择目标数据库:','sqls','catch','请输入目标数据库\x20dbId:','toISOString','db-id','isFinite','Local\x20SQL\x20file\x20mode','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','✎\x20手动输入\x20dbId','lockFilePath','/smartapi/custom/saveUserCustomSql','1026506QlCEWU','4363660aDAfCy','SELECT\x201\x20AS\x20id;','dbId','lastSync','\x20\x20SELECT\x201\x20AS\x20id','请选择本地\x20SQL\x20模式:','appCode','length','普通\x20SQL(sql)','join','flagMissing','number','sql','sqlRoot','map','948489yVdBJK','__manual__','7pkTKUr','dbName','sqlCode','utf8','POST'];a164_0x1c30=function(){return _0x1f1ca3;};return a164_0x1c30();}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(_0x547923){const _0x504ca7=a164_0x167d;if(_0x547923===_0x504ca7(0x140))return[_0x504ca7(0x14b),_0x504ca7(0x16f),'</select>',''][_0x504ca7(0x174)]('\x0a');return[_0x504ca7(0x16c),''][_0x504ca7(0x174)]('\x0a');}export const sqlCreate={'service':a164_0x5ec471(0x177),'command':'create','description':a164_0x5ec471(0x13f),'risk':a164_0x5ec471(0x14f),'flags':[{'name':a164_0x5ec471(0x14a),'type':'string','description':a164_0x5ec471(0x15b)},{'name':'db-id','type':a164_0x5ec471(0x176),'description':'Target\x20database\x20ID'},{'name':a164_0x5ec471(0x154),'type':'string','enum':[a164_0x5ec471(0x177),a164_0x5ec471(0x140)],'description':a164_0x5ec471(0x165)}],async 'validate'(_0x57c23a){const _0x2dd351=a164_0x5ec471;if(!_0x57c23a[_0x2dd351(0x14e)])return;if(!_0x57c23a[_0x2dd351(0x146)](_0x2dd351(0x14a))[_0x2dd351(0x147)]())throw CliErrors['flagMissing'](_0x2dd351(0x14a),_0x2dd351(0x15a));const _0xd25803=resolveProvidedDbId(_0x57c23a);if(typeof _0xd25803!=='number'||!Number[_0x2dd351(0x164)](_0xd25803)||_0xd25803<=0x0)throw CliErrors[_0x2dd351(0x175)](_0x2dd351(0x163),_0x2dd351(0x141));if(!_0x57c23a[_0x2dd351(0x146)](_0x2dd351(0x154))[_0x2dd351(0x147)]())throw CliErrors[_0x2dd351(0x175)](_0x2dd351(0x154),_0x2dd351(0x143));},async 'dryRun'(_0x35729b){const _0x52a90b=a164_0x5ec471,_0x26ea44=loadSqlProjectConfig(_0x35729b[_0x52a90b(0x171)]),{sqlName:_0x4921d4,dbId:_0x593de5,dbName:_0x29efc8,mode:_0x356cb8}=await resolveSqlNewInputs(_0x35729b),_0x353f99=buildSqlRelativePath(_0x52a90b(0x158),_0x4921d4,_0x29efc8,_0x356cb8,_0x593de5),_0x13158d=_0x26ea44[_0x52a90b(0x150)]+'/'+_0x353f99;return{'method':_0x52a90b(0x13d),'url':_0x52a90b(0x169),'body':{'appCode':_0x35729b[_0x52a90b(0x171)],'sqlName':_0x4921d4,'dbId':_0x593de5,'mode':_0x356cb8,'localPath':_0x13158d},'description':_0x52a90b(0x14c)+_0x26ea44[_0x52a90b(0x150)]};},async 'execute'(_0x532089){const _0x48b287=a164_0x5ec471,_0x7f2c18=loadSqlProjectConfig(_0x532089[_0x48b287(0x171)]),{sqlName:_0x60eeb4,dbId:_0x54f225,dbName:_0x3229e6,mode:_0xd5b0b8}=await resolveSqlNewInputs(_0x532089),_0x53f1d4=generateSqlTemplate(_0xd5b0b8),_0x3ffe3f=await createSqlQuery({'appCode':_0x532089[_0x48b287(0x171)],'sqlName':_0x60eeb4,'dbId':_0x54f225,'sqlContent':_0x53f1d4}),_0x4056ca=ensureRemoteSqlContent(_0x3ffe3f),_0x4d2a24=_0x3229e6||await getDbName(_0x532089[_0x48b287(0x171)],_0x54f225)[_0x48b287(0x160)](()=>undefined),_0x47a383=buildSqlRelativePath(_0x3ffe3f[_0x48b287(0x13b)],_0x3ffe3f[_0x48b287(0x148)],_0x4d2a24,_0xd5b0b8,_0x54f225),_0x13ee7d=_0x7f2c18[_0x48b287(0x150)]+'/'+_0x47a383,_0x18b7c5=buildLocalSqlFileContent({'sqlCode':_0x3ffe3f[_0x48b287(0x13b)],'sqlName':_0x3ffe3f['sqlName'],'dbId':_0x3ffe3f[_0x48b287(0x16d)]},_0x4056ca,{'dbName':_0x4d2a24,'mode':_0xd5b0b8,'syncedAt':new Date()[_0x48b287(0x162)](),'description':_0x3ffe3f[_0x48b287(0x153)]});if(await fileExists(_0x13ee7d))throw CliErrors[_0x48b287(0x14d)](_0x48b287(0x15d)+_0x13ee7d);await ensureParentDirectory(_0x13ee7d),await writeFile(_0x13ee7d,_0x18b7c5,_0x48b287(0x13c));const _0x32efdf=await readSqlLockFile(_0x7f2c18[_0x48b287(0x168)]),{lockData:_0x21887e,appLock:_0x5419ea}=ensureSqlLockScope(_0x32efdf??createEmptySqlLock(),_0x7f2c18[_0x48b287(0x171)],_0x7f2c18[_0x48b287(0x178)],_0x48b287(0x13e));return _0x5419ea[_0x48b287(0x15f)][_0x3ffe3f[_0x48b287(0x13b)]]={...buildSqlLockEntry(_0x3ffe3f,_0x4056ca,computeSqlContentHash(_0x18b7c5),{'dbName':_0x4d2a24}),'path':_0x47a383,'mode':_0xd5b0b8},_0x5419ea[_0x48b287(0x16e)]=new Date()['toISOString'](),await writeSqlLockFile(_0x7f2c18['lockFilePath'],_0x21887e),{'ok':!![],'data':{'id':_0x3ffe3f['id'],'sqlCode':_0x3ffe3f['sqlCode'],'sqlName':_0x3ffe3f['sqlName'],'dbId':_0x3ffe3f[_0x48b287(0x16d)],'path':_0x13ee7d,'mode':_0xd5b0b8},'message':_0x48b287(0x144)+_0x3ffe3f[_0x48b287(0x13b)]};}};async function resolveSqlNewInputs(_0x37b927){const _0x1ff1e6=await resolveSqlNameInput(_0x37b927),{dbId:_0x5605db,dbName:_0x4a3504}=await resolveDbSelection(_0x37b927),_0x42493f=await resolveSqlModeInput(_0x37b927);return{'sqlName':_0x1ff1e6,'dbId':_0x5605db,'dbName':_0x4a3504,'mode':_0x42493f};}async function resolveSqlNameInput(_0x2de6fa){const _0x321a5b=a164_0x5ec471,_0x53aea6=_0x2de6fa['str'](_0x321a5b(0x14a))[_0x321a5b(0x147)]();if(_0x53aea6)return _0x53aea6;if(_0x2de6fa['nonInteractive'])throw CliErrors[_0x321a5b(0x175)]('name',_0x321a5b(0x15a));return(await input({'message':_0x321a5b(0x156),'validate':_0x1be05b=>_0x1be05b[_0x321a5b(0x147)]()?!![]:_0x321a5b(0x152)}))[_0x321a5b(0x147)]();}async function resolveDbSelection(_0x3a3e4f){const _0x3f1ae8=a164_0x5ec471,_0x118e76=resolveProvidedDbId(_0x3a3e4f);if(typeof _0x118e76===_0x3f1ae8(0x176)&&Number[_0x3f1ae8(0x164)](_0x118e76)&&_0x118e76>0x0)return{'dbId':_0x118e76,'dbName':await getDbName(_0x3a3e4f[_0x3f1ae8(0x171)],_0x118e76)[_0x3f1ae8(0x160)](()=>undefined)};if(_0x3a3e4f[_0x3f1ae8(0x14e)])throw CliErrors[_0x3f1ae8(0x175)](_0x3f1ae8(0x163),_0x3f1ae8(0x141));const _0x4107df=await listDatabases(_0x3a3e4f['appCode'])[_0x3f1ae8(0x160)](()=>[]);if(_0x4107df[_0x3f1ae8(0x172)]===0x1)return{'dbId':_0x4107df[0x0][_0x3f1ae8(0x16d)],'dbName':_0x4107df[0x0][_0x3f1ae8(0x13a)]};if(_0x4107df[_0x3f1ae8(0x172)]>0x1){const _0x5bdbe9=await select({'message':_0x3f1ae8(0x15e),'choices':[..._0x4107df[_0x3f1ae8(0x179)](_0x5365db=>({'name':_0x5365db[_0x3f1ae8(0x13a)]+'\x20('+_0x5365db[_0x3f1ae8(0x16d)]+')','value':serializeDbSelection(_0x5365db)})),{'name':_0x3f1ae8(0x167),'value':_0x3f1ae8(0x138)}]});if(_0x5bdbe9!==_0x3f1ae8(0x138))return deserializeDbSelection(_0x5bdbe9);}const _0x88caa4=await input({'message':_0x3f1ae8(0x161),'validate':_0x554fdc=>{const _0x465cbc=_0x3f1ae8,_0x225abc=_0x554fdc[_0x465cbc(0x147)]();if(!_0x225abc)return _0x465cbc(0x155);const _0x19f500=Number(_0x225abc);if(!Number['isInteger'](_0x19f500)||_0x19f500<=0x0)return _0x465cbc(0x159);return!![];}});return{'dbId':Number(_0x88caa4[_0x3f1ae8(0x147)]())};}async function resolveSqlModeInput(_0x10452b){const _0x2d4399=a164_0x5ec471,_0xa7b03e=_0x10452b['str'](_0x2d4399(0x154))[_0x2d4399(0x147)]();if(_0xa7b03e===_0x2d4399(0x177)||_0xa7b03e==='mybatisXml')return _0xa7b03e;if(_0x10452b[_0x2d4399(0x14e)])throw CliErrors[_0x2d4399(0x175)](_0x2d4399(0x154),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':_0x2d4399(0x170),'choices':[{'name':_0x2d4399(0x173),'value':_0x2d4399(0x177),'description':_0x2d4399(0x166)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0x2d4399(0x140),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x4e321c){const _0xe65b81=a164_0x5ec471;return JSON['stringify']({'dbId':_0x4e321c[_0xe65b81(0x16d)],'dbName':_0x4e321c[_0xe65b81(0x13a)]});}function deserializeDbSelection(_0xa1668f){const _0x2fad56=a164_0x5ec471;try{const _0x4651d4=JSON['parse'](_0xa1668f);if(typeof _0x4651d4[_0x2fad56(0x16d)]===_0x2fad56(0x176)&&Number[_0x2fad56(0x164)](_0x4651d4[_0x2fad56(0x16d)]))return{'dbId':_0x4651d4['dbId'],'dbName':_0x4651d4[_0x2fad56(0x13a)]};}catch{}throw CliErrors['validation'](_0x2fad56(0x149)+_0xa1668f);}function resolveProvidedDbId(_0x405837){const _0xd56a42=a164_0x5ec471,_0x49c0f4=_0x405837[_0xd56a42(0x151)](_0xd56a42(0x163));if(typeof _0x49c0f4===_0xd56a42(0x176)&&Number[_0xd56a42(0x164)](_0x49c0f4))return _0x49c0f4;return undefined;}
1
+ const a165_0x588350=a165_0x3c57;(function(_0x139626,_0x5d6bb1){const _0x5af22f=a165_0x3c57,_0x3be5b8=_0x139626();while(!![]){try{const _0x11400a=-parseInt(_0x5af22f(0x180))/0x1*(parseInt(_0x5af22f(0x187))/0x2)+-parseInt(_0x5af22f(0x182))/0x3*(parseInt(_0x5af22f(0x16e))/0x4)+parseInt(_0x5af22f(0x174))/0x5+parseInt(_0x5af22f(0x14d))/0x6+-parseInt(_0x5af22f(0x170))/0x7+parseInt(_0x5af22f(0x18c))/0x8*(-parseInt(_0x5af22f(0x166))/0x9)+-parseInt(_0x5af22f(0x185))/0xa*(-parseInt(_0x5af22f(0x159))/0xb);if(_0x11400a===_0x5d6bb1)break;else _0x3be5b8['push'](_0x3be5b8['shift']());}catch(_0x5d2984){_0x3be5b8['push'](_0x3be5b8['shift']());}}}(a165_0x5a61,0xddadb));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';function a165_0x3c57(_0x80b98b,_0x4214b3){_0x80b98b=_0x80b98b-0x145;const _0x5a61eb=a165_0x5a61();let _0x3c57c3=_0x5a61eb[_0x80b98b];return _0x3c57c3;}import{createSqlQuery}from'../../core/api-client.js';function a165_0x5a61(){const _0x151b8f=['1414252rmxEIA','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','sql','db-id','4352970vzFTMp','map','length','lockFilePath','parse','str','\x20\x20SELECT\x201\x20AS\x20id','✎\x20手动输入\x20dbId','Local\x20SQL\x20file\x20mode','join','File\x20already\x20exists:\x20','dbId\x20必须为正整数','16gVwlhk','flagMissing','93IxliDs','MyBatis\x20XML(mybatisXml)','trim','31028170LUNFmL','SQL\x20query\x20display\x20name','135748VpSSkF','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','Invalid\x20database\x20selection\x20payload:\x20','SELECT\x201\x20AS\x20id;','普通\x20SQL(sql)','247088orpYaq','sqlRootDir','mode','flag','__manual__','lastSync','POST','请选择本地\x20SQL\x20模式:','validation','5058390wQWHFf','dbName','string','Target\x20database\x20ID','create','nonInteractive','isFinite','SQL\x20名称不能为空','sqlCode','sqlName','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','11jNXgNI','number','toISOString','mybatisXml','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','name','utf8','请选择目标数据库:','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','</select>','sqls','stringify','279tCTsKj','appCode','new','<server-generated-sqlCode>','description','catch','请输入目标数据库\x20dbId:','dbId','214580QkehBM','/smartapi/custom/saveUserCustomSql'];a165_0x5a61=function(){return _0x151b8f;};return a165_0x5a61();}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(_0x424d9d){const _0x16648f=a165_0x3c57;if(_0x424d9d===_0x16648f(0x15c))return[_0x16648f(0x188),_0x16648f(0x17a),_0x16648f(0x163),''][_0x16648f(0x17d)]('\x0a');return[_0x16648f(0x18a),''][_0x16648f(0x17d)]('\x0a');}export const sqlCreate={'service':'sql','command':a165_0x588350(0x151),'description':a165_0x588350(0x157),'risk':'high-risk-write','flags':[{'name':a165_0x588350(0x15f),'type':'string','description':a165_0x588350(0x186)},{'name':a165_0x588350(0x173),'type':a165_0x588350(0x15a),'description':a165_0x588350(0x150)},{'name':'mode','type':a165_0x588350(0x14f),'enum':[a165_0x588350(0x172),a165_0x588350(0x15c)],'description':a165_0x588350(0x17c)}],async 'validate'(_0x8f022b){const _0x14760f=a165_0x588350;if(!_0x8f022b[_0x14760f(0x152)])return;if(!_0x8f022b[_0x14760f(0x179)](_0x14760f(0x15f))[_0x14760f(0x184)]())throw CliErrors['flagMissing'](_0x14760f(0x15f),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x369ba2=resolveProvidedDbId(_0x8f022b);if(typeof _0x369ba2!=='number'||!Number['isFinite'](_0x369ba2)||_0x369ba2<=0x0)throw CliErrors[_0x14760f(0x181)](_0x14760f(0x173),_0x14760f(0x15d));if(!_0x8f022b[_0x14760f(0x179)](_0x14760f(0x146))[_0x14760f(0x184)]())throw CliErrors[_0x14760f(0x181)](_0x14760f(0x146),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x22f4a9){const _0x53e728=a165_0x588350,_0x1cd54f=loadSqlProjectConfig(_0x22f4a9[_0x53e728(0x167)]),{sqlName:_0xec9339,dbId:_0x44bbd5,dbName:_0x40b519,mode:_0x307f09}=await resolveSqlNewInputs(_0x22f4a9),_0x26d660=buildSqlRelativePath(_0x53e728(0x169),_0xec9339,_0x40b519,_0x307f09,_0x44bbd5),_0x1db9f5=_0x1cd54f['sqlRootDir']+'/'+_0x26d660;return{'method':_0x53e728(0x14a),'url':_0x53e728(0x16f),'body':{'appCode':_0x22f4a9[_0x53e728(0x167)],'sqlName':_0xec9339,'dbId':_0x44bbd5,'mode':_0x307f09,'localPath':_0x1db9f5},'description':_0x53e728(0x15e)+_0x1cd54f[_0x53e728(0x145)]};},async 'execute'(_0x177c27){const _0x1a16c8=a165_0x588350,_0x50f80a=loadSqlProjectConfig(_0x177c27[_0x1a16c8(0x167)]),{sqlName:_0x280f46,dbId:_0x8e9d4f,dbName:_0x4c23fd,mode:_0x592743}=await resolveSqlNewInputs(_0x177c27),_0x1cae79=generateSqlTemplate(_0x592743),_0x45b53b=await createSqlQuery({'appCode':_0x177c27[_0x1a16c8(0x167)],'sqlName':_0x280f46,'dbId':_0x8e9d4f,'sqlContent':_0x1cae79}),_0x49d6a1=ensureRemoteSqlContent(_0x45b53b),_0x37ccf1=_0x4c23fd||await getDbName(_0x177c27[_0x1a16c8(0x167)],_0x8e9d4f)[_0x1a16c8(0x16b)](()=>undefined),_0x555bf6=buildSqlRelativePath(_0x45b53b[_0x1a16c8(0x155)],_0x45b53b[_0x1a16c8(0x156)],_0x37ccf1,_0x592743,_0x8e9d4f),_0x5aeeaf=_0x50f80a[_0x1a16c8(0x145)]+'/'+_0x555bf6,_0x2870cb=buildLocalSqlFileContent({'sqlCode':_0x45b53b[_0x1a16c8(0x155)],'sqlName':_0x45b53b[_0x1a16c8(0x156)],'dbId':_0x45b53b['dbId']},_0x49d6a1,{'dbName':_0x37ccf1,'mode':_0x592743,'syncedAt':new Date()[_0x1a16c8(0x15b)](),'description':_0x45b53b[_0x1a16c8(0x16a)]});if(await fileExists(_0x5aeeaf))throw CliErrors[_0x1a16c8(0x14c)](_0x1a16c8(0x17e)+_0x5aeeaf);await ensureParentDirectory(_0x5aeeaf),await writeFile(_0x5aeeaf,_0x2870cb,_0x1a16c8(0x160));const _0x1efbc9=await readSqlLockFile(_0x50f80a[_0x1a16c8(0x177)]),{lockData:_0x25b792,appLock:_0x5f3794}=ensureSqlLockScope(_0x1efbc9??createEmptySqlLock(),_0x50f80a['appCode'],_0x50f80a['sqlRoot'],_0x1a16c8(0x168));return _0x5f3794[_0x1a16c8(0x164)][_0x45b53b['sqlCode']]={...buildSqlLockEntry(_0x45b53b,_0x49d6a1,computeSqlContentHash(_0x2870cb),{'dbName':_0x37ccf1}),'path':_0x555bf6,'mode':_0x592743},_0x5f3794[_0x1a16c8(0x149)]=new Date()[_0x1a16c8(0x15b)](),await writeSqlLockFile(_0x50f80a['lockFilePath'],_0x25b792),{'ok':!![],'data':{'id':_0x45b53b['id'],'sqlCode':_0x45b53b[_0x1a16c8(0x155)],'sqlName':_0x45b53b['sqlName'],'dbId':_0x45b53b['dbId'],'path':_0x5aeeaf,'mode':_0x592743},'message':'Created\x20SQL\x20query\x20'+_0x45b53b[_0x1a16c8(0x155)]};}};async function resolveSqlNewInputs(_0x30df68){const _0x39d141=await resolveSqlNameInput(_0x30df68),{dbId:_0x53beb0,dbName:_0x1cfa33}=await resolveDbSelection(_0x30df68),_0x1fb43c=await resolveSqlModeInput(_0x30df68);return{'sqlName':_0x39d141,'dbId':_0x53beb0,'dbName':_0x1cfa33,'mode':_0x1fb43c};}async function resolveSqlNameInput(_0x2899a1){const _0x5ed26b=a165_0x588350,_0x38e732=_0x2899a1['str']('name')['trim']();if(_0x38e732)return _0x38e732;if(_0x2899a1[_0x5ed26b(0x152)])throw CliErrors[_0x5ed26b(0x181)](_0x5ed26b(0x15f),_0x5ed26b(0x162));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x50a45c=>_0x50a45c[_0x5ed26b(0x184)]()?!![]:_0x5ed26b(0x154)}))[_0x5ed26b(0x184)]();}async function resolveDbSelection(_0x57af6a){const _0x5af6af=a165_0x588350,_0xa165fd=resolveProvidedDbId(_0x57af6a);if(typeof _0xa165fd===_0x5af6af(0x15a)&&Number[_0x5af6af(0x153)](_0xa165fd)&&_0xa165fd>0x0)return{'dbId':_0xa165fd,'dbName':await getDbName(_0x57af6a['appCode'],_0xa165fd)['catch'](()=>undefined)};if(_0x57af6a[_0x5af6af(0x152)])throw CliErrors[_0x5af6af(0x181)]('db-id',_0x5af6af(0x15d));const _0x1b8f7e=await listDatabases(_0x57af6a['appCode'])[_0x5af6af(0x16b)](()=>[]);if(_0x1b8f7e[_0x5af6af(0x176)]===0x1)return{'dbId':_0x1b8f7e[0x0][_0x5af6af(0x16d)],'dbName':_0x1b8f7e[0x0][_0x5af6af(0x14e)]};if(_0x1b8f7e['length']>0x1){const _0x35cb83=await select({'message':_0x5af6af(0x161),'choices':[..._0x1b8f7e[_0x5af6af(0x175)](_0x5c456a=>({'name':_0x5c456a['dbName']+'\x20('+_0x5c456a[_0x5af6af(0x16d)]+')','value':serializeDbSelection(_0x5c456a)})),{'name':_0x5af6af(0x17b),'value':_0x5af6af(0x148)}]});if(_0x35cb83!==_0x5af6af(0x148))return deserializeDbSelection(_0x35cb83);}const _0x47572b=await input({'message':_0x5af6af(0x16c),'validate':_0x143e2e=>{const _0x134f2c=_0x5af6af,_0x135b6d=_0x143e2e[_0x134f2c(0x184)]();if(!_0x135b6d)return'dbId\x20不能为空';const _0x39101a=Number(_0x135b6d);if(!Number['isInteger'](_0x39101a)||_0x39101a<=0x0)return _0x134f2c(0x17f);return!![];}});return{'dbId':Number(_0x47572b[_0x5af6af(0x184)]())};}async function resolveSqlModeInput(_0x554edd){const _0x507894=a165_0x588350,_0x314558=_0x554edd['str'](_0x507894(0x146))[_0x507894(0x184)]();if(_0x314558===_0x507894(0x172)||_0x314558==='mybatisXml')return _0x314558;if(_0x554edd['nonInteractive'])throw CliErrors[_0x507894(0x181)](_0x507894(0x146),_0x507894(0x158));return await select({'message':_0x507894(0x14b),'choices':[{'name':_0x507894(0x18b),'value':_0x507894(0x172),'description':_0x507894(0x171)},{'name':_0x507894(0x183),'value':'mybatisXml','description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x55bc13){const _0x192a45=a165_0x588350;return JSON[_0x192a45(0x165)]({'dbId':_0x55bc13[_0x192a45(0x16d)],'dbName':_0x55bc13[_0x192a45(0x14e)]});}function deserializeDbSelection(_0x5d58a0){const _0x490fca=a165_0x588350;try{const _0x188c02=JSON[_0x490fca(0x178)](_0x5d58a0);if(typeof _0x188c02[_0x490fca(0x16d)]===_0x490fca(0x15a)&&Number[_0x490fca(0x153)](_0x188c02[_0x490fca(0x16d)]))return{'dbId':_0x188c02[_0x490fca(0x16d)],'dbName':_0x188c02[_0x490fca(0x14e)]};}catch{}throw CliErrors[_0x490fca(0x14c)](_0x490fca(0x189)+_0x5d58a0);}function resolveProvidedDbId(_0x4bca59){const _0x19191c=a165_0x588350,_0x34316b=_0x4bca59[_0x19191c(0x147)]('db-id');if(typeof _0x34316b===_0x19191c(0x15a)&&Number['isFinite'](_0x34316b))return _0x34316b;return undefined;}
@@ -1 +1 @@
1
- const a165_0xe9e30f=a165_0x32d5;(function(_0x14d86f,_0x5ed959){const _0x3f4364=a165_0x32d5,_0x11910c=_0x14d86f();while(!![]){try{const _0x4df84e=-parseInt(_0x3f4364(0x1b0))/0x1*(-parseInt(_0x3f4364(0x1a2))/0x2)+-parseInt(_0x3f4364(0x1a7))/0x3*(-parseInt(_0x3f4364(0x1b2))/0x4)+-parseInt(_0x3f4364(0x1ab))/0x5+parseInt(_0x3f4364(0x1b9))/0x6*(parseInt(_0x3f4364(0x1a8))/0x7)+parseInt(_0x3f4364(0x1b6))/0x8*(-parseInt(_0x3f4364(0x1ac))/0x9)+-parseInt(_0x3f4364(0x1ae))/0xa*(-parseInt(_0x3f4364(0x197))/0xb)+parseInt(_0x3f4364(0x198))/0xc*(parseInt(_0x3f4364(0x1b7))/0xd);if(_0x4df84e===_0x5ed959)break;else _0x11910c['push'](_0x11910c['shift']());}catch(_0x3a7809){_0x11910c['push'](_0x11910c['shift']());}}}(a165_0x5003,0xdff6e));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';function a165_0x5003(){const _0x3313ef=['entries','/smartapi/custom/deleteUserCustomSql','48eRQPJy','45422DwORjP','lastSync','12JbvEIp','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','validation','appCode','sqls','toISOString','539275tSxQct','1356wRAWkJ','trashedTo','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','trashDir','sql','lockFilePath','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','sqlRootDir','remoteId','sqlRoot','853782AtjcHw','POST','fromEntries','startsWith','projectRoot','18meqVkV','1112587ENmLBA','str','SQL\x20lock\x20file\x20not\x20found.','4003260GshYaW','2528964aosbqW','sqlcode','270kqrCqG','high-risk-write','1cyDchd','Deleted\x20','627144plgezS','delete'];a165_0x5003=function(){return _0x3313ef;};return a165_0x5003();}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a165_0xe9e30f(0x19c),'command':a165_0xe9e30f(0x1b3),'description':a165_0xe9e30f(0x19e),'risk':a165_0xe9e30f(0x1af),'flags':[SQLCODE_FLAG],async 'validate'(_0x173a7e){const _0x5a71ca=a165_0xe9e30f,_0x1d2987=loadSqlProjectConfig(_0x173a7e[_0x5a71ca(0x1bc)]),_0x2edd0b=await readSqlLockFile(_0x1d2987['lockFilePath']);if(!_0x2edd0b)throw CliErrors['validation'](_0x5a71ca(0x19a));},async 'dryRun'(_0x44b7e0){const _0x5dcbb4=a165_0xe9e30f,_0x15a84f=loadSqlProjectConfig(_0x44b7e0[_0x5dcbb4(0x1bc)]),_0x3eed52=await readSqlLockFile(_0x15a84f[_0x5dcbb4(0x19d)]);if(!_0x3eed52)throw CliErrors['validation'](_0x5dcbb4(0x19a));const {appLock:_0x234382}=ensureSqlLockScope(_0x3eed52,_0x44b7e0[_0x5dcbb4(0x1bc)],_0x15a84f['sqlRoot'],_0x5dcbb4(0x1b3)),_0x2e416b=_0x44b7e0[_0x5dcbb4(0x1a9)](_0x5dcbb4(0x1ad)),_0x287085=_0x234382[_0x5dcbb4(0x1bd)][_0x2e416b];if(!_0x287085)throw CliErrors['validation']('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x2e416b+'\x22.');return{'method':_0x5dcbb4(0x1a3),'url':_0x5dcbb4(0x1b5),'body':{'sqlCode':_0x2e416b,'id':_0x287085['remoteId'],'localPath':resolveLocalSqlFilePath(_0x15a84f,_0x2e416b,_0x287085)},'description':'Would\x20delete\x20SQL\x20'+_0x2e416b+_0x5dcbb4(0x1ba)+_0x15a84f[_0x5dcbb4(0x19b)]};},async 'execute'(_0x34add6){const _0x1d7a5a=a165_0xe9e30f,_0x444181=loadSqlProjectConfig(_0x34add6['appCode']),_0x26dc14=await readSqlLockFile(_0x444181['lockFilePath']);if(!_0x26dc14)throw CliErrors[_0x1d7a5a(0x1bb)](_0x1d7a5a(0x1aa));const {lockData:_0x36a50f,appLock:_0x36abc5}=ensureSqlLockScope(_0x26dc14,_0x34add6[_0x1d7a5a(0x1bc)],_0x444181[_0x1d7a5a(0x1a1)],_0x1d7a5a(0x1b3)),_0x489008=_0x34add6[_0x1d7a5a(0x1a9)]('sqlcode'),_0x140094=_0x36abc5[_0x1d7a5a(0x1bd)][_0x489008];if(!_0x140094)throw CliErrors['validation']('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x489008+'\x22.');await deleteSqlQuery({'id':_0x140094[_0x1d7a5a(0x1a0)],'sqlCode':_0x489008}),_0x36abc5['sqls']=Object[_0x1d7a5a(0x1a4)](Object[_0x1d7a5a(0x1b4)](_0x36abc5[_0x1d7a5a(0x1bd)])['filter'](([_0x360d0c])=>_0x360d0c!==_0x489008)),_0x36abc5[_0x1d7a5a(0x1b8)]=new Date()[_0x1d7a5a(0x196)](),await writeSqlLockFile(_0x444181[_0x1d7a5a(0x19d)],_0x36a50f);const _0x3c3b25=resolveLocalSqlFilePath(_0x444181,_0x489008,_0x140094);let _0x44a54d;await fileExists(_0x3c3b25)&&(_0x44a54d=await moveToTrash(_0x444181[_0x1d7a5a(0x1a6)],_0x444181[_0x1d7a5a(0x19b)],_0x3c3b25),await cleanupEmptyDirectories(dirname(_0x3c3b25),_0x444181[_0x1d7a5a(0x19f)]));const _0x454212={'deleted':_0x489008,'remoteId':_0x140094[_0x1d7a5a(0x1a0)]};if(_0x44a54d)_0x454212[_0x1d7a5a(0x199)]=_0x44a54d;return{'ok':!![],'data':_0x454212,'message':_0x1d7a5a(0x1b1)+_0x489008+(_0x44a54d?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function a165_0x32d5(_0x2cf0c9,_0x3ee6e8){_0x2cf0c9=_0x2cf0c9-0x196;const _0x500376=a165_0x5003();let _0x32d515=_0x500376[_0x2cf0c9];return _0x32d515;}async function moveToTrash(_0x2be4ce,_0x3687d8,_0x1e9ee4){const _0x3a35ec=a165_0xe9e30f,_0x47a0f0=new Date()[_0x3a35ec(0x196)]()['replace'](/[:.]/g,'-'),_0x1d425c=relative(_0x2be4ce,_0x1e9ee4),_0x1fbc20=join(_0x3687d8,_0x47a0f0,_0x1d425c);return await mkdir(dirname(_0x1fbc20),{'recursive':!![]}),await rename(_0x1e9ee4,_0x1fbc20),_0x1fbc20;}async function cleanupEmptyDirectories(_0x3d0ed8,_0x511834){const _0x5ecdd2=a165_0xe9e30f;let _0x35eb43=resolve(_0x3d0ed8);const _0x13d9d3=resolve(_0x511834);while(_0x35eb43[_0x5ecdd2(0x1a5)](''+_0x13d9d3+sep)||_0x35eb43===_0x13d9d3){if(_0x35eb43===_0x13d9d3)return;try{const _0x31d7d2=await readdir(_0x35eb43);if(_0x31d7d2['length']>0x0)return;await rmdir(_0x35eb43);}catch{return;}_0x35eb43=dirname(_0x35eb43);}}
1
+ const a166_0x1f866f=a166_0x192a;(function(_0x315ff5,_0x1d108c){const _0x4dd0d8=a166_0x192a,_0x380f31=_0x315ff5();while(!![]){try{const _0x3eb5a1=-parseInt(_0x4dd0d8(0xda))/0x1*(parseInt(_0x4dd0d8(0xef))/0x2)+parseInt(_0x4dd0d8(0xf3))/0x3+parseInt(_0x4dd0d8(0xf1))/0x4+-parseInt(_0x4dd0d8(0xf2))/0x5*(-parseInt(_0x4dd0d8(0xd7))/0x6)+parseInt(_0x4dd0d8(0xed))/0x7*(-parseInt(_0x4dd0d8(0xfc))/0x8)+parseInt(_0x4dd0d8(0xe0))/0x9+-parseInt(_0x4dd0d8(0xe9))/0xa*(parseInt(_0x4dd0d8(0xf7))/0xb);if(_0x3eb5a1===_0x1d108c)break;else _0x380f31['push'](_0x380f31['shift']());}catch(_0x39092d){_0x380f31['push'](_0x380f31['shift']());}}}(a166_0x2f32,0x9a7b1));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';function a166_0x2f32(){const _0x5ac322=['/smartapi/custom/deleteUserCustomSql','str','267613yfpCpq','toISOString','sqlRoot','length','\x20(local\x20file\x20moved\x20to\x20trash)','validation','8316963qRhTzp','delete','appCode','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','SQL\x20lock\x20file\x20not\x20found.','entries','projectRoot','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','Would\x20delete\x20SQL\x20','3710owxQtD','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','startsWith','high-risk-write','474488QEHfLB','lockFilePath','6slpmek','trashedTo','4982108TRGYOs','5KDsVEq','449601JWUVCW','sqls','sqlRootDir','sqlcode','58146ngwuzz','Deleted\x20','replace','remoteId','sql','16ENIqij','7276590UhoIvZ'];a166_0x2f32=function(){return _0x5ac322;};return a166_0x2f32();}import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a166_0x192a(_0x32b752,_0x4ce3f2){_0x32b752=_0x32b752-0xd7;const _0x2f32ac=a166_0x2f32();let _0x192a37=_0x2f32ac[_0x32b752];return _0x192a37;}export const sqlDelete={'service':a166_0x1f866f(0xfb),'command':a166_0x1f866f(0xe1),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a166_0x1f866f(0xec),'flags':[SQLCODE_FLAG],async 'validate'(_0x392f72){const _0x42f2c=a166_0x1f866f,_0x3c2bbc=loadSqlProjectConfig(_0x392f72[_0x42f2c(0xe2)]),_0x5b9ab0=await readSqlLockFile(_0x3c2bbc['lockFilePath']);if(!_0x5b9ab0)throw CliErrors[_0x42f2c(0xdf)](_0x42f2c(0xe7));},async 'dryRun'(_0x4ee34e){const _0x1b28f1=a166_0x1f866f,_0x49d109=loadSqlProjectConfig(_0x4ee34e[_0x1b28f1(0xe2)]),_0x4f5d7a=await readSqlLockFile(_0x49d109[_0x1b28f1(0xee)]);if(!_0x4f5d7a)throw CliErrors['validation'](_0x1b28f1(0xe7));const {appLock:_0xe3068a}=ensureSqlLockScope(_0x4f5d7a,_0x4ee34e[_0x1b28f1(0xe2)],_0x49d109[_0x1b28f1(0xdc)],_0x1b28f1(0xe1)),_0x437ec5=_0x4ee34e[_0x1b28f1(0xd9)](_0x1b28f1(0xf6)),_0x39d301=_0xe3068a['sqls'][_0x437ec5];if(!_0x39d301)throw CliErrors[_0x1b28f1(0xdf)](_0x1b28f1(0xe3)+_0x437ec5+'\x22.');return{'method':'POST','url':_0x1b28f1(0xd8),'body':{'sqlCode':_0x437ec5,'id':_0x39d301[_0x1b28f1(0xfa)],'localPath':resolveLocalSqlFilePath(_0x49d109,_0x437ec5,_0x39d301)},'description':_0x1b28f1(0xe8)+_0x437ec5+_0x1b28f1(0xea)+_0x49d109['trashDir']};},async 'execute'(_0x8e6c7e){const _0x14f9be=a166_0x1f866f,_0x18f249=loadSqlProjectConfig(_0x8e6c7e[_0x14f9be(0xe2)]),_0x31a531=await readSqlLockFile(_0x18f249['lockFilePath']);if(!_0x31a531)throw CliErrors[_0x14f9be(0xdf)](_0x14f9be(0xe4));const {lockData:_0x5933f9,appLock:_0x1a958f}=ensureSqlLockScope(_0x31a531,_0x8e6c7e[_0x14f9be(0xe2)],_0x18f249[_0x14f9be(0xdc)],_0x14f9be(0xe1)),_0x2c3cb7=_0x8e6c7e[_0x14f9be(0xd9)](_0x14f9be(0xf6)),_0x5c3373=_0x1a958f[_0x14f9be(0xf4)][_0x2c3cb7];if(!_0x5c3373)throw CliErrors['validation'](_0x14f9be(0xe3)+_0x2c3cb7+'\x22.');await deleteSqlQuery({'id':_0x5c3373['remoteId'],'sqlCode':_0x2c3cb7}),_0x1a958f[_0x14f9be(0xf4)]=Object['fromEntries'](Object[_0x14f9be(0xe5)](_0x1a958f['sqls'])['filter'](([_0x536890])=>_0x536890!==_0x2c3cb7)),_0x1a958f['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x18f249[_0x14f9be(0xee)],_0x5933f9);const _0x22fbf1=resolveLocalSqlFilePath(_0x18f249,_0x2c3cb7,_0x5c3373);let _0x542fc3;await fileExists(_0x22fbf1)&&(_0x542fc3=await moveToTrash(_0x18f249[_0x14f9be(0xe6)],_0x18f249['trashDir'],_0x22fbf1),await cleanupEmptyDirectories(dirname(_0x22fbf1),_0x18f249[_0x14f9be(0xf5)]));const _0xbf0712={'deleted':_0x2c3cb7,'remoteId':_0x5c3373[_0x14f9be(0xfa)]};if(_0x542fc3)_0xbf0712[_0x14f9be(0xf0)]=_0x542fc3;return{'ok':!![],'data':_0xbf0712,'message':_0x14f9be(0xf8)+_0x2c3cb7+(_0x542fc3?_0x14f9be(0xde):'')};}};async function moveToTrash(_0x5d0823,_0x521d98,_0x5194f7){const _0x715019=a166_0x1f866f,_0x1e693b=new Date()[_0x715019(0xdb)]()[_0x715019(0xf9)](/[:.]/g,'-'),_0x990050=relative(_0x5d0823,_0x5194f7),_0x3dabbd=join(_0x521d98,_0x1e693b,_0x990050);return await mkdir(dirname(_0x3dabbd),{'recursive':!![]}),await rename(_0x5194f7,_0x3dabbd),_0x3dabbd;}async function cleanupEmptyDirectories(_0x2c58a6,_0x470845){const _0x18fdc0=a166_0x1f866f;let _0x7a7aab=resolve(_0x2c58a6);const _0x4b6136=resolve(_0x470845);while(_0x7a7aab[_0x18fdc0(0xeb)](''+_0x4b6136+sep)||_0x7a7aab===_0x4b6136){if(_0x7a7aab===_0x4b6136)return;try{const _0x59fcee=await readdir(_0x7a7aab);if(_0x59fcee[_0x18fdc0(0xdd)]>0x0)return;await rmdir(_0x7a7aab);}catch{return;}_0x7a7aab=dirname(_0x7a7aab);}}
@@ -1 +1 @@
1
- const a166_0x11d002=a166_0x33d1;function a166_0x33d1(_0x2a0742,_0x140eba){_0x2a0742=_0x2a0742-0xbe;const _0x227f03=a166_0x227f();let _0x33d15d=_0x227f03[_0x2a0742];return _0x33d15d;}(function(_0x1dc1e4,_0x457c52){const _0x152b34=a166_0x33d1,_0x1314e4=_0x1dc1e4();while(!![]){try{const _0x453bdf=-parseInt(_0x152b34(0xc7))/0x1+parseInt(_0x152b34(0xcd))/0x2+-parseInt(_0x152b34(0xd1))/0x3*(parseInt(_0x152b34(0xc1))/0x4)+-parseInt(_0x152b34(0xd4))/0x5+parseInt(_0x152b34(0xca))/0x6+-parseInt(_0x152b34(0xc2))/0x7+parseInt(_0x152b34(0xce))/0x8;if(_0x453bdf===_0x457c52)break;else _0x1314e4['push'](_0x1314e4['shift']());}catch(_0x11b023){_0x1314e4['push'](_0x1314e4['shift']());}}}(a166_0x227f,0xaa68c));function a166_0x227f(){const _0x59818a=['sqlcode','dbId','190824fKfobd','appCode','sqlCode','1230532EFdJpV','30584280XEjLim','sqlContent','verbose','4533mJlTjM','bool','boolean','6900465gjdcOK','Return\x20full\x20raw\x20SQL\x20query\x20object','sqlName','description','2940iGxJaP','4611355NMJZVv','read','detail','str','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','622666xUZEyZ'];a166_0x227f=function(){return _0x59818a;};return a166_0x227f();}import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':a166_0x11d002(0xc4),'description':a166_0x11d002(0xc6),'risk':a166_0x11d002(0xc3),'flags':[SQLCODE_FLAG,{'name':a166_0x11d002(0xd0),'type':a166_0x11d002(0xd3),'description':a166_0x11d002(0xbe)}],async 'execute'(_0x473011){const _0x4d8698=a166_0x11d002,_0x55d5cc=await getSqlQueryInfo(_0x473011[_0x4d8698(0xcb)],_0x473011[_0x4d8698(0xc5)](_0x4d8698(0xc8))),_0x2cdc2f=_0x473011[_0x4d8698(0xd2)](_0x4d8698(0xd0));if(_0x2cdc2f)return{'ok':!![],'data':_0x55d5cc};const _0x4bfbe5=_0x55d5cc['dbId']?await getDbName(_0x473011['appCode'],_0x55d5cc[_0x4d8698(0xc9)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x55d5cc[_0x4d8698(0xcc)],'sqlName':_0x55d5cc[_0x4d8698(0xbf)],'db':_0x4bfbe5?_0x4bfbe5+'\x20('+_0x55d5cc[_0x4d8698(0xc9)]+')':_0x55d5cc[_0x4d8698(0xc9)]??'','description':_0x55d5cc[_0x4d8698(0xc0)]??'','sqlContent':_0x55d5cc[_0x4d8698(0xcf)]??''}};}};
1
+ const a167_0xeb3f5b=a167_0x32fe;function a167_0x32fe(_0x4d104d,_0x5a6d0f){_0x4d104d=_0x4d104d-0x149;const _0x113681=a167_0x1136();let _0x32fe83=_0x113681[_0x4d104d];return _0x32fe83;}(function(_0x8d79a6,_0xa5ebc6){const _0x27f448=a167_0x32fe,_0x4f4270=_0x8d79a6();while(!![]){try{const _0x3e2951=-parseInt(_0x27f448(0x153))/0x1*(parseInt(_0x27f448(0x149))/0x2)+-parseInt(_0x27f448(0x154))/0x3+-parseInt(_0x27f448(0x160))/0x4+parseInt(_0x27f448(0x151))/0x5*(-parseInt(_0x27f448(0x15d))/0x6)+parseInt(_0x27f448(0x157))/0x7+-parseInt(_0x27f448(0x156))/0x8+parseInt(_0x27f448(0x14d))/0x9;if(_0x3e2951===_0xa5ebc6)break;else _0x4f4270['push'](_0x4f4270['shift']());}catch(_0x49a144){_0x4f4270['push'](_0x4f4270['shift']());}}}(a167_0x1136,0xec9a0));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a167_0x1136(){const _0x323d9c=['dbId','57mSZwUr','4654680sxXLHN','sqlName','7197080SCZPFG','10820068RdPNgN','sqlCode','sqlContent','boolean','sql','detail','6lsKLZS','Return\x20full\x20raw\x20SQL\x20query\x20object','str','1749532GRjmWr','88qGNMGs','description','verbose','sqlcode','33510753MGZuhh','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','appCode','read','7044675pzAxSl'];a167_0x1136=function(){return _0x323d9c;};return a167_0x1136();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a167_0xeb3f5b(0x15b),'command':a167_0xeb3f5b(0x15c),'description':a167_0xeb3f5b(0x14e),'risk':a167_0xeb3f5b(0x150),'flags':[SQLCODE_FLAG,{'name':a167_0xeb3f5b(0x14b),'type':a167_0xeb3f5b(0x15a),'description':a167_0xeb3f5b(0x15e)}],async 'execute'(_0x2e5fa3){const _0x5f0c25=a167_0xeb3f5b,_0x84bc98=await getSqlQueryInfo(_0x2e5fa3[_0x5f0c25(0x14f)],_0x2e5fa3[_0x5f0c25(0x15f)](_0x5f0c25(0x14c))),_0x30d547=_0x2e5fa3['bool'](_0x5f0c25(0x14b));if(_0x30d547)return{'ok':!![],'data':_0x84bc98};const _0x46d69a=_0x84bc98[_0x5f0c25(0x152)]?await getDbName(_0x2e5fa3[_0x5f0c25(0x14f)],_0x84bc98[_0x5f0c25(0x152)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x84bc98[_0x5f0c25(0x158)],'sqlName':_0x84bc98[_0x5f0c25(0x155)],'db':_0x46d69a?_0x46d69a+'\x20('+_0x84bc98[_0x5f0c25(0x152)]+')':_0x84bc98[_0x5f0c25(0x152)]??'','description':_0x84bc98[_0x5f0c25(0x14a)]??'','sqlContent':_0x84bc98[_0x5f0c25(0x159)]??''}};}};
@@ -1 +1 @@
1
- const a167_0x14d23d=a167_0x4ef0;(function(_0x11d63f,_0x529ab1){const _0x3da9c4=a167_0x4ef0,_0x53fee7=_0x11d63f();while(!![]){try{const _0x2d48f0=-parseInt(_0x3da9c4(0x1fb))/0x1+parseInt(_0x3da9c4(0x1f5))/0x2+parseInt(_0x3da9c4(0x1ed))/0x3*(parseInt(_0x3da9c4(0x1f6))/0x4)+-parseInt(_0x3da9c4(0x1fa))/0x5+parseInt(_0x3da9c4(0x1f3))/0x6*(parseInt(_0x3da9c4(0x1ee))/0x7)+parseInt(_0x3da9c4(0x1fe))/0x8+-parseInt(_0x3da9c4(0x1f0))/0x9*(parseInt(_0x3da9c4(0x203))/0xa);if(_0x2d48f0===_0x529ab1)break;else _0x53fee7['push'](_0x53fee7['shift']());}catch(_0x195775){_0x53fee7['push'](_0x53fee7['shift']());}}}(a167_0x17da,0x7a9fa));function a167_0x4ef0(_0x19dbbb,_0xa2b7c7){_0x19dbbb=_0x19dbbb-0x1ed;const _0x17da73=a167_0x17da();let _0x4ef05d=_0x17da73[_0x19dbbb];return _0x4ef05d;}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a167_0x17da(){const _0xe263e1=['exec','appCode','\x20row(s)\x20in\x20','1827865pgDNHl','225251EvZtTe','execResult','str','6241976gXNoJq','execSuccess','Returned\x20','sqlcode','isArray','4738530AqfRWU','now','283674MXGpeH','125839eYmcSm','SQL\x20execution\x20failed','45LrNdFA','params','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','318itHXAq','length','1567494rEnnyi','40YWxdfd'];a167_0x17da=function(){return _0xe263e1;};return a167_0x17da();}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':'sql','command':a167_0x14d23d(0x1f7),'description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a167_0x14d23d(0x1f1),'type':'string','description':a167_0x14d23d(0x1f2)}],async 'execute'(_0x4a76a8){const _0x2429bf=a167_0x14d23d,_0x1da373=parseJsonParams(_0x4a76a8[_0x2429bf(0x1fd)](_0x2429bf(0x1f1))),_0x5c21bf=Date[_0x2429bf(0x204)](),_0x18a1cd=await executeSql(_0x4a76a8[_0x2429bf(0x1f8)],_0x4a76a8[_0x2429bf(0x1fd)](_0x2429bf(0x201)),_0x1da373),_0x2bff8d=Date[_0x2429bf(0x204)]()-_0x5c21bf,_0x2452d4=_0x18a1cd?.[_0x2429bf(0x1fc)]??_0x18a1cd,_0x54cedc=_0x18a1cd?.[_0x2429bf(0x1ff)]??!![];if(!_0x54cedc)return{'ok':![],'data':{'error':_0x18a1cd?.['execError']||_0x2429bf(0x1ef),'elapsed':_0x2bff8d},'message':_0x2429bf(0x1ef)};const _0x480609=Array[_0x2429bf(0x202)](_0x2452d4)?_0x2452d4:[];return{'ok':!![],'data':{'rows':_0x480609,'rowCount':_0x480609[_0x2429bf(0x1f4)],'elapsed':_0x2bff8d},'message':_0x2429bf(0x200)+_0x480609['length']+_0x2429bf(0x1f9)+_0x2bff8d+'ms'};}};
1
+ function a168_0x428b(_0x6bdd5e,_0x3e8ba7){_0x6bdd5e=_0x6bdd5e-0xa6;const _0x4f24a4=a168_0x4f24();let _0x428b02=_0x4f24a4[_0x6bdd5e];return _0x428b02;}const a168_0x3e92f4=a168_0x428b;(function(_0x21b131,_0x2cf484){const _0x5e1d65=a168_0x428b,_0x348338=_0x21b131();while(!![]){try{const _0x1fc94e=parseInt(_0x5e1d65(0xbb))/0x1+parseInt(_0x5e1d65(0xa7))/0x2*(-parseInt(_0x5e1d65(0xa9))/0x3)+-parseInt(_0x5e1d65(0xb3))/0x4+parseInt(_0x5e1d65(0xb6))/0x5+parseInt(_0x5e1d65(0xb5))/0x6+-parseInt(_0x5e1d65(0xad))/0x7+parseInt(_0x5e1d65(0xb0))/0x8;if(_0x1fc94e===_0x2cf484)break;else _0x348338['push'](_0x348338['shift']());}catch(_0x319b1c){_0x348338['push'](_0x348338['shift']());}}}(a168_0x4f24,0xeee8f));import{executeSql}from'../../core/api-client.js';function a168_0x4f24(){const _0x5f17ba=['Returned\x20','now','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','1797159MDohXQ','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','4062gZjjQo','execSuccess','2793TTwToZ','read','SQL\x20execution\x20failed','str','2274692VcMwqr','sql','\x20row(s)\x20in\x20','3830744ICgILk','exec','execError','60608fOwjAN','string','1615650sMyzBH','3321335HhRBxn','params'];a168_0x4f24=function(){return _0x5f17ba;};return a168_0x4f24();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a168_0x3e92f4(0xae),'command':a168_0x3e92f4(0xb1),'description':a168_0x3e92f4(0xa6),'risk':a168_0x3e92f4(0xaa),'flags':[SQLCODE_FLAG,{'name':a168_0x3e92f4(0xb7),'type':a168_0x3e92f4(0xb4),'description':a168_0x3e92f4(0xba)}],async 'execute'(_0x4bec1d){const _0x5400b6=a168_0x3e92f4,_0x2a184b=parseJsonParams(_0x4bec1d['str'](_0x5400b6(0xb7))),_0x2ef319=Date[_0x5400b6(0xb9)](),_0x5493a8=await executeSql(_0x4bec1d['appCode'],_0x4bec1d[_0x5400b6(0xac)]('sqlcode'),_0x2a184b),_0x3ac09d=Date[_0x5400b6(0xb9)]()-_0x2ef319,_0x511a54=_0x5493a8?.['execResult']??_0x5493a8,_0x428c03=_0x5493a8?.[_0x5400b6(0xa8)]??!![];if(!_0x428c03)return{'ok':![],'data':{'error':_0x5493a8?.[_0x5400b6(0xb2)]||_0x5400b6(0xab),'elapsed':_0x3ac09d},'message':'SQL\x20execution\x20failed'};const _0x552aee=Array['isArray'](_0x511a54)?_0x511a54:[];return{'ok':!![],'data':{'rows':_0x552aee,'rowCount':_0x552aee['length'],'elapsed':_0x3ac09d},'message':_0x5400b6(0xb8)+_0x552aee['length']+_0x5400b6(0xaf)+_0x3ac09d+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x1120c7,_0x32a3b5){const _0x17bbb5=a168_0x2148,_0x549000=_0x1120c7();while(!![]){try{const _0x21ed1d=parseInt(_0x17bbb5(0x1f2))/0x1*(parseInt(_0x17bbb5(0x1ec))/0x2)+parseInt(_0x17bbb5(0x1f1))/0x3+-parseInt(_0x17bbb5(0x1ef))/0x4+-parseInt(_0x17bbb5(0x1f0))/0x5*(parseInt(_0x17bbb5(0x1f3))/0x6)+-parseInt(_0x17bbb5(0x1f5))/0x7*(-parseInt(_0x17bbb5(0x1ed))/0x8)+parseInt(_0x17bbb5(0x1eb))/0x9+parseInt(_0x17bbb5(0x1f4))/0xa*(parseInt(_0x17bbb5(0x1ee))/0xb);if(_0x21ed1d===_0x32a3b5)break;else _0x549000['push'](_0x549000['shift']());}catch(_0x587d51){_0x549000['push'](_0x549000['shift']());}}}(a168_0x2ef2,0x5c5ba));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 a168_0x2148(_0x4df66b,_0x317841){_0x4df66b=_0x4df66b-0x1eb;const _0x2ef2c6=a168_0x2ef2();let _0x214800=_0x2ef2c6[_0x4df66b];return _0x214800;}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a168_0x2ef2(){const _0x4f71d9=['820ZBApCN','98PkXFDS','1566774YgSUkn','4BlQpqo','9608tdnGwd','59554HCojDv','1178320NwgFXX','27150HeUUhb','148404wRtWab','176186fKOSrV','402yehzlN'];a168_0x2ef2=function(){return _0x4f71d9;};return a168_0x2ef2();}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x3606ae,_0x3e8f44){const _0x22bba5=a169_0x2b3d,_0x11aabb=_0x3606ae();while(!![]){try{const _0x2692e7=-parseInt(_0x22bba5(0x199))/0x1+-parseInt(_0x22bba5(0x198))/0x2*(parseInt(_0x22bba5(0x19d))/0x3)+parseInt(_0x22bba5(0x19a))/0x4+parseInt(_0x22bba5(0x1a1))/0x5+parseInt(_0x22bba5(0x19e))/0x6*(-parseInt(_0x22bba5(0x19b))/0x7)+-parseInt(_0x22bba5(0x19f))/0x8+-parseInt(_0x22bba5(0x1a0))/0x9*(-parseInt(_0x22bba5(0x19c))/0xa);if(_0x2692e7===_0x3e8f44)break;else _0x11aabb['push'](_0x11aabb['shift']());}catch(_0x4b9967){_0x11aabb['push'](_0x11aabb['shift']());}}}(a169_0x17bb,0x56239));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a169_0x2b3d(_0x2f2948,_0x560b62){_0x2f2948=_0x2f2948-0x198;const _0x17bbd9=a169_0x17bb();let _0x2b3de4=_0x17bbd9[_0x2f2948];return _0x2b3de4;}import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';function a169_0x17bb(){const _0x4d08ec=['1077tBoHpg','2133156kqzBUZ','4848024FezuHL','9993438lQnQOR','2385555ZvcQIN','3478CYPVtw','57414YCIUOF','1634304TpBmZJ','7tZxyUv','10htLICO'];a169_0x17bb=function(){return _0x4d08ec;};return a169_0x17bb();}import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- function a169_0x2e6b(){const _0x592722=['6cgGsGJ','Page\x20number','totalCount','dbId','appCode','1131380pokKnb','length','tableData','No\x20custom\x20SQL\x20queries\x20found.','string','Page\x20size','2767140BtoCly','pagesize','list','11932sEeaUM','7749976HdHdqg','34026ksyvfQ','sql','paging','verbose','sqlName','505180zJSYYA','page','List\x20custom\x20SQL\x20queries','1972271ipapod','read','number','\x20SQL\x20queries\x20(total:\x20','963WxPZfy','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','name','bool','str','sqlCode','description','num'];a169_0x2e6b=function(){return _0x592722;};return a169_0x2e6b();}const a169_0x4cbedb=a169_0x20db;(function(_0x21b25,_0x7611f5){const _0x1b137c=a169_0x20db,_0x308f6f=_0x21b25();while(!![]){try{const _0x1b206b=parseInt(_0x1b137c(0x19d))/0x1+parseInt(_0x1b137c(0x1a2))/0x2+-parseInt(_0x1b137c(0x1a9))/0x3*(parseInt(_0x1b137c(0x19b))/0x4)+-parseInt(_0x1b137c(0x192))/0x5*(-parseInt(_0x1b137c(0x18d))/0x6)+-parseInt(_0x1b137c(0x1a5))/0x7+parseInt(_0x1b137c(0x19c))/0x8+parseInt(_0x1b137c(0x198))/0x9;if(_0x1b206b===_0x7611f5)break;else _0x308f6f['push'](_0x308f6f['shift']());}catch(_0x1adcc6){_0x308f6f['push'](_0x308f6f['shift']());}}}(a169_0x2e6b,0x863ab));function a169_0x20db(_0x30ee4d,_0x6ed171){_0x30ee4d=_0x30ee4d-0x18a;const _0x2e6b18=a169_0x2e6b();let _0x20db08=_0x2e6b18[_0x30ee4d];return _0x20db08;}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':a169_0x4cbedb(0x19e),'command':a169_0x4cbedb(0x19a),'description':a169_0x4cbedb(0x1a4),'risk':a169_0x4cbedb(0x1a6),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a169_0x4cbedb(0x196),'description':'Filter\x20by\x20SQL\x20name'},{'name':'page','type':a169_0x4cbedb(0x1a7),'description':a169_0x4cbedb(0x18e),'default':0x1},{'name':'pagesize','type':a169_0x4cbedb(0x1a7),'description':a169_0x4cbedb(0x197)},{'name':a169_0x4cbedb(0x1a0),'type':'boolean','description':a169_0x4cbedb(0x1aa)}],async 'execute'(_0x47049e){const _0x1bcca6=a169_0x4cbedb,_0x351806=await listSqlQueries(_0x47049e[_0x1bcca6(0x191)],{'sqlCode':_0x47049e['str']('sqlcode')||undefined,'sqlName':_0x47049e[_0x1bcca6(0x1ad)](_0x1bcca6(0x1ab))||undefined,'currentPage':_0x47049e[_0x1bcca6(0x18c)](_0x1bcca6(0x1a3)),'pageSize':_0x47049e[_0x1bcca6(0x18c)](_0x1bcca6(0x199),0x32)}),_0x557dbe=_0x47049e[_0x1bcca6(0x1ac)](_0x1bcca6(0x1a0)),_0x4dbcc7=_0x351806[_0x1bcca6(0x194)]??[],_0x1c49d9=_0x351806[_0x1bcca6(0x19f)]?.[_0x1bcca6(0x18f)]??_0x4dbcc7[_0x1bcca6(0x193)];let _0x1376e9;return _0x557dbe?_0x1376e9=_0x4dbcc7:_0x1376e9=await Promise['all'](_0x4dbcc7['map'](async _0xfe60fc=>{const _0x15cb5a=_0x1bcca6;let _0x5af90f;try{_0x5af90f=_0xfe60fc[_0x15cb5a(0x190)]?await getDbName(_0x47049e[_0x15cb5a(0x191)],_0xfe60fc[_0x15cb5a(0x190)]):undefined;}catch{}return{'sqlCode':_0xfe60fc[_0x15cb5a(0x18a)],'sqlName':_0xfe60fc[_0x15cb5a(0x1a1)],'description':_0xfe60fc[_0x15cb5a(0x18b)]??'','db':_0x5af90f?_0x5af90f+'\x20('+_0xfe60fc[_0x15cb5a(0x190)]+')':_0xfe60fc[_0x15cb5a(0x190)]??''};})),{'ok':!![],'data':_0x1376e9,'message':_0x4dbcc7[_0x1bcca6(0x193)]===0x0?_0x1bcca6(0x195):'Found\x20'+_0x4dbcc7['length']+_0x1bcca6(0x1a8)+_0x1c49d9+').'};}};
1
+ const a170_0x569f16=a170_0x13ef;function a170_0x13ef(_0x35f374,_0x4a9853){_0x35f374=_0x35f374-0x15a;const _0x4cd7f8=a170_0x4cd7();let _0x13ef46=_0x4cd7f8[_0x35f374];return _0x13ef46;}(function(_0x162790,_0x20a7bf){const _0x1d4797=a170_0x13ef,_0x5f3999=_0x162790();while(!![]){try{const _0x21b534=-parseInt(_0x1d4797(0x179))/0x1*(parseInt(_0x1d4797(0x172))/0x2)+parseInt(_0x1d4797(0x169))/0x3+parseInt(_0x1d4797(0x162))/0x4+parseInt(_0x1d4797(0x165))/0x5+-parseInt(_0x1d4797(0x16a))/0x6+parseInt(_0x1d4797(0x161))/0x7*(-parseInt(_0x1d4797(0x15e))/0x8)+parseInt(_0x1d4797(0x174))/0x9;if(_0x21b534===_0x20a7bf)break;else _0x5f3999['push'](_0x5f3999['shift']());}catch(_0x10fb71){_0x5f3999['push'](_0x5f3999['shift']());}}}(a170_0x4cd7,0xefb86));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a170_0x4cd7(){const _0x1048f3=['4400457qLwFkP','7637502bOOZyD','pagesize','bool','page','tableData','number','paging','dbId','2PbvshX','string','9769887XIBDjY','length','verbose','Page\x20size','sqlcode','1538079DyNbcX','\x20SQL\x20queries\x20(total:\x20','description','str','sqlCode','No\x20custom\x20SQL\x20queries\x20found.','List\x20custom\x20SQL\x20queries','list','all','sql','4322184OiPgqu','name','Found\x20','21HYvkEm','4912500DlQRGh','num','Filter\x20by\x20SQL\x20name','8166110mvhSPs','Page\x20number','sqlName','appCode'];a170_0x4cd7=function(){return _0x1048f3;};return a170_0x4cd7();}export const sqlList={'service':a170_0x569f16(0x15d),'command':a170_0x569f16(0x15b),'description':a170_0x569f16(0x15a),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a170_0x569f16(0x15f),'type':a170_0x569f16(0x173),'description':a170_0x569f16(0x164)},{'name':a170_0x569f16(0x16d),'type':a170_0x569f16(0x16f),'description':a170_0x569f16(0x166),'default':0x1},{'name':'pagesize','type':a170_0x569f16(0x16f),'description':a170_0x569f16(0x177)},{'name':a170_0x569f16(0x176),'type':'boolean','description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x2476a8){const _0x27627c=a170_0x569f16,_0x9cc765=await listSqlQueries(_0x2476a8[_0x27627c(0x168)],{'sqlCode':_0x2476a8['str'](_0x27627c(0x178))||undefined,'sqlName':_0x2476a8[_0x27627c(0x17c)]('name')||undefined,'currentPage':_0x2476a8[_0x27627c(0x163)]('page'),'pageSize':_0x2476a8[_0x27627c(0x163)](_0x27627c(0x16b),0x32)}),_0x1d6163=_0x2476a8[_0x27627c(0x16c)](_0x27627c(0x176)),_0x445b3b=_0x9cc765[_0x27627c(0x16e)]??[],_0x539096=_0x9cc765[_0x27627c(0x170)]?.['totalCount']??_0x445b3b['length'];let _0x167208;return _0x1d6163?_0x167208=_0x445b3b:_0x167208=await Promise[_0x27627c(0x15c)](_0x445b3b['map'](async _0x2b04e1=>{const _0x59b78c=_0x27627c;let _0x3be20a;try{_0x3be20a=_0x2b04e1['dbId']?await getDbName(_0x2476a8['appCode'],_0x2b04e1[_0x59b78c(0x171)]):undefined;}catch{}return{'sqlCode':_0x2b04e1[_0x59b78c(0x17d)],'sqlName':_0x2b04e1[_0x59b78c(0x167)],'description':_0x2b04e1[_0x59b78c(0x17b)]??'','db':_0x3be20a?_0x3be20a+'\x20('+_0x2b04e1[_0x59b78c(0x171)]+')':_0x2b04e1[_0x59b78c(0x171)]??''};})),{'ok':!![],'data':_0x167208,'message':_0x445b3b[_0x27627c(0x175)]===0x0?_0x27627c(0x17e):_0x27627c(0x160)+_0x445b3b[_0x27627c(0x175)]+_0x27627c(0x17a)+_0x539096+').'};}};
@@ -1 +1 @@
1
- const a170_0x274dcd=a170_0x2358;(function(_0x18a4cb,_0x1f3af1){const _0x41be13=a170_0x2358,_0xdb8eea=_0x18a4cb();while(!![]){try{const _0x3ce993=parseInt(_0x41be13(0xe8))/0x1+parseInt(_0x41be13(0xfd))/0x2*(-parseInt(_0x41be13(0x124))/0x3)+-parseInt(_0x41be13(0xea))/0x4+parseInt(_0x41be13(0x103))/0x5*(-parseInt(_0x41be13(0x113))/0x6)+-parseInt(_0x41be13(0x112))/0x7+-parseInt(_0x41be13(0xf5))/0x8*(-parseInt(_0x41be13(0xf2))/0x9)+parseInt(_0x41be13(0x126))/0xa;if(_0x3ce993===_0x1f3af1)break;else _0xdb8eea['push'](_0xdb8eea['shift']());}catch(_0x278c97){_0xdb8eea['push'](_0xdb8eea['shift']());}}}(a170_0x8b5f,0x3373e));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';function a170_0x8b5f(){const _0x484e2b=['12709900EVSYdo','dbId','force','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','description','conflict','112006HixJpc','push','1004568xJyvuj','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','pull','bool','Force\x20pull\x20cancelled.','toISOString','lockFilePath','skipped','22527bNApwW','appCode','totalCount','376Hrvnyw','No\x20remote\x20SQL\x20queries\x20matched.','sqlCode','cancelled','would_pull','Force\x20overwrite\x20local\x20unsynced\x20changes','filter','Would\x20pull\x20','2ubkjAO','path','\x20written,\x20','nonInteractive','message','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','915720DXIIHR','paging','sql','write','Pull\x20complete:\x20','boolean','sqlContent','name','test','mybatisXml','local\x20differs\x20from\x20remote','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','sqls','split','unchanged','2362052tIQIWH','12btUIiF','utf8','sqlName','catch','replace','Filter\x20by\x20SQL\x20display\x20name','length','\x20SQL\x20file(s)\x20into\x20','sqlRootDir','join','\x20skipped,\x20','sqlcode','\x20failed','apps','POST','trimStart','sqlRoot','1005063rrzkRg','str'];a170_0x8b5f=function(){return _0x484e2b;};return a170_0x8b5f();}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(_0x42ba8b,_0x11e994){const _0x5bbaa0=a170_0x2358,_0x59f511=[];let _0x310783=0x1;while(!![]){const _0x27f592=await listSqlQueries(_0x42ba8b,{'currentPage':_0x310783,'pageSize':PAGE_SIZE,'sqlCode':_0x11e994[_0x5bbaa0(0xf7)],'sqlName':_0x11e994[_0x5bbaa0(0x115)]}),_0x4bb413=_0x27f592['tableData']??[];_0x59f511[_0x5bbaa0(0xe9)](..._0x4bb413);if(_0x4bb413[_0x5bbaa0(0x119)]===0x0)break;const _0x2fb30b=_0x27f592[_0x5bbaa0(0x104)]?.[_0x5bbaa0(0xf4)];if(_0x2fb30b!=null?_0x59f511[_0x5bbaa0(0x119)]>=_0x2fb30b:_0x4bb413[_0x5bbaa0(0x119)]<PAGE_SIZE)break;_0x310783++;}return _0x59f511;}async function ensureSqlContent(_0x37dc63){const _0x1e1e2d=a170_0x2358;if(_0x37dc63[_0x1e1e2d(0x109)]!=null&&String(_0x37dc63[_0x1e1e2d(0x109)])['length']>0x0)return _0x37dc63;return getSqlQueryDetail(_0x37dc63[_0x1e1e2d(0xf7)]);}function a170_0x2358(_0x25a9dd,_0x52668c){_0x25a9dd=_0x25a9dd-0xe5;const _0x8b5f3a=a170_0x8b5f();let _0x235843=_0x8b5f3a[_0x25a9dd];return _0x235843;}export const sqlPull={'service':a170_0x274dcd(0x105),'command':a170_0x274dcd(0xec),'description':a170_0x274dcd(0x10e),'risk':a170_0x274dcd(0x106),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a170_0x274dcd(0x10a),'type':'string','description':a170_0x274dcd(0x118)},{'name':a170_0x274dcd(0x128),'type':a170_0x274dcd(0x108),'description':a170_0x274dcd(0xfa)}],async 'dryRun'(_0x222e13){const _0x4c0e7a=a170_0x274dcd,_0x41912a=loadSqlProjectConfig(_0x222e13[_0x4c0e7a(0xf3)]),_0xdd9f86=await readSqlLockFile(_0x41912a[_0x4c0e7a(0xf0)]),{appLock:_0x2f13c7}=ensureSqlLockScope(_0xdd9f86??createEmptySqlLock(),_0x41912a[_0x4c0e7a(0xf3)],_0x41912a[_0x4c0e7a(0x123)],_0x4c0e7a(0xec)),_0x457172=await fetchAllSqlQueries(_0x222e13[_0x4c0e7a(0xf3)],{'sqlCode':_0x222e13['str']('sqlcode')||undefined,'sqlName':_0x222e13[_0x4c0e7a(0x125)]('name')||undefined}),_0x2f9afd=[];for(const _0x11d920 of _0x457172){const _0x14b549=await ensureSqlContent(_0x11d920),_0x54e662=ensureRemoteSqlContent(_0x14b549),_0x35ff06=detectModeFromSql(_0x14b549),_0x2f594b=_0x14b549[_0x4c0e7a(0x127)]?await getDbName(_0x222e13[_0x4c0e7a(0xf3)],Number(_0x14b549[_0x4c0e7a(0x127)]))[_0x4c0e7a(0x116)](()=>undefined):undefined,_0xaa91b0=buildLocalSqlFileContent({'sqlCode':_0x14b549['sqlCode'],'sqlName':_0x14b549[_0x4c0e7a(0x115)],'dbId':_0x14b549['dbId']},_0x54e662,{'dbName':_0x2f594b,'mode':_0x35ff06,'syncedAt':new Date()['toISOString'](),'description':_0x14b549[_0x4c0e7a(0xe6)]}),_0x3e0b92=buildSqlLockEntry(_0x14b549,_0x54e662,'',{'dbName':_0x2f594b}),_0x28df88=resolveLocalSqlFilePath(_0x41912a,_0x14b549[_0x4c0e7a(0xf7)],_0x3e0b92);let _0x236f2e=_0x4c0e7a(0xf9),_0x2475f5;if(await fileExists(_0x28df88)){const _0x19f8fb=await readFile(_0x28df88,_0x4c0e7a(0x114));isEquivalentPulledSqlFile(_0x19f8fb,_0xaa91b0,_0x35ff06)?(_0x236f2e=_0x4c0e7a(0xf1),_0x2475f5=_0x4c0e7a(0x111)):(_0x236f2e=_0x4c0e7a(0xe7),_0x2475f5=_0x4c0e7a(0xe5));}_0x2f9afd[_0x4c0e7a(0xe9)]({'sqlCode':_0x14b549[_0x4c0e7a(0xf7)],'sqlName':_0x14b549[_0x4c0e7a(0x115)],'filePath':_0x28df88,'status':_0x236f2e,'reason':_0x2475f5});}return{'method':_0x4c0e7a(0x121),'url':_0x4c0e7a(0x102),'body':{'appCode':_0x222e13[_0x4c0e7a(0xf3)],'sqlCode':_0x222e13[_0x4c0e7a(0x125)](_0x4c0e7a(0x11e))||null,'sqlName':_0x222e13[_0x4c0e7a(0x125)]('name')||null,'files':_0x2f9afd},'description':_0x4c0e7a(0xfc)+_0x2f9afd[_0x4c0e7a(0x119)]+_0x4c0e7a(0x11a)+_0x41912a[_0x4c0e7a(0x11b)]};},async 'execute'(_0x353e20){const _0x16f2af=a170_0x274dcd,_0x2d299d=loadSqlProjectConfig(_0x353e20[_0x16f2af(0xf3)]),_0x34e1ff=await readSqlLockFile(_0x2d299d[_0x16f2af(0xf0)]),{lockData:_0x2830b9,appLock:_0x1522c8}=ensureSqlLockScope(_0x34e1ff??createEmptySqlLock(),_0x2d299d[_0x16f2af(0xf3)],_0x2d299d[_0x16f2af(0x123)],_0x16f2af(0xec)),_0x4cd54e=_0x353e20[_0x16f2af(0xed)](_0x16f2af(0x128)),_0x3f511e=await fetchAllSqlQueries(_0x353e20[_0x16f2af(0xf3)],{'sqlCode':_0x353e20[_0x16f2af(0x125)](_0x16f2af(0x11e))||undefined,'sqlName':_0x353e20[_0x16f2af(0x125)](_0x16f2af(0x10a))||undefined});if(_0x3f511e[_0x16f2af(0x119)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x16f2af(0xf6)};const _0x426284=[],_0x3bfccd=[];for(const _0x18b79f of _0x3f511e){try{_0x426284[_0x16f2af(0xe9)](await ensureSqlContent(_0x18b79f));}catch(_0xef23dd){_0x3bfccd[_0x16f2af(0xe9)]({'sqlCode':_0x18b79f[_0x16f2af(0xf7)],'error':_0xef23dd instanceof Error?_0xef23dd['message']:String(_0xef23dd)});}}if(_0x4cd54e&&!_0x353e20[_0x16f2af(0x100)]){let _0x4b8744=![];for(const _0x339ff5 of _0x426284){const _0x4ade4f=detectModeFromSql(_0x339ff5),_0x5809dc=_0x339ff5[_0x16f2af(0x127)]?await getDbName(_0x353e20['appCode'],Number(_0x339ff5['dbId']))['catch'](()=>undefined):undefined,_0x102de6=buildLocalSqlFileContent({'sqlCode':_0x339ff5['sqlCode'],'sqlName':_0x339ff5[_0x16f2af(0x115)],'dbId':_0x339ff5[_0x16f2af(0x127)]},ensureRemoteSqlContent(_0x339ff5),{'dbName':_0x5809dc,'mode':_0x4ade4f,'syncedAt':new Date()[_0x16f2af(0xef)](),'description':_0x339ff5[_0x16f2af(0xe6)]}),_0x55c3e4=resolveLocalSqlFilePath(_0x2d299d,_0x339ff5[_0x16f2af(0xf7)],buildSqlLockEntry(_0x339ff5,ensureRemoteSqlContent(_0x339ff5),'',{'dbName':_0x5809dc}));if(await fileExists(_0x55c3e4)){const _0x577acd=await readFile(_0x55c3e4,_0x16f2af(0x114));if(!isEquivalentPulledSqlFile(_0x577acd,_0x102de6,_0x4ade4f)){_0x4b8744=!![];break;}}}if(_0x4b8744){const _0x338c10=await confirmForceOverwrite(_0x16f2af(0xeb));if(!_0x338c10)throw CliErrors[_0x16f2af(0xf8)](_0x16f2af(0xee));}}const _0x5e3c2b=cloneSqlLockData(_0x2830b9),_0x20f535=_0x5e3c2b[_0x16f2af(0x120)][_0x2d299d[_0x16f2af(0xf3)]],_0x3f8a82=[],_0x142540=[];for(const _0x4a948f of _0x426284){const _0x20fb95=_0x20f535[_0x16f2af(0x10f)][_0x4a948f['sqlCode']],_0x22cd78=ensureRemoteSqlContent(_0x4a948f),_0x2f32dc=detectModeFromSql(_0x4a948f),_0x2ce320=_0x4a948f[_0x16f2af(0x127)]?await getDbName(_0x353e20['appCode'],Number(_0x4a948f[_0x16f2af(0x127)]))['catch'](()=>undefined):undefined,_0x3a8234=buildLocalSqlFileContent({'sqlCode':_0x4a948f['sqlCode'],'sqlName':_0x4a948f[_0x16f2af(0x115)],'dbId':_0x4a948f['dbId']},_0x22cd78,{'dbName':_0x2ce320,'mode':_0x2f32dc,'syncedAt':new Date()[_0x16f2af(0xef)](),'description':_0x4a948f['description']}),_0x338954=buildSqlLockEntry(_0x4a948f,_0x22cd78,computeSqlContentHash(_0x3a8234),{'dbName':_0x2ce320}),_0x4b2c4b=_0x338954[_0x16f2af(0xfe)],_0x3fab41=join(_0x2d299d['sqlRootDir'],_0x4b2c4b);try{if(await fileExists(_0x3fab41)){const _0xa708df=await readFile(_0x3fab41,'utf8');if(isEquivalentPulledSqlFile(_0xa708df,_0x3a8234,_0x2f32dc)){_0x142540[_0x16f2af(0xe9)]({'sqlCode':_0x4a948f['sqlCode'],'reason':_0x16f2af(0x111)}),_0x20f535['sqls'][_0x4a948f['sqlCode']]={..._0x338954,'hash':computeSqlContentHash(_0xa708df),'path':_0x4b2c4b};continue;}if(!_0x4cd54e){_0x142540['push']({'sqlCode':_0x4a948f[_0x16f2af(0xf7)],'reason':_0x16f2af(0x10d)});continue;}}const _0x37cbd5=_0x20fb95?.[_0x16f2af(0xfe)]?join(_0x2d299d[_0x16f2af(0x11b)],_0x20fb95[_0x16f2af(0xfe)]):undefined;_0x37cbd5&&_0x37cbd5!==_0x3fab41&&await fileExists(_0x37cbd5)&&await rm(_0x37cbd5,{'force':!![]}),await ensureParentDirectory(_0x3fab41),await writeFile(_0x3fab41,_0x3a8234,_0x16f2af(0x114)),_0x20f535[_0x16f2af(0x10f)][_0x4a948f['sqlCode']]={..._0x338954,'path':_0x4b2c4b},_0x3f8a82[_0x16f2af(0xe9)]({'sqlCode':_0x4a948f[_0x16f2af(0xf7)],'filePath':_0x3fab41});}catch(_0x50ef2d){_0x3bfccd[_0x16f2af(0xe9)]({'sqlCode':_0x4a948f[_0x16f2af(0xf7)],'error':_0x50ef2d instanceof Error?_0x50ef2d[_0x16f2af(0x101)]:String(_0x50ef2d)});}}return _0x20f535['lastSync']=new Date()[_0x16f2af(0xef)](),await writeSqlLockFile(_0x2d299d['lockFilePath'],_0x5e3c2b),{'ok':_0x3bfccd[_0x16f2af(0x119)]===0x0,'data':{'pulled':_0x3f8a82,'skipped':_0x142540,'failed':_0x3bfccd},'message':_0x16f2af(0x107)+_0x3f8a82['length']+_0x16f2af(0xff)+_0x142540[_0x16f2af(0x119)]+_0x16f2af(0x11d)+_0x3bfccd[_0x16f2af(0x119)]+_0x16f2af(0x11f)};}};function detectModeFromSql(_0x5281c1){const _0x376cf4=a170_0x274dcd,_0x4e62c0=ensureRemoteSqlContent(_0x5281c1),_0x53410c=stripLocalSqlMetadata(_0x4e62c0,_0x376cf4(0x10c))[_0x376cf4(0x122)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x53410c))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x287ae6,_0x377439,_0x497902){return normalizePullComparableContent(_0x287ae6,_0x497902)===normalizePullComparableContent(_0x377439,_0x497902);}function normalizePullComparableContent(_0x5331c5,_0x562ca0){const _0x57da0c=a170_0x274dcd,_0x1aa834=_0x5331c5[_0x57da0c(0x117)](/\r\n/g,'\x0a')[_0x57da0c(0x110)]('\x0a'),_0x408067=_0x1aa834[_0x57da0c(0xfb)](_0x13445d=>!isSyncedAtMetadataLine(_0x13445d,_0x562ca0));return _0x408067[_0x57da0c(0x11c)]('\x0a');}function isSyncedAtMetadataLine(_0x135de2,_0x3d7171){const _0x197569=a170_0x274dcd;if(_0x3d7171===_0x197569(0x10c))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x197569(0x10b)](_0x135de2);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x197569(0x10b)](_0x135de2);}
1
+ const a171_0x2f03e6=a171_0x580d;(function(_0xbab3b9,_0x144d3c){const _0x55d225=a171_0x580d,_0x34caf6=_0xbab3b9();while(!![]){try{const _0xbd3f1d=parseInt(_0x55d225(0xfe))/0x1*(parseInt(_0x55d225(0xf9))/0x2)+parseInt(_0x55d225(0x113))/0x3*(-parseInt(_0x55d225(0x114))/0x4)+parseInt(_0x55d225(0xf5))/0x5*(-parseInt(_0x55d225(0xef))/0x6)+parseInt(_0x55d225(0x118))/0x7*(parseInt(_0x55d225(0xe8))/0x8)+parseInt(_0x55d225(0x10e))/0x9+-parseInt(_0x55d225(0xea))/0xa+-parseInt(_0x55d225(0xdd))/0xb*(-parseInt(_0x55d225(0x11d))/0xc);if(_0xbd3f1d===_0x144d3c)break;else _0x34caf6['push'](_0x34caf6['shift']());}catch(_0x284752){_0x34caf6['push'](_0x34caf6['shift']());}}}(a171_0x16a6,0x3e5b5));import{readFile,rm,writeFile}from'node:fs/promises';function a171_0x580d(_0x3630fe,_0x26bb9c){_0x3630fe=_0x3630fe-0xdd;const _0x16a6fc=a171_0x16a6();let _0x580d6b=_0x16a6fc[_0x3630fe];return _0x580d6b;}import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x11112e,_0x276ae2){const _0x42149e=a171_0x580d,_0x272719=[];let _0x5bc19f=0x1;while(!![]){const _0x536149=await listSqlQueries(_0x11112e,{'currentPage':_0x5bc19f,'pageSize':PAGE_SIZE,'sqlCode':_0x276ae2[_0x42149e(0x10b)],'sqlName':_0x276ae2[_0x42149e(0xeb)]}),_0x243e78=_0x536149['tableData']??[];_0x272719[_0x42149e(0xdf)](..._0x243e78);if(_0x243e78[_0x42149e(0xec)]===0x0)break;const _0x139f59=_0x536149[_0x42149e(0x111)]?.[_0x42149e(0xe9)];if(_0x139f59!=null?_0x272719[_0x42149e(0xec)]>=_0x139f59:_0x243e78['length']<PAGE_SIZE)break;_0x5bc19f++;}return _0x272719;}async function ensureSqlContent(_0x3c23d3){const _0x2e887d=a171_0x580d;if(_0x3c23d3['sqlContent']!=null&&String(_0x3c23d3[_0x2e887d(0xe4)])[_0x2e887d(0xec)]>0x0)return _0x3c23d3;return getSqlQueryDetail(_0x3c23d3[_0x2e887d(0x10b)]);}function a171_0x16a6(){const _0x2b789e=['bool','2417945icIYah','appCode','path','description','943802wfOKOO','force','mybatisXml','Filter\x20by\x20SQL\x20display\x20name','lastSync','1RlHxPS','boolean','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','\x20written,\x20','skipped','str','sqlcode','test','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','utf8','local\x20differs\x20from\x20remote','POST','Force\x20pull\x20cancelled.','sqlCode','conflict','pull','3515274UgeHmI','join','trimStart','paging','sqls','24iNZwBu','149308sEWMQa','toISOString','Pull\x20complete:\x20','nonInteractive','7KsuSBw','catch','dbId','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','\x20skipped,\x20','398592TmPtzj','Force\x20overwrite\x20local\x20unsynced\x20changes','22xKzcTd','would_pull','push','cancelled','\x20SQL\x20file(s)\x20into\x20','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','apps','sqlContent','lockFilePath','\x20failed','message','1632296IxWBxB','totalCount','953380xNNZaL','sqlName','length','sqlRootDir','sqlRoot','6MwJRBO','No\x20remote\x20SQL\x20queries\x20matched.','string','write','name'];a171_0x16a6=function(){return _0x2b789e;};return a171_0x16a6();}export const sqlPull={'service':'sql','command':a171_0x2f03e6(0x10d),'description':a171_0x2f03e6(0x106),'risk':a171_0x2f03e6(0xf2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a171_0x2f03e6(0xf3),'type':a171_0x2f03e6(0xf1),'description':a171_0x2f03e6(0xfc)},{'name':a171_0x2f03e6(0xfa),'type':a171_0x2f03e6(0xff),'description':a171_0x2f03e6(0x11e)}],async 'dryRun'(_0x94680c){const _0x410ecd=a171_0x2f03e6,_0x39fd21=loadSqlProjectConfig(_0x94680c[_0x410ecd(0xf6)]),_0x694c6a=await readSqlLockFile(_0x39fd21[_0x410ecd(0xe5)]),{appLock:_0x54f855}=ensureSqlLockScope(_0x694c6a??createEmptySqlLock(),_0x39fd21['appCode'],_0x39fd21[_0x410ecd(0xee)],_0x410ecd(0x10d)),_0x53c1b4=await fetchAllSqlQueries(_0x94680c[_0x410ecd(0xf6)],{'sqlCode':_0x94680c[_0x410ecd(0x103)](_0x410ecd(0x104))||undefined,'sqlName':_0x94680c[_0x410ecd(0x103)](_0x410ecd(0xf3))||undefined}),_0x414904=[];for(const _0x356335 of _0x53c1b4){const _0x40702c=await ensureSqlContent(_0x356335),_0x456989=ensureRemoteSqlContent(_0x40702c),_0x3d6b17=detectModeFromSql(_0x40702c),_0x30b7a0=_0x40702c[_0x410ecd(0x11a)]?await getDbName(_0x94680c['appCode'],Number(_0x40702c['dbId']))[_0x410ecd(0x119)](()=>undefined):undefined,_0x346cd2=buildLocalSqlFileContent({'sqlCode':_0x40702c[_0x410ecd(0x10b)],'sqlName':_0x40702c[_0x410ecd(0xeb)],'dbId':_0x40702c[_0x410ecd(0x11a)]},_0x456989,{'dbName':_0x30b7a0,'mode':_0x3d6b17,'syncedAt':new Date()[_0x410ecd(0x115)](),'description':_0x40702c[_0x410ecd(0xf8)]}),_0xd7ebb1=buildSqlLockEntry(_0x40702c,_0x456989,'',{'dbName':_0x30b7a0}),_0x399e91=resolveLocalSqlFilePath(_0x39fd21,_0x40702c['sqlCode'],_0xd7ebb1);let _0x3cc8fa=_0x410ecd(0xde),_0x21dc93;if(await fileExists(_0x399e91)){const _0x58a759=await readFile(_0x399e91,_0x410ecd(0x107));isEquivalentPulledSqlFile(_0x58a759,_0x346cd2,_0x3d6b17)?(_0x3cc8fa=_0x410ecd(0x102),_0x21dc93='unchanged'):(_0x3cc8fa=_0x410ecd(0x10c),_0x21dc93=_0x410ecd(0x100));}_0x414904['push']({'sqlCode':_0x40702c[_0x410ecd(0x10b)],'sqlName':_0x40702c[_0x410ecd(0xeb)],'filePath':_0x399e91,'status':_0x3cc8fa,'reason':_0x21dc93});}return{'method':_0x410ecd(0x109),'url':_0x410ecd(0xe2),'body':{'appCode':_0x94680c[_0x410ecd(0xf6)],'sqlCode':_0x94680c[_0x410ecd(0x103)](_0x410ecd(0x104))||null,'sqlName':_0x94680c[_0x410ecd(0x103)](_0x410ecd(0xf3))||null,'files':_0x414904},'description':'Would\x20pull\x20'+_0x414904['length']+_0x410ecd(0xe1)+_0x39fd21[_0x410ecd(0xed)]};},async 'execute'(_0x414285){const _0x5b49c8=a171_0x2f03e6,_0x56d725=loadSqlProjectConfig(_0x414285['appCode']),_0x51e72e=await readSqlLockFile(_0x56d725[_0x5b49c8(0xe5)]),{lockData:_0x38188b,appLock:_0x14a4f3}=ensureSqlLockScope(_0x51e72e??createEmptySqlLock(),_0x56d725[_0x5b49c8(0xf6)],_0x56d725[_0x5b49c8(0xee)],_0x5b49c8(0x10d)),_0x45cb4a=_0x414285[_0x5b49c8(0xf4)](_0x5b49c8(0xfa)),_0x4bbc3c=await fetchAllSqlQueries(_0x414285[_0x5b49c8(0xf6)],{'sqlCode':_0x414285['str']('sqlcode')||undefined,'sqlName':_0x414285['str'](_0x5b49c8(0xf3))||undefined});if(_0x4bbc3c[_0x5b49c8(0xec)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x5b49c8(0xf0)};const _0x5e00aa=[],_0x13e4e0=[];for(const _0x3892e6 of _0x4bbc3c){try{_0x5e00aa[_0x5b49c8(0xdf)](await ensureSqlContent(_0x3892e6));}catch(_0x4b30d7){_0x13e4e0['push']({'sqlCode':_0x3892e6['sqlCode'],'error':_0x4b30d7 instanceof Error?_0x4b30d7[_0x5b49c8(0xe7)]:String(_0x4b30d7)});}}if(_0x45cb4a&&!_0x414285[_0x5b49c8(0x117)]){let _0x2f1903=![];for(const _0x5cf721 of _0x5e00aa){const _0x1afbf6=detectModeFromSql(_0x5cf721),_0x474c15=_0x5cf721[_0x5b49c8(0x11a)]?await getDbName(_0x414285[_0x5b49c8(0xf6)],Number(_0x5cf721['dbId']))['catch'](()=>undefined):undefined,_0x5eaf3e=buildLocalSqlFileContent({'sqlCode':_0x5cf721[_0x5b49c8(0x10b)],'sqlName':_0x5cf721['sqlName'],'dbId':_0x5cf721[_0x5b49c8(0x11a)]},ensureRemoteSqlContent(_0x5cf721),{'dbName':_0x474c15,'mode':_0x1afbf6,'syncedAt':new Date()[_0x5b49c8(0x115)](),'description':_0x5cf721['description']}),_0x4999ab=resolveLocalSqlFilePath(_0x56d725,_0x5cf721[_0x5b49c8(0x10b)],buildSqlLockEntry(_0x5cf721,ensureRemoteSqlContent(_0x5cf721),'',{'dbName':_0x474c15}));if(await fileExists(_0x4999ab)){const _0x5c2ae8=await readFile(_0x4999ab,'utf8');if(!isEquivalentPulledSqlFile(_0x5c2ae8,_0x5eaf3e,_0x1afbf6)){_0x2f1903=!![];break;}}}if(_0x2f1903){const _0x13e09e=await confirmForceOverwrite(_0x5b49c8(0x11b));if(!_0x13e09e)throw CliErrors[_0x5b49c8(0xe0)](_0x5b49c8(0x10a));}}const _0x50edc5=cloneSqlLockData(_0x38188b),_0x49e5d4=_0x50edc5[_0x5b49c8(0xe3)][_0x56d725['appCode']],_0x543025=[],_0x217eda=[];for(const _0x11e6dd of _0x5e00aa){const _0x576af0=_0x49e5d4[_0x5b49c8(0x112)][_0x11e6dd[_0x5b49c8(0x10b)]],_0x554ff7=ensureRemoteSqlContent(_0x11e6dd),_0x3cbf85=detectModeFromSql(_0x11e6dd),_0x317e87=_0x11e6dd[_0x5b49c8(0x11a)]?await getDbName(_0x414285[_0x5b49c8(0xf6)],Number(_0x11e6dd[_0x5b49c8(0x11a)]))[_0x5b49c8(0x119)](()=>undefined):undefined,_0x7b9f40=buildLocalSqlFileContent({'sqlCode':_0x11e6dd['sqlCode'],'sqlName':_0x11e6dd[_0x5b49c8(0xeb)],'dbId':_0x11e6dd['dbId']},_0x554ff7,{'dbName':_0x317e87,'mode':_0x3cbf85,'syncedAt':new Date()[_0x5b49c8(0x115)](),'description':_0x11e6dd[_0x5b49c8(0xf8)]}),_0x4f35cc=buildSqlLockEntry(_0x11e6dd,_0x554ff7,computeSqlContentHash(_0x7b9f40),{'dbName':_0x317e87}),_0x5535da=_0x4f35cc[_0x5b49c8(0xf7)],_0xef6d9d=join(_0x56d725[_0x5b49c8(0xed)],_0x5535da);try{if(await fileExists(_0xef6d9d)){const _0x3d1ca8=await readFile(_0xef6d9d,_0x5b49c8(0x107));if(isEquivalentPulledSqlFile(_0x3d1ca8,_0x7b9f40,_0x3cbf85)){_0x217eda[_0x5b49c8(0xdf)]({'sqlCode':_0x11e6dd[_0x5b49c8(0x10b)],'reason':'unchanged'}),_0x49e5d4[_0x5b49c8(0x112)][_0x11e6dd[_0x5b49c8(0x10b)]]={..._0x4f35cc,'hash':computeSqlContentHash(_0x3d1ca8),'path':_0x5535da};continue;}if(!_0x45cb4a){_0x217eda[_0x5b49c8(0xdf)]({'sqlCode':_0x11e6dd[_0x5b49c8(0x10b)],'reason':_0x5b49c8(0x108)});continue;}}const _0x2ebc61=_0x576af0?.[_0x5b49c8(0xf7)]?join(_0x56d725[_0x5b49c8(0xed)],_0x576af0[_0x5b49c8(0xf7)]):undefined;_0x2ebc61&&_0x2ebc61!==_0xef6d9d&&await fileExists(_0x2ebc61)&&await rm(_0x2ebc61,{'force':!![]}),await ensureParentDirectory(_0xef6d9d),await writeFile(_0xef6d9d,_0x7b9f40,_0x5b49c8(0x107)),_0x49e5d4[_0x5b49c8(0x112)][_0x11e6dd['sqlCode']]={..._0x4f35cc,'path':_0x5535da},_0x543025['push']({'sqlCode':_0x11e6dd[_0x5b49c8(0x10b)],'filePath':_0xef6d9d});}catch(_0x3f3f05){_0x13e4e0['push']({'sqlCode':_0x11e6dd[_0x5b49c8(0x10b)],'error':_0x3f3f05 instanceof Error?_0x3f3f05[_0x5b49c8(0xe7)]:String(_0x3f3f05)});}}return _0x49e5d4[_0x5b49c8(0xfd)]=new Date()[_0x5b49c8(0x115)](),await writeSqlLockFile(_0x56d725[_0x5b49c8(0xe5)],_0x50edc5),{'ok':_0x13e4e0['length']===0x0,'data':{'pulled':_0x543025,'skipped':_0x217eda,'failed':_0x13e4e0},'message':_0x5b49c8(0x116)+_0x543025['length']+_0x5b49c8(0x101)+_0x217eda[_0x5b49c8(0xec)]+_0x5b49c8(0x11c)+_0x13e4e0[_0x5b49c8(0xec)]+_0x5b49c8(0xe6)};}};function detectModeFromSql(_0x501b87){const _0x1d67c1=a171_0x2f03e6,_0x5dab0f=ensureRemoteSqlContent(_0x501b87),_0x23e530=stripLocalSqlMetadata(_0x5dab0f,_0x1d67c1(0xfb))[_0x1d67c1(0x110)]();if(/^<(select|insert|update|delete)\b/i[_0x1d67c1(0x105)](_0x23e530))return _0x1d67c1(0xfb);return'sql';}function isEquivalentPulledSqlFile(_0xfdac28,_0x2cc223,_0xb18f7d){return normalizePullComparableContent(_0xfdac28,_0xb18f7d)===normalizePullComparableContent(_0x2cc223,_0xb18f7d);}function normalizePullComparableContent(_0x28d23a,_0x5c8361){const _0xadb117=a171_0x2f03e6,_0x570e61=_0x28d23a['replace'](/\r\n/g,'\x0a')['split']('\x0a'),_0x485c3d=_0x570e61['filter'](_0x342af1=>!isSyncedAtMetadataLine(_0x342af1,_0x5c8361));return _0x485c3d[_0xadb117(0x10f)]('\x0a');}function isSyncedAtMetadataLine(_0x6da229,_0xf8ece2){const _0x244b53=a171_0x2f03e6;if(_0xf8ece2===_0x244b53(0xfb))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x244b53(0x105)](_0x6da229);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x244b53(0x105)](_0x6da229);}
@@ -1 +1 @@
1
- const a171_0x5d2063=a171_0x4b0b;function a171_0x4b0b(_0x5b357f,_0x56a17a){_0x5b357f=_0x5b357f-0xd5;const _0x5e28ef=a171_0x5e28();let _0x4b0bc3=_0x5e28ef[_0x5b357f];return _0x4b0bc3;}(function(_0x209f05,_0x1d9a70){const _0x3d90b0=a171_0x4b0b,_0x2929a6=_0x209f05();while(!![]){try{const _0x21bf45=-parseInt(_0x3d90b0(0x111))/0x1+parseInt(_0x3d90b0(0xde))/0x2+parseInt(_0x3d90b0(0xec))/0x3*(-parseInt(_0x3d90b0(0xf6))/0x4)+-parseInt(_0x3d90b0(0xfb))/0x5+parseInt(_0x3d90b0(0xdb))/0x6+parseInt(_0x3d90b0(0xd7))/0x7*(-parseInt(_0x3d90b0(0xf9))/0x8)+parseInt(_0x3d90b0(0xe0))/0x9*(parseInt(_0x3d90b0(0xf8))/0xa);if(_0x21bf45===_0x1d9a70)break;else _0x2929a6['push'](_0x2929a6['shift']());}catch(_0x20440b){_0x2929a6['push'](_0x2929a6['shift']());}}}(a171_0x5e28,0x8b234));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';function a171_0x5e28(){const _0x565984=['exec','trashDir','sqlRoot','replace','entries','set','remoteId','map','Local\x20directory\x20\x22','relativePath','appCode','Would\x20push\x20','path','No\x20database\x20matches\x20local\x20directory\x20\x22','/smartapi/custom/updateUserCustomSql','sqlRootDir','sqlName','hash','589720HOvKqo','lastSync','POST','lockFilePath','28vsNblD','Push\x20local\x20SQL\x20files\x20to\x20remote','unchanged','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','4266804fjKHBp','version','Local\x20SQL\x20not\x20found:\x20','1774262hgpfoL','join','720qeooTx','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','sqlcode','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','\x20SQL\x20file(s)','length','dbId','bool','push','message','mode','str','3lUoejy','validation','has','force','dbName','sqlCode','high-risk-write','sqls','toISOString','\x22\x20for\x20sqlCode\x20','1222116jsHaEK','filter','87450OHKlHP','1124568VPsCpZ','get','1352120oeLmGI','catch','\x20failed','filePath'];a171_0x5e28=function(){return _0x565984;};return a171_0x5e28();}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x3aff45,_0x35d2f5,_0x579b68){const _0x5323fe=a171_0x4b0b,_0x508464=await scanLocalSqlQueries(_0x3aff45),_0x387f59=new Map();for(const _0x164f6f of _0x508464){if(_0x579b68&&_0x164f6f[_0x5323fe(0xf1)]!==_0x579b68)continue;const _0x44accc=_0x387f59[_0x5323fe(0xfa)](_0x164f6f[_0x5323fe(0xf1)])??[];_0x44accc['push'](_0x164f6f),_0x387f59[_0x5323fe(0x104)](_0x164f6f[_0x5323fe(0xf1)],_0x44accc);}if(_0x579b68&&!_0x387f59[_0x5323fe(0xee)](_0x579b68))throw CliErrors[_0x5323fe(0xed)](_0x5323fe(0xdd)+_0x579b68);const _0x50aed3=[];for(const [_0x49964f,_0x53fbe0]of _0x387f59[_0x5323fe(0x103)]()){if(_0x53fbe0['length']===0x1){_0x50aed3['push'](_0x53fbe0[0x0]);continue;}const _0x4c57c6=_0x35d2f5[_0x5323fe(0xf3)][_0x49964f],_0x2b27ca=_0x4c57c6?.[_0x5323fe(0x10b)],_0xc8c9d7=_0x2b27ca?_0x53fbe0[_0x5323fe(0xf7)](_0xa0e85e=>_0xa0e85e[_0x5323fe(0x108)]!==_0x2b27ca):_0x53fbe0;if(_0x4c57c6&&_0xc8c9d7['length']===0x1){_0x50aed3['push'](_0xc8c9d7[0x0]);continue;}throw CliErrors[_0x5323fe(0xed)](_0x5323fe(0xda)+_0x49964f+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x50aed3;}export const sqlPush={'service':'sql','command':a171_0x5d2063(0xe8),'description':a171_0x5d2063(0xd8),'risk':a171_0x5d2063(0xf2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a171_0x5d2063(0xef),'type':'boolean','description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0x44ed05){const _0x48fcd6=a171_0x5d2063,_0x3105e3=loadSqlProjectConfig(_0x44ed05[_0x48fcd6(0x109)]),_0x3d1bd0=await readSqlLockFile(_0x3105e3[_0x48fcd6(0xd6)]),{appLock:_0x5e9245}=ensureSqlLockScope(_0x3d1bd0??createEmptySqlLock(),_0x44ed05[_0x48fcd6(0x109)],_0x3105e3[_0x48fcd6(0x101)],_0x48fcd6(0xe8)),_0x296c0a=await getTargetSqlQueries(_0x3105e3,_0x5e9245,_0x44ed05[_0x48fcd6(0xeb)](_0x48fcd6(0xe2))||undefined),_0x3b2cee=[];for(const _0x162d90 of _0x296c0a){const _0x6ae8b8=await computeSqlFileHash(_0x162d90[_0x48fcd6(0xfe)]),_0x192bef=_0x5e9245[_0x48fcd6(0xf3)][_0x162d90[_0x48fcd6(0xf1)]],_0x533e98=!!_0x192bef&&(_0x192bef['path']!==_0x162d90[_0x48fcd6(0x108)]||!!_0x162d90[_0x48fcd6(0x10f)]&&_0x192bef[_0x48fcd6(0x10f)]!==_0x162d90['sqlName']);if(!_0x44ed05[_0x48fcd6(0xe7)](_0x48fcd6(0xef))&&_0x192bef&&_0x192bef[_0x48fcd6(0x110)]===_0x6ae8b8&&!_0x533e98)continue;_0x3b2cee[_0x48fcd6(0xe8)](_0x162d90[_0x48fcd6(0xf1)]);}return{'method':_0x48fcd6(0xd5),'url':_0x48fcd6(0x10d),'body':{'sqlCodes':_0x3b2cee,'appCode':_0x44ed05[_0x48fcd6(0x109)]},'description':_0x48fcd6(0x10a)+_0x3b2cee[_0x48fcd6(0xe5)]+_0x48fcd6(0xe4)};},async 'execute'(_0x5c7728){const _0x25db0e=a171_0x5d2063,_0x11ba51=loadSqlProjectConfig(_0x5c7728[_0x25db0e(0x109)]),_0x2631ff=await readSqlLockFile(_0x11ba51[_0x25db0e(0xd6)]),{lockData:_0x654c52,appLock:_0x5b7d7f}=ensureSqlLockScope(_0x2631ff??createEmptySqlLock(),_0x5c7728['appCode'],_0x11ba51[_0x25db0e(0x101)],_0x25db0e(0xe8)),_0x1d15d7=await getTargetSqlQueries(_0x11ba51,_0x5b7d7f,_0x5c7728[_0x25db0e(0xeb)](_0x25db0e(0xe2))||undefined);if(_0x1d15d7[_0x25db0e(0xe5)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x3a2117=[],_0x1fe9b7=[],_0x571a94=[];for(const _0x146ba1 of _0x1d15d7){const _0x130275=_0x5b7d7f[_0x25db0e(0xf3)][_0x146ba1[_0x25db0e(0xf1)]];if(!_0x130275){_0x571a94[_0x25db0e(0xe8)]({'sqlCode':_0x146ba1['sqlCode'],'error':_0x25db0e(0xe1)});continue;}try{const _0x3ace63=await computeSqlFileHash(_0x146ba1['filePath']),_0x157f12=_0x130275[_0x25db0e(0x10b)]!==_0x146ba1[_0x25db0e(0x108)]||!!_0x146ba1['sqlName']&&_0x130275[_0x25db0e(0x10f)]!==_0x146ba1['sqlName'];if(!_0x5c7728[_0x25db0e(0xe7)](_0x25db0e(0xef))&&_0x130275[_0x25db0e(0x110)]===_0x3ace63&&!_0x157f12){_0x1fe9b7[_0x25db0e(0xe8)]({'sqlCode':_0x146ba1['sqlCode'],'reason':_0x25db0e(0xd9)});continue;}if(_0x130275[_0x25db0e(0xdc)]==null){_0x571a94[_0x25db0e(0xe8)]({'sqlCode':_0x146ba1['sqlCode'],'error':_0x25db0e(0xe3)});continue;}const _0x226f61=await readFile(_0x146ba1['filePath'],'utf8'),_0x1f8e9e=stripLocalSqlMetadata(_0x226f61,_0x146ba1['mode']),_0x5336d2=_0x146ba1['sqlName']||_0x130275[_0x25db0e(0x10f)],_0x4f8ade=await resolveTargetDbBinding(_0x5c7728[_0x25db0e(0x109)],_0x146ba1,_0x130275),_0x4a2eec=await updateSqlQuery({'id':_0x130275['remoteId'],'appCode':_0x5c7728[_0x25db0e(0x109)],'sqlCode':_0x146ba1[_0x25db0e(0xf1)],'sqlName':_0x5336d2,'dbId':_0x4f8ade[_0x25db0e(0xe6)],'version':_0x130275[_0x25db0e(0xdc)],'sqlContent':_0x1f8e9e,'sqlConfig':_0x130275['sqlConfig']??undefined}),_0x17790d=_0x4a2eec['dbId']?await getDbName(_0x5c7728[_0x25db0e(0x109)],Number(_0x4a2eec['dbId']))['catch'](()=>_0x4f8ade[_0x25db0e(0xf0)]):_0x4f8ade[_0x25db0e(0xf0)];_0x5b7d7f[_0x25db0e(0xf3)][_0x146ba1[_0x25db0e(0xf1)]]={...buildSqlLockEntry(_0x4a2eec,_0x1f8e9e,_0x3ace63,{'dbName':_0x17790d}),'path':_0x146ba1[_0x25db0e(0x108)],'mode':_0x130275[_0x25db0e(0xea)]},await archivePreviousSqlFileIfNeeded(_0x11ba51,_0x130275[_0x25db0e(0x10b)],_0x146ba1[_0x25db0e(0x108)]),_0x3a2117['push']({'sqlCode':_0x146ba1[_0x25db0e(0xf1)],'remoteId':_0x130275[_0x25db0e(0x105)]});}catch(_0x3d43a0){_0x571a94['push']({'sqlCode':_0x146ba1['sqlCode'],'error':_0x3d43a0 instanceof Error?_0x3d43a0[_0x25db0e(0xe9)]:String(_0x3d43a0)});}}return _0x5b7d7f[_0x25db0e(0x112)]=new Date()[_0x25db0e(0xf4)](),await writeSqlLockFile(_0x11ba51[_0x25db0e(0xd6)],_0x654c52),{'ok':_0x571a94[_0x25db0e(0xe5)]===0x0,'data':{'pushed':_0x3a2117,'skipped':_0x1fe9b7,'failed':_0x571a94},'message':'Push\x20complete:\x20'+_0x3a2117['length']+'\x20pushed,\x20'+_0x1fe9b7[_0x25db0e(0xe5)]+'\x20skipped,\x20'+_0x571a94[_0x25db0e(0xe5)]+_0x25db0e(0xfd)};}};async function archivePreviousSqlFileIfNeeded(_0x3e39a9,_0x2b2417,_0x3ce3c4){const _0x50c3c7=a171_0x5d2063;if(!_0x2b2417||_0x2b2417===_0x3ce3c4)return;const _0x14e52a=join(_0x3e39a9['sqlRootDir'],_0x2b2417);if(!await fileExists(_0x14e52a))return;const _0x38680a=await moveToTrash(_0x3e39a9['projectRoot'],_0x3e39a9[_0x50c3c7(0x100)],_0x14e52a);await cleanupEmptyDirectories(dirname(_0x14e52a),_0x3e39a9[_0x50c3c7(0x10e)]),void _0x38680a;}async function moveToTrash(_0x669d4a,_0x4369dc,_0x4257bf){const _0xaa8241=a171_0x5d2063,_0x4298b5=new Date()[_0xaa8241(0xf4)]()[_0xaa8241(0x102)](/[:.]/g,'-'),_0xe6be72=relative(_0x669d4a,_0x4257bf),_0x276d82=join(_0x4369dc,_0x4298b5,_0xe6be72);return await mkdir(dirname(_0x276d82),{'recursive':!![]}),await rename(_0x4257bf,_0x276d82),_0x276d82;}async function cleanupEmptyDirectories(_0x24f17d,_0x14977f){const _0x524025=a171_0x5d2063;let _0x46d31b=resolve(_0x24f17d);const _0x240407=resolve(_0x14977f);while(_0x46d31b['startsWith'](''+_0x240407+sep)||_0x46d31b===_0x240407){if(_0x46d31b===_0x240407)return;try{const _0x4b041c=await readdir(_0x46d31b);if(_0x4b041c[_0x524025(0xe5)]>0x0)return;await rmdir(_0x46d31b);}catch{return;}_0x46d31b=dirname(_0x46d31b);}}async function resolveTargetDbBinding(_0x5a7d86,_0x5623a6,_0x7e6a73){const _0x2ad0b3=a171_0x5d2063,_0x26c88c=_0x5623a6['dbDirectory'];if(!_0x26c88c)return{'dbId':_0x7e6a73[_0x2ad0b3(0xe6)],'dbName':_0x7e6a73[_0x2ad0b3(0xf0)]};const _0x27e26a=buildDbDirectoryName(_0x7e6a73['dbName'],_0x7e6a73[_0x2ad0b3(0xe6)]);if(_0x26c88c===_0x27e26a)return{'dbId':_0x7e6a73[_0x2ad0b3(0xe6)],'dbName':_0x7e6a73[_0x2ad0b3(0xf0)]};const _0x461d0c=parseExplicitDbDirectory(_0x26c88c);if(_0x461d0c!=null)return{'dbId':_0x461d0c,'dbName':await getDbName(_0x5a7d86,_0x461d0c)[_0x2ad0b3(0xfc)](()=>undefined)};const _0x563137=await listDatabases(_0x5a7d86),_0x494d62=_0x563137[_0x2ad0b3(0xf7)](_0x32b97c=>buildDbDirectoryName(_0x32b97c[_0x2ad0b3(0xf0)],_0x32b97c['dbId'])===_0x26c88c);if(_0x494d62[_0x2ad0b3(0xe5)]===0x1)return{'dbId':_0x494d62[0x0][_0x2ad0b3(0xe6)],'dbName':_0x494d62[0x0][_0x2ad0b3(0xf0)]};if(_0x494d62[_0x2ad0b3(0xe5)]===0x0)throw CliErrors[_0x2ad0b3(0xed)](_0x2ad0b3(0x10c)+_0x26c88c+_0x2ad0b3(0xf5)+_0x5623a6[_0x2ad0b3(0xf1)]+'.');const _0x17792b=_0x494d62[_0x2ad0b3(0x106)](_0xfb9e57=>_0xfb9e57[_0x2ad0b3(0xf0)]+'\x20('+_0xfb9e57[_0x2ad0b3(0xe6)]+')')[_0x2ad0b3(0xdf)](',\x20');throw CliErrors['validation'](_0x2ad0b3(0x107)+_0x26c88c+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x5623a6[_0x2ad0b3(0xf1)]+':\x20'+_0x17792b);}function parseExplicitDbDirectory(_0x1fe9dc){const _0x34fc0f=a171_0x5d2063,_0xd3e1a1=/^db-(\d+)$/[_0x34fc0f(0xff)](_0x1fe9dc);if(!_0xd3e1a1)return null;const _0x4ed427=Number(_0xd3e1a1[0x1]);return Number['isFinite'](_0x4ed427)&&_0x4ed427>0x0?_0x4ed427:null;}
1
+ const a172_0x2eea6c=a172_0x3658;(function(_0x51322e,_0x1f51bf){const _0x2c4626=a172_0x3658,_0x213f28=_0x51322e();while(!![]){try{const _0x1f07ca=parseInt(_0x2c4626(0x183))/0x1+parseInt(_0x2c4626(0x15f))/0x2*(parseInt(_0x2c4626(0x169))/0x3)+parseInt(_0x2c4626(0x159))/0x4+-parseInt(_0x2c4626(0x15b))/0x5*(parseInt(_0x2c4626(0x172))/0x6)+-parseInt(_0x2c4626(0x180))/0x7+-parseInt(_0x2c4626(0x16f))/0x8+-parseInt(_0x2c4626(0x168))/0x9*(parseInt(_0x2c4626(0x151))/0xa);if(_0x1f07ca===_0x1f51bf)break;else _0x213f28['push'](_0x213f28['shift']());}catch(_0x25d210){_0x213f28['push'](_0x213f28['shift']());}}}(a172_0x4d44,0xd1a4f));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';function a172_0x3658(_0x2852ce,_0x5259e7){_0x2852ce=_0x2852ce-0x14e;const _0x4d44c2=a172_0x4d44();let _0x3658b4=_0x4d44c2[_0x2852ce];return _0x3658b4;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x102f77,_0x26dea1,_0x2b0bac){const _0x16c979=a172_0x3658,_0x3df178=await scanLocalSqlQueries(_0x102f77),_0x507524=new Map();for(const _0x9328e6 of _0x3df178){if(_0x2b0bac&&_0x9328e6[_0x16c979(0x152)]!==_0x2b0bac)continue;const _0x5e99a6=_0x507524['get'](_0x9328e6['sqlCode'])??[];_0x5e99a6['push'](_0x9328e6),_0x507524[_0x16c979(0x153)](_0x9328e6[_0x16c979(0x152)],_0x5e99a6);}if(_0x2b0bac&&!_0x507524[_0x16c979(0x14e)](_0x2b0bac))throw CliErrors[_0x16c979(0x187)](_0x16c979(0x16a)+_0x2b0bac);const _0xde3976=[];for(const [_0x403aa6,_0x3f0762]of _0x507524[_0x16c979(0x15d)]()){if(_0x3f0762[_0x16c979(0x170)]===0x1){_0xde3976[_0x16c979(0x164)](_0x3f0762[0x0]);continue;}const _0x25f6c1=_0x26dea1['sqls'][_0x403aa6],_0x34609d=_0x25f6c1?.['path'],_0x1a907d=_0x34609d?_0x3f0762[_0x16c979(0x177)](_0x94b1a8=>_0x94b1a8['relativePath']!==_0x34609d):_0x3f0762;if(_0x25f6c1&&_0x1a907d['length']===0x1){_0xde3976[_0x16c979(0x164)](_0x1a907d[0x0]);continue;}throw CliErrors['validation'](_0x16c979(0x17b)+_0x403aa6+_0x16c979(0x16d));}return _0xde3976;}export const sqlPush={'service':a172_0x2eea6c(0x157),'command':'push','description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0x5d265d){const _0x59e9e6=a172_0x2eea6c,_0x163808=loadSqlProjectConfig(_0x5d265d[_0x59e9e6(0x150)]),_0x1f592d=await readSqlLockFile(_0x163808[_0x59e9e6(0x155)]),{appLock:_0x5c87e3}=ensureSqlLockScope(_0x1f592d??createEmptySqlLock(),_0x5d265d[_0x59e9e6(0x150)],_0x163808[_0x59e9e6(0x17d)],_0x59e9e6(0x164)),_0x266916=await getTargetSqlQueries(_0x163808,_0x5c87e3,_0x5d265d['str'](_0x59e9e6(0x17e))||undefined),_0x29166e=[];for(const _0x3bc624 of _0x266916){const _0x4462d2=await computeSqlFileHash(_0x3bc624['filePath']),_0x17d09a=_0x5c87e3['sqls'][_0x3bc624['sqlCode']],_0x1c77a8=!!_0x17d09a&&(_0x17d09a['path']!==_0x3bc624[_0x59e9e6(0x16c)]||!!_0x3bc624[_0x59e9e6(0x175)]&&_0x17d09a[_0x59e9e6(0x175)]!==_0x3bc624[_0x59e9e6(0x175)]);if(!_0x5d265d['bool'](_0x59e9e6(0x156))&&_0x17d09a&&_0x17d09a['hash']===_0x4462d2&&!_0x1c77a8)continue;_0x29166e['push'](_0x3bc624['sqlCode']);}return{'method':_0x59e9e6(0x16e),'url':_0x59e9e6(0x165),'body':{'sqlCodes':_0x29166e,'appCode':_0x5d265d[_0x59e9e6(0x150)]},'description':_0x59e9e6(0x163)+_0x29166e[_0x59e9e6(0x170)]+_0x59e9e6(0x167)};},async 'execute'(_0x27c94c){const _0x84fc6f=a172_0x2eea6c,_0x28b66e=loadSqlProjectConfig(_0x27c94c[_0x84fc6f(0x150)]),_0x4fbfed=await readSqlLockFile(_0x28b66e[_0x84fc6f(0x155)]),{lockData:_0x110d0d,appLock:_0x41cfc7}=ensureSqlLockScope(_0x4fbfed??createEmptySqlLock(),_0x27c94c[_0x84fc6f(0x150)],_0x28b66e[_0x84fc6f(0x17d)],_0x84fc6f(0x164)),_0x2bace4=await getTargetSqlQueries(_0x28b66e,_0x41cfc7,_0x27c94c['str'](_0x84fc6f(0x17e))||undefined);if(_0x2bace4[_0x84fc6f(0x170)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x57671f=[],_0x3e7183=[],_0x380b05=[];for(const _0x40e837 of _0x2bace4){const _0x37296d=_0x41cfc7[_0x84fc6f(0x174)][_0x40e837[_0x84fc6f(0x152)]];if(!_0x37296d){_0x380b05['push']({'sqlCode':_0x40e837['sqlCode'],'error':_0x84fc6f(0x179)});continue;}try{const _0x298eca=await computeSqlFileHash(_0x40e837[_0x84fc6f(0x186)]),_0x4381ae=_0x37296d[_0x84fc6f(0x15e)]!==_0x40e837[_0x84fc6f(0x16c)]||!!_0x40e837[_0x84fc6f(0x175)]&&_0x37296d[_0x84fc6f(0x175)]!==_0x40e837[_0x84fc6f(0x175)];if(!_0x27c94c[_0x84fc6f(0x160)](_0x84fc6f(0x156))&&_0x37296d[_0x84fc6f(0x15c)]===_0x298eca&&!_0x4381ae){_0x3e7183[_0x84fc6f(0x164)]({'sqlCode':_0x40e837['sqlCode'],'reason':_0x84fc6f(0x17c)});continue;}if(_0x37296d[_0x84fc6f(0x171)]==null){_0x380b05[_0x84fc6f(0x164)]({'sqlCode':_0x40e837['sqlCode'],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x146c88=await readFile(_0x40e837['filePath'],_0x84fc6f(0x162)),_0x1b9705=stripLocalSqlMetadata(_0x146c88,_0x40e837[_0x84fc6f(0x176)]),_0x103b68=_0x40e837[_0x84fc6f(0x175)]||_0x37296d[_0x84fc6f(0x175)],_0x47663d=await resolveTargetDbBinding(_0x27c94c[_0x84fc6f(0x150)],_0x40e837,_0x37296d),_0x15307a=await updateSqlQuery({'id':_0x37296d[_0x84fc6f(0x188)],'appCode':_0x27c94c[_0x84fc6f(0x150)],'sqlCode':_0x40e837[_0x84fc6f(0x152)],'sqlName':_0x103b68,'dbId':_0x47663d[_0x84fc6f(0x182)],'version':_0x37296d[_0x84fc6f(0x171)],'sqlContent':_0x1b9705,'sqlConfig':_0x37296d['sqlConfig']??undefined}),_0x5c5e29=_0x15307a[_0x84fc6f(0x182)]?await getDbName(_0x27c94c[_0x84fc6f(0x150)],Number(_0x15307a[_0x84fc6f(0x182)]))['catch'](()=>_0x47663d[_0x84fc6f(0x166)]):_0x47663d[_0x84fc6f(0x166)];_0x41cfc7[_0x84fc6f(0x174)][_0x40e837[_0x84fc6f(0x152)]]={...buildSqlLockEntry(_0x15307a,_0x1b9705,_0x298eca,{'dbName':_0x5c5e29}),'path':_0x40e837[_0x84fc6f(0x16c)],'mode':_0x37296d[_0x84fc6f(0x176)]},await archivePreviousSqlFileIfNeeded(_0x28b66e,_0x37296d['path'],_0x40e837[_0x84fc6f(0x16c)]),_0x57671f[_0x84fc6f(0x164)]({'sqlCode':_0x40e837[_0x84fc6f(0x152)],'remoteId':_0x37296d[_0x84fc6f(0x188)]});}catch(_0x1ad578){_0x380b05[_0x84fc6f(0x164)]({'sqlCode':_0x40e837[_0x84fc6f(0x152)],'error':_0x1ad578 instanceof Error?_0x1ad578[_0x84fc6f(0x178)]:String(_0x1ad578)});}}return _0x41cfc7[_0x84fc6f(0x18a)]=new Date()[_0x84fc6f(0x18b)](),await writeSqlLockFile(_0x28b66e['lockFilePath'],_0x110d0d),{'ok':_0x380b05[_0x84fc6f(0x170)]===0x0,'data':{'pushed':_0x57671f,'skipped':_0x3e7183,'failed':_0x380b05},'message':'Push\x20complete:\x20'+_0x57671f[_0x84fc6f(0x170)]+_0x84fc6f(0x15a)+_0x3e7183[_0x84fc6f(0x170)]+_0x84fc6f(0x161)+_0x380b05[_0x84fc6f(0x170)]+'\x20failed'};}};async function archivePreviousSqlFileIfNeeded(_0x504135,_0x11ea27,_0x18acb8){const _0x3bab94=a172_0x2eea6c;if(!_0x11ea27||_0x11ea27===_0x18acb8)return;const _0x126010=join(_0x504135[_0x3bab94(0x16b)],_0x11ea27);if(!await fileExists(_0x126010))return;const _0x2cbe93=await moveToTrash(_0x504135[_0x3bab94(0x181)],_0x504135[_0x3bab94(0x154)],_0x126010);await cleanupEmptyDirectories(dirname(_0x126010),_0x504135[_0x3bab94(0x16b)]),void _0x2cbe93;}async function moveToTrash(_0x24c369,_0x130da2,_0x3f1cae){const _0xfc6792=a172_0x2eea6c,_0x26e174=new Date()[_0xfc6792(0x18b)]()[_0xfc6792(0x158)](/[:.]/g,'-'),_0x3f945b=relative(_0x24c369,_0x3f1cae),_0x27d4dd=join(_0x130da2,_0x26e174,_0x3f945b);return await mkdir(dirname(_0x27d4dd),{'recursive':!![]}),await rename(_0x3f1cae,_0x27d4dd),_0x27d4dd;}function a172_0x4d44(){const _0x3b6b11=['lastSync','toISOString','has','exec','appCode','1930fryIvb','sqlCode','set','trashDir','lockFilePath','force','sql','replace','2906152pPKpKG','\x20pushed,\x20','2240795cDPgSM','hash','entries','path','1741742IhUONt','bool','\x20skipped,\x20','utf8','Would\x20push\x20','push','/smartapi/custom/updateUserCustomSql','dbName','\x20SQL\x20file(s)','53307bwaLCg','3dnVYtS','Local\x20SQL\x20not\x20found:\x20','sqlRootDir','relativePath','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','POST','955080vnsjQJ','length','version','12GnqekX','\x22\x20for\x20sqlCode\x20','sqls','sqlName','mode','filter','message','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','catch','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','unchanged','sqlRoot','sqlcode','startsWith','1350825dGzdaM','projectRoot','dbId','1613111tezjwt','No\x20database\x20matches\x20local\x20directory\x20\x22','map','filePath','validation','remoteId','Local\x20directory\x20\x22'];a172_0x4d44=function(){return _0x3b6b11;};return a172_0x4d44();}async function cleanupEmptyDirectories(_0x9f1893,_0x40d2cd){const _0x16641f=a172_0x2eea6c;let _0x86bd6=resolve(_0x9f1893);const _0x14b374=resolve(_0x40d2cd);while(_0x86bd6[_0x16641f(0x17f)](''+_0x14b374+sep)||_0x86bd6===_0x14b374){if(_0x86bd6===_0x14b374)return;try{const _0x26d105=await readdir(_0x86bd6);if(_0x26d105[_0x16641f(0x170)]>0x0)return;await rmdir(_0x86bd6);}catch{return;}_0x86bd6=dirname(_0x86bd6);}}async function resolveTargetDbBinding(_0x60ad34,_0x3b7b1c,_0x1f7f97){const _0x4ed602=a172_0x2eea6c,_0x5eebb9=_0x3b7b1c['dbDirectory'];if(!_0x5eebb9)return{'dbId':_0x1f7f97[_0x4ed602(0x182)],'dbName':_0x1f7f97[_0x4ed602(0x166)]};const _0x175ac0=buildDbDirectoryName(_0x1f7f97[_0x4ed602(0x166)],_0x1f7f97[_0x4ed602(0x182)]);if(_0x5eebb9===_0x175ac0)return{'dbId':_0x1f7f97['dbId'],'dbName':_0x1f7f97[_0x4ed602(0x166)]};const _0x5eeece=parseExplicitDbDirectory(_0x5eebb9);if(_0x5eeece!=null)return{'dbId':_0x5eeece,'dbName':await getDbName(_0x60ad34,_0x5eeece)[_0x4ed602(0x17a)](()=>undefined)};const _0xa63623=await listDatabases(_0x60ad34),_0x531bff=_0xa63623[_0x4ed602(0x177)](_0x1fa30b=>buildDbDirectoryName(_0x1fa30b[_0x4ed602(0x166)],_0x1fa30b[_0x4ed602(0x182)])===_0x5eebb9);if(_0x531bff['length']===0x1)return{'dbId':_0x531bff[0x0][_0x4ed602(0x182)],'dbName':_0x531bff[0x0][_0x4ed602(0x166)]};if(_0x531bff[_0x4ed602(0x170)]===0x0)throw CliErrors[_0x4ed602(0x187)](_0x4ed602(0x184)+_0x5eebb9+_0x4ed602(0x173)+_0x3b7b1c['sqlCode']+'.');const _0x42fb09=_0x531bff[_0x4ed602(0x185)](_0x3abec4=>_0x3abec4['dbName']+'\x20('+_0x3abec4[_0x4ed602(0x182)]+')')['join'](',\x20');throw CliErrors[_0x4ed602(0x187)](_0x4ed602(0x189)+_0x5eebb9+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x3b7b1c[_0x4ed602(0x152)]+':\x20'+_0x42fb09);}function parseExplicitDbDirectory(_0x46887c){const _0x1a02dc=a172_0x2eea6c,_0x4d630d=/^db-(\d+)$/[_0x1a02dc(0x14f)](_0x46887c);if(!_0x4d630d)return null;const _0x56cc78=Number(_0x4d630d[0x1]);return Number['isFinite'](_0x56cc78)&&_0x56cc78>0x0?_0x56cc78:null;}
@@ -1 +1 @@
1
- function a172_0x206d(_0xc32c7b,_0x23eca0){_0xc32c7b=_0xc32c7b-0x1f4;const _0x3792e9=a172_0x3792();let _0x206dd7=_0x3792e9[_0xc32c7b];return _0x206dd7;}const a172_0x228689=a172_0x206d;function a172_0x3792(){const _0x27d48a=['Path\x20to\x20the\x20SQL\x20file','63MYiXbf','436176rdkoHA','write','3stTGqk','883611QMGoJa','string','20cuYFwF','147958qVrjIU','454782Mqiuwf','validation','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','sqlname','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','save','2957229ddTqtS','5WnUwXd','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','1321736ueUSeX','273846iBwaxZ','SQL\x20query\x20display\x20name'];a172_0x3792=function(){return _0x27d48a;};return a172_0x3792();}(function(_0x2f2e13,_0x2e937b){const _0x29ee86=a172_0x206d,_0x484131=_0x2f2e13();while(!![]){try{const _0x29a514=-parseInt(_0x29ee86(0x209))/0x1*(parseInt(_0x29ee86(0x1f7))/0x2)+parseInt(_0x29ee86(0x1f8))/0x3+parseInt(_0x29ee86(0x207))/0x4*(parseInt(_0x29ee86(0x1ff))/0x5)+-parseInt(_0x29ee86(0x203))/0x6*(parseInt(_0x29ee86(0x206))/0x7)+parseInt(_0x29ee86(0x202))/0x8+-parseInt(_0x29ee86(0x1f4))/0x9+parseInt(_0x29ee86(0x1f6))/0xa*(parseInt(_0x29ee86(0x1fe))/0xb);if(_0x29a514===_0x2e937b)break;else _0x484131['push'](_0x484131['shift']());}catch(_0x5a71af){_0x484131['push'](_0x484131['shift']());}}}(a172_0x3792,0x38cc8));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a172_0x228689(0x201),a172_0x228689(0x1fa),'Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.']['join']('\x0a');export const sqlSave={'service':'sql','command':a172_0x228689(0x1fd),'description':a172_0x228689(0x1fc),'risk':a172_0x228689(0x208),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':a172_0x228689(0x1f5),'required':!![],'description':a172_0x228689(0x205)},SQLCODE_FLAG_OPTIONAL,{'name':a172_0x228689(0x1fb),'type':a172_0x228689(0x1f5),'description':a172_0x228689(0x204)},{'name':'db','type':a172_0x228689(0x1f5),'description':a172_0x228689(0x200)},{'name':'description','type':a172_0x228689(0x1f5),'description':'Query\x20description'}],async 'validate'(){const _0x2fbb43=a172_0x228689;throw CliErrors[_0x2fbb43(0x1f9)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x1013b3=a172_0x228689;throw CliErrors[_0x1013b3(0x1f9)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a173_0x506b9c=a173_0x3824;function a173_0x3824(_0xa06940,_0x49a271){_0xa06940=_0xa06940-0xe0;const _0x2472c3=a173_0x2472();let _0x3824cd=_0x2472c3[_0xa06940];return _0x3824cd;}(function(_0x29ced5,_0xffc39){const _0x811f28=a173_0x3824,_0x5a11f5=_0x29ced5();while(!![]){try{const _0x4c0607=-parseInt(_0x811f28(0xe1))/0x1*(-parseInt(_0x811f28(0xef))/0x2)+parseInt(_0x811f28(0xee))/0x3*(parseInt(_0x811f28(0xf5))/0x4)+parseInt(_0x811f28(0xea))/0x5*(parseInt(_0x811f28(0xe8))/0x6)+-parseInt(_0x811f28(0xec))/0x7*(parseInt(_0x811f28(0xf6))/0x8)+parseInt(_0x811f28(0xe6))/0x9*(-parseInt(_0x811f28(0xf7))/0xa)+-parseInt(_0x811f28(0xe0))/0xb+parseInt(_0x811f28(0xe9))/0xc;if(_0x4c0607===_0xffc39)break;else _0x5a11f5['push'](_0x5a11f5['shift']());}catch(_0x1849bf){_0x5a11f5['push'](_0x5a11f5['shift']());}}}(a173_0x2472,0x80ffe));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a173_0x2472(){const _0x1ac053=['validation','108XmFKZQ','29740248ICPRFK','1735zgdpbf','SQL\x20query\x20display\x20name','60466SHuYNW','Path\x20to\x20the\x20SQL\x20file','5847WjzvZj','12DEWhhN','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','write','file','sql','sqlname','1708uPjiBH','968Fcctew','3050kiUssd','string','9936454rjLdak','2701oTcNEO','save','description','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','25263lrmsGw'];a173_0x2472=function(){return _0x1ac053;};return a173_0x2472();}const SQL_SAVE_DEPRECATED_HINT=[a173_0x506b9c(0xf0),a173_0x506b9c(0xe5),'Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.']['join']('\x0a');export const sqlSave={'service':a173_0x506b9c(0xf3),'command':a173_0x506b9c(0xe2),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a173_0x506b9c(0xf1),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a173_0x506b9c(0xf2),'type':a173_0x506b9c(0xf8),'required':!![],'description':a173_0x506b9c(0xed)},SQLCODE_FLAG_OPTIONAL,{'name':a173_0x506b9c(0xf4),'type':a173_0x506b9c(0xf8),'description':a173_0x506b9c(0xeb)},{'name':'db','type':a173_0x506b9c(0xf8),'description':a173_0x506b9c(0xe4)},{'name':a173_0x506b9c(0xe3),'type':a173_0x506b9c(0xf8),'description':'Query\x20description'}],async 'validate'(){const _0x536858=a173_0x506b9c;throw CliErrors[_0x536858(0xe7)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a173_0x282bce=a173_0x4092;(function(_0x3bf23b,_0x4e56ef){const _0x35372b=a173_0x4092,_0x3b02a6=_0x3bf23b();while(!![]){try{const _0x2acba5=-parseInt(_0x35372b(0x147))/0x1*(parseInt(_0x35372b(0x138))/0x2)+-parseInt(_0x35372b(0x11f))/0x3*(-parseInt(_0x35372b(0x12c))/0x4)+-parseInt(_0x35372b(0x13b))/0x5+parseInt(_0x35372b(0x14b))/0x6*(-parseInt(_0x35372b(0x144))/0x7)+-parseInt(_0x35372b(0x11e))/0x8*(-parseInt(_0x35372b(0x148))/0x9)+parseInt(_0x35372b(0x132))/0xa+parseInt(_0x35372b(0x13c))/0xb*(parseInt(_0x35372b(0x130))/0xc);if(_0x2acba5===_0x4e56ef)break;else _0x3b02a6['push'](_0x3b02a6['shift']());}catch(_0x1ccfeb){_0x3b02a6['push'](_0x3b02a6['shift']());}}}(a173_0x478a,0x6c89d));function a173_0x4092(_0x4b13f7,_0x28e3f1){_0x4b13f7=_0x4b13f7-0x11d;const _0x478aa4=a173_0x478a();let _0x4092a4=_0x478aa4[_0x4b13f7];return _0x4092a4;}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=a173_0x282bce(0x128);export function buildSqlLockEntry(_0x5e4b78,_0x59a914,_0x3c0350,_0xf75a32){const _0x43deb3=a173_0x282bce,_0x39da34=detectSqlMode(_0x59a914);return{'path':buildSqlRelativePath(_0x5e4b78[_0x43deb3(0x135)],_0x5e4b78[_0x43deb3(0x14c)],_0xf75a32?.[_0x43deb3(0x14d)],_0x39da34,_0x5e4b78[_0x43deb3(0x13f)]),'hash':_0x3c0350,'remoteId':_0x5e4b78['id'],'version':_0x5e4b78[_0x43deb3(0x123)],'dbId':Number(_0x5e4b78[_0x43deb3(0x13f)]),'dbName':_0xf75a32?.[_0x43deb3(0x14d)],'sqlName':_0x5e4b78[_0x43deb3(0x14c)],'sqlConfig':_0x5e4b78[_0x43deb3(0x12b)]??undefined,'mode':_0x39da34};}export function cloneSqlLockData(_0x56fb41){const _0x126b5f=a173_0x282bce;return{'apps':Object['fromEntries'](Object[_0x126b5f(0x137)](_0x56fb41[_0x126b5f(0x131)])[_0x126b5f(0x140)](([_0x17a1af,_0x5d196b])=>[_0x17a1af,{'sqlRoot':_0x5d196b[_0x126b5f(0x145)],'lastSync':_0x5d196b[_0x126b5f(0x12a)],'sqls':{..._0x5d196b[_0x126b5f(0x141)]}}]))};}export function ensureRemoteSqlContent(_0x4d6c7c){const _0x2dd385=a173_0x282bce;return _0x4d6c7c[_0x2dd385(0x149)]??'';}export function buildLocalSqlFileContent(_0x8627f2,_0x7674f7,_0x4bf5ed){const _0x66575d=a173_0x282bce,_0x11d123=_0x4bf5ed?.[_0x66575d(0x11d)]??detectSqlMode(_0x7674f7),_0x438215=stripLocalSqlMetadata(_0x7674f7,_0x11d123)['trim'](),_0x5b29bd=[...buildMetadataHeaderLines({'sqlCode':_0x8627f2[_0x66575d(0x135)],'sqlName':_0x8627f2[_0x66575d(0x14c)],'dbId':_0x8627f2[_0x66575d(0x13f)],'dbName':_0x4bf5ed?.[_0x66575d(0x14d)],'mode':_0x11d123,'syncedAt':_0x4bf5ed?.[_0x66575d(0x12d)],'description':_0x4bf5ed?.['description']},_0x11d123),'',_0x438215],_0x5a43aa=_0x5b29bd['join']('\x0a');return _0x5a43aa[_0x66575d(0x126)]('\x0a')?_0x5a43aa:_0x5a43aa+'\x0a';}export function stripLocalSqlMetadata(_0x2e8eeb,_0x1ec60e){const _0x22bf3c=a173_0x282bce,_0x2ffe2a=_0x2e8eeb[_0x22bf3c(0x120)](/\r\n/g,'\x0a')[_0x22bf3c(0x13e)]('\x0a'),_0x1394ce=[];let _0x543854=0x0;if(_0x1ec60e===_0x22bf3c(0x122))while(_0x543854<_0x2ffe2a[_0x22bf3c(0x12f)]){const _0x362854=_0x2ffe2a[_0x543854]??'';if(/^\s*<!--\s*@lovrabet\./[_0x22bf3c(0x14a)](_0x362854)){_0x543854++;continue;}if(_0x362854[_0x22bf3c(0x146)]()===''&&_0x543854>0x0){_0x543854++;continue;}break;}else while(_0x543854<_0x2ffe2a[_0x22bf3c(0x12f)]){const _0xc875e5=_0x2ffe2a[_0x543854]??'';if(/^\s*--\s*@lovrabet\./[_0x22bf3c(0x14a)](_0xc875e5)){_0x543854++;continue;}if(_0xc875e5['trim']()===''&&_0x543854>0x0){_0x543854++;continue;}break;}for(;_0x543854<_0x2ffe2a[_0x22bf3c(0x12f)];_0x543854++){_0x1394ce[_0x22bf3c(0x13a)](_0x2ffe2a[_0x543854]);}return _0x1394ce[_0x22bf3c(0x133)]('\x0a')[_0x22bf3c(0x134)]();}export function resolveSqlMode(_0x66dcf9,_0x26102c){const _0x1b9a58=a173_0x282bce;if(_0x26102c?.[_0x1b9a58(0x11d)])return _0x26102c['mode'];return detectSqlMode(_0x66dcf9);}function a173_0x478a(){const _0x14693c=['375914ZbBTtf','filter','split','dbId','map','sqls','stdin','\x20-->','4192181cLUxXn','sqlRoot','trim','29957qZeDRJ','90243jOVMgR','sqlContent','test','6tHokwH','sqlName','dbName','mode','520OUBIEP','3rXmfhj','replace','description','mybatisXml','version','question','stderr','endsWith','path','.rabetbase/sql','yes','lastSync','sqlConfig','709724ZiOcxR','syncedAt','includes','length','84BuGKfm','apps','1793950LkYZYA','join','trimStart','sqlCode','toLowerCase','entries','6FEMuxA','--\x20@lovrabet.','push','572360GxrOyu'];a173_0x478a=function(){return _0x14693c;};return a173_0x478a();}export function resolveSqlFileName(_0x21b5ef,_0x4dc54d,_0x549b38){const _0xcf5e25=a173_0x282bce;if(_0x549b38?.[_0xcf5e25(0x127)])return _0x549b38[_0xcf5e25(0x127)];if(_0x549b38?.['sqlName']||_0x549b38?.['dbName'])return buildSqlRelativePath(_0x21b5ef,_0x549b38?.[_0xcf5e25(0x14c)],_0x549b38?.[_0xcf5e25(0x14d)],resolveSqlMode(_0x4dc54d,_0x549b38),_0x549b38?.[_0xcf5e25(0x13f)]);return buildDefaultSqlFileName(_0x21b5ef,resolveSqlMode(_0x4dc54d,_0x549b38));}export function resolveSqlLocalDir(_0x33f40a,_0x763b1a){return join(_0x33f40a,SQL_LOCAL_REL_DIR,_0x763b1a);}export async function confirmForceOverwrite(_0x3515ab){const _0x21b2f3=a173_0x282bce,_0x4f694a=createInterface({'input':process[_0x21b2f3(0x142)],'output':process[_0x21b2f3(0x125)]}),_0x75c128=await new Promise(_0x50f110=>{const _0x17fde3=_0x21b2f3;_0x4f694a[_0x17fde3(0x124)](_0x3515ab+'\x20[y/N]\x20',_0x50f110);});return _0x4f694a['close'](),['y',_0x21b2f3(0x129)][_0x21b2f3(0x12e)](_0x75c128[_0x21b2f3(0x146)]()[_0x21b2f3(0x136)]());}export function findSqlLockScope(_0x45fbd4,_0x2207ed){return _0x45fbd4['apps'][_0x2207ed];}function buildMetadataHeaderLines(_0x2e6965,_0x51f93f){const _0x5b2c76=a173_0x282bce,_0x50bc98=[[_0x5b2c76(0x135),_0x2e6965['sqlCode']],[_0x5b2c76(0x14c),_0x2e6965[_0x5b2c76(0x14c)]],[_0x5b2c76(0x13f),_0x2e6965['dbId']],['dbName',_0x2e6965[_0x5b2c76(0x14d)]],[_0x5b2c76(0x11d),_0x2e6965[_0x5b2c76(0x11d)]],[_0x5b2c76(0x12d),_0x2e6965[_0x5b2c76(0x12d)]],[_0x5b2c76(0x121),_0x2e6965['description']]];if(_0x51f93f==='mybatisXml')return _0x50bc98[_0x5b2c76(0x13d)](([,_0x48934c])=>_0x48934c!==undefined&&_0x48934c!==null&&String(_0x48934c)[_0x5b2c76(0x146)]()!=='')[_0x5b2c76(0x140)](([_0x4de9f2,_0x538a12])=>'<!--\x20@lovrabet.'+_0x4de9f2+':\x20'+String(_0x538a12)+_0x5b2c76(0x143));return _0x50bc98['filter'](([,_0x505bcb])=>_0x505bcb!==undefined&&_0x505bcb!==null&&String(_0x505bcb)['trim']()!=='')['map'](([_0x63c9e6,_0xe16f22])=>_0x5b2c76(0x139)+_0x63c9e6+':\x20'+String(_0xe16f22));}
1
+ (function(_0xd5e980,_0x4e3d95){const _0x217792=a174_0x2155,_0xa3634=_0xd5e980();while(!![]){try{const _0x3a0e84=-parseInt(_0x217792(0x1e1))/0x1*(-parseInt(_0x217792(0x1fc))/0x2)+-parseInt(_0x217792(0x1e8))/0x3+-parseInt(_0x217792(0x1ea))/0x4+-parseInt(_0x217792(0x1ec))/0x5*(parseInt(_0x217792(0x1f6))/0x6)+parseInt(_0x217792(0x1df))/0x7+-parseInt(_0x217792(0x1fd))/0x8*(-parseInt(_0x217792(0x1d6))/0x9)+-parseInt(_0x217792(0x1f2))/0xa*(-parseInt(_0x217792(0x1f0))/0xb);if(_0x3a0e84===_0x4e3d95)break;else _0xa3634['push'](_0xa3634['shift']());}catch(_0x297772){_0xa3634['push'](_0xa3634['shift']());}}}(a174_0x45ee,0xa4308));import{createInterface}from'node:readline';function a174_0x45ee(){const _0x4fc82c=['--\x20@lovrabet.','dbName','join','1115415omDNpD','path','description','includes','sqlName','trim','endsWith','fromEntries','mybatisXml','4260949FLDbQz','lastSync','1qLeQrf','question','stdin','sqls','close','syncedAt','map','2908716GPwcOl','filter','1276868axAvgV','push','6636785cQYpjs','mode','<!--\x20@lovrabet.','sqlCode','33MpoLjh','replace','3848300uIaOBB','test','split','dbId','6yXipvc','length','entries','\x20-->','toLowerCase','trimStart','2555198rjeULw','16HZjFqE','version'];a174_0x45ee=function(){return _0x4fc82c;};return a174_0x45ee();}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x251a29,_0x22fb50,_0x59b04c,_0x39374e){const _0xca125=a174_0x2155,_0x112f0d=detectSqlMode(_0x22fb50);return{'path':buildSqlRelativePath(_0x251a29[_0xca125(0x1ef)],_0x251a29[_0xca125(0x1da)],_0x39374e?.[_0xca125(0x1d4)],_0x112f0d,_0x251a29[_0xca125(0x1f5)]),'hash':_0x59b04c,'remoteId':_0x251a29['id'],'version':_0x251a29[_0xca125(0x1fe)],'dbId':Number(_0x251a29[_0xca125(0x1f5)]),'dbName':_0x39374e?.[_0xca125(0x1d4)],'sqlName':_0x251a29[_0xca125(0x1da)],'sqlConfig':_0x251a29['sqlConfig']??undefined,'mode':_0x112f0d};}export function cloneSqlLockData(_0x47c4d4){const _0x176023=a174_0x2155;return{'apps':Object[_0x176023(0x1dd)](Object[_0x176023(0x1f8)](_0x47c4d4['apps'])[_0x176023(0x1e7)](([_0x2410a6,_0x29206c])=>[_0x2410a6,{'sqlRoot':_0x29206c['sqlRoot'],'lastSync':_0x29206c[_0x176023(0x1e0)],'sqls':{..._0x29206c[_0x176023(0x1e4)]}}]))};}export function ensureRemoteSqlContent(_0x54af92){return _0x54af92['sqlContent']??'';}function a174_0x2155(_0x4ebd69,_0x3fc754){_0x4ebd69=_0x4ebd69-0x1d3;const _0x45eedb=a174_0x45ee();let _0x21556e=_0x45eedb[_0x4ebd69];return _0x21556e;}export function buildLocalSqlFileContent(_0x1c5010,_0x2b4ba8,_0x4be723){const _0x476b71=a174_0x2155,_0x5c16c1=_0x4be723?.['mode']??detectSqlMode(_0x2b4ba8),_0x39e853=stripLocalSqlMetadata(_0x2b4ba8,_0x5c16c1)[_0x476b71(0x1db)](),_0xe86567=[...buildMetadataHeaderLines({'sqlCode':_0x1c5010[_0x476b71(0x1ef)],'sqlName':_0x1c5010[_0x476b71(0x1da)],'dbId':_0x1c5010[_0x476b71(0x1f5)],'dbName':_0x4be723?.[_0x476b71(0x1d4)],'mode':_0x5c16c1,'syncedAt':_0x4be723?.[_0x476b71(0x1e6)],'description':_0x4be723?.[_0x476b71(0x1d8)]},_0x5c16c1),'',_0x39e853],_0x15b842=_0xe86567['join']('\x0a');return _0x15b842[_0x476b71(0x1dc)]('\x0a')?_0x15b842:_0x15b842+'\x0a';}export function stripLocalSqlMetadata(_0x503fcf,_0x1e8edd){const _0x2cfdfc=a174_0x2155,_0x5a9f48=_0x503fcf[_0x2cfdfc(0x1f1)](/\r\n/g,'\x0a')[_0x2cfdfc(0x1f4)]('\x0a'),_0x2aecef=[];let _0x4ad776=0x0;if(_0x1e8edd===_0x2cfdfc(0x1de))while(_0x4ad776<_0x5a9f48['length']){const _0x3dbc9b=_0x5a9f48[_0x4ad776]??'';if(/^\s*<!--\s*@lovrabet\./[_0x2cfdfc(0x1f3)](_0x3dbc9b)){_0x4ad776++;continue;}if(_0x3dbc9b[_0x2cfdfc(0x1db)]()===''&&_0x4ad776>0x0){_0x4ad776++;continue;}break;}else while(_0x4ad776<_0x5a9f48[_0x2cfdfc(0x1f7)]){const _0x502cfd=_0x5a9f48[_0x4ad776]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x502cfd)){_0x4ad776++;continue;}if(_0x502cfd[_0x2cfdfc(0x1db)]()===''&&_0x4ad776>0x0){_0x4ad776++;continue;}break;}for(;_0x4ad776<_0x5a9f48[_0x2cfdfc(0x1f7)];_0x4ad776++){_0x2aecef[_0x2cfdfc(0x1eb)](_0x5a9f48[_0x4ad776]);}return _0x2aecef[_0x2cfdfc(0x1d5)]('\x0a')[_0x2cfdfc(0x1fb)]();}export function resolveSqlMode(_0x75f7ee,_0x204c80){const _0x1b8dce=a174_0x2155;if(_0x204c80?.[_0x1b8dce(0x1ed)])return _0x204c80[_0x1b8dce(0x1ed)];return detectSqlMode(_0x75f7ee);}export function resolveSqlFileName(_0x10ee76,_0x31a4fa,_0x3b1ea){const _0x2b6f60=a174_0x2155;if(_0x3b1ea?.[_0x2b6f60(0x1d7)])return _0x3b1ea[_0x2b6f60(0x1d7)];if(_0x3b1ea?.[_0x2b6f60(0x1da)]||_0x3b1ea?.[_0x2b6f60(0x1d4)])return buildSqlRelativePath(_0x10ee76,_0x3b1ea?.[_0x2b6f60(0x1da)],_0x3b1ea?.[_0x2b6f60(0x1d4)],resolveSqlMode(_0x31a4fa,_0x3b1ea),_0x3b1ea?.[_0x2b6f60(0x1f5)]);return buildDefaultSqlFileName(_0x10ee76,resolveSqlMode(_0x31a4fa,_0x3b1ea));}export function resolveSqlLocalDir(_0x186402,_0x426f83){return join(_0x186402,SQL_LOCAL_REL_DIR,_0x426f83);}export async function confirmForceOverwrite(_0x5637d2){const _0x3d040d=a174_0x2155,_0x4e6bdd=createInterface({'input':process[_0x3d040d(0x1e3)],'output':process['stderr']}),_0x1ba44a=await new Promise(_0xcaded=>{const _0x5edbe9=_0x3d040d;_0x4e6bdd[_0x5edbe9(0x1e2)](_0x5637d2+'\x20[y/N]\x20',_0xcaded);});return _0x4e6bdd[_0x3d040d(0x1e5)](),['y','yes'][_0x3d040d(0x1d9)](_0x1ba44a[_0x3d040d(0x1db)]()[_0x3d040d(0x1fa)]());}export function findSqlLockScope(_0xf232b7,_0x3ad622){return _0xf232b7['apps'][_0x3ad622];}function buildMetadataHeaderLines(_0x273d51,_0x465e9f){const _0x2b7dbb=a174_0x2155,_0x41e6e7=[[_0x2b7dbb(0x1ef),_0x273d51[_0x2b7dbb(0x1ef)]],[_0x2b7dbb(0x1da),_0x273d51['sqlName']],[_0x2b7dbb(0x1f5),_0x273d51[_0x2b7dbb(0x1f5)]],['dbName',_0x273d51[_0x2b7dbb(0x1d4)]],[_0x2b7dbb(0x1ed),_0x273d51[_0x2b7dbb(0x1ed)]],[_0x2b7dbb(0x1e6),_0x273d51[_0x2b7dbb(0x1e6)]],[_0x2b7dbb(0x1d8),_0x273d51[_0x2b7dbb(0x1d8)]]];if(_0x465e9f==='mybatisXml')return _0x41e6e7[_0x2b7dbb(0x1e9)](([,_0x53d088])=>_0x53d088!==undefined&&_0x53d088!==null&&String(_0x53d088)[_0x2b7dbb(0x1db)]()!=='')[_0x2b7dbb(0x1e7)](([_0x10cf64,_0x4eb1f5])=>_0x2b7dbb(0x1ee)+_0x10cf64+':\x20'+String(_0x4eb1f5)+_0x2b7dbb(0x1f9));return _0x41e6e7['filter'](([,_0x227968])=>_0x227968!==undefined&&_0x227968!==null&&String(_0x227968)['trim']()!=='')[_0x2b7dbb(0x1e7)](([_0x3afa83,_0x4c417c])=>_0x2b7dbb(0x1d3)+_0x3afa83+':\x20'+String(_0x4c417c));}
@@ -1 +1 @@
1
- const a174_0x50fff7=a174_0x1a06;(function(_0x2283ba,_0x336f99){const _0x3d36b7=a174_0x1a06,_0x1b3cfe=_0x2283ba();while(!![]){try{const _0x1415d3=-parseInt(_0x3d36b7(0x132))/0x1*(parseInt(_0x3d36b7(0x153))/0x2)+parseInt(_0x3d36b7(0x133))/0x3+parseInt(_0x3d36b7(0x136))/0x4+parseInt(_0x3d36b7(0x14e))/0x5+-parseInt(_0x3d36b7(0x146))/0x6*(parseInt(_0x3d36b7(0x12e))/0x7)+parseInt(_0x3d36b7(0x14f))/0x8+parseInt(_0x3d36b7(0x151))/0x9*(-parseInt(_0x3d36b7(0x13e))/0xa);if(_0x1415d3===_0x336f99)break;else _0x1b3cfe['push'](_0x1b3cfe['shift']());}catch(_0x2925a2){_0x1b3cfe['push'](_0x1b3cfe['shift']());}}}(a174_0x13f0,0x47bfc));import{listSqlQueries}from'../../core/api-client.js';function a174_0x1a06(_0x687bc1,_0x3bbee8){_0x687bc1=_0x687bc1-0x12d;const _0x13f07d=a174_0x13f0();let _0x1a0653=_0x13f07d[_0x687bc1];return _0x1a0653;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a174_0x13f0(){const _0x7a7c43=['lockKey','remote','map','path','read','filePath','keys','336bJuJjI','hash','lockFilePath','\x20added,\x20','push','has','sqlRoot','paging','2776225OCDWvY','4187080CBCoXL','status','90etOwad','\x20remote-only','2QWQkzk','appCode','\x20missing,\x20','71855PUpYQK','tableData','relativePath','length','26989RvUokV','1162341OIAgnc','sqlName','All\x20SQL\x20queries\x20are\x20in\x20sync.','280184gWupIt','bool','sqlCode','boolean','totalCount','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','sqls','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','640410ibqKnc'];a174_0x13f0=function(){return _0x7a7c43;};return a174_0x13f0();}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(_0x339b16){const _0x1b1c7e=a174_0x1a06,_0x1275ca=[];let _0x1db037=0x1;while(!![]){const _0x403b94=await listSqlQueries(_0x339b16,{'currentPage':_0x1db037,'pageSize':PAGE_SIZE}),_0x581020=_0x403b94[_0x1b1c7e(0x12f)]??[];_0x1275ca[_0x1b1c7e(0x14a)](..._0x581020['map'](_0x68a4c2=>_0x68a4c2[_0x1b1c7e(0x138)]));if(_0x581020[_0x1b1c7e(0x131)]===0x0)break;const _0x42a1a2=_0x403b94[_0x1b1c7e(0x14d)]?.[_0x1b1c7e(0x13a)];if(_0x42a1a2!=null?_0x1275ca['length']>=_0x42a1a2:_0x581020[_0x1b1c7e(0x131)]<PAGE_SIZE)break;_0x1db037++;}return _0x1275ca;}export const sqlStatus={'service':'sql','command':a174_0x50fff7(0x150),'description':a174_0x50fff7(0x13d),'risk':a174_0x50fff7(0x143),'flags':[{'name':a174_0x50fff7(0x140),'type':a174_0x50fff7(0x139),'description':a174_0x50fff7(0x13b)}],async 'execute'(_0x165e7d){const _0x2aa3dd=a174_0x50fff7,_0x591717=loadSqlProjectConfig(_0x165e7d['appCode']),_0x35385d=await readSqlLockFile(_0x591717[_0x2aa3dd(0x148)]),{appLock:_0x412f5e}=ensureSqlLockScope(_0x35385d??createEmptySqlLock(),_0x591717['appCode'],_0x591717[_0x2aa3dd(0x14c)],_0x2aa3dd(0x150)),_0x5e482e=await scanLocalSqlQueries(_0x591717),_0x2a5098=[],_0x365d21=[],_0x5a0406=[],_0x1e494d=[],_0x41e5da=new Set(_0x5e482e[_0x2aa3dd(0x141)](_0x383661=>_0x383661[_0x2aa3dd(0x13f)]));for(const _0x447234 of _0x5e482e){const _0x4c81f3=await computeSqlFileHash(_0x447234[_0x2aa3dd(0x144)]),_0x422ebb=_0x412f5e[_0x2aa3dd(0x13c)][_0x447234[_0x2aa3dd(0x13f)]],_0x243b44=!!_0x422ebb&&_0x422ebb[_0x2aa3dd(0x142)]!==_0x447234[_0x2aa3dd(0x130)],_0x1b3f5b=!!_0x422ebb&&!!_0x447234[_0x2aa3dd(0x134)]&&_0x422ebb[_0x2aa3dd(0x134)]!==_0x447234['sqlName'];if(!_0x422ebb)_0x2a5098[_0x2aa3dd(0x14a)](_0x447234['lockKey']);else _0x422ebb[_0x2aa3dd(0x147)]!==_0x4c81f3||_0x243b44||_0x1b3f5b?_0x365d21[_0x2aa3dd(0x14a)](_0x447234['lockKey']):_0x5a0406[_0x2aa3dd(0x14a)](_0x447234[_0x2aa3dd(0x13f)]);}for(const _0x1e35a2 of Object[_0x2aa3dd(0x145)](_0x412f5e[_0x2aa3dd(0x13c)])){!_0x41e5da['has'](_0x1e35a2)&&_0x1e494d['push'](_0x1e35a2);}const _0x1d9605=[];if(_0x165e7d[_0x2aa3dd(0x137)]('remote')){const _0x558228=await fetchAllSqlCodes(_0x165e7d[_0x2aa3dd(0x154)]);for(const _0x4c2d94 of _0x558228){!_0x41e5da[_0x2aa3dd(0x14b)](_0x4c2d94)&&!_0x412f5e[_0x2aa3dd(0x13c)][_0x4c2d94]&&_0x1d9605[_0x2aa3dd(0x14a)](_0x4c2d94);}}const _0x15967a=_0x2a5098[_0x2aa3dd(0x131)]===0x0&&_0x365d21[_0x2aa3dd(0x131)]===0x0&&_0x1e494d[_0x2aa3dd(0x131)]===0x0&&_0x1d9605['length']===0x0;return{'ok':!![],'data':{'added':_0x2a5098,'modified':_0x365d21,'missing':_0x1e494d,'unchanged':_0x5a0406,'remoteOnly':_0x1d9605},'message':_0x15967a?_0x2aa3dd(0x135):_0x2a5098[_0x2aa3dd(0x131)]+_0x2aa3dd(0x149)+_0x365d21[_0x2aa3dd(0x131)]+'\x20modified,\x20'+_0x1e494d['length']+_0x2aa3dd(0x12d)+_0x5a0406['length']+'\x20unchanged'+(_0x1d9605[_0x2aa3dd(0x131)]>0x0?',\x20'+_0x1d9605[_0x2aa3dd(0x131)]+_0x2aa3dd(0x152):'')};}};
1
+ const a175_0x4c662c=a175_0x1ccb;(function(_0xc2ae42,_0x237a57){const _0x50ee85=a175_0x1ccb,_0x9dfbe1=_0xc2ae42();while(!![]){try{const _0x30cf7d=parseInt(_0x50ee85(0x1bd))/0x1*(-parseInt(_0x50ee85(0x1b3))/0x2)+parseInt(_0x50ee85(0x1c5))/0x3*(parseInt(_0x50ee85(0x1ac))/0x4)+-parseInt(_0x50ee85(0x1c8))/0x5+-parseInt(_0x50ee85(0x1c9))/0x6+-parseInt(_0x50ee85(0x1b6))/0x7+parseInt(_0x50ee85(0x1d0))/0x8*(-parseInt(_0x50ee85(0x1b4))/0x9)+parseInt(_0x50ee85(0x1bc))/0xa;if(_0x30cf7d===_0x237a57)break;else _0x9dfbe1['push'](_0x9dfbe1['shift']());}catch(_0x39b6f6){_0x9dfbe1['push'](_0x9dfbe1['shift']());}}}(a175_0x35c7,0xcfe21));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';function a175_0x35c7(){const _0x4d7b3e=['push','sqlCode','sql','paging','\x20remote-only','totalCount','3WyqDls','bool','keys','7880550YEKOaM','5714676wJNtvL','lockFilePath','All\x20SQL\x20queries\x20are\x20in\x20sync.','sqls','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','status','sqlRoot','8osmTcl','appCode','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','has','1755556uFgTNw','length','path','lockKey','\x20modified,\x20','\x20unchanged','hash','214874WvrFJN','9770481AGiRie','boolean','6071842DqmKnj','map','remote','\x20added,\x20','sqlName','\x20missing,\x20','51090450UCebmV','2UzLGps','read'];a175_0x35c7=function(){return _0x4d7b3e;};return a175_0x35c7();}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a175_0x1ccb(_0x5be776,_0x1fb541){_0x5be776=_0x5be776-0x1ac;const _0x35c785=a175_0x35c7();let _0x1ccb86=_0x35c785[_0x5be776];return _0x1ccb86;}async function fetchAllSqlCodes(_0x973ee3){const _0x5d77af=a175_0x1ccb,_0x20d67b=[];let _0x2aa51b=0x1;while(!![]){const _0x98bb4a=await listSqlQueries(_0x973ee3,{'currentPage':_0x2aa51b,'pageSize':PAGE_SIZE}),_0x30f314=_0x98bb4a['tableData']??[];_0x20d67b[_0x5d77af(0x1bf)](..._0x30f314['map'](_0xb7fb73=>_0xb7fb73[_0x5d77af(0x1c0)]));if(_0x30f314[_0x5d77af(0x1ad)]===0x0)break;const _0x3d1bf4=_0x98bb4a[_0x5d77af(0x1c2)]?.[_0x5d77af(0x1c4)];if(_0x3d1bf4!=null?_0x20d67b[_0x5d77af(0x1ad)]>=_0x3d1bf4:_0x30f314['length']<PAGE_SIZE)break;_0x2aa51b++;}return _0x20d67b;}export const sqlStatus={'service':a175_0x4c662c(0x1c1),'command':a175_0x4c662c(0x1ce),'description':a175_0x4c662c(0x1d2),'risk':a175_0x4c662c(0x1be),'flags':[{'name':a175_0x4c662c(0x1b8),'type':a175_0x4c662c(0x1b5),'description':a175_0x4c662c(0x1cd)}],async 'execute'(_0x5234b6){const _0x595ac3=a175_0x4c662c,_0x119d9d=loadSqlProjectConfig(_0x5234b6[_0x595ac3(0x1d1)]),_0x5a544d=await readSqlLockFile(_0x119d9d[_0x595ac3(0x1ca)]),{appLock:_0xc8f19c}=ensureSqlLockScope(_0x5a544d??createEmptySqlLock(),_0x119d9d[_0x595ac3(0x1d1)],_0x119d9d[_0x595ac3(0x1cf)],'status'),_0x10ce66=await scanLocalSqlQueries(_0x119d9d),_0x477b5e=[],_0x465adb=[],_0x1c0d00=[],_0x20a543=[],_0x4c773c=new Set(_0x10ce66[_0x595ac3(0x1b7)](_0x30a6e1=>_0x30a6e1[_0x595ac3(0x1af)]));for(const _0x2fe615 of _0x10ce66){const _0x42c2c4=await computeSqlFileHash(_0x2fe615['filePath']),_0x7fcd04=_0xc8f19c['sqls'][_0x2fe615[_0x595ac3(0x1af)]],_0x159aad=!!_0x7fcd04&&_0x7fcd04[_0x595ac3(0x1ae)]!==_0x2fe615['relativePath'],_0x5a5b26=!!_0x7fcd04&&!!_0x2fe615[_0x595ac3(0x1ba)]&&_0x7fcd04['sqlName']!==_0x2fe615[_0x595ac3(0x1ba)];if(!_0x7fcd04)_0x477b5e['push'](_0x2fe615[_0x595ac3(0x1af)]);else _0x7fcd04[_0x595ac3(0x1b2)]!==_0x42c2c4||_0x159aad||_0x5a5b26?_0x465adb[_0x595ac3(0x1bf)](_0x2fe615[_0x595ac3(0x1af)]):_0x1c0d00[_0x595ac3(0x1bf)](_0x2fe615['lockKey']);}for(const _0x2a1447 of Object[_0x595ac3(0x1c7)](_0xc8f19c[_0x595ac3(0x1cc)])){!_0x4c773c['has'](_0x2a1447)&&_0x20a543[_0x595ac3(0x1bf)](_0x2a1447);}const _0x20a0c2=[];if(_0x5234b6[_0x595ac3(0x1c6)]('remote')){const _0x568426=await fetchAllSqlCodes(_0x5234b6[_0x595ac3(0x1d1)]);for(const _0x13e017 of _0x568426){!_0x4c773c[_0x595ac3(0x1d3)](_0x13e017)&&!_0xc8f19c['sqls'][_0x13e017]&&_0x20a0c2[_0x595ac3(0x1bf)](_0x13e017);}}const _0x2a76c1=_0x477b5e['length']===0x0&&_0x465adb[_0x595ac3(0x1ad)]===0x0&&_0x20a543[_0x595ac3(0x1ad)]===0x0&&_0x20a0c2[_0x595ac3(0x1ad)]===0x0;return{'ok':!![],'data':{'added':_0x477b5e,'modified':_0x465adb,'missing':_0x20a543,'unchanged':_0x1c0d00,'remoteOnly':_0x20a0c2},'message':_0x2a76c1?_0x595ac3(0x1cb):_0x477b5e[_0x595ac3(0x1ad)]+_0x595ac3(0x1b9)+_0x465adb[_0x595ac3(0x1ad)]+_0x595ac3(0x1b0)+_0x20a543[_0x595ac3(0x1ad)]+_0x595ac3(0x1bb)+_0x1c0d00['length']+_0x595ac3(0x1b1)+(_0x20a0c2[_0x595ac3(0x1ad)]>0x0?',\x20'+_0x20a0c2[_0x595ac3(0x1ad)]+_0x595ac3(0x1c3):'')};}};
@@ -1 +1 @@
1
- const a175_0x20f94d=a175_0x1d0c;(function(_0x50ba7c,_0x42a05f){const _0x1da83d=a175_0x1d0c,_0x4a2b90=_0x50ba7c();while(!![]){try{const _0x1bc410=parseInt(_0x1da83d(0xa8))/0x1*(-parseInt(_0x1da83d(0x92))/0x2)+-parseInt(_0x1da83d(0xbd))/0x3+parseInt(_0x1da83d(0xb1))/0x4+-parseInt(_0x1da83d(0x89))/0x5*(parseInt(_0x1da83d(0x9d))/0x6)+-parseInt(_0x1da83d(0xb3))/0x7*(-parseInt(_0x1da83d(0xc2))/0x8)+-parseInt(_0x1da83d(0xaa))/0x9*(parseInt(_0x1da83d(0xbc))/0xa)+-parseInt(_0x1da83d(0xb7))/0xb*(-parseInt(_0x1da83d(0x8b))/0xc);if(_0x1bc410===_0x42a05f)break;else _0x4a2b90['push'](_0x4a2b90['shift']());}catch(_0x326d2b){_0x4a2b90['push'](_0x4a2b90['shift']());}}}(a175_0x2983,0x732cc));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{auditSqlJoinIndexes}from'../../core/sql-index-auditor.js';function a175_0x1d0c(_0x277d32,_0x23e684){_0x277d32=_0x277d32-0x84;const _0x298316=a175_0x2983();let _0x1d0c71=_0x298316[_0x277d32];return _0x1d0c71;}import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';function a175_0x2983(){const _0x21d11d=['File\x20not\x20found:\x20','index_columns','parameters','tableName','type','Dataset\x20\x22','check-indexes','validation','78cANgjK','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','isArray','map','length','pkField','find','push','read','string','flatMap','3fcJtSY','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','9sPCMMl','indexes','from','boolean','name','Table\x20\x22','Audit\x20top-level\x20JOIN\x20equality\x20predicates\x20against\x20dataset\x20index\x20metadata','2493644nfkQWH','cwd','4727653CDVmLI','sql','appCode','str','176cGYudo','schema:','filter','get','sqlType','3205330SHClho','287535eBoXla','toLowerCase','validate','isSelectOnly','valid','8OHYNfN','schemas','Provide\x20--file\x20or\x20--sql','columnNames','flagMissing','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','index_type','SQL\x20schema\x20validation','columns','isDangerous','primary','\x22\x20not\x20found\x20in\x20any\x20dataset','dataset','trim','154425OFRnVD','file','216132HxoYDo','reason','tables','dbtableConfig','message','split','fields','198218OaAPDx','bool','index_name'];a175_0x2983=function(){return _0x21d11d;};return a175_0x2983();}export const sqlValidate={'service':a175_0x20f94d(0xb4),'command':a175_0x20f94d(0xbf),'description':a175_0x20f94d(0xa9),'risk':a175_0x20f94d(0xa5),'flags':[{'name':a175_0x20f94d(0x8a),'type':a175_0x20f94d(0xa6),'description':a175_0x20f94d(0xc7)},{'name':a175_0x20f94d(0xb4),'type':a175_0x20f94d(0xa6),'description':a175_0x20f94d(0x9e)},{'name':a175_0x20f94d(0xc3),'type':a175_0x20f94d(0xa6),'description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'},{'name':a175_0x20f94d(0x9b),'type':a175_0x20f94d(0xad),'description':a175_0x20f94d(0xb0)}],async 'execute'(_0x7f47b8){const _0x497804=a175_0x20f94d,_0x1feaee=_0x7f47b8[_0x497804(0xb6)](_0x497804(0x8a)),_0x517255=_0x7f47b8[_0x497804(0xb6)]('sql'),_0x2f32be=_0x7f47b8[_0x497804(0xb6)](_0x497804(0xc3)),_0x3e918a=_0x7f47b8[_0x497804(0x93)]('check-indexes');if(!_0x1feaee&&!_0x517255)throw CliErrors[_0x497804(0xc6)](_0x497804(0x8a),_0x497804(0xc4));if(_0x3e918a&&!_0x2f32be)throw CliErrors[_0x497804(0x9c)]('--check-indexes\x20requires\x20--schemas.');let _0x2ebfc9;if(_0x1feaee){const _0x51bd92=resolve(process[_0x497804(0xb2)](),_0x1feaee);if(!existsSync(_0x51bd92))throw CliErrors['validation'](_0x497804(0x95)+_0x51bd92);_0x2ebfc9=readFileSync(_0x51bd92,'utf-8');}else _0x2ebfc9=_0x517255;const _0x52a255=validateSql(_0x2ebfc9),_0x2b729c={'valid':_0x52a255[_0x497804(0xc1)],'sqlType':_0x52a255[_0x497804(0xbb)][_0x497804(0x99)],'isSelectOnly':_0x52a255[_0x497804(0xbb)][_0x497804(0xc0)],'isDangerous':_0x52a255[_0x497804(0xbb)][_0x497804(0x84)],'tables':_0x52a255[_0x497804(0x8d)],'parameters':_0x52a255[_0x497804(0x97)],'message':_0x52a255[_0x497804(0x8f)]};_0x52a255[_0x497804(0xbb)]['reason']&&(_0x2b729c['reason']=_0x52a255['sqlType'][_0x497804(0x8c)]);if(_0x2f32be&&_0x52a255['valid']){const _0x3950ba=_0x2f32be[_0x497804(0x90)](',')[_0x497804(0xa0)](_0x55ec17=>_0x55ec17[_0x497804(0x88)]())[_0x497804(0xb9)](Boolean),_0x461e25=[],_0x510189=[],_0x443373=filterDbTableBackedDatasets(await listDatasets(_0x7f47b8[_0x497804(0xb5)])),_0x1f9b77=new Map(_0x443373[_0x497804(0xa0)](_0x421335=>[_0x421335['dbtableConfig']?.[_0x497804(0x98)]?.[_0x497804(0xbe)](),_0x421335]));for(const _0xf8dac0 of _0x52a255[_0x497804(0x8d)]){const _0x5c1196=_0x1f9b77[_0x497804(0xba)](_0xf8dac0[_0x497804(0xbe)]());!_0x5c1196&&_0x461e25[_0x497804(0xa4)](_0x497804(0xaf)+_0xf8dac0+_0x497804(0x86));}for(const _0x170792 of _0x3950ba){let _0x1962c7;try{_0x1962c7=await getDatasetDetail(_0x170792);}catch{_0x461e25[_0x497804(0xa4)](_0x497804(0x9a)+_0x170792+'\x22\x20not\x20found\x20or\x20not\x20accessible');continue;}assertDatasetIsDbTableBacked(_0x1962c7,_0x497804(0xc9));const _0x45cc3b=Array['isArray'](_0x1962c7[_0x497804(0x91)])?_0x1962c7[_0x497804(0x91)]:[],_0x187978=new Set(_0x45cc3b['map'](_0x490778=>_0x490778[_0x497804(0xae)]?.[_0x497804(0xbe)]())),_0x2667c2=_0x1962c7[_0x497804(0x8e)]?.[_0x497804(0x98)]||_0x1962c7[_0x497804(0x98)]||_0x170792;_0x2b729c[_0x497804(0xb8)+_0x2667c2]={'code':_0x170792,'tableName':_0x2667c2,'fieldCount':_0x187978['size'],'fields':Array[_0x497804(0xac)](_0x187978)};if(_0x3e918a){const _0xcefe23=normalizeDatasetIndexes(_0x1962c7);_0x510189['push']({'tableName':_0x2667c2,..._0xcefe23});}}_0x461e25[_0x497804(0xa1)]>0x0&&(_0x2b729c['schemaWarnings']=_0x461e25),_0x3e918a&&(_0x2b729c['joinAudit']=auditSqlJoinIndexes(_0x2ebfc9,_0x510189));}return{'ok':_0x52a255[_0x497804(0xc1)],'data':_0x2b729c,'message':_0x52a255[_0x497804(0x8f)]};}};function normalizeDatasetIndexes(_0x21c1c4){const _0x1c526d=a175_0x20f94d,_0x2646c7=Array[_0x1c526d(0x9f)](_0x21c1c4?.[_0x1c526d(0x87)]?.[_0x1c526d(0xab)])?_0x21c1c4[_0x1c526d(0x87)][_0x1c526d(0xab)]:Array[_0x1c526d(0x9f)](_0x21c1c4?.[_0x1c526d(0xab)])?_0x21c1c4[_0x1c526d(0xab)]:[],_0x3b7b01=_0x2646c7[_0x1c526d(0xa7)](_0x5eb1c2=>{const _0xcb1da6=_0x1c526d,_0x1e180c=Array[_0xcb1da6(0x9f)](_0x5eb1c2?.['index_columns'])?_0x5eb1c2[_0xcb1da6(0x96)]:Array[_0xcb1da6(0x9f)](_0x5eb1c2?.['columnNames'])?_0x5eb1c2[_0xcb1da6(0xc5)]:Array[_0xcb1da6(0x9f)](_0x5eb1c2?.[_0xcb1da6(0xca)])?_0x5eb1c2[_0xcb1da6(0xca)]:[],_0x2f6a41=_0x1e180c[_0xcb1da6(0xb9)](_0x123645=>typeof _0x123645==='string')['map'](_0x1d6367=>_0x1d6367['trim']())[_0xcb1da6(0xb9)](Boolean);if(_0x2f6a41[_0xcb1da6(0xa1)]===0x0)return[];const _0x16ba6b=[_0x5eb1c2?.['indexName'],_0x5eb1c2?.[_0xcb1da6(0x94)],_0x5eb1c2?.['name']]['find'](_0x19ef5e=>typeof _0x19ef5e==='string'&&_0x19ef5e['trim']()),_0x3093f7=[_0x5eb1c2?.[_0xcb1da6(0xc8)],_0x5eb1c2?.['type']][_0xcb1da6(0xa3)](_0x2d7161=>typeof _0x2d7161==='string'&&_0x2d7161[_0xcb1da6(0x88)]());return[{..._0x16ba6b?{'name':_0x16ba6b[_0xcb1da6(0x88)]()}:{},..._0x3093f7?{'type':_0x3093f7[_0xcb1da6(0x88)]()}:{},'columns':_0x2f6a41}];}),_0x41d333=[..._0x3b7b01],_0x34c074=typeof _0x21c1c4?.['dbtableConfig']?.[_0x1c526d(0xa2)]===_0x1c526d(0xa6)?_0x21c1c4[_0x1c526d(0x8e)][_0x1c526d(0xa2)][_0x1c526d(0x90)](',')[_0x1c526d(0xa0)](_0x2993f8=>_0x2993f8[_0x1c526d(0x88)]())[_0x1c526d(0xb9)](Boolean):[];return _0x34c074['length']>0x0&&_0x41d333['unshift']({'type':_0x1c526d(0x85),'columns':_0x34c074}),{'indexes':_0x41d333,'metadataAvailable':_0x3b7b01[_0x1c526d(0xa1)]>0x0};}
1
+ const a176_0x28f940=a176_0x841f;(function(_0x472536,_0x266faa){const _0x7ba4bf=a176_0x841f,_0x2f2b72=_0x472536();while(!![]){try{const _0xb635b6=parseInt(_0x7ba4bf(0x1e2))/0x1+parseInt(_0x7ba4bf(0x1bc))/0x2*(-parseInt(_0x7ba4bf(0x1d0))/0x3)+-parseInt(_0x7ba4bf(0x1ba))/0x4+parseInt(_0x7ba4bf(0x1b2))/0x5+-parseInt(_0x7ba4bf(0x1d2))/0x6*(-parseInt(_0x7ba4bf(0x1eb))/0x7)+-parseInt(_0x7ba4bf(0x1dd))/0x8*(parseInt(_0x7ba4bf(0x1b6))/0x9)+parseInt(_0x7ba4bf(0x1e1))/0xa;if(_0xb635b6===_0x266faa)break;else _0x2f2b72['push'](_0x2f2b72['shift']());}catch(_0x23148b){_0x2f2b72['push'](_0x2f2b72['shift']());}}}(a176_0x2f41,0xd3c25));import{readFileSync,existsSync}from'node:fs';function a176_0x841f(_0x38be66,_0x124e3e){_0x38be66=_0x38be66-0x1af;const _0x2f4117=a176_0x2f41();let _0x841f82=_0x2f4117[_0x38be66];return _0x841f82;}import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{auditSqlJoinIndexes}from'../../core/sql-index-auditor.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a176_0x28f940(0x1e7),'command':a176_0x28f940(0x1b4),'description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a176_0x28f940(0x1e5),'flags':[{'name':a176_0x28f940(0x1c0),'type':a176_0x28f940(0x1c3),'description':a176_0x28f940(0x1cf)},{'name':'sql','type':a176_0x28f940(0x1c3),'description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a176_0x28f940(0x1b5),'type':a176_0x28f940(0x1c3),'description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'},{'name':a176_0x28f940(0x1d4),'type':a176_0x28f940(0x1d9),'description':'Audit\x20top-level\x20JOIN\x20equality\x20predicates\x20against\x20dataset\x20index\x20metadata'}],async 'execute'(_0x41a5e4){const _0x175a1a=a176_0x28f940,_0x59587d=_0x41a5e4[_0x175a1a(0x1bf)](_0x175a1a(0x1c0)),_0x5bffa6=_0x41a5e4[_0x175a1a(0x1bf)](_0x175a1a(0x1e7)),_0x494a53=_0x41a5e4[_0x175a1a(0x1bf)](_0x175a1a(0x1b5)),_0xc36462=_0x41a5e4[_0x175a1a(0x1ee)](_0x175a1a(0x1d4));if(!_0x59587d&&!_0x5bffa6)throw CliErrors[_0x175a1a(0x1ec)](_0x175a1a(0x1c0),_0x175a1a(0x1ca));if(_0xc36462&&!_0x494a53)throw CliErrors[_0x175a1a(0x1db)](_0x175a1a(0x1e0));let _0x1bbed7;if(_0x59587d){const _0x5657d8=resolve(process[_0x175a1a(0x1cb)](),_0x59587d);if(!existsSync(_0x5657d8))throw CliErrors[_0x175a1a(0x1db)](_0x175a1a(0x1dc)+_0x5657d8);_0x1bbed7=readFileSync(_0x5657d8,_0x175a1a(0x1ea));}else _0x1bbed7=_0x5bffa6;const _0x361944=validateSql(_0x1bbed7),_0x4560ca={'valid':_0x361944[_0x175a1a(0x1df)],'sqlType':_0x361944[_0x175a1a(0x1e9)]['type'],'isSelectOnly':_0x361944[_0x175a1a(0x1e9)]['isSelectOnly'],'isDangerous':_0x361944[_0x175a1a(0x1e9)]['isDangerous'],'tables':_0x361944[_0x175a1a(0x1af)],'parameters':_0x361944[_0x175a1a(0x1e6)],'message':_0x361944[_0x175a1a(0x1b8)]};_0x361944[_0x175a1a(0x1e9)][_0x175a1a(0x1c1)]&&(_0x4560ca[_0x175a1a(0x1c1)]=_0x361944['sqlType']['reason']);if(_0x494a53&&_0x361944['valid']){const _0x3933f=_0x494a53[_0x175a1a(0x1cc)](',')[_0x175a1a(0x1de)](_0x42ba0e=>_0x42ba0e[_0x175a1a(0x1b9)]())[_0x175a1a(0x1e8)](Boolean),_0x4d59c1=[],_0x43244a=[],_0x3b208d=filterDbTableBackedDatasets(await listDatasets(_0x41a5e4['appCode'])),_0x54b54a=new Map(_0x3b208d[_0x175a1a(0x1de)](_0x34b3a2=>[_0x34b3a2[_0x175a1a(0x1c2)]?.['tableName']?.[_0x175a1a(0x1b1)](),_0x34b3a2]));for(const _0x2d459a of _0x361944['tables']){const _0x26464a=_0x54b54a['get'](_0x2d459a[_0x175a1a(0x1b1)]());!_0x26464a&&_0x4d59c1[_0x175a1a(0x1da)](_0x175a1a(0x1d3)+_0x2d459a+_0x175a1a(0x1b3));}for(const _0x5acba0 of _0x3933f){let _0x4ed51a;try{_0x4ed51a=await getDatasetDetail(_0x5acba0);}catch{_0x4d59c1['push'](_0x175a1a(0x1d6)+_0x5acba0+_0x175a1a(0x1d1));continue;}assertDatasetIsDbTableBacked(_0x4ed51a,_0x175a1a(0x1e3));const _0x28222e=Array['isArray'](_0x4ed51a['fields'])?_0x4ed51a['fields']:[],_0x490649=new Set(_0x28222e['map'](_0x292031=>_0x292031[_0x175a1a(0x1c8)]?.[_0x175a1a(0x1b1)]())),_0x1409e4=_0x4ed51a[_0x175a1a(0x1c2)]?.[_0x175a1a(0x1d8)]||_0x4ed51a['tableName']||_0x5acba0;_0x4560ca[_0x175a1a(0x1be)+_0x1409e4]={'code':_0x5acba0,'tableName':_0x1409e4,'fieldCount':_0x490649[_0x175a1a(0x1c7)],'fields':Array['from'](_0x490649)};if(_0xc36462){const _0x8fcd01=normalizeDatasetIndexes(_0x4ed51a);_0x43244a[_0x175a1a(0x1da)]({'tableName':_0x1409e4,..._0x8fcd01});}}_0x4d59c1[_0x175a1a(0x1c5)]>0x0&&(_0x4560ca[_0x175a1a(0x1bd)]=_0x4d59c1),_0xc36462&&(_0x4560ca[_0x175a1a(0x1c4)]=auditSqlJoinIndexes(_0x1bbed7,_0x43244a));}return{'ok':_0x361944[_0x175a1a(0x1df)],'data':_0x4560ca,'message':_0x361944[_0x175a1a(0x1b8)]};}};function normalizeDatasetIndexes(_0x4138d6){const _0x875664=a176_0x28f940,_0x4fc340=Array[_0x875664(0x1b0)](_0x4138d6?.[_0x875664(0x1ce)]?.['indexes'])?_0x4138d6['dataset']['indexes']:Array['isArray'](_0x4138d6?.[_0x875664(0x1e4)])?_0x4138d6['indexes']:[],_0x45e1f3=_0x4fc340[_0x875664(0x1c9)](_0x418549=>{const _0x1443c8=_0x875664,_0x45cb35=Array['isArray'](_0x418549?.['index_columns'])?_0x418549[_0x1443c8(0x1ed)]:Array['isArray'](_0x418549?.[_0x1443c8(0x1bb)])?_0x418549[_0x1443c8(0x1bb)]:Array[_0x1443c8(0x1b0)](_0x418549?.[_0x1443c8(0x1d7)])?_0x418549[_0x1443c8(0x1d7)]:[],_0x3613ae=_0x45cb35[_0x1443c8(0x1e8)](_0x34ff5e=>typeof _0x34ff5e===_0x1443c8(0x1c3))[_0x1443c8(0x1de)](_0x420ebe=>_0x420ebe[_0x1443c8(0x1b9)]())['filter'](Boolean);if(_0x3613ae[_0x1443c8(0x1c5)]===0x0)return[];const _0x596c26=[_0x418549?.['indexName'],_0x418549?.[_0x1443c8(0x1c6)],_0x418549?.[_0x1443c8(0x1c8)]][_0x1443c8(0x1cd)](_0x1e0115=>typeof _0x1e0115===_0x1443c8(0x1c3)&&_0x1e0115[_0x1443c8(0x1b9)]()),_0x437f76=[_0x418549?.['index_type'],_0x418549?.['type']][_0x1443c8(0x1cd)](_0x5a97d7=>typeof _0x5a97d7===_0x1443c8(0x1c3)&&_0x5a97d7[_0x1443c8(0x1b9)]());return[{..._0x596c26?{'name':_0x596c26[_0x1443c8(0x1b9)]()}:{},..._0x437f76?{'type':_0x437f76[_0x1443c8(0x1b9)]()}:{},'columns':_0x3613ae}];}),_0x2f68eb=[..._0x45e1f3],_0xcc42ec=typeof _0x4138d6?.[_0x875664(0x1c2)]?.[_0x875664(0x1d5)]==='string'?_0x4138d6[_0x875664(0x1c2)][_0x875664(0x1d5)][_0x875664(0x1cc)](',')['map'](_0x4502ad=>_0x4502ad[_0x875664(0x1b9)]())[_0x875664(0x1e8)](Boolean):[];return _0xcc42ec[_0x875664(0x1c5)]>0x0&&_0x2f68eb['unshift']({'type':_0x875664(0x1b7),'columns':_0xcc42ec}),{'indexes':_0x2f68eb,'metadataAvailable':_0x45e1f3['length']>0x0};}function a176_0x2f41(){const _0x4b2ce8=['check-indexes','pkField','Dataset\x20\x22','columns','tableName','boolean','push','validation','File\x20not\x20found:\x20','190888JoolQj','map','valid','--check-indexes\x20requires\x20--schemas.','25961490ylSsRY','1450051cStJAH','SQL\x20schema\x20validation','indexes','read','parameters','sql','filter','sqlType','utf-8','2171078YtgzIJ','flagMissing','index_columns','bool','tables','isArray','toLowerCase','3236725tCHWef','\x22\x20not\x20found\x20in\x20any\x20dataset','validate','schemas','297hAjQos','primary','message','trim','6869932DPmVYC','columnNames','1631438RZPCjJ','schemaWarnings','schema:','str','file','reason','dbtableConfig','string','joinAudit','length','index_name','size','name','flatMap','Provide\x20--file\x20or\x20--sql','cwd','split','find','dataset','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','6IsljhQ','\x22\x20not\x20found\x20or\x20not\x20accessible','6orNMCt','Table\x20\x22'];a176_0x2f41=function(){return _0x4b2ce8;};return a176_0x2f41();}
@@ -1 +1 @@
1
- function a176_0x5ae6(){const _0x25a144=['442xUtDoQ','369LkLNWY','53PtxAiA','18pMffUS','1368689UsOglA','1227174tNDkMG','500992Imetkn','18610lJnrWG','1660850BODGLY','4081EacgXP','9032OlgGUV'];a176_0x5ae6=function(){return _0x25a144;};return a176_0x5ae6();}(function(_0x461320,_0x141621){const _0x48bc3d=a176_0x11a6,_0x393ebf=_0x461320();while(!![]){try{const _0x95fdc3=-parseInt(_0x48bc3d(0xe3))/0x1*(-parseInt(_0x48bc3d(0xe1))/0x2)+-parseInt(_0x48bc3d(0xe2))/0x3*(-parseInt(_0x48bc3d(0xe0))/0x4)+parseInt(_0x48bc3d(0xde))/0x5+parseInt(_0x48bc3d(0xe6))/0x6+parseInt(_0x48bc3d(0xe5))/0x7+parseInt(_0x48bc3d(0xdc))/0x8*(-parseInt(_0x48bc3d(0xe4))/0x9)+-parseInt(_0x48bc3d(0xdd))/0xa*(parseInt(_0x48bc3d(0xdf))/0xb);if(_0x95fdc3===_0x141621)break;else _0x393ebf['push'](_0x393ebf['shift']());}catch(_0x49044f){_0x393ebf['push'](_0x393ebf['shift']());}}}(a176_0x5ae6,0x324aa));function a176_0x11a6(_0x264d7d,_0x306400){_0x264d7d=_0x264d7d-0xdc;const _0x5ae6db=a176_0x5ae6();let _0x11a618=_0x5ae6db[_0x264d7d];return _0x11a618;}import{taskStatus}from'../../commands/task/status.js';export const taskDefinitions=[taskStatus];
1
+ (function(_0x4f046e,_0x60b82b){const _0x4d7056=a177_0x2552,_0x5d0927=_0x4f046e();while(!![]){try{const _0x57bf61=-parseInt(_0x4d7056(0x1c2))/0x1*(parseInt(_0x4d7056(0x1bf))/0x2)+parseInt(_0x4d7056(0x1bc))/0x3+-parseInt(_0x4d7056(0x1bb))/0x4*(parseInt(_0x4d7056(0x1c4))/0x5)+-parseInt(_0x4d7056(0x1c0))/0x6+parseInt(_0x4d7056(0x1c1))/0x7*(-parseInt(_0x4d7056(0x1bd))/0x8)+parseInt(_0x4d7056(0x1be))/0x9+parseInt(_0x4d7056(0x1c3))/0xa;if(_0x57bf61===_0x60b82b)break;else _0x5d0927['push'](_0x5d0927['shift']());}catch(_0x4fc20b){_0x5d0927['push'](_0x5d0927['shift']());}}}(a177_0xb7cc,0x2c6a4));function a177_0x2552(_0x1848b6,_0x4f6ef2){_0x1848b6=_0x1848b6-0x1bb;const _0xb7cc9d=a177_0xb7cc();let _0x25527e=_0xb7cc9d[_0x1848b6];return _0x25527e;}import{taskStatus}from'../../commands/task/status.js';export const taskDefinitions=[taskStatus];function a177_0xb7cc(){const _0x22dd93=['5nHVYNP','539772FjkJwY','542316utXOpL','864oTSJad','2623014euxehW','7624HIkRtn','1171170kEZfsb','742iUlqpZ','3UvoYHw','627280jfBdzt'];a177_0xb7cc=function(){return _0x22dd93;};return a177_0xb7cc();}
@@ -1 +1 @@
1
- const a177_0x246d7c=a177_0x5477;(function(_0x6e4b9c,_0x3b48c7){const _0x8b56b8=a177_0x5477,_0x4ec46e=_0x6e4b9c();while(!![]){try{const _0x19fcd5=parseInt(_0x8b56b8(0xee))/0x1+parseInt(_0x8b56b8(0xdb))/0x2+-parseInt(_0x8b56b8(0xdf))/0x3*(-parseInt(_0x8b56b8(0xe4))/0x4)+-parseInt(_0x8b56b8(0xdc))/0x5*(-parseInt(_0x8b56b8(0xda))/0x6)+parseInt(_0x8b56b8(0xd9))/0x7*(parseInt(_0x8b56b8(0xe7))/0x8)+-parseInt(_0x8b56b8(0xe0))/0x9+-parseInt(_0x8b56b8(0xea))/0xa;if(_0x19fcd5===_0x3b48c7)break;else _0x4ec46e['push'](_0x4ec46e['shift']());}catch(_0x338c99){_0x4ec46e['push'](_0x4ec46e['shift']());}}}(a177_0x2a48,0x6a8e5));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asyncTaskMessage,buildAsyncTaskStatusCommand,normalizeAsyncTask}from'../../commands/common/async-task.js';function a177_0x5477(_0x5e190a,_0x2c4a30){_0x5e190a=_0x5e190a-0xd9;const _0x2a4871=a177_0x2a48();let _0x547709=_0x2a4871[_0x5e190a];return _0x547709;}import{getAsyncTaskStatus}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const taskStatus={'service':a177_0x246d7c(0xed),'command':a177_0x246d7c(0xdd),'description':'Query\x20an\x20asynchronous\x20task;\x20repeat\x20for\x20PENDING\x20or\x20PROCESSING\x20until\x20SUCCESS\x20or\x20FAILED','risk':a177_0x246d7c(0xe6),'defaultOutputFormat':a177_0x246d7c(0xe2),'structuredErrors':!![],'flags':[{'name':a177_0x246d7c(0xf1),'type':a177_0x246d7c(0xe9),'required':!![],'description':a177_0x246d7c(0xe1)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x147f02){const _0x269893=a177_0x246d7c;if(!_0x147f02[_0x269893(0xe5)]('task-id')[_0x269893(0xef)]())throw CliErrors[_0x269893(0xeb)](_0x269893(0xf1));},async 'execute'(_0x4ba05e){const _0x4a8dd4=a177_0x246d7c,_0x7dc610=_0x4ba05e[_0x4a8dd4(0xe5)](_0x4a8dd4(0xf1))[_0x4a8dd4(0xef)](),_0x48cff1=normalizeAsyncTask(await getAsyncTaskStatus(_0x7dc610,_0x4ba05e[_0x4a8dd4(0xe8)],_0x4ba05e['cookie']));if(_0x48cff1[_0x4a8dd4(0xe3)]!==_0x7dc610)throw CliErrors[_0x4a8dd4(0xec)]('Task\x20status\x20response\x20id\x20mismatch:\x20requested\x20'+_0x7dc610+_0x4a8dd4(0xde)+_0x48cff1[_0x4a8dd4(0xe3)]+'.');const _0x457756=buildAsyncTaskStatusCommand(_0x48cff1[_0x4a8dd4(0xe3)],_0x4ba05e[_0x4a8dd4(0xe8)]);return{'ok':!![],'message':asyncTaskMessage(_0x48cff1),'data':{'appCode':_0x4ba05e[_0x4a8dd4(0xe8)],..._0x48cff1,'query':_0x48cff1[_0x4a8dd4(0xf0)]?null:{'command':_0x457756}}};}};function a177_0x2a48(){const _0x4e0915=['read','16pZJOZM','appCode','string','7802170XUrfii','flagMissing','apiError','task','367916ilAgaN','trim','isTerminal','task-id','2141482Gapfpg','197238NEOKHr','1002062TWbPCW','35RDjZoI','status',',\x20received\x20','3CDQlJf','6163353HPiguq','Task\x20id\x20returned\x20by\x20an\x20asynchronous\x20platform\x20command','compress','taskId','762308dPDeGA','str'];a177_0x2a48=function(){return _0x4e0915;};return a177_0x2a48();}
1
+ const a178_0x6bdffe=a178_0x3b17;(function(_0xebae12,_0x3a6939){const _0x1d1dc9=a178_0x3b17,_0x672e05=_0xebae12();while(!![]){try{const _0x305874=-parseInt(_0x1d1dc9(0x1d8))/0x1+parseInt(_0x1d1dc9(0x1e8))/0x2+parseInt(_0x1d1dc9(0x1e0))/0x3+-parseInt(_0x1d1dc9(0x1e1))/0x4+parseInt(_0x1d1dc9(0x1e7))/0x5+parseInt(_0x1d1dc9(0x1e9))/0x6*(parseInt(_0x1d1dc9(0x1ec))/0x7)+-parseInt(_0x1d1dc9(0x1eb))/0x8;if(_0x305874===_0x3a6939)break;else _0x672e05['push'](_0x672e05['shift']());}catch(_0x4e1301){_0x672e05['push'](_0x672e05['shift']());}}}(a178_0x37fb,0xc75c4));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asyncTaskMessage,buildAsyncTaskStatusCommand,normalizeAsyncTask}from'../../commands/common/async-task.js';import{getAsyncTaskStatus}from'../../core/api-client.js';function a178_0x3b17(_0x36ff77,_0x482eda){_0x36ff77=_0x36ff77-0x1d7;const _0x37fbed=a178_0x37fb();let _0x3b17b0=_0x37fbed[_0x36ff77];return _0x3b17b0;}import{CliErrors}from'../../errors.js';function a178_0x37fb(){const _0x2ba41e=['2648202YByVQV','5467632mPJLRC','isTerminal','taskId','status',',\x20received\x20','task-id','7737220eeAwzJ','513800MxkXHG','174xAFCDK','apiError','1251472wvvbHw','120953oTAEQZ','cookie','848247LBqkkT','appCode','compress','trim','read','string','flagMissing','Task\x20id\x20returned\x20by\x20an\x20asynchronous\x20platform\x20command'];a178_0x37fb=function(){return _0x2ba41e;};return a178_0x37fb();}export const taskStatus={'service':'task','command':a178_0x6bdffe(0x1e4),'description':'Query\x20an\x20asynchronous\x20task;\x20repeat\x20for\x20PENDING\x20or\x20PROCESSING\x20until\x20SUCCESS\x20or\x20FAILED','risk':a178_0x6bdffe(0x1dc),'defaultOutputFormat':a178_0x6bdffe(0x1da),'structuredErrors':!![],'flags':[{'name':a178_0x6bdffe(0x1e6),'type':a178_0x6bdffe(0x1dd),'required':!![],'description':a178_0x6bdffe(0x1df)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x4be768){const _0x2a1e5f=a178_0x6bdffe;if(!_0x4be768['str']('task-id')['trim']())throw CliErrors[_0x2a1e5f(0x1de)](_0x2a1e5f(0x1e6));},async 'execute'(_0x52f16f){const _0x560717=a178_0x6bdffe,_0x1adb97=_0x52f16f['str'](_0x560717(0x1e6))[_0x560717(0x1db)](),_0x1a350c=normalizeAsyncTask(await getAsyncTaskStatus(_0x1adb97,_0x52f16f[_0x560717(0x1d9)],_0x52f16f[_0x560717(0x1d7)]));if(_0x1a350c[_0x560717(0x1e3)]!==_0x1adb97)throw CliErrors[_0x560717(0x1ea)]('Task\x20status\x20response\x20id\x20mismatch:\x20requested\x20'+_0x1adb97+_0x560717(0x1e5)+_0x1a350c['taskId']+'.');const _0x434a84=buildAsyncTaskStatusCommand(_0x1a350c[_0x560717(0x1e3)],_0x52f16f[_0x560717(0x1d9)]);return{'ok':!![],'message':asyncTaskMessage(_0x1a350c),'data':{'appCode':_0x52f16f[_0x560717(0x1d9)],..._0x1a350c,'query':_0x1a350c[_0x560717(0x1e2)]?null:{'command':_0x434a84}}};}};