@lovrabet/rabetbase-cli 2.4.2 → 2.4.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) 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/index.js +1 -1
  20. package/lib/commands/app/list.js +1 -1
  21. package/lib/commands/app/members-list.js +1 -1
  22. package/lib/commands/app/remote-directory.js +1 -1
  23. package/lib/commands/app/shared.js +1 -1
  24. package/lib/commands/app-config/delete.js +1 -1
  25. package/lib/commands/app-config/get.js +1 -1
  26. package/lib/commands/app-config/index.js +1 -1
  27. package/lib/commands/app-config/list.js +1 -1
  28. package/lib/commands/app-config/set.js +1 -1
  29. package/lib/commands/app-config/shared.js +1 -1
  30. package/lib/commands/auth/index.js +1 -1
  31. package/lib/commands/bff/create.js +1 -1
  32. package/lib/commands/bff/delete.js +1 -1
  33. package/lib/commands/bff/detail.js +1 -1
  34. package/lib/commands/bff/index.js +1 -1
  35. package/lib/commands/bff/list.js +1 -1
  36. package/lib/commands/bff/pull.js +1 -1
  37. package/lib/commands/bff/push.js +1 -1
  38. package/lib/commands/bff/status.js +1 -1
  39. package/lib/commands/cli-skill/index.js +1 -1
  40. package/lib/commands/cli-update.js +1 -1
  41. package/lib/commands/codegen/index.js +1 -1
  42. package/lib/commands/codegen/sdk.js +1 -1
  43. package/lib/commands/codegen/sql.js +1 -1
  44. package/lib/commands/common/app-registry.js +1 -1
  45. package/lib/commands/common/app-selector.js +1 -1
  46. package/lib/commands/common/async-task.js +1 -1
  47. package/lib/commands/common/dry-run.js +1 -1
  48. package/lib/commands/common/flags.js +1 -1
  49. package/lib/commands/common/local-file.js +1 -1
  50. package/lib/commands/common/validate.js +1 -1
  51. package/lib/commands/config/get.js +1 -1
  52. package/lib/commands/config/index.js +1 -1
  53. package/lib/commands/config/list.js +1 -1
  54. package/lib/commands/config/set.js +1 -1
  55. package/lib/commands/config/shared.js +1 -1
  56. package/lib/commands/data/filter.js +1 -1
  57. package/lib/commands/data/getOne.js +1 -1
  58. package/lib/commands/data/index.js +1 -1
  59. package/lib/commands/data/shared.js +1 -1
  60. package/lib/commands/dataset/business-group-update.js +1 -1
  61. package/lib/commands/dataset/capability.js +1 -1
  62. package/lib/commands/dataset/delete.js +1 -1
  63. package/lib/commands/dataset/detail.js +1 -1
  64. package/lib/commands/dataset/extend-update.js +1 -1
  65. package/lib/commands/dataset/field-update.js +1 -1
  66. package/lib/commands/dataset/generate.js +1 -1
  67. package/lib/commands/dataset/index.js +1 -1
  68. package/lib/commands/dataset/list.js +1 -1
  69. package/lib/commands/dataset/operations.js +1 -1
  70. package/lib/commands/dataset/relation-audit.js +1 -1
  71. package/lib/commands/dataset/relation-create.js +1 -1
  72. package/lib/commands/dataset/relation-delete.js +1 -1
  73. package/lib/commands/dataset/relation-shared.js +1 -1
  74. package/lib/commands/dataset/relation-update.js +1 -1
  75. package/lib/commands/dataset/relations.js +1 -1
  76. package/lib/commands/dataset/rename.js +1 -1
  77. package/lib/commands/dataset/restore.js +1 -1
  78. package/lib/commands/db/analysis-batching.js +1 -1
  79. package/lib/commands/db/analyze-batch-plan.js +1 -1
  80. package/lib/commands/db/analyze-cancel.js +1 -1
  81. package/lib/commands/db/analyze-start.js +1 -1
  82. package/lib/commands/db/analyze-status.js +1 -1
  83. package/lib/commands/db/create.js +1 -1
  84. package/lib/commands/db/delete.js +1 -1
  85. package/lib/commands/db/detail.js +1 -1
  86. package/lib/commands/db/diff.js +1 -1
  87. package/lib/commands/db/index.js +1 -1
  88. package/lib/commands/db/list.js +1 -1
  89. package/lib/commands/db/shared.js +1 -1
  90. package/lib/commands/db/tables.js +1 -1
  91. package/lib/commands/db/test.js +1 -1
  92. package/lib/commands/db/update.js +1 -1
  93. package/lib/commands/doctor.js +1 -1
  94. package/lib/commands/file/index.js +1 -1
  95. package/lib/commands/init/index.js +1 -1
  96. package/lib/commands/issue/index.js +1 -1
  97. package/lib/commands/issue/nudge.js +1 -1
  98. package/lib/commands/issue/report.js +1 -1
  99. package/lib/commands/issue/shared.js +1 -1
  100. package/lib/commands/kb/create.js +1 -1
  101. package/lib/commands/kb/delete.js +1 -1
  102. package/lib/commands/kb/detail.js +1 -1
  103. package/lib/commands/kb/index.js +1 -1
  104. package/lib/commands/kb/list.js +1 -1
  105. package/lib/commands/kb/shared.js +1 -1
  106. package/lib/commands/kb/update.js +1 -1
  107. package/lib/commands/logs/index.js +1 -1
  108. package/lib/commands/menu/asset-update.js +1 -1
  109. package/lib/commands/menu/delete.js +1 -1
  110. package/lib/commands/menu/external-link-create.js +1 -1
  111. package/lib/commands/menu/external-link-update.js +1 -1
  112. package/lib/commands/menu/group-create.js +1 -1
  113. package/lib/commands/menu/group-update.js +1 -1
  114. package/lib/commands/menu/index.js +1 -1
  115. package/lib/commands/menu/list.js +1 -1
  116. package/lib/commands/menu/move.js +1 -1
  117. package/lib/commands/menu/regroup-start.js +1 -1
  118. package/lib/commands/menu/rename.js +1 -1
  119. package/lib/commands/menu/shared/compare-table.js +1 -1
  120. package/lib/commands/menu/shared/delete-plan.js +1 -1
  121. package/lib/commands/menu/shared/facts.js +1 -1
  122. package/lib/commands/menu/shared/index.js +1 -1
  123. package/lib/commands/menu/shared/inquirer.js +1 -1
  124. package/lib/commands/menu/shared/local-pages.js +1 -1
  125. package/lib/commands/menu/shared/logic.js +1 -1
  126. package/lib/commands/menu/shared/mutations.js +1 -1
  127. package/lib/commands/menu/shared/service.js +1 -1
  128. package/lib/commands/menu/shared/sync-core.js +1 -1
  129. package/lib/commands/menu/shared/update-core.js +1 -1
  130. package/lib/commands/menu/shared/valid-url.js +1 -1
  131. package/lib/commands/menu/sync.js +1 -1
  132. package/lib/commands/notification/config-list.js +1 -1
  133. package/lib/commands/notification/index.js +1 -1
  134. package/lib/commands/ocr/index.js +1 -1
  135. package/lib/commands/page/generate-start.js +1 -1
  136. package/lib/commands/page/generate-status.js +1 -1
  137. package/lib/commands/page/index.js +1 -1
  138. package/lib/commands/page/pull.js +1 -1
  139. package/lib/commands/page/push.js +1 -1
  140. package/lib/commands/page/react/create.js +1 -1
  141. package/lib/commands/page/react/detail.js +1 -1
  142. package/lib/commands/page/react/list.js +1 -1
  143. package/lib/commands/page/react/publish.js +1 -1
  144. package/lib/commands/page/react/shared.js +1 -1
  145. package/lib/commands/page/react/syntax.js +1 -1
  146. package/lib/commands/page/react/template.js +1 -1
  147. package/lib/commands/page/react/update.js +1 -1
  148. package/lib/commands/page/relation-audit.js +1 -1
  149. package/lib/commands/page/restore.js +1 -1
  150. package/lib/commands/page/shared.js +1 -1
  151. package/lib/commands/page/standard-page-status.js +1 -1
  152. package/lib/commands/page/sync.js +1 -1
  153. package/lib/commands/permit/index.js +1 -1
  154. package/lib/commands/permit/page-get.js +1 -1
  155. package/lib/commands/permit/page-set.js +1 -1
  156. package/lib/commands/permit/role-apis-set.js +1 -1
  157. package/lib/commands/permit/role-menus-set.js +1 -1
  158. package/lib/commands/permit/role-menus.js +1 -1
  159. package/lib/commands/permit/shared.js +1 -1
  160. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  161. package/lib/commands/project/create/format-elapsed.js +1 -1
  162. package/lib/commands/project/create/main.js +1 -1
  163. package/lib/commands/project/create/non-interactive.js +1 -1
  164. package/lib/commands/project/create/project-template-path.js +1 -1
  165. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  166. package/lib/commands/project/create/use-format-code.js +1 -1
  167. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  168. package/lib/commands/project/index.js +1 -1
  169. package/lib/commands/project/upgrade.js +1 -1
  170. package/lib/commands/registry.js +1 -1
  171. package/lib/commands/role/create.js +1 -1
  172. package/lib/commands/role/delete.js +1 -1
  173. package/lib/commands/role/detail.js +1 -1
  174. package/lib/commands/role/index.js +1 -1
  175. package/lib/commands/role/list.js +1 -1
  176. package/lib/commands/role/shared.js +1 -1
  177. package/lib/commands/role/update.js +1 -1
  178. package/lib/commands/role/user-add.js +1 -1
  179. package/lib/commands/role/user-remove.js +1 -1
  180. package/lib/commands/role/user-resolve.js +1 -1
  181. package/lib/commands/run/index.js +1 -1
  182. package/lib/commands/schema.js +1 -1
  183. package/lib/commands/sql/create.js +1 -1
  184. package/lib/commands/sql/delete.js +1 -1
  185. package/lib/commands/sql/detail.js +1 -1
  186. package/lib/commands/sql/exec.js +1 -1
  187. package/lib/commands/sql/index.js +1 -1
  188. package/lib/commands/sql/list.js +1 -1
  189. package/lib/commands/sql/pull.js +1 -1
  190. package/lib/commands/sql/push.js +1 -1
  191. package/lib/commands/sql/shared.js +1 -1
  192. package/lib/commands/sql/status.js +1 -1
  193. package/lib/commands/sql/validate.js +1 -1
  194. package/lib/commands/task/index.js +1 -1
  195. package/lib/commands/task/status.js +1 -1
  196. package/lib/commands/tenant/index.js +1 -1
  197. package/lib/commands/tenant/members-list.js +1 -1
  198. package/lib/commands/tenant/shared.js +1 -1
  199. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  200. package/lib/commands/user-account/index.js +1 -1
  201. package/lib/commands/workspace/add.js +1 -1
  202. package/lib/commands/workspace/index.js +1 -1
  203. package/lib/commands/workspace/remove.js +1 -1
  204. package/lib/config/schema.js +1 -1
  205. package/lib/constant/cdn.js +1 -1
  206. package/lib/constant/cli.js +1 -1
  207. package/lib/constant/defaults.js +1 -1
  208. package/lib/constant/domain.js +1 -1
  209. package/lib/constant/env.js +1 -1
  210. package/lib/constant/output.js +1 -1
  211. package/lib/constant/paths.js +1 -1
  212. package/lib/constant/risk.js +1 -1
  213. package/lib/context/app-resolver.js +1 -1
  214. package/lib/context/auth-resolver.js +1 -1
  215. package/lib/context/config-loader.js +1 -1
  216. package/lib/context.js +1 -1
  217. package/lib/core/alias-resolver.js +1 -1
  218. package/lib/core/api-client.js +1 -1
  219. package/lib/core/bff/config.js +1 -1
  220. package/lib/core/bff/file-system.js +1 -1
  221. package/lib/core/bff/hash.js +1 -1
  222. package/lib/core/bff/lock.js +1 -1
  223. package/lib/core/bff/utils.js +1 -1
  224. package/lib/core/db-resolver.js +1 -1
  225. package/lib/core/page/file-system.js +1 -1
  226. package/lib/core/page/hash.js +1 -1
  227. package/lib/core/page/lock.js +1 -1
  228. package/lib/core/sql-index-auditor.js +1 -1
  229. package/lib/core/sql-sync/config.js +1 -1
  230. package/lib/core/sql-sync/file-system.js +1 -1
  231. package/lib/core/sql-sync/hash.js +1 -1
  232. package/lib/core/sql-sync/lock.js +1 -1
  233. package/lib/core/sql-sync/utils.js +1 -1
  234. package/lib/core/sql-validator.js +1 -1
  235. package/lib/errors.js +1 -1
  236. package/lib/framework/build-all-flags.js +1 -1
  237. package/lib/framework/error-output.js +1 -1
  238. package/lib/framework/explicit-yes.js +1 -1
  239. package/lib/framework/flags.js +1 -1
  240. package/lib/framework/help.js +1 -1
  241. package/lib/framework/index.js +1 -1
  242. package/lib/framework/output.js +1 -1
  243. package/lib/framework/response.js +1 -1
  244. package/lib/framework/runner-alias.js +1 -1
  245. package/lib/framework/runner.js +1 -1
  246. package/lib/framework/schema-export.js +1 -1
  247. package/lib/framework/types.js +1 -1
  248. package/lib/generated/build-info.d.ts +4 -4
  249. package/lib/generated/build-info.js +1 -1
  250. package/lib/help.js +1 -1
  251. package/lib/postinstall.js +1 -1
  252. package/lib/runtime/confirmation.js +1 -1
  253. package/lib/runtime/event.js +1 -1
  254. package/lib/runtime/index.js +1 -1
  255. package/lib/runtime/queue.js +1 -1
  256. package/lib/runtime/resolve.js +1 -1
  257. package/lib/skills/builtin-skill.js +1 -1
  258. package/lib/skills/main.js +1 -1
  259. package/lib/skills/npx-skills-add.js +1 -1
  260. package/lib/skills/skill-presence.js +1 -1
  261. package/lib/telemetry/cli-command-trace.js +1 -1
  262. package/lib/telemetry/cli-help-trace.js +1 -1
  263. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  264. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  265. package/lib/telemetry/send-cli-trace-log.js +1 -1
  266. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  267. package/lib/utils/ai_config.js +1 -1
  268. package/lib/utils/apply-jq-filter.js +1 -1
  269. package/lib/utils/cdn-config.js +1 -1
  270. package/lib/utils/check-sdk-version.js +1 -1
  271. package/lib/utils/cli-version-check.js +1 -1
  272. package/lib/utils/cli-version-policy.js +1 -1
  273. package/lib/utils/config.js +1 -1
  274. package/lib/utils/copy-directory.js +1 -1
  275. package/lib/utils/entity-with-id.js +1 -1
  276. package/lib/utils/file-utils.js +1 -1
  277. package/lib/utils/guides-cdn.js +1 -1
  278. package/lib/utils/http-client.js +1 -1
  279. package/lib/utils/is-non-interactive.js +1 -1
  280. package/lib/utils/logger.js +1 -1
  281. package/lib/utils/params.js +1 -1
  282. package/lib/utils/platform.js +1 -1
  283. package/lib/utils/rules-cdn.js +1 -1
  284. package/lib/utils/sleep.js +1 -1
  285. package/lib/utils/template-replacer.js +1 -1
  286. package/lib/utils/update-notice.js +1 -1
  287. package/lib/utils/version.js +1 -1
  288. package/lib/utils/with-active-cookie.js +1 -1
  289. package/lib/utils/write-cli-side-channel.js +1 -1
  290. package/package.json +8 -4
  291. package/skills/rabetbase/SKILL.md +1 -1
  292. package/skills/rabetbase.manifest.json +3 -3
@@ -1 +1 @@
1
- const a183_0x5858a8=a183_0xf945;(function(_0x466a1f,_0x34272a){const _0x243de1=a183_0xf945,_0x4c3aa6=_0x466a1f();while(!![]){try{const _0x247e5e=parseInt(_0x243de1(0x17f))/0x1*(parseInt(_0x243de1(0x15e))/0x2)+parseInt(_0x243de1(0x17b))/0x3*(-parseInt(_0x243de1(0x15a))/0x4)+-parseInt(_0x243de1(0x16e))/0x5*(-parseInt(_0x243de1(0x167))/0x6)+parseInt(_0x243de1(0x181))/0x7+-parseInt(_0x243de1(0x194))/0x8+parseInt(_0x243de1(0x170))/0x9*(parseInt(_0x243de1(0x19d))/0xa)+-parseInt(_0x243de1(0x197))/0xb*(parseInt(_0x243de1(0x189))/0xc);if(_0x247e5e===_0x34272a)break;else _0x4c3aa6['push'](_0x4c3aa6['shift']());}catch(_0xea3715){_0x4c3aa6['push'](_0x4c3aa6['shift']());}}}(a183_0x1bf3,0x6d150));function a183_0xf945(_0x312dd0,_0x4856a7){_0x312dd0=_0x312dd0-0x15a;const _0x1bf3b9=a183_0x1bf3();let _0xf94588=_0x1bf3b9[_0x312dd0];return _0xf94588;}import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x40148a){const _0x2d1e79=a183_0xf945;if(_0x40148a===_0x2d1e79(0x19b))return[_0x2d1e79(0x15b),_0x2d1e79(0x187),_0x2d1e79(0x168),''][_0x2d1e79(0x177)]('\x0a');return[_0x2d1e79(0x15c),''][_0x2d1e79(0x177)]('\x0a');}function a183_0x1bf3(){const _0x22959c=['string','sqlName','db-id','dbId','appCode','trim','flag','str','File\x20already\x20exists:\x20','4283760mGlaTv','mode','nonInteractive','242BOBGdr','map','lockFilePath','sqlCode','mybatisXml','请选择目标数据库:','110EItSZE','SQL\x20query\x20display\x20name','<server-generated-sqlCode>','/smartapi/custom/saveUserCustomSql','sqls','new','168voSHkt','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','SELECT\x201\x20AS\x20id;','lastSync','26LUccOd','dbId\x20必须为正整数','isInteger','toISOString','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','validation','length','Invalid\x20database\x20selection\x20payload:\x20','21570xmLksC','</select>','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','description','适合带动态标签的\x20MyBatis\x20XML\x20SQL','isFinite','stringify','915mNlCvW','create','449892fYubga','请输入\x20SQL\x20名称:','普通\x20SQL(sql)','sqlRoot','flagMissing','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','✎\x20手动输入\x20dbId','join','请输入目标数据库\x20dbId:','dbName','POST','35571EOkQUE','sql','dbId\x20不能为空','sqlRootDir','44045FZrivY','Created\x20SQL\x20query\x20','3954300uieYJu','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','number','parse','name','catch','\x20\x20SELECT\x201\x20AS\x20id','__manual__','471804AIxeDK','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally'];a183_0x1bf3=function(){return _0x22959c;};return a183_0x1bf3();}export const sqlCreate={'service':'sql','command':a183_0x5858a8(0x16f),'description':a183_0x5858a8(0x18a),'risk':'write','flags':[{'name':a183_0x5858a8(0x185),'type':a183_0x5858a8(0x18b),'description':a183_0x5858a8(0x19e)},{'name':a183_0x5858a8(0x18d),'type':a183_0x5858a8(0x183),'description':'Target\x20database\x20ID'},{'name':a183_0x5858a8(0x195),'type':a183_0x5858a8(0x18b),'enum':[a183_0x5858a8(0x17c),a183_0x5858a8(0x19b)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x1c3f09){const _0x364acd=a183_0x5858a8;if(!_0x1c3f09[_0x364acd(0x196)])return;if(!_0x1c3f09[_0x364acd(0x192)](_0x364acd(0x185))[_0x364acd(0x190)]())throw CliErrors[_0x364acd(0x174)](_0x364acd(0x185),_0x364acd(0x175));const _0x1979ff=resolveProvidedDbId(_0x1c3f09);if(typeof _0x1979ff!==_0x364acd(0x183)||!Number[_0x364acd(0x16c)](_0x1979ff)||_0x1979ff<=0x0)throw CliErrors['flagMissing'](_0x364acd(0x18d),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x1c3f09['str'](_0x364acd(0x195))[_0x364acd(0x190)]())throw CliErrors['flagMissing'](_0x364acd(0x195),_0x364acd(0x163));},async 'dryRun'(_0x418b02){const _0x151112=a183_0x5858a8,_0x369ab1=loadSqlProjectConfig(_0x418b02[_0x151112(0x18f)]),{sqlName:_0x4b742c,dbId:_0x2afac9,dbName:_0x24c17c,mode:_0x104d05}=await resolveSqlNewInputs(_0x418b02),_0x5e80be=buildSqlRelativePath(_0x151112(0x19f),_0x4b742c,_0x24c17c,_0x104d05,_0x2afac9),_0x2514f9=_0x369ab1[_0x151112(0x17e)]+'/'+_0x5e80be;return{'method':_0x151112(0x17a),'url':_0x151112(0x1a0),'body':{'appCode':_0x418b02['appCode'],'sqlName':_0x4b742c,'dbId':_0x2afac9,'mode':_0x104d05,'localPath':_0x2514f9},'description':_0x151112(0x162)+_0x369ab1[_0x151112(0x17e)]};},async 'execute'(_0x27630a){const _0x5a3ab6=a183_0x5858a8,_0x1164f5=loadSqlProjectConfig(_0x27630a[_0x5a3ab6(0x18f)]),{sqlName:_0x175ba6,dbId:_0x513232,dbName:_0x4fc8b6,mode:_0x41cfbf}=await resolveSqlNewInputs(_0x27630a),_0x3fc8a5=generateSqlTemplate(_0x41cfbf),_0x2ab7b2=await createSqlQuery({'appCode':_0x27630a[_0x5a3ab6(0x18f)],'sqlName':_0x175ba6,'dbId':_0x513232,'sqlContent':_0x3fc8a5}),_0x490565=ensureRemoteSqlContent(_0x2ab7b2),_0x39d8fe=_0x4fc8b6||await getDbName(_0x27630a[_0x5a3ab6(0x18f)],_0x513232)[_0x5a3ab6(0x186)](()=>undefined),_0x2d70ba=buildSqlRelativePath(_0x2ab7b2[_0x5a3ab6(0x19a)],_0x2ab7b2[_0x5a3ab6(0x18c)],_0x39d8fe,_0x41cfbf,_0x513232),_0x282bcd=_0x1164f5[_0x5a3ab6(0x17e)]+'/'+_0x2d70ba,_0x2a0077=buildLocalSqlFileContent({'sqlCode':_0x2ab7b2['sqlCode'],'sqlName':_0x2ab7b2[_0x5a3ab6(0x18c)],'dbId':_0x2ab7b2[_0x5a3ab6(0x18e)]},_0x490565,{'dbName':_0x39d8fe,'mode':_0x41cfbf,'syncedAt':new Date()[_0x5a3ab6(0x161)](),'description':_0x2ab7b2[_0x5a3ab6(0x16a)]});if(await fileExists(_0x282bcd))throw CliErrors[_0x5a3ab6(0x164)](_0x5a3ab6(0x193)+_0x282bcd);await ensureParentDirectory(_0x282bcd),await writeFile(_0x282bcd,_0x2a0077,'utf8');const _0x4e7142=await readSqlLockFile(_0x1164f5[_0x5a3ab6(0x199)]),{lockData:_0x3bbed8,appLock:_0x5ac157}=ensureSqlLockScope(_0x4e7142??createEmptySqlLock(),_0x1164f5[_0x5a3ab6(0x18f)],_0x1164f5[_0x5a3ab6(0x173)],_0x5a3ab6(0x1a2));return _0x5ac157[_0x5a3ab6(0x1a1)][_0x2ab7b2[_0x5a3ab6(0x19a)]]={...buildSqlLockEntry(_0x2ab7b2,_0x490565,computeSqlContentHash(_0x2a0077),{'dbName':_0x39d8fe}),'path':_0x2d70ba,'mode':_0x41cfbf},_0x5ac157[_0x5a3ab6(0x15d)]=new Date()[_0x5a3ab6(0x161)](),await writeSqlLockFile(_0x1164f5['lockFilePath'],_0x3bbed8),{'ok':!![],'data':{'id':_0x2ab7b2['id'],'sqlCode':_0x2ab7b2[_0x5a3ab6(0x19a)],'sqlName':_0x2ab7b2[_0x5a3ab6(0x18c)],'dbId':_0x2ab7b2['dbId'],'path':_0x282bcd,'mode':_0x41cfbf},'message':_0x5a3ab6(0x180)+_0x2ab7b2[_0x5a3ab6(0x19a)]};}};async function resolveSqlNewInputs(_0x53a6c4){const _0x46bfa9=await resolveSqlNameInput(_0x53a6c4),{dbId:_0x2f8c6f,dbName:_0x4aa093}=await resolveDbSelection(_0x53a6c4),_0x233b98=await resolveSqlModeInput(_0x53a6c4);return{'sqlName':_0x46bfa9,'dbId':_0x2f8c6f,'dbName':_0x4aa093,'mode':_0x233b98};}async function resolveSqlNameInput(_0x46cbf8){const _0x305ce8=a183_0x5858a8,_0x4231ce=_0x46cbf8[_0x305ce8(0x192)](_0x305ce8(0x185))[_0x305ce8(0x190)]();if(_0x4231ce)return _0x4231ce;if(_0x46cbf8['nonInteractive'])throw CliErrors['flagMissing']('name',_0x305ce8(0x175));return(await input({'message':_0x305ce8(0x171),'validate':_0x3c5890=>_0x3c5890[_0x305ce8(0x190)]()?!![]:'SQL\x20名称不能为空'}))[_0x305ce8(0x190)]();}async function resolveDbSelection(_0x207435){const _0x300258=a183_0x5858a8,_0x4cebc2=resolveProvidedDbId(_0x207435);if(typeof _0x4cebc2===_0x300258(0x183)&&Number[_0x300258(0x16c)](_0x4cebc2)&&_0x4cebc2>0x0)return{'dbId':_0x4cebc2,'dbName':await getDbName(_0x207435[_0x300258(0x18f)],_0x4cebc2)[_0x300258(0x186)](()=>undefined)};if(_0x207435['nonInteractive'])throw CliErrors[_0x300258(0x174)](_0x300258(0x18d),_0x300258(0x182));const _0x4e036b=await listDatabases(_0x207435[_0x300258(0x18f)])['catch'](()=>[]);if(_0x4e036b[_0x300258(0x165)]===0x1)return{'dbId':_0x4e036b[0x0][_0x300258(0x18e)],'dbName':_0x4e036b[0x0][_0x300258(0x179)]};if(_0x4e036b['length']>0x1){const _0x510846=await select({'message':_0x300258(0x19c),'choices':[..._0x4e036b[_0x300258(0x198)](_0x57dab4=>({'name':_0x57dab4['dbName']+'\x20('+_0x57dab4['dbId']+')','value':serializeDbSelection(_0x57dab4)})),{'name':_0x300258(0x176),'value':'__manual__'}]});if(_0x510846!==_0x300258(0x188))return deserializeDbSelection(_0x510846);}const _0x37ffca=await input({'message':_0x300258(0x178),'validate':_0x242137=>{const _0x5b0e26=_0x300258,_0x58090b=_0x242137[_0x5b0e26(0x190)]();if(!_0x58090b)return _0x5b0e26(0x17d);const _0x2f6a55=Number(_0x58090b);if(!Number[_0x5b0e26(0x160)](_0x2f6a55)||_0x2f6a55<=0x0)return _0x5b0e26(0x15f);return!![];}});return{'dbId':Number(_0x37ffca['trim']())};}async function resolveSqlModeInput(_0x2436af){const _0x2f7580=a183_0x5858a8,_0x5c4413=_0x2436af['str'](_0x2f7580(0x195))[_0x2f7580(0x190)]();if(_0x5c4413===_0x2f7580(0x17c)||_0x5c4413===_0x2f7580(0x19b))return _0x5c4413;if(_0x2436af[_0x2f7580(0x196)])throw CliErrors[_0x2f7580(0x174)](_0x2f7580(0x195),_0x2f7580(0x163));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x2f7580(0x172),'value':_0x2f7580(0x17c),'description':_0x2f7580(0x169)},{'name':'MyBatis\x20XML(mybatisXml)','value':'mybatisXml','description':_0x2f7580(0x16b)}]});}function serializeDbSelection(_0x286bd7){const _0xe69482=a183_0x5858a8;return JSON[_0xe69482(0x16d)]({'dbId':_0x286bd7[_0xe69482(0x18e)],'dbName':_0x286bd7[_0xe69482(0x179)]});}function deserializeDbSelection(_0x433106){const _0x27232f=a183_0x5858a8;try{const _0x5061f4=JSON[_0x27232f(0x184)](_0x433106);if(typeof _0x5061f4[_0x27232f(0x18e)]===_0x27232f(0x183)&&Number['isFinite'](_0x5061f4[_0x27232f(0x18e)]))return{'dbId':_0x5061f4[_0x27232f(0x18e)],'dbName':_0x5061f4['dbName']};}catch{}throw CliErrors[_0x27232f(0x164)](_0x27232f(0x166)+_0x433106);}function resolveProvidedDbId(_0x41005f){const _0x1f7f78=a183_0x5858a8,_0x58119b=_0x41005f[_0x1f7f78(0x191)](_0x1f7f78(0x18d));if(typeof _0x58119b===_0x1f7f78(0x183)&&Number['isFinite'](_0x58119b))return _0x58119b;return undefined;}
1
+ const a183_0x2d4931=a183_0x5729;(function(_0x11da34,_0x2cb730){const _0x2d22c8=a183_0x5729,_0x498f7f=_0x11da34();while(!![]){try{const _0x439e07=-parseInt(_0x2d22c8(0x1dc))/0x1*(parseInt(_0x2d22c8(0x1fd))/0x2)+parseInt(_0x2d22c8(0x1cb))/0x3*(-parseInt(_0x2d22c8(0x1f4))/0x4)+parseInt(_0x2d22c8(0x208))/0x5*(-parseInt(_0x2d22c8(0x205))/0x6)+-parseInt(_0x2d22c8(0x206))/0x7+parseInt(_0x2d22c8(0x1da))/0x8*(parseInt(_0x2d22c8(0x1e7))/0x9)+parseInt(_0x2d22c8(0x1e2))/0xa*(-parseInt(_0x2d22c8(0x1cf))/0xb)+parseInt(_0x2d22c8(0x1d3))/0xc;if(_0x439e07===_0x2cb730)break;else _0x498f7f['push'](_0x498f7f['shift']());}catch(_0x3aaf04){_0x498f7f['push'](_0x498f7f['shift']());}}}(a183_0x2f1b,0xa61d6));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x697af1){const _0x1bb9fd=a183_0x5729;if(_0x697af1===_0x1bb9fd(0x204))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x1bb9fd(0x1ef),_0x1bb9fd(0x20b),''][_0x1bb9fd(0x1f7)]('\x0a');return[_0x1bb9fd(0x1d0),''][_0x1bb9fd(0x1f7)]('\x0a');}function a183_0x5729(_0x1d04c5,_0x1585c5){_0x1d04c5=_0x1d04c5-0x1c8;const _0x2f1bfe=a183_0x2f1b();let _0x572938=_0x2f1bfe[_0x1d04c5];return _0x572938;}export const sqlCreate={'service':a183_0x2d4931(0x1cc),'command':a183_0x2d4931(0x1fe),'description':a183_0x2d4931(0x1d2),'risk':a183_0x2d4931(0x1d5),'flags':[{'name':a183_0x2d4931(0x20a),'type':a183_0x2d4931(0x1c8),'description':a183_0x2d4931(0x200)},{'name':a183_0x2d4931(0x1e0),'type':'number','description':a183_0x2d4931(0x1dd)},{'name':a183_0x2d4931(0x201),'type':'string','enum':[a183_0x2d4931(0x1cc),a183_0x2d4931(0x204)],'description':a183_0x2d4931(0x1d6)}],async 'validate'(_0x5e07eb){const _0x37499e=a183_0x2d4931;if(!_0x5e07eb[_0x37499e(0x1de)])return;if(!_0x5e07eb['str']('name')[_0x37499e(0x1e8)]())throw CliErrors[_0x37499e(0x1fa)](_0x37499e(0x20a),_0x37499e(0x1f5));const _0x18ae13=resolveProvidedDbId(_0x5e07eb);if(typeof _0x18ae13!==_0x37499e(0x1d7)||!Number[_0x37499e(0x1e4)](_0x18ae13)||_0x18ae13<=0x0)throw CliErrors[_0x37499e(0x1fa)](_0x37499e(0x1e0),_0x37499e(0x1f8));if(!_0x5e07eb[_0x37499e(0x1f6)]('mode')[_0x37499e(0x1e8)]())throw CliErrors['flagMissing']('mode',_0x37499e(0x1cd));},async 'dryRun'(_0x488fa6){const _0x4a2192=a183_0x2d4931,_0x5272ad=loadSqlProjectConfig(_0x488fa6[_0x4a2192(0x1d9)]),{sqlName:_0xb3a4d0,dbId:_0x107a54,dbName:_0x2afa2e,mode:_0x306d2f}=await resolveSqlNewInputs(_0x488fa6),_0xc860b8=buildSqlRelativePath('<server-generated-sqlCode>',_0xb3a4d0,_0x2afa2e,_0x306d2f,_0x107a54),_0x3cf391=_0x5272ad[_0x4a2192(0x1f1)]+'/'+_0xc860b8;return{'method':_0x4a2192(0x1ea),'url':_0x4a2192(0x1ee),'body':{'appCode':_0x488fa6[_0x4a2192(0x1d9)],'sqlName':_0xb3a4d0,'dbId':_0x107a54,'mode':_0x306d2f,'localPath':_0x3cf391},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x5272ad['sqlRootDir']};},async 'execute'(_0x21fda9){const _0x19c420=a183_0x2d4931,_0x14b17c=loadSqlProjectConfig(_0x21fda9['appCode']),{sqlName:_0x4de795,dbId:_0x196554,dbName:_0x52debb,mode:_0x1051ea}=await resolveSqlNewInputs(_0x21fda9),_0xb208a9=generateSqlTemplate(_0x1051ea),_0x2f4723=await createSqlQuery({'appCode':_0x21fda9['appCode'],'sqlName':_0x4de795,'dbId':_0x196554,'sqlContent':_0xb208a9}),_0x573e20=ensureRemoteSqlContent(_0x2f4723),_0x4715ea=_0x52debb||await getDbName(_0x21fda9[_0x19c420(0x1d9)],_0x196554)[_0x19c420(0x1ed)](()=>undefined),_0x4628ff=buildSqlRelativePath(_0x2f4723[_0x19c420(0x1d4)],_0x2f4723['sqlName'],_0x4715ea,_0x1051ea,_0x196554),_0x4f458c=_0x14b17c[_0x19c420(0x1f1)]+'/'+_0x4628ff,_0xfa1a7e=buildLocalSqlFileContent({'sqlCode':_0x2f4723['sqlCode'],'sqlName':_0x2f4723[_0x19c420(0x1c9)],'dbId':_0x2f4723['dbId']},_0x573e20,{'dbName':_0x4715ea,'mode':_0x1051ea,'syncedAt':new Date()[_0x19c420(0x1eb)](),'description':_0x2f4723[_0x19c420(0x1f2)]});if(await fileExists(_0x4f458c))throw CliErrors[_0x19c420(0x1e3)](_0x19c420(0x1e5)+_0x4f458c);await ensureParentDirectory(_0x4f458c),await writeFile(_0x4f458c,_0xfa1a7e,_0x19c420(0x1f0));const _0x41b81a=await readSqlLockFile(_0x14b17c['lockFilePath']),{lockData:_0x1318e4,appLock:_0x14ea85}=ensureSqlLockScope(_0x41b81a??createEmptySqlLock(),_0x14b17c[_0x19c420(0x1d9)],_0x14b17c[_0x19c420(0x207)],_0x19c420(0x20d));return _0x14ea85['sqls'][_0x2f4723[_0x19c420(0x1d4)]]={...buildSqlLockEntry(_0x2f4723,_0x573e20,computeSqlContentHash(_0xfa1a7e),{'dbName':_0x4715ea}),'path':_0x4628ff,'mode':_0x1051ea},_0x14ea85[_0x19c420(0x1e1)]=new Date()['toISOString'](),await writeSqlLockFile(_0x14b17c[_0x19c420(0x1f9)],_0x1318e4),{'ok':!![],'data':{'id':_0x2f4723['id'],'sqlCode':_0x2f4723[_0x19c420(0x1d4)],'sqlName':_0x2f4723[_0x19c420(0x1c9)],'dbId':_0x2f4723[_0x19c420(0x1fb)],'path':_0x4f458c,'mode':_0x1051ea},'message':'Created\x20SQL\x20query\x20'+_0x2f4723[_0x19c420(0x1d4)]};}};async function resolveSqlNewInputs(_0x5ec232){const _0x22309c=await resolveSqlNameInput(_0x5ec232),{dbId:_0x28287c,dbName:_0x3af80a}=await resolveDbSelection(_0x5ec232),_0x11fbaf=await resolveSqlModeInput(_0x5ec232);return{'sqlName':_0x22309c,'dbId':_0x28287c,'dbName':_0x3af80a,'mode':_0x11fbaf};}async function resolveSqlNameInput(_0x14fb02){const _0x4afec5=a183_0x2d4931,_0x590705=_0x14fb02[_0x4afec5(0x1f6)](_0x4afec5(0x20a))[_0x4afec5(0x1e8)]();if(_0x590705)return _0x590705;if(_0x14fb02['nonInteractive'])throw CliErrors[_0x4afec5(0x1fa)](_0x4afec5(0x20a),_0x4afec5(0x1f5));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x4eb17d=>_0x4eb17d[_0x4afec5(0x1e8)]()?!![]:_0x4afec5(0x1ec)}))[_0x4afec5(0x1e8)]();}async function resolveDbSelection(_0x1a0636){const _0x187050=a183_0x2d4931,_0x2da4a4=resolveProvidedDbId(_0x1a0636);if(typeof _0x2da4a4==='number'&&Number[_0x187050(0x1e4)](_0x2da4a4)&&_0x2da4a4>0x0)return{'dbId':_0x2da4a4,'dbName':await getDbName(_0x1a0636[_0x187050(0x1d9)],_0x2da4a4)[_0x187050(0x1ed)](()=>undefined)};if(_0x1a0636[_0x187050(0x1de)])throw CliErrors[_0x187050(0x1fa)]('db-id',_0x187050(0x1f8));const _0x36b377=await listDatabases(_0x1a0636[_0x187050(0x1d9)])[_0x187050(0x1ed)](()=>[]);if(_0x36b377[_0x187050(0x1f3)]===0x1)return{'dbId':_0x36b377[0x0][_0x187050(0x1fb)],'dbName':_0x36b377[0x0][_0x187050(0x1d8)]};if(_0x36b377[_0x187050(0x1f3)]>0x1){const _0x1760f4=await select({'message':_0x187050(0x1fc),'choices':[..._0x36b377['map'](_0x599e0b=>({'name':_0x599e0b[_0x187050(0x1d8)]+'\x20('+_0x599e0b[_0x187050(0x1fb)]+')','value':serializeDbSelection(_0x599e0b)})),{'name':_0x187050(0x1db),'value':_0x187050(0x203)}]});if(_0x1760f4!==_0x187050(0x203))return deserializeDbSelection(_0x1760f4);}const _0x4ceff6=await input({'message':_0x187050(0x1ff),'validate':_0x3929ec=>{const _0x4d624e=_0x187050,_0x2aa335=_0x3929ec[_0x4d624e(0x1e8)]();if(!_0x2aa335)return _0x4d624e(0x209);const _0x72114f=Number(_0x2aa335);if(!Number[_0x4d624e(0x1e9)](_0x72114f)||_0x72114f<=0x0)return _0x4d624e(0x1df);return!![];}});return{'dbId':Number(_0x4ceff6['trim']())};}async function resolveSqlModeInput(_0x388420){const _0x1e4423=a183_0x2d4931,_0x4e87d5=_0x388420['str'](_0x1e4423(0x201))[_0x1e4423(0x1e8)]();if(_0x4e87d5===_0x1e4423(0x1cc)||_0x4e87d5===_0x1e4423(0x204))return _0x4e87d5;if(_0x388420[_0x1e4423(0x1de)])throw CliErrors[_0x1e4423(0x1fa)](_0x1e4423(0x201),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x1e4423(0x20c),'value':_0x1e4423(0x1cc),'description':_0x1e4423(0x202)},{'name':_0x1e4423(0x1e6),'value':'mybatisXml','description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x19df51){const _0x3f5222=a183_0x2d4931;return JSON[_0x3f5222(0x1d1)]({'dbId':_0x19df51[_0x3f5222(0x1fb)],'dbName':_0x19df51[_0x3f5222(0x1d8)]});}function deserializeDbSelection(_0x357409){const _0x57b0be=a183_0x2d4931;try{const _0x331433=JSON[_0x57b0be(0x1ce)](_0x357409);if(typeof _0x331433[_0x57b0be(0x1fb)]===_0x57b0be(0x1d7)&&Number[_0x57b0be(0x1e4)](_0x331433['dbId']))return{'dbId':_0x331433['dbId'],'dbName':_0x331433[_0x57b0be(0x1d8)]};}catch{}throw CliErrors[_0x57b0be(0x1e3)](_0x57b0be(0x1ca)+_0x357409);}function resolveProvidedDbId(_0x425f96){const _0x286aba=a183_0x2d4931,_0x58b893=_0x425f96['flag'](_0x286aba(0x1e0));if(typeof _0x58b893==='number'&&Number[_0x286aba(0x1e4)](_0x58b893))return _0x58b893;return undefined;}function a183_0x2f1b(){const _0xddcbeb=['普通\x20SQL(sql)','new','string','sqlName','Invalid\x20database\x20selection\x20payload:\x20','1083252eozMXl','sql','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','parse','9611481CNEAeK','SELECT\x201\x20AS\x20id;','stringify','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','45325296OzAByB','sqlCode','write','Local\x20SQL\x20file\x20mode','number','dbName','appCode','416YQZRtV','✎\x20手动输入\x20dbId','5433QUPfWB','Target\x20database\x20ID','nonInteractive','dbId\x20必须为正整数','db-id','lastSync','10dnBFZp','validation','isFinite','File\x20already\x20exists:\x20','MyBatis\x20XML(mybatisXml)','216CgaBwd','trim','isInteger','POST','toISOString','SQL\x20名称不能为空','catch','/smartapi/custom/saveUserCustomSql','\x20\x20SELECT\x201\x20AS\x20id','utf8','sqlRootDir','description','length','4pziBDO','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','str','join','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','lockFilePath','flagMissing','dbId','请选择目标数据库:','54HdnLqR','create','请输入目标数据库\x20dbId:','SQL\x20query\x20display\x20name','mode','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','__manual__','mybatisXml','1726242JRqMnV','5972981JDveWK','sqlRoot','15uiLwMo','dbId\x20不能为空','name','</select>'];a183_0x2f1b=function(){return _0xddcbeb;};return a183_0x2f1b();}
@@ -1 +1 @@
1
- const a184_0x52093b=a184_0x5ce8;(function(_0x591c5f,_0x320999){const _0x4f6f2c=a184_0x5ce8,_0x5dc756=_0x591c5f();while(!![]){try{const _0x4f5e88=parseInt(_0x4f6f2c(0x163))/0x1+-parseInt(_0x4f6f2c(0x150))/0x2*(parseInt(_0x4f6f2c(0x15f))/0x3)+parseInt(_0x4f6f2c(0x15b))/0x4+parseInt(_0x4f6f2c(0x166))/0x5+-parseInt(_0x4f6f2c(0x169))/0x6*(-parseInt(_0x4f6f2c(0x151))/0x7)+-parseInt(_0x4f6f2c(0x15e))/0x8+-parseInt(_0x4f6f2c(0x162))/0x9*(parseInt(_0x4f6f2c(0x15a))/0xa);if(_0x4f5e88===_0x320999)break;else _0x5dc756['push'](_0x5dc756['shift']());}catch(_0x4022e9){_0x5dc756['push'](_0x5dc756['shift']());}}}(a184_0x4826,0x6952c));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a184_0x5ce8(_0x2bf7f2,_0x50901c){_0x2bf7f2=_0x2bf7f2-0x14a;const _0x4826a7=a184_0x4826();let _0x5ce8b1=_0x4826a7[_0x2bf7f2];return _0x5ce8b1;}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a184_0x52093b(0x14e),'command':'delete','description':a184_0x52093b(0x159),'risk':a184_0x52093b(0x16e),'flags':[SQLCODE_FLAG],async 'validate'(_0x5216a4){const _0x493547=a184_0x52093b,_0x5a5808=loadSqlProjectConfig(_0x5216a4[_0x493547(0x152)]),_0x7dd726=await readSqlLockFile(_0x5a5808[_0x493547(0x16b)]);if(!_0x7dd726)throw CliErrors['validation'](_0x493547(0x14a));},async 'dryRun'(_0x2d7367){const _0x4d4200=a184_0x52093b,_0x50a722=loadSqlProjectConfig(_0x2d7367['appCode']),_0x5d8386=await readSqlLockFile(_0x50a722['lockFilePath']);if(!_0x5d8386)throw CliErrors[_0x4d4200(0x14d)](_0x4d4200(0x14a));const {appLock:_0x2e1131}=ensureSqlLockScope(_0x5d8386,_0x2d7367['appCode'],_0x50a722[_0x4d4200(0x158)],'delete'),_0x59bcca=_0x2d7367[_0x4d4200(0x14c)](_0x4d4200(0x164)),_0x37cd13=_0x2e1131[_0x4d4200(0x153)][_0x59bcca];if(!_0x37cd13)throw CliErrors[_0x4d4200(0x14d)](_0x4d4200(0x14f)+_0x59bcca+'\x22.');return{'method':_0x4d4200(0x15c),'url':_0x4d4200(0x157),'body':{'sqlCode':_0x59bcca,'id':_0x37cd13[_0x4d4200(0x156)],'localPath':resolveLocalSqlFilePath(_0x50a722,_0x59bcca,_0x37cd13)},'description':'Would\x20delete\x20SQL\x20'+_0x59bcca+_0x4d4200(0x161)+_0x50a722[_0x4d4200(0x167)]};},async 'execute'(_0x40d6c1){const _0x1a56e8=a184_0x52093b,_0x111dcd=loadSqlProjectConfig(_0x40d6c1[_0x1a56e8(0x152)]),_0x14b26e=await readSqlLockFile(_0x111dcd[_0x1a56e8(0x16b)]);if(!_0x14b26e)throw CliErrors['validation'](_0x1a56e8(0x15d));const {lockData:_0x50992c,appLock:_0x117398}=ensureSqlLockScope(_0x14b26e,_0x40d6c1[_0x1a56e8(0x152)],_0x111dcd[_0x1a56e8(0x158)],'delete'),_0x2b099c=_0x40d6c1[_0x1a56e8(0x14c)]('sqlcode'),_0x53ff93=_0x117398[_0x1a56e8(0x153)][_0x2b099c];if(!_0x53ff93)throw CliErrors[_0x1a56e8(0x14d)](_0x1a56e8(0x14f)+_0x2b099c+'\x22.');await deleteSqlQuery({'id':_0x53ff93[_0x1a56e8(0x156)],'sqlCode':_0x2b099c}),_0x117398[_0x1a56e8(0x153)]=Object['fromEntries'](Object[_0x1a56e8(0x168)](_0x117398[_0x1a56e8(0x153)])[_0x1a56e8(0x165)](([_0x586c93])=>_0x586c93!==_0x2b099c)),_0x117398['lastSync']=new Date()[_0x1a56e8(0x14b)](),await writeSqlLockFile(_0x111dcd[_0x1a56e8(0x16b)],_0x50992c);const _0x1bb3af=resolveLocalSqlFilePath(_0x111dcd,_0x2b099c,_0x53ff93);let _0x18440d;await fileExists(_0x1bb3af)&&(_0x18440d=await moveToTrash(_0x111dcd[_0x1a56e8(0x155)],_0x111dcd['trashDir'],_0x1bb3af),await cleanupEmptyDirectories(dirname(_0x1bb3af),_0x111dcd[_0x1a56e8(0x16c)]));const _0x371ac0={'deleted':_0x2b099c,'remoteId':_0x53ff93['remoteId']};if(_0x18440d)_0x371ac0[_0x1a56e8(0x16a)]=_0x18440d;return{'ok':!![],'data':_0x371ac0,'message':'Deleted\x20'+_0x2b099c+(_0x18440d?_0x1a56e8(0x154):'')};}};async function moveToTrash(_0x3454d9,_0x4f99b7,_0x5478d2){const _0x41409b=a184_0x52093b,_0x139964=new Date()['toISOString']()[_0x41409b(0x160)](/[:.]/g,'-'),_0x2b0daa=relative(_0x3454d9,_0x5478d2),_0x2dda4f=join(_0x4f99b7,_0x139964,_0x2b0daa);return await mkdir(dirname(_0x2dda4f),{'recursive':!![]}),await rename(_0x5478d2,_0x2dda4f),_0x2dda4f;}function a184_0x4826(){const _0x2f7ab3=['trashDir','entries','7530zQUVeT','trashedTo','lockFilePath','sqlRootDir','startsWith','high-risk-write','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','toISOString','str','validation','sql','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','915892DBpybd','2891HDvLAN','appCode','sqls','\x20(local\x20file\x20moved\x20to\x20trash)','projectRoot','remoteId','/smartapi/custom/deleteUserCustomSql','sqlRoot','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','91300fnDyOv','1174536qNyfiV','POST','SQL\x20lock\x20file\x20not\x20found.','1916200uKLcgT','3xHENQY','replace','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','117rsGzDr','355850ZZgRIs','sqlcode','filter','398830zmGzuC'];a184_0x4826=function(){return _0x2f7ab3;};return a184_0x4826();}async function cleanupEmptyDirectories(_0x4d2843,_0x5862f7){const _0x4d7616=a184_0x52093b;let _0x55c9ea=resolve(_0x4d2843);const _0x43fc8b=resolve(_0x5862f7);while(_0x55c9ea[_0x4d7616(0x16d)](''+_0x43fc8b+sep)||_0x55c9ea===_0x43fc8b){if(_0x55c9ea===_0x43fc8b)return;try{const _0x35870e=await readdir(_0x55c9ea);if(_0x35870e['length']>0x0)return;await rmdir(_0x55c9ea);}catch{return;}_0x55c9ea=dirname(_0x55c9ea);}}
1
+ const a184_0x11db02=a184_0x5760;(function(_0x4bf2c2,_0x483718){const _0x10fe6e=a184_0x5760,_0x49e8c8=_0x4bf2c2();while(!![]){try{const _0x5c0181=-parseInt(_0x10fe6e(0x163))/0x1+-parseInt(_0x10fe6e(0x165))/0x2*(-parseInt(_0x10fe6e(0x172))/0x3)+parseInt(_0x10fe6e(0x184))/0x4+parseInt(_0x10fe6e(0x166))/0x5*(-parseInt(_0x10fe6e(0x16a))/0x6)+-parseInt(_0x10fe6e(0x183))/0x7+-parseInt(_0x10fe6e(0x162))/0x8+parseInt(_0x10fe6e(0x167))/0x9*(-parseInt(_0x10fe6e(0x160))/0xa);if(_0x5c0181===_0x483718)break;else _0x49e8c8['push'](_0x49e8c8['shift']());}catch(_0x5284c3){_0x49e8c8['push'](_0x49e8c8['shift']());}}}(a184_0xee5a,0x23273));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a184_0xee5a(){const _0x2821bf=['743164ifPsiK','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','length','660290fPTaXL','remoteId','919920hsIRQu','49575NGQnPy','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','569744AFPlpq','71885ubGIdp','9DtEAxl','lastSync','sqlcode','12EXgthT','toISOString','delete','sqls','str','fromEntries','Would\x20delete\x20SQL\x20','sqlRoot','3VQvRnE','trashDir','/smartapi/custom/deleteUserCustomSql','SQL\x20lock\x20file\x20not\x20found.','Deleted\x20','sql','lockFilePath','filter','appCode','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','high-risk-write','\x20(local\x20file\x20moved\x20to\x20trash)','entries','validation','sqlRootDir','projectRoot','startsWith','471296yReKLz'];a184_0xee5a=function(){return _0x2821bf;};return a184_0xee5a();}import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';function a184_0x5760(_0x21e834,_0x2a7384){_0x21e834=_0x21e834-0x15f;const _0xee5a47=a184_0xee5a();let _0x5760eb=_0xee5a47[_0x21e834];return _0x5760eb;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a184_0x11db02(0x177),'command':a184_0x11db02(0x16c),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a184_0x11db02(0x17c),'flags':[SQLCODE_FLAG],async 'validate'(_0x493ead){const _0x22218f=a184_0x11db02,_0x49a9b9=loadSqlProjectConfig(_0x493ead[_0x22218f(0x17a)]),_0x2ec55b=await readSqlLockFile(_0x49a9b9[_0x22218f(0x178)]);if(!_0x2ec55b)throw CliErrors[_0x22218f(0x17f)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x442bfa){const _0x2d8069=a184_0x11db02,_0x421ab9=loadSqlProjectConfig(_0x442bfa['appCode']),_0x442f6e=await readSqlLockFile(_0x421ab9[_0x2d8069(0x178)]);if(!_0x442f6e)throw CliErrors[_0x2d8069(0x17f)](_0x2d8069(0x17b));const {appLock:_0x515486}=ensureSqlLockScope(_0x442f6e,_0x442bfa[_0x2d8069(0x17a)],_0x421ab9[_0x2d8069(0x171)],_0x2d8069(0x16c)),_0x5b6ca0=_0x442bfa['str'](_0x2d8069(0x169)),_0x439ec5=_0x515486[_0x2d8069(0x16d)][_0x5b6ca0];if(!_0x439ec5)throw CliErrors['validation'](_0x2d8069(0x164)+_0x5b6ca0+'\x22.');return{'method':'POST','url':_0x2d8069(0x174),'body':{'sqlCode':_0x5b6ca0,'id':_0x439ec5['remoteId'],'localPath':resolveLocalSqlFilePath(_0x421ab9,_0x5b6ca0,_0x439ec5)},'description':_0x2d8069(0x170)+_0x5b6ca0+_0x2d8069(0x185)+_0x421ab9[_0x2d8069(0x173)]};},async 'execute'(_0x3b7e48){const _0xcd6629=a184_0x11db02,_0x5724e6=loadSqlProjectConfig(_0x3b7e48[_0xcd6629(0x17a)]),_0x39b9de=await readSqlLockFile(_0x5724e6['lockFilePath']);if(!_0x39b9de)throw CliErrors[_0xcd6629(0x17f)](_0xcd6629(0x175));const {lockData:_0x4b8d8c,appLock:_0x52705f}=ensureSqlLockScope(_0x39b9de,_0x3b7e48[_0xcd6629(0x17a)],_0x5724e6[_0xcd6629(0x171)],_0xcd6629(0x16c)),_0x9ed9fb=_0x3b7e48[_0xcd6629(0x16e)](_0xcd6629(0x169)),_0x55562e=_0x52705f[_0xcd6629(0x16d)][_0x9ed9fb];if(!_0x55562e)throw CliErrors[_0xcd6629(0x17f)](_0xcd6629(0x164)+_0x9ed9fb+'\x22.');await deleteSqlQuery({'id':_0x55562e[_0xcd6629(0x161)],'sqlCode':_0x9ed9fb}),_0x52705f['sqls']=Object[_0xcd6629(0x16f)](Object[_0xcd6629(0x17e)](_0x52705f[_0xcd6629(0x16d)])[_0xcd6629(0x179)](([_0x127f13])=>_0x127f13!==_0x9ed9fb)),_0x52705f[_0xcd6629(0x168)]=new Date()[_0xcd6629(0x16b)](),await writeSqlLockFile(_0x5724e6[_0xcd6629(0x178)],_0x4b8d8c);const _0x3a3a50=resolveLocalSqlFilePath(_0x5724e6,_0x9ed9fb,_0x55562e);let _0xf3d05d;await fileExists(_0x3a3a50)&&(_0xf3d05d=await moveToTrash(_0x5724e6[_0xcd6629(0x181)],_0x5724e6['trashDir'],_0x3a3a50),await cleanupEmptyDirectories(dirname(_0x3a3a50),_0x5724e6[_0xcd6629(0x180)]));const _0x57e63c={'deleted':_0x9ed9fb,'remoteId':_0x55562e[_0xcd6629(0x161)]};if(_0xf3d05d)_0x57e63c['trashedTo']=_0xf3d05d;return{'ok':!![],'data':_0x57e63c,'message':_0xcd6629(0x176)+_0x9ed9fb+(_0xf3d05d?_0xcd6629(0x17d):'')};}};async function moveToTrash(_0x5f4147,_0x54d4ce,_0x42454c){const _0x3ef095=new Date()['toISOString']()['replace'](/[:.]/g,'-'),_0xf1ea08=relative(_0x5f4147,_0x42454c),_0x55a40b=join(_0x54d4ce,_0x3ef095,_0xf1ea08);return await mkdir(dirname(_0x55a40b),{'recursive':!![]}),await rename(_0x42454c,_0x55a40b),_0x55a40b;}async function cleanupEmptyDirectories(_0x26c123,_0x1b42f7){const _0xf355d1=a184_0x11db02;let _0x158fa5=resolve(_0x26c123);const _0x1f0b19=resolve(_0x1b42f7);while(_0x158fa5[_0xf355d1(0x182)](''+_0x1f0b19+sep)||_0x158fa5===_0x1f0b19){if(_0x158fa5===_0x1f0b19)return;try{const _0x5d5757=await readdir(_0x158fa5);if(_0x5d5757[_0xf355d1(0x15f)]>0x0)return;await rmdir(_0x158fa5);}catch{return;}_0x158fa5=dirname(_0x158fa5);}}
@@ -1 +1 @@
1
- const a185_0x1905dd=a185_0x5a77;function a185_0x1e86(){const _0x1de9ec=['5874516FCtlMD','sqlcode','1786405hFSGZm','14CSvIhE','dbId','516356xMWfeT','boolean','1961406kTkAts','str','Return\x20full\x20raw\x20SQL\x20query\x20object','read','sql','2891972HAHJeE','6332528fBMSpV','1ggruXk','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','verbose','detail','1465794deWZBP','description','appCode','bool'];a185_0x1e86=function(){return _0x1de9ec;};return a185_0x1e86();}(function(_0x50fbe3,_0x18e50b){const _0x5e3c6f=a185_0x5a77,_0x15863e=_0x50fbe3();while(!![]){try{const _0x3ce062=parseInt(_0x5e3c6f(0xf6))/0x1*(parseInt(_0x5e3c6f(0xed))/0x2)+parseInt(_0x5e3c6f(0xfa))/0x3+-parseInt(_0x5e3c6f(0xf4))/0x4+-parseInt(_0x5e3c6f(0xea))/0x5+parseInt(_0x5e3c6f(0xef))/0x6*(-parseInt(_0x5e3c6f(0xeb))/0x7)+parseInt(_0x5e3c6f(0xf5))/0x8+parseInt(_0x5e3c6f(0xfe))/0x9;if(_0x3ce062===_0x18e50b)break;else _0x15863e['push'](_0x15863e['shift']());}catch(_0x236f41){_0x15863e['push'](_0x15863e['shift']());}}}(a185_0x1e86,0x6f91e));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a185_0x5a77(_0x3e7da0,_0x45cce0){_0x3e7da0=_0x3e7da0-0xe9;const _0x1e86c3=a185_0x1e86();let _0x5a772d=_0x1e86c3[_0x3e7da0];return _0x5a772d;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a185_0x1905dd(0xf3),'command':a185_0x1905dd(0xf9),'description':a185_0x1905dd(0xf7),'risk':a185_0x1905dd(0xf2),'flags':[SQLCODE_FLAG,{'name':a185_0x1905dd(0xf8),'type':a185_0x1905dd(0xee),'description':a185_0x1905dd(0xf1)}],async 'execute'(_0x438dec){const _0x51b3b1=a185_0x1905dd,_0x3ff43b=await getSqlQueryInfo(_0x438dec[_0x51b3b1(0xfc)],_0x438dec[_0x51b3b1(0xf0)](_0x51b3b1(0xe9))),_0x129948=_0x438dec[_0x51b3b1(0xfd)]('verbose');if(_0x129948)return{'ok':!![],'data':_0x3ff43b};const _0x25c3d1=_0x3ff43b['dbId']?await getDbName(_0x438dec[_0x51b3b1(0xfc)],_0x3ff43b['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0x3ff43b['sqlCode'],'sqlName':_0x3ff43b['sqlName'],'db':_0x25c3d1?_0x25c3d1+'\x20('+_0x3ff43b['dbId']+')':_0x3ff43b[_0x51b3b1(0xec)]??'','description':_0x3ff43b[_0x51b3b1(0xfb)]??'','sqlContent':_0x3ff43b['sqlContent']??''}};}};
1
+ function a185_0xf7ab(_0x1a1438,_0x1975c9){_0x1a1438=_0x1a1438-0x1f4;const _0x270652=a185_0x2706();let _0xf7ab59=_0x270652[_0x1a1438];return _0xf7ab59;}const a185_0x2775f8=a185_0xf7ab;(function(_0x3120d9,_0x16a930){const _0x4f3e50=a185_0xf7ab,_0x47eb0b=_0x3120d9();while(!![]){try{const _0x5e122b=-parseInt(_0x4f3e50(0x1f5))/0x1*(parseInt(_0x4f3e50(0x201))/0x2)+parseInt(_0x4f3e50(0x1fa))/0x3*(parseInt(_0x4f3e50(0x1fe))/0x4)+-parseInt(_0x4f3e50(0x1fd))/0x5+parseInt(_0x4f3e50(0x204))/0x6*(parseInt(_0x4f3e50(0x203))/0x7)+parseInt(_0x4f3e50(0x206))/0x8*(-parseInt(_0x4f3e50(0x1f8))/0x9)+parseInt(_0x4f3e50(0x1f9))/0xa*(-parseInt(_0x4f3e50(0x205))/0xb)+parseInt(_0x4f3e50(0x1f7))/0xc;if(_0x5e122b===_0x16a930)break;else _0x47eb0b['push'](_0x47eb0b['shift']());}catch(_0x12ca82){_0x47eb0b['push'](_0x47eb0b['shift']());}}}(a185_0x2706,0x3db02));import{getSqlQueryInfo}from'../../core/api-client.js';function a185_0x2706(){const _0x50d5e3=['26TsGHYL','Return\x20full\x20raw\x20SQL\x20query\x20object','56nRKjSZ','228006hkWCbf','464222CDBQbS','699560ZxMZar','str','description','sqlCode','boolean','27983HFWKAm','verbose','5493048rJaWBW','9OqBTWl','40dmktOl','246ZzViWv','appCode','sqlContent','663390rkeYNl','11884xQBAcb','dbId','sqlName'];a185_0x2706=function(){return _0x50d5e3;};return a185_0x2706();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':'detail','description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':'verbose','type':a185_0x2775f8(0x1f4),'description':a185_0x2775f8(0x202)}],async 'execute'(_0x367512){const _0x3af22d=a185_0x2775f8,_0x6f52b7=await getSqlQueryInfo(_0x367512[_0x3af22d(0x1fb)],_0x367512[_0x3af22d(0x207)]('sqlcode')),_0x1d2690=_0x367512['bool'](_0x3af22d(0x1f6));if(_0x1d2690)return{'ok':!![],'data':_0x6f52b7};const _0x4d1f85=_0x6f52b7['dbId']?await getDbName(_0x367512['appCode'],_0x6f52b7[_0x3af22d(0x1ff)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x6f52b7[_0x3af22d(0x209)],'sqlName':_0x6f52b7[_0x3af22d(0x200)],'db':_0x4d1f85?_0x4d1f85+'\x20('+_0x6f52b7['dbId']+')':_0x6f52b7[_0x3af22d(0x1ff)]??'','description':_0x6f52b7[_0x3af22d(0x208)]??'','sqlContent':_0x6f52b7[_0x3af22d(0x1fc)]??''}};}};
@@ -1 +1 @@
1
- function a186_0x4596(){const _0x6dab85=['1896fHlPPm','SQL\x20execution\x20failed','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','5657650BiArXf','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','params','1706120PPBBNG','now','26880ygOjUn','\x20row(s)\x20in\x20','55158chXLLt','string','3rlaRtQ','execError','read','sql','isArray','2159832oeYuvH','str','length','appCode','8533035prlqtW','Returned\x20','2696328YQfLjL','exec'];a186_0x4596=function(){return _0x6dab85;};return a186_0x4596();}const a186_0x394570=a186_0x4a18;(function(_0x4dc8ee,_0x2dbf4d){const _0x1aae6c=a186_0x4a18,_0x1783be=_0x4dc8ee();while(!![]){try{const _0x2d6ffe=parseInt(_0x1aae6c(0x18d))/0x1+parseInt(_0x1aae6c(0x181))/0x2*(parseInt(_0x1aae6c(0x18f))/0x3)+parseInt(_0x1aae6c(0x189))/0x4+-parseInt(_0x1aae6c(0x186))/0x5+parseInt(_0x1aae6c(0x183))/0x6*(parseInt(_0x1aae6c(0x18b))/0x7)+-parseInt(_0x1aae6c(0x17b))/0x8+-parseInt(_0x1aae6c(0x17f))/0x9;if(_0x2d6ffe===_0x2dbf4d)break;else _0x1783be['push'](_0x1783be['shift']());}catch(_0x4a3521){_0x1783be['push'](_0x1783be['shift']());}}}(a186_0x4596,0xa95a4));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a186_0x4a18(_0x14897e,_0x4a0421){_0x14897e=_0x14897e-0x179;const _0x4596d9=a186_0x4596();let _0x4a187e=_0x4596d9[_0x14897e];return _0x4a187e;}export const sqlExec={'service':a186_0x394570(0x179),'command':a186_0x394570(0x182),'description':a186_0x394570(0x187),'risk':a186_0x394570(0x191),'flags':[SQLCODE_FLAG,{'name':a186_0x394570(0x188),'type':a186_0x394570(0x18e),'description':a186_0x394570(0x185)}],async 'execute'(_0x2f978e){const _0x1bd3a3=a186_0x394570,_0x445376=parseJsonParams(_0x2f978e[_0x1bd3a3(0x17c)]('params')),_0x4b91dc=Date[_0x1bd3a3(0x18a)](),_0x2f7d1e=await executeSql(_0x2f978e[_0x1bd3a3(0x17e)],_0x2f978e[_0x1bd3a3(0x17c)]('sqlcode'),_0x445376),_0x8279e7=Date[_0x1bd3a3(0x18a)]()-_0x4b91dc,_0x27bd28=_0x2f7d1e?.['execResult']??_0x2f7d1e,_0x3cc394=_0x2f7d1e?.['execSuccess']??!![];if(!_0x3cc394)return{'ok':![],'data':{'error':_0x2f7d1e?.[_0x1bd3a3(0x190)]||'SQL\x20execution\x20failed','elapsed':_0x8279e7},'message':_0x1bd3a3(0x184)};const _0x16388c=Array[_0x1bd3a3(0x17a)](_0x27bd28)?_0x27bd28:[];return{'ok':!![],'data':{'rows':_0x16388c,'rowCount':_0x16388c[_0x1bd3a3(0x17d)],'elapsed':_0x8279e7},'message':_0x1bd3a3(0x180)+_0x16388c[_0x1bd3a3(0x17d)]+_0x1bd3a3(0x18c)+_0x8279e7+'ms'};}};
1
+ const a186_0x595665=a186_0x11cd;function a186_0x11cd(_0x1c46df,_0x33d57a){_0x1c46df=_0x1c46df-0xc1;const _0x369eee=a186_0x369e();let _0x11cdce=_0x369eee[_0x1c46df];return _0x11cdce;}(function(_0x4de42f,_0x5b83cb){const _0x56454f=a186_0x11cd,_0x10766a=_0x4de42f();while(!![]){try{const _0x4b6b96=-parseInt(_0x56454f(0xc4))/0x1+-parseInt(_0x56454f(0xd3))/0x2*(-parseInt(_0x56454f(0xc8))/0x3)+-parseInt(_0x56454f(0xc6))/0x4+-parseInt(_0x56454f(0xcf))/0x5+-parseInt(_0x56454f(0xc7))/0x6*(-parseInt(_0x56454f(0xd0))/0x7)+-parseInt(_0x56454f(0xcc))/0x8*(parseInt(_0x56454f(0xd5))/0x9)+parseInt(_0x56454f(0xc5))/0xa;if(_0x4b6b96===_0x5b83cb)break;else _0x10766a['push'](_0x10766a['shift']());}catch(_0xd3a929){_0x10766a['push'](_0x10766a['shift']());}}}(a186_0x369e,0x493ee));function a186_0x369e(){const _0x3eee0c=['189WOroQL','\x20row(s)\x20in\x20','sqlcode','SQL\x20execution\x20failed','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','params','exec','length','352630uSnfqp','11254040LxMvqG','600200Xfpyzl','2894898NabbAQ','3CRYPbn','appCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','str','107544zIFGKM','isArray','sql','2640215UbiHGr','7tpKjKT','read','execError','10306WsXERo','execSuccess'];a186_0x369e=function(){return _0x3eee0c;};return a186_0x369e();}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a186_0x595665(0xce),'command':a186_0x595665(0xc2),'description':a186_0x595665(0xd9),'risk':a186_0x595665(0xd1),'flags':[SQLCODE_FLAG,{'name':a186_0x595665(0xc1),'type':'string','description':a186_0x595665(0xca)}],async 'execute'(_0x49df05){const _0x17de07=a186_0x595665,_0x3b840e=parseJsonParams(_0x49df05[_0x17de07(0xcb)]('params')),_0x54cf5f=Date['now'](),_0x1224f8=await executeSql(_0x49df05[_0x17de07(0xc9)],_0x49df05['str'](_0x17de07(0xd7)),_0x3b840e),_0x182d47=Date['now']()-_0x54cf5f,_0x2e567c=_0x1224f8?.['execResult']??_0x1224f8,_0x434677=_0x1224f8?.[_0x17de07(0xd4)]??!![];if(!_0x434677)return{'ok':![],'data':{'error':_0x1224f8?.[_0x17de07(0xd2)]||_0x17de07(0xd8),'elapsed':_0x182d47},'message':_0x17de07(0xd8)};const _0x1cda59=Array[_0x17de07(0xcd)](_0x2e567c)?_0x2e567c:[];return{'ok':!![],'data':{'rows':_0x1cda59,'rowCount':_0x1cda59[_0x17de07(0xc3)],'elapsed':_0x182d47},'message':'Returned\x20'+_0x1cda59['length']+_0x17de07(0xd6)+_0x182d47+'ms'};}};
@@ -1 +1 @@
1
- function a187_0x1336(_0x420ee6,_0x240f71){_0x420ee6=_0x420ee6-0x1be;const _0x10f74c=a187_0x10f7();let _0x13367b=_0x10f74c[_0x420ee6];return _0x13367b;}(function(_0x1ba492,_0x14ce92){const _0x1378a8=a187_0x1336,_0x29378a=_0x1ba492();while(!![]){try{const _0x550f20=-parseInt(_0x1378a8(0x1c5))/0x1+parseInt(_0x1378a8(0x1bf))/0x2+-parseInt(_0x1378a8(0x1c4))/0x3*(parseInt(_0x1378a8(0x1c1))/0x4)+parseInt(_0x1378a8(0x1c2))/0x5+-parseInt(_0x1378a8(0x1c3))/0x6*(-parseInt(_0x1378a8(0x1c0))/0x7)+parseInt(_0x1378a8(0x1c7))/0x8*(parseInt(_0x1378a8(0x1be))/0x9)+parseInt(_0x1378a8(0x1c6))/0xa;if(_0x550f20===_0x14ce92)break;else _0x29378a['push'](_0x29378a['shift']());}catch(_0x3b94a2){_0x29378a['push'](_0x29378a['shift']());}}}(a187_0x10f7,0xeb13a));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlExec}from'../../commands/sql/exec.js';function a187_0x10f7(){const _0x5ca778=['51810EXxHMl','232734IwbbMA','1646747qjBOAX','26497380wkYHah','70760itXqGM','180vxbVBw','681754afhLRN','903iarIOf','96DGxcUp','950315XLOaWL'];a187_0x10f7=function(){return _0x5ca778;};return a187_0x10f7();}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,sqlExec,sqlPull,sqlDelete];
1
+ function a187_0x3f61(){const _0x496c99=['765432udcWKy','10HKNrho','205284HsIpMe','7UPKTWf','83510tRnJzA','4SmcpaA','72786BzVqlD','31905wrUZhj','286vkotYv','976452boMAeY','1815488YTxndB'];a187_0x3f61=function(){return _0x496c99;};return a187_0x3f61();}(function(_0x5983ba,_0x140f24){const _0x35a560=a187_0x3ebc,_0x11559a=_0x5983ba();while(!![]){try{const _0x3ca851=parseInt(_0x35a560(0x162))/0x1+parseInt(_0x35a560(0x161))/0x2+parseInt(_0x35a560(0x15d))/0x3*(parseInt(_0x35a560(0x160))/0x4)+parseInt(_0x35a560(0x15c))/0x5*(-parseInt(_0x35a560(0x164))/0x6)+parseInt(_0x35a560(0x15e))/0x7*(parseInt(_0x35a560(0x165))/0x8)+-parseInt(_0x35a560(0x15b))/0x9+parseInt(_0x35a560(0x15f))/0xa*(parseInt(_0x35a560(0x163))/0xb);if(_0x3ca851===_0x140f24)break;else _0x11559a['push'](_0x11559a['shift']());}catch(_0xdc761b){_0x11559a['push'](_0x11559a['shift']());}}}(a187_0x3f61,0x29910));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';function a187_0x3ebc(_0x188f70,_0x53d207){_0x188f70=_0x188f70-0x15b;const _0x3f615d=a187_0x3f61();let _0x3ebc50=_0x3f615d[_0x188f70];return _0x3ebc50;}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,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a188_0x54a8c7=a188_0x30d9;(function(_0x46e65f,_0xb3ff9a){const _0x5d4c8b=a188_0x30d9,_0x72d532=_0x46e65f();while(!![]){try{const _0x2331fc=parseInt(_0x5d4c8b(0x149))/0x1*(-parseInt(_0x5d4c8b(0x13d))/0x2)+parseInt(_0x5d4c8b(0x14e))/0x3*(-parseInt(_0x5d4c8b(0x143))/0x4)+parseInt(_0x5d4c8b(0x14d))/0x5+parseInt(_0x5d4c8b(0x140))/0x6+parseInt(_0x5d4c8b(0x13c))/0x7*(parseInt(_0x5d4c8b(0x145))/0x8)+-parseInt(_0x5d4c8b(0x139))/0x9*(parseInt(_0x5d4c8b(0x136))/0xa)+parseInt(_0x5d4c8b(0x134))/0xb;if(_0x2331fc===_0xb3ff9a)break;else _0x72d532['push'](_0x72d532['shift']());}catch(_0x478750){_0x72d532['push'](_0x72d532['shift']());}}}(a188_0xcdc6,0xe491f));function a188_0x30d9(_0x5e3b4f,_0x24d690){_0x5e3b4f=_0x5e3b4f-0x132;const _0xcdc644=a188_0xcdc6();let _0x30d9c9=_0xcdc644[_0x5e3b4f];return _0x30d9c9;}import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a188_0xcdc6(){const _0x350d6c=['sqlCode','10mlGAEg','dbId','tableData','5720283mHvIPB','length','list','35AJfHwi','8IeEeuN','totalCount','bool','8197950tvihSW','List\x20custom\x20SQL\x20queries','No\x20custom\x20SQL\x20queries\x20found.','7050068eXvNYs','Page\x20size','2366216pDOZOE','pagesize','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','sqlcode','78093wQGzvp','verbose','appCode','string','224980gmdokR','3MIlcNa','Page\x20number','str','paging','page','description','name','8321423SDYxXU'];a188_0xcdc6=function(){return _0x350d6c;};return a188_0xcdc6();}export const sqlList={'service':'sql','command':a188_0x54a8c7(0x13b),'description':a188_0x54a8c7(0x141),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a188_0x54a8c7(0x133),'type':a188_0x54a8c7(0x14c),'description':'Filter\x20by\x20SQL\x20name'},{'name':a188_0x54a8c7(0x152),'type':'number','description':a188_0x54a8c7(0x14f),'default':0x1},{'name':a188_0x54a8c7(0x146),'type':'number','description':a188_0x54a8c7(0x144)},{'name':a188_0x54a8c7(0x14a),'type':'boolean','description':a188_0x54a8c7(0x147)}],async 'execute'(_0x249c50){const _0x35e828=a188_0x54a8c7,_0x3170d2=await listSqlQueries(_0x249c50[_0x35e828(0x14b)],{'sqlCode':_0x249c50['str'](_0x35e828(0x148))||undefined,'sqlName':_0x249c50[_0x35e828(0x150)](_0x35e828(0x133))||undefined,'currentPage':_0x249c50['num'](_0x35e828(0x152)),'pageSize':_0x249c50['num'](_0x35e828(0x146),0x32)}),_0x5ccbe7=_0x249c50[_0x35e828(0x13f)]('verbose'),_0x3dc9bb=_0x3170d2[_0x35e828(0x138)]??[],_0x4f6f1c=_0x3170d2[_0x35e828(0x151)]?.[_0x35e828(0x13e)]??_0x3dc9bb['length'];let _0xf12681;return _0x5ccbe7?_0xf12681=_0x3dc9bb:_0xf12681=await Promise['all'](_0x3dc9bb['map'](async _0x11c3bd=>{const _0x1d0acc=_0x35e828;let _0xf02ac8;try{_0xf02ac8=_0x11c3bd[_0x1d0acc(0x137)]?await getDbName(_0x249c50[_0x1d0acc(0x14b)],_0x11c3bd['dbId']):undefined;}catch{}return{'sqlCode':_0x11c3bd[_0x1d0acc(0x135)],'sqlName':_0x11c3bd['sqlName'],'description':_0x11c3bd[_0x1d0acc(0x132)]??'','db':_0xf02ac8?_0xf02ac8+'\x20('+_0x11c3bd['dbId']+')':_0x11c3bd['dbId']??''};})),{'ok':!![],'data':_0xf12681,'message':_0x3dc9bb[_0x35e828(0x13a)]===0x0?_0x35e828(0x142):'Found\x20'+_0x3dc9bb[_0x35e828(0x13a)]+'\x20SQL\x20queries\x20(total:\x20'+_0x4f6f1c+').'};}};
1
+ function a188_0x3f7f(){const _0x1d65ef=['\x20SQL\x20queries\x20(total:\x20','1910vxImbE','Found\x20','No\x20custom\x20SQL\x20queries\x20found.','appCode','39108vtHFUB','str','Filter\x20by\x20SQL\x20name','string','30dfHarY','sqlCode','dbId','tableData','paging','list','number','length','2275011sPgVFw','15562074vAehhw','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','454644VzGqrd','sqlName','3796930ZJXSJx','num','verbose','4dbeTad','map','566IbRlyB','page','name','1099GXMSxE','2568768sHvCbM','sql','boolean','Page\x20size'];a188_0x3f7f=function(){return _0x1d65ef;};return a188_0x3f7f();}const a188_0x4ed5a4=a188_0x2a17;(function(_0x11e9f3,_0x4b7742){const _0x5735bc=a188_0x2a17,_0x1bcdc7=_0x11e9f3();while(!![]){try{const _0x369a50=parseInt(_0x5735bc(0x9e))/0x1*(-parseInt(_0x5735bc(0x95))/0x2)+parseInt(_0x5735bc(0x8b))/0x3*(parseInt(_0x5735bc(0x93))/0x4)+parseInt(_0x5735bc(0x90))/0x5+-parseInt(_0x5735bc(0xa2))/0x6*(parseInt(_0x5735bc(0x98))/0x7)+-parseInt(_0x5735bc(0x99))/0x8+parseInt(_0x5735bc(0x8e))/0x9*(-parseInt(_0x5735bc(0x83))/0xa)+parseInt(_0x5735bc(0x8c))/0xb;if(_0x369a50===_0x4b7742)break;else _0x1bcdc7['push'](_0x1bcdc7['shift']());}catch(_0x3de406){_0x1bcdc7['push'](_0x1bcdc7['shift']());}}}(a188_0x3f7f,0xdabd5));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a188_0x2a17(_0x15a07c,_0x1c503b){_0x15a07c=_0x15a07c-0x80;const _0x3f7f3a=a188_0x3f7f();let _0x2a174d=_0x3f7f3a[_0x15a07c];return _0x2a174d;}export const sqlList={'service':a188_0x4ed5a4(0x9a),'command':a188_0x4ed5a4(0x88),'description':'List\x20custom\x20SQL\x20queries','risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a188_0x4ed5a4(0x97),'type':a188_0x4ed5a4(0x82),'description':a188_0x4ed5a4(0x81)},{'name':a188_0x4ed5a4(0x96),'type':a188_0x4ed5a4(0x89),'description':'Page\x20number','default':0x1},{'name':'pagesize','type':a188_0x4ed5a4(0x89),'description':a188_0x4ed5a4(0x9c)},{'name':'verbose','type':a188_0x4ed5a4(0x9b),'description':a188_0x4ed5a4(0x8d)}],async 'execute'(_0x1b0d94){const _0x4daed9=a188_0x4ed5a4,_0x271a1f=await listSqlQueries(_0x1b0d94[_0x4daed9(0xa1)],{'sqlCode':_0x1b0d94[_0x4daed9(0x80)]('sqlcode')||undefined,'sqlName':_0x1b0d94[_0x4daed9(0x80)]('name')||undefined,'currentPage':_0x1b0d94[_0x4daed9(0x91)]('page'),'pageSize':_0x1b0d94[_0x4daed9(0x91)]('pagesize',0x32)}),_0x54c43d=_0x1b0d94['bool'](_0x4daed9(0x92)),_0x358d88=_0x271a1f[_0x4daed9(0x86)]??[],_0x28d026=_0x271a1f[_0x4daed9(0x87)]?.['totalCount']??_0x358d88['length'];let _0x16984d;return _0x54c43d?_0x16984d=_0x358d88:_0x16984d=await Promise['all'](_0x358d88[_0x4daed9(0x94)](async _0x48932f=>{const _0x52293b=_0x4daed9;let _0x39d4fd;try{_0x39d4fd=_0x48932f[_0x52293b(0x85)]?await getDbName(_0x1b0d94[_0x52293b(0xa1)],_0x48932f[_0x52293b(0x85)]):undefined;}catch{}return{'sqlCode':_0x48932f[_0x52293b(0x84)],'sqlName':_0x48932f[_0x52293b(0x8f)],'description':_0x48932f['description']??'','db':_0x39d4fd?_0x39d4fd+'\x20('+_0x48932f['dbId']+')':_0x48932f[_0x52293b(0x85)]??''};})),{'ok':!![],'data':_0x16984d,'message':_0x358d88[_0x4daed9(0x8a)]===0x0?_0x4daed9(0xa0):_0x4daed9(0x9f)+_0x358d88[_0x4daed9(0x8a)]+_0x4daed9(0x9d)+_0x28d026+').'};}};
@@ -1 +1 @@
1
- const a189_0x5a526f=a189_0x56c7;(function(_0x2204cd,_0x122cbc){const _0x43188a=a189_0x56c7,_0x25eed2=_0x2204cd();while(!![]){try{const _0x25669d=-parseInt(_0x43188a(0x84))/0x1+-parseInt(_0x43188a(0x97))/0x2+-parseInt(_0x43188a(0xa0))/0x3+parseInt(_0x43188a(0x9d))/0x4+parseInt(_0x43188a(0x90))/0x5*(-parseInt(_0x43188a(0x94))/0x6)+parseInt(_0x43188a(0x91))/0x7+parseInt(_0x43188a(0xa3))/0x8*(parseInt(_0x43188a(0xa8))/0x9);if(_0x25669d===_0x122cbc)break;else _0x25eed2['push'](_0x25eed2['shift']());}catch(_0x2d4a02){_0x25eed2['push'](_0x25eed2['shift']());}}}(a189_0x25c8,0x39a08));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a189_0x25c8(){const _0x2bc6a5=['name','read','message','Pull\x20complete:\x20','unchanged','skipped','POST','string','\x20SQL\x20file(s)\x20into\x20','paging','\x20failed','would_pull','sql','replace','lastSync','lockFilePath','sqlRoot','sqlName','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','14692gPqDrG','path','catch','toISOString','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','cancelled','length','split','local\x20differs\x20from\x20remote','description','appCode','sqls','95SsAkfU','626871HTWlXG','test','str','123738ISchsS','sqlContent','trimStart','741076RSinMo','\x20skipped,\x20','conflict','Would\x20pull\x20','sqlCode','sqlcode','1649928ckeUFL','pull','Force\x20overwrite\x20local\x20unsynced\x20changes','1107339YdazAc','utf8','tableData','469432gOCUja','dbId','boolean','push','sqlRootDir','135oEtXDY','join','mybatisXml','totalCount'];a189_0x25c8=function(){return _0x2bc6a5;};return a189_0x25c8();}import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x389808,_0x2a019b){const _0x23489f=a189_0x56c7,_0x3e81a6=[];let _0x2c89cf=0x1;while(!![]){const _0x4c4f51=await listSqlQueries(_0x389808,{'currentPage':_0x2c89cf,'pageSize':PAGE_SIZE,'sqlCode':_0x2a019b[_0x23489f(0x9b)],'sqlName':_0x2a019b[_0x23489f(0x82)]}),_0x1b12a5=_0x4c4f51[_0x23489f(0xa2)]??[];_0x3e81a6[_0x23489f(0xa6)](..._0x1b12a5);if(_0x1b12a5['length']===0x0)break;const _0x2ff895=_0x4c4f51[_0x23489f(0x7a)]?.[_0x23489f(0xab)];if(_0x2ff895!=null?_0x3e81a6[_0x23489f(0x8a)]>=_0x2ff895:_0x1b12a5[_0x23489f(0x8a)]<PAGE_SIZE)break;_0x2c89cf++;}return _0x3e81a6;}async function ensureSqlContent(_0x51cac6){const _0xe69cf3=a189_0x56c7;if(_0x51cac6[_0xe69cf3(0x95)]!=null&&String(_0x51cac6['sqlContent'])[_0xe69cf3(0x8a)]>0x0)return _0x51cac6;return getSqlQueryDetail(_0x51cac6[_0xe69cf3(0x9b)]);}export const sqlPull={'service':a189_0x5a526f(0x7d),'command':a189_0x5a526f(0x9e),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a189_0x5a526f(0xad),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a189_0x5a526f(0xac),'type':a189_0x5a526f(0x78),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':'force','type':a189_0x5a526f(0xa5),'description':a189_0x5a526f(0x9f)}],async 'dryRun'(_0x15d796){const _0x4e027b=a189_0x5a526f,_0xc45e0e=loadSqlProjectConfig(_0x15d796[_0x4e027b(0x8e)]),_0x1ba307=await readSqlLockFile(_0xc45e0e[_0x4e027b(0x80)]),{appLock:_0x3e3c2a}=ensureSqlLockScope(_0x1ba307??createEmptySqlLock(),_0xc45e0e[_0x4e027b(0x8e)],_0xc45e0e[_0x4e027b(0x81)],'pull'),_0x2ae1e8=await fetchAllSqlQueries(_0x15d796['appCode'],{'sqlCode':_0x15d796['str'](_0x4e027b(0x9c))||undefined,'sqlName':_0x15d796[_0x4e027b(0x93)](_0x4e027b(0xac))||undefined}),_0x2d3e78=[];for(const _0x48b3ff of _0x2ae1e8){const _0xaef5f5=await ensureSqlContent(_0x48b3ff),_0x8f3a32=ensureRemoteSqlContent(_0xaef5f5),_0x27cb13=detectModeFromSql(_0xaef5f5),_0x4c4dfe=_0xaef5f5[_0x4e027b(0xa4)]?await getDbName(_0x15d796[_0x4e027b(0x8e)],Number(_0xaef5f5[_0x4e027b(0xa4)]))[_0x4e027b(0x86)](()=>undefined):undefined,_0x4cdb45=buildLocalSqlFileContent({'sqlCode':_0xaef5f5[_0x4e027b(0x9b)],'sqlName':_0xaef5f5[_0x4e027b(0x82)],'dbId':_0xaef5f5[_0x4e027b(0xa4)]},_0x8f3a32,{'dbName':_0x4c4dfe,'mode':_0x27cb13,'syncedAt':new Date()['toISOString'](),'description':_0xaef5f5[_0x4e027b(0x8d)]}),_0x49d635=buildSqlLockEntry(_0xaef5f5,_0x8f3a32,'',{'dbName':_0x4c4dfe}),_0x10f571=resolveLocalSqlFilePath(_0xc45e0e,_0xaef5f5['sqlCode'],_0x49d635);let _0x28bff3=_0x4e027b(0x7c),_0x1a7089;if(await fileExists(_0x10f571)){const _0x586a85=await readFile(_0x10f571,_0x4e027b(0xa1));isEquivalentPulledSqlFile(_0x586a85,_0x4cdb45,_0x27cb13)?(_0x28bff3=_0x4e027b(0x76),_0x1a7089=_0x4e027b(0xb0)):(_0x28bff3=_0x4e027b(0x99),_0x1a7089=_0x4e027b(0x88));}_0x2d3e78[_0x4e027b(0xa6)]({'sqlCode':_0xaef5f5[_0x4e027b(0x9b)],'sqlName':_0xaef5f5[_0x4e027b(0x82)],'filePath':_0x10f571,'status':_0x28bff3,'reason':_0x1a7089});}return{'method':_0x4e027b(0x77),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x15d796[_0x4e027b(0x8e)],'sqlCode':_0x15d796['str'](_0x4e027b(0x9c))||null,'sqlName':_0x15d796[_0x4e027b(0x93)](_0x4e027b(0xac))||null,'files':_0x2d3e78},'description':_0x4e027b(0x9a)+_0x2d3e78['length']+_0x4e027b(0x79)+_0xc45e0e[_0x4e027b(0xa7)]};},async 'execute'(_0xf35ee0){const _0x18005e=a189_0x5a526f,_0x5e9cdd=loadSqlProjectConfig(_0xf35ee0[_0x18005e(0x8e)]),_0x29474a=await readSqlLockFile(_0x5e9cdd['lockFilePath']),{lockData:_0x34ea68,appLock:_0x54c44b}=ensureSqlLockScope(_0x29474a??createEmptySqlLock(),_0x5e9cdd[_0x18005e(0x8e)],_0x5e9cdd[_0x18005e(0x81)],'pull'),_0x5b7280=_0xf35ee0['bool']('force'),_0x46126b=await fetchAllSqlQueries(_0xf35ee0[_0x18005e(0x8e)],{'sqlCode':_0xf35ee0['str'](_0x18005e(0x9c))||undefined,'sqlName':_0xf35ee0['str'](_0x18005e(0xac))||undefined});if(_0x46126b[_0x18005e(0x8a)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x35983f=[],_0x562bb8=[];for(const _0x4fa205 of _0x46126b){try{_0x35983f[_0x18005e(0xa6)](await ensureSqlContent(_0x4fa205));}catch(_0x12c06e){_0x562bb8[_0x18005e(0xa6)]({'sqlCode':_0x4fa205[_0x18005e(0x9b)],'error':_0x12c06e instanceof Error?_0x12c06e[_0x18005e(0xae)]:String(_0x12c06e)});}}if(_0x5b7280&&!_0xf35ee0['nonInteractive']){let _0x72c731=![];for(const _0x46ae8d of _0x35983f){const _0x107abd=detectModeFromSql(_0x46ae8d),_0x3bee33=_0x46ae8d['dbId']?await getDbName(_0xf35ee0[_0x18005e(0x8e)],Number(_0x46ae8d['dbId']))[_0x18005e(0x86)](()=>undefined):undefined,_0x312bb0=buildLocalSqlFileContent({'sqlCode':_0x46ae8d[_0x18005e(0x9b)],'sqlName':_0x46ae8d[_0x18005e(0x82)],'dbId':_0x46ae8d[_0x18005e(0xa4)]},ensureRemoteSqlContent(_0x46ae8d),{'dbName':_0x3bee33,'mode':_0x107abd,'syncedAt':new Date()[_0x18005e(0x87)](),'description':_0x46ae8d['description']}),_0x989eae=resolveLocalSqlFilePath(_0x5e9cdd,_0x46ae8d['sqlCode'],buildSqlLockEntry(_0x46ae8d,ensureRemoteSqlContent(_0x46ae8d),'',{'dbName':_0x3bee33}));if(await fileExists(_0x989eae)){const _0xfdacf0=await readFile(_0x989eae,'utf8');if(!isEquivalentPulledSqlFile(_0xfdacf0,_0x312bb0,_0x107abd)){_0x72c731=!![];break;}}}if(_0x72c731){const _0x3fd3f8=await confirmForceOverwrite(_0x18005e(0x83));if(!_0x3fd3f8)throw CliErrors[_0x18005e(0x89)]('Force\x20pull\x20cancelled.');}}const _0x27314c=cloneSqlLockData(_0x34ea68),_0x215fdc=_0x27314c['apps'][_0x5e9cdd[_0x18005e(0x8e)]],_0x4f22ed=[],_0x59ebe5=[];for(const _0x489e6c of _0x35983f){const _0x3b5367=_0x215fdc[_0x18005e(0x8f)][_0x489e6c[_0x18005e(0x9b)]],_0x27ba83=ensureRemoteSqlContent(_0x489e6c),_0x388f8a=detectModeFromSql(_0x489e6c),_0x1a6943=_0x489e6c[_0x18005e(0xa4)]?await getDbName(_0xf35ee0[_0x18005e(0x8e)],Number(_0x489e6c[_0x18005e(0xa4)]))['catch'](()=>undefined):undefined,_0x5c4c00=buildLocalSqlFileContent({'sqlCode':_0x489e6c['sqlCode'],'sqlName':_0x489e6c[_0x18005e(0x82)],'dbId':_0x489e6c[_0x18005e(0xa4)]},_0x27ba83,{'dbName':_0x1a6943,'mode':_0x388f8a,'syncedAt':new Date()[_0x18005e(0x87)](),'description':_0x489e6c['description']}),_0x29eea9=buildSqlLockEntry(_0x489e6c,_0x27ba83,computeSqlContentHash(_0x5c4c00),{'dbName':_0x1a6943}),_0x127bde=_0x29eea9[_0x18005e(0x85)],_0x47dae4=join(_0x5e9cdd['sqlRootDir'],_0x127bde);try{if(await fileExists(_0x47dae4)){const _0x5add14=await readFile(_0x47dae4,'utf8');if(isEquivalentPulledSqlFile(_0x5add14,_0x5c4c00,_0x388f8a)){_0x59ebe5['push']({'sqlCode':_0x489e6c[_0x18005e(0x9b)],'reason':_0x18005e(0xb0)}),_0x215fdc[_0x18005e(0x8f)][_0x489e6c[_0x18005e(0x9b)]]={..._0x29eea9,'hash':computeSqlContentHash(_0x5add14),'path':_0x127bde};continue;}if(!_0x5b7280){_0x59ebe5[_0x18005e(0xa6)]({'sqlCode':_0x489e6c['sqlCode'],'reason':_0x18005e(0x8c)});continue;}}const _0x20e6c9=_0x3b5367?.[_0x18005e(0x85)]?join(_0x5e9cdd['sqlRootDir'],_0x3b5367[_0x18005e(0x85)]):undefined;_0x20e6c9&&_0x20e6c9!==_0x47dae4&&await fileExists(_0x20e6c9)&&await rm(_0x20e6c9,{'force':!![]}),await ensureParentDirectory(_0x47dae4),await writeFile(_0x47dae4,_0x5c4c00,_0x18005e(0xa1)),_0x215fdc[_0x18005e(0x8f)][_0x489e6c[_0x18005e(0x9b)]]={..._0x29eea9,'path':_0x127bde},_0x4f22ed['push']({'sqlCode':_0x489e6c[_0x18005e(0x9b)],'filePath':_0x47dae4});}catch(_0x564b89){_0x562bb8['push']({'sqlCode':_0x489e6c[_0x18005e(0x9b)],'error':_0x564b89 instanceof Error?_0x564b89[_0x18005e(0xae)]:String(_0x564b89)});}}return _0x215fdc[_0x18005e(0x7f)]=new Date()[_0x18005e(0x87)](),await writeSqlLockFile(_0x5e9cdd['lockFilePath'],_0x27314c),{'ok':_0x562bb8[_0x18005e(0x8a)]===0x0,'data':{'pulled':_0x4f22ed,'skipped':_0x59ebe5,'failed':_0x562bb8},'message':_0x18005e(0xaf)+_0x4f22ed[_0x18005e(0x8a)]+'\x20written,\x20'+_0x59ebe5[_0x18005e(0x8a)]+_0x18005e(0x98)+_0x562bb8[_0x18005e(0x8a)]+_0x18005e(0x7b)};}};function detectModeFromSql(_0x52607d){const _0x3794ec=a189_0x5a526f,_0x4f69d2=ensureRemoteSqlContent(_0x52607d),_0x99e887=stripLocalSqlMetadata(_0x4f69d2,'mybatisXml')[_0x3794ec(0x96)]();if(/^<(select|insert|update|delete)\b/i[_0x3794ec(0x92)](_0x99e887))return _0x3794ec(0xaa);return _0x3794ec(0x7d);}function isEquivalentPulledSqlFile(_0x5bf75f,_0x40fb30,_0x13a358){return normalizePullComparableContent(_0x5bf75f,_0x13a358)===normalizePullComparableContent(_0x40fb30,_0x13a358);}function normalizePullComparableContent(_0x283b3f,_0x3d41cb){const _0xa08912=a189_0x5a526f,_0x37024c=_0x283b3f[_0xa08912(0x7e)](/\r\n/g,'\x0a')[_0xa08912(0x8b)]('\x0a'),_0x141aa2=_0x37024c['filter'](_0x6ba3ff=>!isSyncedAtMetadataLine(_0x6ba3ff,_0x3d41cb));return _0x141aa2[_0xa08912(0xa9)]('\x0a');}function a189_0x56c7(_0x161423,_0x2ba6d0){_0x161423=_0x161423-0x76;const _0x25c88a=a189_0x25c8();let _0x56c7ec=_0x25c88a[_0x161423];return _0x56c7ec;}function isSyncedAtMetadataLine(_0x5162a2,_0x5a0113){if(_0x5a0113==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x5162a2);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x5162a2);}
1
+ const a189_0x1a1019=a189_0x12f1;(function(_0x5c60fe,_0x200308){const _0x5393ec=a189_0x12f1,_0x55d3b5=_0x5c60fe();while(!![]){try{const _0x4b04ea=-parseInt(_0x5393ec(0xbd))/0x1*(parseInt(_0x5393ec(0xdd))/0x2)+parseInt(_0x5393ec(0xe6))/0x3*(parseInt(_0x5393ec(0xaf))/0x4)+-parseInt(_0x5393ec(0xb6))/0x5*(parseInt(_0x5393ec(0xae))/0x6)+-parseInt(_0x5393ec(0xbf))/0x7+-parseInt(_0x5393ec(0xe1))/0x8*(-parseInt(_0x5393ec(0xad))/0x9)+-parseInt(_0x5393ec(0xd2))/0xa*(-parseInt(_0x5393ec(0xb9))/0xb)+-parseInt(_0x5393ec(0xc4))/0xc;if(_0x4b04ea===_0x200308)break;else _0x55d3b5['push'](_0x55d3b5['shift']());}catch(_0x1509cf){_0x55d3b5['push'](_0x55d3b5['shift']());}}}(a189_0x5333,0x513ad));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a189_0x12f1(_0x26f9dc,_0x2bdea5){_0x26f9dc=_0x26f9dc-0xa6;const _0x533323=a189_0x5333();let _0x12f1f6=_0x533323[_0x26f9dc];return _0x12f1f6;}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(_0x1c4ff8,_0x1d6a9d){const _0x770298=a189_0x12f1,_0x670080=[];let _0x307981=0x1;while(!![]){const _0x367daa=await listSqlQueries(_0x1c4ff8,{'currentPage':_0x307981,'pageSize':PAGE_SIZE,'sqlCode':_0x1d6a9d[_0x770298(0xe3)],'sqlName':_0x1d6a9d['sqlName']}),_0x4cd6b4=_0x367daa['tableData']??[];_0x670080[_0x770298(0xac)](..._0x4cd6b4);if(_0x4cd6b4[_0x770298(0xcb)]===0x0)break;const _0x2ac123=_0x367daa[_0x770298(0xdf)]?.[_0x770298(0xc2)];if(_0x2ac123!=null?_0x670080['length']>=_0x2ac123:_0x4cd6b4['length']<PAGE_SIZE)break;_0x307981++;}return _0x670080;}async function ensureSqlContent(_0x138fae){const _0x4dca8b=a189_0x12f1;if(_0x138fae[_0x4dca8b(0xc5)]!=null&&String(_0x138fae[_0x4dca8b(0xc5)])['length']>0x0)return _0x138fae;return getSqlQueryDetail(_0x138fae[_0x4dca8b(0xe3)]);}function a189_0x5333(){const _0xb2e13a=['sqlContent','Force\x20pull\x20cancelled.','skipped','would_pull','sqlRootDir','Filter\x20by\x20SQL\x20display\x20name','length','description','sqlName','Would\x20pull\x20','catch','path','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','5104930dazPXa','mybatisXml','apps','cancelled','name','dbId','sqls','sql','filter','str','replace','106696KzbtXs','trimStart','paging','sqlRoot','231992PrMgnT','nonInteractive','sqlCode','force','string','3XznXfT','\x20failed','unchanged','conflict','read','sqlcode','utf8','Force\x20overwrite\x20local\x20unsynced\x20changes','push','99NoERjo','30eTPqSE','1993836CvAWTa','toISOString','\x20written,\x20','\x20skipped,\x20','POST','appCode','pull','507700CDagMW','message','Pull\x20complete:\x20','11nvsnSC','boolean','test','lockFilePath','5urEcyz','local\x20differs\x20from\x20remote','1206261bOSKxB','No\x20remote\x20SQL\x20queries\x20matched.','bool','totalCount','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','581532MvfYEH'];a189_0x5333=function(){return _0xb2e13a;};return a189_0x5333();}export const sqlPull={'service':a189_0x1a1019(0xd9),'command':a189_0x1a1019(0xb5),'description':a189_0x1a1019(0xd1),'risk':a189_0x1a1019(0xa8),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a189_0x1a1019(0xd6),'type':a189_0x1a1019(0xe5),'description':a189_0x1a1019(0xca)},{'name':a189_0x1a1019(0xe4),'type':a189_0x1a1019(0xba),'description':a189_0x1a1019(0xab)}],async 'dryRun'(_0x1ea0b7){const _0x16d6a7=a189_0x1a1019,_0x59b108=loadSqlProjectConfig(_0x1ea0b7['appCode']),_0x40589a=await readSqlLockFile(_0x59b108[_0x16d6a7(0xbc)]),{appLock:_0xd89660}=ensureSqlLockScope(_0x40589a??createEmptySqlLock(),_0x59b108[_0x16d6a7(0xb4)],_0x59b108[_0x16d6a7(0xe0)],_0x16d6a7(0xb5)),_0x3cd0d1=await fetchAllSqlQueries(_0x1ea0b7[_0x16d6a7(0xb4)],{'sqlCode':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xa9))||undefined,'sqlName':_0x1ea0b7['str'](_0x16d6a7(0xd6))||undefined}),_0x46fce7=[];for(const _0x22da70 of _0x3cd0d1){const _0x3ee99a=await ensureSqlContent(_0x22da70),_0x43e1d9=ensureRemoteSqlContent(_0x3ee99a),_0x845285=detectModeFromSql(_0x3ee99a),_0x2e20fe=_0x3ee99a[_0x16d6a7(0xd7)]?await getDbName(_0x1ea0b7[_0x16d6a7(0xb4)],Number(_0x3ee99a[_0x16d6a7(0xd7)]))['catch'](()=>undefined):undefined,_0x1208cb=buildLocalSqlFileContent({'sqlCode':_0x3ee99a[_0x16d6a7(0xe3)],'sqlName':_0x3ee99a[_0x16d6a7(0xcd)],'dbId':_0x3ee99a['dbId']},_0x43e1d9,{'dbName':_0x2e20fe,'mode':_0x845285,'syncedAt':new Date()[_0x16d6a7(0xb0)](),'description':_0x3ee99a['description']}),_0x2ee1c5=buildSqlLockEntry(_0x3ee99a,_0x43e1d9,'',{'dbName':_0x2e20fe}),_0x5cb3b7=resolveLocalSqlFilePath(_0x59b108,_0x3ee99a[_0x16d6a7(0xe3)],_0x2ee1c5);let _0x3dba38=_0x16d6a7(0xc8),_0x454f32;if(await fileExists(_0x5cb3b7)){const _0x37dc0d=await readFile(_0x5cb3b7,_0x16d6a7(0xaa));isEquivalentPulledSqlFile(_0x37dc0d,_0x1208cb,_0x845285)?(_0x3dba38=_0x16d6a7(0xc7),_0x454f32=_0x16d6a7(0xa6)):(_0x3dba38=_0x16d6a7(0xa7),_0x454f32=_0x16d6a7(0xc3));}_0x46fce7['push']({'sqlCode':_0x3ee99a['sqlCode'],'sqlName':_0x3ee99a[_0x16d6a7(0xcd)],'filePath':_0x5cb3b7,'status':_0x3dba38,'reason':_0x454f32});}return{'method':_0x16d6a7(0xb3),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x1ea0b7['appCode'],'sqlCode':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xa9))||null,'sqlName':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xd6))||null,'files':_0x46fce7},'description':_0x16d6a7(0xce)+_0x46fce7['length']+'\x20SQL\x20file(s)\x20into\x20'+_0x59b108[_0x16d6a7(0xc9)]};},async 'execute'(_0x289dbc){const _0x336617=a189_0x1a1019,_0x16e27c=loadSqlProjectConfig(_0x289dbc[_0x336617(0xb4)]),_0x25cfed=await readSqlLockFile(_0x16e27c[_0x336617(0xbc)]),{lockData:_0x266846,appLock:_0x4a951c}=ensureSqlLockScope(_0x25cfed??createEmptySqlLock(),_0x16e27c[_0x336617(0xb4)],_0x16e27c['sqlRoot'],'pull'),_0x33638b=_0x289dbc[_0x336617(0xc1)](_0x336617(0xe4)),_0x2c6c73=await fetchAllSqlQueries(_0x289dbc[_0x336617(0xb4)],{'sqlCode':_0x289dbc[_0x336617(0xdb)](_0x336617(0xa9))||undefined,'sqlName':_0x289dbc[_0x336617(0xdb)]('name')||undefined});if(_0x2c6c73[_0x336617(0xcb)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x336617(0xc0)};const _0x51ff3c=[],_0x5aaaab=[];for(const _0x27de5d of _0x2c6c73){try{_0x51ff3c['push'](await ensureSqlContent(_0x27de5d));}catch(_0x15a110){_0x5aaaab[_0x336617(0xac)]({'sqlCode':_0x27de5d['sqlCode'],'error':_0x15a110 instanceof Error?_0x15a110[_0x336617(0xb7)]:String(_0x15a110)});}}if(_0x33638b&&!_0x289dbc[_0x336617(0xe2)]){let _0x53084a=![];for(const _0x42a228 of _0x51ff3c){const _0x67686b=detectModeFromSql(_0x42a228),_0x4862ad=_0x42a228[_0x336617(0xd7)]?await getDbName(_0x289dbc[_0x336617(0xb4)],Number(_0x42a228[_0x336617(0xd7)]))[_0x336617(0xcf)](()=>undefined):undefined,_0x1bc3a3=buildLocalSqlFileContent({'sqlCode':_0x42a228['sqlCode'],'sqlName':_0x42a228[_0x336617(0xcd)],'dbId':_0x42a228['dbId']},ensureRemoteSqlContent(_0x42a228),{'dbName':_0x4862ad,'mode':_0x67686b,'syncedAt':new Date()['toISOString'](),'description':_0x42a228[_0x336617(0xcc)]}),_0x51268e=resolveLocalSqlFilePath(_0x16e27c,_0x42a228[_0x336617(0xe3)],buildSqlLockEntry(_0x42a228,ensureRemoteSqlContent(_0x42a228),'',{'dbName':_0x4862ad}));if(await fileExists(_0x51268e)){const _0x563699=await readFile(_0x51268e,_0x336617(0xaa));if(!isEquivalentPulledSqlFile(_0x563699,_0x1bc3a3,_0x67686b)){_0x53084a=!![];break;}}}if(_0x53084a){const _0x3a11fd=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x3a11fd)throw CliErrors[_0x336617(0xd5)](_0x336617(0xc6));}}const _0xa75508=cloneSqlLockData(_0x266846),_0x5a7687=_0xa75508[_0x336617(0xd4)][_0x16e27c[_0x336617(0xb4)]],_0x41c2c6=[],_0x341717=[];for(const _0xa24623 of _0x51ff3c){const _0x3c762f=_0x5a7687[_0x336617(0xd8)][_0xa24623[_0x336617(0xe3)]],_0x3912c8=ensureRemoteSqlContent(_0xa24623),_0x2818e1=detectModeFromSql(_0xa24623),_0x6329d4=_0xa24623[_0x336617(0xd7)]?await getDbName(_0x289dbc['appCode'],Number(_0xa24623[_0x336617(0xd7)]))[_0x336617(0xcf)](()=>undefined):undefined,_0x2ef1c1=buildLocalSqlFileContent({'sqlCode':_0xa24623['sqlCode'],'sqlName':_0xa24623[_0x336617(0xcd)],'dbId':_0xa24623[_0x336617(0xd7)]},_0x3912c8,{'dbName':_0x6329d4,'mode':_0x2818e1,'syncedAt':new Date()[_0x336617(0xb0)](),'description':_0xa24623['description']}),_0x5a3f19=buildSqlLockEntry(_0xa24623,_0x3912c8,computeSqlContentHash(_0x2ef1c1),{'dbName':_0x6329d4}),_0x2cdd6a=_0x5a3f19['path'],_0x3ea91a=join(_0x16e27c[_0x336617(0xc9)],_0x2cdd6a);try{if(await fileExists(_0x3ea91a)){const _0x30fd18=await readFile(_0x3ea91a,_0x336617(0xaa));if(isEquivalentPulledSqlFile(_0x30fd18,_0x2ef1c1,_0x2818e1)){_0x341717[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'reason':_0x336617(0xa6)}),_0x5a7687[_0x336617(0xd8)][_0xa24623[_0x336617(0xe3)]]={..._0x5a3f19,'hash':computeSqlContentHash(_0x30fd18),'path':_0x2cdd6a};continue;}if(!_0x33638b){_0x341717[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'reason':_0x336617(0xbe)});continue;}}const _0x22c027=_0x3c762f?.[_0x336617(0xd0)]?join(_0x16e27c['sqlRootDir'],_0x3c762f['path']):undefined;_0x22c027&&_0x22c027!==_0x3ea91a&&await fileExists(_0x22c027)&&await rm(_0x22c027,{'force':!![]}),await ensureParentDirectory(_0x3ea91a),await writeFile(_0x3ea91a,_0x2ef1c1,'utf8'),_0x5a7687[_0x336617(0xd8)][_0xa24623['sqlCode']]={..._0x5a3f19,'path':_0x2cdd6a},_0x41c2c6['push']({'sqlCode':_0xa24623[_0x336617(0xe3)],'filePath':_0x3ea91a});}catch(_0x4b8c0a){_0x5aaaab[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'error':_0x4b8c0a instanceof Error?_0x4b8c0a['message']:String(_0x4b8c0a)});}}return _0x5a7687['lastSync']=new Date()[_0x336617(0xb0)](),await writeSqlLockFile(_0x16e27c[_0x336617(0xbc)],_0xa75508),{'ok':_0x5aaaab[_0x336617(0xcb)]===0x0,'data':{'pulled':_0x41c2c6,'skipped':_0x341717,'failed':_0x5aaaab},'message':_0x336617(0xb8)+_0x41c2c6['length']+_0x336617(0xb1)+_0x341717['length']+_0x336617(0xb2)+_0x5aaaab[_0x336617(0xcb)]+_0x336617(0xe7)};}};function detectModeFromSql(_0x369ff3){const _0x3ce116=a189_0x1a1019,_0x3c7e00=ensureRemoteSqlContent(_0x369ff3),_0x3d9602=stripLocalSqlMetadata(_0x3c7e00,_0x3ce116(0xd3))[_0x3ce116(0xde)]();if(/^<(select|insert|update|delete)\b/i[_0x3ce116(0xbb)](_0x3d9602))return _0x3ce116(0xd3);return _0x3ce116(0xd9);}function isEquivalentPulledSqlFile(_0x5e8650,_0x5ce28d,_0x5d07cd){return normalizePullComparableContent(_0x5e8650,_0x5d07cd)===normalizePullComparableContent(_0x5ce28d,_0x5d07cd);}function normalizePullComparableContent(_0x26966a,_0x9186ba){const _0x12b117=a189_0x1a1019,_0x383550=_0x26966a[_0x12b117(0xdc)](/\r\n/g,'\x0a')['split']('\x0a'),_0x55acaa=_0x383550[_0x12b117(0xda)](_0x52e4e2=>!isSyncedAtMetadataLine(_0x52e4e2,_0x9186ba));return _0x55acaa['join']('\x0a');}function isSyncedAtMetadataLine(_0x5985c7,_0x3093cd){const _0x2b2664=a189_0x1a1019;if(_0x3093cd===_0x2b2664(0xd3))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x5985c7);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x2b2664(0xbb)](_0x5985c7);}
@@ -1 +1 @@
1
- const a190_0x69f56d=a190_0x1cf2;function a190_0x3f07(){const _0x358721=['sqlCode','join','high-risk-write','startsWith','No\x20database\x20matches\x20local\x20directory\x20\x22','mode','57388140dfpUGN','hash','version','\x20SQL\x20file(s)','exec','2008958YtxWhA','filter','852mqRvkB','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','dbDirectory','appCode','21768IeWqEX','bool','No\x20local\x20SQL\x20files\x20found.','POST','message','lastSync','unchanged','remoteId','sqlName','validation','filePath','dbId','push','str','force','\x20pushed,\x20','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','sqlConfig','relativePath','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','7684369gJPidm','13428aGlToL','has','Local\x20directory\x20\x22','528232mDqFXt','entries','toISOString','sqls','sqlcode','\x20skipped,\x20','path','Push\x20complete:\x20','Local\x20SQL\x20not\x20found:\x20','dbName','length','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','set','sql','lockFilePath','/smartapi/custom/updateUserCustomSql','11931720TRYzVS','4005kwtore','catch','sqlRoot','sqlRootDir','\x20failed','utf8','Push\x20local\x20SQL\x20files\x20to\x20remote'];a190_0x3f07=function(){return _0x358721;};return a190_0x3f07();}(function(_0x4665e4,_0x8a43cf){const _0x220971=a190_0x1cf2,_0x598d9d=_0x4665e4();while(!![]){try{const _0x4dcfae=-parseInt(_0x220971(0x1d4))/0x1+parseInt(_0x220971(0x1b6))/0x2+-parseInt(_0x220971(0x1b8))/0x3*(parseInt(_0x220971(0x1bc))/0x4)+-parseInt(_0x220971(0x1a4))/0x5*(parseInt(_0x220971(0x1d1))/0x6)+-parseInt(_0x220971(0x1d0))/0x7+-parseInt(_0x220971(0x1a3))/0x8+parseInt(_0x220971(0x1b1))/0x9;if(_0x4dcfae===_0x8a43cf)break;else _0x598d9d['push'](_0x598d9d['shift']());}catch(_0x21843b){_0x598d9d['push'](_0x598d9d['shift']());}}}(a190_0x3f07,0xe1e7d));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x706902,_0x36929f,_0x2ff77b){const _0x5ec1ae=a190_0x1cf2,_0x5ac2a2=await scanLocalSqlQueries(_0x706902),_0x2a76e3=new Map();for(const _0x28d26b of _0x5ac2a2){if(_0x2ff77b&&_0x28d26b['sqlCode']!==_0x2ff77b)continue;const _0x1641d4=_0x2a76e3['get'](_0x28d26b[_0x5ec1ae(0x1ab)])??[];_0x1641d4[_0x5ec1ae(0x1c8)](_0x28d26b),_0x2a76e3[_0x5ec1ae(0x19f)](_0x28d26b[_0x5ec1ae(0x1ab)],_0x1641d4);}if(_0x2ff77b&&!_0x2a76e3[_0x5ec1ae(0x1d2)](_0x2ff77b))throw CliErrors[_0x5ec1ae(0x1c5)](_0x5ec1ae(0x19b)+_0x2ff77b);const _0x5bbbaa=[];for(const [_0x454ff4,_0x122582]of _0x2a76e3[_0x5ec1ae(0x1d5)]()){if(_0x122582['length']===0x1){_0x5bbbaa['push'](_0x122582[0x0]);continue;}const _0x5f0c56=_0x36929f[_0x5ec1ae(0x196)][_0x454ff4],_0x515390=_0x5f0c56?.['path'],_0x3c7975=_0x515390?_0x122582[_0x5ec1ae(0x1b7)](_0x293fd4=>_0x293fd4['relativePath']!==_0x515390):_0x122582;if(_0x5f0c56&&_0x3c7975[_0x5ec1ae(0x19d)]===0x1){_0x5bbbaa[_0x5ec1ae(0x1c8)](_0x3c7975[0x0]);continue;}throw CliErrors['validation'](_0x5ec1ae(0x1cf)+_0x454ff4+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x5bbbaa;}export const sqlPush={'service':a190_0x69f56d(0x1a0),'command':a190_0x69f56d(0x1c8),'description':a190_0x69f56d(0x1aa),'risk':a190_0x69f56d(0x1ad),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a190_0x69f56d(0x1ca),'type':'boolean','description':a190_0x69f56d(0x1cc)}],async 'dryRun'(_0x11eef2){const _0x498fac=a190_0x69f56d,_0x675a09=loadSqlProjectConfig(_0x11eef2['appCode']),_0x8139f=await readSqlLockFile(_0x675a09[_0x498fac(0x1a1)]),{appLock:_0x441ae4}=ensureSqlLockScope(_0x8139f??createEmptySqlLock(),_0x11eef2[_0x498fac(0x1bb)],_0x675a09[_0x498fac(0x1a6)],_0x498fac(0x1c8)),_0x47e03a=await getTargetSqlQueries(_0x675a09,_0x441ae4,_0x11eef2[_0x498fac(0x1c9)]('sqlcode')||undefined),_0x5d65cb=[];for(const _0x1a4274 of _0x47e03a){const _0x360668=await computeSqlFileHash(_0x1a4274['filePath']),_0x1d4b56=_0x441ae4[_0x498fac(0x196)][_0x1a4274[_0x498fac(0x1ab)]],_0x500d98=!!_0x1d4b56&&(_0x1d4b56[_0x498fac(0x199)]!==_0x1a4274[_0x498fac(0x1ce)]||!!_0x1a4274[_0x498fac(0x1c4)]&&_0x1d4b56[_0x498fac(0x1c4)]!==_0x1a4274[_0x498fac(0x1c4)]);if(!_0x11eef2[_0x498fac(0x1bd)]('force')&&_0x1d4b56&&_0x1d4b56['hash']===_0x360668&&!_0x500d98)continue;_0x5d65cb['push'](_0x1a4274['sqlCode']);}return{'method':_0x498fac(0x1bf),'url':_0x498fac(0x1a2),'body':{'sqlCodes':_0x5d65cb,'appCode':_0x11eef2[_0x498fac(0x1bb)]},'description':'Would\x20push\x20'+_0x5d65cb[_0x498fac(0x19d)]+_0x498fac(0x1b4)};},async 'execute'(_0x3665ba){const _0x4119a2=a190_0x69f56d,_0x177558=loadSqlProjectConfig(_0x3665ba[_0x4119a2(0x1bb)]),_0x48f427=await readSqlLockFile(_0x177558[_0x4119a2(0x1a1)]),{lockData:_0x3baa87,appLock:_0x22a95d}=ensureSqlLockScope(_0x48f427??createEmptySqlLock(),_0x3665ba[_0x4119a2(0x1bb)],_0x177558[_0x4119a2(0x1a6)],'push'),_0x363ffa=await getTargetSqlQueries(_0x177558,_0x22a95d,_0x3665ba['str'](_0x4119a2(0x197))||undefined);if(_0x363ffa[_0x4119a2(0x19d)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x4119a2(0x1be)};const _0x5afc1b=[],_0x505e84=[],_0x487e58=[];for(const _0xd8d8ab of _0x363ffa){const _0x759f61=_0x22a95d[_0x4119a2(0x196)][_0xd8d8ab[_0x4119a2(0x1ab)]];if(!_0x759f61){_0x487e58[_0x4119a2(0x1c8)]({'sqlCode':_0xd8d8ab['sqlCode'],'error':_0x4119a2(0x1b9)});continue;}try{const _0x36c501=await computeSqlFileHash(_0xd8d8ab[_0x4119a2(0x1c6)]),_0x3a989d=_0x759f61[_0x4119a2(0x199)]!==_0xd8d8ab[_0x4119a2(0x1ce)]||!!_0xd8d8ab['sqlName']&&_0x759f61[_0x4119a2(0x1c4)]!==_0xd8d8ab[_0x4119a2(0x1c4)];if(!_0x3665ba[_0x4119a2(0x1bd)](_0x4119a2(0x1ca))&&_0x759f61[_0x4119a2(0x1b2)]===_0x36c501&&!_0x3a989d){_0x505e84[_0x4119a2(0x1c8)]({'sqlCode':_0xd8d8ab['sqlCode'],'reason':_0x4119a2(0x1c2)});continue;}if(_0x759f61[_0x4119a2(0x1b3)]==null){_0x487e58['push']({'sqlCode':_0xd8d8ab[_0x4119a2(0x1ab)],'error':_0x4119a2(0x19e)});continue;}const _0x53551c=await readFile(_0xd8d8ab[_0x4119a2(0x1c6)],_0x4119a2(0x1a9)),_0x1b8121=stripLocalSqlMetadata(_0x53551c,_0xd8d8ab[_0x4119a2(0x1b0)]),_0x38b87f=_0xd8d8ab[_0x4119a2(0x1c4)]||_0x759f61['sqlName'],_0x1de4d6=await resolveTargetDbBinding(_0x3665ba[_0x4119a2(0x1bb)],_0xd8d8ab,_0x759f61),_0x432ac2=await updateSqlQuery({'id':_0x759f61[_0x4119a2(0x1c3)],'appCode':_0x3665ba['appCode'],'sqlCode':_0xd8d8ab[_0x4119a2(0x1ab)],'sqlName':_0x38b87f,'dbId':_0x1de4d6[_0x4119a2(0x1c7)],'version':_0x759f61[_0x4119a2(0x1b3)],'sqlContent':_0x1b8121,'sqlConfig':_0x759f61[_0x4119a2(0x1cd)]??undefined}),_0x5e78e7=_0x432ac2[_0x4119a2(0x1c7)]?await getDbName(_0x3665ba['appCode'],Number(_0x432ac2[_0x4119a2(0x1c7)]))['catch'](()=>_0x1de4d6[_0x4119a2(0x19c)]):_0x1de4d6[_0x4119a2(0x19c)];_0x22a95d['sqls'][_0xd8d8ab[_0x4119a2(0x1ab)]]={...buildSqlLockEntry(_0x432ac2,_0x1b8121,_0x36c501,{'dbName':_0x5e78e7}),'path':_0xd8d8ab[_0x4119a2(0x1ce)],'mode':_0x759f61[_0x4119a2(0x1b0)]},await archivePreviousSqlFileIfNeeded(_0x177558,_0x759f61[_0x4119a2(0x199)],_0xd8d8ab[_0x4119a2(0x1ce)]),_0x5afc1b['push']({'sqlCode':_0xd8d8ab['sqlCode'],'remoteId':_0x759f61[_0x4119a2(0x1c3)]});}catch(_0x2bedc2){_0x487e58['push']({'sqlCode':_0xd8d8ab['sqlCode'],'error':_0x2bedc2 instanceof Error?_0x2bedc2[_0x4119a2(0x1c0)]:String(_0x2bedc2)});}}return _0x22a95d[_0x4119a2(0x1c1)]=new Date()['toISOString'](),await writeSqlLockFile(_0x177558[_0x4119a2(0x1a1)],_0x3baa87),{'ok':_0x487e58[_0x4119a2(0x19d)]===0x0,'data':{'pushed':_0x5afc1b,'skipped':_0x505e84,'failed':_0x487e58},'message':_0x4119a2(0x19a)+_0x5afc1b['length']+_0x4119a2(0x1cb)+_0x505e84[_0x4119a2(0x19d)]+_0x4119a2(0x198)+_0x487e58[_0x4119a2(0x19d)]+_0x4119a2(0x1a8)};}};async function archivePreviousSqlFileIfNeeded(_0x46f1ef,_0x2b4503,_0x5f22a5){const _0x307ea0=a190_0x69f56d;if(!_0x2b4503||_0x2b4503===_0x5f22a5)return;const _0x2db7b4=join(_0x46f1ef['sqlRootDir'],_0x2b4503);if(!await fileExists(_0x2db7b4))return;const _0x3c6374=await moveToTrash(_0x46f1ef['projectRoot'],_0x46f1ef['trashDir'],_0x2db7b4);await cleanupEmptyDirectories(dirname(_0x2db7b4),_0x46f1ef[_0x307ea0(0x1a7)]),void _0x3c6374;}async function moveToTrash(_0x13fbf9,_0x3f9321,_0x4dd0e1){const _0x36924a=a190_0x69f56d,_0x21ce07=new Date()[_0x36924a(0x1d6)]()['replace'](/[:.]/g,'-'),_0x2445d7=relative(_0x13fbf9,_0x4dd0e1),_0x5b58fb=join(_0x3f9321,_0x21ce07,_0x2445d7);return await mkdir(dirname(_0x5b58fb),{'recursive':!![]}),await rename(_0x4dd0e1,_0x5b58fb),_0x5b58fb;}async function cleanupEmptyDirectories(_0xa92f4,_0xee37f5){const _0x1170f7=a190_0x69f56d;let _0x3ace83=resolve(_0xa92f4);const _0x58575b=resolve(_0xee37f5);while(_0x3ace83[_0x1170f7(0x1ae)](''+_0x58575b+sep)||_0x3ace83===_0x58575b){if(_0x3ace83===_0x58575b)return;try{const _0x59a222=await readdir(_0x3ace83);if(_0x59a222[_0x1170f7(0x19d)]>0x0)return;await rmdir(_0x3ace83);}catch{return;}_0x3ace83=dirname(_0x3ace83);}}function a190_0x1cf2(_0x1b04db,_0x5a35d0){_0x1b04db=_0x1b04db-0x196;const _0x3f0705=a190_0x3f07();let _0x1cf256=_0x3f0705[_0x1b04db];return _0x1cf256;}async function resolveTargetDbBinding(_0x13a3ce,_0x562056,_0x3607cf){const _0x3f56e8=a190_0x69f56d,_0x4d0c9a=_0x562056[_0x3f56e8(0x1ba)];if(!_0x4d0c9a)return{'dbId':_0x3607cf['dbId'],'dbName':_0x3607cf[_0x3f56e8(0x19c)]};const _0x4ac3ea=buildDbDirectoryName(_0x3607cf[_0x3f56e8(0x19c)],_0x3607cf[_0x3f56e8(0x1c7)]);if(_0x4d0c9a===_0x4ac3ea)return{'dbId':_0x3607cf[_0x3f56e8(0x1c7)],'dbName':_0x3607cf[_0x3f56e8(0x19c)]};const _0x5a6ed2=parseExplicitDbDirectory(_0x4d0c9a);if(_0x5a6ed2!=null)return{'dbId':_0x5a6ed2,'dbName':await getDbName(_0x13a3ce,_0x5a6ed2)[_0x3f56e8(0x1a5)](()=>undefined)};const _0x53e566=await listDatabases(_0x13a3ce),_0x3d0576=_0x53e566['filter'](_0x5bc972=>buildDbDirectoryName(_0x5bc972[_0x3f56e8(0x19c)],_0x5bc972[_0x3f56e8(0x1c7)])===_0x4d0c9a);if(_0x3d0576[_0x3f56e8(0x19d)]===0x1)return{'dbId':_0x3d0576[0x0][_0x3f56e8(0x1c7)],'dbName':_0x3d0576[0x0][_0x3f56e8(0x19c)]};if(_0x3d0576[_0x3f56e8(0x19d)]===0x0)throw CliErrors[_0x3f56e8(0x1c5)](_0x3f56e8(0x1af)+_0x4d0c9a+'\x22\x20for\x20sqlCode\x20'+_0x562056['sqlCode']+'.');const _0x46a4d0=_0x3d0576['map'](_0x13068a=>_0x13068a['dbName']+'\x20('+_0x13068a[_0x3f56e8(0x1c7)]+')')[_0x3f56e8(0x1ac)](',\x20');throw CliErrors[_0x3f56e8(0x1c5)](_0x3f56e8(0x1d3)+_0x4d0c9a+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x562056['sqlCode']+':\x20'+_0x46a4d0);}function parseExplicitDbDirectory(_0xff6392){const _0x1bb810=a190_0x69f56d,_0x330ca7=/^db-(\d+)$/[_0x1bb810(0x1b5)](_0xff6392);if(!_0x330ca7)return null;const _0x181ad3=Number(_0x330ca7[0x1]);return Number['isFinite'](_0x181ad3)&&_0x181ad3>0x0?_0x181ad3:null;}
1
+ const a190_0xd762b3=a190_0x542c;(function(_0x16b404,_0x4a207b){const _0x28d724=a190_0x542c,_0x106c10=_0x16b404();while(!![]){try{const _0x5afb65=-parseInt(_0x28d724(0x9c))/0x1*(parseInt(_0x28d724(0xbd))/0x2)+-parseInt(_0x28d724(0xb6))/0x3+-parseInt(_0x28d724(0xd3))/0x4*(parseInt(_0x28d724(0xbe))/0x5)+-parseInt(_0x28d724(0xd0))/0x6+parseInt(_0x28d724(0xcf))/0x7+parseInt(_0x28d724(0x9d))/0x8+parseInt(_0x28d724(0xbb))/0x9;if(_0x5afb65===_0x4a207b)break;else _0x106c10['push'](_0x106c10['shift']());}catch(_0x1bc91b){_0x106c10['push'](_0x106c10['shift']());}}}(a190_0x11a0,0x73bb6));function a190_0x11a0(){const _0x2267a7=['remoteId','filter','catch','86585bJkNLG','2633304qhyDkm','get','dbName','force','dbDirectory','has','lockFilePath','No\x20local\x20SQL\x20files\x20found.','mode','\x20failed','sqls','appCode','bool','Local\x20directory\x20\x22','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','validation','sqlRootDir','str','hash','isFinite','exec','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','Push\x20local\x20SQL\x20files\x20to\x20remote','POST','2214276WzHrKw','push','Local\x20SQL\x20not\x20found:\x20','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','\x20SQL\x20file(s)','21525390azZHAU','high-risk-write','8RWmkww','35tRaVnH','sqlConfig','dbId','message','sqlName','version','length','filePath','sqlCode','trashDir','sqlRoot','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','unchanged','projectRoot','relativePath','sqlcode','Push\x20complete:\x20','537138VusDUf','2808480JDbgMV','path','join','440604wAFiBt','\x20skipped,\x20','/smartapi/custom/updateUserCustomSql','set','sql','toISOString','map','boolean','replace','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'];a190_0x11a0=function(){return _0x2267a7;};return a190_0x11a0();}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 a190_0x542c(_0x5dc49b,_0x3830a8){_0x5dc49b=_0x5dc49b-0x91;const _0x11a0f0=a190_0x11a0();let _0x542cce=_0x11a0f0[_0x5dc49b];return _0x542cce;}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(_0x5a0f5b,_0x300377,_0x20481f){const _0x8ed3fa=a190_0x542c,_0x264d5c=await scanLocalSqlQueries(_0x5a0f5b),_0x22097d=new Map();for(const _0xa9798b of _0x264d5c){if(_0x20481f&&_0xa9798b[_0x8ed3fa(0xc6)]!==_0x20481f)continue;const _0x2205b1=_0x22097d[_0x8ed3fa(0x9e)](_0xa9798b[_0x8ed3fa(0xc6)])??[];_0x2205b1['push'](_0xa9798b),_0x22097d[_0x8ed3fa(0x92)](_0xa9798b['sqlCode'],_0x2205b1);}if(_0x20481f&&!_0x22097d[_0x8ed3fa(0xa2)](_0x20481f))throw CliErrors[_0x8ed3fa(0xad)](_0x8ed3fa(0xb8)+_0x20481f);const _0x3619b3=[];for(const [_0x15a87b,_0x5292db]of _0x22097d['entries']()){if(_0x5292db[_0x8ed3fa(0xc4)]===0x1){_0x3619b3[_0x8ed3fa(0xb7)](_0x5292db[0x0]);continue;}const _0x400ba4=_0x300377[_0x8ed3fa(0xa7)][_0x15a87b],_0xe5a91=_0x400ba4?.[_0x8ed3fa(0xd1)],_0x58cb86=_0xe5a91?_0x5292db[_0x8ed3fa(0x9a)](_0x15d6ba=>_0x15d6ba['relativePath']!==_0xe5a91):_0x5292db;if(_0x400ba4&&_0x58cb86[_0x8ed3fa(0xc4)]===0x1){_0x3619b3[_0x8ed3fa(0xb7)](_0x58cb86[0x0]);continue;}throw CliErrors['validation'](_0x8ed3fa(0xb3)+_0x15a87b+_0x8ed3fa(0xb9));}return _0x3619b3;}export const sqlPush={'service':a190_0xd762b3(0x93),'command':'push','description':a190_0xd762b3(0xb4),'risk':a190_0xd762b3(0xbc),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a190_0xd762b3(0xa0),'type':a190_0xd762b3(0x96),'description':a190_0xd762b3(0xc9)}],async 'dryRun'(_0xbb2831){const _0x574b9c=a190_0xd762b3,_0x3b9da7=loadSqlProjectConfig(_0xbb2831[_0x574b9c(0xa8)]),_0x4d01d9=await readSqlLockFile(_0x3b9da7[_0x574b9c(0xa3)]),{appLock:_0x5155c6}=ensureSqlLockScope(_0x4d01d9??createEmptySqlLock(),_0xbb2831['appCode'],_0x3b9da7['sqlRoot'],_0x574b9c(0xb7)),_0x20cb52=await getTargetSqlQueries(_0x3b9da7,_0x5155c6,_0xbb2831[_0x574b9c(0xaf)](_0x574b9c(0xcd))||undefined),_0xc2d414=[];for(const _0x4667a7 of _0x20cb52){const _0x57beab=await computeSqlFileHash(_0x4667a7[_0x574b9c(0xc5)]),_0x7db53c=_0x5155c6[_0x574b9c(0xa7)][_0x4667a7['sqlCode']],_0x153b0a=!!_0x7db53c&&(_0x7db53c[_0x574b9c(0xd1)]!==_0x4667a7[_0x574b9c(0xcc)]||!!_0x4667a7['sqlName']&&_0x7db53c[_0x574b9c(0xc2)]!==_0x4667a7[_0x574b9c(0xc2)]);if(!_0xbb2831[_0x574b9c(0xa9)](_0x574b9c(0xa0))&&_0x7db53c&&_0x7db53c[_0x574b9c(0xb0)]===_0x57beab&&!_0x153b0a)continue;_0xc2d414[_0x574b9c(0xb7)](_0x4667a7[_0x574b9c(0xc6)]);}return{'method':_0x574b9c(0xb5),'url':_0x574b9c(0x91),'body':{'sqlCodes':_0xc2d414,'appCode':_0xbb2831[_0x574b9c(0xa8)]},'description':'Would\x20push\x20'+_0xc2d414[_0x574b9c(0xc4)]+_0x574b9c(0xba)};},async 'execute'(_0x298a69){const _0x219dd8=a190_0xd762b3,_0x2a3168=loadSqlProjectConfig(_0x298a69[_0x219dd8(0xa8)]),_0x4a3309=await readSqlLockFile(_0x2a3168[_0x219dd8(0xa3)]),{lockData:_0x1b538c,appLock:_0x414c84}=ensureSqlLockScope(_0x4a3309??createEmptySqlLock(),_0x298a69[_0x219dd8(0xa8)],_0x2a3168[_0x219dd8(0xc8)],_0x219dd8(0xb7)),_0x24ff3a=await getTargetSqlQueries(_0x2a3168,_0x414c84,_0x298a69[_0x219dd8(0xaf)](_0x219dd8(0xcd))||undefined);if(_0x24ff3a[_0x219dd8(0xc4)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x219dd8(0xa4)};const _0x137453=[],_0x2d5d5e=[],_0x42e154=[];for(const _0x530248 of _0x24ff3a){const _0x23e1c4=_0x414c84['sqls'][_0x530248['sqlCode']];if(!_0x23e1c4){_0x42e154[_0x219dd8(0xb7)]({'sqlCode':_0x530248[_0x219dd8(0xc6)],'error':_0x219dd8(0x98)});continue;}try{const _0x10ecf0=await computeSqlFileHash(_0x530248[_0x219dd8(0xc5)]),_0xfa05a0=_0x23e1c4['path']!==_0x530248[_0x219dd8(0xcc)]||!!_0x530248[_0x219dd8(0xc2)]&&_0x23e1c4[_0x219dd8(0xc2)]!==_0x530248[_0x219dd8(0xc2)];if(!_0x298a69[_0x219dd8(0xa9)](_0x219dd8(0xa0))&&_0x23e1c4[_0x219dd8(0xb0)]===_0x10ecf0&&!_0xfa05a0){_0x2d5d5e['push']({'sqlCode':_0x530248[_0x219dd8(0xc6)],'reason':_0x219dd8(0xca)});continue;}if(_0x23e1c4[_0x219dd8(0xc3)]==null){_0x42e154['push']({'sqlCode':_0x530248['sqlCode'],'error':_0x219dd8(0xab)});continue;}const _0x4d32ba=await readFile(_0x530248[_0x219dd8(0xc5)],'utf8'),_0x1176b4=stripLocalSqlMetadata(_0x4d32ba,_0x530248[_0x219dd8(0xa5)]),_0x478cd5=_0x530248[_0x219dd8(0xc2)]||_0x23e1c4[_0x219dd8(0xc2)],_0xd15489=await resolveTargetDbBinding(_0x298a69[_0x219dd8(0xa8)],_0x530248,_0x23e1c4),_0x568b85=await updateSqlQuery({'id':_0x23e1c4[_0x219dd8(0x99)],'appCode':_0x298a69['appCode'],'sqlCode':_0x530248[_0x219dd8(0xc6)],'sqlName':_0x478cd5,'dbId':_0xd15489[_0x219dd8(0xc0)],'version':_0x23e1c4[_0x219dd8(0xc3)],'sqlContent':_0x1176b4,'sqlConfig':_0x23e1c4[_0x219dd8(0xbf)]??undefined}),_0xd6b118=_0x568b85[_0x219dd8(0xc0)]?await getDbName(_0x298a69['appCode'],Number(_0x568b85['dbId']))[_0x219dd8(0x9b)](()=>_0xd15489[_0x219dd8(0x9f)]):_0xd15489['dbName'];_0x414c84['sqls'][_0x530248[_0x219dd8(0xc6)]]={...buildSqlLockEntry(_0x568b85,_0x1176b4,_0x10ecf0,{'dbName':_0xd6b118}),'path':_0x530248[_0x219dd8(0xcc)],'mode':_0x23e1c4[_0x219dd8(0xa5)]},await archivePreviousSqlFileIfNeeded(_0x2a3168,_0x23e1c4['path'],_0x530248[_0x219dd8(0xcc)]),_0x137453[_0x219dd8(0xb7)]({'sqlCode':_0x530248['sqlCode'],'remoteId':_0x23e1c4[_0x219dd8(0x99)]});}catch(_0x21d1e2){_0x42e154['push']({'sqlCode':_0x530248[_0x219dd8(0xc6)],'error':_0x21d1e2 instanceof Error?_0x21d1e2[_0x219dd8(0xc1)]:String(_0x21d1e2)});}}return _0x414c84['lastSync']=new Date()[_0x219dd8(0x94)](),await writeSqlLockFile(_0x2a3168[_0x219dd8(0xa3)],_0x1b538c),{'ok':_0x42e154[_0x219dd8(0xc4)]===0x0,'data':{'pushed':_0x137453,'skipped':_0x2d5d5e,'failed':_0x42e154},'message':_0x219dd8(0xce)+_0x137453[_0x219dd8(0xc4)]+'\x20pushed,\x20'+_0x2d5d5e[_0x219dd8(0xc4)]+_0x219dd8(0xd4)+_0x42e154[_0x219dd8(0xc4)]+_0x219dd8(0xa6)};}};async function archivePreviousSqlFileIfNeeded(_0x3cd53d,_0x557eb2,_0x4cca88){const _0x26e2f7=a190_0xd762b3;if(!_0x557eb2||_0x557eb2===_0x4cca88)return;const _0x3fde4e=join(_0x3cd53d['sqlRootDir'],_0x557eb2);if(!await fileExists(_0x3fde4e))return;const _0x54082b=await moveToTrash(_0x3cd53d[_0x26e2f7(0xcb)],_0x3cd53d[_0x26e2f7(0xc7)],_0x3fde4e);await cleanupEmptyDirectories(dirname(_0x3fde4e),_0x3cd53d[_0x26e2f7(0xae)]),void _0x54082b;}async function moveToTrash(_0x6d2806,_0x3e30ff,_0x598337){const _0x50c5ea=a190_0xd762b3,_0x279d73=new Date()[_0x50c5ea(0x94)]()[_0x50c5ea(0x97)](/[:.]/g,'-'),_0x15f5dd=relative(_0x6d2806,_0x598337),_0x1985a7=join(_0x3e30ff,_0x279d73,_0x15f5dd);return await mkdir(dirname(_0x1985a7),{'recursive':!![]}),await rename(_0x598337,_0x1985a7),_0x1985a7;}async function cleanupEmptyDirectories(_0x44f9c4,_0x3e0b6a){const _0x478d6e=a190_0xd762b3;let _0x43caed=resolve(_0x44f9c4);const _0x29d620=resolve(_0x3e0b6a);while(_0x43caed['startsWith'](''+_0x29d620+sep)||_0x43caed===_0x29d620){if(_0x43caed===_0x29d620)return;try{const _0x5eafee=await readdir(_0x43caed);if(_0x5eafee[_0x478d6e(0xc4)]>0x0)return;await rmdir(_0x43caed);}catch{return;}_0x43caed=dirname(_0x43caed);}}async function resolveTargetDbBinding(_0x515a9a,_0x577de5,_0x5a9003){const _0x5a1dcc=a190_0xd762b3,_0x406fa1=_0x577de5[_0x5a1dcc(0xa1)];if(!_0x406fa1)return{'dbId':_0x5a9003[_0x5a1dcc(0xc0)],'dbName':_0x5a9003[_0x5a1dcc(0x9f)]};const _0x3fee55=buildDbDirectoryName(_0x5a9003[_0x5a1dcc(0x9f)],_0x5a9003[_0x5a1dcc(0xc0)]);if(_0x406fa1===_0x3fee55)return{'dbId':_0x5a9003[_0x5a1dcc(0xc0)],'dbName':_0x5a9003[_0x5a1dcc(0x9f)]};const _0x54fe62=parseExplicitDbDirectory(_0x406fa1);if(_0x54fe62!=null)return{'dbId':_0x54fe62,'dbName':await getDbName(_0x515a9a,_0x54fe62)[_0x5a1dcc(0x9b)](()=>undefined)};const _0x1f77db=await listDatabases(_0x515a9a),_0x1e71b5=_0x1f77db['filter'](_0x681517=>buildDbDirectoryName(_0x681517[_0x5a1dcc(0x9f)],_0x681517[_0x5a1dcc(0xc0)])===_0x406fa1);if(_0x1e71b5['length']===0x1)return{'dbId':_0x1e71b5[0x0]['dbId'],'dbName':_0x1e71b5[0x0]['dbName']};if(_0x1e71b5[_0x5a1dcc(0xc4)]===0x0)throw CliErrors[_0x5a1dcc(0xad)]('No\x20database\x20matches\x20local\x20directory\x20\x22'+_0x406fa1+'\x22\x20for\x20sqlCode\x20'+_0x577de5[_0x5a1dcc(0xc6)]+'.');const _0x3df86a=_0x1e71b5[_0x5a1dcc(0x95)](_0x3ce5f4=>_0x3ce5f4[_0x5a1dcc(0x9f)]+'\x20('+_0x3ce5f4[_0x5a1dcc(0xc0)]+')')[_0x5a1dcc(0xd2)](',\x20');throw CliErrors[_0x5a1dcc(0xad)](_0x5a1dcc(0xaa)+_0x406fa1+_0x5a1dcc(0xac)+_0x577de5[_0x5a1dcc(0xc6)]+':\x20'+_0x3df86a);}function parseExplicitDbDirectory(_0x266f38){const _0x3ffe94=a190_0xd762b3,_0x240d47=/^db-(\d+)$/[_0x3ffe94(0xb2)](_0x266f38);if(!_0x240d47)return null;const _0x52d28a=Number(_0x240d47[0x1]);return Number[_0x3ffe94(0xb1)](_0x52d28a)&&_0x52d28a>0x0?_0x52d28a:null;}
@@ -1 +1 @@
1
- const a191_0x56adec=a191_0x47c7;function a191_0x47c7(_0x2bd04b,_0x5071a8){_0x2bd04b=_0x2bd04b-0xdb;const _0x3d303a=a191_0x3d30();let _0x47c7d7=_0x3d303a[_0x2bd04b];return _0x47c7d7;}(function(_0xf3e302,_0x35b85e){const _0x478bc9=a191_0x47c7,_0x59213d=_0xf3e302();while(!![]){try{const _0x50a900=-parseInt(_0x478bc9(0xf6))/0x1*(parseInt(_0x478bc9(0xf2))/0x2)+-parseInt(_0x478bc9(0xf3))/0x3+-parseInt(_0x478bc9(0xe1))/0x4+-parseInt(_0x478bc9(0xfa))/0x5+-parseInt(_0x478bc9(0xe5))/0x6*(-parseInt(_0x478bc9(0xdb))/0x7)+parseInt(_0x478bc9(0xf9))/0x8+-parseInt(_0x478bc9(0xfe))/0x9*(-parseInt(_0x478bc9(0xe3))/0xa);if(_0x50a900===_0x35b85e)break;else _0x59213d['push'](_0x59213d['shift']());}catch(_0x2f0067){_0x59213d['push'](_0x59213d['shift']());}}}(a191_0x3d30,0x6fb98));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=a191_0x56adec(0xf8);export function buildSqlLockEntry(_0x51898d,_0x5d289d,_0x2e8af8,_0x357325){const _0x1b1834=a191_0x56adec,_0x590f55=detectSqlMode(_0x5d289d);return{'path':buildSqlRelativePath(_0x51898d['sqlCode'],_0x51898d['sqlName'],_0x357325?.[_0x1b1834(0xf1)],_0x590f55,_0x51898d['dbId']),'hash':_0x2e8af8,'remoteId':_0x51898d['id'],'version':_0x51898d[_0x1b1834(0xe9)],'dbId':Number(_0x51898d[_0x1b1834(0xfd)]),'dbName':_0x357325?.[_0x1b1834(0xf1)],'sqlName':_0x51898d[_0x1b1834(0xde)],'sqlConfig':_0x51898d[_0x1b1834(0xfb)]??undefined,'mode':_0x590f55};}export function cloneSqlLockData(_0xa15dd9){const _0x265cb8=a191_0x56adec;return{'apps':Object['fromEntries'](Object[_0x265cb8(0x101)](_0xa15dd9['apps'])['map'](([_0x2e5909,_0x59d5af])=>[_0x2e5909,{'sqlRoot':_0x59d5af[_0x265cb8(0xdc)],'lastSync':_0x59d5af[_0x265cb8(0xef)],'sqls':{..._0x59d5af[_0x265cb8(0xf0)]}}]))};}export function ensureRemoteSqlContent(_0x52cafb){const _0x5a4f39=a191_0x56adec;return _0x52cafb[_0x5a4f39(0xeb)]??'';}export function buildLocalSqlFileContent(_0x9fa827,_0x558d34,_0x1c4243){const _0x5d2067=a191_0x56adec,_0x609ebb=_0x1c4243?.[_0x5d2067(0xf5)]??detectSqlMode(_0x558d34),_0x3763c4=stripLocalSqlMetadata(_0x558d34,_0x609ebb)[_0x5d2067(0xe8)](),_0x297e4d=[...buildMetadataHeaderLines({'sqlCode':_0x9fa827['sqlCode'],'sqlName':_0x9fa827[_0x5d2067(0xde)],'dbId':_0x9fa827[_0x5d2067(0xfd)],'dbName':_0x1c4243?.['dbName'],'mode':_0x609ebb,'syncedAt':_0x1c4243?.[_0x5d2067(0xf4)],'description':_0x1c4243?.['description']},_0x609ebb),'',_0x3763c4],_0x35fce9=_0x297e4d[_0x5d2067(0xe7)]('\x0a');return _0x35fce9[_0x5d2067(0xe0)]('\x0a')?_0x35fce9:_0x35fce9+'\x0a';}export function stripLocalSqlMetadata(_0x2c8705,_0x1d15b2){const _0x4f8e12=a191_0x56adec,_0x4f6eb3=_0x2c8705[_0x4f8e12(0x105)](/\r\n/g,'\x0a')[_0x4f8e12(0x102)]('\x0a'),_0x5dd42c=[];let _0x28c90d=0x0;if(_0x1d15b2===_0x4f8e12(0xed))while(_0x28c90d<_0x4f6eb3[_0x4f8e12(0xe6)]){const _0x2ea150=_0x4f6eb3[_0x28c90d]??'';if(/^\s*<!--\s*@lovrabet\./[_0x4f8e12(0x106)](_0x2ea150)){_0x28c90d++;continue;}if(_0x2ea150[_0x4f8e12(0xe8)]()===''&&_0x28c90d>0x0){_0x28c90d++;continue;}break;}else while(_0x28c90d<_0x4f6eb3[_0x4f8e12(0xe6)]){const _0x493414=_0x4f6eb3[_0x28c90d]??'';if(/^\s*--\s*@lovrabet\./[_0x4f8e12(0x106)](_0x493414)){_0x28c90d++;continue;}if(_0x493414['trim']()===''&&_0x28c90d>0x0){_0x28c90d++;continue;}break;}for(;_0x28c90d<_0x4f6eb3[_0x4f8e12(0xe6)];_0x28c90d++){_0x5dd42c['push'](_0x4f6eb3[_0x28c90d]);}return _0x5dd42c[_0x4f8e12(0xe7)]('\x0a')[_0x4f8e12(0xea)]();}export function resolveSqlMode(_0xf004f7,_0x560123){const _0x7afff9=a191_0x56adec;if(_0x560123?.['mode'])return _0x560123[_0x7afff9(0xf5)];return detectSqlMode(_0xf004f7);}export function resolveSqlFileName(_0x30a81f,_0xd2a20a,_0x4f2ff2){const _0x24662d=a191_0x56adec;if(_0x4f2ff2?.['path'])return _0x4f2ff2[_0x24662d(0x100)];if(_0x4f2ff2?.[_0x24662d(0xde)]||_0x4f2ff2?.[_0x24662d(0xf1)])return buildSqlRelativePath(_0x30a81f,_0x4f2ff2?.['sqlName'],_0x4f2ff2?.[_0x24662d(0xf1)],resolveSqlMode(_0xd2a20a,_0x4f2ff2),_0x4f2ff2?.[_0x24662d(0xfd)]);return buildDefaultSqlFileName(_0x30a81f,resolveSqlMode(_0xd2a20a,_0x4f2ff2));}export function resolveSqlLocalDir(_0x2ecdd0,_0xec5368){return join(_0x2ecdd0,SQL_LOCAL_REL_DIR,_0xec5368);}export async function confirmForceOverwrite(_0x3e7576){const _0x377f12=a191_0x56adec,_0x1ae9be=createInterface({'input':process['stdin'],'output':process[_0x377f12(0xee)]}),_0x17225b=await new Promise(_0x1405e9=>{const _0x2aa3d7=_0x377f12;_0x1ae9be[_0x2aa3d7(0xe2)](_0x3e7576+'\x20[y/N]\x20',_0x1405e9);});return _0x1ae9be[_0x377f12(0x104)](),['y',_0x377f12(0xfc)]['includes'](_0x17225b[_0x377f12(0xe8)]()['toLowerCase']());}function a191_0x3d30(){const _0x4e6cc4=['trim','version','trimStart','sqlContent','sqlCode','mybatisXml','stderr','lastSync','sqls','dbName','238428SamVpM','1660215JARsBH','syncedAt','mode','1qBkXKL','description','.rabetbase/sql','5647880KKCYUq','2083515fzOsue','sqlConfig','yes','dbId','931977JRUykD','map','path','entries','split','\x20-->','close','replace','test','184408MCMMKZ','sqlRoot','apps','sqlName','filter','endsWith','3300008fjXTqn','question','110ybtBsN','<!--\x20@lovrabet.','120jSlCgN','length','join'];a191_0x3d30=function(){return _0x4e6cc4;};return a191_0x3d30();}export function findSqlLockScope(_0x5c451d,_0x285a17){const _0x24def4=a191_0x56adec;return _0x5c451d[_0x24def4(0xdd)][_0x285a17];}function buildMetadataHeaderLines(_0x57ac80,_0x16695a){const _0x441025=a191_0x56adec,_0x560fbb=[[_0x441025(0xec),_0x57ac80['sqlCode']],['sqlName',_0x57ac80[_0x441025(0xde)]],[_0x441025(0xfd),_0x57ac80[_0x441025(0xfd)]],[_0x441025(0xf1),_0x57ac80[_0x441025(0xf1)]],[_0x441025(0xf5),_0x57ac80[_0x441025(0xf5)]],[_0x441025(0xf4),_0x57ac80[_0x441025(0xf4)]],[_0x441025(0xf7),_0x57ac80[_0x441025(0xf7)]]];if(_0x16695a===_0x441025(0xed))return _0x560fbb[_0x441025(0xdf)](([,_0x25dcd3])=>_0x25dcd3!==undefined&&_0x25dcd3!==null&&String(_0x25dcd3)['trim']()!=='')[_0x441025(0xff)](([_0x16ee72,_0x1ff20])=>_0x441025(0xe4)+_0x16ee72+':\x20'+String(_0x1ff20)+_0x441025(0x103));return _0x560fbb[_0x441025(0xdf)](([,_0x9c350e])=>_0x9c350e!==undefined&&_0x9c350e!==null&&String(_0x9c350e)[_0x441025(0xe8)]()!=='')[_0x441025(0xff)](([_0x3b091c,_0x351eb1])=>'--\x20@lovrabet.'+_0x3b091c+':\x20'+String(_0x351eb1));}
1
+ const a191_0x2923d2=a191_0x2224;(function(_0x112f6e,_0x42a51c){const _0x242d1f=a191_0x2224,_0x516a18=_0x112f6e();while(!![]){try{const _0x40795b=-parseInt(_0x242d1f(0x1a4))/0x1+-parseInt(_0x242d1f(0x1c2))/0x2*(parseInt(_0x242d1f(0x1c4))/0x3)+-parseInt(_0x242d1f(0x1c9))/0x4+-parseInt(_0x242d1f(0x1a7))/0x5+parseInt(_0x242d1f(0x1ad))/0x6*(-parseInt(_0x242d1f(0x1c8))/0x7)+-parseInt(_0x242d1f(0x1bd))/0x8+parseInt(_0x242d1f(0x1c5))/0x9;if(_0x40795b===_0x42a51c)break;else _0x516a18['push'](_0x516a18['shift']());}catch(_0x37cb95){_0x516a18['push'](_0x516a18['shift']());}}}(a191_0x3d7f,0xabc3a));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=a191_0x2923d2(0x1a8);export function buildSqlLockEntry(_0x1bddbd,_0x3e3d15,_0x7adb13,_0x282112){const _0x272ff8=a191_0x2923d2,_0x258341=detectSqlMode(_0x3e3d15);return{'path':buildSqlRelativePath(_0x1bddbd[_0x272ff8(0x1c6)],_0x1bddbd[_0x272ff8(0x1b3)],_0x282112?.[_0x272ff8(0x1b6)],_0x258341,_0x1bddbd[_0x272ff8(0x1ba)]),'hash':_0x7adb13,'remoteId':_0x1bddbd['id'],'version':_0x1bddbd['version'],'dbId':Number(_0x1bddbd[_0x272ff8(0x1ba)]),'dbName':_0x282112?.['dbName'],'sqlName':_0x1bddbd['sqlName'],'sqlConfig':_0x1bddbd['sqlConfig']??undefined,'mode':_0x258341};}export function cloneSqlLockData(_0x5af817){const _0x1a3f65=a191_0x2923d2;return{'apps':Object[_0x1a3f65(0x1a6)](Object[_0x1a3f65(0x1a3)](_0x5af817[_0x1a3f65(0x1ab)])[_0x1a3f65(0x1b0)](([_0x5db0d0,_0x41330b])=>[_0x5db0d0,{'sqlRoot':_0x41330b[_0x1a3f65(0x1bf)],'lastSync':_0x41330b['lastSync'],'sqls':{..._0x41330b[_0x1a3f65(0x1b1)]}}]))};}function a191_0x3d7f(){const _0x30e782=['sqlCode','trimStart','132713MoXIlb','3694584OOkEjT','question','entries','604855iDxnOC','sqlContent','fromEntries','4927620xjwJzh','.rabetbase/sql','trim','\x20-->','apps','description','78iZeiit','filter','mode','map','sqls','stdin','sqlName','join','mybatisXml','dbName','replace','test','endsWith','dbId','syncedAt','--\x20@lovrabet.','903976hiccsn','path','sqlRoot','\x20[y/N]\x20','toLowerCase','2RowDZq','length','1440618NgnNmS','36515169lBAouS'];a191_0x3d7f=function(){return _0x30e782;};return a191_0x3d7f();}export function ensureRemoteSqlContent(_0x2568b7){const _0x3bd383=a191_0x2923d2;return _0x2568b7[_0x3bd383(0x1a5)]??'';}export function buildLocalSqlFileContent(_0x725794,_0x43a672,_0x330723){const _0x1b09dd=a191_0x2923d2,_0x37dab4=_0x330723?.[_0x1b09dd(0x1af)]??detectSqlMode(_0x43a672),_0x293139=stripLocalSqlMetadata(_0x43a672,_0x37dab4)['trim'](),_0x496c7f=[...buildMetadataHeaderLines({'sqlCode':_0x725794[_0x1b09dd(0x1c6)],'sqlName':_0x725794['sqlName'],'dbId':_0x725794[_0x1b09dd(0x1ba)],'dbName':_0x330723?.[_0x1b09dd(0x1b6)],'mode':_0x37dab4,'syncedAt':_0x330723?.[_0x1b09dd(0x1bb)],'description':_0x330723?.['description']},_0x37dab4),'',_0x293139],_0x2833f6=_0x496c7f[_0x1b09dd(0x1b4)]('\x0a');return _0x2833f6[_0x1b09dd(0x1b9)]('\x0a')?_0x2833f6:_0x2833f6+'\x0a';}export function stripLocalSqlMetadata(_0x51d7ae,_0x19fc44){const _0xb933e7=a191_0x2923d2,_0x51fa29=_0x51d7ae[_0xb933e7(0x1b7)](/\r\n/g,'\x0a')['split']('\x0a'),_0x4870b9=[];let _0x125443=0x0;if(_0x19fc44===_0xb933e7(0x1b5))while(_0x125443<_0x51fa29['length']){const _0x1f58df=_0x51fa29[_0x125443]??'';if(/^\s*<!--\s*@lovrabet\./[_0xb933e7(0x1b8)](_0x1f58df)){_0x125443++;continue;}if(_0x1f58df[_0xb933e7(0x1a9)]()===''&&_0x125443>0x0){_0x125443++;continue;}break;}else while(_0x125443<_0x51fa29[_0xb933e7(0x1c3)]){const _0x3e462c=_0x51fa29[_0x125443]??'';if(/^\s*--\s*@lovrabet\./[_0xb933e7(0x1b8)](_0x3e462c)){_0x125443++;continue;}if(_0x3e462c[_0xb933e7(0x1a9)]()===''&&_0x125443>0x0){_0x125443++;continue;}break;}for(;_0x125443<_0x51fa29[_0xb933e7(0x1c3)];_0x125443++){_0x4870b9['push'](_0x51fa29[_0x125443]);}return _0x4870b9['join']('\x0a')[_0xb933e7(0x1c7)]();}export function resolveSqlMode(_0x17c45c,_0x27e8bc){const _0x4ef1c8=a191_0x2923d2;if(_0x27e8bc?.['mode'])return _0x27e8bc[_0x4ef1c8(0x1af)];return detectSqlMode(_0x17c45c);}export function resolveSqlFileName(_0xdc2574,_0x2a61e3,_0x4ed810){const _0xf21d77=a191_0x2923d2;if(_0x4ed810?.[_0xf21d77(0x1be)])return _0x4ed810['path'];if(_0x4ed810?.[_0xf21d77(0x1b3)]||_0x4ed810?.[_0xf21d77(0x1b6)])return buildSqlRelativePath(_0xdc2574,_0x4ed810?.[_0xf21d77(0x1b3)],_0x4ed810?.[_0xf21d77(0x1b6)],resolveSqlMode(_0x2a61e3,_0x4ed810),_0x4ed810?.[_0xf21d77(0x1ba)]);return buildDefaultSqlFileName(_0xdc2574,resolveSqlMode(_0x2a61e3,_0x4ed810));}export function resolveSqlLocalDir(_0x14a3c8,_0x382727){return join(_0x14a3c8,SQL_LOCAL_REL_DIR,_0x382727);}export async function confirmForceOverwrite(_0x2ca30f){const _0x5c3d5f=a191_0x2923d2,_0x3f8705=createInterface({'input':process[_0x5c3d5f(0x1b2)],'output':process['stderr']}),_0x15a860=await new Promise(_0x21e0a0=>{const _0x39cc62=_0x5c3d5f;_0x3f8705[_0x39cc62(0x1a2)](_0x2ca30f+_0x39cc62(0x1c0),_0x21e0a0);});return _0x3f8705['close'](),['y','yes']['includes'](_0x15a860['trim']()[_0x5c3d5f(0x1c1)]());}function a191_0x2224(_0x2b80ce,_0x38ef1a){_0x2b80ce=_0x2b80ce-0x1a2;const _0x3d7f3e=a191_0x3d7f();let _0x22246e=_0x3d7f3e[_0x2b80ce];return _0x22246e;}export function findSqlLockScope(_0x47a2b6,_0x11845e){const _0xdd3552=a191_0x2923d2;return _0x47a2b6[_0xdd3552(0x1ab)][_0x11845e];}function buildMetadataHeaderLines(_0x517df9,_0x158843){const _0x2dcfea=a191_0x2923d2,_0x3e8c01=[[_0x2dcfea(0x1c6),_0x517df9[_0x2dcfea(0x1c6)]],[_0x2dcfea(0x1b3),_0x517df9['sqlName']],[_0x2dcfea(0x1ba),_0x517df9['dbId']],[_0x2dcfea(0x1b6),_0x517df9['dbName']],['mode',_0x517df9[_0x2dcfea(0x1af)]],[_0x2dcfea(0x1bb),_0x517df9[_0x2dcfea(0x1bb)]],[_0x2dcfea(0x1ac),_0x517df9[_0x2dcfea(0x1ac)]]];if(_0x158843==='mybatisXml')return _0x3e8c01[_0x2dcfea(0x1ae)](([,_0x500d2e])=>_0x500d2e!==undefined&&_0x500d2e!==null&&String(_0x500d2e)[_0x2dcfea(0x1a9)]()!=='')['map'](([_0x1e7f9b,_0x3524ba])=>'<!--\x20@lovrabet.'+_0x1e7f9b+':\x20'+String(_0x3524ba)+_0x2dcfea(0x1aa));return _0x3e8c01[_0x2dcfea(0x1ae)](([,_0x2b20af])=>_0x2b20af!==undefined&&_0x2b20af!==null&&String(_0x2b20af)[_0x2dcfea(0x1a9)]()!=='')[_0x2dcfea(0x1b0)](([_0x2f5e2c,_0xb28bdd])=>_0x2dcfea(0x1bc)+_0x2f5e2c+':\x20'+String(_0xb28bdd));}
@@ -1 +1 @@
1
- const a192_0x41d37c=a192_0x3113;function a192_0xf370(){const _0x3f28a0=['701345NmVdHf','\x20modified,\x20','remote','11733UHgnUj','bool','path','2251290rLOkdp','map','keys','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','18fqqUYp','length','sql','1259461XquJqK','12290982vYSSns','sqlName','push','tableData','appCode','filePath','boolean','lockKey','All\x20SQL\x20queries\x20are\x20in\x20sync.','8562cBzJIq','7353BGJBIx','sqlCode','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','4152ZnhWoT','\x20missing,\x20','128dokFbh','\x20added,\x20','hash','sqls','19YPPIph','totalCount','relativePath','has'];a192_0xf370=function(){return _0x3f28a0;};return a192_0xf370();}(function(_0x14f0f1,_0x393f42){const _0x95f068=a192_0x3113,_0x34297a=_0x14f0f1();while(!![]){try{const _0x5d7e5c=-parseInt(_0x95f068(0x175))/0x1*(-parseInt(_0x95f068(0x16b))/0x2)+parseInt(_0x95f068(0x157))/0x3*(parseInt(_0x95f068(0x171))/0x4)+parseInt(_0x95f068(0x154))/0x5+-parseInt(_0x95f068(0x15e))/0x6*(-parseInt(_0x95f068(0x161))/0x7)+-parseInt(_0x95f068(0x16f))/0x8*(-parseInt(_0x95f068(0x16c))/0x9)+parseInt(_0x95f068(0x15a))/0xa+-parseInt(_0x95f068(0x162))/0xb;if(_0x5d7e5c===_0x393f42)break;else _0x34297a['push'](_0x34297a['shift']());}catch(_0x24ac20){_0x34297a['push'](_0x34297a['shift']());}}}(a192_0xf370,0x6620f));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a192_0x3113(_0x3917d5,_0x3a62bf){_0x3917d5=_0x3917d5-0x151;const _0xf3701a=a192_0xf370();let _0x311358=_0xf3701a[_0x3917d5];return _0x311358;}async function fetchAllSqlCodes(_0x303994){const _0x545fbb=a192_0x3113,_0x57b4db=[];let _0x5a9e1e=0x1;while(!![]){const _0x2c1948=await listSqlQueries(_0x303994,{'currentPage':_0x5a9e1e,'pageSize':PAGE_SIZE}),_0x139f97=_0x2c1948[_0x545fbb(0x165)]??[];_0x57b4db['push'](..._0x139f97['map'](_0x5f4845=>_0x5f4845[_0x545fbb(0x16d)]));if(_0x139f97[_0x545fbb(0x15f)]===0x0)break;const _0x1da8fc=_0x2c1948['paging']?.[_0x545fbb(0x151)];if(_0x1da8fc!=null?_0x57b4db['length']>=_0x1da8fc:_0x139f97[_0x545fbb(0x15f)]<PAGE_SIZE)break;_0x5a9e1e++;}return _0x57b4db;}export const sqlStatus={'service':a192_0x41d37c(0x160),'command':'status','description':a192_0x41d37c(0x16e),'risk':'read','flags':[{'name':a192_0x41d37c(0x156),'type':a192_0x41d37c(0x168),'description':a192_0x41d37c(0x15d)}],async 'execute'(_0x28f9c3){const _0x56370e=a192_0x41d37c,_0x1f6ef3=loadSqlProjectConfig(_0x28f9c3[_0x56370e(0x166)]),_0x32710a=await readSqlLockFile(_0x1f6ef3['lockFilePath']),{appLock:_0x1a92e5}=ensureSqlLockScope(_0x32710a??createEmptySqlLock(),_0x1f6ef3['appCode'],_0x1f6ef3['sqlRoot'],'status'),_0x5f181f=await scanLocalSqlQueries(_0x1f6ef3),_0x3b51d2=[],_0x242247=[],_0x431a78=[],_0x19bfb3=[],_0x244175=new Set(_0x5f181f[_0x56370e(0x15b)](_0x3aef58=>_0x3aef58[_0x56370e(0x169)]));for(const _0x30fd82 of _0x5f181f){const _0x2367cb=await computeSqlFileHash(_0x30fd82[_0x56370e(0x167)]),_0x3aefb0=_0x1a92e5[_0x56370e(0x174)][_0x30fd82[_0x56370e(0x169)]],_0x4c40eb=!!_0x3aefb0&&_0x3aefb0[_0x56370e(0x159)]!==_0x30fd82[_0x56370e(0x152)],_0x471195=!!_0x3aefb0&&!!_0x30fd82[_0x56370e(0x163)]&&_0x3aefb0['sqlName']!==_0x30fd82[_0x56370e(0x163)];if(!_0x3aefb0)_0x3b51d2['push'](_0x30fd82[_0x56370e(0x169)]);else _0x3aefb0[_0x56370e(0x173)]!==_0x2367cb||_0x4c40eb||_0x471195?_0x242247[_0x56370e(0x164)](_0x30fd82['lockKey']):_0x431a78[_0x56370e(0x164)](_0x30fd82['lockKey']);}for(const _0xb9ec5a of Object[_0x56370e(0x15c)](_0x1a92e5[_0x56370e(0x174)])){!_0x244175[_0x56370e(0x153)](_0xb9ec5a)&&_0x19bfb3[_0x56370e(0x164)](_0xb9ec5a);}const _0x14caea=[];if(_0x28f9c3[_0x56370e(0x158)](_0x56370e(0x156))){const _0x555d69=await fetchAllSqlCodes(_0x28f9c3[_0x56370e(0x166)]);for(const _0x37414d of _0x555d69){!_0x244175[_0x56370e(0x153)](_0x37414d)&&!_0x1a92e5[_0x56370e(0x174)][_0x37414d]&&_0x14caea[_0x56370e(0x164)](_0x37414d);}}const _0x25c374=_0x3b51d2[_0x56370e(0x15f)]===0x0&&_0x242247[_0x56370e(0x15f)]===0x0&&_0x19bfb3[_0x56370e(0x15f)]===0x0&&_0x14caea[_0x56370e(0x15f)]===0x0;return{'ok':!![],'data':{'added':_0x3b51d2,'modified':_0x242247,'missing':_0x19bfb3,'unchanged':_0x431a78,'remoteOnly':_0x14caea},'message':_0x25c374?_0x56370e(0x16a):_0x3b51d2[_0x56370e(0x15f)]+_0x56370e(0x172)+_0x242247[_0x56370e(0x15f)]+_0x56370e(0x155)+_0x19bfb3[_0x56370e(0x15f)]+_0x56370e(0x170)+_0x431a78['length']+'\x20unchanged'+(_0x14caea[_0x56370e(0x15f)]>0x0?',\x20'+_0x14caea[_0x56370e(0x15f)]+'\x20remote-only':'')};}};
1
+ const a192_0x5376a4=a192_0x23fe;(function(_0x5a55d1,_0x20c646){const _0x4ba6f6=a192_0x23fe,_0x30f1fa=_0x5a55d1();while(!![]){try{const _0x4fba4b=parseInt(_0x4ba6f6(0x1aa))/0x1+-parseInt(_0x4ba6f6(0x1b1))/0x2*(-parseInt(_0x4ba6f6(0x1bc))/0x3)+-parseInt(_0x4ba6f6(0x1b3))/0x4+-parseInt(_0x4ba6f6(0x1b8))/0x5*(parseInt(_0x4ba6f6(0x1a5))/0x6)+parseInt(_0x4ba6f6(0x1c4))/0x7+-parseInt(_0x4ba6f6(0x1ac))/0x8+parseInt(_0x4ba6f6(0x1ae))/0x9;if(_0x4fba4b===_0x20c646)break;else _0x30f1fa['push'](_0x30f1fa['shift']());}catch(_0x16face){_0x30f1fa['push'](_0x30f1fa['shift']());}}}(a192_0x20a2,0x4127d));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a192_0x20a2(){const _0x549e42=['1273853Gocjdu','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','length','remote','lockKey','filePath','1722uWIqoR','sqlCode','read','path','keys','167793dcVRat','sqls','807864JsaZCv','has','7162767VEyrJf','sqlName','boolean','97982tTjjFs','paging','2099024yKCiXG','totalCount','status','sql','appCode','6115bDhhOg','\x20missing,\x20','sqlRoot','relativePath','6rsBYJx','tableData','push','map','bool','All\x20SQL\x20queries\x20are\x20in\x20sync.','\x20remote-only','hash'];a192_0x20a2=function(){return _0x549e42;};return a192_0x20a2();}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a192_0x23fe(_0x253697,_0x7bc9d7){_0x253697=_0x253697-0x1a0;const _0x20a25a=a192_0x20a2();let _0x23fec5=_0x20a25a[_0x253697];return _0x23fec5;}async function fetchAllSqlCodes(_0x2033d4){const _0x16eb50=a192_0x23fe,_0x3339a2=[];let _0x55a383=0x1;while(!![]){const _0x4cacff=await listSqlQueries(_0x2033d4,{'currentPage':_0x55a383,'pageSize':PAGE_SIZE}),_0x2abf79=_0x4cacff[_0x16eb50(0x1bd)]??[];_0x3339a2['push'](..._0x2abf79['map'](_0x2fbc02=>_0x2fbc02[_0x16eb50(0x1a6)]));if(_0x2abf79['length']===0x0)break;const _0x1b934b=_0x4cacff[_0x16eb50(0x1b2)]?.[_0x16eb50(0x1b4)];if(_0x1b934b!=null?_0x3339a2[_0x16eb50(0x1a1)]>=_0x1b934b:_0x2abf79[_0x16eb50(0x1a1)]<PAGE_SIZE)break;_0x55a383++;}return _0x3339a2;}export const sqlStatus={'service':a192_0x5376a4(0x1b6),'command':a192_0x5376a4(0x1b5),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a192_0x5376a4(0x1a7),'flags':[{'name':a192_0x5376a4(0x1a2),'type':a192_0x5376a4(0x1b0),'description':a192_0x5376a4(0x1a0)}],async 'execute'(_0x300041){const _0x5778f0=a192_0x5376a4,_0x20d156=loadSqlProjectConfig(_0x300041[_0x5778f0(0x1b7)]),_0x27dec5=await readSqlLockFile(_0x20d156['lockFilePath']),{appLock:_0x16c9b7}=ensureSqlLockScope(_0x27dec5??createEmptySqlLock(),_0x20d156[_0x5778f0(0x1b7)],_0x20d156[_0x5778f0(0x1ba)],_0x5778f0(0x1b5)),_0xad9c53=await scanLocalSqlQueries(_0x20d156),_0x38acc3=[],_0x305e0c=[],_0xbb10a2=[],_0x48ccc9=[],_0x3897db=new Set(_0xad9c53[_0x5778f0(0x1bf)](_0x303c82=>_0x303c82[_0x5778f0(0x1a3)]));for(const _0x365b3b of _0xad9c53){const _0x4cf5ff=await computeSqlFileHash(_0x365b3b[_0x5778f0(0x1a4)]),_0x7c889b=_0x16c9b7['sqls'][_0x365b3b[_0x5778f0(0x1a3)]],_0x1976cc=!!_0x7c889b&&_0x7c889b[_0x5778f0(0x1a8)]!==_0x365b3b[_0x5778f0(0x1bb)],_0x5be835=!!_0x7c889b&&!!_0x365b3b[_0x5778f0(0x1af)]&&_0x7c889b['sqlName']!==_0x365b3b[_0x5778f0(0x1af)];if(!_0x7c889b)_0x38acc3[_0x5778f0(0x1be)](_0x365b3b[_0x5778f0(0x1a3)]);else _0x7c889b[_0x5778f0(0x1c3)]!==_0x4cf5ff||_0x1976cc||_0x5be835?_0x305e0c[_0x5778f0(0x1be)](_0x365b3b[_0x5778f0(0x1a3)]):_0xbb10a2[_0x5778f0(0x1be)](_0x365b3b[_0x5778f0(0x1a3)]);}for(const _0x2184df of Object[_0x5778f0(0x1a9)](_0x16c9b7['sqls'])){!_0x3897db[_0x5778f0(0x1ad)](_0x2184df)&&_0x48ccc9[_0x5778f0(0x1be)](_0x2184df);}const _0x3ed3da=[];if(_0x300041[_0x5778f0(0x1c0)](_0x5778f0(0x1a2))){const _0x3007b1=await fetchAllSqlCodes(_0x300041['appCode']);for(const _0x277192 of _0x3007b1){!_0x3897db['has'](_0x277192)&&!_0x16c9b7[_0x5778f0(0x1ab)][_0x277192]&&_0x3ed3da[_0x5778f0(0x1be)](_0x277192);}}const _0x35e830=_0x38acc3['length']===0x0&&_0x305e0c[_0x5778f0(0x1a1)]===0x0&&_0x48ccc9[_0x5778f0(0x1a1)]===0x0&&_0x3ed3da[_0x5778f0(0x1a1)]===0x0;return{'ok':!![],'data':{'added':_0x38acc3,'modified':_0x305e0c,'missing':_0x48ccc9,'unchanged':_0xbb10a2,'remoteOnly':_0x3ed3da},'message':_0x35e830?_0x5778f0(0x1c1):_0x38acc3[_0x5778f0(0x1a1)]+'\x20added,\x20'+_0x305e0c[_0x5778f0(0x1a1)]+'\x20modified,\x20'+_0x48ccc9['length']+_0x5778f0(0x1b9)+_0xbb10a2[_0x5778f0(0x1a1)]+'\x20unchanged'+(_0x3ed3da['length']>0x0?',\x20'+_0x3ed3da[_0x5778f0(0x1a1)]+_0x5778f0(0x1c2):'')};}};
@@ -1 +1 @@
1
- const a193_0x1f8229=a193_0x1f2a;(function(_0x3835c0,_0x5a91ad){const _0x249122=a193_0x1f2a,_0x20fd8d=_0x3835c0();while(!![]){try{const _0x56d0d9=parseInt(_0x249122(0x155))/0x1+-parseInt(_0x249122(0x149))/0x2*(-parseInt(_0x249122(0x14c))/0x3)+-parseInt(_0x249122(0x187))/0x4+-parseInt(_0x249122(0x18c))/0x5*(parseInt(_0x249122(0x162))/0x6)+parseInt(_0x249122(0x17e))/0x7*(parseInt(_0x249122(0x16f))/0x8)+parseInt(_0x249122(0x17a))/0x9+-parseInt(_0x249122(0x15a))/0xa;if(_0x56d0d9===_0x5a91ad)break;else _0x20fd8d['push'](_0x20fd8d['shift']());}catch(_0x170607){_0x20fd8d['push'](_0x20fd8d['shift']());}}}(a193_0xa391,0xb7ad1));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';function a193_0xa391(){const _0x5396bf=['File\x20not\x20found:\x20','columnNames','name','map','type','isArray','file','\x22\x20not\x20found\x20in\x20any\x20dataset','10582047esoykd','toLowerCase','appCode','cwd','1537977gKXoXK','check-indexes','indexName','string','from','tables','schemas','message','Dataset\x20\x22','6007348AdRMPT','size','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','push','unshift','7895PPhZYN','find','31594kjXCeJ','flagMissing','trim','207DlSEeJ','validate','index_columns','utf-8','sql','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','dbtableConfig','tableName','Audit\x20top-level\x20JOIN\x20equality\x20predicates\x20against\x20dataset\x20index\x20metadata','727865gWaoQB','indexes','\x22\x20not\x20found\x20or\x20not\x20accessible','dataset','primary','8172980EtiOXK','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','parameters','filter','index_name','flatMap','length','fields','1374tXQZZY','str','columns','pkField','isSelectOnly','boolean','split','index_type','Table\x20\x22','read','sqlType','validation','reason','16geiTHc','--check-indexes\x20requires\x20--schemas.','Provide\x20--file\x20or\x20--sql'];a193_0xa391=function(){return _0x5396bf;};return a193_0xa391();}import{validateSql}from'../../core/sql-validator.js';import{auditSqlJoinIndexes}from'../../core/sql-index-auditor.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a193_0x1f2a(_0x147173,_0x481491){_0x147173=_0x147173-0x149;const _0xa39165=a193_0xa391();let _0x1f2a4c=_0xa39165[_0x147173];return _0x1f2a4c;}import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a193_0x1f8229(0x150),'command':a193_0x1f8229(0x14d),'description':a193_0x1f8229(0x15b),'risk':a193_0x1f8229(0x16b),'flags':[{'name':a193_0x1f8229(0x178),'type':a193_0x1f8229(0x181),'description':a193_0x1f8229(0x189)},{'name':a193_0x1f8229(0x150),'type':'string','description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a193_0x1f8229(0x184),'type':a193_0x1f8229(0x181),'description':a193_0x1f8229(0x151)},{'name':a193_0x1f8229(0x17f),'type':a193_0x1f8229(0x167),'description':a193_0x1f8229(0x154)}],async 'execute'(_0x5a4157){const _0x527ac5=a193_0x1f8229,_0xbec7ad=_0x5a4157[_0x527ac5(0x163)](_0x527ac5(0x178)),_0x2b483d=_0x5a4157[_0x527ac5(0x163)](_0x527ac5(0x150)),_0x45fbf6=_0x5a4157[_0x527ac5(0x163)]('schemas'),_0x298ff5=_0x5a4157['bool'](_0x527ac5(0x17f));if(!_0xbec7ad&&!_0x2b483d)throw CliErrors[_0x527ac5(0x14a)](_0x527ac5(0x178),_0x527ac5(0x171));if(_0x298ff5&&!_0x45fbf6)throw CliErrors[_0x527ac5(0x16d)](_0x527ac5(0x170));let _0x4f0091;if(_0xbec7ad){const _0x4ca1b8=resolve(process[_0x527ac5(0x17d)](),_0xbec7ad);if(!existsSync(_0x4ca1b8))throw CliErrors['validation'](_0x527ac5(0x172)+_0x4ca1b8);_0x4f0091=readFileSync(_0x4ca1b8,_0x527ac5(0x14f));}else _0x4f0091=_0x2b483d;const _0x52531f=validateSql(_0x4f0091),_0x1c441a={'valid':_0x52531f['valid'],'sqlType':_0x52531f[_0x527ac5(0x16c)]['type'],'isSelectOnly':_0x52531f[_0x527ac5(0x16c)][_0x527ac5(0x166)],'isDangerous':_0x52531f[_0x527ac5(0x16c)]['isDangerous'],'tables':_0x52531f[_0x527ac5(0x183)],'parameters':_0x52531f[_0x527ac5(0x15c)],'message':_0x52531f[_0x527ac5(0x185)]};_0x52531f['sqlType']['reason']&&(_0x1c441a[_0x527ac5(0x16e)]=_0x52531f[_0x527ac5(0x16c)]['reason']);if(_0x45fbf6&&_0x52531f['valid']){const _0x1d5f3e=_0x45fbf6[_0x527ac5(0x168)](',')[_0x527ac5(0x175)](_0x364cb1=>_0x364cb1[_0x527ac5(0x14b)]())[_0x527ac5(0x15d)](Boolean),_0x276249=[],_0x585f47=[],_0x3c0474=filterDbTableBackedDatasets(await listDatasets(_0x5a4157[_0x527ac5(0x17c)])),_0x16a2d4=new Map(_0x3c0474[_0x527ac5(0x175)](_0x5a0774=>[_0x5a0774[_0x527ac5(0x152)]?.['tableName']?.['toLowerCase'](),_0x5a0774]));for(const _0x49437f of _0x52531f['tables']){const _0x94fa42=_0x16a2d4['get'](_0x49437f[_0x527ac5(0x17b)]());!_0x94fa42&&_0x276249[_0x527ac5(0x18a)](_0x527ac5(0x16a)+_0x49437f+_0x527ac5(0x179));}for(const _0x270d7a of _0x1d5f3e){let _0x3d26a3;try{_0x3d26a3=await getDatasetDetail(_0x270d7a);}catch{_0x276249[_0x527ac5(0x18a)](_0x527ac5(0x186)+_0x270d7a+_0x527ac5(0x157));continue;}assertDatasetIsDbTableBacked(_0x3d26a3,'SQL\x20schema\x20validation');const _0x224d1f=Array[_0x527ac5(0x177)](_0x3d26a3[_0x527ac5(0x161)])?_0x3d26a3['fields']:[],_0x3d563d=new Set(_0x224d1f['map'](_0x393d2d=>_0x393d2d[_0x527ac5(0x174)]?.[_0x527ac5(0x17b)]())),_0xdb9d44=_0x3d26a3['dbtableConfig']?.[_0x527ac5(0x153)]||_0x3d26a3['tableName']||_0x270d7a;_0x1c441a['schema:'+_0xdb9d44]={'code':_0x270d7a,'tableName':_0xdb9d44,'fieldCount':_0x3d563d[_0x527ac5(0x188)],'fields':Array[_0x527ac5(0x182)](_0x3d563d)};if(_0x298ff5){const _0x583584=normalizeDatasetIndexes(_0x3d26a3);_0x585f47[_0x527ac5(0x18a)]({'tableName':_0xdb9d44,..._0x583584});}}_0x276249[_0x527ac5(0x160)]>0x0&&(_0x1c441a['schemaWarnings']=_0x276249),_0x298ff5&&(_0x1c441a['joinAudit']=auditSqlJoinIndexes(_0x4f0091,_0x585f47));}return{'ok':_0x52531f['valid'],'data':_0x1c441a,'message':_0x52531f[_0x527ac5(0x185)]};}};function normalizeDatasetIndexes(_0x1a2c7c){const _0x2af711=a193_0x1f8229,_0x4e3d5c=Array[_0x2af711(0x177)](_0x1a2c7c?.['dataset']?.['indexes'])?_0x1a2c7c[_0x2af711(0x158)][_0x2af711(0x156)]:Array[_0x2af711(0x177)](_0x1a2c7c?.[_0x2af711(0x156)])?_0x1a2c7c['indexes']:[],_0x1ded78=_0x4e3d5c[_0x2af711(0x15f)](_0x36ac30=>{const _0xd04a26=_0x2af711,_0x5d9fd1=Array[_0xd04a26(0x177)](_0x36ac30?.[_0xd04a26(0x14e)])?_0x36ac30[_0xd04a26(0x14e)]:Array[_0xd04a26(0x177)](_0x36ac30?.[_0xd04a26(0x173)])?_0x36ac30[_0xd04a26(0x173)]:Array[_0xd04a26(0x177)](_0x36ac30?.['columns'])?_0x36ac30[_0xd04a26(0x164)]:[],_0x500f1e=_0x5d9fd1[_0xd04a26(0x15d)](_0x2490d3=>typeof _0x2490d3===_0xd04a26(0x181))[_0xd04a26(0x175)](_0x4d2e03=>_0x4d2e03[_0xd04a26(0x14b)]())[_0xd04a26(0x15d)](Boolean);if(_0x500f1e[_0xd04a26(0x160)]===0x0)return[];const _0x20b303=[_0x36ac30?.[_0xd04a26(0x180)],_0x36ac30?.[_0xd04a26(0x15e)],_0x36ac30?.[_0xd04a26(0x174)]][_0xd04a26(0x18d)](_0x7652da=>typeof _0x7652da===_0xd04a26(0x181)&&_0x7652da[_0xd04a26(0x14b)]()),_0xd29e2e=[_0x36ac30?.[_0xd04a26(0x169)],_0x36ac30?.[_0xd04a26(0x176)]]['find'](_0x307f08=>typeof _0x307f08===_0xd04a26(0x181)&&_0x307f08['trim']());return[{..._0x20b303?{'name':_0x20b303[_0xd04a26(0x14b)]()}:{},..._0xd29e2e?{'type':_0xd29e2e['trim']()}:{},'columns':_0x500f1e}];}),_0x4ee62d=[..._0x1ded78],_0x227d24=typeof _0x1a2c7c?.[_0x2af711(0x152)]?.[_0x2af711(0x165)]===_0x2af711(0x181)?_0x1a2c7c[_0x2af711(0x152)][_0x2af711(0x165)][_0x2af711(0x168)](',')['map'](_0xee1546=>_0xee1546[_0x2af711(0x14b)]())[_0x2af711(0x15d)](Boolean):[];return _0x227d24[_0x2af711(0x160)]>0x0&&_0x4ee62d[_0x2af711(0x18b)]({'type':_0x2af711(0x159),'columns':_0x227d24}),{'indexes':_0x4ee62d,'metadataAvailable':_0x1ded78['length']>0x0};}
1
+ function a193_0x1dd9(_0x8ced03,_0x5378cc){_0x8ced03=_0x8ced03-0x19c;const _0x27f32c=a193_0x27f3();let _0x1dd978=_0x27f32c[_0x8ced03];return _0x1dd978;}const a193_0x503fb4=a193_0x1dd9;(function(_0x2a7ecf,_0x1a7d4e){const _0xc20214=a193_0x1dd9,_0x2f5957=_0x2a7ecf();while(!![]){try{const _0xc581f7=parseInt(_0xc20214(0x19d))/0x1+-parseInt(_0xc20214(0x1c2))/0x2*(-parseInt(_0xc20214(0x1d1))/0x3)+parseInt(_0xc20214(0x1c6))/0x4+parseInt(_0xc20214(0x1e1))/0x5+-parseInt(_0xc20214(0x1cd))/0x6+parseInt(_0xc20214(0x1b0))/0x7*(-parseInt(_0xc20214(0x1ac))/0x8)+-parseInt(_0xc20214(0x1ca))/0x9*(parseInt(_0xc20214(0x1aa))/0xa);if(_0xc581f7===_0x1a7d4e)break;else _0x2f5957['push'](_0x2f5957['shift']());}catch(_0x5ebf36){_0x2f5957['push'](_0x2f5957['shift']());}}}(a193_0x27f3,0xb0a9c));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';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a193_0x27f3(){const _0x3d90e7=['size','929051fRhYAE','columnNames','bool','parameters','Table\x20\x22','index_type','cwd','Provide\x20--file\x20or\x20--sql','tables','isSelectOnly','file','Dataset\x20\x22','schemas','51010RizkbV','from','4486128PuSHVf','primary','fields','boolean','14tRklZk','File\x20not\x20found:\x20','sql','joinAudit','sqlType','indexName','type','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','Audit\x20top-level\x20JOIN\x20equality\x20predicates\x20against\x20dataset\x20index\x20metadata','SQL\x20schema\x20validation','push','length','index_columns','get','indexes','isDangerous','unshift','dbtableConfig','1391448USoBoA','index_name','validate','tableName','773828dlwVwO','\x22\x20not\x20found\x20in\x20any\x20dataset','split','validation','225kqsLQs','appCode','isArray','3467268wbdPhq','flatMap','pkField','toLowerCase','6uxGOJs','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','--check-indexes\x20requires\x20--schemas.','\x22\x20not\x20found\x20or\x20not\x20accessible','valid','string','map','filter','message','str','trim','name','columns','schemaWarnings','read','reason','182955vvbRaz','find'];a193_0x27f3=function(){return _0x3d90e7;};return a193_0x27f3();}import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':'sql','command':a193_0x503fb4(0x1c4),'description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a193_0x503fb4(0x1df),'flags':[{'name':a193_0x503fb4(0x1a7),'type':a193_0x503fb4(0x1d6),'description':a193_0x503fb4(0x1b7)},{'name':'sql','type':a193_0x503fb4(0x1d6),'description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a193_0x503fb4(0x1a9),'type':a193_0x503fb4(0x1d6),'description':a193_0x503fb4(0x1d2)},{'name':'check-indexes','type':a193_0x503fb4(0x1af),'description':a193_0x503fb4(0x1b8)}],async 'execute'(_0x44a6e1){const _0x1a5043=a193_0x503fb4,_0x485a88=_0x44a6e1[_0x1a5043(0x1da)](_0x1a5043(0x1a7)),_0x4464df=_0x44a6e1[_0x1a5043(0x1da)](_0x1a5043(0x1b2)),_0x46811b=_0x44a6e1[_0x1a5043(0x1da)]('schemas'),_0x3c8d7d=_0x44a6e1[_0x1a5043(0x19f)]('check-indexes');if(!_0x485a88&&!_0x4464df)throw CliErrors['flagMissing'](_0x1a5043(0x1a7),_0x1a5043(0x1a4));if(_0x3c8d7d&&!_0x46811b)throw CliErrors[_0x1a5043(0x1c9)](_0x1a5043(0x1d3));let _0x186cbb;if(_0x485a88){const _0x1ff881=resolve(process[_0x1a5043(0x1a3)](),_0x485a88);if(!existsSync(_0x1ff881))throw CliErrors[_0x1a5043(0x1c9)](_0x1a5043(0x1b1)+_0x1ff881);_0x186cbb=readFileSync(_0x1ff881,'utf-8');}else _0x186cbb=_0x4464df;const _0x1f05c4=validateSql(_0x186cbb),_0x2fdb9f={'valid':_0x1f05c4[_0x1a5043(0x1d5)],'sqlType':_0x1f05c4['sqlType'][_0x1a5043(0x1b6)],'isSelectOnly':_0x1f05c4[_0x1a5043(0x1b4)][_0x1a5043(0x1a6)],'isDangerous':_0x1f05c4['sqlType'][_0x1a5043(0x1bf)],'tables':_0x1f05c4[_0x1a5043(0x1a5)],'parameters':_0x1f05c4[_0x1a5043(0x1a0)],'message':_0x1f05c4['message']};_0x1f05c4['sqlType']['reason']&&(_0x2fdb9f['reason']=_0x1f05c4[_0x1a5043(0x1b4)][_0x1a5043(0x1e0)]);if(_0x46811b&&_0x1f05c4['valid']){const _0x5d9c8d=_0x46811b[_0x1a5043(0x1c8)](',')[_0x1a5043(0x1d7)](_0xdd7411=>_0xdd7411[_0x1a5043(0x1db)]())[_0x1a5043(0x1d8)](Boolean),_0x2e25ec=[],_0x139db5=[],_0x425872=filterDbTableBackedDatasets(await listDatasets(_0x44a6e1[_0x1a5043(0x1cb)])),_0x3f2a8f=new Map(_0x425872[_0x1a5043(0x1d7)](_0xb8d732=>[_0xb8d732[_0x1a5043(0x1c1)]?.[_0x1a5043(0x1c5)]?.[_0x1a5043(0x1d0)](),_0xb8d732]));for(const _0x2fa044 of _0x1f05c4[_0x1a5043(0x1a5)]){const _0x3277f2=_0x3f2a8f[_0x1a5043(0x1bd)](_0x2fa044['toLowerCase']());!_0x3277f2&&_0x2e25ec['push'](_0x1a5043(0x1a1)+_0x2fa044+_0x1a5043(0x1c7));}for(const _0x266ccf of _0x5d9c8d){let _0x142bbc;try{_0x142bbc=await getDatasetDetail(_0x266ccf);}catch{_0x2e25ec[_0x1a5043(0x1ba)](_0x1a5043(0x1a8)+_0x266ccf+_0x1a5043(0x1d4));continue;}assertDatasetIsDbTableBacked(_0x142bbc,_0x1a5043(0x1b9));const _0x23deaf=Array['isArray'](_0x142bbc[_0x1a5043(0x1ae)])?_0x142bbc['fields']:[],_0x47d02f=new Set(_0x23deaf[_0x1a5043(0x1d7)](_0x252bff=>_0x252bff['name']?.[_0x1a5043(0x1d0)]())),_0x316121=_0x142bbc['dbtableConfig']?.[_0x1a5043(0x1c5)]||_0x142bbc[_0x1a5043(0x1c5)]||_0x266ccf;_0x2fdb9f['schema:'+_0x316121]={'code':_0x266ccf,'tableName':_0x316121,'fieldCount':_0x47d02f[_0x1a5043(0x19c)],'fields':Array[_0x1a5043(0x1ab)](_0x47d02f)};if(_0x3c8d7d){const _0x440e1=normalizeDatasetIndexes(_0x142bbc);_0x139db5[_0x1a5043(0x1ba)]({'tableName':_0x316121,..._0x440e1});}}_0x2e25ec['length']>0x0&&(_0x2fdb9f[_0x1a5043(0x1de)]=_0x2e25ec),_0x3c8d7d&&(_0x2fdb9f[_0x1a5043(0x1b3)]=auditSqlJoinIndexes(_0x186cbb,_0x139db5));}return{'ok':_0x1f05c4['valid'],'data':_0x2fdb9f,'message':_0x1f05c4[_0x1a5043(0x1d9)]};}};function normalizeDatasetIndexes(_0x532271){const _0x121a4d=a193_0x503fb4,_0x32faed=Array[_0x121a4d(0x1cc)](_0x532271?.['dataset']?.['indexes'])?_0x532271['dataset'][_0x121a4d(0x1be)]:Array[_0x121a4d(0x1cc)](_0x532271?.[_0x121a4d(0x1be)])?_0x532271[_0x121a4d(0x1be)]:[],_0x24a234=_0x32faed[_0x121a4d(0x1ce)](_0x2c5e82=>{const _0x12fd95=_0x121a4d,_0x329f30=Array['isArray'](_0x2c5e82?.[_0x12fd95(0x1bc)])?_0x2c5e82[_0x12fd95(0x1bc)]:Array['isArray'](_0x2c5e82?.[_0x12fd95(0x19e)])?_0x2c5e82[_0x12fd95(0x19e)]:Array[_0x12fd95(0x1cc)](_0x2c5e82?.['columns'])?_0x2c5e82[_0x12fd95(0x1dd)]:[],_0xc7f556=_0x329f30[_0x12fd95(0x1d8)](_0x4c16ca=>typeof _0x4c16ca===_0x12fd95(0x1d6))[_0x12fd95(0x1d7)](_0x1410aa=>_0x1410aa['trim']())[_0x12fd95(0x1d8)](Boolean);if(_0xc7f556[_0x12fd95(0x1bb)]===0x0)return[];const _0x38e948=[_0x2c5e82?.[_0x12fd95(0x1b5)],_0x2c5e82?.[_0x12fd95(0x1c3)],_0x2c5e82?.[_0x12fd95(0x1dc)]][_0x12fd95(0x1e2)](_0x1bc9f6=>typeof _0x1bc9f6===_0x12fd95(0x1d6)&&_0x1bc9f6[_0x12fd95(0x1db)]()),_0xffd1b5=[_0x2c5e82?.[_0x12fd95(0x1a2)],_0x2c5e82?.['type']][_0x12fd95(0x1e2)](_0x14bcb1=>typeof _0x14bcb1===_0x12fd95(0x1d6)&&_0x14bcb1[_0x12fd95(0x1db)]());return[{..._0x38e948?{'name':_0x38e948[_0x12fd95(0x1db)]()}:{},..._0xffd1b5?{'type':_0xffd1b5['trim']()}:{},'columns':_0xc7f556}];}),_0x599a37=[..._0x24a234],_0x1a7fee=typeof _0x532271?.[_0x121a4d(0x1c1)]?.[_0x121a4d(0x1cf)]===_0x121a4d(0x1d6)?_0x532271[_0x121a4d(0x1c1)]['pkField']['split'](',')[_0x121a4d(0x1d7)](_0x4471d1=>_0x4471d1['trim']())['filter'](Boolean):[];return _0x1a7fee['length']>0x0&&_0x599a37[_0x121a4d(0x1c0)]({'type':_0x121a4d(0x1ad),'columns':_0x1a7fee}),{'indexes':_0x599a37,'metadataAvailable':_0x24a234[_0x121a4d(0x1bb)]>0x0};}
@@ -1 +1 @@
1
- (function(_0x26d2c7,_0x3295b1){const _0xa64ebe=a194_0x5d13,_0x60dc99=_0x26d2c7();while(!![]){try{const _0x2ee3aa=-parseInt(_0xa64ebe(0x170))/0x1+parseInt(_0xa64ebe(0x171))/0x2+-parseInt(_0xa64ebe(0x176))/0x3+-parseInt(_0xa64ebe(0x173))/0x4+parseInt(_0xa64ebe(0x16e))/0x5*(parseInt(_0xa64ebe(0x174))/0x6)+parseInt(_0xa64ebe(0x172))/0x7+-parseInt(_0xa64ebe(0x16f))/0x8*(-parseInt(_0xa64ebe(0x175))/0x9);if(_0x2ee3aa===_0x3295b1)break;else _0x60dc99['push'](_0x60dc99['shift']());}catch(_0xcbbb84){_0x60dc99['push'](_0x60dc99['shift']());}}}(a194_0x1d08,0x7d60e));function a194_0x5d13(_0x4576ea,_0x5021c6){_0x4576ea=_0x4576ea-0x16e;const _0x1d0884=a194_0x1d08();let _0x5d1386=_0x1d0884[_0x4576ea];return _0x5d1386;}import{taskStatus}from'../../commands/task/status.js';export const taskDefinitions=[taskStatus];function a194_0x1d08(){const _0x17cbe1=['956335TyOEom','763900PsfvRR','5800921qipRXo','3608704YSRaBc','6UEhfUV','9HmatNT','2955723FLGohh','4253555lGZIzn','10367504lJVicv'];a194_0x1d08=function(){return _0x17cbe1;};return a194_0x1d08();}
1
+ (function(_0x89058,_0x506bf8){const _0x1c9b6c=a194_0x105f,_0x147824=_0x89058();while(!![]){try{const _0x4371da=parseInt(_0x1c9b6c(0x94))/0x1+-parseInt(_0x1c9b6c(0x95))/0x2*(-parseInt(_0x1c9b6c(0x90))/0x3)+parseInt(_0x1c9b6c(0x97))/0x4*(-parseInt(_0x1c9b6c(0x8f))/0x5)+parseInt(_0x1c9b6c(0x96))/0x6+-parseInt(_0x1c9b6c(0x92))/0x7+parseInt(_0x1c9b6c(0x91))/0x8+-parseInt(_0x1c9b6c(0x93))/0x9;if(_0x4371da===_0x506bf8)break;else _0x147824['push'](_0x147824['shift']());}catch(_0x15ed2a){_0x147824['push'](_0x147824['shift']());}}}(a194_0x497c,0x864c0));function a194_0x497c(){const _0x2c51b1=['276525ELitTR','1122070QYwRZK','4672680xPIfxE','108ACWWcn','18755qqaHwz','3xzGNkf','937960EHsIIp','5074027ZOUEQo','3216303GhcNnt'];a194_0x497c=function(){return _0x2c51b1;};return a194_0x497c();}import{taskStatus}from'../../commands/task/status.js';function a194_0x105f(_0x534a52,_0x509a8a){_0x534a52=_0x534a52-0x8f;const _0x497ce6=a194_0x497c();let _0x105f2e=_0x497ce6[_0x534a52];return _0x105f2e;}export const taskDefinitions=[taskStatus];
@@ -1 +1 @@
1
- const a195_0x4d293a=a195_0x5070;(function(_0x5de371,_0x2a17cb){const _0x1bbc21=a195_0x5070,_0xa77b18=_0x5de371();while(!![]){try{const _0x100c53=-parseInt(_0x1bbc21(0xf5))/0x1+parseInt(_0x1bbc21(0xe4))/0x2*(-parseInt(_0x1bbc21(0xf9))/0x3)+parseInt(_0x1bbc21(0xe7))/0x4+parseInt(_0x1bbc21(0xed))/0x5*(-parseInt(_0x1bbc21(0xf8))/0x6)+parseInt(_0x1bbc21(0xee))/0x7*(-parseInt(_0x1bbc21(0xf6))/0x8)+-parseInt(_0x1bbc21(0xf0))/0x9*(parseInt(_0x1bbc21(0xf1))/0xa)+parseInt(_0x1bbc21(0xe6))/0xb;if(_0x100c53===_0x2a17cb)break;else _0xa77b18['push'](_0xa77b18['shift']());}catch(_0x326ced){_0xa77b18['push'](_0xa77b18['shift']());}}}(a195_0x7d9d,0xca86d));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asyncTaskMessage,buildAsyncTaskStatusCommand,normalizeAsyncTask}from'../../commands/common/async-task.js';function a195_0x5070(_0x53147c,_0x147633){_0x53147c=_0x53147c-0xe4;const _0x7d9d7f=a195_0x7d9d();let _0x5070cc=_0x7d9d7f[_0x53147c];return _0x5070cc;}import{getAsyncTaskStatus}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const taskStatus={'service':a195_0x4d293a(0xea),'command':a195_0x4d293a(0xef),'description':a195_0x4d293a(0xf2),'risk':a195_0x4d293a(0xec),'defaultOutputFormat':a195_0x4d293a(0xf7),'structuredErrors':!![],'flags':[{'name':a195_0x4d293a(0xfa),'type':a195_0x4d293a(0xe8),'required':!![],'description':'Task\x20id\x20returned\x20by\x20an\x20asynchronous\x20platform\x20command'},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x506b37){const _0x15b503=a195_0x4d293a;if(!_0x506b37[_0x15b503(0xf3)](_0x15b503(0xfa))[_0x15b503(0xe9)]())throw CliErrors['flagMissing'](_0x15b503(0xfa));},async 'execute'(_0x3adad4){const _0x8f104e=a195_0x4d293a,_0x5e23d9=_0x3adad4['str'](_0x8f104e(0xfa))[_0x8f104e(0xe9)](),_0x2143d3=normalizeAsyncTask(await getAsyncTaskStatus(_0x5e23d9,_0x3adad4['appCode'],_0x3adad4['cookie']));if(_0x2143d3['taskId']!==_0x5e23d9)throw CliErrors[_0x8f104e(0xf4)]('Task\x20status\x20response\x20id\x20mismatch:\x20requested\x20'+_0x5e23d9+',\x20received\x20'+_0x2143d3[_0x8f104e(0xe5)]+'.');const _0x31ac4f=buildAsyncTaskStatusCommand(_0x2143d3[_0x8f104e(0xe5)],_0x3adad4[_0x8f104e(0xeb)]);return{'ok':!![],'message':asyncTaskMessage(_0x2143d3),'data':{'appCode':_0x3adad4[_0x8f104e(0xeb)],..._0x2143d3,'query':_0x2143d3['isTerminal']?null:{'command':_0x31ac4f}}};}};function a195_0x7d9d(){const _0x28d2ec=['status','6131331kYjLxl','10wSxEDO','Query\x20an\x20asynchronous\x20task;\x20repeat\x20for\x20PENDING\x20or\x20PROCESSING\x20until\x20SUCCESS\x20or\x20FAILED','str','apiError','1436292BQbnyj','506936camDWZ','compress','1409262dYmnLL','109689JpEVPI','task-id','34KXyaxb','taskId','36250621jiMwVz','2539084TJAHcb','string','trim','task','appCode','read','5DlRzJD','14OCieeN'];a195_0x7d9d=function(){return _0x28d2ec;};return a195_0x7d9d();}
1
+ const a195_0x13fb39=a195_0x5940;(function(_0x5e9995,_0x1a3f36){const _0x4ee79d=a195_0x5940,_0xd50e83=_0x5e9995();while(!![]){try{const _0xf991d6=-parseInt(_0x4ee79d(0x1b1))/0x1+-parseInt(_0x4ee79d(0x1bb))/0x2+parseInt(_0x4ee79d(0x1bc))/0x3+-parseInt(_0x4ee79d(0x1ba))/0x4*(parseInt(_0x4ee79d(0x1b4))/0x5)+parseInt(_0x4ee79d(0x1b5))/0x6+-parseInt(_0x4ee79d(0x1b6))/0x7*(parseInt(_0x4ee79d(0x1c5))/0x8)+-parseInt(_0x4ee79d(0x1ae))/0x9*(-parseInt(_0x4ee79d(0x1bd))/0xa);if(_0xf991d6===_0x1a3f36)break;else _0xd50e83['push'](_0xd50e83['shift']());}catch(_0x58eded){_0xd50e83['push'](_0xd50e83['shift']());}}}(a195_0x28e9,0xf1767));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';import{CliErrors}from'../../errors.js';function a195_0x28e9(){const _0x449026=['isTerminal','32kxehkz','appCode','str','9jryZuF','trim','read','81466intXID','string','task-id','1503150ONeeMk','3366306SPQSrI','1418592CGlrES','task','status','flagMissing','24xatYzp','2744220pXmdgO','102429qEodaD','44618170RKWQQI','taskId','compress','Task\x20status\x20response\x20id\x20mismatch:\x20requested\x20',',\x20received\x20','cookie','Task\x20id\x20returned\x20by\x20an\x20asynchronous\x20platform\x20command'];a195_0x28e9=function(){return _0x449026;};return a195_0x28e9();}function a195_0x5940(_0x13a1a2,_0x162546){_0x13a1a2=_0x13a1a2-0x1ac;const _0x28e928=a195_0x28e9();let _0x594027=_0x28e928[_0x13a1a2];return _0x594027;}export const taskStatus={'service':a195_0x13fb39(0x1b7),'command':a195_0x13fb39(0x1b8),'description':'Query\x20an\x20asynchronous\x20task;\x20repeat\x20for\x20PENDING\x20or\x20PROCESSING\x20until\x20SUCCESS\x20or\x20FAILED','risk':a195_0x13fb39(0x1b0),'defaultOutputFormat':a195_0x13fb39(0x1bf),'structuredErrors':!![],'flags':[{'name':a195_0x13fb39(0x1b3),'type':a195_0x13fb39(0x1b2),'required':!![],'description':a195_0x13fb39(0x1c3)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0xc28aab){const _0x3e7bf3=a195_0x13fb39;if(!_0xc28aab[_0x3e7bf3(0x1ad)]('task-id')[_0x3e7bf3(0x1af)]())throw CliErrors[_0x3e7bf3(0x1b9)](_0x3e7bf3(0x1b3));},async 'execute'(_0x563e43){const _0x274bf=a195_0x13fb39,_0x1fc893=_0x563e43['str'](_0x274bf(0x1b3))['trim'](),_0x5c6afb=normalizeAsyncTask(await getAsyncTaskStatus(_0x1fc893,_0x563e43['appCode'],_0x563e43[_0x274bf(0x1c2)]));if(_0x5c6afb['taskId']!==_0x1fc893)throw CliErrors['apiError'](_0x274bf(0x1c0)+_0x1fc893+_0x274bf(0x1c1)+_0x5c6afb[_0x274bf(0x1be)]+'.');const _0x107883=buildAsyncTaskStatusCommand(_0x5c6afb[_0x274bf(0x1be)],_0x563e43['appCode']);return{'ok':!![],'message':asyncTaskMessage(_0x5c6afb),'data':{'appCode':_0x563e43[_0x274bf(0x1ac)],..._0x5c6afb,'query':_0x5c6afb[_0x274bf(0x1c4)]?null:{'command':_0x107883}}};}};
@@ -1 +1 @@
1
- function a196_0x5588(_0xf79802,_0x834031){_0xf79802=_0xf79802-0xc5;const _0x5e9302=a196_0x5e93();let _0x558821=_0x5e9302[_0xf79802];return _0x558821;}(function(_0x1e93e5,_0x144faa){const _0x42f459=a196_0x5588,_0x2001d4=_0x1e93e5();while(!![]){try{const _0xa4cdf8=parseInt(_0x42f459(0xd0))/0x1+parseInt(_0x42f459(0xc9))/0x2+parseInt(_0x42f459(0xc7))/0x3*(parseInt(_0x42f459(0xc8))/0x4)+parseInt(_0x42f459(0xce))/0x5*(-parseInt(_0x42f459(0xc5))/0x6)+parseInt(_0x42f459(0xcf))/0x7*(-parseInt(_0x42f459(0xcb))/0x8)+parseInt(_0x42f459(0xcd))/0x9*(parseInt(_0x42f459(0xca))/0xa)+parseInt(_0x42f459(0xc6))/0xb*(-parseInt(_0x42f459(0xcc))/0xc);if(_0xa4cdf8===_0x144faa)break;else _0x2001d4['push'](_0x2001d4['shift']());}catch(_0x18611e){_0x2001d4['push'](_0x2001d4['shift']());}}}(a196_0x5e93,0x789a3));function a196_0x5e93(){const _0x1aec64=['115512wlJkLm','373848uXluUX','5949333KcewHm','302465LaKxVy','35tcQWYi','861599OTvlbe','18SrytBN','517ulYlzu','3kySAto','1696956zKIPzu','530048EmDtGM','10uVKYlx'];a196_0x5e93=function(){return _0x1aec64;};return a196_0x5e93();}import{tenantMembersListDefinition}from'../../commands/tenant/members-list.js';export const tenantDefinitions=[tenantMembersListDefinition];
1
+ (function(_0x49f709,_0x2410ce){const _0x9a7dea=a196_0x1119,_0x432be3=_0x49f709();while(!![]){try{const _0x22f850=-parseInt(_0x9a7dea(0x6d))/0x1*(parseInt(_0x9a7dea(0x75))/0x2)+parseInt(_0x9a7dea(0x72))/0x3+parseInt(_0x9a7dea(0x6e))/0x4+-parseInt(_0x9a7dea(0x73))/0x5+parseInt(_0x9a7dea(0x71))/0x6*(-parseInt(_0x9a7dea(0x6f))/0x7)+-parseInt(_0x9a7dea(0x74))/0x8*(-parseInt(_0x9a7dea(0x70))/0x9)+-parseInt(_0x9a7dea(0x6b))/0xa*(-parseInt(_0x9a7dea(0x6c))/0xb);if(_0x22f850===_0x2410ce)break;else _0x432be3['push'](_0x432be3['shift']());}catch(_0x476c20){_0x432be3['push'](_0x432be3['shift']());}}}(a196_0x2ed9,0x44a24));function a196_0x2ed9(){const _0x46953c=['288gMYbUc','6PhdQuD','412383qaQvYI','1958605wpavpc','118728tlFvrr','25420VqvwOs','3060790PUThQE','11RqpBzC','1ZUMYul','1197076YgVcXL','3725162juvqZE'];a196_0x2ed9=function(){return _0x46953c;};return a196_0x2ed9();}import{tenantMembersListDefinition}from'../../commands/tenant/members-list.js';function a196_0x1119(_0x2edf02,_0xa41f7e){_0x2edf02=_0x2edf02-0x6b;const _0x2ed92f=a196_0x2ed9();let _0x1119e9=_0x2ed92f[_0x2edf02];return _0x1119e9;}export const tenantDefinitions=[tenantMembersListDefinition];
@@ -1 +1 @@
1
- function a197_0x4105(_0x515a7a,_0x4ec032){_0x515a7a=_0x515a7a-0xf9;const _0x21b955=a197_0x21b9();let _0x410585=_0x21b955[_0x515a7a];return _0x410585;}const a197_0x4cd2ae=a197_0x4105;(function(_0x56f4af,_0x367cdd){const _0x18751b=a197_0x4105,_0x30e96a=_0x56f4af();while(!![]){try{const _0x4cf0e4=parseInt(_0x18751b(0xff))/0x1+-parseInt(_0x18751b(0xfd))/0x2+-parseInt(_0x18751b(0x108))/0x3+parseInt(_0x18751b(0x106))/0x4+-parseInt(_0x18751b(0xf9))/0x5+parseInt(_0x18751b(0x100))/0x6*(-parseInt(_0x18751b(0x109))/0x7)+-parseInt(_0x18751b(0xfc))/0x8*(-parseInt(_0x18751b(0x105))/0x9);if(_0x4cf0e4===_0x367cdd)break;else _0x30e96a['push'](_0x30e96a['shift']());}catch(_0x555fb0){_0x30e96a['push'](_0x30e96a['shift']());}}}(a197_0x21b9,0x9056a));import{listCurrentUserTenantMemberships,listTenantDirectoryMembers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertTenantAccessible,projectTenantMembers}from'../../commands/tenant/shared.js';function a197_0x21b9(){const _0x1c5bd1=['tenant','List\x20members\x20of\x20a\x20tenant\x20available\x20to\x20the\x20current\x20account','Found\x20','4942455PPcrft','members-list','string','572776IiETlp','1170756BNNSev','Exact\x20tenant\x20code','995814PTwqiK','22320AFTPqU','Pass\x20--tenant-code\x20<code>.','tenant-code','trim','length','99vTOlLk','2168460OHFLdM','flagMissing','112971fklKHY','231dZIsvu','str','\x20tenant\x20member(s)'];a197_0x21b9=function(){return _0x1c5bd1;};return a197_0x21b9();}export const tenantMembersListDefinition={'service':a197_0x4cd2ae(0x10c),'command':a197_0x4cd2ae(0xfa),'description':a197_0x4cd2ae(0x10d),'risk':'read','requiresAuth':!![],'requiresAppCode':![],'structuredErrors':!![],'flags':[{'name':a197_0x4cd2ae(0x102),'type':a197_0x4cd2ae(0xfb),'required':!![],'description':a197_0x4cd2ae(0xfe)}],async 'validate'(_0x2e1643){const _0x5aabf6=a197_0x4cd2ae;if(!_0x2e1643[_0x5aabf6(0x10a)]('tenant-code')[_0x5aabf6(0x103)]())throw CliErrors[_0x5aabf6(0x107)](_0x5aabf6(0x102),_0x5aabf6(0x101));},async 'execute'(_0x9bafdb){const _0x5aaf41=a197_0x4cd2ae,_0x4bf985=_0x9bafdb[_0x5aaf41(0x10a)](_0x5aaf41(0x102))[_0x5aaf41(0x103)](),_0x15ad8d=await listCurrentUserTenantMemberships();assertTenantAccessible(_0x4bf985,_0x15ad8d);const _0x1949ff=projectTenantMembers(await listTenantDirectoryMembers(_0x4bf985));return{'ok':!![],'data':{'tenantCode':_0x4bf985,'items':_0x1949ff,'totalCount':_0x1949ff[_0x5aaf41(0x104)]},'message':_0x5aaf41(0x10e)+_0x1949ff['length']+_0x5aaf41(0x10b)};}};
1
+ const a197_0x4f9a24=a197_0x5889;(function(_0x5b358f,_0x634d7b){const _0x4b49a2=a197_0x5889,_0x22c13a=_0x5b358f();while(!![]){try{const _0x79c2f6=-parseInt(_0x4b49a2(0x1ec))/0x1*(parseInt(_0x4b49a2(0x1d8))/0x2)+-parseInt(_0x4b49a2(0x1d9))/0x3*(-parseInt(_0x4b49a2(0x1dc))/0x4)+-parseInt(_0x4b49a2(0x1de))/0x5*(parseInt(_0x4b49a2(0x1dd))/0x6)+parseInt(_0x4b49a2(0x1db))/0x7*(parseInt(_0x4b49a2(0x1ea))/0x8)+-parseInt(_0x4b49a2(0x1e3))/0x9+-parseInt(_0x4b49a2(0x1e9))/0xa+-parseInt(_0x4b49a2(0x1df))/0xb*(-parseInt(_0x4b49a2(0x1e4))/0xc);if(_0x79c2f6===_0x634d7b)break;else _0x22c13a['push'](_0x22c13a['shift']());}catch(_0x55674f){_0x22c13a['push'](_0x22c13a['shift']());}}}(a197_0x5503,0xc5b63));function a197_0x5889(_0x55a05f,_0x2fbe0f){_0x55a05f=_0x55a05f-0x1d8;const _0x5503f2=a197_0x5503();let _0x58896e=_0x5503f2[_0x55a05f];return _0x58896e;}import{listCurrentUserTenantMemberships,listTenantDirectoryMembers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a197_0x5503(){const _0xcfba87=['3472640ytrHlt','45172193AcGmMS','trim','read','Found\x20','3943458pgMgmS','12LYStfv','List\x20members\x20of\x20a\x20tenant\x20available\x20to\x20the\x20current\x20account','members-list','flagMissing','length','14170930ArMfRQ','616WofLPC','Pass\x20--tenant-code\x20<code>.','1gjvuha','string','2449618WaXDIm','3VukPBq','tenant-code','100121PpFDYm','284212CPHbdC','12usFxnV'];a197_0x5503=function(){return _0xcfba87;};return a197_0x5503();}import{assertTenantAccessible,projectTenantMembers}from'../../commands/tenant/shared.js';export const tenantMembersListDefinition={'service':'tenant','command':a197_0x4f9a24(0x1e6),'description':a197_0x4f9a24(0x1e5),'risk':a197_0x4f9a24(0x1e1),'requiresAuth':!![],'requiresAppCode':![],'structuredErrors':!![],'flags':[{'name':'tenant-code','type':a197_0x4f9a24(0x1ed),'required':!![],'description':'Exact\x20tenant\x20code'}],async 'validate'(_0x4b207c){const _0x204084=a197_0x4f9a24;if(!_0x4b207c['str'](_0x204084(0x1da))[_0x204084(0x1e0)]())throw CliErrors[_0x204084(0x1e7)](_0x204084(0x1da),_0x204084(0x1eb));},async 'execute'(_0x31000c){const _0x6f78ba=a197_0x4f9a24,_0x4ab953=_0x31000c['str'](_0x6f78ba(0x1da))[_0x6f78ba(0x1e0)](),_0x43c0c2=await listCurrentUserTenantMemberships();assertTenantAccessible(_0x4ab953,_0x43c0c2);const _0x466741=projectTenantMembers(await listTenantDirectoryMembers(_0x4ab953));return{'ok':!![],'data':{'tenantCode':_0x4ab953,'items':_0x466741,'totalCount':_0x466741[_0x6f78ba(0x1e8)]},'message':_0x6f78ba(0x1e2)+_0x466741['length']+'\x20tenant\x20member(s)'};}};