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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) 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/api/generate-sdk-config-file.js +1 -1
  5. package/lib/auth/auth-server-ui.js +1 -1
  6. package/lib/auth/auth-server.js +1 -1
  7. package/lib/auth/constant.js +1 -1
  8. package/lib/auth/get-cookie.js +1 -1
  9. package/lib/auth/get-session-user.js +1 -1
  10. package/lib/auth/is-session-valid.js +1 -1
  11. package/lib/auth/login-success-html.js +1 -1
  12. package/lib/auth/logout.js +1 -1
  13. package/lib/cli-flags.js +1 -1
  14. package/lib/cli.js +1 -1
  15. package/lib/commands/api/generate.js +1 -1
  16. package/lib/commands/api/index.js +1 -1
  17. package/lib/commands/api/list.js +1 -1
  18. package/lib/commands/api/pull.js +1 -1
  19. package/lib/commands/api/shared.js +1 -1
  20. package/lib/commands/app/index.js +1 -1
  21. package/lib/commands/app/list.js +1 -1
  22. package/lib/commands/app/members-list.js +1 -1
  23. package/lib/commands/app/remote-directory.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app-config/delete.js +1 -1
  26. package/lib/commands/app-config/get.js +1 -1
  27. package/lib/commands/app-config/index.js +1 -1
  28. package/lib/commands/app-config/list.js +1 -1
  29. package/lib/commands/app-config/set.js +1 -1
  30. package/lib/commands/app-config/shared.js +1 -1
  31. package/lib/commands/auth/index.js +1 -1
  32. package/lib/commands/bff/create.js +1 -1
  33. package/lib/commands/bff/delete.js +1 -1
  34. package/lib/commands/bff/detail.js +1 -1
  35. package/lib/commands/bff/index.js +1 -1
  36. package/lib/commands/bff/list.js +1 -1
  37. package/lib/commands/bff/pull.js +1 -1
  38. package/lib/commands/bff/push.js +1 -1
  39. package/lib/commands/bff/status.js +1 -1
  40. package/lib/commands/cli-skill/index.js +1 -1
  41. package/lib/commands/cli-update.js +1 -1
  42. package/lib/commands/codegen/index.js +1 -1
  43. package/lib/commands/codegen/sdk.js +1 -1
  44. package/lib/commands/codegen/sql.js +1 -1
  45. package/lib/commands/common/app-registry.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/async-task.js +1 -1
  48. package/lib/commands/common/dry-run.js +1 -1
  49. package/lib/commands/common/flags.js +1 -1
  50. package/lib/commands/common/local-file.js +1 -1
  51. package/lib/commands/common/validate.js +1 -1
  52. package/lib/commands/config/delete.js +1 -1
  53. package/lib/commands/config/get.js +1 -1
  54. package/lib/commands/config/index.js +1 -1
  55. package/lib/commands/config/init.js +1 -1
  56. package/lib/commands/config/list.js +1 -1
  57. package/lib/commands/config/set.js +1 -1
  58. package/lib/commands/config/shared.js +1 -1
  59. package/lib/commands/dataset/business-group-update.js +1 -1
  60. package/lib/commands/dataset/business-groups.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-restore.js +1 -1
  66. package/lib/commands/dataset/field-update.js +1 -1
  67. package/lib/commands/dataset/generate.js +1 -1
  68. package/lib/commands/dataset/index.js +1 -1
  69. package/lib/commands/dataset/list.js +1 -1
  70. package/lib/commands/dataset/operations.js +1 -1
  71. package/lib/commands/dataset/relation-audit.js +1 -1
  72. package/lib/commands/dataset/relation-create.js +1 -1
  73. package/lib/commands/dataset/relation-delete.js +1 -1
  74. package/lib/commands/dataset/relation-shared.js +1 -1
  75. package/lib/commands/dataset/relation-update.js +1 -1
  76. package/lib/commands/dataset/relations.js +1 -1
  77. package/lib/commands/dataset/rename.js +1 -1
  78. package/lib/commands/dataset/restore.js +1 -1
  79. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  80. package/lib/commands/db/analysis-batching.js +1 -1
  81. package/lib/commands/db/analyze-batch-plan.js +1 -1
  82. package/lib/commands/db/analyze-cancel.js +1 -1
  83. package/lib/commands/db/analyze-start.js +1 -1
  84. package/lib/commands/db/analyze-status.js +1 -1
  85. package/lib/commands/db/create.js +1 -1
  86. package/lib/commands/db/delete.js +1 -1
  87. package/lib/commands/db/detail.js +1 -1
  88. package/lib/commands/db/diff-refresh-start.js +1 -1
  89. package/lib/commands/db/diff-refresh-status.js +1 -1
  90. package/lib/commands/db/diff.js +1 -1
  91. package/lib/commands/db/index.js +1 -1
  92. package/lib/commands/db/list.js +1 -1
  93. package/lib/commands/db/shared.js +1 -1
  94. package/lib/commands/db/table-diff-shared.js +1 -1
  95. package/lib/commands/db/tables.js +1 -1
  96. package/lib/commands/db/test.js +1 -1
  97. package/lib/commands/db/update.js +1 -1
  98. package/lib/commands/deployment/auto-sync.js +1 -1
  99. package/lib/commands/deployment/index.js +1 -1
  100. package/lib/commands/deployment/sync-all.d.ts +2 -0
  101. package/lib/commands/deployment/sync-all.js +1 -0
  102. package/lib/commands/deployment/sync-jobs.d.ts +2 -0
  103. package/lib/commands/deployment/sync-jobs.js +1 -0
  104. package/lib/commands/deployment/sync-status.d.ts +2 -0
  105. package/lib/commands/deployment/sync-status.js +1 -0
  106. package/lib/commands/deployment/sync.js +1 -1
  107. package/lib/commands/doctor.js +1 -1
  108. package/lib/commands/file/index.js +1 -1
  109. package/lib/commands/instant-api-policy/current.d.ts +2 -0
  110. package/lib/commands/instant-api-policy/current.js +1 -0
  111. package/lib/commands/instant-api-policy/index.d.ts +2 -0
  112. package/lib/commands/instant-api-policy/index.js +1 -0
  113. package/lib/commands/instant-api-policy/init.d.ts +2 -0
  114. package/lib/commands/instant-api-policy/init.js +1 -0
  115. package/lib/commands/instant-api-policy/publish.d.ts +2 -0
  116. package/lib/commands/instant-api-policy/publish.js +1 -0
  117. package/lib/commands/instant-api-policy/pull.d.ts +2 -0
  118. package/lib/commands/instant-api-policy/pull.js +1 -0
  119. package/lib/commands/instant-api-policy/revision.d.ts +2 -0
  120. package/lib/commands/instant-api-policy/revision.js +1 -0
  121. package/lib/commands/instant-api-policy/revisions.d.ts +2 -0
  122. package/lib/commands/instant-api-policy/revisions.js +1 -0
  123. package/lib/commands/instant-api-policy/rollback.d.ts +2 -0
  124. package/lib/commands/instant-api-policy/rollback.js +1 -0
  125. package/lib/commands/instant-api-policy/shared.d.ts +82 -0
  126. package/lib/commands/instant-api-policy/shared.js +1 -0
  127. package/lib/commands/instant-api-policy/validate.d.ts +2 -0
  128. package/lib/commands/instant-api-policy/validate.js +1 -0
  129. package/lib/commands/issue/index.js +1 -1
  130. package/lib/commands/issue/nudge.js +1 -1
  131. package/lib/commands/issue/report.js +1 -1
  132. package/lib/commands/issue/shared.js +1 -1
  133. package/lib/commands/kb/create.js +1 -1
  134. package/lib/commands/kb/delete.js +1 -1
  135. package/lib/commands/kb/detail.js +1 -1
  136. package/lib/commands/kb/index.js +1 -1
  137. package/lib/commands/kb/list.js +1 -1
  138. package/lib/commands/kb/search.js +1 -1
  139. package/lib/commands/kb/shared.js +1 -1
  140. package/lib/commands/kb/update.js +1 -1
  141. package/lib/commands/logs/index.js +1 -1
  142. package/lib/commands/menu/asset-update.js +1 -1
  143. package/lib/commands/menu/delete.js +1 -1
  144. package/lib/commands/menu/external-link-create.js +1 -1
  145. package/lib/commands/menu/external-link-update.js +1 -1
  146. package/lib/commands/menu/group-create.js +1 -1
  147. package/lib/commands/menu/group-update.js +1 -1
  148. package/lib/commands/menu/index.js +1 -1
  149. package/lib/commands/menu/list.js +1 -1
  150. package/lib/commands/menu/move.js +1 -1
  151. package/lib/commands/menu/regroup-start.js +1 -1
  152. package/lib/commands/menu/rename.js +1 -1
  153. package/lib/commands/menu/shared/compare-table.js +1 -1
  154. package/lib/commands/menu/shared/delete-plan.js +1 -1
  155. package/lib/commands/menu/shared/facts.js +1 -1
  156. package/lib/commands/menu/shared/index.js +1 -1
  157. package/lib/commands/menu/shared/inquirer.js +1 -1
  158. package/lib/commands/menu/shared/local-pages.js +1 -1
  159. package/lib/commands/menu/shared/logic.js +1 -1
  160. package/lib/commands/menu/shared/mutations.js +1 -1
  161. package/lib/commands/menu/shared/service.js +1 -1
  162. package/lib/commands/menu/shared/sync-core.js +1 -1
  163. package/lib/commands/menu/shared/update-core.js +1 -1
  164. package/lib/commands/menu/shared/valid-url.js +1 -1
  165. package/lib/commands/menu/sync.js +1 -1
  166. package/lib/commands/menu/visibility-update.js +1 -1
  167. package/lib/commands/notification/config-create.js +1 -1
  168. package/lib/commands/notification/config-delete.js +1 -1
  169. package/lib/commands/notification/config-list.js +1 -1
  170. package/lib/commands/notification/config-update.js +1 -1
  171. package/lib/commands/notification/index.js +1 -1
  172. package/lib/commands/notification/shared.js +1 -1
  173. package/lib/commands/ocr/index.js +1 -1
  174. package/lib/commands/page/create.js +1 -1
  175. package/lib/commands/page/custom/detail.js +1 -1
  176. package/lib/commands/page/custom/list.js +1 -1
  177. package/lib/commands/page/custom/publish.js +1 -1
  178. package/lib/commands/page/custom/shared.js +1 -1
  179. package/lib/commands/page/custom/syntax.js +1 -1
  180. package/lib/commands/page/custom/template.js +1 -1
  181. package/lib/commands/page/custom/update.js +1 -1
  182. package/lib/commands/page/data-list-status.js +1 -1
  183. package/lib/commands/page/generate-start.js +1 -1
  184. package/lib/commands/page/generate-status.js +1 -1
  185. package/lib/commands/page/index.js +1 -1
  186. package/lib/commands/page/pull.js +1 -1
  187. package/lib/commands/page/push.js +1 -1
  188. package/lib/commands/page/relation-audit.js +1 -1
  189. package/lib/commands/page/restore.js +1 -1
  190. package/lib/commands/page/shared.js +1 -1
  191. package/lib/commands/page/sync.js +1 -1
  192. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  193. package/lib/commands/project/create/format-elapsed.js +1 -1
  194. package/lib/commands/project/create/main.js +1 -1
  195. package/lib/commands/project/create/materialize-project-template.js +1 -1
  196. package/lib/commands/project/create/project-name.js +1 -1
  197. package/lib/commands/project/create/project-template-archive.js +1 -1
  198. package/lib/commands/project/create/project-template-path.js +1 -1
  199. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  200. package/lib/commands/project/create/use-format-code.js +1 -1
  201. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  202. package/lib/commands/project/domain-routing-sync.js +1 -1
  203. package/lib/commands/project/index.js +1 -1
  204. package/lib/commands/project/upgrade.js +1 -1
  205. package/lib/commands/registry.js +1 -1
  206. package/lib/commands/role/delete.js +1 -1
  207. package/lib/commands/role/detail.js +1 -1
  208. package/lib/commands/role/index.js +1 -1
  209. package/lib/commands/role/list.js +1 -1
  210. package/lib/commands/role/shared.js +1 -1
  211. package/lib/commands/role/update.js +1 -1
  212. package/lib/commands/role/user-add.js +1 -1
  213. package/lib/commands/role/user-remove.js +1 -1
  214. package/lib/commands/role/user-resolve.js +1 -1
  215. package/lib/commands/rule/get.js +1 -1
  216. package/lib/commands/rule/index.js +1 -1
  217. package/lib/commands/rule/list.js +1 -1
  218. package/lib/commands/rule/set.js +1 -1
  219. package/lib/commands/rule/shared.js +1 -1
  220. package/lib/commands/run/index.js +1 -1
  221. package/lib/commands/schema.js +1 -1
  222. package/lib/commands/sql/create.js +1 -1
  223. package/lib/commands/sql/delete.js +1 -1
  224. package/lib/commands/sql/detail.js +1 -1
  225. package/lib/commands/sql/exec.js +1 -1
  226. package/lib/commands/sql/index.js +1 -1
  227. package/lib/commands/sql/list.js +1 -1
  228. package/lib/commands/sql/pull.js +1 -1
  229. package/lib/commands/sql/push.js +1 -1
  230. package/lib/commands/sql/shared.js +1 -1
  231. package/lib/commands/sql/status.js +1 -1
  232. package/lib/commands/sql/validate.js +1 -1
  233. package/lib/commands/task/index.js +1 -1
  234. package/lib/commands/task/status.js +1 -1
  235. package/lib/commands/tenant/index.js +1 -1
  236. package/lib/commands/tenant/members-list.js +1 -1
  237. package/lib/commands/tenant/shared.js +1 -1
  238. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  239. package/lib/commands/user-account/index.js +1 -1
  240. package/lib/commands/workspace/add.js +1 -1
  241. package/lib/commands/workspace/index.js +1 -1
  242. package/lib/commands/workspace/remove.js +1 -1
  243. package/lib/config/domain-config.js +1 -1
  244. package/lib/config/project-domain-routing.js +1 -1
  245. package/lib/config/schema.js +1 -1
  246. package/lib/constant/cdn.js +1 -1
  247. package/lib/constant/cli.js +1 -1
  248. package/lib/constant/defaults.js +1 -1
  249. package/lib/constant/domain.js +1 -1
  250. package/lib/constant/env.js +1 -1
  251. package/lib/constant/output.js +1 -1
  252. package/lib/constant/paths.js +1 -1
  253. package/lib/constant/region.js +1 -1
  254. package/lib/constant/risk.js +1 -1
  255. package/lib/constant/routing-profile.js +1 -1
  256. package/lib/context/app-resolver.js +1 -1
  257. package/lib/context/auth-resolver.js +1 -1
  258. package/lib/context/config-loader.js +1 -1
  259. package/lib/context.js +1 -1
  260. package/lib/core/alias-resolver.js +1 -1
  261. package/lib/core/api-client.d.ts +113 -0
  262. package/lib/core/api-client.js +1 -1
  263. package/lib/core/bff/config.js +1 -1
  264. package/lib/core/bff/file-system.js +1 -1
  265. package/lib/core/bff/hash.js +1 -1
  266. package/lib/core/bff/lock.js +1 -1
  267. package/lib/core/bff/utils.js +1 -1
  268. package/lib/core/db-resolver.js +1 -1
  269. package/lib/core/instant-api-policy/config.d.ts +23 -0
  270. package/lib/core/instant-api-policy/config.js +1 -0
  271. package/lib/core/kb-search-client.js +1 -1
  272. package/lib/core/page/file-system.js +1 -1
  273. package/lib/core/page/hash.js +1 -1
  274. package/lib/core/page/lock.js +1 -1
  275. package/lib/core/sql-index-auditor.js +1 -1
  276. package/lib/core/sql-sync/config.js +1 -1
  277. package/lib/core/sql-sync/file-system.js +1 -1
  278. package/lib/core/sql-sync/hash.js +1 -1
  279. package/lib/core/sql-sync/lock.js +1 -1
  280. package/lib/core/sql-sync/utils.js +1 -1
  281. package/lib/core/sql-validator.js +1 -1
  282. package/lib/errors.js +1 -1
  283. package/lib/framework/build-all-flags.js +1 -1
  284. package/lib/framework/error-output.js +1 -1
  285. package/lib/framework/explicit-yes.js +1 -1
  286. package/lib/framework/flags.js +1 -1
  287. package/lib/framework/help.js +1 -1
  288. package/lib/framework/index.js +1 -1
  289. package/lib/framework/output.js +1 -1
  290. package/lib/framework/response.js +1 -1
  291. package/lib/framework/runner-alias.js +1 -1
  292. package/lib/framework/runner.js +1 -1
  293. package/lib/framework/schema-export.js +1 -1
  294. package/lib/framework/supported-flags.js +1 -1
  295. package/lib/framework/types.js +1 -1
  296. package/lib/generated/build-info.d.ts +4 -4
  297. package/lib/generated/build-info.js +1 -1
  298. package/lib/generated/official-routing.js +1 -1
  299. package/lib/generated/routing-contract.js +1 -1
  300. package/lib/help.js +1 -1
  301. package/lib/postinstall.js +1 -1
  302. package/lib/runtime/confirmation.js +1 -1
  303. package/lib/runtime/event.js +1 -1
  304. package/lib/runtime/index.js +1 -1
  305. package/lib/runtime/queue.js +1 -1
  306. package/lib/runtime/resolve.js +1 -1
  307. package/lib/skills/builtin-skill.js +1 -1
  308. package/lib/skills/main.js +1 -1
  309. package/lib/skills/npx-skills-add.js +1 -1
  310. package/lib/skills/skill-presence.js +1 -1
  311. package/lib/telemetry/cli-command-trace.js +1 -1
  312. package/lib/telemetry/cli-help-trace.js +1 -1
  313. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  314. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  315. package/lib/telemetry/send-cli-trace-log.js +1 -1
  316. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  317. package/lib/utils/ai_config.js +1 -1
  318. package/lib/utils/apply-jq-filter.js +1 -1
  319. package/lib/utils/cdn-config.js +1 -1
  320. package/lib/utils/check-sdk-version.js +1 -1
  321. package/lib/utils/cli-version-check.js +1 -1
  322. package/lib/utils/cli-version-policy.js +1 -1
  323. package/lib/utils/config.js +1 -1
  324. package/lib/utils/entity-with-id.js +1 -1
  325. package/lib/utils/file-utils.js +1 -1
  326. package/lib/utils/guides-cdn.js +1 -1
  327. package/lib/utils/http-client.js +1 -1
  328. package/lib/utils/is-non-interactive.js +1 -1
  329. package/lib/utils/logger.js +1 -1
  330. package/lib/utils/params.js +1 -1
  331. package/lib/utils/platform.js +1 -1
  332. package/lib/utils/sleep.js +1 -1
  333. package/lib/utils/template-replacer.js +1 -1
  334. package/lib/utils/update-notice.js +1 -1
  335. package/lib/utils/version.js +1 -1
  336. package/lib/utils/with-active-cookie.js +1 -1
  337. package/lib/utils/write-cli-side-channel.js +1 -1
  338. package/package.json +1 -1
  339. package/skills/rabetbase/SKILL.md +11 -5
  340. package/skills/rabetbase/references/rabetbase-deployment-sync.md +41 -5
  341. package/skills/rabetbase/references/rabetbase-instant-api-policy.md +92 -0
  342. package/skills/rabetbase.manifest.json +4 -3
@@ -1 +1 @@
1
- const a194_0x24aee1=a194_0x4077;(function(_0x24e076,_0x496871){const _0x2b0663=a194_0x4077,_0x24014e=_0x24e076();while(!![]){try{const _0x16818a=-parseInt(_0x2b0663(0x146))/0x1*(-parseInt(_0x2b0663(0x13e))/0x2)+parseInt(_0x2b0663(0x169))/0x3*(-parseInt(_0x2b0663(0x155))/0x4)+parseInt(_0x2b0663(0x13d))/0x5*(-parseInt(_0x2b0663(0x147))/0x6)+-parseInt(_0x2b0663(0x15e))/0x7+parseInt(_0x2b0663(0x145))/0x8+parseInt(_0x2b0663(0x166))/0x9*(parseInt(_0x2b0663(0x16e))/0xa)+-parseInt(_0x2b0663(0x134))/0xb;if(_0x16818a===_0x496871)break;else _0x24014e['push'](_0x24014e['shift']());}catch(_0x4d2572){_0x24014e['push'](_0x24014e['shift']());}}}(a194_0x24b6,0xdb20b));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';function a194_0x24b6(){const _0x2733b8=['\x20run\x20<script>\x0a','.bin','\x20exited\x20with\x20code\x20','\x20run\x20preview\x20--watch','error','start','push','171uskNxH','inherit','script','3EAJrPp','vite','Script\x20\x22','validation','\x22\x20not\x20found\x20in\x20package.json.','874470EpqcsZ','parse','bool','watch','log','dev','\x20run\x20preview','981530mCBwKM','cwd','\x20\x20\x20\x20','keys','node_modules','build','package.json','run','bun.lock','6795qgVpWD','302EKygKx','\x20run\x20build','\x20run\x20','Script\x20name\x20defined\x20in\x20package.json','join','--watch','preview','3780824yjhHnS','1093DKjcBn','432wsMdiF','args','No\x20scripts\x20defined\x20in\x20package.json.','close','\x20\x20EXAMPLES','\x0a\x20\x20Usage:\x20','needsUpgrade','Enable\x20watch\x20mode\x20for\x20preview','boolean','pnpm','Run\x20a\x20package.json\x20script','slice','utf-8','vite\x20preview\x20exited\x20with\x20code\x20','937636AUKkIu','has','yarn.lock','npm','No\x20package.json\x20found\x20in\x20current\x20directory.','pnpm-lock.yaml','write','\x0a\x20\x20Available\x20scripts:\x0a','length','6860735ukuQem'];a194_0x24b6=function(){return _0x2733b8;};return a194_0x24b6();}function a194_0x4077(_0x2c1416,_0x4a639c){_0x2c1416=_0x2c1416-0x130;const _0x24b6be=a194_0x24b6();let _0x40776b=_0x24b6be[_0x2c1416];return _0x40776b;}import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a194_0x24aee1(0x164),a194_0x24aee1(0x132)]);function readPackageScripts(_0x2eb98d){const _0x1df6b1=a194_0x24aee1,_0x39c1b3=resolve(_0x2eb98d,_0x1df6b1(0x13a));if(!existsSync(_0x39c1b3))return null;try{const _0x3235ca=JSON[_0x1df6b1(0x16f)](readFileSync(_0x39c1b3,_0x1df6b1(0x153)));return _0x3235ca['scripts']??{};}catch{return null;}}function detectPackageManager(_0x4002c2){const _0x1aa2ba=a194_0x24aee1;if(existsSync(resolve(_0x4002c2,'bun.lockb'))||existsSync(resolve(_0x4002c2,_0x1aa2ba(0x13c))))return'bun';if(existsSync(resolve(_0x4002c2,_0x1aa2ba(0x15a))))return _0x1aa2ba(0x150);if(existsSync(resolve(_0x4002c2,_0x1aa2ba(0x157))))return'yarn';return _0x1aa2ba(0x158);}async function versionCheck(_0x383502){const _0x314b78=a194_0x24aee1,_0x3a6b27=await checkCliVersion();(_0x3a6b27[_0x314b78(0x14d)]||_0x3a6b27['belowMinimum'])&&(printCliUpgradeWarning(_0x3a6b27),assertCliVersionSupported(_0x3a6b27));const _0x40b6a5=await checkSdkVersion(_0x383502);if(_0x40b6a5['needsUpgrade'])printSdkUpgradeWarning(_0x40b6a5);}function spawnScript(_0x34699a,_0x4d87c7,_0x54f116,_0x3489d8){return new Promise((_0x4b473b,_0xf4ec99)=>{const _0x53cd22=a194_0x4077,_0x2e996c=[_0x53cd22(0x13b),_0x4d87c7,..._0x54f116],_0x50f90b=spawn(_0x34699a,_0x2e996c,{'cwd':_0x3489d8,'stdio':_0x53cd22(0x167),'shell':!![],'env':{...process.env,'PATH':''+join(_0x3489d8,_0x53cd22(0x138),_0x53cd22(0x160))+delimiter+process.env.PATH}});_0x50f90b['on'](_0x53cd22(0x14a),_0x5b0a09=>{const _0x24727e=_0x53cd22;if(_0x5b0a09===0x0||_0x5b0a09===null)_0x4b473b();else _0xf4ec99(new Error(_0x34699a+_0x24727e(0x140)+_0x4d87c7+_0x24727e(0x161)+_0x5b0a09));}),_0x50f90b['on'](_0x53cd22(0x163),_0xf4ec99);});}function spawnViteBuildWatch(_0x1cd3fb){return new Promise((_0x1ed3b5,_0x3e358e)=>{const _0x418892=a194_0x4077,_0x4961d8=spawn(_0x418892(0x16a),[_0x418892(0x139),_0x418892(0x143)],{'cwd':_0x1cd3fb,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x1cd3fb,_0x418892(0x138),_0x418892(0x160))+delimiter+process.env.PATH}});_0x4961d8['on'](_0x418892(0x14a),_0x32e3c6=>{if(_0x32e3c6===0x0||_0x32e3c6===null)_0x1ed3b5();else _0x3e358e(new Error('vite\x20build\x20--watch\x20exited\x20with\x20code\x20'+_0x32e3c6));}),_0x4961d8['on']('error',_0x3e358e);});}function spawnVitePreview(_0x2fab76){return new Promise((_0x4b3e19,_0x956e74)=>{const _0x335d23=a194_0x4077,_0x58f28e=spawn(_0x335d23(0x16a),[_0x335d23(0x144)],{'cwd':_0x2fab76,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x2fab76,_0x335d23(0x138),_0x335d23(0x160))+delimiter+process.env.PATH}});_0x58f28e['on'](_0x335d23(0x14a),_0x26a5da=>{const _0x328637=_0x335d23;if(_0x26a5da===0x0||_0x26a5da===null)_0x4b3e19();else _0x956e74(new Error(_0x328637(0x154)+_0x26a5da));}),_0x58f28e['on'](_0x335d23(0x163),_0x956e74);});}const runFlags=[{'name':a194_0x24aee1(0x130),'type':a194_0x24aee1(0x14f),'description':a194_0x24aee1(0x14e),'default':![]}];export const runDefinition={'service':'run','command':a194_0x24aee1(0x13b),'description':a194_0x24aee1(0x151),'risk':a194_0x24aee1(0x15b),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a194_0x24aee1(0x168),'description':a194_0x24aee1(0x141),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x4d104d=a194_0x24aee1,_0xa36549=[];return _0xa36549[_0x4d104d(0x165)](_0x4d104d(0x14b)),_0xa36549[_0x4d104d(0x165)](_0x4d104d(0x136)+CLI_BIN_NAME+'\x20run\x20start'),_0xa36549[_0x4d104d(0x165)](_0x4d104d(0x136)+CLI_BIN_NAME+_0x4d104d(0x13f)),_0xa36549[_0x4d104d(0x165)](_0x4d104d(0x136)+CLI_BIN_NAME+_0x4d104d(0x133)),_0xa36549['push'](_0x4d104d(0x136)+CLI_BIN_NAME+_0x4d104d(0x162)),_0xa36549[_0x4d104d(0x142)]('\x0a');},async 'execute'(_0x51d8b4){const _0xddc785=a194_0x24aee1,_0x1ad13c=process[_0xddc785(0x135)](),_0x10a70e=_0x51d8b4['args'][0x0],_0x16c4cb=_0x51d8b4[_0xddc785(0x148)][_0xddc785(0x152)](0x1),_0x3a9839=readPackageScripts(_0x1ad13c);if(!_0x3a9839)throw CliErrors[_0xddc785(0x16c)](_0xddc785(0x159));if(!_0x10a70e){const _0x18322a=Object['keys'](_0x3a9839);if(_0x18322a[_0xddc785(0x15d)]===0x0)console['log'](_0xddc785(0x149));else{console[_0xddc785(0x131)](_0xddc785(0x15c));for(const _0x2b2dcd of _0x18322a){console[_0xddc785(0x131)]('\x20\x20\x20\x20'+_0x2b2dcd);}console[_0xddc785(0x131)](_0xddc785(0x14c)+CLI_BIN_NAME+_0xddc785(0x15f));}return{'ok':!![]};}if(!_0x3a9839[_0x10a70e])throw CliErrors['validation'](_0xddc785(0x16b)+_0x10a70e+_0xddc785(0x16d),'Available:\x20'+(Object[_0xddc785(0x137)](_0x3a9839)[_0xddc785(0x142)](',\x20')||'(none)'));const _0x411536=detectPackageManager(_0x1ad13c);VERSION_CHECK_SCRIPTS[_0xddc785(0x156)](_0x10a70e)&&await versionCheck(_0x1ad13c);if(_0x10a70e===_0xddc785(0x144)&&_0x51d8b4[_0xddc785(0x170)](_0xddc785(0x130)))return await Promise['all']([spawnViteBuildWatch(_0x1ad13c),spawnVitePreview(_0x1ad13c)]),{'ok':!![]};return await spawnScript(_0x411536,_0x10a70e,_0x16c4cb,_0x1ad13c),{'ok':!![]};}};
1
+ const a207_0x4d9aaa=a207_0xc20c;(function(_0x4d2960,_0x45e0ac){const _0x56474b=a207_0xc20c,_0x1ce377=_0x4d2960();while(!![]){try{const _0x55bc94=-parseInt(_0x56474b(0x112))/0x1+-parseInt(_0x56474b(0x120))/0x2+parseInt(_0x56474b(0xf9))/0x3+-parseInt(_0x56474b(0x10a))/0x4+parseInt(_0x56474b(0x128))/0x5+parseInt(_0x56474b(0x10d))/0x6+-parseInt(_0x56474b(0x127))/0x7;if(_0x55bc94===_0x45e0ac)break;else _0x1ce377['push'](_0x1ce377['shift']());}catch(_0x11b498){_0x1ce377['push'](_0x1ce377['shift']());}}}(a207_0x1d38,0xaba91));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';function a207_0xc20c(_0x48337d,_0x3b90cc){_0x48337d=_0x48337d-0xf3;const _0x1d385e=a207_0x1d38();let _0xc20cc6=_0x1d385e[_0x48337d];return _0xc20cc6;}import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';function a207_0x1d38(){const _0x43935b=['4155333grLHuk','build','\x0a\x20\x20Usage:\x20','has','(none)','start','\x0a\x20\x20Available\x20scripts:\x0a','close','\x20run\x20preview\x20--watch','parse','vite\x20preview\x20exited\x20with\x20code\x20','\x20run\x20start','push','all','watch','preview','needsUpgrade','1697148BdrOgv','length','\x20\x20\x20\x20','3944400uSSMKB','node_modules','.bin','inherit','npm','286559rEnXMW','args','Script\x20name\x20defined\x20in\x20package.json','vite','\x22\x20not\x20found\x20in\x20package.json.','error','keys','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','log','slice','bool','join','validation','dev','1811284vQPwzC','Script\x20\x22','\x20exited\x20with\x20code\x20','No\x20scripts\x20defined\x20in\x20package.json.','scripts','pnpm-lock.yaml','boolean','5623898AZjhpw','5402560XWkBuE','package.json','\x20run\x20<script>\x0a','\x20run\x20build','yarn.lock','cwd','\x20run\x20','\x20run\x20preview','write','run','utf-8'];a207_0x1d38=function(){return _0x43935b;};return a207_0x1d38();}import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a207_0x4d9aaa(0xfe),a207_0x4d9aaa(0x11f)]);function readPackageScripts(_0x3d1b3c){const _0x17c29d=a207_0x4d9aaa,_0x46cd38=resolve(_0x3d1b3c,_0x17c29d(0x129));if(!existsSync(_0x46cd38))return null;try{const _0x379d3a=JSON[_0x17c29d(0x102)](readFileSync(_0x46cd38,_0x17c29d(0xf8)));return _0x379d3a[_0x17c29d(0x124)]??{};}catch{return null;}}function detectPackageManager(_0x5901e5){const _0x334926=a207_0x4d9aaa;if(existsSync(resolve(_0x5901e5,'bun.lockb'))||existsSync(resolve(_0x5901e5,'bun.lock')))return'bun';if(existsSync(resolve(_0x5901e5,_0x334926(0x125))))return'pnpm';if(existsSync(resolve(_0x5901e5,_0x334926(0x12c))))return'yarn';return _0x334926(0x111);}async function versionCheck(_0x2c5817){const _0x1e53ae=a207_0x4d9aaa,_0x3a56e9=await checkCliVersion();(_0x3a56e9[_0x1e53ae(0x109)]||_0x3a56e9['belowMinimum'])&&(printCliUpgradeWarning(_0x3a56e9),assertCliVersionSupported(_0x3a56e9));const _0x195976=await checkSdkVersion(_0x2c5817);if(_0x195976[_0x1e53ae(0x109)])printSdkUpgradeWarning(_0x195976);}function spawnScript(_0x58046a,_0x36d3b3,_0x1a6be2,_0x223094){return new Promise((_0x316629,_0x180b48)=>{const _0x512344=a207_0xc20c,_0x4f517c=['run',_0x36d3b3,..._0x1a6be2],_0x833ca1=spawn(_0x58046a,_0x4f517c,{'cwd':_0x223094,'stdio':_0x512344(0x110),'shell':!![],'env':{...process.env,'PATH':''+join(_0x223094,_0x512344(0x10e),_0x512344(0x10f))+delimiter+process.env.PATH}});_0x833ca1['on'](_0x512344(0x100),_0x2d2ba8=>{const _0x18ffe6=_0x512344;if(_0x2d2ba8===0x0||_0x2d2ba8===null)_0x316629();else _0x180b48(new Error(_0x58046a+_0x18ffe6(0xf4)+_0x36d3b3+_0x18ffe6(0x122)+_0x2d2ba8));}),_0x833ca1['on'](_0x512344(0x117),_0x180b48);});}function spawnViteBuildWatch(_0x5d0bf8){return new Promise((_0x3d17a2,_0x1db726)=>{const _0x2e4741=a207_0xc20c,_0x5e11be=spawn(_0x2e4741(0x115),[_0x2e4741(0xfa),'--watch'],{'cwd':_0x5d0bf8,'stdio':_0x2e4741(0x110),'shell':!![],'env':{...process.env,'PATH':''+join(_0x5d0bf8,_0x2e4741(0x10e),_0x2e4741(0x10f))+delimiter+process.env.PATH}});_0x5e11be['on'](_0x2e4741(0x100),_0x312abd=>{const _0x3aab36=_0x2e4741;if(_0x312abd===0x0||_0x312abd===null)_0x3d17a2();else _0x1db726(new Error(_0x3aab36(0x119)+_0x312abd));}),_0x5e11be['on'](_0x2e4741(0x117),_0x1db726);});}function spawnVitePreview(_0x193e10){return new Promise((_0x283097,_0x5f2dcf)=>{const _0x35896a=a207_0xc20c,_0x59649b=spawn(_0x35896a(0x115),[_0x35896a(0x108)],{'cwd':_0x193e10,'stdio':_0x35896a(0x110),'shell':!![],'env':{...process.env,'PATH':''+join(_0x193e10,_0x35896a(0x10e),'.bin')+delimiter+process.env.PATH}});_0x59649b['on'](_0x35896a(0x100),_0x46293c=>{const _0x470540=_0x35896a;if(_0x46293c===0x0||_0x46293c===null)_0x283097();else _0x5f2dcf(new Error(_0x470540(0x103)+_0x46293c));}),_0x59649b['on']('error',_0x5f2dcf);});}const runFlags=[{'name':a207_0x4d9aaa(0x107),'type':a207_0x4d9aaa(0x126),'description':'Enable\x20watch\x20mode\x20for\x20preview','default':![]}];export const runDefinition={'service':a207_0x4d9aaa(0xf7),'command':a207_0x4d9aaa(0xf7),'description':'Run\x20a\x20package.json\x20script','risk':a207_0x4d9aaa(0xf6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':'script','description':a207_0x4d9aaa(0x114),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x168d4a=a207_0x4d9aaa,_0x42e28b=[];return _0x42e28b['push']('\x20\x20EXAMPLES'),_0x42e28b[_0x168d4a(0x105)](_0x168d4a(0x10c)+CLI_BIN_NAME+_0x168d4a(0x104)),_0x42e28b[_0x168d4a(0x105)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x168d4a(0x12b)),_0x42e28b[_0x168d4a(0x105)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x168d4a(0xf5)),_0x42e28b[_0x168d4a(0x105)](_0x168d4a(0x10c)+CLI_BIN_NAME+_0x168d4a(0x101)),_0x42e28b[_0x168d4a(0x11d)]('\x0a');},async 'execute'(_0x200ac8){const _0xb5c091=a207_0x4d9aaa,_0x4b141a=process[_0xb5c091(0xf3)](),_0x1547c0=_0x200ac8[_0xb5c091(0x113)][0x0],_0x4942d1=_0x200ac8[_0xb5c091(0x113)][_0xb5c091(0x11b)](0x1),_0x550e68=readPackageScripts(_0x4b141a);if(!_0x550e68)throw CliErrors[_0xb5c091(0x11e)]('No\x20package.json\x20found\x20in\x20current\x20directory.');if(!_0x1547c0){const _0x265100=Object[_0xb5c091(0x118)](_0x550e68);if(_0x265100[_0xb5c091(0x10b)]===0x0)console['log'](_0xb5c091(0x123));else{console[_0xb5c091(0x11a)](_0xb5c091(0xff));for(const _0x321e51 of _0x265100){console[_0xb5c091(0x11a)](_0xb5c091(0x10c)+_0x321e51);}console['log'](_0xb5c091(0xfb)+CLI_BIN_NAME+_0xb5c091(0x12a));}return{'ok':!![]};}if(!_0x550e68[_0x1547c0])throw CliErrors[_0xb5c091(0x11e)](_0xb5c091(0x121)+_0x1547c0+_0xb5c091(0x116),'Available:\x20'+(Object[_0xb5c091(0x118)](_0x550e68)[_0xb5c091(0x11d)](',\x20')||_0xb5c091(0xfd)));const _0xd622bb=detectPackageManager(_0x4b141a);VERSION_CHECK_SCRIPTS[_0xb5c091(0xfc)](_0x1547c0)&&await versionCheck(_0x4b141a);if(_0x1547c0===_0xb5c091(0x108)&&_0x200ac8[_0xb5c091(0x11c)](_0xb5c091(0x107)))return await Promise[_0xb5c091(0x106)]([spawnViteBuildWatch(_0x4b141a),spawnVitePreview(_0x4b141a)]),{'ok':!![]};return await spawnScript(_0xd622bb,_0x1547c0,_0x4942d1,_0x4b141a),{'ok':!![]};}};
@@ -1 +1 @@
1
- function a195_0x4af5(_0x21ebde,_0x3ae9b5){_0x21ebde=_0x21ebde-0x12f;const _0x2ee017=a195_0x2ee0();let _0x4af5a3=_0x2ee017[_0x21ebde];return _0x4af5a3;}const a195_0x31ffb0=a195_0x4af5;(function(_0x389947,_0x3b374a){const _0x56314e=a195_0x4af5,_0x592989=_0x389947();while(!![]){try{const _0x12993b=-parseInt(_0x56314e(0x134))/0x1*(parseInt(_0x56314e(0x131))/0x2)+-parseInt(_0x56314e(0x13b))/0x3+parseInt(_0x56314e(0x13c))/0x4+-parseInt(_0x56314e(0x13a))/0x5*(parseInt(_0x56314e(0x139))/0x6)+parseInt(_0x56314e(0x138))/0x7*(parseInt(_0x56314e(0x135))/0x8)+parseInt(_0x56314e(0x137))/0x9+parseInt(_0x56314e(0x136))/0xa*(parseInt(_0x56314e(0x130))/0xb);if(_0x12993b===_0x3b374a)break;else _0x592989['push'](_0x592989['shift']());}catch(_0x5e217e){_0x592989['push'](_0x592989['shift']());}}}(a195_0x2ee0,0x2053c));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x22a868){const _0xba9cae=await buildSchemaPayload();return{'ok':!![],'data':_0xba9cae};}function a195_0x2ee0(){const _0x8b5a85=['2GIFMvq','read','export','256471kCQoRe','2012440zRBDgV','20rlgiYz','1136619tTxjLO','7hmrgQX','6GRUDvx','529420gBglEG','248187qUUgdE','354272IVbBXM','schema','json','Export\x20machine-readable\x20command\x20schema\x20(JSON)','610951zehWth'];a195_0x2ee0=function(){return _0x8b5a85;};return a195_0x2ee0();}export const schemaDefinition={'service':a195_0x31ffb0(0x13d),'command':a195_0x31ffb0(0x133),'description':a195_0x31ffb0(0x12f),'risk':a195_0x31ffb0(0x132),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a195_0x31ffb0(0x13e),'flags':[],'execute':execute};
1
+ const a208_0x51d6d1=a208_0x2d4e;function a208_0x2602(){const _0x5c3d99=['2979695DlWkwv','schema','797678xrSmCJ','json','4152320UQCTpk','2917019giMhZh','554925ZPJghU','442270BnvmcI','export','4079580jkJmpE','Export\x20machine-readable\x20command\x20schema\x20(JSON)','6JkTAGQ'];a208_0x2602=function(){return _0x5c3d99;};return a208_0x2602();}(function(_0x56e27b,_0x1d60bb){const _0xede564=a208_0x2d4e,_0x6230c5=_0x56e27b();while(!![]){try{const _0x490465=-parseInt(_0xede564(0x1df))/0x1+-parseInt(_0xede564(0x1d8))/0x2+parseInt(_0xede564(0x1d7))/0x3+parseInt(_0xede564(0x1da))/0x4+parseInt(_0xede564(0x1dd))/0x5*(-parseInt(_0xede564(0x1dc))/0x6)+parseInt(_0xede564(0x1d6))/0x7+parseInt(_0xede564(0x1d5))/0x8;if(_0x490465===_0x1d60bb)break;else _0x6230c5['push'](_0x6230c5['shift']());}catch(_0x4e90a5){_0x6230c5['push'](_0x6230c5['shift']());}}}(a208_0x2602,0x80633));import{buildSchemaPayload}from'../framework/schema-export.js';function a208_0x2d4e(_0x11ebc6,_0x41e7a4){_0x11ebc6=_0x11ebc6-0x1d5;const _0x2602e6=a208_0x2602();let _0x2d4e31=_0x2602e6[_0x11ebc6];return _0x2d4e31;}async function execute(_0x5bd100){const _0x5b4fd7=await buildSchemaPayload();return{'ok':!![],'data':_0x5b4fd7};}export const schemaDefinition={'service':a208_0x51d6d1(0x1de),'command':a208_0x51d6d1(0x1d9),'description':a208_0x51d6d1(0x1db),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a208_0x51d6d1(0x1e0),'flags':[],'execute':execute};
@@ -1 +1 @@
1
- const a196_0x2507a9=a196_0x5551;(function(_0x11d8cd,_0x1fc40d){const _0x4e6a47=a196_0x5551,_0x3f9ff1=_0x11d8cd();while(!![]){try{const _0x42a661=-parseInt(_0x4e6a47(0x171))/0x1+parseInt(_0x4e6a47(0x16f))/0x2*(parseInt(_0x4e6a47(0x140))/0x3)+parseInt(_0x4e6a47(0x150))/0x4+-parseInt(_0x4e6a47(0x146))/0x5*(parseInt(_0x4e6a47(0x147))/0x6)+-parseInt(_0x4e6a47(0x153))/0x7+-parseInt(_0x4e6a47(0x166))/0x8*(parseInt(_0x4e6a47(0x16c))/0x9)+parseInt(_0x4e6a47(0x14f))/0xa;if(_0x42a661===_0x1fc40d)break;else _0x3f9ff1['push'](_0x3f9ff1['shift']());}catch(_0x569308){_0x3f9ff1['push'](_0x3f9ff1['shift']());}}}(a196_0x1f31,0x74a0d));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(_0x3009de){const _0x50f506=a196_0x5551;if(_0x3009de===_0x50f506(0x15f))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x50f506(0x154),_0x50f506(0x157),''][_0x50f506(0x14b)]('\x0a');return['SELECT\x201\x20AS\x20id;','']['join']('\x0a');}function a196_0x5551(_0x5f34d3,_0x306ea0){_0x5f34d3=_0x5f34d3-0x139;const _0x1f3132=a196_0x1f31();let _0x55516f=_0x1f3132[_0x5f34d3];return _0x55516f;}export const sqlCreate={'service':'sql','command':a196_0x2507a9(0x15a),'description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':a196_0x2507a9(0x152),'flags':[{'name':a196_0x2507a9(0x16b),'type':a196_0x2507a9(0x173),'description':a196_0x2507a9(0x16e)},{'name':a196_0x2507a9(0x165),'type':a196_0x2507a9(0x14d),'description':a196_0x2507a9(0x164)},{'name':a196_0x2507a9(0x13b),'type':'string','enum':[a196_0x2507a9(0x14e),a196_0x2507a9(0x15f)],'description':a196_0x2507a9(0x16d)}],async 'validate'(_0x3ee36b){const _0x4deab5=a196_0x2507a9;if(!_0x3ee36b[_0x4deab5(0x13a)])return;if(!_0x3ee36b[_0x4deab5(0x14c)](_0x4deab5(0x16b))[_0x4deab5(0x168)]())throw CliErrors['flagMissing']('name','--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x460188=resolveProvidedDbId(_0x3ee36b);if(typeof _0x460188!==_0x4deab5(0x14d)||!Number['isFinite'](_0x460188)||_0x460188<=0x0)throw CliErrors[_0x4deab5(0x162)]('db-id',_0x4deab5(0x170));if(!_0x3ee36b[_0x4deab5(0x14c)](_0x4deab5(0x13b))[_0x4deab5(0x168)]())throw CliErrors['flagMissing'](_0x4deab5(0x13b),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x7b1e59){const _0x265cbd=a196_0x2507a9,_0x3022e6=loadSqlProjectConfig(_0x7b1e59['appCode']),{sqlName:_0x3fb160,dbId:_0x18777a,dbName:_0x46aaa4,mode:_0xa7f806}=await resolveSqlNewInputs(_0x7b1e59),_0x5404e1=buildSqlRelativePath('<server-generated-sqlCode>',_0x3fb160,_0x46aaa4,_0xa7f806,_0x18777a),_0x5b6ae7=_0x3022e6[_0x265cbd(0x178)]+'/'+_0x5404e1;return{'method':_0x265cbd(0x174),'url':_0x265cbd(0x179),'body':{'appCode':_0x7b1e59['appCode'],'sqlName':_0x3fb160,'dbId':_0x18777a,'mode':_0xa7f806,'localPath':_0x5b6ae7},'description':_0x265cbd(0x15e)+_0x3022e6['sqlRootDir']};},async 'execute'(_0x445952){const _0x46cca8=a196_0x2507a9,_0x1c671b=loadSqlProjectConfig(_0x445952['appCode']),{sqlName:_0x5c2a2c,dbId:_0x89c255,dbName:_0x1aed63,mode:_0x302c7f}=await resolveSqlNewInputs(_0x445952),_0x58513=generateSqlTemplate(_0x302c7f),_0x2bd5ef=await createSqlQuery({'appCode':_0x445952[_0x46cca8(0x163)],'sqlName':_0x5c2a2c,'dbId':_0x89c255,'sqlContent':_0x58513}),_0x5be2b3=ensureRemoteSqlContent(_0x2bd5ef),_0x1569dd=_0x1aed63||await getDbName(_0x445952['appCode'],_0x89c255)['catch'](()=>undefined),_0x43b151=buildSqlRelativePath(_0x2bd5ef[_0x46cca8(0x148)],_0x2bd5ef[_0x46cca8(0x177)],_0x1569dd,_0x302c7f,_0x89c255),_0x10b9a8=_0x1c671b[_0x46cca8(0x178)]+'/'+_0x43b151,_0x1a3ef3=buildLocalSqlFileContent({'sqlCode':_0x2bd5ef[_0x46cca8(0x148)],'sqlName':_0x2bd5ef['sqlName'],'dbId':_0x2bd5ef[_0x46cca8(0x143)]},_0x5be2b3,{'dbName':_0x1569dd,'mode':_0x302c7f,'syncedAt':new Date()[_0x46cca8(0x13e)](),'description':_0x2bd5ef[_0x46cca8(0x167)]});if(await fileExists(_0x10b9a8))throw CliErrors[_0x46cca8(0x172)]('File\x20already\x20exists:\x20'+_0x10b9a8);await ensureParentDirectory(_0x10b9a8),await writeFile(_0x10b9a8,_0x1a3ef3,_0x46cca8(0x156));const _0x17ccf7=await readSqlLockFile(_0x1c671b[_0x46cca8(0x13f)]),{lockData:_0x30cc98,appLock:_0x3fd3ef}=ensureSqlLockScope(_0x17ccf7??createEmptySqlLock(),_0x1c671b['appCode'],_0x1c671b[_0x46cca8(0x15c)],'new');return _0x3fd3ef[_0x46cca8(0x175)][_0x2bd5ef[_0x46cca8(0x148)]]={...buildSqlLockEntry(_0x2bd5ef,_0x5be2b3,computeSqlContentHash(_0x1a3ef3),{'dbName':_0x1569dd}),'path':_0x43b151,'mode':_0x302c7f},_0x3fd3ef[_0x46cca8(0x144)]=new Date()[_0x46cca8(0x13e)](),await writeSqlLockFile(_0x1c671b[_0x46cca8(0x13f)],_0x30cc98),{'ok':!![],'data':{'id':_0x2bd5ef['id'],'sqlCode':_0x2bd5ef[_0x46cca8(0x148)],'sqlName':_0x2bd5ef[_0x46cca8(0x177)],'dbId':_0x2bd5ef[_0x46cca8(0x143)],'path':_0x10b9a8,'mode':_0x302c7f},'message':_0x46cca8(0x15b)+_0x2bd5ef[_0x46cca8(0x148)]};}};async function resolveSqlNewInputs(_0x4702bd){const _0x3d610e=await resolveSqlNameInput(_0x4702bd),{dbId:_0x970c16,dbName:_0x2f9186}=await resolveDbSelection(_0x4702bd),_0x463313=await resolveSqlModeInput(_0x4702bd);return{'sqlName':_0x3d610e,'dbId':_0x970c16,'dbName':_0x2f9186,'mode':_0x463313};}async function resolveSqlNameInput(_0x5360f7){const _0x579d73=a196_0x2507a9,_0x4f2725=_0x5360f7[_0x579d73(0x14c)](_0x579d73(0x16b))['trim']();if(_0x4f2725)return _0x4f2725;if(_0x5360f7[_0x579d73(0x13a)])throw CliErrors[_0x579d73(0x162)](_0x579d73(0x16b),_0x579d73(0x141));return(await input({'message':_0x579d73(0x159),'validate':_0x3f33a5=>_0x3f33a5['trim']()?!![]:_0x579d73(0x15d)}))[_0x579d73(0x168)]();}async function resolveDbSelection(_0x1a9f75){const _0x493f7f=a196_0x2507a9,_0xb4c559=resolveProvidedDbId(_0x1a9f75);if(typeof _0xb4c559===_0x493f7f(0x14d)&&Number['isFinite'](_0xb4c559)&&_0xb4c559>0x0)return{'dbId':_0xb4c559,'dbName':await getDbName(_0x1a9f75[_0x493f7f(0x163)],_0xb4c559)[_0x493f7f(0x14a)](()=>undefined)};if(_0x1a9f75[_0x493f7f(0x13a)])throw CliErrors['flagMissing'](_0x493f7f(0x165),_0x493f7f(0x170));const _0x5f16b3=await listDatabases(_0x1a9f75[_0x493f7f(0x163)])[_0x493f7f(0x14a)](()=>[]);if(_0x5f16b3['length']===0x1)return{'dbId':_0x5f16b3[0x0][_0x493f7f(0x143)],'dbName':_0x5f16b3[0x0][_0x493f7f(0x16a)]};if(_0x5f16b3[_0x493f7f(0x139)]>0x1){const _0x352504=await select({'message':'Select\x20the\x20target\x20database:','choices':[..._0x5f16b3[_0x493f7f(0x145)](_0x15c847=>({'name':_0x15c847[_0x493f7f(0x16a)]+'\x20('+_0x15c847[_0x493f7f(0x143)]+')','value':serializeDbSelection(_0x15c847)})),{'name':'✎\x20Enter\x20dbId\x20manually','value':_0x493f7f(0x160)}]});if(_0x352504!==_0x493f7f(0x160))return deserializeDbSelection(_0x352504);}const _0x573fa2=await input({'message':'Target\x20database\x20dbId:','validate':_0x241694=>{const _0x2b28b4=_0x493f7f,_0x347dc8=_0x241694[_0x2b28b4(0x168)]();if(!_0x347dc8)return _0x2b28b4(0x176);const _0x2626d2=Number(_0x347dc8);if(!Number[_0x2b28b4(0x13d)](_0x2626d2)||_0x2626d2<=0x0)return _0x2b28b4(0x13c);return!![];}});return{'dbId':Number(_0x573fa2[_0x493f7f(0x168)]())};}async function resolveSqlModeInput(_0xb31742){const _0x288a7f=a196_0x2507a9,_0x1ccd75=_0xb31742['str']('mode')[_0x288a7f(0x168)]();if(_0x1ccd75==='sql'||_0x1ccd75===_0x288a7f(0x15f))return _0x1ccd75;if(_0xb31742['nonInteractive'])throw CliErrors[_0x288a7f(0x162)]('mode',_0x288a7f(0x158));return await select({'message':_0x288a7f(0x155),'choices':[{'name':_0x288a7f(0x149),'value':'sql','description':'For\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20statements\x20that\x20run\x20directly'},{'name':_0x288a7f(0x142),'value':_0x288a7f(0x15f),'description':_0x288a7f(0x151)}]});}function serializeDbSelection(_0x4659d6){const _0x16a9bf=a196_0x2507a9;return JSON['stringify']({'dbId':_0x4659d6[_0x16a9bf(0x143)],'dbName':_0x4659d6[_0x16a9bf(0x16a)]});}function a196_0x1f31(){const _0x38a931=['--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','113748DydVkN','validation','string','POST','sqls','dbId\x20cannot\x20be\x20empty','sqlName','sqlRootDir','/smartapi/custom/saveUserCustomSql','length','nonInteractive','mode','dbId\x20must\x20be\x20a\x20positive\x20integer','isInteger','toISOString','lockFilePath','5361eijvYY','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','MyBatis\x20XML\x20(mybatisXml)','dbId','lastSync','map','18175MmBfEE','42ijSpaZ','sqlCode','Plain\x20SQL\x20(sql)','catch','join','str','number','sql','8935420ayEDjr','1397556tOwltB','For\x20MyBatis\x20XML\x20SQL\x20with\x20dynamic\x20tags','write','3022033RQxTpL','\x20\x20SELECT\x201\x20AS\x20id','Select\x20the\x20local\x20SQL\x20mode:','utf8','</select>','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','SQL\x20name:','create','Created\x20SQL\x20query\x20','sqlRoot','SQL\x20name\x20cannot\x20be\x20empty','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','mybatisXml','__manual__','flag','flagMissing','appCode','Target\x20database\x20ID','db-id','608zPqGjb','description','trim','isFinite','dbName','name','75915YfPeUm','Local\x20SQL\x20file\x20mode','SQL\x20query\x20display\x20name','500HxaIYa'];a196_0x1f31=function(){return _0x38a931;};return a196_0x1f31();}function deserializeDbSelection(_0x1e521){const _0x2b4a2b=a196_0x2507a9;try{const _0x3ac61d=JSON['parse'](_0x1e521);if(typeof _0x3ac61d['dbId']===_0x2b4a2b(0x14d)&&Number[_0x2b4a2b(0x169)](_0x3ac61d[_0x2b4a2b(0x143)]))return{'dbId':_0x3ac61d[_0x2b4a2b(0x143)],'dbName':_0x3ac61d[_0x2b4a2b(0x16a)]};}catch{}throw CliErrors[_0x2b4a2b(0x172)]('Invalid\x20database\x20selection\x20payload:\x20'+_0x1e521);}function resolveProvidedDbId(_0x74cc90){const _0x5b856d=a196_0x2507a9,_0x169043=_0x74cc90[_0x5b856d(0x161)](_0x5b856d(0x165));if(typeof _0x169043===_0x5b856d(0x14d)&&Number[_0x5b856d(0x169)](_0x169043))return _0x169043;return undefined;}
1
+ const a209_0x3bbc76=a209_0x8857;(function(_0xdd1a74,_0x175e99){const _0xfa6a94=a209_0x8857,_0x2fea65=_0xdd1a74();while(!![]){try{const _0x222982=parseInt(_0xfa6a94(0x13e))/0x1+-parseInt(_0xfa6a94(0x129))/0x2+parseInt(_0xfa6a94(0x133))/0x3*(parseInt(_0xfa6a94(0x135))/0x4)+parseInt(_0xfa6a94(0x12a))/0x5*(parseInt(_0xfa6a94(0x11b))/0x6)+parseInt(_0xfa6a94(0x124))/0x7+parseInt(_0xfa6a94(0x10f))/0x8*(-parseInt(_0xfa6a94(0x13c))/0x9)+parseInt(_0xfa6a94(0x141))/0xa*(-parseInt(_0xfa6a94(0x111))/0xb);if(_0x222982===_0x175e99)break;else _0x2fea65['push'](_0x2fea65['shift']());}catch(_0x3d3b5b){_0x2fea65['push'](_0x2fea65['shift']());}}}(a209_0x56aa,0x5185b));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(_0x1f8607){const _0x35a079=a209_0x8857;if(_0x1f8607==='mybatisXml')return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','\x20\x20SELECT\x201\x20AS\x20id',_0x35a079(0x10e),''][_0x35a079(0x147)]('\x0a');return[_0x35a079(0x119),''][_0x35a079(0x147)]('\x0a');}function a209_0x56aa(){const _0x18b674=['number','487937YciVpO','/smartapi/custom/saveUserCustomSql','toISOString','218930wErFNz','length','SQL\x20name:','appCode','sqls','__manual__','join','Created\x20SQL\x20query\x20','mode','Plain\x20SQL\x20(sql)','utf8','mybatisXml','</select>','195816weNldL','description','605JVFEjN','✎\x20Enter\x20dbId\x20manually','Select\x20the\x20local\x20SQL\x20mode:','stringify','isFinite','name','sqlCode','nonInteractive','SELECT\x201\x20AS\x20id;','<server-generated-sqlCode>','498NqjAqv','dbName','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','dbId','string','For\x20MyBatis\x20XML\x20SQL\x20with\x20dynamic\x20tags','db-id','create','validation','4028094bIjRpw','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','str','Local\x20SQL\x20file\x20mode','790086ifAIkf','37425eidkWh','SQL\x20query\x20display\x20name','map','new','sqlRootDir','trim','flag','For\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20statements\x20that\x20run\x20directly','sqlName','1993644wxsdDf','write','4cRnpOG','parse','sql','flagMissing','catch','lockFilePath','isInteger','153sWshGZ'];a209_0x56aa=function(){return _0x18b674;};return a209_0x56aa();}export const sqlCreate={'service':a209_0x3bbc76(0x137),'command':a209_0x3bbc76(0x122),'description':a209_0x3bbc76(0x125),'risk':a209_0x3bbc76(0x134),'flags':[{'name':'name','type':a209_0x3bbc76(0x11f),'description':a209_0x3bbc76(0x12b)},{'name':a209_0x3bbc76(0x121),'type':'number','description':'Target\x20database\x20ID'},{'name':'mode','type':'string','enum':['sql','mybatisXml'],'description':a209_0x3bbc76(0x128)}],async 'validate'(_0x32fc45){const _0x35bf95=a209_0x3bbc76;if(!_0x32fc45['nonInteractive'])return;if(!_0x32fc45[_0x35bf95(0x127)]('name')[_0x35bf95(0x12f)]())throw CliErrors[_0x35bf95(0x138)](_0x35bf95(0x116),_0x35bf95(0x126));const _0x5d380e=resolveProvidedDbId(_0x32fc45);if(typeof _0x5d380e!=='number'||!Number[_0x35bf95(0x115)](_0x5d380e)||_0x5d380e<=0x0)throw CliErrors[_0x35bf95(0x138)](_0x35bf95(0x121),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x32fc45['str'](_0x35bf95(0x149))[_0x35bf95(0x12f)]())throw CliErrors[_0x35bf95(0x138)](_0x35bf95(0x149),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x551bf9){const _0x1ba103=a209_0x3bbc76,_0x5e21c4=loadSqlProjectConfig(_0x551bf9[_0x1ba103(0x144)]),{sqlName:_0xa5e675,dbId:_0x4669dc,dbName:_0x445871,mode:_0x398b20}=await resolveSqlNewInputs(_0x551bf9),_0x25e61c=buildSqlRelativePath(_0x1ba103(0x11a),_0xa5e675,_0x445871,_0x398b20,_0x4669dc),_0x5aa860=_0x5e21c4[_0x1ba103(0x12e)]+'/'+_0x25e61c;return{'method':'POST','url':_0x1ba103(0x13f),'body':{'appCode':_0x551bf9['appCode'],'sqlName':_0xa5e675,'dbId':_0x4669dc,'mode':_0x398b20,'localPath':_0x5aa860},'description':_0x1ba103(0x11d)+_0x5e21c4[_0x1ba103(0x12e)]};},async 'execute'(_0x389359){const _0x336283=a209_0x3bbc76,_0x2757a4=loadSqlProjectConfig(_0x389359[_0x336283(0x144)]),{sqlName:_0x4bbcc1,dbId:_0x1c081a,dbName:_0x2eb0de,mode:_0x3d76af}=await resolveSqlNewInputs(_0x389359),_0x5a81ea=generateSqlTemplate(_0x3d76af),_0xa38b48=await createSqlQuery({'appCode':_0x389359[_0x336283(0x144)],'sqlName':_0x4bbcc1,'dbId':_0x1c081a,'sqlContent':_0x5a81ea}),_0x27a1b7=ensureRemoteSqlContent(_0xa38b48),_0x3172da=_0x2eb0de||await getDbName(_0x389359[_0x336283(0x144)],_0x1c081a)[_0x336283(0x139)](()=>undefined),_0x578126=buildSqlRelativePath(_0xa38b48[_0x336283(0x117)],_0xa38b48[_0x336283(0x132)],_0x3172da,_0x3d76af,_0x1c081a),_0x3c1b94=_0x2757a4[_0x336283(0x12e)]+'/'+_0x578126,_0x1fb947=buildLocalSqlFileContent({'sqlCode':_0xa38b48[_0x336283(0x117)],'sqlName':_0xa38b48[_0x336283(0x132)],'dbId':_0xa38b48['dbId']},_0x27a1b7,{'dbName':_0x3172da,'mode':_0x3d76af,'syncedAt':new Date()[_0x336283(0x140)](),'description':_0xa38b48[_0x336283(0x110)]});if(await fileExists(_0x3c1b94))throw CliErrors[_0x336283(0x123)]('File\x20already\x20exists:\x20'+_0x3c1b94);await ensureParentDirectory(_0x3c1b94),await writeFile(_0x3c1b94,_0x1fb947,_0x336283(0x14b));const _0x34be9a=await readSqlLockFile(_0x2757a4[_0x336283(0x13a)]),{lockData:_0x3eddcf,appLock:_0xbc73f4}=ensureSqlLockScope(_0x34be9a??createEmptySqlLock(),_0x2757a4[_0x336283(0x144)],_0x2757a4['sqlRoot'],_0x336283(0x12d));return _0xbc73f4[_0x336283(0x145)][_0xa38b48[_0x336283(0x117)]]={...buildSqlLockEntry(_0xa38b48,_0x27a1b7,computeSqlContentHash(_0x1fb947),{'dbName':_0x3172da}),'path':_0x578126,'mode':_0x3d76af},_0xbc73f4['lastSync']=new Date()[_0x336283(0x140)](),await writeSqlLockFile(_0x2757a4[_0x336283(0x13a)],_0x3eddcf),{'ok':!![],'data':{'id':_0xa38b48['id'],'sqlCode':_0xa38b48[_0x336283(0x117)],'sqlName':_0xa38b48[_0x336283(0x132)],'dbId':_0xa38b48['dbId'],'path':_0x3c1b94,'mode':_0x3d76af},'message':_0x336283(0x148)+_0xa38b48[_0x336283(0x117)]};}};async function resolveSqlNewInputs(_0x1727a2){const _0xdf1657=await resolveSqlNameInput(_0x1727a2),{dbId:_0x2f6eec,dbName:_0x234c32}=await resolveDbSelection(_0x1727a2),_0x228942=await resolveSqlModeInput(_0x1727a2);return{'sqlName':_0xdf1657,'dbId':_0x2f6eec,'dbName':_0x234c32,'mode':_0x228942};}function a209_0x8857(_0x3390d1,_0x333263){_0x3390d1=_0x3390d1-0x10e;const _0x56aa77=a209_0x56aa();let _0x8857d5=_0x56aa77[_0x3390d1];return _0x8857d5;}async function resolveSqlNameInput(_0x36e034){const _0x2a620c=a209_0x3bbc76,_0x234c87=_0x36e034['str'](_0x2a620c(0x116))[_0x2a620c(0x12f)]();if(_0x234c87)return _0x234c87;if(_0x36e034[_0x2a620c(0x118)])throw CliErrors['flagMissing'](_0x2a620c(0x116),_0x2a620c(0x126));return(await input({'message':_0x2a620c(0x143),'validate':_0x4838f1=>_0x4838f1[_0x2a620c(0x12f)]()?!![]:'SQL\x20name\x20cannot\x20be\x20empty'}))[_0x2a620c(0x12f)]();}async function resolveDbSelection(_0x1b368f){const _0x132500=a209_0x3bbc76,_0x2c5297=resolveProvidedDbId(_0x1b368f);if(typeof _0x2c5297==='number'&&Number[_0x132500(0x115)](_0x2c5297)&&_0x2c5297>0x0)return{'dbId':_0x2c5297,'dbName':await getDbName(_0x1b368f[_0x132500(0x144)],_0x2c5297)['catch'](()=>undefined)};if(_0x1b368f[_0x132500(0x118)])throw CliErrors[_0x132500(0x138)](_0x132500(0x121),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x5577d1=await listDatabases(_0x1b368f[_0x132500(0x144)])['catch'](()=>[]);if(_0x5577d1[_0x132500(0x142)]===0x1)return{'dbId':_0x5577d1[0x0][_0x132500(0x11e)],'dbName':_0x5577d1[0x0]['dbName']};if(_0x5577d1['length']>0x1){const _0x563a80=await select({'message':'Select\x20the\x20target\x20database:','choices':[..._0x5577d1[_0x132500(0x12c)](_0x15b66f=>({'name':_0x15b66f['dbName']+'\x20('+_0x15b66f['dbId']+')','value':serializeDbSelection(_0x15b66f)})),{'name':_0x132500(0x112),'value':'__manual__'}]});if(_0x563a80!==_0x132500(0x146))return deserializeDbSelection(_0x563a80);}const _0x27551f=await input({'message':'Target\x20database\x20dbId:','validate':_0x3be5d5=>{const _0x27fc9a=_0x132500,_0x16e615=_0x3be5d5[_0x27fc9a(0x12f)]();if(!_0x16e615)return'dbId\x20cannot\x20be\x20empty';const _0x348ee7=Number(_0x16e615);if(!Number[_0x27fc9a(0x13b)](_0x348ee7)||_0x348ee7<=0x0)return'dbId\x20must\x20be\x20a\x20positive\x20integer';return!![];}});return{'dbId':Number(_0x27551f[_0x132500(0x12f)]())};}async function resolveSqlModeInput(_0xaab165){const _0x50368d=a209_0x3bbc76,_0x3a77a6=_0xaab165[_0x50368d(0x127)](_0x50368d(0x149))[_0x50368d(0x12f)]();if(_0x3a77a6===_0x50368d(0x137)||_0x3a77a6===_0x50368d(0x14c))return _0x3a77a6;if(_0xaab165[_0x50368d(0x118)])throw CliErrors[_0x50368d(0x138)](_0x50368d(0x149),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':_0x50368d(0x113),'choices':[{'name':_0x50368d(0x14a),'value':_0x50368d(0x137),'description':_0x50368d(0x131)},{'name':'MyBatis\x20XML\x20(mybatisXml)','value':_0x50368d(0x14c),'description':_0x50368d(0x120)}]});}function serializeDbSelection(_0x252373){const _0x1ae80a=a209_0x3bbc76;return JSON[_0x1ae80a(0x114)]({'dbId':_0x252373['dbId'],'dbName':_0x252373[_0x1ae80a(0x11c)]});}function deserializeDbSelection(_0x2c1494){const _0x5783df=a209_0x3bbc76;try{const _0x3b8f38=JSON[_0x5783df(0x136)](_0x2c1494);if(typeof _0x3b8f38['dbId']===_0x5783df(0x13d)&&Number['isFinite'](_0x3b8f38[_0x5783df(0x11e)]))return{'dbId':_0x3b8f38[_0x5783df(0x11e)],'dbName':_0x3b8f38['dbName']};}catch{}throw CliErrors[_0x5783df(0x123)]('Invalid\x20database\x20selection\x20payload:\x20'+_0x2c1494);}function resolveProvidedDbId(_0xdc740c){const _0x2148f7=a209_0x3bbc76,_0x558295=_0xdc740c[_0x2148f7(0x130)]('db-id');if(typeof _0x558295===_0x2148f7(0x13d)&&Number['isFinite'](_0x558295))return _0x558295;return undefined;}
@@ -1 +1 @@
1
- const a197_0x42ff5b=a197_0x2e71;function a197_0x2e71(_0x2e39a7,_0x53960c){_0x2e39a7=_0x2e39a7-0x11d;const _0x2227f6=a197_0x2227();let _0x2e7185=_0x2227f6[_0x2e39a7];return _0x2e7185;}(function(_0x330d3e,_0x28010d){const _0x4a15f2=a197_0x2e71,_0x4ededd=_0x330d3e();while(!![]){try{const _0x3cc74f=parseInt(_0x4a15f2(0x12e))/0x1+-parseInt(_0x4a15f2(0x136))/0x2*(-parseInt(_0x4a15f2(0x125))/0x3)+parseInt(_0x4a15f2(0x122))/0x4*(parseInt(_0x4a15f2(0x12c))/0x5)+-parseInt(_0x4a15f2(0x135))/0x6+parseInt(_0x4a15f2(0x133))/0x7*(-parseInt(_0x4a15f2(0x124))/0x8)+-parseInt(_0x4a15f2(0x129))/0x9+parseInt(_0x4a15f2(0x121))/0xa;if(_0x3cc74f===_0x28010d)break;else _0x4ededd['push'](_0x4ededd['shift']());}catch(_0x234f59){_0x4ededd['push'](_0x4ededd['shift']());}}}(a197_0x2227,0xe23ce));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a197_0x42ff5b(0x13c),'command':'delete','description':a197_0x42ff5b(0x123),'risk':a197_0x42ff5b(0x134),'flags':[SQLCODE_FLAG],async 'validate'(_0x5395b2){const _0x2e4ef0=a197_0x42ff5b,_0x18c4d8=loadSqlProjectConfig(_0x5395b2['appCode']),_0x22495f=await readSqlLockFile(_0x18c4d8[_0x2e4ef0(0x11d)]);if(!_0x22495f)throw CliErrors[_0x2e4ef0(0x11f)](_0x2e4ef0(0x13b));},async 'dryRun'(_0x4b3389){const _0x2113f3=a197_0x42ff5b,_0x5a082c=loadSqlProjectConfig(_0x4b3389['appCode']),_0x423977=await readSqlLockFile(_0x5a082c[_0x2113f3(0x11d)]);if(!_0x423977)throw CliErrors[_0x2113f3(0x11f)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x4b731d}=ensureSqlLockScope(_0x423977,_0x4b3389['appCode'],_0x5a082c['sqlRoot'],'delete'),_0x3eb13c=_0x4b3389[_0x2113f3(0x141)](_0x2113f3(0x128)),_0x28d8c2=_0x4b731d[_0x2113f3(0x132)][_0x3eb13c];if(!_0x28d8c2)throw CliErrors['validation']('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x3eb13c+'\x22.');return{'method':'POST','url':_0x2113f3(0x13f),'body':{'sqlCode':_0x3eb13c,'id':_0x28d8c2[_0x2113f3(0x13e)],'localPath':resolveLocalSqlFilePath(_0x5a082c,_0x3eb13c,_0x28d8c2)},'description':_0x2113f3(0x12f)+_0x3eb13c+_0x2113f3(0x140)+_0x5a082c[_0x2113f3(0x139)]};},async 'execute'(_0x5ea998){const _0xa92215=a197_0x42ff5b,_0x2fb2d1=loadSqlProjectConfig(_0x5ea998[_0xa92215(0x12b)]),_0x5baa58=await readSqlLockFile(_0x2fb2d1['lockFilePath']);if(!_0x5baa58)throw CliErrors[_0xa92215(0x11f)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x3839fb,appLock:_0x122eed}=ensureSqlLockScope(_0x5baa58,_0x5ea998[_0xa92215(0x12b)],_0x2fb2d1[_0xa92215(0x13d)],_0xa92215(0x12d)),_0x39a569=_0x5ea998[_0xa92215(0x141)](_0xa92215(0x128)),_0xcb4dd9=_0x122eed['sqls'][_0x39a569];if(!_0xcb4dd9)throw CliErrors['validation'](_0xa92215(0x138)+_0x39a569+'\x22.');await deleteSqlQuery({'id':_0xcb4dd9[_0xa92215(0x13e)],'sqlCode':_0x39a569}),_0x122eed[_0xa92215(0x132)]=Object[_0xa92215(0x12a)](Object['entries'](_0x122eed[_0xa92215(0x132)])[_0xa92215(0x126)](([_0x1fcbbc])=>_0x1fcbbc!==_0x39a569)),_0x122eed[_0xa92215(0x120)]=new Date()[_0xa92215(0x11e)](),await writeSqlLockFile(_0x2fb2d1['lockFilePath'],_0x3839fb);const _0x16c472=resolveLocalSqlFilePath(_0x2fb2d1,_0x39a569,_0xcb4dd9);let _0x57e306;await fileExists(_0x16c472)&&(_0x57e306=await moveToTrash(_0x2fb2d1[_0xa92215(0x130)],_0x2fb2d1[_0xa92215(0x139)],_0x16c472),await cleanupEmptyDirectories(dirname(_0x16c472),_0x2fb2d1[_0xa92215(0x137)]));const _0x7614f7={'deleted':_0x39a569,'remoteId':_0xcb4dd9[_0xa92215(0x13e)]};if(_0x57e306)_0x7614f7['trashedTo']=_0x57e306;return{'ok':!![],'data':_0x7614f7,'message':_0xa92215(0x131)+_0x39a569+(_0x57e306?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function a197_0x2227(){const _0x58e74a=['sqlRootDir','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','trashDir','startsWith','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','sql','sqlRoot','remoteId','/smartapi/custom/deleteUserCustomSql','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','str','lockFilePath','toISOString','validation','lastSync','18909850QxSkQf','88PcpLUT','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','1792PMfnNe','162654VmDvic','filter','length','sqlcode','6437520PUrOCy','fromEntries','appCode','109205wJcTki','delete','96902eDiRRr','Would\x20delete\x20SQL\x20','projectRoot','Deleted\x20','sqls','31017kFBnrr','high-risk-write','2256450UwtBRv','20oxzetI'];a197_0x2227=function(){return _0x58e74a;};return a197_0x2227();}async function moveToTrash(_0x236cd4,_0x2469fd,_0x223a57){const _0x3f68bb=a197_0x42ff5b,_0x204fde=new Date()[_0x3f68bb(0x11e)]()['replace'](/[:.]/g,'-'),_0x1056f8=relative(_0x236cd4,_0x223a57),_0x2b4fd1=join(_0x2469fd,_0x204fde,_0x1056f8);return await mkdir(dirname(_0x2b4fd1),{'recursive':!![]}),await rename(_0x223a57,_0x2b4fd1),_0x2b4fd1;}async function cleanupEmptyDirectories(_0x423878,_0x5a5eb4){const _0x13907c=a197_0x42ff5b;let _0xb37a5d=resolve(_0x423878);const _0x13d030=resolve(_0x5a5eb4);while(_0xb37a5d[_0x13907c(0x13a)](''+_0x13d030+sep)||_0xb37a5d===_0x13d030){if(_0xb37a5d===_0x13d030)return;try{const _0x33ebe8=await readdir(_0xb37a5d);if(_0x33ebe8[_0x13907c(0x127)]>0x0)return;await rmdir(_0xb37a5d);}catch{return;}_0xb37a5d=dirname(_0xb37a5d);}}
1
+ const a210_0x346af7=a210_0x57a0;(function(_0xc8961b,_0x365ee1){const _0x464917=a210_0x57a0,_0x33ad67=_0xc8961b();while(!![]){try{const _0x45f9c9=parseInt(_0x464917(0x117))/0x1*(parseInt(_0x464917(0x11d))/0x2)+parseInt(_0x464917(0x11f))/0x3+-parseInt(_0x464917(0x114))/0x4+-parseInt(_0x464917(0x107))/0x5+parseInt(_0x464917(0x10b))/0x6*(parseInt(_0x464917(0x112))/0x7)+parseInt(_0x464917(0x115))/0x8+-parseInt(_0x464917(0x10e))/0x9;if(_0x45f9c9===_0x365ee1)break;else _0x33ad67['push'](_0x33ad67['shift']());}catch(_0x2ad3b5){_0x33ad67['push'](_0x33ad67['shift']());}}}(a210_0x5a21,0x33f70));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';function a210_0x5a21(){const _0xe1b0b5=['str','1244181avtJww','remoteId','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','filter','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','Would\x20delete\x20SQL\x20','toISOString','POST','sqlRootDir','length','sqlRoot','1517365quvFOH','lockFilePath','trashedTo','/smartapi/custom/deleteUserCustomSql','462pWgyHu','startsWith','appCode','84303hnlcDS','trashDir','high-risk-write','sqls','2821JdioPf','sqlcode','1668864RzlgJF','860248owypdp','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','145ynVThA','entries','validation','projectRoot','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','delete','5374XbdbYF'];a210_0x5a21=function(){return _0xe1b0b5;};return a210_0x5a21();}function a210_0x57a0(_0x2bf913,_0x1fa11c){_0x2bf913=_0x2bf913-0x105;const _0x5a21e6=a210_0x5a21();let _0x57a017=_0x5a21e6[_0x2bf913];return _0x57a017;}import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':a210_0x346af7(0x11c),'description':a210_0x346af7(0x116),'risk':a210_0x346af7(0x110),'flags':[SQLCODE_FLAG],async 'validate'(_0x455665){const _0x47c128=a210_0x346af7,_0x5c22a7=loadSqlProjectConfig(_0x455665['appCode']),_0x3624f1=await readSqlLockFile(_0x5c22a7[_0x47c128(0x108)]);if(!_0x3624f1)throw CliErrors[_0x47c128(0x119)](_0x47c128(0x11b));},async 'dryRun'(_0x388c48){const _0x2b763a=a210_0x346af7,_0x607308=loadSqlProjectConfig(_0x388c48[_0x2b763a(0x10d)]),_0x1a7b26=await readSqlLockFile(_0x607308[_0x2b763a(0x108)]);if(!_0x1a7b26)throw CliErrors['validation'](_0x2b763a(0x11b));const {appLock:_0xf0639}=ensureSqlLockScope(_0x1a7b26,_0x388c48[_0x2b763a(0x10d)],_0x607308[_0x2b763a(0x106)],_0x2b763a(0x11c)),_0x103199=_0x388c48[_0x2b763a(0x11e)]('sqlcode'),_0x5c07df=_0xf0639[_0x2b763a(0x111)][_0x103199];if(!_0x5c07df)throw CliErrors[_0x2b763a(0x119)](_0x2b763a(0x121)+_0x103199+'\x22.');return{'method':_0x2b763a(0x126),'url':_0x2b763a(0x10a),'body':{'sqlCode':_0x103199,'id':_0x5c07df[_0x2b763a(0x120)],'localPath':resolveLocalSqlFilePath(_0x607308,_0x103199,_0x5c07df)},'description':_0x2b763a(0x124)+_0x103199+_0x2b763a(0x123)+_0x607308[_0x2b763a(0x10f)]};},async 'execute'(_0x5177b9){const _0x435162=a210_0x346af7,_0x366aaf=loadSqlProjectConfig(_0x5177b9['appCode']),_0xae5470=await readSqlLockFile(_0x366aaf[_0x435162(0x108)]);if(!_0xae5470)throw CliErrors[_0x435162(0x119)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x4e00eb,appLock:_0x382277}=ensureSqlLockScope(_0xae5470,_0x5177b9[_0x435162(0x10d)],_0x366aaf[_0x435162(0x106)],_0x435162(0x11c)),_0x82aaf0=_0x5177b9[_0x435162(0x11e)](_0x435162(0x113)),_0x28aded=_0x382277[_0x435162(0x111)][_0x82aaf0];if(!_0x28aded)throw CliErrors[_0x435162(0x119)](_0x435162(0x121)+_0x82aaf0+'\x22.');await deleteSqlQuery({'id':_0x28aded[_0x435162(0x120)],'sqlCode':_0x82aaf0}),_0x382277[_0x435162(0x111)]=Object['fromEntries'](Object[_0x435162(0x118)](_0x382277[_0x435162(0x111)])[_0x435162(0x122)](([_0x2c05a5])=>_0x2c05a5!==_0x82aaf0)),_0x382277['lastSync']=new Date()[_0x435162(0x125)](),await writeSqlLockFile(_0x366aaf[_0x435162(0x108)],_0x4e00eb);const _0x34249b=resolveLocalSqlFilePath(_0x366aaf,_0x82aaf0,_0x28aded);let _0x38008f;await fileExists(_0x34249b)&&(_0x38008f=await moveToTrash(_0x366aaf[_0x435162(0x11a)],_0x366aaf[_0x435162(0x10f)],_0x34249b),await cleanupEmptyDirectories(dirname(_0x34249b),_0x366aaf[_0x435162(0x127)]));const _0x1d28c2={'deleted':_0x82aaf0,'remoteId':_0x28aded[_0x435162(0x120)]};if(_0x38008f)_0x1d28c2[_0x435162(0x109)]=_0x38008f;return{'ok':!![],'data':_0x1d28c2,'message':'Deleted\x20'+_0x82aaf0+(_0x38008f?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x4cc1e8,_0x274235,_0x4f0fa3){const _0x5dd694=a210_0x346af7,_0x1dca0c=new Date()[_0x5dd694(0x125)]()['replace'](/[:.]/g,'-'),_0x54f8ff=relative(_0x4cc1e8,_0x4f0fa3),_0x1b6264=join(_0x274235,_0x1dca0c,_0x54f8ff);return await mkdir(dirname(_0x1b6264),{'recursive':!![]}),await rename(_0x4f0fa3,_0x1b6264),_0x1b6264;}async function cleanupEmptyDirectories(_0x1cd155,_0x4d8236){const _0x195969=a210_0x346af7;let _0x14c793=resolve(_0x1cd155);const _0x4320b2=resolve(_0x4d8236);while(_0x14c793[_0x195969(0x10c)](''+_0x4320b2+sep)||_0x14c793===_0x4320b2){if(_0x14c793===_0x4320b2)return;try{const _0x3d9bf4=await readdir(_0x14c793);if(_0x3d9bf4[_0x195969(0x105)]>0x0)return;await rmdir(_0x14c793);}catch{return;}_0x14c793=dirname(_0x14c793);}}
@@ -1 +1 @@
1
- function a198_0x2a71(){const _0x584bd0=['sql','bool','description','1852208JDqRXJ','2BJooNb','appCode','sqlcode','sqlContent','detail','5701770hThvWv','str','42siAsDF','verbose','dbId','5307370RcJJhs','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','sqlCode','read','2212551FLrbZa','9uIEetk','boolean','3135308qicdwb','755862qRJMlo','182759iLSVHs','sqlName','Return\x20full\x20raw\x20SQL\x20query\x20object'];a198_0x2a71=function(){return _0x584bd0;};return a198_0x2a71();}const a198_0x5e72a8=a198_0x3127;(function(_0x40ffa8,_0x933a48){const _0x52398c=a198_0x3127,_0x50b0bf=_0x40ffa8();while(!![]){try{const _0x2984c8=parseInt(_0x52398c(0xf6))/0x1*(parseInt(_0x52398c(0xfd))/0x2)+-parseInt(_0x52398c(0xf1))/0x3+parseInt(_0x52398c(0xf4))/0x4+-parseInt(_0x52398c(0x102))/0x5+-parseInt(_0x52398c(0xf5))/0x6*(-parseInt(_0x52398c(0xea))/0x7)+-parseInt(_0x52398c(0xfc))/0x8*(-parseInt(_0x52398c(0xf2))/0x9)+parseInt(_0x52398c(0xed))/0xa;if(_0x2984c8===_0x933a48)break;else _0x50b0bf['push'](_0x50b0bf['shift']());}catch(_0x1ec69d){_0x50b0bf['push'](_0x50b0bf['shift']());}}}(a198_0x2a71,0x94278));import{getSqlQueryInfo}from'../../core/api-client.js';function a198_0x3127(_0x5ac1b0,_0x9900a0){_0x5ac1b0=_0x5ac1b0-0xea;const _0x2a7125=a198_0x2a71();let _0x312797=_0x2a7125[_0x5ac1b0];return _0x312797;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a198_0x5e72a8(0xf9),'command':a198_0x5e72a8(0x101),'description':a198_0x5e72a8(0xee),'risk':a198_0x5e72a8(0xf0),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a198_0x5e72a8(0xf3),'description':a198_0x5e72a8(0xf8)}],async 'execute'(_0x34cfca){const _0x588b71=a198_0x5e72a8,_0x42effd=await getSqlQueryInfo(_0x34cfca['appCode'],_0x34cfca[_0x588b71(0x103)](_0x588b71(0xff))),_0x13c9c3=_0x34cfca[_0x588b71(0xfa)](_0x588b71(0xeb));if(_0x13c9c3)return{'ok':!![],'data':_0x42effd};const _0x456e66=_0x42effd[_0x588b71(0xec)]?await getDbName(_0x34cfca[_0x588b71(0xfe)],_0x42effd[_0x588b71(0xec)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x42effd[_0x588b71(0xef)],'sqlName':_0x42effd[_0x588b71(0xf7)],'db':_0x456e66?_0x456e66+'\x20('+_0x42effd[_0x588b71(0xec)]+')':_0x42effd[_0x588b71(0xec)]??'','description':_0x42effd[_0x588b71(0xfb)]??'','sqlContent':_0x42effd[_0x588b71(0x100)]??''}};}};
1
+ const a211_0x9cf73f=a211_0x4e7a;(function(_0x3e28a1,_0x513b47){const _0x402ae5=a211_0x4e7a,_0x1d9e52=_0x3e28a1();while(!![]){try{const _0x31064a=-parseInt(_0x402ae5(0x17f))/0x1+parseInt(_0x402ae5(0x181))/0x2*(-parseInt(_0x402ae5(0x176))/0x3)+-parseInt(_0x402ae5(0x187))/0x4+-parseInt(_0x402ae5(0x173))/0x5*(-parseInt(_0x402ae5(0x182))/0x6)+parseInt(_0x402ae5(0x17e))/0x7*(parseInt(_0x402ae5(0x17d))/0x8)+parseInt(_0x402ae5(0x17b))/0x9*(parseInt(_0x402ae5(0x184))/0xa)+-parseInt(_0x402ae5(0x188))/0xb*(-parseInt(_0x402ae5(0x180))/0xc);if(_0x31064a===_0x513b47)break;else _0x1d9e52['push'](_0x1d9e52['shift']());}catch(_0x442aa3){_0x1d9e52['push'](_0x1d9e52['shift']());}}}(a211_0x58d9,0x83082));function a211_0x4e7a(_0xc1e78,_0x2dc99f){_0xc1e78=_0xc1e78-0x173;const _0x58d9a5=a211_0x58d9();let _0x4e7a13=_0x58d9a5[_0xc1e78];return _0x4e7a13;}import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a211_0x58d9(){const _0x5c5e8d=['731128NwUyMj','21bXUakJ','944843qgVWXn','228SWqCQq','236ptVbIw','30jzyqDr','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','160EmbMkn','Return\x20full\x20raw\x20SQL\x20query\x20object','verbose','1950796BCjnDW','718817ELXjWy','sqlContent','sql','bool','688990XqhndT','str','appCode','15786GEtVVx','dbId','boolean','sqlCode','sqlName','216792IHdhpL','read'];a211_0x58d9=function(){return _0x5c5e8d;};return a211_0x58d9();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a211_0x9cf73f(0x18a),'command':'detail','description':a211_0x9cf73f(0x183),'risk':a211_0x9cf73f(0x17c),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a211_0x9cf73f(0x178),'description':a211_0x9cf73f(0x185)}],async 'execute'(_0x4251f8){const _0x257e94=a211_0x9cf73f,_0xb12220=await getSqlQueryInfo(_0x4251f8['appCode'],_0x4251f8[_0x257e94(0x174)]('sqlcode')),_0x32102c=_0x4251f8[_0x257e94(0x18b)](_0x257e94(0x186));if(_0x32102c)return{'ok':!![],'data':_0xb12220};const _0x22de95=_0xb12220[_0x257e94(0x177)]?await getDbName(_0x4251f8[_0x257e94(0x175)],_0xb12220[_0x257e94(0x177)]):undefined;return{'ok':!![],'data':{'sqlCode':_0xb12220[_0x257e94(0x179)],'sqlName':_0xb12220[_0x257e94(0x17a)],'db':_0x22de95?_0x22de95+'\x20('+_0xb12220[_0x257e94(0x177)]+')':_0xb12220[_0x257e94(0x177)]??'','description':_0xb12220['description']??'','sqlContent':_0xb12220[_0x257e94(0x189)]??''}};}};
@@ -1 +1 @@
1
- const a199_0x517dad=a199_0x11e4;function a199_0x11e4(_0x1dbe2b,_0x5e4e0a){_0x1dbe2b=_0x1dbe2b-0x1a0;const _0x539029=a199_0x5390();let _0x11e4d1=_0x539029[_0x1dbe2b];return _0x11e4d1;}(function(_0x1fde35,_0x220177){const _0x4c642d=a199_0x11e4,_0x430423=_0x1fde35();while(!![]){try{const _0xb802a=parseInt(_0x4c642d(0x1b8))/0x1*(parseInt(_0x4c642d(0x1a5))/0x2)+-parseInt(_0x4c642d(0x1b3))/0x3+parseInt(_0x4c642d(0x1b0))/0x4+parseInt(_0x4c642d(0x1b1))/0x5*(-parseInt(_0x4c642d(0x1af))/0x6)+parseInt(_0x4c642d(0x1ac))/0x7+parseInt(_0x4c642d(0x1b4))/0x8+parseInt(_0x4c642d(0x1a3))/0x9;if(_0xb802a===_0x220177)break;else _0x430423['push'](_0x430423['shift']());}catch(_0x1f7fda){_0x430423['push'](_0x430423['shift']());}}}(a199_0x5390,0xa740d));function a199_0x5390(){const _0x2424b5=['3100012qqGsGe','44430bGEBEI','\x20row(s)\x20in\x20','2366052lvFKXT','1514480vdCjvv','execError','params','string','2ptkGal','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','sql','length','135963IhIfLX','execSuccess','189814PzCpAy','str','SQL\x20execution\x20failed','appCode','execResult','exec','sqlcode','3624481fnSEYc','Returned\x20','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','144PwiCWq'];a199_0x5390=function(){return _0x2424b5;};return a199_0x5390();}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':a199_0x517dad(0x1a1),'command':a199_0x517dad(0x1aa),'description':a199_0x517dad(0x1a0),'risk':'read','flags':[SQLCODE_FLAG,{'name':a199_0x517dad(0x1b6),'type':a199_0x517dad(0x1b7),'description':a199_0x517dad(0x1ae)}],async 'execute'(_0x2e49da){const _0x251c82=a199_0x517dad,_0x334ce0=parseJsonParams(_0x2e49da['str']('params')),_0x1e5f01=Date['now'](),_0x3bbdc4=await executeSql(_0x2e49da[_0x251c82(0x1a8)],_0x2e49da[_0x251c82(0x1a6)](_0x251c82(0x1ab)),_0x334ce0),_0x11604d=Date['now']()-_0x1e5f01,_0x525b11=_0x3bbdc4?.[_0x251c82(0x1a9)]??_0x3bbdc4,_0x5ead3b=_0x3bbdc4?.[_0x251c82(0x1a4)]??!![];if(!_0x5ead3b)return{'ok':![],'data':{'error':_0x3bbdc4?.[_0x251c82(0x1b5)]||_0x251c82(0x1a7),'elapsed':_0x11604d},'message':_0x251c82(0x1a7)};const _0x4434b1=Array['isArray'](_0x525b11)?_0x525b11:[];return{'ok':!![],'data':{'rows':_0x4434b1,'rowCount':_0x4434b1[_0x251c82(0x1a2)],'elapsed':_0x11604d},'message':_0x251c82(0x1ad)+_0x4434b1[_0x251c82(0x1a2)]+_0x251c82(0x1b2)+_0x11604d+'ms'};}};
1
+ const a212_0x25e4ca=a212_0x5568;(function(_0x1798fa,_0x25549c){const _0x4afa9b=a212_0x5568,_0x69bd0f=_0x1798fa();while(!![]){try{const _0x3e2716=-parseInt(_0x4afa9b(0xd2))/0x1*(-parseInt(_0x4afa9b(0xcc))/0x2)+-parseInt(_0x4afa9b(0xcb))/0x3+parseInt(_0x4afa9b(0xc3))/0x4*(-parseInt(_0x4afa9b(0xda))/0x5)+parseInt(_0x4afa9b(0xca))/0x6*(parseInt(_0x4afa9b(0xd0))/0x7)+parseInt(_0x4afa9b(0xd8))/0x8*(-parseInt(_0x4afa9b(0xd3))/0x9)+-parseInt(_0x4afa9b(0xc9))/0xa*(-parseInt(_0x4afa9b(0xd9))/0xb)+parseInt(_0x4afa9b(0xc4))/0xc;if(_0x3e2716===_0x25549c)break;else _0x69bd0f['push'](_0x69bd0f['shift']());}catch(_0x312476){_0x69bd0f['push'](_0x69bd0f['shift']());}}}(a212_0x1297,0x6950c));import{executeSql}from'../../core/api-client.js';function a212_0x5568(_0x174ed9,_0x4a4c3d){_0x174ed9=_0x174ed9-0xc3;const _0x1297e9=a212_0x1297();let _0x556855=_0x1297e9[_0x174ed9];return _0x556855;}function a212_0x1297(){const _0x29a405=['Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','execError','12qCTNLB','5967444EfprDC','Returned\x20','appCode','SQL\x20execution\x20failed','read','10ehHjQk','6XPYEJJ','349947eOYQsd','4098eZNiAG','sql','params','execSuccess','453467qzcBmi','isArray','311AhHHYh','87966ofbrYz','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','str','length','now','392wHZKrk','6678001kRiPxV','1299085fZSFGd'];a212_0x1297=function(){return _0x29a405;};return a212_0x1297();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a212_0x25e4ca(0xcd),'command':'exec','description':a212_0x25e4ca(0xdb),'risk':a212_0x25e4ca(0xc8),'flags':[SQLCODE_FLAG,{'name':'params','type':'string','description':a212_0x25e4ca(0xd4)}],async 'execute'(_0x4cc91a){const _0x1bc074=a212_0x25e4ca,_0x3e34ef=parseJsonParams(_0x4cc91a['str'](_0x1bc074(0xce))),_0x2a16e4=Date[_0x1bc074(0xd7)](),_0x577d03=await executeSql(_0x4cc91a[_0x1bc074(0xc6)],_0x4cc91a[_0x1bc074(0xd5)]('sqlcode'),_0x3e34ef),_0x4bf96b=Date[_0x1bc074(0xd7)]()-_0x2a16e4,_0x5218e3=_0x577d03?.['execResult']??_0x577d03,_0x3b9cfe=_0x577d03?.[_0x1bc074(0xcf)]??!![];if(!_0x3b9cfe)return{'ok':![],'data':{'error':_0x577d03?.[_0x1bc074(0xdc)]||_0x1bc074(0xc7),'elapsed':_0x4bf96b},'message':_0x1bc074(0xc7)};const _0x2a999f=Array[_0x1bc074(0xd1)](_0x5218e3)?_0x5218e3:[];return{'ok':!![],'data':{'rows':_0x2a999f,'rowCount':_0x2a999f[_0x1bc074(0xd6)],'elapsed':_0x4bf96b},'message':_0x1bc074(0xc5)+_0x2a999f[_0x1bc074(0xd6)]+'\x20row(s)\x20in\x20'+_0x4bf96b+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x6ffbc2,_0x20e32e){const _0x195d56=a200_0x4420,_0x2f7bcd=_0x6ffbc2();while(!![]){try{const _0x1ba1e6=parseInt(_0x195d56(0x1bf))/0x1+parseInt(_0x195d56(0x1c1))/0x2*(-parseInt(_0x195d56(0x1c7))/0x3)+-parseInt(_0x195d56(0x1c3))/0x4*(-parseInt(_0x195d56(0x1c2))/0x5)+-parseInt(_0x195d56(0x1c4))/0x6+-parseInt(_0x195d56(0x1c5))/0x7+-parseInt(_0x195d56(0x1c0))/0x8+parseInt(_0x195d56(0x1c6))/0x9;if(_0x1ba1e6===_0x20e32e)break;else _0x2f7bcd['push'](_0x2f7bcd['shift']());}catch(_0x5d27c0){_0x2f7bcd['push'](_0x2f7bcd['shift']());}}}(a200_0x3059,0x417f2));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 a200_0x3059(){const _0x3f14c9=['28398OReBKU','323502MLTSul','3216864ovZvhZ','98txCNHo','145RIFlPX','39836Qtewiz','2365332tlqfFW','3170328pThJHN','12321261sFubCB'];a200_0x3059=function(){return _0x3f14c9;};return a200_0x3059();}import{sqlPull}from'../../commands/sql/pull.js';function a200_0x4420(_0x457482,_0x267b0d){_0x457482=_0x457482-0x1bf;const _0x30592f=a200_0x3059();let _0x4420dd=_0x30592f[_0x457482];return _0x4420dd;}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(_0x514dc0,_0x4da15b){const _0x4fdaeb=a213_0x23bb,_0x2cb779=_0x514dc0();while(!![]){try{const _0x7f6a6f=parseInt(_0x4fdaeb(0x153))/0x1+-parseInt(_0x4fdaeb(0x155))/0x2*(-parseInt(_0x4fdaeb(0x157))/0x3)+-parseInt(_0x4fdaeb(0x156))/0x4+parseInt(_0x4fdaeb(0x159))/0x5+parseInt(_0x4fdaeb(0x151))/0x6+parseInt(_0x4fdaeb(0x154))/0x7+parseInt(_0x4fdaeb(0x152))/0x8*(-parseInt(_0x4fdaeb(0x158))/0x9);if(_0x7f6a6f===_0x4da15b)break;else _0x2cb779['push'](_0x2cb779['shift']());}catch(_0xa422f0){_0x2cb779['push'](_0x2cb779['shift']());}}}(a213_0x5ea5,0xa3f03));function a213_0x23bb(_0x4afa10,_0xe68e78){_0x4afa10=_0x4afa10-0x151;const _0x5ea577=a213_0x5ea5();let _0x23bb5f=_0x5ea577[_0x4afa10];return _0x23bb5f;}import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a213_0x5ea5(){const _0x5cde2c=['247173WNjDjR','578268bnzrOH','5687985pMRGgg','3793800vJhTtG','440bHoYcX','1230899RyjRLF','6876030vMlVRv','22OviMeb','2736144AvMDzy'];a213_0x5ea5=function(){return _0x5cde2c;};return a213_0x5ea5();}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a201_0x53dcbd=a201_0x1003;(function(_0x1fbc39,_0x22613e){const _0x194e26=a201_0x1003,_0xc4e44a=_0x1fbc39();while(!![]){try{const _0x5986f7=parseInt(_0x194e26(0x1c4))/0x1+-parseInt(_0x194e26(0x1c6))/0x2*(parseInt(_0x194e26(0x1c2))/0x3)+-parseInt(_0x194e26(0x1b3))/0x4+parseInt(_0x194e26(0x1bf))/0x5*(parseInt(_0x194e26(0x1ce))/0x6)+-parseInt(_0x194e26(0x1b7))/0x7+parseInt(_0x194e26(0x1b0))/0x8*(-parseInt(_0x194e26(0x1cd))/0x9)+parseInt(_0x194e26(0x1cf))/0xa;if(_0x5986f7===_0x22613e)break;else _0xc4e44a['push'](_0xc4e44a['shift']());}catch(_0x45ff26){_0xc4e44a['push'](_0xc4e44a['shift']());}}}(a201_0x3171,0x7e43f));import{listSqlQueries}from'../../core/api-client.js';function a201_0x3171(){const _0x29964c=['No\x20custom\x20SQL\x20queries\x20found.','name','description','read','dbId','1615025ecRxPP','length','sqlcode','100083NZNimW','paging','1024583ZyETgY','verbose','22nasYXL','page','str','string','Found\x20','sql','number','833634ebDAIP','6wmFMls','16544280vHoHOZ','Filter\x20by\x20SQL\x20name','all','num','tableData','\x20SQL\x20queries\x20(total:\x20','64mujcwD','appCode','bool','1984140fdDuHk','map','totalCount','sqlCode','6165733ZjqUNH','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','sqlName'];a201_0x3171=function(){return _0x29964c;};return a201_0x3171();}function a201_0x1003(_0x36e797,_0x273e03){_0x36e797=_0x36e797-0x1ab;const _0x317128=a201_0x3171();let _0x100336=_0x317128[_0x36e797];return _0x100336;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a201_0x53dcbd(0x1cb),'command':'list','description':'List\x20custom\x20SQL\x20queries','risk':a201_0x53dcbd(0x1bd),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a201_0x53dcbd(0x1bb),'type':a201_0x53dcbd(0x1c9),'description':a201_0x53dcbd(0x1ab)},{'name':a201_0x53dcbd(0x1c7),'type':a201_0x53dcbd(0x1cc),'description':'Page\x20number','default':0x1},{'name':'pagesize','type':'number','description':'Page\x20size'},{'name':a201_0x53dcbd(0x1c5),'type':'boolean','description':a201_0x53dcbd(0x1b8)}],async 'execute'(_0x13e5d9){const _0x245622=a201_0x53dcbd,_0x30c880=await listSqlQueries(_0x13e5d9[_0x245622(0x1b1)],{'sqlCode':_0x13e5d9['str'](_0x245622(0x1c1))||undefined,'sqlName':_0x13e5d9[_0x245622(0x1c8)](_0x245622(0x1bb))||undefined,'currentPage':_0x13e5d9[_0x245622(0x1ad)](_0x245622(0x1c7)),'pageSize':_0x13e5d9['num']('pagesize',0x32)}),_0x499661=_0x13e5d9[_0x245622(0x1b2)]('verbose'),_0x4f3101=_0x30c880[_0x245622(0x1ae)]??[],_0x31cc95=_0x30c880[_0x245622(0x1c3)]?.[_0x245622(0x1b5)]??_0x4f3101[_0x245622(0x1c0)];let _0x5d754c;return _0x499661?_0x5d754c=_0x4f3101:_0x5d754c=await Promise[_0x245622(0x1ac)](_0x4f3101[_0x245622(0x1b4)](async _0x1346ea=>{const _0x1ff482=_0x245622;let _0x48de0b;try{_0x48de0b=_0x1346ea[_0x1ff482(0x1be)]?await getDbName(_0x13e5d9[_0x1ff482(0x1b1)],_0x1346ea[_0x1ff482(0x1be)]):undefined;}catch{}return{'sqlCode':_0x1346ea[_0x1ff482(0x1b6)],'sqlName':_0x1346ea[_0x1ff482(0x1b9)],'description':_0x1346ea[_0x1ff482(0x1bc)]??'','db':_0x48de0b?_0x48de0b+'\x20('+_0x1346ea['dbId']+')':_0x1346ea['dbId']??''};})),{'ok':!![],'data':_0x5d754c,'message':_0x4f3101[_0x245622(0x1c0)]===0x0?_0x245622(0x1ba):_0x245622(0x1ca)+_0x4f3101[_0x245622(0x1c0)]+_0x245622(0x1af)+_0x31cc95+').'};}};
1
+ const a214_0x111549=a214_0x1ff1;(function(_0x54bf9a,_0x267df8){const _0x1356dc=a214_0x1ff1,_0x3a63d7=_0x54bf9a();while(!![]){try{const _0x408cc4=-parseInt(_0x1356dc(0x138))/0x1*(parseInt(_0x1356dc(0x13e))/0x2)+-parseInt(_0x1356dc(0x140))/0x3*(-parseInt(_0x1356dc(0x124))/0x4)+parseInt(_0x1356dc(0x126))/0x5*(-parseInt(_0x1356dc(0x13d))/0x6)+parseInt(_0x1356dc(0x12a))/0x7+-parseInt(_0x1356dc(0x132))/0x8*(-parseInt(_0x1356dc(0x139))/0x9)+parseInt(_0x1356dc(0x12e))/0xa+-parseInt(_0x1356dc(0x12f))/0xb;if(_0x408cc4===_0x267df8)break;else _0x3a63d7['push'](_0x3a63d7['shift']());}catch(_0xaf58d8){_0x3a63d7['push'](_0x3a63d7['shift']());}}}(a214_0x5175,0x2d98a));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a214_0x5175(){const _0x5d7e35=['3680450FfpcDO','9037468wVmVib','totalCount','appCode','171808IcIZJU','sqlCode','boolean','List\x20custom\x20SQL\x20queries','No\x20custom\x20SQL\x20queries\x20found.','read','90715ZbdCEi','117UoFPnn','pagesize','page','length','125268RlDkMH','2qPFaUo','verbose','3jANnwy','str','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','paging','name','description','number','1244464jACaMH','\x20SQL\x20queries\x20(total:\x20','5HHylDm','num','Filter\x20by\x20SQL\x20name','dbId','1131158pSWbHA','Page\x20number','Found\x20','bool'];a214_0x5175=function(){return _0x5d7e35;};return a214_0x5175();}function a214_0x1ff1(_0x4003a8,_0x264ce6){_0x4003a8=_0x4003a8-0x122;const _0x51752b=a214_0x5175();let _0x1ff14b=_0x51752b[_0x4003a8];return _0x1ff14b;}export const sqlList={'service':'sql','command':'list','description':a214_0x111549(0x135),'risk':a214_0x111549(0x137),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a214_0x111549(0x144),'type':'string','description':a214_0x111549(0x128)},{'name':a214_0x111549(0x13b),'type':a214_0x111549(0x123),'description':a214_0x111549(0x12b),'default':0x1},{'name':a214_0x111549(0x13a),'type':'number','description':'Page\x20size'},{'name':a214_0x111549(0x13f),'type':a214_0x111549(0x134),'description':a214_0x111549(0x142)}],async 'execute'(_0x3043a2){const _0x5c84f1=a214_0x111549,_0xbd2763=await listSqlQueries(_0x3043a2[_0x5c84f1(0x131)],{'sqlCode':_0x3043a2[_0x5c84f1(0x141)]('sqlcode')||undefined,'sqlName':_0x3043a2[_0x5c84f1(0x141)]('name')||undefined,'currentPage':_0x3043a2[_0x5c84f1(0x127)](_0x5c84f1(0x13b)),'pageSize':_0x3043a2[_0x5c84f1(0x127)](_0x5c84f1(0x13a),0x32)}),_0x23469e=_0x3043a2[_0x5c84f1(0x12d)](_0x5c84f1(0x13f)),_0x3885ec=_0xbd2763['tableData']??[],_0x2e5dbc=_0xbd2763[_0x5c84f1(0x143)]?.[_0x5c84f1(0x130)]??_0x3885ec[_0x5c84f1(0x13c)];let _0x335d65;return _0x23469e?_0x335d65=_0x3885ec:_0x335d65=await Promise['all'](_0x3885ec['map'](async _0x138bdc=>{const _0xd90e16=_0x5c84f1;let _0x34cb0e;try{_0x34cb0e=_0x138bdc[_0xd90e16(0x129)]?await getDbName(_0x3043a2['appCode'],_0x138bdc[_0xd90e16(0x129)]):undefined;}catch{}return{'sqlCode':_0x138bdc[_0xd90e16(0x133)],'sqlName':_0x138bdc['sqlName'],'description':_0x138bdc[_0xd90e16(0x122)]??'','db':_0x34cb0e?_0x34cb0e+'\x20('+_0x138bdc['dbId']+')':_0x138bdc[_0xd90e16(0x129)]??''};})),{'ok':!![],'data':_0x335d65,'message':_0x3885ec[_0x5c84f1(0x13c)]===0x0?_0x5c84f1(0x136):_0x5c84f1(0x12c)+_0x3885ec[_0x5c84f1(0x13c)]+_0x5c84f1(0x125)+_0x2e5dbc+').'};}};
@@ -1 +1 @@
1
- const a202_0x4ad68a=a202_0x28c5;(function(_0x435cd4,_0x597863){const _0x577a51=a202_0x28c5,_0x260dbe=_0x435cd4();while(!![]){try{const _0x577568=-parseInt(_0x577a51(0x9d))/0x1*(-parseInt(_0x577a51(0xb3))/0x2)+parseInt(_0x577a51(0xa4))/0x3+parseInt(_0x577a51(0xac))/0x4+parseInt(_0x577a51(0x96))/0x5*(parseInt(_0x577a51(0xa9))/0x6)+parseInt(_0x577a51(0x9f))/0x7+-parseInt(_0x577a51(0xb0))/0x8+-parseInt(_0x577a51(0x99))/0x9;if(_0x577568===_0x597863)break;else _0x260dbe['push'](_0x260dbe['shift']());}catch(_0x131848){_0x260dbe['push'](_0x260dbe['shift']());}}}(a202_0x2cee,0x64f6c));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';function a202_0x2cee(){const _0x802fd6=['split','read','boolean','lastSync','filter','mybatisXml','totalCount','string','message','tableData','Force\x20pull\x20cancelled.','No\x20remote\x20SQL\x20queries\x20matched.','utf8','trimStart','nonInteractive','replace','toISOString','skipped','conflict','pull','sqlcode','3545GGDolA','local\x20differs\x20from\x20remote','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','7967907TMMCWQ','sqlRootDir','unchanged','name','12151OBgygi','paging','3492300BsJPoT','sqlContent','would_pull','str','sqlName','902769EoyZMM','dbId','sql','push','path','1692kiVKJT','Would\x20pull\x20','appCode','3103308ipCAzE','lockFilePath','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','\x20written,\x20','4299776PQBeOv','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','10ilPVMk','sqlCode','sqlRoot','Force\x20overwrite\x20local\x20unsynced\x20changes','description','\x20skipped,\x20','force','sqls','catch','length','cancelled','\x20failed','Filter\x20by\x20SQL\x20display\x20name'];a202_0x2cee=function(){return _0x802fd6;};return a202_0x2cee();}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(_0x2d2464,_0x1bc32e){const _0x21dc11=a202_0x28c5,_0x34a185=[];let _0x49fd2c=0x1;while(!![]){const _0x35efcc=await listSqlQueries(_0x2d2464,{'currentPage':_0x49fd2c,'pageSize':PAGE_SIZE,'sqlCode':_0x1bc32e[_0x21dc11(0xb4)],'sqlName':_0x1bc32e[_0x21dc11(0xa3)]}),_0x44c6c7=_0x35efcc[_0x21dc11(0x8a)]??[];_0x34a185[_0x21dc11(0xa7)](..._0x44c6c7);if(_0x44c6c7['length']===0x0)break;const _0x551132=_0x35efcc[_0x21dc11(0x9e)]?.[_0x21dc11(0x87)];if(_0x551132!=null?_0x34a185[_0x21dc11(0x7d)]>=_0x551132:_0x44c6c7[_0x21dc11(0x7d)]<PAGE_SIZE)break;_0x49fd2c++;}return _0x34a185;}async function ensureSqlContent(_0x2b0c3c){const _0x4af7b6=a202_0x28c5;if(_0x2b0c3c['sqlContent']!=null&&String(_0x2b0c3c[_0x4af7b6(0xa0)])[_0x4af7b6(0x7d)]>0x0)return _0x2b0c3c;return getSqlQueryDetail(_0x2b0c3c[_0x4af7b6(0xb4)]);}export const sqlPull={'service':a202_0x4ad68a(0xa6),'command':a202_0x4ad68a(0x94),'description':a202_0x4ad68a(0xb2),'risk':a202_0x4ad68a(0x82),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a202_0x4ad68a(0x9c),'type':a202_0x4ad68a(0x88),'description':a202_0x4ad68a(0x80)},{'name':a202_0x4ad68a(0xb9),'type':a202_0x4ad68a(0x83),'description':a202_0x4ad68a(0xb6)}],async 'dryRun'(_0x3cb74a){const _0x583e37=a202_0x4ad68a,_0x138548=loadSqlProjectConfig(_0x3cb74a[_0x583e37(0xab)]),_0x200752=await readSqlLockFile(_0x138548[_0x583e37(0xad)]),{appLock:_0x538fb6}=ensureSqlLockScope(_0x200752??createEmptySqlLock(),_0x138548['appCode'],_0x138548['sqlRoot'],_0x583e37(0x94)),_0x271fd7=await fetchAllSqlQueries(_0x3cb74a['appCode'],{'sqlCode':_0x3cb74a['str'](_0x583e37(0x95))||undefined,'sqlName':_0x3cb74a[_0x583e37(0xa2)]('name')||undefined}),_0x33a30c=[];for(const _0xe7460b of _0x271fd7){const _0x3a5f39=await ensureSqlContent(_0xe7460b),_0x28ec15=ensureRemoteSqlContent(_0x3a5f39),_0x3862dd=detectModeFromSql(_0x3a5f39),_0x38237a=_0x3a5f39['dbId']?await getDbName(_0x3cb74a[_0x583e37(0xab)],Number(_0x3a5f39[_0x583e37(0xa5)]))['catch'](()=>undefined):undefined,_0xc58a2=buildLocalSqlFileContent({'sqlCode':_0x3a5f39[_0x583e37(0xb4)],'sqlName':_0x3a5f39[_0x583e37(0xa3)],'dbId':_0x3a5f39['dbId']},_0x28ec15,{'dbName':_0x38237a,'mode':_0x3862dd,'syncedAt':new Date()[_0x583e37(0x91)](),'description':_0x3a5f39[_0x583e37(0xb7)]}),_0x27bca0=buildSqlLockEntry(_0x3a5f39,_0x28ec15,'',{'dbName':_0x38237a}),_0x15dc1a=resolveLocalSqlFilePath(_0x138548,_0x3a5f39['sqlCode'],_0x27bca0);let _0x304a45=_0x583e37(0xa1),_0x44e6ce;if(await fileExists(_0x15dc1a)){const _0x4bcf7a=await readFile(_0x15dc1a,'utf8');isEquivalentPulledSqlFile(_0x4bcf7a,_0xc58a2,_0x3862dd)?(_0x304a45=_0x583e37(0x92),_0x44e6ce=_0x583e37(0x9b)):(_0x304a45=_0x583e37(0x93),_0x44e6ce=_0x583e37(0xae));}_0x33a30c['push']({'sqlCode':_0x3a5f39[_0x583e37(0xb4)],'sqlName':_0x3a5f39[_0x583e37(0xa3)],'filePath':_0x15dc1a,'status':_0x304a45,'reason':_0x44e6ce});}return{'method':'POST','url':_0x583e37(0x98),'body':{'appCode':_0x3cb74a['appCode'],'sqlCode':_0x3cb74a[_0x583e37(0xa2)]('sqlcode')||null,'sqlName':_0x3cb74a[_0x583e37(0xa2)](_0x583e37(0x9c))||null,'files':_0x33a30c},'description':_0x583e37(0xaa)+_0x33a30c[_0x583e37(0x7d)]+'\x20SQL\x20file(s)\x20into\x20'+_0x138548['sqlRootDir']};},async 'execute'(_0x315adc){const _0x24191f=a202_0x4ad68a,_0x22ea56=loadSqlProjectConfig(_0x315adc[_0x24191f(0xab)]),_0x40771d=await readSqlLockFile(_0x22ea56['lockFilePath']),{lockData:_0x18e777,appLock:_0x2f4613}=ensureSqlLockScope(_0x40771d??createEmptySqlLock(),_0x22ea56[_0x24191f(0xab)],_0x22ea56[_0x24191f(0xb5)],_0x24191f(0x94)),_0x35f46f=_0x315adc['bool']('force'),_0x5ca4a9=await fetchAllSqlQueries(_0x315adc[_0x24191f(0xab)],{'sqlCode':_0x315adc[_0x24191f(0xa2)]('sqlcode')||undefined,'sqlName':_0x315adc['str'](_0x24191f(0x9c))||undefined});if(_0x5ca4a9[_0x24191f(0x7d)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x24191f(0x8c)};const _0x1da047=[],_0x45f5f3=[];for(const _0x18731a of _0x5ca4a9){try{_0x1da047[_0x24191f(0xa7)](await ensureSqlContent(_0x18731a));}catch(_0x2404f8){_0x45f5f3[_0x24191f(0xa7)]({'sqlCode':_0x18731a[_0x24191f(0xb4)],'error':_0x2404f8 instanceof Error?_0x2404f8[_0x24191f(0x89)]:String(_0x2404f8)});}}if(_0x35f46f&&!_0x315adc[_0x24191f(0x8f)]){let _0x835f29=![];for(const _0x3de7d0 of _0x1da047){const _0x34f7e4=detectModeFromSql(_0x3de7d0),_0x570947=_0x3de7d0[_0x24191f(0xa5)]?await getDbName(_0x315adc[_0x24191f(0xab)],Number(_0x3de7d0[_0x24191f(0xa5)]))['catch'](()=>undefined):undefined,_0x40d41c=buildLocalSqlFileContent({'sqlCode':_0x3de7d0[_0x24191f(0xb4)],'sqlName':_0x3de7d0['sqlName'],'dbId':_0x3de7d0[_0x24191f(0xa5)]},ensureRemoteSqlContent(_0x3de7d0),{'dbName':_0x570947,'mode':_0x34f7e4,'syncedAt':new Date()[_0x24191f(0x91)](),'description':_0x3de7d0['description']}),_0x17a56b=resolveLocalSqlFilePath(_0x22ea56,_0x3de7d0[_0x24191f(0xb4)],buildSqlLockEntry(_0x3de7d0,ensureRemoteSqlContent(_0x3de7d0),'',{'dbName':_0x570947}));if(await fileExists(_0x17a56b)){const _0xe05e13=await readFile(_0x17a56b,_0x24191f(0x8d));if(!isEquivalentPulledSqlFile(_0xe05e13,_0x40d41c,_0x34f7e4)){_0x835f29=!![];break;}}}if(_0x835f29){const _0x7ae315=await confirmForceOverwrite(_0x24191f(0xb1));if(!_0x7ae315)throw CliErrors[_0x24191f(0x7e)](_0x24191f(0x8b));}}const _0x2c6b8d=cloneSqlLockData(_0x18e777),_0x3cdb8f=_0x2c6b8d['apps'][_0x22ea56[_0x24191f(0xab)]],_0x530273=[],_0xc2e572=[];for(const _0x102a08 of _0x1da047){const _0x309cd2=_0x3cdb8f[_0x24191f(0x7b)][_0x102a08[_0x24191f(0xb4)]],_0x155858=ensureRemoteSqlContent(_0x102a08),_0x352a21=detectModeFromSql(_0x102a08),_0x5c1a58=_0x102a08[_0x24191f(0xa5)]?await getDbName(_0x315adc[_0x24191f(0xab)],Number(_0x102a08[_0x24191f(0xa5)]))[_0x24191f(0x7c)](()=>undefined):undefined,_0x3330ce=buildLocalSqlFileContent({'sqlCode':_0x102a08[_0x24191f(0xb4)],'sqlName':_0x102a08['sqlName'],'dbId':_0x102a08[_0x24191f(0xa5)]},_0x155858,{'dbName':_0x5c1a58,'mode':_0x352a21,'syncedAt':new Date()[_0x24191f(0x91)](),'description':_0x102a08[_0x24191f(0xb7)]}),_0x216d47=buildSqlLockEntry(_0x102a08,_0x155858,computeSqlContentHash(_0x3330ce),{'dbName':_0x5c1a58}),_0x25b993=_0x216d47[_0x24191f(0xa8)],_0x282b7a=join(_0x22ea56[_0x24191f(0x9a)],_0x25b993);try{if(await fileExists(_0x282b7a)){const _0x3727b2=await readFile(_0x282b7a,_0x24191f(0x8d));if(isEquivalentPulledSqlFile(_0x3727b2,_0x3330ce,_0x352a21)){_0xc2e572['push']({'sqlCode':_0x102a08[_0x24191f(0xb4)],'reason':'unchanged'}),_0x3cdb8f['sqls'][_0x102a08[_0x24191f(0xb4)]]={..._0x216d47,'hash':computeSqlContentHash(_0x3727b2),'path':_0x25b993};continue;}if(!_0x35f46f){_0xc2e572[_0x24191f(0xa7)]({'sqlCode':_0x102a08[_0x24191f(0xb4)],'reason':_0x24191f(0x97)});continue;}}const _0x873fad=_0x309cd2?.[_0x24191f(0xa8)]?join(_0x22ea56[_0x24191f(0x9a)],_0x309cd2[_0x24191f(0xa8)]):undefined;_0x873fad&&_0x873fad!==_0x282b7a&&await fileExists(_0x873fad)&&await rm(_0x873fad,{'force':!![]}),await ensureParentDirectory(_0x282b7a),await writeFile(_0x282b7a,_0x3330ce,_0x24191f(0x8d)),_0x3cdb8f[_0x24191f(0x7b)][_0x102a08[_0x24191f(0xb4)]]={..._0x216d47,'path':_0x25b993},_0x530273['push']({'sqlCode':_0x102a08[_0x24191f(0xb4)],'filePath':_0x282b7a});}catch(_0x545e2d){_0x45f5f3['push']({'sqlCode':_0x102a08[_0x24191f(0xb4)],'error':_0x545e2d instanceof Error?_0x545e2d[_0x24191f(0x89)]:String(_0x545e2d)});}}return _0x3cdb8f[_0x24191f(0x84)]=new Date()[_0x24191f(0x91)](),await writeSqlLockFile(_0x22ea56[_0x24191f(0xad)],_0x2c6b8d),{'ok':_0x45f5f3[_0x24191f(0x7d)]===0x0,'data':{'pulled':_0x530273,'skipped':_0xc2e572,'failed':_0x45f5f3},'message':'Pull\x20complete:\x20'+_0x530273[_0x24191f(0x7d)]+_0x24191f(0xaf)+_0xc2e572['length']+_0x24191f(0xb8)+_0x45f5f3[_0x24191f(0x7d)]+_0x24191f(0x7f)};}};function detectModeFromSql(_0xe0fc09){const _0x4e81d5=a202_0x4ad68a,_0x3ed212=ensureRemoteSqlContent(_0xe0fc09),_0x3bf931=stripLocalSqlMetadata(_0x3ed212,_0x4e81d5(0x86))[_0x4e81d5(0x8e)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3bf931))return _0x4e81d5(0x86);return _0x4e81d5(0xa6);}function isEquivalentPulledSqlFile(_0x14fe3d,_0x59ff85,_0x933776){return normalizePullComparableContent(_0x14fe3d,_0x933776)===normalizePullComparableContent(_0x59ff85,_0x933776);}function a202_0x28c5(_0x168019,_0x180f84){_0x168019=_0x168019-0x7b;const _0x2ceebd=a202_0x2cee();let _0x28c519=_0x2ceebd[_0x168019];return _0x28c519;}function normalizePullComparableContent(_0x12f430,_0x14da39){const _0x4c1dc3=a202_0x4ad68a,_0x378163=_0x12f430[_0x4c1dc3(0x90)](/\r\n/g,'\x0a')[_0x4c1dc3(0x81)]('\x0a'),_0x3b87e5=_0x378163[_0x4c1dc3(0x85)](_0x53b0d2=>!isSyncedAtMetadataLine(_0x53b0d2,_0x14da39));return _0x3b87e5['join']('\x0a');}function isSyncedAtMetadataLine(_0x45a169,_0x5e1205){if(_0x5e1205==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x45a169);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x45a169);}
1
+ const a215_0x262db2=a215_0x2775;(function(_0x3aabb4,_0x46d6c3){const _0x4742ac=a215_0x2775,_0xe5cde4=_0x3aabb4();while(!![]){try{const _0x4bf9c3=-parseInt(_0x4742ac(0x133))/0x1*(-parseInt(_0x4742ac(0x10d))/0x2)+parseInt(_0x4742ac(0x10c))/0x3+-parseInt(_0x4742ac(0x118))/0x4+-parseInt(_0x4742ac(0x136))/0x5+-parseInt(_0x4742ac(0x148))/0x6+parseInt(_0x4742ac(0x10a))/0x7+parseInt(_0x4742ac(0x134))/0x8;if(_0x4bf9c3===_0x46d6c3)break;else _0xe5cde4['push'](_0xe5cde4['shift']());}catch(_0x5abc77){_0xe5cde4['push'](_0xe5cde4['shift']());}}}(a215_0x2ae4,0x4267f));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';function a215_0x2775(_0x516d41,_0x76b139){_0x516d41=_0x516d41-0x109;const _0x2ae455=a215_0x2ae4();let _0x27755f=_0x2ae455[_0x516d41];return _0x27755f;}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x458d74,_0x221d37){const _0x5d66c6=a215_0x2775,_0x472f51=[];let _0x43dc68=0x1;while(!![]){const _0x5786fd=await listSqlQueries(_0x458d74,{'currentPage':_0x43dc68,'pageSize':PAGE_SIZE,'sqlCode':_0x221d37[_0x5d66c6(0x143)],'sqlName':_0x221d37['sqlName']}),_0x3902ee=_0x5786fd['tableData']??[];_0x472f51[_0x5d66c6(0x13f)](..._0x3902ee);if(_0x3902ee[_0x5d66c6(0x13c)]===0x0)break;const _0x1ccd44=_0x5786fd[_0x5d66c6(0x12b)]?.[_0x5d66c6(0x12c)];if(_0x1ccd44!=null?_0x472f51[_0x5d66c6(0x13c)]>=_0x1ccd44:_0x3902ee[_0x5d66c6(0x13c)]<PAGE_SIZE)break;_0x43dc68++;}return _0x472f51;}async function ensureSqlContent(_0xa1f979){const _0x189b27=a215_0x2775;if(_0xa1f979['sqlContent']!=null&&String(_0xa1f979[_0x189b27(0x130)])[_0x189b27(0x13c)]>0x0)return _0xa1f979;return getSqlQueryDetail(_0xa1f979[_0x189b27(0x143)]);}export const sqlPull={'service':a215_0x262db2(0x147),'command':a215_0x262db2(0x11b),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a215_0x262db2(0x142),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a215_0x262db2(0x117),'type':a215_0x262db2(0x122),'description':a215_0x262db2(0x12f)},{'name':a215_0x262db2(0x113),'type':a215_0x262db2(0x146),'description':a215_0x262db2(0x11a)}],async 'dryRun'(_0x26d0b8){const _0xee4d46=a215_0x262db2,_0x259d81=loadSqlProjectConfig(_0x26d0b8[_0xee4d46(0x126)]),_0x5210cd=await readSqlLockFile(_0x259d81[_0xee4d46(0x139)]),{appLock:_0x3c424d}=ensureSqlLockScope(_0x5210cd??createEmptySqlLock(),_0x259d81[_0xee4d46(0x126)],_0x259d81[_0xee4d46(0x119)],_0xee4d46(0x11b)),_0x40d759=await fetchAllSqlQueries(_0x26d0b8[_0xee4d46(0x126)],{'sqlCode':_0x26d0b8[_0xee4d46(0x12a)](_0xee4d46(0x10e))||undefined,'sqlName':_0x26d0b8[_0xee4d46(0x12a)](_0xee4d46(0x117))||undefined}),_0x7047ce=[];for(const _0x12d53c of _0x40d759){const _0x28a92f=await ensureSqlContent(_0x12d53c),_0x19cd2d=ensureRemoteSqlContent(_0x28a92f),_0x2c01df=detectModeFromSql(_0x28a92f),_0x2a5eb6=_0x28a92f[_0xee4d46(0x12e)]?await getDbName(_0x26d0b8[_0xee4d46(0x126)],Number(_0x28a92f[_0xee4d46(0x12e)]))['catch'](()=>undefined):undefined,_0x58e72a=buildLocalSqlFileContent({'sqlCode':_0x28a92f[_0xee4d46(0x143)],'sqlName':_0x28a92f[_0xee4d46(0x141)],'dbId':_0x28a92f[_0xee4d46(0x12e)]},_0x19cd2d,{'dbName':_0x2a5eb6,'mode':_0x2c01df,'syncedAt':new Date()[_0xee4d46(0x137)](),'description':_0x28a92f['description']}),_0x290d4c=buildSqlLockEntry(_0x28a92f,_0x19cd2d,'',{'dbName':_0x2a5eb6}),_0x375989=resolveLocalSqlFilePath(_0x259d81,_0x28a92f[_0xee4d46(0x143)],_0x290d4c);let _0x194889=_0xee4d46(0x129),_0x385516;if(await fileExists(_0x375989)){const _0x147095=await readFile(_0x375989,'utf8');isEquivalentPulledSqlFile(_0x147095,_0x58e72a,_0x2c01df)?(_0x194889=_0xee4d46(0x13d),_0x385516='unchanged'):(_0x194889=_0xee4d46(0x123),_0x385516=_0xee4d46(0x116));}_0x7047ce[_0xee4d46(0x13f)]({'sqlCode':_0x28a92f[_0xee4d46(0x143)],'sqlName':_0x28a92f['sqlName'],'filePath':_0x375989,'status':_0x194889,'reason':_0x385516});}return{'method':_0xee4d46(0x131),'url':_0xee4d46(0x13b),'body':{'appCode':_0x26d0b8[_0xee4d46(0x126)],'sqlCode':_0x26d0b8['str'](_0xee4d46(0x10e))||null,'sqlName':_0x26d0b8[_0xee4d46(0x12a)](_0xee4d46(0x117))||null,'files':_0x7047ce},'description':_0xee4d46(0x144)+_0x7047ce['length']+_0xee4d46(0x11d)+_0x259d81['sqlRootDir']};},async 'execute'(_0x1c5246){const _0x28080b=a215_0x262db2,_0x41f067=loadSqlProjectConfig(_0x1c5246[_0x28080b(0x126)]),_0x3d003c=await readSqlLockFile(_0x41f067[_0x28080b(0x139)]),{lockData:_0x394221,appLock:_0x3314c8}=ensureSqlLockScope(_0x3d003c??createEmptySqlLock(),_0x41f067[_0x28080b(0x126)],_0x41f067[_0x28080b(0x119)],'pull'),_0x33d8af=_0x1c5246[_0x28080b(0x13a)]('force'),_0x18459a=await fetchAllSqlQueries(_0x1c5246['appCode'],{'sqlCode':_0x1c5246[_0x28080b(0x12a)](_0x28080b(0x10e))||undefined,'sqlName':_0x1c5246[_0x28080b(0x12a)](_0x28080b(0x117))||undefined});if(_0x18459a[_0x28080b(0x13c)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x28080b(0x112)};const _0x5971d2=[],_0x5a5331=[];for(const _0x18c9e of _0x18459a){try{_0x5971d2[_0x28080b(0x13f)](await ensureSqlContent(_0x18c9e));}catch(_0x86deaa){_0x5a5331['push']({'sqlCode':_0x18c9e[_0x28080b(0x143)],'error':_0x86deaa instanceof Error?_0x86deaa[_0x28080b(0x145)]:String(_0x86deaa)});}}if(_0x33d8af&&!_0x1c5246[_0x28080b(0x13e)]){let _0x12d4a9=![];for(const _0x1f35df of _0x5971d2){const _0x34b0f2=detectModeFromSql(_0x1f35df),_0x3b576d=_0x1f35df[_0x28080b(0x12e)]?await getDbName(_0x1c5246[_0x28080b(0x126)],Number(_0x1f35df[_0x28080b(0x12e)]))[_0x28080b(0x10f)](()=>undefined):undefined,_0x554bf6=buildLocalSqlFileContent({'sqlCode':_0x1f35df[_0x28080b(0x143)],'sqlName':_0x1f35df[_0x28080b(0x141)],'dbId':_0x1f35df[_0x28080b(0x12e)]},ensureRemoteSqlContent(_0x1f35df),{'dbName':_0x3b576d,'mode':_0x34b0f2,'syncedAt':new Date()[_0x28080b(0x137)](),'description':_0x1f35df[_0x28080b(0x127)]}),_0x1071f1=resolveLocalSqlFilePath(_0x41f067,_0x1f35df[_0x28080b(0x143)],buildSqlLockEntry(_0x1f35df,ensureRemoteSqlContent(_0x1f35df),'',{'dbName':_0x3b576d}));if(await fileExists(_0x1071f1)){const _0x127073=await readFile(_0x1071f1,'utf8');if(!isEquivalentPulledSqlFile(_0x127073,_0x554bf6,_0x34b0f2)){_0x12d4a9=!![];break;}}}if(_0x12d4a9){const _0x3ab1d8=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x3ab1d8)throw CliErrors[_0x28080b(0x121)](_0x28080b(0x120));}}const _0x67bba0=cloneSqlLockData(_0x394221),_0xea34ec=_0x67bba0[_0x28080b(0x124)][_0x41f067[_0x28080b(0x126)]],_0x52c620=[],_0x4f0649=[];for(const _0x2e0d76 of _0x5971d2){const _0x3dabab=_0xea34ec['sqls'][_0x2e0d76[_0x28080b(0x143)]],_0x5a1645=ensureRemoteSqlContent(_0x2e0d76),_0x14f17c=detectModeFromSql(_0x2e0d76),_0x33871b=_0x2e0d76[_0x28080b(0x12e)]?await getDbName(_0x1c5246[_0x28080b(0x126)],Number(_0x2e0d76['dbId']))[_0x28080b(0x10f)](()=>undefined):undefined,_0x535d92=buildLocalSqlFileContent({'sqlCode':_0x2e0d76[_0x28080b(0x143)],'sqlName':_0x2e0d76['sqlName'],'dbId':_0x2e0d76[_0x28080b(0x12e)]},_0x5a1645,{'dbName':_0x33871b,'mode':_0x14f17c,'syncedAt':new Date()['toISOString'](),'description':_0x2e0d76[_0x28080b(0x127)]}),_0x1e0d0a=buildSqlLockEntry(_0x2e0d76,_0x5a1645,computeSqlContentHash(_0x535d92),{'dbName':_0x33871b}),_0x1184c0=_0x1e0d0a[_0x28080b(0x12d)],_0x4a04d4=join(_0x41f067[_0x28080b(0x109)],_0x1184c0);try{if(await fileExists(_0x4a04d4)){const _0x211863=await readFile(_0x4a04d4,_0x28080b(0x138));if(isEquivalentPulledSqlFile(_0x211863,_0x535d92,_0x14f17c)){_0x4f0649[_0x28080b(0x13f)]({'sqlCode':_0x2e0d76[_0x28080b(0x143)],'reason':_0x28080b(0x125)}),_0xea34ec[_0x28080b(0x11c)][_0x2e0d76['sqlCode']]={..._0x1e0d0a,'hash':computeSqlContentHash(_0x211863),'path':_0x1184c0};continue;}if(!_0x33d8af){_0x4f0649['push']({'sqlCode':_0x2e0d76[_0x28080b(0x143)],'reason':_0x28080b(0x11e)});continue;}}const _0x395fd2=_0x3dabab?.[_0x28080b(0x12d)]?join(_0x41f067[_0x28080b(0x109)],_0x3dabab[_0x28080b(0x12d)]):undefined;_0x395fd2&&_0x395fd2!==_0x4a04d4&&await fileExists(_0x395fd2)&&await rm(_0x395fd2,{'force':!![]}),await ensureParentDirectory(_0x4a04d4),await writeFile(_0x4a04d4,_0x535d92,_0x28080b(0x138)),_0xea34ec['sqls'][_0x2e0d76['sqlCode']]={..._0x1e0d0a,'path':_0x1184c0},_0x52c620[_0x28080b(0x13f)]({'sqlCode':_0x2e0d76[_0x28080b(0x143)],'filePath':_0x4a04d4});}catch(_0x409b85){_0x5a5331[_0x28080b(0x13f)]({'sqlCode':_0x2e0d76[_0x28080b(0x143)],'error':_0x409b85 instanceof Error?_0x409b85[_0x28080b(0x145)]:String(_0x409b85)});}}return _0xea34ec[_0x28080b(0x11f)]=new Date()[_0x28080b(0x137)](),await writeSqlLockFile(_0x41f067['lockFilePath'],_0x67bba0),{'ok':_0x5a5331[_0x28080b(0x13c)]===0x0,'data':{'pulled':_0x52c620,'skipped':_0x4f0649,'failed':_0x5a5331},'message':_0x28080b(0x128)+_0x52c620[_0x28080b(0x13c)]+_0x28080b(0x140)+_0x4f0649[_0x28080b(0x13c)]+'\x20skipped,\x20'+_0x5a5331[_0x28080b(0x13c)]+_0x28080b(0x111)};}};function a215_0x2ae4(){const _0x15ff83=['sqlRoot','Force\x20overwrite\x20local\x20unsynced\x20changes','pull','sqls','\x20SQL\x20file(s)\x20into\x20','local\x20differs\x20from\x20remote','lastSync','Force\x20pull\x20cancelled.','cancelled','string','conflict','apps','unchanged','appCode','description','Pull\x20complete:\x20','would_pull','str','paging','totalCount','path','dbId','Filter\x20by\x20SQL\x20display\x20name','sqlContent','POST','trimStart','10777QtPVPb','2808752rcvczf','test','2501765lEHtPh','toISOString','utf8','lockFilePath','bool','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','length','skipped','nonInteractive','push','\x20written,\x20','sqlName','read','sqlCode','Would\x20pull\x20','message','boolean','sql','577164pbBWEY','sqlRootDir','2349536EsJfJA','filter','210282HVwbbW','34kGwJgz','sqlcode','catch','replace','\x20failed','No\x20remote\x20SQL\x20queries\x20matched.','force','mybatisXml','split','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','name','285996joZzGO'];a215_0x2ae4=function(){return _0x15ff83;};return a215_0x2ae4();}function detectModeFromSql(_0x4f44c6){const _0x354603=a215_0x262db2,_0x326b34=ensureRemoteSqlContent(_0x4f44c6),_0x2cd4e7=stripLocalSqlMetadata(_0x326b34,_0x354603(0x114))[_0x354603(0x132)]();if(/^<(select|insert|update|delete)\b/i[_0x354603(0x135)](_0x2cd4e7))return _0x354603(0x114);return _0x354603(0x147);}function isEquivalentPulledSqlFile(_0x5d9abe,_0x2671e2,_0x381f8c){return normalizePullComparableContent(_0x5d9abe,_0x381f8c)===normalizePullComparableContent(_0x2671e2,_0x381f8c);}function normalizePullComparableContent(_0x4c0b0a,_0x16ba6f){const _0x2d03cf=a215_0x262db2,_0x3b9431=_0x4c0b0a[_0x2d03cf(0x110)](/\r\n/g,'\x0a')[_0x2d03cf(0x115)]('\x0a'),_0x5c8d61=_0x3b9431[_0x2d03cf(0x10b)](_0x1d9598=>!isSyncedAtMetadataLine(_0x1d9598,_0x16ba6f));return _0x5c8d61['join']('\x0a');}function isSyncedAtMetadataLine(_0x1e2246,_0x53a16e){const _0x20bfc9=a215_0x262db2;if(_0x53a16e===_0x20bfc9(0x114))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x20bfc9(0x135)](_0x1e2246);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x1e2246);}
@@ -1 +1 @@
1
- const a203_0xfb2fb3=a203_0x5e27;(function(_0x18fb9c,_0x50f13e){const _0x3ff4a0=a203_0x5e27,_0x35b48c=_0x18fb9c();while(!![]){try{const _0xfd152f=-parseInt(_0x3ff4a0(0x212))/0x1+parseInt(_0x3ff4a0(0x1f3))/0x2+-parseInt(_0x3ff4a0(0x203))/0x3+parseInt(_0x3ff4a0(0x1eb))/0x4*(parseInt(_0x3ff4a0(0x21e))/0x5)+parseInt(_0x3ff4a0(0x20e))/0x6*(-parseInt(_0x3ff4a0(0x20b))/0x7)+-parseInt(_0x3ff4a0(0x219))/0x8*(-parseInt(_0x3ff4a0(0x1e0))/0x9)+parseInt(_0x3ff4a0(0x1e4))/0xa;if(_0xfd152f===_0x50f13e)break;else _0x35b48c['push'](_0x35b48c['shift']());}catch(_0xe6dbc4){_0x35b48c['push'](_0x35b48c['shift']());}}}(a203_0x835f,0x68dc6));function a203_0x5e27(_0x3946b1,_0x4c5c63){_0x3946b1=_0x3946b1-0x1e0;const _0x835f19=a203_0x835f();let _0x5e2797=_0x835f19[_0x3946b1];return _0x5e2797;}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';function a203_0x835f(){const _0x35d3e5=['1433268oopXrY','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','join','length','str','mode','validation','dbName','\x20failed','Push\x20local\x20SQL\x20files\x20to\x20remote','/smartapi/custom/updateUserCustomSql','push','filePath','sqlRootDir','toISOString','status','916371KjsOGM','dbDirectory','set','has','Local\x20SQL\x20not\x20found:\x20','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','\x20pushed,\x20','sqls','14HuHUDG','write','lockFilePath','1677906GQYmut','exec','force','projectRoot','660401EpnwhR','sqlRoot','lastSync','entries','trashDir','Push\x20complete:\x20','appCode','274504mRmrVX','utf8','remoteId','sql','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','985SzKRSN','No\x20local\x20SQL\x20files\x20found.','sqlConfig','sqlCode','isFinite','sqlcode','map','153TXdPUD','Local\x20directory\x20\x22','filter','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','3034640YQwJde','boolean','path','version','sqlName','message','dbId','7132FMjtXb','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','relativePath','replace','hash','POST','bool','startsWith'];a203_0x835f=function(){return _0x35d3e5;};return a203_0x835f();}import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';import{automaticDeploymentSyncSucceeded,buildAutomaticDeploymentSyncPreview,runAutomaticDeploymentSync}from'../../commands/deployment/auto-sync.js';async function getTargetSqlQueries(_0x1f35f6,_0x29db05,_0x1efc24){const _0x366dd4=a203_0x5e27,_0x338bc2=await scanLocalSqlQueries(_0x1f35f6),_0x5a03c3=new Map();for(const _0x1476a3 of _0x338bc2){if(_0x1efc24&&_0x1476a3['sqlCode']!==_0x1efc24)continue;const _0x297c84=_0x5a03c3['get'](_0x1476a3[_0x366dd4(0x221)])??[];_0x297c84[_0x366dd4(0x1fe)](_0x1476a3),_0x5a03c3[_0x366dd4(0x205)](_0x1476a3[_0x366dd4(0x221)],_0x297c84);}if(_0x1efc24&&!_0x5a03c3[_0x366dd4(0x206)](_0x1efc24))throw CliErrors[_0x366dd4(0x1f9)](_0x366dd4(0x207)+_0x1efc24);const _0x1c139a=[];for(const [_0x2bb121,_0x583296]of _0x5a03c3[_0x366dd4(0x215)]()){if(_0x583296[_0x366dd4(0x1f6)]===0x1){_0x1c139a[_0x366dd4(0x1fe)](_0x583296[0x0]);continue;}const _0x5262a4=_0x29db05[_0x366dd4(0x20a)][_0x2bb121],_0x3a2067=_0x5262a4?.['path'],_0x2223bb=_0x3a2067?_0x583296[_0x366dd4(0x1e2)](_0x2f323c=>_0x2f323c[_0x366dd4(0x1ed)]!==_0x3a2067):_0x583296;if(_0x5262a4&&_0x2223bb[_0x366dd4(0x1f6)]===0x1){_0x1c139a[_0x366dd4(0x1fe)](_0x2223bb[0x0]);continue;}throw CliErrors[_0x366dd4(0x1f9)](_0x366dd4(0x1f4)+_0x2bb121+_0x366dd4(0x1e3));}return _0x1c139a;}export const sqlPush={'service':a203_0xfb2fb3(0x21c),'command':'push','description':a203_0xfb2fb3(0x1fc),'risk':a203_0xfb2fb3(0x20c),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a203_0xfb2fb3(0x210),'type':a203_0xfb2fb3(0x1e5),'description':a203_0xfb2fb3(0x1ec)}],async 'dryRun'(_0x3442fd){const _0x2904e9=a203_0xfb2fb3,_0x21fc35=loadSqlProjectConfig(_0x3442fd['appCode']),_0x464ea0=await readSqlLockFile(_0x21fc35[_0x2904e9(0x20d)]),{appLock:_0x5f5238}=ensureSqlLockScope(_0x464ea0??createEmptySqlLock(),_0x3442fd['appCode'],_0x21fc35[_0x2904e9(0x213)],_0x2904e9(0x1fe)),_0x45493a=await getTargetSqlQueries(_0x21fc35,_0x5f5238,_0x3442fd[_0x2904e9(0x1f7)](_0x2904e9(0x223))||undefined),_0x560757=[];for(const _0x446f42 of _0x45493a){const _0x2220d7=await computeSqlFileHash(_0x446f42[_0x2904e9(0x1ff)]),_0x322973=_0x5f5238[_0x2904e9(0x20a)][_0x446f42[_0x2904e9(0x221)]],_0x365c56=!!_0x322973&&(_0x322973[_0x2904e9(0x1e6)]!==_0x446f42[_0x2904e9(0x1ed)]||!!_0x446f42['sqlName']&&_0x322973[_0x2904e9(0x1e8)]!==_0x446f42[_0x2904e9(0x1e8)]);if(!_0x3442fd[_0x2904e9(0x1f1)](_0x2904e9(0x210))&&_0x322973&&_0x322973[_0x2904e9(0x1ef)]===_0x2220d7&&!_0x365c56)continue;_0x560757[_0x2904e9(0x1fe)](_0x446f42[_0x2904e9(0x221)]);}return{'method':_0x2904e9(0x1f0),'url':_0x2904e9(0x1fd),'deploymentSync':buildAutomaticDeploymentSyncPreview('sql',_0x560757),'body':{'sqlCodes':_0x560757,'appCode':_0x3442fd[_0x2904e9(0x218)]},'description':'Would\x20push\x20'+_0x560757[_0x2904e9(0x1f6)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x31f6e9){const _0x85bba=a203_0xfb2fb3,_0x12ac1c=loadSqlProjectConfig(_0x31f6e9[_0x85bba(0x218)]),_0x320b25=await readSqlLockFile(_0x12ac1c[_0x85bba(0x20d)]),{lockData:_0x2a7bfc,appLock:_0x3bbc2a}=ensureSqlLockScope(_0x320b25??createEmptySqlLock(),_0x31f6e9[_0x85bba(0x218)],_0x12ac1c[_0x85bba(0x213)],_0x85bba(0x1fe)),_0x34cac0=await getTargetSqlQueries(_0x12ac1c,_0x3bbc2a,_0x31f6e9[_0x85bba(0x1f7)](_0x85bba(0x223))||undefined);if(_0x34cac0[_0x85bba(0x1f6)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x85bba(0x21f)};const _0x9b8c4e=[],_0x1f07a0=[],_0x397fc0=[];for(const _0x2eee40 of _0x34cac0){const _0x4c2256=_0x3bbc2a[_0x85bba(0x20a)][_0x2eee40['sqlCode']];if(!_0x4c2256){_0x397fc0['push']({'sqlCode':_0x2eee40[_0x85bba(0x221)],'error':_0x85bba(0x21d)});continue;}try{const _0x56e7c1=await computeSqlFileHash(_0x2eee40[_0x85bba(0x1ff)]),_0x3b1678=_0x4c2256[_0x85bba(0x1e6)]!==_0x2eee40[_0x85bba(0x1ed)]||!!_0x2eee40[_0x85bba(0x1e8)]&&_0x4c2256[_0x85bba(0x1e8)]!==_0x2eee40[_0x85bba(0x1e8)];if(!_0x31f6e9[_0x85bba(0x1f1)](_0x85bba(0x210))&&_0x4c2256['hash']===_0x56e7c1&&!_0x3b1678){_0x1f07a0[_0x85bba(0x1fe)]({'sqlCode':_0x2eee40[_0x85bba(0x221)],'reason':'unchanged'});continue;}if(_0x4c2256[_0x85bba(0x1e7)]==null){_0x397fc0['push']({'sqlCode':_0x2eee40[_0x85bba(0x221)],'error':_0x85bba(0x208)});continue;}const _0x11010d=await readFile(_0x2eee40[_0x85bba(0x1ff)],_0x85bba(0x21a)),_0x461517=stripLocalSqlMetadata(_0x11010d,_0x2eee40[_0x85bba(0x1f8)]),_0x1e85d5=_0x2eee40[_0x85bba(0x1e8)]||_0x4c2256[_0x85bba(0x1e8)],_0x45ccc2=await resolveTargetDbBinding(_0x31f6e9['appCode'],_0x2eee40,_0x4c2256),_0x3c8420=await updateSqlQuery({'id':_0x4c2256[_0x85bba(0x21b)],'appCode':_0x31f6e9['appCode'],'sqlCode':_0x2eee40[_0x85bba(0x221)],'sqlName':_0x1e85d5,'dbId':_0x45ccc2['dbId'],'version':_0x4c2256['version'],'sqlContent':_0x461517,'sqlConfig':_0x4c2256[_0x85bba(0x220)]??undefined}),_0x34e6a9=_0x3c8420['dbId']?await getDbName(_0x31f6e9[_0x85bba(0x218)],Number(_0x3c8420[_0x85bba(0x1ea)]))['catch'](()=>_0x45ccc2[_0x85bba(0x1fa)]):_0x45ccc2[_0x85bba(0x1fa)];_0x3bbc2a[_0x85bba(0x20a)][_0x2eee40[_0x85bba(0x221)]]={...buildSqlLockEntry(_0x3c8420,_0x461517,_0x56e7c1,{'dbName':_0x34e6a9}),'path':_0x2eee40[_0x85bba(0x1ed)],'mode':_0x4c2256[_0x85bba(0x1f8)]},await archivePreviousSqlFileIfNeeded(_0x12ac1c,_0x4c2256['path'],_0x2eee40[_0x85bba(0x1ed)]),_0x9b8c4e['push']({'sqlCode':_0x2eee40[_0x85bba(0x221)],'remoteId':_0x4c2256[_0x85bba(0x21b)]});}catch(_0x32b19f){_0x397fc0[_0x85bba(0x1fe)]({'sqlCode':_0x2eee40[_0x85bba(0x221)],'error':_0x32b19f instanceof Error?_0x32b19f[_0x85bba(0x1e9)]:String(_0x32b19f)});}}_0x3bbc2a[_0x85bba(0x214)]=new Date()[_0x85bba(0x201)](),await writeSqlLockFile(_0x12ac1c[_0x85bba(0x20d)],_0x2a7bfc);const _0x266877=_0x397fc0['length']===0x0,_0x59745d=await runAutomaticDeploymentSync(_0x31f6e9,_0x85bba(0x21c),_0x9b8c4e[_0x85bba(0x224)](_0x57213c=>_0x57213c[_0x85bba(0x221)]),_0x266877),_0x35c5c0=_0x266877&&automaticDeploymentSyncSucceeded(_0x59745d),_0x41ef42=',\x20deployment\x20sync\x20'+_0x59745d[_0x85bba(0x202)];return{'ok':_0x35c5c0,'data':{'pushed':_0x9b8c4e,'skipped':_0x1f07a0,'failed':_0x397fc0,'deploymentSync':_0x59745d},'message':_0x85bba(0x217)+_0x9b8c4e[_0x85bba(0x1f6)]+_0x85bba(0x209)+_0x1f07a0[_0x85bba(0x1f6)]+'\x20skipped,\x20'+_0x397fc0[_0x85bba(0x1f6)]+_0x85bba(0x1fb)+_0x41ef42};}};async function archivePreviousSqlFileIfNeeded(_0x4d3542,_0x5f9b1a,_0x1203db){const _0x21acd1=a203_0xfb2fb3;if(!_0x5f9b1a||_0x5f9b1a===_0x1203db)return;const _0x4cad3f=join(_0x4d3542[_0x21acd1(0x200)],_0x5f9b1a);if(!await fileExists(_0x4cad3f))return;const _0x947e10=await moveToTrash(_0x4d3542[_0x21acd1(0x211)],_0x4d3542[_0x21acd1(0x216)],_0x4cad3f);await cleanupEmptyDirectories(dirname(_0x4cad3f),_0x4d3542[_0x21acd1(0x200)]),void _0x947e10;}async function moveToTrash(_0x547e9b,_0x159bc2,_0x1df4ec){const _0x5f5820=a203_0xfb2fb3,_0x53e36c=new Date()[_0x5f5820(0x201)]()[_0x5f5820(0x1ee)](/[:.]/g,'-'),_0xc7e752=relative(_0x547e9b,_0x1df4ec),_0x5f39f2=join(_0x159bc2,_0x53e36c,_0xc7e752);return await mkdir(dirname(_0x5f39f2),{'recursive':!![]}),await rename(_0x1df4ec,_0x5f39f2),_0x5f39f2;}async function cleanupEmptyDirectories(_0x1b2d75,_0x16290b){const _0x274600=a203_0xfb2fb3;let _0x615912=resolve(_0x1b2d75);const _0x5a4f9a=resolve(_0x16290b);while(_0x615912[_0x274600(0x1f2)](''+_0x5a4f9a+sep)||_0x615912===_0x5a4f9a){if(_0x615912===_0x5a4f9a)return;try{const _0x1e6372=await readdir(_0x615912);if(_0x1e6372[_0x274600(0x1f6)]>0x0)return;await rmdir(_0x615912);}catch{return;}_0x615912=dirname(_0x615912);}}async function resolveTargetDbBinding(_0x162e0b,_0x578794,_0x1068db){const _0xeca1fa=a203_0xfb2fb3,_0x3279cc=_0x578794[_0xeca1fa(0x204)];if(!_0x3279cc)return{'dbId':_0x1068db[_0xeca1fa(0x1ea)],'dbName':_0x1068db[_0xeca1fa(0x1fa)]};const _0x325954=buildDbDirectoryName(_0x1068db['dbName'],_0x1068db[_0xeca1fa(0x1ea)]);if(_0x3279cc===_0x325954)return{'dbId':_0x1068db[_0xeca1fa(0x1ea)],'dbName':_0x1068db[_0xeca1fa(0x1fa)]};const _0x5bd115=parseExplicitDbDirectory(_0x3279cc);if(_0x5bd115!=null)return{'dbId':_0x5bd115,'dbName':await getDbName(_0x162e0b,_0x5bd115)['catch'](()=>undefined)};const _0xa13633=await listDatabases(_0x162e0b),_0x5d7fb1=_0xa13633[_0xeca1fa(0x1e2)](_0x880181=>buildDbDirectoryName(_0x880181['dbName'],_0x880181['dbId'])===_0x3279cc);if(_0x5d7fb1['length']===0x1)return{'dbId':_0x5d7fb1[0x0][_0xeca1fa(0x1ea)],'dbName':_0x5d7fb1[0x0][_0xeca1fa(0x1fa)]};if(_0x5d7fb1[_0xeca1fa(0x1f6)]===0x0)throw CliErrors['validation']('No\x20database\x20matches\x20local\x20directory\x20\x22'+_0x3279cc+'\x22\x20for\x20sqlCode\x20'+_0x578794[_0xeca1fa(0x221)]+'.');const _0x2830fe=_0x5d7fb1[_0xeca1fa(0x224)](_0x3b2266=>_0x3b2266['dbName']+'\x20('+_0x3b2266[_0xeca1fa(0x1ea)]+')')[_0xeca1fa(0x1f5)](',\x20');throw CliErrors[_0xeca1fa(0x1f9)](_0xeca1fa(0x1e1)+_0x3279cc+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x578794['sqlCode']+':\x20'+_0x2830fe);}function parseExplicitDbDirectory(_0x47b8eb){const _0x6362d3=a203_0xfb2fb3,_0x15cd81=/^db-(\d+)$/[_0x6362d3(0x20f)](_0x47b8eb);if(!_0x15cd81)return null;const _0x4a93c3=Number(_0x15cd81[0x1]);return Number[_0x6362d3(0x222)](_0x4a93c3)&&_0x4a93c3>0x0?_0x4a93c3:null;}
1
+ const a216_0x2ffbea=a216_0x2326;(function(_0x490177,_0x17f7b0){const _0x6720=a216_0x2326,_0x41db4c=_0x490177();while(!![]){try{const _0x496f02=parseInt(_0x6720(0x10b))/0x1+-parseInt(_0x6720(0xff))/0x2*(parseInt(_0x6720(0xe1))/0x3)+-parseInt(_0x6720(0xdb))/0x4*(-parseInt(_0x6720(0xd9))/0x5)+-parseInt(_0x6720(0x102))/0x6*(parseInt(_0x6720(0x114))/0x7)+parseInt(_0x6720(0xfe))/0x8+parseInt(_0x6720(0x100))/0x9*(parseInt(_0x6720(0xe0))/0xa)+parseInt(_0x6720(0xee))/0xb;if(_0x496f02===_0x17f7b0)break;else _0x41db4c['push'](_0x41db4c['shift']());}catch(_0x211b0a){_0x41db4c['push'](_0x41db4c['shift']());}}}(a216_0x419a,0x3e618));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';function a216_0x2326(_0x20513c,_0x4a0652){_0x20513c=_0x20513c-0xd7;const _0x419a89=a216_0x419a();let _0x2326af=_0x419a89[_0x20513c];return _0x2326af;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';function a216_0x419a(){const _0x2fefa0=['Push\x20local\x20SQL\x20files\x20to\x20remote','map','dbName','join','\x20failed','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','7sLgsgX','isFinite','lockFilePath','Local\x20directory\x20\x22','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','\x22\x20for\x20sqlCode\x20','\x20pushed,\x20','\x20SQL\x20file(s)','sqlRootDir','toISOString','status','message','15geUWpF','hash','506452wqncbl','startsWith','exec','appCode',',\x20deployment\x20sync\x20','92750buKWVm','2517guwFtF','has','sqls','remoteId','utf8','get','dbId','sqlcode','replace','\x20skipped,\x20','unchanged','version','validation','3168693XRNuzX','write','mode','filter','/smartapi/custom/updateUserCustomSql','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','boolean','projectRoot','filePath','length','sqlConfig','sqlName','sql','str','No\x20database\x20matches\x20local\x20directory\x20\x22','catch','813904iKSaLH','854sWfXya','18vozjjT','dbDirectory','1114842RTGOgT','Would\x20push\x20','path','relativePath','POST','sqlRoot','sqlCode','bool','push','11382SxOvQY','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','force'];a216_0x419a=function(){return _0x2fefa0;};return a216_0x419a();}import{automaticDeploymentSyncSucceeded,buildAutomaticDeploymentSyncPreview,runAutomaticDeploymentSync}from'../../commands/deployment/auto-sync.js';async function getTargetSqlQueries(_0x14539a,_0x328813,_0x3dec19){const _0x2b3058=a216_0x2326,_0x16aaef=await scanLocalSqlQueries(_0x14539a),_0x1130f1=new Map();for(const _0x3396f7 of _0x16aaef){if(_0x3dec19&&_0x3396f7[_0x2b3058(0x108)]!==_0x3dec19)continue;const _0x5ddbb0=_0x1130f1[_0x2b3058(0xe6)](_0x3396f7[_0x2b3058(0x108)])??[];_0x5ddbb0[_0x2b3058(0x10a)](_0x3396f7),_0x1130f1['set'](_0x3396f7[_0x2b3058(0x108)],_0x5ddbb0);}if(_0x3dec19&&!_0x1130f1[_0x2b3058(0xe2)](_0x3dec19))throw CliErrors[_0x2b3058(0xed)]('Local\x20SQL\x20not\x20found:\x20'+_0x3dec19);const _0x5334ad=[];for(const [_0x4c0e46,_0x4ee96b]of _0x1130f1['entries']()){if(_0x4ee96b[_0x2b3058(0xf7)]===0x1){_0x5334ad[_0x2b3058(0x10a)](_0x4ee96b[0x0]);continue;}const _0x556c1b=_0x328813[_0x2b3058(0xe3)][_0x4c0e46],_0x4eb5c9=_0x556c1b?.[_0x2b3058(0x104)],_0xe03f=_0x4eb5c9?_0x4ee96b[_0x2b3058(0xf1)](_0x4e61ed=>_0x4e61ed[_0x2b3058(0x105)]!==_0x4eb5c9):_0x4ee96b;if(_0x556c1b&&_0xe03f[_0x2b3058(0xf7)]===0x1){_0x5334ad[_0x2b3058(0x10a)](_0xe03f[0x0]);continue;}throw CliErrors['validation'](_0x2b3058(0xf3)+_0x4c0e46+_0x2b3058(0x113));}return _0x5334ad;}export const sqlPush={'service':a216_0x2ffbea(0xfa),'command':a216_0x2ffbea(0x10a),'description':a216_0x2ffbea(0x10e),'risk':a216_0x2ffbea(0xef),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':a216_0x2ffbea(0xf4),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0x4fb42c){const _0x35a941=a216_0x2ffbea,_0x1873fb=loadSqlProjectConfig(_0x4fb42c[_0x35a941(0xde)]),_0x2d426c=await readSqlLockFile(_0x1873fb['lockFilePath']),{appLock:_0x2484cd}=ensureSqlLockScope(_0x2d426c??createEmptySqlLock(),_0x4fb42c['appCode'],_0x1873fb[_0x35a941(0x107)],_0x35a941(0x10a)),_0x225ede=await getTargetSqlQueries(_0x1873fb,_0x2484cd,_0x4fb42c[_0x35a941(0xfb)](_0x35a941(0xe8))||undefined),_0x533de4=[];for(const _0x1c81a2 of _0x225ede){const _0x315d99=await computeSqlFileHash(_0x1c81a2[_0x35a941(0xf6)]),_0x6145ec=_0x2484cd['sqls'][_0x1c81a2[_0x35a941(0x108)]],_0x104646=!!_0x6145ec&&(_0x6145ec[_0x35a941(0x104)]!==_0x1c81a2['relativePath']||!!_0x1c81a2[_0x35a941(0xf9)]&&_0x6145ec['sqlName']!==_0x1c81a2[_0x35a941(0xf9)]);if(!_0x4fb42c[_0x35a941(0x109)](_0x35a941(0x10d))&&_0x6145ec&&_0x6145ec[_0x35a941(0xda)]===_0x315d99&&!_0x104646)continue;_0x533de4[_0x35a941(0x10a)](_0x1c81a2['sqlCode']);}return{'method':_0x35a941(0x106),'url':_0x35a941(0xf2),'deploymentSync':buildAutomaticDeploymentSyncPreview(_0x35a941(0xfa),_0x533de4),'body':{'sqlCodes':_0x533de4,'appCode':_0x4fb42c['appCode']},'description':_0x35a941(0x103)+_0x533de4[_0x35a941(0xf7)]+_0x35a941(0x11b)};},async 'execute'(_0xfd896c){const _0x328a8c=a216_0x2ffbea,_0x199065=loadSqlProjectConfig(_0xfd896c[_0x328a8c(0xde)]),_0x1fd5e1=await readSqlLockFile(_0x199065[_0x328a8c(0x116)]),{lockData:_0x9cca70,appLock:_0x193ce5}=ensureSqlLockScope(_0x1fd5e1??createEmptySqlLock(),_0xfd896c[_0x328a8c(0xde)],_0x199065[_0x328a8c(0x107)],_0x328a8c(0x10a)),_0x59cd29=await getTargetSqlQueries(_0x199065,_0x193ce5,_0xfd896c[_0x328a8c(0xfb)](_0x328a8c(0xe8))||undefined);if(_0x59cd29[_0x328a8c(0xf7)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x530699=[],_0x5e3a3c=[],_0x233cd3=[];for(const _0xdc77ee of _0x59cd29){const _0x1f85be=_0x193ce5[_0x328a8c(0xe3)][_0xdc77ee['sqlCode']];if(!_0x1f85be){_0x233cd3['push']({'sqlCode':_0xdc77ee[_0x328a8c(0x108)],'error':_0x328a8c(0x10c)});continue;}try{const _0x5578bc=await computeSqlFileHash(_0xdc77ee[_0x328a8c(0xf6)]),_0x417e8a=_0x1f85be[_0x328a8c(0x104)]!==_0xdc77ee[_0x328a8c(0x105)]||!!_0xdc77ee[_0x328a8c(0xf9)]&&_0x1f85be['sqlName']!==_0xdc77ee[_0x328a8c(0xf9)];if(!_0xfd896c[_0x328a8c(0x109)]('force')&&_0x1f85be[_0x328a8c(0xda)]===_0x5578bc&&!_0x417e8a){_0x5e3a3c[_0x328a8c(0x10a)]({'sqlCode':_0xdc77ee[_0x328a8c(0x108)],'reason':_0x328a8c(0xeb)});continue;}if(_0x1f85be[_0x328a8c(0xec)]==null){_0x233cd3[_0x328a8c(0x10a)]({'sqlCode':_0xdc77ee[_0x328a8c(0x108)],'error':_0x328a8c(0x118)});continue;}const _0x1edcca=await readFile(_0xdc77ee['filePath'],_0x328a8c(0xe5)),_0x3e6553=stripLocalSqlMetadata(_0x1edcca,_0xdc77ee[_0x328a8c(0xf0)]),_0x297e8a=_0xdc77ee[_0x328a8c(0xf9)]||_0x1f85be[_0x328a8c(0xf9)],_0x489e14=await resolveTargetDbBinding(_0xfd896c[_0x328a8c(0xde)],_0xdc77ee,_0x1f85be),_0x202486=await updateSqlQuery({'id':_0x1f85be['remoteId'],'appCode':_0xfd896c['appCode'],'sqlCode':_0xdc77ee[_0x328a8c(0x108)],'sqlName':_0x297e8a,'dbId':_0x489e14[_0x328a8c(0xe7)],'version':_0x1f85be[_0x328a8c(0xec)],'sqlContent':_0x3e6553,'sqlConfig':_0x1f85be[_0x328a8c(0xf8)]??undefined}),_0x13e40b=_0x202486['dbId']?await getDbName(_0xfd896c['appCode'],Number(_0x202486[_0x328a8c(0xe7)]))['catch'](()=>_0x489e14[_0x328a8c(0x110)]):_0x489e14['dbName'];_0x193ce5[_0x328a8c(0xe3)][_0xdc77ee['sqlCode']]={...buildSqlLockEntry(_0x202486,_0x3e6553,_0x5578bc,{'dbName':_0x13e40b}),'path':_0xdc77ee[_0x328a8c(0x105)],'mode':_0x1f85be[_0x328a8c(0xf0)]},await archivePreviousSqlFileIfNeeded(_0x199065,_0x1f85be[_0x328a8c(0x104)],_0xdc77ee[_0x328a8c(0x105)]),_0x530699[_0x328a8c(0x10a)]({'sqlCode':_0xdc77ee[_0x328a8c(0x108)],'remoteId':_0x1f85be[_0x328a8c(0xe4)]});}catch(_0x285337){_0x233cd3['push']({'sqlCode':_0xdc77ee['sqlCode'],'error':_0x285337 instanceof Error?_0x285337[_0x328a8c(0xd8)]:String(_0x285337)});}}_0x193ce5['lastSync']=new Date()[_0x328a8c(0x11d)](),await writeSqlLockFile(_0x199065[_0x328a8c(0x116)],_0x9cca70);const _0x53e844=_0x233cd3[_0x328a8c(0xf7)]===0x0,_0x37832d=await runAutomaticDeploymentSync(_0xfd896c,_0x328a8c(0xfa),_0x530699[_0x328a8c(0x10f)](_0x1bf213=>_0x1bf213[_0x328a8c(0x108)]),_0x53e844),_0x65c5a0=_0x53e844&&automaticDeploymentSyncSucceeded(_0x37832d),_0x11e508=_0x328a8c(0xdf)+_0x37832d[_0x328a8c(0xd7)];return{'ok':_0x65c5a0,'data':{'pushed':_0x530699,'skipped':_0x5e3a3c,'failed':_0x233cd3,'deploymentSync':_0x37832d},'message':'Push\x20complete:\x20'+_0x530699[_0x328a8c(0xf7)]+_0x328a8c(0x11a)+_0x5e3a3c[_0x328a8c(0xf7)]+_0x328a8c(0xea)+_0x233cd3[_0x328a8c(0xf7)]+_0x328a8c(0x112)+_0x11e508};}};async function archivePreviousSqlFileIfNeeded(_0x119a71,_0x568cee,_0x40b084){const _0x405eb8=a216_0x2ffbea;if(!_0x568cee||_0x568cee===_0x40b084)return;const _0x277bda=join(_0x119a71[_0x405eb8(0x11c)],_0x568cee);if(!await fileExists(_0x277bda))return;const _0x47536e=await moveToTrash(_0x119a71[_0x405eb8(0xf5)],_0x119a71['trashDir'],_0x277bda);await cleanupEmptyDirectories(dirname(_0x277bda),_0x119a71[_0x405eb8(0x11c)]),void _0x47536e;}async function moveToTrash(_0x2fb11a,_0x274eec,_0x57c852){const _0x374658=a216_0x2ffbea,_0x177d71=new Date()[_0x374658(0x11d)]()[_0x374658(0xe9)](/[:.]/g,'-'),_0x4f41ea=relative(_0x2fb11a,_0x57c852),_0x3522a3=join(_0x274eec,_0x177d71,_0x4f41ea);return await mkdir(dirname(_0x3522a3),{'recursive':!![]}),await rename(_0x57c852,_0x3522a3),_0x3522a3;}async function cleanupEmptyDirectories(_0x2e6e0a,_0x434f31){const _0x300260=a216_0x2ffbea;let _0x4ec0ec=resolve(_0x2e6e0a);const _0x3d3b63=resolve(_0x434f31);while(_0x4ec0ec[_0x300260(0xdc)](''+_0x3d3b63+sep)||_0x4ec0ec===_0x3d3b63){if(_0x4ec0ec===_0x3d3b63)return;try{const _0x43ba76=await readdir(_0x4ec0ec);if(_0x43ba76['length']>0x0)return;await rmdir(_0x4ec0ec);}catch{return;}_0x4ec0ec=dirname(_0x4ec0ec);}}async function resolveTargetDbBinding(_0xacf96c,_0x241fa9,_0x24b6fd){const _0x362984=a216_0x2ffbea,_0x5e5248=_0x241fa9[_0x362984(0x101)];if(!_0x5e5248)return{'dbId':_0x24b6fd['dbId'],'dbName':_0x24b6fd[_0x362984(0x110)]};const _0x46dffb=buildDbDirectoryName(_0x24b6fd[_0x362984(0x110)],_0x24b6fd[_0x362984(0xe7)]);if(_0x5e5248===_0x46dffb)return{'dbId':_0x24b6fd[_0x362984(0xe7)],'dbName':_0x24b6fd[_0x362984(0x110)]};const _0x38a716=parseExplicitDbDirectory(_0x5e5248);if(_0x38a716!=null)return{'dbId':_0x38a716,'dbName':await getDbName(_0xacf96c,_0x38a716)[_0x362984(0xfd)](()=>undefined)};const _0x15f4c1=await listDatabases(_0xacf96c),_0x3f0bb0=_0x15f4c1[_0x362984(0xf1)](_0x12b555=>buildDbDirectoryName(_0x12b555[_0x362984(0x110)],_0x12b555[_0x362984(0xe7)])===_0x5e5248);if(_0x3f0bb0[_0x362984(0xf7)]===0x1)return{'dbId':_0x3f0bb0[0x0][_0x362984(0xe7)],'dbName':_0x3f0bb0[0x0]['dbName']};if(_0x3f0bb0['length']===0x0)throw CliErrors[_0x362984(0xed)](_0x362984(0xfc)+_0x5e5248+_0x362984(0x119)+_0x241fa9[_0x362984(0x108)]+'.');const _0x1db9c6=_0x3f0bb0[_0x362984(0x10f)](_0x5f5123=>_0x5f5123['dbName']+'\x20('+_0x5f5123[_0x362984(0xe7)]+')')[_0x362984(0x111)](',\x20');throw CliErrors[_0x362984(0xed)](_0x362984(0x117)+_0x5e5248+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x241fa9[_0x362984(0x108)]+':\x20'+_0x1db9c6);}function parseExplicitDbDirectory(_0x15044f){const _0x5e7cc2=a216_0x2ffbea,_0x80d19e=/^db-(\d+)$/[_0x5e7cc2(0xdd)](_0x15044f);if(!_0x80d19e)return null;const _0x2a5f1c=Number(_0x80d19e[0x1]);return Number[_0x5e7cc2(0x115)](_0x2a5f1c)&&_0x2a5f1c>0x0?_0x2a5f1c:null;}
@@ -1 +1 @@
1
- (function(_0x175ce5,_0x12792b){const _0x2b9cd0=a204_0x50d1,_0x3f4f2d=_0x175ce5();while(!![]){try{const _0x54524b=parseInt(_0x2b9cd0(0x174))/0x1+parseInt(_0x2b9cd0(0x189))/0x2+parseInt(_0x2b9cd0(0x17c))/0x3*(-parseInt(_0x2b9cd0(0x170))/0x4)+parseInt(_0x2b9cd0(0x175))/0x5+-parseInt(_0x2b9cd0(0x173))/0x6*(-parseInt(_0x2b9cd0(0x193))/0x7)+parseInt(_0x2b9cd0(0x185))/0x8+parseInt(_0x2b9cd0(0x186))/0x9*(-parseInt(_0x2b9cd0(0x192))/0xa);if(_0x54524b===_0x12792b)break;else _0x3f4f2d['push'](_0x3f4f2d['shift']());}catch(_0x9c3c4e){_0x3f4f2d['push'](_0x3f4f2d['shift']());}}}(a204_0x40e3,0x95e9f));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0xce9e5b,_0xfa1c88,_0x568af8,_0x1343e4){const _0x3e24ae=a204_0x50d1,_0x13af9a=detectSqlMode(_0xfa1c88);return{'path':buildSqlRelativePath(_0xce9e5b[_0x3e24ae(0x176)],_0xce9e5b[_0x3e24ae(0x190)],_0x1343e4?.[_0x3e24ae(0x16c)],_0x13af9a,_0xce9e5b['dbId']),'hash':_0x568af8,'remoteId':_0xce9e5b['id'],'version':_0xce9e5b['version'],'dbId':Number(_0xce9e5b[_0x3e24ae(0x16f)]),'dbName':_0x1343e4?.[_0x3e24ae(0x16c)],'sqlName':_0xce9e5b[_0x3e24ae(0x190)],'sqlConfig':_0xce9e5b[_0x3e24ae(0x184)]??undefined,'mode':_0x13af9a};}export function cloneSqlLockData(_0x471e4f){const _0x42bb6b=a204_0x50d1;return{'apps':Object['fromEntries'](Object[_0x42bb6b(0x179)](_0x471e4f[_0x42bb6b(0x18c)])[_0x42bb6b(0x187)](([_0x58d291,_0x5440c2])=>[_0x58d291,{'sqlRoot':_0x5440c2[_0x42bb6b(0x172)],'lastSync':_0x5440c2[_0x42bb6b(0x177)],'sqls':{..._0x5440c2[_0x42bb6b(0x17e)]}}]))};}function a204_0x50d1(_0x5ac12f,_0x3b3d78){_0x5ac12f=_0x5ac12f-0x16c;const _0x40e376=a204_0x40e3();let _0x50d1fb=_0x40e376[_0x5ac12f];return _0x50d1fb;}export function ensureRemoteSqlContent(_0x1c8183){const _0x3913fb=a204_0x50d1;return _0x1c8183[_0x3913fb(0x17a)]??'';}export function buildLocalSqlFileContent(_0x3155e4,_0x164922,_0x2691d8){const _0x3bea26=a204_0x50d1,_0x5133b0=_0x2691d8?.[_0x3bea26(0x18a)]??detectSqlMode(_0x164922),_0x56f7b0=stripLocalSqlMetadata(_0x164922,_0x5133b0)[_0x3bea26(0x191)](),_0x16e007=[...buildMetadataHeaderLines({'sqlCode':_0x3155e4['sqlCode'],'sqlName':_0x3155e4[_0x3bea26(0x190)],'dbId':_0x3155e4[_0x3bea26(0x16f)],'dbName':_0x2691d8?.[_0x3bea26(0x16c)],'mode':_0x5133b0,'syncedAt':_0x2691d8?.['syncedAt'],'description':_0x2691d8?.[_0x3bea26(0x171)]},_0x5133b0),'',_0x56f7b0],_0x212821=_0x16e007[_0x3bea26(0x194)]('\x0a');return _0x212821['endsWith']('\x0a')?_0x212821:_0x212821+'\x0a';}export function stripLocalSqlMetadata(_0x5107e7,_0x4aa8a0){const _0x2e55a7=a204_0x50d1,_0x690fa9=_0x5107e7[_0x2e55a7(0x18d)](/\r\n/g,'\x0a')['split']('\x0a'),_0xbeac27=[];let _0x8f779a=0x0;if(_0x4aa8a0===_0x2e55a7(0x195))while(_0x8f779a<_0x690fa9['length']){const _0x85119c=_0x690fa9[_0x8f779a]??'';if(/^\s*<!--\s*@lovrabet\./[_0x2e55a7(0x182)](_0x85119c)){_0x8f779a++;continue;}if(_0x85119c[_0x2e55a7(0x191)]()===''&&_0x8f779a>0x0){_0x8f779a++;continue;}break;}else while(_0x8f779a<_0x690fa9[_0x2e55a7(0x18b)]){const _0x4fde52=_0x690fa9[_0x8f779a]??'';if(/^\s*--\s*@lovrabet\./[_0x2e55a7(0x182)](_0x4fde52)){_0x8f779a++;continue;}if(_0x4fde52[_0x2e55a7(0x191)]()===''&&_0x8f779a>0x0){_0x8f779a++;continue;}break;}for(;_0x8f779a<_0x690fa9[_0x2e55a7(0x18b)];_0x8f779a++){_0xbeac27['push'](_0x690fa9[_0x8f779a]);}return _0xbeac27[_0x2e55a7(0x194)]('\x0a')['trimStart']();}export function resolveSqlMode(_0x86b1ba,_0x7b4354){const _0x591631=a204_0x50d1;if(_0x7b4354?.['mode'])return _0x7b4354[_0x591631(0x18a)];return detectSqlMode(_0x86b1ba);}export function resolveSqlFileName(_0x405ff9,_0x9da412,_0x38d1e8){const _0x210cc1=a204_0x50d1;if(_0x38d1e8?.['path'])return _0x38d1e8[_0x210cc1(0x18f)];if(_0x38d1e8?.[_0x210cc1(0x190)]||_0x38d1e8?.[_0x210cc1(0x16c)])return buildSqlRelativePath(_0x405ff9,_0x38d1e8?.[_0x210cc1(0x190)],_0x38d1e8?.[_0x210cc1(0x16c)],resolveSqlMode(_0x9da412,_0x38d1e8),_0x38d1e8?.[_0x210cc1(0x16f)]);return buildDefaultSqlFileName(_0x405ff9,resolveSqlMode(_0x9da412,_0x38d1e8));}function a204_0x40e3(){const _0x210d15=['lastSync','\x20-->','entries','sqlContent','includes','3MRKNOI','stderr','sqls','syncedAt','close','\x20[y/N]\x20','test','question','sqlConfig','800920gzJpRR','21851658wIMcKo','map','--\x20@lovrabet.','1185608fhTwRz','mode','length','apps','replace','<!--\x20@lovrabet.','path','sqlName','trim','10MBcNBD','826sAnSAl','join','mybatisXml','dbName','toLowerCase','filter','dbId','3780108PfPuJW','description','sqlRoot','61284RIdgVs','913370AJXqwN','5877475rgejHX','sqlCode'];a204_0x40e3=function(){return _0x210d15;};return a204_0x40e3();}export function resolveSqlLocalDir(_0x50be30,_0x5591ae){return join(_0x50be30,SQL_LOCAL_REL_DIR,_0x5591ae);}export async function confirmForceOverwrite(_0x1a5878){const _0x315cfd=a204_0x50d1,_0x1b7812=createInterface({'input':process['stdin'],'output':process[_0x315cfd(0x17d)]}),_0xae87a0=await new Promise(_0x7c6af0=>{const _0x56de13=_0x315cfd;_0x1b7812[_0x56de13(0x183)](_0x1a5878+_0x56de13(0x181),_0x7c6af0);});return _0x1b7812[_0x315cfd(0x180)](),['y','yes'][_0x315cfd(0x17b)](_0xae87a0[_0x315cfd(0x191)]()[_0x315cfd(0x16d)]());}export function findSqlLockScope(_0x4634dd,_0x576923){return _0x4634dd['apps'][_0x576923];}function buildMetadataHeaderLines(_0xe3f9c5,_0x10ccd7){const _0x2fb8f9=a204_0x50d1,_0x56cf6a=[['sqlCode',_0xe3f9c5['sqlCode']],[_0x2fb8f9(0x190),_0xe3f9c5[_0x2fb8f9(0x190)]],[_0x2fb8f9(0x16f),_0xe3f9c5[_0x2fb8f9(0x16f)]],[_0x2fb8f9(0x16c),_0xe3f9c5['dbName']],[_0x2fb8f9(0x18a),_0xe3f9c5[_0x2fb8f9(0x18a)]],[_0x2fb8f9(0x17f),_0xe3f9c5[_0x2fb8f9(0x17f)]],[_0x2fb8f9(0x171),_0xe3f9c5[_0x2fb8f9(0x171)]]];if(_0x10ccd7===_0x2fb8f9(0x195))return _0x56cf6a[_0x2fb8f9(0x16e)](([,_0x5e73ba])=>_0x5e73ba!==undefined&&_0x5e73ba!==null&&String(_0x5e73ba)[_0x2fb8f9(0x191)]()!=='')[_0x2fb8f9(0x187)](([_0x50dab0,_0xe0dbdb])=>_0x2fb8f9(0x18e)+_0x50dab0+':\x20'+String(_0xe0dbdb)+_0x2fb8f9(0x178));return _0x56cf6a[_0x2fb8f9(0x16e)](([,_0x3f7306])=>_0x3f7306!==undefined&&_0x3f7306!==null&&String(_0x3f7306)[_0x2fb8f9(0x191)]()!=='')['map'](([_0xef0660,_0x5b9876])=>_0x2fb8f9(0x188)+_0xef0660+':\x20'+String(_0x5b9876));}
1
+ (function(_0xc37bc6,_0x25b1c4){const _0x508c9a=a217_0x4d04,_0x38ce4d=_0xc37bc6();while(!![]){try{const _0x46d29d=parseInt(_0x508c9a(0x190))/0x1*(parseInt(_0x508c9a(0x177))/0x2)+-parseInt(_0x508c9a(0x19c))/0x3*(parseInt(_0x508c9a(0x173))/0x4)+parseInt(_0x508c9a(0x18e))/0x5+parseInt(_0x508c9a(0x17e))/0x6*(parseInt(_0x508c9a(0x172))/0x7)+-parseInt(_0x508c9a(0x16c))/0x8+parseInt(_0x508c9a(0x16f))/0x9+-parseInt(_0x508c9a(0x174))/0xa;if(_0x46d29d===_0x25b1c4)break;else _0x38ce4d['push'](_0x38ce4d['shift']());}catch(_0x25c323){_0x38ce4d['push'](_0x38ce4d['shift']());}}}(a217_0x3d59,0x9c9a7));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';function a217_0x3d59(){const _0x2cee49=['lastSync','<!--\x20@lovrabet.','6hKySqU','endsWith','replace','syncedAt','sqlCode','stdin','sqlContent','push','--\x20@lovrabet.','dbId','join','test','trimStart','\x20-->','sqlConfig','question','3492335dzZVxo','\x20[y/N]\x20','1GadNbY','version','toLowerCase','includes','mybatisXml','apps','close','dbName','yes','split','description','entries','132bfeXSg','3631784kGakMX','trim','map','3243240zZyVlr','filter','mode','7646513WhBoXl','83844dWfynU','8918940viwfkI','length','stderr','1516824gmPCsF','sqlRoot','sqlName','fromEntries','path'];a217_0x3d59=function(){return _0x2cee49;};return a217_0x3d59();}export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x3ee506,_0x2a6dea,_0x37c76f,_0x4916b2){const _0x51f1b7=a217_0x4d04,_0x4dd54f=detectSqlMode(_0x2a6dea);return{'path':buildSqlRelativePath(_0x3ee506['sqlCode'],_0x3ee506[_0x51f1b7(0x179)],_0x4916b2?.[_0x51f1b7(0x197)],_0x4dd54f,_0x3ee506[_0x51f1b7(0x187)]),'hash':_0x37c76f,'remoteId':_0x3ee506['id'],'version':_0x3ee506[_0x51f1b7(0x191)],'dbId':Number(_0x3ee506[_0x51f1b7(0x187)]),'dbName':_0x4916b2?.[_0x51f1b7(0x197)],'sqlName':_0x3ee506[_0x51f1b7(0x179)],'sqlConfig':_0x3ee506[_0x51f1b7(0x18c)]??undefined,'mode':_0x4dd54f};}export function cloneSqlLockData(_0x595b7e){const _0x524a05=a217_0x4d04;return{'apps':Object[_0x524a05(0x17a)](Object[_0x524a05(0x19b)](_0x595b7e[_0x524a05(0x195)])[_0x524a05(0x16e)](([_0x2ca608,_0x3e0e0e])=>[_0x2ca608,{'sqlRoot':_0x3e0e0e[_0x524a05(0x178)],'lastSync':_0x3e0e0e[_0x524a05(0x17c)],'sqls':{..._0x3e0e0e['sqls']}}]))};}export function ensureRemoteSqlContent(_0x45402){const _0x223bc7=a217_0x4d04;return _0x45402[_0x223bc7(0x184)]??'';}export function buildLocalSqlFileContent(_0x2d4e1f,_0x3dffcb,_0x133da8){const _0xa16ac6=a217_0x4d04,_0xc45e18=_0x133da8?.[_0xa16ac6(0x171)]??detectSqlMode(_0x3dffcb),_0x5a2c5e=stripLocalSqlMetadata(_0x3dffcb,_0xc45e18)[_0xa16ac6(0x16d)](),_0x223a79=[...buildMetadataHeaderLines({'sqlCode':_0x2d4e1f[_0xa16ac6(0x182)],'sqlName':_0x2d4e1f['sqlName'],'dbId':_0x2d4e1f[_0xa16ac6(0x187)],'dbName':_0x133da8?.[_0xa16ac6(0x197)],'mode':_0xc45e18,'syncedAt':_0x133da8?.[_0xa16ac6(0x181)],'description':_0x133da8?.[_0xa16ac6(0x19a)]},_0xc45e18),'',_0x5a2c5e],_0x1e9eb8=_0x223a79[_0xa16ac6(0x188)]('\x0a');return _0x1e9eb8[_0xa16ac6(0x17f)]('\x0a')?_0x1e9eb8:_0x1e9eb8+'\x0a';}export function stripLocalSqlMetadata(_0x4b371a,_0x206191){const _0x118cfb=a217_0x4d04,_0x9a3e8d=_0x4b371a[_0x118cfb(0x180)](/\r\n/g,'\x0a')[_0x118cfb(0x199)]('\x0a'),_0x164170=[];let _0x33f3ee=0x0;if(_0x206191===_0x118cfb(0x194))while(_0x33f3ee<_0x9a3e8d[_0x118cfb(0x175)]){const _0x3383dd=_0x9a3e8d[_0x33f3ee]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x3383dd)){_0x33f3ee++;continue;}if(_0x3383dd[_0x118cfb(0x16d)]()===''&&_0x33f3ee>0x0){_0x33f3ee++;continue;}break;}else while(_0x33f3ee<_0x9a3e8d[_0x118cfb(0x175)]){const _0x17b8ba=_0x9a3e8d[_0x33f3ee]??'';if(/^\s*--\s*@lovrabet\./[_0x118cfb(0x189)](_0x17b8ba)){_0x33f3ee++;continue;}if(_0x17b8ba[_0x118cfb(0x16d)]()===''&&_0x33f3ee>0x0){_0x33f3ee++;continue;}break;}for(;_0x33f3ee<_0x9a3e8d[_0x118cfb(0x175)];_0x33f3ee++){_0x164170[_0x118cfb(0x185)](_0x9a3e8d[_0x33f3ee]);}return _0x164170[_0x118cfb(0x188)]('\x0a')[_0x118cfb(0x18a)]();}export function resolveSqlMode(_0x216922,_0x32aa51){const _0x19552c=a217_0x4d04;if(_0x32aa51?.[_0x19552c(0x171)])return _0x32aa51[_0x19552c(0x171)];return detectSqlMode(_0x216922);}export function resolveSqlFileName(_0x30f256,_0x5b29d9,_0x3d1513){const _0x2b5cdc=a217_0x4d04;if(_0x3d1513?.['path'])return _0x3d1513[_0x2b5cdc(0x17b)];if(_0x3d1513?.[_0x2b5cdc(0x179)]||_0x3d1513?.['dbName'])return buildSqlRelativePath(_0x30f256,_0x3d1513?.[_0x2b5cdc(0x179)],_0x3d1513?.[_0x2b5cdc(0x197)],resolveSqlMode(_0x5b29d9,_0x3d1513),_0x3d1513?.[_0x2b5cdc(0x187)]);return buildDefaultSqlFileName(_0x30f256,resolveSqlMode(_0x5b29d9,_0x3d1513));}export function resolveSqlLocalDir(_0x41b5f7,_0xcf0dbf){return join(_0x41b5f7,SQL_LOCAL_REL_DIR,_0xcf0dbf);}export async function confirmForceOverwrite(_0x4c8678){const _0x3ba72b=a217_0x4d04,_0xb92e11=createInterface({'input':process[_0x3ba72b(0x183)],'output':process[_0x3ba72b(0x176)]}),_0x4e80de=await new Promise(_0x47e32e=>{const _0x169636=_0x3ba72b;_0xb92e11[_0x169636(0x18d)](_0x4c8678+_0x169636(0x18f),_0x47e32e);});return _0xb92e11[_0x3ba72b(0x196)](),['y',_0x3ba72b(0x198)][_0x3ba72b(0x193)](_0x4e80de['trim']()[_0x3ba72b(0x192)]());}function a217_0x4d04(_0x1a4580,_0x486c18){_0x1a4580=_0x1a4580-0x16c;const _0x3d59b6=a217_0x3d59();let _0x4d04de=_0x3d59b6[_0x1a4580];return _0x4d04de;}export function findSqlLockScope(_0x2ab754,_0x1125ed){return _0x2ab754['apps'][_0x1125ed];}function buildMetadataHeaderLines(_0x59f0d5,_0x3498f5){const _0x8b5121=a217_0x4d04,_0x19c90b=[[_0x8b5121(0x182),_0x59f0d5[_0x8b5121(0x182)]],[_0x8b5121(0x179),_0x59f0d5[_0x8b5121(0x179)]],[_0x8b5121(0x187),_0x59f0d5['dbId']],['dbName',_0x59f0d5['dbName']],[_0x8b5121(0x171),_0x59f0d5[_0x8b5121(0x171)]],[_0x8b5121(0x181),_0x59f0d5[_0x8b5121(0x181)]],[_0x8b5121(0x19a),_0x59f0d5[_0x8b5121(0x19a)]]];if(_0x3498f5==='mybatisXml')return _0x19c90b[_0x8b5121(0x170)](([,_0x324d50])=>_0x324d50!==undefined&&_0x324d50!==null&&String(_0x324d50)[_0x8b5121(0x16d)]()!=='')[_0x8b5121(0x16e)](([_0x3842ba,_0x3238d2])=>_0x8b5121(0x17d)+_0x3842ba+':\x20'+String(_0x3238d2)+_0x8b5121(0x18b));return _0x19c90b['filter'](([,_0x5e65a6])=>_0x5e65a6!==undefined&&_0x5e65a6!==null&&String(_0x5e65a6)[_0x8b5121(0x16d)]()!=='')[_0x8b5121(0x16e)](([_0x3b6237,_0x22091b])=>_0x8b5121(0x186)+_0x3b6237+':\x20'+String(_0x22091b));}
@@ -1 +1 @@
1
- const a205_0x15f317=a205_0x1220;(function(_0x17dfb7,_0x4540ad){const _0x4c7552=a205_0x1220,_0x4054cd=_0x17dfb7();while(!![]){try{const _0x239813=parseInt(_0x4c7552(0x13a))/0x1+-parseInt(_0x4c7552(0x130))/0x2+parseInt(_0x4c7552(0x11f))/0x3+-parseInt(_0x4c7552(0x120))/0x4+-parseInt(_0x4c7552(0x11b))/0x5*(parseInt(_0x4c7552(0x126))/0x6)+parseInt(_0x4c7552(0x13b))/0x7+-parseInt(_0x4c7552(0x137))/0x8*(parseInt(_0x4c7552(0x132))/0x9);if(_0x239813===_0x4540ad)break;else _0x4054cd['push'](_0x4054cd['shift']());}catch(_0x1be394){_0x4054cd['push'](_0x4054cd['shift']());}}}(a205_0x26c1,0x26695));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 a205_0x26c1(){const _0x284620=['bool','6FsqKbc','sqls','map','totalCount','boolean','paging','keys','sql','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','push','262730JJONAa','lockKey','345834EZphOL','has','\x20missing,\x20','length','\x20unchanged','24kxsQqv','remote','filePath','224224UHTzgV','441217sySTKH','sqlName','path','103415vlKVZQ','status','\x20remote-only','All\x20SQL\x20queries\x20are\x20in\x20sync.','439395MAeMHV','36244tYaOzx','sqlCode','hash','\x20modified,\x20','appCode'];a205_0x26c1=function(){return _0x284620;};return a205_0x26c1();}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x1b9afe){const _0x28f7c0=a205_0x1220,_0x505ee8=[];let _0x5e45a5=0x1;while(!![]){const _0x17105a=await listSqlQueries(_0x1b9afe,{'currentPage':_0x5e45a5,'pageSize':PAGE_SIZE}),_0x91ce6b=_0x17105a['tableData']??[];_0x505ee8[_0x28f7c0(0x12f)](..._0x91ce6b['map'](_0x3697c4=>_0x3697c4[_0x28f7c0(0x121)]));if(_0x91ce6b[_0x28f7c0(0x135)]===0x0)break;const _0x16e0f6=_0x17105a[_0x28f7c0(0x12b)]?.[_0x28f7c0(0x129)];if(_0x16e0f6!=null?_0x505ee8[_0x28f7c0(0x135)]>=_0x16e0f6:_0x91ce6b['length']<PAGE_SIZE)break;_0x5e45a5++;}return _0x505ee8;}function a205_0x1220(_0x16c9f8,_0x1ce8ec){_0x16c9f8=_0x16c9f8-0x11b;const _0x26c107=a205_0x26c1();let _0x122088=_0x26c107[_0x16c9f8];return _0x122088;}export const sqlStatus={'service':a205_0x15f317(0x12d),'command':a205_0x15f317(0x11c),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':'read','flags':[{'name':a205_0x15f317(0x138),'type':a205_0x15f317(0x12a),'description':a205_0x15f317(0x12e)}],async 'execute'(_0x5b621d){const _0x1b04c2=a205_0x15f317,_0x5137d0=loadSqlProjectConfig(_0x5b621d[_0x1b04c2(0x124)]),_0x5f2c35=await readSqlLockFile(_0x5137d0['lockFilePath']),{appLock:_0x330a0b}=ensureSqlLockScope(_0x5f2c35??createEmptySqlLock(),_0x5137d0[_0x1b04c2(0x124)],_0x5137d0['sqlRoot'],_0x1b04c2(0x11c)),_0x3fccd2=await scanLocalSqlQueries(_0x5137d0),_0xe67c49=[],_0x3657c0=[],_0x162acd=[],_0x4e5c6c=[],_0x591a1f=new Set(_0x3fccd2[_0x1b04c2(0x128)](_0x386107=>_0x386107[_0x1b04c2(0x131)]));for(const _0x379cc7 of _0x3fccd2){const _0x85e4d8=await computeSqlFileHash(_0x379cc7[_0x1b04c2(0x139)]),_0x4e3a02=_0x330a0b[_0x1b04c2(0x127)][_0x379cc7[_0x1b04c2(0x131)]],_0x209fa7=!!_0x4e3a02&&_0x4e3a02[_0x1b04c2(0x13d)]!==_0x379cc7['relativePath'],_0x1bb993=!!_0x4e3a02&&!!_0x379cc7['sqlName']&&_0x4e3a02[_0x1b04c2(0x13c)]!==_0x379cc7['sqlName'];if(!_0x4e3a02)_0xe67c49[_0x1b04c2(0x12f)](_0x379cc7[_0x1b04c2(0x131)]);else _0x4e3a02[_0x1b04c2(0x122)]!==_0x85e4d8||_0x209fa7||_0x1bb993?_0x3657c0[_0x1b04c2(0x12f)](_0x379cc7['lockKey']):_0x162acd[_0x1b04c2(0x12f)](_0x379cc7[_0x1b04c2(0x131)]);}for(const _0x983322 of Object[_0x1b04c2(0x12c)](_0x330a0b['sqls'])){!_0x591a1f['has'](_0x983322)&&_0x4e5c6c[_0x1b04c2(0x12f)](_0x983322);}const _0x36a840=[];if(_0x5b621d[_0x1b04c2(0x125)](_0x1b04c2(0x138))){const _0x5b3e25=await fetchAllSqlCodes(_0x5b621d[_0x1b04c2(0x124)]);for(const _0x3ab01c of _0x5b3e25){!_0x591a1f[_0x1b04c2(0x133)](_0x3ab01c)&&!_0x330a0b[_0x1b04c2(0x127)][_0x3ab01c]&&_0x36a840[_0x1b04c2(0x12f)](_0x3ab01c);}}const _0x1a001f=_0xe67c49[_0x1b04c2(0x135)]===0x0&&_0x3657c0[_0x1b04c2(0x135)]===0x0&&_0x4e5c6c[_0x1b04c2(0x135)]===0x0&&_0x36a840['length']===0x0;return{'ok':!![],'data':{'added':_0xe67c49,'modified':_0x3657c0,'missing':_0x4e5c6c,'unchanged':_0x162acd,'remoteOnly':_0x36a840},'message':_0x1a001f?_0x1b04c2(0x11e):_0xe67c49['length']+'\x20added,\x20'+_0x3657c0[_0x1b04c2(0x135)]+_0x1b04c2(0x123)+_0x4e5c6c[_0x1b04c2(0x135)]+_0x1b04c2(0x134)+_0x162acd[_0x1b04c2(0x135)]+_0x1b04c2(0x136)+(_0x36a840[_0x1b04c2(0x135)]>0x0?',\x20'+_0x36a840[_0x1b04c2(0x135)]+_0x1b04c2(0x11d):'')};}};
1
+ const a218_0x296826=a218_0x18f0;function a218_0x5ad0(){const _0x150e79=['3ixsRpu','totalCount','status','\x20unchanged','boolean','read','tableData','233525UlXeAE','has','5576536VsVfPX','paging','appCode','path','push','1511550FjKsqn','sqls','sqlName','10308ZIqrvn','hash','length','910gPUIuz','lockFilePath','lockKey','812392dNmpAU','sql','\x20added,\x20','map','10230390rMcTnb','\x20missing,\x20','517606aSKSvr','All\x20SQL\x20queries\x20are\x20in\x20sync.','\x20remote-only','bool','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file'];a218_0x5ad0=function(){return _0x150e79;};return a218_0x5ad0();}function a218_0x18f0(_0x50a12d,_0x397ea9){_0x50a12d=_0x50a12d-0x1cd;const _0x5ad062=a218_0x5ad0();let _0x18f08f=_0x5ad062[_0x50a12d];return _0x18f08f;}(function(_0x4c476e,_0x25b551){const _0x1a04e8=a218_0x18f0,_0x373473=_0x4c476e();while(!![]){try{const _0x3d94ae=parseInt(_0x1a04e8(0x1de))/0x1*(parseInt(_0x1a04e8(0x1d9))/0x2)+parseInt(_0x1a04e8(0x1ec))/0x3+-parseInt(_0x1a04e8(0x1d3))/0x4+parseInt(_0x1a04e8(0x1e5))/0x5+parseInt(_0x1a04e8(0x1cd))/0x6*(-parseInt(_0x1a04e8(0x1d0))/0x7)+parseInt(_0x1a04e8(0x1e7))/0x8+-parseInt(_0x1a04e8(0x1d7))/0x9;if(_0x3d94ae===_0x25b551)break;else _0x373473['push'](_0x373473['shift']());}catch(_0x3bd9ac){_0x373473['push'](_0x373473['shift']());}}}(a218_0x5ad0,0x70853));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x2f45d0){const _0x17654e=a218_0x18f0,_0x21ecff=[];let _0x3cef67=0x1;while(!![]){const _0xb93f36=await listSqlQueries(_0x2f45d0,{'currentPage':_0x3cef67,'pageSize':PAGE_SIZE}),_0x5dd665=_0xb93f36[_0x17654e(0x1e4)]??[];_0x21ecff[_0x17654e(0x1eb)](..._0x5dd665[_0x17654e(0x1d6)](_0x3d5595=>_0x3d5595['sqlCode']));if(_0x5dd665['length']===0x0)break;const _0x4bccd7=_0xb93f36[_0x17654e(0x1e8)]?.[_0x17654e(0x1df)];if(_0x4bccd7!=null?_0x21ecff[_0x17654e(0x1cf)]>=_0x4bccd7:_0x5dd665[_0x17654e(0x1cf)]<PAGE_SIZE)break;_0x3cef67++;}return _0x21ecff;}export const sqlStatus={'service':a218_0x296826(0x1d4),'command':a218_0x296826(0x1e0),'description':a218_0x296826(0x1dd),'risk':a218_0x296826(0x1e3),'flags':[{'name':'remote','type':a218_0x296826(0x1e2),'description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x48559c){const _0x1a4e9c=a218_0x296826,_0x49bc8e=loadSqlProjectConfig(_0x48559c[_0x1a4e9c(0x1e9)]),_0x471827=await readSqlLockFile(_0x49bc8e[_0x1a4e9c(0x1d1)]),{appLock:_0x11ed0f}=ensureSqlLockScope(_0x471827??createEmptySqlLock(),_0x49bc8e[_0x1a4e9c(0x1e9)],_0x49bc8e['sqlRoot'],_0x1a4e9c(0x1e0)),_0x33bbae=await scanLocalSqlQueries(_0x49bc8e),_0x51d42b=[],_0x4bd402=[],_0x4377ba=[],_0x454fc5=[],_0x618f5c=new Set(_0x33bbae[_0x1a4e9c(0x1d6)](_0x1b8a18=>_0x1b8a18[_0x1a4e9c(0x1d2)]));for(const _0x3a011f of _0x33bbae){const _0x53da18=await computeSqlFileHash(_0x3a011f['filePath']),_0x224532=_0x11ed0f[_0x1a4e9c(0x1ed)][_0x3a011f['lockKey']],_0x6a49fb=!!_0x224532&&_0x224532[_0x1a4e9c(0x1ea)]!==_0x3a011f['relativePath'],_0x37bc85=!!_0x224532&&!!_0x3a011f['sqlName']&&_0x224532[_0x1a4e9c(0x1ee)]!==_0x3a011f[_0x1a4e9c(0x1ee)];if(!_0x224532)_0x51d42b[_0x1a4e9c(0x1eb)](_0x3a011f[_0x1a4e9c(0x1d2)]);else _0x224532[_0x1a4e9c(0x1ce)]!==_0x53da18||_0x6a49fb||_0x37bc85?_0x4bd402[_0x1a4e9c(0x1eb)](_0x3a011f[_0x1a4e9c(0x1d2)]):_0x4377ba[_0x1a4e9c(0x1eb)](_0x3a011f[_0x1a4e9c(0x1d2)]);}for(const _0x3d04a0 of Object['keys'](_0x11ed0f['sqls'])){!_0x618f5c[_0x1a4e9c(0x1e6)](_0x3d04a0)&&_0x454fc5[_0x1a4e9c(0x1eb)](_0x3d04a0);}const _0x456bde=[];if(_0x48559c[_0x1a4e9c(0x1dc)]('remote')){const _0x3cef46=await fetchAllSqlCodes(_0x48559c[_0x1a4e9c(0x1e9)]);for(const _0x14e735 of _0x3cef46){!_0x618f5c[_0x1a4e9c(0x1e6)](_0x14e735)&&!_0x11ed0f[_0x1a4e9c(0x1ed)][_0x14e735]&&_0x456bde[_0x1a4e9c(0x1eb)](_0x14e735);}}const _0x27e1db=_0x51d42b[_0x1a4e9c(0x1cf)]===0x0&&_0x4bd402[_0x1a4e9c(0x1cf)]===0x0&&_0x454fc5[_0x1a4e9c(0x1cf)]===0x0&&_0x456bde[_0x1a4e9c(0x1cf)]===0x0;return{'ok':!![],'data':{'added':_0x51d42b,'modified':_0x4bd402,'missing':_0x454fc5,'unchanged':_0x4377ba,'remoteOnly':_0x456bde},'message':_0x27e1db?_0x1a4e9c(0x1da):_0x51d42b[_0x1a4e9c(0x1cf)]+_0x1a4e9c(0x1d5)+_0x4bd402[_0x1a4e9c(0x1cf)]+'\x20modified,\x20'+_0x454fc5[_0x1a4e9c(0x1cf)]+_0x1a4e9c(0x1d8)+_0x4377ba[_0x1a4e9c(0x1cf)]+_0x1a4e9c(0x1e1)+(_0x456bde[_0x1a4e9c(0x1cf)]>0x0?',\x20'+_0x456bde['length']+_0x1a4e9c(0x1db):'')};}};